f}r`1)$@MEPF$ zPZne$SEL(MAyvBS2WFB;>m%}WKto)S?srq2I-&|LLs((7=T7yY#X&N+$qL|TN#O~H z!-@sa+z64rf*|teX9y=#krYCZ&~CqjaI(wsG6&MI$^5JU+9$5Y^)L7xo?1Q0DPV%m z1FAT}O1s`Y-cIN$1HavmPjA!xjC5aRSB+y4qPPtXxfI^1Q~QZ&SzJh91KC_@HjB^( zh9tL}=k|28KorOK03%CIDFHMNAkI?1HlRt%p5E&aUy5^Hc<5w+{aQe8=T2ecSZ@Zo zP}S1L?+C57c)q{*o2B6*0a08+4twa5^>gU2yNfpbI;WU)y3SJm*dZT%520cLcrp@x zy(GfqD#9K5gggdQ{rgn-x%Tk~Jhrq~X_1b<)e0 zW=5nDphGf2+KL+f&CJvkWv_N{jN;=hdq5159SHad3Xe%Eb}}moI+M|F{HOx!ks?jg zFeV}@a-MUVPw+d1+uh&$euNKrB6Lg7SdrNa U7o8LHzsI(p$65?d6(wOBUN zW2)eXGBQRQLHlgznmuYChsjc>f}gy;UHq9Apk2iY>!>^k$iX;r2`jTjjgehWIvc)n zXi07#9&sMgst+_bLfMfXS?w=BmJ{KJt~8@~nIn(>-a^p3Naz#lzO_-Zllms4OHGjW zAf%k<8?HfTZZRKtw8>lJvF>@<)1#$`&?6U9b_}J$E6u~?qt#+_bgNnze9V`k>QSP; ztq*0!2zuT75nw;NmXzS9kQ0E=g~no+UIK99KAxjVvEu~y6}{a49T+M?f^S^kwYr1} zzTyc4a|;Wl^I(s6X?i=s8=f( SSE_5KMYVEh*Gh^vx2*R?d d6o56g9 bHeZy*{O-yxlOZo4!-_-uRu@;KGZzz*xh9?#K?ph7QHrHK)C!FjPV=V)M#31p z1v6NrsnHST>;aQ`zt2rf(6{+(LXa8)Ce*`%|AH(MG#9)uX3j8cO2#`%`y`y*F9t@4 zH1Yco(IHYRIE>-y2$i}ew7J rihj_ni_g$ig>Ic9k_99eLdE4apkVMXh3}i*u+@!t>HZW^ z#hR 6)KwO(!-1HRUAtW~;ML;-3D9I$>{9RrCUuaS zbv#V={^Dk=@!cI|*P u(rkK6n+&38+!nc<_2lf0 z{`iw@uyF0jU#DAOq;X)WMz stwnWr*Jg`*5=znQu9mopdrU8PJX1 z?&V1&dz&B-sOt4$k)`Ry<&`kI^Opx*^o7izC!E{!GU( 68Wh znNfu~z@Nh*Nc^2}>&E=ez+~1VEcb?XugrVXWGXW%=n0o x`;-s2+57|V5Ig#Nzp9q|RG8tVM1 zA#j(M@{BATL?!24W`p}MZ0W~UmcD|?%VyYX2Eg7M6P<2>@%P7j!4p7qR+vPaH)a?b zC^zqi6(LHp#-@~%@klUWK^rUMoLzc~^4cW9CBDI0oLV-OyXL^&p|af3+Q*;P5Wb=1 z16i?}G;87X<4t)d!vS32x`sgfO>RfX!7 }bH{d96Hmo|}q(5T^(BZ&`f_6A#HNe=aZjVO+8MhxO-*+2e zW&NPAIj`pC&J8)#P~zu8#YdGazyOd6>_PLJSGB3lhSl;(v*-IX4h^;Mjj;3Conur9 z)y|lt+=#!l#Ur6Wk`d~0buT&(Q6Owy?-av7kL;jroE3#>enCij?BIh9WCWk|yGgu^ z9enUME9SsocP-7K6`WbFv;L;UchSHSi0KGj?%VLHD}K#ENG40(N}R6&u->r9hd>Fv z3%Nt3y?&qZU!&Z~dFPB)xTi5x&!nTGTA|j~WQ8yazD$8)AYcE}sW2%%Naxs^Dop!p zM8;=WBIq6vMHU4TN!hUq83&m<#F#_JzF6eB5K-j>TbhM%ftnHgRuN} 50A@0F%j(*7zL;@96+o}Z2HgS!IPWRTG2r*)0D_AtgbE%-0;}@cKHDdgv2~E{Y zg;Rkf$VX%lrBO+z4WtVakIB30P-{?@7N{I?IkxTl6`?S84dIsd=1G{i-CdgMlY++t zGKX5xS^@-p1qyEz4`GAh%1aDsHum}uq+dUvXed{ex6+EE@%gKuK{jMiGo-?>$!h#) zm;MZ%`5EEav$Q{hA1nHD!Jvv|_t$IEQksv?n!wLr{>a m_EAC5qKXSbowwCtX4p3?J?SUX z?xmU`ij5a3_3un4C|mq6@9}nbz{I7ghb9UNql_6V;u?0ZCQZq7Yz@IfXZV53K^q(F zcJ+E%bdoSVCDM)8+F#eVhDzi*(FMy}00NMT#FuyBoQ~4d&_ =o$rnlZHrfES6Rt ymo^B~R~x{{BQPhUOp9-NhNIb(moK4#bo_t#xgKx;U2)rBsp+vLSWs-!E|6o& z0e%4{kW*#?ed)jMd;3x^oNbzl`XHazxj{vEBfKGoXSq%8t05Aw?v<@hU$nm2ynQ{# z>2IFxZm$N?1LDvh@Gx*F`?ZE0hIQ4u 5q`!wU;1cbi+4parp)K*FP2019m}nr#Nlfj~N< A=uD&c07sQ!FK zM4Kh6@xx&kT5TqmEp<#Js1bdCCu)9zqVAzSN k8* zI2o5qYn`W}S5|kKG9Ot$hyUf+_Ywp=Nt~{^iyNF>B)~Po!8&cKFq{#AX3*=;VZFBP zzG>*{hgsi1FANp2-cEfYAKEPF1vZfM8h;8f5sxX(+=LM8eBI^a@ara73 vG==YBQPQ@z;K5`>>9< z;fFh0o`H~AgT$r9;-+9ck1oDOLet3_ff4%g6_qG%&N+tgYEipww3rXdE~f4%*4L=l zd 6DdtKN@y6T@Zvxcwu) z(p&oX($?{hiZV)oa6TcgMF3c7F8%X%kol-X+~z8T)hGp3&Khse^&l2mz>Q~41Dc)u z-W&G0izs@$iTeff^OIU&A3i?#*?Hv7@SL@0Y^o1y0(9cj-xH4#AWs#j{^a=+gXG5J zfQ9qUP*q8zBSw!(nSH}D)Sf$+>QU@djPsBB>AJgzC0W)!sjK`+J+;Bn@E^U;*vRUC zUC4l5FI^-B#zYWydy^E@DC{wqRHu51V4;XAzQPM#!oy7~K5?Nx=`THSoxWeeQk?wu zoL6iUsV(vqm@SJMX9QY)M<8Iy5dG`880Y*F%g$Kzt=K#G2<*DUUo1tyjtR1Z<5C0@ zvZop9wp>_o2A54e%ze&Du)$FZdP(!*v~)tQ+V-1{{_VL45RgPZa)Nv;ol|k#b}xF5 zkUJSDzU|uy4EHwu;}N>>k~C{eSfU=B{2mxiu3&TaXu|EHt#~)4-|5Ks`|bY0`x4Ul z{)f#sM1#lh@|WaTeCUg*hD@263;7^8Un1FbNn9>Xg$X_reULK2z_OOXdmUR_nNd&1 zn>1QQn3cYW{c&gM->Bsh@~PX`8!rdP+fGZ}IZxU?!)nz6h)07EnQkU)?8rGMiW;&H zkTo?JH_M1bKg=iTFu30- `;ymMFBbe|RK%br28AM-IOqLc&G}gh8*;a`F5tv5Fh*wQ4p7H#Q zrFx(Plaz`Gi~XDBwdzc|+_Ci$tGQL4OuD9REZ0}h2-T1LNDhG%!sW2oSN&xSs^W(H zbdn Bx@=cd}~J_D;r`bNbgp#yfn*#ZDyea64@&Abuj{r@3it^v8^- zXx#`BMN28mtlil#=A~{-H1(rU+(6;9W~Js!ViJ>E>+6YCSm7hEi0u}Zmag6|+lBkc zEBcqZg0?oOjd >y%DBP;Ig*18$U&iwr=RGuFmCg zx_VkRrs#R4u{TJc`K%U*07b-3t8TK_Tn9UccH0SsMv+ZvQ&+8W8lyGQy{ZI%uyF>5 zW-M)qR-;4dcG0a0)lKIH{6cIg*qnDOsn>;BezE>@ry&mS5U=bYpNgd5ostO@BUuA) z3sa2@UtA4#37SQcq&wV`B|@M{( PfT#+@ S(Jd!Z`B>k+f+(TdbDEC)hs%S0*x_Kn%n5H>J5KR zN9^0>d-bQ3R$D}|lM#C~5}(z?S )&RU$!>t&YOg7KyI^=LDj0T&}>5UbqM zV?*2DH;Kcj8n1+U6gR_&nZe(}sRKwOHte5KLGASW^~t@04q$(}q44TYi@92Vd7JX1 z?N=yMJP5_z;K-(Wv+MsQ$c3!0N?l;=HieiT%vJVJEUF<@A(94#{efhH(0ievmTE5I z_3hMKiy$& IZ1O;=a3+XGrL=|HVWZkZVt?{!#6Rf4}cv6=^$m-{az<%<`Jsb|1mj2A} z?-?BEB9V0*+&W}ElYLG+_y*R^x4Sk|#L6;SmaoC9deD{+p#a_+NEF(0?9i t`oa6KqNGj88bQj~vN79}!psGB6_sLC}; uuOr4E-VosUNYp*Nx`K^8t#cI zX*NPXFP5J&?~Aq=|6MU=dh_{K1%eFExbCT=Nj*H0ddFma&4VDLN@%`QTAM)@F)}*- zS22~?)*sQmi4GvvH{Q$UwA6hrqV~zWM>f@(NvmOtjPI6SyY7HLw5XU&b;8nk)fm%^ z1U+KTKb;o@TTSsv)5X>1arUG0TPXC-ew ;yesbT| zX+7`;FRvi>4<@rIPn30-T$$5u!AR7O+XW9}7X5)1@q%~ROW<=n0G$R#XO2COrk~e~ z=s4hclBQ#aUW7$Tm_zX1b53Y15Nz6oEAS+z3lov4_KCLx=(HHEhec>;sD@;Jex5H4 z`K~!^y64q)gjZxlfrZi%+l08YIVxs9`A>^;CrY` >HhRX@S*i`Y4r!1=L*(8;irY*hamX5L_N_B$#b zbIJX6 |k57OaBk!kZR~ z39bwhRQ+Z3qqH)z_2MpMF>DG*YoJe(gQ;?ZOw;H4IO;up9gh}` ZiCRHX9AU&<6z=R>ap)Aa># I4$+- +sT*yul3#Wo!!Yh zd8TKrI=gn&Q?;uO(z-%j@gr|EJK|&YN(00;Asi^O^{@K4Db#ve_4y?vFd&?EU@3mG zfOqP1CNlvA2cu5fnz6M_y(g6EUdJ?4z-TZl?3QVqzhx0%$NYsIb+=$Mxxv(u)Mm~O zXCn{VyvRI7AsQ@J88 QY5TY>;fAjg8km~=N4EkI&b#h@ng^E=| u1$2_hUTs)cBeqh67hngi=Y+#-Q8ipbbAT@+m!01@uo;ga~EI zA(uQK?v6Ffyc9FoU}$SFwE5l>g4=x4mdA `b3OiumG~=aZHL z;rwDTG@~5hn)K#7#3s_3e&4bQEd6K)+{_S)5BbDfy?V}(+Nhlh04nW#x&QxN0C3jv z&sM0&Qq7+$w*=&la8jxtwFzxxwNW@qhje8+eQb9vm?09jNu_)N%!;?Zg*O&@bdRQb zbXTq$?vAM|XKGQwPSi^UZ%USM7f+*!7jR6Mb1E8bARD1fv_1v}J%M=Bc$}|;e`E=7 zI$UWSczn7wPLQy!hp$i~ey)401X0~E92)8NExDg^QR~K<$NSs_c)RQf#EUrG!N@$@ zFbD=B#sZ+FM;hDY$sCD45eGB~GSnja!PQ@PY*(mdLiQn5M?y}Bup@N|uY-QE$aAIs z+U>Ei)e~2stk*<>>UKOWu=)fDx8f~SE{MRh^<4&k=65p=XDrrm`ifD{DTVpgl4-%I zmkbb)J$!bD_n9=2VpI3#RR*?R{0d|F8)g)IE$1ODUX}OO+Y7TQxj{}`zhqu6NL>td z$m?f7RIj?+NaC^#_LSX K?noA6Jqc(T$$Qbl<3T7Iy;5_~PXRe;N|LYWkl5PQFGzmnS6g)16GdXa* zxndkf#OR@F1R933FmD~Fu@5!fU$c=Nn(p%S!Tm74r5h2-WNVR>6ed!{ZZZ^gkpVzh z+NDGrV!JrZ=ihS+9i%5E-%2KUW!Y&e7&Vp3CUxpncri)DJ%A2EWs3TfPXxF^xo*!k z+#Cp$Hb@LepF%4)PX?6{iAo7oS)M86{-y6n!uFZy0yPG#gH_Lk?dr9A&wXp7&c`9h z_fWfeA&Cczbrxd%&F&DlwBT^JYBP!4>>jk$EO0J?Q{-nHHqv#btvZXbv?8}Mh7Uv+ zV7(<#2$^{#C{oV#26Y$Pu(}**f$&1~ON10{dici7mgpT@c1#H|PPRT&n0ECZ0+Qhg zFZP %HaP$Ax87`a4r43_M(m(ms-Cuvf>$mibP!Yhwp=gbIfzRXNk#=>jnIVc zuWd|Qr!PT}r+38-N5$V0DK&*aAQ4-SFCeR=_~1pe(mOkLayfBE%*&?gN$F3QmU5D> z7%{=EKm$O_Jg!XSqzQxUPI?_3xj#~o5N0v>ewI^nUiL=wh4f{Ylhajez+Sk%gE{a% zw0Ak9Zh2#~pwrtxc{Jhu(toe>&2ZsY-YxaWdZdOjdcry9GK;Y~hP8)34_Lf|Q|2U% z=#?ee)b6*Rq?Bvs(p3C093KuISX=yEIH!2?!C5_y;_HlJB8IDgHDpk*zn&*j+|Cu1 zCoh4OI4i$4G;t8v;>!D?PldH4AN4>RO;idC^Tx1(?ntD^{h8fb>o|U@-KSKFP93s+ z0!{oSvwr${$E`G*7>>dnz{W3fWN~mK@AZeEnaCdF^HAE-6-wT1SC-TGXUo1cPiwMc z3v&C*_OlExtDM0wp`{xt+=eQa4m-}y4iJ|tQO|bhpr|$wJV87xq5{Mlq<;PPnu)V^ z+sxq}?63KU6AQy#GK&%_H)I%9Pyfu !~BgS^yL|?Vvu2bzAvD}Y$*6% z0<{T72tt8-$EL+KYOmkJ2&u`du(gS>dvuoY6+p2)LO&(3`Q3NxkwER?g9H)^(@Nnp zBtK(5zi>`fC$o7!eyqh4HC<$=>Nl$=44Gh5O}E?4oq+g@wa70e?;OKWP|Zw+BbZHF zWyg+tM4j9nWX8&ne0X`JW=cRuPAVKBKS!7PG>F8H%_XmsUcmmA@5H5b2etjfQDfg8 zJ9pJc;W-IS?K79s(UGEHH6Y@SSS@AdjRw5PKJv%;PhZHu0DstFK|0H>W-9n#IjNBb zB{!Vnm9}5OCmeEC-DZJd^u2T_dS+n6M)4~SI2a@6LLGVdF`cNfF$g@*PYSMmg~b_$ zuk^G9LdhsYk5?obSNh`peu_&qYD^Dz64AsRrzJ0S-(yJ_A*P#g1iL$gT5L|1q+k z>!RO`H*iuaieDy(hWfYzc*1bafX-}Opc4&{j|2wYkTAZfU@Njb{8YIh7LAn~gqO h?f_IbqD3w?uYrg!G~JZs z@EU&d@VGnb)nz2y)%pASaXoeTOHu~)H^PtlV}AEyVho3v=H_E&={&y!2@=Ql`VGJH z-0p`V#18ok<&Y=888a%SU=U0!I9kLJ5zKKQ8aH4wKdt;0%bbal*Nb0LiqAYlW-70g zD8 ?~mu4+@k*8CLM&;V2x z>w^zZN_=k@DKJFbQj1Rv%^u$O|Jt{?l)$J}d@t%N1tzY*j;# ^Q<34Q0P{>ywM08h-jW+qo9TC0>ti}eP9QFLgYal2!W17 (z-J+()!ZRb7n$1!$^sCXU(@|%tEJsOb5Myh#Cg_Us zY=z<;ON4N1dK3mvx(3q0Y_89DRuXe;Vp-xp>h^fFGhrNvN?TyW8x1udm{}vCeypDW zW?zqzE9hq3I@Ghc5^U`?-M8vuIacIyU80i57>3mY3!p`|ZdPb@pk45 UorKuF=rCCCd<|0J zRmJi2UJXLsAt-^Lb+O@Un8!Feo)(ikYXI^XNc0CaI*xAn8;fCP1JR<^mY{kZ&q5Pq zo%)LP)x-0&Qxjv+`^5Y qWI|}0(=%-E4Ld{O0)02bY4xY+OL@o-azS=ydwG$) zy-5>hZO`MNgxnyfq01@n>NCmQH8tyn O%a7 zjA_g!fR@6pQ?VeRvCZs >izw`O*3=kW;mOIGM)p<|ERXT{ z^=ckLPJ5F)5i|6+()6%(GWLt-GK^DxCiM)&lGQUz(UET-9PRlh91s5sj~oS;J4MKi z{dps6kvByOEEgyFgr4xTFX@uGcG!WGw0+ye?~!0=FfYh4mg}ek^k!=j_BTiQ1bdQv zvle)N82|Xk4BzkkAo|1ONR^}+y4>blVuC0GC55p g2yB**cLx8Eog4#vw|qRG!FtCH6{41 zEhqk4-Vd4aMvn6pT0~YP$PqA$Dod&i%vCKm;&OLd!dy950xX=vDh{S!mAsqw<4u@u zghEToJ`4) Zc`-?5M4?tA32f-DH0wlq5Ufv zd3k5MB~(c2XT!H*{Z9xZqUC~|0R^;O1EdHcwlW7Ay*t(9E5U0Mhw`k iXobZ&4^e-8`T02MWOuULhZMN}r{uv0@HwO+3_5%tmQ_oe9%~_bcgW3A` zt19X^ofj0#3l*?DSM3F`Hu=7m-oOuj0}_t+ZW_6~h#xT!8U24~VTnP!Ac84DjfH(z z42?W%C!y(FaSbLI3QBjBs1Xxi{v4tOhEh+*3iF&q`Q{i_=b?x^Y6%e%Yy`Yt)_^9x z6hm+J(1CA?VX@AA=50RBN$EIZjqrx;LlY1WW!Z0M5ap(}g8;9dK2PRK+rpAlo2-#? z??n0
aLD5jPT$`2&h`w*suDC+O+8Rs)zd32K>P__s7Hjt z;x@fi@PwuIryprQLNyrX0Y58apUO3l)raz#tjsrYzo7clR;Yyn32HUL4LT!*ID#(; zh6B#f1eM)wWX0%~NkEC6BFb+Ys?r^##Y|I>v^ElJQi$Ke?GS@@YmHMH=o?B+k7hit z*VVM!Ub_P8&tRWM6J1|D2i?ST0TwrMTpf7LA$6>l=j! z=>xif(L 6>lb) #FbDE#rljnWh7zC zmPi>JC@(>=kDq H2 z>sOq%q^yUeS(n{?vu**!3L<(?+p%~*m{M7SsnFTP?%=FBm>YTE*|D3EcqoH)Vd#OE zO=xWNcG@;`!``mnNQ9&^itcfgN1}B*QpW*VphAcr1aZz{KIxrtJnAkG&IUiLuYvUe zDBbTU;2S+*w^(*8*4q)pm@kbwT;?=mn?Od-nUi#MR{Yd75Tfr!7PRPK!8=NMJ>8qI zLdbeX?HK;_*fd784RPa#K?1n7O* 36(< zdm{dfz}+A5$Fat3*X5>a44aVaeDrl08=(qy<&$;(nbTNeVE)bq0q
4#J}66JKSc;3{}K$i=`a1QeD-8@ zDj6S{jH9`cv}?F<^c7CI>1(Q4q1N6pg` }Vz%80o;#DF5=eK_$|(nC3B6?f9au z=%WY%FLIE(_zf{Q7nzY?2YsyxhMl8nMPZp6c2@DZdv(0E rPA z?@KnKPt65#2XcO-{WkS+xe?#F-5FioROv88Afeva$w=~R6AfN>4h;$H?FW6F1h|0q zhzUa|gMrr1dg;+{+=LFJ=dRHbQz$Q_!_@(XfMh-)JKk4ALzaR|4yq(x^=7(HMZn&h zge!gY6dHo|d!sj 5sga20g|kd# KO^d|xkOVM_RZ_jUgDifEEabRv 7f;vJlJ%n}>sQ(DF^@B)o{wZ!v1N*Jx^l3N$s3{x;#fkiUM);b9|x zW%_*FgtJ*JP}N?1Gk@RX>L!@yoUS2=p7RG^4}ch^TF^tEyRYg?H>98hi^1*p2-AZM zG0qy)wAbDYZK>fb`%=kPv0dxjk1ANR>Bhy9bI$a9nq7PydiEjF{G#8mJG8A&Zbn_4 zJ1%OCH?1=H+94-?DuRFSMqd|>S6xaJdz$$(35}(7XOb$AD1Sqq_jUml9faZI$l8eb zmm@P>3@OQm)EI<}f0ugQvj=teowWbrbzoxcb&hZ{SwzsFu5xWdiXGa^GvsR){03W= zN;|z*&rn(1=u3n5{;04I@jkS;j%&0*ugbjz^@n;Ky6n&MQDX%z#a}4QTdi1nS^a>K zY0_bMga~WfazF}ehpMl@@&zFk;iRo~F?RtOuT<2G%~1|qK}~{DWTqp9H~ia8uiOff zHVr))6f;;HC+yJb=qIdkL%tC807^doXs4+l_JXA-Z1n_j=N~I(ZU^mP43_|wtnXWb znD$dO7^IZg=c uVeb;IJ>DU()(KiYnk5=yn6p|iDQB8 V`a6?k4ET-gd7QBO<&HjE^c<9Yx1(h4B&*&EY z?7p_F$-%@%0s*2AMzqw&fSi0l(7>XB)=_D`Lk0RB1SKkNg_28@t->ccec4Ya^&Gh= zIkH1z_8iez VFLj!aeQ+Syxovr_R;}b#r={M4IilbGYVz}eE_}oL zKdR}DaCtxprO?!3$E~WsngT^waj)5KC<3w#B7e Z^Dj!B^(5P5keOYA< zu^gkf+X}r?U)C=`Ll1gTi-{=T8s6h9mc%&_eg-17=Ndeq5bWROYg4jY5ab%bPV0kA zCbH$KUF1?w8pzm1Qr12%e0RSS*JC&)(2kts%z3g*sc9L5?1P&bxTP}V`y5Y+9Xdj$ zvQ?~qs$o)+`7WM+QoeE@-d64tG-xAdI`>qm6ZfZ^Q*z6AK&)_{iQSx#xRNuBkR2QK zkLaOEBs3?^#Y(JezhYP>m(B GCR?{+j9j{iMUdi?40IufO6Hnd0ydHt zeo%3^acMI&VVYYlh$rtMVR_qK2KkUpZqpOO%^SkMI&w*4odMJSnZM1KQ$>$4g@+Ho z6899t@PRQv%=2v);&KimDCBrd&cEra_KhD1w)ORGy&_r6A%cyhA{rOpiv=BKax}p3 z=wujQHOF{(T6kh+?*w|nvES39WCR;D>xYfhwp9H~^SM$CKi8?%aTr3}fYH9N;feSe zc29t9_b{=mUDnhuc*ZaG%V3h-_)c6q72n>DWRIJ|CP!N|qzPdGF2v~%
8xs2FLBTn4bh33@YFR-AI)bdtw&@d^Ni2=PqEFzUk4PD2TgEgNMMUjiVJmAJ zk&!QC1ZkflZi1V{j=RO(8b^@CfJhe~emOXnZJ0fK0y{v`cv+O-OM2`go=-$=*H#gG zx$&+C9$vBQJ2C%s@1M&d*VNlA_P
GK*Tl&u7y;zzh%AGU`OoHNu3$F8llCFOaA3Hc1u0FBTJT;jSbH zQJN46e67E5gXk2ud3_8L6hl=piq((bU#acawn?j}2`?UXU#C0HdWDQ43q%!3MaJ+p ze$Rd2Vg`Cr!tKD>BC+%di3OJHli1gJ5=}A`B25=CeAdf4f`!>C>+kKzUSEl)L~7@u z?zxc3P)0-5Z|m+%Ln8YDQqSF7&eLa}3?!vGv|4z07=vQ1_Y^KN ~HHQ2dphIo7nxB>e3k!eYt hCqx Cn1G>X7y??NBxW0(PkHBN83<|`{6I_z4%;!R}E85(j>+7d;8^&pKo@A z3S;vMl;Hynow@fsDR!&3%LrXED9d)!*WI@MD- v{WXMr{tlvu z9XFrz=mEmm!FUFSLqlmde&gnytum>0 5eBLt 2v$9B)P1d fQPydz0{5A`YJ286e zg{7igzjMMR#d olo`_C#8YYFksVp@Q_KcGeE7SOQ>> zPIz=?!sbN2TlqdJtI4%z{|73SS|zuKI5~43N7}-MrDoKrq^v(ODV-ZwGYnC#O;J!# zC1iqj VCI4*^EvX(V&>DEZKR#$DPKR_y>6S{6wpJ>{VvVSCCI82zWgIs|^ z)qpDIHkzL1!|nLsC-*2$z1?+vSSgvLtEJVV-lfi)2Iltl`@MQecoF9X|6zrQg-9N zpK?H}Q4uCqa9MdN<)4epp`(x)QIIcM+#s*+caIEjga=Oz8I9H)K=k2)a4JWl#mc z|2Pf*+TP0SSyf(k!Tb7{ZXK^!#i&C99zo`-^$kZG07FAXW$qX_wxbcyHXT$cFXVxj zK+|MRDl2Hxz&k^h5H6`}L0lkIy7>cB2acTd!;iXt`{F(O>Pt!_jy^tB+?dqi@&mi2 z^?Sqc6ZMtD XOb5xa-uX(YlEF zWxVidqvOU_9=4G~fMs3|>`c%qy51U2^+UjA7Ypy2b(>du(?%~Grg$(l5OO8^(K$K(<{&QIc5VWWS?k%^q~C~k9a zk`rb>SPoVaEeWM>TUbC$KdWvul9Y8a!NaLj5y^Nbt8!Ih<%tl );ovwNP*dH1C(dq;i@3$x?Sh_Ld>p zSJ17Ki_e%4{;v&gpLrs{x4bWK4PbGfSQPo#zx^RZcC tXt%R%-DU42 zXO`tu5WNzM+ XK$!Rl zP^sVF)WwwRGyc0?)~^S)-C&Z`v0aI+jRBk5`5S+A*iQHZx1 z$ysKS+%Zpgxr$JCoy;-j(F}jjD%x2&hO_{7SSdjgs3F%c^SNQ6Y*1j5=`Cl~KgDzo zQRcOGLHP7CpB4YWc&_?*4YHWvR*2nId4aQ;`L(kAgk=%F4dB=+IghTD{;b$Ow0eBq z9zA#w^ky_|JrQ)?#p-4;%sq?I#e9|SHkR&H;l6f*tGoWANLP4@sv#3nF@h*3$hUei zx?R=Y!MFitqoRVMm=F0Jr3`j9*}YEq)y(0Sbi#^GyWh@PS~K|3sQ{$gNSD23!|FKT zyuz3Xh-zl
RAQj74$5kFz3a%@UrbBZ-u^c=)M z_v8k29e+&Qn2m<~ZZ0Z&Wt}`ultr^AG;cI-_*%Z@w6QFCU0=ntk`E`o04cl=?)I4C z;`A{oSoZM$Jy%Eec~`XVbkoq7uOUA&RknI20!{cw{c^l|y?`?i<)OHW&mcA9R prpelf%x#3fQ zSc~FYD7PBt_c(R}mId^My;7=vp|` H8E~*HJRKoJk?Jg+% zX7gFSV^M>hdK#jsHO2eVVd5bM^6GB?bybq8V#n;b V$V13 z?5z4YZry_e+FqY?Q5fc*e`#I4KWi)=DQg@T6*q&5%Q1&e$Y|b7o&0_&(7}j4Cz;Q$ z6q*mdxp2Cmv-Uj=eHe7>D_cUKCemrY6`*%j;|eCfahXi!;&vnOMlsjDV??C+0C-$( zTQJUfOd3(HgS(|lb3&GU6eB)$JsMoEs+AOH5L%|Ygo7xgAi1b^R8L(Vu@XO&)^C^A zSVbp07F0b-$6qBfS-7?4u2kaql;NG_hZetfbh9)~>*!2d)<#Ngs3Pxk$4m%J0~bPQ zCv{l)35>KAV$2l3EgJgCbLdxU%H`N~a;x0fJ+Zm5U`|){_)-(vpeXXtZ)jIpaJkJ~ zw)@#8y6&dXq VxZlJnxc#G?ks%My@b<$$^l#7 zAihg$A90I<7k4VW 73D2!q*DGWyDrU1exs+S{&3B~q=a JAT<^jl#a_1IdGecpV05w{k?az0Bb7kk |Q4|011ZzTFha;i6Sfo8?N+l4e08zg}cYArtvfMN#xy0Am zaY;_DQmCrDcuSkmJQ{C8W1>a$B0;3X2PQAEp+%5=jBD0!skVh&Utp=@r8?$Qa~(_B z;la6T%@+g4i$~Y3 i;H+WPV{2FO|tJe20 zD&4A_Qh!BGk?4;mFQ(@LB#I084}YHu|KTtDFWcA70KDtJJwnidmc?6dy!W<}?PDzE z@)iE}kqCK=jp)DKQJ6Vo7o5`EYvd2VpJRaDV4iY6ndO$R?4RMc@eXd1S^Xnkl304V z^(Hx`u_kC2V!yx?o|}Fw>r|=R=^pB3J6KM8vh1cSX3X?ublB3}<{IiYbiWkE>@{?+ zY%HP&fU&e7Z_&_f VEQeL=6YYe|o0D3zYV{SmR zME&bHRW781caLF>{d^ns#Zn1y6`oTH)mBH7FQe@L6%xkx8$Ohp5DR$SUt;9Z)4A )LEe=q*8^TjQqr0k#W-aFsQ@9dp+lp^$@(zznfh|IioUxp zj%c93qk=HwM48%grdQJqu5y*q{y^4@zPz$G6KWOo1#{!H$DQpP%Avz>xhJu+`QMbM zo6P=6)}$vWVuM+I9Z*C*y$rAfzlYI*I5N*Xcw#j2xEURxukwIGM@rL<7)P}j+eVc* z;$pW~@9KA&kIo&)hxU?=nj|x5JZPSqqO!xIRgL4|D +s}A^5ujWkN>Bxxp%VYg!WVCv-N0FQa@& zp<}Wc5}Sf{V$b1uk%>iSUFr@9TZ=`{NkyrYy*9U#(mK)&E)#&wMGTjlUw(!dY@UJN z){+YL)pVRKY|VHpjaJg8Vj_j@{7c1IZp2?wdSyA@Uj|aqys$IiZUZBZhE_voDKRdV z&{C7mLDlpH@Sp53iKWvy^|9DK{Yl<|r@ya!Y8W;qhMYaEe)!z|Gr7+hcocD_Bk12T zO}?6*H@_%J)fH*T4qI}ZiE=YV=X*#vimPM=IOAgu(c1W-3_7H
t*9C6(`?X?-5?WcVy}Um#~^{u8}0*6Fmx$F<@ftwF8= z4lUy@(3GS=0~i^hEvK%V$(B#MSzIch4Oj$`Q0zrZ--zK>EJ^u*oUB@kq|Cw7H-DYo z?rt_)BvbCg%LHg@J~}NLIyY8-H4zwp>}!I?@hV(H07K%}Jb`WORcDxXU3Vwyy9#WM zy_w4JRNi8hfqN+5!BHfxN~Q~v&^Ag)Ng$xDEf-&izM>i4XW2kUA}6NRx@veoU ^Y!|(hR06JLkn=;te8L zLH-f<6S@nk(p0Gwvp~1`%IxiiA`U?2BKr12MJc{RQdaWzvz_=WN5 Vum}a@NGTDvU(e2g9XP%kuYib%a zE>qYw@*l*R{US+>#7o793>naF8w<27@HPev-Pc9Yq+UA!KyRdlzx%jyUu)KKpJ$Fe zWxpiBj~lbKw4^-zU@L#-TN$vIYQC(+{lXxBKo%LO+u%M+gq~eKo}%Y1-wZ*OsI#3? z^wAnZ^g$F0=G&$Dcg+$|8CAKqRFqG0AVN;ey0f Jk$yr1WM&_!>m%872Uj(A#?1^efy2qiqSK>*>zw3d?_`ib_vQO85? zMha0W?Wz*ZKe{@ ;^An|>BP?1x7HhG)MScm nvivOTOkfG&h z@^Hv@zC3EkFgNXy7X!M}RQZKU!{}QtD?z->t+IXv{f>@tDCFOq_bhj{SY}1Fyq!(5 zPAnyVCMSuPQmm|Ddvw1rmwb9jrSX_<;;QORynL3zU!4t5{dZ;pitBA7-UU=?1brzl zZDJ^yIe>@0QTH)SFmCDSii%SbWYr9}klI}GxDZc7vket7L6O-*W$kC7*DnA3JOY!h zlJq5{k7_a ^` y9?^e%sFw5m@x9>Ma@>Ym$BV!6IbSw8t%~PMnX}@y=9Kb!h7+@9vs|O9>^W(z z`z=h+Q?hnanUbB?ByBNil2uo!O4UR+jZ)kg;eI^@JdS=&fAO%*eyNnYh8T5d7&BO2 z*^jr(vVu(sqsg9JQ63;nfmCR2UO3N@bWsD>?#hq93I>n&&r4BgX5KSpwJuGXd`2V| z&8o^-6&{s)hhMT;v>#68g3R?eD)KXm#QLZnR#KuPEXEnvs_nc!E@X&EhMsuRj3ry; zK=Hr>suwu~ AkErB@!)98;|U_pAx+a#R{6sM>XS<`X=ORaFet-4eegB!GmSd zCtix_r%lO#M@ *8@Fpm|NT4`XP(^Y$W)S_pjTu~ftg;JAP zDZK7PX3;FV4+bVZ<)K~R;T^5dTL4HeX+mj<1sa^IlkDLj-m~rNp!}yG{x1^L`hO1=ukbco3Yk6Z{h^qjPDZ3nZT6qP1 zHyq7 RYkP>3(m24iQI&Da|#oY2IJPvDFuwN!7GdrRbkgv7b<%(f4V~wLSuL> z3QlzqSQ>r(%Kn~&JbiSdX>Lt{uf*cLHyn9U7?_29(W2FP3XEe7CmBx$z>E>4^S)^& z_D^Bo>8XOo;ZOZbQO-$#lBa#-wKHIu_T-jH8@(363v%>sYcR8HsPviz=A-WgK E9+%16RrI6H{{cqI55Lc4pZ8?S@#oetngrECP=9{`tI_v{Niol_ z{G&D{7^?ex< Kgqet1bcMX@o{mr)7n@MgTTw96wYR65kKMPU0Nc^68TG z_%l=~%G~8mMEV70ag9vYwd;mKSxbp_y4hnhIr(KWTIry`CZgQG`5L9KL S=Wf+vB#FsN@A;M0SK zM6LdKC!s{;6>MxV4g$W9c@53ls89-9a| 3La6uLwio@zIj`Udc2@uj64(CPn$C&UxZ)BJ9V&ddD} z;v}Ekh<)i?FEMgP@p186fQNi72?gaFm7!UpdHJiZ^FZ3HrE_Wh7c54rjb@_;Oy@f# z=Y*%^UHc i;Mx>CH8|#b~@Btdy*zN z8$D+@zvz>sskB~Bqsy({(g`ti=f7U>rtrpHLei7@erLd5{VypJ%Xt~=ZeK`7fipc^ z%b%K(?ljS T$yW5WNK@INN}j|u-{!vC1? zKPLRYWWodK)!ZLH2qVOW_?7;H&3~}@zl6>IW2j*A^)UDF)I~tz$H)WOY^e{wOf6AQ zr*dOz`jpoz-1Rt>uN+sF$Ec~c8W&rZv_?e{=eMW6Op?YJej?U^s3ZMsAy2CxpPpX5 zJ*-V^vsa-yq%J+G0NftIut$`G)qBpywXEh9tRi#oX~nk|=xs5{y0&BpuYX2)(t1r( zH`&fUB&i*gy|!C2tIlnc(Bv09dC)|;PrPK^UujiNzxE%CcazAEmIcL4T2-zbQXv ~c$*)&^Jj^y-l%F~c>Mxsw z&3Cm{y8FbleEqsxES`*$Mt`YHvH;W$mwj9=)l P9x<0*mM4*gd-RfjT~HK6*%0 z_fN^R5!(!YYpb5uDiu<5Ek2~Q7fdXg)Z11j7lIqkur5^USvr@?p1`vvn<){Q&bYZN zN<#c2XbWX_`$Iw^P}Q2a&rr1a=kbw0u~YiMPj;O`F3sJQ=3%PtNIJL6pFAdowcGey z0FAUAmlQNk0ZFaBp6`b4NHQD7=_(g>kyvk555;}I`=$yxS!%*JzgXdLubu@WxS1XN z2E9{R?)a?w?@(cr#`I#B2#LTD>PahADUhtRUm-i7lQ?D8AC-ZWVu?1VM+9m%@|I=I z9z`2=Ezsz%md_xJI=8Zxe44YAGbemo_eqzx%QF!qJ}wA60()?wPb8Ra;o#J%%XO }+{vE2*j)tB4$TswE3>XF-J)A$%~~8b z79#42I55b3s8oz;x;#0m)2PsMYw6I<+$LLGj5l<-y=pp}&CHD3Wq?1@ov#~T6ayD- z7Vp@9&-Jwnw|Y!)uxhOHa9`feqfw_itLj~4bhNiOdfIG&&b9Z|G}!XGc&9;JSnh9f z;OX$Za~xU2I;2->FvMVFW^wPk6mz_XlO4z3`(yA4^t2obyGi2OD0Ad&mbo9qo3(Ao zEQ8S-c9N^L#N?$E4oi6%711iVZ%@y>wc!V&3S*MrzH)8IQ>}}ah8}N8pXF1q2km3i zR*VtW*F9FtPD`||7_5bapgrL#l^IpG`U6WnP)NEbxT|ke-sR=F-FM&lG;r;fS1w^* zn22A>-akep0$g+bM}JSEWe9{D(5Fk3rzB7q+5~;9mJD~U1#eTLIoH3;VS1201#Y@G zDNvqP>npGn>8Ql%Km&|SR-%ug3wTe^sO}B4b0b!V{2!>gJL4L@?Wqz$`?nUCz(crs zxsC6Hmi?ghivi(v70kVOCst{m>xn6Q(?y-8S=ntyv!bHIEcvQw$$XWP+sNalDBQ_0 zFd~+eJJZ(NQrl)m<8r~M6?+vHEy=o4D9z>mShs6&{oYewvk9%n+EUuGmDYJ|UY1VV z;Q0nY>wqHzrxCwNKz2$)6UN?j7EIXfc9y4&jdm%RE@_<5DCxv$#Jo0UEv0DFY}P`( zP+f*V?yol q)ODvQ*Lae6kHg)eEqUQkC`$*D8=D9ws!#k08B&kvZPFwkP=gG}{ z8Z52^jivB$qO)x+C7E8>aut&^THD-9@MQBFccHO>$G4L!TUH!kv5^o2x9c_snX9yr zm)sDmzu>pIPMl>JyE4iz7fYpjb>i6+ylV)C0YbI3)Z#53i`tcAV4hY<(2h gstioU^S^rDYm=U$}7SF zc#6_y<`$6(nq G+R^OLxG)Vg5e?@g?kDQi+DwQ{9oy*C9sYv_+sx6B zzk`e+j{~D3C|cB-KfOf|jKWUeCF*bH_^|!2>5mh6QZeJlqC4vD&t-5fvrFsx;Z*LQ z)|Ia=NOS&r`ieYI;kq$Q)KURygB?}~^wp~jHMteli#kE2mt%6;>Gn!gx>+bxW`;w{ z&Re`zB{5By$Sboex6KS4mL=xBPzu3;C5KQx*yeQAN?~l1wAE)7w-4LeWwhWmNWyTw zH8hto=eIA=2erFZTV^x0lWh!!?BssPO83DUqzN#=U{oQF2=v-T<7zgN8!0}+y}mJA zl>4V>7W>xeU<8&ODwk+G-!(2rB#>312H&1|LH?A%{j)yT;RY6QjJjuTCk02DBLR8& z#IabV0KYA3Y0!~GU9FuB1sbRQ_V;DJ;XGF`xn%Jeqry$4orGpg^$8@XTD&g0OmAwo zP_EQ3jkZd@Br~5Htq@WmGGnv7CAgZT%@ uGjS-euVg*BcU>;H?m;D5h9 pCEJm_w@PcCsyeMtjHP<-PR&guZxbm_ zC`2)5;ML4zv+(?UBBnITwWCP~r*1FbTTKLcnHhq%yG`A3tqReSL6o>>O1%wqCV%e| zM#d_|wi!E}qZVs?7(skaV35*tvU|=>6|4_#DrIZua^9bH*C|aXJO1@JLu#K=inzIm zZbx;eOR72rwzee-z-4nM@XL`kfFY_gVwxPdMwbzmUlBBSg!G4?8LASh%E2g4cuDs< zM$tAp$4icZsPyrmki-UDaB~a8>dA)-n*9RhFGR}lb`{WWx&_Apj>~z}RCO{#Vq@o! zhJyG7G6Ic%uBsPpKDL#d4wtP-Di8a6iDLfVqCVo_#BSQ_rN4B23^-R%BH>h *F->-*5ByF6 zvT3UCHnbBVToI3m8ZaKwx4s&> mI&Qm3<= z+o-j2r@0QDXoCc3D4Mj??|)c7{Ogi2q3-Hq8;$h}53I&=v~PV7FSyTwkz0Ct3AB}` zKM#*G(199v2xUiZI}GV}=B6jd_mpAAtD{ v@UV2&a zF gcVgTstFceufz}SC|JQrXN0M9Sc20CpY8fb+e%B@{lxmq@ihUCOptZ?N*VS7b zYvq8Nn&+fjUI&exeRoWO00IRE>to($deFJ?USD%7VO_kpj491kBsNo7O7CLce3dK< zL+jQQSA0+?tLpim1vW8O3Rp&X &Hi`D4Wb;K`zJx6Fzp;0>$cr;W~&(&I)`%dEWMj+00h33p6lKm2-Ew}szgvm zB|dVS23aU9@Xg=v?lZxTqt&WxX&fVssz;*kERuU>)p}_zuy`8sOSTb&hSrP2CQXN^ z3rw!LjbPCj;PJ2VFk%V^aBLMrh~{GF{Oc3 $>KcDa)c<$? zzd@Nc8a(Pn0G^dW*2w_dvNt|tbCZ{4Ppd2megR6MpfgPSq<=lk6eXbQ-ir
(I`KqyK1%=0(B w?FpfRs7_0m9fneV{88&Ft#)@Q(DtF7y2G{EU zucPaZXKRb&q!iIXpHV!-EKy!d?UicnJz@pV3KgqTGipSsR$HsK7Hz2!krs(2R`F^? zZ82(V?bTru-fi!{=XcNN+ S1?|WB?eZYwlOCvLg75WwRlh8 z#14f}U*3uOwUqo7IMVp_Dl~OWI$IHU5pU;XlJ*?l*&8kzxl!x>3DB_lG7=mSCrJK+ zu!E|l?)K6hZUZWLsl0$hNw^r1`e%e0JQfw=YzdpW1hA7bR@`6V65MRq=hr1&49drJ zW#*zlA_M5soe|S5 mrHu+k<|=uP;mR5DE(xrm9k4=^1Ua zHUtsH^ablQfBhm6<~*QTN@mxaVrsZ}rVF;#Pc;q!S5W@(*W>?L+G!@1iey|W@a7J4 z&C@L$pm*Mfyl-lX8V>9E@w1dUQqNpRNdWth=etq|`oy9hbJMG4K|#=9aM++^>&~yP zG&N2IXM0+|ws@!zR*&bAP1V|z2+15Ti#wNlL7cQAP3uQ@3 C}Mu3HG_|MuF>;#g|v%N{$5=Zr}}lag8u_CGZ>u1_8z{}hS8 zI_X+vbgc)}0E{I@US(VOk~5i!)k|qpuxhUe%YFWLRBy^j$gUY5=`x_{ffec2wH ARZy+A4(~ZF~-Z{5WCQ z=#0js;)!(5g+O3LuVIxxrz5iVax2N1U9kB+%2k5Gg6od8!j&i9=O%zC!MZM9B;c-W zOlM9P9cS~Jcd1$%uov5O#m8RPmo&?j5R3g-4Bq$QH!hdOrvX5m`jv^4*LAmCGkK ooceZO9R5+GbV=C;dRju>I|4z^NV8kv $B3>o{4>T+Nm&&_7CJ z%l2Xhx+n+9S@qyelz{EnlZqQTik6_(PkyEuYIZsB0b+y?urFI9@dV_gU1}rD>d`Go zZV5{xJ^5(mBZw3D?hg(}PK@r(ABIKJ#@WRU3qb}tbyD?Fod=@8y_VP{ssS`~Y$_K= z%4~$q=cD;Mq0jN!rORF2ULvs{hdHEVx|?E9e$+9NXe73nSP65_T_5xFOMFP?gcZGF zYS{6KiNt@kE;f)n{& 6OnJ!psB)+xC?&6h6KE?NL05QeC^+Z_wEEjK zf>=G_Fy@Vb8iyEjp0L xiU3tKHgYC#)HT8je@^JBXLb0TX_eT9_x9cR9=ZdY6yz^qMbbA9j*pt?X-WbNQ% z)A_1CN`QNDTsHeiHdEAd^2V8WdIlKpf((aouzC616qQNU|BhH8{j(sK1+n+|KKEz% zyWgsL4Nwx?MiPijXqOW=`Rr-=JHX~zZLA$>q|Me3bALId^rRjb#DXeVe3Os+1Fkau z4;&g`AF`&r_Y}jBA?83Q6e{&ru(@=OXSD?scLn?#P=86j(>;)hdB+{*y}PIqiT##w zUeOo@7AGNFFUYX#0oh;D_~V2lckPU~pkQuKRi6_iNKg=^|C;M@n7PSFkeBA~r)6Tx zxQcGBLv7nHS9`>bT%UW=;{-9(1@G26Vzpj3bKCrxg{NQ@=kA93PbBetc?!#lm$yQy z4WdpeUZY5}(=)r 6am*YRviqd*ugSHmRpiLJ|wT_k4 z>dU`N88mZ4dE$jVgp9Ig>Vh9WHVZ(PoOYwv!LkriT1%CzUqJjL0TZ94)n(mNCeyaM z?)Mr=o-xE+e!eWC`-^2K%!|FOeI?lQI Jbfplr~64!kXPr8Jyy%?#9si*>v7OD~2C+Yc}I5ndZEt^T4!@8N!IBZ|XDO z{Pe9q5eyk%^!GYr_@zL+>-1)e=QAq_n={iZCJPdPvpZmgoNJ JNb^p=pj11)`^m}?);zwB_Kx*4$BnpyS E%nE_ 5ta7 zi~6I=#6AOB(rcMaHn+M7O1x8PJJ9BdH(qL~DgX;M-n7tGY#wTP)gN^v);$B*(U^4h z%)(X*_8iv`!ccZvPsR!?T_^$97u`N@z&Slk)cBLtk<66fmz4ITgwr6Ly8Kjnl=s|c zmh>ADmq(*<==9TpUL-n)`tl-}0AO#LX|Qq+p(r(zvOx_C#Md=;--nEc!bW6Lop8-Q zD=vZFQb!M9nye~A{k&b7w*E~x7Zl1r#(q^S)hWuhkZNcvbNa(;<8P$Igs|I*9-!Bf z?SDSKOj!-t84U3B?x(Pd`^3-m3E7B@q`;S5cx83Nv@99`yQ|=02gf>`U0Y1ur-Q`R z>x!3>jhva%--!h*jB`IhsK$Q0(n`j(Qpb^2+VKTwe@7@$s zdhox9FGBF7Z`vWV!}HFM4gXY1fo#QX*for27cG>ozV=!sV@_%fnpzflP_4)tQw~FC zhUQ$KN>pEMNC7}3Gy9^Q|GJ{_qtj0=4L2PeccMHHc35#uh3NfW(=2fcyTy~R!`Zws zVRmDE2CN8E25~d$PWpG#$O>R1z<*{r?$L%2A-o2It(AAW_D!Pjp(y) D1zYnC8P%ewyM^gk`kI~NUlbDS>1!3Rf zj7~@bs)Tm>&754RJEhv>oUpaDIz7j+5#-F$f2jR>T?AyU10&X~%Q2?~N*S+d-!dxZ zd|;q*={%=FYx3df{m25{lDZYb-rB-V42KEm9N@I;$uL5INt=qn%sbS ;)FnFS7hD8FuX zUVbxz8_1A>HRRX&`BPFqiXJ#*zZLV=P6T=BVqzN*ePcg{f)t$ eejenJb zubNry%tt3x%7+&9#|_EQ`dM%2Sbuuw=IQ~ zL0zF1J|f44yu3Eb$1o&tFla4RVCM(>_MM3UrIXtXSQGXSd8mK=2Lg}XrmjuDg`l6e zU!%aCUsTq4utMtZ-C+~IRaR2|oE!RRt4Gj7F)Yu^@@9i9?Lq6lNJBU~R$8toBLN2u zFPkeu5IUy7LUqtblPJqgAz%L~&ul{34RrUmre-v-Cc}D|EPxK}K67MG#5_fXzARS1 zjEs~xs%YhfCxp$l>$9$hV6g+1>fBd_hDen|fqPn-r#Jid>_uD%T%8KGep_$`Lsm#+ zbS &*ic9vX}#8k1*3w(*u$Z}Me% ztML_k2)jAHHNx%$-rFu@fE_7j@>L23sGz+ZqtUJB-NoO z51~msLpP|p*98CuQwY0rZLFlj8Z%j%Uq1m~`*|w8H0vU>s~LbGg-)!R(+onM3h!GO zivqtb$hSsDf2tUxbmJGH#yxh)@5M2Xbssx+)FUb5x#fhfYH=dMV((Z$BD7cSab0gJ z+zwc#I?F$5P@Fa4limnSq0+=yAWof2!ysZE`y;1`${c9oq~5!(t|p48(eN&*Qnj_T z&5qcaC{dDnELdrA3B2UJ!b!E(5s50(ds@el!*SUXk`WYc{qbG8P!uM3wT@`1{VIgw z7HQ#N$1gA?WHY`X#xttqIP^K)IhsOMXB86rV)pTz(^xyBV$bgC@?8?frzMHV^W+!! zD*b3hZiV5={pG6Yf9VW7WquO1#<_0~SB-kab?FeaQ4)^3QP|iRlRU2Sw*t>~H;{*H z46DB)igKLIefe-_5}#PH2*ptkI<|-Gy$wyJQzkty^bg#xOKF1*6Pq(O)htTV2;8kG zK~4?H^*hPv7N-n7HpP+g!C@+m-96t9MRL@bLLZE;Dh7x0o6LJ=MMH*mJbXsci0y(e zRZ?a9-}A?4-!f l zS=;9B$PZ~cZ24+X{F@p(t;IM6wsoH*iAEo_nQ=?7+y*o9-p-<5fE=k;g`^`}Z6%Mc zC?>+$=)GR_{$Y@|vOfJmk6n_N@TX_rb8t4vpbRUGMaS*7zdu{CkE0^!uD3=Ui)X@% zx5~;*@ zl>Ss`uXeyQ5j2FNXDrF}Axc3{QygVyM!mS1)9*LwhJ}gb#B-U~RLJnkhQ5cMl}e3Q z*Hi2_;<|q|qG?g}Ht!>e!*R3G84={Ih-8k{NO0J$p#glkmEdUZ($ZRj XyOQ6Vi>cbHM^bubbifTVSvjG}|(|L&$XQ2$lUj z>ub2Ix?uR#ZOPP8%=UWb`O=I**g+qR&jO=4`6e@Yv3o8~;O7tcMCWJ**?y3;vxe6~ zvhUoP(8-P4T+DRl+T3n?dH ouq4QAX2I38^C7-A!CvE%b3 zQ`8E+cGvPkN~(@L^E>QpwfCCfN`G-nTf)`XF3wMA6>74^7NKeWBq>65La|?jCN;BS z;r=JJH~%^QtZ-XelsPVIclJ-Kex5OC4K f*x>-X+zzB820u%+2srB)Ih)^{rPxrpVv&h=WpmaeSj zS=fx17rDi4oRuu8SI~`l%Ef9VN18tzdW(6UY?eTjTWi*(8{&(#%bkUowf+voo?Z+` WKFCTR^)Y7vE<;_j+f_QQasLC3XC*EG literal 0 HcmV?d00001 diff --git a/new_house.py b/new_house.py new file mode 100644 index 0000000..c61a15b --- /dev/null +++ b/new_house.py @@ -0,0 +1,84 @@ +# _*_ coding:utf-8 _*_ +import urllib.request +import random +from tqdm import tqdm +from time import sleep +import urllib +from bs4 import BeautifulSoup +import re +import pandas as pd +import os +'''爬取新房数据存入excel''' +# 数据请求构建 +def data_request(url): + user_agents = list({ + 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 OPR/26.0.1656.60', + 'Opera/8.0 (Windows NT 5.1; U; en)', + 'Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.50', + 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.50', + 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0'}) + + headers = { + 'Cookie': "otherid=a17973d936f83e36a1dce147d5401dbc; fang_hao123_layed=1; csrfToken=lcekq8-1Dcmxvkk8JatNlzZr; global_cookie=9t8q5c1pfexde98sri1xy12113pluq89t5t; g_sourcepage=xf_lp%5Elb_pc'; unique_cookie=U_9t8q5c1pfexde98sri1xy12113pluq89t5t*11", + 'User-Agent': str(random.choice(user_agents)), + 'Connection': 'keep-alive', + + } + req = urllib.request.Request(url, headers=headers) + resp = urllib.request.urlopen(req) + content = resp.read().decode('utf-8') + return content +# 数据解析 +def data_analysis(content): + html = content + soup = BeautifulSoup(content, 'html.parser') + return soup + + +# 数据存储 +def data_storage(soup): + one_page_data = [] + item_list = soup.select('#newhouse_loupan_list>ul>li') + for i in item_list: + # {'名称': None, '户型': None, '面积': None, '地址': None, '价格'} + item = {} + item['名称'] = i.select('.nlcd_name a')[0].text.strip() + n = len(''.join(i.select('.house_type')[0].text.split()).split('—')) + if n == 0: + item['户型'], item['面积'] = '', '' + elif n == 1: + item['户型'] = ''.join(i.select('.house_type')[0].text.split()).split('—')[0] + item['面积'] = '' + else: + item['户型'], item['面积'] = ''.join(i.select('.house_type')[0].text.split()).split('—') + item['面积']=item['面积'].replace('平米','') + item['行政区'] = i.select('.address span.sngrey') + if len(item['行政区'])==0: + item['行政区'] ='' + else: + item['行政区'] =item['行政区'][0].text.replace('[','').replace(']','') + item['价格(元/㎡)'] = ''.join(re.findall(r'\d', i.select('.nhouse_price')[0].text)) + one_page_data.append(item) + return one_page_data + + +# 保存文件 +def data_files(all_page_data,save_path): + df = pd.DataFrame(all_page_data) + df.to_excel(save_path) + +# 主函数 +if __name__ == '__main__': + new_all_data=[] + page=25 + for i in tqdm(range(1,page+1)): + sleep(1) + url=f'https://cs.newhouse.fang.com/house/s/b9{i}/' + content=data_request(url) + soup = data_analysis(content) + one_page_data = data_storage(soup) + new_all_data.extend(one_page_data) + data_files(new_all_data, './房天下新房数据.xlsx') + # 打开文件 + os.startfile(r"房天下新房数据.xlsx") + diff --git a/new_house_clean.py b/new_house_clean.py new file mode 100644 index 0000000..3c87f04 --- /dev/null +++ b/new_house_clean.py @@ -0,0 +1,43 @@ +'''清洗房天下新房数据''' +import os +import pandas as pd +# 读取数据 +df1 = pd.read_excel(r'./房天下新房数据.xlsx', index_col=0) +# 清洗行政区\t\n +df1['行政区'] = df1['行政区'].str.replace('\t', '').str.replace('\n', '') + +# 处理户型字段 +df2 = df1.dropna(subset=['户型']) +# 索引:户型list +hxdict = dict(df2['户型'].str.split('/')) +for i, vlist in hxdict.items(): + for v in vlist: + df1.loc[i, v] = '有' +col_list = df1.columns.tolist()[5:] +for col in col_list: + df1.loc[df1[col].isna(), col] = '无' +# 处理面积字段 +df3 = df1.dropna(subset=['面积']) +# 索引:面积list +mjlist = dict(df3['面积'].str.split('~')) +for i, vlist in mjlist.items(): + # 只有一个数据,最大最小面积一样 + if len(vlist) == 1: + df1.loc[i, '最小面积(㎡)'] = vlist[0] + df1.loc[i, '最大面积(㎡)'] = vlist[0] + else: + df1.loc[i, '最小面积(㎡)'] = vlist[0] + df1.loc[i, '最大面积(㎡)'] = vlist[1] + + +# 重排columns顺序 +df4 = df1.loc[:, ['名称', '一居', '二居', '三居', '四居', '五居', '五居以上', '最小面积(㎡)', '最大面积(㎡)', '行政区', '价格(元/㎡)']] +# 清除存在空值的行 +df4=df4.dropna() +# 重排索引 +df4= df4.reset_index(drop=True) + +# # 存入清洗后的数据 +df4.to_excel(r'./房天下新房数据(清洗后).xlsx') +# 打开文件 +os.startfile(r"房天下新房数据(清洗后).xlsx") \ No newline at end of file diff --git a/new_house_visualization.py b/new_house_visualization.py new file mode 100644 index 0000000..4a45728 --- /dev/null +++ b/new_house_visualization.py @@ -0,0 +1,49 @@ +#导包 +import pandas as pd +import matplotlib.pyplot as plt +# 正确显示 +plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签 +plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号 +df=pd.read_excel('./房天下新房数据(清洗后).xlsx',index_col=0) +df1=df.dropna(subset=['行政区','价格(元/㎡)']) +# 根据行政区分组取平均 +df1=df.groupby('行政区').mean(numeric_only=True) + +# 行政区平均新房单价分析 +plt.title('行政区平均新房单价分析') +df1['价格(元/㎡)'].plot.bar(color='#CCCCFF') +plt.ylabel('价格(元/㎡)') +for i,v in enumerate(df1['价格(元/㎡)']): + plt.text(i-0.35,v+300,round(v)) +plt.xticks(rotation=60) +''' +岳麓区的平均新房单价是最高的,浏阳的平均新房单价是最低的 +''' +plt.savefig('./新房数据展示1.jpg') + +# 新房户型占比分析 +plt.figure(figsize=(10,10)) +plt.title('新房户型占比分析') +df2=df +df2[df2['一居']=='有'].count() +a1=df2.一居.value_counts()['有'] +a2=df2.二居.value_counts()['有'] +a3=df2.三居.value_counts()['有'] +a4=df2.四居.value_counts()['有'] +a5=df2.五居.value_counts()['有'] +colors=['#FFECE5','#E5CCFF','#CCCCFF','#CCFFE5','#FFE5CC'] +plt.pie([a1,a2,a3,a4,a5],autopct='%.1f%%',colors=colors,labels=['一居','二居','三居','四居','五居']) +plt.legend() +plt.ylabel('') +plt.savefig('./新房数据展示2.jpg') + +# 新房数量占比分析 +plt.figure(figsize=(10,10)) +df2=df.dropna(subset=['行政区']) +df2=df.groupby('行政区').count() +plt.title('新房数量占比分析') +colors=['#FFECE5','#E5CCFF','#CCCCFF','#CCFFE5','#FFE5CC','#e6e6fa','#9cc3eb','#d0eb9b',"#e6cfe6","#d1fff8"] +df2['名称'].plot.pie(autopct='%.1f%%',colors=colors) +plt.legend() +plt.ylabel('') +plt.savefig('./新房数据展示3.jpg') diff --git a/ui.py b/ui.py new file mode 100644 index 0000000..99d131d --- /dev/null +++ b/ui.py @@ -0,0 +1,65 @@ +import tkinter as tk +import os +from tkinter import messagebox +import ttkbootstrap as ttk + +#执行new_house.py +def open_new_house(): + os.system('new_house.py') +# 执行new_house_clean.py +def open_new_house_clean(): + os.system('new_house_clean.py') +# 执行new_house_visualization.py +def open_new_house_visualization(): + os.system('new_house_visualization.py') + messagebox.showinfo('提醒', '可视化完成!可以点击主页面下面按钮查看图像') +def open_analyse_1(): + os.startfile(f"新房数据展示1.jpg") +def open_analyse_2(): + os.startfile(f"新房数据展示2.jpg") +def open_analyse_3(): + os.startfile(f"新房数据展示3.jpg") + +# 窗口对象+美化 +window = ttk.Window() +style = ttk.Style("minty") +window.geometry("500x350+400+250") +window.title("房天下长沙新房爬取") +# 图片 +canvas = tk.Canvas(window, height=150, width=500) +image_file = tk.PhotoImage(file=r"./IMG_0818.PNG") +image = canvas.create_image(50,20, anchor='nw', image=image_file) +canvas.pack(side='top') + +# 开始爬虫 +b1=tk.Button(window) +b1['text']="1.开始爬虫" +b1['command']=open_new_house +b1.place(x=110, y=150) +# 清洗数据 +b2=tk.Button(window) +b2['text']="2.清洗数据" +b2['command']=open_new_house_clean +b2.place(x=210, y=150) +# 可视化 +b3=tk.Button(window) +b3['text']="3.开始可视化" +b3['command']=open_new_house_visualization +b3.place(x=310, y=150) + +b4=tk.Button(window) +b4['text']="3.1查看行政区平均新房单价分析图像" +b4['command']=open_analyse_1 +b4.place(x=130, y=190) + +b5=tk.Button(window) +b5['text']="3.2查看新房户型占比分析图像" +b5['command']=open_analyse_2 +b5.place(x=130, y=230) + +b6=tk.Button(window) +b6['text']="3.3查看新房数量占比分析图像" +b6['command']=open_analyse_3 +b6.place(x=130, y=270) +# 进入消息循环 +window.mainloop() \ No newline at end of file diff --git a/房天下新房数据.xlsx b/房天下新房数据.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..c0939046b661f1ba9aa152cff5ac337aa5d7a23f GIT binary patch literal 29357 zcmY&<1yCGOvo)?uU~zYMcVAo=NgzOQcMI;axD(tqXaox$+}+(RxVyvS`(D*w|EoH) zTT^>yr>Fbg(> ClxG*p +Coq&+{z3TT3>wPnKG6TChIlFO~I6Jd@ zIoPYltD<*tV#&NI9jrQjJg4NMoGIKG^i>exPc#R4gg^UfbtWu}u5rfx#T(M?q4DH{ z^ppkw2jyYv(dD{9(?5vh>4 (= KIg8z@bVcU7(NAGqH!@|G-|9^YUoLnvb zV{ma&r&>2B0Agfu*!ng51MhcMf(bQ{v?+F^eyW$g?6gdjMsouLn?7;~N&o%Z^Wvwl zTZ85x^-gcVjIjZr{)BoyAeSsk6gl!S@>4H0@C(` U~t|&<7Lm` zZf)UU@xPy3|MAU 3ga&2bVi5f*XP&dxr+dL^O zuw9-XYd8(#Bw6)uwkQJY!PA(m{NBEx_th!8={_Vf_0r3Dkz;wTxq)MCLx-CdD8)%s zT6x}qR;*%Jr)LAxE$BapgWbIn5`&`bg*!ZFu%S=PK{Iz)yS(}-%*Gx{C~t1;Z^&vb zIiang=VU}#yF eF}r>qptvIcRbE>eF_f ztJCpOedQBg7;P8o5#1G0eZMB$k8J1}UMlR04)Cp|<+hJ}u<`14B&R81be%osMyBA? z44EFkrV=lbHLpq;oa>$nMFC&?dJ*Pqrijvb aj+Xev6A6eOLN9{Yz-fT{w{D@*axYtFRfc`66(qf%0WO$|+{JN@WB4{@hl zCCS$a>nTy6SHy=LJ~YxK5;8a|k{UUxFq`Ic@=DtHtnw}(i?p~Y5kIkO9e!}V%a1T) zJ?y?oFSV&!;PdC-d@16_1IMFDU&rQ>J^+&q1>VPw#UujT$svMDSts9JbP- YR?zUz2mx?|G`=TAJr& zXEf7s9UbV`u1sNC5X$d3ez6wMyEu7Vqz$Xg`piaypQs#MBSqWz95Zyz+=IGru1|+L ztUYZZ5RIKDP2zZu@X%ttM@D*<9oXO;_;8Bm{Thq)JQDd2Ji4UcSTq*FC(c5ZCW$Ysr%ue z*Nb>dXc3{wKSRf1Z((xsX|GeGs_;xSjjTWN@;lWj6p}IC4T|vgHOjF1)(7Urb+G?U z%PQAk+&F*1io0QM%vOLLTB!kdsrk{EOTQ1ECGoqTO04X@^Ip1v(e`BW_Hv0uons}F zCy@iSrcjqn29DLQp*4%@&W~i{AN4P*+HA#Y@zlm&KbH^W1AuDy=-3KosRSiT->- X*FVd)MLVNH#H0W@Uh^sD!E)|1E8|%M}EfMQvGr= zyO*6);Y025nC{tWeEH%$D37@#vS)Pt1ym7mySn}8m?EN}lH=VAgmssNqxnXPgipZz z4}6-Oh=c<>nmQ 9uh~9b$Xkx+}D;F0Elw}Qts2NVtVdF+u0T8JOT({58 zQfxhA=O0;v9m2G^&1VUQKvA7yJg%SxZMv(9C3^Jm eX5uz_W94oi$6Pjsw`Ic_ zv04H#xvRp=4f2`@w``xrF4^C2x^v_Y-0MQl%ff5$hPybdprU|I|LEu-;4jm*zm@6_ zbU7lmz8Ari+0S#!MYpRP0Kb`Edd21}KnZ1JKZ;}|vsnFWUZVtD)AEw)^1dZ5fOnAY z6#!}}xE>*!Ma(lB^IIqm%}Hujaz|o$2E+OmgO@Z3(U2>%p1<&)8k*?J>lsE>S5N%r zNlZKJ|4ks-zk^oCjbUKmXy9Q8|2KhnI=R}pSzB1RyK(&Y>%Uo~xAn{TPGb`Ny-qB5 zqVu{+)Vg`;mkxKKxZIdEvJqq7%3mk7U#ypRehfLD!NpxI>tHKJ$ph8F@-r7Rs-JeB zxN+rO6#A}u<~iPOyA$4Srzs=?UoUIk?#2Tjht=C34-<^qo^L4HUmr`?UoWom+n)~F zpU>yV12Y3JpC|&JuRM)*+h6Y^Dgz&n65fAZ{k#8uq@H@p+vE7U|66)x+r!SI)7wkG zQ@}%ad*H+LUEss>df@Y-`rGTCMBv@_+nsv;+jaMPz|FVEpRe6-_pg|N&wpOK=hvSv zE7xB(uil=Ycivu)T8v+h=CgC&|8s9V@ZsQz;@wILiMLlBqZgf p=Oavs=jF@vx7%hTe?B%n|JUig^?=V|egbb76#4Bh&!rM Hwc+ zUl%Map58t_JIx7jvfRI)_WEI&;`RE?@2#05@Of6};#dC5>D5{L)18F>1BJx%$=khw z__yVc&o`b%ZBM)D60heC`7e!rEALmiyc76p o!OGEB8_D^YPI-KI*y$ouI`itCZa@T!zhgF;sdatC$b*Dd#^} zI{S(U$P6@X9<(x}UU=IN0 3U_0M;i8qTL*vY8$5YJat<%hOdh$z(3Z`U5CW z!z`@hcYHz~vsTE^yyYUvslnF$b9^88eDLm$+pEg9tcGj#{J`ggaU=h$nw`zgvd>Wu zS9Et5Ryj=t_|wn%#%MK}U07OWp-g~Ry$3<3=$-Mzt^S+g&64N2kw@Xe_~(*N?)>#< z(`dzVOxU-oS1~qq{aC`!`q0uJMdV}1W1oysYrjPa{~ihxEDs!85AIn8*y31ZFOFKK zEvQh~TZY4rTIb`r|B9=>b4VU`;&H0{$LAy>Rc|jc#;cH_v i6 zGR7|I^-GSVcga>H<%$x@=;@rdEZraSs2*O{oUDbQT L=6_3G}B} zQd@aKRz82qm(UT<$c5`Coaq`oTX#BJPq}l#JX>#neEqe=G}gdzw^rSQeus)(lImNA zD+CInyN~6b`z=tSICu^T($i%irnZNm^kAJDM>;QI(fbtYgkOFBhQZSeqUR?u_kiI& z!uOBKpJ_nWYhEF$Vd!6kX9b?d-fmal2I(OzlDpK%)83vV`}XJv$f5iKi3AQ7j>WSD zo(06v87)vMEckVgkc5f-=tu@epxc^!w@$1jq6LPAg-T7uAaV7nT%;n$(iw50VDq01 z^|wUxpy+a&VwK769fGGVlO6&S=%bKRSlg*vgwj`IGLkf|kLu6a&B~edvdP%2ybzes z11DL*OSS~VYqZv*ktS8-H6rwSawlmTJ=_P@M6kaqkhQiC_0E`8T%KG?at8C7hba4s zYhPDcM%SOVXqtDWVm`WJj^>-aA3ThHv;WXy8*vf6<@FWe60PtQgJ(1Vx^%KB&_=6Y z`Dn5fq^0WB^X&zmt1dIi-!w@~kH_@}-DkkFeW|n6bm9fL#sV87pU!0h)#F#tR55Kq zJ63-Fgf0BTN8cjFpc;tnWNFm#Cy1P_(|3SCvLyi18;6R|&kFqnY^cFn8E R1C@1>sQ$ ({AyXNjXsDPW zp4~CBG09)h%SbZ2+gVNDDJ??Z6u}xgo_}@{5yg5bWd~trEQ&ZiH@CGy#4SdgNg@Cf z_GNQsejFY=9QhWWN``9YF_g)-W#PDiYlqa!a0P}4O#ZU(%=AZ^-Pg4)MaSJipGo2b z!^JmTLG-?$v~rL2(c$PZ7S*X|(qz1uv(cdhUX=W;U#0As-!!4emxJ cf0g$UM#V zh;iviW|ADh8Mq77BH5EAexLAZbly0N_y#yBiheX*a&uSgog81u=cOj%Hdf(KQEd>^ ze$%~b4NmXyxo+vr%><`rf#n^gP0&o1V-OuPi7ZsJ=LfQ+u{=6)6Vc8ep`AbOk>ubG zp(1M$YfPxBOsHS~(O$FUgsIkV#yw{Ir186k3*Gvb<*@S^H+F6Xn9}{|ZcW>of|r$y zcR29LI#^iHo+8&kd{5f-VclPR(b!lGdo95VWY{%=yx1eRHIW5eVA-FnmPs*`^hQ<1 z2803NCCZyE-JT9BGT&lJa+1A1N!@?bhR?C%?EX^vdAemxA!nUcAwSg|{iG+Xq$f-q z8%Iw;RFGN!11V4VNR!?-AyEfF6&Aj@{y=}X3;! M@Dv2W;3yoS(4cF|gaIkfGB!70OW1i^Nla>=flMBcPhb oEL%)JoMcbZv2dl79Vl>5W&1uXfb%sr+Y`5lU%w<0J#9QVC;&^))zIe{dcL)T~t~ zGX{SnWv!boB~4snw{9<@NG*`H2;o-JUxCxsMVu%}s>p>0>K6x*R0om#X-Rnd9+ib> z54i~o=TA&jKD=!@xC-TN=73;;&j^EVwUz@kl0FDR_P;!-rL?G}D54PJswE=PA-F2O z72bU1knAl4{^`#?!F nK54h`i%H;b6&tuAaQ4&j?_*F^k!ALWhS+LR=kXt0(m@&N|!61Za+>i0;_jA3X z+@O5H`2czYFtvm}K~$*Ll6DH=CX&qeBsLTp8!E*8L5?0V?_T&LM=@tOgB)o%7s95e z;0JI^mSw3()e5s7k2$k~nEN4FRtU0^7@_7R<&KPsiS0pSR)ywN?G0ezKBIv0I$D;} zSqHcyS-?kgmr@Xsr1}R31%i#Tt3XKzyQ4n0`-NxcdG}CagkbuozqZ|X=CIUtw64kw zBv-T;hP}_sc;!SFf2zrICBqgK5xa5uNfi-klF-JRdu1BFKRp=4Y*02Qs2DrYq!N$R zo2&}IyH!!r=Y4FVN=*$i 7+5PHds5|rQe?MW?ZG(owT|*R+QRunO0t;I zdUT>f%4gqDb#;t{aEK&>#>p6AZ9~Bc`NRTE4a;MzCB#}(823@iPA-vQu6uA|`uKMc z^mmZZA2>N wtKtBKH$Q?#&Q;j_`h-Wf+MOfaN|sjGy!KqF?1C}T8O%bPj2+$UXO4<9+6 zKC~4jQD*2A?Ywp;{a6%#RyU29HidYrK%fgX-q@f^Uo}>x5^*4DuON4? 26@ri&a{ zOzj%#Girh2A=Ka`;S+hwbg$9km9=VOiY7`EF~2}FDAsWI!bIzVV%|- z(TP&q0yHV{xfL}SK_!?*8rTg^;nFWDC44KN?YiBtVeN7YCyMngy=%_p^AnjtPC$Rr zWz@foWF;bK)2qOe<^Vuj07rvCY!;!eG+h7svNRk!z4&?H7L=xl4maO;1;EzS&C-47 z&f2u?C-2fGvgOCXD+_K)G;Y@UKG^@s#(Dz2SH zAfCA0%`^~CP5n?;uKnX$0*U*MfSmw^->PGC=vDMV_d+(Q#ZhyBOsNfQbCF}gHLlSQ z34&{=CIMLXdE>tpPLur{tJ4HYZrd3WQ7IbS(dn!ds#k}j;27*9uJ^r1M9w{N@0)4P zJ*D$HcJ-TVY%9{@gbgbR=giN_se`uC8)LSb8w&V9^wK`pr&(ktBGI?2z!MSF=={N8 ze#d~LBa%9<^!@8Ud13N~O-YmhBiDk5NS=3& zBM?o<7uEfHDa3WOgcj4x!dkMT@5pgM+P5y_NDES}r3GsgQmqnPI|Y`n;{w@s9`fa# zQ9m#u9XK6|b9LcS68v83gQrsO1~Nf*5LWn`{TZLfT=DZ%@pJjd4rK=nmWYy4h(Sd_ zuzWa4^1v%n(BPdiKR_^RZ2|>&INA9e(Eprg8W7m?{3>G~xShBhor&qo(o=`- l)1NWSSehx=apxKu7O{*@?xeoW( zi3a6pTdmRSYb`+eu8^;R5XOUR-#*iF7q%EyG}Fg91gQ)WhGqC|{B2$$@ZNiB B;;A;# ao_P5CB}LCJDGn7@GD_b?Ftr}P(WgFv<~_a?D;@ ${|&@f|m^}vbYZ58%Z z^QV$4f0xPbyo}i)yz+QlsQq)3vdE+J7R;BI5g{>`8PCVzlUJQE@Mvt^OXkQmQ?iW} zMmB(q_OBZ_fQ&jIp_Ag&o6bp2kK#LP`a77i5kg48*3>JlkjqG510g#?j=t#z9wAe; zwfBzdVVaWoRPiky-i%<8yT~&lMb9f+Ikkb{^?2MJr4Ks?nUqZWAA?O_oO>RnvOu~O ztAoAuu^u%<9!zqa5(c7Xor}dAP8I2(R|Zy?oBeBNG?4{N+~WwE1x)`cqnfO=k(k-` zxwSf>jJ}8gbusKPqo%JL`!EU2%oEAb2OotvHBDD*By!Dv6axbw*areklV1**tH&xT zk3Ci=s9hC=a1C2AWuH;sLxC!Vxri%*hsB786|XIc74jI-QoZG|Ov*9FraWezfSS;_ zV;HP0?Tk69)AhcTB^4Q26WQwBP=hleUjMK|u(ml~8!}f ZjNWWOQa^ipQ6v!E$TI>wa=5k@5YUtWt z3rX0x!rxUBnTrG2$?4kumM={fI&G0DYLOAV#MaoN8(OU8l4=dXptc|9?3Z{9( Qc&x935uN91&92{9-=JzIPts#TB?4sEP1ri zZD5u>Y!(GW*{ngu$)SgxF_LFXa@e}dTbG*mBlKSC*nH5kcU{s(Ek3Z9EJ{AQXB!wL z|HCfufIq2Z%CqvMVx-L&YWW&Z0N^_3{sN)+{pyPQ+T##}ek4+J>d8vZgr6YKO0F)m zsl0u`R?eQ8Lxs5~h9<2}2m> c10?9izUo{jwIgAy`HKfV(c%&ap#Ds&W zPZEVS6msJeg;6iAgue~-dgu)l`JIyNFbHiiM2Y(}>(nCwj5sFU`B#F|0AzZElAeG% z_ cN=dQQgB1!9Bz4@-QW_+6 zX=YI(tIv*}6b5Ueb7|DFDQs!kRlC%^y;MBpy8CmN-i!{5B7PX~dam;HXxgRIzI-RT z;u@^^@w(!uy05yOVmtA2!zAt$ch5*7izuYQ`h|z!rKLlyi_&G1D$%(@PmKRJUQt&( zW2LWmH#KExt$>#k->+u);zn8a=G 58PLAD-S{MoE;>anh2k4GF|)&7L ~QLZ!wd_Vd)ac@d#4vhj8?=34Ars!}`P`gR??JdRM9!&ttixHEo+i(PN zt$_-hVQXU(aj=Z_I@7?F%67!+T{q;jrANo3U0970+MB7dpwI)|2Ey0ZjE~OK{%$P; zA3kx#ePn#iKT-Wn%>_es$CV{kIpfty|CgJaL&c-n(Ces05)SOvdK|jB7knY_+?nxG zfS VZCvruHTb!TH2r72&U$v@E@afeJtovaVfCTV@(nd zC5y4iJ3Gt3jB*Hnq=W$}dFmiW;PbEO1)pl75X<_4Wl4FTIl9nIJ>MJf^Eqatbx&zu zmOD5u%g>BM343H6!IXnbshwQG5^Xdx?NHpFWN5i|T;bn|`%#Y=tK)$zhHLxgcM(D| zslroKLgG-3LrGQnQ{xx5bM6GTuMJGdnUG&D<4R#(W=cr%ZJE!0VKDIV|4=t(m#Rcz z4LG|_jM=nHU)G*Ih)Fd57}tweCrJ{haP2}Vi|tHLjy3H+4m~<>`;M4DJpJ?5l=7J? z24R) xk7t4=p&c(GL+2!b%R8#s+lGiQWt45#BFq&S@f%+%+H{St~ zXHR3bU-5BErx$N5ejIJLQkMG)V0Ho+Jq5hd3DH$E#=8BW^dmHYj!B>h*YtrUw0{rM zAqyg>oGId=mHPoH0|PXmC>qcrDt}u##`-+sW%G6J7Tl-ZkQv{4AT5UT9!{h6h;}0A zU`6Yv2?uVsA!C;zW3Z7RJz>|zPsW{SI%mhXYfitPJO;e~xQtbO*h6h2QF^g}(O5vG z0q{B3Ha&&wVDW-u;UeY&EJ5C_XC`7Sp01vy@OX)3r>t26{;4`8gZM~;o|!ph1ROR3 zmcH!ff&?hQSG+!7QJy})?{Ze4M&*-Iid{{e%4}J-QiK_nLwrF3u)h@pJ^6n_Om#72 zbus9wiTRK}?ld|mUJo&03GG0sa9+%lpzM2+Iklwpcz~gY_c+wAXfPg7{?_g`V}$gB z!}`H+rHSsRCT1Y(DwjB|SwHDc^_IGM82r+a<3Gq7_-!s>lyhZAZoCE%(?)=7BY@7F z4OiKo;L9lVn#+ltXB}|#qg2YwLGh7Jxw8l*^yN-q1lSSn^;N}Hg0PH=0~ch-C~a64 zP#DZc A*1)B735S#o0f !w#}Q-? zGcHKSL|DfJTxLPe&`-4o<_mUTS}k_5<&;VA?Qhzb B=8E$h*oQEuO;=TXxdWg0Max8aD$?{ zL5mk7$K$*dT=aH0W8u5w=nls5w@-pU>AzI@f!|5HrvGDzv;ac5B?_7<3K|<0ZXH2r z{G@~9Wd!Kiw!GeDAkYhHUAVr47o%l++lRBj<&;rIX>BSpxc?W*$P3c2me$yRH9#~o zVE6k;su{H~Pk(uW{QXzFH_tP!{aVKzHW@f4t0aQk51Z<9t>-Hc;T8pb8Vesn#mY;? z8k=b30 1?1$0*tLaGSmc8T)TT5vDT z7wP~PpuvhwHi0Q&xJrJU1%We#wjjO6eHjv7-f$CZG>|o#n`z{h8}*Y5$E@aBsY_wz z3S+3|cSk=Np1=f{b8L5^O`5LRIZ?R$ir}