From 11f62458de93ce3f27c46f75f9825a2cbd228476 Mon Sep 17 00:00:00 2001 From: William Guss Date: Tue, 1 Oct 2024 17:25:29 -0700 Subject: [PATCH] working audio input --- examples/openai_audio.py | 17 ++++++++---- examples/toronto.mp3 | Bin 0 -> 110400 bytes src/ell/providers/openai.py | 6 ++++- src/ell/types/message.py | 22 +++++++++++++--- src/ell/util/serialization.py | 25 ++++++++++++++++++ src/ell/util/verbosity.py | 47 ++++++++++++++++++++++++++++++++++ 6 files changed, 108 insertions(+), 9 deletions(-) create mode 100644 examples/toronto.mp3 diff --git a/examples/openai_audio.py b/examples/openai_audio.py index 469775c5..85e8e81c 100644 --- a/examples/openai_audio.py +++ b/examples/openai_audio.py @@ -1,15 +1,22 @@ import ell +from pydub import AudioSegment +import numpy as np + +# Helper function to load and convert audio files +def load_audio_sample(file_path): + audio = AudioSegment.from_file(file_path) + samplearray = np.array(audio.get_array_of_samples()) + return samplearray + ell.init(verbose=True) @ell.complex("gpt-4o-audio-preview") def test(): - return [ell.user("Hey! Could you talk to me in spanish? I'd like to hear how you say 'ell'.")] + return [ell.user(["Hey! what do you think about this?", load_audio_sample("toronto.mp3")])] -response = test() -print(response.audios[0]) if __name__ == "__main__": - test() - + response = test() + print(response.audios[0]) diff --git a/examples/toronto.mp3 b/examples/toronto.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..3de95361c129392d6dd1e249c096ce9c9533d8b0 GIT binary patch literal 110400 zcmaI7cTiJ#-^P7X2@oJuLj(;FF!VGq6g7l^0V0MfRg(arhzbabt|g&_00HR)L=9D7 zQE8%B0|5jKNK;YST@XZUyV(2s>ix_-_cQOz`~K!kCNt;EoIgIfzV*tFw@U*+be7XB zENlW`kEu>u7)PP$BB5V<^d8Jw3wR^qoV$pcM;US~`hNECI_(MdRl(h zvC#JZ_&6>UEgy0X%{Sl;NQ;(@ymEDTgVGKQoT?bfQ!xaK*u@g$PVsYp!>k+&!;2&< z>OGoMnP#+EqHIhPg0wYEyxntZ$c=bevj4164qTwqwL#JJ9R@aph;oTd4891x+Jr{KHUMxX~n%=VZaH@@}#QEcL?ud)Ls%3ZgTza3wH>-DdXqqlb_zB+jR z{h#;e(vxSod4M#pSnO~s`A5O+S0CSJQqN4p{=3pGxf?mur9E$!WCfA;4Q{n3+j-*|Y?+}y0!=F;}H1w)I;m-pO` z%A_7zPNts;z!#b$N&2HeK;1maKLVG_Ug}3jrhx}^#?~RSl&IphV zi~%t+B5u%KBfjYVodK|5rHdI&?3i|RBfWqa0Fp4If4v*DK+gu6!8(#fqT>dB{N(GF z678%9Iynz;X!1;)oxI(Kra>=-X1NUpXrj~|xf9v~u?VK03(gpbBGxD|Ai{H{VnNq) zi^iwx6xr;ws9sZRENFgXBBI@ku!=Pzkt`$nX!~^wKpv2!tIEUa4y~@^8q>H2NwB*^ z>+rbxq)x;`zx@HG8gn6gi!Lo>l7dw1d(&?pX~h0IQS%Fhg#vEtR*(>j^}~lK1f>SZ z;ysGdT?vqJKNJbDw60F5Fg=+zwstBa>#(acA+9PHA%JTFXat9|I$J~(-b}V8eD_xO zuX^SSE9H-uer0f0opw(~`j{7fAqcX~Xesh`MP@x(1a$|nHdu;4h#h@x=W^*7taA2a zp$Fk*WaT2h($9Hc4Y%2$=l#b+h7r^Yy5lMt#oKNi`r|1>s%7XILk%2!%NMp7Z#hwl}Hn#h;F8H7@Ua5pvEjcSn^6 z4TTb8r;5<0N9zXs7QXX!o+f_``7lRym>2%_Y!GxSXCQw7lsEvO?^cP~4p=ug@5_B! zc`*7DTA4yijYuH-Z>FSnISL5%nWT8Ke}MHSq8m=101TvQ3(-s|J{fo>VI!~4{Nn4K zYUGTEJ(>kJ`A8^uM6^wXW;)cq>N2REtZjqtH9VbTnDn}G^GPIUu(tMH^*vDQY0Sgb z$msi9HPWS1GRgkHfeGIw?8~S-$u%Er3)EPjQ-nAR>al19KVlew5#AC6m#{-_gPF(( zBm=Ex1cs@@K;j20)EX)w8f~Y;;6VX3u^~1$vj!wqQnChhC9BGQ2^^{~kjp31L$GrC zfZ$<(rQP9vX$Tf;68`YD5ULKy@PiOAazduaLdKO1GDM#Fn;AA%)HV~htuy@tW0ZID zZ8RkxY`~qj(6m4wL8A;1wm8R3Rru{ledt-fwMU>~zVE4=hu>a??NAxJ*h)>n{xj`_ zEDZdjRGho_W~Fpwy{F?da_qfBQ^(C-U)DJ=K!gP5F=A#WnGbUu9go6V5uh{I&*k>` zR+v~<^NFxkg{%Utd^imgUl3(bV3)KXMQ_Wb_oKet5uthv?iZJX#&shw;AG>2=2zPI zQK0sw<-7}en~omb%C*|(;-P-1=Hm_OH#cu=pB$C$P6(_eU;B&r9O?oNbVzbnD--ol zhw`(AB0%t1(Q>jG6!~Cc|Di|I7Q4){GnR2KhTVF4j%c(2BZ?4$ztm)o5V+;Vaewh; zrRzD{$o`?!ypGRR)FycW2rD?DJ=8E;5Dkz)P^6U_OiP&ng=dduLQG&18lL#6Mqb;c zZd)+3cVilGUxloFM&llt`diIH#$r&3(m&QgQ1&2k|F#CDV2n~yb`LZ!o~$37clRpI zv`CEviVXQ%VI2a~eNw~dp}2P9>!e%xg3NOF#>sT;yQ4&i8y$6;=W()(e+`d_!)cSq zB6M-+U4mLl%q6g(L}>30f+5WTJWOE2_dTK33{TzVNn^*Qzuf}XCs@#P#0}^oK3?2W z>X;aBLX1j-7FS)z@{ouunS7zL=3bGPcAZI5BRDiHdQIcnoqZVHyvDqXUYy66e9DXkG+S}&=cD6bXH_!*O&}>o`RTbXzpeyEB4Sk_sflR*K-0GtN>w;5?o+W zkcpk-jcJ+2AP#Ypx|upEjIe(#~!!RKlFOjT}d07(kvVO&|-kjYg${cPRJR1h=tl&BP^z#75W~ z3I$eDPJL)K${lSiSP>FSye)ft^{#7^X+|L;^Jf z-nCvW-doFLpgmmXIE9+> zLPcsg`hFr0CLT0=w2QxIPkEDz%h3nF6^&ySTe#n1PCU`i-}i0Hv67T6_GgPHr=rRe z-c^@*$Go|+RcFs%HG=R>w<>NA{c~+xw>x92+o#f)42m!=jp91pPQ93oHlZ%>bST-48b;dLvekL?gdA<2w~78U4NKY3@LIr4BoMpN zwcYB>Ybp?sv0acZ2_63$;(j zq(5z)$he-6!o#HXiRZ58(@kw8UFM1Qq?ig!7ieTRA8vtH^z{?wE;jM9AA=25b!I&m z{nby8)65(M*9ACpKR(pWABZzE<2r^2@*_=xiO2O^`@vS&7hljBe>Un|bV1Y(60kr3 zh@kEk0Aa_Gbl6dO13v(eY7Venip(gkG_*QNQ5Kg;)uei$WMPPk^yfVxikb^bOgmSh zA}|>$gns?Sm%dlxO#7wZ%e%2uF%^CJT*x&pt&5}u!*s4D8D_)9w=|$m6l61^52IX{;kJ2M1U#vL$5L z3box1B^(Oe2{smma*z5lz2QF9$DJmZ&2%are4w20yGTm56N1p=T{lw`z{= z!Hqa;9k7#{+D^KcB#^a!Bc>U4nWW&h9q?}-|1!^E?CKSQ^J?iB~x5RW4m=2dzA zU>%+}C1+RxvB!!-EUQjq^pJYcy!gZS?z0dX{@?EA-qt5yyLxgZ{+!*j+~*f#F8+1O zi#K`qVIJWHN2ZTb<{*hFOA4%sZPlNm+JFNw0l{@|gO}!#cqNuC{<{dV3C7ZBo1hEc zZ;qdCy7IST>iM%mpGo=KJx$#!C8JW%0p{$_nuDQ_$z(Hg}7uV?&yI*^9m> zkMD|oCT*~>2tX%=y;SvF>eK1D_QauH9`M%W_v&y30^T#{RM)V0d4G)b zA+Hy)TL+uaw-N<_jkM7K5>3-Wdm_#y5!T7v0LT|S6pdGfgAs8hw%aD##6Jb~ftXZOY4A9-=_x2Y2Ts_DE zRBogJQCKPzdr3rCu-czQ0MJCR>g}DcwwesJ|8o_Ua5ksZO;1NV)#Y{ile-?)8p>9HFsmb%~7c6B_7I=MJA z^{LQY9NTZ=I`;e?NRA+-xA&F5zTgu0u*Z$~J%QK<&YUewbvDvP>SU|Lbh^g_^F?J~ z2n{Q^fZdKExwU~IR1G7d@kE9I%}tA;&qZg!d@H@4K98+K!3b+%5Ov;HM;ixsjfp6N zJs6@|i=m(o*IROq6CB|XxPn5-E2#IQP2)hiW_S%-1j&+N6bu0*xb^sbK&FMZO2ym= zcfubk!*JQTSw8&)DN2V&Y{{2<25X&wNZ1S_s(sS*EfYZ6P#pZx_wP+dJ(bL#pb*QR z9xXj`qadQmp;S5{qy>L-dd_v@R*yD02CLweOWwq1*Jf-on~(*FmmB+623s?C=_=s_ z2#P6OxQC=fNtlD>Hd`Rppj0B!X<8?|Sw52DYTlF>be)0Wr=$kX+SN+_2An7mWT=&<#!yg)E2Y@y3w%WnD zn3p-Iz66Y_X&_Y1Vxru|C3NM__SI?K;|moP_fL9-|K)|G?fv=>taqO)5BG)eb7b_# zr_J9EABg#S{I9rd*Dcsn;=UB=-NPpuD|HZ}`2(?59jtFQx~b`g;d>x%+G)H;tUZ5; zPFKt3clT8^y>+s{xEj|qIROoZy9X5*P1K$dPX&U|>Trq*5lR3*)0Vbyh=CEx5@<0( z>+iNn`PXMbI=Wp0y0cJcpPLn?VTM7a4fDQ=2Z|uRb+0;MS+O3Uq1ih%4xMQusRn3v zg(j(A`XxTH9g#rzslZ=H9%T(9MaXETyxxqxTs2OTD<{2&&$Nr{2;&Y*xu}rnySV7Q zrufy<(V=;<%zh(k2?!qS$o2O0hr-tolcv=)A!ZP? zM9_^YaP%jDprpTJak~fVN=AHvFLcgblC9LSK+*UsW(W%~CN@5S6H_M$h}syA*hT4> zMj)KCYf-s%S*Y?2Mm_4b)^)=VFi7YLI~7G#|~m3ZBDj))OpKZkykT3 zO2aW2;IH=CxppQ&0-ulYX)LO$0{1G&Yi+Xf2h48H~4O$?Zl;-9?^ez z*fd;-%!b$b5AMT&Xr&L1hzDN&?z1keQCt3P*DD7tjtb07F#@K2c|TT0738-t$Q+<9)Z{nCd; z^1Y5qmUr!nom)bQecJPaEq9c#b!ktWg3cDmPkgJZK%D-+D6y-iKhUUPqwn(S0h-j` z{G@tn&C62hyNy*5x6$N^A91zP4W0^-8B^VC13N$O~lHaI`P7*Y!HG&55P zP}d2tcgys@m$@T@d`6T>n(PXOLyS)>n)}q-WV-7O)?2C&>sT|g)G;A2*0nmpo9$yz zN3?4uOjeOJw1F;qd@VZN35~(6eIs;cn5yIAccB#?C4@E&T2XtZ8hhYUoOz$NqoK}e zQNco~DH9+_+je}5UdZ{y_ieJonF;>;j6`6fHm8k4Bwp?(n9$UQozXWepHFyX%tc!U zL9c0C(Fx%_at}tejkNWLJ~o!q!xjy9=a;X9=sioq?J(cQ*AONj_gy-i&AQPeI$xgH zvUHoC8*w(&&+%Fi>Ab$pXz;*8o#Vt7)IIa25HCt?!-ZoF{D@Acjn}p}pXns_?Qpo< zx)@m;e{s>fCm7*f+8ggY`)71}X{Og^{?@>KYH4G-=glvV(DjG>OlXCsypTZe0PHiT zg136#u-5kDZ{G{r45rnb3H#QqbUr?vLe*Mqo7rLYi*Ktrz?p{-*8hNby)qHuH&R8OEPY11HpHf?%o%RtpU0;xqAT9-D_(mz#yx5 z?AOfPukMZ|#A$9~(N$QHYn6M!ECf`!SziKH?{mkx38F$=qo~X%)RACxu7(9$*P@~b zo?q>G`7A%8sOfy$t#=4`Xkk;f`dOxNQ|y_curs1-!^@f_LjzS?537o7PIwxSJg<=X z#4HO`@6dyqCR=cmYsFBF)`DDH?ADRt@gM^jIb&4wIf-5+D3?a5=D{ObfoK% zAyo--qUy+9g)#=!$C8^3kyhj9fARgYpXE#eJ|3vyqr|+dp`qyL`Q1nQAk3ov1(6k$ zgY_6Ebl{R-fY^gIH;O{Nd>%$?tvmLxCi23~)tQdJYHG6YZ0X>i^eQBsjYSmRIAZWUhBWVJMWF}?^JL`Noa2B*qZM61Klyk$JXY*(yc4_PaX6>p_t$fm?2~q zM2E5{qMr`2d`qcLvL`{TvfotpJMn24EGMkaQwyyRJ@Drqjj)i#y${iJogA z#vLYvd1Sp-u@!-!nTY~zATU+BK!Sck9%4Ue{v5#tsQ?K|3CGkI)qpPToZ&1iQkTBc zpSn&71Ec#sF_CM)pZWI1eKgLPN7u@BG)HYI_aTsKm<>*q3Rl+P)X~r8~+u7kh?N@gaP~^Hs^Oo8RCR+X1 z5M~X^H5(k%4yfzi;|KHiJa}I>+3Ik{?f3f~dwS!qPmygMFq7Qd&C~&xDZ9TP7?|xn z!z*qakN)$?MQ-0*!mEpS>u;0~F%t~CKibKjwfe}rU4qJcTMd;Po8tD{541?HYc)MF zQ;5Txd~29qwxpeu(y7NYry|amt?*L+*d%Rh&9%yyEWfjJyygGK=bxF@E%OuDa0ijN zQd%LsX85c!^iMP!=qso-l(r#>RbaFG!waVw$jw>E8w^J0%u< zAp@@3%FPh$04`cWrWYw@>?D5+S4V)C%HC0?Qb|K9Fp?PrT-nZKOozZFe@P_Dz%9t~ zqKVr-e<$Y3feFM$76gtPVUMu**{S_XiNu|TSCj!tN3gOFVG#CN(5@j3gy&`y*-IU> zR?$`xRXJf~g1lxd=@;MCq#0)<_(PSr$jLoK@4g|S7FxD8(6fP{oMtN@W1S|(qTZUy z`UhY>C?{2`7&>g5sfifz_Ja8-)9CwuTt2kFHN?d14ESw3g%D=#u{mbq$R@~aSnx*o zUUSutQ@V51qh(KWO?FQ5P%9a4%v=Q@#}lS6A88wS`1JNjPW`h7(OFzD8nViPjaSO;=u3P(y_Y~FAxQ=x z?*|SeO`w8)NeFU-aHSu;k>#4j>R;7B;>@{oB`lR&ympKLNy41r}vbg-De_1uq_W6XJH#Z@BaI0 z*m0BLwEhM`V3Hj$-!{pCAGtp364#E@c$UUZ>3wwEyt>f4)-U$WBbTnxnt zg+A_l!xIY{K2K81?zi1x*!VnKiHq|8?oPb=9^batNsBgll~mPy*Qn_oS#!Ywd28SH zt&Mjayso0X9l~6kRL|LtA6)CO(2}~zt7ZRpOkUKf?EmW5L_mNRXI;qzWgvk=nKT=x z>?z$@&JjL#-mJ+0{j+W-tXnofZRhJELWhjzBl!jH2At(mQSeJCe`cqbst>O5rtt;BfgY=bjcQiRAc9BXJQvGhs{wv$&M7Z6=Fwh7brune9&3M83R~ z8nnxNmcmsxH3JL&CqBD61K=OsM;i3)LIBl3Z&b_Gy*wJ(5qH)WZt-K0Pqddf|Gv~~ zy`U0IC0O74Yl}7Fbn%tgu?AY_XXIK)_z^po63ZCfFXJYkmwP4_e2uQ(IL0GgF5??z z;!4vKcryvdW~_*I729v`ddAS@8|QkRULS5Y-l(!`5_!Kkn-|- z=&+`TL&8AbJx7aY`z8nR8*D~X#+3*Qu98A*HpBzCvFmg0d)k?e3) zu>R*0gx{ncD!qBKI%$1AH&4nz2Nq1`Ovd-4T7ICs24XEUmP~3ulcVOnL)IgwV~9l= z9T|`Zm0+>JhT!^`95+P#cAIofgV4YtM&BaGXpxHG1k`Dg-lD!8OU&7Je5WKpbfSx1 zm~ej_n}pn~>Py@3(*&Vh`dyQ}Re8?0z#$%4CJ?AwR$H{>MYog*-2}CU*|f{;S+RxL zwB-W5pmXspsO0U>g4kY=DbEe3TJ9zaJ%E%@Z}&32OB$7|)vX|h1x(@q9-lHyxC09N z#dmox>nGojDMtX1s8jU%I%kjem@o4{u|L`k8zs%r1D&l7uWTPso!M)-?&|ZFYMn(iLd zba;uigN5+%)G)8I2-0X&^q=_rpZW@6=Wxrwd2>Gzh0EGfi@J*XT}LjuvNM_6sB*(sp3&CkA>GyY&DhUDzQ3cL+0@0T!{@ zkPy*Hzy`ntRRT0!ngJq;KzpQ@gm1$+C@e>|-Evn$keZ3D`g}fk1xo z{g~3`3z;u&l;i;z-!Hb%376*tI3DH;(ikp>WZl-gK9_kWU3)oe z@UhOvL#r{Q4WjM3vdqfgieBH;t~}b<*QWZu`OP36AI09GAjU2JlTiNcoaR_gj*Ge4~l1@7#*I>W}yM&gRaM&^$gNUU2;^$c%qHuGcrRDD&) zNF*iC{W7MS&*%TC-QxdW{rXFs)Rcn`;7siAPak#;p*`G? zEdl6cDUYjaND}#74lb_Oi{7*LF3^FMH6^Piu|U(fz=a@K0VT>nF0q12|0h0EoB`<1 z{+DEdo4QB4-)mQaz;>ay&(9+fU?aGZposh!RS>5DS%7(N0yy^bK@ZOsy|(-w>h#~^ zW_u?867I@V4SFC|5>p}xdDBl?D{ggY!Ve}kPj)A4FbtnSsy$sCOeq&c+&9maekh2# z(z^863n|z>ljPr8|80dQ>UGM$k^rvSd?sL>Vpb7sGSEy^1D*HwOIOfrl0a8Y_OmQ|Jj9d zZvsCn7Lk9vCbdj$ITc00)wk0r}Y&rLTef$`i!&oa}32`HFOMo1%v-9-1#lh%NX{@P^u_}T z>|Yz^CaX5g<0?Fl7S{=iwGpJ2uB5K{1|Jq27C*9H+z*~QmFY~hb|Bfq$+mBS?zHOd+vN#-$%Fs@JL(CEm?z%+b z{;4*UysyT971v*TMzQ>JgEZ?K-(4$lTWnD9&Pt4SJ9ZfL|Gwyc;HPK9m7F-4SAW=q z)j8)#%2H;N4K*a|R7jSn0U3A!lCi*+6&Wd>L>VBIq*7u+;>fL1ZA^hL4+BP(Bm2F{ zbIA1NXke8htn@hJ0P&wdwG<;_)cvHwwIJ}vsyI+x*iXlm#{+Y;m5%Pcs|brYyqEw0 zt^HwZT38ibjG&m|zw?0G&(;k-CSmG*p@18#N*~(h$lAGTaQhFVU5sCRpY79gnnQjh zMdUEDK;#+YAbr>3rM{->=nY+)>=mlprSY&plXp>2nC&MJLEAP8Uq5hv$0MhmgHP-f ziA6RZvAE3f$f1f}-N5U1-WXS(KmD7AA4gajgsV)`hU-p@B$RmRy=eb@zx-;Cr<8y>QD1PPW8T?Ogp?g|ZKyT4I5ah~<-x{rRWKxZXr-Tix z=aHIMCs)GLj#XNl#GUwdEI==k9rYTdykCB^>u<963H$pN)jZhGosjR^-~O1*w!ZG; zf=FuVHB5c}f9X>22X&LHriiS>uC4pe>aUMd4ToK)@bpa% z0O!SG0IOEgR869$qI3xCkRefKBJnkHP*t)*?Jqlup@;6eq8kk~yGxKIJRPojr)&g-&e1MKEz zE1z7bO`Zvwdrd&`;d4=%p9u3j3zSCyY5>WB>O>bUkuDeU2>=Txp}xe^9nqv%mI+G9RtRr;+99E788?ef>AM`D1)aFq z)80=+J4!zLV>g>GRt}#LwLiUrS7F1_KkoE}M<{hQHqBMK4IIet7c^OGs%89jNtHt| z&-NKy_+P&NStJAnp;36p^xP{zdp^@1%!jPymQe6{( zIf3W?V7dq9C>b!cE&@6aqRD2*=j&BfBq?BO?#p@X{#{#<-H#lfNpJ6mR5WBjOa}r_ z5ozWaB@#&xplLcV^#Y>{q;B`3$0l%a7y_4`vD@#|EVx`K$`sBNA_Bt1>#O!v)z z&VM)NbN7-QjozC&OYCC;qnUG!d%9k}Hs_7+w6E^zc9gtr<0E>59}28>sqBk-zO%%L zI(k5zH`i-U6xb3~k_4dJ)1Rj~DYH*mcz^NtU7W4v@XM|jR{jBf-rL%ervBxkdc_l( zT6b3mAKAV9m*-Ps))Ms+=Q5bl)$8LvnA7c9tp_bC7jB=OdK{DZzRlV&OAUQCljQBN z@tH6r`=mwaA>o6c#mO3?xN2k7e17r?HXN;4?N$_$h)&B$7New69tf2c_-Mp;@9Jov zS1udO%@-}t^k>OXj*kYR)`iuHsbu>B8B{+yX(0ji~=Iy7)H-Dk~1^4 z&YRSNk-?d+lXsOSY@Mqjfp$juVqN9P>8!mWD5!O;K0}QP%)9}U{?^5_S5`SDgStMX zS8g1?;0bmqlP(m0WoLF>=y*5OkAC;tvO4IniOn)@zLZ-8{RIS}c%3^6c}+uLJc33>@iJqUs3PG;i6adOC_Gi|ieM-W1SO zGQ0y52 ziQq1#43xXh6jvDcnC)VtUC8J{68k(Kzppl3^S#zaAfG-$lgc+d_&G;FP%=em%TnK- ze2_`Kr=hh-vkD6z4$VWUqR>bB^@&WeH<~Q4aPN{lYbW?W1<@d0g&O+nOtNAsinXv5 zoAk+ZM{NOw)JOUpy&&~lvoe&}5al+FY!~O#shsT8Sh7FSK!w#9Ez+&=&fQPTC_@Y= zp*enPr#%d#TQ>&4wEKn1?7oyTIgGBeCR~oR)SvcZc~luiihuF_dZ^7wj`+}7(^=UN z^nvxNVo42Crs^C=(GI~)%7uT_qWQWOIwG3Q?S5_FMIgnEopkfrigzB>ARVAyvSgfl z@&RKP=asq_3-vrnM-~wbG-qhuC2Antpmugg43zCRj|yr!>tcW^`KLZV!d#CDy@)a> zezFjGr&_F87BQpU!+UeWKrO3?-LkFq1itq-MHLocXS{4=iR+`UhGv*X$ovaG^Vwy+ z86bkb%`g>;)D~c|X#mZ3E*Z}aSILH#QnSpvjVS_ieS11>17_EnXW`S@O8&Ac>FAOfzL#4|PR6w6&RSx?&b>cy{99d2$Qs4w(6wXBW8#Q>~Gyp!kdx}CMym@7z9asJP-XNH+8_=xa zK$$Qjl-l81nwy}xs_rfX11|dmrxt=;1d4{+y>NZU50Pa|{87=xLg0 z1hz9mA{wTRnMK@;HHUSoh_U4l^6-JCkIw}J=9tLr0;_FTByJ54-Z(-E_CU`Bn+BF< zGr(H5iM=F`D)v^1PE>dCASXlU&m-$LvP?8PSKPoVriaq#f~t83+|q83_Ps3(>FDQr zTz=HH$M?%jCo1J3*`kaRy^FjIi{F%J-t->Kqad1hMxO_}<(`#F_D_RzlI6dr=(Ltn zScvEAMllQxQ}{ZjpL{aTzUwE_5p**Hi-a&&PVN2T12fxZnG+p$oZ{i+ZIr{PYIN=K zka=_S^w6pKrcG8Q4=SInR{sU_Dwa-57X_0i;%%x7;k}|y0cd-F#RFo362viw#n-N| z_jsUehy08DPP|2WJ-x2W=7hklNO(3|)+m^laZCo#XaAFbQ=**)fDfIC=-WWPTANYw z@yTv%;CZI>QxQm2%<^)`I|KVeVv;8X31LZ$HqHBkbz4y~&#)0?tbt}(;6aQ*0qdw! zzsv$nZOwGQGUnuE9ar4iFVc`fHyjF!d@Ym98{e+F%Jfv;U`+LWrmk73>-#r6t3+c- zsm@&%Wm83uC5ZNgrq&o~1FIcT7iQgXjp>2ABK2ufsJEl6CBf=>b!~L1G1KAmPn=HN7ZR{2w+bUdG4dFf5pW)W4)K(j)2p# zF7)3ayQmAzy3l!rm$knH%>T@V_TK^ulxl|W%2 z6>SXy4%xXd;k7Py5y;N~>6)wQA_PCPD+m}-B7jiRqA-N^cudci8LtKdSH)BYK4dcc zxGYl*Q>0vS;1(WIgb1|4=`jv(gsC#Q%WLLCR)6vRblAvg*!x50Y(TVcHAi1#4_!rF zuL2&wor7}hpA$w^ESO392J?})K1RDhFV!&y*H~qvmy#PLHbciuB;jM;P>Sw?gy0;6 z384syvi>o|x`?W2YFh{9sutpg+4Byzm$@UrP6KEG?4`0JuId%4_GC5D8xXbl zN?H@TJ=8s@R20c*5MVaysGV-ndH-9E+9jWgDP5y0%~cskN$-_o`ojE;)HmN_tZiQ> z74;dEO@&pLAqiJr?m^3G#317xgTpkQsv2nfyGHIa|DK7XZv86TOqLK$-q0gHfu-A9 z%FHcG4x*4E)G$XQ%}re(8zs_6WKw{Xd~xl5?RFkH1*gy*NG7je8$hGoByLqFubI>& zGBhFBb|WWP$o=PJT#H6`-$p0e=wK!WqoG43vKwx}x_q%ahwxaIZz=1ouWvz5pS;~v-FX6N5kh~Y}v;`Whw7G}HD*MKo=v+j^Y zcNFYIWqKMwyW_^E^5u~fyB&Bwos(ob134Lx<#a{-IHJiLZXA01NUi0c(q=^b^JwM$ zzBK&@+I<{DZ3IA}OV)M+hj zTDijgVqSR0t73ex&} z_VT*9$K~hlMz(fPO{G%yMt!pe*BV8(-j>{{cxs%ki8&!NJ;m@zKj!aSi z<`~@H&|K^Dz%kTC^J?XQ34&C@OyT6{?%xzW5^yg2P0{o=yzY4$@49yrhYdZl!*o8#KASgJqB)#!KgaP4qFyh%yywJCF5^3NRp(J0Sk^AWC+FqPRV5U1YHmtg+%~T z0$BYa2LaGHFgz$pzTW2bUKBkX7R_E`l&;>7B=qS(hxSBCZ53dYAJz_|x8|D+3s@Xl zvGDppM^clr$*8=Y^4h*M`o*jseptTZcQp%Y(@EFP?LK3L%e8ZGa zAjt;N4ayW`AwiMn)(HJ9XyWCJ)Ago$m|yyRy0^wjN!&RMpu-Hs`eFH$>y|q88mfmk zQogYVK5l(N48CYBoK2B8yod_!zCi?MsR<;b=dWbbr3nji6c7!B%laQxe`B%xm*fi% zu$+9uKiK#Zr1-X`=BCKcfUXHf+c2_oo`_o$aH%oqo_>?XS0{fjgUn~j8w_FW>ZLS+ zE$_2jEo@vyjb`U`rvn81<`132Z&;W3ahZ~B`^w#Ss@u-lFYXK;s!=}d58H5?e>8~H zZ#gAz$!NEO8<8MOf73MD46aw{1XE(}8w77mYjG$KEbPh#5-x&i88FbABs&B_fWMWg z&|lB}I)sN9GFfSu-sNKb4M+r@1jJ32n7P@6Z!(a0BC5Q3hVLSzoj!)EssU3`7KF=4 zJ&42 zgqhHOKbh-|p?44q|m`8^&SZ-ByzS8W(`zeo+??QH2`Nqs;Jey z+JDyJ^hN)Yp0(G{#y8pOy>(~6yEDpy;Quuqc8I zM$9rKe6k@#!|~QgM zfjnVWbH(@)cc3El5|-$yPI#wENQ4mxP*XTq#>PU_A=YtytEniEFyr++i(z0eAeW=j z5SNi8P7;`*p=eD)qAZLypdW-J^?~wy;Am$w)#}`UuoMnrsTq+FRE!-$&nik?2$;Hq zgivfP;JmYO`+#GU#)H~5hNaD+a7!9!SX=F4eX0n4|4~L0aZXW zfMd|*vby(LXmwRk#`J(V1PYGA4&ma^j3};L(BU8Ob5X~@sKyI&wKf|&jWpj$RTLs_5a z6xO`7gmpSOedW&8xciv>6<4erKN04Xx|@T1JN;cgqGpxT<@HL=Wk(S9aUsA%{tS@4 zM@IXi%z?GNLfViOpsroTNgc0JNF&Hmnr7N6 zIufWJ3Upsyw8{Zki}&X`)T^N$q!xOqLSTwSsaC~&>= z0r@~VZK$F>CWs!_r7<}idGr56+j#~xxxMZFNhJvZ0|ZDAFjNBqKA}hvHKBwSlrA7> z2oS0W3W`{E5<+MJ=>!A~RhkNj3YKkXkrI?U(Tn@ zWcZNbntQE#t#w_$ySV(sFMaQ&_c)M&m5*X;YRaVk3a$jCluQabO zYaa7$*vM3mkd@R7oG5~q>gMXW!)=N!RF72O&q-cK<`{S+w>pnk->F}C_^yZLtr4y) zNEZ+Ue|hTT)GR2hO%jg^$&YRyn(^Wabw%8)h~9*;#;f4Ax50euMi2%jLy%(2r{s9H z!GrH`5yr%ukvXA1)#0)84zBzntG*MJ_TenR!JkAqHRAHMLhAo$%zSyL2opj`_fc8# zN1GCTe+w(S>YsMyjm@)x)0S)ZZIH(aZl4n4z5UD^?V;eZ?xESowX*v~S3&6g#AD&N zPV%mlrSu%X%lqtVeKp~o7OSE9Sm$h9kj8SyzBXg(o82^y2r1gZ=VsYmKiQP1l4E(N zYE-ecDmY6tZd%vEH4*JqK%bZd3A^h;P7(YGcHXz_=0)}`C=S+(#;+<-$r4>cOnlrU0<_^ z9^gD7AgB)m$NFiKDsA)T@|<0-XlkLJe|c%VELw#c6PW#7WQdji0uz0d{|;vpOG8sk zt)EbvOtILqw0tvyN&dMR2{*IysD!I!db+>go1(Hz9ccQZ%0UE0IulBlsN8#0 zw_GHN>T!4=HWCsD5;-?Pnxqdjh7M5Z5u2>`!W}>?v+g=#xdt(p$kEfrcyN&R#we_# zk0W_#LWMAnXzmxYS^J|JSzf+SRSRO>@U;3Uo*yDf)etha-C$A2aJRzufA00>F#I~P=oya<8|~qHsO#-9x1lBC?f!lYxt03O)v-4YX*gsmAjRY~wus!aFr($&u zHr`fmmYz5tRoq0q^{Mc+%{JGBDrrmTt4!z@UbuGoHot>@m zC)g39?7XwN`4YGZ6-|1yuuEF6hp57N1CrpruGA#oVctYRWy|NOWz~@Jr3a3 zFNE(rPnMcTjAT|^{7>BUs{fygnM%Ly*)Uu2{CSOnIjB}# zBh}ocN@X=>7^<3fPaG`SqcU*H_Mf}=G$0*?dASOOnN}JYnKCc=nt&NY#eHNK{M*67N}hm3^%3H+IsC%^g3mV4gxDAftRv@^HOH(vYb zVr6LIx4>INdwPuguAV&bn|;91MYWtQ_;I2S3d6T^n`8ly7wvhOY%M+&u#6(o}p z66cjZXKiL9z*d-d91=Rv--)(Bhmek7AS+uVCBJ4JrtXC*62YMfw?ruEtW;=Yv`>{g z;at_U0ajb5lS3qs^;Kuh#*rz`2uetmG9YxJV}PMFSJo-Hw|!6`OpKl0HBt86-SGzK zLqZKmynbhj+w)XKFTRL*{jfR#$cW04QVC26M{gJwEVX0Ct~RrcnJB?X4)g7q4a$4> z#^}DKVUMTBY(S>$BQ-DSZ?|b~peutmR)@0f^qH~WM0HiY_xU(13V>2rFm3GiU;6$$ z$Z*ic|GZ>IqDJJQ^m7IIqVx?8AkEoA7l9yf`U~J1LxWD!@-;csHO>Nx??~f^H$$P} z*A4ZKzp~2ql@0$W_+H5UUVYpMJZ7k<&UyY|*Ow6z{r9`~Tr++qQS3K19$wKe(%#+l z*R1s(O5oE%>k*}=WtVMEtlw|Kv^)NN=^HkFW0E=2l|)u8v3uM7RgP$xd2r@r^|>+K zkw^8|CU!z!st2*5L#nEGbp61Nx{Tv0aF-_6PCW&SU3=Vn(=X*My6l#4$nVXA$ zf*eF76mX)fH}0Ar0e3-4fq4YTCw@e6fPl5#^E1(NTjq@6v%9 z;kN}v6RVDl?Vi576ld)Wm?0h}MxWYf87J=I(UiV%oaTKzfLODw=UBeztozOFhJ-n@ z1gBz@ww+@HkH%!PeB_=owu+jlOap|QRpru}$%;^?6(d!S(~1%v!duZXuj+Y;R5vwH zE5R<`wTI5S@9QjY%^Wn})j8_Mv3o9OnYs#nQ{8{`-f6P7 z^M7<!4YDfxB7Io&O7^e zp{E#vB11%o&@Y(M+Isg+Bm^J z(L;E0DQ?4!kZYJZxPjXxf#u`vDM(Aq+Ud-?R+0R%X}%aJ--5_)4JmsD!USK#}#>vE1R z7XLw4xOI4K$ibM)adm`dXD0wX5)=m>&N1VZ2v=QhXHCK*>*!eR$OgfFY=j;V-9^Ru zLGmGDyw+-BJDpYNgo|8S?A( zL{Uu2}@?`LM2Qi9JH8AI9_!s zI`;-8i2!EWXG)w2t_rl050|R2*$W(;uL#D2a0$u;H32P$949j4)M!r)xv-5f%N-36 z44CX{afY|6oNr8OoH0fs2@=19)P#{ip)j2~EWie%n2cLf^gJv`%d3LCZ#z*Pk)lTc z_!FAWIukwt3;OJY%54Iohl{%n;*Ov-{D~A^yOWzdr2!# z+NQV3IK27uzM^WB#mOK4^u)r*|D4?1eAT?>Z0&>lyHDNL4SLgOcHm8X#8T}I3vR^a zu^qm5g_N}#Pvd$`!;@w={Rk@$K2A(+Ls#@vLdl;lxAYEm4<6d$i3L>}utJwy zeYu>f2#zcPI@AT81)PLCsh4k}#-R7#wX8V>5(lwrTRPV3j> z0lA?Q*F;h-y;D{;|0X$5tzP9I$EY@4y9cOL=G@el8U;aGw~M>j9{q1nAsbDew4Mlg zJo>0>GRFttg@!i8oyYgp3@o1KE4eT2=-ZMs8KsE5x{+kK#NaIfO1j`MI7)!;cLl-Z z){MdWx7Jsx!`@i6hJ_y2PHq?}faSP(;*<7_u*B^)w~tkSY5I`7iXANej*Bful9_DROl7=B_KU`HR}6pmdNI_=UkgH55Aa+LrCM-&zIdL| zbIQiR=vcUik4;^+LRi}y-#%b~dN>EAH$%Q4TwVk)Z2eH67pA9Wsbi+O3{9z5X=4(j zqXD@EV8rEmL*|B$dMWF74wzK%JL@__I${BTVscQ&>aeLici>Q@QeSUCDU4{=JH|zp zWP&)(S`A2}WGAFdvK^2N9MeJly^xKSDr+ncw8^u5SK&VW>L|`Yh|2QhJ*A=kbf}%= zEWnT?1Iv;m$n1cs8d>rQLX}toqI5N9AO~^*C{rC2h-~~nz6@8Oi(aIB4P0AIO5UUo zmSR5YmMBx4;WS0`$vHjMNt&et261w~lQM3Nh~#-xgzn;26752Tbe%+f?K@Fq zhJz@#wZrd}r;#2X;kO}$Us4~WIJO6Fte?eN-mGK;@pJm4Zf+^yWmdWEnBCXQJ<9oi zu1>$)DnxiDNHP#3J5;cnok~%Y5zq=n|MnZ$$cUe|0F;0V_Wr zJt9Q5yV$Kgk3BDiKxv=raxfdPi;tU%*RvwN6b!{hcPmpV_V?{ymd-fewmLZc>1glY z;~VXjN;Y6^ZFvs&$W>$0%E(3QG9-_BUS)n>HPg_QrbaP?s;GfLZkcuRa0AD?c+zhM z5KGolIMlOPij_v^Fx-|pL8>RP)K;}w_tlh%8WGb~OaVgf&KE+7Rh`3^pbBR^EG33S zkhIS2CCh3<#u#!Mvq+cJF zE=hqo_TR)W%UThV0TAXc34~hXU|pP8IjH8GzA$#!AceeNUu37Mmd0@z^p&6&9gP zSS{(tQ74C)rAn;@2fdYz))VxcJ=KnWyp7l2ZAe2>0my4k-<#sg^@68=O7UV$@efc9 zCfvpU3h+pW5l%x$6cf%R`M3aeCwJ9mN1U0~uBz%6yR8u2$^V{z-zJAS5UhV%_K=bz z3VS2;1|dFs%*wUk-8&@pdVI~pG3Q#H)MnjH4C5#}Q^&)eZHl6wHG z9_|@G)&MOaSx?r%o3+G)44=ApGRXEyDh3lq$QAQ*;HsI~2-HP?ImpZKm4(}xmr(XQ z1J&b?zitmOoqoLT$RF*~Kd)|lRO0zy#v*Pt0FXWTvr6(?bsAmJgfGP&ZeX1M`;8#( zSyG!JxeYLSt_wseQZ6|jqYg57&X$Urk&t(lU?r}B(6e(>t(CJ?L>eU;21AMMK{r^Y zHgpyI3gZAHqSXjoYnisRel2Q%oTG#!kl;ai2xW+Kq$-*U7+6%uIGZRaj;a-<7j-lH zV^n_MCc<*XVi zQy8UBS#+Pt&P1UZQR=2ZX+(Kf%@|5$R5pnTgXA}SuN9FNoithh)^Em92RqcC)>jO_ zr~;N;VJ6hVxGc=FZbyH%C$q5nzzUv9kdQ2^&ntX@w~U(@yz7ff@?9s`bLNtp*>6wX zjWYtF+meRUmoH_Q;L2qo;ykYv2$|sWlKE;F)=1b!xJ;fay z5=~n6#6m#TQ@zn{wH)9%{G{^5xzLN-w1FuUlmO?%agwzNYjgXql;%~b@fP?Tg=|;| zFW8C@t^49+@?Qi40Fp^il3zHYic|@$Wgb~#jEI@Y^qtJXAS@8d4bJNqgqs%!4p5N9 zcGWmGN>#KP6#+o29GRTfA~buC5{KJ%m@f0|wRJFyJp}q$H1FFVG>kpazDVWRyO{YFOPO<76<{ zoX?IJ=bjL!6HLkhluv9PO75yBp0X*sGj5YCqcory>l*dHRR$&g(swnTA?IKHY27Q~ z128n%kVIw)46dw4uf;)aG9f#pLSmQG4hFweV|GR)&vQkrA7x4edReCG)`I0B2^|Aq z0k=^z<2|Kc7wIM&k8Qd3xuEZ%&NGj|b+PspY3rZeewLFYd)BH$ud@EJeUfTb_OYyU znfB+cu-APSfB!V|H10jMp?>WycW=geAzD)1iFtAXo&Z%K2%W{L}I5Yg8~GJzM5^kOdD%aRSZc8;FBX}y2E#; zwZ0X_?rOXE7UBfxd9Q5# zDgamRgJ4RPAdKQ`Ijn<&isVV-2(F^NhFjyl=vBa<3;fb|GFIlmnE%tVrbX7g=(T=Y zLGulyIT+feQN)kRp>F>4yBl{$QI-%0XmWlaY%RCn{Us*JfK{s1bB~->nEv?8UzJG@ zPj^wag*G3GpV*A=ITS@Xvj6!9qa9G^6OVh%yL<;N8th6OWGd%woW}_5bDt?+W>QVG zvMJ1&x-2-HP&TV9E_x|cuGBh;?{rZt%(u$zv+()W)3D2|b=Q;VQtd*`tep*3)6@B# zhFawUTxHzWJ<-B1XA&+|jYvS#2qnV(3MGpAKQUD~-G{Ef&Po#Yx`X6_+dOsb!_Cdi3p3$dK<1M>fNyCrpXA$(8FqB|)ObCIc6rm7m6uUKdiig1tZ6s^Dc&Y1HhlO%t~ zLHEe@w|1DQSuencXcv?ehV(M={6Uo1$KZQr91D&WB^&qUzho$YOx&=6voZ$|tNMtU z_yLZyVFmUeTtgEM;W)#zd7RT%rt4ygM#fEQtD>xo|6}T``T^qUlo&nYv};#m?(7>QY<VxT?IvYd$TXa6J6(KkpbJ8KXWsX@Qy@P!0H{j;TvY*es*KGP~K5 zU7kCYL{4Wv88ykbEzx9o36Q8rS2o5_bb=$%{i?CE;XT2YVJeOxHa?14S6xx2ZQ;XT z27~PPDX#2}k}9G`W@J@Sb}jn4c$7qfsy@XAOu`oKbu?2f6}k4l#-pmiC~Jiw9V*Zy$mA}w4GoSszGUT8hoz?TQeyH;Rt_75fOBR1b%XmCmZyGcV;fe@3lx; zGm}_k4;--;CoLBr*f_1iR>l*P;n4g#yIOJRYMK}G9L6;6Rb-i5?0n<2H}2%Lv* zLPSq|?cj^1HptFf#8g0=WNST0nFpxpWJ8H_CTIKzVneEu`+~#h>(j1xVio%$^@d{c z{Vq5vM%lfwRv!Y*f^kbahH@l>lWRi`1?46NW?6G2BS+<)-e2|meBUDng6r=4zyQY> zujL38O&^N)fd5|DbMe9HcJt`L-^x#wg8 zJajpY;f%&?42XUKk~*0x1$jnVF0E}ubKX9V${A&gv z{gSS%%>abQ4dzDGz;zR29XjRMH~vRuO$s%r1`F|W$pdav>XY zEH36M!B&6xih>mgP$dG06lExi{xTD(st}T41br2eDu$4%4CDGMJ9RU$L!HOI>`>F` z_g6(aCBN zz+efW8A>rTmsC&8K;m%&kV!(Q?OxAd#r-?!aJak>K+M*w8b*CXjYXTkO4gn}-)rKj zv(k#N8QHJ!n^C2SRrw}6n}0Z`uv#BOogxmYykAp>C>@{C+YJssdDUI-vvya|@d2KMYQ5LBDx-(&SIF{!KbC4ud|iH847gi-&gq^>zYB5AFDem7 zBTjC1ROpQ#_^!U*XkLeQwW^}4jyVVDLnNfX;xv>kP^LW~jHqPhOmO+vA6vbP;c(pb z_6VS?<0&L*WOB5fcAZPdN(iQXW3Mj7Xp;zd(v+JaOj4xJwZeW-*x@rXe|e>zS5iGy zlgQJ@KoN$|@SIFS7Y93lHO#KvFM~khHDg26;Z&`kBnXcLX%Tk=ds1Jxt1g&m5DIbA z(SxsOk1~x4msS@?wH4m3&A#`&IU}O%VsB`xWhi|j=v3~#(V3*O{c+yUoo)4|j%lc* zQj5|Amuu4>&js)VW{WX8r8m?pk4GC8xE^Szh}rMIQM{7=`09g z`fOhH&wq8sZLajmFCS;t9bR@@sM*NfBeG*w;k>NxJL&G*Z#VxC%yL8 zs-vv$089Y_4gJ(>nMF}XqgWv^XOVJrAMB`?-GwTk@I4j#&J{5nhC&iK5DaSXBc zmBSA8$ehFhOs=xe%!bQ2*CjwaB$ zs*TrJ6IH}4i^M+b-BGN>qP5_l7E5%XlqGX4ssDh*U3KYS>qA)H}1MWVT2WJjy zq)+DjhIJSBeN;*+=R&==FFd_0yqZ}cUM=CMU-3!#0$&#Y)r0QhLFZ2_svAQS8 zlUItqjk`Y+TjF!>_;L2VYGf*my9?^JJPpm|JqH6bd~|g1nNQI!(Sfm+&*|H5=5YEw z({GH#p6bwf9nE+WQ1se2&8_O;71_E&AIfWGohuc8drL+u*I4GRq#O>TPB)*SKx|@l zF&vAojQ`Z;fBBawn(7fdXEv5!?7fqLI@zRN=v*H8spw1k(^Jy7D-EiT9yZNgVqRJp zHDFY+-@P(Zgh08_W!Oy~?(|3C^270DW=g~{Xa`_K4&W2kT;YWarxUUY7X9r->c^8 zEsiZa_r|(A`1ANl^VRQ{d|6tV=iJ+7e|r_0e|xH5V<}~`SF6ZG){0zLb_1geJ|=%L?cFgLodaHgQ4=`P6?$)^{eqK zrjC^PUfGhG+GWCX(zV)X($QlC<< zm+2-@Q?C*;nN}|{shrhVylNz_3&I?v!Hjto_W1(I;{8d9`$3j?jyEdbcAGcQKpbOM zj~JX9)byfdcSIIZwQf#cm?heCHI_+8|Dy96?uokzs_i|GZS{WX`!nsD0~5GylM|a* z!8f-Vh20dT((P&Gx*ATb5!hK+6DJ#50ms2DbfIVqRzFe+11NTbjWUx9#;6=SFy4n# zOwc#T6O*j#^;c@#S0QcDQi?mm2{FniY>X3HMhw6$eFTQpNbUMHFxf|I`G^3|l))A>J2Qtoi~2JXLd8Gk$>_F?wiF?64VlnR3rSRi^?_{oLHcnCfcU*Y%*12=TliLd?R~b9h z@lb&&5tLrcmLNkggv)~nV){*`d?+9O6;41*&CZF$)!oz&$v`kbh;CeP>eM5c@^5+w zT|SK#3OmFzr?I8D4P!v6>BhC_Z(SF7S>BHGW6F%j$+uT0Fu1{Rr3uCZxQr@XR*)!3 z12)AUP}nMCWziSG$VO>Sb(~Z4@wzT?l1lBf=fL3=2i91w82scqbaHgyn0Fj_t$QQ~ zRqeWD!H+2($qBY6;8o6Jzf?gZh03|}jHQ~R(ra4ZRSn6KDUsFt%3u2aedv=zFmUU0 zY!}y%?NnV!kNRq&l1I2E@#IIj#0fj!^`%gey&1ZSMizGH{RyHHc}H!AOl_@zhT$MH zE|dE2$B(kn#d1W%CTncp83Yk%NA(I%LyIX+!=6e`stil(d$7O)h^8>57{wQ&*!c#x z%IfU-&gz@%r-w+Dc^mYnV*FZA1P(f0u{A(T>AN0KIY{%7UEDjhrwa$dEfHu%6q5@y z6ix58&N&Q3kB~5&tZa}(=-x@dp$hX&?e>rd)u>UME~&eab^ba$sct>Hq2p$jVOUdh zgA6m%VBuU1b|1t((p!c6XTkn|X`KGQ{>|A9pT!tNUllK`hZ=nLyY{QTc;*E0Z_8-Z zJ~+)}4QxcGYIM$@^A~uCwfnVIC2N0(lB7gb$^{EK1nx4{5jnS@d{M_i=kzmoHtkN6 zEWlgcEMm@IIc`JX((Vp*i=z3?fBB+O-m{j+se?0JekYEKfsoS`yEBCv@4|3ejnk2a z-p_jcU8JP*YuD#a_iT0Yb9cR{E9md1*twW^GC7ZQTzgdNce@87hGr~Qr=4uwmr^s0 z#s=U+P2mMo8ULW;Dcdav67%y@s`=Y;ox)-z4mXv2_=eRD`CX?Xlq_SzWKl*+Dcf6X zg@F!XQ_LNk*BSX~PuRaqHNDf=*4FH9CVZ=~f4A8p$;HvM>b+-+!U{h(z)v0bS<5c& z=4|2^tIWcA{e`vo&TGtE!RSe!suuzEX_;TY1O~b%csAxP2T}|GD$E%wLVN_i;|vg~ zSFNZW%nL*+c1FQba}XeG_t%gaTVWolm7+=5NQI+o8gNWU7|d>s6|f3KI!7r**sBKY zGDDxNCUTMBJ7#~al@i^M212?naCrhntj5tNcW*^>N(=i}jqeAuKC<0~EOv7_ow;B< zcr8ehz71e`e{ zUl*r-u3M&6vl1~@Ol8|S?3a&9QSx59{O|gF5bt0^{qae(m9ku<%W*a(y9C7g$)QA0 z2nkTu#_J-T&}5{3{fOB~@w`b{){d7gq7sRrYqy&T!+I{v#Ypcy-ocnhlI&>L3nTe@ zSR&y4bG)5f%vRDmIuwJ$z2lKIRI<99O~x+oXl9HREwZ3JBU?AMhVz5s5^NaN?O`nN z)xf!(C23YI0qol0q=}EEeqm>C+Z^0K6n!pVrQ$9pY{TDOx}30+D#-4x04eou<2eTY zr>C~j?9)BRn?AJEZV2xmXxB-r*~isC!HD>tQJpq|(Vq_7pu!(|y7un>Mv?tr6$#|` z7sNtDZb-_BJ=bb)3H10JUlB3qz33UHrK>cIHOhb7EaXvDm6yRiEhR%SvQs>>gujr}}a<}%9T5eqZ>s&IW1Ub&}-Ot{eg z0>iH6=XJ$QN^lgDV;rf6V%o_^p5U1hG8_CWqL;z!MUqs68(fsu7{mDn%1*Gg70x#9 zRG;_|H6@x)RtukXQ1J6 zT>=TJpC5IuvK$VMbnXA8@AIT<4g}!OR1u)1R}pL-ZItT_;lnZ^1-3?;{DVk?Vnwj! z?~v>E)GU>eV^!Ab&w?I)lP#s>2BqR{Qf7ZsN}5pG@?v5v{(e{JA4w0&X3sw;KXdMx zaQBk~1n2XgDE1}-qxZ){t1BZ+%OVNoGjHSfIMaYDnrDpXqMnAauUmh&w1Zr+6MD}H zuP|(y-0_r!;}0G@=alv-vC? zZdy&MTGg$@zK9@1+WN1z0ZMGWw_pZZJIt%kH3nSzwH&u`Il2%U2MPptDzM@4Yga>@fA?^xt01Sye4Q+-|^);X~ z@Q+(4;RrPd2eSd)h==&tIT>gYVtb>e zfG)ZDT?3(2l%b5^A*Bofk!gq^L3TV>yIV~#i~uA>*G4t{nM6;F0f{@A;$+{qh|+2M z{9xIxq5sRR?=Yz8BE?LQn>kv^!(KkD6@M{ex&DPpE;5Vy`pT}>VDd6FvcV}&L;|3y znOQ7Q9-kQ0Pqk!W9}WD{_pbx;_h0DGULhyjTx8^2^4!&w3~O#yGH-0QXTr}KRfgso z@;@0n1rO=HE0BCSOS5TwCzH|M3l@(RPu?4|q3I6DFVIqm5BnZnOo|`2`TBH;_5AG# zlat%*b(*T{at8x8F8%e|0b73|XO8vZ9=h#8Lh{SY&DvRCSf&PBAml6DEqeoXRJ~W@ zO#NJ-UalFj*{wNI;Bi*YX2~Md*3gav&Kr&*X#Ik^mS`$kgLhFb_ee z8M?hFm_KkI27~w5M?wIFc^`rlm5i67R{M+*BW_5T1S*A)m5^vKRG>Jou(Cl#WazZ- ztH=R|lV6T`Z?1&HRD?i|4L*64(@B~imLJZ+H34#8@@W%yYkSLpk?Sy**Qs%hKDtM%F<_+Yi~d5wlQeTcbGEid-ZwY+uU~5JVFL=TxagjOaE*!JNW7!^4^!X z?hLF1%pQJbaaPH#ZD2j+d0gMda+l~72V11}QLo*>bxl;ry1QHcMGh}MAL9v)J? z`k{1RO+i9yX33zJXkr~a55w7GJ3ANdddDF@3v&5{KmW^sKE|)hrzzdSD6g9ioDWK# ztV;>viz`(wX;Yy`LBr;_gzrV_o3H&x-(TlnY7tHf1rc;e?3!jwf6ht>VJ#a;m49ak zBC-820i#H6lWwu0D~h4bcB}fv91_?tu#KQ2pLp_{I7R3aNU-3BaP1(31G*G0PM-kf z5X3s7eP!QxBqTvKGnQbBJyNVaFk&M!fCTj8EE(UO8*jafl&25vB*E*jwOQ0)Do0|C z0j%^Pw=~fHfPD4`L3v48WgDmu$%K+{ikxpnVuPw8sS!v(DLLdAiC2AI{c)s>3fQx( z$22`ucJ3#TF-Z8wAj^y>D_);->yl}q$SJFm%=I775Hl&NEGKlo_SQx^BQ z=A$30XUg-7MQB%<|3S)=w9d052Tuj^{nmE5s#euprvC7ww?@Ce9>3Y|fYO&AsWn%P zzcclZ!o3c9 zINgkE%J)4q=wmt((|O=f%&RLO%g!VaIkpbOeYpMy?vIsNs~L5|z4K?gto`_ep*Q3(WUISKv(L z71Vu21G&&p&PEXem?!9yj5!>63nsY(W@c>xg%B@FuLlO&e7Zzob&Q>x-%P+D56v`h zDqgY8L7E_?Z~w^lF_rEuWW!Ggbgr`V%h_A_VyfXlu|&$r4JPDr7E<_B{Zj%)v6Y7U zk%p8KB+mSAB8pAx++^lyJ&aRLTEal^+SasTqBdHCk?SkE1X+T(3?aPN{nGbiiaZ|* z{h5Y>VH_XldhG|$16}1|*P8x5qEcjm?@oPT2GPJyi~_T$nR!@Ux(3v-8iw- zEIQ-mT;A}Thu_~kd-}(L_9JOAFW!9Fb;vY4g0=ko$xTeY*Tl5h<-r3qQg9^Xrgpu$4|HY5}UyarO{FH+DF(MKu#2Bs9;H2u$MqKz|cSgrobwhBjH$Iq@(#xfxVrZBJ2n(lg7CF ztRkil`DWIqS!R)48A!IF6rHnS4^YZLN?DL))roB%{D3U>8Wek-n4WxR#kxScH5Z9d zJA=m~b9iFrG8rrS5--wH*z^qW&0Nko*eIb0mDXqS?Thk=juF5J`R=zB_xJU^q~c4W zh8LK;flX0vr<-)(z4`%PFv@mhARZg%VxPAigpVkeDue&>MV}`PIha9zrXDX$X1x)0 zwmgV(%SRg_&%sH4TY?IU%|5(D0N~PKK^C_Feq1rV3Nh*NOf{-qhgRJGGbT}~RQl$| z+uv6=dfI!lp1p8MGI7&MF?EenuKC>O^%>?F`}phdmY1knQAOZ^+UGN2&#L2l()M58 z5%WiAQ^okCy(7bYxT9s=S{P} zVv%joUF)TeSPlHV^L})T(#zwotpD`LvrPZ4$9#-@;IMkLeg=2s;Xwm@I(a@+6WMdg z-ogppPt#`>Dz0D|riVibQbiInf^Xa$#+pwf8#b#fd}USR=-In5N2i?PNF9;sEIq9E zh^kj|KSORvW@z3+&C838aYIRngSk;ZBA_rQsUQylldaR4P+m*tsVO3m?Zh*+*f|0WD(`Uryo4-^fN2ByUDZxkOs1qTQe3Q+57tkH-NpBb+tB`EHZ(L`gl z``Mz8!`6LsjiK_sUKxJ8!a%c5d^Kt94KEw=!@sp|1{~ZwePHeN@iZgbm1nru-jfw0 z4aLnSss*NvYm~?Rl`b%D)?D(2ojLO1a(LNAr%yljJx-ksntK+Lso5Tyz;F$Jlh!r7 zF;ez9yd#UBIy)8asW}!0j_lgRYB%SPl^5R$GFp^9`SSS@E7gp3PF*PMkJS5j_aw>VbzXGEeP=J8p5yM5XY+X3B--vFo--TPw`Fddqh8hK*_&psh(M ziMo@rL(PiR-vs_pCoT2J ztW|GF6);d5TT4L{9LioM*23Ag{=_$g7`#edxiL?r#Xc9whQqaA6BdbVw3*ne#S}N` z-u750oq5r-e680Kp&ldLZDn`yQo?_~=Bp&f_jV;Z9y^Hw0Fx`6!fND{EKJ%V-a z&SiSE=}t4;E<QdUwS#=Xn*U;~rP9#ua)QlY1j5lHzgIQj~e|0C^()(+~XN z<7tWh-otw^JL@X_r+X^DY$G5!d0tB1gcvjRVvSL4(P$KPs5LX3K{mRd!65m$(rX)^ z?I@dec{cm3VGOd%E$Cq~)#?@&4xq>yv0-@i{o*edHCoz6KcD=5cKoWnGnBO>HG^}TUoJsH)9QT*)QEz){%NyT5z^^^IK-B zEz-kKH$oOC5V~|mN|TJe#g;4=U1{uCqSzQ)y`L^P_gAdg*mNs7Ii4=1THEFAeZ@|+ z({_((U+H$R#-0{1Q<1KgHYu-4Sp!Bq0=UwZqmDw~etW7>$*pH6Zoe z(&N)QP3CSxH}WKs$DeM*?yEbZSiRTUjKn|S((}Vb4L@@b7Z}~XGg)=OuJq!wv{V1~ z&xd3V1nid&H9hB#v?}&?AffOvh25@{3AkM(p5yEZHDjc?p0E@fOH6QX&2bPB!MKew zHK1a#+1jal#jthnJ(KB$H^s0(7?)^+Jv)$+z&uAMNunBBUZtq4B8xn zMVlkf4M6O3v!!rnt}ES6u>e+pb)+2b9pEkL>R}CO*7I;FY%nN)V*WfNdgA!c&0n=& zxvFhUQ4ZU(2@O7o^WS?~hGTs|C_AKg@ikhWKdusDF+3>D{(u-rMG{PjUr%G!hZLG^dIxn~AyNyRU- zb%tBo#w2|j#c4D4=k((vdkgyUT0L>5MN?myt?8qxcl|2g+ioSsCZ5~gaBD;7OY>}6 z_m=Z!=4Y>@IJEp2e|V67g&2hwD?8`hQ#YWxUD`c(KjR)JEIRXLp?hg2TI;Vp1x6oL za)TU%j|RDAlKAFY@5NO&>e=f+`u0Zk9{+en7^OlYGdz){vSjT>@-Ae<71YO#!3cnwL30j1_lF>lPnLA-B#|~I;&KYlrMBxg|LapQMz%ML3x`uwcUWrnIZ!FN>Oxb`M%3U&e=xw`b*Zy@pu2gYIIO%RFc|B*SW@*UK z*gz@44fB1L&{e!<4p0p*Vg*j+LfP&vKt+rRNyI@ONIqO&!uDOeHg=lTNNkqS?SpxM zvE62Zp?>7A`jw>%9USHU=W9MWR1wYuM3E$PP1J^x2*$k}C_%Uy{COAXY^BJo1*v#|@BS0uAd8aWlfDWbs z{&0fb`~6N>(fiRcKsQiBz$wnWDH-=8gWYA<<+F^xmfy-f9;`O@c6^x=XtEOdhZAy1RGRwWY4DA6@oc4V(`)bvCU!6w$hBOh~KWF?*{% z;Dg7}&!h6e+b6qkB|3Mz=^XX@{r2LOg1%c5YF1pMlxESZi#H?udd?g^eF3>Qyw5x& z@K96rkin~pM&B<-+TzBF{k^w!pS=C*?+hiC@ee&=~!6V zc!V54p&mw9JhKp$TGw zz%VRLg{8|%m-NUoW112Gu;M5RG7Kb@7+!k7?XZ1o5`5!p(@cQj?%~KANingajap&y zB@Yi9T-Q=SgY@gQ$%qN%hVIRn#M;rCb0S!H*znW-uRHb~ z^$R!nnk2Q`_Xr(P@hcktHiinS%BtIH%gHmeSHT`_4ljrywnl*Jp+0(YLd3Oj09`Nc z*Xw3~xQJ~I2>>aA8DuX#2bd>(zoAyi0^4aws<(6@NmG7zT&{jW zJl7_xA}YcjhZaRP7Zwc~CK_uC`}ZaP&GU5;p-mqR{vONxj zobBWJObpe)+p!6gn$8X{(t-No6z95-u7|_5UYlY~@c{#e9(AieibSOvU~^0@OP3Gz z0j?!39)to6{MH1W2%;8){z1v%!qydgbIvI($lLW`^+`qBRQ`5m+|jz#@}=#HO^NrD zR*P+J)APzt&Mim$VDCJBa$v9b9Y3w${ZNmt%aqg0&IU){_PyFS{AOhJUb^0nO`oPp zqs?5aY10#xyOdw99DaYeI^UDO=omPA;}6y2xj)^t@`sn_1Fo!UY;iB6rM!PciriKA z=s)%SfA=>~5?wyaCo+obsue*-MVUt+*ptfr>%_L~co&`u0URDhbg?&dib8Is564cG zFX=P1Xzg%qA>SK;5z-0a6bjw0i-bXIkk>FSfGz@?Nu;hLuLY`s#B2aD4i%q+GD$_r zJO~46NU$ta)QfrBxaP@XGQ zCW?IAfCQ>>L9XV-#L9d;#w9&&G>VVfOXMYiBY*4rE}_a63;kks)FbMsUphcOcPNv- zgj1<#tdMudgc?jP^l4B{HcjVte)n8_qwISg0_>RxP{tlgx5EZe`4@LEPY$kJMPcX| zEm^=iJnmxm#UYGPwyZVWh=Re|XBI;A2SPWmxIC=HjUCOgx{+fcx z`KpWHET(bX_0S5MhvmS%%L8X$>4ibu+3}vHC7UOA&LwXPY*^k9Q+nb1W;I>DjfrMc zd17N>nAZOGzw^cX>yVYG4}>cq z^#{}qCc;xz9xkmPvmxl8_V>97n1`%~KX?8~==#gVrNWNiT&&d`%X|du?rY zAU#>_j2ADITu2&AX*=DYw??1@)%QB~ZY94O>;}>^gh8k*r&KcHX!p4UqFuK*5uGW? z3oq4yZe3u<&Im6%Zjf7?tiOPx(z=G02j-ifMRb<}mjh0p_T zk}J7z1XTNzANxa#E@P1B(=7Huuc@5gbTtgTBi_b6PGuW)*zZ{~c(+z-m zC{#d1`h0j_k30P!->RAFd9|*l7A!K%VFJ{RWeG%xF`yEdYF7sX>SNYWF~Hd-UC(>- zJYA6aC#anad}r)j;Esj1h#Ef$y_fR;UU*?k?K6pDwD6jH`37K-ri{Vc(jFY!N%E$? zuwA9x9MH0Zo@IRAqCM04a;H>n3syCRFdm;DdMjP!+DmctFq59pRj zv@c{DGZHyIf(os^hEJEiRj%g54!^xzb-WgILODrzD%ZZi=bGm2VtLL?b%j<=Y`Q2G ztH$d*(UB?iMJRKvHHEHR5=ra>s#2@_2Y-=uhe07!)p8;PZ>G#1j}LpME#ejHL}#Xw zW&M2K#L4PiFCHkYF%uBtt^sbiP7$MEk$M9+D_0B=KuWWbB)iZ#pIG#nLjY!1H=ez% z#?jpbeiFh6QNqF+9v-GwgRoz_Gm9YwsE#!9_@VpTo4LzXp-b-GxVKwl2(kA_{b6<$ zGhd_I6~N++9=VsscYLE7erDjimLY}92wBrHb$*>m;;q1N`Km&DKda=;~H!(YMK z+s3cE{OG)KTjhdEX|wl;cB=RN^|2Qs$Mz~J<~RN2@MTK^187{&Pl|oX7yFaOboCce zJfHW&6${RHSZ~Ar4&bqo9w(S7{-;e|jAML%>{n~?368J5E4Ti!mrH-xr{aSId7Z-j zrg6gEN;k)DE5zJl=#x$m*tIn)6wc3d{~o$;88%b zG6I#ggS?J&gJJ~QL)mYiV5KnJM}7;-CEtgVELWr;a&3<}xfJB8qmLD%p}k^N*b_+_ zoGFd~b%-Tk`tN5k7vPI=08|B3K?mocZ@-W_{|KFafB&H7;n3^*e@0B~2m`Lxe_Kc< zG#!YwGOj?UVYAV2QAVo5sTyE3^DAJb`QM2{Y|FR{h|h*aafO>@8X{U;42%eVUV z;fb-6Ze6i%l74c2V{;AF$K}ws=Cqrr5p()$kcE=3?RM?sN_*1Jbr?$z`oMj{xj-j1 zDAzCBTCsHQ_?ehYmCHJEtXqGo=*m_*|A=(Eey^Qd^&q?2_^{r~LvxDp)W>&7N}*pz z$`oJvT0W^LC||tNHMA1k`tJHcmXjWw!o($;ZDLYfUgWH;yn- zw&+JxUp!r1J5Fx)V1ox(TkNU)^+Y%5DO3SyhC4B-XJ(V6!tDDBJ_92rl z$LGX*pn9J`&6LZ~ni1!tYM&_?>zW0sytGm~RQ2|Id)0`hNBX%(S!MEd6a&$}>$k=h z0sKR)s+b%+?AN*j1l)`CZV&#M7)!WR@&59wJ6CTn9%+_J<;`kKw>8ffY72|63M!?g zU-_f$GsU~l$19iLyJAtnYwtQ6t(?|WIy*KakV4;WHn;PQ6~Ep5<4NfY;zs1^vC79Q z0SG8K#qe9HsS3V_kFj)oG-1@&9X@{{y%?OCzR0vpd4SF=ubn_v;SyZ&-94H}1c~}b zIYQ66z8eah@J59?kp%#<7ChE zo3cmA=?ZOh)mYprp1+n}0;0D&Y)rAkmM;MmbvaJYqIYkoyu{|H276-F^|()e%Zg zluQU(8?6Ksg3_Z0lG&EPvWEgZ%BLf}srLkXExc(w-K;?{5-ge1M|3=vo>Luy!`$zJN`pLXqg2y}l#u=w8Ov*=5S(nn7)pMSb-k#B$jbldHDu|fF4(J6-V zjx~qnC%exB3HF>=vgS`1hy#nIGMtnQZdx(5%f^0IUMLqPJdn2%$%);99W~UI&n4n)~%KAY6}gJ;p^K zQTj@rmY@WH=MBAAGoAOUwFSeAy<%f(ZV^z+R%@UB%y(7gJpF6yNHyL*SFj8q&9wlO z$i7bw^QIv4oqwwW$s2o|Y3<;B=*j_)ca6qxs>^Ma-OKaS6^@6!{MY^Y zOEUC#J}gyum!q@P_1v)#j(dJ(Fmq~8x;9kldr!$-+Kz3T)ML>p$1kbC&t|)9crY=^ ztBxNza+94~QQ4&Lk!Q7bJ;&*JL&@|9y(=}Z=|$l^^$s_Mj}iVgI)^JhY$oV$VtZbe z^K~jv$iI!&%WlhrLY34}*MJKSfU_!AV+MS#+b>2%q=-n+4~zi8@Yd^SnMkTF6MN5; zbnap&ac)?T^V-weVKSyF^wNpj#{3{jZ}Fj#WAZ(9kV5K=4yS8TVt$y)v3ID}A7-|R z?1vthM9h0`^eCpK|DO#K$4iVw(Jiqk(Y$b{=Pj&1G)`#5T*mHnK%KhYJ1R^Q7x2Y* zEsi?pkpGkzlTGMoo(I5suLIJQ-Lq>`;PZI&1ET{z=Z)QJ+MIoD zpcVIy=eAi!Ugb4)G{g*x?M+lv#+NYbPouyDyw8q@`hhDS7=|~M&;737w+TmWe#rO? z1p%XR6<3^}F7107dg1EM)`RpLm%>^|DsAKk6MAeD`#qhFlHt&n`jM3t^Uo`{Lq4>e zFR{u!a6UiJ&70lS;x$rh&M^{d-)<@C)+xB27UuMMjNwrgtG_;aC$s)=C*7x<9s214 z27p277$Y5qNGkE{ z4l5>qSVYKWD#7arz&VDM9>#j{$ongV?z5&z&&`UbXVsgH^@dP14DwYF)K2LLY)`;` z`|I9;$^R+ue}BL6U!Ks$?j_=2aHymjz>AA_2MrjZ+{B%*lAgopj?o2}lf)Aum6*T} z^}d0YbVEUQ;&v#yTN{vyNiw^zA++Xco|jMkUDjyxj63E?({lyE)3wJJywX$pbQp!7 zriaG)gD}BD$#_^E*?L$F>O2R+k|+?DwWt`w`sK`xMEdME@TXIQ!YQp{Z1*W6$&w0S z)aylzZPd)r9ZE<+rCxWZ-PoSSoNZm;{28Jk7~j#oa(1^#$L+$y1;}i0_UqJkw;8+- zH)32TBE5W!YU$xB7qj4KbYvZm3j8bI`RP7_EnxTSgFwO>5u)^cnGGAPBo(bc<5Nh> z{RI;8>-wkclaIMtE?*5w-0-DSa-(KfS912Nqr!Zz-d}CmIodg7AiXz#l&$pb8d1;n zl4VhSdG#*yzUbVV%8j%X2e((BO>DN8Dpfg`-}0}A)b*B)Oks~!v~S0%Yo`Qa7aP>88}vwOivOjLSB%ljIZY%`NWnd!HJnd^5Y>@mTbF*_F7H(eUsOtx%9w zUZ?5LkyXuU)~GwP;>lt9slmp$`%#7)4%#=|9A=9*Y>Iq(D(m?@GLC+fya#-T;`ca) zrak-_ge0-m6s)4Eja#Gt%u8bxX0Ri$G~#|S0Uv${j04o8+p6#X@1cgG;n=+xLrcB1^( zC);3cn~IDd%;=rE_Wp!R#&~y^-+I{{ydCGvuQ+L{^)1S5BseSNwO>&5!=-rAv+n7X z-J8@^6|ZI;o~oDVrM+n7j|Sa5XPSFE-%!ah(eKM68&FT&Lok(BDNI(X*=F^~c~5z~ zrP9{Fo+@bUblS2Zo^dYg>QbSSzti)M#_McQ_W130kC#pNCQrC7j%3{191@{0`bSIF zr0f-Cpj7r3i`Qp_J7WIEAW_NUqmo%1DtXzhw~L43i$C?m=_{$Iu8wn#GYI!NZ|07m zzURzJ#&=3DI`AbmMpC4h(OVP8&;UclPAHW6iTXae916q1Imy*AM88-O3Uwga;+@lx zB|w5@#~aJiHhSX*v*DO|Gp2BJe`-Wpgc;Rv-CRk;j}Z6;INUOCDfo5t$JQm78ZXev zHDGH_~hcZuMXAMh;){+xS z7!rwsR5%lnsj-&X+2BFg?;v1j#3TZ6-NMWK{m>J0+C3xaK7_?@eZM6~*y532QVH>1 z#P;{ltnF7VxToC1>Xv?t_;|DJn^f+(iV~dN*pl0mgPOZ{PJ2K7+JDGx=~vjFi+j}< z{SbXQ+EXRh=dFWt$7YHi=1h!kz1;T@c5^DR{*5Kc@3v;Q&gSi&KgJAvA4uvt_p?SK z3p}14cnaIe!@IiQOZaPLbNtkK-_`wd%5|?5UGxt`+&H6ofg5}7<^3)Xxr4e({xHXa z$BeY+OZWah_*Bk&;p)=SI#&5dM5x6!%doH6j5~J;R=>y{anzw*U+1-ld%DK;ipfw9 zf6Y9*50(GLKlmR8Gcpx~Mv$-!OlNbk1p5+-AOnJ^`|VP`t{_GX^uIAjHD^KTO1yQ8 zhy$)qvfLzHtQmNnjvF#UPqB^+j$sommt35i!ke^t0CSqH0~p$Nk2CplOK@>o__%Ce z5_sN?4-hUUpeHD(mX`W|u(#G))l-vRuLVymnVR(?(PSf7FB8dL5O z=SixjRHkOQ9tKBI*yykH;t1tFNpO>z{22XokR7UT6ykp;#^X?f}D zhH}=VyZozOon3Yqd06_K{$hK+mQGFU{i*t(BZ;OKNg;X*4)%Y(*n%3)fWABsnk;{} zxShENzIZJsyu#Ka5lS_64wYO^imKjf5UBe;c6%g@bmq;1flHxtGd-S%y(7pA+DRAJ|Tq-kwjt#KQ5Ub;rGOR4dC>%L`(Cl;a8K3in`P1YZ>oV5i zUt0KhC%@sH69-A|S&#HX2hpqDbhmC-=?IwEgZ?y-JUdIHiJ63+7SV7(&@;AJLTwtG zvi|X+Yg9rQ48XoZH-D-L>H&A%4exyoXIN;FIa5~mx7sEIlY1Xqh(B&oeq+7*oC;Wx z2V+sEq*$0VMuCxLIxwImXILED(M3d!>TZe}U9$(YRFZiFBav;Ku-KIxD`@P#xE524 zAQ+)Wh-61bi@#ql291$EIZ5jljH~`zUpreG^h-*+b=6&jlNva2;{AstbYOC)i9yD- zF&`%N86-1L#_w{cE;njsqBBmktDwbC)#ym{-BYJh&9x(s$BSEu2G_IjTF$RtO>XuA zug`I`{9AME4(p*8DJrUVP+C`}ng8~uJ3sPs&e*d8$AXBsBBRYV?zl?cM`4-si^=7b z>YoEQjjfH@TEc}!zg(5vzZR!{zBGC_QvJZ_>Yl}b2L}F=4QZMz<6O_$yR= z+vogUn>$^Ww~l{IDeSGeyP)&k1y|pb<+9d;{+^UOF}ZCmx$QshS0I3h(2=4z!)%&Hlot#g z6PNAc3DRPwIl5TZzKCA)jzTa)*iM9gMuboJUq=15dPkW`ws0Jq%xa~%*vslJX*bVS zx0#);)=fT7o>sc*%?yxRg3Weer9C+61$W zRjghV&0fA3gAp5ThWida3ft`PTi-89RknCp{U&q|&r}qc#lX*tptIN&Td{b~uUBK& z3ZicdZkND49}B9(#}To`9MBSC?+-GnSI$t2?F7|HvKOf~^v0V97+tm$UKv>4Q~9Zg zuN7$2-!6LNCmmSXbwlsSqQYte)sWG=aHAp?TB)~=Q&_OJOUc!_r|^9bziP4GWjnXf zAZT}hHDMVOXO3_?DUf?VuBoQPRqY033w1h*B&T>es0A3A_(-`TMmQbuYN$qSqt&s5 z5KoGuX*FpMq<8_H+1-E@SIJ*?2Yzw3<@?H~F1f9c(^1M0bkrY(0CGvg3Y)nU^#Tz@ zk9hB!+pay_lAl+BZ^$je8rhuE%X1J`w4BwepwHDbY6s79pd~V`M!`dJTxfq9wknD` zj+>5*>QDG9DRc3*1$sVspJn32#i>Y~h5kqKF0w^&CZJj3CK;>LX{y#5>Xyp9b^UQ zwxl*kVBl3<^Y(3Ph(L(M&T*;^I@SW!YRn zWLD1}GTPoBH0)&rb8Ay>jS<660k3+zj*5-d`^-3(Oa zBM+O5y%C)sI)D1ZXG0)ht#8Vn;rkO{V@CgS09!y=jmLm&^i&)L(W5eCJ3ldBR&}wl zvr-p~jBm}mp)Ak&x;L=|;?GJd+r zv!L1bgPY3xPWjtR`n!5GYS11%*biqA$UOs60D*P-1#v?m2>qeGWK;!^!KgT=kx(+Z zqBUFgRp#dfuLs66B#Cq7pmhP50UJl;q9+XE>x(ZaN|>RaTarwv=nAO$vn+us=x(W} z13Ag-={-jkOiy~SV~+^n7h79dxfqqaQ1LX>!yE~Ztc>ju84|9& zV}Ah)p0fnVqbtBX&Be<#`hIJyz8~(hFN>uS;JZRdV+MjHmL}4jH1Wdf9O3R}6{Z+e zV-Rzm749kc=x_o=uCsWkpHd4U(i;q5nJUp`EKGz7fJn!zhI+BAN7%{^*C~!92f1_% z*mixekislT1TMI2+?|efcB8211!;r2mRFXG5Bcb3qJt9v{k?Y2tb&pa4|%-Gw<$C0 ztElWKt~FX82%hWPdEuo# zn`2)3=OPTG?PO>?vjbKL$uC+R+N`R+8?8!l=Z9DxQOZ6dxks<6j4@OD>u*wR!bf~& z#|!a3gfKu?cfwh(=orf<2nLJXQKI3@ozUE|W+p!2Hk}VXU`WGwb)Ah^Cu@7_fU6$`t%Wua~3mVd2IjG_y)bsP) z?OLX9nP5Hq_<~dn2B+nsOT5l@Xf`+yfqtQ^j2YGN{Zrh_*ISPb`P5`Oycdr^ASS}k zQ%VBNrC!trJsm6Qju0J2CC+E*H0-J=0tmDsaoX7S;0i5tHr$SPSxe=f3_Pz1EdDRc zHUC|>|9?+vdQ2ED5D+80f60i7_c(`_EVSyhYY3Oq-)=@_C*5pBKG^UFB~^ura8N}T zeR`&%E3!FMN0s-ZBJA~z&03cY$#^0;#H#C;4eIH3Jv0(uWSSh6~-6s zO{b%fPxm(Lo2Y5J{9E61VFX)0-5@a#baJKX*Y$V)`g@a`rkM>9PN{`h^OYkt%EmLc z`Iat5Ia>`rT)jT{P?5akCOLZ{u$&rV(=jzBB2});MWQblSnpKnYnpB4H9vNAFL>T$ zBFRi`Zr!S`cq+rp!*(+iFL6@$Nr4U;SZ-v9#wcMiiec!q+ zd9BWiJH@M*x_@cpQoh}os++4-z)N~#gQ%e>W9v}e)zeowJ80`OPN&hE+%D};Hn#Lw zxV!_EQ`;Ss`mNW$;_>#(9UhC9z@{4y?|SO28d<2e9zG8iQ^}+H;ch1ouSGM#v$=KX?gr;6H<(`#9HiJ~-|D^RB=&wV+vrW?Yxb+28T@G-Q&xZQu&)&kG z04H+E_Sj!V!8w4x@E`f*j8`_oZJhU9x_Y|ogcjxrIO(LGCY02gD;#E+Gw3Rz15eaZ z&p|UWn^80lN!*1NAjCmh3U$iN+hF*4xitdW0(w;#!G!eV^sHIWWNUA`!JNqRP%;4m z#6>D`jW}ZE@61E#x)tpSk8&jI8BAPgbZoJ|OTiw0kq z->{dJ05!c)N0tMMn6lz?{@3|?bitMYIU|LNf6fV>n2B z4GdQE-(C7Z5S(fp)VL#ivqHlFPqg!(yf3F&PPhRW;sD4jFqbm}A+~T1$rB2RAP~p> z{w|};$>;UGa^4U21l@z)&?%M<$1axrx_YYPMWw(i1`Fb-$UmSRE4|0cd3C!{ZBy=z zcb?TLALQhp=50=FIC|`~`HY{2bmFKrynY5t(rt zKz=m!kUHiT<<~35@MkRL-if7Ghi|F~e2|F4xSgWOpt(kYaE_+rp8S4&NcjP+}iWaD+k2*+Z}O&h|| zbLQkb8W12TggRqWY!2!p*U3R3`tdUUdmCDO7RhbM{CY?D7O+7ZVC4V_A^>|3nw{aJ zkp*$*uPj#qqJk0@vo4%_KkfWjRDvw^io<3m9Lwe;o&$#yzeU={r9C1=U|)q>TSeU1 zy*IRjwR|X?KO3EaiW}Eq$NWiD#PSWWX7YTAzdUH+C{fdu-U9>mpfX-ai-F(zc7;oA ziJ)h%0J@0Toj}5)rg9TVjVMa>m4~@5x zqfJ$3!1(S@O>xvj~4fE z!MmQ5mr$dXWs!&7%%kIp{|wjqQ*A7kURj;I+0^XEZ!hh;h0Vev)NyBz*PV@N{EnK- zZ+eo)(ppLt#b{mKKrpp=#)+`-QCwZ#-!my6ZJ@GpFv`L>|4!SLRm*iQ25mmmm*Xq{ zJYu4IO5nn7U0z;&y=@})>uPX$oFzJ|&R{y(GGdbd&*Ng3cf&gM$S{-gE$col&Wsvl z2e>4Gf0rkjCT=E|fnHL!_UyI_R<^LQcB~Z)u;7< zhsYN|XUV3LOtN(bjq;KHgDgkiCvxxV)j&9XdnevNQ*d5fBHwyR>21X^_;XHL@DuYxl1>oWP@wqWS?m#6`!^( zdeVA#K%P;gY&|cXm_M(O*~@@<6{EI7$%O$(4%JB9Ckq45@>#64g^zoVIRT~Qpp9yzB7&G6*l}s_MhHZXue{JV>xfff$W)c-`#o876_bQfmA+TyG$s0 zO*20_6pc`D ziuNu8-(iy@#hzq8M^Ew>_sC76=pf6@E|19Na_Q8((sGM3IYo+jx;}Xe-Jh~SZUZGE zLst)q7DprKJvNHW?mduKVlOa4d>)Dyi$PDw@X3cllsH0&6Q^;wfEK7h-Vk^N$sT8y z6kYcGwpdgB95B{EEk(fGYzv6PN?^jUn*7y}o^HIFTCmStU7Mk~3&nsgm7x59ArlKz z#`!J!hkee&vw7CJ6%Nr0YrWPB+mx+fmYT=s6%|hn$B)iM9&Ek(EtAlF9y}f-9gQw0 zUCZV?akeK_Buw9G(!k#(Tzh+?9t5T$ETB|b7rE>E>()ReTOyBjG45g_Z9ggMU*~UH zsLc=1o-c862z&nW zck%WYPZb|uS=Xn%VKh~>#LURfe5v_(>fz#Iq@MCT)<49ar#t|S%0vS zW&3uwt94ax+#^f|E(K|wSb`UO%(yYf+(Bq@WtDNxIxH5`|Q}pnh!Y6uleWj$ZlblL8V-)LSONIqaMe%d~G4 zxi?&{BV~vpF?+nZaBC^Rw1P(r7DVd-no9ZurA9Pn8$B^RNf}redV~lXgr@5bE1pUo zTkYf1Ro`z(8G@hy0?H*@`cN}uVgI9(1w7%ay)`V|2GVjmC}^;G@?6lLtu!lHa;!#| zVgjI3&?qz1mKqY);mrOz0Qp;ojb6Pply&aQ--kT(RfhKL+g4H%`X~BKA#>itrDRkh zo&(YGa!1Z=U@J^~p*t9Bh_1aJw+5Y6g7dov3v#%kxnyPgkXbwk;D{3@^_x=Jb<-)a zZk%y6r@ajZY;>$Tdol0%_5@BF0Jm&y1KUz2KJ0Dt*7L-?#$qif1t#wKoWea?p6(^T z_5FIR#5N?cat62o5@SqO^DLkA4-#=a8X zXbZ4D(tO3hf>Ak`knyN$O>wl7meTu9Rm|w83l?w0hu)@lz7$|!TW7DSWUr9{uO&AKrCbs4Mo%X**Kl>bdxFH{taT~==w@bJ3XN?CLf!N)iw zul9Rd)DkTi!4yIFLo?L3URuJU2kCD9eu9*sf|4)5Mnu=X$&BK4Fq=k5jdqG7)BBml zwI;qzEjUV0scP@5_e6@Gl8vX;71GJM+%acWh|0!g+J$Lc0?Bsyx4ylRKWyW4?~Vh^ z74tglgn10z1=m}G=Hms>NoIwR2XUI({`h(*d7e_q-%(Jdcur|8j3FU1bU>(Ujk+b~ zm;*3{y$xl}5t8Y9>y$CqPtG)By0SM;KIQmdL?%6~-0P3diyAbHh<(M0>b+84qw}BF zLq_ul~XA3LZ_yMl*EbG}jj~A#Q&)N$yd-GIV z(rR7A!)3N3oex=!FDeZ(C8imZVzZ`R=prP??$yTmls_~*UI2!4j+2E88z_xkk3gPi zROX~(iOoY4^g|~!Il&2F&f+6fVcHJG5Dj{8xq^^yQ>ejLL6Jhc5nj&d{vH^76b*g) zS@B0icaA)xyPtB3hvkT9Gs)BIOzh zIm#6rO}cKQ5bHrd(Iw_)<+v&edRJ#Poa}uvc#eTRrG(SS>O*>p)3+z;^ob z4N%G9ObFIYMeYg_fRAq>Fj2G_q1a0 zsica1>_E@*NxylEq{@3kO)JvPK9&dJ>)(AzW&6fRS4UT-uO`ZZsfP<&FNA1$M|AIN zQfI$d+zm&fz{u@&E3({VV0t#}Vks{J5KFG~>{j4uBE+u>5JQ|h4M<}&gTU&I@-fSt zTIXYx+@rpKlirl39kmdmL8KH;ZQn;5r=y4XCD@pu^9H45vS0cTdR4uwPc#Wzuz_cjU@1> z*uMMj+3FQcH;hl87=@`HbBDUti9)gf{NL&SI)789Z3&WHGXPra@Y-Au6o-?ML)Zka zukSs_{ZOkxRW0IrJ8FTCvUID&LCh96U+}>q%aQ7AD3dJ@X6xxAVL=9J;rq|?Mguz; zrJCs=z65TciGR^!sDx)=5D=Hjw2-`uF(JgKw!7Q=s|GJp^_x2FCB^76xHr#24+@Ml zfp=??F78jZ;Wsti$5QwViM?Z0A&PXzy=%|BCd3f{^yN6`9rD{8M*O!(zZW78-Ec7k ze?|afhJh%Nx!{$yVs7;6wPqNJNQ8sadBWYay_@#u(xd~n`FXZFcWk#f{~zQ0nWwg^zwD`4=BzH*HHUVZXoDF4oZ z&MZe6^vj4SLrdr}`L;-Tlpzd-0dcs*W;2!#neBGPxHK|u*Jg^lepb_fMakpq@b{{Z zKE!Qw%-Ub+h$(XQhG)GyF_K}=@7co3kdt>La5;!G?4Wq&SELf;1a}H)Z(+&Thj0tg zST^9q>0C`b+Zc_E{Tp+`z{_U)rcy!lKS7RfGiV2lUGSdwF2pn}?SFXwYU7SY$?w2> zB0_^~r=bF6fMN0+37&xhY?;hA6DO5{zH!qV?{`lW;RRx`?vcPscU#t^4B{L(l<6#X3Nc+9rG={Q)N<3tDdJ?V}}T`;Siv7O%`?ytL{Kt57@=;#Tt4 zj`K0~I8(BUQIJuw@tG$UAzkjH^*0q>$UMw#4}=M+pAU0nEEFED=)Fl_=58-S0)9N; zbtD{R6oGOKmn(S^18xK9%H}DcQ$p{T1y20owv^`IIl$_x}lxW`y#5<`B@4i z3mN@P$|t+~%toD4F7zv(^-T}(W8my2h!#$Hackis`wPs+dSvndU+cZ={$+j)gJukf zH&QR;ZIv;(hOUrNsHQ0lYrU7}l&#N4!lv{8;$QtdK5bjJ>Creik1=6^6Flm*)R1Ds zU1qg^Jjg_%pvJBrT&pwlOs3L>PvxzdjHM~BA7TORZXT)`!imiQ76Pz+`ccGw1XLel z4)M0kX5d(m3{gar>ba%+= z7q#TUBc?0RQ4xdo`Z^1Zm~%eZlnyM>*egzV1^PekSpR;h<-4?dxBWTk`jh=nc&pXs9K-2df$25M%p9VAo=U21=HXilBF?_z+{Zh9fD$_we&GYSgt)u8rgl> zLRY?qo1VW8ZO7udM&O~t(9vMa3gvAy8g`O!_gW|+`~Rr?_TfOuglnh zmXsB>c9@4O@=8xXN#EDI;&fWW(C(dC%+33co>Uy$Q{kVt+bhIpyndJ31>I{`_Fv2X zc(U!o;^wk>&3=&-LGbWWF+cE6=|FZB;b({L@0@fYv*X@ zGVqKX(b7^vMHL(ccEXL*Ks(5@@^x^y5_#7`1KB?7q#-#W! z(&0}Qow!VXVdFr0SRxOKLcewnIGcd46V(Cm!~G#yKQcNt+)FuPg@9cVJF>BF zL8tvLrat<-i53cjW~r?s4IST=k?g9rW9Lv#hVfkRPTh1!{H(*hK)_vkr2?sSwXW-H zTlwLM60y0-O_g)U!#2ui8&a1-eO|*@dmqXSF>B?Ky)pY1(3{m00^9Fg^tn>IVx7Yf zTN5T3GK*C1#dQgx4Jj^_s};3odJD3GB!iXwH6;pE%}o|2iH~RuZ^&j{8hIF}PiA|Q z<5ZG2cB844`i@vGlzNlqZ#i+6oFzY1Fg$kV-6rFs4_y6W&3Qf#s6@;tZyxCLy5ee+ z10AoQ`f~gvEt4iXI$xstm$%YkR}1@qX_ptu4@-*R0oW6j>EMng;>>GERor%ZqU{F! zV|Q{((8ye|C*FCT%M?wM85ff(P7dv>&9FNyaIv9sp7eFMH&LtyC9{!mazRrMw;h4t ziVA@hW)z)YRe6$h8YOVS2k4*ZS?~DH0U`BO3eLS>$-^or)iur?0Qu;+m4t`(nK-x$ z23fpZ9(}*%dV#Xszvc@+Q=DY^gR=Z1%W|6Bt{QHou{`dp2yXm@&JofpAZ@L0J7K@f zO4FF(!X_4LfbX;rxmU1kD)^)t2KP+_O=vtUr7pdg3JkP741>^v7H=`C=QUE=_+Ga$b>;VJM*6CFYwrIZ0Zf$?bA^Xt%dI8RGpQH;LWEXKUI%B zYzyH9hB0zfSH$e)fM(Tuo=p1XO#f!hq%#qGUvDi4RALClL>9EF3XXcqT zc|A%C$OmVw4IZb7`tQd>lFnRT@i#f2z>ME1Y$O#v6bjt+{k}f&2%{*P#w7lXnAFTQ zuenw@H1$TQzu{%z|IimMfXZ@&l{vvub^0+u)y7W@8XYSIHD^nS;X!#CKKoHRvnEoO zCShv#6yrVrM^F7uDSFg;=2I>MWRLDfKu61pvAthy1u{D1koD(LOm~6g3BWjsV!oO6 zlj=C&-57#o6S zL%i~yJqbIgmr54KtC6%;k}jx-e%l_r7}1$)`Q_&qaw z?!CWr&di<3OxCRR=QE$R-uHc4p{?v<{jJ2-&&ObkoD0S4Z(U4uLs&b8Nt`<|-ft8d z(+aMr#o(}|dLP|s=7xG)?v5d}lB&9OZ@ z04hB?Hv?y_H7#|^vIA?iq zkL9GAx*m9>A?Q?L*i;yU(d<9d9fIp*Itnr79sMGtnOF&PEH(nOYlp|mdGR;b;(SXc zxerovL&a!`?Uq+*llcx%IxT^I=yY7eyKetRk>ee;OR+PZaSSFRNOdS{^g`yJ`JE0X znMg{1iE6%cz0={euP19qA6IN=rE)byt6NfGIt4ATD`@mto-Iq_N@-a$DNy8;&Jei7 z-1`RXdv~akW!?QJAIjY(x~k zAa*O9dnt2W@BC^uDoP>QDk|Z^LRh}?!x!Qjt2dMSi}OQ*AF>;lv;@MnK04`l)||Il z?^ki+#wtYn=~tD$>~&Ho>{k;VzrDA%tZnznrAKe)V>Oi{Q+bsR; ztT!?&s1k@-=#sMEUxG=Nvc&lNh9*R>d-jSls-@H;-(F@Gs<5O${OwHY;K?BgW)n(X zCZ#ek4LM{dm{7Vd^1SS;JB!lNtV>SNK$1)>@J;>m*=#bNf~J`1Xis|dvGp}H|Vhlz=JkWeL_M!zujN3tt`*tx-br`!awo~IwtFk z#R9EVD^Q|@hShSSgw`K?XM*V_@~AJQH?Sw?tYK~h8aloc$uZ9D?YZ^ANZHWuL{vu0 zo2m%dDXTZ_8fUY+<26`xL-{M)y^l(-mp=+xiTfp`;K7eW zd>X^}=12FjQ#ZY2{j`v}msMv#_;%q;e9VQ(cN3>|9t|0#>bbm3*1a8jdB*K)(zTyA zwWppn`NY0|P+cu}j%t0ydB1|1E*nP^KZ|Xoe7$-Dqiq zCA21KfvqqnHH%0yL?VOGA$oRnrQyR-+WDaI(L?Aw3%h53*j6CKIV z&#}qHpu=F6)L2tea>M8@OT?`g4r5}XVvaDnu971vPGD~%;V9@S@B@p&rL&14gg8%EWMuu6@{V~z(__SY=oliP-#-?|Fv6&BW9%l?*`)(e_^e4M{TvvNlb__M?3VyrpAh=5_0?&<{`m_=UIDd1Aa*A4sv>ZV5opc+ z(ky8dKGH~DQAw^8MM$8%hYF+BAK8|DG$c9rBXv!x0$xzTm4AuL3o1KC4BWNAz>@@_ z)<$qOBv@#U;R`UZJaQi_bu8|xrLaJ4!o|o3crv`GbG)d0pY)M&Rm?Z4j-@3$BMMqg`Zy?jBNbmx_F~1+GgO&p2FbGD{_>G!I5TXX_^}}@cVdGN)^!B zKiXXLh}x_^`#I@WwWN8qvNC7cR4W5U>!Ymj15y=rRD=o(bnySq@BjMU{r927FarWQ z-je{*J})WJlZqCDvUMg)PfL@rt#EFFro5sn_pBh2O%#W2A2e@4GW_PWf}G|V8Z_T& zjfnWij=AhqB5I!MIyx(A-3BY~+fdvt9^D2H5S2@ab_a)D zWiVFxZQ}a_dzY%gcuj#%A|@%bwrz71tFm=U9@v@b@W z&$uJ6pG#)CmfnsXe_CePSTe|bnD%h#rj}4NR{a?BdS95*z-W_Jxai;73uzS5Ixg#B z?0&_?YP{)RQRx{D*Tp8DX4v2-p?}q@Odiv@5qnlYDWPdM=DMMwoxa+b%a#Is{!^wK zzYwvsG`dYCs92Q!mmjZ0-#dLmWTUjN{TRx@y7)a zUO^==(qqJoV`aV>4AP$7PWnX@H<<~=% zfY0p5uWze|I=}wr{^L*(@%`*^GtIUKuRLvk6a{|Q{UEbPmi|^sp((QT9%}+)A9=K~ zWMk&{aOVD+B-Xql0MglGm3P(bsEtCEbWsy!B>GV*?jz_~voN#qusY z>AKRJ*}*VF5nIirTmKWj02pKkn1cj?D2f_s4t$TG(Q5;^QdIDW)L*18=_H^6GRUug zy#2#^I0DUV6gQ3fUYXvAkAaM@i@Fk2ux^DGjp&gS6vW{5Gfl>Ph%;k zveb5~qXgHPastg<0@i`Ke2K5Y~Uh|m-p;d zc7%;M6y9)~%luVXx$kxGJ6+F9(?4^^Laj>MFBzV?Fu92hh!giU7CGXCWviUnarQ{+ zOLf0+zb{wS577njI-mUH+ONKN_w#?NbvODF&(6KM#^(*_t!01RsK5Qh$i;>JtZvZf z6jd&zx}|e`pWfdA$3MjnhiA}cU!2Gb{C%qRO@>8quvY9DUY1p5N}dKMAWuVNEc7cm z4?FJm#aHz4l|EZav31!mmf~hxS3Pc{?iOd@X*xCMsc^%J;d`o1ZFc_?)5UkRL$`kb zP!Nf)otgl4B^2W4oKpbZgd{+V(gtuL9{97v#y~7v4-lomfU7-J{I$g003m@5Wb%vw zMo$#b#*qcUY#G299AS8>l7QMTe$KKWbqI=F1$Tnlh)H)zQ$=_kc|x99iF!;~>{__`||NZ?ZqTAJrrv_TO zo!Xnv2rWPtknwZroJjLV$gA4RXg`K4<^+nlXC2N8kL- zm5J9)EzWo3CF}}s#9Vuak0*+C2v?-~aLZ*a8gGRbwf4of-Hd&B`ntmrw{JAP*_r0A z%D54wugWH$?rmR{jlQIO`RZrq^HmbcTA*~c8eT&Xxkd)Vix1B>j`7%ruu*B!mp!Ms zw?dn=q7AbRH*s2dtG5K*Q=^q>R;Afj)UMZyhs|t}rIGDro@a)V%16?WnkS~X`F-!D z{g|Y}y5$G{&TOsej+c6!?DTh~gW%lstjmB7d>ev}1q$Wc?9N2u^JTW-=nUYH+%|L0 z704586O3@dljLSCDl-5Pcpqe`1TW-FL~qprAfz9hUn~d_DS+`zU~DjFX^}e*cIJTD zb3NREaRHDS7R(T@#(RnMAs8Nj9Jo(JZ66-v+GFmr8!M_nCGgPw3>9hONO_777>kk* z-s73yw~mnFqKA(~en?0hxxlnYZ!BjefFVhiejY;UQ|N@3_OieI(XhS@16Olbcxvg# zK@c7<^@_2^;q$Uc;KQ79yGHbVkg3S%x=e5i>JPqaQK$L-&@cK(f=*n^ zi9WWGYA>ZaEg7De2*OfEF8j3a7EcUM+vEFI*;bU4(xsA!vl3;U*@}<2<2OULYv$-ek z1NG)o(Bl5@M@}qVV!n^Adu!+2!d*O7%*k*5%KTze`-q>_mhGk2^`L?4a`;qFrDJjk zvd3BPg|qIfE>;#cTKKb+WLNe0q$c{<1A;{X#<@{$yHKt7xrG7A40}6y{YX;f-K zusZUfI|A*U9znt7Rf42sdU%h2{GxE;AXp`kXWFo+f+C1>6^ntS!1@|+qGuA)`Z|T_ zqM(hQq=Jb+2rNh?3xvQ;I9zNQVuF_Q$)WVZAtu1^foGKTx zkOIL*SSKU7k3Gu;(|WVeTK-lv38WuoFh7E3K-cmWeyQrEBr7VTZ-#LZJV>qryEdh% zIZ7fBl9Fklh@kX!&nQ3I-D9*g1XpL_EPXe-NWo~Ae=8>N;oX31WhwK2@O^ut$wU?M zd0PV0MqJCC4@GHwo$lE1o)cC$ws+R1PNdsdkMqpR^_q*} zc|R)M?^=7D1Izto zvsKMe7E+1TKhP-#+1Kwbm7gxu2|iebYbH3|$jU-$Z||0LhXIa0=7i(|-77`{xI43J zXxru+o^>pB9lj?x)dg5`{?=KoOktBDO6*B!BPUFxrO+~GI?-E{!ugF1&h~pPyP&j? zi1x+aC{Dln8^z5R{+5i~jeVdoo!nc%O@oRjT1jzT^98vZXHlSq{|~LhCU9;QJw3 z{!c&74I^I!!dLa9BqSB3u}}X=QsempP6sdSgv38T((Z6YFVPn*8ZL7*zBBexK*w{B z*sHp~z6k#)oEh_zR&8$+eXB}ZyEjvRv@7hS;NGJRbC(fU@tVD-Am=lq_UYAK--od4 zmwO9WXrv2bGUg&*7PV^l{$G^**c$6Bt+=aR@L+_sRG$CXKQwSz#UM6@?~(|X+0rTWH%*2 zNAixvKX?Ggll(@72kOzL$ik6_EExX-x$EYp1fucsz#cvGVn&nRKHWnscx`Wh^qY|} z1KyATlH1daL=L23<$IK*dA;92NxV+@@W4TN^uU5hWseVdiANF0>Vt`>_LPD_Jp>4@ z&rjrQZ#;t0vkN-kGlHt@mlDJF9)x@+`DeZ~HVI0$vGzkjMwV&kTPf0xd$H%Uz5@4~4ult0>(4r#XuR0) z?Pk76n{;X^+@#m$mz^yfD88B;LsToa-jtBN-Z}@@-buITiYS*#fQ#FU-3oT$Ifq$j z9XBvNz|J-JIvX6+B$aXLib9la_TDmz)*K{BNH**qCqiQ67#vQ3!y&KgY&7mp-)#AJ z{rvA1_umVkl;Q^r_RtA^gT4p4eAbDegWrKj5t8xV(rmnK;!yxkQ36UJ2Y|mJ#{mX; z9UwpyfCx@HU<0%36#AY0ZnPW%H zHYFx2KIx@AD6k#z*BE7}BzR-3l>YPmJvL{&_DBB=^wDNv62ii6G=v&qE?f_iLv?7| z8e|q}gl793?o0K}(CFHe8371}Pfvqi$4fq$bF%Ib^UNN&7tIX5FmrKGE*l(aOzRJJbICE*B(vKlq3i{g&9dMrpF$0j@Y4v1oZz)U-y@*@do(fJP3s0<)vRtD%Ds%FHi{Cr}@fA z$eXjo=<~mVJSdb@TqRajm+E7cbQy$RVPqz7mYp!>UPQhzMo3=7y!AnCFz~gqDi;Gj z2Li*vR%RbcMpjPBwY5(#=oTJkY~JN>IIU)lU8F%n8&9ntG(uEc4K6hx!3Vwjb)m8u zpd@&$NAo_@;t{ECuE)1`r-vOla1H+N9t=(NgGqai4Uf{}Q02S(O2%_w^J zae_Jg^Rl62484eqRD~t|u_k!*P=b11Y&?e0W=T4qJ=9OaCLvS-B-*-Odd3!5Bf)G;m+n!uT1jB~|Bp;MK- zW?0Wu5{w_44i|?o$;cZieC0n9&f1;Mf#fM?UuvmnEd=)sY$qS< z7Gk&OZy@Xx>)y}OJI>$!8@I>);n9iXr$^ttwLBI;XCg&SkcALlrIN;l2lnm|ECiMU zT6RPkLC=7BrVdf_f^3|Y3h($+n((1Fl=9ZmgZ4Epp?ZrQ(KDmW(&0s-`%!^|USnEm z3#FlAtM{yanYC)ic0D_MFEB(ZiQ$c9X+pG^Y1Z}4tA)N=N(k)oJS%}{DU0JVeD_#7 zo98eX!h?uDfcYJ!j_8qK{#Iuxs(%eAb3qs)bXe*(DGELH3|IAaY04W$nX099uRQaa z#JUtDmT^OSJ@oTMPIbuR;Dw(D%kGxBz6lSSF3?G}3dF*8WbEV|7nztYwy=8eZmt#o zfKx+lE`dwx9H znlz6_njr-cyJ<|fT=_t-z>E=)^Z5_H3sJQuB!Op3{HWAkcvdhvOC72PlcHFPiE;U! z5pnUW-9lgw;Rp6m{%XbJE<5u3)xj0B@XWu;VNXkRJqOjYwv%R`9gJCwS#ALT zzABqL8LNNR_3hz1vezkE9h7AKC)eI|{rs!G&iNbtwN3QJ?}rO_ZfpXn8ZRqGgAN}q z?%kD?bL1=e#NI1)V5;3ik>*8TgVKkNqqKf*s6sG5WA(`uk;AB-&bB?^9iQvB->uT* zjZWnoi+8!J**2zKd;Oj;U zv^eF2L79_lP>|+5;N_I-g=gf@q{ar{!JdZmuD?O&Dt;1zE!c9Rp~;k5==xFpQeZ2D zY@If0DJ?52>F7t*EPq(9sEGA&XMXy|7D8m3pWm4aq?Belux?OfgKh=7$EQMLci4M%Q3GfsR}Fj^0Em$VgIS(PO<{s-UXV`e4*;tOGpX)jJ`l@#5_S(fck z%H_?sExW3y{p7g3{TR9C;aX%Iv94YEe&v?!!<=Ls8nUERCT+qbAL)N%TbDKe__ePu z@OC&^|9o`W?aK;u=fg3To}o8>?)zL}SR-KGzbNkOt8i}g?P3>k@4X`#EKdhw)QgeD z_yg!1heM~1efnMbCbMP1zaMU#^*NdlEZm}%da+aKRpG&Br9NNdzZdk@IxoOSZ62(O zr%T=tuA7*t3^jOmsqt0H(MRe+!B-8KR}H3i{m^Y;85WZ~`qey#h|e%`m+sgC5yAxs z@w+6{5_RwNN8mIZqc_-u7Y6kqc}=7saSW7iv(^$lp_Y3Y&=zmoJv)Nm5^B?_P>DWK z5G>FKmN}s;RW;M!OWJv!=sHl@G=lNa(Zt>bV``T5)Xp>1U8J{?=Cs(Bk>qD>c)hrSVc+|mOU_?l%( zCIPG=Uib+CX?$-kVLBM$LT|1MES;L)5=;@3b&hMHl&XVs{^0vh?6`?M=u2$*IBj@p zh|Y5z$fT8zaLku0rz|+4V!pxccS9OO8AX>uc$S4NqX9M@6}8n#p8k=0iq0F&9&c~? z5LBs)d+Pbatpt6!tasQU=g|+cXTF_2r+M~-o8D-h|9|TRFS2(Sg?&aIrwA8^V4}8*X z-OJr0?-n^3=M}s5tGhbYTR5#4{A~Q|O}*YN-u^Af>*}Z{-)zMqOEcalJQIjIgwBZN z%suJdCOi5Ff7@H|zZ1biSvVleuetfmGrlzt;x`iHtDe9NLNgkJM4M2iC{(UJDj11! zAWo!taU7Y~UZh^)7s8-eDe*U8OCUi`Q9TI6MG~03LK|3N?zrj*rIJ#E)qt1@Is(lo zlp7Y5k--^K@Aj8+I^Wx0ok;H%(J}`MPU6M%nQIfXA1gQ|G|S7Y=Pkm0CAwbqBhCn5 zf9pg!=aoz#+UjM~HkeW34I}js6gI-kzh?_siNux1v=P%|biK%*2F__o%FiTb)K-oA zw-P7JtOgR4U{!+bkj=2f%BKIkpF>e5farTdd0LrQHO0J_W1tZtn={viJ9FuxnH#1vGZ3{kr3*D6A z%#RyC(2P^t2wB#J(;hd~?-4L|xN^sO*YN=QAaz%O@&B#AYDPiPN+@B*#c|cb)N%2p z#1XPDo-uL+@M6~hTD?Mm495>Zv-2gTkUf@=W}Yu7muDb$nzsg~SM3kE_2D8LH={X` zUBy}5B~1mEp+r!&PA)hB-bi3qzooFiqQYX2XYxx#Ia$8))_o!+S$a^o(6H^g(QfQd zZm26K6P03fu!2(-b|bhh?cjNs{N`|UuVCAQdVg<)dR!1=A>q=2t@?H>9E|r(KU;>RHj)GuYDNLSTIR0B#`PG5Y zaocLUQ6j?auho`V)owqOvF9Om+0;>#h5QIwrO-Z*v7uqdFb@!(l@&^&r<5#zwV4x-~SXG^Eim*wMu)@bz-1#ABawD95R1P%~8VQ>SEMRc({EotXixi_=_YRKZR#u#~@V2aqS?RuXb*J8%^fPGysL8a_& zSDVa|J47lnPo?IbS^2es&%N&1^%q8iSC7*W^G}VUpoRM!S96Eo z?l(N2^`JifSRIM`CSc&CXa6lRR`z3Pg-=V$$jISo&z)1s$NOzm=8Ma0p8)^3Pz)NC z7KXmvxOmD#S3Tm5v2qbDP}i!ixS^Wx$o+~>YDEJC?E2_v148vhU+!W+?cOgR*zJ$9 ztD6roZ(EnwLndA0%R7o{?>!n53D?Cd{;#iP#I+jOSJ7<&I^d_Kbd?$%W}GM}Pf_u9 z8d&x42UbNiU@i(&SwKj36F-c;Kry@dzBOIm~ADPNnQ6l!Hfr?QHno!pIuxSha$y zZE{>k{hP~^D=SvX@G75vWFs;dS}uv{XpzLc2zijp!V7;6s`}>Emfp($~}^S%~Z4N#&)! z8aT2?Nw|CHh9RlX7@EcN6PV(C6Zaqflsi!zH~zW1vXSs}(xAN*NK(WHkj(7(ML#+u z-DY4s3=B)Se4z@*7W6L_$x>xtmGeMLv@ik=ij^m=Q6-Z|i3P@vBvr|79q|O=p=^3T zZoH3^T)!XWKV7SnLgq(y)pH$#A}J>^_F?!LMyFEdx$DhKh51p=%VS61$TsP^KIZs^ z_|^rqoGK#p0iJUGcmCiz&2I$W;`6_0nr;UdPS$8WD$(nhoP2V~Tp#XyUC?VH_g;j2 zSF;HnVRYw31ejYeyO!7*PoU-j*rbF{T=`6IU>To=6u_@>vZwKBN{)Qew|_tRi9Z;R3$k!yx8|G z3?ui~ChO&rHTA;mZm#(Al)a`~rBd>gja-BJnYC;cAVQo%7Sz+MbG2*q6PYYITZ*O-=& z6(%o#?L>kS$+sBsm|2&#-;a~l%E(N@F%|?)`!y$OG1XxV1_a*B2x3n$!oXV$wFE0h zK6sI#3TkI~fC@z+8)Hufzn8OcF-z0Spb%bOhJJdy@S2{#hQ{C3P$Sb9gof( z&KRFC8lTAi8ZlCl#XCKpmOa?sKc5rqIN~;938tu@y+L*iyv&%R8i9ZU3>-l)#snkq z${cWf5vVjM4PDs_8!wck(XzdVD=(&}rC-@6CoSTBQ|g?^UIDd7XUo$~qmMhU-FJR1 zlk{4GCd?j;Su6|~57g`SB`wO^JO9D=pBTCc2=#kw&QCgG)rRrNMWm|5i0Q=$iablS z+6kXKAY_|L2f`LckGf3{X!*oejvg|ZK6wNS#$#}|Ku%>$&@3vTa zzH&= z{hNZtrV+F36>1~$_w^W1)RAcUn4=`Mu5rA|quZ#6$Id%2u(`7i4JN3wtqh||->`B)a~=SG2tNT_3%>NMUs*>B z;EN(62BY2Q&0#LWN9ve%PYWIAxo000V5C&d%lmxtfAyl>!a1m zuyJ92;H%~-IK09ubO@%j`HH~Ot6dRi!&ke$|J>siUWz+??AF3PcXgDdoZYj)sL~=7 zOF>t*r~9~aOW4Hkg7>Q8aj#H-MM9mG?XJ{bTaBq=9jUxRI&a(pcoI#Fxme4q3(Z!# z)Tb5nm0)nZ{PoXS#T!S))KD!hH9y?L8I0gB$BdOqp3&|rSo;m>UA!^*>ZSlhp*F|r zw&<+aZN=L1>?iflj9sSglcRowKix0ZeZbmR->^$^J6-!i)nG-*P5xrh)@-XqopmlO z{Y>TekB$$kt2as0%wpBV;LpwJq>L-ZK9v^4suylPE;Z~DNEQ;RG^*XV&L94LW&g`G{J$>1V{*sj$?TTYx`j_0AF`DN6O<|G7de@|xeW*=7k@R)(o%wZ z#>!7^GmU47r96mM1H)0oT=5|+gn_oxuSoc0{7x8mNbEJ%W9uijq^aWJQ74laQFVR~ z%QQa8mgiVId>x-{XN<|@)~1)l20y*{#rm}1S&JRo#-ym}BPZ2$r)*a24yw_!AS<$@TH70L<jC9&@BJYQtYKkZ62PI3ENBsBJb zSyWs3FT^!x+Yp;q-r0}OpR@NElrN6mqjqk_-tb&`{8F9mr~BYe5&e6Amq5-_kb5FD zB=W%1h_!s-c#)F7&VDb^w|#FCnn%M*2W&gdJ+b-}?yDKar*Pcj%hx_d_JhQq3X8*I z?%c2R7LJ-|6a*a|89z6UkMA$jmUc(@p39)?HROt5l>|I*_JFZA;0UZZojC@Yi#U`8 z28Hp$_GGa~X#I4daa0ekfBYT_3Bt+iVA0y8xu|qRHArU&vNHg9!vv9ie)2u-FTxcJe6dJ` z=1b*M$p}Z^d8t46{*DeaG5d4A(Rs_ET2h}Ivv9oBzwshZ^jaTW++oSk z+3C-N*F8v{)$QEsVExajrlP&&+^Y?>8Qs;-&OFV;JX9wZJ3JX&lnLK8ch~6WA$Gt_ z8bqd0OfFSf=i1I?L$hBakNe&|T+1_1oLEk2Zoxj;pK;)=&)Jyss#oqbj8dB+Uj`3p z#tpEA-+=|?6qP|2VFF4SR8_L0Ec!5Q!ovKwDk@pJ&`}_c=$Q=LI?wivG09GH zTG_8^MWL;4E8*t=ixg%-mRDYej!ulfT7dcY02Y#bBW;WNvO-$nf3 zmVkG!E~le)QNU+}5@;c_!CVMS25~sKIC*A7ErW}rVYpG!r8dfN8k@1<$(;_APuo={u^)R@iYruH`r8?sqly)Ram#J7g%B(W z!j%xlCPBF%cy(0*j{moptx6=VlE@7LWC3q}EV)DdVMHPe5D>mp#|qN85M{1{mFsm* zc2Pzv@kJ(n&j0a;{uA47Vg~sVb@!3(`JG#3-{bYad~;@M#_k?(T#75OI=j0|h1HfZ zlHJ~TmpXTi1ZU1AnST8IG5#IfcPBr1w5^E1X|C_m&Z5r@)nZP#{zLjcyitGLd8~SG zx5eX=i>#%8bdlSlF-}T$jt^SfJF0txn}1NPrb;w+0NE3+aYlHxqH;&PQ;{7Tl#6QI z2H5y)&n%eS=#hR%q7-|6Folo=7fOa;$hZV>c)~!jmAr(yOpBmReUr_@?)<-{jO`6P z&cScF$7txJmqUuGPa!QbbbX^ro@(Zc;|i9w$C@&(EJ&~s$P7ya$3GmWye&q z9>u#76b0+7bDPKdEg|-cWMcrBs>AVM5keA>l2aX6B%;2Qy~O`{Cb6B^WJ)6F8@nnm zk<3hm=Q z`30g>q$W`bBm8H6zntneF;nNyFHCwbFuk?J^d;>ErlPiM`fUA2lzES;K#=%b<1P5W z(lbUz&hoMIPT_EnkNP_k(X_gENHI`?MyH3=eXHn+AakD9_mz{lk1IZE*E(C2!!w0a zub-s&M?vsQ#axf_OVlnnypYg zw!8M@B4h_}pF+0#(Vw|<-=r6}{kuXN)pe*X#_jR};d7=k&xd0ojP9Gmgx4$IehYv6 zBY)-z<|A2B3?&FD>|M(h)tRjA9XHEDA)Ds)j*UNuMfcDkS+51tG+nHCbGQV7pcB&nATm4x-qt4@9co0`IX=@d0-Xq})55gCw+J5|K zTDKJ-F4fsrS}1wnFM_65)HHJd___AbusUK+aQHSf^&J0E8EL*@J6mb+g*!%I)p zUgz$kdRx8_8^gK?Rz}Ws44gb#Z26|OPSR_<>y}J*t-UTwu3OfN+uam|1Yvfa|+*&b=pn!yz_v2kr;$#k=u5m_azqSCodj~p&w~sH@q5le9%_k z1q6wx@+!q!^fIa|0y6H5anpOr`IWAa6>@njT-hQa5 z4&WKO&y?USp+SV1pCN?ORu!Ejfh6&oT}w=)a0Hu#PwOOvkx?S!PD*r?c$Sg^-42n( z5*p;Vx91O^76EyL{P0k>onK@*DQBBm$?G7nq9W)-78Eon#7+@NO#n{!QamJgaeqUw zaqe7y8QHU5TrTRodWhV$TiCRv(%n|rlJ~MVzL%};E+bVZ+@yv(LCrI%dyyxgGpiHKg;P9kYPK`qvXzr}mz!5l!$7zIZ4_8|Zp(IW)V8i;K#k$oQT3g$(s|DNgTYjfU^ z`up)&pLqorf_m=JH4-a()hyg1UtL;Mz`;KP1)^7x5#42?eTu=6=|mPsm2k`Wb!T9a z%Chx`&ciLD77JlNVOKwT%Dp}A@>t+Z*rfv5Q%^QxUF<|A8*Tf4nPecL z(i@pzXhi4~G`i?t@%JXiX;*Q6>G<7ESW8)*w&>Yu5vuHA7wfuLEstHkD0?@ydj4tBn%DN$J46B+~2EOr(44o)~aB&8}B$7o=f*sI*i)X);s zLP*Q=Tv2pLanhKi6iNU-K3P{VaZHf!--TzbTsPcAZxLZ;o9 z2JJQ?WcyN$3LkgE5144#SI^?IB;aLZ3NJ%yL%c45^zW6YfXW+jf+iknPzPFr`5{k}CzCY;VoHjm4RgjIw z`b}%7dMhDYsM6qZ2_&Tl3F8WR_y57S!!OH(ME=~#ZKP5mkVkAbNcDgP>vDjsLh9Ma&2}uW*A%So|#!a)e+WQ|MW*k)yAo3hAOU@nZ}s!GaGaEilgn9 z%Q}94L7hEy`0O*Wo$4~hqQgZlUZeMpS-gmSeedX_Q_??pxu$Q$6E>fZeEkLUd4Aj{ z{!7$tkk6zujVEDAYdY4g=|8fPt+o_I-wYl)5$QD>(tK^PqrB6-Qu+kx=YN!Sz**ro z5TW11GGE1`r5kS=zP-XB5_cp{Xe2q~SB0ra{6Uhw<|?{%g|MWYXcU=)e}Kj~JXER+ z8fje{{Gc-+zBU+z?5*UDEO}4NF#4yFyym=PwSQxe z(oj#pKsAJl%eYE6E=lOh?wYQKYv|E!yc;b=M@XzDPDO_+3=za+}bg_Vygb(ahurZF$7i-hC!` z&q_h0>`*}5$g1GZ+I4l&o+EoKX0mOcv(&qcfM42pjaLLoZDJZ1Xd>Y-Svta~5M#LAwv0d_49yFOTF#f#Y3p=tVw0q1Y=)L%+8e*me$arumD`@-Dp37L2RtXX>_}9BFpuNZ!Nnw ze_Tueg90U(C)s0X(6X>mG786#{K!&c<@koA|G{@B^39)q*x2$O)L^)!xbhe+7r~L9 zM~g~i&)v_w_N7yF?aYrknrMXmQjs6)P57#9Yq}sGVZ3 zhCzV0W4kvZM=lgv2CX`F`3aOVvu__ggg$Zf^Zs>0seJr}=YHb#5!|<}(O&KyQ~h4O z!DDX9HThcbmBu2Iug;G|P8f@X3;1T|V}x4@>po}QZY}zO4t4VkU2iG1_!r;*I>P{F zcPGO4>*M!~^@*N1VD$JVRrbRp!@y&0ddqges)L_Q?lA(yAu+{Yj37j$O3q;LB+*rl ztYZp!w0Ei>w5Ah^^+$4P4B283Ld?<)%&xQ(v=1|RRr}Y8y^tNN6!e?h6N3g5o~DOw zM)<{9G%A==BM4eTFN(mkpul*x#CSe6>*`*5l-2mMp`CbaHfcnpaBBS05`Ci)rMQ_b zt&np(Ow3b_9=+Qx!re|{N;fU?)zDcFKi|XzP=X&6j@=93TtwAuXegL)rh1CD5J#O1 z@&+M&AqY{zG4nxtw0N<9*7{Zbkg$%R2eF-Fz1GDsr`Y}zpUF|>c z>af|3#e*5L@vXszD>rus8!Eqhpc?S)Y*>5AsQ0qN{x@~8cSnovx&*P%BhcEJ5~%vdH;*=f5R-u zJY+<0cub7Y!ysRf1XBmT=!+K~WMqH~eIJ3(GB}*GjQQkP#sLnA;hw_dTLyZxMCW^- zf`0Nuz*gUx+e+uC)a496QX{3-#U}&IqwcLYM zWnc72wq?Dp6qhE=Y&H=bN2}w9oupCrp7yw?_K{aE=8C8s8(5i$H1lQpK`&JvjGX z^N$_ApKZ*N4s1sq!NlY9rMv~bmDvBae*fDfQU#$ht0mlE0#dpAoGC|Eeakmzw9pv^ z!HCok%5tRWrrdfgUTDxxNBCf4NyRpN|xX0 zq4GSyGWpS#oMqdTa3b_K(P_~MPRiSEPitRPI1xyg{glx_qA@>o8YbFh27qkrsx ze)i~GDUAakxQ{TU5N{YSs?av#EB z1-|xv1bd(;^D{U8+K0oBM`RWXRa3VmoEllb{gB^JHjCIjQZX6X*0l*h#HkE$*B%Xy z4HjEDy~BqMe=D(zGfpq~RWx0FXm)VUw8yHFcP`GZW((5f@{@knmFdip)3*JI2^!DL z^tm0V!#`6V$+7MCv+l3>#=K81*SNUp8##AR>(8ukr4K)aPGe;9k72XVoxF$)SD+&C zTI*dih|9+exuCVN%V)UQ-FnmL4?F!t{AEp*p!Dd1g>*Ze)47*JuYCA?MJwym=~BNN zn*RE>As3{DGtK|w{a4lH6XBCdASD#8Mx=SG*iU<>6LqpO$!%j4f{^>01OuHQkU)*Z ze}=(?PoPvHn?FfJ$Px)D{204=ESW4PeFG~f$7-n2`aOmHy7_G4Tl49mQP$5*#PNL& zrSTW@c`%`LC^wb~eMbzeB3xG?o_S1=5D9_%h^PPpM$a~RfUuHhD?CeRbRsg+2_kEC zaP|t5VIS4OY|**?im;8^^J>-ENBWynwTTKi$!N62LTwbZAaHuc`ufzPlBStgw(OL* zXRVDriBOt;iWSn@<&oGk$9ER@?TSw_YCHCQu6I!D*O^9#WtuF~NqSLBZX{~$c5pGWOvNMQ=c z0YPJw%GXO9>ANJm5j3WvTodak)M1*-Eg4oSV`%vT2~mx>&Bqzg%<7=osU*Fx_M&gB_$j7389=;p{Cj(3Licb{M^G@_qhbYQ=&}yi+@@m%KmY#ngRqa6{*&+gA;rmI z0lvofTKA=^%_Csh%*5Av1^1oj7j<>dpB!#9+GDoqi73$SeNSj_=>}cBD~(akUiNA_ zZ==FLt}hU6)P`5)sgDLgJM9w@C1s9K>(QtEnI)vPd{tNSP~f<#(3f12QhH{@BrPQx zQPf;9d7`?OT5nvuekQ-Y<1kG@FEN>eOu3$7toFFC&+>EYNZ`;qt-j{=mrEhut;Z_u zasu{Sow`NnTNp7kKd-|M3vU`@WzJM{LOVxe8oK4{F32Z$W;6Ouoxl0}A+L77Q_Sr| z9Trmg`PtBcMao+4x*Kud6Jy6m3}=Fk(zlK0;gf_2)Gl%+@`>%J072a2OeRdo;t27* zC}N2$(@C?)K8jE3LXuDy>^!w>ky%8t4X`b;k|M_AbSC$9S72W>Mn@P!Z~vGHh~Qgwu_Kx4$XGZRDQ>Yg=2_GJ z#UJvxp1`3pREK-@yk0#$qXf8KOuV3jt=_ye>L~K-;bj>bm9GTmRQ8S8Vv4ihSLCR& z3v{`FZ2)g>%v#ul^9HH#fV3I{1{A{=u?xcW^&vA=^|5f+t}e0_!cSSdCy)w=Q}uc9 z0o>WOfKm4^18#jV5p(e%{;wTZ`^^=5aE?pDx`KT=eLGKJr)q9Koav4|`%f|Po9=F@ zg&MB3ulZHM$-Xvk?0L-sa-8?Ct3ADpm! z$ray-Dn&0~i^YEICb7ya39U-qAvTw;qFvcBXA0Aqw4N63z~zW?ktEvxIU7i2icn50 zi8C*YhV-i}dxbbAQ1-FJ*qWUorNfjJs6d7TTZt+eym&@BH_H#9QXFsxy7sUI0zfvH ze#t7aah2H}t!FwGxFhKf@Vz$d%t_T&c>ZDN=q4J_@mwQ;Oy8*5ulMf_g@CI`o6(be zSESXf%y^Fj)7W#+oA!_KCa2g?n_!(#FCAj8dWQ3q(fZSLs}wflIp7c9*`yVR9|pf| z(_ZRzpy8;=heq~f(4EV78_mmI_T)`kcCI^8o_k0qr`D$A8$mC@J~!#7YuVd}=e=*X z2p7eqnJ0RUCaZY5YzWmRs&j1GsX2D9{NEDmNR@F@$sR@V?U)}d#^tu<>&b?sS3g{Q zU4yB_1*3bM+}lW*1SG6>t=#qsV+_r z1m6rH508WkuR>0db#nF&nlP?#)k>|SXX0$4tkaPHxWC!hl6fVS#qbU*FX^%IuI(xh zv|W9c@${?K|BRH`#o8Ao@F^Ai#fHZ^|F%x}yKvwrYamv-_Z20wkojK8Tp6Iv3Ud%7 zM{+X;)U!ig@7t<-JT7vsr&vby4>>RcSX-rTe4rV%xrzR9BWWPxi`YdwfZmpFXCa(^ zH@S|B;BO}l6J%8;Dr)lOd0U4@AcUMFzY8i-z_FWaKzsnL0F4e@i@`nNG8%*YxqsS z^>wX1OFkYq7MHs?zR{Nbe2FFXfyST(^OcIO=4|wXgPOV`V`c1~|MbrvQpgSqh_8eU z&!e4}lG~=!$`4WG8a1f`-G9xGit3o+BPlY(bJw$7@!Ky`qz|UR!=57%wUU^eBO|34 zq4LYA&}xY64WvW&Kmm=Z2S0XRhR95>)ib$h#@+E|(e1uG4%U7p@7G#Xs1MrmV7uw} zR9@RT)gs?x77sEH)%PSa#7_&pEWul?pe@7p&)Vzq4qmyE-^i zvgKn#xP=V}k+U7PU$>$))GBnQyY|^OE#Jx=o;!D*{!;fQ)A`I*SNr2Ai>vmV-v7|o z3r=T_7Ml^{HuD_({cWeTJJAE{Hzw5;Ir5!0?zWyYB!&^fft^q&FBllL!z7g?bTKxr z*-+Q#`=avAA#(U{ZA4}btC6~QJdz(ODnpwZV$b|(@o%95d; zbmywkRqiugqB*`B^}WFw|NW(@fmcRVdnhpwX^KPp$MXcaSz*fsx+`R&KvpGWOS+08 z!$)o?#X4-uR0HN@aE;qPy9}K6pYu5b z>@WlPnih`1Xpn2YV=KyVX&d#>pbFe6So%y*nyJ|)xJ3E7X-;Zc=3!l6cDM@k`Nm{M z?QVo|kFxx3fNqUtN4SL@7_Q)D-jNC8w_yu^@%R@$`gzogMHBJnj^=ra$!CI%!^AP+ zSYrBGyT5sN(s-#cg5M(@Q=5npfiml1Onpt9YF-@Wmj<7!HMw1QA$X%cBV81+@c90A z?ZA7_hc9e0FWLAZY){0uV_~08DF?-kqy|sT|J$i{@)=+AtiH+Z1^V;`KZ&;oZp~N*nuh^Z`OL8%*CKD`CpVm!Wu+{SFgPIf( zozR-Q`ZW#mI&-upO>$DVm2^6d*Z4T|R5Ak)ToSlX0q@r7ASBrsrbfT$v%3E&8f~(t z>=XXpBw)J8+PP0tndGEYV@tcp7%Wz9gKtA*VC6Z+h*b*}8xwko1)@q>?f|2+kn%D$ zga(SPri!3xsX#kNmhLPN?$Ir37#{Kqwk-KDXGi_4LxBc<43!zAC50x{0TW`8(90`O z@HVV8W&#MrOJN0Ue;sH-Knu3aD^61@9}F-@wS( z)VF(UE`5gCoiLBr9k zlA1pK?lSpb`IJ8iTOo{eATeAqX^tx4>@i{{80SG;##vt_KSuV60#G{n^wpQGISJ#44WEB+y*GH3YMfd8uh`<$6Gda^0o9(9#pHP=ll`WXm zs?1Z~oxs3Ok0Bx(N39>0n%?FhAuLr9Ud8zw|9yzominA-M-0Yv$e!cr&+uOIV*JP7 zdvUFQo`Qe14KLNW#OXCXGM?0=*B|)wUbGcrEG!b&VmaxNW~SqrO&0NiG6#^S5?u6N zJw|iI!`0VY<_6>MPXRte#nSr*xCOvUYA$`^&C|e49+kcAm(u5n+SgP!275xJE#J|nU9HuX2utJMZ(W+;FCHhntEX@N zUB1tkxBjT%0Op~%m;|{~s{2ZGr|RuHv%|Mf53JfxSGMzD-1r`v-{C|vaAxPVMF?J4+jzX#-zB?L2{j@i2~J}sAd_Z=f2%R+j!35 z;#UGkLqVDOn&1SL_HNsFq;@>2lOp7>6>$7M{)?eG4KN35;!mOrYbi&j27pBf4f+{x zg2NPMcrRcv$DN4;uC3uk4RQDoC{$4Z*5!F_~}bI&66lXyT(FLosgiD`BNdYQRnBO4VJ$m%q|3wZ`b-iNKB=} zZ2zO*_?VLBAP0OU9F4;L+x$q<={!P`*cSS*iNpYAwH`O#IE#R)~( zw^%*x?hdfMVn=!ub!hkA0?Tn2F$0{s@yZ-=e4`0L^CzQb6L7I^Y(~yOk3rQNGjsTzv44|&QxuG4Rpm?DIWojRV;$awRvAH#| zRjarHgZElpO&HpjT4_N%3g=vnZF9)ObO6|S%d?wv4S@9I#GReJS#z)6)Pk;c+x7XWy|nt@XhRVcK&5?pUCLq_{?qf!X`-|WF8Iw3!Yo~j)L(Q z1UQKSO>ZDqL2Byk!Xb|_ZNTL^|FX&M3%8ZjjVFMB8_3I>WVUGT zBlXKwX=p0d5XH8|2rmW%qDU%uaL^WCNvrxnNr$jDU{@TyiQUmV+coh*2Od~;`xgP= zR!{(TtJTQalB>rX+dHQD#$SMY^)Zno3&u2G+W+2R@ZK59PH*uJ-n zK*aYmdl@k5b&4pqV5nNbTm@YOqZ>ik4{;dtdWbR-j1bb++g|J+<$Q&;A;sB!Yt{@6 zk>1xLy=}&nu}q$Z-9m)(U0yB#>~v%W#5WEfVvYo&q(hjiyl%T(>%|zhr)o&lnF|j{ zbPtSTm7ixh-b_)h{6mza@L=ftRt3O8#!jkBP+ULeIUzK|rU7CcgTAos@A%hxlwi7yy zF#owso=^nsPxym(jV!FJhHT(+W&BKc&^mqR`R!-=u#Hm&iB*|aTCPCqz*_zUkX()Q znB7zqA7IFScbDYrFMo-sza6~>R6UPbA_Dp2i&}sCLsM6;JyPN~2>gp=u1n}gJ zc8!Z&_BSDD0u%f4oT5oaT+A#5wCEZ6o@hMm={*@zz{81cByi08uLpMp#fG9V^c!2>3F>~{N;|2Xn#v%)e;*H|JEQdwU`oz zQu8d?RSxmANXILLK^XwH<@y=d>M_IYgO+4C+7{XNc!dY2;Xt zr}DOFS^j^N?|%wejhWOMw)fo1!9IR$`+Int@Q4!UFfaq?{M4u)@?jsy3#DFe61TP1 zMz<2VrcVWd?kNhCjB98kFoPhp3A0C9?aWcNrZx_5AYTrrT-S*(eozZ75a=E&d^dw1 z90xuvvc2x@ipLO(o860mn&>)#ofpWMz^ar`qUfK(3mIz*!2LXg)`+m7x>p>B6=O=Z z@2#!#y+oQ)?#0CObQE@p7la8N13pN%{J@o1O9fBD90k>`0C62&r|1RdS0{^Pat5di z>KsjdGdk|YD{G`F?$VXJ> z$IQ$!cl9#O^j?2mV(RV9z_pY#;4S|lc={vt-o#L)bQd>`_#8&=y_`ckfz24cS?PNo zKiJhxxqc7GiM-`fNj{@3TI?y6J&FoRAA7Hgrc{kND*#o%+59U6k(P=P`dX{2C-;fN z3iQRT9g|map6TP?E+zZpszRz>V7-6rsveW!e1jF2R6SS0wa=ivJmo^DLtrE`%FPX= zO5i$*ovTb8ZsW|Dm%tDR;+*_?G0%V@d-z-we`I&y8D{nud;BEPluSw!6XVoLH*^V* zSA=LqLN|(#K__IpZzjB<%!aCS1z->anrQ}bD5}j7NQUovbOFQ~O4@*OUE$i|wuu5r zkqToLwUY1qeFm=$q5(iQs1^dGNtpmB!*y`OCl?x+qUfx_43q*SAf(s}C?3;A8@Y(z zpz?se8f0;xijD-KipFW6@p?ci<2gl^YygLq`+hlFge-SGYGl!8boe%j^UXN_L}jwubM|YSz!}N2 zsMzFv{A{injxVV`Y4h*$%BFBK!hq)5|9x_@sF|Cd-;k zqBh;R=6=_qT+$Nd>URnW=_I1lq9gqm3sChate9NL0$$|N1QsN8e?p9m00WpH(RfEF z6bO`voHJ$SKn1i2#bPXH|7X8!`mZEMQ*7ld0HIXI4}sv+$?=3ipdZ^3Rk}=t**xcS z2EZsWRlY|(p5p?hYQuY{rWOczH-g8}YzkYOqn+rDU?NElggAA;np4H9Hr)1mc+X=o zuN4OO;ucPuOep69cBfPOu-ebk##2IDcf^|cUfusV-VPt7TevMI4L$a(z96_$E7_d6 zc&&IjsC#CYTIpb6Pj;94hXKLMLix)RmDURFvS)FsoWou*+w)Bf_rDHLYosbzA3A;Y zNON_+S6W+E;LGlz>Aa=(ec!2I0K_`aYfTUAbm{#tQys*Sd_73!LFLSBn$s325U}P~ z!X(7=oh8y_p=pFP&PmE%(IEiRkf1~fvT&;^5CKy2(0J3y{bzzY7MG27 z6zAK70cSiRryoe-4<8_0qWKdzy%a(sA4V{s+7qnV#tMoHtY{vZ>BsS4T5x_aw{ZNK zY5+YZjGfKY1qPD=Tz#}Eh9U-G033EWK^=f1Kmfp4<)N3yAAfS;#2~?iy1BcK>HS5l zKNf>1-vY*L=w8HT=9Oc5_~xp%hA@YIRJpfoq*Rwc%*hser0~Io{E9RWK;R%dX=LfJ?xNbh)+thqVB$wX2^xFOC z@lG^5zOL);nKQhghib~YvaE2fqNyoV836!gkdhEer-GwjyK~WzkyZE1GZN@Yk=%N!5i`nU z7+M<5O$xCzRWvZCArYo=4E#u@6lxB3LTW%rSSQlW z-p4hGrE5eoW9g7AXO`WBE4*U(2`GeF0PJAyRVrp#-L#B)efd5MBXo?`2Y3BdrX9=t z1@vN83VI`tY0#Mxg#_j?HYzffm(AL;_I(8eo@6HSiX&s#t8f5iP~!4QqEd(e>H1(l ztp#iJo+3Gy$)vMXlGoTBu#YoL1`Bj0zAdn`2pt-HGm0xxIKf?e zZ`L)ze2l$W@X&Hk!ymrlL-!q)X}`&}B@(hR0{Nj2LI?6~S$E+Q$3(W8Z!tro4}zfv zj_D}rG9G461f4-6PzPs%Zog!0h!&ZBsXdp_ygFXCpb_`1*EW*=VPc7=R?fqhgz`As z61Hl@Uj1-Op4GmI6}KUx!YL`VVaxtY-OcTmwa0c9A@&9msZZ;DC){bZM|vGcKjo-u zd%z7G0$IA-vIf2Bk94o$T)*DjwAcH5s5o)MJNWB}{R#82B9~Qx<@ZC5?>Es4`V9sA zpA$~^M{axXy^^kR4tePmCO8qH!rHlQ@f`70pcT0U^H*Z!W34+Po3YUcy(UKM0o zxZ7=)4nOUK`Qqo1Cb4Me^K`t5CZY%Ym;aj4Www!ZsX0R7U@BeL*;EFkD#@2gARMF7 zVGu_kP^hJ8D&X+yaYaCuB3R&j5EJdL!QYr$ za~+A*;7;Nhx8yA$<59%Pei}i~xzqNT>p6lI;0~cdc9rlJG_3@(XR2}1SjV6<%y*nY zCW2kzx0e)RXv22vtGu9~82ittxVtt|odsowhOF%-e9$Pwg+F}rBBLEv0Kbj8#AGCk;D;+gCy)FeXnTr&K0+HVG&VY%1QV1#N$(SZ&5 zmN`exT=ULtT;42JpCmMdln1;wi`XGn~=cjI* zDXcVad?-ELM`yj{$0#!xRLgb*TG%GPevjtZxu%X;RWpWe{sY}=h0!kq2 zAV2=>wuW$VBV4lY!rOq7%Pos-LofGxkdqxYI0rJqY^)Ejt*CZoO{h;txTCEn(l%U1 z)a6(=KA-lQPz3Pe!pnt~2DukBQFh!2Nu(?r{D<$^aD*dz%a>i>h$`1$lnCfd)i#C_ zxju;k(#;sLzx3e7KZiYrj_JRYheM1HQuwacw5^t1-=iX0jH9z}O0HXB2MQzFd)7B3 zZ!U9RHJ!8#x*b(`mG&id-TD`c_;axycIW>I1^WhD~tB+4y+v)>0iyLKZ-Y#=dSMnDuX*3536ag91 z^&qG$!$0mx2)tiP2ex z7Na3oR2&0YXqQ@UBLJo_&yXV9KYV{5K{))-_}z`ijfssT zF<7L*jT%gmiU8pXwrOJ1fLy6MgO3OX8Nuo)%j%npn+^q**IiHz9etN^dK>FWrO=YQ zaB^rzKkHYFtp_jT(`9>^UV-b&0Q*^J(Z`=RuRO00wH6;Xx?FlOm>iGOKd2<$ck;>I z{+9>7m?*RaA2L|G`1~@)H`-I5PFLSfok5Q%9K^nMGbr%f@@q}|g2Z9gvEFlDPm{>wRKnUdAC7j}eNh@%|4;SK(Ji?5nA%vca7}wlOe|(P)g$KYh9@aLliN8Y``b0`efHHD^<+iBQ)d2|jB$PU z7CIP1!$HhBLImzww6VK^Dw7@aoq#E(6F$0ZB-j?R#>ZplY^jK_KYSOH<^R#QixH-_ zDeBZm0H|t?r6gGOpE`Cz_c#oi;#n|p~>$uQux!H!ZIKNuzzQD{rU??#A=V(7*>9zhrn*fLQYiS>L zeE(HE%xsPuC97x)%=ZuerCfSlyK?c)zU!5M9G6G0_xo%*SkrD^_06Gpz&M#~@hfqP zQjy5Gf79Ul{OvWfaJ0N4)Trf`)1;Q!sje+wFMUs={BvuxE9kA{?7_I*J2rej8vC-e zskX?!+*IXwf{xdZ|KBmz|1*?^gIQdCh;{EkibC$|F~!p8wryD=*^hXC_$wmySJDwH zcMa(l*87C|2YcgUD=Z+EL#BHWcIG6-R~ffV*(`o!=*iZ2zVvV=NWB7xrJ`8q_on5U z)F_Y(BPAnJw7ds9%W4Ei4LwX~N{<5_jdxy1nzoEui#uJJh}4K`a*R#}M^1rRNP2V=fXN7;M#hCh3Iqyv8VTrAiVNIzWzVm6 z-Og8ZKU*5MAXDu^eXiML>^#LJ*{@xhsRUi_btCRTM-4mC+flXOJ;Zus|m24C&Y}%2x#43rv6uL zxT{YbRG)C)4m`pC`y03S^`5_R=J`(#V|aEiGWN;nvcP1LgC}h)iKqdP}@N#5M*RRpz9rC zWaCAGe*fPD2FKLyrT1k5ofbl1@XLuope`WLBLA-X=@8}br)JNdHoM3wV=AEy`K(Ih zEi?=;#9M@jXHP!oQq;vcY*-G`RjdnOaR}GMyZIM+;;Hfug%7#TDBT8gU=FiMtW|We z67#P7T$UdvJFmRO`n#AiiH^#Lo%%3Rt`6$SP981)EC%L5(-pl9MjIcBmH>M z#54QVzwT$%R7>8Z$0UQ9amZ-w%{WRklhS_3Nve84?yD?Zi<|a<(M=HR`gf`tpRw2M zyu)qw;C{>pc=XS)bwQtwn8mN`25;Ve;6-g;_~Aasr51oY>Y=mR0O~O;GV!}($qQJ~ z&)Q-Yg(r>)>n9kpCEdQ`ZGDCAhg8}_hg%KHwiIOU|HF4BWyN6`{yVuiey-}|#tiOP zuI`h{H}179ZvP&=-%FU#F@6-OJQP;p&#nzWjC}HX;ih+_>(fbU{6g(0^K-m`-ZyPT zLdx+C>w~U!l!aaoIV7_TjXd3P&HI5}fT8z}kE@8(eULOUC{l<~cxrxum_Y4`- z`#>M*Oa1`8aaKEQo;I3DYMv2tx> z==}1PI(2jnbaqub!U!F+iDhcG3+h%kmz?q5%u8W-NV z96f~P%g4mSlIvq1x_UnzeRM#0$F}&9Cvvpk6csP-po-rZ0y5{2GID^mXDVv6sZrxK za{*VLc@qp&eqJ9$dtlmjpVFQ1QmdqA-c-?r9sR*`UfUSz2gru)dIz?Kf)x~hrBfEVezb5E+IWAzW;<>VQMWsTog(U|$w>G;Ok8$03? z!aj~AH656FICr&jho0uQLCu$O!zG+1?Y#${1)VRUGq3I-`UGoP&b*2CNPE`t5kJ4M z=faDkr2NerL;fQ9efD~78yAz{>uwR&_fcxGuV?ge;6J2873kDRn*slUOV$lZzIu0g z!4v&4cdvmChXp$RuzT$`9)ecf)#eUgZO^HnU%mA%^wb39pMOgmUZ{&_1f9%-x*!Rk zy6>+7k1pfOQ%mZemc`e`e(c?EYo9d!WY4hg%GQh9ShKuYJ@=bSoAx@wzc(B_>hiz4 zcvXJtCrQO1pwxW-4ZOJu24qh?$3}|Q3_Y&5bYgZXW3y-WN;4mkE zdotC<6xXCbop9%Rj}t-NUXc?wCZ5|woq}qd#=st%8nDd zp*O?pQ;+Ch1|3W*zp>7}-bW7td?3spb1>0F{akaOl6#OMg(^;X^j&axGngr@)ek)q zwIGoYYDd)Bd(KB}sxTh!xVAg+ZL+~D@REyVQhPp-q7zmwzm<1av8=buYkzmxaTEGw zr&%w&?PK@kH&=lr}xA8qB^K(P(&+ZFqa^ z?_2L!*|#g>uE!b=V7>>u|8Yx{+VW_J3n_Z(Lw_dz%20`%uE}AHorO@wY-u!a%e4}@Ml=uuUu$$xI;3)1>!qm4PXRh+#8vBTv`C+Bv(_VQq9@! zxZsmHf}IKgXrlok>{dkU0}d}!pm5T`ue2Ql=s-PQXZ!fTJIP|{J-_vnr4ES^&`GDB4t+Yvm2zj z=y88hf=p5o<5sq38BtX1E@G;NLe!-`qQtZY(McoyP^nS!gA=}K@t}mWguReX7nKb0~EXIaCxF%!*j8~PlU-VR1wv!Wl3M|^=G(yWA3O`!z@ z0R;**KtS2^+(>96n2D>5M62>YDF8DsXSzdx&TJPGFjyvS;`9>NwDcluhS1N}U@HJ1 zV@U5j2lR>hrA+5m_a}e&em&6dh|t=#066Uu{*AguY2V`HT~j~$0hOaYOC$r!&+VuHy2%um_N!A|EMP{Tx&b)85rib*>l5r z+DxPf+#LLq+L4EJs{7WEyLIJ4Qn0e<-qtbHj`Y8*kGGEb?+`TAj?D>Q2mGCP>9yXk z*kkH+SlC&!l%q_x%0jVZ=kPsfv$pvRGf{-`aaognA!k+b6GW`8CjF(6~Op z_n^TZ(cPCR&u+Glyt8gSP*)y3^P_UJL!)X}VdW2)!&YFJ2>rggsRf`QZtis`Z1+QV zP<46GaPh~&p*+z7+Dt%Xqc@?~D~z+5`eIsE4=+Pa9KcWEd{g2p(57tTFnz2~N=gWA zBdV9FxY1Ts@sfy%x-A`JpnLm1j7d;NENL7J?TGNIf%2sNsRleR;DCcNC|;XrSZK~8_>5SN*}f!VF?Zg9ktr=+4nuq9H$v$wFSri-L| zl%H01z+-`|%mDxgx#&FLj=I4WI28e=xnvliy*j>^$p_~(;Yvb! zE?LSL+w&>VSh%(q{cX*4T+_x-x9X&CX_L+FUY`EZ;df?7jz|8$tX|uebs2ro;_=bQ z>+h6*HDY5AnCTL-;|mrj0#z`25XJI)vl&e#V3FeMUJzBWYb2}P)0v5cy#IYpexme* z(buqtw|;jF(N7Y$o=o|6!!Ts#r_jOE|Mu3|KqWB%&JsCo$r({MlDY8!oPhA_vl6|( z5lXFDM8}1SRhk$DsdxjxftiOZo1;qfY@OLP35lvB=gbcxwoWWQ?)-G5Y*+ocYxv^H zfRT9IYy7sDuHtFCvX^DUFP9cqx$8pq`C%syWPPek)m!uW|6t*@=xkN}&DamBkBV6f z9?ti>;wS2CaPIQOGO$qF{UQZ86g{0%QVit}0w)ZJfv(3B`eV&kqF-PbYx?PV6U0_l z_DK~ZyLxJztoCF%x`~rtA@-Bx^PS7bJg6T|$#nY`vvIrzp(kK`ZM*O;Oa3??$2wccD6^M~*Azl4sVQIDqpkrD`k!gPidQip`n zkcT3!DY#K69?Kq-6$mL~gDN1&^OQ*=kP;ZJOIWCKZgdV!Qlim|g&~L=(y>4y*|q~) zqlzMor>bjVRe|QpFfqm9q#_(H?g=gDmNP!&m7(Jcu&V-_kjR@>o3YN?V zvUbjPqY3IRyZiZ6iNvK|)l@+N6KSxG6Ksf^hzYwdPlHm3EkPI}XY-_?%FgMu%MVcL zo7Z(szbLl$UYMGD*#14{YT}30c=wGL?)ksJ9C~kfCd)hkU*B+^yjR1tPkFA; z)1>62yJ-2ZZ||kwW&0H}jd$#O5_fM$;a!&E`LuO`Pgt+CRTOh{Ks*th^#aSHjiNJ% zRC5G23ZBUpz$Gy*RWT-5fWlTWG&w4+eKwyt1UYGuW=K~pAk>J`InD9wy0N7y7KH76 zmrS2EISGV{eS=9aH*3DYLXOb&xu6&o+s-3@_})(8JBG5KbuM63T4>k*Jxh9XuV@Tl zV%;@1MlPW*DBv-C{iOsAVKehil0zfBUVwqpSh87lNc(gp9T)Bmt&;5=AW}NUP)KCa zmcaXpih;y?W$g!<8lAiR;>1+J59f}^1KjcgX(>>gzvym+u};H^=iEyUw`j-vLNMA0 zWbxpAJJDbsQlRaL7(EHCT(dyv(_@abhI*b4W1{5%s_Quh`VJVkrxctVVG^CH(wHnm z5N-D;ZUa>$mF_gL*Yvg9OBhi$*ozK#j=F!}(l7gix+Mi=FcK~!WGNN{@YY z?)qZPeVdi$?FP3Fa6`|u?Fch?@@?YphRUrvb6?Ym3f?dFJy;8{eXw5AJp;s_n2L@K`M^`Ph3Gpw@Arup2oY%S*sC{wonVxwu8zPgHD zu$BkDdq_pOn~;?^)yKaFr0e-NZU-0Q7aSMZO#=9yQDtQXHS>M=z!7C=WVBTGF(jH{ z8KSKL9<3@=z`=+d1dIF(5iW)#AFlFpN*e-))q7A-IG0ISpnUyO#(jjXXMVy5i&v;P zTo1><6lJJR5U#px#h@~Vbd<|9GKyx|SV2$-f_ztGXPVC*3zE^y9WAf4xiAJtvcY*q zVQ~tk#0*#S37|8*5&Xy*&_q?IQVW^pWMGAnmd3;4V_SuBy%Pn>3GrvnYas!QWSLu( zm*QP`97JIougyQM&F#&i_lql4jStR;_7UEl4J$towq)mX=JLy{1&c-`degwI;fcls z!&Vnnxp#f_m>kp}l6#i;;>`uxh{gIhr1-d|^CM;+#X*N9J3M{L>4p&-h4GQkbh`$k z0ql73mOTX(z*-<8J2o1Iirb<01yZNp5R&MF9v?WypbUm<*rDAT92aK>4&zU=moPFl zID}MjvUCwH?z@x z(D27R=k-$n_|YaWW*Y;Oid3W{&^!&`=CQ-AYy~mX;^V~G7!?9=qNkYyDE;EI4g%be zn1Rp$8TTQerWIgdP;OFl>(dI8;PY~KDx=&H@cTI8(jQv`^%ZR4aOtb&d+B-?fSqg-*ZJh`ikW#oa~U(tB^*fj(8Uv z%RvIsI-IrM3yD_cP=$(IsX5aW)KB$4i%r(FWVb^XLsOA0UFRhTiu{c2@Iw@ei6h(- zfKS>K(mHAj;UZ#A^q6FUmC~o^CmIq%p`U80;h3?P&%mZ2SD0ROzQS(3OD@KoY&n-e z^|BpZ?@1$2weD&Y;@rwj70hyw0zFT~rKI-&Q0AM;eUX5sbt<)fNIRAh_y(dP$^hIF z*I~MlG99uI<&K?CYHo?HJiW&}`y0hOVz(vG$-GU1snlvw)EoQChML|JTpQTciigI3Hj@uGa$;(9p zhYK9hL4ep@w+ZY!AP(e|IxT_E^fH^Un$$u#qLV=AK|>J%TS5~M8Hys?NTIhz^S;l0-`DlSY5?h? zP7nj;tYb(Q?OAV)h$s#LpC>?RMA8+J{LHP;8zx;P*(F+tA@#J`(Lml-I2MUE2Sjc6 zT0$JCyZ2+dDs}zAOyA-od0333xiuF}l2y4O24J}ZYz1WYykA}si9eT)$mvso=HJ!^ zHV`Ik)c~e&k0xpM<$xLy0VjFN5@xd1uOYEGXC#XogxX;zOei^Ylz__CYzD{4T@oma zlP?kvxSDjYW~2JJEk+PU?jU+w=D+^X@l>AUH00PcP_M)c4ct#iShxr!#m~+qlL$e} z$|Ars0kf$&^ko1apHP$-bN_{|$&2V7+IgCqP5&eWBIXz(PTJfraZP%ra~Ti(Q4Rn= z z{3~NFZ7cLOG|aUq%0tXyi{_A&!3w9J*#RgDcqKnrgt{?kS}H+pI;#fbIj-|9avZbS zKQ_eW8NsAned$4j@8aH#fBLB%cf}@{OOIo5xqEpTmK%0g9i1|izK;Y``JVI`JI9gj zO_v-iYvWR5lm%%+YgEgpl?r39fR`j;?EiApSm;u__&Y>MkRxb)nsAX6gxWd=4ljTS zmv26EwJb;%2hd8eb@wpdC=T^XJFg|hR<>pd!4*JDOTrmL!aCwWE=i@3Y|f2{jJ1= zPzqAivwAWIc9S2Rjs?Q-^KB%q15Qo*qZPykQy0&>!YKU~DK|$4UGjnUcMR!YU0_em z0?@7DWi(brUN96PS376*1r9Ba0w5$3wmJ%~x-w;>`bF2@xTun`4Oz1z943}(<2*_a zy|(#u;sbfx=B6u-UiNqt*uqi@3TGYIgddShPyi62sYNl`%5k98P}_vyzHxOyZ`IKk z9>x~H=8mSrc^!kFQg(s2KerI}Yi z^;JJGsfHddlwh>c1b8-5Rily^&t-!o?jSXTkb%`8p!5n<;VZ@~EQ#bURD_aI08E}4 z6*Bl~W#R|T@Qw=elapxw=zD%A(TECpJPQ#BFVsQYe>KtFQ@+a>U8|HFaF)#kMs|Cx zWL7Rw$i&M~XeEdYE98h=6tjt9i0Y@HlgusPok8JL_Lf~ew%wSC%TKHq3m(*_{PDa} zV$=L6A;BAnFy??%&y$S+_qvs`qDh_?<<~4;qz0jY*^4UAvOb zXRWjSEA+De;|BZg><<^Lvs>pb+(@3VNZV$;&hBAk<(&)1op0Fe3++EP`gZlqSgzfR z|7d7||DRvwzxc!&0~FIr9(7D-E^q+OAH%rjjF|^ue{$)mzhHH|QHoLwTk%BT?PdxQ z1*u_;EfbqTb9gv{;cENR#8nN5M`DGI@@=v($n#9$8PWvgdA7qr(xh!-qheZ|y>*z| zHl{27e%2Ij$b&*BQAFn0f~AI`ChL8moz;bW22u;90$Yd0Q$#g;I2P4FvbVjol4cQb zx>l%_<$gV`_s#dh3rLjqh|CvbLB(3zus>jf zMlrXj!3*Q^8cBf|DmuNT@9#38Owg7SJr+hl);gHN7iEX+1Vs#HQ9^wN>ij7 zENabqcQ%F%aFw~UH=+1GICgQcWuhc=q%>7=06Wo58M4orXK{xKyjxencU!+NxbnxI z^;|D;2t2^p^OFf4W&%|2m`kR*vafQTs@B%R+{!aE$Ez!4{I+Nm59^H)1lhSq0ug-! zus-pNpv>ijtkR3@UCAEva_^QSViiCOaK~X+B6G8N(_#}f{GP@8V+{#|+i*YPuJ=Jq zucw3|$QYd7`#EsN;1IB)$beNp|1?d%+yRrSG#z(&BZlQ^@*XelWCJTEQ7voI2CaBl3`T^@A1?I za(10x^S5pL0#B8ETwMQq@~2VK_Yb`q;@XY}72KGXrrOrHvrn&{e}C5YTw}-UoEq;B zFR3N2tjeeH$6e`_(%ZiecS;AsH7avi=bpCR`fRD&{BQE4tqlVN{|B2?|M_3k=tm>R zpw(%oNNzGiaVmaVZBvGfLTTif*#}@@OrJBbCG;IWTvBw-1FHnecSg zH(XGYS|Z1|ATMSkHVh9L(mhw@rEEbT^YvODe|N&2Q8r% zBziy~vM9sxUp2@})Q~8tSD6DcD92q3aP2aZekE`Qrb-w%gCZ~O_6HCGbSBqe7eH8= zdUxQ+m98sMQH~icd&uQI*YWGcYDN==D!PvOl$h~<&ga1>qLUT!&pp94iBPVh#rGSq zU~I!ZT`mt4R>2n$eQ5Z0Y#2f${LAnDr+SCJM`nN1PtPQi_>rY&G61@&A6;Ymek_g~ zX1yMj72vIRkh=NM&n(WZEl97-lKoWs089U@U*mkbGOqYe#19+CmEEaM3@etcck{40 zeyjI;+#lB}=E|nu1&;|7YfxiXXCnq1)2xFLOozW=$%y<-StDBH+M1-lXfYC94CT5w*T(n)# z6!AceTDUiU1LFlj9_^v)X!bmt?@1B>Uir&gb-lB4(@9%oU8D;o{PUy~_`6&JNygBf zD3~RY#u_2jUq8tb&`QZNkMty8nLW!h`;t&13xv+L&}CHAj3}B%vVwsQtH!KEctwi} zPZe-b(qIK3^|7w6c{IO4na4||-4tQ@vKxwwbWT=1&7JHGI5KC&RQNb+nGGnVO*J*j z<3%!pgQ>&gD&OJDP)v#GKl;w^4qV|6ex3<5a*i^L%3PyiyQvl;%&n;E_sY~G4bMpF z)pd>;$Ex2=Yhe-NnC%!CNf`s4U#{z8?`doJeSYilBNM)puIhgg1gndwC#O3zfwRL_ z#|OW~#M?n)O9!Dox}42@AA+W|w%=ZSn9JGy@ZW z4zO3x;r*nO!%N#c065Ug9Nq>N-n3or0?)4kOJf+%?%FT09fB+vMT2WEU2^vJVG&_Izgne z91cc6(02GlDFK{o*#k2mtOgO->2T8JX){MZ7i}q=Wr3ZJqBYI3O=b=$*nFaZ`>+4# zX?%kd9Qe7X6Y7$%4B|K8ye2sAF^+^xe^m+7Fc)5g;71r_8#af=?=ah2O;iW^{hq%6 zNMJ7yCS`4j9J5&e-v0FE7u)+DM+~_}cHkpyeDWdoX0Mxhz4^(V&3;w^cZ39P|@wDw07MZ>GVAlR!6MX z&NY7)kN(}IIIX29)$6g1>081`D z64@AV1$+Uj0G8ljVRBAUZrOQ*4P7;P)fNzW;ISgd>QyqixNAV~<;1xTv|c4JLnTfe zp=9G^!4nY`oir@gLMR*}<53XRBf4pVgcAE-{RS^Jj{Zzhfv`DrQHQm}SfhL@@gDT> z=_xbUU%!3XRiM;u99zNHw8t-T?=so#;oC&z6Z;9laLlL(FvY=8`uY3-uN;?Q&8-`jW9sd;{`0B&(wS0BRRiuW+!_^TtS4`Cu=b=@QKgR@sQS$;lZ za;BW=p!L@t;l~p1GjO;mywvF?A(oEmJ(c<~unoo)$9L>;VkrEHQ+G4gx z?kJ=@YxuEv@U+F`ob<>G*)M!+1pL!Oi_z!fBQ^bR+|2Hm-p}oO^0GLDJ*u}hv)}se zn}gjyF5eB>gStX(3t1{%uu$`f^@@5|F=yFyXl0&+y!873>vbUj6XnGu4ZVEts&@ZS zm7eDI$OqP`aBU|jJ8X>(HJJ8{1Y%J*bzoE^7SRh$Eq?T?g(YH)Q(eFK*18x};7NcD zK*dEcV={6SMr^?kdTvG&36lr7iWUa@Nr>wbZvTQwK9B9opaV)nTZj(NLR|2Bo2SP1 zOH&M*Rqw^wf6nL6sWd0>UG*$5`$dGxL}H<)!c5LA^~+Xj7~3x!ih%La!6Tx26dF4~ z#xW`j#~oPA<*iea1&l7worw*vt`voZhe%M80X{kSecV^`eBUA7FIdYBtb=wJUOgsc zm?$^6<)oFG50tOu6hkySIEPvfe7o>y-+SB%7+|Srm13YO8tuqL z9oeh(VZgg0*plUng^vBr_OJqjV+=k$dTBeoHTH>0;S4)SiS7@%X2=*5#SukEy1&ld;`Ob8 z=el}44VW%h7T#~3;Wf0HA+h0oqdJuK+}z{hQF(;BWU)#X7tGqnpav?CFrA|VRY)Hj z-7@6X7@0++FW^?GG%cIRh>aJKyq1a>BeZ0h3@RCLC@$6z502#ufe%D3d>dM^Q$dJg zlQO|^g(#X`yh{~gG)+S9J2AxLmIe|sph_*je(%BT$no&Dho$RnZtB@&V^x4sR6n101J&05bEIw6%}>?7KDhG zJgRfx>FOvCInjNV;%vx(*kbr2NH6x>?31QX(Fu?eG1L_cQ_(eCBKGYn2>?oMjY20h z!dVW0d<2KEvraXi4)079iK8!Wb)P+k5ULigpxlDr;m>DASiiC_m@K4VubI-b#CD%+ zMyFvKhvyS4LtQT?dR-caom}2rv%jj_;X1YQj=>(LlQaBFtg84~y+`rK7kQY}b7Y&1 zkE_S;C&im?Dyp76$?T%u_?A>QYlR`x?r+_|3EThi zikS|tC*p9OmB$M;HK&5vJGIwuggIX-R<=(f6g%+ZI-lm2RL_at=^E)W-7fo-J#~ke z-}=l7HGl`@SoQ)*D_Q$8gG~=PYORfP2^Z^ZyeU_SX9$)^w`VQ@9$ zqA%=(lnVdd$8*!IfBTbv?WH;KfWzm8dv1sk!C0%Di3#Z^)@?Lzd=KVi*z8j)c8tx? zS!}G4JJCO`Pp%yIOuJ*7MHy?6KNy3!M{#+(*&^e5izEhYQly6S!KuQmWCG8~kmBU3 zPJkC(jgy3PKLMt{Lix8Tpdm|A*<%T?s^k@w#!6&(VzVk_$(Z^G+g^OBqR`J=k zc3U=`G27lBdFuF;PgAt_S{F2bzrQu1ZbP%LW|{wvGT-hEdu;xQ@gA;=-_WkJTWu$9 z$N6SroY{-lftB17qi{#klV5K2L^HVqi)i5EnLF!sP_p*Lo&9YQ-Ied{Yt4VFgrc27 zdf@cfM3D%twlPv0!iKFz#UokqkfTuM246ns-8*)-OPpzB$Z2*=^NBq!UwH>L*RB8z z=~X*tO@}p(M%mBn+waaDV&Zo0PJh&7YGW4>odbm|koPmr+o~mj{zVWr{^1Z3CXtE` zYS_?HBSlfB5}{Ha#^E>o+n@ZJ{N0JCIDBr1`MyN+FjLsc@5-$~PF~f?dT?Mk86Lira!~kOK2aa;#F#Tiqbvxz7%#~wT~clhPG$8V<~kNT zpoGA(usy6Hm^249ImYARM|6ChTPpcr;P9ZO)=xffAt6z~`@}`GgokIuOkq=dUBra?_ zqmkVx|}+oiz=1*F5o6@hpN2BK#H(;OSls1f`y`did-v8$)$8%L*0ya z@(7+!g!02^P2->A)tX)-qavEElM*thgfoG*wjsu4o^W-kF?l}6F8ZFE)N{AB(JuJM z3ObbPvYsoCYDK!^qS1nX&gbuYFFVndq0@jVaU-+#17-J``eZ$KoIj{ByZFI9z`!>c zX0(Q&PbQVz7aH}sC^-S^cR92K=rbH*Kh*iy%KEe24RHQ-_!9dNThNurV2a9%dQ`%GA^OP%i9I_i8alef55qWuNyg>|)^jD* z(1I}myw6?5i_J6LE`#o1mMm~In2||luB-6jh6xJZ~D_+wCpwJcRP#&8L0z<=a zc7NZfVucWD7)8g4;XVw=JE|=P?WMIlEUPc#*rA%W!kO}D;`(?`W@PC6SR zg*s*%3B}4vkr1c-bg{V8(}<*!o|)1)iM4`^`Kn5H8c9)vF;H_=6ZM{j_aa-cdzYCa z!Aa0!S{~k)n=MetgTgyM3;3dN)UMCA%|qV{>dd{h(#318d;}YG8KnkfJD}Dt-!ScH ztz!pjU4PUiF(O2mFFpaXPA)UTHyRzgf-wI(Ms|%tEDwpiimo&7HIH-FvQM<9c zan0K~QpJO_PlTIG=75U>2*fklUv(z?UR#P3T<%FI-$5UE#p}mMD8b-c^ZY^Z^00U% z0-)!*29M$=Le8Qdlhi8Vrlf>bmG-)_Ai6AFXW#PM11D^M{`l?Z&%b}%Tm9h8Lc88` z;vveAy3ubIR|+TL?m35xlO9Xsi7@m6bbv9}qGX5Yh?R5FK4IpQ7=k-VEK{&a-?ecl ziL0taGiQF7?yz!egM|2-+ za2H}n zEo@c&Ynz8aoD-_-ekx@O0l~|PvV@Uj~fmVK$iob_qLP5 zW3FH-@sPUyW1f|A{Th7Ezx<=$_dj&vLuRIdt@kvsSv3#l)t*yUE_D`RBc{@`JF|B> zCdG~{ZNHqd-E@^a<_2;LG7(sEk?k@DH0$?eGM6>2gTR1r=r8&-P`-@P)ufwy4rgwS zP?5?di)m4)&?IU{;nd-b7|a(KLkYm$z3k zv{5!7UWDflqXfG!tH%NBVrRESw=5(erq=X}@6xO=_-tbpoS`~5=NSvVWhSi4>u%{W zW`E}9xHhY!aE0o+1e4@#!rMzjZF!2`#+HcF$LOJ=%YH$n3+Iqu$E`K(ciw@Au~k3< zBwPd32h&t1(aVo*?E}JnIkQY-{Sx)LQpUVZhWj3K#)yHjF_pXahSl%+{bA+>csmd^ zjCXVLg^ajpmZuxos-OyU)ptOWqO#~o2~?VujpNZM?x8T*z2-m6|2P~$f?{Q~{%r!h zc=Xk!Iq_Y$u({SylgkN{{$WL4Jy*PFq?OdD6;AXVjeOs-@!_#2vfrA_5`Nnn;v#m@ z*1a0s-HgOhp<&SWmdb26-}#^VJsVf*A26jFLz;C|tG8)%B$t^2l4K$`R1m6rway`Mk*<+6)litKnUurPld)ZA^Wn;so{ z1AFL1Tk-S53%`HJSZ8zSkII1Fy?6Hi-y50#|K=v*$QfWf5`3vvDkjMlxEuv z2wM%14*IE==#@=lJ^FFA0pM{&I1&s6I}JW)iPB7=<$DB1DpBa!V1WU|?S76XFd<5S zpFMhEFQh@@0%ZKU;@Ks)B{Kc8QI(zVY78kBiJ6j2e2z;#)KHZ5EkTEk()~SKh%(*S zPO$6Vx_Jry>ln(~Aw&wE5<}%irNH%x!IQl;VZXOK9$TC__5B}xo45Bkfm++AfvJnz zd|kcPh1zZ8sQK#Tdhk8DxGF#T=;(pxaXx281AI5lXPvtHsl%0jW47t0R#iWL%eK51 z&JTo^yTB*?PgkdI%UM^{m{E_HN8fxT>St_D3I1jqi!2NJ7<)N%lV#Jjjh5B&rbVxH zyBNo&Ud0EfZy1fZ5Ho-F{ha#t$|Dy~-d$CAKZE?n@r*2G;iq|yqDSLPKzlwRBqu3A_yXshnWe&TG zKG1&V(>WmnotME(H}ePof`zaKPdsNp-A>x3-=l*34g0`07b$}WHvDVPi~ z1UIdaMWG5GP*(u~wb|7mP65?`9(%zof>~;Tip*bB(Us;^<{24cH}~lEd)kJUw6Rcq zJw~%FL0=mwjAEujZGoe9S?)pbD!OM>;I7{FSjv>Q&DP0D#U*h91PHS+N>XUI>SN)C zEUg!&(9A3tgxiwBFbX$C?6hhGQR$D*g(5acLhnv|qP?;=jK~01sI`m)R~)ct=wUuPg1cxKfd)K_WNo*;acdHGk3m!_(I{TS40nV>RLRHPz- z>L56%bg@{1!xo)X-iE?jieGTG3aM%!)qYeoA#bqd7?rw5SUkU#gtvS2TX1O??7^AK zlH6e{ZJKt(Y&3u)`3NVBWB`GCu(X2L(;C-Wl@xGgLA&KOpapcsc?tI(vOWpY*BK#pt{6o}qsiB$aXmEd<= ztZ8NZ#CPJ#h`=ElFEE6N(Gs{5>6uKZyl|=A9f4|*!*LiL86RZp*aDpc3QcVSz)6my zA={DmIw}y9i+P|kVB^HgVhd&+Sg0_-OXRj;mSkV=Zi*sVX@vWEzN4?WhtsFDY$x$> z9J3X8B_&3(EFx#nNAiPg}LFFTCPUVmk=snp@zRgBeRJ3}n&Z z7asF__g_kZ2F+3s48`MITb8+OEhw}&ZY3%ZhEhb{2l>8O2_&oBzfsa09XoaV(b?sb z$VVs4$$lO;c*FQdffM>Ck+7M5Nm(JU?XMlpM<;JH)3*F+-c(9&^OQ3j9;FZ)Dn5AZ z@J#=`xNLQK-K`iO=($yuU&a{f=UOiTZpY3acA60;P+qCnlwCWz&RJr8=f4|9{Bt}5 zEO-zIhm;`3W5DC8wpb2?MW$sK5{O_HR46hA*PA4RF8vGutqB)s!o}iTl(JF)gNT-c z^AV7A5{a}O(j{)en^Z-T5MreWG^l@`MnYqjZ>b&G0_~-$36d^Ket@A**^MfXKKm6&)={(C(iE2 z0>D=YI+C!pKj~w1qRm<@)hr1nfAMGfz1$3#IXyaK#TJhD4})wMPOlfx4Y*J=WaxA$ zTeN48Z>4mT{sJoU6hz`>LRMmA>u8fov!X~ zTslmQT4?f)|CK+~IW3Gr25GZc0!0&Cd)vR~a|+9e_7A_zB6inv_MnrhhsL}501=0{H5*vpXC2jnE$b; z@!$OfSa|!|v@r;qwZaOOs=_h{){Tv=&9G8rs)_-BA(cF|ZKy^N0gZwR071N(seXEK zT#i~RplOqDBr%XuJ`J4gK-M|(z(4wq zM?Z0LjQ{-pvh51yed)=mO{b_c^OnBHhh~T!>oqF31g% z{z!Z6xqc1S{XxvAdzqy~{#xPh-TfdR=oqtmm}jYnC}mp{PWPO5J)AqODo zQSuOppGLxCk2|qWCli+vh2MA_l1RQi5Mc|QjQ|f4Ga{cpby%>U)MFSTR0-KKbzOOT z<#dU>FoO-y4H`rlsa&Y|($X+ASNtcCrDO*?kdY{p zWD*@P#5CZ6F*X55H7d-6LeQkltrQAT2ZCHe+Q0?bH89Q!KOS7^hHYvAYew%EuK>T~ z9a)EbN)Wn2O9PA0rCl%*%_tbB>x?%fsAI>pjlh-`k{0LvbZ=$S=j_dTg*9DRjb8U@ zYUe-t{@7#XL`7_$1t6>PFPGs-<64mr(==OD3fnK;czh`{YB9a0HOfSPI;0xLJKWqYRNENP{q*_QBWF#o zXk|^kv9Ol2f)6AL-nB z&*E`J`-Q?&vM|-dl$M2)x5MqKZnSl7wB47czjLPB+`-A^FGuxch@jIu@SH~!^KRV5 zw>NHB{$_kD;M>DcDd+9(+V;11r~ohyPywa$I&4|fvT_`%rtVj>VgV0Qo(j{p971rw z2)dy=a?U`&#YAD|Kp|fhuKXxi(t)rI3;|6z6;J+!Auyb;UvI3f76-e7G_a@fM=PDXXpJpMG&^;R#z2u2Y|{c>Xowb z2q-cWkd2K)kXSmAZX;}H3O;CzW_x9eNiwvkz8W+#$+d< zVbM?io$voVRO4i|>G(9@-GbeW@TnT@-)3F?s;02l+_UskDBr5LtRd8_SvONvXU;#z zMZtZ-Mm6D)f__P0F|HbPHx6JhfG$YLF{|qHjx+9*dcrLOa&X4L!#@W9^q%dusJQlRnR8e8UvggU#$5`wMm1Ob2k zrQg-&>XQyu&ckf)Bkm8SNzYaE89u)R=%rX33c0vDrRrST$=-)g4NN~}T=}ppxn__} zT6=Apd)yrA{q}ythwfmIW^4t4WA#Ekg~6n)3K(`Jo_o7MR67{=2C@lBR#SD`cZG1< z`C9CMb$Vm)TzFChThn}{KF9=3vtI{j#$d(01UMAgZkF2bD5sqZ^CHPrgRx%RZKba=;o z@AY1{F3TNI@~E`Lc@p*14j^H{ABh#sEC z(;~d{u;ZLEa5%ch00OhY(ovJPNOF7*#DvGrkT^h({hKe^As{-1%KMoQ(do#-sc33O zG;n3u)aT)-fQd))xT)`8JWS>e1Y`cwZgmF#s*zN%TRq`W0QK(!?QNQ$tHcKWVUhmfel+-0Tm991o_VF4EvS^#mXIqvu{X* z+`b`00ac!ugCOBsb8%L#+Nu;Y98@G)Fe3O0c1CIn*SRe+RD zYjW@mk9G$dBKu95#IP(0_F?1(q|Fxy0hz9QUR*DeJ(soq@Aqf86Biiz^vwLYp>Cyl z$+=3^kmk0k3BF(!{p`Anl!gyEc@v6_a2SH{W=PmnG)Uw+stESg)~W-?HeK#>Q_7q8 z5(`$iM1rJ8(waPjb^K#D!w(=m(H1-1C=;ev%^UD>)XEP7uD;KbR~}R`D23v>=y|Dz zXYivsK!;Jzs}0}5^_(aWSYMvDx6P3<>-?L*3zzX)fb$)#Od7V3EoTypCnaK;hz7-? z!Nd{_#73KnacTfXY*VS>84Riq6^dU#5SwEI=J>w_LzxdW!cH^j(liedh%{vFC8-L1@p3ob5K zx}v>B^0v=GJ!z5VV^?M2((AKahx6wA2|N+_m!BdE{O%M+jY=FoVLhPPGTO$@dcx$o zD{0CmO=wZXeYrk9FCz!8vJ&baRLhD+WMXo(2_+PGb0;12Y^n`ay zQO94=cQvo*gtRsEbbc-!2uAm1#rYhK)A)Wm<>DEE)x$L@j_~P2Yj@QRneTbRxxG)` z^mh1>>d}BW{qgPK-q^J88PXRR>F^HgM1!4ufgc>+efi+&OZ&!O=@JX*xL8M(QxDW( z5lLo^r?{^%&v(A3YrlF)-?wAm%+srXtP6bKD~k6$B)OAO7Vq`uT$x_7hXqoaO}uVZ zdoU!9!jsXTF!rmCEu)GVH5+aH6tN>y5+irrp>=d4`jdssi9J`S(BM5IFja2Y+>&!D zl>_9<(ps}=B$<3T#x7O&$)RU*fCrv2+m- zW#qDAvawy%G%{rrf51^7?8@hb5xTXV5ZM@<2C4w ztbqX9Q6{&a23qNn&Zp&^LYgDE%4~NVt7L?Hq2FE;7F0!bY-`g)afTf;nN>=|mb~hZ zC?(sE%0&qv^K|~6qB5r3zIPxH6wfT!f0!PUAtSjC_p7T%|wN3%AO+a5?Bg_t3hAH-GD0MNoDw)GfOY zp>Szm0gJG6I3}h5vL3^HR5D$-ZU=MG$;`AT_Zm4m&;lmt|LRn)< z$pBa`m=)tJ+UsC3+fu zL~Z`VKlM8sH@2d0)VY)H!1Yq?=rAtQ-bLUE5oEZ-Ok1(0CDX~7)dh9 zffLCWStK#`* z6J11Z?36brfjN=j!L4nT=!26k?KvcjWULlc$VUwxQF^YB0RNVF77iVG!^qCYcU&P^ zKU%79QQHMr$r5XybG-II1+a2eQ^51dr(rnJINo$_7Z zsVBKtrKuOWQT=t7;==vIe>|+ew@6I*;3As)Gs#>>wEgV*yK@^~TUJ^{O1oE;uReE3 z;w5PQ%fI5iLA=!)8kOv9+@2Yn0OWTel@RZwu?z_Wydf5OX}>q=BsurFDhD$WirN4( zE#?YeLD+&{;MC#?ty!g{X|HNL)FX#06#)44;nqV0{6P)(yZ*5_$tD{H^w;Q}%)8;? z*=i^O4(W}J=%n3ur?o`lmg1V?%}vQCA!_Q$8-hTOJ{UThYat1-hz+3ofgP?wCzh~+4(hnfF@2g zP@+K*C>z<~>e@_Zy*@6QKc8~yp84ubj;TZF&Mbj3>7XLd7hj{ij-?5%59XIw&!@AE z>v1aa5D1msiRT<(x>;V>zG}YVkT!)KcCQ^OI)Qjs$o^=v2wj?o3{lU-JWI{nIN2an`v zu|s5lJ;#1$K%k~u#6DYp!Xtyapg|MSQL$fV@&+6OHOGnA^KQm^wX zd#I5E08|EzO1OwLr1$n2nI??LoT4`95>Nx_b@-9bQVCaC9~_n6*r)1Uf3opN&z@F( z(rBYHgA_hMD}`q^`BHZJKt+K-UkC;g(3tHsWnD(!eN`@Zep0?4GA^HsOs-?v) z|1W#{j#s6GozlFb{>!bv&`svjOE#~orp6~j?e?3mP5+g}fZDSj+UDpnBl?-1w?OAE zFqlN3rHKAnw!H7h+=bju1sj*NP=nxNA@@Rq#aUSs=@aYFcA zK$vLwhCfoPs^jTnV8^XvM(7z$FP}}in>T3^&@WAPts#AQKc!>r6pB8iZtM&!1qQhM zW$ORl2(fXX1rOvRTk|~I%VVoBqv3FYVKRlm5KR)*_!V&xbZmsQmEwXI&gKRQXcBi~ zv+;;&TaU9W+H}Z0A#y1L(d3{lgc@C zq@k%Oh)v=j3=Mjs1Hnrwg|cF_BwIzzsB7;H|LtM;#x-yVkSBr|r@LEF1cr!Hc&Jzu zFwM5X#|r9E$9cd*{)}LZ>g<5{tA`515jc(acTDyAl7pSk_bE8+j~8J;{fqCbr??ob zmA$~#(u(3#dRP19@E6eJrgg$970BRb={&F#uQ&A9*wt5!U&9ORelx#}yLVT=Kfm{x zLA;&5SpUnR6N>l;U;4>#(j(e zLl*$PAHxQf3?vxfMXlw-ZZw)kTi7XRBR97QO6nZ_qK~J;tV$euUQ>9vCf*%kI21W8hL};OoIE=`Y{oPo9Jsf!U zdGY87JC|k-YEjZN>kwK|up@t`JB0+5EAE2z8~a!11ji)Np?3!Y$~da{2rp@cOB)9b z@OzP)m~V|kYD8~q@0hZ;?PSnqNp${BL`K40ZuEApn`ddR13WO?1@R5%DrW&j>;BPq zF`l-JS^Uv&6S1!ns=$*7|8QdCa|Ks@I*w7O_tI{b(aLB6^$7M~U3`~gbsPL`aI zzh|KY$K2}u&->NNWmPG0O0FD53o{ijD5{XFs$?TbZ5A2oSMP(a$ABm@Hl43h#y4Wob)AUM?CZ4zb(G|T~&G8b?H#5z>lgh@sV zf)A?*N4fpc-hyCy=C;Czj5{)Gj@hHdNgoYb6i|6fP74G(hqk}1gpY%uw z&PIk&ldlIF6Q|7;{0Ty+07{crYE=-H4G^NwMe(?5y3!}yCBid(u!@1E&zL>+hzC_~ z@q8+z_xmxjktJ;gf%R>+xBoao^z@}c%($ufXq3%9$NSM^gq=(FXvIu}M-GGNe_{&v zZvJL2z2nninJHoXuLsRFc(fBjvPHVsdUWL(CTFO7cM*lKQ;ct_1bFPsfzy9tAx7L=vSCC7mL_*BHKM>3VI$T)l zA33_ngdn0D%e{XiZG-V-h8VNrRp2>{=_t3Jy*tZ6u$ zl^sIOZzWuRx{bp$g>O<(T`(XP8yAWVz-uzadkiR)KTi_Sbre*um%AJ~VM!Uoiu&Rt zvsYru6A>I#upZx? z+|GnM;LJ|~S+Bb4qe64v?7#p%T)UeNr>N&ZofJG-IA7fFJ-is$r@ zxJTh5%`FLA-3!D3`FQP%6eA?KNI*anC$&Er-ltU#^=xUI{;WX$WjqgzI#LJV-lNN| zMmXX7t2I#l#F2G#{kAbze-Gq9t-`V%|05jNwPk(Ntirz8>`0*T^L78JZzO|x=nwKC zkq>4;xzVGvjYHs)lnmsAHA#p2>?W^NSSw>MV%=z z-7@(L!?&mWBy`5I(S`Ga26j z0Z81G8hEU6I(-x_!vEg8kUf9|s}PYhyGO)dBzq0Nz@SQ&QU*m(aR~-WeVQ}S5AeVQ z!1}ky)Z`r1VSH$7*MfE3739@%sf}2rN91$v#pPW7(-sAhmx)b8oDyrhRz8ph8UAgR z8n<5P;t*+bR?Hsbg*1O>Z@}8pfg6A8`%5Ond(h=&`Zd_(vqL0nzvaprZuz(#msvV; zu2!uMu66w*qMz#4J9UQO85K@?S?$w2T@g& za*>}8rmfy^1<~TBn60KmRT2T-10j2J;3ezR9dxXJ1Qm$1fVvQ=Lk-}A(BO$-w{-8k zjw}#p_^F93ap`Y$n$z^dNaNGoe?-M!HRkgz78-L|E{qnW-B66^1aihjmEa&cLEE)w zr7;}&jaUxN`YJP`iIujf?@!?g3pZ`cz6y%^*6fJr@mP=dODj&$K!`@T2BDthfo59! ziMZnWy}e>uVan5XKhtlcDl6@5-KoSo&ynxom(+NSs1tm|7mI&7l)^ z_8FNs5ko~}2@t<4=L%hjOI86+xr0yz(N`sRvtG}m&ToTev=byO#ZiVW+uF~(&-eN% zZ>{@wzOf=NPq##6(Q`}*a;Mb4_5CaBjQ6004+|8NZK0h6JT6q2ve;?rma^!Q^n{>w zqLN$+z-T&pd+`ZD?n_WJNG;@leHHoqE-kuiA;4p$el#L~m}kz&D^WDRmYH%RwSU$9gWcq1$~O1%)Mk_!E3_%CRsyNQW5Z$7lc%5zuKYUu5_>YcU5 z$0w4l-FC<6Y?pmNw40Ioh-#gy6e0D^h~Q>dVbkt}>^H@tvz(ut;mraBZU7X-3cS#V zP{1}2ptmxRs1F59a0bu>TdJ$x{7SZjS?RVQ=xnjf26ZYBlT&Q{*eB|nr%N~CVj|Pz zQVofCVTyq~@r%ixCaP+PC&2GYLKh_pxk^K5e~U(`=!RN+NOlF0Hc0n=4SM33;L6H4 zN2)|{Af=*6o`Fr^`KqGxxd}rp%!LcoZnwgL3Slt9jNZX{RR>bNhN~N(94ObiAV7c} zOz}<*KAPd2;v|ykM^>;I>ihujG9UcJU4=iwrM*W^qCfr|Ym>Ol^$Us$X#|;)q2Rd5 zlzwG5En;dA-0c2N-%pj^*MPUZ55Opob&9ZuWjieT)8w zfE+Is!27d4elVYZZA`PqGpU-uNkK{f$?1(5xl`}fEYQ5^fM^>+*gwnmzVRzhveO45 z_Dne5q^N!~&i543It$>69k#2 zS~i%d1Iq%9fDRDT~tXG0N6rPjXpZ}YP%98j?xH3 zOEAvw3!p!!-hOAIEw_->-z9lks3-FV_N{X{r8#541%uON6BvHUYoL+|kT;T0T||Ms zn%4>6<4sVbcCJnVahsnZtfV#A+YYU~m^G+CG~l|P<7A&Mx}aE{UdtgH#wsqe(`E6b z!h8m!?{9tQ4xRKKwD5m@o!E^|%D5Rc4*g`S(|VVrbw1h)29h&g=Rd~?J$7qI~MH&4C&l=1Z+|7taw+%ope076gCGbwL&HBmzl z%(#&ngBxdb=y}7hrvy8w+p|-AS%y z5QLEGyF8Zu#~U4Ul(KgHKJm@4QpMb@L1nJOaul06?BxOmie^<;B>Ms#oIcsSTuB;U z2K~QMugDc22013K6^^L|ha5jvb04>8R-@4yGG@t)26cgSaS~04The zj`wtwcl9|BGL+tfJPY5M1o#OLOIyyd)vDCI##P@fg(=VRK&!>#QR0HP-*K~|z<%-| zj$Vd!bQ3jUu(5qQ0*x_-R_%%YYxm~WZ}+5~%i&E_35Uk0QKo(GU;k*V@kL&l6?4fN zxH3jaCwct2zrRK3|7`5Gih#tpiBJW#p@&bcajrW^p-t~l%-bCkTNQ_M6OYU^UFfS% z+96rxj4v5GTO0KkKdl|PT4PLuQp{_{8iZO4=z}Fu00%0zrJU$(n~6lOK+XNM7sCU zK^6Tp{w*517CU^+Hj z6N{F5qe}J>12zZ1jpwbus>gbLTdp=(r;_p&-JS6Ww*2aW{?|l=nu)O9?={|x&%96iP=*p~tV+_`20XtnqnY zmE-I9jxz58%_{iNHK!6)^8Z5U|9Z^izw-oJ^KYj|nXLDWZi5L6n%jBlYhRoyXAn0i zI?<1-WkDWZJo3_)@N{Se@|bGvx}-szm~dVD<7d{xMAmKpl(JBDfC6*RDo0t6e!5gH zQar2LBL4DK@EuL3JR}pS9xRI_l`=OHNobWccJU^GPFJO~RSXoKjQiE9_VU%d$)I1e z-1;uKg1km1HeW$9LmuR(R>uksbR8zdDZ9xxW3hJp{abV6^_G!|}Ly zg8awOU($D-Kl;>2j%-@InIsxq4Oy=3@!+KLdTW9&X3agk_?A(9t$|3mhQ+HVtKnS{ z;r`qAz4qvx6>x*hciXo9GV%HOu3N{=!{uiwABH$7HT79}%C6daYxLIKpdAFnXwlWM zB-tAN){GBT#}0e0#P4CZ9Jqg3_?EwHGTi&&i2cKA`J0cP|K0?@SPtmDv+A?dQ5-D# zGPus;muu~lW#hivzJmWx@9^ho?1837@(Kk!Q15$lx%GR%ca#%h?!SB^A=b?mA<0=I zdyVT?n^i_{0hcE;8tNHnDnK?82p9?mht9_#rCLN;tOHqWIF?b$_UlGvxp0H(%JAFO z6OHzZ+&=6zYWhe!g7jXz?Qi3d7(<{pHx1xhS)oEf?jYKN`R(bcF~P}4RnAzdMk4@7 zGD$@~rRdX$L9g->9wwPjJ3I8`GG{45J6x3e zxi#G%kI!9_2^MoUq4T;pl3Op8JOqA1|BtDoyG>)2Fe`Pdr^o!+0psLAhYM1z*(6X9 zFDT%9DC6Lxck$H`%laJgvikua&pp95+ZGAO??f18b^K!~w&;!8^3dF~xBoc({nNZ* zjVvAzRfS{)_Jv_Thz%^!!t^Kwr^y;=$0Iw6as{3zZ#cg2Oh;BsKNfn;qSi@|vq)wX z#{H@$w1o7?fqVs4TRRt0E4Fq{=V~3S9IMauY}}HoajVA}5}D(r*=51on~U@N)CK%4 zr~KEvrX&~o^T4y@44B^4Qwh&eDz~DMTQAc-MfTI&E1-s)b{3G!9r{LK=O)D#Td>L^ zb&LOYufD1MF|dSmy(XulOlGsaX~8Lm(wS-1C5YK)i!XRB@UnfK{o8jx3$bO#WCpZd zsmA@2l>KwOpF}xPra*bb=VUvzbIV_uO$(#QFu1%S`dM^thDSZpADnYbkIkABINGBq zJ-X#KCXK|9P2^NjnfJvmDa1pn=4|u8mnx68*m%sY#El3{X7ENLr?d$L8(*DAu%pa` zRu^4?K<-{gU=G0)Y(lGFyQ1Q;(JG8>uZJuw5hMf(fK2qD5Q*3o2}w!q)1OUGPPnE} z-4kaXWb0@ts->kPL{bQA0wAEsj0d4vHSkEpI0NscX<^w}$<@w^WY-a{FqFm>q^izmaU7)z3W zK{eg7{tr7`t`OoV>a1Tz{;Hkc-m0qPao?MC(c!rKH1hPBD{S`kpIM|Qnz4(oI50?S za{`w)VK6o)=>lnBgdja#o2WEZ3U_a@fLXUc<5J_T@yz!@SXEUhsEIS-XE8zy6}sFUs@2;5BYo}p8|szWhrPr67uSzu}DI{Q^?@h{ zi`_e*dmA4Id0{{$7G*JAA)sv}tR^k&CuXp5DNHr8qMkUd(LuG2eJoFo4uKVZZ{LY#H+_u$Z zZH}w;NrQEhRj@ni;KrF62ZU?zya}Y?tHd^s-fT<1j8PY63rn}@o>$rMVs>NP1b@6j z!-)XSt_D#MDR&}((IGbLfF=UyuQ3*_V4+- zVu_zkh@B&VA&ZCPQT_HGX=?0j_bO`Tc^NhqO9wd}3EZEE)Fv5@P?6T5W>5rfR7&DH z{$(r&xb(xUP)hI{;}!O@?jC;+nRxHaiaQeR_dRa}fOP}oG37eNN?}@qc^D0YI(|5W z1R+sS=NqY?UBDXWs|TC6e3*5+ux@qAsfzxa1_eh%$IV_L%E4_@&V;1k3X&JAoxE#k z7ndYjcDwRp<_iIQc~R@fJuU9&fhFo`L)TiUz?IKm=HaWu+_qDQayI03eShyOw`gdd zG}QnhZR8?Vc<=`@=e^k;Lm$XM(_i9rx5_p1jY1XeCrFiq0yA=s;*1uwxkdmQMF^T^ z4sYZjx(zN=hL*g^$N{2ZL>;`~pF1usHLE}(yb4p9gBe)3>W2p$Go`9Ep0U_*BRYS6czx93dNv!t-!s73pqpGQS zhDTYpb~g2+O0J6Vk3FBG0MKd;8E@=|N6-imJ<83(Feq1Z<#{?A2f<^#ix&zNybmq8 z#A!roUimDkRSVMNnbzYqFtEV9rfC4GGPFk^0taY9BrKUys?oV_M z{{YHI;P+Wm2*UaBJynUwH@hfzRN2KAq;*Im(RV1nS$2Q}{ZK>l(er8w=cG%Eso!*1 z|664^>Mqz%Tghd3Vvy9$tGZ38sdn?!_y{LnSX?-`+Nd}XB+yCWB{yYk|ARB@yXFj>@qV>MR;XCx)10I+Gu(SJW5M>8??EJxenF zqTxP99ILF_7f8Dh@Rop?%hTpNeB>V;+8mXgOA8&oIz1e9cu8BL_Z4Rmy1Q8y#EC=J zd;Jg?4H|K|^YERCIdP1Y(EW*Na&l=vW16CPa)RIatK2?L@qU0iH3b~vz9GYt=RD3D z?;g?L9l%DiRFg$tqX+B&h8EwDSmtgny_=!_S?q=yDo1d{FxUu7CIl_}CdOS+h@h&X zt;y|p{H~>q)E)_Z`Yf(+j9M14`@1FhSj zSLBcd43c-QQ$C??K3-=zJi8^Ydgr{lIHgZd^^bq@O2iUaYoX}`C^4)W(#>ehp6~o_l>LxYUC?LjLVq zZ^Qw?ut*_<-DX106V8&KQ{$=4RJ8*wxcT8XT4deW3F4{nlf-&?F8I>2*Oq(KdD^)b zVbSda&SO{<9+A%~7M2OH@yopB!ec$omsmFtS9{u3)V8zhqEzZ+T7EI+7{D(7{rr}| z2RPQHrlbx5ODqm@VIM~tCzn;$t8`82(8()x*%?o;Ah zmMcUwj3k_|E#IS&FmaC)9slLZgUJ76;({AfN}{78%*P;dJUPie5g+rtN2&uBB<)jy z_b##jvabVzFErn2zFF*46JbL2InVIZ!`@(V`hcobW3--5zw|Dr_|9|ozgq?SzxTbr f*Jq2NK2l-10sr}-_`kQk|KpbZ|JbMh!65txS#|+m literal 0 HcmV?d00001 diff --git a/src/ell/providers/openai.py b/src/ell/providers/openai.py index d9c5e084..0a55c8b7 100644 --- a/src/ell/providers/openai.py +++ b/src/ell/providers/openai.py @@ -9,7 +9,7 @@ import json from ell.configurator import _Model, config, register_provider from ell.types.message import LMP -from ell.util.serialization import serialize_image +from ell.util.serialization import array_buffer_to_base64, serialize_image try: # XXX: Could genericize. @@ -122,6 +122,7 @@ def translate_from_provider( logger(delta.content, is_refusal=hasattr(delta, "refusal") and delta.refusal) for _, message_stream in sorted(message_streams.items(), key=lambda x: x[0]): text = "".join((choice.delta.content or "") for choice in message_stream) + # XXX: API might be close to something else. messages.append( Message(role=role, content=_lstr(content=text,origin_trace=origin_id))) @@ -144,6 +145,7 @@ def translate_from_provider( ContentBlock( text=_lstr(content=content,origin_trace=origin_id))) if logger: logger(content) + #XXX: Streaming tool calls are coming. if (tool_calls := message.tool_calls): for tool_call in tool_calls: matching_tool = ell_call.get_tool_by_name(tool_call.function.name) @@ -178,6 +180,8 @@ def _content_block_to_openai_format(content_block: ContentBlock) -> Dict[str, An "type": "image_url", "image_url": image_url } + elif (audio := content_block.audio) is not None: + return dict(type="input_audio", audio=array_buffer_to_base64(audio)) elif ((text := content_block.text) is not None): return dict(type="text", text=text) elif (parsed := content_block.parsed): return dict(type="text", text=parsed.model_dump_json()) else: diff --git a/src/ell/types/message.py b/src/ell/types/message.py index 7bc61e6a..f45a6ac5 100644 --- a/src/ell/types/message.py +++ b/src/ell/types/message.py @@ -252,8 +252,10 @@ def coerce(cls, content: AnyContent) -> "ContentBlock": return cls(tool_call=content) if isinstance(content, ToolResult): return cls(tool_result=content) - if isinstance(content, (ImageContent, np.ndarray, PILImage.Image)): + if isinstance(content, (ImageContent, PILImage.Image)) or (isinstance(content, np.ndarray) and content.ndim >= 3): return cls(image=ImageContent.coerce(content)) + if isinstance(content, np.ndarray) and content.ndim == 1: + return cls(audio=content) if isinstance(content, BaseModel): return cls(parsed=content) @@ -352,8 +354,8 @@ def images(self) -> List[ImageContent]: return [c.image for c in self.content if c.image] @property - def audios(self) -> List[Union[np.ndarray, List[float]]]: - """Returns a list of all audio content. + def audios(self) -> List[Union[np.ndarray, List[float], List[int]]]: + """Returns a list of all audio content in each content block.. Example: >>> audio1 = np.array([0.1, 0.2, 0.3]) @@ -363,6 +365,20 @@ def audios(self) -> List[Union[np.ndarray, List[float]]]: 2 """ return [c.audio for c in self.content if c.audio] + + + @property + def audio(self) -> np.ndarray: + """Returns the first audio content. + + Example: + >>> audio1 = np.array([0.1, 0.2, 0.3]) + >>> message = Message(role="user", content=["Text", audio1, "More text"]) + >>> message.audio + array([0.1, 0.2, 0.3]) + """ + return np.concatenate(self.audios) + @property def text_only(self) -> str: diff --git a/src/ell/util/serialization.py b/src/ell/util/serialization.py index fbb53a11..512cb134 100644 --- a/src/ell/util/serialization.py +++ b/src/ell/util/serialization.py @@ -95,6 +95,31 @@ def compute_state_cache_key(ipstr, fn_closure): _free_vars_str = f"{json.dumps(get_immutable_vars(fn_closure[3]), sort_keys=True, default=repr)}" state_cache_key = hashlib.sha256(f"{ipstr}{_global_free_vars_str}{_free_vars_str}".encode('utf-8')).hexdigest() return state_cache_key + + +def float_to_16bit_pcm(float32_array): + int16_array = (np.clip(float32_array, -1, 1) * 32767).astype(np.int16) + return int16_array.tobytes() + +def base64_to_array_buffer(base64_string): + return base64.b64decode(base64_string) + +def array_buffer_to_base64(array_buffer): + if isinstance(array_buffer, np.ndarray): + if array_buffer.dtype == np.float32: + array_buffer = float_to_16bit_pcm(array_buffer) + elif array_buffer.dtype == np.int16: + array_buffer = array_buffer.tobytes() + return base64.b64encode(array_buffer).decode('utf-8') + +def merge_int16_arrays(left, right): + if isinstance(left, bytes): + left = np.frombuffer(left, dtype=np.int16) + if isinstance(right, bytes): + right = np.frombuffer(right, dtype=np.int16) + if not isinstance(left, np.ndarray) or not isinstance(right, np.ndarray): + raise ValueError("Both items must be numpy arrays or bytes objects") + return np.concatenate((left, right)) def prepare_invocation_params(params): diff --git a/src/ell/util/verbosity.py b/src/ell/util/verbosity.py index af4ca698..5038b4a4 100644 --- a/src/ell/util/verbosity.py +++ b/src/ell/util/verbosity.py @@ -85,6 +85,51 @@ def get_terminal_width() -> int: logger.warning("Unable to determine terminal size. Defaulting to 80 columns.") return 80 +import numpy as np +def plot_ascii_waveform(audio_data: np.ndarray, width: int = 80) -> List[str]: + """ + Plot an improved ASCII waveform of the given audio data with a height of 1. + + Args: + audio_data (np.ndarray): The audio data to plot. + width (int): The width of the ASCII plot. + + Returns: + List[str]: A list of strings representing the ASCII waveform. + """ + if audio_data.ndim != 1: + raise ValueError("Audio data must be a 1D numpy array") + + # Normalize audio data to fit within the range [0, 1] + normalized_data = (audio_data - np.min(audio_data)) / (np.max(audio_data) - np.min(audio_data)) + + # Create the ASCII waveform + step = max(1, len(audio_data) // width) + + # Characters for different amplitudes + chars = ' ▁▂▃▄▅▆▇█' + + waveform = '' + for i in range(0, len(audio_data), step): + char_index = int(normalized_data[i] * (len(chars) - 1)) + waveform += chars[char_index] + + # Add top and bottom borders + border = '─' * width + waveform = [f'╭{border}╮', f'│{waveform}│', f'╰{border}╯'] + + # Add audio label + label = "Audio ContentBlock" + label_position = (width - len(label)) // 2 + waveform[0] = ( + waveform[0][:label_position] + + label + + waveform[0][label_position + len(label):] + ) + + return waveform + + def wrap_text_with_prefix(message, width: int, prefix: str, subsequent_prefix: str, text_color: str) -> List[str]: """Wrap text while preserving the prefix and color for each line.""" result = [] @@ -102,6 +147,8 @@ def wrap_text_with_prefix(message, width: int, prefix: str, subsequent_prefix: s for c in contnets_to_wrap: if c.image and c.image.image: block_wrapped_lines = plot_ascii(c.image.image, min(80, width - len(prefix))) + elif c.audio is not None: + block_wrapped_lines = plot_ascii_waveform(c.audio) else: text = _content_to_text([c]) paragraphs = text.split('\n')