From 52bf8c33b6d6357f4a97f85a7e374bdb8f6dbad6 Mon Sep 17 00:00:00 2001 From: Julia Ortiz <94128293+julia-script@users.noreply.github.com> Date: Fri, 16 Feb 2024 17:58:43 -0300 Subject: [PATCH] Init command (#5) * rename cli package * rename cli * creates init command * cleanup * adds changeset * fix missing types * fix dependencies * test different bun version * tries disabling macro * tries with bun canary * hardcode template in a string because of bun's macro bug --- .changeset/proud-dingos-beg.md | 7 + .changeset/smooth-mails-wonder.md | 5 + .github/workflows/main.yml | 2 +- README.md | 143 +++++++++--------- bun.lockb | Bin 535656 -> 577152 bytes package.json | 9 +- packages/dappstore-cli/build.ts | 17 ++- packages/dappstore-cli/package.json | 26 +--- packages/dappstore-cli/src/dev.ts | 16 +- packages/dappstore-cli/src/index.d.ts | 4 - packages/dappstore-cli/src/index.ts | 5 +- .../dappstore-cli/src/init/detect-port.ts | 43 ++++++ .../src/init/get-package-manager.ts | 19 +++ .../dappstore-cli/src/init/get-template.ts | 26 ++++ packages/dappstore-cli/src/init/init.ts | 92 +++++++++++ .../src/init/install-dependencies.ts | 49 ++++++ .../src/init/read-package-json.ts | 33 ++++ .../src/init/templates/dappstore-client.ts | 8 + .../dappstore-cli/src/init/write-template.ts | 8 + packages/dappstore-cli/tsconfig.json | 6 +- packages/dappstore-sdk/package.json | 10 +- packages/dappstore-sdk/src/client.ts | 46 ++++-- packages/dappstore-sdk/src/index.ts | 2 +- packages/dev-wrapper/package.json | 2 + packages/dev-wrapper/serve.ts | 6 +- packages/dev-wrapper/src/App.tsx | 2 +- 26 files changed, 447 insertions(+), 139 deletions(-) create mode 100644 .changeset/proud-dingos-beg.md create mode 100644 .changeset/smooth-mails-wonder.md delete mode 100644 packages/dappstore-cli/src/index.d.ts create mode 100644 packages/dappstore-cli/src/init/detect-port.ts create mode 100644 packages/dappstore-cli/src/init/get-package-manager.ts create mode 100644 packages/dappstore-cli/src/init/get-template.ts create mode 100644 packages/dappstore-cli/src/init/init.ts create mode 100644 packages/dappstore-cli/src/init/install-dependencies.ts create mode 100644 packages/dappstore-cli/src/init/read-package-json.ts create mode 100644 packages/dappstore-cli/src/init/templates/dappstore-client.ts create mode 100644 packages/dappstore-cli/src/init/write-template.ts diff --git a/.changeset/proud-dingos-beg.md b/.changeset/proud-dingos-beg.md new file mode 100644 index 0000000..9e4382a --- /dev/null +++ b/.changeset/proud-dingos-beg.md @@ -0,0 +1,7 @@ +--- +"dappstore": patch +"@evmos/dappstore-sdk": patch +"@evmos/dev-wrapper": patch +--- + +Creates init command diff --git a/.changeset/smooth-mails-wonder.md b/.changeset/smooth-mails-wonder.md new file mode 100644 index 0000000..944bdfb --- /dev/null +++ b/.changeset/smooth-mails-wonder.md @@ -0,0 +1,5 @@ +--- +"dappstore": patch +--- + +Rename dappstore cli package diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 3b31177..4e99fa8 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -8,7 +8,7 @@ concurrency: ${{ github.workflow }}-${{ github.ref }} jobs: build: - name: Release + name: CI runs-on: ubuntu-latest steps: - name: Checkout Repo diff --git a/README.md b/README.md index 7a4658a..1b61549 100644 --- a/README.md +++ b/README.md @@ -1,81 +1,84 @@ -# Turborepo starter +# DAppStore SDK client -This is an official starter Turborepo. +## Standalone usage: -## Using this example +```ts +import { createDAppStoreClient } from "@evmos/dappstore-sdk"; -Run the following command: +// Waits for the client to establish a connection to the DAppStore +await dappstore.initialized; -```sh -npx create-turbo@latest +console.log( + `DAppStore client initialized.`, + `Chain ID: ${dappstore.chainId}, Accounts: ${dappstore.accounts}` +); // -> DAppStore client initialized. Chain ID: evmos:1, Accounts: ["0x..."] ``` -## What's inside? - -This Turborepo includes the following packages/apps: - -### Apps and Packages - -- `docs`: a [Next.js](https://nextjs.org/) app -- `web`: another [Next.js](https://nextjs.org/) app -- `@repo/ui`: a stub React component library shared by both `web` and `docs` applications -- `@repo/eslint-config`: `eslint` configurations (includes `eslint-config-next` and `eslint-config-prettier`) -- `@repo/typescript-config`: `tsconfig.json`s used throughout the monorepo - -Each package/app is 100% [TypeScript](https://www.typescriptlang.org/). - -### Utilities - -This Turborepo has some additional tools already setup for you: - -- [TypeScript](https://www.typescriptlang.org/) for static type checking -- [ESLint](https://eslint.org/) for code linting -- [Prettier](https://prettier.io) for code formatting - -### Build - -To build all apps and packages, run the following command: - -``` -cd my-turborepo -pnpm build -``` - -### Develop - -To develop all apps and packages, run the following command: - +## Subscribe to account and chain id changes: + +```ts +// Shorthand for dappstore.provider.on("accountsChanged", (accounts) => { ... }) +dappstore.onAccountsChange((accounts) => { + console.log(`Accounts changed: ${accounts}`); // -> Accounts changed: ["0x..."] +}); +* +// Shorthand for dappstore.provider.on("chainChanged", (chainId) => { ... }) +dappstore.onChainChange((chainId) => { + console.log(`Chain changed: ${chainId}`); // -> Chain changed: evmos:1 +}); + +// Or interact directly with the provider +dappstore.provider.request({ method: "eth_requestAccounts" }).then((accounts) => { + console.log(`Accounts: ${accounts}`); // -> Accounts: ["0x..."] +}); ``` -cd my-turborepo -pnpm dev -``` - -### Remote Caching -Turborepo can use a technique known as [Remote Caching](https://turbo.build/repo/docs/core-concepts/remote-caching) to share cache artifacts across machines, enabling you to share build caches with your team and CI/CD pipelines. - -By default, Turborepo will cache locally. To enable Remote Caching you will need an account with Vercel. If you don't have an account you can [create one](https://vercel.com/signup), then enter the following commands: - -``` -cd my-turborepo -npx turbo login +## Usage with React: + +```tsx +const dappstore = createDAppStoreClient(); +import { useEffect, useState } from "react"; + +const useAccounts = () => { + const [accounts, setAccounts] = useState<`0x${string}`[]>(dappstore.accounts); + useEffect(() => { + return dappstore.onAccountsChange(setAccounts); // <- returns cleanup function + }, []); + return acccounts; +}; + +const useChainId = () => { + const [chainId, setChainId] = useState(dappstore.chainId); + useEffect(() => { + return dappstore.onChainChange(setChainId); + }, []); + return chainId; +}; + +const App = () => { + const accounts = useAccounts(); + return
79^ZgAuAgxo>2|-8d?z@Dm`nuU5yT-TT2SfVY4? zvHx+Y_brek7z*T(r5^HWU=KKr26(oypH4^zo&grr+9QTe$~k`s0y^dkg~MjbPymP? zS3V^j7_ATkCDsa)rRB*QhkmVStgTti`d#u@FV1xj(YKbYp5bFmt6OmE>6&wVtslLU zUbDt~j_|ER1528=X4DNbx%Q>hOIuyEbCRD9tM=`}N?GKxvw_d+vP2YJTC0&IUXO$>%);T<;W3>&Nejk%?dPbg=c{_}I{Mn0}#YW_< zbgswF5$!iF>3;9a#r|(EuD*KRoQI!e>?-RsvB~N`p4BZE|F>=5j2#PG{B$bqhll~Q zq7QZ2Q|Pg=W!J^LAxkSQTt0AyYr%q-A3Q1$llEiblmmSngUb$IwD^Fl)yA{G4Q{b; z|G_$+w>$Y+o~wOYc6>5uTxNrQ d#!oK$T{=o{&cS4(!Q-d`d9PrzxD3YF0Q}kuef)r_3Yfk ztDFe!^waQ-e*LTNYdB#}&+poPwm-Ubho+8(nX^jF?a|x+X^+9BE?%8})sr7Q{o^0& zzWsRLk2}}YTx<$kb|P-pKP$W3Z@so=pG!RoXPrMC+VA}Efhh}3r=zcbR$|kn?Oj5v zIv!3q@n~(S2P>9^XP=oeF4bap9Z3wSIq|cHrE5?17}BXm-FXk+e&D+|WR2^g^I>wU z$0w~nq<6bpDD%1BGwaU SQK5aX_`$Fu}N|lP+JA74h$)(_4CEK6O*XjHI+wWGN z5jlU$o=e|ci+b{8<}alpOC4`psb7uOfh$@}SW@KYZr={O6VS0!jJ=#=gJs5%Tdq%h zMmfIf61P}4y|-;VX5X@R0>dJET;KM=*4rQdw)I}YkCt7z`|Br 5ikUBi}CD0rsMS!cUPwV&Qk-*J7mdupd+jf<_US-DGH z%bxky|2|&0$N9BOea0JQ2JEQ2%{O`KwB7yvzkT837+B!S^mqJg-?%;G{>o)d(l$Jw zcJ1%M*+CD^uW0x9?)NRPCM;XitEGSKw$C07D0)9Ct4PhNy?zSK)XNm`uT}2U+391) zm+W`E(Sn*qEYs_RENlJImCTPz?0$5wV%H*5AFn-Nq_+xk^=Z6*$jm|}w b z>SFb&huXFLpxT&yvnTgTebK#q%SU~>FV$Y$eR8bE>?PWUiVF^WeIqS&S) 0NJL89A IaXV*) z93Q%`oVnkQV~(Ev*2m7P;k(AjXjI2YY*4|t*I Hc6QBc1Un=;?-7Ba0#=MVc0 zU466U(=&gxt(;YL<^<#SMj6JO#z&2z!5P-7rd6%SY`5Px>Vza#TRpenzKPnq?|xH# z+m?tLPs({(i%#D7@=1a9F_nIpzHh~J8f1YVynN%b%7k7QeM=bF0bd+M-T{?1}wfuBl{d_Cx+g@r8?Z zXm|0S*^#?4e#stP=Zkx_-;Qs;HN8b!lX0PC--1;t6t|Usx7U^9Tg$g^;%qm`sMD(J z*3+#XS&TaMM;S*ujN00^<4}|Jbc3Qj`~CP=?yYM(Z8lk}`NkA%qdysCtgZjG(YH(V z*3(_ArfPW>HkkHqKxC&W?d%;^{x$7+=wWNM9@Zn<^UZ73v(V%VZOYDVA0Lrnj5IEE zjW*hLt7eSqmZ(3&mT1Qon%fxBH^|q7w+lu uxhIGaFgm?Boj3f|-piXl+z(BeSPn-wUBI!M&xu zDaZ;|R}^4nfmZwp30Q6xH>X*R%wBeVAB60IneCbVbi=>5-O>(cxrXk55vCB6Ze&96 zIRtf$4ZVZSS{}o{kKG)d$8Z9^%VT5$%H%b&0Dbcs{(bG{d3g #)_<1Y$Q)od|C!&&8erE`aHQ=F zEt3(58uo+L7xmFuJ~(yJFD4_qr_J1|ppiAuZhltS@E>H?d*dY9I;Y%HFj{OvxY+bd zU^r8e!Jm1G8vcXrdPf}HXpYIfr6fkh!whu8{B= t|tCn&&?@}?uiiGHwJ9~^N$QP`mD1W1r;U8hQ zR>cLfx3@{wasQTB&O*}B9XHez;)~PwK(=NXixdU}?H)o(It~GB@xikV^mRzEc|aM% z-(lA`Kp=YqzgixE1+l++4V;Umxg+}7EU91(jSW46&Fjk=&M3QHu$;^m0j M3Yvm2+FuUFgPZv1V(C?HWD@aeN2ydMOYs*=$m#rYJzzpwgvqXS37f#!P z6r D1$ zRyHzY?RqfoX`Cj$3}k&Q7#q(mCe2r1K_ZXK*FRv4Qq(!bW(ll<(GiQ>7^WciF-8or z={ps}0@cr^=fSH1){ZFzqeH;tkOhtj$_>&SS+8RDAS8|13rlW1qHAab91pP~!8XMd zG*7N(I1}yqP9>Cc`95`_;>($BtyW$7{nh#qO^I A>+|$}P~`1;%n>Z1iVfY!%&u9~;*-oTIVGB0OlSMU2K-FpdTc zOSI{J^<-rt&oT|Hy%8`tSpN>GaA=tsRhIg&CCIpq1#To#qFe6lR8x?tzTq5eH|q_I z%&~U83mzXxcLt8M=>`~El|~;2>k1|(>s# @BkNtez63(qFHWfQ4Grfw zyWY|!trgufkGC0F5dI2bPiY()N `rlyP$=oAG!N5jF)_A+Vsgax&=nV?| z4aSATNBE-&oIzJ32(UhlZ){|_?AAXajDqmh%;}Dy!tnsB$1J2;ArH&jFq`>ou#uH+ zH O zSc}}t>e>zeNp{@@*Kq{J46=LyhUK?cu=%dt$U=6lCerb8PmNM6w|m48Y j1LNSLR*d62%? ^XXep0{YBX^4{ayn=lI z#$`>0&t5PN5;U v`UdM&P@Jy7P!6!^Gr-s~g1M*7@(ox+BMw?RhKrFU&S{ob zU`>nwN3hx5%5YA%TaG~h4`O3u|K-pI4zpRhfniz07L Y$#LPN%>bh@a#*h_O{ k8PPfm6Lk{m>L)O_X{w3R2XEw)!xXQ zZP%-J@B{>hAO=jj6FsneN{0T2 zj?! z9vH%i^9*N^GFW4V8XIN@>(h{;g@}d0HuK4@hW~uKC88TVYXr;>wtR+EJCS;dR0ol2 zjdi1yNX %e5<(`KBLc2a29YcB885m*HuY+;6!ZJi-@m}&R zIs84vraQnmc<>mO-A!QB#HNHT>erk+o~kSL&RNm1Af@&;{6Dmt@ANjDAKG<$A337% z1lGDVFzz6E#6q?OjDx3(73T>UL)Ppb5sR}U+}F~$JtxG}*T`CAH~-Ps@Lz1#YxI*v ztYU9Gox>OldHPESVk^N0*1Esp>|xg@Ldem>VtFXY3c@bwM&Klyo_~Ox%yP)OgE0@o zi4)5lFb)|89gErpm51{X=E6W}0v5AVLB1gEjoX8RO+Op!mNzlAGyYiKL|-~co+nXy zV2~9=PDRXdQ%z&tM@{s(2%MIvUaol8z_?b(2rDv#J&)@VZ0cjI%V?r60cX4jUF#Jv zMv08 _gfpINB_#*yRDu!izuuZ@GT3!){Y*n )4hQRXYUhj3&2pK4H z07Aj2FE&ek1{iCGYscF317Mh p*;6g&iL%`=iUWW3kF3P;R_gqkwCkAU?AlgEs=T+#sSal3-7 zAXso!3?2YuPb^}mZJX{j>n&r*+_z`psD@N?Xu-=E;yYmVz!0~`ZTj02WW&gVNBe;> z;$$$a0OMqlE7m&`<@%7<2%H#{8-)FQb+J6GByw_8m?S-e9$@>31!G0x!l&<0dFU(F zfjX0AUqx(MCWDEAw|tKj&aXI{6?so?Rnj+o!J42h$=qOFzz~2@Hp|H=2s^RZmY*t@ zLk##3n>7KfCA7pixifm3^xTlpC9g&<-?W^K2s5TFSdJsCbHK!^;d!iPy#&eY<;%P; zCnGGu5pN(EPU|Cr{pKOX4M)SLps}Kx4E(c@GLCR0!yGhCmt_$(h^l5_UQsnbw?bft zGA1RmkAt;;&Gce3q_LuDeGpiP(B>Mk2uwyk$Nm}^YZCKSFZ+QkhatoD*#Ram80(R; zK?}2NH)a`_tdB!kZl-5$tmszTxW2|}`5YZ9?w-5Rr=BtNNIp}Dar< _ XK<_bohJ>&{5W8<+QI0}91|?>Leh{9&_82Jw3>}h{LXTs=8A@#qnNSqW>2uD z(89TDfX#0{STGoTrWHfJaGKvKNEz^ENU^&d7gBS%`G)@?yZ+I9&+rDW3$lXH9;}Be zZ01S}j4Wt47s&X7aJ$WXcY)zNY&UmWXk;F?7oM|FJ^Dq}zW7;TMu1ik3(^f_wL)E( zzysts4}(HcInLOR&G+0!)>%B@|Il!LkB6`y%5K3ieQnljVC?)W$5dE^cn~g(M2f+M zJq5SdC1AmPW@Gt5XfRb^v5@r%Hn(4FIM3rgP63J(7H77bVD)lXsU^~bV#6}WEHRwh z?dDZWjLe;O{j;T>&5UDx15C~$%mj0VWrp($yE%55kqKD0%*grzZy1(I6|5Qz_2oIi zfz7QqSW6>dMu=&-k+sWizP#M<-)*<#`v~oej&($e^&{M|fJ_JDf-dH)z8|cn$ix1l z-vO&5@^H$vl*>RlvCu^$)l|yS;99UcLVf|Mx{xFAqj2R}ky9Fzs4*BW do1h0aC4a(tlve7gDzeV= +=n)R zG2n4x>TNUMUu$HYv74)`GyK1^o7b!}oZs2?YwJ9ro4w9vDV`}V-FOi(DAVxARM?Vf zIL|f|v*#}I+MzPc@*_6A<9fMsN@jp@G-1+IoBjxl(*Y0tV)0=7Q|UuYR$SkcJ~gr~ z*!6Ff5OzZ7yTNc?w3}Pwt7sSPmKhuHcEyOB6JkYzF@?~D$7*dfoR{q8Asda%OLjeD zqjZoshUhoIT0#@|#z8jowoQifG9H9%W@oq-ry<1w!oUr;S-%3Kv9I>|Y)BX{Vy5f0 zw|F)O%zN|jEk@RlcC-02!~cri9Qv7&dBv`~Kl7+$ rJ6_Z_-@#`p=(Bm|4#WAA-Es;7ytO$HY%cV v$(*T z8@GQ7*7tqksUH!i=iMcP6;Bv2pdA#$@g58RUNF4H!mP9ImTot>1H&-Sz`DXF?Ekp^ zELC|35Vy$cCC$Z--C&Pg?XZp{+4N|z9-chQZZK)kpfBYm2Hi)Q46s0G;efx`W}dLu z@V{x-5AKy#%0q(hSDu*-Us{`jak}M9N m#*YUg~eKwb*+0Rx(3-`c(AvT?e1Nppvz zhVwRF2OO1eHwzlsyKH*RZ{(>*Y*c2)H-__w-Msc2!~YH@#WBNq2hY8aNyoz@Sgdv( zGqSLIzJO58snJ*jj>|;=cMSA539JrU$4KBR`7u}vu+qke%QpQUSR=4P;?YL+6OxHM z^NJIO|2?~Y7s9qsDJIVMwv+O>ESJ0tFm_m+|Mb7X`hm%YI)Ce#wQ#d}{ nyz?6gQLg~y7iQtmUvD)6@d-LEdyaT)#kSatoCaKD*UMDgRsMELcYGYoyL3? zM!V;+i8KZ0Re&T7zMMJZRH%pOJwk0^QmN% XpXokc jzb(r8QCx $NY+#{g0|?xK+e;a&)Xb82}E#(huL5^+h6jbz8cXoLs}i+-7-&b6!`Qj9{WwG>R4 zDvoEDz~ny43uXBqW%%KN24Z<6SQC^(z+su%2gY(@D(El4UfI#|io641J44jZ0c#IU ztdGA0 6Q1;v}MBUcUQQ@gp`H6!b(UGH|ybK~KwgGFHd zj19Mf&G)Yvna}K&X4mncTnOe}H~gR5EiWLz=>|cw^ESg1DZSer&)@}OW=y(cWFE6y zzJ^f5lsVsB!-*Fq?eB_b{4Ya%kwA={2sSsmXJmeBx6HqXzvMFFP6q3bkfNoyWnkIQ zma&YfiET0(Y_JhGHrR3)DLge88?5KM@0kgFAKCrBk@?(icHcL$U})0^_y-BZlDh{f z&KKcTi}^2cJ~$Dq_eClka_l%$vGDw5WWBIgtNpiJJ{fvkLUS>JPZ`LIKzZz{CLJ3a zk>k1K>FXfmY(v!Ix_AvN&DiiwuqFMWrj0f>d>gD+`bSPbbO@vNCs>-)$K@*gk)}CC z^pt+AY4JJoX<*}pyx Pvg6 zX=9`esd$kZ43|Z_1N`u<6{LC?0XKs!wM-^e-^WOy?6_c`?q-vFcrH_@&v!_yN5b;C zk4YQA1;J7n-y4f(3wk 5nD%z6E1m|%9 ztDW1VjdaIZP3R|*vL^+tCX5lYry!Lev;Rg?RuiL}+%@u`n)A9zn (dJb9Cmnj*CF 6qMlty z8H_+nry|0iXmB@D!=z%xq7-sK=O86r^8_gwAW_9k+9>9luNHG>6*So`_TnD5Z9^*2 z9hb`#>{Gdf?B>D}EJ&Z4OVatQHXSKB7s`}^pT)?oMyj7ky+mrV*e)iOb~}rpfjgzu z=$Z$=<<6qy+qYntXvh*&2JVrbT8yML+*($p%xPua{>4o8YA+#K!Fa)REhZ+d{Pi>B zWgsuN kALF MbyrSD#%4GM^E18U2YeOxqDw%Mr$9yoS zS8`_|$MOXv*nM% s5AV0xhE|o3y6x4aMN%8 h%XW?-2rdms*4m?BCM5oKwGbhH;VzY=j5$ RztwbSRxsf^B>}Q&+y=0n zmaQdC#vn|wStAsCwJ&agq+?Deo`Z=I <-fPuCYF!^FW9OBj*C3Jp#Vy_M zow}x+bGT|@fSwP+KCf3bSqQtlF667rdM5D|4eUbQY(CTKnT+A A#wR^jAoE-l1+0&&vzH1`XaM9R=y@E=0Zh6-YT>5Yjj_ly2zG ztb*a})ld!zh7%W}_rSVCN1Ook^I-I7StEO4kky9J2NACwEKy*1=7fXTYNQzKxCCbi zB@QsAFHR8Uf)E_yO9uUsY6>|fGH=6_gP~3ApTB|eB#P%fcraC}kqj7|m=Wg*U{VuD zV9R w3a<{?}yXTb0n6=vrSmY$R6 z$39@RK|Y{;|5YB&`zOFSN9B8jTp_YP9E$yM)c}(-maD*Ku)eZo^u!vP(`TGj+LDQu z4J8*Vhvh7oopMVB{E0YbCsGMWiLZoM)**!x$f*$DCMK=3C?1UzT`3odwO}+3^AE?_ z8(>^A!0_C?a#Lv>-YCroGBtH))xmgQhfu_kxGh#{=EclW&D@!R(Am-gI{~V}XyN(6 zTP^X=h4Vye8H3bNvEg27Dc6sVtvtKKE~Idz#GX{Hwc3e%=C_twx!Pdsl&i_aHtx)N zSaKgilq5u!=(e7n>nc(c-5cteg7u;8aGZe&`NT2q2p9(uZ-MY72}^q!vKSD&AZ!38 z! x2tRf$46jt z-1u_nB3Mt bpLY!Filsyx|287k z&j@&q5bu`LFAQTFuwKT7XTkbXq{2K_>!rJUmR8;}hk{9Oaygg}7UR*h -Bm` z&!E2;-O*reax7TXTTEYENiHIV`|rCU);^vA;a#r{7~P6{JJ -KMfK%CSUdx@A>2a)1xC-z&5Pd^?>@C9JKIZ|9}5PaD1Mk$5|nFzOyU^%X|6zC5Z zyEoLw-y-yP`?rFFG9ej=vhog@Yk+hK4ls>yfN2ie3z;IuE!)7_7`Jx?>raugL5?pz z|70`Q9q7(%jjGZHdTHy&!E!pImm4I_kc*iMjH>_^7)19zFnU;e-ZYrUqPP!(_54Gm zF_=Y|Q|-ZOK}&jl6qt+xKD_)COhzCc_*fo-$-gqGHWX#V*Zv$x(M6a+_|D87%E541 zLJU<8lLG`7ASwnZ2F)e-I*?}?1|mcbyi$z8cTaQjxWd;6m&RgE$G8py<1Qmt_zW ql z3_z;05qC4hiUb=*Y|akKO{sTFx_y{zN%mkA811skZ?b|>Tjo6iW4jo2tY5XFW$)xy z1){*{J2`(>zm|6uj7}D{SWCu8zrH#?^@oH#u!?
$Wg2sYZ7ntWw8lhgGJs56ayKWqu3-4_mdp90*sSP7JCjRi?Qti@p5IA zd7HpqHD^hXhaH*M2aKDy(gf?7!+a9u*ov?C=>x#H8zF`fjElhNQTf0jbc9@$ <*DYaWO?Sr1kDPvg76_I z;umx36R>X5o_j&LQ=|`N&<(w*`$B+M8`uLsLy8NWER_w$g8 av^)Uo;Esz$_eRPiK3oN@8DP=?vWsA^YA-q} zhv69cia>D-SSL^A`U^0we4 >zG1b(z8R{~3$}FJ3HIN{vIG#fF`R zR5NKH&V5J0nz->VrG!|=%b>*w9=2Ix!0=4&aIj?`QV#Kj`9PNpEFX7ZE9?&mpuAdO zPNBJ*V0`9?7fQSE=q=ry6@e@4r|EA0NDN%(iE`Dly0_pJs%fGdi<8}Q8d5wIO2%Wc zNiq`AIJz4F#`) RGiLhPnH{vJPS_-qbj~OJltlv116p^>W$x%|I!y4jK@3% zqZYnihIdJO!TJftulLxd$h#2y1omVqo;$H=!Fo-Tnv!h {k@l%ekiYc3gvxZ-Se^K%Eb z!1#{_&Doc%>%gd*vzzF*Ac=-V{()4FIXSBtM)(LAX9*r;p2uZxt~=9-co;Yr;mmLP zn=|IRox@Fb>r+U$HoscQ8_bg-FAq4Q!MOk74zV9G2-Y7=PUohE+*u@>1twQ{PVS>% zoE*rTYtvu6V(4c5`SMCGT{{d+t)|1VmVt5dU`N8^+nXv+?oX8$$Uwr?5MK=F2gYkM zTEJ4Z8H@pe{WQsDZn@CyOu#^Vv`~g6*0>4ShrqZ(;M-#;zs@a}ro6_MbvC`ihjM4Y z>>6ORq=B__#|7ZADpJ8>^?ZWVNZB6xH)4@z^~Bz9xdGP9h#MVjsk9hvFr|kh#U)WZ zO4gTvh32$<6O8LTJb xW)4tSl*+1Meok6}JSljRy zk!z3&a|cA?hGzXp#) ctJ2I!<_}GWk&`dLB&l8wpdqi zDaM}>>yb!t=aYYrkO?Mk1iJRIXC!z+=?$hH%iy)?(vRJlqp<2d{n(vFY_ihrKN|JV zUn%1Hy )$UB7K4G=z{KRp53C6audxLdbZWr<>ZmQ$jPJ4 zjn?Lzq%f*3#c&lzl CXbl7HCPUV;j2dYib9_C!ZSUBt?@{4J$kiPEQf^l;MotB#Vjxx zomc_P4L^1JPe3avpUT^VJUd+h%URQOzYX%_Cas(Z#-$PK8RtHjJW re=g10d_2~6RO6D#>N|yKqsZOFq;5LtJ3{v=8noS|T zNXX3M+dY*GLP{20jg+kJR*tOx4o`^*NJ;aKB89Jvz`P=#d&&+(O4htCM|K}6QJ>ki z)15U5QTy>uxBp~}Na0=5v$&rjZaTkW?_%Eo<3 dfxQh(1|g5) iM2;R&10}ikxFgf(Kzm$^^0g5nB1`~@O zuMg%8U%LIL!TevpbUT5T3VXTV;ty5yB%~N3ShUfRjbI#LEUMV5{s7~|MU8`ltY1m9 zeB4`F!^%ORv _Z;^&QPC#6gN+CX)=GY&+Y#K++TdZtP_4f>+Qj)gG~)Rp9sb&ARMlL z2R2aTVS%^QI>0#MU)haAiVqH8ajziL0e99+RNLgBJkXlmBdX&BcuNJ3hV*KTLcU_k1qg$arMI9fWgua%bgy1xX~{IV^kn-h|MSW5j@{I5~|NRB5T8Z zJs)HR;UOJ9m|*j%aTL?*n^1ksQCSez%~kl*f^X!dO0pGTauPG|H?YAdFY+wij=^j( zrRO5WE1N9y+iPsvaqk+gD~88yAK~hMLV8k^GpC(!JLe&GumyX*D2#7`SfRs+!5@NQ zOD}U$p3^Yacs}0aq&w3<)U7<}&H`4ugIqc*FKY1q`~ YfZv5~=q=jGMhXoJfhXoEPJgo2tke>NQ z@nb-Kh^+4 0@q>K#><>-+Uy9&ggOvj9XN5Nv{sCkIxA4P)ck#my zk^BLE*w91#@I$2h2?;(#8t_!%Gax@i*875g`oRiJ&|*OgkOgw#7v;K=`zc-!i2t-g ziWdc1!OH+yVL4_h^mTu^$W%h~uaXjbBh}x5oLN;=zBe+znvxS~P7NSMH5CSs;6tQ- zZN VL;aB1Tt$lf8o=~lOR$St1wO}5Lqx$ac`snDUh>)G@`rgQd0?c%cZ7j-KaiZ zmGMT_H9^V$D`cIMlpfK?y@7S_S!%M1UoKYkzEU7EIh~5YnTpS%5Fa9wvlaJ7HZ)hs z--KL}+{kBVmjKCEh(m--;I|OuAeWNWP-LCB^9Wo^f)9}mW-9r5B`2EQ3znJ6Ga$50 zO6-m77tZIx4jhifhsY!j!Q$hMGy|tk@$p8k2RJT?a)(qtk!Im^BPZlh2)KQoQi`V) zo&oYhWb!-3iEQvZkmar_{8h=bfOOnFApX;`@eAh(?FGqe$ZhF0fh_1t^YHoKU~%a4 z-vgsTZ>#d&=;QYL2o7hpRgg{lYXGSkpwzvQrq+U-SX<>2nG95%$bQ;@9I(bf>f@j3 z5+5Sv_$QCV2PoS27KjR)Dg|$3!4{A+tCh-s6Edrf%J)W!+Tj=L>8SEMnq~W50vTdm zm4Y`?)LqGmoD#i(>|q}z|KA|X^>wL&eZ7z|I#h8Y6~h#UD>;$LNX6fTrI0@k`7A$P z=@H32?K(V(Hz5_%RlzqQ^Czf$B9oI8C(_kZfF}3z3{#1Ibl6N#M&?Q&{?k6eFNR(w zkkzdRve-t&Hv#$aM(S-=a-!M& fcm&8PaZ)J~ng6ZgMDkNWiq0rGk;$`)dn5I~hn#p$ z<)33DQ}BZl5ShH7IFZRq_(i?TN>1d!TvMFL{Odr9Zr~St`m2)PRQQ|1-+^3W?uH=2 z&s`uZe4rHmQgR|A` g1*AobcRxi{*NcY~Z=@1gSFfO3E9sT6wySz#YlfXHNj{9;7|mHfX#mLH__ zypi(3N=_sn;)5V%utcehHz5b#iF~TWDLrpwMe&exFed=n^XWhu`~i^pGZmk$a4wLa zx#HZ!1O$}L$1fIGpcIHqeyHS&6fRb{1Xv#VyMX+7BMsQ2^uAR2|3;U$fIZy@MIHsd zRRxGN=#=7bLavwJtNi~Zx oFfDF>gK(WhKQ3Z+2s12lIAdp!N6gDEk=S@h1njoL$ zngPk%D19OgY_B+xypu2bPgytoV!<8?dntv!Kw2(#YK1H~P{{`Y`5{toFp#2fB`4+q zk5!zQAAAgu`eS{$tce5)y5rVi&3tzq)=d7YPKzd}l0=r62xQl$0hvD?nAcr46IXX; zyFvN+pCF4bQu;(DmnlwUeajX1Mv6YhFP2{gtO`6%PqM%XRlpl5KdIzI@^2L<(xYb- z_eM5w7INY_Aj|!r^t_Ss^S+E^k&r#PtQ3h{AFitkeo}HG3*J!pvyyuw^M8SyyY!zb z|4qmNxzEj-mj0y_iJUD@6@L@5foI642VN>YZ)EJ~v|b_g^C<3(l)LgGgNb}V8j>H# ziVLX%M7B{(aU%7LEAEZ#Q5ndI6%|%f`qdTs1NkAM9sG~PkYIs&Ku+TjAR7n;@ >NQjP%~d{;2Det+8(B{~$cY_AKE_`rUPo5kNhx+!6?r4awlCy(7_F@X@?5b~ z>AeZr;BMrzqx*oYe?O7&cK`|eryW%p-;m(*CgczuS9&La CoqsEnIHR`jP*AhLlwihCn_a97E_k@9;=P9)C;vYo#a{sUyak1ZH~CY~z6 zbA>OJq8Zk(0v{mtEDCc2Sz#WPpI6EKfGDaJR=g;Xv!NW29;gUpeU%he&ISLoqN)(E zf$B;zK=Il@=GRrczT!3@{?kI0yor)GSG=X-Z4_^(u!E9!R@lvj1TF3jq=o%e#vmXK z8lrf(;*koYlsrc9;Xsy8Q1T>&sVaY@;$wjHz*xmy eEXI3_Tai|_B zJtFzvKpOT4Nd3nOpQ!w2K=dDLxypD>0X{?) ~k7Knx-NZ?i~Hp^y}4MHQ9+GB(NpxrSE(@ 1dHYOS#n5Lt0BkPWs{aw02eqw?D-Igy5UR-8z^u8MmjJ=s&qU&FR4gBA6M z0u30T6p56F0U7O)N=_sn2Bdy8M=C`Kk 3bvd zrzkm*e5&F^mixdeRx^ AKUX22{aOQL18WtoQ{{*yApcr%Z)CXx z{MYvQIiM80ksdjx<@;*L`Ie* a43PCL; zAhO~>#fjwg721@X$mkCR;t~8#+{u~K9>0h^@QcNI1KD05ASY8aGZoSvr{Y9bmk4CJ zWQA!!#_$-$$0 N!8v-`ky^HqwpM%J^ex9c_2UD$R1sU zoE813^sXqps`R~)^<7i?Hx&M=^ju7EtNK$3ypavug`5p$tNb@18@P{r;sd4UjjaEP z%73cziC7q1nh*9r%JKnOfgkt7e<9`hA?Mf?QTcB|=9g6Y-pF%WB_;PpAI4u5RdEfa zKxB^t6erSvT8euk<+UN_5@%C-K?)lIdGc(fcxxa(M0&Oz&|CqD4l3hKXm%gkgT0pe z-KY=j0i;L!1KIunRh&o%3{{-S{4m9d3^j+s7$EB#uJVa&CmzUh35qA>QL_{Y@gcHc zisD2TNCk2v$E*Bwl}}{FlN2Y?&}oVjS>JTUiL7r1ka~0Yzd+|_4g{>oP`D6C&o2k^ zLu5r6iWA8{R-DLC*Z}0_eo)E(TXg+T75_idbG^wzy66xZtOC5H8YXf@&Q_dA4?F-; z|1Tx~U!v=^f~@FoRS}W=A&^7!Sn($+|4m5!rz)SwaxWAoGXEuzhMO>6;^b@=2`B>@ z#km!?0{Qu$AREf7^u3WmTU5!tkp>iJJB+^)NYJ%qfsD$E%m7vbQt=(ds{pB2Q^{)q z`5`h`8v Zi-kR?k(!tXfmyFTCf{9e!V-}C(b z`E|Ws-RC{;u8ujbW3FrFoSEaA3s>pz?-i&=9MI;sQ;*nf!SQJKdprUoPT1l1ZATdY zEcitc|G|}_>R|o%_`_e{;Xu@_t8nw5+rlvZA8294;b^q~`7ibO`}oIyfiu(lJ^r6> zVg2`>?f)JAr?vI>{r?ZZ3b=%hzgNT~uFTQjqtoxv8AiO|5hs4^_xQhUVTHfPasJ;O ztU>=@wXptgI#>_?-)&( 1xm*3+EjJV*V@CP6L-{22k@Q82!ZCu6G zfH@27J-AM?crW_z@o(emzsDAJ!zwNjzKxH~zm2O Rjs0)q>fgpyyg&R`11o-6{@b|vw{i7v 5?q-^SIyjjMkfSN}Gy{?o7uuL*w} zSN}Gy{#PR_{ubzO %+edtoYM~zm2Q^-KPr84F3)PeH)kTZ{zB} z-wFS1T%~S^#ov ?%4-^SJdRbMJROZ=y^_HW}V&Ht|(R}bUa#Q(j< zRkVGGa2mB35%tmh5P=nm8x!>jBoxd}Jcx3K0RjPtbTsI>G0_Z}kATSRg;f|(#t`8k zV*Cm~H%!ncFd>s+fJzMI7+4Tt1i*O|z;OhC6_sKjkHP=(eg$Ahc3%M+F*IP{M4Y1l zzT*I1qX68f4ujMLfcO{yFY*`z=*G~Afe(p{14MiS2pb2Wpmq#OlK_en00Jm@0$>=! zAO;~M{|z8v3Lx$qz*^LgL3bKJYZ5>NMNI zBvHmR0OKqG-3)* z0r1WO$RfL0fJO`r7~~P> z4*=hJ0IweaTTmSasRaP>IRHiEF$d6%p%cS4Br*>W@e?3y9zYqjV^CTIP+R~|LBR_E z!x#oJs3Q5F013YU;(h|Cp?(ayO8{Dn0O}}e5nvv}ECx-a{tF;?86f)?fEJp xi zx&)wuGL{Gj;~0rhj%B#5hfJ2?b|u^{$G7znVFmtyGXcPH1;7xMVjvTVtZ}@sgBi!! z!7kW{Z#KY96U0e?+rA`N--`gSAJt)yq6H8q0+=EXB0x8WP7DW;2nis94j_yKV1e2( zDA5Bb(gIkaU|N7-41*Y~kvtth0s}xC9e@q$$DoV1LyI234n@%e%ww3vV2{)p0CJfC zvKasz(G&)AW&l%004J2e2*Ah!K*t2&f=rkIDlwE}IEDz!0M4rb9GL;!P$>p7D*!JG zfIG5d0cga~fWZTCt^)971Mpe}a2nNNkYWcAX9e&=9;^V}7& L@rDgjV~E=m9-NCAvvc!ZQC0d%DSQY8WE& dObiB%3BXmiGg(kKr^z~0N^YGP=lcb zF>M4OZvt@J2+)SAFf?Kik^yK(E;0bVvH&d@IuK QBN&vpw0a`H3Ac``8lnOwgGQccq!qAODW;?(f z^4ks&u>+tN!vd040Z>u}h*SYsL_HXWF{thUSV9+f03_@L7{{=JlvM$A)c{geVP-)f zps%VhvzW(XxD$j#KuJ46a(98iMcDNTbVyGP{*k#lK%p7{16shqr~zQT3xEmb?E -&unqNKh}Z|9x(`4ZUEBwtv>#v`g9=jK4={`&bw7YA8o`io0Ko77 zfEr3X0HA9Mu!KP!>6rq|V< cAeo*97oK>*f+06NIxAONE|Kn(^x z#AFUoiNVbrKp$0MaJB#tvH&ndE*1b}OMn&(#)x7G(1;<>62JsC0TA{f5i1z>BR?3B z)FJrmUMu)(QzU%|pc_NvA%KIZ2SbE4fT}fs1-fVrpmdnXYEbmUD&UB2&f1F0Uo?9C z^>1d4d<|ioT|W7`{z~Z?uGfhZc2$0~6Sn=q4v(JRrMDAI;VMlz`o z*M>T7%HwsLEBu^XCKwzn7&C2n8b9j$Ob1t#@f#aInRzQNWFqn+a!z`lRM=Q{c_!K0 zO`~6IBd@J|$3#xUnvG}QY9duzA~~piLG=ay)zLeypWD6+B!x4koQkulKTpwBHj&RK zU5OAbXstZ(^<}0TZ%eM>KyCDg3VBuCcZuZ}Mq270UT#0K0k-l_8SJRDv)7E7^togC zq{UY=`XI-U)Zio1x`RS&gxVM@f}g&@;ggoN?uB*z6j60$trf9dkG}*j53vTe9T>4? zDXzW5xTzP7 EhG@8xC%=J|*|_Sfv@19BYiXN<()izEC=&z?FxL!Z&->)$06&Nn|HJZ26#Q2B8B z+_sG4-o8w)ZWKlsi->Suh}Sl?pmeLe*zzXvc(a<;FXQT&=S%7Ojn4C;_phu)sdhxN zVT0D>9d7$Ng&i9_a*Qu&NVu04cpgxt{}L6lUoAdNWJb59LU1LN=P8Y)3s0it?F-@w z7xX2>w`6UpQ{jwxl7K&P`IDX_0cF+`&4@<{= 3n(Y6msWv51d8Q;&HKQkl3*u^sK zVCLJ|lU`4Ce=gK 437o!gwWK6q;c&O`q|$Pb);nuvjmYZg*xdu! zTW>4RT+(zjJNqa=er_{mex%I6a4yd14S6$FVEo(me-_$UJDZN@R@b#tUUmtaE{k}Q zT!=K%+FR5c%j*_wkL37gbxG!Ue%eeT{UGNtyOCHA$`rg2)C|(!7 ov1sj@ZSnbu%6;WIz2ujAok&yGIu{*l~%x!FY3DsnnNvTcNx=wN4fY_Q$q z)9y++|JMBFbNRYN7k$4w($5Xl mWj-wI!=cstB9$kd_h zW>KaP?O4*g-KqX5fr@Lm!Zh0$w-)d78R`9Y{Hu;wcJa%jtJvjZHT)mMY_Nq$e**vc z@qQefw!b^%yLSxtrzo0+3^x9!O1si6Qk?x~1P7HJl<%xp+`zlP@S441&(b>XYdbE` zn0Or-6@KExWf3ILN6+uc_>1E;Rp1lU8SC=CX|nyiV-LTKQnQZOmfijY+n{SNU%eMq zoNb(yuS~dNG<9{0(uj=1L_?@)z|8l9T6;HFj)<9E+^K9D@v0wRcH>XN?$mJuwV7?^ z!-FFHtYx)K%oaG-oi*R!+!Yojwqv5;w#%BCK-KxOb6M8KGl4_&?+n;tH{A8Pk(8_c z$yuX?`M#{<*CeXIe=b)5L_=#gN9bXGvvAxiE3^K!TSCvg=K0~$r4sV;ImyjY!wS{R zQAapW^g2sbF|Piler(I;NgB X#{3hT6Py!McUulh L$#5_Xo9vh{P%Oe|Av*WMhe>`ueHsRE8^PXe08qZa|~sf1~cH=+a(4+i;AC;$C* z|J4Lanq tEaZIL6L#`+W-6N#%P#ubyg9uno{SF?TSkuTH^8ZKLK( znVP40N$ZLQG&;{-pt@UM>bMTlw!`!ZHF?Fh>N|RR8=HE+>4~n>{3;Z(H7KS<;A&s% zc)FyP^owD4=esYY0>q5PECU0cPp%Hr@_3k0Vv=`!H&tLi>cCP$ cBUt?$`F z d4g`|I9!GCe#U?vsh+)iSVP9u5|riA{ca@J*V$ z^TSZHI2SgbdnuO*EY?G7o7QUDbx|c8KtPtR@FaSMI)146A-;O|PYeOWGnq)umOZ4= zfb>Rr!pSBgE98;r6NzSZ^gcV{%9$G>ofHE_UQ$+bf9y+N74O%G5;MGu11^&Fp93b4 zI&KrI^yY5I`sW?NvX6i852SvJ VezE5wWm49p@*foY<{1Nm}NkQ@2 zMKs7|*wRaDd^dbq#w+5*daA%@sRK8=UUF4ElfzJM>a@+yL$th$E^9DfY1F?xKW5)R z-1Y0Cg$6S(cT5}+Y7A`lZS`KQ+RbywJM!}u>GSP=5s#E_Q$LCRbJ9KB5ngDsx`kA% zewnly_e`o+ow%?Eb>v1AYdDDKD=>MQU$@bFcyE>C?I%vY5!>dRd#YM*#8lDcZ|?WK zI9O)R6hyzXA7cD@>NrQ8uvS+Oqe0HvV>$!Hh1c|xW`mx_3Yix8eAh|k`-WuBo4&n} z5IN)}V|wG4eR6aWWw^e=!H|`OclVtZ9|!ijXC-D-f&W~c +8h2!I|oUf5@Sy2T(Pn~cL zKcA$4AY0Vin0vId>qBC;jUJO;mSs<<8b}iieUh&$6 fSi>eLb@yl5@5~3X^Wo(jZ2MSAL3;eF@ek{H2Msj;2Tc^0;)}-M81o?A3U#6}^ z25;@HB417g`~Cq@KKUFWyRyaY%7q1~SH}$7A2Cd{weNRb-F|HBS;t)(F~jBEuHTJ$ ztG^#EQxE 1$-3GKv3D zGOU6+NLAt^Qa>6B XTjD+hR+_2hv;VCzCf?rsRJT^{L8>9;@B ~pjb#=KA|Q BK1m+ha5%cJNrRq{8ZFqx&6$7n+X~H(Q*BurI&(bt{L*a5KkLA)JZ(u& z+4{uIE@btI{s&T2>7`PqC+cr~F5EC6#Y|31u1~hej*NXlkzVk=oGua`l^fK7qun;DSr>8Z z7?f``P-La`5{&)5m8bcY|d&+FCVO@@I!`xvejI>zi4u|F)I(Jo#&J)#r>?x=+mK zsr+=0xRQxfy ) ~ zyf4S;9Z#A1dRj^?tA698RubEC16LYva>I$x4g80WZdKEWpIvyL|K&le)gjX-mRo1~ zU(C{2EJq#*Y@2M--`QW(BKLtRy)5eVYK11xtg^Uec<#l}Yq=Qxh2Eb}FWYHt%$n3{ zJr@3x{5)aR2X*mV(G(Ghv6wNg*;`*yzjW63X>{LOsAxTqbiK41rTRd6!Mj%c5oc2C z0t-8*vE>2JfON-DWsix JH7GpifSFo_skt zpGyg#P1mpq5DWNt^}KfN_l#1PhazvM7|vREAVXhB?`u{`w6$&f;`dd(-F=K3y0sGz z_077TTfZ}PWI4{#LU^C(wS+5o;ZICNcMZZVqaLA-uy>!IOmgss=8(!-ZF z`?JvI?hV_kqO#xnR{}>{^UmEy!OZDQ!YteKD E*nusxK*yPOQQX52dokQr`10C=}7C z$5%?OudS8oGwwRDK2GFJ-Ba$WlBMJUf8o(iorL+HqW75#sItqW&MsNOQ}(H5beDbh zSvH2Nmy9R; DCSX=8+oI0myMZk=GgtMlR!@7(Fr z8iI@rHO{;aWi6IFrGDuCOnkZH*9nS8&j#h>&oY$Jpg7J_(oW%2Rd&`I4-OV#WbF^> zDMjA#I;S7T_W5SVTS@Yb`0#GgMAl8R*(pw^^E7X0+lKYkWOsR|o>I}UeZ1$ KhAHC{9qNS4dsG#X+aB*Ok^QhAvNIXZ xBj$sn920(gyA3l-c^|0lv3l5fX z5FdE@apA!)r=%JB0^O0N_G?o4Efa6X=!GKe?+!{HHnU=|*Rq}49Y1tOis$~_=N~BS z(NyXExh&p4)tfI?+9;%HPhv>-On3gGCO&_%Z-_lng!{|N8R>7&JYSde7xF}R-k~(P z9lc5(sTSOyJ8(PDVP!)6_<6rLrx0l+RD;uVDNwH|`!Py)fUzps;$@!yw >-u_kT#@}TX39T$?zDJGho?=P*`DWClofzVN- z%_euMx&s|%1;dcr8Ay-cETK{R``DH#ThWXS+Z~x~_3r($@QB$UJHZou_m!AOTT`4; z;sx$U{z=Lci)%~SR^5%xyw1bJu-&Rb>3P8zb$W2|?*A;bo2~~9ojbd7#P7mQl}kr; z0z0?89 DZy)J?`+{< zaf;Qq=4PJTs`KHoR0bt)JlUM) DpCehnA$YJkeGRwX!)PmFNsmj)l*~7rI z!bG{Y{ZND+v*ER`(SDcTKX;!n*6`@L!xo!4t}kPeP#xDG!n|SqhF^WBF8mBSDpH Cg@2*#&$IHMODy6XX-5^WHEM>r(CFFKT@mDpkxHEykvpDJXCxAvH1e!G;K#9| z`s@@>9g5qn7gs8SZS&9GxXL#>$T(uk?m9v|6ma1a3OozxnJ%{PX?yoI$Qhj%SSXoP zaOAuH_SCoA{&KV@mjX8WPbnDr$Oz|1MDMfM5+9IOpxhQ8zqtE;Ujk9_zQf**gZQM* zKj~FbS8q$TBJEDrhL^Im+3fi@&F0eH)HMb5Cl60DF4Mf7c@R27j^7<$x=3+a8P&^4 z>Hd63VP}}&sUgQNJMw8q4sD@RM>0W>-jPqahvY=)u9%NYwr=38V>@5Q(SFz}&RzJt zbdUV?`y0-LMBm@+m83qRzCl3ho9%GJRvX7R?7i-uoAUQXlV)V7(yOLU&+~;w&{)sn znLhQn=TDCpG3M#6nksr!M>iKKe_~f<6rHBg+uZQ{CJN8Div~B(jeb9QS$9pjOJVgU z#(Q5qX`b=Jw=Xz7D|eHK;;DPrFF<+wHri+f-&|BURopN4-TM5yT{bp63rnMyJ=t55 zD_X~fV)#Ew7`1#qmB4sI)YBupy5lMLzdtVb@AoM+)aj{(+~n(i^Fg+{(NsRTL5S_u z^v^!FSotCju9iD#wMU=5I?G;kFpGtf`u4&tKi`=^+u#f#8(P114`+vE-qr2H@hI{f zr02BzU5y{7Th2P3eIsUZo&hcyzEWqc6r@jOE)Veg{ut0x;m#2z^)v+>Xh_?8!;@fe zabZDHF~)7tkI zWrDKbx7I&4P^3s_Yztl6*PV9krnYiXN7=}W45@+9>&p#JNHrMJ%OO6bn<6;GKlkjC z7WCY&AV|o}Z&?;yrLs$u|HsB0k73us)h7ti7PS7l($+^W53|K@d%mqIUj0Bo?nXAE z_d}}m>ZsEjx;(5P=X~7B0G&Kwy`kD9z5n%!@(#PM*tEm#zQ*^N6(vTD8aKF5y029g zZIZiX5-RzGzIKYk>e18(vF7~`!d|0soL=-R)%jmGLYMbkv3@V3NE2><*1cZzikR^> z;>E2uJ3VWJ8FtId7#4`EPVDNNP1mll<#;kueRHi9XUE6Tw4@;FuLtU>(|h}xZC%jD zHyult%U9T{Js&k*A$_`1#$d-VcWTG(vjO7?lQkCOEJKtkKC|Ud6G8EuyxJ0JI|by} z@|nNr@I-3ESC}D?-lynQhJ{WX2VWfC;68C7lG8qQ%h-r=e6j!2DoSp=5rgGO; @k4+{FuKS64nR 0l)705Z2(-U*fOH`~cJ1vi`#s6=sw&4f61VPe zt@h_UbUB&4;C)U$XH8>BKGlN@mxle%Lc7a;^_r~hPkz2vKM|ns_I_xo&h5f?!-|@m z(So^WV%i>|wL9h9sx>JWL$*yyev!*k|9tuTZr!oLb((3fCm-xM?SPhWdbcaw>%4tt z_vgI6qAly?f3(@z@Bxcf6Gu|e>#6I_RmT|*y*=TewD&z@)IRh5#|Ik@7;7xN_IpE8 zVC3kJ2{b)Pm0lBddQQG7AEG>};&&8 $R12G^HtZ1YT#!Uv4M z!Y9}PJ6L*sd{g;y1@+uwo?2)+XfbWAe(|}#lqOQc@AA+qSsMQ~lNmp?P%f(UnyJ%U zS-VMiZokW G;zvo-9P2xA+`iiN?vibA23Ngi`W2ayBhY307* ztb-O>hZ-}fq#D!mr!^xp3(7%txS`l`Imj8HZI z(q7r{9b+p#*_WgvmU6-+SRQ|zPWw2`SV(DoVQ3S*I!;uW*FNZ2i0$q8T$;x@@Afd) zBGwC#p0NVgLEBIA5mJ1yr%w4?GBs#C*7dSXt*-C}dO{CD-g1eouwBhK!%wJ;6Lg z`X=VE@BzNi2 6D{lge5dI#ZDH4gDMg#zA7 uvt5MsdJ>DET(slDHPm Ak$O z2hFDaj=WV99_*$Sd>5HmT$$f??qfEofLlr2Vn4lL?c->c%YquEJ~jp0o6@P@g?CV= z$Jvp{T*F#or||Np%%YG5-&zB)!pEblYPuK_v(L!ZjcIO7uKjeTo6>|9i~AYtB;!gx z)q4sq5|mW8X2!G*m{%d82uSbx+mCw-*RT8LDkFEqyYAO#-}+7QHbr;ua# WD;fed~lUe@RZi1)8->uHD3^RIg_Rr zKte5$9&z&qnaIsQ)aqk1pED-sPY2x3W6bGLU{g%~?CfC){b3&DO(~6>j`od;0tv z-TFh4f32>d(-26R-^KEC&ihz3&FTv=Su_uYl44QdMc8bov0rP1WlN4rT+MU2;L-Kv z%FiYjqsJ5H)u;Afb&9dv+vio-pntr$Ps#N|?3<-Ai8BA-1>PSb?-*62nwUs__aL1= z6SW@d?4Bu|Hb^_nGAyx9rKjLy#dT4gvK!8K3iP5Y(^*#^LL!AqnXGQfyD8Iw`&*qd zJ~(&H^O97ndu~ZgK8UK@XwUl?$y|c;&KT&wRo7%Wu$5J_^aJDWl~=jjiXvLImE5nq z7TTq?#c~~IM33XS_a<)d{Ea8hIOnDY*+ztfvLy9+21dlXrl?b;_l`Qff?3+gsf*px z73tXluQ#8b?X5Cc`1++%{Xot2{z>J!+KR~My*D03Q_AW#AKxcm%koX_3$a9kb^WkN zy7im@d9w%V#p(HeEUHL)6MHp@@pH9P74g=-s0~tKnmIZ=e78RS60gmPTy6NshG#U4 z>}T9D?W}d7c}B-DF4=x$?C5?iiEqb_P^H&PonE1|_(`I8(EeMz@6Y8`bs3Z&j(?&& zJ=!yR^O2K8Nu+DUL$NMqrL7b-MeX{ASkg#K<@c}dSA $1tT{1RgYa+AkI&(FBxgc$y>K>P3^n-Q@^B54_ItHUgLT1 zrdgP+r$~==S@|AQy~09kcMXdXKc>b2{xo!q`oo-l>V#=nJIvJXlAMb~&x@IBJi3=* zPhXg|nAJKGxkbErW+TClV;|f5Q{O2MtyIH~40*)Y63Xr-<}YTX@pe4YUCw&(6pdej zy*w}n_VNMhz(bL%>-M&8;n?ok7aw4=+e7X6X t;$Wb7Jc%5&s&N`4rEWGWo4ftyC ze->KTMJ5fw)Wu?jbJ^1ZiyWu*-Z*b6px0~-66ro^w)B(FA&-f3w!-OpDvf-CL%^Oj zB|jrnM#6Y*M0oP4BsKdABe!VS*B-f$I41()hPdyWg^CXBSCeUPj$k3DCB7d2#%-}7 z*xRt^$3mDEB>7``Qe3c1<}ab{*Iw N^cg`h2iG27}#OYWe rtcj2t+cI%Iq*?c>km3=)j`NNP2|F0H~Z=dJBg}6{UvqhWqJju6R zCfiy$6?Jq~zQnBiSQCWap}<(!YS-;*VV?&DJcU{6=+)BMMTS3@?j=`TC~Ldyn!fZR z(`2{oHikDsHf;p*?$|aJ4cbkk7N0#8PM>(hpH6Ombb|U*f(1mmfE()KU>^#+03CLV zs0qU`2AObxCFB y-`S7<2;HHe zj`hJ~hl~oud(>Ys+h_eER|qm63q5DSe7$ rG2e8g;R&)mT5rnYk--isF+wozU$xa5w9)01wAP z>E(gv_4YTdLYl9jaRg6A`Z=WCNbWF^5zfA`OM;|x6JRTZl3^?8kVguDc_Kh(3IGH0 zO9fy|BCbO3Q;7!9|0 d5_l4XlZd{0g7~I_7 LjE8kkh4F?JeC$L z>xk%707z~YNM`_uI1!1S0WrS`5_Seel89bmVax_m3 &Vl&mf@Gfq*+N9qSfuhmOoKrbi6}D| zq#Fxe2*@@f+7|*6kq=UiMVW|*p&&{HAdaCRDnwL K3H;#Kui(r2wEru;eDqVfGz<*2bm<`eWwJV9D^Pr zB;tJsgJU9qJ}SlFTnaD_`wleADyIXG%K+jq7^5f*jTmOr0Zfp327vD!fb0x_{b&k< z)Lj76OaN1qkqOX^fi4T+ATr4Uh$sgr$6$d7HvyFH0XW_SutKF6hB5GF16U)wY=DFc zfCdaUi1QYJZY6-%EdV=IhhZLrIJ{KC**Q%)0J&8FGPwYb$S)Vb{60W01}7w)2f$bj z5Sa(yf_gAiVo=QoIEF6f12{hb7{}m-lnVgJH2|pv0Pbi6Ln8*m+W;OY@iu_(Lx3d= zr;%PEfYc*^!a@Kqw1A--gLM&r56UY7h^Pf%Ee7yI7R3NcbpSOO0uWOPz%YgenC-&Z zIh>^c36BB1N&$jU9R}Tc0P!+_VB}E-Fpr@VLnsot1CaX!AnXo67;490-T3pmh%*5=GquAU6WcVz`FXD*zfX6jlO6p}Z;p z-zEUo`v5V>;y!@Xb7+osj}Gmy7QL7_T+teJoIdKokcyfxB(wm`zJP=320U3@#0Oq0NZ3PIB?GlT zgjMD-h~p<@_|7L8Ah!)b@ex2a3VsA&{t{piLk^O!1z>Ckh^qz2L;V;kF=*8R6riX& z0OwZ#vlt4I`eOic2SD~?fMPU-p%H^=JxroXsb7cU( D@mMHNDIJ`T1j}yW{CK=F3la_I;d>kQy3$AeZt&_;i2Mls9sF4HH4@ zC$PnLh-m#O*kY+pc->6f_tasAV_Ex4)GL9Z4V^7ty{=?4t~>7U&wYGN!sc)0BPlVf z$89c^2-QZ0Y$a}8+?Pco*F9L)xSe;8&}~g}E7ikOPMxprab{og!`Pyhgx0g14fol_ zOpdjGp=@~evdk@RCtn7)K#t&;%w+{io;uCXi<)!!M#3wF$I5o-2TE$x6yD2an?x<0 zkg#I|RHg!zHb7+}x}Y+=PXVfs-BSRiHvkP7suAZifME&tMyCh-mvI*v5ozkkm^c zkKpAGi*65&at)*oo`kP~%wu7_3Q`X*WLH6Q--2Xc25EqoExeBTI}oAkAkW}s>pBSI zdyp0^P4H411yYG6FbbrZh@N9{?u7&3oym36Ug;c{TIP_uEcVUQw#T`+==Pd8m0#-8 zHe+4W@iH@g#_MexM}$~YI)UO* =uAtG=(8y0Kl{r-~-BN1HJn?Es8J01faa0#1bDd<9U6!Rr;kD5}HYJPaV-0Wgj{ zIsnKc0EJhe@ZaFoI1&oqh@~9*DTq_>+KV4j->)Dt(I7KK 8U5W)!8V4E2vIx6a9LO-1PMppX5_t{jBuoH=y#`o8?HF{w z5!p~$9B~g3W`FBD;or=EgH<9sAqt6v-eSp}1X1k*p(CM7T_EODAmdmVNND>T5XNbc z)HfhZB=i+aB^JYO5Ec?j>IQM10a?PrN jK*--g3VT4 JV*-`0TSZx z0~y8=*asp+LeH@zEP%*-09i{y{vSYee}eR45rO)A1ewPY`4MCt)CWuMB8X}~h&a@z zAH@6@$T${BsLv-5#wC!{Pax7zA1swv3 kCu*g7tK7)`~Kng#D$U=Rv zG-9zH1d)gO3=+-ad`VEAF92JhJYQfHDFR3h7DXt}5J)!`w;_;iP#!E1L=d525M?OO zFo+Tfqy>u#lxGBF7)#&?h$@r^O9Cy3%vTUKD9=|AT{@6nEb366QIL5ok)t4*P#!F~ z^dPEZAX-qKF%WYGkZ~+JP@ZuRMn;g-aS%Ny50*+Sh7%zAP@V}8XC{y(5P~7n`-YD# zW`M$P0LEwmLn8+3NdOa+Hwoa&0>C;2upe1W0Z6R^sKH>0n5F@`F}O_w97I(ZB3J>0 zW&kXZ%M5@L8$b&ND@6GYFpMGaJAgH6!jQlYATtYKgZyRzbU6TeG1wvL9{}?hB7Xqb zqaF;ooB*nG0C3Xw0)ROefT0b56Vm$$z{m|y_!GbdEnuj`V7&-%4CO5XIP(Co{(=g* zLCp?Bg~+@h**J(hviJq7G-9ZMRbXDov;^S08o+G{;54ejAjJnDv<%>dT$Ta4F|=Ut zL6jAM2r@w63V &>#`P m@*F$bMkMs;lWuD=wNF$uu4O< v0G!%@hN5w_Y_1RkUYMtG27sPm1qi909yiFv2JdXCw$kZNvxK3m1*5g&rq zRc}4H+_vLpH?re5-XVPPn$dXIps )lgKFbFdUeOgr;raz>HW2g)p@R zNhG06TM#8N*dbO~WU1#6r`=z@_usuqPhZ}JoxJkFVRnvAYMqb4-bX}PE0L2i^-jwN zN0tXuIromUif$Oa_BPc^xyn^UfXU2;s^ZDin^4xAdteh=>#eI5r$*{#1z0B?c^pps zSTYYfqL-32)6ShB*!_xuMTz2~b32b#jkB0^LS)gPXkGu~qsfB 03`VVD zo?O#>=DTK&y^b^uUneF4TF>{4xOSczI&-J+du(34l#4v=sppNan0 ;0I#(GJ*W B|2lwS z3|e9Uy(mfyAVCFS7Q+XmE)Jl(10Y)*pdU?Pn8#o$0Wg3vBmi<%0q7(F29b#*fcZ{< zatuR=AO*mv2H+?KFoH@kRAS(j1{g(l(g4o802(liBhK{zWOV?q^#I>c9fn2>;u`>_ zkjDl9Uk!jx3^Pb%BY>19K-flrS=5f98-pT#*`7neG5`^~0R}NFAo)!IN?HJMn*bJ3 zKZaopTCxC3C`uL}K^tHe!wOQD1JKn0$d-feSqQXfS`NNvna5%(4??0vnergHx*&9$ zLFj1FzRe)!dLZRk7-$hpTVeXQ2gGp;2oo(T10gcgB4z~`S!mG_Jg%Ze_wmR|i?|eF zWTQo{cx0zVkMYPsi}<&~$VrP%;gO3LJ;x(AEfU=ZBM&X|$0IK-dIcluHiCOpRDyft zqeUS~AQ8qOgIFlEXtOei(q51_We@>c^a;x_7Om|dLbND)J4k{F$Sjt%v`9k*M0X!Z zwhD*{)C9{s7SkOd>!2n(Kyvqk(5ZrmLrqjc%nyK+W08cK>;z#n1##R7A`LacQi+9E z4P*mUMGeH+45R^z4Af;82>Bq0*DerQs0@}yEaK`Q@=zOf5MOhUPAprXIvOBS79e37 zAc{~QEZtZXH9@vPeKbKLEI|gbC_{aAgD6>n#O(%Af%;$>#-gPKq6+oV0!cUoGK)nG z>Z1*!YYmdE4WbV9!7`7 !1B!3eqF!5G!yVK1T>z+i$r@URax;bA`#F@)g& z^238EYR7{ak~V_jAPR;7ML5Ep3>v|mSRi?00Hvb )rU1u~ohg9xaexL4Ziv$ifDC7yBQG-mcT|U=5rg gK${irg9KZ{;W9Y`9XaV4Zf-L|dP67;K@I&&J07@PJah3o9s2{^H1}!UqKon&K zkZ=lM7DEtHKLntA8X)@+KrouZFpt618Xy#9SOesG0?-`>2ty`^0nEJs$}xl^f(-zp zH-MuJz(rJwp%MeHEx=`DXA9u$1JHmW5^>rAkbMEX>;SHzIt+~%#E$?(A&(;fzJ36m z7-Eo!J%E%yK$ty19BRkVjX}`?0HI(9fQSHqL4cq{{FCOt7ux!r_aC2?dEMVA$+~Q9 z^hGR|cg22J5StOv=)$nS)Q4@dZL_U`Y~E&!4{7>%o?bcfGF|<#VfxILQ3E-p6R(4p zAP!8f8987~qK+#wWv$KaWM$C1c}~MU%CO4C@s4A%+xkzQ$w5=wf2yHmz#C%SjAZlrZrn` zo4>3+*|L`HmPMIt^k}eR#NpVNp$=P{YHg;KAL^Rkv;0tR6lfb%)sPdg@xZ@l;?gjl zgF8r}4(xcb;ETh(x;|0>dsCz;UA|1@j bLakO4J=*cPZ)C?}Ty4RO+}Mt+UeF&Zgx|3HCouj%GRqwZBqY@+Hab zGNQ~W8`sFxD$a+kze7BwbC5 cE%R z=F_ZoO)81Hm{r|rVq^dOa|FGf?2DIL0e$)>p6P$x w;36D57(Ae-}xsnBh5J&Z%_w5t8(H&Llil2HX}Yo;4%A+&Ah{Q-b)@2!)vtG zpZ%#E?Aj#Wn38 bS>ltJ(XW z3Tm9V5FdT{9ha~0aM1XNbE^55?K;-Z+;%#xxGn8#gJHJek2ZT{PvN 8rodWre{d>YJd|D2BTn2UEg&c+MS1Ubom$b`HykqzfV?kLE%x^FiKcSFxuA4o% zZ*8%_v4xY(Z|syeSsxBcJtnrP`k0gJFWED+?3NouB|2CB$(Z(^j5DbN`>D*B$n;;J z*!r^kbem82H|RRL^}Nk{ J^y8F5^qo?k!aaq%o%MKi zb*f2~dBIe1v;M>l0;FyKp #ZRgl89k7?-d-2Qn9P(#y$08JgmgXFc_ c%6Cd!Rn(sBb;x0A zoE7ap29a=JT;go%z)JinHns) Jao|!p8F~>jAJN3%0~g5LjY2b0u-VV4CGJ%LnnY@l;{M| zh+zpsDbjNW@I4Pu=nQZNEntue1F&`hC`WlN0Nof^T>;>W7gvCY3jn;w0N{(4V*pCw z01X)6i +Wt zfCd!o4q$#6U=YJIB!3cs@d`lPNq{EQkD(HSmIpvHit+$(js%#+(1O%Y0g$f(WS;_P zLsJ+UF_@kPXh#{R0er6k(0KxMAQMjjsp|mc7&;Nb3!oc=qZhy%REi-Y3V_!epa _{Q0LIY> z267^RVIaUalo$xmh+zrC6w*5j;F| O(0Nof^&jHLKi*o=G zDF8JX77$Y~fKn=eTQI;Ps=_dgK_~=Z3Auy-B%}efU|2zvPypQ<0D+;f{RBGnJQPn^ zvB;bUA<-fK^B}qDBxs2_Pck6V(V_KWAm$mcPGlIY!$61LVqwfAu^K8(v0PV OALM*V&A2Ir`b9LM10<8=t(<{KJuxCS9zSz4GJU z%O{*3uqN@-ZCM9D-jT!cs{X}&FB3joH>gE}k$*(L%vWuldzO2?;!o(bCX6B7Pf6E$ zFov8GJFSvqQM#-^Su_?UsnfbAC2%E5opC71o!0zuC|^l=B_)N^sySXSO-^gMY$~Vq zLN>M2YB)hJO-^gQY#OKKJrSGMX| bj~ld$Q@oqcHU3{LA?776blTB0*H zqthB8n~8Ri&Fr*7x?r !xfr;zwb#JFOYAIVijA$4;waS8Ps7E}P3~J(kT) zxw~QWP;S}0lv_3*<&MVYr`)myD0g>kLCPh;qvorrbTS!A`4#Y>3nPTsD+z)u#y8 zvPGR%%E{O;r`1)qnA18eTij`-pMovnv|?mSGCE{SIjw9{v85RsvSnxw*|M~U{^(UX z+C#QH_2-XYc~_wRvK6WS3~VLpFI$=V%T}TOGqF{vzic(?FI%1Z&%)NA{<1Zxzich) zKO0+{`ped#{&TQ(slRMJ>MvWL`dior)K|74^_6Wzedl5uQ(xI8)K|7C^__=pMtx y25v+ofcuc&`z>Zw3BRC!Y{^lqn%`0>2aj_GTK%k;B8lj(1zSmD#G#Q>-MIKYF(Z^0uD zpRZYb$>2v@H>a3$=IOkN{dPnYIg@gAie$G7)sEahcE~TK^8D?%`Z{;p)jnft7T F nxtx5+Zeo>QS(3tml72*@cGyX}z&QyDOaZae29;e`)kz@JzdV z_!XaSepdZ8K3C+KsDGEJj$J6yo1E5^%|2bFS^ism5;*(wM+TBwy$|@TaBKPfd=q#d z&%6877N2Ck>5B3QtrF=wi {rRUH8TAGsk>B_1;b4 z6S!M2Y44bhJtO$7u;{Jyo$|Wl)^~q(&L_eX{ooNrPwBP0&nX{YPbK$0B>IF??q*M# z|Fox_ZeWw_rsXquS<`y>`Z`CQcR2VHrU!gRsu+p7#zw|=qy`Tz>>hT-=ddSxHEB`A z%)E!Xvk!Iandbe;u%TXlFWwHReo^kXwY%I&pBC z?C1qoeyWhjR1RkCN}sddFvjSJGEgJpM_hdNBw|v!|a` z-N(1Ev* I@lgky;`RsNPctX0~{ z9G(3sDJkhMJxfZw;?g32?`H4~Yo&jG^3%ViXK1(={wV&xn!T~|%;25atA2OSLY`&3 z)!4^b-sO1x#`B|6one_|fput3>c_rTDf^fMt+RyDwJwJm?VO2+adeU=Kj)36?D*r5 z?w{|BreCS$&s3y?`jU{*ThVOu$PfU;;EhqkV5Q77Is!(JmW}aq9>G{rq4wn%9xu ztvDQ4jK=EW$Y`{y()8Y}+GaN5H4`uy*IA8r-Dr#iM>eC~KvNl5UmYKVTJ5F@#~g6v z1O41Gntod`*sVAmKN*b?>u`k{@n<8Z<~p~E&d+V5sb*=7cE@OG(7sf)`MGPfw75^8 zsbIetjbZFKWwd)}@=FI-JaJtP{eO#9dNtKXli&lRWk9nJG9MZ(2yHq2uCD*hXll|m zW-L51S|+sZM*AI28LO2`80`;tINCo8Vp$_TF_G2u6^!=OXxY%J8ts|UvZMJM?N6iS zKuc`2zl^3XN`l6v zG^Iwj7sFnys&UZVgyVnh;nwn_wKbZ{$A|?G?+`=X>}#}wxb=&{8nsTN6~b-*qPm~a z3Zv<_!!?jUGMWaP{VUlCj2416Q>Ef3AsU5tIWz$07%>T=3RVPa8!efMtQ%Jyqa`<5 z7#fScR(*%RiCYYJ0~0Q#(TbzxMAIxtji%Pp9!nAJn`#=QH33WFRs#A-ho*E&fpq<( zH(F`jp){3dO9rEr!Mz^0eu9iv7WYP@WyGp-<=_*eWp Ma zqgBM6!)V!zRtYU9V?aOIjaC_VE~Di@Q^r*wkI{0PaIUI|NsO4wh}FEChkLMntu6=RttA^lU{zK)kdq~L;GjNQ2 f_FhmIE7Nv f%HxHSkhU8)+b18xmMY1NF@5w}`LGo?D3dNBetd-PMwgp0%-NnHKZcGCZH zcM>=>h3c4qopB$-ttnL3XkBn?;8cKmMvKDzm$`4$H(FP;>L!y0M$;G?V8S&tTD0c> zKqEFXVs`?L)lHtC#zyObdz{glpsA^Q!g!-KGaAoljwwcKVdC~in{Bj~MvFn4Cr$m| z%80SJ=Ob3ewl-QH+zU+PHfYMYFDx}$J2cJSelQZP3bvz(+aGradGZrs;ts&w(P*8} zTxz9(3Sh*}Ch{P(NTYQz+F-PFXj(I(j5Y*!V>4yD8f_?=#*DhEo6&~h)|inNZ8R$H zax@^a=DnT^Rl7J)AkF)pCg5<~h2+UkFEl^w2uMg=&F6k5+(_JBrZD}DHVSQ{iK|Tn zRd_U9ack;-BaT5lfT+1U2u=QDp|WD|GsJ`&hr1)RfT2bkZ!}HQVMd#PyA5$QO|{G` zy@^mBP1AI^!m0l!0q;Bx&C?Mk@?_j V>Yv?;i?h$!<>Mw^OTOLGK_Hrh1Y`b*xC z*fB<%F1H!zV~sWg&D9W5BYqsBT5cwkFaal;fV0pl8f}u%W}{U$+GL~6K`V@=nK8v^ z7H<3WX{yoYqW$O@z%Iu$BhEwo0a4Rsy3yw2-rx!7m|?U9X!aq_Of<%$V HK zQO4_`w$U~iZ39|eqq#O3aU)_qBW^O 1VUiHskJVv@J&4g4WMyTaC6At%%X| zw4=g&0vgm>AGUckmtz|jS}ZgZwwr+4aci-Vw!>&Ua0k<|!?8P!wi9=V(RLYa7h0&% zb{lOsT2Z5YYP3($!o0~r34VsC(f=7}dTE~SH32`zty!U;eMZ}ZTj4Y%_Zw|5?i!#e zdBAA IcN6@H%;}9e=+7~9=VYHj3 z>vYFddPiVQ0{-FWOQRjd-OXrU8O`+tVzd#DBPx?)(8FjajP@m3PosTfB7cR}+i0hZ zb{s9nXs6LM1ipqoXqvj`OnN794@f`{OZ?76K8bs $D-h}(! zggcGa1Woh)vI%zvcaD$vho38G>f*DI8%=A$bv^&7#@|9-6Yxg@%6SfS|JTo5teW*a zG&9;SM*9v;19&O+p3yGg)&Q1v-)I+cSI4cNUyXK2BU~>K`gwp=VZH~wX6xrSG?n@? zTtr)reQd)0fLogq(w?BHfLEZE84FL1b``Ci(ViLY8d@Zp@^}1c#Ot`1nvDN4+6}bg zXqwN@(NvfpLGxHs_oWGU6L$^Jw0dQ ivk^62baPit zZbO6#=!K?o-GPiobDD5>(Q=Xa5v(7YTJRTG#aK9sO<=TpxR;=PflXwz`>Ov^MExW| zRPBC+>1fBW$xXlqxaXK~DbQ5Fhp@neOKG&<(8i;EiA`nVKEj>H#0@}G9=}6gX=?vK z6Yw$ajEKjv>5cXW?yN=&LQ}?1Km+b;Y(}F!#jOD+EtAon;qC~UYMG7pCvL^ntjdDs ze*XK53q_Wg)dYNwJKU5yo6%mNbwtzj%Z{d+{4F KAOuhCR(B`7VQ(Y&~>$~@K7&5x#j_eQH>w1Os_4_Y0g6*8JH zT75Kk`xiE%6S0w7 zXoXF<(rC&g8CoW^OSsD#EjgNY!L*K) zH*x*Zw2!EDq=L~>pt+QZ7LtlaOo=#IbB&)$MoWd(oa-A<*=VWJ6!#`nF S*a=bdzKzlHqp9CD@7o%!fJspEzMatuqBSxJwl`WK zv^!KpKjB6zY~pH)ckpN~2d6&n+G##_Gyy|!t9H^NjK&d?V>Su;Vk3=K1osFuP2EmL z(@w`2G)>*kMhnBe9!*oX3z}NB8179U(f<;=8d0xdSqZ40XcM^v+ON3v)7@w#(H Xf zVYGfmtAM5rCH)LAaVw&!Fj^l58m$s;6-L@1qq!<`@tFCpMPslLtKe2ZEgD0NRu%VM z)5k-NRt@cl(S{kVI@&R#sd6fG4K&?|w2lln;cDV$V7eSy3`Q8SmPd4G-j6hz_JK8m zHOEI8P5Z#oG)+evt*+5DCC3=8p3yXe#u`og#VU*j_c%ZLAM4&Qu1l#klE<5XoDjM* z(Ey!bv_`nqtQt@gjn){qT1(m_qj8Mr_!GCr&SaxC#jQeXoJ=uVGu?lcp!#~M5u4*y zg3_iLtp#pHR=-X+n)d!4QfM{#3^a|~R=9VW0X)xyYmKJ3D*Sw-X=CCq+%A=Lff3u{ z)>Ey178 o}dXQ|OTDlTpnV3{AMn;IbX z$9r
_}QN{mMmND9e7|6}wf&=i_M3up #r(ilo<+Tm`mo#}8K9iSsbKp_Z*P$&Ws1darqICh3Epp(X~ z&<&zNr;I(IC+KjoH^f38=nMUzKMa6DPy=d#uQv;?6NgS8KY|312ogh5NDlsx3Q~hk zB-21z2!wR-nl^p|YGeH!D{t`ew)$mqX7dWNW@mC{cjd%47vzRKkQeenekcG1p%4T^ z2!uj%@P`!8mPQ*+Ta18_FbYP)7#IuVAb{m14Wxw $IA?k zTksS747cGf`~vr2Ijn?Lpz}#zYT*Pw@P^0K@DF$bPpzLbIWxOf;9Lo-U^VDyaxJWb z^{@dp!Y0@ZTVN}E0^2~xmOEf4?1J6!DSQTVVGeYp9XeyXKoqp+x;U2O%|wn;I7&lV zYgtxjhMZM#riK7W18E@;(m{I206{+1=8VqtuI#vTz{ijibh?=W5`j)Nlfqrbkq#;E z!>{lFR=`ToLFGiy;pAu-4kKV0<8UR!;nodH2cLRI(BWh&(1GL{F9t*-9QC0NRDr56 zh=7A(2&CsaBV>ZikOg+3{{er(b2tkp;Q$ cYQ5L0*_q+52bECJgGeqYiWUaNpd_S%lrWQ4t40qcWSv_F+Md&P zoOa)|+os($?WS$jevr1yv^}QXFzs|{XX_ ;rfNn_x3+fvxZfxVG`ncGv+sVHfO%PvJB89QMFo*a!RJ033uv za2Srjo`m?remDRJ;Sd~#BXAVHfMf6_d O=px#nA|KVp$7nLmkk; zWHqQrD_4U2xbs0?$PKw56|ASpbvT&|@_-H?lcVd<@frLD&*3p_1^s2GRj>xuYFey= zpI|af0Ubil1RXNY1|2NUgZZ!k7Q!M}3`<}cjDfl;D235ucR1HgVJPnM*a}b)vO+e< z4yW;RE#RMpuoUJ)H|PpeU^0w^(J&l_feYe5&jNbF(Q`sMC<>V%Gh~6RP@e)dfQC>C z%0O8t50Ut%)_#z7I*-C0&=#z=T(!ljEmd#u0eu;vuO9L-&^}_sKg0eBItSF#&}nLO z27c#3<1zF_?*}^n({bNm7y?6K3 nxu7#W9oH>{MWAE4(J%sZ6sMy%owVs>tuyF*(J1H&g`lv`1NJglys3o`_`(L7 zXA^9J#`xudP3VQFVPSX!I`w*meGPr^>kB&d`Wdc+PP_ETeGz*O_QM|731fj9q5GiA zRf&rnaE8Eod)W-ppod63m==I+(2EGYAqHAOYiJ7vXwv7f6qdn6m;{qy3XFo$Fb3ja zIFx`=P&yI)Umk}Jn<_&g2!^8Y2Tk|{o`DXOu48Y24wA0I_i!1$g;StUdGwi%KFis~ z^*Yd5(neSgD_|w8k|m7JlvexF|7&op1sxRWTxbJqgiWv+w!l`{0XtzAd XZU1W YKwk%p zfw7?1?FlduCc$Kw0#iZf@zY@j%!FAm8|Huob73CLhXt@uH|<3@7Q+%)3d>+QtbmoE zGw;<<5VVEemGKe<6Bw`)VG?N9c?wL0X)qmTz)YA08|dqeun9K9R`>+AssFd*$WMX= zpf!P;Lmj9HRp0=l{vaHJ1&ria=nZ)&%#Zlz#%`hi<49*XjDV3a3W`7&M1b~9wbl6* zVZVlx8Z+9&Jq2gsTlfKP!B3z)(EIQZeuHDM0OrA1m;_UxH*A27pdH8z;0yN|VA_4u zZsSj&O~Or}9Vu-X^#_;ExGqtH@=z2?L2p{ZqGmTJ?T>H^euAIj4rntkC1FxQ0HlGm z5D4iYJ!o_9D0~6h)cX>?g0JBuoPyIj#65%KES!V$kdvm}LFu VW{L0SqN z2(RD`JcU~ndNuYewgN1q@ZJ={4?cnfkPs3