From 4a7e06f6573f10bec351525ca66bd34fcac470c7 Mon Sep 17 00:00:00 2001 From: Autumn Lamonte Date: Tue, 21 Dec 2021 15:51:12 -0600 Subject: [PATCH] Support for transparency in images The ECMA48 sixel parser now recognizes transparency (the missing pixels kind, not alpha blending). When using the Swing backend, if jexer.Swing.imagesOverText is true then text glyphs will be rendered underneath image cells. This is defaulted to false because of the hideous performance cost at the moment, especially against sixel animations in terminal windows. ECMA48 backend is still unaware of transparency. I would need to define a font with fallback and render images-over-text to that, which is slightly more than I want to handle at the moment. (Though I do use a similar method for VT100 double-width / double-height inside the terminal window.) Jexer PNG images in terminal windows also handle 24-bit + transparency. One can use the 'imgls' script in the examples directory to try this out. --- README.md | 9 ++ screenshots/for_nick.png | Bin 0 -> 106840 bytes src/jexer/backend/LogicalScreen.java | 2 +- src/jexer/backend/SwingTerminal.java | 22 ++++- src/jexer/bits/Cell.java | 19 +++- src/jexer/tterminal/ECMA48.java | 116 +++++++++++++++++------- src/jexer/tterminal/Sixel.java | 131 ++++++++++++++++++++++++--- 7 files changed, 249 insertions(+), 50 deletions(-) create mode 100644 screenshots/for_nick.png diff --git a/README.md b/README.md index f2568c1..3466030 100644 --- a/README.md +++ b/README.md @@ -136,7 +136,16 @@ The color wheel with that palette is shown below: ![Sixel Color Wheel](/screenshots/sixel_color_wheel.png?raw=true "Sixel Color Wheel") +There is experimental support, only on the Swing backend, for +rendering the text underneath images (jexer.Swing.imagesOverText). +This is currently very not optimized -- cells are rendered below +images irregardless if they are actually fully covered by pixels -- +but it is very cool looking. (And if you like this, then you need to +go check out [notcurses](https://github.com/dankamongmen/notcurses) +poste haste.) This is most visible in terminal windows with sixel and +PNG images. +![Hello notcurses! 🤘](/screenshots/for_nick.png?raw=true "Hello notcurses! 🤘🙂") Terminal Support ---------------- diff --git a/screenshots/for_nick.png b/screenshots/for_nick.png new file mode 100644 index 0000000000000000000000000000000000000000..a70836818f5d19cbd4aea7d1f4dac767ab661ae4 GIT binary patch literal 106840 zcmZ^~cRbba|39u0N0fu)WTcZlviHo%$jLle*|H^jWQ&8y%#ls#*n4L0V-vD6j*`T| zA$xzH>h=EIe*gTgZnqBS9M9+VyspQ*-|ttrhMLmN8?-kF2ncQ}Kaoce5M291KycL` zbQO3f^Lp`X;DyjyPF0S8pdyC!)a*L&`+f5#2vq_CZ&m_=KqLXdG4NL4Zvp~$J_3R@ zQvw2sBmx2&r?du5Dc}R57f+Ss2`(=GeQeH)2fj(5EH9_^`rG>1YCN;9_X26gP~Fxv z(^UUAU4rXhgRXv=UuSLPKny9M#6$?gCd^Ux7OYXDr4}A5RlAIlzx>~ChH)kLv4=Ns zD*Jh%i$dPXM+^~tnZ8j&pnd(ehRw_a56dD_<&$-q#;-0!PNXj+`Y}77)H+# z-?P0HDP9;bum7K6e`9WYr{?99sm6a_Fm;qO1^w^mvd(=K^)lm)X5T$rNRe(?whW%W zw6wb1)sZm=9K+5Y>>f!Fw+*$cBxc-^$us69y9{zewW3=C%{%00z zGu^cQ%^aLKsBwk<3UG0s%x0=dE|G1T&2Kd?bx#zYHr9;r2Bei4E9jPO{(1cS)>5f) zv-jTGgfu-lOHTkDPgbG_FM(4u@TY;V%!@jYRW0t;ASj24B7t7>qHd`c7uiY4>%At4eg{``$fGmre#9N^(e1M%Z{()Xb6d zCdcUNRK=C0xyBLckwrCzuYqyvdf&etv&>8S^4kC6CToeAY zi%n+89^JE?7H-S^z(toKCWOJp>DM+h4CiLmF*u+xm3k||al=Rl z5$0$)BPS|7r2SxYvuRBPTjVDkPY7IV`oVrmt<221@sVIH%}G<<+e}7@I~~0QjlUO& zFCXHSRhcdBpt^{xJj%RDai4ZWgmhr2B1{_LvAm1hXb>^Rq|yW5TWqT=lNU?9()81` zcz^PcoRe#}fmhzITWi|FD)tJ(P4VO0@rzGM9UDX_3?8>*?k92s~sT zOZi@H`^CfGi@OHA-3;ZsT)@jwK6QnSo?x2rrR|4*Z+H;R)er_z0_(TI60xAo2sv>+ z%{eB!{E+UNycqBz2^V-9v*dI6&NTDvgAV2MEPcmwTfy0@1m)TXc(nyT>BqC___iyj zAyulxEtweCwhH?`vyOMP1k={VcY9js&LGfT^ZiYtTBG<^Und>QAIG*|4GfkaDQAsX zh|2an@GI_|j+uzdK5ymow4Sb`2_8+Hum;UtStJ<4f6(P`KK{Zm<0wNE$^qCfy_<*F zPxz*TiK5TR>c`p>z58>-fx(aI$9rV=2WK3K_Fc$H_PlOhA!xfoXgt104}LO%pO<-D zc#nWUp}1MufBH{vi>F>|g>32UK`QC_^tHAv&*ukcl#UY&7Q3k};;)C=XZL6Ei{^K~ zd<$gy_OmX30A+P}womtA!|J7yd2^4X??LGLM2hY=zFCiAL5sSnChij>x?nuYPef;Iu8o1+2iLt+O|vUAFfgV zCacG80t<>_K)r}ip>`iYIey;eu6L=c+n#25hK){tnH1-gu=e0G38#oOH5fgZ{ zZ}@%LO!V_=B8F>cx)H(*7(6!xwa;p!sZV9D1P;xm&VK!~b#UKYmWbjO!8%uH+#UL~ zrH!|5euQ*ZHzmJ1IDWn9JD_|tskU#&n{ge&1;lxNEj@C_IV9Y`UU9to1<6kM}w}&hr<)0tP2&zu@b1z~)_7mO1|+ z$Dk(h%ENkhTulq9Wzn9l6z%EqjRplAQ$OY^Pt$_va5 zg225oULv&*Ics$jR&7R4OS4KFsJDDBeIL@ckKQ-whqmcmAt(=f8xRkMkY0KUFs5;B zsOP||X_bB01IxzM=Q?*TFV#HY-FaNZXOT*5J_w0NxD2CFjU_%)rACiIM$O(eOM<(= zm#&mIe_-_vXIOAGzfRD`v;0jM2|n45p@99SwZM7affv}OgqlT0M=NS-6=?Zl5BxG+ zZv|hvIxy@ZAe<*CvcmFtvdXWH5YiBs+_(@_9!waexP*zKtI>ZLk)1)e*)b@@Jn%Ps z5qQvnC-LA9mPYk1%Uj<&L(QsZH@usp!SKBCo@j<~_p@WS*G5PD1+Ps_8MDH8ZUmBoWApDJgXv?b)#pCcrfLTMt!h^ zBD2};L{iPo&0CLBTaOMd&aoG>0Vj@Ab~UewUd_GswDTQ0E5#WI8SYEhZv@7zPAkZs zq#U&ukY zIvUv9^xD?*WB&rJpHeQ;yf+?muwe8+?c!5HL+(b%SnvR~M*D6?f=smaCq;EZdi?G29WE1bD(5T@|h zSR@#GU{In{qo1CdYM`&*zp{fp8unc9KiTk=DPunLaqjvzufTM|$~}We>gi-?t?_EZ ztgXqqg}Zc&KBvF47Sl-OKyk1KNPZY46ZU`t1_MEnD_&2ZKGnQU{jS?}W%zFB_I3}W zd1PHJ<%U)D9>BjD&}asN{>*jq$Hjj)ZUs|bU@*}qxRUF$fm(cIA?P8xGF zhhSc=j2L)CtfdstfuJKhzSxztXYlJLI)hX&HzOJt((DQ7dm1T}4}*;5BSWK^QwO-*}}H-3AZZ|mZ8GXk)B81wF9MwP`g-;I4mM;`?%hx`iS%I$fe;upb!d2S(DzRt+k_o;|Ch^B2^co+ zGPeO^AwgGbai0C)JzE@{8Lv%$fuaoJV3B)^yq$C(2BNuYUcK%ZtShZskaQ2)CGJ=^ z8_7Si^9iMSTNAFHCME|u+Ug{KSwkzo|L>xYC;>wui*)8pINlryI7oMF6%-J7@tn2e zEjW8Mh4B#P6v>~(90^kd!JarplPLb_=AyE+Ekhl^K&skt-`J?nbh%zsN9$ z!Q?Xe6LtnTZ<2pkU$-^wU!T0m0dS3DXjks`L}p< zbrtr(la5zVV~C2wdA#4jbcK1YtzAPX{~Z_@#*RiI#)a%>6(JIr|!NdHu3s<<-kND3tZhDxGhhjr2DbFNMgmt?QwP(VtF+LFeT^VIF!mb5Q-s0 zNwJnJ%_s3NCJqDd?Q?&VIDGqqu~GEDn%jc{SPx*OBY-TT3BULqbMgC6Dve@~ zA_YZK@uyjiC??=C{htLD6}rS@*s~z!;TDMCafb1n39QR-0&aPCcUL{&cpQ5=guM+r z9mb!kwYFsKDgBfVJ_oKSXF>k=LCPBm*wRXZz#T##;CayuvM=;MIM|>N)QLSXS~Qvh zCZEQH1feOR?bl&%P3cDxRcQ@b&zvOo^VgllRx(zOTJR?_`su@Xf)~#J*4mHM23L1u zpmJ=rTE0nx`?tiqY>m6~>_5l{91_x=a*$vkX2`hXi;N0Mc-O8nL$u1rPhwGuk5&6N z{Ia3BmmL|9u6qJ&{hw+GT3+B7FB0(=i!1NCn{ov?u46z{l)706ai5y=2)gDjLMr8W zj(t6!acHi(oy!lFv>o<{4nDG=k2*zBF)_G?dkUj>Oqfl>{(IDcE3eKzm_GkCi*It@ zo&K&^mC=`*%$$Y0eNGF_jP$3hv-*hdiy|RL4?u9Yn5D!1^IdA$w7ZOrRkD znPXKW=GfK$Cbq2%wf?liT z|0H`^yh@ovP5rr=%M_VO3K?66^~d$bF~u)Y<=R4( zxd#*}N#B5=Nr*`P9MpqIv_+D<96J*B50fxSxwco8-!Nw(fjA}y(u9#1 z?SDquJSXN|b`gG_kf&t#iwm~qiV(#zEPH-z`2l!FHv5gBw%QFKd#^Rzvi@fmiv(9@ zj&BC@*K*^4W&U9KAd=mj6Rax?cqkGq-%Bb;U%jqa7Wq<)hEjRYWa1;L{}$W1)a^o- zhp;Cg3c@Rx!{4JhxD?@3t&z@1y~}P182ikzC0M?c(sVKB7rwqI{!q{unV+~Xo8Ai~ zpCX8a1FUG*!JR8lNl&sFCO2-|*uqA6)mykk=lTvE_&a+C->#JUcy$8tf0=C2lwjsK z>J7ih&7BEdlRgUpBxN`lsM&33<(xg#FD zVP++Sep*x0gp;rUccaLX2XTC|K-SD|=$9-w)Fl`y4W%a_TzI}jXk;J?AH1fqL)v3~n#RQU`^h<9SbTLkq2$y5?=BD^W9>zJc7JQCPH_OHBG1RlC7cI( zZd{pN^gQ|xNju7k8O&tW&w2Y@sHJmz2snrocy>K*oCjEcbTp#!ru|bO#N*xfH9ST7!VA#!3U$o_#Z*21$oyYNq zg7t4z@(){8CGxf^gS@u(I>X5CeW0PaPK5+VI^9+TL505yN3UxCF&6F?*X8%)9u7D6 ztf5^=5i-@mW)9 z^uUB5=(rFE8g8Ht(yXMX-YnYV$E4(<5e2|7IZ7}A%KAgcvq?ws=&I!4ja%>HpT4JX zI(Xc%`0C{0UH?|zBFn!X6FA>n^D?%?gwd|jp7RwGGYK^AZTV|6M8SmAKf}6aC z?3UkZcUJ91QjO9~2A5rE$C0;DloTY$xIYCb#IKzrAdJFo>kWAl2U_q&#jo^0wVT4XF`ABe-vC@=CwBnXOl0(1p$5rq~a-7mI>M6tdn>2<1| zzPrCii5Y#jPLEticE~!v2&tCj*rp)norah6OsLT=M!L4IUqH`AjA3BJzYS}0dt}hs z^1Z?1CUiF};4rL5J)@jkFrk*DUB%q_Fj_}o7X&R1I-$<V2At>v{3}+ENOOGzh zm%~yb-9aR^kS=v}5+6FcVDO*aG|}HTXyxIRde9hF_a1gfN|C6p8=&*cjozS-jJ0m-fFzAY-KC- zZ#^7%Mx>Q&M1uqmRKn4e9S~*Y*9)Zl0IO&cv-X}%LXaeL0o3OT+`DlX`DqQp>d|*WmlHK+Il(G;6S@ z`7F=j$}$-l8G9f;Eo`4mX(ffky_Sc#5_wJTF*54nxK^d~NpRE^L0I>BtE%LYm8HHK zpLC#tyQwiucJ3kgKUcj8xN7^N3m7$4QBe_as(!w`-od>RBv6QJ$kiMdN-nicu}aA` zgA9Hl>(n5<+4<$><0*F-s2c^&{}&hrBH@fY*0tzJu^w_)Q#k=x17@&XRI zWKS1H0z^%E1&s!lU39*EO;Rk-DVvf#o>2-o3^@HhvT(t-_4u)9@cl2=US*MuK{`$+ZW{-n+K7xW(wvtq#Q25{%?Mtx5L5TK)CD4*S*D0Eaz!KR< z`pa#kv~Ti_ZeeHx>i@Td62L^5?JC!&r<2TnBQ-1)E`AumB(94g^YvOE8@Dz|u%_ff zkzQSBFbFy<-qFiPHc$;#EL=z7iGxTjJ%cIkF)&Db{rTDZn;oWCkL~h%HbM@{0-CP- zU;s!+8d$zWtsq2cGJhXD(C?NFE({5Nf#&Y~5)zwa%JNG0PW+lHeS2%~7d8N{k5Ue& z7>B?FB48DilSO)&2+9!6E+8XHjl6sP$=4mkl4~0s6Qi!GI^)rQaAr~E(yd6vQRT~_ z?PS7z$DHav=*tv)wPo*dHtra=V!|60Xl7W~Jkm1n-OKjQ<#zV1GQCzKMg2=DgyQnFC( zR47QpY*?ue)~Ur=Q}X8+AQD^Tu?Mg5#6Nj|Z;CH`_fvagct>0Imq{)odc!B`O$r)n6Te-*0@GEDOJp`)~kp>piC$9u&9z2nO<1Z!Et&4V?|^fNO%adJr1(5{!$Qfk3&li$?DrbRiJLXnankl||e z-pdy$ztB$;Bf7KY5l`Ad@80#kXga-8G8ngU_X{tRwnYpW28*z&dR{akH4j#>sLk=e?^MI18CO?$Hm_%vVh~hkV08Y{uCc;7x4n#btA}?|30XtM}Udk$pu- zJdHUE&O`m2uK45pU~Qv@_bkK8O|PcZIgixgj{W+*o0}5@(kB4f)K31BZgXc5Lu^Qw z%Gh_-waAt|6geSBr%XT~LTZ5{&aqRAQjes9A%7;B?mo!vNn&TCfA7}X4l<|4mgSpo zxuiucWis81reGj`kYV%ysALKpr!vK?`1Z-3i3&v)go1lC;?!t$i9ag|p+ds?beD_f+ zH%*ReMo8l8?e%U_|ADfid8v+%rdJ65qC)L_Q4F&FQi&rJieN>`vceVGvO5DV#=dPy z6#Z_hPS7ovWe(=JLQY{((F35=8yp@Yl6%D7PDl#vVE=P=pX@61y4+jW_WGYdVFbn$ z_TKJD;HI<=hj5~3z4jzO5Cnz2iDsvp z}^E<5p}&&8ysyNo{>1WAaOD~wK8Nv=i|)mN!Mvu0XQfx;7F!q^I~4d zpKMc*Uv91RTPPIXGR}A7`+z{e@0v@2NYJ$7^gTzvaE_Y`&62XM_dnf#s{z04%zE7! zdfc<$zLcPZZN25f9@BV8KyWD^DiNW!oO^1B3o1McOnC|Sp%5cGsAz2ME7;ozyyxas zT-h(IQ)*{dP;hJ1h04BGK~Tw|N9LK?aL2HlZF$+zImG(+M21zWRV%W}e(s0=IRL-xc}_DKB= zkD{3y!H>`@O!qia2Q0S%L<0&>HluAQ_4Lufcu3e$X?KfUA`W&nDVEP0N;_?%a(+5s z6a18YlN#5y7eA)|1t+IH+UorIl1x>~Bbt0zSBalv*#o>IugAOwBl!@VYXr*#gdEC@pceJ+Tw`v{GZ2jHR=#9_zIzF_~zI8!~ zcUkR?^ECofhT`GLC1Y$3yEhHAYdU6$oC~|Ta}bCcd;Bcy{F~!x4UFG0S0&1}!Pch1 z3Ic3IO73bysZ3IC!TE%)##5nZkNw#Qe{FO zmi9o#-Hkx}2ySD5;!Af7c)9kQVq9nll`x$9%!4xlK2!S&LImseOe2>$T*RK@0(Q2Q z7zZ>=Pak~7^EegZB+%7*-1j6s)cSQXQfJ`zH*;tV-rPehbqz6{Pc%VFh7) zpZLgLH7NGzL{SeOUnek?HhiiG;L>FswHp9lcmgyI^6adrT*L>f-zk$!#dX|Vw{Y=X ze3)$ZA8DzfSuZhjr*n)Kql_0l7h8;ub4{yax4N~a+*mwB$(YE3RKB&it&Y_NY)Z1J zrB@>gQ0bMfwwIWu8)pKdgYND&F4O;*_+pKG;bhh44V`KAdJ1Ff<42%^yAAyqVkm0J zij9p;b=>#j>>w{MFNZyd^dD?&YT~>>YlAz1aWLFvFpH#wf#1)+Nd45*GE1hUYKum# zHK?(_lH4fU4A`658)-RSYr!=X-r$Bk85gp&9|-{kwYeLO>~ydLq(cRFp&Y0nq6z_z z;vc9~8UKi4tr2B73tv8j$1gRMT0SppJ#T;?{Rfhq02%mzDSC9G>lp?@lWn3hBCZ=! z^u9$11YK5m4BD2yn5kM}JX_Bhk!jQ{nqUW@q$t}o*Lw;OvwJRZ&`Og|k#?ar_5h87 zohgB+$C;3?ZN$+6mcUN4I#NQgaopOJMZG^$YDKR?_u7+Pv51AI;g6vlR}*k zc!2VF0!LE(GOT6Do3KC5$m1Li)y${Wd`JZ+$%^C$Fc=ofEHU|*0nHMDE)*q{8L1H` zjTTCPyBqu_;N1izl@aCqor4cW@8m%zU*yw7p6KXkN;o?@$rJ-=FS>ec@s=^KZ6fBf zrf)~xU-M}fHIaRN(R^?@6RVu?Wq6Cp18xc!VM$~YYRp!$#(Un`C~Iubu#21w0f&RS z<;_!UQzC7jlos+#Xxec`uO=`8VAHDG@t@^^T-%PLfBeR@?xTbme|9rz7Ww;GT0ESe z@hgZ-l`-A{7qAG~HRavi)$vOw0x0wJ)J${xC^?5ZgJqX`O-Il$KgQ5$xc&w%1PqrO zfjoU)K%LMe59%p6j-LF4T8m?fcrdbq1Or9t+I)vjLTZ%Y=f#oo1&Uy~zngD55Xf0| zrcwWz2iXN1^4<7S%1pfmUo5?9L(LA|<+~ zkt{HfCPr$+$WY%*>2$`V&GxH{4##W)wU^% zVgH=3JOIeC1fVR485}^EX(t}vi$%s*jG<-JA_Org?*;dHmwMkNjJ2r4Tv}?nB@$zq z_qxkxLlusE-9_=CWkvTx|GRhZ0LrZPRRIabjjrq2kf)IptVl}OiMxS2>uPtn4(yaY zLS_6Ez}%Nx58t)g)aa+}2)~PT_>B2(r5~NZc~)3dTEEfIq9CbvwQ7l=?&LMa*YZoA zDezjyn!PlDju4rrjjUk(4(7+6^wn;turh?iSsFB;pGI;IAg-H?uewR3V<4%y$^d@O zlsV!$e6tf2v^a8pl6jUXdk&b+Me?i%f@9X19u|(Nj$YGr-bz=gSou?5hxJ-n2{>Pg zVUYd6`|}}JLf@x{T$cKwuVzbha53k%&f2F;7Ig98FACX$PBn;$P%=EP|rKqc!MrFU{|5d**H@JQ}cY1jExfjI293y|*`JOU| z#%&iY=~Y>JtI3yhE#KUWCiD#rrCfgYX5>GuDf%(co_zk$i+pP=hUTjG<;guWzIpe()3Dn5StJyngVP-ZdtWcEe_j+S6 zp-uNxF!RLVoZ2uqWMh;#rqqk`q{0dfWZ{q~WC0Q?ysgC&KkjH3{t zX8E;<3U?Rpmtj|plh>SvaeK#|N-??7^cg8BK$QS{dmp4VDNFXa$JtNzi3~aOyMb(K zes!g{Wwj+*oD+5vwLl@;j9DI4`c!e9W`R|I;k0&s{TKJ%uaSSWid;?lv&RsNbZ*=kV*eBp4|AM`jrZR;G-24k*{8+Oxo1| zb|E7wy5g0=sVMvjq|_{=;a*^6Z5?w@y5aNZCm>D7za9a2xipytPO=SR@Bv^>IAFbi z5P?zZb$NAl_2#GJiV8cZF|o+#34y+5wjAHctsg&r0IP?=U?Ar8zQ*u+zSb>(Rg(5Q{(8{- zY46OGLd`Ijlk73};AM@zOs1^wA>ZdIMj;}}?|)}kuKUK`j||!+q&hAXLoe>Kzdlo6 zU(cqVF*rE*73V(XF02|40s2kF90~;r7&`!?LI90HA?jhB!~FU0&dWu4gFk_oze!Bk zwPAUdL56E&8-9TNT89LqzfB1}+&UvBzZV%DdHY>=MK}q^GSC;A1f1;+4yu3&Lvzcx zICaZz`(jND4ZjMhl0*^7?@QNAr6+#ruaoYkJ9C@8R4^KEu+{n&6J=h1`{&Y6Ow|EI z&4%TpdfvEW)3#!khK8#JAj1GWgElI3#f$UeVXTnqQaaujr|ZA0JDe`9ba%pCI=(Mo z@2L4;;Ur%6JRUbyHnk>9&Gig$4Y4=h(hCh|UkS!Eq_4-_MhIY{>Baw$wr-KiUYy}m zL$^nJ7%yfr&t?ExfC*`uw3u)+euH@y51Ml~>Va5S&1`RPBMJbjASd%|-MSR#aFh>Y zh5TJx(-pDBmOakY3;=pGY7ml<3i3=OG-5V4ANBH#k6LR^YI9T z>-LRA9;1|`Bqw?$)u>m+AMKq$P@pC?W(;YXuee;If%4D{>tpXwtgf{xu%1Y6MU9+(#eb0{6 zlzS(i7Qf%RQ84&MXZfhju!_2@_aS?_+7xaN5QEKsc3uKN>k^%pmd5sT%_FNK9 znAfOhJYPR6O%Z5(@QDKEG<+QvS#hWg6lyRIMZahJeH`_Le#<2VU1u$L$>{hYt4oW7 zqko7EPu>#f{m*MXqOT>C^gy_F`c+t60ZrqxJhchj9x(T!31Fv|00B@#>A)px*4^bi z!?DK%{WN1U_t`neus|>OdC?TmcUb4<8En*=L6EVpA1BP`AqzkH1mZ1R%>Hz`6vsF< zc~WDQH06O*qY2Z%gz%l)r_(G?e)@xBy~0<>SvlrgYr zxwe3&ON%o>zXS+FT7g{1Ek8#0<*(W(6;K=`M00oXd*{kXp8Mkisj_)HWh5V_1rGqT z-()~nhsB}t!e5~s;TIdv6>pT(Hffm@aMn7@m%8j1-qDuzJ~qNM-s;qt0z4nk+*m#b zG@TTYQXmu@kqwBxz?883Gzoo%^qdKPzot)_O)}?cLiLFxEaWlSd}OMs zjP_F4(P98^4+CTLF8NF=f#fNZfM!FUy4hDxrvFuR>&p9{wZ;W~J4dI>1BpF7J?=)1 zHTwNNEr9wWRdtyFNEi{T0L;9mS_@Vh>(`XI!35_}WCvZP777DM?CeMil@7ix5Wt0F zU~pk{O(wJAD8pROf+PZt{3QRx=?&it)Q#}i+emN}f}4W&w?1~h5{0llo*M3VlIy$ zzvPmb`QN-IEr#5809mG@C|nUQrUoXAUdo3^ELa?3bkB-^*j96wtrk?Q+Nxojd*u9L z2ON_1?oe+4KL$UzJGf_uzq*nq}Et9YRIaJ zQyFVl10+7}_X|5x*aM@f%c?E6YuO;1RsCD9o6YYN4yVxY0iOnAk9C^8xNT2~wev`czu2Kj)zV|t%eZRhtNVQIs~%_5AKZU~Yui0@ z_u7p0?#K6$)3wqP634Ex2d)6wfPst*4FO&C$lxIN!-o@g!qhWGffj_9ARrFTSxjSF_)yU3T>9VqkUmJipX z-=kb+^OVqghaDALkpf*6He6a-nz7fpNi+A479{Wql}<0wVfe* zb!%(uf#phpJo2FX5!qH%97v5qI&`b3YCNKW;l`i#SGQVwu8al%OEzVS=nVGO?uek% zG;0PwAnOFk(;+Ls9_>?D=V<@sA)j#RloIvHzkAe#9y9g7& zflHUuJe4}Q!q>&HO+@lQC%2M(Eqdes3>GCns@BISvPZ@*S)G#iVm3MRk-CH|LxwG-e20PA}Y z2nqwg|C{1>OC0^UQipgRKD^xNp&?<~o0nnKH9`7XoKBTH$bsj8iPKxieDxIFX(l#b0^3;mN^{AUJ^&BDUM%MF`j zV+erd0n(qhG}&XzHAd$PBIC&`WEj|IXPTyMSX(Y^M5^IFiM8Ru7rk0bNEgeVp@ zNGPD4bh|tj1Pox=KV5F^tYfR+;nsJ>9DZ3@6Cj1wq>PQ5N1BiJ25K}0`xhJlB%GcK zcD!G4R8UbJ9@voAjFAM06HlKJNAAz~RkIiXH;qEj628f`1)|WD`#|NR|79%eX)ZM} zXO#e;ECRY7S=rXlpY;l~v{V>pbyy#72yeW25vo4zNfQ86cB{6!*m={jZL9J@D@l2= zZ8dEN8Bh=(8IXOS;#q&;HVoVqzdN_$N0`8wy8WP`^D%0cE|4_rQ<2H4j@IL|Q;|jLwJ=EBX3Naa((ig`eAtBz)o0lO} z4*UclF_B>Er0l(?KO04#SA__7ALqA5_$57Wy0+hVq|uo3I{_sCx{8dwtmfDw09o$X zQcp|~tu_csZD7*u?LKAH#wB-Ax?!NyBO>x%(jzH#ec{f&(-yR~nAD|6t*f*-%Xrf7 zvfQ=5(kN?CR_ti(vr)rG2GqHUA3gvW53V74>9B;_M_F?%NZ3 zmb>7QH<7U1r2h=vW?nR8aXsI`{hV(X7r^}pk?F&u!ij1i1^~J!=!)TLidu%0Ed(Ta*MLfjRtq22N=l~{TFWo3*P{zCmh$DFJysOby zwRHqeu}JaW<>_H0g7n&xoV~zV{Ao1z8u18KZ#Xch!m3R@{j>1~1;`4q2e>_;xJ_1J zO&zM8eKmaKAure`a)PdoX9PC4mOQAC;hyqh;7(;}RQt)ix~C8UaDwKAs5OosGh@HM zQHKSZS-ZMf&RkFWym<$aC{KLR9kU{N5 z5)9r^F1Tq$MTP9)D9b$arish253`h6hZ`U7M5lSTx;LDBd6pA%40NE$_4qr-Y(>+B zLYNyf}{T2^PK^tAhvsW@Gvly)5nbdkW`YWhQ&F$woLVj@Eh@ znceH0=G|Os3v_=M^VqX_*~4Jj-&0zxf$NrM1)Fz^-H^A=j->``ao-#dlE^@K4}Z?@ zi!x>6w0$de!n}bcHx`NTZUZBWA9lS2m!uA7HyZUt#*5t3Ro`BoqpXdbU;S$nJVq}f z699!u{hW=E)Cd!j`PrVbrkH-7wxui)-3!*0CJ+0G?W~oUv$#on=aY+avwvj!7>>?2IjXkbn|aJXYZJ7{^wc{Qd~LE_ z9_VIPR9e(--Xe)MIVslthyf-tE#P5&xu5T7c-2%?fF!HUnP62_!0J$#qz8(t&Rtz) z3)Tr+yq0~sCquA1I7DvZe8+v&DKzt?L^9TADT!`k<-{|{3-1x=y{m~WwM8Hc8Fg#x;1u+82Dg|1= z;iZcG+avh2clI!- z1*`%{Jcgg|ql+(*oEn`XK+!3tv;dU}XVTm&`xB{N8tA?JRkJL)Qrdl=q2pe{M6~px zxo2;*D3LR1MOd@<1URu{W5Eca^mUx6bym_OJnoppU80tuDahLx;pIJ1cOOIsV2y1% zO>uE?SJa>R@s=bWrg3qX={bd;Q&3|PKhjkiw5+T_Qgx6hvo?K9mq@MK%}@ow`h&Rr`9 z2tWnRk^1s^Dvx**O?U!`ZStp^k4d)tZl)o0l7?kj`b>iFV|sM(n#hT6j~Zyy-DtcT zmgNL2o}(Ym05ulvQYE=n=QU)sn|AV=4FCShiua}wF)fxFhx0srxlO_grk zV53(Z2QU@^35jnGbzBMX5*=51HUOA)u_LCVLb@T#Up6$l5w^Gp&*R9G-Z!$4iFC)% zcub+!cswM@)<(N8Pj0;H{*f$bogw4*ZAZ9!{|d!leu1D(W1WbN{t``)_1sJYXB+YW zhX$>xfI5BsQ_GQ&{YPW%kp$wd-D|X~qNyH6XC~tVl_wD5GFgj@;QL#Ct@93fhytL^ zY2aC*cL0t66WeDtUCM%AldKbAy_fyt2bKYJ0w}$zW>AP5&}{a#g8NE-loOrAWqpLF z4Gj`1h8e}%$k3#p4OeQr(Ehzc;wwP@0oo6sq}v_OJg=U2!0#7HWU&w!wVz)b#_L>J zB3eI9C)H&luxH|x1~j)7uOu@^8cSzwg!D^3tauGsJ?rkuZw+`VARnEVy+8X@Nm}1> zT;`)L3}iHwaEYd4AS-FErSftBkr~ax@a_2LLL*L{h3$_=F*b{4&A2LuE}zR93&pAz zI=|O0m9S#?n1E=Btl%SK=ut)^TJS3_;_y|Ggw6kyJtD(T4@yK;cTSIXLe0M7_5j?E z@J&ShUGw0T*6h;cG6QyNHe`N51riJ|@b(F8Knl(CH$SjtpP^VTOD@NrekbE-H>qN{ zJh*D35Rr4^4A2U;tIPYW9}@?k1`EA+Y5*cb;Mw57UP&GbXzqPwfZnli!met@jb5ps zZo+rQy+-7|)&{66EIbK~LLo3oKqVD)A2ca!;1)P0Z5uqk(StoJu2iNT3S@bCFWOt_ z%_TH6?*O2y+dmXK`4%xVI<>sVQZ~-7dbVLCoR=mqyF*z6v`m0-{CmfB)$uztG;~pl zjq?Dd#p(SkjePiqwXK~Q*wtaIyK(!X`xN1c>Yl2tGYc^S@X2^ zA3n?4WyXe|OX(Cw4-a2Uq(`#};nm*L4z+u$YPdS|B;hl5W?c=aah(O1hOn2J?N)}WH1cH4{+2sI-Oix zfWu}0Ql!mZy)^p}d#6O!x$)>mP3IJQ)YQ73b&?Dl)!@7z z3A|y#j27n}5I)m@BNeu`t4BL4q@<+4Nu=vT&W2pb-=Z%??oM)*3@>g88Ow?cuIe)B z_r~9ggI2d*i|1`{&R8OdV#kwb(-|z-}}R| zejXSKI;oAw7`13Ub2y(}p3S|`BoiCV$l8g;I^-@#Mg5Gm4!EW}tg}b_Mx2#ko!iuj zgh0|MwHawI4ehEdj*FuJBsT@E^Bk}Zksy|+>s z$I9MhNA}(tMzYG@GLCiZJwgcCaYA+(A$xCruT!7zA3yzZKOXlVb+18h=DyE(Be0)<<42|0>nhN2QiZSk!uqYI!d99;P;=uhCzW| zHuTDE7LM?)0<#T5D%plvL1v9`Hsj%B?j(6O6qdKrFZb%AhWg8VxEjd*Aq&a3Max0> zRKiZbd%)L2Y68Y!oB%!c9F-AeqPB7TzR`UmbVt$QChAJ`+p{PQq0OT|g-^JbrczSZ zr!1wFgf-UUTGr!LDAy;qMfFFhIyQaI!ARw{Hle-!cwOSqkrKOIqR4HVF9>ClVylnn zzn0lLw>2`f^_$FoZ^Zk-*jx_NV?DK(y@Y7*s$pPi>lVgF+W!mV%BTXrpozi z=288mlGuH}Ouuq_w(t)$gPkBP=#u?=<=>#N_CFGv?RZ>*jum zwtQas?ET-c0JxI)m^CCZ8zU@BQPf1K-*3{6qxP15@d9UJmam>9zi@^romnXjL{PPQ z^ij>EEVq1aH<1S_GZF!&-Cz(=xz+0I`0~{$Cznszhh`Q$>`gD#Z`1YD2uM-}6+BNC6Cn0|J&9XRih}w~n1RnLW0TNc{s4YE>igcI_f*xYU}Z#LuJ*W*e%gwBb=*m!x%eg5fz8?l-yjCd z;sl}zTpE9Z)CInzUT5J#XM~7TdLygc?wqekOEceUf6)5&-sMEy!7cvlz8x}aJ)4s9 z7!qPdw~7gd$=-QKU_!{r$dm_4aBk&fXH$06dhM^BoOstyYCPQD(21s-97-7;lHv9$ zv`n-a2e2$4pZQv^(7umhjK&anL!uOO$V|G5qz|9r(?&cD#`4&o8t{B)bzM9;HEmYk zxyfR2zbd`;xUAKM7yGqTrZOw>P>;WFm~)oN$di5>H+qi7U#E=);_Hf4Co6Wn#Ug)a z=$Ae{t_Q=nB)1MvsvCC;frL;-sCy?Pkg&EN9xWI9ZMKn||B^TfI^JIgzEcB*lx)3D z=M!@+8&Qp_QDw4>_J>- z@YkI$`<)g`9FO*shh15qG$~lF>)N^D+OWc(r4*Z|f`k0ge|6U}E4U-4^-H$N#1Yx- zj&t$4rT+Bh%K>G92iM~;`~7ct?CXloJJU`&ftq~TVpRXW`O2RQp>!86j9)w$zVsP? z!o2gV?+dKk*_N2-3Lq=PYP7WUya9_^Nb~ar8DVX$Q2P%69497{-+={`Idp2+WM$7) z?<|y)=6ltuacO)%38=ybr|$Z5Hple|OVd_!K`QD% zA%gGs8OJt!2Ob#q2`W(+=c(-GA3=yxwaxKNTL|cbeEz{b8F*`HceLo{ zdsbFfdU^&2GiC)X$E#Rh7#q(3xfX*!!d~~-OZwo)Lp>^DnrO8O6lYtMLIZN95nhA!h-uVp^$lt`l*4wd6@B$kG$i)#&pRGT`lZANV3zMo_F zC$O3+SnvQ8GtfvdygcZ4U*ng~#N*ZKtC))nxAdK=r@9eb!_GcgYDZ@rXEBeY!$tk} ztj*0`9USr|tt-b?<%RWGiGepmswij2TA^GHMKcUu$Er^kon6c%LEV)9e)j&cKVd7U zJi3RD{wsoM9&r-N*+Tk6&pmbhz(5!Wv=V`L`fsV1MH#gm8R0n{*>Hc3aYSjMQCD3Q zbTEDkAhyR=T}!n@J$Ig?hQ>BNEyVqY^^r3YJ|5@B@_!eq&iTjh{expI`jWv|cK*Un zukK6yu(im)MRv?aAB`ECGpSF%mK9*8_|$hKB3a{?7MXvBiT0 z1a>dHthRPy&Da*QkdFyz$QIhTB){(J-7ZHk@hN~94p4fX6!^4MA9ISb7v4M`EG%27 zK0R>~&YzP~Cc=7HK0237E#a#-;!+cXxr!Gq7|`oR{##(zVl=0`mkW6o3~VaL6K%5w zEi;yisGo(_{=`mKV@6sgGK(YcZT)aEZ>V3^UQoXmd{YrehCou~E6E}7J;?mG*6eX| zNELreSpkaB4_`WSF8``cU9KzLRiKXo|7T*hM`}=@?+|B}&?)^A%%MQYpx@`zbK303 zGx(|9kStoR(qYpdAu}1*Ps9Yg!4K(|-x$hiyh^&GJv>cNnK4H4P7KR!mKf$3DehWU zvuN%>rj&$)2A5-}`yuOl$R+6xD={j4BJK|_G?`DdLLvxM`avB$w|xkUy>VW=Vh*1| z2caxLZg)btq~br`4k8Qo?%x(un$HRNnWqM-uEgw7Q;YqSk$*rE<~PLVy$ct0oD!>N5X1lrmb0|C!2#F-@o_2%}48vg77a+41`mv)`G39z@y+~?i#o# zRX7!&oP07|-4xZo(Dccx`csX6>5k8I1uHPq=9=1Lnd#+|e_F}Mj{J>6-qkW86EWc% zg=(y3Zha7w}=2D6-4O$c2Zecf_74`)DhcC(GjFSH(D*@1n!<>`)JzUHRT^} z<70TS!*~S0zGNh(+R;U;`w=}!U8pS*fl!@4-}Cw<&b{pv{*TL$u$F>tvD3U9Ao9SN<6-wgaN6TCUY2jNZ4P$i#Bbv9nZ0qoonRYCMYP4`hgA#(&1f-(^KhVp}H0D(1v^^d+t(Q{in?%NBiGNA21U+NJ!O=EOUQs@{{-Ij|FC|nhZxy?v3n)5f2Bg7 znTVdAfk2A`ZH}+*9W?%jmI(F=HgHwwM{@TZ4w{XC_F2cTN8 z*PEk|6oEt;Iw*0!BRmt+#P;Wb+WLu4CcySuEQi$+^%AF2q&CidH6|X ziH`QkZ3WNN9LvOPOAN`E^ni>1Q;BO!?R0NIF&W}=gdY;ph zL(r@Ns=)P{t_AD9zB6Zw7J~I=JGKekP?5iyOTjlp&AOLw{m`Chf0YfLGJTXX2jz?d zse!>XTF|j~!{;T}{LA~gPxcMes?`q^nXbS7IAmqUod6g0WG6?$h4QNHKP&&s6mYb8 zPJ_I7CS>rd41J1i_1LawuR}xWX0UVwb%c^UBZ&;6@^-^J0?C6^zdv6#Su~4!`ue6C zyfiy4y{9!tosm8C{!bA@p*>j$I!l{8Qy#=Yx}G)yISAi~!=TZ5vn8NAj>9YUocg@@ zTu?w_U5H(Wc%o^s7AN{L;bX$!*i0*$?@^Z|K`wnWvTGBFqMXS+pJ~NWNo>9s8n;U& zUs!&Na+bGTWq7HLmh`n>Y4piEGCiN|AXRq-Yua7x_KpsogwO?#dQ*I^zb}K&7meXd z^?8(!vU0Fd33>9y?UV27WNMrbS2wEXsS%TOe|R65=fuQGA3gX!D8_2HZ&IXAs_A%g zJ^$b!$*xgbOY5n_CmaIxNP~cg((zE7nW3h9DG=UA*=4_9oOCGzXVQJaF{h!1G$VX#BCdf+-CEk|I6}WO5m@7gy zy=l{NBz9|?O5uJCKNaxO=F3@5A+dd?aa$<_Y+2cQns$eE zrNb!?3#X3?IT{aUW+Nn0Q&WpZmXn<@K@*4|^ePG@dc?fUS;H=qoS`7{0RbW?^9*b3 zA0iHaNmKhA&Nl!u0x>_uLlAP5Nz^%yb^gxL_Xz<L#(zw7JQuY)Hm$9{)VBkZ3x_r~oc4t^&kEafPFx!DF2 zg8yx4M_e?|NU@~~m|Wwq-JTf~k*Xw79L?fjuAlJvE4mR)*IRNF&v4r5rge9`vrxZoSXk-=SL6H&R#i^Umw3jYwwP3 zi*`5wPsJR=OoU_Ag*Bn~_fEYa(m`Loi^=-3o%&>{GhAxIaPN+oue}7}fXMXGo?GLt zYoX_#Q8Yu$mI_EQZHeS)CvJ%5h)GCHyHcWgmD0qvG0ynn2H&$j5*E6(N3huvDIN zX#7j!Jnnq!XVO)>Mh`NYox{R@K81Zzf#IJ8@^9Nnf0@d2Afx93{xi(asFcBBdc(Q# z=JSn9?ePyL%6gpn3)LRv%31Q@Etlo43t77K?p5yzFHIE-yPC1(XA3|cAK>?!Gi_kj zGrNTaDU+C=&-kUC)?yGgq6{YPvjY>v;+Hx9cCGSH2b)TMjt7e$1_ro(c^OVOc%7g5 zAQtCY?1;Ax^Js%oT$7${EpE>0G!(t4Bf*-zHG61$QEq4c^cZNtr?>3IrY)jj@*u5? zLEPRt^iF?YR$zsk5$=oXh_IWiyZ=Ex2c6TOT8iE~Nbdv_alN7M?p&v;ApD5Ga>*JNWb~~B2<)+Su85w`9d;WJ{2M`g`(tLQ&J=3y#sblwq zv4RuFL&hbM#k9P(r)B2#PfAtRm^_H|5c$|n{Kv6kg?(iV9Vp_FS)-h%7Tui1nrx&zp8K7E02?=GFLj#pE5w2{V1NrBya z4-D%Tzyiu%axRgHN&ul4O~Jl&%M1_ zQ+mZc&OWUQ!c$T$aju8ZW+kQ;^L)&CQ_?+M`kL}k@qhgzyb6fTdwWl?W$88@zjcv@ zU_}UyIH#!mb}w4+WK7Ep#i3CFkWo=N#W9ZM_L=ACOPy@5#^!dJI`6$@6(y3BR38nr zMJ6N2orkP;dlGo2PuDOq`13NAyf034t_)NWT=|NU{fT;idPB<$Ry|byJw689a9LOc z7lsh?nKvZV^6_E@=HWd>Vqv4(8@ud@yS-g!L;x;fz*xvBs7G9S6?3}fqIm=Vt&6}h!y^GzRSR~=T@ys%BMK~NM$9o#1Day{yb__UK{PE-9;Bmu1 z?g+)I2FuQyXfu8H(=f=|5%)L|#Cyb!Ww2EEZbY56_+I6l_tSY-4*$EPph`gEiKaP$ z*CqZg9gNZ#xJhj1zglIH4qtKpH?(cNxeFqCd|vJQR8q-e`{U{5nsTr2=4zl~5c43R z#bi?2PCy=N&Ejz*vp`knhQO$7J1LF7Q>r)3113JaM-8qIP!_CsJilReajf-hm@=~Q z=c=+fhRF$nGGWT?3a!knB;iNEE9lMLMfS{p%uq>#wQQ9^vydC5#mj}dXl|TVSE9Ux zY|>c_F%JHr;>JCl^rx`UVVIXS@3UHJtU_1Rq}5@n5;hlG_qU21rBuBp-^u+?HD-N> zCnpm<@bt%F(gteFEm($t!zzyMHZhs)HGkpYuo!&@n38&>jEI!)Wj*C_yFO|Ewsph~E&e&VQ8xkY#3>L}z8=05 z^~$n3PO-Y#Y+o5-0U*sz+;a!$d_DI4hIJnfywI=ZJeEX z)A~8s*}*c#ClE)FVS0M#EzU2gPXFZHj|yp@aNHXma?#Z)ki>wx|0UQ%e*^@SnT*1o zJGqF3C@ib>QrTs|Z5q7xL1i))z`Z+tqI&(`!9{MZUL|hcyK#SMKZErbysjCj{d!1M zH&4HQeX9dGgTJ}86LV}jz{%rOUM^ra0r7pEl!X}6mH^n=Sc#?EVN(@7^!BV%w(H?w z1-8GNms;F68ZjQ55-BG~6M?6{-vBWz%ZZ>Um%DwrT`W#Ammtikk8yxcEUlYL+`C4L zd7fLFV?)1RJ=jRZCMhtu#Ibi`W_yr_D*T8cN#L7%HN)voTj#Wy@M6IQBT@}!I4ZUe zy#Y5j?ylZ0X1^{rtMXZWaT`?~o zvLD_mosnWaBn@P4y0fmSPq--zN7blxd!_$S>m8FGPCS>qT)!a^|9??>^+KSNAFsBn zFQQn-o%t8KS{1<7Gi(Pp@Nyk?Iz*j;OL;gVOjUPj=d$`l3Y?nRuEfz&v4y7 z;R~sBvMy^(x0zg90cc>S=N^itDuD1R2rUs}(75%Sp-g9ai)s>i86 zor@#Y6x8uvKYNgfh6&Ja`VIvJOIT=VL|BTbkEfBtfCHd4s!XU=!SLC+?aTfpXj_QO zYxn)>#H5z(Gy3@sEz^Ce?k6@1t&DTqw`OmJnQx<&#F^r{m5EMc49{2+i)5LYkW2Ey zNf2n!a(80xm7DZn=lrChP0eq$Cax8shgAzWr?GVUZfd3whh)A7!0AvuPKY|OXsyxK zhF2rbTNZ*2W%rYvCrs+MTtT^J;MZGC@JDwj8gbZ>?kY_^gWqu`nV6mD{mJvGY(}bq zv%Y`=niFrgxoTC9-3>;A5d$w9I5GBC$3aNDz=L5cVMMqxdVTcBR*h7^yOaSLt)&%D zO+np%I|S}v2(pw#jly+T&>!KQd^QGL4IcXB_i}M2=XaMBh!lE=U96U`L!8Ls6M(41 zSS=;R>wQm~-&|EDnymF&7#cB1NlyG0tjH*o6uZ1b#>-%HKpr5WwAE> zdqKQ?nh?Agqs`|;L^J1+im+z5wQ!nBd4*MtdgiCN##Zh&vgIf>_MA~!lqIk9VetNy z{N^=0Pf_ktdIsNEPP|7xGJRxENg|Il0?z7+bOCMA0PRN(Sm>yQ98ImQt!-`B{)QS~ z|6e$9RiJ)M;WS?A!epaMy&8FX=zK^UDCRV~=B3KD?RfE8wORx^u7UsD3O9+$F{1Ov<{JdJ z^(qtZJBb3J&^K&mb!IzaP3k#~k6hETOz1Zgi*FjcQB~6U4rE`_sr#K+e-&UfuDkI*D96?+er&VMp!%&&v&tdT+#mQM0R6sjrz&(g>D2>M|(R=IxzCgMJcJR z{m&sj3*>Z^m=CK;mqxh+;D4jQrY53VV3z-W@at(%4Hc$3P}JVpdhCByHC z33Ca3;FxRRe9oI>GeQ%cnEi_B11Xn&6e&fvrFLxg3s+$=aefU}Vh|UC4f@Smya9r2 z6JFp({+A;qzedM^#V^p(wsAphA<`A=8x`5wMefM8Sb+(YZ{CitvhPIa546~D0fWWm zFSj%6+}<7Y)TB+~P312X4gBHs`C5IoQ(?wL^DMQ>CI@Y)Kcaq($7~;bv*&OK{_Y`D zK>u|67p|RTJpFvxM0BLV=Xm(wi@y;m1hTD+mRIWZZl9W?w3*^Cj)(CwR*@8ZQKgUb zU;7o2?HvqKQiyG*Z81o2c^^IKk_7oqCT9*!Lo*$3nitp)MIm|DgmteKjQ*oP zvOQmZ=f#+C@^dwmuKr7Rdg)T0RtrJ`W_jq6nIwBB^?+aGW6>$th6Cv@3;R8PacnK!oA+-7|3 zt)4*p1tT{~?L9p2t6zpM4Uaz97yhHNi@QHtBc$(4gQU8>3C-dw>O z;}i>yP@^iyS2QD)TG1+Ib%?HxEPY+3Ka&g!C>RnsnobTxa=09~(Q{a8j>lxn*_%t#pL2O@~vmH+!1wC{m?Vjail{P0VZWR}i(L zlG2U0rCHI9>p>6SVnt$eWg}OeAtgsjfNZ!}`)a<0tuN__M}<(@@h^cD`{oF$8Lv9o zJ)U{WPa(d`bZH*K(UM|0tr-fRzAOq-<*6YWKD>Rj_aoOpUE=A*hWwIj98}()Dl{5> z|Uz~!9s&eJ~*B^`E8|jjp&q4FVII=}`-VS-f z`YpZlQBY2{O15^P1|S=!2}_oIAr23^RS=jkNJ6PBy0_-#ht~Xdi{?MCzJ11o)$;Z! zvs$!-Ud6Do2C<9wmoM{C!Xjw1(D=|o5v=Ll?&JHlS*kpI0t+n6VO z0bv#Sz21$~&~>F@7UeFzDd>!QPGLZ~~Bm%Kvr;(6wMa1 zJdP@cpI3}2*6I!LO%A%y%*o_ca7vt`n@+leZcraIN`(5j6FsTa31cz3CRta6A}t!S zo)HX7U?X4;_xYjX}tS<$Pm z$9sk29ZJbENEJzJG%s$zYn$AvMA%G9W28VbGjL@Fk~iaWC> zsbAKwdk#0Q5)T*G7OzRaZe}SMl_`6mzG9Om|H~xQMPHN0*hOCeueEBm2V8Rb?;9p< zm6VkH4(H=i7upWpvF9-og$qAi_g+-pDU@-zBkul`oT^l1uk#i|9C3H0l})LhC2vxK zb9+V4Xu{~Ds9PlL2FW0e)X^cQFT2rdZ)DVLS-q%?ER)jYeCg+p zn)Q?(#iz<1H3vpq%C5jizoK!QWOG=uwJ%Az|L4B9w9g&Fy6aA!v9BeUJ&^CcW54mT zC1gdUc;mG`3uW5%21vUq2GIF3RvIj%vyss+7z*Klhfvyw1Xxc6|MChism!P?mTyWv zBoOu9c;;;kc`LLX5orJyp7dB3>Nr81X^Lq7H5y>JY{qFbGj}~F_fPr8i6m=^>T7BQ zxrLb_xGdMZuxQD4ju7#IfO%{3!Lt#n$qX89^l9QB{vxtZj!iq>)feYI4e4{^eP4!n zyRlADO}nX~Ru>muPMp7-bouc@rA~C0%%nh%DW*0I4n$`M{v`DrIF+aOK}rQ2KG-CP zo)j(9%jx~S+80(Bj|Fuj)FwwYmiKxw%?_j9jcTmPUaLc(oLwj{@6|vJ=V}kv%zD%r z>3wo9H9!FdT4?#47HQ2(J|fZJJNNY_y6p8`&g(pB{W&U3BQ9~8I`|X7Sr!wgtSZYBR`OJH z{_J|zPa5z%#%(RpW0yAam!I>x13^2CS?DDMGJ|`E#Yu96t##D?U~00j>Ycr3kwhq@ z?LD@Y*q8mzu+&(1kJ6=*vt1so)|SQE4ZJAEwb;v?Hw5!SkzrF&0rL>$3+%;z_v!7G zbqrRBSn`5ix&LUtl#kYs=^Z zzFhZSm))vye`&TX2=8H1K&#z{ZP2M!PdrTk?~T)%#}pvsfF{D~cQ^6h=r>Zjj=^(* zdl=Bt(~6Iex8_^v>waUlsnYfN z2FPg<$b0Gj&yp2$q@|_7#mzjFug9fKNFUqnm@Osb#-i%FQ)-OK^N8g%pY?0 zwvMa{0|}?zQbdioy-*a^Ak~X-y}I~g;C-IwJoBw5%G}&{8v9SPhwxLo$DO2=iPB?K zv@uEO&ib0-JEPWBAPGTR`aeYt)j`tj>G3{A*cH?N-4a8TATq?j$MAkTT5L7s?A?46 zMBmN;B7lMC{L~VjpGqp?d(CkJj8XGipuO+yhNzFjZ42hD<)Fxs`l6)ng$&L?7yaHG zwJUM{1f|2@$1gh1Wet4x_w1*>%KDh1^0U(5Ktr=w@HFXDgnIh$MW5xW2{MCsJUxk4 zRNZCY(E*VY5HU>O#(cfOG7;jp;AsL2UD2{6+rOxpy$e_A{ytE=6k(o)8v1&Je5Zr+ z-MgL*I_%YBs{sL*)u}5+pA)@nJ6}yZvnw<&e`IuS{G~`=mD*Xqp9BYhyt9%0+Mh5i z^1y6(a`!H&9Av>n+C45A_)wyBrGV;|)UiU?Dlzio*`Jf^Ifq_dzQSXnPq+~m9x;Wb z#RaC}iU^vnAFf_Vqcmf)OUwqbicywIo;AM+h|@bw8Ij?$698}l2w`Qwina51yjZ!8 zF9WZHo|Fcc?e?#WiRx;8(jp-e0UX7DvY#@7*43K7 zzM{ez*2JYH%MOPYPXCvGXHYN*Hg^I}F1P?!?fftkRlbc2p9^^Zg9%hI|DW9eM>8Ya zslhNcNW5#>fCT7np!*6nNJvPo_C$ncX3j-Sm5Y(kal_kGmaM8)gv~mKe!JmW-y~o64qDv^?1_5?*k<^jX^b*c~ zd|Jh2Q{gV(oO;7;Su~So$8o@YmB^q6txV)8}AU&Cn=3J3U|W>l)+VKg|mc=E+f_CZ~?LXOO31HIzT= zg&T99{YyXy$u{K3_)I^`C9Eo%{lTPrHyDs;k*LnaL=5m|`_YSPCL!Fu*5Y8Q++_Kk zf`GYNT4+g-huTwvsOR?!BD#Asb`SpGl{BnRc~O4rh@^-~O-oD^c9;P_G?epHLjnY> zk)Tx{U*#9n{L6}z1PKX_9g)&JE+0LSIFFz{?{L%5ysiR=nl#>c&d}Tk!Fh<+VGHu1l+Ob$~)r-GK_$8Od@|Si&#$USAVw1#$ z#P}`;(=0|eFv-+J;>k|8dr^Dv+L%X1dzgu*`HcLM_2ybOI0A#l4D5S<+=hNSM(A;aTc^UTyvQ~eHb#Poh# zeU8AUx!(e5fTXkm-i`13;V@@>M=(`%wtf;w^}&bo0|Typ-seQ<`cXw@8(;T18Kf1` z{W$&TiS);`lZj3H+Ye}y_jGq85R{8sdwJ*_hzTmIso~_2I6v6TG%q(wFc(hZV@2Ck zHr1UE{mRRG6od~}V7CfdBs^-9R^a>Y=DsP3K^(i6>h1*6j8({pkbQS$)plx4-P^ci zO|4wK(O{UAJJRiMI#;OjyHwxD?Z$Dy?xfw5D}r-hB*5#P|05&D0>of3en@6w%z>tu z10d1as6`rIl0yHs+Wt?0zX#fdWB*I>g_;MA=b*5p67yUc$PBW87~S2<5g>-`>TD}@ zZoO8LzvD=mGhqG1$bNqch;$BvI#%RKlHa!78Om?BI5IX)r3=%EbzJB+t&p?&`349A zO$RN!Hulrj?diu2T0ltAS5l;`m(EO($7%%v@0 zCBg{_!JRcR!35gJc-E^Fe&y7$+xdZBqjF*D4zey3VO>-7&x~25+{Kx``Z2$PIXDFJ ziLYgzsSmog$KyPRq$H_5vm*hBGH^a33v#oG|_&k zfq-jZH&Ns9+=|&|JlhiVrPk~y%f#r&Anz!TUl*AZjjG6>CR%MY9>wISvpp7t5Dj!C zJTtA*_#|5%eF5O?KtsAVC?;10!Sej|&M)DzJCrKCdXZYPUL#&^7v-xRicM$7****Pc`;87sMRF0W) zGbpB36n<}6kw*=&&%qGbWWcVOKZM|30wc`e%*@F|vdfI%O|6)u-YlLFxe(oq-5>Gj zli0WRbg>T2dZ6I@@zd0CX<%Srwj-Qc%oS>xh}C0@RRXS z=RwS3%X4iF>U+@}pM#G%KT@ji6YiQ{pfM$t;!k2D!hrg;jxZ zWj_ihK`PT>wwwaUk0@E5?6B}~V!1XLOrKT+G*C&YNXX+(S{^j(Iu|H0DdeDm76zC$ z>2J7J6+}U0XSWN7^9TtENeKM?BVlO3T%F>&5_YRPgiEUHfz008=L=#!gcyrODA#z^ z(DxtK{1kz|0N{>^yc79v{-DIhcZ55L4(SZfV{TkrtW*bv1*$D6`DR_oTuDxorBevx zpA3$WI6r;sSC{co=iiWDyW<1Vkrq&GgW3KSaAcWi{Y|;G$E(O7GAR8vl}CYSaK`fo zephz*EhUSGi+$XszyPJ&H-oERzRtQ*R53WoDDO-$rMa4|OUZYnX?0+qr*~q8F2z+ zm!G__s=TD+eWxjKe#jN)Odb3;8;b)bAo&K|WZ&<6f1t}wpu=TtvOz#dC~qmTXqlE4 z334`YR8R>_O`6Yav4t*)WC`Z>6X^!iNfN5|2t_Rh>5$M;na9cm zMxoF-hHc_s`;$=iHMU6)l+Kyt4CYDZeblWx{p`E9lCa>VWh`I%xVzFZ=90Oa{dCw? zopOv%%%lP|%*{K3+{hg+Ask{*FM360>98f%mwy!lna%t#eCuc{NAAr1R05z{TpI>-S^hp9N=e7qHIZg7XPdNT7v8 znaCq`;keN;Bu)hfH2gOs=yZIUejWP~VAZ8ZgohhI!C9BCW?!nl6-l)9$m4qJa>VQgG%7C|`#+36H+c6Rbu^vNqKX3O6) zp~QMvsgoBCET);0Q0M^EaPBwmZ-eLJjo-$N=&QJx<&a5J{B#GcQEx+r?;&h3a|= z13l>TYax#p1&|(dEQVIkr|P(mntAE_01m7y(;b964@6{Gjsce)K=5x9OksjXW`-B- zI~3SQBi^4dd>20P)ro6YF$bLfetTHIb1P|5JfP;C2~G>)RAP0Ig;!BAcjWu|Nw)(r zF){aOPibDBv1OJ{9#nmgVESG_S_&&lp@upy$efUR!7X1w(r>xoSnDioLn=k|Wb(4{ z$av?$w$2n^YgJV?wsbSCB2(|eHd3V%p)L8A@tw0i{8DM6Hz63K_B*Ps9OHh%40U;- zzL-{{BegC??N}G68UVf4r-JQ=e?6{O7Dp`Z?+&<3mK9j@qyET)P6%%D)7_@Cks+tH z5LDfW?(CfACFhJ*>+#Y)xqfn6^k!p$!F_>=S1aaj0(6#1sUf@)T@Mw4TIWglvq2Y#5QT@?`jIrig3 z#@4am3SF>(5c#;nUQk*?ojE2Eg<$m3=ZC*uzF3Bw6(Giyi%pnN05Qylh6DBQV&!ZN zhXGCKSn9Y{HFK$gWcu6R5(=>;#EsJ?7gk+^OWoXhvW zFO{TETo5VXY$lYW;c8)OMT}djjzHC_M+BkOz0kM@4k&j_jYM25mh_W+>)7-V8@2={ zF-R4K2qr_H`4})t0dGe8TJ!7)A@qaj6uqh}*dE~R=Y+oxXpmaa_ugBfOozZAZipy&4>Q@q*U* z^=mM~d_!cM{_dr?b!*nPzJXJ~YvrJnHt2>DRqED%)0<*pWu2|6Kr?k_^W^j=M`8E& z_QxT>5zE2O%C5%J?P76B!hLT=yS-1Xml|8PMoE0Mn8q%^TODHj@?f6(^?Q`<^ zqvW3~+s0NlgF|J|Ws7%6CTjg`L>O`SL(ZH$yNLyFK2M7viRjOGBLq{k8a7ej2bF=l z{t#k0mKn2D_^0E?p7^_a-DNsj>0ml~c|rE^Lp89EX5BmEXsppJ92V`LRk3GkL)gKb z=hXLvIi>}hM+&!1l0GFNIT>bipmz>{cm;6UO4eO^TovJz1Vh84ymYux4o28rP{ro}bV+UTSvGJ- zA?0yt=nfp2770q~v5?1v%rR`8Y$^18Kvr z-A4r2K_Wjl-hYqK$oGjww{d`r65tm`VAr~>rw&fx-D&5$e(%Z&)0pl+kNN*sA>jUN zO6-3P0#_Hr$|C&a`qJ8maKr^N7mAiVEuEcxUH5jtNYIx$uhP@oe^?}k zosgDh7@yEPhk08Iy8Q03Nb{u(`~_q?YN)HF?1<{s?kTIpk z-21n*c)l&mlV9*|Sw#63vqf>n;lcd}l&&2SIEfIwU+XPyM|x!e>V+3^N61+XL=_od z)vMGpw5{b+%?l_ofibe-9w(lOl@&9#5DgIxuZYO9&{~LE0|BWCBG`7(wF^c~7+tIi zJ-6F?r7|}$A^34B__OEVBC<|Q6l6E$EY{C{P4sC0NMLuls{65Ybh^PaICFrbY&t>5 zgaCc%^Q#LLyRvFUry#3v&?&S+4i*eCFwh$axvl*e$dpItSCY4U!F>&3y?{F+mV%>l zJcumoTu%PaX2k@=9~mgo8-5DqvM z{g4145y!)9ONeQOW+zfr{K)+I@aK)xn^yUwf;H0ET~;EseFN&o#dLSM_Idy&`jaG^YX=F(AS(2f4atu6|Pi`|>c z`w2XCj?kUolx8UV2* zRmC`6mNr?O`H`MsH}|QIhma^{MA{y^4YxMr!S3V1e~CLfk~sP&6drHL-ap0t(D$w{ z)yXz7yR74;WbV~#p*KmAEp_tLFqMZhCz9Z;t{x9GiVy50tyIkePty2ac}~Ch@k;p* zh6-JpNtz5TRf)-nUh8@v>!0od6I*+`WQ9$AeOG>e$Ddj^Z=8H>Sd~OTwM!AUy1WfN z_4U$@GO8yR6JyzG_p4{c$8=IoUo!ar(&rmFW`hU2#0vn)b$o$hs6=1X_a`us2$!I% zno3)&JNxsZSl{C~#T(*b3ah21q{ZFOPnQxB7-!Oaj+PS2Edt&LNJ7hmArf1{XXm-4 zQJ=i_{@O&X&v6w95oyM&AQn6YQ+f{VAVx5EIYY&~UE^WQB}lXf6si`J+5+nh9y zLA}JT*}l!ZT)c;xy74SS8N!PJP^-3`zy#gH0wsyfb)6@v6M})^2WSE%@x!dL89tD( zlytxPOakd{t(f}2bYeL#eekg>F?8uJ?vsB=GHgV(t3bBw0ymlv$59i{9F2? zQRkx{ol(1<>h=z2C(A%dfLGUu)H8J-{1C85svg!sO3z>Z?_Fwj35x34LG!g^QzmUD zGomNTL`I=A%XN4yqP5=^nm8*7$7aT8COIKM%Yd_HW+cp{e|IPzWEQj7ak)0*J!jdYWllsq=r7Ilu=eb)n5L> zgJT>fjwGU`d~%aUEkWmwkhkg4*B#&`vj_q$fvl`rl`0>FLOFU&xXBN)E2u#Dimuqu zZSlrw>N#(AP8!JW8*9&pk~F7M4Rv@GoJ^g2wnbYxQ(dtK-v^ym5IZd5G@rTCrU(K-Mw?+rT#_1UwB}zDsDX4>YSAh0Towy zxweSU&exk}_)z@#-q_XXY<4+q;*$#tcI(Vn83HNnbb+aw_ucc+v~#e8O-xWiKz0V0 z*|@mUBWD~KAt-%72cMs6+7)Fh++!c9ge&WoX!@DTuT2QfNmynKii3=D2me@^AqPDM zbc{Llu=#8r6y6Fof9y6>L|2>P8$T70ZIE9A-xWmiew$yGHZSJ0iY2;N4#xbdd(wkUPkMP_e3ceyxb z8xs!Z#8bywQ2_zXLX8-*`K~Hb8lv%@ZAQ=1`WO;?hnpxt1Es`ahB#+;Lmco6J~hkF ziZ+5}oR41|_7lk33m^jT&Zg)MmH%}CzqmAd)Es;H{K)Wp`Fz*!lwp1gHoe2GwFb#X z_xZwVOh>RvEj(qA2MuA~y<x>ICk^j=Tb6u!ia>O3>Eg;~Ma!GC89O*SIyzhTaQ0lM_?y6S;R2-~eod7xDFrvp z7g+Ck^>6*B{7AxM52DQ**UcP9O@NaX_5IIC^we9}!~*aml~|YaZVqTpo)?%7jbVcl zn>-v~N+4rdi#7k7c0e0NN$Gk#N0N1xiEI#!dC*VsvmPN$M-M)h&%6p48*8W;8ANDj zgW0vKt0T-LRJLVbicdx+CtsYuL>fD<7Ax59S|;y1cLFS^Z{#xR!DJ;YR;5@~;#4#I zJ&it>P?|!fhlyup%Q}>jbGC~&oqC8H=0d)UCY3aeS=(7gAcxvV!%y)Py?#MGvs=7xiE zzG(-+3^z7`&M>XAWL9)&sXTw?j_BQ{e?k({SOBUGHERj_JmA2MPwSs^RD3}Pg(Jcq z8SlG&kCt-WY$px0w7{SW@JmnD>gHxAti`@Q=crp9;iu5qR<%&O-gsd79* zLL7pfPAeVGc)NbVLk59-I$bhGM>f45`bK2ys579`<@;}kkHx9N&M6rAdY#cCH1Z*% zxg>+3Ndz5V#HGN)+bg5J6m63YEs|W>vJze~}U# zjw@CsvLS*k!AE=R^*?vO%Sxg6(W74|2w=#HE?S;CJK38)^gEwq=uhQ)QF)6Yq8b41 z!ZF8`r-)Zi8?`8@k~ZFa<5g%avzt6SnTj(!n?7rwJ`gznJ$;Y?DR&>w8 zc0`&e83lFkyiG=wvU}>3({glVX3&H~Cn;lpXM+GYi!3okvGPyYz<_dg>2=2F zzmE!Z!e9M%P5SbV7!{j|XW-dGg2zT$T?N_jM_OOkV(UN)|jIW^G%@j4Ywkj3EdAHqK@JOl;Y{%aYG|N?!!U z-Pc(a&5Xr+yDoyYxp~z2Q~dvNb>8t*_y7MtAst1IQBK(*qiorQlO#lr86tb{y)z>u zS!Gs22q9z~Gb2Khojpzn*_+?fRo~AaKey}FKV7%$I^O5?e!X7L=kxKnKju7-2!bgv z0gOL#OF_|dYD^OPWRQfc$s^ttFD0BGP0!c;MC>vq>`a0FS^0Vvsqqx+B#@4N8m}y% zIo)LPPs@z>)lt8m&v?0b+3bF4;J5FS-vJy|6!-Y@WdqNda|)K?sb)$NUca?7y7%GS z01#i1wz${+^v`|04At}(FPMUfWHV)~eVcEs$#|Eu>uSN=TJ^s`;9)EObMc_1nl5;Na$pc;uHC1Z1 zJheN_B+c@dOq1>)i`0Zoe{>E2QMUN1btB7vgB+-6ML*PR5MJ6l!9{;AjiLPTd2jLHQ?TL!0^e_jp@qqY!;g@>9zk0Ox}Q>fpqci zhJ6e$&H|a{W^=B(?=#(7x&E9$k(F&yulH4aW!A9UMJfStVR+^m`v1`QzuILA1ga)d z4pMn*-l=nSrC)b`Ad=Vt4dd{KtK;=SAPrmCor3zQ#$W1KeuYl$U;|9?-i_yBlx^r9j#$b&%$d)ML~mz8jCYwWOE}hT zenUiGgp|-u5KA1cD7{Q_1o8%r>|R*X+zM@Gkp$9*rK@ zFZr)ccgOAw?#SUNPR1meJ))q*gc?#q1_@H}(xnTxByF=@A8gU_CbnORA^(~G_l@;E z9so8~I&E6bj2%H-#S!>B*T|3N4M1|OTxFV#Ra3hSGn^(d`;S9h0SkLl)4mL;VKddDuTO{^emD}eT!e8&`hu88Z zW;RAx%kK)GON^LD;ZX`GjO3*JrDk-d5NU%|=`L84VVLH(F{1^=*B<1}q)GY}^VNQP zCqhJ{&6B+^hL`8ro0e4tc@I{z&5=H^sJJhn>fC?7%q!kg6>YyGWaOu3`-N)MuW-!m z8yrlKw=}bJ7(c$uzS9%|(?L$HT-*Lq?smSrS^SXSLN77zshrm>3e~FA_Nk*kgC*I( zV|pyLKT$N*(!j)bH&6Sj^4+@?1-cL*DhmcJG)BHdC^L@h_Rc3l`Zc3i-w3MtFO>Ns znI^{ed()wg+iCC5BvY@sBu~5}=Q3w3%$i&tpfHaCk@~J%Y8eTW|y)oA0Ge5;s2IQsB7vLd)(oe zg@F!_mdEyZeSG<-^6)0Ov~x?XP(*lrU+(`#y!jdIh5f362v+b^w3`S(n#-s2y#IY2bvI5G zZ_qZcRqK}9nF(BoT!A`)j-EFCMT!u2`3p2a9 zkMyr54;lx@QavjAjJ>3UWDb7Vb`lQCrwf&7S~=>HT~ZfUu{kDa;zlK$6|xbKEG>?n zpU;F$?yNy&v3#@X{@<5-RJzQs5y^Zpsu^SnPcpxQ7o4m|(*MvWuh;9yobl)W?~<1< zF9f{Jq3ue$4jpn>Sc$VVLmkbKyZ)d{S4XcJ3bWQDswGM)tl-ApMrdt*dU*^_VMKF>)CnqM%HQ+P^6Q61*$8&AXD`3HV(BeA01e{5@ z1Aou?sO%Eyh|@RF;gYarCk=F~dcbiNk}K#zOn&6Qd3Z(sxeacaDB9^9Z0p#Fwy)nS zb2oZVSEGo|(|ke;BY3{BHJgb^NJxZpEl<=Axe42LC-gFjitH7#NmXqP_hNn~wJUfm4t%_^AIU ziFqPlGl)%Q@v{VDSI(cFbI}2P5XI+#r(%Q$2P_%J;U?d=BspjP)ELUjOU8)$?SHZz zhQ>xnCIJR*JSnQoGge{m^0q|qw&or-=Y0M!Z@Pxfz~!<`{C(rl5%amG4h*V zT$h~TTB*fJt9-^1vCOCH>Yuw|i}>te8tdMCyH8(} zwEaa!Y=@~f^U3sUuctV>R=r8k%V{}@k|v>e8+ZOp$g4RRh0Pd&o06m%zS!*SEK!;= zThFva1=n=Q|I;sAXt)oL6+U_r*|(ux_9s*QEWzL?a$g=<{OUeZ!k(w;wHz^C1UTW&WWCX9@b_OFftX_nYbiA&A zEr*-%Ok3U?SIuwV6tQd!5qY0A;^pHg(U&L;PNh4Vl5*266dJ5Gc z@!>R5n=5{PL+y5K&8>MQ6ZojW z2KhZul(lgFJPp9MYF6^?c@x_bc?=4AM?kvrIwl5A+yS?O5-P;KoVbu@IqE}>DSV{x zi-0_dE8fce%}*JnTEpKphUJ`pEUx6SAH3qe@y1s%jwDN<`e;{Ky24O_B!m@3p~R8d z-rf$S?AjVEfR|a}{0UehnQs<9=vzDie?ZsLouBjfgIe^hii69GHS1I!HswkpuXzc5 zQv=q(-~aYy!EeLEE+YZ2nQhQ7_3WIiysW&$Q+By z$-k2QTt`Sq*hWyS$CLL$J7oJI%gBDH&dw&OSCvq$Dc9H%WV>*l6wXO~P&j;_W$=`3 zY02V{`!+}ZHp55ueo*hA$+u0{mfk`|;7AXqv=?pE}(Ay{_ATD0<5B3XZQ}qoXxenO;+~ z9rdr7jnMQvc4J$&A3vsOW;|F;)Z#JdG!Z!P^=;b|NbWdGN(#DtjwkR1dZ*@by|Fzx zsrz<7Ab7{lNZ67k%>eGCO6s373Yxej1t))Zh4!3jVz5P^pX4+Fv2UG1>}WO~<-CaKB{=x^zDKDf^(EO2% zQNj?Zq>9r!r+{XS$HQHPoS6uLifAGxCJuf4*xSp?X4tO3=%WcASKpY8v5q^zyC^rd zgY%R=A8xB2hK>{p`&dS}m!_FS!j-z;l{t854txAkUyL&2E;KCjyG!6lK9K@ET6L~) zW<8#GFE4ME6mi$tC=t1q=0|b*J=}>23sIqlNiUV$jsk9?sUjWCZ}76cqKJ~<#~@+$ z);&1rIo%oqqXlwO($7@broSShCQQ;+K$NXHs+zeGx6{xH|pq z&!6psy?AU+NeRTbbV7nwXD1mM+1C1oaUht{N5;ll#I_{u9UWspy(~05vY$ zW=|2Ha!wUvKd&}ZqF~2UuQ{}vz=vxxGjvf5tkoJ#v}UkZ3+_3j$9Sg}Jcnq?__Hmp zBhVt3XLV`N|NF3Jt@Vd_N>n(DwN8Ar)h$?fI##8tqpy5+mi zF8>=hZrHt;9sl;ha41K8zN36J5Qfkmz^xwJ;vP0jQR{p@_hTU70K{RUuDd^0sMrD8 zBP3bOJ2nz8&lYYe9n2b+d=%y?g~c${_1B8*-S<2vsY0Q=kS2RQBhdR?-*A~Pq!6;H ze9!*ycU6%g3f&V2kEvZj#}T+ei(UR;)w1?}%S z0h}=02(HxX+DnD3?{iL$oadvdFqmd=r&Q=MT%Zp@h8iN7KVHqt$Y4oq2Vj7wK29I{ zMKf4SPtOW$ejn|%`jgr;94th-yGd?RDQ?+G*9xv#+wi+fA*=3x*~Jhb9v#!qAZV)# zMmP{?m#z5sAi0RppRze@#Y`Fr zq7H2wIWym|c->UQ=E^YT{`;IZUmJ=11fh4nwu>ixy>lL+2#kMM+Fda$Jh%CGr3zh< zOv-;ui#vSlKKvvlHD1FGHe zqyGEkNA+vf#w{vfu{Q-VrIgEf9dw^RH#%be*dHC#GKMfC>dF?GNP+7S(S8eqY|uV! zh$iMI{g_kkrGZx*@x>n8cq=6&yjeKwNX`U0$D5a51R_8`@ zuYQV)1an@qwtPi#TpR}3&ZqIA;HuXT<6f*48CSKPYbQZ8@yvXXPDt%|H!qP+*T)2d zwW-*JF4bEd_GhCb=_FhQ z;*|}62HQ4sCADH7nmnEUhn|w>k7b@v4WMKbYj&O7%$}%vO*HJxVN1_R|`og_89%RPB!ucg`cB z{p$xzI{YtBAPR=&-sLx;Zz3-k!`uK>k7gm7>3>}<&}nbaR%K{0dZ<(t(3QkqFITi@ zZ0yUKX*+z(n%DuD7_??!Z1s6f^7`1{Q@MHxvPl>6^8Is>%wUF~q2Xaw%bCf7~Ww6^~0}y}b~{WQH%$$L)@a)J$j#&qNCLG0dK3eoKwTDBN$y>EG$n zu#!B#H$=dQV9ErTrtK%#JK(~ckN^gBh4%J%tI}=@7)k3?VvuB*FvEAzsFX9o-MOBU z7J|?17pFp1_mUEaN>}p{z8&-!>o3<944my>*;)Qrf)Bs6v;-Yp@DcJO3I6xh^i_8% zi>lCanxcrb3iam}7fNjQ{!FkKv#>mmIG*dzh~W)-d7iw&y(S;$1_n_ zIdE1)j@8294XzqTbKS*Vhtlj9h~2R&hg63 zrjeExv##inMv9%nVl=jg?1=7Ys?vUYvaR93OBB{*1oK7@4^h%at5Ph$+~Vhd{7`=l z;kBQ%_4EtWbM1PfE`{O*CA>|{lgqlUdoQa51&#~l9wnzvxPIoei<3|Qq0{Aab<3eQH3?av-SEv~6pHJC$cZt1D(qt>AbHpp0IkP4x zSOU?FP=Q56DE8{ya$-Iahq_aNRUy-rDHHfQ$e=qgP)NQc@&o_z-sp``xN$w`2SGSo zCChA2$$XgV{N(NQ&HX5W{(ad&)Dtq_mvtF(D!RNSO>OnDRhUJyVE4_6;q~01`o1M6 ze|H}rgA~jC)Aqx{QY*I@K3@OX(!p~wIn_cp{ZUng=_=#eBO)6i_41QY(j-h z;<~l8WzILwFz3d%HLc;DYd3V`6+#5<2Kjr+h_}cX#hqB+eAMIG*xGWw$Q*d;aVSrk z)RBSI{s;ZMgF_X+)kOcD#G~Ko2PFV3TJ}AHtcQ2Kxe2y{^{lr)vqm~&!lB}k2e7?0D8onFF9~) z2i*%KFZIo9e0lkdlF;H(AcaxnCD~U`)@G~(b;6irrS0ag4Pv|B7v-zl44|!}AUlNy zO1LS}EK6b;X(VhsWw!2aZj}X!oW33G6P-hOw%z3uMH7cf{`TJAf7&iwTb}K0Sz3Nt zu8`r`RKP_W+O+u2@99DzdA^i8^4jG^@Vz*UKje!4YEqK649aL;UYgjsufGBgD8MGj zaRIkb3AgF?x8HqnIHXJ`$1@-)iH2}}3`HTBf~WQPnlDU6^2evy-=BQflH$yRripaU z5?6QZ{PYlex{)=@5)2w6Bd+_~MaK`k_CUh_$lZUnYV2^S929VI@|TYpl+f2iGRs_e z_Wa@d)6Q%NNGllBk6H}%bT3u2(r(}bKIZ*{hmk5NqA^OB)9+j79^cjCD*~6VX8E&i zX=QlkcOERJb9T+VA6(fmFEL&hs#LkLc+FZ!c)gAJVD42p%HqOvXU?}!)2X5ks?)DH^dG}jS6Ow7^HELwt>MIXcTHU^6d|&xBQpg{kD!) z^X>huJvkv$0-R&5K}2wF3}bwXY}56x`_=x(fL^-#*a|i9!Lj2=cTu&c zERcg0d4fcP`Yght)b|#W(>C(SqxgEZ;CC9YQYf1ydla)?M=n*Hs2HKp553tM)dG$fKAGO7WeN|oyY~_B-eS+p)rwk)>0!Lh?Mh_WmnV_fln zWfhl;Wjt3Gc*A*zZW&9oSakR;?tJXFqU$&l(AT&8JGTg)-W^Aq9vh)#5IHpN$xW_! zP;bXl#ct@_6&Q`_VqRA^*D@DRU0PVqmhssC9L_|FHv=F;M?=FTw7w!ynbfqO1-O|* zo^)$v=)G3Z(^ciw?k#w~qt?{2x=&r zFqOwEAp%gBP?v%~jaz?Qtun#&bY2vs!-PGbL?Ci|=K;N6wOn&-cLm8(d^qk5*?Qk& zkCG#Y4;^}L^&S&c`q+S-nq)a$Z+9ha_X9-RIG9n)t&a@U{pn?a{I^JOaZxHUtjiY=#U|# zIj_4f(KUOF{R(5;jdTtq34C`BpfG4c%CJph4HO31owU9mI=IV(jO)c2qEQ$HPSdX+ zuLeJ})gcTbEMh!-`0(NQTGtJbP&WjvtS}*&8i@H3M3MZ+*M?~6-!Ex8&Ob2gO~~V~ zM+-K?y%Nsf+qWNM2bM=E@iUbig*zf;wg6PDnCEqrQQ$i9UgWE zRO*6O0W0MfP(&IHLb#bTzO!j^rC^DNB$II)g<<8l$ea!!qANYQ&SjN2pHZKC6#2cc z{7{dj$?{|m3PFT`)Fz+cds_effE$7h7HR|z~tEPYKf8W)Uw|xFb zI+7UxsDml#=_;3F0YiEVnS&edQ1uI+oj!l(r@1qaWHN4ec1@-7tKDq#6~@U0Z*+&C znM8llb+N+q(SxAPsvnZ(@Y~%PG~IvOu-q_d1Q!(^Zr2T$+JnyF5R9Xh)%--z%Id0< zcTLBY{!--!{o2)t-Js_>r}l3nm;cN`;>B-GjTSq(f5$ z61wTV*f8GO?FPQPVfXCqw_0mr6f(sHAujfsEt6z%;Y}xIvE{a{$fv(~xp{Af(X~uO z${-2HYTcI^9*y6Y+BZZ6H(_H)IxpPJ${8vo;NX*szC6|4rfAz#`taKNZR82W5BrTs zt`vh!cMwQ5T-b1+xb=#w(7II#sA z+o5HSx?FDG1rdvqB7=*R?uzAjO{q_&_M6gy*%~#UaJgE znv{*rjm@nM21$=`ps4~#uEN*c%*@Qe;#XaL5HiCmUk;`y@|;0TFVd5{-U<>D9w09T zhMNwfq+xPh|9&eUpVxZZvOI1utkga`PA<-gQ+#d5eav_3*t`?%f6(%noW4vcLSX1g z|1i~jzQhxpQIuUx>1#Nz^b4W=WmIG_Ts9@@l~9AydO=U(>SiDE`l!N6h?iI83oo{1 zJ*j_uy1QmWf}s+!U82cMMe!S6zLu6bs-T}96_H%WG5Rb^jO~G>wKjHnKJ8`NA>5Z4 zm6Qh@@pZ3RicG8w{TQg8D`cuu?iw7n`vVZff0z8|&gpOz0VT%++>-`f)s2hJNt!7& zgF&ucik+7_Iq-V&^_dR?)#^F2Q2}W+qwb^L_7Zdu{)L>@av67Y*)KUygOS`K6=8ko+ib?uGuE>}{U|8-HRA zMu~x3dYjSMrB-KfCH(xc_@c3fiRP5=V0X2Ab^;tUf%JKZqus)zi}Nky9gzY9@<5BbAq%^wtoLm<|2Rk^txJbsSLI3E z>p$8x5Ny^lp#FIF+tQiq!#D98X8zu$)MRPZoL+nB5(D%fmePBSU2!VCdrpGh-%@j; zw%*>V+l+3Yq8~F?^QmT^s!s0qz!GLIM)#_@iVrz7*yDeW#oCT`B&Baw57`K9KBM1% zJYthqW?*vkws0Pvr_qWhI_V{OgMIL2{)HSr>g0%edjeml9iF*r}$rk_)_nJU^Gi$);O=)!N49w}{_@ zh|!9+EGIu1;t@3+EpP)g>$p*ve0(>THBAGW`G=PcDwto6hzf%eW@<)Z!d}^G$6<#* zV#8S@enGF4@o=&++Ha$KV*$Ktp*psTRfSd#!|pzJ>zB^g_Dc=?DR*jxz(UeS=!U@M z1}rAgH+J6vgi({=t(vF``E`Q-dR>wdH@2nC7t(2EP!4tHxtEp~ z5R*(ux|aKQpGi68^j-fMZTYif^; z&RVjy^PI%P{on*~TQh?Zf}iM-z!TIZq;n@>v#~N@Gq0LSbeKtpIW7)e>vz>y9!?lk zZnyO7%GmF7C&(>eB5m}-DI@0=79=3l31}peUDgJNbJx=SpV}_|ZID+lS=b(|g*cBo zj3{J&U)&*PCc0qP!;(c2-BRi09V#bx@jnGVD06*{GfEXK9qpE)L`JX1w}F+uEy&5u zZL=p@svfmLeiqw&;UO_UYpmXB&PSgE3*8=Q97ZD$L==HY`Bzr98bUw4-bY@}jKj#c zT_8rDK^|ZCBKew;h6qDc$Ty-gOOne;0rtseN8iTn4`=P=IfD2;xo;KVcdl3yQ@$>| zC91+=SST4-mrDquYsflhh~8RXXQd2hLJm=F7Ag_S{~Ik9dJ5^*j*3lZBOXZ|^kl%F zdnLO0r}7F9mB`1JC@`O*nt^?4!!9Rgo+7s5Q6Shq+^<#G4;msZ&csbdQ9c0yqYJb9 zzayWI#VN3vns5e#kpbFhRe4uZ+xRY%Vwj*8%E3$!cFV=hZ1WJecgFcl01c7MBZR=+ z9@fi5_vD#FJ|k&ATP&-eL@*J@NE09_no${=pU59Q0$#wQdH)c^B_w4e$rqF26_XSJ zFcTyw-fGTSgcmLH&O#r7F)4E#fjl#_jRd-MoA9`&kDeF-r|hMLVT2%*baD^4~7a4bR-$fEDeh&Hqi7jV1C&RU&5?E$L)6&vkya>W;Bv5sYBT<1`)~4|~59B!mo>4M!jCioNznAm8%%|7mzUFNy zo9-mc$77uSg$>zD-TnQE9cGPuKVtrNi<7i2Ep5UovnQE_tFvr-Nis8@XHDcc;MMwRNq((IYR@LQ3MK(w~Fud=Z#ao z0OnOFSQt0v>bKsd2ylkjSZfT=E3~7h zY%(|AKZ)0P+j%lO@-k&O=mY(iy~iZ{_C3VoXCn!j_?z3bo!PPs$fo)^tm>XtYUa;* zXKI4Q1~PjexH~xff!M*^0_lGvuHI=^sG@|k{1arP@YOo`LkTn5nj^M!k`7GBAR|K( zch?zli9)?fRhn07Cn%$w>8NUt|#&qt@_JB6poVJO=ob5WoOk z@sNy>7lo7=in!dXo*7GCqrv?)ScRKXqF(zJ1_lN{!y$^qX`gG1oGlJRz|2O2B|uQ1 zC_!O?z+y;V5h10CG>xp}a)KL#I+lF4!qwOrl$GPI#Dn^4x2EM}&^L?0srQ2in)M6% zQQ4K}3?ntT&b2std3k{c4*VyjMg9MMcNw0Xp0=qDZey=%n$G)*)RztG`u(Xt1uO(o zr;4-9o|$?I?6J3>GPoKQ%@{d)Rt&@}!d@~(&PYm53Q5JGYV)4@Frvrl9~~=pKlTNo ziftv%N5Jq{teGSDn@|U6t3gj-R0IkIA{vB3Fbe872m^x9Sk`Amu>tib+KVq;yrpV_ z4*fpxE?2K~HG%dr!8_ay4de;2U`k5aw{dZ*jlz|cl{G6-Tax8KO9iM3x?3I@PGOg0 z7bor?g*0y&^7`|R`mys<)MN@^DA}68VIm@Ru&%bz8+>Es-yvaDoi@0;xD_+%@bcP( zN8X){(0Z?h-i`!I1N_*2#~2f7XS!5>Z-3R%H)aX5uFg&=G^2gxQfuow!z55=s<1uJ zF>!k6&?<1ZO*=zhYo%zuggbb9PQ`z>1d?4~#C8MHnR7!RauGHd@<0UQ9#0}nU*w4> z%-?A1oozs1pgkMu=H>>t?U3m>mf*J@tOSQc)c)t<_wD@U;kVc&0VG35T9joy>*R#x2Y+qh~B5zX^3NFe#{le^?IXKp4X28kI3$_at zpMSgQ#lqKRhqvr33Ms$DJG~5z>9@H&Npg;3SlPzWat=0@8HLP28%m|Kzoo`MPtwy@ zh>ZFuo-E|%$ZXpN1BWqWEhLz3Y-|9Qd|G0yNEKZqe4nxIFW~0p zaqOg!1%)i@xO4&6!Yx`DU!%?6vwhOiWxN#=_x-;b^6L2rdQp#YKnK%axKMP}noT?L zRc7lc3G8=!s!mT7(XpdR>*{&H)zi~M*V(G&-_Tp1lcA%p_WXphcb|`7n(;4Q(WCix z-sFPzjIi%vsE__f17LfFxjb{jhRy-F5&@tx93$cJi;urU`>Gsp&Hq@DDFjjy)h8PG z%~b-Inaf;CQqt$ww~3lGzn+gex#y5fp{=&U_G2}^D{B#;zj&FP9PtKeT>X6gJf#B3 zbelaBQ5=MS_D07^BfnHk>pAdb-V05>BEUch`C`VOgTFI_yyk_u z;F8qVLr>=8OBEG4!w+j$q6y%*b)|^y^(EWSu6Z(L8YUqPrI0ViafF08U*7~{Lgd}{ zOVbo&=kWVWuput}R2`yamW5sXIB~M^@t&7AStAkR-2e^70yXJ*Oxxr2b)DPYSb*pB ziN&BwdT`U-6!I zN9f&2xT0|#@hUUjGV@D(t3Cl!rZmFvQ9Q|I4AL-8o~<)Q?7@GaxWvT7-rQhRoIv0m z?-Kg_ucimVU5x%Q>Erf1lK$Y!yHUR$xIzOap1jW zNqx(3JJiS6<>;LyEefIGm%F}_;&@FhE;`Dq%8Q9vucKVC4n{*TU2%0y6?5KQN|h*q zdCyt|N+yg6uOxTGmH*=go{mC@PxQ~G zgnhcWE7$qxTS5)Qa@+iC`8bK*i;kUrDrNc@BxkbXjP{s~uwv%(|IqU#w%+8ntN*r@ zG{HjWGX0{Ulmjz}p4G73o)2xeS>X!)bF?FM7)@WHr=_AoO$3)qRW!t=*bt{JtAO#j z#z`zD9KW{Xn_(0Y%~2d%!~NLsG37tFjn&8^&6Wbl+XV#uoQuFq z(m-kU-~Z0JOCZ58V3hKO(Bj|O2n5Ej&+FT!U56SZc&lZr)UIsmhO3LGDO1_#RXeP- zM;QE=FOX@C$#`6|cd(p#1AvE0`Zy<3C!e4B{axutK3-N&utPNry>V7>Gm;oP>;y$7 zD-l+{a4t#;UF*6w3#H;gT??91OM#gv7;(u$2SAgpgCfeuUCPGBM&QkX(K@&7ywquC zBBNk_Vw4ev6e5daQGpbph}_R&5d)cuiHH5QI|g08es)$?Z35h9hUbNE=BtHlj~ zl&EiQEsZYz`h~vk@MnC21?T}C?ry+&ttz);6!V&1bRWC!IX|6jkDKvKGu6#B3P9~c zv?u%vPB|atQYmkB!$tQtqdyS>eSw}04Fn-T-$4WqUrK7S>QjKEfuZFdl484i`ZG22 zXUEAbL-Mm{(V=(5XtYsA(i{wPiflxIC?=8eTm_KbDWy$wwhsN*zq8nwMk4TZ|r`Wvua>k`suZ zpPzT4jk<)k~6dzjw@b7i0722PjE~VfWpZT%^Zz=xjwv% z6Ex6f zV>`_Fn_rBZ2;`)UENoPwFrNMIK9^bXEL_9YkuzadWCdcBP)6^xD#lZw5d(1J6Cb~~ z=3#m_^?1^JaC+~r{VJwv=vOid0TwflCUq_O0#EeaW(l`v`jKV_Jeml zR%)4>oqUlt!q!Q%4Gj$!JD&g54t2D*bou3$Z19R3qI_1GZVi`Rm)dSFuRYMM-AQ&W z?;d9`*H#tU z1M>B;nwp5+=yW6lKpej&+oQAig~j`ZhpV!dZ6Y|H0Gti(?>!(^6lg{uMn*=U(v@=i z4WrofCru>Gh=MR}6eevsO3K3lv_*=EJiv(|K!{ESp3#_B;EZ}B|8mNqQ}?cUe9D7! zO$wZx8F6ZyrUw3F@Tz-mw@$claW_4oVnaxuer-oMR9-gHb$I8ooiAPoAmwpbh!3i}VchOLK0(%F5usF6g}0990MzRdnd>!>t-AQ6W8^^Ebz&{C;~_ zf`l{2=EVoCn1dfbe(?J5C^ip3hmF2vZh1L7E*DX$&gIxi!kpq1&#`B<_H`S{L2 zSBm}q{H#Yl-#_`4&}${rguY&=gf3ckHXgbTK*~7|AqW{+N(Lw$~Ka3h^?Q5=y3y2E|eYCfEe~*K8VFL#GHp2Zc z9+VZTX?*kBUunU%!3B&x_RGY?M1uSD>Z(BSGt?W_Z3KeT1boAuYnL(d@{Z6dJ`C_f zG8@xfdV-2WwcS2};E1@x*2zzL^ZMXOuk++~xP*wkilhg~q%?;!g129Fbj)^h6C;+~ z&{|7Z-m33u6!!n8m`ID;a`DM zC{@be&&#b3v`7^dkaTJyA?{SM47aLO6E3vrKC2`cD3Ncjc=%XY z$ln@B3AZZc3g9CR;=dfscem#=h(4h*C1JkWD8Mb4*lrkXL46@BfXM3P`jvxxP(YXM zwhF*Z0BwwvaaY*_^G-_(qk3L%7#1Nd%USQy#8_f0p^;?Jdag;zqHD6;XNl3ZoXD2z z)#ezN15KV6^UUwTk&)w$x{B0+%gsHee{~N{YCoTDZSo60L3_H=vV4OPsy7@L8EeOS zM{aSpyUhexCWQ|6jy%ZgwcgnM{q^?-tq7deYV68p5)!9EL(!Sb)q8eRcquUc=}y1a zFe!A}JOw($%dt0a-UOwpXfQDOa}d6z_s=CrtLK%%-@X0LX>eNQqU`&M2m zWtEqUq$=;#6n60ZyFmI>!(1QKI0i4ZmY9Y{ce%Tm4tS443k-aBOu^7%8Q11|mh3D^ z=Rpr)UgwC9mX?ZE|DRvK8h-j*dii^4&hq_&L{(@)`gO!Ol%&A_I66Ft zbYcoXK^HC8L2qW90z(u7fXW`eBoh4;t40eda{w`aw)*Z)_+Kc;KnMBe$ z3D+fsd_YbQYvbzGs}9ZKw|-RBT`t;-?d!JtK2Lzou%P1}>DjL_}_70JXdP8a(Ci930GI~IJDRH#3 z1D!X>a%ashyC@*w#IVryvGla0O2?_@#+*BiWsh&)7TEE*6a&dT!^%CG37v;vr&XnP zHIX<=C+YykpBP^j`awFPDO#9Z)54o+04OhQ^mfqLyGny&Sir(?q&Kl8#6%{zsqG9-tPmcR6Jwt z|J`mrFZ?v!oaq?6BDM`}iiSFSVJlTM=~+^`8!n#&6N6Bi)}^<<#sgb*|TN>md!76{ZC4t<{>pg zDFIxuK(A(h2cJF$H;f5kbuazndWu=LX^Y#?R|1I%12NqE;v#sIkr<78!_V8^k5!Lk z&!0dn?s&MizuxWiO6!NGuXLGluOsw-Pv08A41)(9EZ&*5{)Xi#{K6s<5+V}q4X<># zLS#hw_(Wkf+{yOs($&`fVo)Ci0P`ZAHc!|ShCV5-jp{h15{UzeHH_{=6YW};^F``HE=-R}=T zjp9kpM2#6J8|feG@98m?=B#xk766nxgB4w14Bh%-?ruM} z@__sf+Dqo!I#O1;z{dHCb|Th^Q$yZ1$qeFZ?CtFZVxA#d*~$CL#f%pH%ZAKK-yTI4 zK?cvBA5UTriTA%t$%R7a#KFQ-hAdKTI1V(hKY^v=&F76j#;7v`3K${>}dbUDlrC5y(RjN@Oo5Gf)bjR&JK zZSu09koR7FfP3&oDfd(L*X<`~Pn~%GdGn!$6M21q@%H8zcOt`p+}`sin?6#_+F$JJ za>d9qg`T{T%ZT}6avTW{xrkP!x!jJ&6O)YYYP#bxJw0uo6EUuGw9bJT?>hXgxlli! zC)Go^?K6>56(t9mRLw8W#3-?G4;N_U-L1VKCxpas%5ud+zebolPo2jQ8T;jPLxT~D zXjsp`WDvw7McVJdpc1bj_S6_H2bW4{u0DpQteS!tJ{a{yEc@%R1BC(uQ9vLQyruB& z=7kW{#XN>h^rbH$)Zfc&nLk6t3l+UW=JRo*Ykar=sMg6D9weCylP>hjN9&yVc$K#| zDi}KpYq6)N5e=k~p~k;vppN$Xzl98#yu5HXZulMjm;)tQ?}zt3=7)8Mga8LXVtD^F zx3s{$cMAq@qveI8?;hOnzmeSGHY@R<{PopgMny$)-e6J3N!iP>Vh-cb6q#v-lyZyG zN9QP+KZ`*ez{d4xU{uYn#I`*D!kQWPf|&UQihylA@&r-9iMK=wHul4AfXKa^%1;)g zS~iiuk+*kkV%y9HS9fv3FK_Q^@VBi4FWg`B@zPi=bg7jGfZ`8dh$o2$S=HAXBUx3U zl|P2Zi`BqC^J9uqCVX0jndb|Ypm}$)+<{#buE)qpo7=Z9rA|bqiMv)}c>q+&z1vx^ z69$qp&NS4Iu3l7+^NXE8ODzA%;g?%2eZ}J_F|kORzi#991vnvq_Z@ zfiAsY7+5X^u%ey8{)K!E(tV}Ne9Vg#o7b4H1=E%%>J)yov~&{wnX&n(=DIUE^us*T z@RfFegkxZEdr*FGn2o!&VmEZIR;d3m{$p+7u;@a?>n(X`hioG9^Zf@^ea(4&cY3#K zAWsScmFA$;=rAr_bkD|%0qYHVbL3Dv#mflkTXXpgMe`!s*+utbL&qF!X`d`>d;umJkX>Ws zNy*7UuAH}|@ z8>7Rdq5K@lf;LZbYVu18Y?_!i98O?!_(;me81dxy^)6Vh$6?GcOoCJJAv)CQIp_HZ z6e7OFTn`P3u+t%#ytTWz6P12wy6bK>W8m_*N=y-laUgjXtS+liPROjpN)>L>z!$0c zb>t8sne=GvDpl<)cXBt+XL}sQd!2RJzrHXLQWl127~h@Sta>?-e0MJ2z}L%s@QiEQ zaxbkx-H2XS&pBd(ct_?RXUfMjC;51z=cQVu-c}+wRFs7f;WfV`hNeh>kv3?_vRM49smwuXPK5 ze<|58M;>MbLV<)&nCWu}W@2@w{Rr>BDz;L@neoW}AM?3=51~+X-{(Y*RD~tE894znoWpq2x;Xj8{4bOGv4Q{U%&#d>)5U^FC{AOKM-NK|tKBwqO0oHI5X3Vz{e^1KMsv;~jwAh;4Hv~>9C^mnoVUMqCSB+Q z++%fz4KT=S6Z&-eQpTYp%Ushimr=k7n@XOVOv&7;mYfLv!`}gzkntq`oCIG;q%V$(%Xx;fL!+@444c zD>drSdG>@q6q9E*bPID&#?i@F45=w3cVwB~ho-;>TixTnFxkL9L4h+=W3xLMB^zB{ zbs{^7-wwMTHk$Swm2301Jw{PBT72pVpR?pNHNWA1580+&f!*-&xAR--TO2mt+lr2Q z+DT5Xa^1sWa{7zZ(V7&5#znDp?p`bO)NpOsr8$~37$~EUhRAIvI(CL=V;giRzzo{a zvDn-(SX5!CHy=JuizLT8RcLbn(}fnaOTXq9S%P1H4=7JFPrpY^gitzjc=*OgQ=Qt> zuLs78X5}6kr`I7U0}$6RJcdnOIGL=`Vb2w*OSj8@5x-bnX^1XL-U_rGbGE~EbZt?4 z^W2unv|-%aY)KnRrq5{6zg|}JL9+X+XYTIy$k&t+y0QGnj$6M{K!)Mj`CpHm@c-|T zQ+;^sYESD`B!iq<*)FeLOC8%^97{`0c0Q2Cc+7p*qEb@>?zT|mL_qzr557w3a3%UA zB*U$S>lPl2E+3`o79OoAuu_;R z`+q#WcRbbq|NnnTbx1izIx0Gc>=6>OosdoxvWe`GEqlfx<5+dhA`z(A%s~-(Frk zpPPACDr@)a=*qra%v3#heO>0(ZyH08bbS5$?MP-xkoC2_&t)50cnDE3eX}04`$WC~ z(zGEouIT=Q2cOqK?ih;U5xO+l;A3HH`>RA^@@q}dK}nIG%)n*ZP*hF>>r>>Cnktk-wA6xtXQqlj9eB*=5xKUANtbv^Jkw?jn*7#QPN~EJu@>i zE6bY1d!H4duyeagy!}Zqrlza+9$|^w^)ENs|=*ykgy=6DLl9vw4wbS5`6k zNz>njZ|J!rTNM|EWeuA9$L@=z&4zB41bJR-tiQh}&Y7OE=G(~Tm9hVDKeFov;%8I9 zZef*Sm9CM#vBT&2JU5?zEq@_|6aHBMPnZTIn%~INnugh(_PT{UD5EieCX{gciatjM z>-%jxDr_4Xs@swID?JrzgX;nEQSi)K86ps6V;L)eFSQ%279{78-jtreK2W=k%+8th z6jZNw-t!&yDEU&0@@)00I%i(}M;2C*TDXW=AAlvSc>jZ85X?FvXMKFRC_*xp0Usak3+%A{Kn1>Vb4=e?`Vq|I`HrJN6iPj^6D>2Vq?FiUbbO~ zq(Xdy#Q;fbIw~~YURfD|AVD^@xGFjvtRS^dp^nj3etlmKC#!MS+GxOeCaLnf=;C70 zaIt@kNbF7@`c6s3*_dP4=S4;QscOd*U-b<)q_gf^xhKG_;@sXkV_(;q`J9?< z6ZuYyb%vNv^H(vq#hiReVrTo-6hQ~J0m`=}8=dNN>`J^=^p4``vW<;_sL%JWsKBg_ zfPE7%KMZ*>J3G6{$$;&62MLBzVK^9vmwRTo%fY+0Ya*3tCq5383m6w|Z`VOEhEOsE z;+V*DCNWD*6o#0%%AG?xQlPbqw!l!FY2ZwFbkFhA-R_gP?Ii4suX_I}CCNf-y(?W> zmyRladjol!1MvSij2~d-UKlyy|8#6*Jw2d%p2gpxd}Lq+-Kdni?wg~t0cR}dw~r2u z;AP!}qh9xs^{=9vwAeCuy#|f|yCPKqO z+?9GoN2T&X1T=7F(dfWGd@ogLGx^fp!la&HQ8tw>Z#Tw~5PyL&_z;8V9#S-M%gF!nWxy_Ubkjk8k;M6i>0%6h%y;5Vr5&Kl_AEOBz z%`4}cS7y#Rn>4Kt{mnFLpZ@XaLZE(;?tc<*hk>uYF?wF}Er8BC@CHN6V$GzS=fdb2 zQ-2XTITIcx|H)2tk)=$BB<(dTy5^3O3fUQx1Mk+i0qU=sW<*Bcquj5F>{-w2-I7aH zvj(AwCez;dSm+LP{g+860YCU%CM-CL`J?450D ztG7Q{)NGHTjYD31GivUes-Kl!C3PH{O+CAhf2rBmktw|3k3js*mEXyQSC=kmJ$Jw5 zyZ`N{jL|{cL-5yJnf|%XH0xj6ytK5}*u0f{;omEL0pt2rokqjm?SX@v<@#R@ZrDnr zaO7%e@zRt2F}AT3;C66w@`0*iN>Hzw=$TB{p$snLc?w zIpc`X_o(PZlVLD%C~|E6x7q_$rIO}4j`cpPR>Oi#kzB}Ob2TOyw=;a7zMmiBA56+% z4kWRho}o-qsWY~@etr0&l8a`6ZvKlG$uu`v>oV-F;-Vf%Rr-Cer5V=Yfe1~I!MH<1 zF(svR6D-KhFsx%gsDy*6NI3Sdh(>awEW@4bueZ3Z8V4jEdOg17U>z z*!!ld~K>td$e%$7Fun z)}@Nvn%|C*S#92|)GL*2T9Qcb0}FawCwz$6s`EenPjWXV2)AzNUZwN0&g58oSeUVm zo@nNcd@b2V*|FGDBWo-#rtwx#dx6ITY|3_l(43{`muJ`QGQYHy%Tm?PPlbs>hNKy} z8uiX&{4fRE+xzc}pyk2Ios!84huv1F7(i}86gk{kGHJa&{-M4%s4ViMk)qFT=#__Z zqrU?0#T+ymnglckqwK}gp=hqkhu<%)W{)`dx8J|h(17`!oV<=~3g#&I=zcBNXB>Jk zy)0qcGLyPb^1>Hx&8QSLoIl?mGOW`|P0Nb4UH5C=@>>d+k{#GWgaB_w5&ir!3%=kdz?#_{ z2GZTG4PXCxPN=dkjQq3>&3{xA1%bhql?Hj3FO4pToh>wn*3O50#?`+A7h|x%bTmcM zhbuBE7ibsea@d^B|0zTBpSwF*s)7ZPO~R!20isu!w#I~;0O&StzM-L^4M3@-o3w1ZhuOJn4TBF5u2CnpH1>u+J}-ckA!K+H}(i9 zUwBespwK*(_%ag~j$s=R+a;#n>1sR@ko`bXI^`C5{hp86Y<1HqTa%db0AKR9Tc1#X zkgZs~GJN083@q$$<}ro%^>O7T%wAFN>G!m>5IK(eYAX&iN=UKO>iDt3vkb77idU~t z${($LY&q+0a6N&l2mn7fE;7In0b;{WL`P@MZa2;Dg1=7@?VUBUE(6<}1?Pjf<^T|a zl^trJ4*{`uXhl^2rQRdd+OC2Yy<2+_&>Qu5FhI&uK!DK>_&&eeTxv$txQ&YXpK41P9TY7WiJEvjr2>*Dk=?@vL(u1A{;M-F zGBPqbc`#$-yshX0Lp49IB^qo9=9K_+_w+bz02RdTHZ^~T1;=x%2ZI$KG%r;(i0bG! zb48ezRZkN8sIEeUcHFYerKlW$r>D(WledlYpIA%3e)>S_!3T~4pN}))u?tty#xn!q zhw1g%oV=_BK{Ye)FbEBpWT;+z-1Xe&E6yvDQ?2xMx0owmTgA7?Iz8*hzoP3)FT?k_g& z?*|<;A1r}9?lRnZ$vo|__rIeli7RJs`c-i%qJpbO1Jor9s?_T5TGuz9^nUH)+4|7F z*~T_Vi*tWy95DXtGMCumz-kUCWBlBjeDu@6L322KHH){;R8Jk)rZ;L{-#ptV)PEc5 z`i>(_+oxT2_l!pxXsSQnTz$H?baAjqXZy0 zaK2rsHR@bnd_DVZDDw!czb}v?8Yv6 zU)*}WY<;bu_fEIg+xpYQt~$o{Igk-4hNb1_I&gHJS0`^D;5b=*Vpd?qaP+kYyVV$5;StIl)Rp%2tL7| z+a{>PDN986v!b@@sFFlqlgJs74yVCJ@9!aY=);A3;F?5WB}e9Vo!vyO>oq}$#X^Te zB724C=@HBMtF!l|^sC%9?|->jK&IZPn|GXh`Z`~Cdd|q}1fZ5{T>&nZE`P8+5Z(R* z>{}MMI?mjlYLa_r>o~-?xU>`Y^g$mvW3gVIMp{m#Y*c^Iy3I3)_+_en@j}a@vGN5! z|C+yFGaZLKtv~mdE|RZ?NS~^&N%2_Zcr{h9I=c1y@bXZ@OR*5{d#U2AbfENXv0({8 z@jc6BS`PX+qokv#AI9EUdPPI9-3kXji;Jj1Ne_{4kmW)A(_V0}y$a8Uv*XFlN zYz(>1;di<%R3}gUK1CkEuJIdL&`;31^>xdK}NR;DvH}wOy4vtXGNgR%7923e-S*XM#^i{=6F&qr`VdPFUFG@B0LQxi}Fxvl8)Drw1Qt zzL&Hqk~L4oJ#xoYjOuGr@K^^~rFLKy{!MA}|*T_i$9RnoO?!btsq2f`0Kw_b+QU zy)k=6DvSf!s6#;cverOvpUIa-lc0IApG5>V{=RwPrz6q+n;JUJmF;3@)ya1MJ=C)) ze)ou{X>OLz)3m@655<7Q(rXKX)ZCsaJlqagCHP!$he|LT8KHtPOqi`{UoWD+N~M6q))FH0M=|+kC?q}ZgRmM-*y8+-36mx@feA;689Iw0 zArvt59h9n7ToI^X4doRSCD;!rOAK|DLAb-LYQB&&v2gv zC(U~3x9_cy&3okLy)rmOde_$%zWxI|f?I*Mv)J#G5=aijGros9nxX`a?y}u?rS`vu zz%v!@qD*s}H;<%De=_95+Madgn9JP}50+VME~P5Pa{>xOg&`n0h!i*moRFlIKm<-6 zDI<@>oedYD&BZ)ZMDGOt+728%5h6^BJFD6K5{y?$hXTYnWzOn-TwFLFzKe^{hZ1w_(!;F;)oCBK%@$nf?afkHp#Hm3$V zBNhM~8-{&bdtqT=_&TBpO>4YL@thyAQaA^1Jn@Hl(y+w0X|GFnKrifZ@$230n!un% zMe1NGhEk;Ua}=d2FX0<7Pr`tVfT3Vl^0CDshSI};!rqF38|z|=B8osVC6T(?@d=9Z zx>_Jmhzm(%;1PK0f5AAMV^OlxLFt^nZ1iHE`!w3m?~I$?WJ ze)$YryNYko^S}R82+UiRrHwOYC7;;vO@DVr9^*aUVLu>0Z$zD4=Fd5;J?rb zM(5nI@vEDvmUI%ntiqdj5D2XNeOdhgou}UQ=l*rp-3fIxZMrb;NJLezzL;457qR_c z&~m`$O6Q%y%eZB40dX7L+aBtO!b%p@n1jB6R=IV3ZIv7;G>~F%+XF z9R6Ndy|emck6H&~ftreolc8>q^93#{4lxP&3tqqio|$E4o;{P+m+weM;5t&M_>Z=L zddcVhc_dbZdw6I(@z#q&&0u6CHGVF3uYK!l(QagK`_tE!o?CKz_bxfStC8;?=&9MS zVzzh>i#?&Eum5?hW*XXHO#@oXIkSkQHxWt!M|aNo3bV)NRlLti~hSL06E)^oj! zFmW4wQY>2m=&anc!JA7o!Bh%v6d3I#Q{Jkh3WzQi&SRRUlqezvAzaa+QxWkcc5rYoR0Oh0QSbhg z3X!W%n!|xLH&>9FYJe|rB!@>PhMVB2gKfuqQ8)+kpZA`$C+Wbkv;S}Qpz6E0NxVhL zK$xD#xpm`Dmvy0?s{Rp52ZrGL6iPe^YG?Bwg5E%*gTREwM#fVCNP>q(cHl$^LgD?@ z>kMi6*?2SZ+ImTGLzGjC{ijAw^=+xTrnIR?s6w6~D>I#|MGysH#!qtAc~ALPZ*i@8 zA`tlyB;(YI{Gas<{E!r9%%`I%d7%)-Q3sP4ER=+qarl-xlvac=vLXM{^S4Mn{?iBr znECT1(uBShE6Mtk1wO%^iV)#qZ9X%U8wHC+cS>`Wi2c;nSu?Z-esHcAPhTOF@qc#2 z1{jW>dGul{Oj5h5$b~aOo%iIs_{*ohxB;D@)v*?b4-sjxY}aHcXupgUrQrDCTtQ$pG~@6zZt zl6fJQyhFc!G{34Bk2f0nSy~<7=s18!UAm~hC4*4tF1xd8Itd8{k&3kJoB*WbO-wSW zo3bEMz&8Q;%R z1++CtDwCK&$*G0m#G$4Vag@_zOOpNHzI|I>UItgZ{LU|qfwgr@zmH|!m&^i6*lxh9 zW&f<~+`v7eNA-Rcgs-vKkZxe-p_z8nz!yAD#=QQq_bwF$z$j!k)29l7U`;=t`$gVj zQHMnO*Qd*Bay&VUox}bvZd5F$dRK{Kj>f+grtPo$RFR&~5}si9c$hV$@OBuA2Jy;* zT&~ZgoHbjO1yKR2)R=F^1VseB8rK~HYQ%##PYcig=Vi!O9$F5(U{4N-68{i|JN=jM zvVV)PQl5RDagosJ=o8T=ZuQQ+x5N+*$?Q6Vm~h3+AijzP>(n z{l5uCpSvRXVzWXIik)<*vB1?W_dajdiw2VL(l$wxm!O1Hy}^4F;nJ^jO_wMfOo_cn zCT!S0K>bcvq$z#g$wI~rCo}E@li6H6-V+#jQcc9Nw z86=(gtG2Af#}e166KZrQ7ItdQBj#7KSQSCqHTo#(ORQsBe$-O7XidUn5o-fx71h*V zj}G(xo{{upX*s#5%o?->%p$8-C(5C59lPgf#oi=cjYk<1~Bd(7i@0tpcS@LFe7F zOnyE0?Lt$X9?j#p2!wD%wh4e((Nh@YMMR{f*3lh41sftZ#3E9O{Yh%pQ${VRa(#gW zaJ&#AAlg)&j5jRM7Z_fL$v0P?noVV_qXm&=RxIi{2?b0ZCg`U+r(Aih@(iyCo?vgw zc{%qcoBT708cX|517|D6e7ZqXfMBMIyzznog&P!egomN-Ata)cAM9b?PrCtHddS|x z)m8KAtW0O*`ty$2dY}KXjQ#r4f*c2$$OAW}U7$^(>>YU#h4?||CqjYfX4RUr z5e`nWqJ||vm!;N~4*R?z-aJ?Xf2(1AH0p^u216_H^n5!}5P{jd?^!b{qzuf`F|i1Jat zt$K>{rEZZ{M7|L>0qDh`3iwd%2-#%CCS|PhuK(f=zF#nHdayk>AZKK(uaRkcjVD#;_EpYTMbIbEiuL?Db8FXo+Xp+vwk zjev$UL=;3A;Q|@VLv|OFl zcH#2Q9V6Oalwp1o(p|w; zoeL#yv-UR$Btf z6ZJ0wg|j1wh#=>F|B00r8Myyu<5-7es#=G+2qO3kB19yHoltINK!~4ck|S!^)qyC* zW&UK%$K?iVXheN-O}5h1J5ouXUa9r_z&wWl{*)Q%wS%pLKh1YeBel96JsHMhI`#@o z#y4MGpR=fU`*WjHcbVNIHK3r=zI7<%F3E9W#@%bs)hGJ?(&j)5EcBJ1esgqMX5M?? zb@g$*=4hFzyPxgG=z%SH&a`N@qvwi5wf>s;Y=_f_guSU_s&G}Yw;voe4w`WYNc^gX zjX_0mG88=M-a70+po6P2M29(g6lqX9IFNx(J^lHrg&C6wKFpt>`>yG({-KKMt+y-lzr-c3&|CZ4SOwc?nnehlys~a8m&;H`}FD4vf;vNE5-;U=x9??MynmA zZ{?1?l=ywfz^BGOCmJL*I$O3m`#R-n3MEIiQ%3X5ex>^tQEph01ctT6MID{vva+&4 ze&2sAO4nQ<%KwFL{=tt+`#-EkYRe8Tefmt?oesrx6?e-Cue`(g=@OOogAW7*u;tqQBc5A ze9x$vybPYeLlHhzJXG-Lsf=`fFO2q;90uGgofBuN=))tfecx>o-3Ed9!)6C2aCzrO z+)`q&Muzd5}dzh4b6hcIzikF@!XROJBZxhljan z2(Mj0Lmd(URCF=pWH;bxLqsU6TEx6KgcyjX`U?dn*WYej@Q!lY?3mqU-HY}a4;t^l zA8Z9!S?^kJ=WjgSXZN3c>62u$wK?07<^S^V`kaO96V5#(Wb^&h#7okj(s|MDCtc4W zt;MmE!8OE{=~%ecOgyDSF3jtFe8b9+brx?ltzdl8{PY4uALHDxk`|gwM>Uz0A1?V(BDk4nwJ-#n3PlHn#h|;p7QR(X zZ7_=SN2C(YXW&dXr^*~uV{hNyV+s??Npd8Yqk}(G6e~$BO5U3MreR}hnysO4Y@Ffy z_myths&3q@{zkm`a$~x<<6OFhodLYPx8CFH<1dJbBYKlQ3HhtD+BoUB&a2^SY^-? zpx;L(0D%LO$3!X+kk-3WT;ym_ZuastJ2CO7tno%oxg!}vg@`~^2t?m2R&ysYn-=_( zxU*X9kjF4l?Budr=9wdWG5iMdd&W8R?3>le?LS*EgABn~lETeK*JWxB_eD;*AJ;+r z!$L4qu={lfL4kWO?l2VFy^+@U)+^mfCgGJM`9|Bx)?P2Ko4n9_fF!#zRjsu0a(bT@ z{#B^g+gI}ZiHhO`+ZinzP1xzghb-TZJ*uDw|_+XMe5nR4!ajSPFZJ=~% zA}7cWn1i& zz(&hP_S?Xwlq#|%rPgVzV!@KH>Q$}2p-^3EPgpRD0weM+-wuyO#N)9?!n8k~J^L}@ z@~wim`gYTL={hC)`sPrsbxYhCYvrepjn_(@eN81JDA=8r^g4aTqxRs}lS3@+d-PF+ zev-%L!dTGi?fpn71aXRqjfG?)4=s!Wt4#Qr@FzzEf#34Utx*^Bv5CHo6SkvCVbm>1 zk#4>rzK{GW(qey!k0@dQO88BZ;D(I;>Cx8??xe8> z-vXSZ-sOX8|jxq)risuucCOAVNEk9d88O3P@^_Eo07H2OD&dt~bCw6Ohgv?Cpb z#+dK)gMwjN-OL4}bJZJ3&KVO)k1tzyn*R=O+1l$#7CM+dSZ&Ub3rItU*U?~=#-Atw zSz)xU-&lst%K=FFMo-!X3tkF>R&pyX0k;OKOH z97)ARaBq60E!>A^Pf&Y)XU^f61@7q6bjaH-6d})@JOAo@y#^0cbeL~m2*%jZ5Qmy* z@aXYe0HO@=1=eF%quo>eOm4N#m;5rB2wyJytuK2dY&3cx%V90+Ld&e&V_&C+1$T?G zWB@{lyo|}-GMAF$e(!&qHKPy-Mu9sQtJ$5nQoEJh==+h0l5QEX;}Z_A|M11 zX6`mf!zc(QDKcX&zVNMoqa(duzQ z3WvGj20#8^eV&``DjimbLDjnR~zB#BeTLL|AxvLZUgb%X2jH zP>l!Lz`%{~k7|~_t^ny?y_=^+k~z9SUk1V)Xh|W;9)zO^o+5lAH1Qlr%6=dA1O?NAdk4GyGiUBiE_-4lAH#sa7nq$byb0OhF}{0nzk!wA2!Vt@ewYt=ICgef zR^lS;tA39{3XZ8%CL0!W^LPFFAJ?=W;gd`2!Qn-*Txf??#T|he@`3>*Rzw}AP)Vi%l;@6!;)XMQHDXi zvlR82SvUueWa*jbpX>m~WVo>xtjQG?ufph_UGh8IL1EY( zcjylV^Kqv}Xbs&=6baYe*eWFHItE9L4FQu@hp&EbadN>237%t8xwaH*ICkp11+54I z;ewSs6Nn!Ey-~OA!^?@_VT-o9JZH%V7Qu?T*oQ6Ia7sb?4ID|VJx;zRxh4{V^C0*< zj0_EZ#JJVDG+E~{|7VeWb8YRGOst5wIt0t>@+aocAKTr8P%V62FFJZ_GyjP}Peu1( zy2J0KrRa8`^s=X_sXwrM!ObR~-dAXaB|>;l?0H${==Mt)@}>paSub<`55;9|1kJdL<+WxmtaY z35O!+s2AF$nW0Pn_9`XVuRW()=gT*>aOKEzp!*@g^!;V~XY!C}iM#~kcmGB<1W3c3 zWJ27l`V*lI%M(eWnQ!GW)aMfrI8C}6AeH$0z4hAo-M!Gz>%biK{-t4K!;RxXQeuC? zq-*5~_is=My?`X-x$75XGrUJ_eTknWEvl__?pOVu?t!}rl4>AK2?+>@*>CLc2liC+ zT14Lr15w7{NP53@hBw5L#!fcgDbcw)%YY!PEH4YkuR_AvhVR|$n*$5~Z$3C1K2w$I zVrX>GO@ZyT6qWz`J#KY;{FcnzqwiqCE2{d!eIe-IbbIs=UT{V-cFLtCmxsus6JWw( zk)qI3fx#Wa0`<;PG)rS95$^y2-G{NwC4uGq`AN9fc;^fCJ|)K&y^adDo=^Ncx!hRd z7wkz&YaYLM9D#XGK&0fCwCxL;#mD3D!6LC&fja>B%cT!Z0gu4L=l@INw(}+Si&=O@ z1k69drRA~PzxZgYb9Tl$x`$JG=D~~A^CP7J9xFe-efTi?Fmx$k-e^}v1=$f}2v^>@ab@OX>vcdHIKzg1 zX`=DnCoP!-4a2A2GD3u3b8~n3m;v1e!A|Htr}k&|IJ}H$OS_F8g+D^QD|qnc&l`9^ zQSW>YB?yi^qQc>*E9v01h@=)r8mweLYI8kLuIA{6Hq5NYaHWix!xP1xm_C~ks#BJJ zQZ8VvVMWEvN+p5zt5TB6~DHnk}u^E6euwi$UTI)C5j{B-El^`3%70= zH+wGrPUJsw4Scd}XV0HCC+QTPCVYVW?WXVF_xJaK1O>fA*U=7r7ZagG_Kr;b;-dQN zG;FuqELOa|fV!ich_~{zKE@&TL4FxTn=Iig-~KdCPqW8Y)E5;sHwS^|NQdiJ<^N8D zzKLg58w1fNkE|z2496-W+o!0Bk%+gEokbgO?8fM=678?hwmuL&y#wu6_R@(CL_7)$ zx@-d^M~^E;MeLawItPtIYIbOA48Y#7=vFDXT~nIwuCG4N5-;(py8hdqb5V0YEv$xS zi##!C7)r%J8JzgwdWkWTHw+Ps4!1)if_b30%(r@@zV&Z=4Zg)?ru9wElYr8>4yr98 ziZ8jR+A(OBJjwQJz8QSE>pv|Ev_v9XjzS&)B?Q=v?w501KLtg$Tb>%P6_Eo1+0`eb zxfx){|1Q4&mO4}PQKW)UGH?t3f^C35F$zRUhhoZ)3n$@8_YV(vvHGjCslB2Y3@07u zJ6}6YZe;?f?c19^`#c)Z(E4SK*wzy6nV%(!^rzUR72YkfOXYi@E54j>b)^-&frWDd zkTOhz5hE`;eHpd3Y?iZhzVX}0Y|nZr4C(lnWxiQTzo74~&atX@J410)nrKnH2o{OE zW3YPDF4Z&l`$UtgpQrs!3*f2#oR{-m|Mg+nrPmb`9J+S|9#Yek^n>Y3^5-vH;EokU z50E|We6~T8m}IA2IMg0?6!%`iG^omu^H~2OKM_*vPhknD6t*A`X;WkCjQ@bTC|T%k zp>7d5a)BIIuRHWVm);lxn(s}S#>dx*uIvfD*3t-EszbG5$=1fEL6Yp%s|I|D=qaZ` zN8cWr#j2kuBgAB(TJ>zC^=M}f##+hiD8ME+>uV%uDFcCKlo zK*%tBxrv}axD3VzO$RE-I`zzRe8iKFyp~c@WhaW{k!bo^o`6p*9u?w>5GK8KJ&z-% z7L2uTw;$j7!z%OO*SX2R);4l+*boL{46(z!9Qfrwh8K+>&2IfOX-YCC+;6*kNKNWV zm-Wq_9y%_zQ*?CXB!i+M^VmUoVFk5oG|XaY@cAT=1bcqZ%^k)gLKtRGU+@3jc-ySQ zAAk5rQ#61ErUT}E2pR&+^&Yc-TDxv^y3+LId9yn)SOi*^HW;s_^%>StVlnxrKO)Uj z@Oc7*L|ebMH?r&8Y)0fKMVx0UFTK6!4 zlhDol#QoH8Lr#t-@@@Eq^0W1!)vrtfmJo#hqO@>)W0xpU85{&!B8CuBgrk6=mKYU+ zN=xe&H9HX^g1HadquJTpPi3WLUYC6rN8#??y?YoyynpTZC1aVOjgFHoK0+fcEY7ta z5n2!$kT?BlVZC>M&!W!Q$=X^4>H6(01+$9T;0v)r9lnlLx1gYd+ks2msO(EZCSdwF z_%pdze`WW1c z*%oS;w{V;ynNpF5^AWP+he)d^?^Jxe65r|DTo@8b#2nu4V~QGOBiZp9A-YakWrp3a zUkn+AuPBUNFLfHgzZaqiM&Mo++Z~EOglc!96sjuTp>FVU;9Kl#<0y<7o5~0qNJ``| z_d@%~g(5z4&Ugkq5@T+xfDl%}QC_5gfc8`LNeJNMDjn-M@76ClO*-MEe+;XyN?(Dp zAfPrW4~qDcXJ>2xC0_6QW_R~^-LtV+Apbo;;Pj?3*X0I%2}CB1K2it}OOrwXh1 z2Yd!+%mbZbFDFHC<9j$&?AWu=vflCfGciRYeCHz2`y|XWb*yL%gd`aX7*lb265ADfNjkDNR)%?LE zI~5Y1cQEpS0R8bpmZ@?A!(h>G{n`#+x2i7f`sJCAr|zI$Lkt(yvSt`9q3~m(=%^<1 z1|^aTtAZ>JJdgc3Z~k?N6~qw4pDJBDCzS=XD7%lcqbc5BJrhz`L2;N^hL4O_LMl=N z`s@gjf{6k5_UIJ9V5zVYLg8MTO1W{Gsd2Ab-e!yd>?0`6&R4vT?3_4gm4`BDR&MWs zwP!54&XQeI-!KX)@sCyLTg%erzsE$4(JrVw-kjoIA`TFF`b6b1f1D@f?7q zVK35o|G$SxOj-%%%i|i&2m5!_TMUytK%J^DBZL7Fibpy+TN;1_^#ADpWU5_jgQyT znWW@QqzFb;tkU8LsJw#&t(=%VaRqiH#&{~Xz<1E;)hiMM`_Ro3syBogV8Dk!JiMUF zi|Y98ckCz*#m@dvJBnjNkm`)Ff#un7voYN~-8H8PFfbjbyYNLqN`>}`+a~0cm4k2c z;ICJZ*W%8GZ{8R3$aRjhVVX8JFBqeT?5_~wtc^dSRxVMxY6hA@A2I~TOXkX z<=o{CVCfXm2IL<~twF#SA+tJijQPU-^)|xg?Ro=!{Kakjo%0l)!#4J7l}@Km&}OSg)K4c zN)cx0d@C$mDlJH>3qdLbV{l07j+WdCzuL5=WQCB$DjV>rAJZf|8swQod%Q8=o%_^@ED?=>L~1PwHpZ7x3P5~c;*@Tki;d|v;E_av@@n5m{|WAR{y z?f`{w+3Ps`k|y+tf}dCgIzOmhxiZ6%(0#kr$;in81OQkfap$EW>hDr?dybV6V9~%> zAG9VBl)LwTpp*sFf2Z;OXLi5DZRW#FGs&&AKA;?e547ypJq$Ymjf71qx%zM&j?|k_ z=AF*C$t!s##GQz0(MMv#wC%S&ulH;Qn>4=ueqyCBr4V=DH(vR0=d$(m)&`{sslMjW8PC0s^waW3P>o z)Fj6j+BjBPg`(*s*pwpasVJttV%lC8|5$Y!TzeNGKCanOM|PPE++B1IoF{9AK!ZC{ zG!($W5u*~S`DJ`uodvYiM3}56by>n{B4qhP%QYxVoJ^bF7#laq%VjP8`g^b+v_Dzn zG!d1f`jqScPT&;q;Hc8QzpQX{z1~5(>KH-e_U$;kwD*{BD-k?!*MQ)oUITv{6nmE1 zJ>pasBoDP=3bgsy;uy_GW5GW<1bkpf?l60Kkp~t7Z1mkVxJ})dg*2u8aMs+Pg>^9u zef&4o5m?B0e=ixwb6ShtYOyrw5$bK#OQMw0{fFrls~>+4=Y6zA@ZKpPSs7?DY2v9n z;0O8NUJKj-TBV<relx2EY=3Y74(ywap=47SKl+&!ORciyLR*PF$byGCj(wK(o&MM9J#rBq1Unw4Z!L${bo`2 zJJ5^lzyxceq^j2--VwMKDm0n`OozcAvdeqkGNnz*H}WpSEEt)Mq0R6vc6Q-O=wgm) z2WAmqZ~#C_jy9U@h^FIqmJ*aNi%v;|#ZOn#a$A`;N zAk6HJ~&e?w|eNqW2C?sT+2+@; zUuXKL(&&`JH5(#ojqZ5={{6QP8cGnrU@VjH_lf+r^TF>+2djrU0>PUl|ATd}DIEqK zod4(HN*+%5YF)O!a^b)goQV=m+kL`ORBcu5?WuEiBWqOf;}43hWo8}|N%@B2=&1%I z7gIPgTZx@sS#xkro2j3@@auFo30>$X6R|vk^Qp79s+=ef%p1^7cZ~JDF%9K0pGF7z zk*1}AZfP#S3})-!q-E9A){ZWx;qd(|iqJcKwke%g<#MQCNy_$2;hLlDdD+d12Mc~4?)oDvL{??@9z`Lf~LHhL_m3pl>{;)#=HquNg z@htkh7;UK5u!FelKrRsnoBF`}&F^5JB^k>Y*G?K$DR}&u^5yiqF+QQ0jLX&#%4@*L z_~gtbV{ey(CdlO#%9HV37zO*OWUhNq&x^VUmGR;+fgm^sGy;PvZKqqQ*5Z zd5VBybQlu{hi_OD#3R%)f!e%7@{W}EOG`1N0)`XC&~lnFCF!SifWkpln@RD{9$>nP zRZm|lTV3zQO^Edw=88y2lWif&^}QvKr{rcN`E0F2EJ6|;8wmi;+>AWjKZ%a(4Ws}recAu1 zrahUN>Ylar%udz)8mF(epXW)RAXfl--%L5bBvGlWS6K)x@a>kCcQ#B~+O6^(Uu&ob z>Se7*bjnN%$0LhK?UIRC4!Z!QNphTzEcx&B`M+ml=s4abmfApw*?2^!%ZYH8)C$LQ*z@6FJ}WG|LVK;_s)br{N3nucJtqS3RwpLLTkM%$V%amnAIJH(sD8~; zj_I6Zsp>zi9=%FDlcQC@gzrJ&dcY1+U&+eKAH`acj2A{`$Fn<;_X74B8ygiutSjq; z1S}0$jKl5NWCKH7Cti-Y*WH@x zYOa8QU86yh$kL)uS3s;1(Ldb0@bYacV0rnNqn&cGc}&Lo)tNV5TplA@88t24Ih%Kf zmkN6(ks%wYd zUHC*J!3@ZOmXL+%w~1^jD7kxQ=?NL`Au{mOHt!d^X%Zqhq8+^^lHrQJeG3JY3{c6LMEjv$rIc?+hv zcE>^5Jq+!&>CHO=LX!=ydw<5IL)PH&fVsXi%;Iu6IMizl%0|@5S*FH0#y{)dsP(}3 zd1-M`FtK~2%w#Hq`*DFvYmDvBHuL|N1mDN_tiD&SK70S$k!7X@brcTbC@LH~^nHA; z(jFmT!i51_USt`};O zv#5%glaScpVU>xJqo2>|6tdyanuhv@;2weK=geDh#)8|s!~`6-mro(QbJRR;p8EVn z6`4(?fqaNrm|J8;qmj8EJjSP|t!l;yNcKq5QEq~UM-ziqu}I5t#LMSRQ<8}{70zU|r!G-(!%0Exo?pd}RC;ce!CxxTGF zU6Hz7w=KM^LuFbvav}_8dhoXGZ$QXO~P_FoK!?1xVIgF4g?qscv3B&m;_3=K|srBwhj$t&X>d%JX!HZi_}GrRB^Sj!aY z@iZ6VPWXnq_!wdp{U?*P2d&dyOf%D-G57NBckvsJdn| zZ|X@vRY5xR%c4K8x?gcV>A%Q8jZ{R1gF=FwV3l!%3XYOwoW?EXUlMz70WqxPqfgWI zJ?iUu9F<-Js~(?~9{auRD$Y|lBnLrQ1r?&}UwpQ$G=G-7tHToh{rE!)SZk8BT6_Ta zmjB|>*5XaBCv%{M8NX|6;v{yKul-b(hCvfMvwhESQQUxaB@nK{%|3G&0#L}%a6J@J zBwm3m^S^=Re5^qEmPN0=l!or@?;2*H)PgLdTBJh}rGc+QvD2!Xvl9p;21OpM63PV= zMuj$SJ>M)p@!%Y^2|q&y`uiT4UF2MUSbPppB!azV-7YNq>z1_Mv3;%ZUArkR6k7PXkDuML)GPah9c#RrGKtrP) z&p;E2XyeBQ)DziwcpJa)ZQJtmBM=7%HCr~fJ@4wJan}yB^*^}o^~eIF8iL|{oTiG; zVP}eZ8KF&UkVLPOYM}F4z|%@jSx&Fnb8GU0)v!U3f?=|i9F>6jxMSw<5S?A7$aCBs zRdxy&CfZ$I@MwFZO;ac9qzMd*E5si&AYKn+ zk2Go9dw6&_dUyag9`x<~y>LXBlyzRc-dq>y>nmH4Srv%xrFzly&Ht-hl55AeA15vu z@2@8Ng|@hey{W1FaN!h-1@c#;jhudfu)|nrnWygbP2KDbWdnPQ93C)xD{ImoJ5r?n z_<2TTjzDo$Iq`$R3-$9iJJ7x^6O;8dwG9ntXXrU{H1obW_{=GKSp#H2sH`-j*(ET* zDpUke)i;ay`5P7G9mPOwHErt+5N3!pP^<`~%L>!l+aHLEt zAOAIUAT<<(^SdOxL2ps~(V-V$PERvU^^MUnD#j5ixm{?9YO&$A8@((S>NJbS%|kXM ze0{Rc<$b)?7G`D4V%0E9+)lHY@LT#?yDEr2CvC`Owd?w*;6|*aOVW|x)^Qn8jl2;( z&gE|bbkLn+TOEcRDtIpFfBQ{0n0pM*bR+wUU)=WCL2Ww6_JJ`#+QFE;r+%(dAwk(0gubZqmW$kS*G8ih*`a@4%_?!+a5OP40! z1o(Lb-0kT47j^;{Vbbii@PMc7ci%k^vcJO1 zoOxX-&MCuuslkI8(UH228;w*CJAUC*@Y+O+bwX3%zr;@`4`>r4*(m7$Kc2obp349K z|5S=1Bg!$dQYhKu*hPp?gq)*L$H=CWJ+sq6S=q|WIAk0$4k3q(Bjm_BR-8CEw(S4A z&-eHEyU~qqlyjZydS9>Cb2hJSl^=i4K7`kf1-Km_^#vVm#HsCl8m4ZHV!q@LFJ%qw zJ^0L2<4whRu58JZ{+0vXVph=6u0Y@Mk+$02LR?T~W#vri9J=jWgXLt7cJ1tT$@eDG zK4_Je*&?xPN^;I47Hq3HgmkjVQ#f=Eb1b~K0aF1x=&e~tufY>MJ+ouWI z!;{5vtIyzxcDCRVY48b}t)sU)9uC?FY5;+p%|MSD80UwiDlLCB+ImMCZ!Q?`n>hM$ zzqZ-?kEGhB1Y;0}5v4`@_tLfx`11_!WMQ0d8~1K)#Ja zD&BTaOc;5!&0S);eDZWMS<{<#AU1F@kZ>k0PRmQEtFm*QXsqj}_|W)Qi*maW!bjyG zVemS58hF&6dfI9^;u;$p-KZAjwI?9zx~>yfoJRM5Xx@kxz<8vzF|RLSrHH=H4A)OX zwtgJ$L5u2(rIIpG`7&g&%1g{iMjv%B#66JYld*O?=)+KWU8;*=@gs`>XRtCrcJS}U ztvWoAYL051`(*E-MbiG&^ZMY1J9t|QLS!z-ty^9}E>R}`YNZu`RHD$M52D>LeWeKl z?v8dN7R9`4I_toPS7q0?y&nMiOyqP-GO~d$<}f7rK~@u%c8illPi;=Acsn{jFXrUz zh^Y5-t3csHXqzgDOV`><82o~Jb!r)v`9MtZc!S?gJG&)%_U}?13RKktgk|NOwfrrU z!txL=w4_~MW`qAizKl+y5xp0+OjMi;dEyq`(~Q8dFph5$9DJpYn44V}AOkXQ67J9` zaK~)A{dz6~MJ7P>KFJ(fM@afo^OKCarmf!Q+2_d$ND;Ji4RiZ{XWTG>N*r1=Lt{o= zn^J9J3<|sJy#L_V7(9m*K7XBp1W7R?4Nm?81UiF{B}d;ZbVB%|2G9FY?hn4l zE+4m!jEop1ap6c-uxdh|OnS@qd5BIL0FGj|wqVhvSi)$(TVCP-BC@B8FQg;de@w8y zOH-z zElEA=H-0hhet@bzGNSEq32qn@L9=Dzi3;N#YT>=IuP`}Vk31W~m-XZmA}Fn?bTlX| zV?)}G;13R;M{MmM)Ib0?$Xx8pw&{${aU-Az*!~-iCF}%C=qBydN73ls;I!|ac=xv+ zEtkiyMEz-L`&DIujXPgreA%JI3tvKA=oooct{p+wnL=x3fv9i(;yrz^D`-H-Qj(XJ zR^nu6Lxvqn^F;DR#P2Tk^t^d5hDGR?^oH&;CG(1&KclhAli`KW+4vj9uBO~Y_dQFU zj*62z6MU9`KnAn8>BP;jND<;9X@9L0t($_U36M3jgmjj0Wb{IgjC=gI3L3(SDOd2iw0&mqsv2vABQk+`nR)bjqQzhrBAQPYqHVk;$dqLJyo z+JFqOi12)cUV)X%7flS5y?JVQNz)MT9>Qa6s7QGUQlNF>*?f*b$aD}$1IrFNGUpHT z0A)g&clz_+i(Q%dUbmLza((}Nkwyp~-OOeM7IDAw=;c@FzSln)du?~x%{u0CtQLYYRs2Yo!|}$u^N`ygizTQiqa-F1 zJ27vzc0D&*lA;~1isTdab~PkJVU-ByYFtm~I%NB7GS&J^VwT0wak;S>B!2-R7MmtG z6+lLue!QUYey=11$@5kJlmDIBQa$P{jE9SYi_25?Iyyl0sYFJFS_B2yV4M4q!PEEY zFy+Myfl_m|fz=m>(zlEbzieIPBCo}1U4i`ZR8)^@v9gLe9|_*$=oqD~lL8-z4iZoZ zkQ{Vs=T-{8EGm^H_>on}jX!)PIAxV4gmq5v^%}|TYQ=^vlU{3-HT0e5v2A`h_NqhV zOUX^O0WqGfrN!>-WTV5MlG$HvYh|EU=w{%Nja!8wB0@KiqOr5be|e9QVEK4wP9D@6 zgmuu|uaenBU5?RW&kj=Mor8RZQJps-{#oRwX{C~Qla0qh_BV&{EG!w1w3Hlk1e4#1 zc2^4DyMxZXtE-UpTuE{wteHo);S3+m;s;dOBz4mAv0glYhJ~&Lrlf@9r8prqBZk)} zs2S1-T2=!#O~SrK`6Nw^8V2dRt^`?!Bc2{D}v#xU$h_HUe8F`~uWL+gFd? zlF0XVtu9;qGfQ`mg0AYdy*5h+iO!*$cp7?+sj|U^x7=ZM?Ba$Cj0WheHf zf+QYDc)`ITk{_ZSb*1DPRmDXyd{L--F`~-s8!`z+>p;?ZPOW#*fzzH@8^8$r5*F zj+m_&axooc!KP{Pdo%^+?8d*>#;)132x0EIiE!kS zIn3K|l!yrv)J8IFFt;1w4Of@Lc>GOemce-ZcVoW3 zpDUjJYSvp}b}T@ajI)T7u4}4TQOUDMu!S3eS4qV4+Os>Sm}f*{B!R&U&8)0nC3;WW zheym%MdGEC&kPT9;|@aPJIt=fw@}wc`bI8Yqdeh+6qAMh6Nl6IWczq)d*XA3$hK3P zlUD&^4<3M5-~ot*#Wo*p{VN#WNth-w_mtRT8yi+-FGeo5d3 z!S&tegqjDCVD#;qGk8Sz>HC8WEHPD=loL+E9um!{cLY`1Ry+8OgAQ^jvsRX8k!Q${ z4U>HgzY5Bry3#Cz4CPx~=U2UXWdc@bn6!7F%NXf$U`*h?l8d!=!Q#$P ztBK|HJ2H5IXKd~8G}D@lwOl4@CW@yK8!H)02kfCDci7P8$aO;(^w|@;?%djjrRW8w z2)-{;zP7g8G4jn9h0abK?C)i24O)O#WRxB2Ix$;}*-%$OUY?x6#c(E9c?Yen6aPM6 z`>j+Zao*>T=G8$N6W#NX8Z^-J+K?#~Xl`h8ev>}UYC^TgokVrK`vpxy3$$*2DRygI zi>xwM5X|&=qlV}UsZQ2kl0jEY5wkaQC&t4;H|XR!u?g(TOQHcX43a(f3#KOX5@ksU1~MD9{icU$P>&bpka&Aq@lJTN~&XX zfc1bw8vh)_k@NOKof|Q^_%R%=<>-;?4rDnSEuLst(T1Agvn!rqQfS#iv8Gx^5XvZzK>EWa-# zKM^ISp8$)^sM36Arz0gV&HDXQS7pZa7j3s?RRr+vqWS1t;lDvvIX`dE5|Rb>{w{<} z@>H>MgW!x-JIF0Z4E7v{>}~T%3u9do!e3Z_mFKyAwfWv*hTOZ!HvgvcHqVlxt`{<# z?e61Fa-l?~%tpCvX$kJg-+YRW-IXti1@@dB?kO$Y1p`uqctIBTpOh^k(KNE{cEea5 zFkC$~1N#?PVJl97HQ7eHph=%TXnAbM z{)d-syzD*74@?r>$3Hq~PcPxby9X47fYyweM&Wx>dCaA27lJahUZ=lGoc((_3>M1* zhfQ9;qZa?pCYE2C7)(p3^B^MHe5(DvbA2QlIyPpfrIc^;p3x+Z2*;Nza zn@Zn%(;`9LiD>H|?^!zD3fi?igCmW(HU}65dc189|3||au>G{ze#xTQKiqV*C8$44 z9KMG!bmMWiNvbIxao{YGBbxU0WZzzO7mThnE`CsOhf(JeyH8nkD@QNXsx!Fu3^R<( ze3pvY`ATyy{?mj5rnD5A+q9YA9kgv1gb)9-<=cJl-lIuB>YF}Sr_H^n9zSws6;Vo# z(QPy9dz86jwIn19MPP1wY1X3Pw6hEe-ihDf^NShyqcYq1cRm0{z};RY`K=O8!Q7?_ zDn&Rns3%_0i$T7^sVcC~!BbzQVj)&I%`=Z*&=T&CuSYTSJPQl(xkZL3PyKTL&HR9l z03Am7k)d{wsZta{OFb(!-4A?^$G`iI)ZjS`&~_% zUu?V%zsE1nbhl$vM z!1%{6MR!PvvE|Rs>5Q;~`|sQ9;Nq>qsHq{B+A)HHNiwk>)}14)JM$})$wwAlWhGWi z2tRrVW|XizPZ}h;ma)-`)WBz@@{2j1kb+8<1jJL4>F9Io9)x_?256Z6H?J={S~mFa zuG3P3Ho?pXq}z_h$;gDbijN2?jw|*B4R7>@NwtCKHy0K$1`fSFqwtl_Til0hdV>gx z@T!^pXwiZ9r|>5cf?(IPD!KRQrkcHuQc?T;noFWoG>Yj1Ha1tdH;q4)wgr-d769J* zE+wy{rMhm*deG_~LnL=8!cz%-B6hVP?Obut zPmlk*XgaUJMWe%;rP+}7mHV_cS0DhTX4BLG3^%6{T+E{Jmy=8>>LbLdnsHDkw2k!q zVd_F?{T9g_$3#UF(tXyH~Rr3->e=~FnSm5s&R>z{ZayWfsy9gX90 zdkqeDlz>kiaW_@cpLlpFT*CX9-8%Oav%ItavCf3MBkEHU=lRHG+l_mc`-|z5d)uJl zX}8z4iN|+_1S}G`66)cmkQ(U2zK@k8?aP2ExQ0k`k-(vWXJ$U|j;-7vA1U`>iNIzytcx zK3v$^vB7V`Z&Kkbe@OYFkJuG zSx-oGm>cfNB5%xs}3QGeP^4 zM^r)`&NY26bK^(D%Ie!nP=w1D#d^YolD&C)@_Oguv*&)Hn~Q^dgrju;-Tm|R<|R_N zxcGMf%1XyyO^gxk-thPE*a~O2fHFps_TSc;C0{*BC&v7hlafhWbCpl(t^*-uKv6&5 zvqToksIf2szYzv4S|?^I-MiN<-~44QliIYERNgpWsuXl|pjYb$f)d%qp6vb3jdLZ{ z*ELp3amG}NZb)pm8INo{ovPTFyJa0^@-DFW^pNp06$p${kmtYUi%Ly%r5!PwbM0#` z|AfCt@+)~_Ca@W+pKyn3kh+r~?7J|KUmkQwaXln>O@ey*4YK%Mk;vTXy*)fI5*=*= z@xtDgBVbVax~00M$lQ=in*A%)h{_3G2IX7vg2lo()Ktst{F)Lu@%q1kvegX+UW!)e ztM+L&fUdg{J-!S4cZP{=(|?ZFgO1d0s(62%4KTU*v-ZuB3Q)JN{ursqTLQBd-OOJw zfGh~y>GUHf8ewdu^)K9th=S+7V~G4H=ZZc7$v1|x`D8_6nOX48HY!fCITCnfh=$%^ zBE2N%`Ak$xW*T+qSy4&KQx zJ_%>U{tgmTPEt_iqu)=%3 zJx_?uDYFbg>v)l3b!)O>$kF*pA58m~&nv#UlACS>jRV_>a3;tQ|FWAqOFo?S$QXGtH&^~t9B0W2smof5R>xG%w-`&2z?Kj!S2elxVxr-hIS4Ovd;MF!v zwt4CjELk855L%$}<46mUjBq*-Jpl=hDddJx0LijQ@^g)u&hQ#_Zt7xF_UhadU`=NJCaE#Bm$0ts^iXrmL>1YiPza#CD@cq%!-F|D z35VJ-A44e8*3K3!iLS^IPBdcRAZJLMCgu|nT$kNf4u5sbIASt0WOW9%IZP?B$!jtj(4C&jCynFc_2I1q70u!#CIoLF?Z; zvIF)gAd)Oc7;s!1vY%zY6d0tKnq!?u#mq_;YNDcKT>~a8)aEcC7*hRP1+EZL$@zWB zO_=8`|AwB(kaMkt-`ov={S60F_a~3>^37m75z6O|iD=$ks>(jt6nZonK;4);^0Wzv zkz{dNQ>TN(p#fcx^@;D9;Uyb*0UYm#YjOMKAoEso_4e?-#1lT6QEB{uOp;NuO%b++ zc#e=Oto}{ZQM6pN`>rqYOs-+FEGJx!n;}+?iQGxG08cBx4`skaeNzHIPbS;2ou@sO zpA=;sFLJGl22 z^)J_EQ2&JJARpWC`o(j{)6_0!wb&weq*}nm`*rCmwu6_N2NOq%eEnr5+!!G$U%jbY z{pwhM+2mVy$cDEH~3{(^!Y?1)oYIVQ}AKDGErmd<@xoP2Wh`mYV3o9S;SK@F1(RiWssnb(_v`r-4=y>^*m_y+}Sx2`@X{ zZwP;KTzM^b$*63{_uqxVDS5e$fBE;QQ9xr1JULS>hy<1XuQU`F9=>KBoYsIF{j$O6 zm3E8(cba%B&8yzFvZDy!!SS1Cd@UzOjW_i@1X(XKYQjAgGv7BKBu(y4Oa>gr$PdU| zW{d;?^uKrQWB>@i1*RDkHH*1&V&RfzMSYXlmrvOf$?S9x64*qOjidnPVASbm_EdQ` zW5X(gmaS3v9OZFZzD|5tA$PAWDljn68Tmw_tn0;FGDfrktZXQ|d6=4rT5;aOf3JnS zTSI#f?*NAdLrGl2QDW+WSM>x) zF_IH5^6@V`B-~scuiB#FRLECX{Zxi7SsBA~EXlRhi6>)b&0f?MfFg+pE!@L+<_bqM zzvqa!^s$GDmE+0of`%x=QeOX4ih-lv8Fo<3_cMCu;q0ru)`uh867~V7A!roH=(2@- zt}KDV%Q}E{HSL#JKEe5J%`&Mq9#6IW;}hWEfI?Tu=#);xuRaXo3l4tDsF6k1iLd62 zX|aNSj~XhVQ({Mio~R;n=3>RV<0V}%H%&&SCtM1zgn6&EvnwD=ZgjUP^KR|~B-2a9 z#qUt#s*=6$zo!p&`vLYy$8r@DyX#wTLw8}s9aN6^kkt+%k5>sw)B`Z&HF)jt%mO4I zw9&U$RETvB3hG4XJhvX%+w(PKvw@#sZyHkkh2?n0-9a*!x4&WT@f>8|piw5t5a!2{ zXi20f9Ux^CHdyMfQ@;(?10hdwvf*tY`wACS}5-H^@qCoc^$GZ zehqm%wA(n<{QjQZ^&VC3{ltRFESI|7Q3aX@HlUC&v-v2!Iq>*!2asjEU_d0*d)(t- zU8I1vcbm`3;JyzVzj~6Fx#LO>P>C*kRt<47oFOS$hqx13|B5ht`1)wJ1dEl0Y?AtV z{{6_L>8}RDIP-NbX!aw@JHr3IIo@vGr5=r_9scXGS(>zH9(&^TS1DCS1@GuZw| zVP{QG`jrAYbF2AiL+u#Fp_$uH2dUD!7WNsRsOz)3Y@h^$F2>Tm07KYN9!5kyV8^_K zCljHmz-q_d-swZlD0#+x8X)aZjE0{v-Me>ynTfo-bTulaVBxt8(E4yl;sJhtSO~_@ zz7v@{R+*=R9}voG;5rVL3iej_qEwgSZ^QS=8a+E>>4X(1=Hb=3M+F}qDAf`|CA~n? z`IawTQ*Hl^YQ_~G5gX`tVcC`1t6zReo(yvE!b52~E79~HF`5Jpq%aI|>rMnWMB$nD zr)P;Zc(H~3-colkBkD!1EG>b`5MXZ@bFdBuxG*mJXwxn`@W7qBqs5{bM{SA4S;cKz zoW8L6->NY13xTnFdD}p$MVN`sC>j*7UOjZy1%o3 z*kt73X)AY!OOjxoStf^vs>sVf(q#CD#nRk{fG5USlI5FlZj@v-QI7NcRHJaTpiZuE zykQ>JHj02){mP*|&mnaO{VcVh2vsKBRjhhh4(K5vRx;dD_-f+qQGgUjWuOADrw{nu z(To2EWmR9h+V=X_TvVsT7h>uT3CjB0JK%+bTNT=-ezN4QWqOa|f+4o|1{3yichU0C z$?<+bmeWJ{DjkHGeeJ`KzL+z9FpXy#4bUAKu32i+U;s#|h!~mhT^&T}u7%M99M1@unREb7mDCRPzD^S4H4*ym``_AhhB`=j{Hmxad9u z?4xaLLX3gP{_A(PqLz}s%~z~zMq)L-zTQ6L_8D_E8Ks&xddkVO_I#zPa``H{PABof z=L`J7C<0t5OXG3vDU(^+Um4L;+%)X08U=}Gg26G&aZ)Od5b6a!;bn>W(@1yjQ@66n znJ%?TO6g3IT)6Z3Z2y!ecnaky3g5sYnwH_d)_BTp730jo!TG(3C}Lgq$)AJFR(*1tf|Oe;W3 zt~QC@qj_r-;xQ-K+Kzbg8xQ9?H=pswN|r@ELI8*Hy&nFg;)DN=&vn)30U4#Q_&HFE ze`-0bzRrGOuypR+Uo}`g8U8!?}@Y1M6Fy=)N7VN1T#uQK533$m`~AA#^>E8^dNWYzA@@>VR@#LvR#lek z%dFq3IswhApBnID>95ibe{+b?e4KD}sfUjRAJRVF4PQS|hAQiS{@ceQS+lc-X~om= zCbAQXBAxnxCF-Yr6v$xz)Yy^n8l zdNvw6H!4LtE?oiU1?CVGqZvi+v{Ifm@mN8&xkgoo-Lsbv1mnLhc-awjJBB zU<)A6yZq`Wng%ursSo13NRs$)W<$2KBB{(t4{Xu9?pJPF)@|2n-#57Y^y2y{bIKkq z*I3va4nmsr8HkNxHKG?5izRMx;GV`2;ntn`i3xoEkO#Ww_YMg?dfedcAtmqgE^Zwb zJxWwaliIIVpEKFB^)jaz);_>$d`yq#%en|&+`ko8s|@dixtHqqz=n0->)K;9ngq$? zKGY?cgenc6A~~c|p6GzNk*_M3?ftJCyj1oOVeVLHEU zTe}!23mUD!_7_ZTDEDuu1t!o4y!9J_DW7`Eod zeTf=8nhlC3{P}osk2O#>mhy?QYI1^@pQdtK*&Mu$!2A|^JcAF~6+a#V>+c|T%cI4I zO;bHu;+_fJyKnApm@s_VM~G{TJOA6$@AMTLrSQQOA1*7{8FgL1ZpZDfV1L!G^Lxs} z#hPaw5?y<(N%X>>wn4mBr3@Yt%yyDv7JWsEi8)Q<#Isf?u-pJ&mT4KWOR?kC(8JY2 zjQH5O4U<3QpZz?gww807^!yoEA}67)!qi}!=Rg518TTCEq5n)v_Gwy%-(X}kS<^82 zD%n3UQ1$if5G_+4b6{b5F(H;!j&XG%&}IJeFlJ?Af^(dw+wk&>iO4MKtDS}b_PFZF zWqRK49;!V_%01#Zoa~?1xUn75x+LMu$A8yB!wExl9Ts~8`I=ID;#L%|sknn9Yuwks zBfl}{RL_RP$)mv_Pk>RC441Vpdo~Q#d5{S`yk;l62d za-xwzxzd+N^6zj6Z}Eevfdx=i2MBIL(JrJ8Nw)sA>^c1Yy@~39>(N0U*d9r{yvN!AxoTaJ$W~qK zZ4Bt1wPcO^f(_sqQk_&DmG=EpIA+N`NYIrCNF z4YZ#3_K$v&0)&qAGT->QlB`8LZ6Q-cklLdA%JZk$W~9TP`#kE7LNb-QFqKu90PV%{-JU= z3}#vZr4PAvV{5%zT)s;09EawBf(zz+h1?MR9cw)a5GL>;DHGe`myln?{Md0>NLncq zg}$%YTL0wyc!T|9ak`W2PPGH!oDv+aoO237L%D3LeTIwn0+7VG|am36~&*%y#;y{b5Q@PKJ?j zqzGEeWE=i`lvwqa%Eg@n7haW6+sRY(<0@rCKV6elq)_*Na|P;np++ zq4lCL@h&6Xy88OX%mmRpOMdv2#F?doRF_&LCUe0Pg9Ujk6D}R@h-9!oOEMAdS6vpR zS`7%PMW48TRrnB9%f4?nX6_XRN?rExofy4n#mdar17#eW&ItDojAiDz&8_o(WLauO z#9J@uWZbd!VsT{P{(kk}?BtS)on2M^6ELA;5*TkQ01hJ5$M3KWWX+=8%&A7j@A8Fn zl9Gn@cX%@tr2C*%fbYl35fJ1jR}(`U?|kc3cYm86Cv?^Q`gT5KY3_OHME zCm{kzQQdf#!oij5$k3M7RsjJ{OcK$MQ+}p&V!^XvqOML_ym7U4X}pwZYvYU=TLwH? z#n|#Sof`1d*l3+tqPt}tJ%@ETWQ=_IhjmgC9aL=0^zgpiwURL631mQD-9}j_ikvaf z74zh8mNetkyBEN()qKA=Xh4?#`rSb=jh!~3#E~o2>MNOy#A9bg_51y7^t#gAGlF-3 z!`KFn*1AFtfG5vh55TzbT)4u4BstZDj~3JOVjfdHQ_JCT*jKL$CT~8FvhHfQsT~{) z#F){$C_C}TUq07YRyI}|v9+g4qyE8OUNxz*VvoOguZ-8pbVHFqGXrqF?~8bRI5~^r z*#Q2xHbWKx_vqI9bDP6)PyMigRC|bD6%OA#D{p2(DJ)(h)ctVat6n+xT`g)Vv+s?% z;}f>4VUcVMEO_E^Xwu@2!K(M4>m9A{-b-h%zE)eI|6;yM=;s+av66vo&fE^_xo=aH z1waU86u3{n{4yMQbhY;K#pC9~+T%+sh-J@`A#Smo?=`dJ5a^1)W;Hc6SG1uG{CAyE z7o76=`Hpc3@sz>$uNBzCA6l`!=M79IgG5fP_)H|u$l-Cl9VrfpR<_gA6|wp0BDb4YBBtCU>7R0c z$LAF9P<>qW+(e)e&m_m?VdXGf`Os_wL1@GO{?7^3_Lh}j9kc+f0=klMfZzSm*^CQZ z6%vgv;o@RkYwxxM&J>-zgYDX8X*D&k{q5!K!_C5f`1MfI#e6nJweL8Vs0Yb&Ul4up zctHe3PzTUCfOO<3EiL0iW}v9JHg~-Suh`2!3m(dMMRvaLb$OVyZ4=em!Rj4)a@&IL zUETscxQ7pcVHkkBH`fnl@2kSi&Havc$sR>KqGIDX4@VHAf<8$M5y%bs*?Tr*bw(@HZ`Ml42cx5IS2FBhu0@$?M@of{F%Idkzw|sRLm+ zf-*6lQ1Paj?~q;n{46S48)BY{YNVwBnfG`Yt>faw#WhB};ckl;YmJnchmvE92AgKD z*2cl^R(pH9s)i!Kv$(>eKFxzDzh+P4VaDfH7gawk-3 zmBe9QuPm9$JkA+INP^g8b&Fm>{)gEy4}#%Px}HxcwL)xD)gVVO_JT;iMp4(+mIry< zO5&4l`xFjKG^2+o!zdb>+#v^A`7t|DdQeI!Ev5g2FJ9q2Pl`vD``J#MHnsoCMyJXP z$UG$Tluf3)g?S-HnkeF&RKrsTewVk>aer7|N&jYm3XpkPLcHj*K5DE^oj8$64(>Sx z_UE&|dtMp(!k}fCvPB~sdqrt!)>0Vd@V3QsB#!nii0n1&jP6G;?FS^0+X91-&dwh8 zMa>m1G5t1YK~WeiHjMefo0hXdk&E6FFOV5FMo=o+OYa=L1;;F;v7>y@N%&BXF|j+fm;j#MXju-Xdo0CsaK+xr0xxx z-En6-%l`wOL^dq~C&{vBR}P&9pVtph<8L|#D#}HJ4=3LLgNtFmf%*xGdH)_{()0mY z;GZ8B=Pt3cH%t)P-}Gr38tWT+kZ5ll8qb_V_W1A)^k;hUgnpSLBAn^L+8_WmR!8s6 z-!WoH^0;#*_z&*>4D8+@ES6)&O$I^TDqg7U#OoI+2TzS79EC2r{E9bM(-|v0Ud9o9 zkw~P6&DCxxkvY9u0P1SzzPoA9Dm*bg8qpRi9YH*yuEEbmb!U&yd3H8BfZ8ZdLrI8BXgdkRku*^s$6hB57@oQ>#G zy8cVe=51mjH5Sm%pC4QxEaZrG1A2IBW`n)T7A3)bN%LKS2&@oWK|BE9JDrBPUHcO}D|HQr3X=D+p``{bIjOxqF#d9Q-O z<%nOYN?t3E1E_$TadFHo;VJu=!@ab%mC~)NL-md&X&AEIyT{~0YWyA^HJCTHoTU_G zA(F%tLHv~?TrGE-mY%>d`;_#VSU*V>7Zcm|<+{D*x-;lHHauTC^EnJFw^@EZ^CJvd zj$7|acWn~M{UjO(eKvDa+Un`udSuzf6!4B#Dv1T{NnP?l^4{2EHa(& zm4!y}b^rOEgYh1xc)`O!@gBtqv?_ywJo2;xW7}Ex8_e@)MGB57TKabdO}n_l`w*bE zL!nUcG}$qXLE&I#YHE6Vx)Q1Yd{`B~nn56_B7}{qoebPu)7CUBEh{T^Ej{(sdmDoy z)qQvv`h&^NuzP-FSMW^^2Fr&6|7O_d>zbjLe;+oIevf4QNahJ10>pg0)Z|X6(izbiT0FKH{V4lOLyU zK^em6rQPRB3Ww7UgBb z#s;VlO{Kn6)VV;<51n=Armau~N){q9qV1_`fJV|)C+Aff$j8@4bT;K(znEm-nmO(t z9)ZftmD`yf zw=GbFOe_&W=4KbrA2cl)a*|{Dry!krXrv1+N&j;g=NuOo7jPCatxN)^3-EhzGVD<( zKnL^hN7pfy0Z3Wt9{l#{B)ytCcWy9Ns8SUjUQPU{ES`5a{tj0z_EL!SB`{*=(kaYl zygM8Dk64bn2?ixY1y37S%oB6-ZbS@B|LQuplevh!eSMMNJgHAEhQv^Sq5--S} z)v!8_V(-gT8eaAU8U`R7O%9hne?AW&1J^(xDEVk+2K+ia%HFGElSkV?jmE_oX~@Qb zd1{0y*Ww()7L$qeB3JEzBg_M)jITor+_7>xU=IFwrRbiq0^IL+&gGIy@$U6Q%5ZvS zjoyXG$9H{p2${n1>OG8m0f5ItXL3oLtqJS;$%rTsjxOFV(KM9fjEQ#76I03+V z1s-wTIX`Oi-l(H)3D|i6;d<0NdC>b|($atR!;n*%m^gJFQ_lMlWpKj=N6!SLNoQ|B zg8L)DW`E%m;{HE+!SvW-~v9)sK z)Rt8aOW(=$_#70LcNg>XhaXZ8yyUaQ%fa+nCI%EtV8y6tYO1K{r*46oAgdqZNrY~r z_tEq`LT4coHK}ZHktM$Op=6;R;ebD9eOHO2e7#u7(KIXF6A<%H4=$J2%nG5-hHzv` zn=0%C^s>lk;*v!5bmxh1asZnqKxcfC!D$4DASiJ0{#j9o0M$)w-(_@00RlF$@KOn5 z>*(pS;xsj02c)1M)@Na=sChlX+`g>i(jk`#^T$1Jo+CjVs<9YT=UlzHmw}ktEQ7uQfZ^P{zK|xLgFkUmcTHSFv!_AJJEF)((-sqG$50M5J*#JL#1j_aj#@v2s#4e39yhs@|I#<3f5o zC(X#~IX!P)cm$l9uJIC!osrQ8PAM7AOanVl&zgyqo}QOL-&ki*s03vo9kz?}h?2C) zBX_<;ihuG=J7MC`BneL*Vz@V3Vuzka$JnX(QCs4)6y}KkWV_`~)MKQNps2j(6#ByB;m%%66q{?!F zFq`4BC;MAM&5Syt`Tgp;g}vV8bWy_Bv^eEOUbtRgcaNC=OIOIfJpEOjUpcQAJu%(z zbA^(>dA*O;Gi@31BwBIoaI?Y2(KPvEQDF6Fk48gWS@S7~kuC%pvmO{^)pJtdE{Enj zbS{uwceq<)%;6xT@yVR}C!_F@wxngd{e`gIFSFhcD5Y3K?t3B%NIDWo^x!?Om3_1~ z{1h+oKjtt6e9Y!rnjpbffoPxix0{nSpDOcN8D8Qa0d2XmbBbqMie9)`NpH0)Ui+#5 ztOp5#(`b?Ww#0{Yl5aj2P1KIfPzHQTeKn4MeqZz;`wB;PxMzG@yX8oJ%%=I2>7i%* zawXU2vf`%>0!}8y<&M6eME>rfpEk>WqIG;2iQ8f5U$%BGQoEEgutPMP?KrX9a#)^t zz1ygLO;|i+-4^{__(BG|O&#*B%>;|FY!guU+O@?K5fKkA*(h+@EPED3hll$i9QU>~ z|KmZgfob<|zLKiGD;iu4`~=rf^#s$HSl{*6EG+;kZ=ROaJq&{h8|fJ951 zCfmdd8UbQCr&P`gefGMl;7nVdgX%?Y_)T8xfG4zV-|8%q^An{E;*CVe<9V2+muLM& zzttw=sw7M-bDyEsZgrfOAROjVOl9loc(}mg z{bGjw1wLik4XOtlT6=^{k!XfaEQ zF*_EZnIycw-er9{p?=-AI}Z^j^ec_FIa16PeG!<+on$!e(=KVUFbaQK+l%+>L19vg z-8A&OhI#pJIYT5slhn*@t>JnveX4iI=d?YRdgd%v+ZBWo@z3wl>D}~W&5Lq=CZC?GCXG1sCh4gb1^0|9WZ}}N& zn8cOeq4JVa6?nqR@qXD`DdS7JT9v*(B!|vfHQJC{jh~Qlr~1Nf-EoY;p5dE8`%oj= z_)RGP^hY5n5ye|^T@{YLbl9g<4x~HVs~ycOFS~l_i4`{(^qxaR)Ss`ziDD-O{<;ea zYA{Ts!^puO5_RKYG9K$Bb8?RGGc+7ouq2iQIj=3XT$g=Nay{WuD}wGLmWSaCh&B+( z1k>%r3kpS*!_rUa*N&IW-te)))&hb3N1cT4$P8&jg&7s;>>D-v1%b=zV@;mUxW})2 zD@7QcAZIj`K=VoE?AhE*Sgc0IJ1;`$4oTZ6V!Qe^vwd=`)^1_*Q5bsbzq4Mi3XACb z6Qcb4MJ7a__cLBp{HB8Am6ra7U1?xxQSDGjFcJ{ZI1>eF`HNdPI1}-enfa~cEjLnl zIM#?1%KTVYBI*Q)XAeCmNe!_!dF2HbCfiXPAdL2(HCU+Kv(|z ze)!~oZaDWz87tqPQ#SCXpyko=@l=`EH%2OEkGVH}N7HgTbML+o`D`tAr-Sbl)NaO& zaDk(wQdGAcb}DQjQLj>29Nlje)!2!Bf#wg^_)Sn^&v}V&N_m}2`}85b>)9NdP1eiG zfwTdg9)@WrqzER4!5;41LNW7J5~bvETDdJTwESG7HWOqjBh%rEti=mQv)={5^P*^G z2)>QR&e^TPkE)^pc{vmu#(z@c*E8x`0&3*iN^MWm`A{zTR5Nr`2v7wPQ+igV!1w|TxL!EbWLSx zL8oKwn*ZBo((crP_E$ljYPl8$)~qu$y*L|>J8~kq_w_Gk7W>?M_- zfH6b&?1cv+;dJpR(sRZL4U9+Pw+xi(LhWMasc-Ib`H>$|Zm@eNiS;Qw(hV0gOtJ^i zmUbZ@1!IT7>WWbPFEngiD$F`L0?DHex za>KU9w;0JzGeMh+0$~Ys-Fvkhh`tC{A?_4nnj|_W3dINrY|}@>ov$?hJ6svTs`c#?W6FR`t^(=S_4=Wi5h zrBMk{qKz{&{y`*wmPy^Gm_Y;=vbAOS)D6m+bl(}jL#l|KLAagS{fbgNlL`0vpV}-; zK8vf*jct7~*otK7Yxx<9N6~I?uPdvkqTO0QiN?+d>cH$W-n3Y`9qw)Yc$D(L5ue_? zWJ|_oTjnFSDS%>{6$gC=XS0u&!0#P4Novut=u*cXPKQohjm~)+%0YUa_dDUwrao`y zyXd`onR0cjb^pA?7lb&ZfRMgPExFP)`?C4_eUC?n#tkD6PBVpVj5cL{SB+h_4wV5i zs?w_2NTIRd;-?rag7P-?p~`(alpBW~UCOny!F_N1<9-_a@B4g`l_r=068ytb(u8Ve zBzaI@{VbE`@LE*tBg@m&L{oR}s@FvkaW;p^l`k*u@u)kiZ|4}D<47<%dFw|LK>@SH z($(P$yQcR|UO>Yd0c^Id4+Nug+!`q+aS1#S;VQBu-U6m%uy;~RT^Zf2bLG=ezdrq5JAS&A-B(QVPQShQlN3?R zA0FXmvybq*;_1KQm44GV97p+J9*^QM3NKkJUIvL&n0zVlvfyA^khl9f9-hMk{k14| z{|(_|ytV_oZ6Mu|a!0U-q-DY~RZ(<_`L!B9yUJwWB@AVic28Htl0CbMF)q+e%F3)o z#1j4bM_|acw^{QW6Q01F1sa#owi4AG5%%!^dPlIxEnBkuZL;>$uL$KD17|SBHx7kT zEUhXpz6rg9)7`Y08i&Z4NaD>KJ0%Kj2k!F&aUG!!XJ~Wd%>YAcWniH%$xP=~(+kd^ zY93`EF{d2@@QRMTJyRjiqB07|``EyVDA6k8LOsmJ65VD^=+M^&v}M5!h1(O|?LrS9<|?Z0&2X`ca=)KF6$@rPWIj;bUu?=Lz_FW@=;5|@70XE@xf&G& zm-%FA+{kM06&kD5gQT&$%{zJvJX3@P?-MWAvPyKD^g+Xt>C$y;?B zJxxtbFi=&m_pRwCAWXhWI%c!EXzMlCXxH;EoM01+fU1iVPYlG(fn-dfejt1!9DGqwBbLma~U*Xft=5lR9NjUXgi#MES zz#w(bps>%XrLTSh^9H=`+JD{Co5)dHGF*%-|G^8N?6GyJS14hix~s97ZDCoQXJF|u zd$r?s8K{NI?2Yd*nmqjTMYdxSN-sxY)^@TY*lVGd2#w#I+}={rjd&vY+=Kzxb=pg` z_%k-47RhRe8rfLE_B>%ndMN0SCME3b6TqNtH~|JSGDk;88=E;$@_=x(my|qSeyA;0 z!SKt&fY;M}sB@;jehVdgu#N_mq!*}R#Rc%^8*EurR}2?~e%$Wh95vt8JRd$^Me_d= zt7V87EjBYPk{-^kPmUV6kaZSuy*^6h?dNgUV}DCw$0VE&D z`Qh7P*fR#8iu4?z4>W( zz6gfkx66;xat4mty}er8?yytc?KY)U@-C>H$7xL{G>`zogce4qaQuGy`WRCNP!j!s z78v4j;dh0YpS}sML9TPm=4ye0fD1z=NDEk}GiYS@{Qu1Vjd}*&fzzUSvQ_tPmNI@H zrf-?GRpW7NKU6b*8W=)_MDOrLNjPH%)34R8YcgE)Vv9Cu(iw`1H~}#mwS7`V96gH# zD!XD3H42(DJaA*_kf-6+-;$Tjd#D2JmOM^%n>g7WzJsZr%tx4yaeaLNFFjW20_Hxu z*VNS)b9!w&j6Ckna_ZMu>dQJp2<`LONPrhC1v+ECgFe4agrQw9be8x|v%aW^mUT%b zM`#;BD3)tstbIC7S;81e#^cVW&&gvMQ|u|Hb^5^s`fr-?09-7d6h7e`g=f(FTd!$J zL7F&`;j!fVH@|bn?z-go*e$iSt%16fHMZl<9|qy@A7*(Af5*00CMQ*NPr^8Z zw7%+CGPG(k*qGq%j}qx9OTGMh@_eXZy>eP0wq9 zLLCuS%%iN>%sGr3uybWZ*;ERhPN~2JyH~~K%7F2UsX5MO%|&S<)1aUW=56-!{J0!0 z7Md9gN~C>A)4!W(NU}tqvDL!Wb^a9o4-rJb#9inwAUCq_fm+PCPw5~SI&qm62_qnh zPwlhD8hD;$o#{wu!PGo<)QI_PtM-JsRUqbvBf>1~G|D0K7w|J2tboZ0EYA*h0YnZ) zT-NYgi}3^YDn>>|K=Wn!11-SMIys@eg^Jk1(Cse4^Q2wOZgwhphOoayVEc_8dm&~5 zOtSsY{K$6CNV|(2VYs`qYd>8)DtzAv7^I4@u)WgZOzGonOo_Z)Zeo3|ADxgHt|-n* zExR{hO&q z{-AIM@h&%kjz(s8HsfF~^}w%g6!YyJV;53leFlK#hwKX9xI_r^cCCx4RlI6S+zXH4 zR4~R3D??=Qz!_+BPr(@*LE8JH-)3Zo>NeZ903DyZ)+epyiU9RYP`)KIld^dt>fin% z6{KyP&z{;OZh267(gQVZ{%fPJl50iJZ&PoSbTE0aCmVU{M0RY&T{|8ZL1uYQW}%{4 z#cxzh-V`*DbFb6RUP*(V^^N8DPC~B@0&h=3k{(W(YpnSAd8n9$1J9_w<%Tskbiq)@=RKSVE z`hHs!C|8EF+=1^A{SK14;4%GWHlD{Dq8giR7d8{JsB60uUEG1$Y)ReP&CAl#?SajW z&t={S88w;MZ!Y-GyX+})+v$Riqt!d5spPytd-8ZB+&AG@(Yb8pmuee4VXxN+U^&|@szL&9jBjYR&=GPRTtEU?UfG69 zZ`pFySnaP6RUz5X^}^q3W+Bta7&!peM1nrz(kr}`bzAy2*qO=m^Vfg;^+|ECVdDfe zsrxQg)GMi57RJ)oDL+;pX3 z6Ud}4BDM_7@vtiJ16D{XY1sok{6d_?<`B>nIBjVjX5mAchuNpP1e=inK^^*bEq#0O zPAVAax9^ac1)RP!>$ju|QOlb!%fk-nF+3Kw!geg*bsVUYv3YJ2{7MG#DmhVi*sa=v zcM3O6VG0{qN#sU`+s&{~0h=;!(?iy;g=Ix6w7qaKd;j#P_Otk*ci3|4v2|Tv@7gbl z8BaocNi9Gt_M=zb8s8M}E>@L3bPtY+w8zS{*3+HDG&*P?UW3R&$YGH^T-&j;Ot}L zuSInqtS)NikIC%ZJ|_mO_8xaR??=1b3|fH~rpvBx-cTL206oG_9-}Pnw2hM>g&gr1 zQ|qw+jk~IKd=;(N`wy00nCz}HF^A)H}7h6~9jEc~eej9#kiSaE`-7L~a}9l@UJ zvYZ0GE|*?9`2=2AYIkMS>%(UQ)&~Z-7nb3IYU|yzAa?qEN#`i^|B&5myH<{u82sR!Nc2jk)W&orVfK$wq)llf%#SC=F`%7pFd!(~wmbyuL;nY*-d zgjz$VUFUy?F^3}J$AK6$*PrINe2Ro3QGebxMV z&;8T9H|gvg4C1*!gXYZZNY0<6t*+FUA$$^#RzAO^lw^crED4T=vR;GoHc;0RT75izVcv9x=ZUUfe-mpF0^j_@VNK$nrC4_*y z&09N%T!$cwm3lS+!kemJVU zSyt~sbkvMBZB=rt19hZ)ONKW#CBUTFs+rlJTV4aUF)7A#$53v(}GH&dj{ZAH?u-zr!bY zkm8=nPOaS~ItW$#YKb6VX=*a0d3G_$WAa=d7{pqJh8VZNkq}XF4-C^D{m$3(I*nT6BhjJz^cJ-&p0rb_`m=qYf?6EgiH)C59^+#1qg5 za7_k;4eBWV6m2~{Cqfd-R9$YopuL5y3J(tl@leYPZix?a<%UZM3C#T5A6qbb2AlT- zn|NxkGK97!8waXkNT%r1aNsaBX5iJydh=KXU?kvcKllzQXMP~+Zzr+)6qOg#O%(!? za1d>zq1srWtvg{mm8N)>P#(9M)r6)MmTLKFXkf?9|0uuk8G1hhO}Yi9h$hei*Cdc9 zGXM`K)dd2H9-E2_%%Rt+ zJqRY~F&df+f74lxt#;)VoUBf-tXld3m8A7jIBE+_jsOyjE@>jNSUjBT$~P}o$~va0 z8r)?_Q%C>OdnnSS%l{bAoT1V-uo97zOtf!H&dm@=G|LBM@cIE81)~?-$!wx=O~hQ4 z$}Ie}sP-{`_T)T-A-&HHz6%~k?vcdYAC*Z2$-=kv5DP(&UKavs1AQywO(~CsnNGy5v;??d|EiPR18z8ygoATqVQ4YF-=XL;^PUo+`cv3H%*?(ko4Kn5g3F2 zQT_Ek)ZK~P$OEezubaG7uGdmQv>2(eSs2Zg-N=x}F8sI#G~F_n>-@;xxqU!hU7eO0 z)~3ar-=6*xqf;tjmb-U8JwZ5_s^Q~_dkaWc9I5Dxxu80|WP*rY<5;EJ0=5n|3J}x! zcRsdf#sX>0ZS%b^uj1UBBkqZ+(nZoZTOPA2J>mNSPZBbc6tK^EUmQ21Q2CHUW@g&>80!8wVd-~_-@_`&HOPL<9Hh92j5^NRVKs!4)gfHItyIHaZnQ!3O zYfv+u#?l%X>q1n$D`^XOZ8Kx3gd{~_z?q{5m?~9g8G~q57EJSVG^|E+GU30~LR~Qu zH0$>Re~jv1IL>@blmE#Ku(rM2~gHDyFDl?!@0(u~d+^j^A_@qZ}2Mj^k0UdhW&3 z-HsKY4T2tfmVNg~IZ8Rhl)FjF(P!7+mDRb)UZZ{RBh0pz2)sgd#L;yKaHC&9mWo}} z0utnO6 zpAN^bvl~V=c4?H))Y9F|xK>^{)N5_U^kHz^5WGEW>v#Q!JLmd&Vn;J$&ovkYava~3I6rh|k;7)UX9Pbo7(bDKVTXtW8mjc?wa*PAz*T&AQP}jJb)U3ChD> zM~pxAuo0!Z^Q8>OCC3V;lq#%X8LOEhuS4}k*_w4`5~7~*XXbUtZd!AMmFB&_ZPaO% z+ifcjV5F#_r7j>Ihoc#JZ~VP=_gSN2qKpoBNMctGPReE#zXfYGnPg{|YY^WFQ0J1# z&}d{aI8PgsxJ=zP<_iIr>FAiaSTtUrFNqW8eM4oelk9q*Q4(M4Hhv5V?1VwFPo3{M zC5z$^^?Kh;qmLWV1mv+#)Mr%$RNxZFpH@%@m|3~L7?*6jTUFaC=6j=D(wh`;E`_SiJr7n1-n`~U;mio>n4EKwn%iiB6sMddyTZmjA~+5 zh0~ZfVZJZ@+N=lNUzG^rPtdD`k%C2yN4jKg6j~Y+vo;C>RF5%VkBL!WA}SGcr~uMh z(Rh)BscNByhl*+TSLCiA6Ssb&+gAU!Gl!*BKJKpCp>Wt7GgJbow|Oj`3zVX_V^A`v zvVF~wMiFc|#R`Pe@4_*_Da~;a7`!}ttm2KKZsEeQ+nc3SrEu^O-U|pbRbSrXLb?LQ zs7+vIJ*SE}W!63l6a7&it91rzls^LmlUCIuf{zFwhj{0={SC8ww=?#LTUx|wR4NI9 zKsfT174GZ69DTnX^V#aV-Y4tfb6|=nKG3K@I4yhXw8}g##uXHTNZEVSBj$6TEwf#I zF_r{JJC%tWx^h;IJJL732)jSkXVF_dJ`=;H`Z$T^@^R;{KQg?zh=Iz|-+xzgpM*q- z4t$-<%^2CwqP$f}i$ow!HA0(#UU`dUz~oYotVhy2grJJW>P&3IjJH-~(|_BY?Yg~JQ`7YxA7R8T*w16erJT|;-7?4hi-$C?U>l?WbsuiEzBv1X^lG~S!*<87D79C2;lMC z?>eZt_EzR#ZymkAaIp7-kNsFWU=|WbkB7By#kdvU#I;Ipvf24o&U;^>J&8A?)zSk+ zeDBw(YSoX`>P}y1)~efyCCVrtdXVPIhVyZ%*}e9+fn;|KMwCwEJqqI9yG*w!=in}A zoHFkKJPZ8HO#Q}MJE;9SY

>>b7VCL#S}L3h4`&OjmDGL^o&VHZ&75}IExIrH$2S>v>Ow~ z@=$`Za^dN_>*bj*C-v>5@3FR~eY0OlKFf&-w+g&sDdHtot9Yqa^s$E5n4{yM&L|lD zmC=d8fLOQAM8hr|68(;&#HC$zpvdxLVn~hg&t`>Ky%YW`Ko?~6W7+wP8@nd$Mq0r$ z2fo<(TuvbQ4xI$k4(!FMlhrGFZNx9Pw?FDHFc}^g;Q03-X})|}yUB;hR&F7L5bMVl z$n$z=IScD9?48n%#K-Zc2(0+ufKG1}=3=4kxVBP(yG!-^hT~e|0S|4pE-35pq9hI-D6=Z6U=7~rjH652r zdV=RoASCfGKG~H1KK8h{KqLLiEt&?}KqE!|ZxW1hV3JS?N1)lri}N97-U1wJp_IIf z={>Wzr6T~*E6}9tunlBzz0u2nVG_x@LR$jMbAz)2tM1HalP^zx2eKBb-;gpJ5V7tD zZra~+eLpQ($;?3{i&=WCKw0IPI!|WvC0%W*?zvZ1H6uXDX)pePO{&tJynE{3v%^LS zwBl9?*GSJm|HY#VnE)ycD&(OdL)Hh%taj#MJ#1O$XZse4=p4>jhq>O&Jjcdzr%@va z{^gI6oj?*C_)u7@eu}q|9yjR$3-0`Tk^37?%Zv$b1^o*MbJMV60qbm-Ctmnw9s^mI z=}+q@=CUX5*3MlBGiBdkySgcMMaI5@W`>FCsu%Q^f^b8C*Qx1g0SdIxh{=ak!jh81 z;E7*SkIw`p$s;&ZfM*yGP#Ewkn1H!8Xn+sAgH4rX_r5K$&=4qox9i=fuM6TH4q+ZQ zfBgzfN8wH_sDI=ziY#XLaC~|5`|Jw*@e9@<#^rK^^HX9>CaLzcXi9!XM3TONb7CY>R8QkW-?<=|u8sO>K9+TOxeeMLALztMBwvo(3Gb=~vj zS9K%M%T{AC5SNtfbwpu1IxWL7pw81r9KHH)nJ`Cu-K0>p-68gj)jbus6roYK)?V=^~fuuUk+S%I^* znr%9N>5IZJH>U#~PKyh0Bv^p@p0zbt5**_#&k~pGh|7h*V0suhukw7dm8L5?OtPNV zcwdC1`0aaHs5)zYDfxcZ&OzofC^3Y+R=ymT(7SzSnLOg3kDhQmUGj>GGZ`*ri8InuTeD<6X1584GCzu`)S-f4^qKlglWz|lcfJ|K5dDZ#;Ui;ixC`#MX;Fqo zqFDH*@6Vs+#?Rh0Q_^55wm)p4D`wit|=5zX6S;0wW3c zMq&QNN!Kc;nj2p@K%~qCSsDLqf0s`{3&y#Yd;g+k-3Q}ZLq31+DH{fAd}}MKY5=@_$eZwa0Y)?+Hf!}7xPnsfV_Y_A;Ry~ zS=^lGHuNH>sKaXIs^={VMLA$5SOT6E$F5E+0JVX+EFcqkLtUwzUwBkWVdK`x=gXq< z+CuM5--^=$grO1JNBrE(4>Zf_>t!xahbzhhJh?c|8*jTKen}JJiNW*{A1@WuILJWU{8E}@{yW8TSN0_=1ZztjhYK6>-=tt{x@;a6n(?Lkdk>GJ7{C<+JhWsoHGXdtM0wx^!(dKb z{0qSg@azFsdqDlm;K3h8G??ZM;LH6fXirUmG|)QJy+9M3!Fim?oJoEv+F=G0h6nyO z!sDc^%QM+>Y7u&zt42OhRF)RRI*BM&5sps)zegX{ckS1 zuXkyOS}p@|dE50GZ3Q~dF4_#9P%dWW1Rj?P;1wSR_zJb&3Fqx3z_SDsi9omW-^$tw zoME9?T(IC-DG?k)!;PKc04!w5GYJKSN*2q&iBH}30Ynv`^jZTWWjIA-U3%>m2RL-K zb#g&&RM*FZ9h{D8(GS$zlI$7%bpMZ*jCt zf&dkUs~Sv5aL>K?KxBDy5}>MW@@}-#*RoGn0lBo<6>t18klcEl&QZYZ@yxwcp>X1z zxOVZCk0-ihI!sj9Omtf0qcuSIP9n{brOJ*oGm`;rYh4oZ7U#H`T{wS#e&Dzr80H1B zP*pLobP0yQDQJ<_;dvvre9FIV#eug4_dN`E$MJWi`_kpBqetm|$Kjn#D(1w4La3cs z{Z?NgHd#XSj$~4%O<_MvSTOb@PlRM=e6b=+Gpi>J&M|(9PeQaB=iH`oiAis&;#KiC z7dC2jnU~n$#pI~;3-k_{_fQCg?RBwo*7=A)L1}gRr8l%;;Rwo@Je5r)9!?B z29>x?>{*CGqQd*I$so?M#7;macSJ?=Xc~^yyOAa%WkGEHKr?FfC~Y?fBIp+R)4|B} zYw*q7XUTxZ8K-9=0ql&qee;_zVEGCC!}C_j%Ov*A`Z(y;^{D%-L;Nd8th5IgT60z> zPO97A@#%RUFI;vB=>Y(i7$!<8#huQaiV#(mWmfqOz?<{>l0?ZTjaQ{wMpoeT?F1sj zQ9f(xLcduQXt05lyp^d%7(-)2A~O2r&dAnPvebyU)Pb+8{uBjbr4BjCN%1OBpc z|5BPmed$}sAZvitjRF}J+zJl2vMTSh-=qu#bPfVhsX0wV(XNyE4vyggGg4#}rtp!c zJ~CMpS(@{s@JSNi7XwEKl&k2cX}mDzC+y3`{lFiT6~9P){C78tuE^$e0xMIR@UjKB zd1=&m2T+6pAeAyeMId>Uao<5f8o=7375LpiQFXTkkSvZ`k?Lm-A483g530+{x7Je+ zK%8Fen}DC@K3pGgnNFdGg)6v!GiCSmjgIf7kOrEnp}5qnRTmA$u^`1-jQuxrNdm z6IEaVwMD69zO4lV{vH^_e`TdUmC=1|O2;;n)co4Rgo=}*0ziVId5%HM!*D}}M(r)E zdZW2hECgi!b6d~|F^d*Z4W{Vp_3z9n8_z#q70(o~bPO~10e3l=9`cg}jSe^q37Nb` zFY*?6A(J{mVC*QKgnZZiVqk%Y1~5=C?ST5!iNwoCDWP%@cnllAw2*K4t+w+hgLc6R zK)WcpNFBy2cMySQ0IvzeQqhbL45pBrj1I`4-!#G8cH!&s!oiS9YF#r-9!HvlG|&mHm};nDrknPl)w7^Tr>6P~kt^CpHFbt+W6gD^`n&KU1~0 z?7gLOv<2uXihYg+_Fgx))n*!5!MEvxkJ<`({$?RlFQ@u;fiM=*AW5io4ZyB`p|Pnr zpVHv!_Zx~2m^xn$IPd7yaHozAtOyp1l;{<Vz!OExE>0+R#n`A;S+=R;WW_~XL zL*A6>tqtON`SAd2C3PtIkp1>haH*oyB=|SgM9Z+y5W74nO(L-P;7>@@AqOytmXwgDc^r&RB==DXuV*&=EBN-HUlz+6b2w+dSoCa=L1$ggT&w=pJ-m? zXdw&WBAlL{1`?%yF!6v%p6%cJab8J3U$*!wS(&XzGE(q8}f-|)CU7_Qunr7pOEW&=Z-f32I*plszH3?a(bCN*481wn9pJa zTtwaXu@Kszde@r@gF*@r=OnpQ&SvP_&rxg;ItoV6@DGiF0x=w}R1T0fd&R;hnIJ&P z-P3j+yILl04%Ip4A_4XkEdA!;4GBDfK^ z%l5n3tkv3NXg7TG;Ro8B3ak$b>v!kDXiT}*9MDeXPRFUlUH|TFo?nX7Hv;M5rBN^Q zaF0>go$1QcC*2xPP6|fwais`jKzr&?ef~LiLXF_-Csc$3l=p?r(Sva^*DW~?-W;#L zQZ;pHAVsfSTK{kI6Jq9^$5Sg((x%7!ac|ieZ6Y)*CvvNFtgfQA%dA5b8t5)7gh{^^ zt;O{`G3#((Ku1RyO4sf@BwR62IP1_{>{U=Eg4ymYN(vRWLMDn*ryM5Yu~|8>(JmNf zN`I*?`QSQ$(yIrnCYW=9_hQSM|El%A_h@6vMhNIpKgsty-nKblx%!&M-*!uqzR48~ zj=H+Xez4st7xD=Ukmq;mSHnS%!0M+8KUieGm$UO3;cVyAUa+^VG-k0MzxIYUq6!2y ztF7$7@^&V!Nh7z!{52B0N6F0%er< z&h&@O*hXjBzBAV=?P9g=fH|sO>sHcwqY`@YmMgQpnY@43hdKPp=&rV5%xL$Z-_$Ul z8d@V@J4I_JWPm`F1^P+vsp*J?>$g|ue}&)u`vA~(Q7c6Ul_E;~#ITnTz=9t*K709A`uR2X>fKSvyV1XQuY4Fh5dND#0WH?#M4OrG0!=-> zl|O(eTYdC-ju7oG+;4A1#-M-yR%ch51v57Bw*hV<=kFE_#tH38_&AbZd;QiTB}A_| zp&gpuvF|_DIXG8%I>7Uc=k9d|9apgNK)nm>_tkij+RDZ)db=qc>c=A)c#cebnl9(Q zjZ}0FLsptQZ7MZhL~2XzobZf>`Mk{D@=T$ZQlnwtf_~tZ=(OIufBvGsM=gh2gwO^1 z)_Xz&(mrAJ9}sXgjeUCQtiqW&$&6mNhDZX}qIG-g_RExlvRb7d2 z>sKOvvmx1}VOh7RizH>|sYyh26YP3>nMSX&^s=i2XaCpT)WZGeN}3NBW3mZ7-JSQw zjwjRIm(oqSVSvtH!Sl;nUhhj?Gnc7jW7$P-2?Jz*_h3#_^=w;Psfj zU)JRA^7KhYg`~+m;g{ZT*pIsY5eIaQ@9xk1B^O1+URiy^Rw7xx-&Yl_UEWoapNml< zzdA62|7sq_YdSF2YZDf&M{+E;yapsq!mrT4Yy&qh(s2LQ=td1Cac}rEXAq-gqEEm@ zNYZ=vQ?#hJlAI%*CeqfAu~jcO%J}}4Jxlt%Jt}*jG)UO@@EtcF?NTQ?yUAt=czsMI zBko?*SafQVF5i17TQ2ENE!}{j*%9^p&fXK#aerS{rbwgiW)98Fqn)&EGt}-DSv_Y7 zKKSKKpvcGI3?`3!?{vJ9tLi&$ju@W|MxejVht0jYfG{iB;3SCP7OJ zG8<7_eplJOZ}yQWM+v9Vx|HK9DTHRyHyTXwqDSgUSV=Y8n$f_`kL6=-Fnug_`51S? zK~XF13n!WlN9(dADD3!H6TDzOf^warV9Ie}*#*B?P9*)PwE$l6V%4l{+Fhy|I~6O%S~O7zx)X)a70gz@~4s<(SWj%3;2(NBFUn~>P% zh@RDW@W8r4gh?uI-n}UC_o&{Y1$>U?NkMi%ul_Ts0(1DT>I)@-yvWtWsMa|uiOUzT zy`B8hW7cg?o@r17WZ*V55_0!fjdPc}o@i{w4#xOQ!JduQU7UZN>l^v%oBD%IJ6pkO z_GfKB5Vhm2@T)Ygc&YjtM?$t(E6M!fongAQ*?PP&>xzZ|EY)fH1FA848Pv~%9z}Uxcke3VK$|b3i(}&_<5SSd6{@}PaKare^-3Pz8J1) zE_5FL<=r^Bi#F5FEvWykznz zJx1B8qBGc-u;e1!u(KR*gf?H9map4X+E22y#aL|4yp|oo$Fq+K%htQm6ixH9*?LHH zEcV5?=TjrEl~h=72u1W*clN_R3RE4K%iPegirB+?@oXhP%gmonPHr0vz|aWvWlG76 zX4j{BYeN0D6;(s9Lej6_T}t0wjKgEjIigkmqwwtO^SoYo+=c$52%>@iT(Zw|gl}}= z#VVH&>%A=ROK^(WR-|X*azn4Ltkad$sDqCjAsIpY*?hBETwr;<^bmJ}?@jB(L$BY9 z1G@1A7w^+*Fb`ijD~98mh0DB-IwEd>y-A(Z2yrbo=&vdR>@L}C(MMV;(0`uiH2Aw0 z{{42MjnYwTlQuglKgJ~I2(9qHed5euVxMx!zny?XU7F{}NejyKue1aPV)Fi$>;dRQ zo93TN6C5c@^~~0Pe(sn2e?Bg%2LWeswB@yEL;mxT>8Jn8k+J_@4tO=B{aM;0#eWCg z+9jEEYfKy%u8wp901WT_pI@GXu=xLedn+!;ykq!P=HE~eoRKnD3k?x1^v^5|zVT~4 z%9hN1p6=fd1VFEkibryMBSvpd)g6`2I6@}>T!C`^&#T(vvMRqy^}zl27WQIwz|o0P zxKw}QFa58t|JyD2zntj*`P(UTzjp;=1tINR3;aA`Fb&l+!nr^;mSI-bNI_##1xo_k(2WHO#tpAe8lm5mTg*r4*@^o#nde z-M2Ml2G)sWS9*9GxX2-IwYe8O_PQ3|^FC#>8j&xqxIk`;Lv)ypXrc(K-52&$s9y;e zEP758*U4)akGWN^4falkq9=}qDRd~$!LKpfPt*nAl6@wB-G#SaQfVw zN*Em@$q;gts$Jb#)DJHZA0n`AccjFCx|5$&$Q80yx3H>_k~2BD`nrJ=-Ds<@Iy=S~ zM@)I2>+(^17&a2)*PW&K9O2`mAS-fsdEuT?%234k#*@JEB-;q_(|937nUchTkdkMu z#_1HUhzA9l?>9qztKz25Jxn}&6(du7r}8Pac=!;l8Ja2e1mfr9?#WUu)trI(PV&=m z5TkU(Ys?UhDm10fdPp9sSZa|X1{xO&FRb1ENqpq7D6iq}#7N@KCw-hbA+=1XpkJ0` zyFnHQgD5#7E-8K(f6OX)e=T%13=vM>vZ~oPM|^k(tY;h{+*1tgyGvcuq1mC?1d?wx zVL(Z`W_Jx%2s11g2Ix~=cDlu!#ncD^=kFKNp3Q+nMNA2MBuH0R#YIm29^saAsc@t5 z(MPB?<=~_n6ozx^*q@leBb`=?uO6^sWa}oYTd|YwK?L6l_8G$~6Y<2kNZHy7c!fFK zXRPV{STUmNGR*1VJzOKDAXNlBcj?sXWKvEUEG242fntP*;{MSE1?tiNte+B=%7>=I vmg1t3*YcT1$?o5m@L&A=|Nc56;y^b3V= 0) && (X < width) && (Y >= 0) && (Y < height)) { - logical[X][Y].setTo(attr); + logical[X][Y].setAttr(attr, true); // If this happens to be the cursor position, make the position // dirty. diff --git a/src/jexer/backend/SwingTerminal.java b/src/jexer/backend/SwingTerminal.java index 7e68dd7..367658c 100644 --- a/src/jexer/backend/SwingTerminal.java +++ b/src/jexer/backend/SwingTerminal.java @@ -313,6 +313,12 @@ public class SwingTerminal extends LogicalScreen */ private boolean mouse3 = false; + /** + * If true, draw text glyphs underneath images on cells. This is + * expensive. + */ + private boolean imagesOverText = false; + // ------------------------------------------------------------------------ // Constructors ----------------------------------------------------------- // ------------------------------------------------------------------------ @@ -677,6 +683,13 @@ public class SwingTerminal extends LogicalScreen setMouseStyle(System.getProperty("jexer.Swing.mouseStyle", "default")); + if (System.getProperty("jexer.Swing.imagesOverText", + "false").equals("true")) { + imagesOverText = true; + } else { + imagesOverText = false; + } + // Set custom colors setCustomSystemColors(); } @@ -1323,7 +1336,6 @@ public class SwingTerminal extends LogicalScreen " " + cell); */ - // Draw the background rectangle, then the foreground character. assert (cell.isImage()); BufferedImage image = cell.getImage(); @@ -1580,6 +1592,10 @@ public class SwingTerminal extends LogicalScreen || (swing.getFrame() == null)) { if (lCell.isImage()) { + if (imagesOverText) { + // Draw the glyph underneath the image. + drawGlyph(gr, lCell, xPixel, yPixel); + } drawImage(gr, lCell, xPixel, yPixel); } else { drawGlyph(gr, lCell, xPixel, yPixel); @@ -1654,6 +1670,10 @@ public class SwingTerminal extends LogicalScreen || (lCell.isBlink()) ) { if (lCell.isImage()) { + if (imagesOverText) { + // Draw the glyph underneath the image. + drawGlyph(gr, lCell, xPixel, yPixel); + } drawImage(gr, lCell, xPixel, yPixel); } else { drawGlyph(gr, lCell, xPixel, yPixel); diff --git a/src/jexer/bits/Cell.java b/src/jexer/bits/Cell.java index f4cf6d0..0ecb112 100644 --- a/src/jexer/bits/Cell.java +++ b/src/jexer/bits/Cell.java @@ -388,13 +388,13 @@ public class Cell extends CellAttributes { return false; } // Either both objects have their image inverted, or neither do. - // Now if the images are identical the cells are the same - // visually. if ((imageHashCode == that.imageHashCode) && (background.equals(that.background)) ) { - return true; + // Fall through to the attributes check below. + // ... } else { + // The cells are not the same visually. return false; } } @@ -470,6 +470,19 @@ public class Cell extends CellAttributes { super.setTo(that); } + /** + * Set my field attr values to that's field. + * + * @param that a CellAttributes instance + * @param keepImage if true, retain the image data + */ + public void setAttr(final CellAttributes that, final boolean keepImage) { + if (!keepImage) { + image = null; + } + super.setTo(that); + } + /** * Make human-readable description of this Cell. * diff --git a/src/jexer/tterminal/ECMA48.java b/src/jexer/tterminal/ECMA48.java index 6f1376a..f843d54 100644 --- a/src/jexer/tterminal/ECMA48.java +++ b/src/jexer/tterminal/ECMA48.java @@ -7224,6 +7224,16 @@ public class ECMA48 implements Runnable { // 0x71 goes to DCS_SIXEL if (ch == 0x71) { sixelParseBuffer.setLength(0); + // Params contains the sixel introducer string, include it + // and the trailing 'q'. + for (Integer ps: csiParams) { + sixelParseBuffer.append(ps.toString()); + sixelParseBuffer.append(';'); + } + if (sixelParseBuffer.length() > 0) { + sixelParseBuffer.setLength(sixelParseBuffer.length() - 1); + sixelParseBuffer.append('q'); + } scanState = ScanState.DCS_SIXEL; } else if ((ch >= 0x40) && (ch <= 0x7E)) { // 0x40-7E goes to DCS_PASSTHROUGH @@ -7480,7 +7490,8 @@ public class ECMA48 implements Runnable { + "'"); */ - Sixel sixel = new Sixel(sixelParseBuffer.toString(), sixelPalette); + Sixel sixel = new Sixel(sixelParseBuffer.toString(), sixelPalette, + jexer.backend.SwingTerminal.attrToBackgroundColor(currentState.attr)); BufferedImage image = sixel.getImage(); // System.err.println("parseSixel(): image " + image); @@ -7497,7 +7508,12 @@ public class ECMA48 implements Runnable { return; } - imageToCells(image, true); + boolean maybeTransparent = false; + if (System.getProperty("jexer.Swing.imagesOverText", + "false").equals("true")) { + maybeTransparent = true; + } + imageToCells(image, true, maybeTransparent); } /** @@ -7564,7 +7580,7 @@ public class ECMA48 implements Runnable { } } - imageToCells(image, scroll); + imageToCells(image, scroll, false); } /** @@ -7582,6 +7598,7 @@ public class ECMA48 implements Runnable { int imageHeight = 0; boolean scroll = false; BufferedImage image = null; + boolean maybeTransparent = false; try { byte [] bytes = StringUtils.fromBase64(data.getBytes()); @@ -7599,6 +7616,7 @@ public class ECMA48 implements Runnable { // File does not have PNG header, bail out. return; } + maybeTransparent = true; break; case 2: @@ -7639,7 +7657,7 @@ public class ECMA48 implements Runnable { return; } - imageToCells(image, scroll); + imageToCells(image, scroll, maybeTransparent); } /** @@ -7647,8 +7665,12 @@ public class ECMA48 implements Runnable { * * @param image the image to display * @param scroll if true, scroll the image and move the cursor + * @param maybeTransparent if true, this image format might have + * transparency */ - private void imageToCells(final BufferedImage image, final boolean scroll) { + private void imageToCells(BufferedImage image, final boolean scroll, + final boolean maybeTransparent) { + assert (image != null); /* @@ -7667,26 +7689,50 @@ public class ECMA48 implements Runnable { * * 2. Set (x, y) cell image data. * - * 3. For the right and bottom edges: + * 3. For the right and bottom edges (not yet done): * * a. Render the text to pixels using Terminus font. * * b. Blit the image on top of the text, using alpha channel. */ + + // If the backend supports transparent images, then we will not + // draw the black underneath the cells. + boolean transparent = false; + if (System.getProperty("jexer.Swing.imagesOverText", + "false").equals("true")) { + transparent = true; + } + int cellColumns = image.getWidth() / textWidth; - if (cellColumns * textWidth < image.getWidth()) { + while (cellColumns * textWidth < image.getWidth()) { cellColumns++; } int cellRows = image.getHeight() / textHeight; - if (cellRows * textHeight < image.getHeight()) { + while (cellRows * textHeight < image.getHeight()) { cellRows++; } + if (!transparent && maybeTransparent) { + // Re-render the image against a black background, so that alpha + // in the image does not lead to bleed-through artifacts. + BufferedImage newImage; + newImage = new BufferedImage(cellColumns * textWidth, + cellRows * textHeight, BufferedImage.TYPE_INT_ARGB); + + java.awt.Graphics gr = newImage.getGraphics(); + gr.setColor(java.awt.Color.BLACK); + gr.fillRect(0, 0, newImage.getWidth(), newImage.getHeight()); + gr.drawImage(image, 0, 0, null, null); + gr.dispose(); + image = newImage; + } + // Break the image up into an array of cells. Cell [][] cells = new Cell[cellColumns][cellRows]; - for (int x = 0; x < cellColumns; x++) { for (int y = 0; y < cellRows; y++) { + Cell cell = new Cell(); int width = textWidth; if ((x + 1) * textWidth > image.getWidth()) { @@ -7696,25 +7742,27 @@ public class ECMA48 implements Runnable { if ((y + 1) * textHeight > image.getHeight()) { height = image.getHeight() - (y * textHeight); } - - Cell cell = new Cell(); - - // Always re-render the image against a black background, so - // that alpha in the image does not lead to bleed-through - // artifacts. - BufferedImage newImage; - newImage = new BufferedImage(textWidth, textHeight, - BufferedImage.TYPE_INT_ARGB); - - java.awt.Graphics gr = newImage.getGraphics(); - gr.setColor(java.awt.Color.BLACK); - gr.fillRect(0, 0, textWidth, textHeight); - gr.drawImage(image.getSubimage(x * textWidth, - y * textHeight, width, height), - 0, 0, null, null); - gr.dispose(); - cell.setImage(newImage); - + if ((width != textWidth) || (height != textHeight)) { + // Copy the smaller-than-text-cell-size image to a + // full-text-cell-size. + BufferedImage newImage; + newImage = new BufferedImage(textWidth, textHeight, + BufferedImage.TYPE_INT_ARGB); + java.awt.Graphics gr = newImage.getGraphics(); + gr.setColor(java.awt.Color.BLACK); + if (!transparent) { + gr.fillRect(0, 0, newImage.getWidth(), + newImage.getHeight()); + } + gr.drawImage(image.getSubimage(x * textWidth, + y * textHeight, width, height), + 0, 0, null, null); + gr.dispose(); + cell.setImage(newImage); + } else { + cell.setImage(image.getSubimage(x * textWidth, + y * textHeight, width, height)); + } cells[x][y] = cell; } } @@ -7722,14 +7770,16 @@ public class ECMA48 implements Runnable { int x0 = currentState.cursorX; int y0 = currentState.cursorY; for (int y = 0; y < cellRows; y++) { + DisplayLine line = display.get(currentState.cursorY); + for (int x = 0; x < cellColumns; x++) { assert (currentState.cursorX <= rightMargin); - // A real sixel terminal would render the text of the current - // cell first, then image over it (accounting for blank - // pixels). We do not support that. A cell is either text, - // or image, but not a mix of image-over-text. - DisplayLine line = display.get(currentState.cursorY); + // Keep the character data from the old cell, putting the + // image data over it. + Cell oldCell = line.charAt(currentState.cursorX); + cells[x][y].setChar(oldCell.getChar()); + cells[x][y].setAttr(oldCell, true); line.replace(currentState.cursorX, cells[x][y]); // If at the end of the visible screen, stop. diff --git a/src/jexer/tterminal/Sixel.java b/src/jexer/tterminal/Sixel.java index f237e7c..e0429f9 100644 --- a/src/jexer/tterminal/Sixel.java +++ b/src/jexer/tterminal/Sixel.java @@ -46,6 +46,7 @@ public class Sixel { * Parser character scan states. */ private enum ScanState { + INIT, GROUND, RASTER, COLOR, @@ -87,7 +88,7 @@ public class Sixel { /** * Current scanning state. */ - private ScanState scanState = ScanState.GROUND; + private ScanState scanState = ScanState.INIT; /** * Parameters being collected. @@ -154,11 +155,21 @@ public class Sixel { */ private Color color = Color.BLACK; + /** + * The background color. + */ + private Color background = Color.BLACK; + /** * If set, abort processing this image. */ private boolean abort = false; + /** + * If set, color index 0 will be set to transparent. + */ + private boolean transparent = false; + // ------------------------------------------------------------------------ // Constructors ----------------------------------------------------------- // ------------------------------------------------------------------------ @@ -168,14 +179,18 @@ public class Sixel { * * @param buffer the sixel data to parse * @param palette palette to use, or null for a private palette + * @param the background color to use */ - public Sixel(final String buffer, final HashMap palette) { + public Sixel(final String buffer, final HashMap palette, + Color background) { + this.buffer = buffer; if (palette == null) { this.palette = new HashMap(); } else { this.palette = palette; } + this.background = background; } // ------------------------------------------------------------------------ @@ -200,8 +215,8 @@ public class Sixel { if ((width > 0) && (height > 0) && (image != null)) { /* - System.err.println(String.format("%d %d %d %d", width, y + 1, - rasterWidth, rasterHeight)); + System.err.println(String.format("getImage() %d %d %d %d %d %d", + width, height, x, y, rasterWidth, rasterHeight)); */ if ((rasterWidth > width) || (rasterHeight > y + 1)) { @@ -225,18 +240,23 @@ public class Sixel { BufferedImage newImage = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_ARGB); - if (image == null) { - image = newImage; - return; - } - if (DEBUG) { - System.err.println("resizeImage(); old " + image.getWidth() + "x" + - image.getHeight() + " new " + newWidth + "x" + newHeight); + System.err.println("resizeImage(); old " + + (image != null ? image.getWidth() : "null ") + "x " + + (image != null ? image.getHeight() : "null ") + "y " + + "new " + newWidth + "x " + newHeight + "y " + + "transparency: " + transparent); } Graphics2D gr = newImage.createGraphics(); - gr.drawImage(image, 0, 0, image.getWidth(), image.getHeight(), null); + if (!transparent) { + gr.setColor(background); + gr.fillRect(0, 0, newWidth, newHeight); + } + if (image != null) { + gr.drawImage(image, 0, 0, image.getWidth(), image.getHeight(), + null); + } gr.dispose(); image = newImage; } @@ -421,6 +441,44 @@ public class Sixel { } } + /** + * Parse the initializer. + */ + private void parseInit() { + int p1 = getParam(0, 0); // Pixel aspect ratio (ignored) + int p2 = getParam(1, 0); // Background color option + int p3 = getParam(2, 0); // Horizontal grid size (ignored) + + if (DEBUG) { + System.err.println("parseInit() " + p1 + " " + p2 + " " + p3); + } + + switch (p2) { + case 1: + /* + * Pixels that are not specified with a color will be + * transparent. + * + * The only backend that can currently display transparent images + * is the Swing backend. If that backend is not enabled, then do + * not support transparency here because it would lead to screen + * artifacts. + */ + if (System.getProperty("jexer.Swing.imagesOverText", + "false").equals("true")) { + transparent = true; + } else { + transparent = false; + } + break; + default: + // Pixels that are not specified with a color will be the current + // background color. + transparent = false; + break; + } + } + /** * Parse the raster attributes. */ @@ -430,6 +488,11 @@ public class Sixel { int pah = getParam(2, 0); // Horizontal width int pav = getParam(3, 0); // Vertical height + if (DEBUG) { + System.err.println("parseRaster() " + pan + " " + pad + " " + + pah + " " + pav); + } + if ((pan == pad) && (pah > 0) && (pav > 0)) { rasterWidth = pah; rasterHeight = pav; @@ -453,11 +516,22 @@ public class Sixel { // DEBUG // System.err.printf("Sixel.consume() %c STATE = %s\n", ch, scanState); + if ((ch == 'q') && (scanState == ScanState.INIT)) { + // This is the normal happy path with the introducer string. + parseInit(); + toGround(); + return; + } + // Between decimal 63 (inclusive) and 127 (exclusive) --> pixels if ((ch >= 63) && (ch < 127)) { if (scanState == ScanState.COLOR) { setPalette(); } + if (scanState == ScanState.INIT) { + parseInit(); + toGround(); + } if (scanState == ScanState.RASTER) { parseRaster(); toGround(); @@ -473,6 +547,10 @@ public class Sixel { setPalette(); toGround(); } + if (scanState == ScanState.INIT) { + parseInit(); + toGround(); + } if (scanState == ScanState.RASTER) { parseRaster(); toGround(); @@ -487,6 +565,10 @@ public class Sixel { setPalette(); toGround(); } + if (scanState == ScanState.INIT) { + parseInit(); + toGround(); + } if (scanState == ScanState.RASTER) { parseRaster(); toGround(); @@ -501,6 +583,10 @@ public class Sixel { setPalette(); toGround(); } + if (scanState == ScanState.INIT) { + parseInit(); + toGround(); + } if (scanState == ScanState.RASTER) { parseRaster(); toGround(); @@ -523,6 +609,10 @@ public class Sixel { setPalette(); toGround(); } + if (scanState == ScanState.INIT) { + parseInit(); + toGround(); + } if (scanState == ScanState.RASTER) { parseRaster(); toGround(); @@ -536,6 +626,10 @@ public class Sixel { setPalette(); toGround(); } + if (scanState == ScanState.INIT) { + parseInit(); + toGround(); + } scanState = ScanState.RASTER; return; } @@ -549,6 +643,19 @@ public class Sixel { } return; + case INIT: + // 30-39, 3B --> param + if ((ch >= '0') && (ch <= '9')) { + params[paramsI] *= 10; + params[paramsI] += (ch - '0'); + } + if (ch == ';') { + if (paramsI < params.length - 1) { + paramsI++; + } + } + return; + case RASTER: // 30-39, 3B --> param if ((ch >= '0') && (ch <= '9')) {