From 00a50aceef649a8f773557a6b9bf763cef856021 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Tue, 26 Nov 2024 18:34:56 +0200 Subject: [PATCH 1/3] Fix shellcheck --- build.sh | 2 +- deploy.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/build.sh b/build.sh index 96c33b5..48e0233 100755 --- a/build.sh +++ b/build.sh @@ -4,7 +4,7 @@ set -e # Timestamp for logs -echo "$(date)" +date # Update git pull origin main diff --git a/deploy.sh b/deploy.sh index c56404b..32b01f6 100755 --- a/deploy.sh +++ b/deploy.sh @@ -7,7 +7,7 @@ set -e # Gets commit hash as message -REV=`git rev-parse HEAD` +REV=$(git rev-parse HEAD) # git checkout gh-pages # Step 3 @@ -27,6 +27,6 @@ git push # Step 9 # CalVer YYYY.0M date=$(date '+%Y.%m') -echo $date +echo "$date" git tag -a "$date" -m "Release $date" git push --tags From e571c4997402c61428d5d808fea3f7080e502c6f Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Tue, 26 Nov 2024 18:53:08 +0200 Subject: [PATCH 2/3] Download data for all packages on PyPI then slice into 8k files --- .gitignore | 4 + .pre-commit-config.yaml | 18 +- .ruff.toml | 29 + README.md | 4 +- build.sh | 4 + generate.sh | 16 +- index.html | 3 +- top-pypi-packages-30-days-all.csv.zip | Bin 0 -> 4646154 bytes top-pypi-packages-30-days-all.json.zip | Bin 0 -> 5416601 bytes top-pypi-packages-30-days.csv | 16000 ++++++------ top-pypi-packages-30-days.json | 31960 +++++++++++------------ top-pypi-packages-30-days.min.json | 2 +- trim.py | 34 + 13 files changed, 24086 insertions(+), 23988 deletions(-) create mode 100644 .ruff.toml create mode 100644 top-pypi-packages-30-days-all.csv.zip create mode 100644 top-pypi-packages-30-days-all.json.zip create mode 100644 trim.py diff --git a/.gitignore b/.gitignore index 7bbc71c..a6c8777 100644 --- a/.gitignore +++ b/.gitignore @@ -99,3 +99,7 @@ ENV/ # mypy .mypy_cache/ + +# Big unzipped files +top-pypi-packages-30-days-all.csv +top-pypi-packages-30-days-all.json diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e850b51..4641fc4 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,25 +1,39 @@ repos: + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.8.0 + hooks: + - id: ruff + args: [--exit-non-zero-on-fix] + + - repo: https://github.com/psf/black-pre-commit-mirror + rev: 24.10.0 + hooks: + - id: black + - repo: https://github.com/pre-commit/pre-commit-hooks rev: v5.0.0 hooks: - id: check-added-large-files + exclude: top-pypi-packages-30-days-all.* - id: check-case-conflict - id: check-merge-conflict - id: check-json + - id: check-toml - id: check-yaml + - id: debug-statements - id: end-of-file-fixer - id: forbid-submodules - id: trailing-whitespace - repo: https://github.com/python-jsonschema/check-jsonschema - rev: 0.29.3 + rev: 0.29.4 hooks: - id: check-github-workflows - - repo: meta hooks: - id: check-hooks-apply - id: check-useless-excludes + ci: autoupdate_schedule: quarterly diff --git a/.ruff.toml b/.ruff.toml new file mode 100644 index 0000000..d055376 --- /dev/null +++ b/.ruff.toml @@ -0,0 +1,29 @@ +fix = true + +lint.select = [ + "C4", # flake8-comprehensions + "E", # pycodestyle + "EM", # flake8-errmsg + "F", # pyflakes + "I", # isort + "ICN", # flake8-import-conventions + "ISC", # flake8-implicit-str-concat + "LOG", # flake8-logging + "PGH", # pygrep-hooks + "PT", # flake8-pytest-style + "PYI", # flake8-pyi + "RUF022", # unsorted-dunder-all + "RUF100", # unused noqa (yesqa) + "S", # flake8-bandit + "UP", # pyupgrade + "W", # pycodestyle + "YTT", # flake8-2020 +] +lint.ignore = [ + "E203", # Whitespace before ':' + "E221", # Multiple spaces before operator + "E226", # Missing whitespace around arithmetic operator + "E241", # Multiple spaces after ',' + "UP038", # Makes code slower and more verbose +] +lint.isort.required-imports = [ "from __future__ import annotations" ] diff --git a/README.md b/README.md index b2944aa..e7cd283 100644 --- a/README.md +++ b/README.md @@ -18,12 +18,12 @@ Old versions can be found in [releases](https://github.com/hugovk/top-pypi-packa From cron, it runs pypinfo to dump JSON and commit back to this repo. -### Install jq +### Install jq and zip For example on Ubuntu 22.04: ```bash -sudo apt-get install jq +sudo apt-get install jq zip ``` ### Install and set up pypinfo diff --git a/build.sh b/build.sh index 48e0233..0f5ae32 100755 --- a/build.sh +++ b/build.sh @@ -12,6 +12,10 @@ git pull origin main # Generate the files bash generate.sh +# Remove big unzipped file +rm top-pypi-packages-30-days-all.csv +rm top-pypi-packages-30-days-all.json + # Make output directory, don't fail if it exists # mkdir -p build diff --git a/generate.sh b/generate.sh index afd09fc..5a85a53 100755 --- a/generate.sh +++ b/generate.sh @@ -15,8 +15,20 @@ python3 -m pip install -U pypinfo python3 -m pip --version /home/botuser/.local/bin/pypinfo --version +# Check if zip is installed +if ! command -v zip &> /dev/null +then + echo "zip not be found, consider: apt install zip" + exit 1 +fi + # Generate and minify for 30 days -/home/botuser/.local/bin/pypinfo --all --json --indent 0 --limit 8000 --days 30 "" project > top-pypi-packages-30-days.json +/home/botuser/.local/bin/pypinfo --all --json --indent 0 --limit 10000000 --days 30 "" project > top-pypi-packages-30-days-all.json +python3 trim.py > top-pypi-packages-30-days.json jq -c . < top-pypi-packages-30-days.json > top-pypi-packages-30-days.min.json +echo 'download_count,project' > top-pypi-packages-30-days-all.csv echo 'download_count,project' > top-pypi-packages-30-days.csv -jq -r '.rows[] | [.download_count, .project] | @csv' top-pypi-packages-30-days.json >> top-pypi-packages-30-days.csv +jq -r '.rows[] | [.download_count, .project] | @csv' top-pypi-packages-30-days-all.json >> top-pypi-packages-30-days-all.csv +jq -r '.rows[] | [.download_count, .project] | @csv' top-pypi-packages-30-days.json >> top-pypi-packages-30-days.csv +zip top-pypi-packages-30-days-all.csv.zip top-pypi-packages-30-days-all.csv +zip top-pypi-packages-30-days-all.json.zip top-pypi-packages-30-days-all.json diff --git a/index.html b/index.html index 45b6fe3..f16e4ae 100644 --- a/index.html +++ b/index.html @@ -129,7 +129,8 @@
zOx-4GWq$=1abIm=_R*F#W=!l*)k$3$U%ucw^Aa*g-O`$A#(&$JkbB zkbRxMx`vx1MbM786>PG@i6&ZsJq~(kpCY*P$55Z}Z$sO3*d}0F;wMx5-beeKH6@EO z$4)|(xz1SNcpLSyU@=HlU{|Ecmzm++aBC|v82A}g;M`u@Zwg?Y<2mpQw-y%v{d%jR zD~lA5n({Rd=W~5(Dak6>2UvP1ob^H55IbCsubsTlFxVCtOtfd>3MWkG@p7Sv78SR$ z+@*ui1PtvE%vNZ*L9v!a2v-D4uw@lcLPHoa6m32MG(fE zJ(n6Tfu0dJl}Q! 2Vv2@c&G)=oZb_Fgrd5=Yz zm1fb&fuO9wM$K>6+!z0e^Bmi9MwN1J*ROH@z(j-@Of{CgE$mZwg(brU2um|9Q|`U^ zR>QPPBgk;z!h{c%zqlw)rF-3z!|Dpd!uH7J2KQ4tIxIpsth{B@gYI($r+(xMhc5+l z8nXa4Yu8*JfBsNd=BZZw^h|&87_+FNr9Q~i&1pg>+>N`%UJJLnh!*Xy@njzoDm9Wj z!xvZ6MCN+RY0Sz%>$W$A^I+CR@_O5bu04byJe`m_6T9L%nn{>pEfg7l_M`j4FZZAF zuHm}F63t{ye>e#YX)aoO;;zB_kt)t$6NIwXX6PGw^CgV0tk4oZ(G7(Fzsw1E>a|C~ zpoANl#V; @%m&ejJ+Ttmpv&yM~l`fl%HW3_0SP=Zi zFd_$eZWN|4323rhU?KUy1dJQ(-&}z!toL^1g392khIyoAdEa)y46~db4;@cTwh7K> zual{p`GxOTWwHn|Olz1;bf2H+Uhfer5vS25>G|?7I}1fq;D^J-xnJE`&`BB38fvaS z?8h{gBikBY?5Qln k*EHXvBN0@@;JaDAIOW~sbg*mBU zQW$C)Oiy?{%c{klX_X|QITJX>Ut}p?rHnM1&+{lb-ldfDak?H}H_Tt?@5oe4yWZNz zvT2YEIxE4%GVf&O(_v;~^TkVed^!~gQ#*oArP)7U;a*R8?Tj^5*qI8d0K8jxt`9s~ z${Ce$zwhptslDb)TGH#_N7Gv^C83p)ONTF`B4G@NXczc1{H6dZDdkIU+SB7owVoFI zK8dsaYP>i`pbA~sbhjih?2Gug#{?Z*w>xhbIy)&jPjI(iifE*i F59Qda zGYW5yD t4r?R?$rCC}qTmVf)=O2BH9H3@1Iz74b3? zzrhq`ypnpmN?+yQ8c6WT6*C#e`;~VQrBpJ>=J4 SCXO fySOe^ zgSj;rVWf>amBn>1Tj3RJ+qBzXXn$N7L4`Su`Gzb1!GsSqBRCWNNK|@-_ai) wKD;Cwm5V5 g4NN!kL>uuu`hB+12 z{GgYWFbbwf3f`-okTE!xX?NvHU1<#{?Epop!~~r9ws)C`v`DzEU$IYylqf=|XWJ%r z0-q-@^b62f%;PL3h2^CuUM5%xtqDW3Hn#vbZeq2a0Bbpig>qOrOFPSKrK6ZBK6HCd zBlh8?)A{t{iXV%|{15y&_OQv8Qee^Wgb4>&Apc+fg1d(PA}Vq&=Mf$=rakYM;xvLG z#{lp|lOm|Q`63U3#(t%23!dtEUY3}$D90S(C!HqC87Lr?ayo0%s$q9%T4IWqX&S!A zh2%R1u)J!iW}X)5O%1R;9^9efwqSpW-~V!YoEFVw?4^tfaeIT^^%p-IXE3mwZg-@) zf~So0C@~jZF&&tlgWUr+NDjdzrtVZ|1#U)guelMy+mE5#^MmTQh#&@{O5Wb`w0u_x zw<4vhx6q9+TO6|oYJ= c0_7PeNM;u_J*vnlQ#si6II#G@9-I!?>C7?m8JW^58FZ{N+vBc}dTuDp znPp%=^?`YGnXz^ou5s9k*i=JB-oJUs*;+Yc !s70}ryFLAq3tfcL6HPoHY-0_qg4iPmcBjGbHuD{ERJdBjC z#8O+J%PcoqC4A}iY3c1dz<7t XWj!W{qY_LKCg DPj3KgQt>({xW?VK|D4GX4Le-~7IUMGC7{ z`(Ax-#xoY_+S)q|qeQ7&tTvc_mJ^0~&peR(O83*|vU0Sj@|4e_D1Ja^OPehQ;E|=T zcfEh-JWsGJ@MqswtaBwo;Y%Crz>F|?Y@HTlN1y=1k}EwsoEYVC^y5U1-dZiX9J{VU zxQFk;D6VrqFrF~%uSh@>uk _>(8}1q7-pOXmy5?lPq@;243SA=13i5A%lFr8{ta!hLWXLC z`*W#K2t$5czS7B`=!UWYRds0eXJZ0KJOKq<8rF!SYQR(^qF5KUn{`{ zDRgc@%LFF; Ge8n l=ZDE9JD7awolHhv!ZCH)W zkQTPiUN)hGaj;ZDfO@*g@R4$*v71)!FT^K@c1w$q+gR`eZ L4b^ByTX%^ehJ@M3`pSyIvTbw-Ty4PpG0xssdre*Mrfj1*;DU?owZFTq;R zW>hiiinSXZ08g!{cYOO&@qMfp&R+ajmSveGy+{2H{#YjNEz{nH|KN%F_PY;R^d`f` zlDwPdfm;{)$T1E6FmyA-L0X`SVlB3ZTYZGGl*PN9x=%oS%Cu0dj^H1D2?=Q*a07Ar zh6(F5RqEkehxj9dq+#2;pWCTx>F!fM77^p!({$nOz_iKAN-10T9nY2dG{JQ+uV}#e z$LkmBSIlM3Tiok;Ayx|lXfKPQ%v2IiBvTEmc|F19vdxn?fRy&6lo3PqR}<6T!h5`Z z*3`uzY{HVM>C4= f;k>vfl>2M@$pd$0r<@N_HHq?~p# zYEP?QT})KR46ebRfIedwX9JLhP?Y75gsso(>?v@1$3%-b%t`FMO~|9P%=Bilg1${- zKCAv2v! zbIW&nx3djlho|#k$tnCC7MBu)Od8@P%&>|Z4Zsgoh<0)DDu|#bsG+~0q4md@p$aM= zwsaxYimaekSiclsh5#M`r{;ZJbPT7iq*2 >G9Y8NQ@de1U~+oT757)-0vJ#( zM-gEC2u{xU?fU)`=L?-v(y(KO=V)#Z1Dp${yrL2YcS=K5Io(f2^Vucvo0_9tKZ% z0!*ZYyVaH(fo3$57-P_gO1g9dw-s8%x)0dNF^xwkX}r37rwb);-1zH5@8(UJWDFI* zZXR@xqY~>YqK^3fzR6^TB*A5INjwa1poXhbd$1N3ZZ2o%knRk|dpllsNMKar@wwgH z5*@;2ltt&@N$!D|sf;av(?aD)gh%8zzSe?ym2fCR2K2S(es+H(!*tG$ap1uL0io+O zFY!_9H82dz2Hk;M2mijbaM4-^Z^*)u0m<05wqQ#X2%-oTRQiNZLj!wiXMJL96Bb|o zgPCQ=_!Ky9;oNdN(C_Aqeuw{NsNc_*;Fz(9aHrTslN~D}SqgRMqke|UgI>-L@x71s z`B}pVc0nGy60{lhx*3Qsc*uf~7VZUfaWeb3kcA4;*!eK)1cA_UE)txbIP+t1*QdeC zEo;5a-9_(9J3%geHVTeeP$odi)H!He0p+ON^HnyGB+NStUvq-JgMGL0pqB_nZW ?%&XG9sJIMp^N})Zyjub2)H;Y_W*w}{6eQo z mQ&lxEQp=pg_HK1@}~6k3+s%7APyA+{V^0e_$qV0h9NjdBKF<=bGk zF2mTg!ZGFv!Pbld48J+Ma$ zCm+1j)#J`8HR|>lK@(l-OwMGLR;S{{~AAy#SL10>#R7LzF8lhmJgD2yZRI8Dx z^ {dKdW%*PosH#RXzi~~g6}~U^Dz#mhY4u4QiH)c3S7i6q6b=0 za~>i}6h;co;Vqq|#h5Kie&A2GFUSC0$*X)Ro@Cfzm= ou8Tof3ArS zqzvm z+Xumwswy!gcY0ph!Vpsa=#N2V8~U1m(FYhC6Ojv zdu|A!hXA`K7c=&V#m L^a)Y$f7Ilgx*c&Y%0+Pq{I1we7me`+8AIwH*Hwa7P>G zUS5H-@%(&`3QH>92G_4Dh0A@p0@T;XVxyt5MnCrBGrcaUmNdr~&3>HI3qhUX+3CvA z^}jsyI8dn>C)r?T432ZF1X0`|z+T!iNqg4aF(|-mADmPD{1z{cQsydUXm^uGDn>8? z3;By!-L(_s+U~VUc`$fk0k%`u_noPl6dtt S9mpyWemh ! z`PX>ASZ?7Kk2Kpofn8a}N}N-L`njHzj01+QAPV>OIN8~FO1`?z{8tE|KBD8hTyzQl zHmNnj=zVQEOd?0a!eXj3CXVS)xTuM6$6keh!p)`kwOx|{$nxE1B2tcTT(_CS%@(>6 zM$A0ddM~W-$Xq0789LcaNscKK{|tNx;T6$nQpguZK+s}mWy}uJyp&Hfz|zDrm01j7 zCTvV^Y8A(+P;E6cQrla_7NRum_O_bZZ(iHeWf}a0_nCI-m~pkq!EA34m# ! zM^2a-U<8ACr=`2<#d2ZOQo0$Mn*zh1?2mN6Z#SGKVMX(GcOnD447jCMO_0zjptpO| z*$KRsq EAkrAW@_dk9y$$Yd-!?5GId2F`; z4c}}(ALmh2TK2Y`FLQ0LiFljrI5iBVxc^ng*So_{wz4q}h3StqHZGglCzM(IZ}z+W zrB3DR$+pR1qOkmtgykO!Tm;2@WsHeuGT`-N`f$BHthRy(I61o539Nbwl2~bj(@cz& zBzU`7et@L>krXyLr`} 4+Y(r3?nQ3PU<*(Lt50-`fifS!k3wzpRxd z0llBf`gpbQ+QF4GKq)J6__D{$+8|)3U|r^Wz38Sh2`bTs^}2s^)3>-Uv&v~f=Kyxz z*R6IXK+x)3!hiL%_4&O%z^O3FWA6pb?W8Iof_nKS4{vP83r9?+ls_C2n&p^X7SP($ z_&QsTgZ)I)HP7)ew2Ve#YcCUR@AbXzpG3OsmQl>Ip7aMW;4t&{wWZUOB2{4C#i!@C zm-5C8$K7(tUfnB$%@HYNVzXqcOT-AnFz?@xXv2s7C2y7iW4)weDyikaS!TY6d#_t z$^bReCK89(f8&=wa!$VDk^I)DURxA#yOB^-_JU7stzxb)E5aXNmzm>r-0v-9;6>qt zukN03QLr9Ly6MNPvotYIV2Nt#tqUK=WJ0r4AmkrEv_rV^%t!|71GBh0&!elwB9fc) z-OvDh9a4?l);U~OWg<96H`h8Y;b&D_afxD-lCvHn@$-UZzq88K@ZCZ>(LKFhf+eLH z8NkW8|7$T(P*k}J!951h0&vt@0x>oXCx;WI(nt)BwZ8l;$NXi4MyL^on2zW(XF^Gt zN&YZlnCR~@la`xRyQvnV@>#uLUh&Paa9bP81+cRRI~JR>c&<{#+W84xB|(zrR`0D+ zcdht{a8X8NhR2Nmx;Pn}mpG*7quq#RmW1%XtH?pHo3t5Z}H0H^0Kg z4no#rG8w}_t&faIP9R^lJ>V6_G|_<( (ihK@^QDQCRu z$VBkiVi)Fsvb6fpgf-Ri24^(`#!8zoNN<%9gMPz1PzZ;Z6Y_qzIKf<{VEyO0)m&2P zD&D4WYebj-(iRrR%zS1$a$7RI2foWaUm-NqGWFfMx;FyPub>UloC1%FprX_elr}#s z^x3s-EaFXswF-}~zCb->P=#yoggN6PVqqlof$e)9(?Dq~>;jD0&OWQH*W(?!t(5TF z_M6oPT;pL%{N^;mUDQp7%o7kYcfWt{(M+sQOFmA|8XEx#K!}i5m8SD4=`<)hynn47 zTUN1zBFbMpCruJVA1+Vg7jYV9MMg#X3(L2SD1hx5W`+W~&cskdgoT&AxIBA-E-aw3 z+JpEHjJS#bIK`113Z=n03yDq3I0ep^dthkes(|6aZ_u}V&Y9K3WvswH^Qg`u 1SYaSH(6TFrG`F$Bt||bK<%SJ#R^ioGvN69{u){YU;}KO! zvMhuOsfZc7R&IMDL-edNW&m`*Rc6u=V6 NZ9}vYdvfYQ`mp!*9l|pOo6k3=}NGOv}6sd593SHE?LV|_< zZV>AgaIWk{*aR$lxP>EJVPSD(OU~sD-~|@KTkI*X9XD2DFHECtFLKp^FkUhNIaG6m zDZw<-5uAe)SXA@_(&g-`k|pxYKy~-ekuk)Qs*GlsTkTe)MVg1oSZadv^stQ-o>Lif zKCo(QY<#hJUPZ>C@?55SO9U<+i lHyiPWNVT_kYQ;gg7$RltfH8b1y4*a;@*7Jyi_e^X)-fZOHR-9-(ncr&`Rts zA(!-dP^7hFjU3hEo$-=}?>Q|KR|P*jWSAKK0E!@sMEijG%lkcPKY`d5+E)kL0UwW| z*eaT!F3$LKP6+rkDjfW3Pos`Q=I#E9hH^ 2gS|3%sGM3z{HdNmkq{pdsgPN zdRlesiW=D@B{-2T5?|u>K?!COOzUe2zUSK2dJ+PeC!w?7SkIpovVNy$%bOv3IR7`K zCTv?7M%cyZI=lo(>S?kt0^9=Z{ozg{lmy%-?Ddl&MLaRjuNqIF+-w;-G|fMMbegg_ zEmW=hFfdt9HXmgYPMyCt%sJY#zv^exo?0tU$EFqgWcni3fr43|zmre|y9)siF_zQ* z8Z&-~+aSpkOM}jE#CvWTMMYfSj|jL`6ch~Br$1OI-oNr*Q%^z&y8l$BbyH7f^gtYI zAELgS+NmV>0aTeB*|}4wz92kL207<^{jl_mSA4L-OC^k(ZuxN0F393Yq-b<`NrzCB z7OdmWed)=@Rj}5Do?`Pje{dxfVt?9-hP}pwMHXvbz;w0p1vqn+*fe%a$(Lg?#UL0b zYs#Nr{D*|Ffp?p>8PDHF*`Sd0y nItQ8lAhP*m%Y8Pp40Yh8UFn&L-qIrO;9c@+V!4 0{)n8myA;p-e&mmMaX zEAO%mTpEc$Q61MmQ4FFUa9cFi(o?( RG zx%k^rnTj9Jc{3Yl2rT|e3h>&Fo*|8(3c+=!dRc7ZL?phkfDCUlkk@xNeh>Io3ih~y zy}+4T#%Ta6xr*X<73}S G>U^s9R<^Ct5KJ z-x9*aB{#kHHWfb>)r(nbmN^|fgORlpwkQf $fRJ)aIkEqm^ciYJl4Bc}oIahXKd5$onX!a2wL zjk#*ST}Bb6QJL+C=MA}pf6?hIET9I#_fhmC&k4 _z+@*n2Mu^+&_%Oy#Re=WdRjL9M= zy+jl`cn?W7GGZvIjcaGwuxRA9gvRo^$i=N$1z%N;hf%a2DGYQ`H`MzLrml`jQAZK5 zP;-bg0YAbima^upF!G9zQ+@vk9D;)YB$Y(EZ*O%wlEaQlwSKQXbs >9)OnaxG6j$MAYTpaW-+|qa4$BXAhw4% zjs0pXR~bCoCvD$9FCDEB$Wp;|zF^79R>%ddCbD0%4-Q=w6@LLSL}Fnv`Z!jRi;FMt z0X9*v6sk}C9Q((#KIA~>4D9nchYzBZgMpv{Aq=o#MroY>OwC5(WJv}5J nx;qwkFVMpzwFeu*@wkvfv~=Z-oBm 35wuM>kf{#*6-#?3Mhj?nA%ib4Mg#kpD|ELou~LsjC?AA7B9yPa*qF>TQM> z{4iOo5>^poBUR$8a~v`(-lwNFwe1(p_)O#?(QEA8iVm|%b=C(&Dm-bEW5cLylYZ(r z3jZ;?t{Y9l1G2?!Brf@uRV>w2Wza804>Ihaxdkdmx^J1Vvi5V`MADJ6OoVc7hw&FF zPRQAmmku@*9M-TXd5T0pFJ@mz)nT$o$h1k31Txi>m8 7Se1tzW%<-$q18-{*+IV%ez#-A`ZUe?=LzeIPbblN6ZI=uqSQED b zX9d|Sw;C)Z-yZt&m^n~8Rjh6qaj=wZ-m`u-gf7pwN+g&0&PW76MJJBe;7hc~X_mXq ztFMO>CeK80(@vWliMLkx)EB6AmJ`<=Sw7(*QXg0)*&+4$bN8x;`j7oB)LXbGI)k%| zQ4_S|NM637u^QSs88;mZbSpk>G`zU$MDymn#j+uaJcCO!6J)*@O2N&@lHE4Ys+>=( zaluHMIF_<{wwnm89R5;w%fhIQ7?lzke*e5P4_Ysn0del>IYkA (cR?X)La?pznpp @MD8PW}<>nF#k3N!|#<7kx(VRW-~-6Afa2XnR(#Ofag~# (@$NH~b3 zS|p*0$kU9K#<;$!LaTSbjN|eX>sPKp>dr;qM0zCruOQHuLVY+HOOLL6Q%{N5!5E}< zR6`cvrL<%P^2;6Uwh;-$E3rLc6ICUIagX8iiV~so6n8NFw4J!6zKlt z-;hL}!;i^zDv%fAouFCtjA33G`TL~c7jHFWvNX3_b)hff!9}NkZ?4L%EIZLzX;s|L zIKT@3&_~3^Zh EW)J$kdUHWr%+j50m10#Y({Z#!aR!QYg~q1-V&9c>C%%1wguGE_2l z!K)#e80 Ln;eLYhg z8&8pguWbaRDf8&D!hZc(->D>`EwYgE-Kg eb7JBXeKmcWNqB)AQ!olTjCMzCd9CiiGl*-MAU>-dgTR|$)*v%keX(7sGg^QIt zSQsu$i^PlwW$sw!zeq@?MlJ}b4P#R)l28^6bB>R1ruDbSODq<0y-k6U8jIa8Rw)N; zd0)*(nI=WkEFY~@eOiz#5r6x8HL5 _d?A=*x z7A7uK b%IV7n=QqX&3B$9sm)xlwX=opi>FrGl8lg#*jN*5_qj|Aonb*V$t z*oTEkrpTrW_yE6WLzhsSh@svCgd~D8RmzHNg;2<1;XmKzalr0yU%q4!VgbSXFJE5X zwSVXWsf%>fEM~5a0y0VzP+W1DNgs_3UGl=!Pp-A&I!q(uRVAw#r<$Evs8T}s$5|N> zc5;xJtzX|UxO62l-j%CvX+LF=l8Yk|B{h85n~_S&8{8CtWMpjdK;u!}9s<|yAx)T> z;DS8Q&t6utDWarEWW^h+VVbZMXm>M=)k7OfBBH{#h$|5T7zs6dul-0Jo5WRd;J&v~ zTDwGS_Lt(WwL=22>R(}sLlqRiTSDYC7yNM2>p2sL#Bv6`-YaAG`ZdNNbi*QZ3~u9k z>Ar0sQM;Il$!jB#B>K(O_YhNLjTTbTU#1FP2SnF%0tc495k^TtN}30|1;8Yms$4B( z`qDBe&K!}-#QdRtAj^{?{ShF1|FbkL59rzU{?WOCxT@m+%yU}513FMK( TTl?$9wrOpS&TbmWWT87(7*@2<}wfYxzJ zm}pL&*|EC>52YL5a5cwbE)tf?# ^vs?ax4N9ClE1Q S>;Sh_C(rzPwpPy&d*4h#9^TM)?5}l6#n|(7j<(o`y@=w?-dSguZ2trN;OUl zS&Afa5yhh1l{=kD$Od?A#JxKHbE+Z5q5WJa9D;AYA`1awLcsb@csTMsEw-FjVWE%Oy~=7z)cGNnVS YP81blbrmP18RC_0PjFA}QLV_|fA;TS;)jQA#cb{;FI=xTKj zG!U@Pa?#Ly_g{8sTq%EGX!%kFwtG_5IJ|Sb0Aiq=a3`|k>b9(2!f38-w2r=1NKN1T zDXGZ3y_IzM6ugb3Vx9Tp>0KZ(Kkhu*QK;PK9~pr>R3i8T3KeE=kLf!HXLjIfYTY0q z_(uDsP%B07iDg@S2L{t3q=_JDn%JMU ) GCW (%i>LPVlL`bOjaY9sdB+Dc#4cacGvLVBJ*pf-!dn#TVba XxU~c&v1l?cN>tRX;!A@)U2_`eErrB3_8< z4ECFn$O-env^O8dsFE;0OE(egA`wk^Y3<++>Zm!9kHd!IZ7mwDFw;ljRz {rM}Ew9 zRUZ3mxS0fdc@aCBNFx-_*k|%TeTSWA$QZrzeJ1h`rH?Wf20B{ncl%Lz@cG}(ct0;Q zv4l}+VF?^+6FHFbSw*bOJtTM;jg0sEF#oNOlCMtTIbkVuzKq`6_*k~qPa5P8v)d`& z?tPRumcS4Ta|8M;{LR`})G<56gZ(6Q- G5m`6|n|8yViLM#Y<)v$Y@GGQAC+O2Gqr+Px0yBu-h zhW{{O9dZ+=r=_=H_nJp)cV$zXMg;KW`FVvvx93;`MQA1bL)%L6vzvm5K=GvlY^QQ` z+3ZC`Ccl=h(_t>M8oKt5Xi^q6dr*q>$33*!p26SAj(K`fC`KVWnEWxu{m&SF`I@Y% zn@_f9(qO9i644RH5I(Rfo7ePz9V=sI8syjlm28pf4FHQ^>Ml=r&rkxs?M}b3{Ii!r zSianYgVbP;h0VdIzYB_n<4jSDjjq-!(S%{W@PJ@(xf~8C0q!Cf*LGzZKzEoyB|3gP zf0dNRg+eh{%y`!utwX{|mcPz1D5xz>$}?bA7@B2(+N-5^6ZUr8$~thf)AIyZTk}|r zDrlr$tl%qw&1wMo<`TP-X3CtgN16f&A`yi#N^14%%z-FTa`aM3LCY|fDuJ9qMs{>= zG){wiTZ1TCt|tONn9*pP&7NSd0X1{5!vFT7ES3w%k?2AYh!5D}9qE7}ftMM-nL4iX z1sgA`Q5|e9he~ZFPEuozW?}ki7D;cy5S}Z#As-N*5<7$Jox=_)X`Wg_?)Dh;S;;I- zcR?l1TQ_P*6^Nh>6mY?5y>TGRv*g{yzhc7U^Y7tzou+sESV!l(l1d;EDf#6hE-KjE zl_90u(HL?df!FZ1CATtMpT~=H+P(S_SRt&%+S?q&3`zYP-o 2=*^g);R8-R z97sjKZ0+Jip?eM|!XGk~$)W{?Q1D!sWIIyWMz#RX-iH_inHud0zRb)xr+)V4R=htu zafvpS;xc=?8EJ4UKV<){Qbln?LyVO+8EocB;n6}}RNe>JDdZ}(Kd> }bJm)0)%uaCXgB@cY6)lCSpOxi%M>vAOG>upK(mC(j+7!1PY` zc6QrMdz*%=gEF?*NZwXs#0H4Dk$ R|VoAgniwvR(K9InRQNsx92Ns+jR~i=@2*p!P!{Q+U zmSyE%#Ne5)8K2LM;%B)@CQF9}VD *r!FkUH3Hpe?NqWt z-q4T0(}PvrtNWO~^be=!O4L1ETI|72JDdJx5Y~cjSm{bPCJe2nuX>j5i{$~_G{K~c z!##;^qA0O;ey}X;I+@7P$;f_)m5_ZvAM?xr_0}*Da%M5!HX7}~#E8bl`x`%#kysie zOxP6;Pk0$tJB;>^xcN~U$wEtF-^Q~&2-ksVx9_k5I+H}%tG&J0caKw%)maeyQs2+d zfSz< !G|AQqzf7A^$bjQMr|a3-{~=jHl9vYChQMI&Hsvx8 M*+i28iqkLawZi^TLW9)j-w#Yw*ASp$w_K(^+CjAdOsy5M zLJycLYH`5ABu0 TriasGq!^5WQJQ(Lzk(W^I zso;QGNt9%)Vd7JK_sdCwLcJsPYn!IE0dW96f9n8VaOQ#MYBNy9iQp&1BA=TNOZ5k< zvBvk)O`V6xIbFJoZ%scc)}-OepXb@y5V5_c-mEo^kth-458fSCJpZU bzAJDf*GKA0(=9U?Po5W;U=o3aud*+9Knmmae zL2~Rn4wZ?@Ww(mObsI2eZs`8h_s#@LVi{lXHwzYQVTx~?*F7(bZ);H!xn39<#_Y~2 zs=|VVMhR*&-fT{&tN-l-$LS^jE6jG-)EN^OcDrQcibSad>t${f!gr}Tgg|b+n zTyd#%zTXN2+VMB*(8+TDJlaPW(M`ncj2@TUEP64bI4CIemSH>FEy4KwK_21S2C$kh zKU~j~-f|$?1~}QQ&jYh{QY_8cJ}_IShYn@X8#d1whl~rWMpBpPyGyICyN=Bnqh+~K zJhODcKSY|Rj1)?aN%>_B2ue~tg@+r(RV+9YdsYzT6W|9HN@v)KA`;(7YZe< zMog*3TA$H_6vvi5@?47#-kt=`ypUy|cA$dS9}EpHj~=tZcOruQYp0Z`Rtx**godBC zH%IHqe`43Ns-y+uW&A?SwzkXO5I|>S{^{xfIzYw0`+eL;SX;j>Ea6@#6O|~8k}2Nk z?PIdg`_*EH>RZv>p}c2%+w21-!1Kf;L$4clWt%?L%RQD~)j|T~y-*Rc*$UPu*2Hov zJ$S>`oDGQU@z3jWWiBN4UuUDripjE)ZzYp2tZRX56ZEB76({1?r@Ke*>Cm;NB*#O# zI|#P;2(|FD4c C4%L D zxjB&7LrfE9w)LVTVe$_qhppG#p6} Ad@w& zD~;BcYst)Bie%!_p5tfM^>TLTNw%zxn^-v}VYu0PhuDrZnHu(DzCVU{&LIqww!waO z$KGfl7YonQ4%fMzOcJL)#66MPWpSk)v0C-*9iiZQc8!0|+ b*a$ z>oP`Kv_wP!%%fO)KK>MM$G_?n#=9~5tQG{1*}@~<;`AN{-|F>~70!IDPU|mcFJcPX zfgFT5j@5Q$dX86Xo2BaG-0F)Trqu~1+)HPC;?%Vn;HcFWwOj@gB#INmhZ(KKv-V|< zFy0;6lx5!>Lt4bFHBRE~`*HfO%;B>3MpgfKdR;iI1d-ba|E9J!c`1T!Z|<{rb`?Qr z->C^YyGj+JKsbEtfCjwlzQ9tINL^#z+<4!J(Y$!yR}Z(5sbM-x?9^0`necbs7;8yu z3?n$h2*L >3@<)>XOV(mHxaHKR8s3kR4E5i3t` QOm5TryqM DV5NnPE|To&94&~lJm%tl|-^I ztqv0g&&UL$`Y^_osgq0h?P|8z*t$Bf|G2srEC|LJh- oY zYBTX6PqTlc!rd_mIG0I{S4fTN0v5Ps29Aa^H*;UW=L>E%>;3dItZ&~kGu9$8V`$QY zQkde9!Y5F}n2zw*A8KtGhf*{LW^;ugI3TC#-hRz(-)Rm;_O?3*ts*#A1`>99tJz~? z$Wm#b?$i22#>yxv|DpyuF&m8YIe*Y19{NqOvd)%x?;E^Q67G`VrJNL_OdY`?xJsq4 zR;m<29rIUxOWB@WE`B#tjksqdn4TN%p}-n0soK^OL?z-=b*jc;p|)F&WLRwrd{;N3 zjg-utu=du;{yI^i%2J=__SClzCsP*`qL9>l5(+93ap _@?a|N}hI6O(mn;a- z?`jmYNgW=}wU$ZBMrpAx29OEGC^bVavvZf(OoPg&t%-^-h#iDQ$|Z|QIgg{>Si 1&&ke@8A&AYrdrY@5h&~W9CQ>ZL<`G?WKEPnX{qE0dUnTTFn4A3@GR?T zK1F*;b{FMFH-Mn(#vxAB-#}z!un6?`QDj9ZJ4C|g5@L3z%3am_Q=fxE>^GY9qh%0i z+w9HAe0$GSft=@R-B6f0D;4%ioP7g9EajufR>Gn+ZU6)fTDKf^#jH|s5?~KF)u-Cg zA~z>C=OfFuPKnh<+U-hv5)LC_oP=8nqjO#e8(SUtOuR}C9N|5=;ly|Ei*=_h&POa@ zmG5A>W!aN=Y(A-yocinIizwH#CN2wmg)RI1)(nFyueOkM6t_(vVf}|_cXgq{+RofN zM{pPuGn5Mi#2u$q5tVOZMF_mmh|8m4*EgDrTk}zxO`+vgPxZ~tPOM392S;2JTo9R( zr6VJe8@6At-9+J7iJYKR7S)k|ccX6}%1B?Kg1uUhS_q8x!FqlLOTF|aRfT}3s+z(o6vv#RwPowSm4&_dF@!WN`d~^y;@4*N|}z`l`@Zw4G#Fa*YDbHhJD|NzG?bK zzlUW(WqGQXTW=FDtl}hjT_}M$z|2 ?ycAvDmJ6(wCX~PxxIz#H=xr2$q `@%Fzu@nY)*x<+PJds7bh?Q!cy`vSy6IB5w_P| zeX;97^qMM}mF4&KuWbLSl?P?A^EH#0D6u+IIH2Y>F|#k gv7)xc$uD^%2PIY&%NcN5zOj^rz;wtsFHb0E8S5Ii7d)s__k4jk1m<>Pq z+0Gw-sDEgaiV)>Fb*>EnW!fpGrw_%m%P7AE_FgiZGm~-%rN@y`ksh@h#Y_Tm(e~rX zH|7ls=|Rq`x&9>yKC`7I8h=P%ru%4> {ui)jvb5`%v8b z=Z?xMwWqt^8Lu=g7?qa5Zl@dhk6Cu3A`{2hDp<6{R)e>U-?I)QgPB_OI^Sg^LdJ~% z&Xcz8KM#-2TglIQQAgh_Q{(7)QqS3l{R>}nld@EY$;BT d0a`*79jr6N8M*kc>ECwe`f#6VTEu%BauR1s8Y@fZT_&495z{zE z&s$r&U=rN#G>0Nakl4C_D-+3xitgfAP_B-`>F$$HwLV5%sTyZ_Oialxb|z6LJK9=x zn{GBlg&1nxh8;y&!AD#NzaO&2L3Vgqv1Ez567V`%DFJidSbyVoolvnXMu$--E(ip^p_onGO0eUn?Z)nL4A!zI1)O{E6a5je`Y&YME&w0 z^dSyiZ{+qIACj{qmsd7m@5%-{wg1paB05Ii5hK@TQe&kEo-mKS0T$R;$8{BZ9O}I& z7GCNV@9O3Z>GEB7;{u-MyFyjh76M(=xQ?&}O`R~eRs<}kJ4Sdy#cdcxs>v_0NR$bO zC!R0swGyiz02?Q{6hdn m(}VIXd_fM@nSwtbhj0)j;eq8g{I7FUx-xnHl8nCW=G6C-fx^QtPHgYS6_EJ-M-& zuv#R3!#ysrKa~4%{iajem3%ueeR|VIVain0e+5fi6rTWqs@hok Daijr)T?JFKS{ynojd1uFI{p7Pf2xz%}?W&iBss?iSS7BlXqzlFflu8??$5cp5DH zvPRcclv#{mng;c=u0pjfo}RVZIaFk&e|yP&KP($-FV0{)RZMFrX3YV*<3gDHB2HDE zwo5Cq$0R37Dwc3UDd}i(S6wHzLr=&Pk=9zVUvmB}YQ?}(39bN`mjScfTVg39TT=4c z?Lc5g3>a%N%;57c9%og>^oSxFQf-S#)A&&HZS#+EQ!aG(CN& z+1@4$)KJAxiczv7qgW)HU)Jzy+rBvBC=vFRVa-yYlNHNhP$js+qi8il2&<;D9v%J) z63e1HzUtrop0iO2fqIHmN~7&Kz*(8tGavB9TGgqAEN6@lgi@(9T1AxYzQ>EkLt;YY zUf%ejvogu8 4PhEeCqmQEbQnFvc4uB%rl%%=Rh>8=v%&(HgYRMMGIBr=SQ|k@l zx^%lNc45Lxc*BeCmZ3WaUoF8Fv4a#hGt~+;tyNh^0+{SA5dBKD9yDyyAe=q6cAZ?5 zYRBWE0FsdOg{(-AtKC>(-8+5|p1H<~rK?2a;y#lW0)9f}?Br`Z`cCt?)#uz?OH>kA z?+AGDz8$|+9vUB6&z;w23t&xFYH)GBky}~{rzF=VLll25HWxCcQ@1h(hD&A@^AQBB zs;{=WwoIw*{r5`7Rs`lfe{^c0Q)Y4avkCRj)=t&|wPZqysOuY783p7e(I@C1wH6&D zVYI`_T+~SeMQHBQ{j<}{OY=P0%gwQ_SJytOOfv=W)Ea?kPsx(9td0~a@zzq2wAir% zGO}#g#?BS8A9^)HN2KXi+qNV2I0Qp1-?RdJYjqfdSu93y5zV>hXT3@$*n?G?KqIOl z9O13S28om h*6_|H4N<{@EKv+~N60H68skg(-H5b8ie%R-g#YeS^RqR_kmXRf1 zG}XnNXTsF%btOcCUu+c?Yamxq7;|bHVI3>miyf~&b-lH8B;CJiPgr`TR%MW=abg1t zg~4`DsD^>KGQ8LsyPjTnScSr$&0n4Vl;|1P+{EoGCVelEr{#Zfc-Nczm|-sbh r7t%{-J2?6x9T1nrXWg5tNU^-h(^%8! zkObDV5uZQVp0ZGv8z_w`ylbi!R81`Fxf^!~@xjanv_2-zGnAtKbu1i*)H;i~UT>-j zcg{G*;!0TeOW=EQi@^Oy4TVRz1oqq5kbL9Hf(6u~_Z9Zqb;~VquLn9^l|ixv8;9~j zR`+K&lhl +}(wGQe=>ROS z#kzB#`C8=GzP5EHUqO2|5fchAum-DajpRVXsg;n+v`_>&BDXI8!~<<43Kfw!E7*&* zTZmcbmnIeo&UcK!(l%n8qdesk9@>EgR}#Z=L~;KEBlU6~*wrtfZKDJ}P9oRGv8$di z)jFH#TdyK @>kMFfv;FU5W>YKRI)r)}K^?ut1{n0a!} 3b=cMt9CMHr^W zrq#62Q+COmM7S?Nd=qL$vK9cQVV;^Ss^mprA}FB)QK9*bg=Lq@^0#8HV?#s6t}5H} z=*Riqq&eHr{C688PyFEfW3umtRZW{$w71v7P^kV*7uRVrhxr@5bsTcd@-S8^c)Iig zq)L+KqCV|?Q+7y<)z(VtBlZq@E7+4}vEJTn$q}ojYhLUvxt5B{*m%AN$PyJgz7(Z= zwezWKhf~`$?oRLtiQAieb0&(!3ABFLfjX91{9$Jx(*RBT>!fU5#I7D{ZHEu#U7?&V zb-3;2Ceh~evYPe SAwyQyTyxHqs{z+-ClNN&YP`X z;}&KeY=H}$B9&|gkD7FClY *7ypn6l}JO0;^m+4 zciju5!NV8WjrO;ZlFq-n_M}Ohm8vMZ5uC2y%yMgeW}i+Ey*K;eaB9dl653Aoin1)> zPW&*|U><8BkP3^%bVgFeo|~C5CD`{E>W|UHi5ST-^=@t(WAUr9T{Hf+c7k-HH4}lL z8CbbcC w>x zN1PKL)UBC6d1CE>y;)6mKAnqwmOp5DQXH~hgH!41wVlUSLvq;axy>ID3_M2&jvZIi zeq#o7TW8fgjty>dnEtc%#0g$_#MD?!V0>;mFT8rP7u@ebCH*($mk$r+4C$n{DqOpY zfDo bOlkQ#vhKvnKp-{EbfE!v;+s<9(V)RgQbBjt%XF6S1LZnVO>Ky zlNRbDX}#tI1XEs~6~Vc{O!cL;-!J3DxSX1HnOc@aFcPh{Kc2|)t0R>3l|+gs<%cp{ zOEG$L5?W0#gx7gWU#Py;a#>veL!D~{tXN!dN!c-KRbQ%z)?u 2(x_K~t5N3lKr3#!)-iklhv44Ak@E2iJPgf`Ew?=6l@D2<;-`FQulNi}}Co zXz|8Mcx#*<(r~KYk#g6qYB^$$7&^31_ z!rI2;7&UE{T-b_>>!cHNw$|%`9^3 zXUf+opEbio@X>H(+~+Szb89#wR>!M8WyViIMcZ`xYFVlnug_mugV#v?CrZU8SG6LI z*nmP=Ww?b~194ayWfuB%Z!nnNy?OS0R~TUyOfIs94O`q}gQ9UjZNxZm43@#26K#}( z`-}VtR<#;l2_Q`4H zG7Ekw;7kM*t*TpdvTY Yn-Lmzbzon1ShD02XlD-qhUx(P;XwV+3M^p8RJ<}iQvlR4EUI)vEFTQE$x28jkd z{3iT`{Rbm8eR`>9_vMTnRamB;r}lc)UXXF$3f*L1KCdPUjXr^%vo<(=_&Bs?ICWzm zJgUU62Mug*D}w4yUwa#!vGsP_y%Fq~AK#TROK-!e`i8R$@tg+U1!BkB^go#>PND~v zeaJu9S-D&p*5YnC)(Rtb|4QJzO2W+7qvy(~C^j0WHsF}#$6ih3JKk `g1Kz-AjHf_e>lY6pVb+xR#H~cDrG5& zT!See=QXKV4X#V@`%z0pq?J|vuH$#`_>`ciXjof$_e=6+{kFe=?Om9zQJ8a)FcVQY zj2mpJ%%C1}xEhb7Hhw*5b-L?>MfuL$rbS6=t=O^C_BSHzD2kLR!@bm2(hw1es*bVq zWUaX%$wfuUIl*g9fij#n5;ElLKHB|r{q~ TFPSrPWuD?$0jESR-Od26&cSpH2E+b?z%cihNTfk0r5|*k|l}70`hTGk)s8t zr4pM^o$CBEoX`FC3~c+EIu=+1tVQs*vtnZo3~uLM7h&BaJvsc4EIes-!mh(tdaz{~ zG{9z{W{6maQ+@5+a@`~nA0BpI>JqNX#hD+(;$NO-SbBI} BuCb#x3^@$NvtDB@S z {LSUgZ{h@>KIkL%Hg%8I{6(A54}+ zho&;jo~p~I6&~w^NL?vjco5p@K&OCHtWh!}4zf*BHrObA@0#GUXYEo }u~IS!iHm9|T$F7IM6!Cr0eQ#4yF_B++zhM=29vy6zrD>oqc zTZOL6hsmT6I3DLXSdYYcn7#TUKPiIPs7K+X 2R}Y8J5U24wUCi&^h3#FqN2kG9 z$}JQzVlj7(-5vw2JK@FFF_ 912tLAQiX$L8G!kq0D}Iu# z-U(~RSdyeW=>F8`Lq^Ax`bO~iN^KIQLI@gm&S`A2)>H><`C-Gxm@zYX %Y7JPBLv0M zP`sBD9D3aQiUORHh-l&>fIklH9$z6un18q{epIGV%go|0L@;b-G|bte5VrCU9J2Xw zcOZNY#Bb?9yu*z|o%zU;8s~I&nI#{FurYN=ou0i@*-1qnEtSm%YzIp(!OO!p>KQs? zdP&-iafY%~FI*DVWx!Q#^OU4|ZL9IYS{)^YlM*g|s7_BdixWDcZ}x$K)Zq2h{Toaw zDUFB4= AW{*-Q&B%2r8~^HI~%(SA WP!cN~#sFnkKVXWuO&GYK&r4b8pDZXwqDTc+lF^D+}SW64_x)3XB; zbbnAlsWpo7w1k7f!yr!7dF*kuSDh9@KRu>Ko#JVf*n1`0SnSF>u>;;sCcK8l&=RxN z*(+Q2$3IP?Ukw=%d7hS~l2?|BPiXehvD#VwDHHtrEyogTC{bHK$7B6lNm6_{BW!N# z-kI$Qm9JEP^CWAZ+rN{ rSj(9PGt7*q z%uY>2@>LNJ2UY2^>Io?!UbT}#HwkO*Ef#f^!IZFg`mF_*n>HF{X6jul4lT@Gp^$`B zI2!y*cl~5?JAwC`Xf}C$9vR;JWKop_jwW@F;im&r!9)=55bAFFGRKabo1xX{Zx<_! zHP1Y;M50uHA$aL0TM95K_@rvfw38iBu4o)FXTxs^NSb96L2bz-5t66-a(@zw|AB<{ zE_aZ?o)oh2)5UTa(+i`YbBElB&*eitW)fCPIB_07?YJPI;#}PANMPtUqgx|IeBhCz zd;X`rKJ1SQm6mPuYS)Hgrh;?Ao8?cDT7`QC5iXn3-de0hB3MZ*Ku)2#ePr~rYAzMB z3(Db$gau)W;crD&^B~LsL1S)eV<;uwerbi$JAgg6%@FFkC|~Y=W!O}VIvTXhwQF@E zbqfER!GhL)JXcS;ZT9gKN}dX@Zh>1PNQ}sQM@t1;kLD1W?v(xO*(92WA;0l v{aN8;V3XZYQ2vypHbj=wakesfI%%#OOx$mQ>0~ba91b z9wS5!xNL)Xdtf37_C=AoH}ZA{w(g`%l(#jspO;0d^Xr;>9jM_GDOp83NFo6dwiwKt zBO)*|PloJyY8)%*Z!-imx?0T#xW?k*WPmUBue&IfQmof?cIt;zY-*a|NX%o&(x}+M z{$~Y%V*;Z1k!R;*kenwL(<1C}Q$jJzpjp3XP(AYW$Ss5pc37ymh*SshEzUg^F-k_& z1v3CU@x$&almjJfr+oovp1?PFw~L2DnL0fWtJQTg(>r3JWM-N|^j4ltog*r%r+IQ` z%g2a46~w8s*{jCj7C3a^Q|II&`lX6suZwXuX{Pcn)(b7q;bg`JImXHzp6Ry2Teoa~ z#fCmY$=JNglfrx+k!08 9oq2li?(dUx+xZ*&Rj-5iW4u z552dJAdL?gM78u4d!WYh(ohDy@Sr$WsAqZ(UH|#8KZnb%U35M_y7h#Q_2K?DR=(~} zD@tm%_>e2ujMs@cl5G{Gr5a+xw|$LrGKnY#O!xzTbX sDqRn{)&*aRX;^F2C$Si9mG(B3$lG$WEyVC+ZVS<41VEPmx+&d!}7XF!(h l=^GF6MQw+OsAcAm3HYYa1v&wfO5P2Ckg^;O#) zCJLA~r(QQPN*1es`bXWZb>}&*qL{RrmDM=WGLa~cUDG7!26LlCjFNkd)keo?@^r63 zHTRNIg^ooq9FPmfCSy#pr+=jWqJ`)abu6R~joBGfeX9{+U33<0{re0Y%d%uHvV(#! zY0A*&_b@hgm>36^fewSO&J=V69Z>nI6Bm?@1@3aMz)&r*GMwCao}aD#YO0;ut(0b5 z)ut747*X_F`qRVjsZl7(C*NN$Vs$qi6DAR+hgyqJCe~No2*XjGgRZc^v`8FQv+1si zI$~n{}L=h&|rAb05?&yZkgfeyO%n|whOhy)Y1<(CdaRY&M=4i0q0 zCfAiuZO(x!O@UY?aP$NE+62me%#X uK79d+^MRUv78t>ZUPEg;>2} zi;w!K5u^$*`@3;$zS~W)TL`md+&``^2oGtVMOHdySusM$v>sei;rOdjcI3N$+T710 zqj{v!(9E^oS5_(2eH#WxV-gYZlG}d0L0qJ@gc8ZkF)^OeNE) x%tw8+DbZJ=7?z=0ne}=u+v#6jJcX(-xtpQL1~_d zBLezrXm`Lo2lQ41sx_<`(<(}HSxXjHYvv-9WbWHVG2kc*m$1Pl1zpiVRuSKRQs{tz zv1l(il+h|a-N^iLXE1rLg^0eXVvgMu{Jl<-K25wsru_&2w3vC}&CSx6xq8;PH{@wF$!VmCR# ze1*qiQo`@HeeKs`#bO$<##i^X9|G%WN}15&eiG~`2`)!k1;!M|;@XN+`Kvv-if0oV z^5VIi8aqyM6$>n;xVg2^U?QDecZLQXoRnVP)9mnwZ=?`Qg>B4m)746^U22QeFcYaL z8E3dLo0Gpp1rx{Qzp25{dZuHywj4(k!dMNhY-y+s$QlvcszfCfm wZ zNR%imhO?jqP7kAdrC2Cf^6Ox3m|6&pKk8GZ40r-dOwu5h=N^(QfM#oQ9_+Xfa>$z( zy_$VVtbABII X8PKYhcDnNgek95A95`tLf bxVg9t-y ztnZ@c1NXwSXM-2ahf?vSpBJl-jCFZeSfvv}<#2x0-&=)A2)8IT9`EniP*O~iSXH9Y zlxvESFP(4MH)%0g1Y5o2>Be|@Gqi44ray2ea>*APERxquDmQQYl=$R%wZFvqW?9P+ z^IdEp&Zlvim#~b5Rhce->=t8XB=?wx=QR&5A_g5dAVgRiGUkf)6Wg(}Wi^(0XTNAo z$qht&qI0jGD6FtwVJLU3(!u36Jx e~jmv4wKT+Ks&fIyO#Zo)YsELd`aO2vfaseQ%vUBg{qZ{ny|9*^Xml z*gEy&I0U^_5r(Ar3!R#Ip>5${UJ7E&?c@tnBr%yFLzLx`S zznohXW-wByEYwU7hk0s@rZpxGo4aUgWm#eMLfSKLkD+G3aCc7Z9FaGf*G)*YtvD=x zZjpEF%X8 EEbQ }wv!%SPxTgKoI!TRPU*)D2VRYpY1aUA{eJ<|7IBTM$xk4kH zeVmgLrE-Nl-GYk M!n-;7KbBer*Xpc+)niSG1`s>c|zCY!C5i8nVCYz8l%RE zem)=9jbNh`;`9FSOgEAij*f9!X5Ah StB!?{jHq$VjFBU|?Icm;xTUUot z56L}QsXFyz_xC7G1=5dAsV7vL+ph)c0JLIRFK$pPr~UK>6^pNgLQr&Bf K*Gy9#HD(QcWLG!{az{1S!@S41!o(>Ybw`GaaeWES_sVJFY&6m=e{8)q4rHu9H#7N-El{ zr*k7)F{Gur$Np>VcV;_>p>_LvaTa`+T>gtS&BS>|Fyu<+ai}tH6-NiKxZHfigw!Ur zCG4K7D?$rHI$3m7%$5ve#f^*)Xm!o*J*`2g?|y9J@R;}x|M&l@sxk!I<9-etBLby` zT4z|)cab2IrB8@E4n$b+aXslk#p26-{Bj*Z*#ok4c?s8C86wd&zxK5uu#|l;z3wF` zS0R|pJX?-O<|D;%{2mi?)`XddZ2rZ^U}K#-4 %&F%;beTN;;EV@!Ly!W2-YgYSz@ 1x8 zU+~t& bk*lD>doUJi=ED$c?$_s?bL$N@<>+P)ZYlG!Lho$_*AX$ z*yd8WJRw)r?j#!Isv!1%`vv^>>t^k2$U +C=ozNKfu0}k_J3x{ova~kH>QIU+@foNwW zP7dsvw4#lMts?5HvbQ!mzHBT7g(MI0yE6$VAXmM-5^XxPwd*>0sWoavTE~=>cie_6 zb{wf(2;Z2L$iJo%XlJI8M*Dy*9myBOqD4i2N#5S+s#$cPGlkdwV05a2NmMzi8FsfY zdPIv{RoEuP4BP98V!?%6{roT*poJBXs*MvWyERE{WcUj|qhoKbG9#oQGUKb)He0cc zBLfEYebnr8b=iNqtKN5J{S;|0ukN=prI&0%I$9|R^W6X3!JvU-7E_y09hu!^8h~Vx zntOd?NBqh22 L?y zl;5<#hCDL$L#{kIe5|jw<(pwsdG1v*R?J^xRzs_?J=fl=O(@PqP3UX7op-~1l6G=p zsarXS1Ww3p (yw0DpO1l3v<74tKrQz602RCy1hFWsA9I?)JgY8kK%-m zdVMv+kP_arf1Mk54+dh>0FQ|Uo4S`snekD*69U!cR%xi!{HLi~0a+l>jyyAk5bIbC z4d#c1Kw;Y|?#GmoA|n+w&HE tJ6$FF|XeBWZV@E@WyyeQ#WM?25Qu22KCOmd>R> zodVROtilW297?<`-#4gAa%Ebl)yGXL_DiBG(){LJO)^9DtBQAb_aRUC`~3( zkkkvS%4;ii85SPPGENnA zK)Ka@;!=Z_ItJK*QU+DG5R^nt#4`Su7$xKTbMw%Qj|*+G^wCK$N0TR_IFmUb&vB2x zS8 Wz>NbYe~ql<-L*)XtG zWL*8&U3A${KFDTtxuk9tmIYm)(XC`0CYB%g){y{!3Nffp)o%(5O_W=9Z`U(nI+Tdf z=}8Yb*l@^In5j+d_4?3RnPS_dgrOm!WkrWryUNL|1G4;SqMnoZtm9}WVN?8!LN-%Z z{iz(CivEukN3z@POlB&b779 kI%zs?t?Lvm46u00zeZHq)o4UWpj^0-vx{q4SdNhy?sH}BjH+T7fLbq4e)*}$ik zb=5*`L_MrbB IC6J0Ki%i|+ecXtTO->-!JfLrB3*oKW)4{|J_YCgddq6|^ zTN$Y6mrGJMWV^Rx#x1_842gfQ!1f*x&XxhYC(?WYx~5%6E eQB(^%Jn)%DNfKj@Xqo%K+E#??--)uh!|Pn7%bJl9#FEriOc2}FUXnXPHVWR+ zO-0iL`bWi~?<41+Axbz%Rv=!CXcbeNCAo=IblWwY9J!-RZGU4szmr~qT?@)QF 4u<*K*>BuTP!xvuIf$71Saqr6h-8--R}2M5diEAhWUnpo)(H4;lX zjHq?)jHv{oXrFsaH&Ilku|-q6)e*0kSt@_)S3Qh6O3dk0tCyB&cXqcom3UPH5|Z2N z@#q04AM$S|gzG$|GqbGRHUL^Aw)`^d*7H&F-(wYBkDtThQ2@~7mDnN9oN)9LAW=Z$ zAAfW21fY`z-h-2LV0$k!=AOJ~n6PHnSyLPd#p2fY)&`hpcZO#^`=zr#6_Qkl18!On zD9EUB7db4k>_v>%8lZbn5T2PJIyfIJOw{LQA&Fa-TO^%a1BS4cI=?&jgy$w=gP-p& zV4spq=azHT+abM(V)woMf>0L(Y_0@imZ^cUZ-+OWCf0w`wf%rPRAaB#j6Xwe%{bJW zkx8Wn=ME#)E22ShDR>}PQY>^znYaaNtvI^-4GV-nkrc{g)s3{pcySFnVEL=E@IN_4 zu{k6>JyWQPD|;vPf>i8&0^x0e+A>M=J&^DF-UwmlLXst{HSMJn%{d;KqBci`$JTcp z?};%|ieeQlf0+GZdjuPZ%c8vMYs8guKgR}Ylor*2AZ+{|*cpXV1_iFmV%ncAU+H|- zOebtnEA~S+8*RC9QO8E)MG6Z2ekMDseM(1L{?NqP{)@htqa<9ncxftjBy1%cp9(vO zL755WDp`0%UEP11yG8+ZN;~i56{ULExO?yw4G?NC^fuSRdl$5Dk8t3FpQPJhN}4e_ zx4TnOifo>F`+lkCef~2M!?pHnF?AVXj#r*b`6+=|(S>FGt-mPLaO?7EmUGE4LG*96 zelVCC_7{YKl2BRQp-0BRE}rRGVL>|FI%TQSfV6-5RwpI$s-5k2S(lW;Sd7 E|GxZ5XotdvlvndX`tmr *%-?Xwlefyt(0SzjW0d0!fpKs7QV`#RqYMir^j#uTxnxJm%16Yk$gR|88P>^` zOK6QxWNWFbi)0B^luX%gR_u`>nJ;G#%>=ODDbK8^hzq~b Rq=MmMZo{!rEaF(8TKDc>?yiW |4?W7ky>y{^5T9()Bve zTGxHCN6PxguA7K;T0I7s5BHj#gxt2%J!0K_tlBKN>vPX?rGmTYPeX7w%B{M50|XUC zA)I+Fq9Gg|S-E8w_&DRDVezPb)lgRU#bDBjd#zT-oPx}a`G46eUUw9QWre;iXwZu6 zY+Y=Czr(&elbx6zcIwR-oXIA;=r*jS+8+P$rRK!pD3#)x085f99NCd0+QkeYjEn&7 z+MTZtF5MzA0RH0Z@&o4{kh 3-B7^ =a*M)pq0 z<(MzG`Ek;g4T&PaM^z`NWFh)t8W<=1_04|VP=p0JhSg 5ESBLm1N-wzFZM1IU>a(L>936mQa#p`Fo4*mVqDFXhbFn&QfVV*;v`Z zQoB>rTDXeCah2o_OtzdAXopOp46FR$F*)9-Xb7_*K#D8*-mXLUq2bV2rk|d@NlPvd zRat#MSx^~Er^w=$s=nn@VzZ^7n4LpbI5L9i(dh3Ikw@H`)1tyh3e?x7W{b{%yAD&~ zjMa!W%#wZ5-;_qGBB(!PVoH!~jC~Huz;+CdxSl73n)^}}7R-hyb$$Z957oXEnbGgF zWQPT2+ A_Fux=V!ap9zgaHuvCo=_sZoS`$in?;B~}HTf5S`MCp|EmISKGW zSDS4L^~Z(Qn(G7BHD{Bl`>nN(;-Px5-e$4Ue@i4F)4KSB$ZS}qx!FxcN+Hda 2~0!3uib_^+q;DX(>qKweCObdnZAxJ%1dUi%<6W8AleFLu&t{G@;dp(KaN+ z!R(l%P{UQ9vT!w%jPNDpAXqrRID_Ao dApPppYGT(PS-^GSHDlUDx^s8+R5lJY9=yBn}cTG21F}oQPaVY}j zy;u##D8<$i);m#tD~t_~c2XbRhc+R2-DV ~dj_rH~`zuxa9XI0sq`PNZqR9HW z!c1b{l^NcUpttN`A!xNP2OyM##DR~A{6;*sjwaH0Bwq1)TSJ1cJLu$wBP>YInjTv6 zob2RSpa0X8Mr1)tdPf&hAr@jvQ5H)P6E=e3 nlr$t02rR^nA z5BpWkiiRyVCh{>Z#L2D_yGHj73nv~#7wV0Ns(in+q^Z(33Udp8U)vQEreO-GVD`=o zZ+gN+5XcZsG$aNbtQtoNVzStR>YG_daJKTLF5(42ES?sE7pAAKl*?dVPiA_Cx#(E> z_7ufjB;+ F9=*YJ% zvc1&CqgJrZ L zdJE_0=j@pDpQO90qMfcfJyfr83T`~kWy7r}{V 30 zP{;81{^&Lg?ZOYDBH>&hB8QO|$b`_GoM4%a{LjIxgZm-?ZO+!<2gFQ0la0OSfZ<;T zMlQSiMQ;su9#K5?Y-C$GN%fQm89K%saqP;wr|$mb^ks(@Yh =V* z)scyw8PlB6o&!~ps~>kmiia& tenmCVwc~2G@bq;jk&Hn z!L_(NOGoLAbKFZN4UX<25%2%?{?L>zlZ3axEbfO6Bd=)eDBj=8Fs=HnSbzx39p`+p zphIM3_vfh=%OE*I5-aP(j;)&5oL%a;d9q;bZs!~;Z#VlZCo^*B0zpE2QNm@$9UN-A zy*oa5W->+Q3pHktGdZAQNWeu!f}a n9Iu*u8fl?DZ_~5N!Civ z(2Pi|muaJgl+aS?^uTziMfX^4ZrIRB9wF@ww47mwO0hHbdL{X#+Lj7%E!q^v6OqHg zRowkyp$=$~$^hx})jc*`H` sm86ZH?pmu}C-a{!V0H7p)dmKO#HJ|Zb-bLY&zJF3YB@6QMS*o!9;s;ax|&m%=x z{#`q`+EJb!Y6~XW_Gy&=50PR`u;5(Oi;~bMg#0cYTw&u)fy*Z3EUwR8e>8et_GfD5 zEKt@FnVUoZQ&HS&RvPo0Lsf|IcJoqlHZ9KF#O@eVCo?!V;C^sazCn9eI#(AgtWW6J z-7)c5D8MjEVMTeiE^_OkGPMRpVnmr~I_#m3 5lD#PwAus z)tUR0p@M#l0TFP}-amQWtgxK;^!$9ZPAxJxo9-o>?f1EzT<(}->M8&}K*7J0ILbqc zGLc^mkEJ`ukpu}78TbWDc;;EETHelxA-?q+2J3U(Kt(HSUo}g$%V5{8^?Ql@v-Xa? z@1|o>&b!T}4O$C7uu+ohP;uxqos-=$SI@F9S=Kp$bvr%!WghRV&*XE=r_jxL_?A#< zu}jyCu@2L6E8?!3#Y9vUEp~QMaxg+baaagxR=Xveg^5U1^rCT`R?_tAS=%*TZ|+u~ z-;4YEv=aF6PbV(aB$p^OjjRSe9<9f^wtQp2xYJ#ND6%TVkAZNFJT0s|n`rg``vB}w z;m bdcd#MVPm>eEP%}9US57`F!_~1$WJulIJO({XW>nPJwV_+^v9zEFd` XmFZsPL(aC4ux;`=sk|KD8mT?hKO5Sr!RNs;-;MmF6xRkE(e;w(Sgf|w z^VhOHQ(`q52k+rFjvw}8Vda=Mi1B|61BJ%7fJ@TvjwR8YeF@pB*AqF%)bWlsy~UIu zvXW?0Ds4>h>>9=`o73Vl6B-JQsY3l@0L;%^_I%6@ g~{& z)>}~v;5e>)V5`%yYA|SE^QaJk>j_I=eXJ%0L>P;&R5x%AZp|eV87Wij=?@aGcXQ$p zm}OV@Qqcqp^h=`bWdG={x)-Z1!ai*dN1Q7iGKkK--=HBm;h}t{v42{jC?uiqb&vap zD!=nMwSskK3-TCij@t`? w`rLf$*gm~Wpz1|Ll??n}%lhnF;r&^xUHz~F53RmViB1w7THRmA zzN i-xF;ls)bYy_0d*@-XR17j`~;p&nwYD$hZ zJ@>%jw%I41=EU4K+wZ4pw|?qY%c|!h_M f$(p(Y+P-f><& zzjzcX)Cf&BujkLYF{@e+6N)sQ(~yB+t+23Ctbf5~=7=#DNsG76QY_N0HKJ-jDub=( zT^^Q6v1?nKOzIDj6RyL=PW#Y-l=2}qtE$ur9>dx)qHH3t?ZIxl>HbNTArWr_BGc z6)=B#<6`HzVZ7lXR8YxA9SZb9%>|z3LrNpGbho>G*Q2g>Iat^9unpKx+o-zoFf}&D z^Zc}2oc_RnI6te|y4W)>1vat2B~GJ_hfuAtogolfD?Hh}N_Og}VzILrO{QzamWPo- zj;gAKXRGrfbq?kNRc|)9!6Ib)$64j5BH2TylG$?p7_GIr^u?hgVNRe>a un4}Engk}gF0C` z?etY&E`4j_LLTHCcrI{etTyZ=+@wP}*Q`G=Ts@VSnXE*qRQhRGDLgl)aW%QP^lx>q zo*5Y%C%tAWwC=ua=ViwsDSOxx*-itZ2A_HWn6y7oBpY?+4kPl3c2$Sz@1#3n z>!&)(GD|5K6}v #DaD=}t(G z791OhbHL)T^MR?u{vr`U&e*r-hfSf-AZl;z?du62wI;NU9;vnvoLZ#DUsw+;bjn=! z6Q?fj#w*A;ljxL*?0_YGfw>u*IQBg~*v7@rM;0p?!e-JgHoNQ@Mj|8R3feQQ%Zwq^ z$}8wU>QtVUrBFEc^}I2~E)pv^X{SQx1 ct(?V0@g~UcZ$oWsME!b6w@UXD$f4_tn)aBdH~6Rtc?R z$#85y;Q4n?YLUr)%Wy+=H}dYb `(%%Kj |bQEBkx)|XC zwh)QJlq%!PibSr-aa*uy5_HX^@!ZxiV_nd0u$CIVyhPnhuakAa$cS#p4x6KTQb``} z#VlX#{PCxK=xO52!82u7d`ZO@wBt9or`8*@QrG45-l&Qr28rh;9c({*5dtM+1h`Nr z2iD0DXB36i8^748g%5Q8*zrd=C)4%> iR_BD@P_~e=Lba*Q=|XQ(f{02BzSM&aTO^U&1Qmg`glUlQ z@v-F7|J zQ3xl98I^vRj5GAy7hA#`) zkXg-W-!S5;r`zXd$uMBZ$TIuV%n!E1sqd|t-026?P-K3jCUdOb!QWXi*hg4EEY_Ob zEwu?*#>mJoR)fGmrzBPyyZJoZ0ayC>=H`=(d5izJlG}{_=z(XjzAMWH^Q;Wh ZH?S<+EDY9IG^ zp~2PJu-7iGj$5Z02AcI6<>agm%;fmVy`^^MD)F{Jm+oJ3qfpaBO&vQ7xt4qCFwHQ~ zdDwW2Gd2-TcT@e)bATMG*3d^KeI$LMFcK-P5tK6G$~f5;WW#VO3YOiDJ=U&aSje2g zqZYC(EX`ndUtb(~kQUKy)Sdg<+PY?JHoyo}y)F+O# 4)w+GV~&Co!^hTVfmOOuEoWs+BWn8M+>#OVH~IzPR}cY)VMo)hKX^YLcAsR zZQ|GmT>Lo=2?DIN1G4a^g4089&w~wHqypH@TnL(38Rhtys6TCNb`&T7SxhJ8pox;E zDmUwfYpuO3O%DZ|-)tpe!F~)RmeFu+D52fxvGne#Q*kM}9Fe9nEy+Xv# gNg0MlVkRvTz3t`L3@0 z_|a)Ftz5^8<-EP>I5MZ|+x=LimI`o3$CEoYL|!*Kco^3 w3=%HnqNUjUn+nuf5;hdXq6FMZOa)K?o?r!wKBFwCGf zx&r!9W<`{1-^^dVj#XFV*zT;C0aT|vpz}$FdcutI#-H*>3tM8P(KcpHqv$1hXY`Jk zAD4}Io9b7{)`RP5O>Z%h$BFNB60pq=b7ZlSAJCulW|Kt59eZ^8s&&YUYL9aINCz9J zB`;>65=0r*Cs{U>u$xJCC q1cG`4(j?4wznReV|32U8T9u`w*VaC`Y1u+K&kv-Gd+v0IM@4lM09 z;S@tvwF39zOKcZU)gJ!Wa<+|)ZPN@J1O>njQnl>ZI1!C9EX^ ?Dt zf>ImQcJhwd5hk`?EHX&rSRHQZPO1+Lc3JJ*R%U1)J|>a i%7i}=5AUy4Z%h&nJ{4Y z)z?Nbo>=Y?#En5Ji!i-n-xEh2pCD3j%Q@z{Hl?|!M7a|&IHOk7s$J>GmI7{<8vwZ;+d@R+9OORZ>0d7ApxY@V3#+CN&)N0_m_ zgWkf3M>2BMjP0Cv+LX0xp00XWH NOrQYG9HBX z>40UBsFLn=Q=G4Xsdk=F3N@uYYSFRl`y&2*uEnrW364t=VHwO?dKysxZnMER2QAE1 zUGu^ChaJlPJ^gYtIFQKJa?ZfS2WTF)u0lG-u1k*&mE1MriuJ=WTu{ufak+K#Mjv6n z9CC(SACrLgS(ug4-gteB&4!qJqKG;_bfj pa2%&f?tj{-VFtQs z(&Hss;0;NGl;^cSNd$B`v2>ZbM0b}&)vj^Hy9(8>k=PQ9X2naO9_ZHj#4c!@Tn& zXNXfZhS|a2OCJb19o)ucHPkiEQpcsQmg+esc6Yo__Eloh29r6=8O@N;)4et)KLN?8 zQmV_%c1|RS0J|<*Rj*`vtXZ7)ERHL6-AOP{NtBqFErW+cf%hygxcu&~JyS|4(f;E3 zfQo%mei=-hhc2l;5Ok2by7{xTppNB?pBB=or4ooE&0)U?o@8V!w;{E8p?h)f{t(=i zy8aKYsE)U&-7#ga3t>Wq4^FE>*_dM`4r5noWpuO*ms+tNof)-UaqdFO6k0|5eO(zV zh96u?Cy#w?s9H#hH^)^@XiB!y@J+A6LY3abpg?NAerRr6cwSudX=U9+uuT(DnN|h? zqt35&7*+q8N4J5SxSx5pHtBjcYNwPmUZvHt=%}=Pw8OfpO(LsHT&UDq!8)pppDl?w zY;9cXzWvt9f yaZ72*|u- z`yz@$%}ECxo!kV6p=}@HqqCV2s_yu4f4X66A-%|e4x{cS%#C~ccl*g5JuQuUQPF~B zZEUWVI4%8GGkUqUccyDnES7vjXR$zTH5LU7$eV$mORBroNkWCoN%(YkqIg3DzI0Id zZP!roV9TGqtL8Z+%bUPB<1pFVBqLKLsNpd6cFdcH_oeO0{ZNs|(axS`^moo1#h^mL zOdAD$>mYF#H+DC!LRDGJ+d3?b=iCQeXQDU)bGy?rQ>&DwQ!hgtMxp|My2qwvHCqs> zjL0}(;m-R=U0S9JN9?M>WJz_bbUTk0Z6ZIdO8U&SWw3?Caf^+_))R4TP7jl)?#iw4 zyOljdD!g0|XWdQ;^YBN14~G;^OL(b?rR% | AnQ^^lnw*>g|oS!rd(XdFnzKj3rh?MWDEAI@T1 zIYAW}rVgapSv_6uKnZ3Ku{Zh3X!>3)11~AdofBE>^T+j~+m5AahJNR+Qn~zQMG0@D z4rtKbcewl)e@eQMsx_@vSrMxyka&SDzyYDY(~CMxBv<7P^?t7gnqm&q<3*)>{Bi31 zaUw(5Lx3R>$>7>_*VgVhQoz*=l)bQvO-Dk}>pQ@aM5;@9CHTL)5uq^_rsnZi^RLPUFHB-fiEN&O#U C?m p6a)+sUl zK0eakmxp*@g2Q4UY(L&`S9qRQ{7!60$>8)bJ 3E%Il3nj@*z~1hAt4tmYxpTd z Gthb(YoT N?Qp_p{g%L?>i(Qq zAC6-&wO>>$EM6K3Ltk3^k2&ICvu^kYrO0t!m$|`69AVmCj*)J>Fk<<_Jo%JHBZjBi z7}1U(e+=c>UdZV<$00QW(l2~`<{BDU7hB2`qat2C*kHGL)c%&i6nv$v81GLPfx@5& z(pS}Aq**3rmx1*p%y!;zeX>Bg7WXMbUkBcL5fSuWBW0NYC$5-UyQ>HI1tf>^G_`gm zSeRS3gSE2S)iT<5hcxhP#-v?7HLi>H bbh z$t|+$8b0uIUGI;xhFp^I-mWTSr9>F=ZW%_-ZzF9=nVyIa{cks#BO42ML)HQx*LGKW zS)8k#Q|IWfQ- vhgk4h+940_^n0W8qHl z6YFg&f=G!baZ|tUc8Z*op0EX&?ZZS#visj#ku66;+5W~TLElR<0Yq5X6W<+sI)y^& zbZbxZM7J8o7L)((W}ZTSd+!-K?*t `0 z&G4`V_LE=_JdRwXg0{XYm+-to1iQxeB1F?;grd+FXU2@}^=zIR#PKU#kivO?`L3aS zXotZFJbe~M66<;U-$*x|TSSiIzB?R$tQ#|+K8NLu#c7?Amzi&MbNOM_2*lkxmV5{V z;}|;eUF!Yej5m6|OE gNGvsHD@E4@;hq>4`ddniHq zl;El|^^}}K`_}Mv8@t7%>5fd|KVY}84hS<`)Ka$OT*)hTl-{BUNuo%D8l;F&Uoz#= zeGh2(uCOZZ4;u*;)* k9_E z&xKBsP++kWpPWhF5f=Et^@Zarrgtn}WnLjr2UQp|1D8HN*RnW`%K}eY%8hSL#EzTs z&eR4Y*r~I)Dm`kgutUy_&O##+sO=)JgRkoUMyT^~VH-rY&C0Dp@6p%xsjv;uowHz= z5+o8S&WG9KE~0NXv$=y}<{dohjdBx;SA8+qXzqx2liYd)(Cqj40K%(Mp#w+wt$aBw z@@43vn}2)Dkr0Bv?k%1fAtjHRE66h(Tgy9B1UAvIN}?H9`QCS%I9GXbH~2_xoT=A6 zd_!yH3xViEzqv5%(8nSVT>;o PcMK&aZ`B4K&8)su!III^~&b zh!^lUY}0Kq*Qwi8f=$E6Nto +w6{vTYX*ihT)3u2-eTD$s*%KY>h~bf&(>=etz@Shy~f7LMVvM2w+|9 z&LK!D#4Tt`zKv294Z`o^IHj?@Co$`jzFcU&1e~evEJz8y`747_O7hSB^{-!}i&_Vk zX2iHK7D5~w1A(@BY=8VkI%;GaWV^K5rGDVct84Ex*_8Lt0sdlRxwXhh2CUBE*x{Wc zTy`XUvi1zdw?MhIi|Ff1r(;zTJ|;B?|9A|wb 0Z^BHk}{$Z1G *7yQu3YTW zUfCWUhZZj~ehBd}Nh)AEgYaABFN7k{I>lz|MVY|Lc(Du%OQ0~ceN3+O-IXIw`GZ`; zDJ$AGgrAn03B&UE)TVuBH$=;Z1wD1+IBcA`5?Rpzv}XV4)kHCkQsJ#IUpI0gRu3{5 z@Ce??JW_TC%l7`0m|*4|L!SPuDBZtgqPX~X@HLBo{Lg4_JCVA@)U&v7WW9hd`1^(Q z=O&6(y6sZ?5NLT$gs >HN#b{BZUaU)9xKBVB&BMEmTTt`6>>%s>R^2MdKc zrsTMLP-n2Yj&X<5c(no32VOL8Fur!}?MR)f x9 YcVwo1Pp$-vnH zb}Y$&wcuc$7#17dzlRg#X&siYu^M96ecHE<1cRO%Jxk ;T5lq8NxRh43&m{%B^#3xf?J<6~{T}TlmnKH)~ zpAp)R*J5csmtX&YjqucQc4)h79#$;5f|tIXhM^-9@*jlO&Nxtrm6G^n(|2qk3&+Yl z+VZ9Rh<_wh+mL^xW>HrXo|RO8+dSH{?yeNi<2%QJc+fPgeT}NAYwVbr%M0vg9u*~h zV5xA&pPR6FQ@V9t-Fqp-lz3ErfoVSsCB~=Cv`Bjru k7PrAjMK%AxPX739ibm#1Wa=96cL*fg+Y;H zU}uhdx&~*7WOn{~+{Yzo|J)@@DmB1mV$~%W6Xv1y67f=6-C!c I(I?qSIo~~*A;xpF%>-8>2~S(=hhhUhSR?RI5`~{! z61M(o7uaIz4!oCPB M7wIfpLXU4H_sl9f{v$JF374+0$1dNw b1*VCd?ze%;+{VNYCxt#g{3Y$k@OmH#W8;d2i* z;C0tr>tVuU$Hu*FuMLS^$*9_nS1Bt2o!7;&^g&>?*jv9kND_nR!kj!i>osBjR)Wng zfwhdGs4Oixb*09|q17 ViY>Gh)2i&NfL{#VrjM) zky}SvHf`@d#=rpV8VC>Vg+v!@TDr{i-9-+o`Vu _DOF^hr%p&!!;H=7zMdi z34gRMbCQ&iHHLp)>Ups4VXReE)qg#IJT=uKsT4a7tVox_cn^II?cf%5l 9@=BP 0VSqB`ahl@hNr?1;M zYHk*mv|A=jdf9qK5nCQho)raoMSn{#ZW%fzh_xcwIjfZW%+Q=ZMV?nXcZB0!Go%a~ z+r<0p^ct?n#lA^%nDk9-v1R~ajHtoW!!r?5AZin}nd1NI!+bAT8|rJ1b}~oE#XEn{ z8mcGUu9+5|t~F2=4-zTI`U^J5>b@CXP^Eop_MjN(fs)Jb(tUUOnIyAnAa!X@*f_@^ zkoD^JquTcbn_4nBIBOBMv)~s~rw~(8#M*NYx4Sy#9XH6Cg4yKD(h~NSi4HYBCekML zPoVpkvJIX8PZWoT1dE+VPj|!=cxcwep|!KW6TPR|8Hui(`s+~pL@}MBYxn6cWKc9h z#unx;C{W$fB_8khZxf^{WcsjS@vsjqgJeuW;nI`j5x=ddIb}H&VP%xb_tn`3g*lyq zS=svvRV{bezzi9pfgRZ2U>de(V>%{R741AW%u#QNfee={^0YCv?;)#b*QjBQ-CL;U zfKx|aC>^I}$Y6SI?Q ~WO`Shh-jyh^4d8v)` z<1Pjv9*T*yYfm-Vc_>icru|}5qMJA1h;mhWquZ7 uP&mf1fq}w;CBN6N_T;HSAU3*tHekKCPy3#k>FWQe&~iOo zVa-*XiyL&+lPO@JB#hz7GPCdC_k-T${^hMsi%>vo3@m?{)aCjdL#v+i6wo^Tx;+i$ zN83?LiRr1OQ+N_GfmfZeJWa4Qb!t)>N`WcVM1sO1rS@`eQq6gi8xh*33nUbU^Gu8x zR=Y!5iTJ@P((Onw)Ehe~?$4Eo<+W~^852|mqDT Dn#G=F z*0U3yS)iVxdpIl06t?^R7EC+I(o)@BNUi>m-OYX<* KWpqkTDexx>=a5)H@HEZdp|1ueiR!mVk8@acq*mzH}k0?4A0j zi 0#}|CU@;%l`?yzN^?Pfw>?iSWL~ERwZHIxu@F+ zYOR{I5Np!mwau#@pit9azp_P=L!oxH59j8lxjiKeflp>&nTH%qo^FAexxKc!`&^w4 z>8@LnnH)|`ybZDMY%EqMHCG6h I5~4hr8)rZFd%x=Q z#71&p-lJc9!Pc-1C#Vf0o_I7ip = z=47f2!4)Xr+lCHMdXwBLnX)t_8)CiiO%w|xWGnWE+l{Nm#{RV(w<8eZnWYE{8`vT1 zuVn+C+X!drEeYJxkt`E+#48YlDxQ?cW)ri4Io-&E!N~Y^xiRQ?c#qM#*-eB8DtrnU zp53}?>opasY}eN6-eaMyo2n(Ss}y>1O!XdV-6; W zy#6FpdotGnz1bVfvO*!<^K0s?oN!m%E%J6fOD6Q4D_gK<6{_w!5nduH-feovel~ z7*H{`NSgxJJ6gA%3Oxpm6u?WMfa!Y~jiru^jQ0L?Kt)OfPIB?;SfVW27pua+#;&h1 z5w6_F@4(zblgWl6Uz6Pge$=q;H7ht1{S{-KtAXFmY)g{Znc BSAhM6v4vK(FBtQD{`19wv>dr#N?2fsP`C8vy zO_TkJDmKnbJ=vjdyjw=%@*#+;ieK*w`n9!yGiy(TdTe3z_7W7;9`+FJDr9+OEjN3q z445i~YpZa1*dN)R*ea9g&QXwTyc6L8JL!BO3LSH^O7_g!Y}{zJLKY2|drJS+BHhY* zTRYJaLTefN$YX3(ZTjx^c%_oeL;uH+0dXlpbgaA$Q~?n`#(LfC_t=21&h=vf;A&E< zOti`ckEYRxW9-^9*AtZ6+3_pCWU=Ei&O_ThKjmX#v1Xf^_pKAK`;L7plMUmEtgCVA z>^7`!bnE#X7*3Kyg$T-^{4CWKTkZO?J}oT}Gv)SjpTlnx%kcTreCvh^mBt+Sab1sB zjzozi(-zjV=>-=8RLx{U+Jegz{xnxk^Z2#6KN5uba3ik93nSs%E$(d_7|xKf7w46z zzUr&Jkz7SyB-#pGusF^It^IvA{yQEsipXZ9oO6 xft&OcHgg8_k!HD1L*Vh{p>W!`-3^o5=Ihena2-Tuhvc zwC*}B4j4*Fdf=rIKaiViuB|H6d1XCGf@O}$(9Y0l +F#(APZiB4t4YFHPe0D`p%R!T5s*F1Vo&waon}r>v6b$B*lR++4?3VY)U}ly#CRO zMjrw-2H48;y{Q6uxCdGdg#q_x;r^f}Nfj^jx9xZ1*clGg0*d9ti6ye1%groM!a8=# zX8vs=>o94?=hZEtL?z$HO^f7Qo@15cp=YA(jr3c0kcf& 9yLISzO3VDU#Ku?yFrxD4=F!?;m+|Yyqp)Bci=k#=p`Y$A7P4(P zD+CW?C6hNLa9%wu7NL#fnDJHEw~nSxQ80^c#<4h$jCrtU9OmjA+t`SONG7IfL2lYt zDps{7WzDIu=`Y5 ?(kDG!p&v_C!#9u8{#w=qeo}ED9Mbk=?}K^` z9*T&tkc>diZrpocQAps<`TLt*k_nPSc!8%X8=wGx9EyYE@Z(-fdB_;+WkYXRsZA+G zvO;9Y>|qg77IVoOJwW1!h!6Q6)|WcCQ5;%oq87t|1ktf1t-C)5y#`3tn!3ZpWVVfk zbQ>iVM-yjqy)kPo8kI-GHc8M)jsrbmt4V1VHBL4`=_)A$t4^Iw$^gl-c;EvB+IVAQ zdgrm4lNpB6m)1b6Mp#{Q5ugRy>3-mE;c)b70l|6@kSHpZAl<+`_YGW0>_N0)S22%o z`WL4wFv|I9 vZ9__({O85>c9zh(7FWCHUU*IX|G6h#&iZBE}hNTcc> zf_h@SHpUN