From 485a933f648895b797f078700246edc8f363ef4b Mon Sep 17 00:00:00 2001
From: Connor Barr
+
+ +
+ +As we can see, each of the Cosmos chains has AndromedaOS deployed . Since AndromedaOS can communicate using IBC, then users can build Applications that span accross many chains taking advantage of all the benefits that come along. + +For example, a user can build an NFT collection on Stargaze selling the NFTs using one of our ADOs and then using a splitter to send part of the funds to Terra to leverage some protocol and another part to Injective to leverage some functionality there. The user's imagination is the only limit to what can be built using the aOS. + +**Note**: IBC functionality is being slowly introduced into the system. Not all features mentioned above are currently available. + +### What is the benefit of using aOS + +* **For Projects:** + +Before **Andromeda**, projects would need to hire a full development teams in order to build their projects and custom smart contracts. Andromeda eliminates this need by providing a very large amount of custom smart contracts that upcoming projects can pick and chose from to achieve their desired utility. These projects can then use our **No-Code-Builder** to build their projects in a matter of minutes on any of the chains that Andromeda is deployed on. + +* **For Developers:** + +Developers can use our **Andromeda Logic Library** (ALL) which contains all our contracts to build from. Similar to how [**cw-plus**](https://github.com/CosmWasm/cw-plus) contracts are used as a base for production quality builds, the ALL will act as a base for all developers to create their own ADOs that use the superior interoperable system. + +As it stands, the ALL contains around 25 ADOs which is the tip of the iceberg. More and more ADOs are being added by the Andromeda team, and as we continue building, the ALL will eventually reach a state with thousands of ADOs where every use case imagined can be built using it. + +Furthermore, developers are incentivized for their contributions and the ADOs they create. This incentive system operates through our[ economic engine](https://docs.andromedaprotocol.io/andromeda/platform-and-framework/andromeda-messaging-protocol/economics-engine), enabling developers to set custom fees on their ADOs when it is published. Users utilizing these ADOs pay these fees, which are then returned to the developer responsible for their creation. + +* **For Chains:** + + AndromedaOS provides a whole suite of tooling that can be quickly installed on any chain in the Cosmos ecosystem. Installing the aOS would instantly give a chain and its users access to the following: + +1. A large number of production ready ADOs to be used. +2. The best no-code-builder in Cosmos and perhaps the entire blockchain industry. +3. IBC capable applications. +4. An incredible all in one CLI that is easy to use and manage. +5. Exposure to the chain, as users on any chain that implements the aOS will be able to to see where aOS is also deployed and might consider building applications on said chain. + +# Andromeda Core Repo + A monorepository containing all the contracts and packages related to Andromeda Protocol. Full documentation for all the contracts can be found [here](https://docs.andromedaprotocol.io/andromeda/platform-and-framework/introduction). ## ADO Categories -The contracts are classified based on their functionality. Currently we have 8 different contract categories. +The contracts are classified based on their functionality. Currently we have 7 different contract categories. | Category| Description | | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------- | -| [app](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/app)| Contracts used for building Andromeda apps. | -| [data-storage](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/data-storage/andromeda-primitive) | Contracts used to store any type of data (uint, string, bool ect...).| +| [app](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/app)| Contracts used for building Andromeda apps. | | [ecosystem](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/ecosystem) | Contracts that are allow interaction with different ecosystem protocols.| | [finance](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/finance) | Contracts used by fungible tokens to perform defi operations.| | [fungible tokens](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/fungible-tokens) | Contracts that integrate with fungible tokens (CW-20 tokens).| | [non-fungible-tokens](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/non-fungible-tokens) | Contacts that integrate with non-funible toknes (NFTs). Includes a standard CW721 contract with some custom features.| -| [modules](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/modules) |Andromeda modules that are attached to other ADOs to extend functionality.| - | [defunct](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/defunct) |Andromeda contracts that are no longer supported.| +| [os](https://github.com/andromedaprotocol/andromeda-core/tree/1.0.rc-1/contracts/os) | Contacts that make up the aOS architecture | - -## ADOs +## Audited ADOs +The list of ADOs that have been audited and are available on our web-application. | Contract | Category | Description | Documentation | | ---------------------------|------------------------|-------------------------------------------|----------------------------------------------------- | -| [andromeda-app-contract](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/app/andromeda-app-contract)| app | Contract used to create Andromeda Apps. | [Gitbook](https://docs.andromedaprotocol.io/andromeda/smart-contracts/andromeda-apps/app)| -| [andromeda-factory](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/app/andromeda-factory)| app |Contract used to save the code Ids of all Andromeda ADOs. | [Gitbook](https://docs.andromedaprotocol.io/andromeda/smart-contracts/andromeda-apps/andromeda-factory)| -| [andromeda-primitive](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/data-storage/andromeda-primitive) | data-storage | Contract that stores any type of data that can be referenced by other ADOs. |[Gitbook](https://docs.andromedaprotocol.io/andromeda/smart-contracts/data-storage/primitive) | -| [andromeda-vault](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/ecosystem/andromeda-vault)|ecosystem| Contract that can receive and store funds. Acts as a central bank for projects. | [Gitbook](https://docs.andromedaprotocol.io/andromeda/smart-contracts/ecosystem/vault) | +| [andromeda-app-contract](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/app/andromeda-app-contract)| app | Contract used to create Andromeda Apps. | [Gitbook](https://docs.andromedaprotocol.io/andromeda/smart-contracts/andromeda-apps/app)| | [andromeda-rate-limiting-withdrawals](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/finance/andromeda-rate-limiting-withdrawals) | finance | Contract that puts restrictions on the withdrawal of funds by users. | [Gitbook](https://docs.andromedaprotocol.io/andromeda/smart-contracts/finance/rate-limiting-withdrawals)| | [andromeda-splitter](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/finance/andromeda-splitter) | finance| Contract used to split any sent funds amongst defined addresses. | [Gitbook](https://docs.andromedaprotocol.io/andromeda/smart-contracts/finance/andromeda-splitter)| -| [andromeda-timelock](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/finance/andromeda-timelock) | finance| Contract used to store funds until a condition has been satisfied before being released, similar to Escrow.|[Gitbook](https://docs.andromedaprotocol.io/andromeda/smart-contracts/finance/timelock)| -| [andromeda-vesting](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/finance/andromeda-vesting) |finance | Contract used to custom vest tokens for a single recipient.| [Gitbook](https://docs.andromedaprotocol.io/andromeda/smart-contracts/finance/vesting-ado)| -| [andromeda-weighted-distribution-splitter](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/finance/andromeda-weighted-distribution-splitter) | finance | Contract used to split any sent funds amongst defined addresses. Similar to the splitter but uses weights instead of percentages.| [Gitbook](https://docs.andromedaprotocol.io/andromeda/smart-contracts/finance/weighted-splitter)| -| [andromeda-cw20](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/app/andromeda-factory) | fungible tokens |Contract to create standard cw-20 tokens. | [Gitbook](https://docs.andromedaprotocol.io/andromeda/smart-contracts/fungible-tokens/cw20-token) -| [andromeda-cw20-staking](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/fungible-tokens/andromeda-cw20-staking) | fungible tokens | Contract that allows the staking of cw-20 tokens for rewards. | [Gitbook](https://docs.andromedaprotocol.io/andromeda/smart-contracts/fungible-tokens/cw20-staking)| +| [andromeda-timelock](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/finance/andromeda-timelock) | finance| Contract used to store funds until a condition has been satisfied before being released, similar to Escrow.|[Gitbook](https://docs.andromedaprotocol.io/andromeda/smart-contracts/finance/timelock)| +| [andromeda-cw20](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/fungible-tokens/andromeda-cw20) | fungible tokens |Contract to create standard CW20 tokens. | [Gitbook](https://docs.andromedaprotocol.io/andromeda/smart-contracts/fungible-tokens/cw20-token) +| [andromeda-cw20-staking](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/fungible-tokens/andromeda-cw20-staking) | fungible tokens | Contract that allows the staking of CW20 tokens for rewards. | [Gitbook](https://docs.andromedaprotocol.io/andromeda/smart-contracts/fungible-tokens/cw20-staking)| +| [andromeda-cw20-exchange](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/fungible-tokens/andromeda-cw20-exchange) | fungible tokens | Contract that allows the exchanging native tokens for a specified CW20 | [Gitbook](https://docs.andromedaprotocol.io/andromeda/andromeda-digital-objects/cw20-exchange)| | [andromeda-lockdrop](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/fungible-tokens/andromeda-lockdrop) | fungible tokens| Contract that allows users to deposit a netive token in exchange for the project's cw-20 token |[Gitbook](https://docs.andromedaprotocol.io/andromeda/smart-contracts/fungible-tokens/lockdrop)| | [andromeda-merkle-airdrop](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/fungible-tokens/andromeda-merkle-airdrop) | fungible tokens| Contract used to perform a merkle airdrop on cw20-tokens| [Gitbook](https://docs.andromedaprotocol.io/andromeda/smart-contracts/fungible-tokens/merkle-airdrop)| | [andromeda-auction](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/non-fungible-tokens/andromeda-auction)|non-fungible-tokens| Contract that can receive an NFT and run an auction on it.| [Gitbook](https://docs.andromedaprotocol.io/andromeda/smart-contracts/non-fungible-tokens/auction)| +| [andromeda-marketplace](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/non-fungible-tokens/andromeda-marketplace)|non-fungible-tokens| Contract that can receive an NFT and run an a sale on it.| [Gitbook](https://docs.andromedaprotocol.io/andromeda/andromeda-digital-objects/marketplace)| | [andromeda-crowdfund](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/non-fungible-tokens/andromeda-crowdfund)|non-fungible-tokens| Contracts used to perform a crowdfund by selling NFTs.|[Gitbook](https://docs.andromedaprotocol.io/andromeda/smart-contracts/non-fungible-tokens/crowdfund)| -| [andromeda-cw721](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/non-fungible-tokens/andromeda-cw721)| non-fungible-tokens| Contract used to create cw-721 standard NFTs. Has a custom message that allows selling the NFTs.| [Gitbook](https://docs.andromedaprotocol.io/andromeda/smart-contracts/non-fungible-tokens/andromeda-digital-object)| -| [andromeda-cw721-staking](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/non-fungible-tokens/andromeda-cw721-staking)|non-fungible-tokens| Contract that allows custom staking of NFTs.|[Gitbook](https://docs.andromedaprotocol.io/andromeda/smart-contracts/non-fungible-tokens/cw721-staking)| -| [andromeda-gumball](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/non-fungible-tokens/andromeda-gumball)|non-fungible-tokens| Contract that allows users to pay a price to get a random NFT.| [Gitbook](https://docs.andromedaprotocol.io/andromeda/smart-contracts/non-fungible-tokens/gumball)| -| [andromeda-nft-timelock](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/non-fungible-tokens/andromeda-nft-timelock)|non-fungible-tokens| Contract that locks an NFT for a certain period of time.| [Gitbook](https://docs.andromedaprotocol.io/andromeda/smart-contracts/non-fungible-tokens/nft-timelock)| -| [andromeda-wrapped-cw721](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/non-fungible-tokens/andromeda-wrapped-cw721)| non-fungible-tokens| Contract that wraps an NFT and mints an Andromeda NFT that can leverage our custom messages and modules instead. The token can be unwrapped.| [Gitbook](https://docs.andromedaprotocol.io/andromeda/smart-contracts/non-fungible-tokens/wrapped-cw721)| - -## Modules +| [andromeda-cw721](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/non-fungible-tokens/andromeda-cw721)| non-fungible-tokens| Contract used to create CW721 standard NFTs. Has a custom message that allows selling the NFTs.| [Gitbook](https://docs.andromedaprotocol.io/andromeda/smart-contracts/non-fungible-tokens/andromeda-digital-object)| +| [andromeda-adodb](https://github.com/andromedaprotocol/andromeda-core/tree/1.0.rc-1/contracts/os/andromeda-adodb)| os| The ADO database responsible for publishing new ADOs into the aOS| [Gitbook](https://docs.andromedaprotocol.io/andromeda/platform-and-framework/andromeda-messaging-protocol/andromeda-factory)| +| [andromeda-economics](https://github.com/andromedaprotocol/andromeda-core/tree/1.0.rc-1/contracts/os/andromeda-economics)| os | The contract responsible for handling ADO fees| [Gitbook](https://docs.andromedaprotocol.io/andromeda/platform-and-framework/andromeda-messaging-protocol/economics-engine)| +| [andromeda-kernel](https://github.com/andromedaprotocol/andromeda-core/tree/1.0.rc-1/contracts/os/andromeda-kernel)| os | The contract responsible for handling communication between ADOs| [Gitbook](https://docs.andromedaprotocol.io/andromeda/platform-and-framework/andromeda-messaging-protocol/kernel)| +| [andromeda-vfs](https://github.com/andromedaprotocol/andromeda-core/tree/1.0.rc-1/contracts/os/andromeda-vfs)| os| The contract responsible for managing the usernames and paths of ADOs and users in the aOs | [Gitbook](https://docs.andromedaprotocol.io/andromeda/platform-and-framework/andromeda-messaging-protocol/virtual-file-system)| -Modules are smart contracts that can be added to other ADOs on instantiation to extend their functionality. The communication between ADOs and our modules is achieved using our custom [Hooks](https://docs.andromedaprotocol.io/andromeda/andromeda-hooks/hooks). We currently have 4 modules: - -|Module| Description| Documentation| -|-------------------------------|---------------------------|-----------------------------| -| [address-list](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/modules/andromeda-address-list)| A module used to whitelist/blacklist a list of addresses to interact with the ADO.|[Gitbook](https://docs.andromedaprotocol.io/andromeda/smart-contracts/modules/address-list)| -| [rates](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/modules/andromeda-rates)| A module used to add rates (taxes/royalties) on fund transfers| [Gitbook](https://docs.andromedaprotocol.io/andromeda/smart-contracts/modules/rates)| -| [cw721-bids](https://github.com/andromedaprotocol/andromeda-core/tree/development/contracts/non-fungible-tokens/andromeda-cw721-bids)|Module that can be attached to the cw721 ADO as another way to buy and sell NFTs.|[Gitbook](https://docs.andromedaprotocol.io/andromeda/andromeda-digital-objects/cw721-bids)| -| [receipts](https://docs.andromedaprotocol.io/andromeda/smart-contracts/modules/receipt-contract)| A module that can be attached to ADOs that saves the events of messages.| [Gitbook](https://docs.andromedaprotocol.io/andromeda/smart-contracts/modules/receipt-contract)| +**Note**: Other ADOs can be found in our repo, but they have not gone through the auditing process yet. ## Packages @@ -70,6 +132,14 @@ The packages also includes the [ado_base](https://github.com/andromedaprotocol/a ## Development +### Andromeda Template and Crate + +A starting template for ADO development can be found [here](https://github.com/andromedaprotocol/andr-cw-template). +The andromeda-std crate can be found [here](https://crates.io/crates/andromeda-std). + +### Integration Tests +Check out our cw-multi-test based testing [library](https://github.com/andromedaprotocol/andromeda-core/tree/1.0.rc-1/packages/andromeda-testing) to setup custom ADO integration tests. + ### Testing All tests can be run using: @@ -136,6 +206,9 @@ cargo clippy --all --all-targets -- -D warnings Andromeda is deployed on many of the Cosmos chains. Usually this will require you to set up an environment for each chain. Luckily, Andromeda has built the Andromeda CLI, an all in one tool to build, interact, and manage ADOs and wallets for any of the chains. The CLI documentation can be found [here](https://docs.andromedaprotocol.io/andromeda/andromeda-cli/introduction). +### Andromeda JS +[Andromeda.js](https://github.com/andromedaprotocol/andromeda.js) is a JavaScript SDK for writing applications that interact with ADOs on any of the blockchains that Andromeda is deployed on. More on the AndromedaJS can be found [here](https://docs.andromedaprotocol.io/andromeda.js/). + ## Licensing [Terms and Conditions](https://github.com/andromedaprotocol/andromeda-core/blob/development/LICENSE/LICENSE.md) diff --git a/asset/Andromeda-IBC.png b/asset/Andromeda-IBC.png new file mode 100644 index 0000000000000000000000000000000000000000..35b1e971bc30f1bf5c1105214ffbe288c0e6eb43 GIT binary patch literal 221962 zcmeFZRal(M(l!hPNpJ}6fdqGg!vMh&T!ICc!F6!g;2KS9607ihby9*9sBYDan2>HU(B1nXp+SR z5yN-K>U|Eum=96<{ys3T0D4xoGPNNhbmJ*>U6hrw95OZa-o(s|hMF1y=9I)9${=Sj zF*4fU?l+NQydHLS_B29JfX=3Pv#G-j*?;)}nyoM=wEm2D;NeoxA4=hgd0ZEgdakpR z4Y@krz`?^qBqb$1j2`DCXpJ=6HYh)Nf|iq^YlwO2yRs6!b4aEufpd ziFeI(mPw#0%9H5a`V!P+$%)#|if5}Pl )qsVIr9SQ61+p2X$h z{M>R`zO~pw_8$|okLI*fezBij0CT#AHg;TJt;VDCnE`>st%)j)_FtA*p?mxL*p!r5 zc6NuXP|bhv%bj2`9F}{G+Q)kts;|Ne<>&xoF T(#y~vcRW&KE(D}#ABI5Jl~d^>k=*B%LhW}>0V5~N8E@b9HCC*? zU^&k}S(&mqj{k4lOFu!0XscJM<~y;$rIekFv{z0pv8FO@QwCCy P)}d}Ly jx*>xJO>vYzT4MEy8o zb0`BRJ!!R|U6v+JyJS&>;~UyFFZrCO2Afo01W6W8qm4b3gvQ=OHaZ8wu7n)1R`?t6 zMZ(jl0#c-vzb$dR7pf>lJdw7YMELr{%q%9iPavb15#Kq@>EK&B3WeCgG7lZ0{HH_7 z&gc7oKwTG_KxB;XfT{T=Tr|Q#syZ)?+KSbOP2Zl|!;G%8%dT4%%smnN(L)(%q0oN< zkYA^5NdmUgcGLhnd3bMlI%&Fl>cD GfPr~Wn%hiM3x3txAm~B zwIUI3m9n0@<+qpgJsv$d%7{!cc$9seoA=0UnMCZkMU3M)*_H44DG$~oHVVuVB4xFd zmNZ#v8OW6x0umo(mcs U8R z^OxCKovC)x2?`44iOKG}Iv*_Yqf-Kw%(YK~I&AtMhod7SMa|9MCbw?%z2dZ=m;Cr! zFcRiy!TkT7bmOku5 +0sk_ZG1p4w?md zq6fQSKBwtmqiMK9>>SdxIyv#o-3;9udQxn8pvkeQ3yJ&`9PKVJO-R8y+EWkCF>*dO zmig8+&ya$P9d+6O94M<&(U|n&X=*a`G>iuA8Cr$l*izV^)JT0Mdec>v|JKB_(Q0R9 zfE>1X_pUGpy`cQHt%5Hn*EmUeQdX8-b;ig4f{CzIl7)p}zvHfw+%DN6EoifzZ_S%b zs8mX^XyAxA?<8z4xZtFem6U9AN@%HySrv758mBZf->h}V91WXQq2qU{m~{t7eQ3Zq zyy3@?iYyu-XpdY kKSKs`U&`NOQ-~1 zM{13U*1V%Rfu}d%M^KXo4u~j+4_FjJ3lbDx1{&Ucd8cJ+JE79}O+6`M5{X>A9#XSp zA}aSlv|wGa&(7n9yeCmz+tNUB>)4b%Jz`MMD$I*h-!5#A@ZjTB(E9e27(x)K3W0L> zF9>o@e*f0$h~#w6Puxznf&UUArH0xqwUqVXf~%+!6Q-JKC~P%JNK491I?J+&__@i^ z9#bq|wp_vOoU($sTOFg7#Lr b_CRZMBaAP|S#&b+PEmq0;poBo8M>C&$ z>&P0?;|_OjM;9IR&xH1kK6~@`7cZfAF!7r#EoB#2Z`5H3LQr^r_tRNuz+ec=Y3X%# z67|vGX3Wt ^XYK=zU4M_YV41 zP}n=UT=Bodx=AcxZ~?GO ksD=qQ{A9Rz k z)ez7x!o^cu5s-B{BOMF+YcBU@1)x ==+LY6Qv=DJ- zo>hj2cD% o@Z=<+uXyFaHZa!rTE~bpyZjwpj?Nr|b&M zo!e5N@;TBhfAp!)% }W*58vX2FVHUn-0u9^Beu<9Fg0GP&spozfv2^yc zkW1Y3MH?%r855Vh9uM8?XX$kpJ5yS?{KQtAuG PI6!cfAg##>1 R(2+fn4-N1a3q zi+sy^8t)ylyr8OMUA@clUHj+@Sl%7?1T^4VtuB5{gEy`*FnT>kNFk>1j`PC;Nlynd zcyL9$r3l^R&7GF`^?RAKhi^CWA+43=F9@~?wEG9+I`fogG{eISK?8|B7){Q^nd@W{ zNk!>HT6$i 8m(hX?s``gaLqhMP(?ITDfX5 3S9sQUBnf$-_Lfq>H|}Rc$HojLgT&2dMbcaa~Er%}9yWrJ QK{vLl3IF5 zo>`{~LO7=auP9Stkt6fabU!CwF(O^nREPYAlpZnx?)Nf!P&ar6%31Jdby|w_ zC=+f&8>Kxxa*9iEKFS*v*h5~Jgb4CL_$5-&J%%c1wirbq(;6gGI(aQ((t_*l@k7WF zAxMVR>Et>H)N3_AktJ zATSBpU-P&0a8nRiH1YHOa8pnG$qNPpe}vKf(JPNxUUMOxm>z~Oqw}4z^yQq6Tr%Is z>+z$_zUKps!vurT$x3>kkrb1$^D~wsM*^ONViLu?FshU# R8O3Hflc?dn_e5cEFyE! z4GMVB6dRQk5_^?t_oXsAg u5FR7zn5c^+5RPZGoW0*$kMenU| z(3g*hDr`S{ty?UuGDRKafg!DC%<*AyM0-gJnS~BBGfYwOUKa8Bs6M=B 5{}ABq8~r}ooaTP_|u0LQ1kADIasE!DhSyO?QEYZ zB)!j*E2pQ}+YB}AtTcKUQ_shHZ)g%L7!A?LDXf7z^tvG4!Avp=Rpi@4wi;iwxT+*1 zO;^4;=e?R9&+4){{U?maUYS=A|)Rs|KVnVE&7!f2AHi>^{YI_l08s?tK? zqtXxGkmz5y2?&vSDJ$y-ZL}=5WoQsy@niHEK-tL#R&!u}=cGLI5Lb_|&WN3RkAb(U zcrOGAODei=N3MI8#99dtS&;vQ7$Vy&ka(OC!^K4+AVxF)Ev#;PJ_0|tk&j$Og)z{9 z*BW0dS++mOc>0H 4Oy80YUk*}W0Tdr3|x>WERW<9g|wL#8zA>HS${^m`hH7AWxCp3g5#C{Qc z`r7`rn^GKSt@6<0emdsvhYhAgPU7aJ_*&F>DWS+^2FmVt=vazRvjQm C=3^NZxU0kK4oLLkS)U#VEcG;bX>odsK0~?A!*n0 ytd)JaIDs`huL!w}?h?>PPHrm2SGjpNFn>d%ehAB`I?F-s%RIxVc-i16Y(CX# zVmB^l5#Pg{0hYai>V)%BlJJBb78aNyu?Z2t2^I43;R+6s>kr$r(M>D0DFt7aJgN^# zqsZ?Le6^-edKOmQ)Yw%D!%}h`;Z5JGb9{ed$XRbszoOm+;dziWmz$w(q4^+{}) zyYoxAduDf5V5HZb+7}O8O*q0b8kt1TKZ@+}<(%zYC{dOReUH;E(M$ERY907WMj5Pj z+fp4JrqQqZr~U;SA;Bmk1{Ztt_72-AxaKf^4j<_1sf=vYBZWl`)^PN%AZqg<%zs?@ zNeEt4U6Xo>cultkK2}T9F4^#>8}p6%VOZyIH6j3%JYFxYBO+|TM&a!IJ~h3{|7n)P z#LIR>{HXR){NvMrp=*}1bf&YiG@ ?d-G`^ME=$nRh^}`LmHOF z<>l;y 2eDe$D2l}fE$izRb zJ15-r96$X%vrE9R24lT6t#~}2ERvtze%y!=4lggaZoi&+G=$}coyU& _ zPB*6UwoVZq0Il;$(HEI%fZ>m>?*qwR_X8VRsv8`@PvhKEji^plbdN8N+U(oyvBGyj ziMbMSAGd+fz>_{|j&X>BGk1Je&RAfawTUuCJmJn~A)O?qT2^VJ24eqVO Re$YGWL37O|m!c+QnFYmH^C z;lC1j1T@%NBDj)9Vid;ONt((+17*fPD75IRgw#p|=D23oUd2mJa2D8S(V8 hEl ztY&IOaY5)DG|s#=u{#iL8J8sk>q+AyP7-)7n8j6ZJ?`&s8r6%-1-K|0#>>jf9bD~+ zlBD`V*M~I|9i+5Uq(2+ZPt8PYV3GGP#frMkmDICM?~Omj0^8Q)x=9*C+Y=w68RKjg z+{;UtT@vJE<7OD^SX=& %ZEO l*0vq>Y+&kE5?Cx9E$Xv8|wCM^{9oZ4K=*hJIKS@u;Y|0#bb zpblA?q9z4LfOO+Yyo8c6FBM-84Q{`Tz-HLg5_lroL#{2y@dHr%l#7Fg{Y@ESsPk!0 zH%?8;b9SP1w3BK^uH~OY%VjEDIERpxS8gp%5{P5!GdqYZ5Cq|m&hi46j@8o`Dz*TI zTGo*3?WrGsOAz@%o(+ipgl$73^?qGl-5T?6)O9 8>#_VXX4LCIcwEQ#qpO<3x!_xN!9@e;QS`yqdh`a 5&3=ePR5>)xosDmbWLmPNUIJuZXl&3dN _M zdbO)UR*Jlh{94e;KIX4@A{ZAjH#gT~Y81(Jc|Px^T<#Am*@twcKh h1|WwDo=Z(O-d3%{0IGI@Orgy`7!!e;YQ8 z5403)MsM&9VQ4AoRZ%M-a6rPkV JDwLOSQ&qJ0Mp^Zq8;NC_cg2mBaxAbs zr$eRrW-0QiuQi`)Hekw&gxZpzEP5DZs%x3j{1-=(Ss}Z!u~OPQi7C?Y4=v!of@9DJ zJmjmzM?GVJPqj%kd$|ajpz;j#PK-En3*%=Qwge@dt{6=p+8?^@;fwd7gz+;H(%rSw z?AGeK+DZpT5i>a9!_IV=q 6b}k6a~_RK zj^!&3^$qHWJ6=QO!>^13szHiL3jA1q^YWO**I*Qr;>t?@mehncm&2M!6l1nuStCt9 z7^#tE?Nv<#-d2gID3~6Pbf^&zV}5~;$hxwAQ|OKNdZHuEo5JpK76eeHY)eBUZ$vgk zI|bL-=6Mv>aj2Ljgt$QdT%=!C^;oj+GWU+mXi3~&aq6{18^!^j_p2ynQ;jh+;;>tq zekKUaEeNu!Q`|yg@n^Y)vU5?%Ejz`CsLiNfZHJnd3#69lq^qjN2)n +(u zaEgy1Nkq!|q(zNb06HQZdK@Zc>0bI}hjX%4(?qvW&9qw_5>VoQOa#Hlbk&wd B#S$RAk!*IlpTtFlyf;$x@6}qrfk=cxW#lH|{ zxPHB(Dv$+Vc|l)kC3V|7W;KnET9zJ%2MId`wu+xkL$BZcg?=ZRkiLKa&S7yPadn-R zxw%!-?;ANaRo{8fzDNE`uc6@@^c5g=FuNooY(7OqjFfPw@o!-nZPt|YEwR24lRYos z9>wQVuEvV*K2#x0y(eD#8B$BTY*3ODp{5>)y|Z36Ql_;!6R=)r$){O{y*Gtp&+QcD zq6L!VFj^idEAw7nj?1~a8*zUfAzJXD{%tNGD)rjU+9W6iZR!f06jN#}akdFOu2!(h z9P_taB(sF5sV=KdGtr^%QO*~NVYy*g>cViA74tdo)1Epc)M9;L&AS^0MY3S~p@O z`iake9UbJ twP_|51?(W(n<^uiU6SvB9#;xfAk^WH!W z`b%P*$F?c2!min9gkkwe$JMPYPLFnWOZd*AEg}!wVij02F4#Rdr>5eW;Au32qb_S$ zMkIG?Tf)w_O8C%AbX@-tl8nj`Y00|dk>Ot|yK6l2wG(L|5RK+dO;NUHy@l8GSq~N4 z>-t7Ri#J4itBxN`vKqJQxoP^a7_QamXPGoK!qJ?RT@<0S#StF&lZ(ToJ`X-`6%-E6 z8|SJ1g0i9^eoalhrXwlQU@+WN_(xAnGCnGwN0}E`f7H=Ifj8CBLwV2h4&KHeh0+6? zPUTaL&93Xf@MzyjQIb{G!L&EfR+g)lMY~=dpAv?02fHcN1CpGhAV&Dd0(0S IzvGAD)} z#Gp|38-%9+$PqZVsTiUbzOf+^=oA#f8wBFh!UF07z8rFQP8Qq`o~Ozq5tvGwZBw>Y z%`es~r9aA%q(RD7D@ zS0DZw$nBs-uuTz-T_pOtk#{ZSX+2K_{#Oi}1>)r3v0*T iZjBqTk;=SA7uQ|xr#_tl|v%xvsjjn(SXgtrtVc=wr5a43oxYJ4W%wjF& znNlm*^8o6OrHf#d0d7R0ouKCLTO45mz`v!y?j=Q|%|X?!65_`9&g9>wk~@ByleQ!# z=`P }{@Mztv(N7Hkcw30i@!(sGLJ6JA@m5BP_vJ4}@ zc5HYH$Li>mOh#3tN~Yj#1{&~om(}mS?*wI==mwwr%s_hbpXu5Xl8_(}^FjZ*Np%x1 z>UH >yRaF!}zY%j-#)qe6Bp=#5Ob-Kh4u;^?jqdZkJK@ z;Q%nEvDmL1;g{qw=}rd(Ny*Q|9t*A&Rb`Wa_DyffI2$b``>AplYZQKP?>Evov3GNz zE6OxjYBD0Cblj-gtlTB;+dVn7OEUJUUTdik`b?Npj6{kRA1$){*UWZd&GZ_IR5d92 z%)W}b-W^^dOVpgQ8)lZtP|HVF@iB*OGbmL+D(K@`WjgwY=%XWW>uDhu%e2M~e=!x| z*0 j_2>21ec&b(f&2MBDoy)NqHcLq70qN`h(vjeb-zo7jse05U| zJ}Jt?n_Tyb*`9PNVj@Y6&5i`beQA4WA5 NJJ6&-ZEcf+}~>%*ycP`c@7q_$CDWuXiT`Q zX>bT=dP++n&kMj4Y7)Z70X#Ex-8Fc?e2Fyr9g$5 oNv4xXSU8DI{yG3g1!J1)XWu7W&~rqvD1LWZryn@m;p74HzPC zA^0c34wikP3QX#HTpp&SltMn#bNhi5@63FjKT>~pbbslLkaROn{Un9cjUnXQA2@76 zACa#g=<6Qu6%Alv*GJcVhK?@L`826Qzbi-Mc4vbQ+DPX2DYw$mVrP|}#|v31e7d`9 z;aD3OEqi~u(7!=LxaM|2z|qsTn=7zzUVoXT;6*&oZPqiic0QNh_Jn1BRFkOTZ8>eH zdRyB3?eeI@ysr2HOuZds(&ITAL?54gT~#OyrLy#NO=f~7M~C*5CXCqb4)L=VNx5%S zd^T&X5Ohqz3b)d>XKX55Y~56k?HY+D=K64*=>U{
?{l$LZyYd$W5M8pZ?e1+rJs5$}>Kx+qCY& z@df+9=q#fpLju1L(M|g=D)R$=O`x}==vdKnZ0ykP5G?V^mvb78amEy1YPwssJ_p|< zVSDm^_^_L}T6Gexs>G&_&D$_2=^+&|@^xjTN?t9nVxTgE-7WYEGK#~`o%;4n@oPWb zLkS{FNJRPQ-2&NrZjDsy?zzEN%JDU{#>q94rimiVoU9^%^unoottECmZf@|mKIHzP z;a*fo9~T1ziNXb>Oo3%BtUs~ev1eUwZ})~B)hfN3yQ6sVX1FlO0HUzWJZQ_-8jXLm zb9pNO;7o^I5BdYNg5Mybvq+ei?snieqq#UqwYL!(>FD%s ? ztm@bW?-abeO)=i+yy<1L>W^ytwjVaUJhRmpaJSnuG=%!R{r>3sy3Po49PQKB+GcDa zhlff^8mFRH!Z2&Aq?I6jS8Fjg10xGQ`%nlApl)BWmoNCP`~;ql?jJcdO12ENx6d#B zAEkG@&(4SGLFN(bAyMziSMvYM4BD20Cz_inmVK+Avg_>=>~03W>lADD9bmtbBZ?C9 z@2rk`7Lu6UrX@f0Ec|Ql_}!`5gkD0(OdVad@v2X`{BZ9~T`;uku=2;iK LQtU5ZY{u5Kk-r9cGG1JI*)tkIyyqQ!~VsfWRmvIx`7R&o6_6IDvr( zvHDukB**c}I^n0&4YPN%8vIR=WAVZ|mJP{5ppS#}L~YSqr0LWnhi6jn F;!FCn@=USEVr=#?r;sRd= z-^bZ7_$GYx=wZu!z;xkLSNETUe4fwo$+a%?mvoOjA5 {*NpLN_gnyoOC zFql2E&lw%;Z8pxw>Ri${DCe&mf?Qgsq;zvltP;X!9yH4XBX+`7rqmN?>Iw;pWCgSO zl>$$0E6D2;oP8eKR*j~I5^1|ugBOfo81~=frt0_pFQ^T!dtxQz(m{e5W|1E)-)?aW zhudhrrt%@99qak}5x<#+j(nSR#-O`q@=E9xDFkEl@wl}!6OC1Ga(Jy5FWXNNjosej zTUE^GE*u00hhU9a7zgDI2n0%I9nklnNOeFl9Z5r2?TJHv6j;<#i=Np-FTcOgE}w5E zMsXZ!t)JBOA8BMB;qCb3wmtxSD_o~c*ZqC^OI2GTH?(d@fw8++ZRR5MOh&1e2`k*4 zZF)X2E!;zp(@kqe6Ty?ovxAHG!CqaI{Un{lIUs4FBbGR25hNH8;*e>pDexLs5<|Y& z&Q4qkIKG)pW)IBGJGmivWqy6t!|vttk`Uso>&szdY10pkQ?}$CKm~ObE!J0S3N^do zm@acXpZNlBG@vs3(SIQv PXR7RGg9yzdWO?XMcyEokm_D?4fQOu^rFs=5 MW@>E@ZPB&WIfWn;W8|F^M`zB%yXZ7RS%P( hUb6d&Ye ztg3Vj$_+m*X8KF!1yl>xjTjt(CXaDn?SgEuYFUlF#g8_9yF!0Nn7Z6XG&HOlpvQ?! zZm!X-SKU3{ZP*=;U4}Synr-@YO^^2~{w3c$B$tD^u$>)}cqU7$ON;#l=Y T-laZssSzn8gVFim;tUI)R &$Y-i{GJ;@srL0RP*&Q2goLlZLXC21+OebFd>cO--ZgQ;0qJ zE+nK1G?v@m^2`+xc|)Qg^;9i |d2?%0=T37+f> znnKpYdaf_mF4%eRst>aZ**3kpJVBH*f2DppSSDs>f*EVBMl f16o zNip4V+L!vc4C?sfO9i%ldy23W($;hOfF$BHt3nh+L;ZI+X^U-?Ny0QQ;RXxvi?RJ> z&I@ZPLh}tMuLS3R$VswbZn}`KbiGz)9&(&G$`y)`LV1ywk6Co;9FjGhv+mfVlU!KK z3JZc9eW~;PS`VRSx3$YV_^#&LxLIU4PZMJlk)r>ugZS2`Z2a`EQ09`ge^HW1n1-JF zyg4u6YK`V@rv)07nM{`?q3|^#27r`x+aI=ChMZdNnWw<>c_nIc)hj4ubrqf;5?f;f zy99W(c7GXZnmLpWX}@;Osjs&J!Lndl3b2Szb`=`?Mr~Esi;Jr9rvoGPup5yBisu*L zl(r+N+GB)R2X=je%?i%|#iZ$o1SD1bEx^vrkd!UXW?pHLd-3}y3(*R|fzR2pqSX^w z1m)JnL Qe1e$+d|qHsdt3$~_(Vz5<={&79DjtIK&+fziZJcUCAOrj&<# zgF;JAV3-(yPbvErO~37J>PTs+w2T9OIr2(yn^7S4!FCX8ja!V4vW~4`X7pRO?H#)D z!I9yxZ+cJdo5a;E0-05KQZ4vjPRyIkKn@Rd{crW|!v>IviaYnx02LX+9KJhlUR^&( z6LeF3Cnqj%(`>&+{268vWkVz52jOjRo2{*_J>5^N`*jOf!{-s@ZiCV;y?tZyS;WyE zTW0WT;D)VCQbEm_mM2E=c<3`CJ2gLV;_I|Hj+=8wN5`5?5q*Q$eX5|KAoE%_2>Xr5 z!!fte{Rk@XZO4PN&@W_aFbKPVTmQ4EzjO6HJZ~bC!k!>{8sVSn!ph`HIA=c34! znIz9U@P{#FZ S6F>;mky-}l@)#Hv*> zlpA2) L0 z|8GG4D>oVa>*odR|A<})laLBRiFuu5`8^;_8x&u@no$Jz=d+8e-AJU8c_%j9TsA*e zL=CVW-ibHWjJbO{kCf?uD7-~+H9r4ilY?=QU}66-yD0C2=LlA-SLiR|zgEfWn`}bz z*`>>GOxwnEc=dd`CzLeuxtf3yQ*xSN`hDLgd5HESbjs;8O*Al{rDF )j(qmo%X5d7oB+ym3R3yjA B6Os`k!ritFg>y4Aj zSfV?+-Pb#;^_HvZb*rrEx5p~;Vf<|A+`t>bONkI8T`4HG QhhXB{y=hz@dB z<*LX8ktDiX4#+wM6K0t9YjFN%b`gJ)MT5SPIBtTxY|pxzAG;`bC&gs9X&*_!HghlK zTp9Zt6C994^5Wf{BZz@xt{AFfkvBCN-izV|+2 e6#e)JYNol~Rb^jkZcQss>ZXpTP%5Fp&fhof7oq7s zoowV-ht_n;E9 z^Ry^^l^5R!>pPk-+vjL6Z#+=r!0RYZaz6_Wu)rcJ{ _#q{bi-|B#U`XAQdUqCw_8cT9&h^<=-qB~fOzI+QRn;+Hl-Qn_L zUzPox!AKdo=N~_hBMFH9_q)wVE+bWpBL~R%bLB6Mj)g0+$r%|Dr>C|PSv=_X_xBkm zkdTlyZWjhxy1Hbvv@)tyox4I75Pcm6${P9is4FQ{)s^IonwUbFZ3c)qOiOAHcLWh1 z-s8X7{gU(?vXK9&qMC>8nz06A85u+Rbrw>Oi^nvd3Bcx&^L~A@)4~A2En3*Jp5U4$ z7sHC@i%-}kX*z6nq;Ku-8!ITGESj4GtY#G_k{cRF-Q%jqVLV}Cn%dr()T=(WIy(&e zSRma5=T>}_Sdd?Kt~2#7xn9NcZlXf&) lz=LLO1_{dm5$6)0oC$OPOVwb$4#` zq6EvZPuXqB$w@#LJ1)IeQBiT#k1P}>eM+zmG~upyUe$|-_%p@z&Hl`H5U?w-jq{(_ zo^gZTOX3sCz2knt{`#O(LQ6-NEQDqmzD4HZ?96^PwpAMt7|7yz`%PS2{M%Tyx#iCS zs*ufBj2!vtexfev&Xi(zhQC-c5^LtQ+BVV`!!-wz>npJ!KLnD<0Yg$gl8!<;s{~l| z?nN7z2G&c-9GHLmR*Kd$?+2L<;5oS$PqJeYm3~v!inJYjbP^H)T`kDWs90!z9a{Gn z;f$fC=Z+wg)C6(;zH5Q&ufAgvOzVURH;K>Dhs8R^!DhxBjzm5(G`Ve&p`WQ|a}Y{^ z{Ayf%^k>0VB*xychA@Z#Cf&ktbAA&wD^WXjQuBU)&{;VrAGRMtyB?2A*=c+ >%X+651d}A+5CKNfD@7-Cop3d7Z zOkSVw#?<(SKxN}lP*Cw{X`X-# ONfxGyWb=`z`XR>jQtrb&?MA`2zP@Et08Hhbxy_pFBKU*?tu_(mxzYG z&F0>ql~nTOYS%Ad59&Q2uz(3T2m+##eoIg9LKu$m4npfB*&SN7!NN(`YzI$G!2qFm zdp`%M%cSx0W8h&FrUu6naY+?Qy%-g4l?mwxD9>3qt)8lDQqcTS2fb)(|Ij#~`rJDq z5z<@YLn9gb>_8EvBIaU48b6a_%2GJ}1W{eBvn3}`Os~dP2c8n~sz-M#XRwf45ksSi zT01rIYbJIJJ4VA_nfw%rlb@fTn%WmXE>>Ydi_-HBMP$KS;;HOOVRMPH$L`>z0k?$? zBcJ9EmH*~0z}UE|zGp-EhS_@5ouzSZ;r)#iDy92*p*m@Mx7zR3ramC$y7v0!=4uez zkeHPf?P1f4X(~s+OJ4DW*&228 KtcGpjDELZuDy5S@o}n^bfMq#b0gXKdj3IvSMi71 z0zz?pJBW~hEh-r%vZt9)DS<2V*wCQnG@h(AEx+sX>Aoe8nkg&IWVkUrKGu%_g)}E6 zV#vA`;L|}6dAf3YK?Io3e?aJ;3P7x{{#~^^zlh|=@?FQv1w-t 3+1uD(jIVjm~j*m5*j&% z-&@>plUu~`E~;8j_5ahn`BE{mc=|=>?a?%L8*HzTP}1_BwHtpy2I9~#A&w^}cgiP2 zfKd0JbH0(Sr7ic}&*rPy6?RetJxLHV6&rg*X;3ACK@_HeRZR#6l3;MqlMlnKww`ZD z#J9Bu$qIG7f;oM}j)#jI0P_jU=nkZq>^v-@z HgC6^m#@D;;ivikH1NKsTJhY95cb zPxR<6UQlJgHNyRKH_7%~Ci8kMrisJudsf1`iRg$P`Qe4i{k~8$+?KySPbSK_p!lsA z=j_T)ehnfV-V%0F4a5jXgn=J%2qWbT9nP=jkE^XDs|-qW29k!1yDK|$S4-%+ECcdY zs~aBOQ(fib^KR#t$J`+LOhSww3B?xTZM+3lzdnQMCK 8aUk$|b| z57>MIPwmzVCmpE=t8{kMskB@PXCH>AMtOLdOncq^qA+fT4Qah$!hGfR`?pK b{T& zMYMthM~Mp%wQyJWF!-JAJ$dl;>{;8dw|fIa%0Wq^_k!;)F1A};ujL`JYavm+)90Dt z9HE 2FOx^m+znu*k7oj@Lck{5XdKQtH Hp z7K-7Fq{1+5)u+DMl??`CwOThJhLrgY #);98 z1Tk*-cAYv_a{&d1v@P`h6njnfz{bYrG%fIuX6rc;NAkGT{RYDYCh8M1JMvGY-w_^w zUE*i&l*c-u6#tAy3jTU_?dtBc={Nq!vSFp8!($y+@mlNl>prL%6IPORneB-|R2UyFQ!OWEvaMDr`&u)6ql;_JS3ryB78E1dn)auzt`)0aK-96A)=(ATJ0kV6 zRb~fVUznaNvywX%56_#4Hd%hmOZb?@SUoEUQ2*04MVrOsAbb;?Q$2NdY#T{+4j-J@ ziMe>n*z+!@z}}7w0^86CTRe?feVo_T(ZPj9CX9+h*|=zU?s#UaZc*us^n1I}r#JZC ze4uq+srOVn#q!@ZAYnsvE!I5)cX^geNk=x`=fvC>@$^iU?(&H$_GB6wP1IEXiRLX| zJVk-Kq_=(dm#g8cO|J_8&4rbJv>$yAns#a~k=dfT;+YoMB%{XGKc^%{`~Ifx0pm!+ zX!E5#X}hSBx_-j VqXoB~W zhc;5x*z_c5PVzn4vsFqFSfCjaVbcZ>bE~6OMLpYKQ7p-h76Tj4EFjm=*a!_h5B2C5 z@sa!G!0Vhdjh;4wPh!ihwbk8z^EG$FSw=29t{r0qouBg$S!rtE~<*uwO5Zsg7Z5 z(~%G`c}C4|xk<1#fa1neQlz&B_PLS1AxP|%O}C;6Oj+$8if+tE1Q@u`^6 $13n%RTOGmL@39#Czbvs6{L()sP%e$5Gj|wF{ zxE)rN<7iwpYF}NtGuz_xq(6v>Q>AeFyH4hK0)KnjUE@H2EqKg8PYe}VFihSD-Wd5D zefQ1QcJ?>7(`n&UZEc_)Dn_DM=G|dKQm-6ObrJmq<2RZ$K_^=M7ra2WQA1+hH^RN# zKM jG=rkX!JRc&z( ^lgO{Rh2 zAnGbjhSsMa@68HRd(%#YL>`!U&Gfq3D-D(|!?Nu&O|I?_5nhUVAhBNa*87_a;B>qk zqbuUJ2mM!o@>3BZ>M~sNv}LNbd-5y`Q4|-K(4P7m4fdJGJ=ps~vSEaQg$0$!@1@pa zQwDHfl;<@rd fBk>29F^!aHBm ze>RB}TK>|P%&NjwKYh$jlv}=5L>V|8&5(@r6h%gUs;uOF7o6GLtU|EJKyT>K(u^rf zOi*%_hOQY{KCSCZgpW)QP6*ijR>`D!&IFYP0a2io ^(*VE(ICcKue!$8GcprpXXaO9oLJ5;UDS=w-XIY_yJ~>` zlofC9UTlRVZwP0fEWkOtKQ8{#9W1}b-acJ-ihj;Qj5>j1TR24YDgKwo56kxm^Z%^K z^^ijQW?W(zc)zDQ!q=TB`&mwA1cR~eksjImW4qUbeM{sP=E54^MF&*6dRaHlM@P_7 ze6MoratZG?&Gfhj+rA&$$kvKyow}X(-Fy85!4Gw{l|Mv uqq!9 z(Xs>UBq)ZfvN-KBG&+-$lQ9BkFlH0*ayK6-6b_y8lRieJIW~*y73Z!+967n|ysSi{ zd5kWmbOZ-ai-1*__`EM9twnBe89L}c17PctP7#djRP4`|=?W>PtGkL2U;yS?U)W(4 z&viG@RTn{~x5UVm0+~^m$~yw0de m5yebTC- z7SG1}J;r~HaBGFtq<866QbweuoWcr*p&?p*e4lzWURDc#FLt}+0C?w7p`gHnSM(qu zA^d*`Z>ykw!DjhwJDb2j%^@wDGYnd&SdfwxOCMVCWTmH *KdPn9GYC~alqic-ksUmjBIN!0Bq0DJeOW9sP7Sy!n;`ojlBONLvh8Uk}iPlXP z*^Z=nKc8f`&A@Mql!f2n#AuFQ4nRq3%GMrCCUCnk3ezP=+CT3>X{MH$bt%s5JaQOf zVLba~dvy^+ tBHd@hLs~Ww62(U}6mEZy@?J zs* OOs1zC&R+Mt?;;TIi_~a$ZAe`?^__t=f@RN71sajX(r{m#ei_CYJE~ zGK%8CS9SnBC4=SDu!`I`Ek1*cgt0!)&}SqGtk$WAB)PjQ5fy0!P*~*z*lz8`$S;dd z{T G8}ALg65#pr}!Pg(5M9MPzE(y+OEW0#+jh zDqd3BQ)@PI%GCGK#65_Q4)ADnx!rqt-FDk^YWEr7et#udD?}mr%g>4Q|GTKpWW=d! zI|ut*yG+OeVQUWWWZKM(fziJh7_syV({4gc%i-EXwo}$p`klho_pItU_Do|1idDPI z%RdUe-l9)s^M$%?`Dm8JboGUVz&d(uW|HDxTVC&t7MIHKV!2M03N*q95l*nLQc_al z#?IAm`aEpV?Tp$Vci5Y{ 7 ;3+rQM%mH8^c3Wyhh~HwOyK=#tIL;YJUecO3h0A60%{hu6|=6F ~aBV0}?JO`qSEv8bj(k9Ot zRg6m-dVk?q0kMdC0l9_(v)+zBc{kmpIrBUHy~h7d2r|SdXlMcY-4_FV4&CAAvJL~4 z>1>73(+?MG(Lyg*$gm}td-yW;zypC;=SoMhKE~}f)@VHIx$HJWzt@FRi(0Wj#HOp; z+X3)t2cBK&I$a33(Ov1?4eWAz9gydE9N+|=Nfdz-EiuZGEId50j!FMBOR8_Mu!j%L zxjq1SO7-hePSQbu?fUy|Bz4*EH<>l5bD+keKE!Z(2fy>BSXBNg@Oe*fl@p)43(MDl zB@Lq ?jHVK1orTsheGrGuyb$ zDpnfpSkTOHeeCuqT&{$VbfWbY1yQcS1BJckbF%EY tb~5=Q-@ z@eT+XIijLUcG(%QTP-AOR#fH5sCzeHnzZw>^;|B|`mbYD{d Q zPuOroaxn%F!wR3| kt}tWj=~As+49Q&%LVR^PsQJI5>ZCH&cUPxaIP z;y>+b)qcOMtnX_j*`YGY XbI|h;Bid8Q0HI^ry5 X&Y_j8Dca_HeJ+gPqGj-{$9>TNb@k{`Z#~ zPiZ6dSFelKPb@4f VQzlGlSrat8#|P_r<82)W>rW1WeQ*K)^B-bvp0j-c5i2G z3dn5vW+{S${Rm9caH-hKfp5ZjJ}q4dD}=jCCV}r}{AZ@IU>)zls_>v?m@!OmFG*tcr_m zlf7Ptd#y$7cfxJ#()x9!oj_zkYSb9~hj^|j*eP@HYZOK*D!I%!qvTYU&|Ku}mL?|o z(u=9b$IrR%fM}MPRl-fiw(#*HF2>&r;+89Oitp-{t<)I*q#Pdv2ob&eq6(6OSqD_= zYNp|Q%T$wn0>$kC3z-zvCEHmY9h(#7nj1I%#uqGl_X8L+b&d3Sg#~@R-# Bma;n!Pu9D)1W^=j#5E(AoCOS^bY1e)HnO?p~_l zZY&r5kN}Zi%=3YUMDp^d|LeK_o^gu_yj&V{Z)L4y)R!trzaKf*=a_6Xql;-7Sc$vC zv8i>@Y@=l;Qy<^n{#*ps$998lH?0>Fvly~|F|A~;$C+7Jd+mOi4Q-6-&a^>5?=9A< zrp1kkz{E=ZNIzikH?_9IANls5x8Gp0p~K%=L3at%A#H7TA U$9 cw_*Qel>l{!ecfba$jy4 zH#WAEFMs*67K7#N!^D#t@)^&sH@4jkD5qU!&Gqjv{&%Sp?iM3vCRUoxYM0crU#WvR zS*n(lkbo&x%#G2mw*X&Ye)x93>1;ktQo>e2ZtgFqAFF6Xk%@|JH@N)KpQwYRr>Szi z(W*P|GxDXJsSXptA}=v**D|;b-P-3;+d*3Kf8`9o-<+{j9hYX EW$WR z7^nLkMFtACVaLP=6V B&Hd*{-TZoXg8>6I&!s1Qki+~(PDvJeIsvo= zJ8D`LMn5Zw%O_e6_z4z>dPh>fZj02}rxhT1P|IftonxNtyS9(|=8W*p_x%>mE*CK` z2_7FGB;^MVX@ |rNB)rv-91dguasw& z)520KwftZxvogp UAT z6f05A2!z&DHGjxB^~$>P^jngMCevA4NeP9}^N7Se9r$B>64UwRcS1mb=r2|=7z6~+ zPA=kc1TPr92opONp`cU&H9vZ=oO1*UE2y(@mrb-@LuN6wJ4zQ8K{kLQyc 3F6QPQ*(yI?lV#ogsyy9Y9>bIl>5I=xqjW!=kv?CaT(9D&N4vjwn^*I z4uO;D&Q2n6q7 0hV6>mx5135 zj{0`36KmSVl^N*!!2&ecpA%9l@ek}`RkaTUTIk^NpeXHJ!e-7NvoY_NFXRA-PW1m@ zg)2c_?(zxM*3S|A#i!ve+lhoVEj69VX*WA-G%oE5^}Zd5+yKIWImLY|5qgzovMQVT z^SB#}iiuftz $jfs;o?}qmvl0dp3p{9ut zDksep3Fo${8O*7{=#Dc26>?b lQe)k zwaP7w6GS$NDyX@e@ssP1AM|m#Vy-1k6k3&M6Lix+l$#6f+-U!8Kf(C>9n~oRY#7ki zk7rfINJfU<{nn;juf;n}$MIsUqe(`I2|%!XIv^K#dwW9@dAeIN4CIP2^|+bjl3h%b zlgS{poX#1XNN1zCPGAdt-)Hjsy&}h9QLF$H-PZ(ry*YcM_XjBSmY4VI{dSUTYtfL# z`X4APOe7-Q67dlKiKLhWg&EHOpqN(+oyJNIO|e=`PEE2dC!vns6vTUiUe_e6kvc9Z z5V6bC-Jed+Ob3bpfX=5^{JG!Lmvi#|dCw z&VG$1+6$I%)#g3H2*zJ?_Kgz?UbmH07h_w@kyBSo?*LCoxQ3p0-Cfhcw>LDALFGnX zcFgRWJShL4PVe7+y1#Eg&scH=3Ld&Cb31op%BO0>LN^Hs4wzCVtB{F}hP0h^$(c_C1ncK z =4;$PGO_w
V=#b|Gy{_B2kjP8ZME~4ObM@|K+l})_jo!W;Mul zzj}PMc8(h6( =q(w{Cs7_=e}kH<@7 zsZhzr`?k_x7Z%-ydRTvtyRcBi9FcI1Uu-6Tc}Kx5qmewt>K5b?mDKmM1S?mVCz+1C zofRt29+lfLqmo+Xoa#w_;DYCml;IzndKKyY9>h%*YjqiWHtC{ZE&MMrxpgW@0 c@n^r<#Zz931Sd zueeCba%FvqFHzRh6vs+^4(Hcb{rveej4mG`?{_K9#=59o#gNcY*>JBk?}_Q@C0S8g zymTkWEuV+ +c61nRp*?|M zfS(*I@DV$;N~;*(<#ukt=5mVfUChqz0lmT1;cI@f@HR*ooWV4Q0T>l6u&73EPI$VK ziJHDI6P^?J@63!z-_Rq5c%58+((kUUC0olG5gwB>_X~VAip$2nH+M*epSVd<_f{To zW&k=X%-Ckp@Yt|gjRqbgY!qaLRt27dJ_d2O85JuMyY5*^)Bd(UUp6eXxANSLGa{vj zGjh>r!Zj{Cs;_E=x#wJrP%Zc)%;ojSy@uMmCIQ5?A+N6$_f5B_Q!=%a==`6!?Tr0^ zo 0*z5LLYX5ekrN7v3bye4!2)}zu%S(SnB_*C_)0xy^Sp5d~T z^oG7q=JbYL_*wdT>R 0tM~r9|1xzTi+4PT-Fp9~@0`(33D<*IQj=fQjL%luDEF z#X#GvDXvM~&~VnFSv~&A^w^m*;qCT|u3j*jZ`d|Mb6G%--5H{Y9I0~;A!cesL4$#W z*o8-AuOej!=R^Ol2w_vPM(J~4#1j$E9Ro1`g1zGNa07i&i%44#!bCq0AH}S*bB~_f zWhP_U0;hTf#j&yMcq9Nj-q6k>A@iI$l|7K)Dc!NAP9&+Kot=n?&x?YGXM7r&j+C^f z +-&lG+oD@X&6j@IR#3SLo$0J|QZC*iK6&H^wh3`6 q3CV|(nW0%(_?0@1G8GKi%*LaDtT@Y)#b1v{1+kZ_Hr3L@>*t*hn~C(?Lf|24 z_St7lP7Ctw2Q$>nS(LA-?dL0&xr@>| WzEvR z0p)|}A8}0&4Lz7w$-YsTzM?h$dtN0nttNPcUQXD?rvA5U0o38P__=*U!|{^cw=yxA zQ5t4r9xgM~3|+h(g&<3Nbxv=5AJhZf82y#@sF ukRzbO@p@JeMXFxpI><$^Rg}TLx%;0fDQ2w=Gf1dJb+DN-}F}kmK! !6miXN<6JObnm3-+W(%_q^`w0AaGmH;|R&$oDp;wUV2>O?LR*YS&eMVk@#_e zY3O5x3o-c+`S?iCB78wA`nNF8p`u`=7MoJA!$A5VLAYYOIbXBb7~DlKEIVJ?Md4ZN z2s`tQ8Enqj>hPyrhp4<{y)dACL^kbE#J7N(7W<(}%vo5;WfLQ_Z?B_AyXr8)8@nR- zmUg~ywf%H% *n#+wqper{2?b7PpGCALct=t zTR%--SLitoN&oV+f0^@tP#ixzc*NPFlf^4mQ04uCI p5YfuMMQeGO9r(=KA(pdgQ=t73MkQBto25CAJ!(ubwadVJS#FX^+p8+RApe7jd z9m1=rABdfA8(-7nhPT*~lCmDZIHaL<_8GMc$5Iz!5pb0jRMd5JVZhxyh}hd9E4GWI z9dSvg>Qtvlw0dr*$M2%#=0;{5Sm;%9MSCw~&8OTX6;i3aM)IAspj&z92QdLv+oWU} z52Jw31C}G=QBht>+8YY=RJw*C!x>*m>F^?;{x?)H{nL)(DIccodkqXWDNjBPZi*0t zo9w2yx(!=5r<~92&h-lviE-t9 WOBV9Xx^jsSEPk t>zS@~a zo7s89BwW)Y7)D9^60C6FHJ*fDQ!k0M2z(EkU-+FsdfFNn%W*gj?7Eb4#By>81{1O0 z$d8R@uNUJ*v|Q-rEBG8N(>2obdluLN(2#z=r`3`l!-w*GFz`nwhn!mxfY(^;GZFJo z{Vy4?Ekn{{R>*_K!rq4u$Xk O4?RB`Q(Yb z=rVt=tOE3eU*ytC^grB76$a!f zOgOu)KK6%&SKEv _tynGD%)**rHeMdRaoP-N_v((gppdh>+=v^lTyANI+I_*4O z7;FSp<*oB`m=Vw|&?Qk<@SvyD2SN??^sZndF}{8Lswz{lsb%Ot6hb?nbeJD*61J$e zS5TG*+o&E~TETdpmACxA-3$fl$TS-p#7=V7sXG7tTb6s))*DIyc9|svm*wc`VyF9+ z2{VtC6n6nPdScdyGwd&+^2{qgfVNdv`_oxJfi z>xn4o5W0tlRB#6(Av@YJw&J&PJb_#Zv;Bv|E@I~zLQ5G1(g_B{vZ68-K1$}Ll9!K~ zq|B)y48o}96kDlY1K)B(FxJiQ(@wBMZZHQQSvjQ3#;Sk_Mf(2LJUG*mhf~`YGBfp@ z6xwB$V $=J$EayP5uhLPh)3$?`2qoL+0(#cth34|wNHGK5 z<*7ktpX6E#s4A%!OV>vuIf+`3oQVSxrKdiG-#0V@NS*7^qVJMRt42sn65*%D_(^&A z!YoCcK^Ub3Y? z9}`W1_FG*AmQ=)^= x%Hk+cWot>aA3F5Rr_w~u zcO?MWwOopPGmqCbWsi)2=6t$F0rV7?mk^++K85Q60HvV(qgxPC|KVZd(lKMAaYQQi zqNQ0W_@^X1I1Z2yd%fEEjgh3(IIge^u?J1V|+=aRZDI*y{22xD (HZ7 zFF@joaWcO;WFYMf&h3rApzuc{=5!9E7(uq66$Oo4sIa|C;)KLX?vv4sdRjwLo=loI zD?4@N*vS&AMe^tW3~73jg^9s4s G0kEVbgD`G)L+0C(i$^zaaN8Hh az*G^yQtxwG`$FFvXND=HfZ8X>DMPob9CgXgkZ$o6{jK&(Y|TUc_PX zM?yuLkJBvcr*Gyw=t L=ovgcjirA{`%k<`u z3X{_)d6DTIMCI09vS{b<{V8viBN5Zog=6Z{5>H~5vm{g5>gI~9vwAaSg@UVkb36}f z+gZ(V!(JsN7r<5ha6q9^ys56DjhN?-gl_ELg?!sun3#nHVOr>&)WGvtB5-_kWMm-I zq03H5Qq8~sdKq+mr_V(Ee0YKCeDc#Cd1^6!%kNzP1Ns0wvzZ5~ t8DgN$oo=jS$B2UXj6ef{|zKCMu+vs<-umb3abUp zm~+mLJ;GY1mP!br94l2$YwCKJqsi3k+$uY$D8D;hP=s4qBM1#DeE^Dp02R0=<+D$d zalA2&bR}Y9Oj8VtG~{r2bDNN`4xy_@xu0CnqSLHi45l0Mp|Vi@>c*q>FM51_1~7>K zvfV=)wX(BeYAs)rf-W(X jO;&e@*durbDfqVNx`j@;oB7_WRIVH3Q!^EG8q|6o*`WT2WY@IHqz=ZmU)FjK} zh1%MLoyBm!;e*0hWwkOx#ozwTrXNB)qXuGb4KXBi{!r}5QuD-mUK24;BtvpJ+vFT$ zM>=9Vbi~)htdE8!y14MU?&YvbY0 FBO=v)ywZ6KJxttaw0zrT< z6`Yy6b+a}ryHZ_)+CW34jlDlvt3MvPqNHx;Kv8oALDL<&jjZX(e5EDVV?=`7q)GN+ z`4u;XCg7a~BQ#NOA^X+H^ib}KJALo;QNU$350{jyXisdfe2Sc^y_^fYpP|1CKqCG4 zpWb{13cf~SKh@Be!cJf&`v}NN(!;nr{aW{NDu&2-mW_;wW^>;>qi&U%BeV%P*}REW zScFRp{Cj&^uuz%bV0{_#Nf+r+j!NM7lmqZwah47l?a9nBxlX6{tS_PqC(f30pV29U z8HdteUQ2&Y>}CMzZ+Z%QT9?0{%TCh%a-pP8jr-JAHn1PCeFX-=5;7iwf&%q0s8wAp z9JXi)5%o@0{E8KR3jt4Wd5@$Ex3))kQzg4YGsGa15Amt$V^tbai2diMqGsx)=o!P; zvMjbWpA-zKH9^)yj%fHKAt*=o{0dW*f?A|JqX~%#$WHtUHW7m>;@S)82T6Jh$6T{g zRUq5RGGZQySrRc#vHAaWNZTNB@az)1+QAz$FmO}+af2X-^VPU$GI)jia tIAPUxH}h+{Sq+_lRL&Ged8eqamHq;IzE@K#R0 zUOrUK0zLw-X*+97w3jF$gRvEiCyw~;&{CT)GH2qr#{`r#RDY_i_`Ok0 |7WqCTl4)9bOq{RlQAjXxw^ZvP`MT=-T&pREz8r$FF;I zgCdbp({|(45&~V!^>5S&+WWsMHV!;qJ>R6K5gbM0${eYxXvVIHbW#5l=g%mlco+!U z&n^(VMN2)UoWe?NGfT^5iz!MyE=MzmML9wmEpt@2bXJviL>nDFrIg$?vrbP$s?GE) z5O<6y6oX~-Fa1}{Xd*(upgKXBpAlf *ceA=3O^7lGW7|pM&Y*1Wx%lTy^e#EB2fJ!xlQu zTcbZ9xaQq{|_tpC<@^9NG%6%a)GD?SqU@3g6Dd-WmF3kpQ3No!hMsI zqN#o#-#6Q`M36o16R|JP4Nmrw%`u2>djeR{VN%2N@FPX0#Rla7I%-&Rv|Bo;NK}M_ zCpJIoL5$|!JSvn4HLaCfcM%mYe%$gIF|Uw67&h^`CP%Q H=8 zK^>(EdyPtDqa&gAYO9WVIjfdTfWYm2pZaS;b 5PQb{D z>?rs9m6EH0v0*?}?k6G-TZ%4HG|ez4=oE4Ke!~l$;2N**?>SKqGk Nz|cybeOv&L9Usc8Q&LLLn4s)2blaIH90a#nQv5&ao8JL`LC z;CbpmibK ^ipePYtXhCV%)PoT%}M{alHLVLcyV zrsg{l;g&1P-Q+JHYkMCLR=L&A%k`~jh2MjN5_M8~T`w91ZLjji6h7-S5B`z>2JdbZ z``z-eu-&(SAH%9+sx(`mV|)5OaBZNNchxd z@~s?1U1cdE(yRW2sRj7;dZm@TM?WQG<%p2=UF!UZ;#f*L6mqC1gr4V&=QwUcnUn`E z4wK4{yp(Y~J^@iZp2L!DaIdoLNQ##n=!6@jrS=ib0xrQr(w*xW&qi{0S5|8|QEmEl zyXg~enAb7x9m}dSczl~zo$cC0qcnYcip7=(y%it}^`zDA%FlK#CO4@(7R*&B?j!?K zQ67ZxvqE_doupPlCrXWX*d4DslI{;j>2!j*Z=C)tro(C9tG5BQcmO#$xmeU!R$00z zM}TBdJ)8HQ^CRB~D)Y!^C^HOBYhr 8+m( z{w`>xd#{{#{bB5Q26f9XVn=}a-yeT}u0C}X7Zmt3{||mXn*1Ym UmtujCtvOVe4@&?-rvoW39B$we=lCX z=@h%KoIuDVGpkyfQ&^G{CJU!~rh8H Lj=6`olNM+neENUk}?+P39u}TBYz6$N5K_9 Xv!kw-@_600nSo0E(H;)oxkJm0B^a~r6gm2e-NnF(uxG3YnVZr zl~mH9lc}cK5PgfoRK&)k>;44>^EeHw4!(WXS3?bNBQ&1RJ;{q)0XtV@c2HG{L6&W` znC~NBSdUryF*>3HA0H_*o6_u0`OWhC$-;dML#9fhEljVv!YYW&sY4^z8YUpywc0}R zuu4J>OH!d^V2c@yq%K`i4zNeWBK-L)U>xyHv>Ye)F!$XZ0uC9!qY#dEFwJDE8C8jb z=kui6g1Wv8@7^htrmL!3o_iK!7D@7E{_%T+dzSp2deV35RMragTIq8TDPal8cZqB; zMLUCy8ke}AKw}>p(Ry=(@-ELnORIvB-grSw`r {sS#DXf5PV=m7xiI0M-6X_e<8Q8m1K!nE(3Em%KO230wJe*R z7M8!tX~mejIeiAsuJr0w2w)@LMT)6BYh(iyTnQZ;Z~8WG@CrR$(G|zGVrwDToXEXG zr#K@-HPh*epB0A(+deJFT_>vX|Dc{>Zbm6gagB@mxFNd|ORyK)8N4#a=(^_?7gz5M zNdbA&+(Dm>l_sZSfQ|p7(J~>~4iiq!Acv`9AYnwAN~q+qspwy~p9Su95d+!sTSxA~*DpuX`1t(?4Mee~14S+AAAhzKcnk$cwd z#q`in_{fAz#PEuUBW(gwZ3S;+*sv9%xiZt=TE_`Ch`8?*fDW#z9kT6qoWMcz*Zzdv zBgh#L7Pf64%@ 6#%1ssPv^9qMI^n=$$};B{PcIjdX*=bb?^ldLGQZ z!T;$J3@SqS -{D-GTOlSSIBUJfOUgEYtY__r;`YU_-(dcHD~#!$U|14P zRoRx*Ut7J54 xC1L^^0dU_FAIYPWv365mSf?%crm~(c-zsP1iW0^uE6b0=ho*QYRJfp^9H*|# zpj~%N#?(xHXxa;YV1VzpM27QPIqY5a0Sg49)C8mE_lk8*P1Sc^awf&* (7?89(kqeOwEIxy)sQm~t7qr$+77(rRm& AgzH$fj7 z$W*!Do1~oxpuyUjgd(hiU(8x0O}9@Zax>AOXS5rlejpV&c^aVm<+`H!JAiBqJO;%5 zyVZC+PDV+Eq9keba4sOl?TcSvVw#KzW|@$)tCX$My|xw3fiSolsbeA8aBqPjB)ff1 zlP1hoJgy_&1G&$76)~Samh+CZIlZwtahL2u^en1`aMulpd*L+|+KEF^-2J9lkZ%Mh z(r2t2J(BNt`xZ8_eZ2jKxXp)Pg-QKOSPwb&^#=HXKy)??CPKmD3facG%4_SOHXak# zFl6A|^#X`n8ksFKLnC!_3gndV=)G2kWW%|D1h#p;dbwc&f+fRhSXAWraE6xPOS$<~ z7#x!r35j5IRMCbJJC`f10LQJO0kF|^Zq1KHT-@uLO34CeVzf~jpws=mImYWJ=qep( zLH$=84S}l`>61Tua|@Kmp8@}ms&@*H^b59!Cz)hoXJU42Ol;e>ZQHhOTNB%vq?1f+ z+sVYn*T3^W=i IKmoi`(bF;uOR~;FGxAU zm?91zG`Wo33ML{oQH$`nrlTWg_?>wsB|Ca92A-4*Pt?bcjqTVJF5Mw`%(edZDYq}U z7FrgDVc-eYn2>YB1kuB70WhiE3QZvWXV!PH%p2|8jHW9wnJKIFx*eh2{rpMeW)Tcs z{oLQYs OXG;qV*D}r@jcN$ z@Y6D?@MG@s!8%fV(2e4;q%Wqo>e3rjn)fI7l;6n>tdIUh0dn6C4V7 {4}TMQY^+8&^tpHETH>iqBjI-yV; zw{=#;^?EbPUm5KRw-t{tzXs3yE=D`|@x!n>T{!8l!w~qZu-i`Nx*SiLy_Q$1tEE8v znO7F@K@ja;pMa^O8XF7*m;3_xVX3N?u9~EpVL1A7U^`>FlU9#2<4byyhcOHtC0EBL zrLmb9TG}6eL+Ze6oKSXTbT99%tVnGtE$wOPR4vL1!lnqm#QXhA-v815Z=G6*_>L>U zd)3q@t&h;>; AsuJ1vuS7OH7($8>Y|oRkI&DmNj&J~+*0NX=D>@?ou~}xGkPWIUM%DQOS@V6Z z9Gu*@JmUocL6YU=;&ej@NE@(E9VGCNuAJ2Pduc>&9(aEE_sj%uK2V6JCw=;Sw`0aD z&*#%W=zx45_rC W@Tqn>E|^d z%mtLI%g@ivGg8?_ZTU0s*J;P6y6{)lE`BMx2+nYHyUc&T_O>WftX|X8jgdM|lOurs zm{|89IfGm2dkD-j42i<2t;Uc}qa7lN=c$=j%9dQ`-~2KU{=rc75osJKpf4<-q4U^6 z12}S)CF)m$s6r|#^8vd+WW?Kdk`Ta~%H1Ysjfc&Q{bhMGUKa-9JYEc E;o6DR2inTGELJC2esDB#jo);;#jux9K?M=a1t z*G-GeikcV#?lFt@jhL3uP_$W&t~SDD$-3rkWAQ+EkICww94i&F(Db(@_fLvS=Gr~E zg HH-mNodk$-Teve=$7+rb-T>qSXxd zk|&7Z81smAYy b`KJ8QI-7%}hVb^TLnBHza >x}9_ma?9|~O$P(Km3Rts}gR9y9Zra=xaF$cM$=jQSB!USGbwj;j<3hDu%vbfjF zbhx|D3c{u1^E$o%?Vo@DPUj|-wP|xT_q$Iw^3FeL`?Je2Iyym5LHan%)PQ{^tMO+I zP^Rt`qh2DVFBhrr&nsyeCr1Nd?8{vF1%u>O38D$fp$l;fuBe8UHZoAZg6qYNb_G)u zZwZu5ELXrmLVVf!Dkk-t^}#=T=L;lW>(y!wL3t&OMs#yZs^)G54Bhx+;J-E*13Qdd zpxMZdD>e1%u*9!+!?`6iRMl^|_k(_$>4%*$&i$U8gB^&Ii@3&v;Mce3;N~u@>Ofh| zJe8oL74q^VJImH?S*ygr<8_jlfZYd;T1G*JGqqLZAac?&I;a>X5V1o{Tbd*-PcCM+ z0qSn9&SEkHIA1b;RW+%o9To+R$+jMV&OT9M>W>+K$C|!Kvb{ Q z;LXEx|5W-?su>gdo(3YM+M};i$EZ;q4tzjRP)j;8HgcAF9~?9|OcRY8Od5e>vO7}I zK O61DKx!}i$*J}sez?m6ck4b1C&b5BCtgaU}7GvIPv-`8m{~7VTQ1_e} z)p5P7qANHCl7z?&mkLQ=fDVxW+(xysp@x>0#}xS+R0kAZ V%B)97&?OEYKLfC^Ezgy0KTPgGi2SFyGhhb4*t4u! zOsJlOsi)J3q+*~wpD!U}*fM-qdf(UVoJRKSFv~Z*om+UwhObg!iTIYB#>U3RwK>>P zxF|rwp|tUMv}C5zVnrdZ*o=8lDwt7kaVWdnbn{+i9@!kzU3ACj>JaWI?a08Ja-iB> zIL|n^;1`nj|Lad-A()w4er;dAf4JASY$7uu`ujf{LeS^fu-uiVx_=A1aobeda5rN3 zeA{Nf*?lD8aQ1^M5;`Wnne=M;4DJ>){1@4xv`Ta=u$H{;_DRf&&j)iGA=JFB@}Bqp z9hLGXj)^m)3oe?(?oZwYzKC8Ljtak!-I?%aSVGGQ_NJEz)=BcN9Uq6Nq-P8;sUMj% zO^?OGvT}8FExFR6tx0s!z&-M}M7M$vgxT_UDs3TV%MK?g($AKUl7;uSCddrJ)7S?| z&haZT$j-gCWc-q1Zd1zl<3{g>gH s(>aX@#O)5#+p>ok-Z;l7#ptqQ#S9Y6Zzh7 zc=F1`tgNgC>`a)L5513<>-7pK-k{#69~yiS9W|KUc+ij??=aXv`s%EkbKQG392TlQ z>}7Cq0MqTDb!$e1Q0XL3bz3F$wu)zgU9GsgEMVOFq& @WM9ZN`U}(uSLa?5&3EEV`CZ3lcb6>vZDHi@-5y0EwPQ5uz%>KZB3ob;l8Q?vyx> z(BNunYOj*gaMrX)dC?-U_01u9#b5echAPc$R th4@9bdV z$!!%>1qlFXg?Wt~drvsn@ci{_r&fUSz- t+W>K5hK_*6fyAnt$OgyDfl0Nadqx?NVu}y*#>$E zPcoU7;bk{vWb03rvprR+KEDg#^W|UqE<2SJHTyAt8vPZP=bJHy?-1ejMgG6x@|)3; zBfJppUzT8_Z_KQY$(+u}o#27i_+W0h43^`}Fh6iR`?y?_a_Ap}cQ0|o=+7P-nw&zo z6LY?oe9f-YB C=w_+xGd94u~E?ryaTK_i%cHe2q^rFfevx(^nK%5^(|cf$W>p z$@F={1~lG0zdSfTbv;lIZDqA&pI;J;O xY6EU |6W`(up@|2XYbn82N4#i>WivAAO!4%YZV765Z>Vr6J>&T@33(v9oZ v{YLw?1DAoamyqQJ}Ul=uM zo+c6UoZ)HJ!Xxyp?GUDJ&6mMk8mUtZx;?A2!12Xw#rKrQ znaDTNL&V05c8T)NbcP8jJsT#wbsFA$em}4Rkh> WDH|IK1P;K0ng5R;U}(s=Rg zH3S{F63EJPQ@`W7NvP#~w^SEV%OL~3l*>A?MgWfUG3uH)BhXFMWqBs9^d|HH$u#7k@;5Emf_0?^+RjCD!xLSJl5m<(fV7j zG*|l0&Dp#WX6aGiw6&as2xNb^xC(BpjP3%{9v%)I>?nuoQ5`wa<7yWhgn7@_#xe zT@F~Swe{FoSp%D5;W`?jClT`Emh*hEd!vQDTmkx~EqmqnYEqBlLmJJ-M2Q&~OWzsU z$H1RnPFjyx-GyAKx~^ZPr+0H}E05TIzJdq(g?{_EL;24_;r=HCL6*0Bd~#Yh+i`_s z`~Dv-pSyX?9TRlZ6ayn*%5j6?6aTJwh-rg5E!i1o+_t>mR F4oCC-?#*P?G-4 z)nr6d${0IZv4*RR0|Q#e65@I2--o07;8WPuXy!s&SXpDT1ubvrYml)8)dX2%Bf_Q0 z#xQPjnwub+cTDpEr^cIz(N$75lb=5ZVlKlHJDuWIH1x?hk)3eKVLOccK%^0l_KdHy zfj15H*x;>-DTdO;CSzLT*1R$f-Vd#v*qLuNQqy93#ay1ikP0Gt@0-EQ8P=|dFUR-4 zJ#t#NDxb&}#J2V&EXMY1Uzhj+YnIneM9L1397|+Hd>(FI!Y&vv|NX&Cv`@PX+6!7gzkxXkwzZ#3V^!8{R~w zQPZlTDM{F~bUC{kNPU >BHJx{g&i9xbyw9M`gO_0BZ_JK z#-$YLu2PLb#8W(3l5{!k4NiIp&s21kzF*nTJ;~iWOg>zA;co3|PxlbCcs$pCq~(n_ z=E6g)CFFx?UO}p2X9%3rU`0XIR>^9EY7h2IC{6n{MImN+59D1-dwh6#ZU*==j$C|0 z@AVVaYJArFBEP~%@Js86lWqxZkU}O+f)up1d>@7^P{5v;(SOV)rq@#_zQeb*Wub`g z$($uMhh#2^HZ!8YW zu;`?d>S92^sl#u_Fjmca?Rjx`npc$foHl(WO<_s$(a< tcD+SBS z3>9u*x*-)=K^&*95O$F|)SEP&+zMu*+ f{tF&_K_f=-R?Op zdJqs@Q87t&+X(BO 8q3iaxsvWJ&?3cUHt6K%kRv% 8j*iaG z`8iyNPM!N1-#+I45;mdX!x2OeSCP>FkbJR(0&4f}s+~zw?@EDTD!W2z)K@8!vHI;l z5)VHap9=4t=)=oD3goIiy#kZHEJ%XxibNci6qJgKUX2 +bk!i7 FybtV^}~^@8p!rpI9+l;c`zRN`@VDYjlTr&W|4 z?~&T3G-HJv^|n8L{~Uh#aV-d`HHq*y{x&HeFfsMy_TyR#s;#v3aLoEyv>B1OknjfN z-3atU IgO!W^CG6=nQu~r#t&|vhofP#|Dq*WT o)Z>)yJ zbDnUFx{^{rSLV^Vj73IGS#EDB{=wiu>mDWQ0mQzV>7J!S5%(aQ6MC$66lL|A(7a+D zGL;nbJ`8-UXlo9MUxk3s3rXW^p7xEvagy9k#}W>xw(z)=vl2hcjX2M10UktK9?Ixu zjzv-GagXhe**f9A;@tb3LLZFNi)fei4%{_7+u9uybJ5>)xidOB2 zZ&F-*d_21H>E1}RgtYWfiDWXVkd{7F{KujEvsrmV=R$ZqB_@b|?1c#S`E3Mu;-&HK z2lr9Busg{5@`s2W-H^kRL#O}5j_E%+2D|sbI{Y{huSRb#L0K4BpjA_Aro_}5^V+gB zskx*sSz^xXP!Lv5Kt*>MvIc=CTK6%O-dq;hU}FIE#5=x)b%iJ{O7bP$0qT@DkTvJ? z=vO4jVe4a>Ywmj*AL2NZwl;O-jEsn}Ex<(X7qNS *LVuo6ADHUENt- zWbcaH(olr=G1SevLey3fopDOywE>?8jq{sQ(RQ-2)V%Mf?8fsy#5)&XxU>NEQMDH# z_mB{2;#=_3*m%q%KAsOxW;SGdP63d-*Y2okE~LC)(*FcpHWb$5%v)J@Gc(mPm^IcB z-r1t8HHGU%w4I-ODumrIT6W3Z;WqY|k@Hhpj9Pm{+s33dPfU1t%t@}kR5Wy{8-Bi3 z!~GX W4c&iP|av=GS&kfo);TC-)6X {WB42F^?jccr+Bp&q)W`n zJva*Ogaz>7Dk$koYPb9@6!}n%`W6nNZL#IiR`7K747UD>uHbo-Z%!~})K+RmHH3-N zm&6V%Bw|<{PlA@N{zjqk!uefoygox~e@XpHK>3o1!;8-axRf3&E;AC82=)6)qHc+! zXy=xA$4L5#yt8~&$v}BsjTwWITU70^#R|=$U?-G6>1mQzu@1{%J&H{e4$$L@oc^wi z>LiMcCH@54rg#+Y_ 4o`hta;g2=32dH8NomXj#{=co;*4M)bz4=ySq|$y2xu8jug0 z_O;6xC8=|RM`O^lSw_OnIqeNcT7f3WOv(D%ZFZ1d_)TPG^w=z BGO|dSxE- Vr8%NQ8q`$M`)5U=sF#o!SsDmAN=rC@ ziOsH_FXVd5Z9zsO4IE4YLI4<68&ORxfk5{a(Tzb_#B&8FFm?frD!Cv!MjE*7kmTd< zDWWU#E#o!DFAXml>}T47I$5D>r8I3VErDpKl%yd^*_;ZKZrVo8>y#HGey=>R?dz867VE%^z*Ms3EFC^=n0!3en;Np z4iGB%h8eXwRIPkckjm%fBLm}^hgTNdLE18lj&>(txNN`c0f~?12xOjiB+{d@9ci-D z?c=W;4EY)pq5y3s`%%N4V;$70fC7Eb@L$2vSC^h~sTvUwU(DYv $|M zd+`J?%NGUSdr6^2%Mnkx*EC;Fa2H)XnmFPBEc}3`n&ZqP11#H=HWR#+9I21~*nFuH z6Px#Y>)4B0wU2Z1Cg?8wQ`^xJQqpTRC!+0$k&va7m6rf&R&i`ukt(KHbIVG~_?Va! zBb~6YFsbDw1^-!+a7EYjmeZ8V {iFtS@9<^Xag?M4wYnrnDI{!Oi<$|xk+G9;(w*6k)` zb0nsvZN)XfGHpv$*VcliiW2I8d>#oY&8M E)v`w0(8xgDj2#n-& zbl8tJD(mhjhIvqRi9KC&vZ3q^aURv$J8h>|y5$$o{(a|C4r6*u#;0BMr8QlGl~FZJ zrme4*a9H}wG1ajV>^ZLYFqib!Iiw{Ck=1gk70j5CflUE9oxG4N c$W&9bIPg!AjbExxD(Gk*#cEJ_0m9#M_IKPrBTml5$HFEnPBm z8%;D6Hzd)xxe-*NrD^;^G LV9` |AeIX{M1A8``R-xPLVKc6F)Tu)h~NnELHj2B&i?u+U8f%HEn*=%M3_YF}Ln zBTYm}s)S5an;P||e>`bpXtk)#yNHybN6l^BRtJL(yEwe&=dkG$y Ks&NJ~?6l%D8ZFyMkaGC8``Grq@_aAr<6x{>CVY=fiC=dz{V{i#k)+c>IZ zQj-|77ygNolWRq}Z_K+_GSJV6t+gtt c}rDu%9o>uN#`tDo{X3Vjyl(Fxhinom*GR=tz|eT-X>=m6Tq*n9o@u0~v&> zvyU@V$;aMKUJrzh+gz6=7(7wR;5SB~(sLB_R^m{NNK#guRjHq3Hf|^V&K{efN~#L# zK7c^Ldy |&3%pxCb z9OBJMzL^n&0M`Z)VpIc)fmge)WdjGMs