From 5ad7144e6771bd8f8fa67bb2f08bd91f7466cfc5 Mon Sep 17 00:00:00 2001 From: Tamius Han Date: Sun, 31 Dec 2017 18:26:59 +0100 Subject: [PATCH] Version 2.0! Woohoooo! --- README.md | 32 +- img-demo/ui-popup-0.png | Bin 0 -> 139529 bytes js/conf/Debug.js | 12 +- js/conf/ExtensionConf.js | 7 +- js/conf/Keybinds.js | 50 -- js/conf/Settings.js | 9 + js/modules/ArDetect.js | 170 ++++++- js/uw.js | 9 +- manifest.json | 2 +- res/settings/settings.js.old | 860 ----------------------------------- 10 files changed, 201 insertions(+), 950 deletions(-) create mode 100644 img-demo/ui-popup-0.png delete mode 100644 res/settings/settings.js.old diff --git a/README.md b/README.md index 53e1d98..e54c795 100644 --- a/README.md +++ b/README.md @@ -19,11 +19,15 @@ The technology has been here for a while, but plenty of people don't know how to * **Fit video to width/height** * **Force specific aspect ratio** * **Attempts to automatically detect aspect ratio** -* ~~**Rebindable shortcuts**~~ +* **Rebindable shortcuts** + +**Note that changing aspect ratio only works in fullscreen (at this time), which is a regression from 1.x** ### User interface -There's no longer any user interface lol. Only keybinds. +Most quick options for a page are accessible through a button in the extension bar. The options are pretty self-explanatory. + +![UI demo](img-demo/ui-popup-0.png) ### Default keyboard shortcuts @@ -31,16 +35,15 @@ There's no longer any user interface lol. Only keybinds. `e` - fit to height `r` - reset -`a` - attempt to automatically determine the aspect ratio (netflix only) +`a` - attempt to automatically determine the aspect ratio -`s` - force 21:9 -`d` - force 16:9 -`x` - force 16:10 -`c` - force 4:3 +`s` - force 16:9 +`d` - force 21:9 +`x` - force 18:9 ### About aspect ratio autodetection -This is not available in AMO/Chrome version. +This is not available in Chrome version yet. (Coming soon to AMO version). Aspect ratio autodetection is achieved by performing some black magic every 30-something milliseconds. This currently can't be turned off by default. If this extension makes video sites lag too much, open an issue and include your hardware and OS — **this is important for me to know in order to better optimize autodetection.**. @@ -84,7 +87,16 @@ TODO: add stuff for 2.0 ## Changelog -###v2.0a1 (git/current version) +###v2.0 (git version) + +* Completely rewritten +* Automatic aspect ratio detection works on Youtube _and_ Netflix +* Added popup for quick actions (serves as a replacement for player UI) +* Restored settings page for keybinds. + +Getting automatic aspect ratio detection required some hacks, not sure how easy will be to port to chrome. + +###v2.0a1 The extension is being rewritten almost ground-up, around automatic aspect ratio detection. By default, this extension now only works in fullscreen, but due to some simplification it should work on most sites. As direct result of this simplification: @@ -95,7 +107,7 @@ The extension is being rewritten almost ground-up, around automatic aspect ratio * Zoom/unzoom options are gone * Can't customize keybinds yet -###v1.3a1 (git/current version) +###v1.3a1 * Adding ability to add custom sites (in progress) * Most of the extension is being completely rewritten to accomodate that feature, which means there's a serious regression with Netflix support (no netflix at the moment) diff --git a/img-demo/ui-popup-0.png b/img-demo/ui-popup-0.png new file mode 100644 index 0000000000000000000000000000000000000000..fa3b4a1dd151d91400f2fd6df9a8d7b7e1884d3c GIT binary patch literal 139529 zcmbTdby$?!8!n8o5u`&|d0|OK5UF*sFdDgxB7(vlo~C^lS;06bl=l+xL_R0pT@*xbR0M=jq)!Cnem8$B2jZ zNoDkn7v$8hY2WV#l#-u+A9|V5@siy!gR)c@r@oXDhL_>r*oGIxuKV$0SUM6pag3Ie z&Np9%gAnE&LnpNu!$J4v6&EAN^?{_g-f#}miveOmaOeN~E1pUgqc_F#<<#te>G`Q8 zjcha`n(-$FuWMy5!JjF`dsf#SGt-CL@;cD-U~y*2XeKylj-+PFZ!?COws>1_khZ5XWH%! z>71aQs!?`a@xI}kgXzG|<+Ee$5y$ls?G2yo8T3vZ*Iwlv?&`uMg14Ci)j%nDBaqdBLacwzVg{PY2y{ql@zK zyiWY~*?oSQYA7q?oUmz-hb`q}JWT37chYWW7*(*VKQN`zx_XfLeD!VNOT5*L&#d%a zR8%IPES5H++H#oaPA1Ox_p7$*$!wRhZ|gfS1sgQf7iu^)Lo2hXS7sJM+@&0z-&R>Q zKx$0-tOW#-l%0nXwE|r80>=evxHMKe8zQ5a(qk|MNoErn@GV{ME_(xRDnkwicBcA+ zXiL60!cJ?7X;H>0gc(T$vXhF^=**iSHM!(og~ioqWNpns9?E~XYpo;FVH>?JjUy=@ z%4#Ky%-g**qz-R=e!bd<4u8_KG%V2@vCd1$GveT=wH}$uh(IQrV3LYK;o#zl2eZd> zbrI3I%G*vqLknI+~}HmEvogq`)Z4{D2BV3W|>sU7SOu^*TUW`TOwwe z)y5{6d;09bfmYH~TGA7;O!^I;cDNM5g6HQ@Sj00F+LH-G3dV&R%Ac5J<~pg6nysEG zS!6N{p$#!f4uzN}4`MznPGDwaY@ugZEojXg<&h&`-Iy4nN$-}r)49QrmJ&V!7i9UF!JtJSZM4$i{v}< z$%{^gHw2|7ljb7&xXqQ-XfIy=_y=zO8AsS?&~ib#wDkRStw{}3l=!Na(|o-ljt`0K z#PICPJ1y;rOXj`tLV|+g&gWjSItJZywJyTd2r+#H!+Ow+kfh)y4<=vC@MtZFn%YT+ zP=$#F{;MR19m|0Hz$vHRXLf7-xlS1U8N={qAZ#Uk0lS(2~z> zHWC}kes(hPI9XpE`C<8lzM)DtGtHdhY7r78w>#-QKOk6Hvc$rQqlxOlgYDg}HO%i+ z-MqM?F8BHp7~#jiy?JoCaklZy)6Hjr`9X%p=(CVMAtsod3_ZgvgCG;k+UC87-fpdf zNyie7e6PwaO-yf0;nm5Ze~w0s;U>1{fVS&`$keBPQDP+!IvB7abO9h*t%`f&-i*;Y*Pj`QutncI-@aIIvi! z>}Bb0s#C4)%&ktGFECr&p9S{9{#m@P_oCFWym-$)#HF8Bn0%F+=E zis>rwSF%%7cJ;R>62y#I+r~j&7m)kBh2mig^3Kxl?)}=bpB_2%4PXgArwlOAFniN3 zbRR;}tW<2h@aHhai^y#`#y^|#%FPS;V01oA-O8f-g{q`Xau9{jEV3kp&*W57eAm+A zzRh`6M_|+4%Ct7qymJeR;RWP=@5}gtBJt>`*jVrGEyYcFt&u638}^j9->cEGpvtf& z5=q9{%*pAhN=R$iwckE&rKXZh;Eb|o^CK5AN?nw zr%|7g$f_CpFHZwUt{sC_>{pBzj#gm73w3OIb9oQ(z5KpYtfH1S} zKJPIX-3*@i$XUv(4o^Z>Pu?<$(nk3U>u&40>ynTOGgp33$ahgzmeyx$E|8K!IfXs66}IT@Hp)+zK!U9c6#=lWYyyc z=6nDHBHj+|)dIzB;%~;qYn@*ELPs-AJzQNmdE(GXmwSiw zv}z#LGgsOnd@47^EnyKuEOG9g*-IdsXtOlSDl7N@c@tL7zjrlsd2V2!i=J>a({$9l zM|j`S)7#UIc(q%b;&kt*=Cz>m9_>a3(imoJn!dpByS;tNe7Ea8Q#gv&TYPGKPJ6bp zoEqI>zdb8RqUYAB5~8=~)r}&ZugREYvp(3G4xMsAM_2>u9UO;N-c{c@8||$pBs7yQ8(SUsT7|r~z~HmH%ax@| zU@-GOn)&BJF8vHQklHXH3wd+_5M?)Cx*?Ha`}b9~o34>0gYYy}^*M+GfZzYe>&9p( zF)3;20b&EZ#O`r@J~lC76`4m%M`tzPFtuq!9n)*Vrmi>E(G~(=Gy=k+K-a><)hwSE z5D*}E{9xt?U)RMbBgC_YJM!}2+Dzep!PjpuHaMG#u1Wgpo0#4(_lJ)mq^8xTmtsq< zh(uC;U;P(5M2G*ll4!T19~~EQFIWqTymk*hSdf*K(r10C5Vw2wYH({b4l9c_2B#%; zBtJ_bE=IMh!XzMXUOkWu{&!3^MddLCwY`f&djk1+2`Codd!f#F7vA~VT00zU?B$h} z7$$8Qq*nr-H%BX-Yqs!scC&`YM$sUGsL)XBtJAGoyNx2X@*l7bx{c?bbi?@E&Tk{A z5PiCkU83A4%@s6n^QgT)-g%P$q?P;F#o{kqT7Uj?d2zACWP~y*DiEJZg+Hzuq5Ik2 z<(YJ^uC~;UJWArpw|XA(^Ch=?g)ZHh{6#!eDvrfrd(>j4>Ii89J$rS z#lb8|e1f2kl_Nydm%mqzIzmYAuL>d!IS2Jho$a~(Bv{x8!g{+)bo4t=%Pa_M9Red` z^0Se+HAC7Jc8eNee%xqLQMcC@0@jNklH!MEW)dWv>NLs?rQO|m|JB2Xh>R;CwhoeZ z*LD@tj~7#kaQC|^iJviA-iIxXGp-Bt@w_-AIx#=gh06>BQxEe4R`p!p}cnzi+t9Cd-&G1hb60E4%r50d@rgdNg(y&56w?(UvrNyLlu+3SZ7&Lce;-Wp2zgebE`63bNYP|t z={!oNrkGe)B#k1l1qXUkQqp4HRP=wfxHz}6w^#V`cC0o!&7PN}SUFz>3kypyO^%O% z<^uk1%bqbwMxOAai8FHU%RErrqf3(C8%kuXh*= zj^glKw7#iBH149pASa=<%HrSFJz4K}=NEYU)+gXYhG+=C$5n;xHyXw4z66et&Xq=Y zI14p3_1m|?49yLma#YO)^fHvJuYE+IIJFSUn213+SL2*SOfK)VmrEkh5d+&=2xD<% z_i=9z!EqvN#_wO}8m!o4!{#-Qlv3->|#6vlggi8*&{XHW14WIJ_o$x ze1FbuxeZwmDFx+D|6H1g?q9*dmNQirF<%kz5*p1W7-eN;_4M@C@|0+S%YHpy z&3KLbe9UNeeDic`1lU25;tE{|g7CkF<9yN9+39pJ&-eQES6598cI;mPd`Cw|BT(6m z6L>%iIy$=D#sC8yonrFF2bT&$vP=iW5Y<0VpW5$((7G`I9AfBI889O70IwqX3bxOfgK!YTs2K@$ro2xai^m)W z;*gAC^!4$1`p-Xmv$f^GmtZLZMx~$K`Mtm}sznfF6qK1}ujblX7ag6n&-Bq^Z+nz; zQ|7luperjYl?|R1GNqz?-J>u5(^Ngw>;BH|Vm~M(1Slpo-B*q}k>A7B*_m_fKI2mC z!FqvsnjQDzZP92w_~YW@8ePw}XQ~f;kZ~XoNKQ)*4njkdK3Gsc*0outWS?6Unxacv{nzWwB2nx*Xt|AciP`fmoC=c7|8NToysa=X}{ z%MhuNcY*^K0-9Sta_$TvT>vXS-BiI9P>2(Gd z=H>Ntb=A0>tgrVcoSmLto$n=p$VouJ{pB~pnkNZExw;vuz}ZhepU{=gkexdM#ZUaG z&!4A9Z(R=m^(Hpr_G@=sGu(qic_t}~bjP8AKYzYSpbMsj!Z!T;{OGtjiZtu9yI!1Z zz?$v1!o9t{UD1?MLLPhn`3zEnl+>@ZG#wR{=(xD4G$Fs?;o)CFL0(r|(13vFj4=t3 zkrnn^3ft|u3b{(9#ph~;xrZ5?jaTg?+u=KPC})c}|9Je*r`J6AM~O+*kVOCFXgtX`y_*R956qBC^Ajwzj<|=*uAIXM3knJj75@T* zuZFSxo2McPzv8P5dhse~{wgtNwzc@}^ zR~DG{r%%4MwQwE}`Ts(&oY}66RSSk;C8BXCrR!hR{kyrPt4oaUoVo>rtZjC-p`=94 zV1(xg7xT&;VLQSRcaQ+w^>BW0awY@Y6NFrPdir?y+)yHy-FjbKMj19R1czQ;f|!SC z&pU{Sh?u|EkldB`Ax*E`@T(KO!gu=?O|QlR;DO-Jrlz|eXoSFx2*~bV-+(Xt_M$zf z_9I0>L0LNnuAvR%^$BHazOlWzJOZ)luj%)$9S0F|ki!v1sSdl=Y&keMDjtgW23Za+ z5Pmu*Gl)EAXJ<$4WK2zIqrTroA+4^j<6&bT-@xqz#Xx=s@m|Y_)yc`}rsUCfynA>= z#L#Q-eFR!wUf!Hlp?Td6jQNcxgGx((wKQL=K?&f7&jaH4dU0=v41*)QK79B*Tle0G z2I1lQ+M4gbnnpMPc9XoNfSNJ)@IJ!g?SCm3At+m@_zykhlmBdF-bgtrQ_;ynrF zEc0!B|1-LIp|YOmc9MRPqo~QXD@}ZEoJ8pV#zuq&tG8oO2JKv9x*sKIQ|?#K7wa7Yg*C66)x$lut^4QljATd{wuBkqRCwLC{b%xPz4^^?x2lDZz+QM zK9`IQQAkDeP1vZI$q&S<^9HZ`Gk&o6zaJq8sxM3<5!HITG-wcoS_h#HuQ*0lzZ4ht`gOsgExrP}wSEOjPA2jGm@yQ`E-b)77t`;rzbS*xL5T|AJBk z=aBFaPF2RjRRY4z(x6KUgDMD3M6Rk5rO1C}(Zw@AY1WbAlBx=6+K8W$Ck)cR^fM_L znzz9!`t}eHRSLVh(^=zuLi-MXKKUc$Fy$)(E$-`0i&nH+xN|uD%=QLMgH59fZ}u@3 zYmm0F{%>oRcOyn!$NxmNkHs$iog>2h8=JK%9TTZ1?~|w^#0{|Dcr^A9D3I&C{@)tk za0%r=Me#>NPX)gR)O* zO#Gh+C6I$ulo|Cg87IVKGAN?E%#i+PaM}>*So7Ss)g_7jI)H&z^oR?eSY@#PSnsC<%})8=UcwYZvw241FOdM2ioJMT+@ zyDm4p`wqIoPIQc5HfA>c(oNL&ba|nS7KpN! zat|_OqpV6x%PqIdC;KQ=efMrdr$)#Ry>8cFqKe@KsO3E~M9pa8?r&VAKm9}I)4CR4 zTbF}hVmj8-H64$+JerF$Gx(tqVWKBIfNv~4;AR6x=-f!eI59gnmt{7g6^Q3a;%YXX z5@YV}F>jmDnZ$Q-JoIK;-<1K9+E@ZBNmJUz(l_9{T-eX%Bn=Le_v4MY;*oMOVF?` z0>bnitnT|Ne&oBX(@Wc10 zgcCZDghckfPy-*Dm5*zEFp{ADrDTe6t}fS!bgKFUidUANvC5*xH(kQXUdStOKlXxk z6GBIqoJ8#1PVU2LzxnRA<1D{dRd{!1;dhFXiOwUV-Z%?GI2^YUheFF8&6eTQn9)k(H_L($bLGP)jn( z`odh*?f8$NGqdw)g=n_}EqlrlAi;Mu$jyt!%%GQF)8T5Moam=4m76#iFMs&)_|atu zjfD8zcvD7C&%lTP@#(FTPw3_w(PDb-G(F|Cg!g7dYDUI7L$0Se7)|i_?xlBUr#~!j zb+qrlsc)wZZSlAI(eam^o@t;V2k_aHRUJ<;Gb~eZK0lH zDMa#&bEBx-@LapHtSobNHnCO~c2mSVKGdXHf0wUv4tclGF|je(CT{Dp(g2fzsGQGC zVxq?cCOB8TL|`LrH(+V`G8C`8N#^sVf)Ig?TV6-!a-Xl0(lfJWtY51881|R&&)-%!T6}y46NA0$+SRKC_JPtJ|JK+0_yneJgE8d zS*78klUad!m3ukk{m}-W_j#G(%GT(_hzX zA9_D}Z@WGw@py7w_?dC>wV({8t>=Z%)y(9ko{U%&WW`^vrUF;wWS+E8Tc-7erM zUdtEg42TH*eu?u^JgNZMq>5+y%nvwY$}nhD4o5$_5owP1TfCFK&md{A*_jez)|b(A zlwzy=k`e8mSpO8L7>TSs*Te_Y&WYp9NOE_k(j&?}J)Php+>DlX!2SKoTC1oJCSu@= z3Y*p$bL&Sb_g^kZ1d)P7cB&QC{l}Ef;KVGN!=fc*j9|@hd&qQ>^4TT4 z7m&ydEsI<`I($OIf1%2M{FtF#R*}6P(ypxlE9G=TcJ3`Fo}H^|X}}v~={l zL^Vc~o$X381*DEXLgHH<{q+C10LWw{-|k-?X2;Hd1rC6t>7eEAJ{*)VYC97eT0ONm zMn0syGojdft3t0z@`bp@oJLYR1rxi}%S*h@G)2n5BzHNHhM7uclmY&WNE|7RJE=ml z-l_OCbE)#+m#EtIm*(er-y1@OD*1`nSBet?my`2~Q#^0CV_;@Uf~~cZzhgbz@Ok~= z>joW(KMxlf68dK$4h_^A&Ewix(18Y=yv~)an!tmfOA!N!@uWCs4u)6wOBc_IHS#IW zaRi+m9iKF5vhU0%6%UWBiwdB_&%Qu&6?3Lol!`o*KhEcU=jD#r8qdeCY{+|UWpW(I z9W^wsYe(L)A?$-AD3zG_z1sZms3Oxw99F+3D<87i9=_$$60`nEM{O8Jvr8Pa0443} zgm=+gJ&vFt`fXX>YuTfe?>{PDAbe=m`SAq7m^PSLTRKY)n1;ry_SgB7icn;-fBgMx zZD1f9na^CRRT#_92u-RDF&FW;pH9V8(t9U<9iy2ck$e`@?Gt)h+-+BtfMs&(EvQ&(8^Ye#BF^OwZK! z*OdB%1}rc0XjGZb9$mnU&~NT|V4kE($UaNg=bvsJYhdazF_L_bANRt2hpY!_m+3Mb6-O|zV2^~n0#y2#gy1C_43mV>a zuZsj3xJt1TSu{i`Prx0Jmd{i2jC?9kKxW8_r#BgUVT;7f_VF@w`6avr-qF-1|-{-J?Wwqy{7~@Ec5m# zn}Fzc3#QI^s9^)qe{^XOIhy3P+#i#*bxc%?N67kx2<$U^X>IS#Kn1QF(sO>QZ;jTD zT(&j`-LCx}7d)lQZ%jB*W%K8PQ=F4dlU(dl(|Z_{VrT>?D9Fg((_fg(=DVJr)epo^xgDi%2L$}62F{`P$Cv}bSPIe5a6t3%kGm3s z$tqP36fC#%amVUC9$n6)?zcW|Nqo@FXqT&NHParw_P%G^xFhus9dg7f|K6S)F2r!F zCW5B5qYG3k04+KuVlc_E0_|3o@$%HaA(a{R*fs(UYFbH2E6-*XxW%V- zldWezQ0L}&?HLTLgtrP!#cv&|~NrnW%hf&bB`xi6b{k`{pE4$@ZS0fLyl!&ErnJ`5UJ0-dsRD zoMEFIXN|C4L{%OFVZbg$LqjHWrR?}#P;fQtJw5qyYSMTzwRH!psPJn1O$kO)_b#(n z(L0{&v7V@W+@ms@@Q}rWCtIQJwn$`Gl$6pJZw_C*SAtD)>Mq=whMA_cmfLNlB=Km^ z1ha8_^fmFJ6LUi#HL;|xa<8$b5D^I$25BQC#v+=XtV>E8Z~H5E*gQFk+;64xQ~%uI zbWmy49-n&^TivHF#c;1r9zDu$c0fmxQ(G_<3k?hEU(xm&b0#aLlC4C0C5k3h=ma7F z8#ySHKSW^0MEUN`I@oSkOn11()z-;{NaI7ZbES~ZPx}tML^ISkxVnPBv(-q_@m{rCQb)= z&7+m2FV#O|3(`Ihw5MmHr6>21W7S~80vH~dtQ0CU=Fmx&@ZK36>@L{sjaSO>G`XL4 z{qB=$R26;$dvuFLwtcYV@#4wl??`o(&ZdtcB&F=uz42&t^hHl>5+?nPE+L)}F z8#80OGl&_!I#4=U?Rym^4I9u-Jq|xO)ETwrMC;x-fJ)>%G7p%_e}O|nt$-OMRk<+1bxhi9~BGaaZ(?(`S%(&9|B26DmcnHhb}~L!Id4fLDJHE-=zM@PU~&+zcN9RsK)L`k{wF1x;zu8Z)mPE8FNv#Ci3 zMaLD;cxK=V&B^3fg?|VIB{x94r_$1VkDq`#JG;qkT!4z}aC0O9GyH;H3+{3nsgcH# z8#(aB`E=`KcNSjF+W3g9ZSqgDdg%CQB*z~OZ+m%p2vL)h_Cb3f5}Chh(P{^uSqo|( zjNIptEx3QA?RQ@!rh+_V*r&U5NM1=Uhr-$HGM9_{DWe8K)lTQL`-8A9P?%k%Ea`Q z!!ZqwNmUGGVQy`;-Nd4U88TTT9;3VM)vxGlnQO>6^gAbhiTtGy6wrl4!1L7 zqt$dyo`Z~%}H-~!dAI}sQ3C+(%2A|jeb z{q7?)r3rHfZ~;GJw(&jbO-Z^ z#f;n4t$Z7>4Ry8n+S;oik{51e<4}6s;v=2yEqE|dT9!=lweFZgk*oHL7N7VjxWUN1$&}IOca@(R|oQIX2}vhG0PO`crxH6tA@ zExcHRzxBts)wzZI$3KNZ362hXT8Z)FMqA-{xBQo#+8;o)D=5t6;+i)}|Nb~Q42#`c zOo(=97{t4vpK1`uFBODA-v;J8$|O%FsnS{ahzZ8UeSyc%25B?x3;xF3HQH~f;wj_C zxFP5yyZlB~-)d`X>os=dGm?$tA-#o8OhS^9f?|fwZQmBtDwWr;CXJT;S9~y=hca}7 zQ{Am3w&!if!-l0J1}tl*}%Usij%{dkZa!l z4{$W9gX)@cqdB*WZ8nFV{)34;D|S0OVyDI5Q&Z)3E6J6p1bvlN0ldy)x8m<~WP+Em zXwDk+cfS;0m+(EhrwGFPvc8^ujp8!uYdO7(H3_{)_l5E&X*Cmoj!`F-2QS@j(ZS)8 z_=FYpIOqdm37X%kb8OW^7QPqc7zg4pJX92ocF=FiW8*3ahm5qh*QNUL=vKPMxJ2lp zF}j;4kDT+%^z_Q_k|X;j=lL)F7}THdydn&luNMW|sKw1=TmE}qpQJyvd(RaQ)K0X( z3FnhC5fXlkyv{vf;%Z25ct^pSpWpFTo(Mh@SPs_7B(o&ij?vmSi z6Au2R^*wBq$bNl)zfd$-X{v|i9Vjo}kqI+Kv}-ryWRb)v5qKS8&`uh=~Y-PrZ&&6Q?*~TX=r)XGBD@XBY&rak&&J;U_2SYL%vEE}IO=Npspe&|v4e2X z5dj^odt?HwlVP)^@7zhUvr~5LFJA0*_*vILqNG8Cu)o30Z83hVZWO1^1Sd!&BfD#4 zV6cVUdP*UCnv~eY9^}^AcRU-UxpxCevrrq*@Zo!WJ-Su*R`-Zd^ma=jyYwyS6?FC3 z9*k%Vu@@E`OlX^+#yObMAt1aZ{pvJ%(i@Y3PAV_MS$?pPaQoW4W$2CfL@{BN#m=f- zGt)0OmZM8%94e|$rGY5;F@l03xMhd{&NF+n?`B4N z@G8yA;iMgRaJ?D9FI0^)2=^BcJuLyM0|w0A2wH1^e9?IDtb2MFR-DYtRY$e2QCd3*u2}yg8XSQ7I?j6HX z(PPZOPBV{gn_`wzR2AG!rMkv$W8t%GhqtxqV-C=Q0T}HcCaoOYuHfMJb`E5fPM4U1 zp!_LMPbcDWd>h2p_{~2f13WsUZ@Rhy1MxQa0==r6LbqWh-D_vBR9&n(2Zm#qysOPg z+!l>MXA`uRTs)i7e6zBQP?D39D(dRWDn@7Ll5(L`xp@i;ji+n90!@YCEi~(N3 zi4c ?xnA6b`mJ>9G{UdlB|F{N?bn;EmMZ2<1LF6;xHt5=OoY++vJcG}Y2T?}huB!zbb_M3Hha8!WB%+Q*wI7#HhYI)=YXv zI2~H`80-+*6CjMrw|X6c)*lsAs8NV^wM0Vt?8Dh-rmh-uWmm|pBG6M1LcH-K&oF<+srkx8`O@D zPG1&sTK%Mnh-N%E=V@N2Qd6vrR>+1(CuZ8jtTtQjZI9p12PYZ0xC9e(b2{$6rlqcd z-%clK)|t5by&zk?Dp;nlV zv20xh-FknIT(F=0UG?~@lVo`#M+P9oEOkCfMQLAXzrDS!@8q|LSnI1 zSJc&kFZI3+r%fvXRv8mQLNRwqx3{lZ!Q1c;Xb=C+lH`4MT8xbZaJlM!wi!g|y@k2J zR)(f#J$_bZ>ePZ8X%g?!aN!Ptn<(2qzr8ve-xp@2r{iL6?h!>6&N$=i~snQ5B2|K(&-fA~`( zIQPCp{n6Oi7!(xr?c1Y>ZopT;^%r*MZ%$49Dw2`r@h~80wa>d`XJ;2`RF6+gs1__e zFbyZBr@5J!4!R?#SmIC%K|}sw@rO(iy=!Ol6O)sZ3kxaT`YOuGSx{(9WTe?cp2 zOOx)ZAd;$+cgN5I-eET5ROl-myUtG)-(T$7rG%PF(+uuiB8!%fwfBq~l zuVZDUt)!HR?FP7ssijqsk&&yb`k!9qDiPq}si>*tLONPn(gAB(TwFXiH`k$1j$&6? zNhvZW2AY`}85L!6d4Lo#1(hZB7se(a$YXwm{_IUDR4)6+|JviO8Hd0eZgsLVHeX~Q?`ICy+}*Xn9&V&mdU zr_4(~(_5ff{Ib(a+f1)(L$7?n@0 zudn<1`UVXTFlbcS+t`4`Vj(>xLhl6P2IQZvu1)yKMxC~#ygZioAGxR4wU8oCcwQdu zT<>VMOuwa`-pbBS@0WKyy}jTh1u814xrIexL4mHWZX}^}C(46m1INsESZetPFhgB; zjjgOe(FTL5ZjsC7>>;NdAKPl~7v}1xOCAnp35JQ`5)$Uyt^m#`p{y+I83swt!bq<^ z3wM&Gg~c3ocPF6MwYOws5C3(`hm3j&@dx6{74scFxbcRB2JklqL?S=@&>3YOs? z99$$C_k*K8EiJ9MxLAocC?Fs`Js!g7WM_8*zIc2Lh|br(4^9@2@nOVOPvC<^4TO>G zEfp1%W*`r=USws90m)8BM+eOXTRd=f7Gh*%goA?l9GfH5g=G?41PP=NfQ%s=m_DR zN_uSUOKoj!GqaudfW>A!M9#{30&>Ro*!YS%K@4NR<(DrXvf@P=tig;xcr^~jy?qOa zehz!*X&n+Y{Mk_GgbE84Rp*~Sf5yk7VH^1{XBFsk;2&cfzZhv~^)_h<$UZZ59&_V%dA$kAe(_yNKMOwVM?@xMMZ|?Q^4VYihC0F=Nly(TRS^D{o>zB^I2`)Q6^qqUION171)11 zA}4UDQ_A7ZuZ)U{f-tJaxvPb_=lmA(=!3zW92_dEsw|z4Avh0^3a&9oVt<`eiCZmerUfEG;b^9jmT-!{!Sg{QDujDUZ63gIErX z%7ZSVJ2Sfx59uiyubhO0gtBr}eZ8BWv_oigvhZESkg0k@J&CYfd7{2on>N zsZBHx^T07gkS-E7V5*YkimX+DW=K;kB_`$!=HTe~o=n)yNQSlfLEnHPB`3{4%DV6A z=}C(t)VpTO#Kc4yp{A%fa>(&b0XAFyxu7F{sSYHal9IvEhf4`GUoO^ONdV%bn75HL zD+hq|Ri@A08Liy>bM2@c{ml;XcpL&v)TXPEOVWS^_$5C4_E` zj_<p3NRtQ9G-;LOMg~pXd5nMw*4Nhq zlQ~ww3(UGZ4AG5@akY0jUKRiN@f*-U3^0sZ^01!-D$twvX|CFmBSXWx-QC^5nSsiH z1}G^hU%Yq$U@OS*J*|`We~l}LjvyZ44kZUlLm+0evvqKgl9>2Q=|U zjvqz}F3t(=o)D6aeZ|3a<%&PfMto6=FNzU5DZlgXWG>gKl5z6?xBy%(#@1h*!u{f0>$AXVPvu zJYHKlI?`cgPOEpcC@FJgSNoZfal1d4kda{}zcEr*S$*8y7tek+T{$9~Jj>;39}*%f zxyD^ds=mSnOXg!>IYuPQbi4R^db(NfbT22M926us1D{Y?k`=I!k_~aRvm45q5)u@7 z`p;P_2M&V0&yXdE0>vK3-IsT_*K)m*F-0o8C*Wj_!}%^5y5Gt2r{~@uNjXcbV9A<4 zP~$@5w>vaA1-?q2Pc>3NM^Buw6o2yu6~~C5NR?VBkoN%?J`135g{> z6Nw>9oYOwA23n8+xX zSuKo%WFagnkXuv)kY0U6MC;*FL|%S=E-^k+a#C_~T#EK!r5SX=OMuf@4#^>J8bfo2 ztFxT~P@Zi@a~1(dnvi2ZGWxlx*@q~RoV^=|0y)X@XHV@vH+%j=_LfY?=U5g1_3me> zSV%oS#!tUqXawTzGpN@n_5v3RIMeoE4{2SZS371n#E0pYPw92ac-(MCW3rfy zkG2OI$tH2@%v1qNyB+*EC^ohxGLmh3C0Fqox5F{VyLX}8`T#X{b$1hU*_Hud<>*LH zO|8&IBG{#>?IFrn!sd2f@hQ--KbgYZc-T?$MEq{;8hs;J$sMqQE z>J`(A@=#(<>$gly0It@>(7Is?$|Up3A|0JsWO?#~C`W|uw%$k68{H4i*f_hoQU;0G+1M212t=olQ7d+W-+=KuD@zP`G`3rGZA^n1)BDZ2nruJfj%@*s>F@6saNKoTJDZxSrKLDKJ9{wR#Kbz|p}fpYC4Br& z5a$pP&r_?SqoNKbOD{H3LVl4D^SYgnj^)SjyPZRZ;xdR>>FN7&o<&!Xf+_dqDxxF-K{u;($XMI#7B#^6wY!e^-rM~-4C^C#&657-&+Ty5&gHkKk8uK7 z#*n#axGCHvqh_t^%t0gR?NSiCQjV-XOQNnW34nF)OdJfB^aP^t%EE3vZqCaAE~dP+ zbm=H`f5GqLhv2c_oT*&J4-talvkg8Vnsq&x=VoJ*_9%HSsi`SuO3~nasEG0K^ zdU66xOb*A9yBMYHE-O3x*D#;QaIx4(3q+~-_!*NIwFeDJ95(46m6ujV6zOoljznk{ z-VJK@SC=Wj!3nv$_3nr9x0;rI@o#S|9xD6M7>;de;R+hW;amdnQQ@}ZyqV@v78|J< z7z{QCfxBtI!J%quO2KJ63(#|XV>XJ(xw(`;BZLLJTbr3F>FD?@w@%@+;wU7O2!<0g zFRuilW$?IKZ>+3f6A)xGi*^~8NJN|JG?HvD>QAJJ%mfE_a1+x-)joCW_&|9f5l#0NfoJA6a*OSr{) zr~v6Fo~B!PxWQWpFuvxGuWQIj;qTRf3WGb8ZLuMGPuywY=zsVabUvmwV3ee9&6t=L zAG1i0B~|_i0ha$z2q67ZcVJv*8HLyP__xQK1y%?MjlTa&3W1pVf+$SPs8~HraV!V( zhDct-QZ)b zJ<|-^+%#uuk=Yo|lCl@yCsJzKvqhA8`qLY($)*ze3xGe9QNA)Z^s)2}uecy@j!i&0K&K=hM4-FVV__Df(Yh9Yu`yl^UAT zO8GK^Zq*Hrfm@RT#>)v1hcBLur~PW2$C9mvW9-wc_-cJGzFgklQy)2*$p|Bu==9Zl z(-$f!Z;m25WURo~ogZNP^Kp4xf6vjR#v;KQ30uo`pZi`yGgBYO@trBtNBuB2%_pes z+2jHRSQoX!pSGe`Qj^%D&>iV(7cFHC)N4PrUVhFH zKh9MkY)?LKt!|DR8=EVU!~qeA6g5P9#^0 zK+1{7|LL;M=%6!2AE|1N-b?~61`VzXWg>Q9F=1ao0LGJY-?|kdE}KFs=s7s4aMu?r zXRJP0mKilsf~@O#Lu->l0>Q$0U1UAPdgtk)nuo=cB1D&{C4W5MAt*JF636B^pAntv z?%q=SU_<1$(8*ZLOhh`Evoos^UFLHAB1BEQ&ifez%ItZYhKM%D>p5P=-11c_?tv!m z!DwxUy}YJUK;6Wwu#b?Nhhe=hp48XVbyz7!CWRHzftjwS+qeXZahLh@?-qRP`QG*E zu0+!I^o79vmGhU|orRnp-ojq*tuC*^b*vu)H3oA0;{>L{vx5R(ZrpgIU}M$+9swq# z-W95|M1+F+&84jKDS|iEoC1w;N?>6gkE}fz69^}Wnto2uVk6jY(X`nJUqVRxLdo)c>I*sz6;0~NvLEbzBS&${C`z!Bq?euwA8VxVUX`Ee zj3M-h_d(-bCkYgNAS2eQ;?8Nv?SSDf?_Fs1#o*S726qZCG><=K_|8{Amzke8C#BYr zy;gs9P=E!0<+^-7)e*P-@@}mW7Uy0+JfL%R7*Y;}uzp|J%WLfq#Ew-iqPv-0QTkzi zwI5TKwQ!pz-(S{0UoB$kz>C_seM(MQ@lq* z)~<%O=2!INBULH4cC-U2JjdP9fQ%d#{xO=M)8w#uodIe#wBNjOo{++y&a06ELZ2J@ z#*NJWcGIvWSCEFiLWaTky1$O^&-(qUDl^oVb}k~8d8CSidz8a61jhj3{iFd(+mEEN zifLop;W;{>AB~RR{g%km{<%aoOv(OwHkM>)ukmv63P=KigS5kkz!w(fHQPx%UPu?A z;VpPMMBEcKEU(>mhz!_@-mS@GZ<2>@cAVUPUfDn;>UodwE_8EeIl$9p=M(e1(`H#) z2DSLW>p&_A}9cU zUs@uTLIU~lVt*uK{VUxk1#r5bQxm)3GhM;#d(v`cH{GTx!xas{b%twp8|)a>B%X4y>5=vwKFN{*-zg& z^he>qaLb0(rw@%@U%Jn;r!QphiD$0;w%W$IzvxJqPsx$R6L9>PY6hxD^cJf@sSmCc zCz_ZNm;|TmJ!psr_`*D*fzIZnii(=mj(z78Y8R>_A39<)oZag4Rwy|=0 zvl`two&>XT0k8Y%2|?Sa{c0<9J>iet#hwQvpN-6NC_B*b2UiA-pB5+@RlBv^ z!wE9Z#Bxm+%~4xO7zL5HwpmZP(A~{q2N7s1sC+?3I=uKSNA$QoRTzg?aG#8*VkL71 z>aElT#o9+LT`1)^P4Ci)_}%%QX&|{{a-}$&)n^F`9z{f4kVx9$u2#AOHk~CQnHRAe zn^pHMR+m3@#o}hl?mCqoZd=KRoJ>_+mqRC7CxD3{&+wxc?wk;xb95b1wo(fJA;IlP zv9^idt&s8gZsKO)!Dwm1@E-m%6oVP)h>m`w1wwTr^@255v#7$!!2BW3w<4U zVMPpDTP#S0H`BZ@rOzo}9Rx9l@4v3LnhR>N+L%Urc3ZDPvo<&hlhxaA$s&Tv-!dWB z|HYeQPbXb7A0N{uWapYIQrU5hjaBPQjKW*ourae@7Bdn%H`7ox=dj;c+}YdPT3RZY z#&Y!dtutCrAC!y$_rB+e04bdPr|xdaK!@WCe`YcxrgoL2q?a(?R1=xC5mu+~;7Lh& zOCA_^E|9$7+eIngp;OKO77>kV-5Vg9p@pk{3GONC!19X zp&?Vk*A{LLSC;pABk|y^7kg7%yI1YpQo^EBaVg>&68+E0gB-P6nxIQQK!zOl9jB_> z^2`|9&cpV{=xJDgfBk{S{ztF&&BK?DfvNqUBPhRrkNA~a?r0VA@fk_h%?)&YiqwA~ z_L7TJQT|K0k7Kgj8TH_OIutK(d-!M0YPb>&{AXM8_xRzS|8qhF)i$_RUX2Hc+=l%v2Q>JA#8te*Joum-m~)c2!$ILz~6yyyw6e`b_U+TeCdh~k5Yc)o)%ckitl&K4>6({4ak#K`NH@;B3X z`|@@>!i$dcFyEWl!~@^c=*2~01i-C%H)gh<5mPXiV7Q`HhGCoQcZ*4|6k)l}1bi zxV{>suZUI;1o@dAu67CsyjQ}eYj`U4e$ywXdv%2O;LveJ$DU0kv6Ik@g*vPVzyu$T z0+4@OTJDo@?1oXMiXvdg$7}JqDO>NRdz_$V+>l-gJZ^pPtGOUk02p6OhUsi7vy{vNrjbJ>}_ z*`M)P4VFNDA};_psJcic{zJ2?%;+Xkmbe97c;+IdOnvb>EIlONsm3jgfVJeIn|%gd zn6Q#`AAio*S^I%hAkptg(pJVsX9Lv$xCOwW9RIVhB1$+N^pY`2aK@OjXQ-{mR}6ue z+v9#i&~>2BZkIA7wcdSA?1PC+$2lZz?`b#fFTu-QwMs3PyV=+fHQQGtgY{N9hhQ@? zgc1K50V9T*orpW{^2X)-v~}s3*M4~kga|U% zdm>cgf?Czgth6)j)difprPzcGcbg`Oy)75{3Go9WS-Z24GMz}jeAP<#sqNia!^^6< zboacmV!$g{>&@-E*fijG_2QMIlL7bshx@&ea6Gcqw>(KI1PUVa9Z8bZ#w& zhUUa=Gvl0magfRn^7pm-n)NQU-pY^1N$WY;u6E!vNM&>E&XrmLt~%|>1uS~5RxFHI zrO=xz?tX!?k%$Mze6?=?a8OD#Sin_Ib|bnmvijEC#4`kM$LInaX$oGH!1k%DhZ~oU z#FL5r6ugOgDdU{;v=8rM{jB+mTvzUKkZP}8?ivD4%mkeW%!ND=Pi)RLz7fr&eCP1; zG;9gR%ZWu3-mDC}VJ&ssPhm?}a}Gj{f?%tRft|Z6Ui-QEv?Oo`rKgMb%4nzgWi~|u z>FeWT2-MPY=bIF*Th{J;)gD4?_1tjl*?}DO-ErkYgZD|_yiSd=wneYS{gzcBc3d2T zMz!Lk_VKV3PrdKZgq|R`&Gg@B3JA18s|p=*dg^tc)7>S6@a`4C>0;|wjJ@eOD!N;P zk?fW47sIr<)+EEg{t9LfGcive=9!n}Cl0+A*WZel67x*4qn=VtsB_ z%hTwCnjILkQH#HSNlB^T-PMMbhsQXLMJZNHoa)3l{LRe_2dZ$cTRg*~>dOfZo?Tuh z4nlh+hPrF2y6@|l)6EiAF#pw1*MeCJwW_ae|Y zD^|*3OyRLn^X~VNqpN7V!721zoaElR_bBu;-8-H2S3DuGX460Z;YPPF=yjij`Pm

?Iz9Oo%!u&Fw`g~FMNuy0{H$IBrn@eDGx_5iiCA{OdyvEF;;b#AO%{aVmo z-&r{(*L$CU>rhWl;HqZ*WAwK zpP_pON;;>9RdMlVN4cq$7so)9Vqo`uH7-0~(qs$KP%O12A$(lwR3q&N z3k5pJl9EVLQu)}ORgP<(zW4qeBsUHxri|s+U%d|IoNlZ7_3c}nEdc8epI3!21MVmm zT=z@3X&lJ_#daorP|KoQ&Qe9&oO0UwrGk(a6HVFC(dKhBW7h{$QB-hX=fs6Lvop&5 zAbJ4IXfG9&;`4RG(5Ky&MT;6A{;V2Xb#J60VxAN6o&ytskT%y5?sK)Cyqw0Zlx+>* zcz%Q&Z=kZq#;2RJ9@CS>J-*jn%OCQw#Sr+Jd~f$N#2at-IHB^Ms&ODq5@kZKI$R;f z{ff29&2Fi_vGCw-r9DB8+y_W}YoeV^gMlEDGOxaYK3 zk;PbWa6O^HUz_nrxt-u4G2cNXcx)W~iIX>~$2jHfTi?6dAvyOq>@Kd3C5H{*BpSXN zXdYD-{-~^;z@{(ugDF3DrF0ydZ9vEPwEc&HgIqkgnihyqHJ#K z>U-D;2wxa_oqL1Ygx_@C)xcaWKR+ML>#$i4hc4k}zjlovEF+ut_b*|DD^HKl$4@}4 zZ=-aD9-i?}ejF!$3Qe4x%mhK-K$+UH31n`YKFd<2!s+RS7IQ6%A;hYwc;t;q1_;|R zNjHK|gGYINF6X=S!cI;u)Ip^@V9Nk3GTzDtiMM=>lD!NUfZaxj{jOiz4_3{Q^1b%} zF3hu+4BqEcV_Fr#4xcK*PWILGWC(d(RUMBr6*7G1YtAb7W{Atpv_$e1eGZ4E_<7y# z4OZGsDdRqp<`Cqc>-EG3y?9ZMjL^wImB8=e_^Hs&K%y&uOgw}XJ*0?;lB^=G(A~ZT z>J-oTV7DT+q!#Gsce6JgA&|sn8FM)DNhBLH{iC{>Q~P6<@25##UjEqFSX#kcGmwOY z#jPdgA~nVU?fU@oNjhMn3&#tv=XX%xExrj7rj=q7pbVT0U%`RZXV=W1*ME=jH7~vO zbCP^h9qjlQjpP>CDmPNzaqAl!tb##vbm4i+vwSZ%)XeO4Y+OMuhvmk`yK$10BBDxH zkbMtA<>#{)9$__&QBmFJaqWe8Rj}jqCF5eeF43Q2v0{#{pr)dyr=kygg_y`>*cxv& zp$KcdyQY%Y(V|WHVI=!eU%w{vo~OPcGyQGvH8qDcrMESERV$CdL)(9} zv_usbFQ+LygEuzOl5H&D#B)SO7DpqY8>jpAhO9@oy9_-X~GJM(i2UKP~K*B7Ld zzb9H48=XJA77Ykw@V&oEKRzb5VWF(jx(-I~rlmou%=30cLcVc1V7Pb0c#VfgLi9sP zei6F$7F4mfok8?*csFI)q;0bp-t_k`f3%ac7#W!nk649x4N?&eTp339&g|idlfJ&^ zK_95v{x>5)zuGFgg0%Kxe)!wB{FkV~UNme;tpZW?R{LqA@d)JF`24) zzzcx+EPfWM_j;(d!p$13d+j#&bmHJ6u;(vNcd7e9rZJxL9i+LVN9v=x^@fTZV~%~ zOBX4;FUBtRS_1Z-K9gf#y*$4-@;FKhg86NxfddvMCpb1bUUP>zk?zBG5LMPlp&yzP zj_<@opPz0}5h1bE^8Gt_!icSL6v!wi&oybO8DVI9mf*cP69F;%+>g~&u&^oO5%aSL z43(JZ=<sYaaA$DpO^XlRv+?F#`m2n>&SJbXLXRIYOGvwHv)IdNVUs2sx2hd-BiJ?3iwE zX6#54S=Le`1T2{dDoMDC91e6Tcc)y<0lDAe&dvI4^>B(8Xp48dD)BHlkv4~X{yfLy zs$Fg|5?JpQ5ZS{K945dMGqWeHsw(lJEde6(XKj<$Z*RKi;c5W$V)kVA3)=Rpz!6+V z--`~?mSX|b#Quej9KQ$>;eFAcV@>)`7iHfxS<|ypE_yViR}d)hoEHq`F4L%E!%ZW^ z_smARk@N6egJOn$Z*p)KeO2^9rwk_`Ep~H}kqMDqw^$S48O^XT>JacfsAtvltM7K` zNV&sJx@dalaCakkeLm9?flxW(rZ!Qa1Dfx4V#Tbkys?l1_}iKQVHWBea@D7xgbfE* z$$V}mTubj&W-vgKC_T>brU`M)=pjIomIlY~CO@R)r9Bo1^A_P^GLYZ}*dO0ve{-L| zaaBH3S$V25zCZaS8~)Mk+&ufsv^M4>SYY!QS0)zh9=aM783JOStah4HHIlw z+A-=8UB4tawmA<%p3z%q&es`KFzc;JYC?oYVIdqgaCQSK1cmzLI-@Y%6ONe!D&ZCS zig81)KRP|r_i8Y|A$n3g5~D=neZzMG^V=>94JukWsYj!R;pKz1Iy(Zrz1_Y?eT?~I zMOPgcNK)M!4cA}0?m=#Xm7?R~U}S2bktLCD*mwo_H-75>BT8VRZ8rD&EQLaW*c;Ud-2aW0gB;{ z1!A>f1k*uL%-|6w1%@bx8EbyqWULtC^w#PXM6Ru3r*_rh;FGYqj($=QxuMgnxmMqP zVIh&FC~y$fg)Dg81+)As{Oo0$bLC|JYHd)`!JmR5SXY%LgYpmarmm5AzA?$AyPpZR zbmAieIyf9s-MdF;C^Eh(1Ta$71|6l}UOQh@4qyE%Dl8JI`qej--%>s|S{D8i z(C^=aV1A$TR7{p@K9=CtyUx(lRhHLn&C<2GGtI}CrJWw7*3Yp{o8e{v*Xjc(?_9h5 zZSZ5fxeDNHWQyVkd3U-Vfs0El-a-Mk3h~-Eg3&3_9Vl)!<>4IvN$k%Tu@N>YZ{9T6 z_2C!^L*v=+MBX>S(Zfq=ggbR@U<%eT8gv#b;fBMyPnCbew>dl2tK9qQW{95;&{FYx zZr62zV&H)J&M5_N&;P2I{F>?xk)lC>NPHE^%XIZAC_1y63o$5y%uLD+rjxZj?Gwgb}xN5;QV=KOhmtE4g|9Ys99a z5!mF%i$2#oGsA$8<&!~hRqDscxU{OHHcYw(O%HExr+~Q4obL^PsL^*>C^U1gf__>M zLM!{eq2y?pm`Sz9W7h}TNrt}dDdFqk@$vlB=$1-CJYcpK6Klnw(??5_hsT^-sl9L6 zs`jxK4mud-{gRJqn&*!5cjYhTZZlI#b|)o-sgj+9#?*^kh|l&~YG@*tY3EkxZ;(=5 zUnBeLzi`zdeS~db!4N6(uQvc_DP$Ha!7C$w58AK!S+=A{{2Q8*=2m~Lczcr3e&+eC zAwv4btsSiUPU^ONmo2*sDf}@FD%FR-a&9Vl@iQOlTBFn?X&yaIFaq% zhBf?86~n1z{r{?B#K*`*GCt<}r_)MZb28tB5r0R=Ej5`aK6O&Fj+ynMx=ZAi08+Hz zcKJ%!98}Eiedl}Btc%nqJG6)e>r$(#U7e6(7ee}I zdhL5WeIznvtL@Hdym(2~x?%{WrXAMKG}nA)%DCs;@EkMf1FH$z@Hi5f&ZB+)gknq( zMMdF+wxXr4gsPv~a=1wKn5lLUIN?6ak`W5IZwv3AX z9DDk{C0i0hR-JQfBfh@34H_Zj`Z84Q^yPn*ECPxsSC-F?ziopQA5APnez>N(;%9Uu zizHwAwaqCV>Ks`!ZEU|HrVWsfJo6*n9uzR1ZsnSZpR8NK8#n=r4GQC#b_4y%ZX_9_ zDCraTkBp_@stPtqMU$hpxGY}icch0j;r_@`y1ZB+NUP50}DA zV5%#m?WSa<-B@1xG1)LQS6k8Oeie8s|1htEE)3G{`6*gzIS-a&9Z$V%Z!_PW~K;1}ilYi^=W zr*;hJu#8rpybkPm13f2_W)&>kdB458^%YdhVi-C{AS}jRjU=4Z8p@gm3_qTurgUoG z-Rx_ObTIf_fSTX-Z|;C4$Y+qcrul6taD9AXy0PkAVfeR_w4N?{>RR|`%tFb|Wzi%_ ze8Kt@)wlqk`_Sza1+PXpgYJ20$p7dobBwjWMpi3oxE*0OZ6EYm98xvqXeWdr_Wh>C zr8s0A?1kaElD|WWVj;6OZM1b=3I}hs~ho zYt~9B&3PMZ%IbEJYM}`*u{XOGH@cEGMyXlXhE~S&*qW0@rv$DK3r|k{x9e~lFCD$m zcyX!>dB62m>n&u7XjvIHReZG92|A3?w61g7W2UwcSye}wEKPs=M=vf(jaFMT5;JBv zJEZru5W-OmZZ0kfpP3Az6HzQhovZ8>n-!-xasqTi!)hjEpx^0kq~*lh#N?f@d2a$U zaG$+>K*?yyF_EwZbW3O0_52wxf`N|heChx3gI|{Aubs$KVVz?|Yuug92~k6^Dmhp< z210jp#Y*Y}L)parM<`11IM)VIN|!o{+_;sCnO`4Bji@Tz5Wb1;;_e3EBSuEK@U_;n z_-$HpK4CtJkDV(WOs)D%9|1(^?WQ}q86Iq7t>pT)CkD_96?75EyvkB;XQJy+2>+Xa zpqblMM+VX{qcy%bq}bKM25fj#1$yw^t3u^9y$rp)|Mft?(b15K%h~e}BbswduYT4o zEX@6rTTmc`Q2Zy#zdpzljVZhsP3zqU`~CgC4ru3PKP2IIa0m~YjIld(RMN@XNJ9S<=jKugHoh;M zIN`H7#KnN3XV*=_N#<#%nJ+Z>1m#kpp|P8ae)Y!}=8`<~^Z{@rU0q)nnexqEjG5k( zGYlt|z$L1)^Yien2|0>*r#}Hr+$~Hn%W}W>pCq%sPs^V!eRNWvu-IWMFXuDq!_?A} zc9|nMcAp+#pUj-0QB87aD?2+V-Q=!75 zv%*>nYK{KF4PLIPtL|;(ogaeDWG?w5T(Iat;~ob+riqozQtZOZmT*eEE*QJSGOs;#n2W&7OxNfDsoa2=}i z2pS$yyS*}Vw?70)+85W?_ZLB=O^;oO^jY4s;d?GFbh7uw^yEp{!Z@X-WXVcjtanhH zK9HXV>q`?4IOzxda&VDm>`ljr3B(Hm4V>S&((s{7{+Af7gdzw+!Ecpylzh&%*|R|M zgrq>e69t|u&Y;_2j6en;m~3QF+SL>IDWaK&wZ;>O(}ZHFVWeUB|x5^WVPY)Eog z>keA*)6-Hj+dHiu$=(z6a0I0szouC2CeH~Rda`>XZIu^eXpRZ;_{Y^tZg?23(deLV^J2@8fGU)C~7o?a(;bCLv}dZ~iJ zczeS>O89FZ4MVFo&h*@$uF$=yP2p&#ybOrFG6KC39)2^PQHulJx`VgJYHE;D_$%1y2T@!Gu>ua4oZd2UeiU`LbwUyWLk@X-2fn0Tb z8ag#{s{gn7f&B^`ABy|cl#oFcM>Z{` zXVOeZRy-oJ;aJ{Rh_WmL#mQ367{bEBl9xn*7Xd&pu?&E@ z_^22wVU^54J}vqch*)_}(waKJ&?@Hf)z@*wt$0WhD6$755@y2ZsYO8ZQVB%utppn}sv!e>;}7-z-td9MSIS54QE9=Q6_5WeEN-1|ANK6wFQ z>j@u)dV!)NA3ZhW?_YV@L}Odq=pt0Y&xhbg9E78xznDyu7(}IZobZ{TjxiAOCc&nT zj+c;D^tYhFs*|L+-0&kTH+Z`oKY}R&A;NxzrT`Bjdej&7ei1+kn|y(;08JPVGergi zM=Kza?Sv+9+0Qz_2a3j7v9Z-3KCrG26c*%RNcz^>>U=6ZSl)nPHiWSjXbT~%CAIZG zdYt>p0&blM1Jzt?US*MQpuK;Wq#2B1Gkx5tfqU-^O+uyZ&*i(5cvRe#3@GXh5SBdV ze@^T;^B9yuRzo%E?8Y$+ZOsDFLvHd@)ET`9>iAV{Q=d)!ox55+jGO}QjTa&s>b%Ek zZsc&j*l!=dwr^*t-Yn^Ueg<+XE-RiU?3#Oxag1olNS3(hkvj5BUdO9&dJ8SzUl&0@ z5M)I~x!6l`+KBp5T8D7LbAF_iv|= zZ>=))ZNJ4Ge^Q zedFzBiyS1C%{P}fQW=sbF*+$(k3<}lNtL7MM93ucYby0qzwkdCC?wpWfA`O z7||_>V{&^QbUGW3_yL8$^|OvvQon5Z{!UINRp8+B%QBw1rPI^coe5;U8;WYs@A!Y^ zb|3!Jhqq{YokRa|AIz}C@O#&Xy;OP7 zl4q|Jx$gQH@@R@&sbi85S$_Agb~v>Bki%4mxwEPt^6jhSgbl{bo2jDphhhkQu5 z!j%lzpH4i`d1a)Y5yiyf;EURxuz?{?-Rvzg{ItiZ*B$m&6dK2dWlht|v`lSBmRDIT z{67ifPcx!dlkeoozpNy$aTKq+m2i=DYNKkLq9p{Ao>)m-R1Us=e|}NJec2963i$k$ z;BV4RKvWkN(ukI9X<;Sk}2OED~a9Vz@wvMR7H@6^MX9<$B_P_dK@}DM3kFG zMKbtpw?g;^K0aAIbH%lYP5Xop(|@xt;1+S#jP^P%O()um-G12W@Tvc(St%HN=QR#> zsQGT%Um}wEm4v3UZQX!|AVR-aE2BJjjhp}Z^+(Yo7jP!UB4N@Q;blbS{~oaf+{rpA!fA){dDip9h7GE6m|xUG zbgbQBh|>R&o4~mP!6Bs4g58$GLJHPs@wq>D_HTlSBVTF%J$7zqBt6?IZ% zGloXTNAW`8n|EJ9WSs|xc>m3R1Yi4<#frKp*w_@s#rT&T?P9@4R*UIp%wY+lXp?J` zQQIh#1g2xSqSW78ZI5Cq`DfjPk=a!Hfx{1Nzj^sw^uq@T^y%##+1r+SKK?0qextW> zOcaKmR!%xl^x>Ve@@Y-!qGtWUoihZ8fscyrselIeT&&q&Y6UySMWz2D$10WBh!mtJ z8c8hk#`L%y;*qjwZ}%jH^|Pse3h(Jq~3e#nKTBW2F*#vw-6btT1(C?ig_Awi} z`fC&l20FN_SH;XDLUm_LAn zifDjey}3MEImCWdMxCCK(F}YFZXATU_Wo=!8t{jE*nNCH-gyY5~ zGGE>lGcU(yn`7RzDZx4s$fB=u`S?ajSON{W3xu|r5TdSeBM65H)d!81#}M1_FvHil zT95eh^`2rI>9UM<^C|uCXcTQ5Gagf$4W+TY!EgXDb%eCT!^7q;FH^Z3o;HNSEv`Fm z4ZmXoOWCxCQk;fK2XBaBeHHJ%i(pHXFyH#5fW0zSD~Y^6ojFy?XojFbTgSc>fn7e_ zG3Hx~9FKS~Q|KEta#BA74h8hE zN_Pwau`r+}DxrkHNOU`gNuxK7GM7T=5<{uEcg7cQ`VvYcw5MI;OwGgN*#bobV+Bn$ z#_J{lggGl2Krq25y*V&O>0-gpPS>~T(-SaMYHOj^TK>)Ew>TDjosHU39qBwGekmfLalK19ZiNaCHC1n!N-pb50iKw z3Psn00`Ga znZDxMp%h0Njp>hOe1#mKY6qCoo+F%{F9 z2QqAqY%h1%ab2hZl-zopr6p00|FueLqT<`I_@9P6)}l=71djGI3FaonjpH@#Ge5${ zRRvsFroa?Dbm5+OM!$pli`%<9Fa@>T?Lapqpr^b0{9u8x?&A1(d#?84cVPpMVQa8B zsgJVe?okKn!-n941VXj@ks&~~8XK>U<|zU47#w=dGJw&iB=FcAgaCGrrMu23GL1N} zh`B`?>gto06(x=M0JFUe5&pQ*pVARV7#|sV*vmRV#N*tVIqk604seNrf{hqtVwstl zAJI%qO+jhA0;EC>*WfNBBQ>am`9G4Ca(xp;qb5D^-x-QdmL z2?A;0!0290jtjzaXymz77}PFpz7O~!J^GYvyWLpZ--M4(et85qim7|?RF z+kS;kkco$%UR+FAmIKZWFt#v-!$#B5v4njsIy(BKozN~g*|GW-NER`#>n>P4G!j0l zT_OSROaB+hfSLz19=>y^;d7b5r>8Eb7WHh z-OrynmMFj%@&XwrI9VxMS_9}+vs51rz{~{5n`Sn^x}RNbq*l5*-(8={fz(JSJ}aOs zh)PXm+*Qs~9uT;(*3g(j6TF4Ykf@z_l|vO1+k1i~m-`%>1NTQN^fWHnWXRFyocQ za&pbt#0db(fpMI_N4DAU?Ed+GTtB@v#VBo*x_22THfl=@?^xEbC~>!-2hKqW+I8h&VrAR4*=~kg#FjKy)W$n zLr+jp2YC3sLV!Q$m)!zqP+NO8ODewCs0N(f)RYvTi#fNTz`*%LJ^L3gULZiCGqC^} zf*GDE$eRM$J3BhU2NH8?4xr=0x#AHdE$fjG5vKM9p9^AP^UK4fmVU6`5GcT+@0fdW zSWiaA$K!$v2WQ=I!gX&tHV*LV)n8QDEs#J~*VfqG_5nlGEKrfy_eGCd>{D`V#GBXF zHxje&@DLz2(vQ$T#O!X-q;{e0lW@9qq@UH#7jb{vBaO>`IZXBChe!18nebO>w z9f~nbYmo15 zqf=W@3zYBX*wm7y{(w*{7I(~-9V3Ky^!nK`f`;Bejs~^M2nH6|TCY>j`l5}4#s?S} z*9j(~g5jJV9@P?8xw*N14>t?K5&r)EhDJvCfgX2f6TtE@V4>H&oSK@#VFav2LFlhp z%@-j0p@7m6j4qu3%y=$4;}WHnFJ1!TUN%4kR1ZD}`?9B<`Ah0 z>z}H#uT#teBX3X7&&5!poyZj|m8JFHe2n_p^d98JOa4e0J~L3trFrv4K4+xMIBW@w zkd(|Bk$}DhnODHm)K?zltfZx7#YSKu^6OP-ae~y-70)#h>W&hknh)P`Ccic|`e|zu z32zoQ-oJJOkCU06-m+U4P8qCE#DefQ%iHN|x6-+<=8WC|Yp05So z4kiq%x1| z2JA-O*mi{A{UwJ}?7@3GFfvLi0H3bxY$+VaY5RDX; zoE-8aX_ahV)N4PuZ7i%8xHQW^kbyBwii;b!F5rH&VsL9Kc*8@Dm>ZHo^KLO|`C0WG zZbelOBt5Gwj_D|xPmf|Ys3>*#urOPcz9FU&QOc-LA}WxvB!+HyR7>{{iH#Yv5d^?- zSctpBIuH~jWq!Tp1OvKHb8}nWVU$q&;CIlxMxHiVvmM(n2pV%>1L?9~gaC@H;9&IS z5jsT$1qWck0I%QvbomZ2?ieuNm(2>n!OiUFUbpQ)zAG+Q; ztg0?(A3lnKbW5j5OLqwpa_BAv5s>a~BqXJ~yFNu92&ajq7(B( zj><2^;b39*RebeZFoqmM6sS&>>GnMnrLWCT_nb4h?+U_Z?EwO4tuyWZ$S-|-eJ4#F zL`8ix7=d(S_L%+toI_s(g-@~M@1sARtgNh}Q+{7wu2oz-dKrg>b&#aZa#{ah@cf%= zU7zj1Nlo#S+qb)mz+kR~hWe+m2~^0GoHDD0ZG$L!h&_HRwuuX3F<7AlqRvnUzEp{9 zkjImG9o=u>hY`wZ#u2QFDY}N_FZ0?6pP;i3QO_^Q(3U_n(D3^lp9R3YAo&@|$;L)t zLKshL$>xV4ik~P0`t^a$$$Y~Y-?n#c(ZP|nP26*|{rifVS}zocmFj=~?3#Ssc7KaL zoBC&XaImoU$@uKwm#U!?u&sgE43?`PEhiTi8oJQz0)(AdZ{YtS3+=aX z4Hc2$ZQ{?0HwkTf#JBV17?$ed2ES}xm5BwfBRv&;pAQ%&Gw>`HskM2HN!i5mbY>it z5>%pr`kL8eeJmgw&0WbjScyWRRjLNGfoin;MSq?Om>Hlx%hoC1)R4)h2}^eYCXA1EZPtyL?ZRt{U$0Dpjc44nE!B+Vshl|CHd{g|TQ1(#2o znVC5>@`YtT^A*Vl>8fY^=>ghLf2LQtoPG)M-2l-bHU$m|2~%07$#)Cf&8^I0~Niya_62_jczXd9SszP$|`B*^lDi236981tfFa>r@eW4gE3XtB|u%&7_t zx;fvOM9c(pm_e(A5m*Hf+W-;ZYcNEf+k6ItnAn^JzZEp+#MNGaXgLJKb*C`DOAu@t zV5!^N+sI(@JL8}8Y2A_GVcGZZBi_6Q3s$H?PnX-VK=Fv8pNOJsj8mrj`R|s?rC+<} zVEndso8W^N7`>`zs!Oi(Mf#XqQfeaV7#-JbTk6T+H${RCtd>pU+)+j(6X8_%U2;>k* z5dwb;l*@psAVaSWK*TygF!D@vcdGQkbi>1!Til!g#Lle-5c|=iM?f!;LA}gg+6WwN zc(}NnWskNgT6FHqy>54b!EYEj0GAbEt#opF3KnHcj3^95CKr3Nz#IS?e?fr!q&$p; zcfb$K!4|q)u+#4e#SBNvH!v_j{1x{EL>uzyLW0)6-}2MI?e}JEw#Rcp#*w*vYikR< zvF{S6fFJ|R$kRKZbM)`vXDZdudLA@Ktf9g zu0CDZYe_2+pqkDP@F&ln$t82i#-IX9>0_PcBJki^z^nuxl(&FTW-_~x91s};VKI;g zT+@3T(p4gPV%fNAgK5b9rf* za`v)CF+AB7)zvW=60h~4($bxsoxEWHcW>Ei>4`^Xt*jjVV9|?oLq|s!eXpmNDVkYO zSoi`3WsR05zTax0eyql98gLB0KQVA|W8>37w~jw;{YfyAmvCF~0JJ7R5=fL98XA65 zP%so1xBjHy;*vPlH#Irw;^Io_=kDRr(%b?v0R^<>Wo3UfxHuSP-b52<)&dbzMvjS3 z95M0gV5M}L9KU}mxi~|4@gj0C1}_#}o{@pl?3=6m1yz}smU9~5%6_}F0madL|d{E~+XdnahStB`-NJ-ISgCqL^ zAd~v`%x_c{Gy^i?&lM`u{MGqa5LjPh?3orGqAdGC;I>u-F*q9yc3MHZl;fYwn5kcg zLZuHr8W0cw@*<~~%7rS=e18Hx;!Q!b8Z8;ng_WUHh=PWuMjzV|O5zs*R!s)rbCU2Up;MALZ1AMw4re)MsLlNn z&DM$Tnb%03yjUYMQ|fhmjNo?lnKLwsJhWneZ@r@-=a1I+lM)kd**D(FOR_{H++%Kz zuc@u-!=uh{l~nfvW#2yjcNYko8I>aGG&-rQ#P`p6kIZwuTj+h1et0raK@q=EAS#*! zTTp1g)})NTRM4c6`_Y6a`yE-^Zw^r1fnHU zx8TIyj>LMAl66zFyWoPvptoP@I;rCk*Ws?^$hBV{1*H;YO^A7=y3mr>jANO3(BLay z-+r&#Hm&`)PTu^n;aeESGt~km=8k9Pgx@6)!!bJitXww3YbaU;>H9uor2e8i9D3J* zKg8X@XL*!cuWGGDc!h0Og=m=DQd7oj(_*?ld>-;cJL~qn^6BTU7wRj+Fpl(AaU!3E zAB8ct?{EIy33S$2qD7pRa_;XHD4D+7r}KksJ2+oM9e?$Zwp%Z%AnIhA?a(r$bz z8O&DR=nP9-3M5-Zke3!ORQX~+-0UgH#8sP~y;*BTcHE9|xe)UuS@&vEeUpUe2Q?$( z+EmL+%Q_>Xim2V&lZ%U;>GDfi)>R95&LgMblb>H^m|rb$1XB;U4iU+g$mm8&SZku6 ziE@cWW>-fb*^2Ym7@y9~t(u)gS^n$=#M~ynpli;Lm{TCWO3XL5yli#2gbK7`t!}xr zo9*i?KY}<55aX6(M1LIJYB3oamdZib7a8x#B^br7wH#Wv9{p^Amxp-YQTcHeO9cx_ zAM9-E&C1pdwcCzK);eu$*qDDmJ3h9A>znmlvpJ1p=Oa1$fo7-IW*ha2FwIe>EL7)K z>a^k>LwT3?ubiL%SzlLGRz`4ye9#++IY!JJAFs^GX?n?YRerlHhtk<+z)cgnu#&qu ztc`*3TUSZRHDn2~ZocZfM*q1d2=+P&JoNW4HCVdD;qN+sc9mq#_ zr`CgL(q;fj1Eg;6K_Vl7)U}VvVPO3Ph_sUdmU-4F-JvlmfXvf*V<@pMAd=rgqK#fN0KjTxS{Jy@vfIqX}z3^Y7mN+6cO?Wiv?db?vnXdfl(GdpM z_2r@4t?S%#vS!d^e+Q=lipBmIguJ#h=es7)(KtNmv$OfjKft$xu=&GD=I_p@$sD#u zbp+0axuwf><=wV2O}y@J=Vzvvbqe~ z;IiQ0vfqz<5D_UGy+2@~tp{U}r#!Niby62Rzf)vSO=D;8Ut5EFRvzT!=QkBK{t{?& zDJv<-1^L(dzbis|zCkq|HgfSDAyE^AJH?Lcv7N0qCkP(V=!6r?E>3HGf8KpV$$5^c z=rTZKW2ltqLt)y1?)Syj&!YTUN zf-Kz$8JD2oZTmy$NIX+x_L7NBBSd|^^b6wIgZy_%mO%{%CSw5KPn37f2)RdzF!;wje}TWDf8X)mMhaQDarw3xr1aN z;gl-m0TZ_VoiVc6bTRiwIlmRZLA#_1(mqkh3}Rh!em5h>i!#7f3Y-q<3#E_1fBU^y zbr(9kyL}FZFo1xq2}TT*n)NUCwn3sxtIo3XV!sWYgl{W^dC6)t!}CUwnuiY3H{_n9 z*LhWIVV0{1Q-!X%#x^R@waEhzbaULR+~mLyMlCPOCUcRpZ%ACSu9jGr{8HT#moh+2 z_wxMg>YBQ@_mPCJ+U@q-tIo{n86?Ha^AccU^OH5B>^D3jG3jF0@ECf}h4m*<(3!wF z7MifTucMwkK?SL7DA_7evQXBn>Kn1!wt`MaD-^TapmmL~6!%Y?sYl_16$x98_yT%-V7?z|eNJQw$c*?;g`t0BG^ItOPREV5NPo8bWWvis_u zu-DxU;2lfAkU-tArh`Vau0TxEaHF3-PX&Se!A7Ey=ifg8h#{|TCMq^!6BC012?z*) zM;hqwce#UaE=o!p=zw>2Ra&>SbMEQ|o)hGRKnC~;F8D=Cf!JyUjPv$313m>N7Th0+q^+5s*uci>-kVFa%gEHm*iW zrrFjC-yC^>=?Wkk6gC?AOAN7W+W*!|N_0Qnwq&=Niq3ZpuHePSuKPI@#Nunn%zHI@ zog0``maMX;Vf>b^fB#%FH|>QNtKUC{fQH>q`*S50^Nw5c9#`AdX@X6F1LdA7>`Y+M zOPStHW%)w}zK}Qw){vQH7FusF0Wkl?vDnnjhfL|XHEMadv;eNG2u*c0eON)wxb>uM zY%olI$U&Re9{6(G zjg_qGJX72BXIZZ*zm0&(?c#E|r`~RdEvI+ay*f7Cxg&zy@Vez%i>2n=j0_eUBXq&A zz+iGi)zU>)eOwZ8y!<`w;U>rnM$G)KqNI`Q!?rfl$s%AP8)K4W7PFPP*QF2t2DTmd zg7rIauD9ObUDGM&IkznF%#-Li|M3S;^f3MdxVo@C0+vthGU?ub|F;%kYb+ZaJAf*@ zdZ1$9Wmj?9mWjZ|0E+{7GXmab5#MK^8n6YNaOKS>136OBS~aGsJD~^7r!erL?;xxP zgdsQz`A&z}_4f%JcX&>BmfP-=ty;l=qI9X~*DW_EgTN6v8OT$fx&l%gXm0}+7zUDI zX0x5VUce~9)EPHWDi7qBz!k?z-*;_BNx!*(y8~Hy-FrSGSRDrDQQY3Nsi3Pp{PyzW z+>inEB!kO9?M) zvh4cl8_+3pL*|L-ZgR4be2DwQ1c?!hA=fDB@ z1Oj-u8{o$*!Jd~Sb;%Jp9cKX3uMFma9Lya^Hw%xyOAj3Rq2~+vyoxEtdb*!B*Y@_o;sKwFi-)(v1Z1&A^yknaaQM?Oi&D*`VCK#G#zFYi z>|cft-@;=~vtHGI%Oe=&0@INo3U!uzf?k0G3PKfG-?EaDbLsuq#G1qfMF(P~60^ID zC?elvBnf5P?qneqb$!IV0mK_%^1U`wopjufyE{5Mz`o_MS^{HOJjSxbVL~8Z*x%PT z1AyejzDr(D}aMJ+XW*Kx(E`k4BEdb>)OPL#5 zQ*{kaf#Oa7vbR%UwZ9W`7Nwkub^#+f+|Ey50uXw)ysZ^DGS@BaW2RbgDm{LCe@C&s z%J;k>s(N@t-|nP~RB+RmqV_w9oxd>x?Q1rTJ;H7VWwM zGXZRT=1pYPoF^W#fsDr}<>*X6FpS#S*FOvD1Y99A%`Vbww}(OwYs(XJHJY2L(-t#7 zq+73clEL&KbYb_^_OHI!uWveSSYut|*kL@wyXW8}pSr)<)DQ1~;0aFx~5p6LPjQxp>ub%lbH|6rCFS7IW6xlw5PDG{U zeAYTB_J*B-if%-{GS)N7}iR5JSuQBTQ z4}jcl+iG@)fGLp)ZvqXHHu7YX-!yJzF}K}}w|JH8+wcJD8u%|5sMG1K8Uw5pNvGP? zG8mYe;&Cx6N9X@804>#iTneTQprpeS86BOahRw95&)rBZ)Qr#R@QycexkAB-6tAZf znfY320KhJf(_!uh@|Dkle)1>P=gi_p|HKafeMBWUS^aJgv8VP166zn^_K!fYx3*Kv z`~Ydez?lVpP^>h;F$~T!SkgIJ`Utl{p9AD*LYa9u1%80cd}9V24wy@IePMCydH+kk zEo$$`aqlnC2ukt1eUrexnZ37{3d%anCyNYklmm{3*vs8d`scwHomg}VhxHjR0k25r z_2EyP;PJ>f_&Wi69+%0u^I{_^@Ogr+DGa$c@J%eqGi-SQfiFV^U}zxVbQAIb6jMIG z2*OTJW?e0vt;%QCJjw1|-Tt-N49-d3{sS9{*uEU4R_F_z^1n0>$YsH0U84VzFYuM0~}D_ zJMHqOKz00Hl;0G=vB}swr1B0x9OqMwScOb2RO|S&;3cw2M z=dR4)a07Vp5UjT;~oiI$kAPu2{XSg7JYo;?bDo zyCQsK3IKA2T+e2tXj1D9q{zz|8O(mI$A@b*J8OaihTCG!`KJ$c{71*syDY(m=Rzy8 z+>5vSbs_S+)Y)#AK+Q|{eEHs!;C@1{MCW#pb2?O~)m>FW!fvqg%TNL*u%)gM+dYjt z@TnH-KbK5e9J^zy3*bmtcG>hz=DOXebkgOJEmkd#6TYhlrH|T`RS3(OC0aF>e~*$u z4a#D+WPBLOJhM*okj0Z;0#(XrD4d?!xn(7tcKxy+yj82l?E_A;sdP_Qv%yO67O5^D zt(IF)JcMO*r-J2XO}96vT1ER3Dlx+iJMp?5ZDg`NP_&Q)r1^xt=hBM_j6q~wB$)B$ zMJS!GHv6I&*dsEY_XzH3pr!v^O3QHsn<#qvblWw58=st{* z0^@u_aTCN_CYn=)`Dt^&J%Q2>kRCmij(@|{*{lP~u?`lS!0*!l^zcA{2h+Rxdkprz zknLI@K-E~6nV3%^d90d`Z-5J2s5|_T%5P`PiMYa(57--Es9_vS^f*pd70wqkBbWod zthU)!a<(^$r+OVIzm%9h^(4r!DZkdl#ARTn)zlWAa#>w_+O6?@JXR@ZPq9Co3nocV zdB;?w!r;52irIa&vMjDz=58topcz1AM3;MX*LC*C>jWYgIqrx))7lgG+(B~ zpure^o(yE;nQV^YPaK-nSc-X8+!V16O_S!XGbb`%b0TMDnauq7L*lehVKkC<(nsn; zZpsH97>pmnFGUc+m?V&|A(VAT<{7%6CgQF~(?G`an~bn54SlreWC`*|&Oe{NWYntO zN^?7)+sp(te{Fi5&$N_$3W9D{$wuO;XwXG4#0+WEc~ak+`IUYcBT?klf1hU=`|&fW z^j^cQAFhX$AIUrm&qu-l9K0aU#KBs67eb>_ZlLoX`%W%e zwA7VQ=wwI1N*`>g!E8G13ia3aEO-d;OR+OXzJyz4??Wn^c4Lr=L|FFQti00Roj@(S zXx6jP2$7)VkcPbelx`H(tLXhIgDv9Zg3nk{TTO)bpT(njf|iK%=Ga;%N{9o{Az+n` zj{Y=P@z>-VJ^%0WVyJ3Dy>=rh5kd*E8jEEr6zZx7#kRyW@;(PO?~j!+cR<$CwfE$7 z`{(~W&FRqKkL5vqMmE@aIG6UhJX9iauVBFBgb(}0b)hO0{p}<2kUM3&_2M`|q*&4Q z*Q)vT8S>>D!*Y4g|L2b1vqept8j4Bk88ib9u;*KQFtoYoRF$AYf(l*0O{ z@=FG|-sh?`Hx;{A3s>FNmd*#?_@C`PEFz*0k6f&L^G%9vLgs-b(~D={Y@R~s>^`Uz zti8{aTP^&)7hHnVt1|oMgVJt9#@q`AbBv=?+I9B@y5NWtQ5=v z`U;{@RQ)0(B6q<~P*638?PA;YBy-uJYDv3dG8pz*SBBUyGv4qKoS4JhC-~*^ebg{TkmpjMgdp|jjHKCVrEWs`vweZ7 zxvnjoF3M);n~ylPPdo8+q4v;50#d3RwE98j70_(ldnvnbSf#Vg>R99pi*=SpWh-*nRuKZOM zsz7d1l_g5i$TU+W8kfjHQbEGB&_kwp^tSHs&%)c>x6hE8Yba z{@uH`{G`x;6!UGLVW1FE%w(F$Nyu+pnI3Kp$RYUh*Y;w|tAu&lO<$cF` zMGxT+`1TXE)X|=a$LJ@jFEWJ^=Sx`qpUg(`f6r0#9`47hVe0WoqjFXRU-4~XK?+e% zt;Jxi%&%(3WcDxCzBb(rdd{KkE+3UJsi84Sc|+1vA8V>!{PPcU8SVq+l=Qy{<-Q0Q z)T&8}$NX-gP@JP>qR5GWQgAmz+Id!oAnFe0{?Ma=t@QIOksBz+b4xvhzTHz=RO(f{Z;>U={&6}uE3bsL$dZr*QSff<5mXI0rHka!% zbkdj>jZZY3edC7PCaM(Ud&L{Hp7+`-e~@$eA2(!UgfRWGO8lBb;%f&(vHa^U#Pl8` zk?F}MiXv26qn6s7C{{Fxu0-nXgF7#%HeI?AmKVTmxE%%r<*Li6=}KtNvb$Z&*_oGI z;$w(Tc)oN18bf8}fMbE;yMQ#H1RHJDg6lYA(C}q6LvDXgkjuq(O?#bKZ=L;fySL5s z$Nc-Rg8*ON#xaqBTCTWM{_L{*<7R~?HVbs=D!~QD8=eNkX0Zl!Q-6tqV!WZVwWTq( z9LayqZ9idAL&&oXHRCK;^Zb|;5GithSlo)l&=o)XbMA^+m=50BA7VaRgB2nxi1#$h z9oLtk%@Dj>u;U?nef@=*>~nF^(P?pcy7%xTGZ^1$C|mL%$$a(k^Xo_T=*f&msW#uZ zCB7%xhW&v4Fuxv?ipJN^=P;Wpcf0Hd70tr=GMcqtP?>OmWlB8~_(m_%6Qh)Q_)XpE zEz)|idm*;5HWDNQ;)jA!p9FzsK_GOPxj0I5c{o^*9GqGUsw}b07-%W+`BgKho3eL6 z^g+z-JJfBqrG_{QrnP-1sM4F~x-}a%oa*qWzW2_9E$$1M)87Y`e?@blSRX(of_xHJ zn|cXQ`rq_>_xl1xhN?>Y7{dP^r;rd|e+ZXO-IQ2sR_+moEt1y7+ftvm-H&6GvSR2F z^*>}`C=sU2cf^Ti{dh$QRY4NBmLHXsV>O&E28RVIAx8!u!4r{J;%%gY5@@9E(5f#@ zwsy;Dyr-MriOw&2frRY%k3VG#3ql{8NO>LiQkh%(K${7yxQvgJO5aTm#z5v-Z!!JG zXaqZ%W46lc-o@*0XXMRIc^o6${HIUUs?(tm&^gymb3XwWacaA<1@iE){PEq1{{G>X zzs;v=77KqtD-e^M!0|VVcXy*@AFHtCW@3~1&#Okxrtc%&glw<(zY}sK0CMdhDCIIh zSb)`Xp$7Xkv5@1Cp#OE62bcMP`q|-q{@ty-@q+X4#;`0A=UkOn+tPuMc`uj6o%=9n zew}$Dc(xldFZ(YzW)TpDHp|8Prt_(#&6Mc)bYZ)nKHzz!On(+LVc87Oq&MGBC?kvr zd%?zYs}-IoioBw~)r_!}4#bH1;p;2hu1P1nPNcC`4ry2IN6+|7Z-|V=8(K+BQ&Dcs zqu-ooLZ9bN2T?Ib#=&}(h0#&%=Xk0Sw|w|AZ@Kn{uUQr<{a*VemqMQcy#lf7z!xUJ zf@qxpQevEOWQ8j@kLJ9R$(Yx#PoI7m5f56E#JSLp9f zml8RQ6qF1N@I|HH_nwY84eg!+z2uEvvQ9^$iKfdI?u8$&ryKG4^3S~;OSL5h=en8> zPPC_ff!4|&uIERO5R%fJvzADWBEW_-S;+XA11hF?8Fuf8tcWLy)xp#*i&?wh?Z6rE z*P6UT7RSJq96o~6cD-K}QqvM%MftHu$6Zk^DPHfYREQD9?5t4rR*b?QXB@9q)DW5I z@xE&Wg9=hjv?L{cuKmv^`w*X)4P6pJ*J{1&Z$f0^$QVx|X}Ldo!uP19m*6*c5RC@C zcLD4$eAZ9xA%|_{%YvXo1wN&Xbv#YNpC^2KHmB?5VbOzfD>%67b!WGW$3$E=0-lX5 zSwNGn#u|R|8kH!FSU|%o((80Rp7~?TRX4g2#Jih8J#8YVzaaD7wE5DWfB>26b}mR9 zUQOo~tAiiXYP$m!)y%psx!@I>aa)BguwP|s6k2&*nJ64Cr4OZ}LvG#96rfCS_~wtr zG9sX|b+TUW`IiF1_@VWtrtMzvM8RQq!eqQ)Y`*HtHiZX^QP^oo7<=C`=tem#Z!L<^ z`r+;p{SCFeX|ED4d>b?2qi%FTA~3^PU}~I+n1x55e$w}%$Ho0P`UoH5lPDPJE9K~? zM?JTN#&F$|34!qFH{upDnbTRYYs?Qr%5d0v9#QXnU}W-$c-oDYg?$v)Xw2O+^Aq7Y zyH=Xa%Rur#u_Kq3d_x2G7W=|e3s+dHM`<#*ljBT-Q@Pj^@0RE2qztq(&H4dLcVKQN zLVM76BL0ERqp@tu=sK%9OJHP7^Fl3#gW;Pn2ef+o^Btl9GzZVc3b#7#ArAgOeoc~L z0(Bm4Vjo&euqn9^U0-xugmyO@4oc{_nk1{0*6z=77C0Rqs+Yexx$ewcXcP}Y2NPZ4 zFxol2kefR)kVD+O+SRTzK0a=CkvuuYCNKb_G+~q_eFHnoRYn@{4W*aOJtDx?Y9!$* z{ATKe-JRGgd!cv!lR`#j0Svi>lEqqLb6sUy(*R~8R-xn2Yj949?x}& z*(Kj9(Lgdphme2P)1$b}1y)8bOUPvqx+rLykRK?5*&; z36Vx#EroV`GvK>h-vwal9_nhgZOZOMvYW@V!yw~RlF3wQ4sdlP9}a& z5vlWnQQpvJ=e5ZXpI+=@sLl)@ZLUTJc}=y2_KfIzIzO?P504vbMcS{_@tV(MT%fIA(eG2v^J#pBg-R`=1P7@o3VVHwyD%VQRtNc){dK;<335 zJmQTVV$vn)28LLxp*CuFA`<3>kJOk~1$N|Pb$7)K(v&wuru8F~v}z6KYn2LK3Ktkd zquekmazeGO`Jc21f(>DT|4em>3X#&roT7Gb!A0@%U|m?{*EiHudd^L!gXYWjuas@e zmHVj;4IYh-4vtMfq+gQIyj)V{h-M#csn3`XX7bmfdFA)VxZx! z19HnSDg8onrkOBYJURH;FR;oEmdmXZB3u>|1qPURM*)J*(dwz{m70FX22HOv0Cx@? z%JSWz*Tb1)GXXQMi^3s~|0{L0O}Z@Ij$e+slD{E!6!?Sz5<$zDknu-PYvAc9x+f)CziOWYpD>%vTyTOC61_|64p zSF8EYCx+Y(Z!hxG=V~nlk8Vy=WzH@EGc?A3P;WI+P?OAk2}*_a=WAEfy@Yl!!S}G7 zuh|`$*5S99Dv3_!BH?wmo^5Qxf!{8dYn_9W9&99wOrwL3D#Q9cw#Fwj;T$%B5OjV)@<=gceRH}t74_(m;B*$b}z%P zeDwt%_4=n@@CErC*HY5sB5m}h%Z$<-=h~K>sbtbeMKQZmm3 z=9F{x&FUU~$GvB?-n{ABK2jb|hX$d@%a69uAb)(`lVGR`TCY9ZKzf*h8fq_8tnl^V z$C~ZA82wBzZEt=|7MC?Rr@O%cO_s`GGBKL@GTliB_`YfgIBN|n|yr)7_y+iw|34e!`z2NoI4f#hYNuHlC;}g za_dAjOvW)XUo3As5OikQY0|wvdI#9p^sCFm`O^8M;bgC2SlB{ubqURq`{~9YbGr2) zQ=G+!X5(4NVJm|}1W~O81LK?4&Boo6kl;Mei`mVe;VNA|>KsDlmx&}nT5fC|@MS=B zF#_`F-IvSZ>!*e1b&{NI+FOT#1zK~p7EOE_RxRVUPuzucDVrvL7flti7!<27X!&qU ze*X*2Qz=wadPiB{lJXMEP)|h9MlaLxf_xw&Uy}EJv(=qGVFn>gvY-QR;8QbF)#?Mq zgaFJhLdmnu6qo5Kh?PUMVmDVWOkPdSvNO8%?!PH8m|ZpY{$X6F@wkw%DC5Z>K2N#B zw&|@8>ubzh>Y>kV7Fv8Z0flcrB|py9U-}GpAs3LrRBnYrS)bvcyv69U87`lly}w)u z>CTgq2C*Pra24N+|E&c`H_i9KVlnD84A*DPA24>Dzp8NOm#dGbdbZHwVfx|BqQsax zzCiyV$PR`%259B_nOX~{g3Mx`5B2FZC06p{Dx8RIVJdUq$pfKABVQ4Ot!5NtpJ8*7 z0Dj@&z}HZ7Q=MHeA|6()E+tmGNwV3vAX0g4_$Eu?*+-l~nhm+y!oV!F$jfjv+h|&* z!OEL2dU{_C;SLq1xiL?Iys<=8FvO&{zm5*2BQ?^r2r(Ps>`MS@kR1SXV@&Y!=(XV! zUby)I3!X&}^e#VXB`w;Oy#OZYD^xYP}U#~PNWI((dIKpeEscCQH9_PMGj!~j! zl?#pU9mCu|@(hCbsFc#2!n~=zV1_FM5F})Utw=~8x)(%|wFBr= zA|kqjBLyM9*N1j950U?)kjUS|Rjhb%Jf0I!>c=4Ur4@X!pTx@F6OpC(ji}U)&yKGQ zoqcRE|Avvi+MmhKKIt^3-l>T8FAII%zWTQ!p)lv(RbBQpY0|9`LRjzvqyK3y?3_+_zZCeu)((|3Rp+q}r=*o?xDKn!X!&!v9w z_}Rc>*K;2oa;E}q+!CfsjoKW**iAs^YRn`<-i|Jc0%F;eUbR>+s?-!?na=Oc@NYD? z;vfoZEF66qsEJmd39dAblBpuX*UD$ES!GMPSEh}&o(tW*oyCM1MFn5-p2dEu_h)hdPF-O&SEaFD1qMEB}qTUK9QavNkpKAzELZVw5jX{e;VU zoa-sN*oCwoVNo`Us*;t#v}!PU#!}ooQ!Ij@gGs8KYX1mPN+`vvPVXkkOj{=nTVf$r z4pnEtx*ti?biGFfuIB~KkN(e;qTW`RpH*tM7w)ulYT~**SDF!{RReUT{2#|WUjBK} zzqg))90;gT+)9k61szGJJgz+-H<{!jw0W((d1f3dMy96f7BzityJ|b1`Oxtq&w&U1qoBBD zU5z@lAhQ3cBt#`4PDTEwb~_Z}4q1z@ur@cAlqn?6KkJnm>(l3Q$o{Hj)SDMYiU};+ zc?w%cJiT~AZ7CCvR$db9PQz*H^Io;|A0_o39;5uKOBP2ewvX;Ug1j~%h`=d8qv(mP z(5}#X7s`5K+?Vi34MkImuxzobn=XfL7L^Z==$|4HtY*YuDa}3hSNZzcGMIu*1z)S3 za3NJ@6{b$3teV7FvMUu|DBVl>Z>xkUuVXK}(=24=eklzS?M6{RLO>&^AuZ_|91Yx4;pAftz`});WMOuVo zbAYvSbHpfem`3A}FcqLLpcMt23n{Awrr4j<7;^(y$pm@--P|8(N-2~FEz9*0B{+}Hb zy(BsgS1xj&|s3i zKd(OY%~beGIJ%DFUc|#J;-HZm>>c2$sX&(*7mOuk!Q9vM`Z0k&X#` zjQLY_h^d50zOoao>FN=07pkRo`gHI27!%y`c!CtuCd_|p@pfGqc_X7>z?vGd=u>$n zmV+KX-_TGkqY6^)#p;#-@oQY#T#Q@`WD4`aO1}uv8KhXbLy_DBr57*ll!FFIrx6=^ zS(@ z@)o1;Gf9dwd|~o}qNZbvA@5c|?)>q-r;ShvLmM@<`RAXY%_u$mRK)0gVe>vd-9MKR zI9K3K55=j7iKVuVlCNg=q0vu}ki|ecrHG*qz|urb4af0fiS#fTVEhwB=rxfh!1yhw z9AVmgzBc$a&jjg#h!ll>#Y$D>#Mck}O7}d49|`h`_ESa-1o9NhK;BEG!sda8!49R9 zq^6rba^Av4N#?XuQ=-c?K)U~gvcZa?B=pY<_JR!=_U=^{po`j;Pp+8;MJJBUDgRo& z{X!l$9?a4DL1k<%=XG&ELkBNdF?{j=F~NuviWQ8F^!S-L^uqq5JMo7|}ZdoV};uaMA@z>C=%zqq9@Xua>-#sqr zL88UQ_?&m@=UN)GV=MJTRgOv79)@Rh70Rpa&7gn;8haTBxnxb|GhRK9uw3k@m+MhP z`kMJTw~0$CHM28|W6j0@{oAIRULuWZW_*9?+5cU;u)1%xICAIR_k+hcvKK7*gR~H9 zn8iHW#1A|yOjgkpTK~qPEIb$KZBeOl!GCWSoG zDHUa?niEMtf2Foq)yMbzpkXFX^@9pyE(Fqr^*mC!pHHLv?WBTK^wwwk?uh39SyN7Q z((C+=VVeN43w2ERSuU}%&88%UooDsVr)D;w`-HSsz=wx${`4p5^TY5kpFOpnNgkHWfn+_2Q?Fq1Pha>OIDFbs zLsg#fizg4<>4c^75^x*-(e8LPSKZCKA&gzJXbk&jNdx}e|?jhF}j91&FQ73sEl8ivhoo;G-W z7jE7O(!(c3*Q9zPqVlZQe}rbXuMtW@RGt_AHVdbA|MFV)SBxkUoj*>X5@nVWEvBL= zZkLNQsUoAMD)QrQl+GjkGiDBv3AyTK0-hsEBkAbZ-yh2Vf8{NMLfvO+-<8yiJ}M3e zJY?Sn^69Aq`2F)#98^S*ibT8ROJp*61Vdt!0t2zY7ez*T2=;C~+mr&asI!m;NG1Ep zd!&CNeQS>0`z_YNdtLu-)#pjAYTf*od(f?bMx5~hjUFB45o>4yq`AlTXwHk&uR4ccN)MueF)Dn8%k zNR1d6a5%Nimn{-J{PRHU@*CZ|;TXD+hkEk@1hcWM+3awkzo1(ObfTK?&vi$?7PLF* zrx9Odw{;eDb9}h|?zES%5lj-$(4T;Tg0^ghw(}mM5hJ7WhLZukho+96?}Hn|*9M~* zcd+N@P17H_KOZa*fREk(39th92RxK8EbTUP30^sPm+)I=HN|+Lo>ln183MUF;}zz2 z8wU1$ei2C(03-<_4x~VhM$m~=&gVypQk0{)>tG*^)mpSI>wZuv@el%d@6mAfXyFQ8 zgdp|w#BF0EG~Tw73QYRkBe5UB5VJ5mSn&U*_rd+x|4M!TK9So>ujCe#DE>d1IGQZx z(^%au&VW=?sdk;-^~EwM6+i2KdB|;yff&I5|JT)GY_ql4w8>QW!6<2?!(ZCzaEaf3 zD??p(SjK>Fu_^s}Ow!76*AZ6s(JhI?L;xtW^?9WIKUze-T`vv|NrDQ>LH@ZWrx8$B z_X+fhBy;kc%-8N+?9a<3oq=Hoso04oDcFXF7FT;!KUIc)+2 zygpE~A#&gZ-c>2v{r&eYrKg5=C$A2u=-cM=Z)$#{e0sLkF=dS0R8T*2c&Qynoug3j z_P)O9@`>Tdu|plpv&q)NHzFA8ib4<;V+CQz5!@ZrV9vD)UW2Ot?zwwVFni)G;Iw$| z75|azr1|uX3w)h>;ZQEYx^85Xi1*}TEc=iI{NZ))HV(?jcwEm=uNDKyTA7)c_Cde> zW`>A5Dn85Sm99-74s#7UEU;bT%G-2Uj7KLs1D4%K1kq6mY!?S&%|HV_=*(GE$_HXH zJe@3ON3NHxXXn$)L3!>vL_9}DgKvo7DuYU55;$Q#|pvwTov zsJGgqdwoX0XFh|Pn8<7cBdL?WN$lYrTj?GIWp2;BOSPQ@PWqHVLjwWC^V(t_csDTo z(n1bK+DP-lr+{|duDRTQ@G$ZuG()UQK6dSfr%_y*S`364x_d8cKVmuI6xuZ_Y25ozC~?2RBbahk6Up4>(Y$d*Ar4sya6q!fDVv>VphR>~n+n1rm^vC=IjYyB`&=7AFXibbeVWd9+vn<# zP-3Acit}J&jsczNg(j!)M+jGG(!ZmE`Wp3#>#5x z#sFeGS1kn!p%dh(XpBHwWD}&r%76SAZSnZu%KCg=6WzFN&D;+!+R5Mp!Nr!}}I93gFcMvMfT- zJ0WK!ZcJ6SrhvN=V3PvmXe#a-L3mtZolsrQdsSjsrtGgA1}HESM8qUJO-FN_cOrmU zc|H_bM*X=3+NUAXN8?62kgKfg)5~>ZGR9&Ee z>~VL1R>Oa%m<8BM`v+HwldkyU$C4Qo)F$^ATGpxz9!{?P0P20I{b!V}61CoD=dqH< zDRfb3Z!f#a^-tJ{qN!@(rQ;FA0Vub<^*me9Rwi)w?Li&2mDR~Ce=J^4I1x%PZ}9zoF9IsZCQTVWVd*{B2=qi->Q)K46yq&Y4dt(^uyB1 zvGva>95B4GU;48Ss5iLu>((2FYbGU9ldReP|772{zhHnFrMTTxJ}}UMH#^mMc(KeH z0gpo{Ma!A)Ro58802$@=_P7O0?wi#VCP~z3p#4X##_b9`7Q#x`XsH^BX|~gTa15|C zPUUFCaE~1=6V-zS*J=?`44i3WKIsV=x0g|#Z&01&WPeu2X{1j!B$cVP*sRkMW03jb z#I-u;^VPfe3Fcq(()5H~Xur8m+UjM^ZUKfPz;i~?e}zS(`c+_Pco+>}=wdo7wx-k2 zqDxP4I<@Znj3%b_`4z0-?g!urFuCtQA3a^E_nBZ{xohi;so`B|_9q|g%UlQo;|rm$ z%FUYvTRA&&QgWakgv)RiXPfvTw3|MmJ%}0Cc6%?jo&$aU*w*{kPtc{Q#{e}OV4Qog z=h+QVxxIgH*8^UE(KBImQERCUTi0O*scF|QDR)_mR~2sE9E=p{i@`+jLUW+Shgfar z3CPm$^@}b1!mQOUO_*IfziwOLrm)C){N@ZGYA#Gv>RkeEsstc_m3PCP3Bv@IJ5KwP&Oi4e?_7t??Y;hfplD6&IXV$PoAC6|EBN&-N#-E%zw~pkYh5 zG71Q+w=$4Xh8dyAq@?f3*mtBqOIoPhOfa6bjuo?B-6L0>G?%Cy+dHvyPK15nPZ;I>+s1~S;xxjNoYlxk zGRIh|oDu*!)6cLn_~`WOJ%|+Z=7JRq|HzMu)wclohRfZfGQ~x>IL-Ju45(miA2{(K zOi*Rq9Y*ZcPs|Pag3{o=lQKUo4jQ|L8)*=xDi0=;6Kx;&#xK=I^Ct!yV9DZLWRQ$h z1W}k~PeuP~5#0ZAY%uwVi*lM*ybhYSLziu~NA4 zhDPo#=_6Sy;w_3k{WXSER9tz6UYceO;$O32^|3t~`gfm;|bvhWjLvaQA>nMY&a^VF2zVCXW(YH{`sbkD&2cO41j- z)DjLMPITl%J zbL@H=!VZlZhR7JAVgw+%C>ukps?g>{%g#Je4J1K;d&Ys~m9W3e^$Cz0cLEC!`47o% z(!TCfo~u>EWkKu?R^u+T2br^#>C?n$;XeLE6xnl;$T>prOfni~Yxt$afZD~e96U!n z*F072o%8ei3wo%slvGkdkgGq)-$yEeotw`Z!^>Pm-Rvve=bdkH==+`@c!>IH-=tvk z-wXe6f6JZ@Me^tpC8y~-?!{z?k*OKg8; zXemS4!+)MIkfLG8*M%p%kJA5IO}anWm-J;@03C&k*zMX|N7JD2Jv)cVAD7?kjHQIq zN$vW4eea&P#XsY)|GD{z2(!ow2Wq=PJU#dbrurr3=W9}hM{{{~)h5;J#9{KWa&s&n zjBKK<_Ag$-ZXJp&WALAHRIYPaDLD?aKYJ#qMht-?GsF(5X273C61!WvMb<{v&g~u& z9T_a*d8O^EZLZz)^VZV7x(o#^1bwCSyYHKuH04#5%zW|yi%c0alqOP>&e$pztQ}-$9 zp6t`M|Jl+jjUho~^En2=@h*8T=07yq4teVOu!>DHs?R+u-pa>PH9q93&iSCR`Wh14 zVvhq$NBK&?#(yUdKpos_Kuu!{*PfCR^;>wN(yP86WlYZqDwvHVDxNyW&yxA=C7$Ef zuMbG@DYQS*K|;s~J4)C5bH(m3Js%0fU-~Fe z5MgS%5@wh}gfpjFxQlm8lxKZl$*(wt!UC&y5kI4K^$5%r2IK-_czSc2h;(bzIuj7} z-~4xleQ-d+TUyF#HU_|DkL6szQ=cpjH)aQ@4;Dys1n1fU0A)DX**`eoSEV?kO4P{!4 zqU(Q0?89kr9W`mcMLV|PSDd-Pn=FAcG}Rns`})_m=H&%i>LjeX{U}|(3b^}>(iFR! zuL{j`+_sXU^ffgLR9Zzuh107RcYE4HZ;zGP(ue?XxV7SuSFkVV@ac@wnNJ(2pwU!V zh;`Z~#LWm#)3 z!9663a~$ApesWJ&-Z!uHa_aauYY3_}d1~%NDvD$bVJ!J&XfvN(N2QS;_5p`ri|c{3 z6m<#0*uqRYLkzocTuLb^1$thoXwX6ilz@c7onS}qS<_=MC56PJE){CsAx&krL+R)V zLCQ0i+Vvi^o?&4x#8;$ZpWWf_$;{~gikyJPHSGLM%El}GbEzdX!d72M!_aELpr|p3 z5fxL*N{a1GMdgmntAt~0MRL$6$=VA&@0m` z-gUUmTbzb}$Q;T*qUBP{qNWUEOZHV}H*kX)ylyT_al?pda&_{;&mSA6*uqs#NpLWN zvX}L*Mk4mc|J_A+(lw?!#1AFdpBoYs6y0YLZ;@#Vw?2tW2ZD0xKuR!a9Xo@#4@X0U z8p?>hLSUA^W;wuSgNNXg*~m{hy6E&NfI+|2<3ekozfQcU=g>eoXLW?Fc#pk4tu%82 z%(SCRyh(H>>0qaqLz?B91L{+=FIqyD7Svg=pC?d|%V4uHA%O%Zl+5@Jgfi+D(A0AO zn2zKLb*mi+jpM12f~LxBKhvVek*Q&1#Xc9&`tkUmyOHFaQ=Gg5L z-3j?cFUkHplDYrassqf%WL{Sl^oAb|X+OskmAXs3KpYO%!oHK4_1Tmz z-W3k{z(3JYT2N3>S5Q|+x9m)2Yr8_i=VJFb%$CM8B2i|eqaj5JM zu^5iI|0z(%`^_vMCJ%J)K&=s@={@!WP(27d;{&34=6q7|4;USSQ9Cf%s9g%XXbYSw zGXUg`t6?}hwzk#TLJ!+JrSI~+%&SfEfqdv;zwL73>>SP862be;ceJ#kAEy>;TGmq( z4nHyM8V!s&N`VovrEhxMF(XKexqm%H#A-raWacA~l^KTH_cb@K4w(gIf(97EOyhPa zgfCst*yR9JIyN>IXyR2Tr}C%15OpCW3LRcbqut3ZR`#i&>)Ql7Z${CMQg9z6u7UsM4eZ#=ZX6Z1kki%uv#9PkZm!=Ma0J*Z1B61&^5+sJ z0Apv(%zwfUz;%9#Ogf5)?BKlUYgCt9+>3Vdd?NXGXzEWPT0%twQCjFc94$NisYDM_ z(FQb3Qls@@loqYlv7c-7r3^p4kgvb}qcca9-V$5(c;Fp9q-nk{S=@=`-Ck%L-wk{$k2dmtx`65G5TMHY0ZWaF1}NwyUyA zY2iy1m$8^?DOL!D&vrMkAAAU;Cic0Xs@BE=kyXFA25^uMHcg=hc;pjMFzlPAgqETs z7RTr!8ROQ9xZQ%QW|WrVj{bG^OfB1?%$5@NiXXh9YQI#i(TRc9G&02S8P(bv~0YZp(raDh&Q46sG(b7(Yy zU};e@ioHoR#rUHPi6yy`5#3FBxR`pVpdT_nfSs;dKtt{LLfDE50C-l%YZVfcf$W%x zsyTpl-wdeYz1QSH6atomj=hm+U82M+s9n}T0Ln&JFo^s7WB}#YXf$#2{(?dEtMSXW zjyvB=$@-mWQO}3_l`YzX(Z%X!Ps!3-CVwtl53R-pw3hs_cTKLt%H|v4#3AKt{YDoA_I<9 zT6D^6a{4kV?#AznNT}R4mTdS8u+0oI{@&;+vAJuh!i?iS2igpVn9@l-OX4Kap#p}5 zA(&z-$BiBam%guW>&3tb2gCt8HNs$IIZ`(@R-6ev;)N^C$o?wsCtR<1P;uQKR!*jH zt%-7yGVMfYW&%%te3yqU;3E3bN@SS6UY?a!iSQ9Hyl(JjC&EO^M!&n8zdZfHuV33P zm$dnKL8eO$R%3Tt0O$=!Dm*2x*RAo$#P}SkK$acnGm9D$EgVA4hTo8$mrL*E<9>c{ zpN!+Oo~kqoTzI-B7J&t7y(^sGwpXZq5ZL=hxb&mZ^U}oWP9^pg_e@0o3KwTdaORdy>?3V8rv=S%pfAftASAP?V?G$lw33UJ5 zv6bWfYT%=zWS*$!Wrx3+^W90?8O^7i5`lMu?SNPTsEL3wz_oLJqpFc=ruJd=_J|9( z{Thja0Mt(OAg+$vn&-=y=tSZcQH(AjQ;xU;dolPLdk*9U~v;j6=g;5apO= znXtZSwz2JNNt%%2Z!_-KcXb6YE4bPHI1&j3=m|+dxcHAihIGZcW_DJkT=`l<4Gy7? zJD%_0CO5h?YtUKakghSg25Bj?g(dZTbnF91YW&fyM*KkpcbDY>eSh(5K!HAH+_0WI zCW#f4{#fu0V95YM!)ybxJ+Tt0=aN&=Kt`Si6XQ+HFiY4)kpjwCIiL3v*npEsug2a3}!F z#gUD>E-5e4khBQ1ZOoE{Q1yHcz@r#I%T06&+=57yK~n3=z-7H#CF;;jxnmH!uD}87 zaHU(lj*=oHRzC=wb`MDGpVoH%0DWnRg2Ox}N;6%;Dk;B=wKZq1Nmocwq8R(WVL4jp2jOukZJ0k*M>0*;aq* zPO%0g8;^e7ld+_aI6ZU&E^p6#UtjXu{t%u4{0gi+5A$}}d_krIhl_Bl#IZfc#kOm# zMr+Xr-OVSWn@eVZRhjx5*^9$PfIBV|$b}9s*AUG71#cB9{@8;S_;zB)xB`DvJYuD- zI8AF}M%T+m3GE97pYRp{w&{VH)^Uob^61+ok(M!h{aJ9e&K)k-f+e^^vf|*zoLw>UsVP+GUXf@X==J`WQZ);oOU=Img_<~(+ zChF)d_79U879XEy-Uvj=6HxK=5~Hugg3p+`GZ6XXWrWc1XK|k)&!nA&{GN6Nd3>-7%DB|i0uh_x`!(S+?rb8XQ42ahMg*@Mo7Sn{XE68>>+!H56#J zRH~(=)$4xsd4{@_mm(AJQ?eIKxz-g_2+&5jflgf##6vP6^C2B~ zUt7B`EbV75!0v>k_9`So%{S+rxn6X%ZH_`axoJVWv(@Au@AU8CFu$!-&x~5O*?led zoL!HdbS=PqsH77$q%67jHg)wpPEq8mY&cr(ir1?y&uA05GWVQh8;SZb#ZV29etw9`u5AMqQo;EVp0! z4(q5&HuF)J%yw2=YS@Or(@2>M0Zq`Sdr6|Y^d&FD>j;R;M z)UQ%8o%fuY=MOw`&w8rT17*ak`=FfX3Kg*LI3f`RZ*zgrW4Q29o3+R2hBwWNXE8{Z zQCl@eLXqb=h-r(FF6!Y$X!4+)@R8@yqVJuGal?g)f$hk!Z4qmX^&^S15S4t|j>Wc} z1wG@l_ev>V7ryxmw+wo1S63ePjzk?^8Mh)9Tz5-=n+)P%;xRIQ02wmcHBU$6onUt6 z#5K&z{|cP=npF!o^hF3R?#spZPw4PtqKbl|@MFTJ7nD&7ZvLo&WGvZAF%cq6@+cs@ zZYm=XNXeey@PkJ^57A8ivlHS+OFWl8?M}5@xfUqAp~MEZZ+3=07oVg~YcVOq>n@i> z2Ex%mnvVox&AP1?`hBjDafn(q-pyxCJn?_ZlrO_|3a#lCRHsrOiL!w5u*}D(&^XQG zn=J7QP`#2*V;FM8Q&pbQ>Bl%zCo5XI-|yz%?*u-in_M^L-;|3UwQPlt`7U7?ef%>Z z`KLG9`S!qx9JJ)I7XSJ3uzl_D^BAj1?R>}8T)xk|XyS*=i-Tp)-eG4O!EBS;nJ1v* z=y{2gj(p!`jk~@4wyj`au6D1jO}CGJR}8cgyR=PCwRoUf?`wiY$@8nl%jI_GhmN)R zG0M?pznjUIT*e?qR1rU5h6nQHJ zYZClv4L(w)2q|aBMF)4#B<#R-3TZVO*`YD)YOI84+mExoxs+0LBt_6N9ai7HUQDQJ zsDJfpjC!+~CRI$fXu7gE%He6(?f#u@-=eHq{+3nMD(zA?bD@OgxmZR zPyWa8&5K@Z9LB$qqJW9YJfRq!J;e_f=4H&}K{uQ~>st>ZYLk7;-AFZrtb)RJ8>{32 zOWJ+a#7P(V%_}R-Vc)cshO)H0mpYCSrl76@nWyQ&QRqaf5d7r&0m*|m@kj3l?k=9M zkjoOP2KvV!^^JkYaQDJzB+jORv(Yx&YVK!#uDowa#0(0~+^thqR+?w-+5YP+9WmWm zv0gc+hMxVYuOj)sTDZsYYFf7ozmGF3eScX9uF?6?pHkSzY>*LMfep-bP24ihbIc-v z=hRWJ7452Bl_ZZvX@%*Lp0@-K?|7YF+(ZKYn0?KOit8UWdZ6X88Qqj#&XQnIhxs64rb$MRBofh1BW#p9He(>Ne8r0iW?MJgbyFO+Ayp3MCEHh5AEPLWuD6(@rlqnB z=|xHNzed_kQP}Hff|4-ZwXL)7*^FLDfxw!%93kz}+^%^x5B@!?&TtU6$8-g5$hlI( zIm3&uDTU8q=jb9Y^fY4bLOF-&b=64UAn7h3#8t=$Nf~wX5Hw`IdsR5*&h=$Qu+80>XiS5W%3{HbrzDbd+tQ zu_xlEhkDdt>>;bSQpz!OB^`|xabJDVrZT0#T5nXH- z?mhPZc^AOEBxB3B+r>qC5k^^NfpG9qgQ)f5n&r{9gXi5z+b-Qhf>1#*RA>c7Au*VP zs)J!Ulw`f5Ed_p`B=mG}#=%f^JCEldy&jvMbAs7&;L2uwAJjBnNB<~KQ?mXvC;!hI zSG1JdKm*|p^;CpJ*=Fa2T)k$B6axLaR~@N9L`3ORV4%pK!Ap5owEe#=0oBX6c3^2X zoj z@Y;Sb$omMTk3ts4FyPUe!L?1j<-dKrlAVi26k_h)V34uXwPz5NP{E=5vp_YjoE2(l z9|mvRMsIE>6(f{^P|@7^Ov}v{ywjDRxbwVpOx+4E*Vl`{J`XXbDti`Mh&$w+*Gv4h8PMXfT)z z?;EXWdGt_X=T+_KAeY}BvHwgF5xjZ<9Qa$;Xzoyv7JB#dxrZ*&=Uz1EW(*{Li?DPO zSP}IbTuczSSot<*mAWUZHfYm(Y0o1TSr!qa`%@JG!iP{IEll$1gINsSho&CHi+|SU z(D7G=B_7QUh?DAU7Jqe`h#s zRBMA+49$jfR31b};pt^0i~fQf#1TXMgm4c6*8~OWB;DxF4k1FMb#OG(vnZto!Fe;n zQVGSxURs}eV$ZNWN0=8L9szF{g>e#K54Ef zeDG2NmMUhcsD=nJBk!@Www$<^d#-ofwpx>vHV%&T(x)f!4F9Z!bq5`ZCjHbTb%UKL zm!^3|#wQ=7T~NESUt`Ng%IK?xv6mHCs=J?JLFD>;O@uSIS}r>-7*JDQ`;~4hM;E;3 zl@Kglaw%?-ud=g%hri$HV&8i26QLaYKff3F+3Q8@w9?46GZP86*0L%;jzs+W-%9TT zps30E;Jl{mQ`ccZkm;t_SS-?XlTH^T)m_OBie{%zFygIxd8?y=u3RzwN0myY5W9-o z^v#R2sTlm7Pl&l_ed%nkjy2pf{Ha&)XY&6Rko2KQd`Nf|jsbB854TwK2BTVG75l<& zq2-2$rV~R5tYRZa9fLqNAP!|kbBB}>Gf$^7RO!j}ZoB8`G_gblaki8`EDR@wIPfH{ zDf*kQy^-U%k9uMpB*XPYTQ6mxaxP(qCh24={@;QHQ};V|h^OaG%c`(oL?0M2S1o7V z9slzkJ&*WgrMV&-XA!1ZUP~8nLkOX(Kw?9Y+^nb&<<8vAw5K^SUPp7jAnbv$E)Xix zy|}ERrw4jrSCm`xb&oTz-(L zgoOX6i{%R1l|EuZJxw{s6ib5{8-6)2Tkqr_AZpo0i7z-spt5?Ae+%sTzK%pZBL;|x z-?ELjGOXVZBoC{#sb*@5QpDwE<8w=4{65HFWlsPKp`d>{Ne^QjsREUZ=&j&L7PWQ- zb<_rNvAYAWf!IB$tCN{hff17eD1P-T{BePI@iaQ{nP@^E4%zoRq zVBiFJlJ$Qs)1qI=UswOwV&{uPLVA5>#Wfe2pSgfF+=lU5u;+jBe>p)@= zCbtqkOGY~uc&sO?Uo*Q%u)Z*#W$diM0aB3and=2Q&Qp@ckjBx0*tlGl%1c65EC>YZG-7+_QhV9dpi#@YT z*G{$MRTwvkvEaz7}jG~WF_)BBV%V2FJQ8P_M~mEoNr2v>|q`kunmuWvue_^n}t znGAF)Mo1J6ers?e!W2N(7{QJWCmE@uZLJ^*!j5GJtBRT6cY;r~BJkmw61|NEOjRGx zo>|sZJnuB!rQ^B$_pm@@@c9&u7+Xr(dHh)C%o+w8$4h~u?Mrp(TR>#xi+6c<6!Lvu zOJbAnmnwoaWj{&>3sCU61U9hf)4|CkJW?&G;9_^Rm`rA61r?klOO4#V5oTu}x?jMl zv031VaZ^7~RFI*#o`4?7%@;qk_aVw3al)TM;*dyQ#3_>)1}fF0gCIfxU>PXI3&7+N zAyj4%Su)72yEiWAQ-t4QJ@4v zC-aC3W#Vu~0(D^-Wg5#~LNlU?xShh*8Ba#PkOQA|_qEl<>6G3I* zM}YG(Q1&a8B@elV`)|JDKILOC1J1X2dIbXVq0wkmu=ED&;`|F9P(iwuY?z^;0vrVl zCXq@bK}icW=kBMl0Gt`^;-q0HGVq}9Yp|Ij5F=+4YY2$qHQSs0J8t)S#-_7s>}YC) z6=ZzDTL8w)Ml71H_&0Pn`zK>Pb9u}Sx-_Ea6M{AN4xhD@t%4n5VBaRo#dGj)X&@4L zw$Zy3tA?Jg$Q%VmVI(1gy}GDiTiJ0ws)_t{cTqIKRbYI939?K$v$1!#N%h^{69geR zjhoi=n4D1imSTC9eC?~7$YwH}%P;Gva?AH5307Gcy)pYeDPCnMU)iRV$j7;De4l=Q z(O>n&))9)di~rid$(rwyB&ej!;RuDPO*{dVTK{kX@F!T`TZ_8&)i#491${!E0 zH8wc;MbG))!|pmoTB7wUv-gFM@MLR!5ITJYWm4UBv2qAaY}=lNtkjp0Bo!ZJep<`? zh)2iWNTbEDP;cwjE92KjY>CHG@FFYhxg$JQyEu4w9`m0$00m0?4} zWLJd5W3#eCsZeEt1N2k}zu?3W8P+8Q3kZ(6UHCO{fzxY<(ioY`=xmw>votZt`v^f` zjL0`Q=JGcpIStMDC}8ZMa1Src;=!Fl22`*1hM&Z;EDCo7R-aK#H{1RU0LV7sspJVo8 z$RItqjujV*21+SYBSPT6HdQO-l4XNzOG2P_J8o(qDLO@+7L7(bmjgaaP*lGKV3Ry>%JBs$IPaKi)>>#PnlOCg1lq^aq%#`{nBT+?zQP|3B z7Z?n^ZZ{@-HqulvF?5Ec$rFc^5CWNH8=Q@n@0;Dv!+nYD9YQhn(aD?*?w?}Saw7VJ zrIbFA#E1}{T)^EH_)Yu0MQmFylDGC--ux_kLUHc+d5uHlzsB;-hBoBqDu%R+jFtjo zu8|R11X3>bsMskJbvv(Sg(NsH)b8W*@rbC7R59ly?C+LoR9B3)7}x5N)YN*lg{;<9 zqJXe3!Zn*B=;g6A$yka{AuEgk@P?qmP2xfC4Zuf?S{EOdxH{^70~OzkKvUADUBjYS zru}ntg8V;Evb`9$;m4;u^1p%`uP>@MPad=)2cS@VQ1|#dX>Abts!S|0sNwBUdcg7! zsB5Xw2Z0H)(2`-a|3FB@t1@!^-_bS!={J-`0fMA5)`uhDW1*_@lp3)y?2Q!fOLfmx zGgz%Y;|1Zz(jw^Ddsj8VazT0R7>}!#`iT`3!rPDDJa0GF2($V=`(D`3)KDc^6~9l8 zH2h4A+-ysXQrRJcF#{1r)F{)lb@k^rJ87E!yAmAVu_a<8C=dS@3v@iPXiWIs%3w1m zvLhA6cX{vpRLpZJ`pQlW?wx}S=g`CtV!#0KE$W)&?jd%K0uyhWDqBXh@c=JZo}s*d z`;I|)nufT0XcTP9hF`xAG>dkV^t{XyJv<|Yn8{*>=qn*kUd1jOV}N{Y0|i8f6l}nF z6`h`k&b(jbg!Y7nk_}mjIZOxL9Fc?9)x|{A3*#3-9^pO-aY}Ke|V1tCSQ1Pjvf(9=T`c2q{#2j(oQ83gUR*AWw-g%j# zVrE)}zmq_qi-nD6L^ntw;XTdC{?$1>bA%k5a7(!AduZBqe)nsP6YX+UMy+QrnYP15 zY-9c%m_M3q`N=ftrcycjcy#n%wWl>9=F@|&yOgA2y^-+(-=v#txvdzeUSlOQHxJl{LoD4wFPR1=bf^ zn7ruuU59wV_T!K;q`y>)k zPli8)VNV=j`Kz_0!ZsTvhyxc`lyhz?xLed9blMipInoKbC~O%7p{nB5Z*4bC_ntVf zGzP8gl4*ufQWoXks=r%mMxErY*=2{d9vzpTzN}!bS29oSGqi~AVu_y0_8VeTVt1cC zx=?@#7>veXk)6TW?h?AmyVO=u_rt zsiJEwlk8I%_EVk%lklUUfGJ^|jz2&;Mvktt+e`d;|Lm23Lur^C6YeUwY&$(qE?>8}wR?qt1P$^x8^(1fmb8b|n=+ zHQA=2$@Ml`_L=i7D51*o(uH;vA-@>0=*vq(_q-Z-BK$_!|H9P3StTca2x|y4@A&Iy zY1pKYlu8P^63)2Wc51y+O3u_%!9D00a8GI3*ivYhD z8pQ)MH8~pCQDsCGtp6<^1)Q8w;SFsexa8Qo-FZ} zU;CBZ^ekMX4lWBKdX&h)iY~%`!WKeZfjkxi4(f#JGetqg?&p?^?<=N+vSnEx*amjC z%kEJ?==;{mik~#0@FRpix?DO2IK6KxoZ{7hZ3>dff|H#}mN>FCg~y7FgJjTFk%5hp zSe?5*T4T<;w1T5pNydDa#AHbNNrB>V;9iR{>-8SPd69;I(vHqjLU0zrelp?}`%Ax`tE*?vSdLlOVdC@6v zYow#YZ5qDZ=;J%~$>DoIwkhesaGp4Cvhc-{2$_kRru!%a3fKC9N?`RDmOzlGdFO;- zD^6U7GlWhZ;jvqzvz5hIUyLZ)RMSI2{iMto<;udbCv7n~e#I+qeHZgQ6Xe9saQH2} zEVv%b-|Bk)$w6t7@i4Rh(2YvKQEV&oVV8 z-@H!4sqb+uUG!MOi9K@|1pCnJeZkGM?Jo2+-(=xDh21sY#Ji@w!z%tM5A$t_6#HW+ zlIXrqzWzb+Fn4~dq;x{u*K{D^$;rWg@E@nPgjPfm5ihY>j;b1t>4A#aL4Joun!GSg z!t8|bMihk%2o;WT{;SYAOLuHVC(m|NYe7epdAzT*L$rba5v z2c^t&J+To=>lKjwNK-ZcC11BT>3 zbzeO?^z|9b6Q`>_Yj%A1E?4ax8=aSjV3TD%Ymt>H`{%s(T)3_h6#lWEt8F25Zc*sS8a+lq(qP>g)Sx_$3&4>$Z{$_7&D?(iv2Yl-?KFS9T-W~N zqt#7^XlLWO71z?UNs~JbTIMMO?nS6`vGyXeSDuaM2lsaOn{~FYCdYivC*(D^BP@~v z(>BkZ(&XjkHO;V(-v(^xEkB6TDk?3#K6^|PxLQ7U?Y4XzArx@AXY#{!MWj)w^8L>H zG0uhSa*g|a-@p~4KsQm(OxnQhJki6YyU&5=Sf4%pRmv7^uZpHe43y&Z%{TWIn{6kV zIQXSP4s>KM6-M}ap@iz8JX?$7;v9`IXqIs>VQ^ixEF9s_+Yl%ptp3r zZD#Q*Jl7OzD7BbaV#)eW^cmSzfw+GF>N6pU5_a#E@<*YGw zdP*q^K6};k&CZ=WCGVWt&u4Db|7QNocHW;iFT7UqZ@yd(d;o%4Zeu&IVjr#&AFld{ zH9%cJ%woWz`|RC@$-UK&&2P>DXF$qJ$7y;kc-&CXXeTM_Iy3M(v(g0cM;JD~Kh1o& z&VRTD@@S5M&)or{?r>^{010l#d9`ypkTL@36$M=-fi$kAz5|8+glR(OV&YC9Eo(25 zzsKJAESq0V@@_|?bM48|CqOXhdGNDoA^^zJ>bUHk zF|Xoo`;m2+6l0OchefAm(I;CkH03!Pv}RTfN_uoKFl5FEP@=JM^&pZcL1A{X2rFqR zW+P!}Dx;Es1Zg*&uEZ=w4!cZelJ!OSWkPHZA0IM8$He3%c3Nt-@`koiWcRsvd9EY} z8xuk#zV|)z=_&c)k58`cTt2si`$mUs{6+;PytZbC=lUY9iLjXBeXAAoW=lBYCIHC?e0yaCHeOrD6KMC%x8hM?}vd|G6~~ z%zDp*XGbc!IQqI&FUoJrX!$CB`A-vCqU6np#q#IF29^9j-G!a)8@+nQ0pq>Pe=tki zYU&GRLiY1!2i5@l27!^pHME#6gT|Q^LmDFUA98%}tFjA-K z_G*R=C>w`8c%u&&&7EiQqDPD_^#^1-Qd@m%g%mcS~H+@{>=yk z@{fU#zTfRf{zqlE=))rvH%FItEFFL0&4M@DGrdNuDqx`d=9Iqj)-%1+jQw}*&`<>pFgl- z&H66bU?BT?TS`K707%Qrdh1jcWQ$5qqTW!>Pnbc>NG^Wl&DC+Z>#rg4&6vuvx@p6Y znG|wTf!&`%kN&O%JIS*U3}@n&idwQjkz;U#c1<~i=9&n52@h+@M$Mo`*^bCm+E~SV zEIEG6-j1_vIxR1n{q}g$&3q6~X!8{gw~8afw+8;VZv`+F(wl6eiW+0fNnqSMWbZJxWfDCP3vC~y-?LriSiCWcGV%Sq6nGr)hK zg;8nIpHRRzc79@gIRDSp=7A_z=bQP}$@lh#@vU3rt|qWA3e{70vy2JeA{Sd%x?=`+lcWMmz; zi$`sT1ho(ScZ7j|DwjKsZ-n;SYf}YcPpr)s4XAc0_jHn1(`3(7Abkq-z|0Mdkhb%%oLT-W-^+kRmz z-^?_pFwOyKRN5Ni7$9wJ?Y-GrAgdVk+ZR%qIS*56?Ej|wyeK`u-_;cWn|C!i=ISN_ zbbki?QG4(6=X;^7y~qg!V6bvPg_gY5fc(F?0}s794b8%7TSNQzr+>jGTEQkhzzRua zSG_yk@Vif3LS;UE-h!|I|5tp})$VmonSBkNA zh?F%3IluF!^`#z3kKczMFC(fd2b6ns-`+i+IA$0roW;G#uw+tYuK29}ebkC1ABVG{F`9|;F~ zd)LpW59|p`H^Mf}0;@KOE))+od_T=}&~alAX`9e3Q;;!_NyZf4&)Q0Ste#-z}C^#7C%=8inAvJWrq72uI6& z;pKGkdjikI<$kq+OeOKzZRpc?A^Cdsx9zuq7eY(hwB9G_qQERGj^*;c_kB1VY(JTwT%P!b|BARr)(bPpvRLzi^7bT>#N-3>!YiE64Uxk-=D`8m%SX?J7sf8%nshX<047dGAo(TZ%Kqd-01inls#fDx9#sw z>pv#gRi}ubKKhI(|Ovg`KAE z;bLZ~H$I9#z(o@PjGq9S(j%SFX#|kW`Y%|Xd(mZbTj;tO@TMuRZufL`y*hq=ItJ<* zg~vvG24JvoHE)mRKi#^;1!$=T2M2-dycHn&%>@W>^*9DX(e6S*LVyVNP{x>sfx*@J zJwmldm-iW!F4ByTcYuioxz|C>YrF5O967g9aDC@tuJU8^qQgFeo4>1-E^E|boFhO) zA7EhvpSNqVy?g}yODq2uyyn^>$j$8rj9FRl{WAXDN1ar@;s9FF&(HoR9@}h>wquFM zEV_y)e{ibr#DZ}_)-Y^poh}D^3=W((-`+wm01EBW;eT*E>O7}1a|W2Isn_0~?7gvf z4C5}_!YqV()we7_tSzmS)+DNC3hVYP3E#I=K;8^sIxQaECNG%9~(C ze4XHy2X;lITBx9+&a8 zbF$2HBN8tew9>&44jt=^Xi4e(ANiE|W(BK}kiiLsmcv$E$6uI@w*1es22UxnENw2T zQ=Y$XoTqc#eqA|ht72PU2ss%vRfeSX8az!@^LN>%99yt35zFFDd}qi7PjH4}K^pmO zw^-m-b+ZpMRilBC&Lgw~1`CbW&rdWdoAuS z-Hx~&Eq4IMX%y|itzeDf2^e{9^H83b{ccLk>i*hrVaKDRYBZe|`+-30W5-u%1YN%^ zn99ouyWd6m`Wl2xvzN6-(ne>O5k*}(Yiv@;BAJ;CPH|X|&jm4SAjcZq=cXuM&vXVEfJH*P;~f!DTWyh>`@W` zZ#ngX@l-2$5^MDCk}lNTgY(s{_f07+hnsdKueVk&N?yy*C(2H8{%Ndn>x7QPrDdlL z)K)%rpEhQE}tjKw|#;8K=*WbCX&Mro{NB`}pzbI4h25 z2=-}WIv^*nSMPJ*8H5%=FZ;SppJlLiEZf(lhUaAH z344FLq_}S3Gur@ZB|sP#@O=hMAtyQne3!F-bq~t+@=%AiX$ef|ONAMDHMg55TE;DCSx(9^#)>)4t=`goH6iv7OXqtJPzkY5?k+;3+z|&WUQ6e|Kp5ity`Mwhf zGPL-bpi-ygo(3XW&lDGfh(i|@_+^-8H){HFMzre`1~^_Mz`-h(VCkSxi6T_H@171g z!k1+?(`!*{Qob8f%z%nE*5|<3@!dZ_5)ovXUbTDv5y~)$LRC+eEND(^%CjUqHRgqH zqR3Nps+G8k-?KWEPPN+w31ReHw5y)pzx1r4{~ewQruDFz?zK*~EczB*LHsy*Qa#Af zzQnkxiKPt4|BUc6h}lg_TiqMd!G!N4^QR99C01u;hnc9D6xxb^X(kq10=_ZHTGka@ z;U*S^ellx=W%=XMI+dXfA1Yo0%jhUJlS;@dtcpE}-_L3RV~C_U@GiQU&2Mj)Ibd@RA%;9qZGLi52fNrIQ7o8x)yt>^1m6MBo zl6~8jcl+UdBr7Ys#suX5m+|MHp`nRCL)+xjXgF2RYbD3pDR#5It6z?9dfO}$Y%+76 z##8idMbU|8+>(MLZ8f!5 zPLIsz11N9i&OxY$of|R%2Fh<8PH*45Tz?RHeq?ZO9F?vv&sWoT@sCgVisq{4D=LmnI99 zm+Tadl~4as+m7HR`dyd?i~Vc8;Py+BOa9_s1ufe5?{;RG{^aIj8S=bQ5kWz+0OK1^ z_Q*A*S4vXLPFQt{+h#bwBn0?-1P20M%ylv^Ug&pzc@f0^Ef@3-9M@n{DTAL;WI?}x zgat=enQOrwYEZlxCStc;%{fiVTN!ub47|eo`#&xKf_J0=D;69XD{@N7h)@~hr$~D7 z)SM%~ySkZ~>k{F_=cTv1!@^JN_w!len3$HyxVVvg+up0;fyV)C&_9Zxj~?%5kOJjx z=0F+l<1x<7=5$tdE>@m%!l)Ak!F{=(e;ol6iF{!^`>#_kn5zHyfn zsIz8F`?U}?RlaMBZ4`opv0Q@bq-tf*eGcDqt8?+e#ocUL+N%%j4sBihB1RdPsjt7> z{t>3ge6F(by{Xa5;HG`ur0;z)fOL;@n3J6$X`LV`8Bx^3x2mv&sYpaRoaLOSKBlch zAW{C;szLjAf@vE3L!I2Lp7+3JwfiAsi=yz8TgQ1ohTo;2RHMD91Oj1FZ|`L`X8l*V zsS?3ksDvS5Xq+z$h0v6}XGm67YN}GFM8qq{o7QsJL(U0JS{=brI_TF`Y+cYBe%F7! z&|@br49Kg```=lyN%*>{U+~eab*^%#JhLKRsJ6Dszdg~l!^cS433)c?QBCn?Cq;DJ z5LWcc(-6#Rk(&qlkvy*q+txMx3+KZA9(kZ;DvC-CM8{Q09p+nsVth#Ir+>I$ja0;TDZs zAQP1_#N#<(==bD{LRiuNoM;c(&RjTmoV5!-3H#kI3STp46t(HcVy1A`3XJ-!+8A}O zdBMtrEGP-aXlg`KoA}!uq>;nhAkzY)ZL$ea>{*&Ly_Dgq3?ea6_r0GS!?S56L`2L# z)@}zSy_z$cQ15OPw{;7~4Yz1yx`qv-dxo>bcY`@fW-e-R|Mz*E751X0b2xCn~gG$&w)PY zksX|TMfFh_XzNT^fx)Zv;gs53afW&wc@TtzU8$-dK@e!eqk8`ERn?g2h!kyhZcI@& z0}03JHw`UJl%4B0@1m-N5ONW5NoW87amvEP(n?h}xbrVIA-b3zPMOux{^yoMf#bk$ zaC&zUDp+vbBQ7!xGG{Mspw6FQyV43F^KW9!qtSrJ3RtL5Wo>X372SH?bbuz zl|KXEZDz-zH=#_FL`cuvSt#b*_XB-uN*aj7!Dh2t3>L1kbT99=t&vY^fG=cTmRc-V^b)QNWO>vvq)w50NVjSc|V zf!kjgxwpg4%d9z}?_nu!eI2jJJy4hTkyfBQ>*7-G zvs&j@UK0VaBJdaYQIG68iVZ<^zLdSVOy`4UPbI4c^ULTyMf0M@O#FE&{B-XLPA*2A zoAZ%N&$fJelenh5npXuA2~-4IxJElkFVxXiOS-((q>k_4F@8RXyjHXGWi+Gb`75kj zN$3?4koshQ5fQ;U|JoPj=paU7ag)x%aP%Fjnlv(MQT}n^^8` zo25@yz5^d!dcIO!#e%WpO(hpKV-Fl~U$2n2UF|OqTnpW9m};~dmQ7o3|MJ0E5a!@W zAHr zBkqxXJX1rh-twR2>)Apt?c-j006(0Kp$jaak48}!h83ZZUKXeslTVVpr~2V9)`xPG zWzE;Pg?qR%_YH!VRM`#wJ}1vfd_iM4s>Q;rHUxpbS8HTmz*4w4Zvh>I5KIhGLdS)n zqUa@!ik>)Q78pYVTx$JE2Cn*FkPkD;6vy|sKMN+^ixyIu3y5(}nMKG?7RJ-2QAROH z8z~Qeab+-<@d%8pbAtL3HGnrI< zdOBozn6U47o?gCPw@)HS_EH!pm9G5?j)!GBE6iwGoKXprA|WgD~;LD2Hm#Th1+Wjl9# zXfKSY%01TQ6YIS%FYLKV(4VMxKO=r$gP_Bry{u<8X+d&~+q|fc*j4`*Ph^+uUAlT| zg-l8^j_h>NaC0N0&6G4L#*397&ZCQI7$b?DyJeQgX%oq`mi*gWe-?spgy$?waD*PD zS2xB5mxYf5-}lZ{``pGX;`reBk0~j>{$e{ltVM85p*hofD*!|MGwOGA_3y`FP#1`b z)Jk9SGhoX75A$fFxyrk1d$-dHD~!5-^0QpIFc$wr~OofDzZq zArgvJCnXm}^{!~d0uw)8`7@+z$!p8gYY1wN2ty$oT8bZtmT{@z%}LTl4qR_+=+%C` zP`ck2`-pUY0BAsxVPemeL=u{s!4eYILE-^cNdZ2pVGUb5l4QL(|9wy4xi0@~wYZSUSU5i%%_gBtuoNQ0-{~;qWsirMtHu6y z4?ACiZ$jVdL&=A1zb7~Hn};h*w@k04Tb;)26i%JWW-Sq0HzLgAXi_K=1C*ve{PQ#5 z`izTF$6nb0`jeCK4i-(%QDVs__;;w5b1=bZAAQQyb#c{S+E7cE4cCL13UKtQc1aCz1A zoT2D<<}CbNmDB9fH`0xHPx?-tOZ$uLm*;B(K$x(N_VT^{cS;%P363}Ea<7)Q?0w@~W0nAn$l2QxRM}}<=&vE{7U<}>ayuxbxJV575Qu(HgcY#{ zoPpzZ?vwl~)T9#a8~tnvtHKmX_9h-x=1ZTWj1sWm|b0 zEd+pnyX4fM^m?tEw~VAO|7bHVQCV8<7WWf;#R20{nQ5UKRy06Sf8uLHp{yR&9Q=#v z8Arn-oI24i&3cp!@l>&RcCs)8_K#78FBJDY!YKG_ou6u3h`bCQCOg_!e+*X7dCU%P zcRU^GE$iyq9najhzPyQk{lS%gP_k&+j%EEKbo+RwuKHfs?(xg}l!xboHm`aUQxCca z-6c1JJy$y)i5*m`TyS_Nv5`YQ>(-ZX=`Qvv;zYJj`D}bzGW|&`BSS={3B-8##+ng` z))7~JtpxWZaKu7ygo1fQG-N-}1a@!f*^Pmo8 zo>@A$v-8pGd6z=yMi>BwotwOi_ujJ%lM6XHENKKvCzV%l7bR9SpY{jxNW3iws?lT` zeBz-#bm8;6GWS!5{q^%1)TwtpFI6s(j3(vE-lg33CLqMJYRJpYaWH)I;c1;-aO$y2l zeP_A!(kQ0UYCSXz=}eq#kzL)zqOYu|EvP+3WhFo5iP)ibe{~TafURjg45q$*35lHG zvVKp`=B$+*tzJIQa!sD@b%a8sV9R6LU938n__V{~Z9gi$ua(j5m8MM()QQ#&46UIYLw6pLM5 z>Ds@Qzy$V%eK)F_-JVBBeV=0dyrzdkt>-!=9d~f}2`5o4WGQ4DRt+8uoNB#0D_YUS4|+Y9;eh#LbpJ9OFEn z%RX19Ja)0@pOzfEOL-aXRk8RMwrJe;nXTc%hWUS}E%=n%@0>d&IeDKYh?L9fPpR@c3C`ppGu;QaDRx{4MLBB{9p8w`6cqJW zP1Uqhr%>K?tlBe-_FKh4NpZ zzY5&~qE(6m#7z>AzvLU8A->49zSMV2Lk|MY=B>~t?~1b=&^=z=vN;>(Y`}1wSYmy% zzq;hkklF-IIHrhOlwuLW+xLXqj(R)p`Q4G5a%$eotKyytfpK4}`-AC}BWRF;0V7p@ z$tIPi?Q(0h<7QKM+)5!bALNAt>5MaN{FqczR+<7P=liQAXDy#3hNZ zXaGq=UqB$#EOB<#{9JWhvhHT^q!Kw~=qdWmYKe-B3|L7S7w@o{(&)VVEycsuS@M*# zJe{{$-)hFu-Hpd~=F@}osKDpJjXzLlJ6Ai`yz6js3&l`*XJ=J&o4JHpd!Jj^)}1bj z*(uM9pWUz1RFg97It=FVpO;gPpUdCt{0if&!vrwY+>~#Y-Nl$WeyhCZS(mE9xA;xo zR~+0vPqZ20B5&uPB62(rJA6;o3z1sfgzL|BaGnlE+s!OLtuAZ}xt(tf`#nzk;Xg;# zr$+;~VBvXSH=6^nUK(vn5He9g*NYmmKK~8_@R*x(p1->baUS_5Gx=xc4{P}gssXkH z?vBB?2c+g!k#E;E`5{6v6-7=-ZdFXO$9i!A#MJ$FyaEu?0*yF&cM7o+aq92NG!H+z zwdsEAkPG97yFI4O5KsLbjpbQ2q>yMY_-OTuQB0#{3HMhmF{pxVN%K+#`?Wz(E45Zw z7Wv`;NfryPN2rfs>vX~5BJ9%*R*Z{Kc&U>dx3l;PBF}bWkJ%&;FW&W~{j$O9+ShCJ z&qnbM=bPwk+XU9YYkk}dt(W;W#Iv09SuID8dsC{4i|vn5;IHy8OvIGTMxv-t$Ky1Q zt{Fj;5>QUsQ~mJpv>+mAZ-60&XhEy_Pd#z;0zC&)3Q_H07pMHcb|zY4i{z*wou#ko z{Si?SvBE(=nJgpMB5Aj0X4ws{j(ERkW>n6bYd2BowwsSmr?2)qH`?BGVrBz{xQT^@ zxo9}rP3Ynhvnli5-oVe$$$CA0zT>Kk;(O`p;Ts&m1G*+(z`o)rzS{5H!2WJWqy0t; zV+qe)gX?^E^T>(*hrMq%%i-+(PQ!8gY7oUuj#jyG0xF0kQTMDsm~UF|=8n5VCg5qM zqwVrHWA#I|{q6A=SqK zgt(7-a(-&AyBgC>{x*_ahAS-sD4ut zs#rvQtQ>>KQ%Z$eepuq)Het#%k49ObU)|PRG94#amEl*ih}LuV4poKG9T&ZNs}E;D zLglp3AvO;Eh@*ne;OR1IE}$3zwoRakcwYP588_|^>D`7PS&9FO!*^PdzjUzD0~hJscU4Dl#;GuZfOHMdYGtN7afDMTwB>&S__*E+|*= zNUGuAI0Y2kQ#CUoQ9=+gZUlh{D%VlOx2$;TD^fNrvday0EF>u|R4g7zj$rknKxL4B zoY7=Z8b%NAGz%sS0RsBgGr|w3keGbxt-|kKM7g?1HWyWW=!l#>q2ag^8Z)yexnCGGQBBx`3lZrVPkG#1 z>t68__bdOvP2wwj0qu22Fb934x)H^+gGPs%vf=X^XdBxm5CgQI=o=8|JA98w0szy< zV1X7V^bEOhUrj&!%v_u$8G7$*&Alo(74%y8jkcI-M@4uXx}42e8Dj2lWl8q}9P)Az zu;}NnX_*-Ae1hv?`t|EEqlzEsezbXXvkD5nC#{fat;Wi|Q*ysv8PTKY*xh=53iA^i z-nG**6)8}avj9bVe*4Pk(y~Zi6Y;5mHV^l<8vc8ZN75W2f1Zl61k&|NG*F&rg4bFk zAeFaijPtt(eDNc_yp7*%9-o<6BZy249nWZ;@hkEQ4-$ol7l}A3RyJdUkUuvZQBB5I z`Yb367gWskP1fVydH5pOxXHsq@yDm`r)uA|B%oTiT?=V{^surnria64lzu#Kwg#dM zY6Ch4>_oF%hV~gw!9^=k`>XzkB_wmZ`QqrQkuY+}-y$9xe>;ri(b4<++9@SxwP$b4 zOJaEbuO4TU4AFhyK;_cSTqhy?Qb7CDjfs&$(XqJ~+2etPmfdD8+RE%I3D~>R-{C&$7b=iin1k z!A+t|$2ibe?o?#rfEJ)8&N+eR51Oe<{G}pn-?qxqdd>e*Jt-h~smfJZpb^#5|PcJ4d_ea@`c0+T)3FSk~&b;UH8~!`7fo zBeF|R6ONJ4RfF#od&-Fja!?pHH_oj&to~moeN2lrWe0TZ6;vNWBa~1;$h$4-rZLVX zr!|~GJw2!x2!xg!nun22CXFBT<9pPh#5zoP+SU~f)RIl1S3N1WE6RT;n_(5PAmpjR zst9WL{eeeQdi)fwx3rl%olzs$j)cJ?#AE`uO5&oB7H~sH3&^N;g_Tzt&{ zH@M`1y(Z2Rd7ZE~Sa4s;2#SsEpvPSPDrX^0@l<+0Jbn45`O**%bn=;(a z)$kNkp=3QnV(~l;@VUpHcoJNG`2v9wkkAUcm>d}hoel`1Q9MR3w=r09dlijFh;4pP z>pP%DfPw#lUcAU-l7-e!X>C|GU=Wv)w=zaiyO*A(D7{;VV^$@V z#RIA)Sjgbi{9ic?FT(NQfmI6k+Uuk|`LC$`1XQ#fXsw67W+PJ$nmuoYF29Qe3WQ^y z7xVmM9?oM*>|*<~c+Ra!dM5jLXHNUW+Nht&sQuG+`K#Yjn2Cq!=YA)B6ltkTb0Pve zFQ5By9{)W5*i`S>kxz^0lQ%awNEiHazSK0;5#bQE59r{%7OFd_{x=*GoJZupv}VHn zC7M+dc#)Z!Is;~{`$P?SK?#Aucr`pa66y=wIb*fom7(o&Lgl(?$l?pS0|RkJT2d|W zhqJ(rCx&Xc5XstlhQSbUAYOjOhhcKdM~Y*|+y*$Eo_whq*Ui}eb-B?jF9l!*`6fs| zrjA_&7p!!GCq@$3Foi7v>mH-!?3H{*)I2O~GIH_{uNQlV;ZWoQ0;{DFV-Z7+#qsc9 zzxEu5u^(Fua>hSb&L8rbp9?7B)xS!MW}xh(-wSgIv94lCHdamQq=`a5O%BSf9Uydh zUNACppKRnXE2h0ZUMwI5QY25(VttLOS}uwWo-b``>of_HCR;J0ncP6%)`|`hLsxUD z*G&YVQ-wn1qiNO<|djCL;L+^<2((BHK~wL`>p-@m7tW^r2cP!yZv4vllW`2Bo6TqsunMG0*+(0y4B)H*pN^?U1i#`qYir)823uiHx(HttyMg){s%IiM_|pV~L( z&?d$dQcuc#8G3fdVF|jMka|2eRUbh%8bCrKz4{Bx@epovZu0FdTN3-`@|1 z>Vm3Y0nGmgG8)U4SprVkk;f8)ySFt{8?)JM_X@n17o4L#7_8XXQzkb#h#zg{pmX?A zXQ4}|-F^sRZfFEwMZRKFebfqp8_-O0pvu{oaSJy8CEn98WgJxv#a6A1a7{3>G&Pdn zI#E`w-rvBjF4V>zaJGa;CjUv5yvsCb-eY+>Uj7c$?2hf<<0VX%-gM3%;rfY%NX1efj5WNhqXnOuFk_?Ny8#5Qsw%eKam;x zM(4T;{SV1%9_k|n5D8kgDPQj42BRAOqoNO0f|O9BNDl2&$K_VW)exCX)ihUIhWZW-tsPR_+3r4ReJ%U+nRLv1xGM zi^L>KyszOA1j;Z8iNG5$0E0=awuMo~woPdeD!rhRMu-0%>ecSamBuP8b+7$#-076M@)fB4;B%b}Z-cw7n54jnq$|$@ri^G;*-ybMmwO(bPjp z&BS7wJN23DT8<*BBU;!S$|prL~~>86FBx z?b~SeI88m2!7%J^YL?YAL9>M=L4mrv3-7D~kvERM@1lr)glxwXl<#2igf3;~;Ft*u)g**2YkBmSR+-b7V4 z+2@o!TM4|I!LNpB9#x$Wp7FPNof40>-2I&Tzr!dw)JKc)S{$kTE%BvDOt&q0Y+A-| zHtYG)!%rd~);@C=)DM&5(NBi5 z;J3xs!K_2^G-e#xjsymyLG5v9{$Me!aAouOx`3FRM zAx6SzrqM;}HVE&=zGboZ^Ca*bax4%jzXcuZn)*b_1&b!3gAvp$hIVi;K1&a(A5U4a z^Y)Vj5{nRs5CXv^XzvT?Smn=JXwS<2uSozmHG&?G?X2scNPv!L3%^{yx50Gn2X+o! z>sNsvb)2MIq-`QMS;1TkPCfCMnHtqaS$Nukw^Pjt=H<4k!TV3!@ za;WiV=L#3anRH%K`7c$rH&K6=`P50)`xX4bv&7wU0=25*AOaG#D=KJPEM8CRSJ<0W z*h0iCsdZv-#MHWUP*T+x$a+$;J7h%yBx zR<29s&T+y?49x+mto}nKe=U%O5sf~AGT&JNHdtGs%XPBMKR!v2HHA!hwFX5Xkl;c- z%`W)FChqOV$Mh!(gz# zKix)%&GG{d5!rrH?wjewT5|Yb3eksx1%w=ve9+sOL}9${G;sI}P-K271CiG|B%$Iy zffedgyvimRURVDUGr2fS)KHTIQ((1m^aru3%(%?S-hWZ_|LjK;5^j-M3{mfVQS^2# zqexb&ECga0?xchh0quebj-&d95u%hZNpzm`T5h8X3cAb{D}w5(IZ!Gu~cTqRLL7!+NG z0H#c!R*=O-<)j8-!}_5DKXZqB|6OVI|6aQn^zsJdwQE(vN*J#M!jyF__Eo%+#B>yH z?{Y;P1ul#V1zj{Ess{1`T`m}}K{7YKp?4Z5rL|U$(myZnbro?8W+{lusZb@HKDfqB z<3FGAKeeFOE#g)UmIPs!K&tN~BR#`#V~m+vA}b-{{8kwA;weD!{3ALJR-*X2S$O!h zZ;y8jJ24PIV$>ZWKSK;cU!rJ}p+0Va4T{#A821H9?iRs^dP!yFYW0iSw`3rVy&u7B z%uk;3ExQ{rCDLQ8R#RB&J3&OJ4mO`gPuc35b+k0(&`HM^(X~CG4g`NaD)u2XRBw%F zyASkixpe=(ce&m&;w_>UO1YbH9#CN%;*0s#d@ z1h-(ck;i~{8>)`t^3rGHYyRe}m5<+$*;`IltV9fm%fUe1X-qO#@+@mS8(Cl}13rm$ zd__z!H$;kr1MH7j%7w8RWrO~cx1>`8_7+le=sdCZG*f~{A*1F$KDM|n-9d7EJ4V0g z^t~z|JMx4^B_mW0PYp1@L?Dcl?gwj`h|^;HC6&CZC-KV2%4mpCh8?S;abqJ1rpfrtr9$V0JFvczQN7RYoQ7%VWby@AH%6bVjF1XCuvAH zz16~)=lb3+hrPmNe3J*nQgT-6Zu*Eo$t8E7)pdktlITAsGDV>#sQxrEn!kwGfBVYK zd1NM=)h^vr404pm+$!_tg@2cveJgc)Pqii^HMLfH@Mcbdn7qFzyZ0NaZ9XI%Y7!nE zUeTcRF@Z(`CK*ivV!HOSOjj?muE&NHPi=X;r0zp^nbIbNZb%mFX7LbJG>HE0hpYvc zG)xh%w`p9;B=Bs5wV)H6mrMBZ<_vd9*Fv%hwM^zXqkuh5n#q_vo8m z+?)E{#7tqvr9}^7wc*jUM=P_YTL$kXhS@e~FWm=6YwWrJ!H$?V^5|6Zs@318YD?jOJR<})S5&5n$|mviAe|AP57m5EI&86f-oXl*6? z*d1--=~+8&!8FV)$&gf7ynIY;B|uAf2Nt8Y#rxUWb|20YPA&QtSu}U(1Ao3!MDUpG zInyUuaXnoDJ0R&5uwIcpA!qex(0a8ELMBM8IBdhe4F6Q|JaDNY@qaMpkf9L5IJK4; zf>F`&!fSxdqjfIVD#hnc8){bNJ1s)Rv6q|+ehsA*GeZW8!g^BWBk4h;J>{r$LKYzK zIE>rKSXHK1MIJjtz`jsR5(-Cf0L#0$I0}!1AX-$6<0|*sn{u#GA>!jrj3p?1>OtW= zQmGexZ71o%3zl?EPHPj{xdw?4BCx_8H`waO9g=A2ep*p;s*xYV%jj3`jO~9gSXdS{ zagdU#k+jl8mU}xe(R9*Rqt}Dk;1S3H!IFJ`mDC=s4Ec_~;!JU0CJ9sei-9QFcM>Y; zJJC-fEblAql!Zr$swCS6UTWrwYIi)*5#y?42ZJyb#*hd({%aR zQvm$|K*`mWfR6A&()S57KG=gkFSkCoFA;Uj7-ZVB>E!;AD=ad9a#+m4pR zLx!@{N|^vq6yn9-oZ2Xc)H*;^)P2+pB{A~gk$*IEX~Ho(Ban?F(qOE?AkXhljsLr# zT>)U|+kQ>lEelo=B;R~$w7mjPo^qa15tv^qyNh=|7AO^C`oa?&@3P_0R_lOqnzpK~ zzQ!UIi#x!oV_nBo*ZYm6e`orTYn<)3DVZ!MsloxcXH~chVYrhJ=V+Z%6Fjc@MVgY- zx{K%Ff<|IC^I~Xz#V~Fx71N`F1zQKya(5#zHKIs>xVnc;ZFXv%q^&4LKs6m_))-HN z{SoiD?Zu0?b%eG%a{LvwHfGnl&5rAmHO-^L?D3yad)m=)WsD{{4`oUt&4df}!bYwK z%@T>j8|ah6wK3BE&~`Nvq5EUSp%1Zq7Z`nK3(tp(m1w>CRn^SEL7Ow{wDL0m$j@S{ z@5=Y0x=RC?6r;29oNEii*_Jncg!GY=r)@tM)3)+5T!8omQ46 zgzIkzC_DxJ9Ma0L3v=5?&DL*X9RsG1RWd(@K3Z|h%a^{A_*D6(vG5yxWLK&bBSxMS z6cHM&Zlw7lhkIV>hcEh}dDh&atJhjx{ds?<2L#Tl$cKNP&9Boqe4XrL3?NfG>ZR%1 zmW=i=O+}cO(f)##EH#-*8KT*yXtkWh(esv% zDbn>sdMd{INz+Q0zSp{tk0Td~yb6y~Wq(QajcrPMJ99s2i+H;GpLu^u+kxr+(_Wt+ z5J+(vp}64K_r~6P{k7te(fywip$3ohts8ecJ3GKqn|r~bJEi@iC{a_bW$_6Rq&bWV zUISt}Ld7ziKUatI%MV-J1}@_gmgz^cb=%YwxBX#47gQbEIk$ytfT}wKNbb5FG|<;T z`p-hf5BXda1shMdEOb^A8C~3~>9gnyI_00$4ydG@WRTfUF`?r%1nS{>Au~e=ClKb~ z6|@bs-hLb^M0QX(s+nrMGI;hvU*JYqQM|=w@63|+LJKgBS9qO_PnLeIijmJ(7YyLMqwI2z8!K%icwC+un*P=J zb3F$2&P{U4Ml&OU4M@(kV8So*XxF^}>~^MXXk^4-u;k5+3$=uz$`2)$3=k0>UctW> zoXDSwXH&DPX=&#@vPVWo`5Lv7Ip?vNJ!K}|$xb_0!39zaXKl7UUiw>hE!s^NN0cLS zl<%pv0Cmj4@VI?;c2=?gA!0WvY5%(QI!mEM*|Geu(H0P_?tVPU`F^l=)@CbOGTGGY z`sk91QaO41p2CL{VCxRV4!y^{L_Pq#3c?*+pQIDG>CDZ5BULwP$w@jjCz;LhkB{T3 z1N-L=Vpd`tg+ZmHrCueM;gQXy#uY3Al~BI8FA6d;nk>w>RIE=D1jT^2TkFF(!(amE{^j;@^F5==)lWi|3$gV4VEDEs z5Ap^RrV5FyrO_d>hM?=nFbhk={9*0olf8QT>JOe%?0iD}B5$~3tx9p!Jp#b|?|1?qq z$T4Wp08Sndcz&&R!}K4)$Yr^K&o4ra1?N#gx~AYsMd3#ziW?C?qWSOl0^c0PT^_~V z;qucV$Ed)0rM-{!`$UTxe|rTHVA+GH0e0a6^0w{;Hgjf-~N1Ht+o(=2jvu5~ab=Hd54!uR!) z#l^*AD)w-IN={Pisz1@m$VpPY>SI!=y5`*W+!=H%%?q!Vi=LdJ|&5JVx=<;t7;6 zB#HtU9<$jZO3h_O+3d}j)jn{UYO&)Yz18YY@;Po8|0w#`J<^E}UAuY3M?y{%b$37} zf$Yoeg7^6_;P$}*dN{#(KKXa*{yB==?N`Tk0OUvyG3I7K6;9>L+Ho3f-wIgaJl0U$ z*OZ{2^QOg)?j46SR=3tJ0?}a<51jzpoS1j%e);)nkfr0{pE#X5r{ce$Mz-OWI76|pLk(A#^nR4$bts;F}gB9gl!=0f7$b`S* zkqEGsM5Xw3E$c^AA_T$tx#bNXVhNpe6R3^Dc6!3cR(_Sj9Wgbo5MiPOh&%@2n!!y1iwA)wR85xl9~+%z>#m{G$;A9@%YvClfsbZ)XqMes)od#RwH!15-$9B$-P zJ9+3Daq~x2argQj;%nt;W@pDdh{sYTIG&!FojUvdlcy)2bviu3dDLg*%&FRdsfpjC zJn232aF`O{nnN=%(Iu9>z1H2e@bGYuIWWOv@B*Yf)IAiw;~f#6kAM)Qfm<{6A%m9> zj4 zt)r#3`>}Sxyq473aH5QDnF$B-yQ&v~T0%9SChLmLKU@y}zQn{8RR&pd)^2WYG7W-E zHgHyb2*so;4ljR%D$BeL&Zlp!hPFEIw8a+F!qc-4P>d_v&VDlj9ocU|`@T%kXD{8l zD&m?TeCHC-bpysuLTqfO{nW9ofYAsL7O4~4Q93)T1+r++KJ8Og;N6_|J)G9R=_1m$ zb~~6kt#WJI2dtP-{mtrbUw53oPSN+YEEsn`=|rn;yP9JGdh+_9<%bNv`zAlHt6B5s zrQ^q?Uql8Es>1)+Z;8UqfB*}y7r8X1xS#oVz5#oTj_{~`K)>#O`o%zii|g}6Wcx`7 zOZ~hp$bI>K>3TrX_Y7WMrR^5G_H}X5ZMp6Hci_#mpF}cNeSdzsUpFhX^gR7VG&(Zk zdr?5~=F!pg9qu|4*6gH!i~I-)e`E>~sl{-5ZGU-u2tFOO*IsTYb02$h@i72j;luDc;}x)G;ZK(_4%s z|GC&W!`*i|%bkhE0*q$rRl|S)WmY)aQ`HYw!!fdyU^DD>-d=faO0z9--t$|I@1>4{ z?;a=f`eB}_@oPRDs?B}L%F2U={jj@!g*ZR&nEiHz;lA*#km8dOjJH#Mt)i&eC#_r_ zmOfrBH8k&+SB{rWPSd42C}roxK6&yo@W+&JEUwVe z>qtbUZkA|OUfi_QQevyM>~1xjYcSt3v(aF`)Kz1GEU$&9R< zEO3C;TK>?bzEk2@-Z{XVX?>r{OYCJ|vwi+{n1eE5GYjuz{?yJ^(3#~(Mn;--Eqq>r zLNM$j)8juzJEG|WU4KHig%dQ?v|XKDmf~v=EFhB z?+rVTEwB4pF8hGCFJSJzI(UvWG_qU=C7e7v7#044+dv1QGXuZ zmiI;x=H%rZpNzfw531q(gXGT7>+?-9`$^~RnhDImu%f<&ytzbXA7-F{G*l$}tl!G9 zVOtb(dcAw&5Ap0#dxH(Z+|t+ApcC!^j=4B$+;A9N%iSxmF2@7;&#A}Unad~jd+oPt z9p}7PV#Pq-`SHi!#1|TZU0c&Nc9;Br`2Zgd+?Fl`Sobdhu(tq!DPrFBLi#kKo%}Wp z_#3u>4ec7b5%mOE(jAt8*8uZ-nLQjCXMi*T*>%d^B}(RI_!-O93Rqmul=OH5viNS&SSy1EcJMQbHnA*22N6x8e(nAfH4W z27O!l52XZEY^#K8$QkU(L0fuJSW(u@-j-@04HKufJe~brzV>7=r2j~7>h%(6<|RWi zf8J8>7v_K?rw@XK&w%JnQ|X)h zCAL`>u}XJ>H__g8Ffk1WVm42Hh9R1VtGwIhUR8oE<$h*Az@~!tGra=I-oaOSwEwYP)#2?hs{8h$t^y+&svWcaMKj1u>l)2W)6|*$#fe>R zrlVq}BHMe83-0w~lYG7p z#9|C25N-4Q`6L=oR@ourQWaO8ri4c0W=y`c4s*f|1Ps87`pq)Qo6AF)lZuZHQkXO9@Ec4zN9IEK%E<3n zk=F3t)iH46m1n^YA9Z*X?@jlK8DE&^?Z&#cr@Zb+_$HXfsf*$qg$wpJ>5e-zF#ae+b0oCM;BKxV3E89 zI1rm<4eUQw)y$pDQ1JzPLEqmfS3@ zf+KWaUr#ij)Yz5P;XyD#)pr9BUQ)BqQpx=HLO9?3HAAaj_^<70) zoIL3q;V)2@zMsyBV?tJXFe`soAk{>H@`Ds1HFb~5MqS-y+CgfO zCYxiL1;r%9VKZ)9b8azgFA9s#S<)zRh*62pbJocn7U&YFf+h6Ul}cjhb1Z0c$o2VAoJkyY7-C+Cb*Gdt?{pyXPqZ@(83V7-5vZW;}PF2?|W*?ao( zUF2-^YC8IZNPdAAX;vzx-dDv2M?*Z04x;Hc zX+FELf;y{}ygYrC|2#xI$$Kc%EvC9$2RG0cb5Ab7S3bhN>(+3A-sQiTTfK+x)N;HA z)`>@dWH-C4^iMQ<-=J?=56SLI3k!-&?V>g3>iy~_TvrchrEijS0p}fAHrQW8q&VL# z<~R@eqN7v!)J0m2(u|54HYLDXX=Cp7Jk`1;(-kx~WAu_OS{9sy8FaK1d>m0sBe^5XtKWbr`n$HG@tc3?3ZfB{^n8$!c0j#5ZbX^L>iUt7fC~G|EReM;M$EybUd37@Lu_gzUxtCAUGBXY3eIQ>Z zHnCd&{x!ec2T7mzFP=9PEP&m042&WPAee5_ek$mpefK{u;r9k!osP3VofeuwhM2(b zGu0=3z5j6md<=$)gh?I4$d{#+U@v|9I>=-$Gf-0Dsha=(8)+UL()R;8aBwl%ax89V z(2k-@hE}J*@o7_V367<))E~pZLGvj)y>+QhMAA=(dheC+V==@qAITrd+|LYpLfh`Ir-jN@^c+T5 z=kfOkLErdvQTIb{q;com_(6f$-}wyj7xx1Nkx^{)Bwr$^v2ni--m(iMzDN1H;z{JI z+Y!YPg*EO@!jEHx8&!?Jg%NQnM9GW2*ZS?W=*PLTYj9JKeV;DNA_xNc78pTP(s-(? zhmPo#c47G}3|o<=Rg7CrMN2#VVA#HMFW-inAXX`N%+X3;v{oQHNK|sWvbeX{7WPj4 zardNR!DoWdZ}UF#f2^x3r3l$Dao@|!>tv6@sLrygr@u`Snzno5V-Z>IJj zz#B)saULAlZ9EGPIEt@ozVY!}6;*edt+9I*OdLs}!`UWU>7M1@V91GepI!fhtnL(p zdQ8n7J`>ZJ2tc0bFJ^{Dg^PjE@(##qys}>Dj5&&>>MN9HMr7|47v~Ie!baU2{Qh>w z@%EM0L{Q5ai&9Z}fu`BdxYapFkI_Gg;h#8X1*!q!cDLb56lLM=?hjyYV0S|L-QsYf z4f-Bg)6puw%y#v*L9O)Weg3+afp`5+m*#w$o65`Ic`m#W{+#yQ&FZ3gp_?<=XYSpj zne$Si1oj6d{@)ig?UOBwB9Q8o2aUXaJImTqPr+CRT-@4mcse#%I1M(5QBkna!IC{1 zVDwGyDSrytdS!7)cvZ!C*1;)r)}zIP2dSUisRsi1loqCvGs)e?!x1(9SXd1BmH?#7 za~CuuYGnXV3$S(1_%GY}eSf#$^*4gTo-M7TAqcj{pLQi%VjFK^B&E1f^`I~F>4JPBnR9~(#XxH4` z4-~QVbD5DyBeyXfu<(BK4#cF(MY8Kf4BhwU3VpN8f4yAsgPZbzYOe8rgzo+3(knU_ z<;Q>+LC03V1{Q2@Lad7&_OFh z2jqVAn%4FDsnGBK{n}N%KSzrk}wW}OCG5l_WBlk zX-Bid-ekd;dMPj%1JbSOMZbQ5C;pl-VOknIFAo=ve@dX>h_KsPh@#@+;ojcLznvW0 zq6~wjZu3G_fdw|x_M(zhRBX84gVo<)GibyDBGagi2t%weERxHFO3u?7b+5sFySTR! z)9tlXeG;Zuk}nyRFuN!sd{Hu{wJ5wzupIW|tQVH;*Y=B6q+r_O`)j?|#DV6e zHOZwxIkF0U#9Gt*&>Ys!=0Jufkb}#v`OW6uF%+6;K~KTQ$4_hVF;(#o+>W@&HaG5< zbT+P4_oI7IO1fYLh0iJ>RpXCb3EDc(nkoy)UzShVMuZKdBl!#~s;iG`8g?K1E*k6T z82qrG0!vc;{V$X6f0VA@4L(HL<*$Q3X59xvCIYO74<9$@8V?P9I;RjD9_RtQ^>9bu+VnB z1qjyY;#W-@(MFf1@A4bAf6UB-6OGCL0pEG|^70b&%`U?OPQzz@I7B;1j7N1jdJMUo ze4CQuuqrLy0HkVf(CojipJ>_%V|1LXFaxEBq|%up=3YP+!EK1zE>g;MxjsX&Jbw2N z&__TNY6G8epc!yJiUH&iL7aSMW*#Qr&$TIZC@Dy=QZ=iaUyq?#bCz)K-cO>8^=&e?AGCE)Y=-N}=;~4}vm)mi z%n&pX+&{;v&YmNt@+|k{K1~)g2sE(+2_-~m9AGtvg9DtY5u4h!$=J~sfoyk?zw#}}M(o|1Jx5yty&qf@U;6L`L=F3(DH^=-nMSk<0azaU`!^ls8y^<5wxh2GHxJ# z+f!MN$FBb%KT%tQe}Sokc~HU!{gH}d_rZ%ItlP<2ztQqhzPnwqKAN+h6)g>Dv|q>4 z^9L~xZNU%}Xtz!t$N$7Au?m z9?p+Hi?cSV59jKhv7Am{8C^8IdgC*oIws?_%oZCo*BT|NSWAe@!T&fKJB%LptK9qH&CUhpok)_I_HaN?`Mt}on{kC*1&<3 zJ#O!-zcfRnpk1ycpS-?>$(svCYL4kOB;RaObo05{0RI~mU+x@Spf2GeKaX?PN zDD4*H*~hyMX=^^sD4+51@#N%W|I_dQI!N{S$0sL~Rx%e;=}ygODgNszq%6|D09?u} z?rdyYJ-2zB;kxUOZjd=2{&?LEq7Dw3RC!~gFL?feJ+6BLbKL;wKq#VKXQ5mKwqEn& zLO?DF*)x+lF$3Yx1KjzltYM?8F{3BHA2;4y?Y5ju+hO7uCZ+&Ps&VZM2JjA91VKpJ z_jC_anPGscV*V>)7=pWjV_p8}dL!UqQ^k#qjR64aHt0h7*((`>)Eh+gnm@LRZ=TW~1~QV`(Z#GKE(=W-r3 zqs9)8Tq&Ocs5B3anzQzXfftN((3x^uxz-a_2fp zD4VqPuZ*99g$1KnL%-y_c&}w$>iU#0&Xk(9q*PaxEqWBL=q*4;jE!&hG7D7)OWY7g zjex*IQL(Vgru|}Kd>X123sq33jE*3Qz}=e%N@g&kOSI6}fwk;@dLL2Nat+w>JVyG` z{-$ad{r%yIh)m0*W9>(&{m)JtAa!s31b_0je$dR|Jr}}js~*!qXi&Y=m$V!0WH2L+j3<}XinAEgy$`W?!8uM>EtQxo zVqTpHOWY?fDzK>*fed+uN3{8n22~FS_Ro5TckgKj_%2-Sc*yK`QY~CGEnFmkb}=}6 z0ekoX&cB&Gq&AZ=oA3~0ai+T<8q<|#27he;V$?Gri2%d8R?W*! zO@*aiOmFNv0x<_>Gfv*4>Hp~^V2lMo?>HBaWBGJ{1sq09zYTre`~9+aX8uIf^1Am` z^FijqSte%vnt5s%w4E^-+bjrU$SXMyP={b#3O2vD_?wxn3`*|$jtlixZb{rRv9MSL z7x)<_QZ_G;!zu zF=xO5XTX}3e^@FDz|~>;XLfdW`%ECu8*Ve+ORjBHRJaD74C0Tn|L=8(31YcEys4av zW(8=m-g#NOtiAWoVcJ8^uM5mroBuv8BUp=05~I znY5|c>wo3vpNSkit8ld-gn2u*w-X2&-+{zv#0;xs(R$7IPIp-=IXhAx5%jl(w^FGQ zlD>h+5&&yEIL|Fr#oM7(Ok=>n3m0`|3^X6%Wks9ycPL1)J}H_ncZWyVnqt+4Fmz1T zWLTi|IG$`i+L1b5I0qbRc9zdg3-0$=Jq#QWZaxJKbz=ZAojL_zg!It(Z-?vd5!ROO zx(_U3_t^q-wC2kMn;msD)EfBWar*V*W*5}1OD$J#t!&npL%yG8%A7AgATZ#q>#ZQF9|FLHc4zUU z*s5_`1VtQZFn$t=v$V|Zfn%HJ{@mYsLY21UOc#p9suE8uDC)rRE+s-#R8*=;5RW3$ z6`J!~qCI4~&}Mq`7%wEqbr3EoDOr*Tm#CQq+Ks09_RGtZmec%eC8Lah)3z3m;=0r2 z=#pXy_pM0`(Y=64cXh9<<&5QmjOn$EAH%G3dEND-JQ=$_oXn>{$1{J(g#+xfwGYvAP|VD&Q3y2 zg$I3UjM;Fzm`L6-_lM|bg$s8UmLt5RF)5nC{6X@%?SJ0i%Nr8lya8kK@prVA7|lq- zYQ_KF-S}-Hnm0nxx>SBnf=i@m5E=1XqN-Ge_BZRFZzj*E*JM`zPEMUT=61|~AfMB6 z$N8i^4J2fQY@Q3s)JWgxw+n&+_Z1K@(9=mPKtR=Al#~)kqBiS4^m7UidQAwE;48HQ zi^@;BU2r=DT?u(sM_Fv5cE3&XBm9$xX^ojM$)xcLwJ+35qPM0kUk{4)KlQX?8a^?g z;y0t;{`97O6?7Mvll`DkZUI`CSVF<@E+aFMP#PVUJKs@KZCkD3GFBfIRc)- zO#mMo;r52Q*~KPJj;??k3mQulBI$dB zb2CHc%M!Tz4&J+n6X3C1!r!uSb9Mg8VD1OWblSTr`p)h_V!=E%q^oh+Cc{(+)Pm$I zDVw$YG}msrX9^ZYZj1X-ky?BwZni~H1UUsn6edJRJR%(1^&UzoK?4Dh4s_RNx}T}2 zGx3c?MRRoXoJ$7aj+xcYo!|tV6tZ|P?y`8z*}Xvz<$7dGyV$$Ax!KsD5B77L1_o@0 zS{56d3Uy!ky-<d(Yp`FHPU5$GjMX!0f%>U$@1= zg$Mr=qt*A3cOTcg#m01+zZ@KjM$zO3yY;Ip-Ner0CG^}ko_2%|-=12cPk3w9tpUmT z)hcsdK6=~SI&PZ_+bmJ}IVG*Jf$|}O<9I1^oK*FJoqZa+*=m#7ZbtNA3#AmK9NiXP zU)CW$BP~5<9Zea&tPo<2_?N1S4~-#!s+%t_=7=gO2aT{|(cE%R_<;QBft&X-r$+m{ zRME1u2Ok;4cG|-=avD!Z!9KmDd8++&1KsJ9POJOi*QYxO-NN)WgnR8R2%-^8K)dLa zSQQX|mS-DP5@P+Gyd3fuc6S$=(4YssNsZv0u!*}ZKlVo!PQNV?kxTv@o2^2Q8baF$ zt0vc*Te6Mdt0pB`!++RFpuF8+>@f!!YZg!$J*r@+ww&o$6d&XG0<1Ib-KMWhG))M| zD|K_&DmWgf(KZTH$y%qWGLH3HhPmAjgxlr2jj>oSW(;vB(QFqNONH0JRiIu~X)dD> zRG~y1cN2#YP*@!%Kjkh_<@{l5tMIZnURD-*%T?`{bnb2)YA2lK?82b=u&bCi{jDAe z9&J_&ze;@4C}-GJTl?1R^u~tV%n@X_4lUhXicimVUz)BYCj8|++(`yfeu;OnDp6-K zpACI(MvMix!sTBj4GH5FF&(93i&si~i-EbBMr-`8K8%ee`Noj{GM-Ms+|rB^g$Edyp^N(JNAtb-kVaixNavnQn)N zJ7@Y$(}P2^0X)Vd@gu6Ypa|gy+IiUFPHpnHAc_Q#r=f|DlzvC@+QsUsDx`HKbyR}q zyqHy7n_HvdY?1Tj^R9$Xs%PDT-CPj2@ji--G5^R&0W8^2vuZvzHd86e+}IKBD#GQH z)lM_{+xbOhb`!#oKql-%8Ilt9nfDP9THvYFEs+#MDks7d^dQfbZhzIVPb*NhL%5}} z=lzKpi}rEH3e*O3Z3)hSDuDL-IHi3{@^MMYryUJpq;!?8G$(2RO{_> z1l@Wm_y3fQZj_Q;D3&DANC=y%=iE;|?vk)d)Tkn+*sNFj)MgxLZMyvF&@GuBm0n*K zNf1{m7+DiJ!ur}=q5)VHcAHcKg7j!&1hme6`TSm&JP8{vfv5;Tf(3=Ly^Bibc-zk0 zud9)DzCw0g_Z_Ulx}trzc}jQ+(GLdzhV5*yZnT7_KPKY$M;51Ac&q2%3eKUtwAQhF zrES&-V^f&nIBbQ#`RD)$RKD(B#c_W0rq#%l);B*}TeB>*&i8slil4s8cm*s&^Qxww zSGu47`BLh>JN<&BuQiBTk>*aN0t&~nY;&3%`dx!2rf)YH67zzTdG%OX2@r)jUMl6mrL zUVv`A&{@ya{oN@8X|bx{lpMyY4s?vd18pK4ZYX=q3pf&a^p7QkVPE2dZky-b{^>t@ z>Fg?TC=OVnh#VcZ&svz@N@fa#ja7*7lw92T^`)m$kc2Z1B&udVsQS_L7w?m-EM-|r zwx~$aKjN);gb?M=T3WyjWSY0{QTl^?sD2J}Z`tXHelnO zN*;n@4eWP;tJ|nn^}Fu%tHeVt#O0L!!QjNcbG9|ULbFX)*M$MVIOJ^J$YJ1}+{y=L znUj;7O{1D`QRJDnUpTSmEW#l7&k_3DlKakzoQ2(P};%wE=JJ*oQmhH%aMUi{5; zA{9FvUN+C%YB}dY3NXV~i6?;MP_k1Dk55`A>TyG1qk48tXw@Qwzor2X!Pd{w^@whe zB>kAdKiRn+W;r)`1vt9?Uf+3Hq!53iU7Tp!#|^%Qcab%u;RphotpYF1326ir73+Sj1{HK z)7OaR>HD2DZf)N%rZ4UC&e5H%@9nE_F5kC<`Kk`~_6qTYTuMceEKOus*ai*-qmKW5 zKHeHjThSEAN|bVg6k->q7NUzWtd}ShY`Bj&y3PJ7=>}Sk1Va$^6j2U{5?; z$M}dp^i#(Ek+mKE9^Zy}lj{IQkDkF_ue1W2w799eFJHjv9UAxhnHp*1S|6p}r;3Xl z!(xjPz`t|f#rWVoQ^#O5=ZF9lY#8)a>Xy(X8J1V2{LHn;dww8gMmi{=K(zc@HAzc$ zNFzW_k)Qs|rHyBJyYzijRE|L882pvnwx1cIW;{nXX7RmS;(%U4EfK90&R+zSFA8ME z)}`ny97Yi15-lW{UV`JWMbP!0wI7HYOp2&R-fL96#j8tS<F_{b;^JYkYF1S;(B)D&L=dQW?S>p;e<{^c zrNDk*k-#3>s@yN9`kuVEk~a#R0y=y6gxlZCBr+T64So?A4)1o(=k(O8Uja9VKFRI_ z7Kkx3PD7pDv{XsIjXxf9-kVe(nei0zUm8vr7#QH6Y@-LSCO*!&EZxGFCs=i!+#Yl+ zD-8=1p=Xh@f!sng-tTUDdlL3~eYC2h=saF1 zA~}@)SrGYk9c3E1BJQpjRjn-@6EmHt4KHHvDOI7^SO54^@V@iB;@0+p!f&5;P%AxMpbR`AK1aVY6aGraNim6ddmPC=umn0QKTvNS|;#OF$hr(O- z&iLW!<8Dv>9Y^OVQ#QQODXN(LsbE8>!OA{fpg;Ww7B@YwD^o@I_8YbsXe}VvRjN61 z;n0jpb-V2htBxO%RDi28BFuaw2Ir#+Z^K?JFO?%;WMtIQ?~+zwm#|6u0q27dEJs62 zHmBjR2%&8a+XR{Gjs+uW|Bc1@tE-yWx}Dc7K0fGOpRFFwovZ1q3wLC)MV&xxV8r*P zrLhIi(>P84%avD#Ze!;g-Wk8`R)00);ERfZNn<-CvJyHoIV%PFMeSY}eaAW{r3AjK z;T7tqkIZwn!9fC_sOPQo5@8^~j_a;Zt-RNcV9Kuyiq@v$4m4a?}w z8zsy9mzE<-&OaOL`o(ucgf!Z6pp#kRQy z55Uk}TLb;eM+6okFI89d(-uojN69+~_3bd}p~d%y65c3i@v zv2xXJ%JoIx+Bq%d^ea&CA?nLeD3sW^E=YVv+zXALW?GWTy!CW9`OZZGV1khNJexH3 z5CmANhv}e16%i0wUln{dje3CjC586zsX`Dd6K-xs2M@wp9iEj=*Dc=u zmQx(p*D}UtG46Jy@=FT^`S->#6cma?gUrERYlBE_{Ht8i01isjcBiJv+F~kTZhD%q zDX{H5|<&kT&)58d7*^jasl2nYe5uHp5?SJ243$QBq)g6-3 zXtA0R;}dr8({(X@%=Ri^vZ*^96oDD0#M*f`Nr$%*1k&-9(?C8PX2pPIw0y69$`ju} z0n$UDW})~xlH~CyZT}?%0LVDNPsbVuLckS-71Z>qtJ=UJf#b@*g^MUtFQ1yA%Cn@K zj)WIpA}o?Mb(=F%2hwlM7lf}B&-hJFqUC2Ip~K0=w(wN^qo>nVKF9_Clfwm2$WcDm)Zk8~^qZ2)LrA2VJ{H&s?v{`fJ@a@2_4*0nBMtxm{S4(z+UTpksKm60oP=ja8g6Z_`g6^`Z;xd+^wpv&IS=X>Nt!yq?b^rPr#-* za&uT1;9Xwf_Kzl|f1v+FY`o7Tz|XE})WL7%UoK4lzRKHQUteAJO*FYXI_~UqW}nX8 z97%!)aiZ}YZ$eo0fkV>x#!~o=bYEqoPUvEyoF(JWvM~Algp=7|0nxUa!}eFC*vM*0 z9UT!E)%LM{+G7+EN=i+qp;zQ;bu7<1fBR&|59LtiM6TuJYWHK5FTA6`=CcIyP+YVq zPVd(bPHYn@U(u_w|8vf$4yW|hU5QIyVkM2JUWK3s*dE#Vhx7OtJx`UsiE1Vj3Zmg6Z z+1xED1{Y5J7jR4&#{z*sM^x|SKx>4Q+z%;BY~6V}N~PRxq)7u_*5h3P7!DTF@-Z zC3HF9Rpf?^@**o6pYzX^Yj?DP;MDV_D5~*()E};`v3wi2d0iAFrsp$*1JjqvX|Pk6 zr`$?cHMY5`Xsc}VCn^wE*(AAS@hR?P!s(Fkhfu9npQNZRb?jxDi8p7zkO3~uV-AVt z%M6+FQ;_K46O!*&AKI5$Ww)mom=!d#q|U&QMM6mE#mV_*p+>_}d2y4VC9*6ZaJ7={k3QClOxDh4=Pqm)QxZyVEUzstEmEfw&J`;@g^L6tFy zU1jT~_%4%{@fvwxYGRa)vYF&Mg^B0Vr4_!GiShlIiox4VtUnxOjfG!4YwstBP*xb9 z{Nk2Ypf%lg88bn1=gV+ID^t!{4LxcJx~zeqzDMx2LX>77?!}VmD(zW9630Loq$ewj zMRdCo7ZqlqKjEfNnt3=l(J!^bBZo=)m0aRn9mScr^J9kL>nSHV2{e59iChVm@9|6f znl+BcogKnZNGqCzXjdo)|QD#GS9jofph2xSAR#y~CQyrcuBVt<)8OLeeDca8@i zq}`LS$2L-2ANZ+o@r`F&I+%YAT_GDHr%7lfX+BuU`-l3RqCdjh*^U=Ga!yo#n!k@HF3~Z_^(aT4f zKjXGGuVNFRWKbN3J8gF&9pwButY~TR#c?$U8y4la)?#s#Y9%Nspa05a<6hasYrB@rJUcO8Z9D7N!nL5=@ z{*wV~$cGbG*Tz^-Nkk|2`7`$viz1>NVxrdL38QTH2Htpf!m2-R4vFh29VKN=J0tQb zRC1PxJJxjG=@vRV%N-t#C&vK?L1ZW1O}ZtwWK~Q*GI>>wZS*7glPw5?Gu>;A$bcYq zyLO=&=&NJ<&F=1rDoiL{1Nq^S++9^_e1tyYvW>58t%Oy?#DyMMQ*Ki_C*ldU)j`PPb7ql_qqI>E)DdbCpX$g?N z2_xT`eooCSX(HPa(N42ei4R@uD`p_YW5T8+N+1YSFc6Y4p_TN^-HI{&Yb_Zj7eSoU zCF=NQ5)xa>4p~$#QEGsgsn0uN#i~U$|r-yvl3GBLh$XXM=po8rMesPea` zRhIej#s22SAJRPW~{DH}Lu%JgOgTAxG^jeG=oN!q;<&lGIZ9)%X$MnTg%=k)A0D_?e1 z&%7rf$4?9-hC;aDB?Yz-0$NcN#BwXxwjvYbI=M-=?kQu3z(;sX7{4bHL7C)C`Ea<> zFHvN^#$FC!{qpi(*ZA7OfvWxmd9W)fq|u{`4&fm3?Q!M@*N6Pmyl=fNbnJj1c0-j= zaNewm};kN!veyQcwnPIe6SW@$p3 z&|X;+Zda4J;X&^sv^!aY`*mJe>1&C>m@G>+(+FtSQbwRoX<_;VZll5~$>L31 zlr&sN=f1w}uTqB$4f_(w7U!weSG)679xmuJf*;nXkhU*|)s$voS5LKcSvUR^y~wgl zFn<~hWhUVUaf`;wX*(mO6LTS}t8pR2RZBq2^b=^r-<)Pf%s939nV2l0{ddvlSJ#8t z3*MUuOu_wI`lJG526}70)C(oKa2EH`_iqnpc7}fi3?rxjo!Kg(Y^y69dkb9BbEbz~ z<@YQs8uBbpqy_MIJ3_O`m%nu>Qb%sH2K6wd*{fL(-lAA)U6#*iK~>cQWTSgK#hBgs%6=N6BY`L}YO7w#2)v0~{;P9jL$KB8I`|+LCk~p%v^UA^ z@OSqCC}~7i;M^)Qz{t|Nfp`3VD(<0OIlSdrXiQ#7Oyg| zPvzLVJ1Otv`m_0mE*XAD+gjW+7Qrr06SElW*sLcPzn(Pgo_2DIie9*FzfI@)GBvLL zj+VG>tc;K?ZyPXzah*p0Sj0r ztE#BLQswI(w9xM&nD;@DK!|(UD1fCK$}65-wP?xN8aN5##U&*r)lJ>XtUlS1`970c z#E_DYFa&$GUY9oMwPJn6@9T-4OE&Mt%Lj9)=!SPRJD2P4WNaSSYTKQMAW+R*J7A~W zXQvLI!ee*-s!Oc70to4Wx#KV2yX(ML9H=kQqHUsU@oEpf<~irzjlzHwiRJ1am{6Pl z_YEflLe(jD7HsjtNG?@=_dEYkIZx&#P;)|`RbmLEEQI&0|HRTikKHiF@zy4%(oiP9 zjibcB!U~KB1+Z!S5D zGm)khuxZ1oAi!ok$@OU*o(q+n;G_Ny)RJfJ1L@?r2_}LIat4-CGba^BirG3nDko|7 z2!sS8R*qXuD=LBA1^`7fVLKcyN=N-#wN~X{dOovIK&;K2d9OxPf15OXV|Y7Af*10y z6eQLP1QDU3t*pHB;cdor^eL`Eil06`Lz2MXgIBt0cy|m2(4N**DAg<{TC5?$pRBqi z7%77~3{tC=Y1r0DM#X?@7<^yM}PMHso&W7)j+PQI$9Syn|xIuqK_8aJAdfHBM;- zPjf1HleA%mpvVz17p5Qymp6NtoUa%ceG0Y#{^h)SJ-hx62$-|kBP)u_N_fSlAyC#p zU5M>FKIiBAL}DB^4Bv$*hSw~2sj^QyXxQ8iC@Ip6Aw97nF7uyoyCP!pNVJ@VBLx!AixiKnnp8! zk$P6==)n;xtNIkO#2R>4>H5<))NHM|I7ToQ9a2fm#;!8L^3wHiPPee3+78*JOQymz z+PJ*TL;B_uaqm*mi$W$f?P|P`w|=g6CN{6Ms0))dkHo~_ztjt@&vHR`MK}FG;(Jsj z@5J~x#25_cZ?3Os!QNoBsr2UNCgzdWSUZe*)z}{E2fHTR(BAL0ieJVWS7gIA_m)F@Lt6*EP>mka&F7y#I^50~gb4j^9f@SH z;!N;;>J&EKWevUGZlN>g_Jr;TMEjs5)Aw|-IMiDG`r1))r;m_V=LHjAHnUmHQ-*|RKX81ONrQ^Udn>BR9l;{qg@Ei`qCRE!te%jHNn$*2awZiPpBSj7FP z?mF{pc-XktE+77I4md{kBygg)XC}4_YVddIq!fcDr1Yjg2X#@6uia$y$fJ*Pg z$T>)`%k^7Y!JMNcN<-R@w=$8pueaXvlenhdM2(7lvc**!Yaej@lqVQgnDGH>uo42U zK5gh?>y}@`jF#$GZT;l0IkB;^CtI(FGxc9j&*6UWRCVs(dyfoozfr^wa&~kq5Mw&R zGw`b2vjCY{MQQQQ>?IIgDIexoyG<*$wCFT1@~~^n!lZ}A<~>)y&QC$&7`_k?ZtDQu{A0I`mzOz!>Jp)GU%d)wsqw2z)= zvAabDwmXD3ddg}^P%)1T>Mao#MHI5+3SfP)$tc-a`eO8o2A@M=f2&Qf%8o(To0^s9 z3wg)C#52W=d$KPNp0g(hb%cI5H7A|X^})h*{_FSbOHN71uuA_uhcu4RAz|dV&>uqT zgwGzi++pZ>{|Tb6Fsz(Ov*1Um1i?~bH|{!Zz705PyJ+xoHQJZfOh1oj-wM%!(o;-)cbK2AZc^ME1lNL~(xqoQ{Lh+l|)9cNAK7 zLgwA0_I_?||Li_gwJ0zoTZ)(9E;ewwa8>R44ih|BI3>;`Z<=A^j3Vf$_nXq zae|RVPBwWU%M4xPR;Yp@{Yb-3Y+`j*B{t|wH|zVoSm8r-&s&3JbFgx;1!Mzdl{;)d z7o_&Cmo+q>6y2Pp0zk$A{!NM)vO3`zsmz_;r!BQ-R5zOjy2+Y1^8x3XWH&w8!P?Oc z$(6kKWbF{FYndne37o|U|Kz+bV4hrTLv32UeNWb50L-~b!Wulbb;dn+Ym_L8cv9G> z`nRAE&)u0!Q&(3*oBYHmT1Myzp5N}15ZQQ^`g2=Sy@}(EjdgYv@`3f$nq$NoP-*2xgdMkyR5G!WYYbq|pnmJQ?%jBd~kPc752;yxDN) z&YkOJ{_A$101PYy?1!>k?}a1%b@h{h<7g+iUG%A%C1bz@wH2eC2ATas$Gs4l(-5HC zxM{_g{)9S1`z@e>D=6??->e0k1*gXSF0ev~aXV*=fmUJs*a71Kvi@J zy42=b7wSrP>3$%H*S6&yzTpTL;~LGUvOL#&||Mi7&2rRlv9jBq^i9GqbboP^EuA9(!f6cwO#;mv7DM1GM8BLZL|U zU~Csn#=ahzP)KLu=JyNE1GikWbm!wU^k282Wo~q~EFgHJ9is7NfuHeJzKtycaQR!O zb@pAhrJxT!v3`le)xr{_#Ktx@M-UNG+!BDjKvtG zn%~R*3@VNp>A!L_Y&n>DV_`qi+fY?C7aLns_(3{V&(K_7;-BBuyifDh*hKD_ep){g znRU_!7JSkj+~79STS;?{=$9?uYZUXyvrr#cm#wXxIhq(6<7sPj6%?OYg3ONGC zrEkuV+51Oeqwn9)SDDKWnb$@}_<=2F=`D3S;m5B>^dV$XPqY{N(S?%gH4-wC60k8pJ#oOTe3 zwb}`27v{j`m|bJ1w%s{jvMU2k@0`Gfck=NEsM1=g}p zL#52bV`ra!lCBd z=R{sTEZF;3x>~qK!hZLYHAcHFFkg)pm)fc;SPzQ*wx(#th~fis5DHx}+Y9rWk%W8T zlbX^rxAA+YCf>FgU9Rz}%H;v2f$mYVO#EG@)HkGcTi^aq3*av>uQyl!M`^L)4SKie zbBU3ot8MJq8F0;2F7nD@I32xw8bE5e}gAn3|fRq@>JBJi8A} zK1#q>0k8;%>$%bYbM%$bEE-0*G}WQKw!r(B8}c0h)O<@H78bFH{Y5|HJ^^*#D>2Jz zX&@b2UPd5pEe)r?TcWvSZABk=r2XgVS^o3g$2gQuI`}b`^?q8kt{cUrTF@?7l>c?J z+E{n+AMl{o4UBT}!#tSw4oDVsf-;m__*i^=cF;s8W8Clc_o6CnlQb zi6R!Gd72(CAQN&$?Kh~F{ckx<*;!kRPe2Ol+~?4ff@5))A;6S~;7bkPtdnuH*r`kR z!!FsryvE8Efw~M9)U@DYeK(I1yp2bOz;c^`4#%YWuPiyHac&g<2f^U%$A`bS@$sAv z^~l618n%Ay4u^iWmTmf>1A#}-nL2yCel@6=m!Op=XDg#X63g{2q}r;an%D@Hz5<)Z zB^Iu>`J2=IAd6U`5Lg*VoLh(PZC>NE}nHE5yVE6-kg1#={Uqu>^Z-=GGUGW7hMr`NtH!hm)&s6=036fCKa9 z-)ZfP)81H=v^))jWy|qgUj1KP!mtj8Sh2=x;qutG^pY}43hRA zgjs37wj{@P-GCxQ=2g{{WBk)>JkC1Z#tCan&(=lpv%?Ap@9tHc8a>0g^?{)1WGS@c2Lxj2IhLmNo;3YB)xI z80WWLJUloC_OUS3=rVCs2t#6APncvxFKYE(&1C$h0yGwqEQcZSrV-eQ!~G26RpG}s z^xlp%b~Bn8c%?PRXv_NVX)bg~a~oxOcx)t#E~cLGeK!pPBH{%HGKXhxrb)~j=StnG zS!XBg8^3;XuESmDGz^J~vcFs2X2C?8D`gt@3KkQ9e5%ps)3@JzAMF$BGDJ7INq>R9 z*!32atA9lhaS`%nrNw1f@Py#vx8b6Zt#8(p9&yLhwR9KXF?DQ+R+08%7&1@d6Hb5t z*1}2L>j64GD9ca$(>9N-e>^56j)s|!uzw8bG3zIUv~_lNj-R3w_r|we_pWTbON`3i z|2RF>X+ama{ltA4W3mi_76XttrOwAo5? z;B4;x(#H2q8!!B0%$jFol~heJMV{N%(arbhn@&sgKDYnzvzzPG2l~QoR2PSDEs463 z;iE=xp9)2+P%C1<1K`HW->UDBl91#|tjb#tA(w}xGgb>0JR&u!`0n=7I)#?@oWD1&Z8qHynTW8D5 zMQTz^?X&TZm0vKdH&v{i(>gRC7#pQknp?hpeHZn$^Y>BS#1qB1CogpzlzE0S#WSL# zTq8l(#N3G~4fY28TNJLcqL zpjZI5|Kx|59t^&L&!|j-No1*(F2c?T*0B$1K@vCLxQpaCWc_HD^L=?afi3Ha&|U~i zp!{RI4TSW(>iSawVE2a+zCD~SZz6T= z%*H|=n#*qXiOa8|BAA-BIV?eeKO^CUf#Q^Toy1r@!FV}5;VqI2lAW+?NZo;yPf+)j z5ugz(I@%|z2Uv`COh_!LS&oUhNDl~_sEowKK`2tWcF8fDM=HeSSzfP*LS6tIyGt|m z?$MhWeAdbSA#d9hYF%>EnH{Zs4F!H1SBO*Mgr^ucui>yQsZP8Nj}1zP{Li$`m|kOb zbZN z%-LPu#0+JQQ=w$vna3t`=LfvwEM$D!1Jl?aiv?ZFKcqhH%R!C-t`9E8FgLTDKuj8d!7x@6=?a?Nw*$y39Aa>p6Ll_H-%12Z*~ zA$vX-`iowdtmx8Il$^_`#|M9vO18A*WQor3@bKGp1{j_X%-hu5Qr+mUm*}rAT5r7f zt^jtnuD;%5xig$~=M`WhdwPP-!SVXEM_jC_X~ITu&FE@VTm0;IJOG1;g0VpMn-aEu zK<9s=U(3e95z3nI#;-240uS^v&pzDuT%lb&1w%MDSJ$IIfW~-wdI}8Qoaa0D|N9w` z>GC=6CBraQZ|27oohVx>#;oiV;xjt=9X^wp+2RtpMG}CWd?#5Fsm0UVZ79EpAbSMI z$AlejmYT-A^UWIcqj?n+*@nYCxTdy9?xJxQ*FpdqICJr<=$D-_2dOHR4xI1Y?kC?b z3|H#Y6o+&5$V?epS|6QPV_sp<*yo2dh1NO@ULJ#OiZH}Z__F{7dxKE3Lc@9D?*8D4 z^v`7yKjYJ7>B{LTP;gW&+Ek77=@gW6n1^|%9hcs~$z1ofv3(@<8+iHQY5*@rUfA6V z?FzZA1+9VY5W%9X9<2A5Dc%haiF`%dFv{K^E8UXMsb@I2FJK^L9!~m2OGBZHoq?pH z)}~Is#BENOHaQn}yzRsKokJGuk`la&FKRe!wZ#%YzZhi}&F#ph?A0CGjots@e zO7TeQFM)MalifW%8o4k@)R48 zZ!szZx-Wgl)|C^04ZQMpA69e}6!(|Kl9$L}LHwIswWg_IjT|-CjR=#k1iM)ii=Nu1 zNn?o@LTW-Pl|UIW=)9H=eOiSWGuj%r!5g^~Cap`|gNg0ttMN3Qe zR=L1sulc0qGO^6cQ&h}>ePHm9m!jot$nt!Ll-Be14NFVn#d=5n@~_M*KOTs`UVoo; zGtW=&o45G}lAV-qtz?#ic?KU=yLD0nBHNT9V$`O_!qO5K69V7?zieM#%-(X`!cGCg z=Rc&Ib5$SEXcN(i2mqsOQ+ZL*?Pv=${fmKExXS4Q`=IC8ovY*UJNzB5f(DI>_|=&B zRXeetQ}(bMGrKp{a4Ys9NRJ%2wOaE78YAk>`QZj&n>ZbQ7wmvOjO6SfX8Nmg^KY1+ zBc6$gJYGaDPce0JE6S^xy<=bFQ|5;%7qqvwW@1e~@l}K81{XbK`j_4J(P5&auDAp) z*~gw*{kGPrw!qzSKe_#x(W{IV7-m%%_FhF6laAvCNyG!Oiti}3giI+(-fS6Kp`%b5 z@t@p?B6Oha#+|+9J-0b?U4b>}zoY`#A7anTi}ZOugu6Pt)eb8OVK)?;_Yo)mc<|Hv zZB(=LRWS)xfGlW_ro$)Bq*676{gLob=OQ|ZTIXVg$7d2N?Rnex~iSKpB z{_tEAT5uS7vh1W#9q!3uYp9##Y(?mx8<3sQcL1y}URvDpq=}bOP;=ed*_}$JVwaA2 z@t0C49Mjd4t9JS(IPn0l`@+YmQ7{ZkGAtppee$+)GKx1ofwSec}$q~o!`kU^c3vu!x_ShHZ=jz@aDR3Yn*pl1sZy-u3K8R_L`aq6B`>_ z&3m4iN#?p=*IX>ua&u-Mi(OVY`W&&AguHL)_!DxV`{ZaKFHwNLQ8z(-8w=P}Xr!zt zGrGZ5dwSa0`9h6czNE!>?Sq5v2mWp#SchqX;W`UH7gr#rjM~g=!WzAu>f*9sK}n5b zS1EH=%At(3w9NGN1Q~l%pHCBKS0`7Y+BZL&*Y2t?ePXevhL^j9xF&KcMXSse9Syh> zWr+E0kA%_*9d>cN#m<++So17RxZ4q+Q{jF;Zs50K?#uU}*15gxPg}Y&K;M42KC)(@ z^wMF~@qn~*T3s0-IvAAv!`Q-tUv)8}#^mQ-b3220pOIp8Boamyu<{YciT4n{JPcc6 zxve7i@p%NP#x^$|m(JeC1Ka!ekzAt(86zK`>)=Z8L}LW%6j_#3RSZ81*2RR9VcaF+ z$_iYGBEWAZETCl1P>-Vcf>jaNZgVvZhWAg&Dz08oVFXYzTKrWG4SvzuLF}BZ!}$gh z5UiIb(hq6F-Ai|$L~POxl3~1BUBXKGb>DlK-6{r^PfEaYPoP?RO2~Exf+t==RpAhe3N&EjqdYaTS`-Vtq!K9 ziYOj9!~8*NnKVtLc6pIUqA5-o&i6o{Q~ zSM=%Hld_6=RP;T5RXw6P!7GpWLXBe3U3FQb1P8Wma#M$vs(J)(bKW~tPFHk_WsBVW zD^peV>f4t_h9-N*yJ*cBQj(IIQWmaZKvz#n(gK`GjE!n;GpVF{W#M5Lsq$_6jRc8e zW#DXlt`4!Pn*%@8R0}Qe71fYr%ewfOdKHaWDJrWx?(^6)OJ(hkbEr#O6O8%o>E~=+ z@!HMKG$-i~zKdlN$AD&rn~C#Q(i36#9r?`$^LpA;)1kMA=R2~LSU=V9V&lMFlx!m`FRT3ZMFF`%x;oF}l zN;7w;Kl239v@SjR7?%aI$R0p+EXmf7gyM4~UHUoC!u6R;sz+0KW64Y?FEy=9pd+LS zC9Vq&J&mYG-FkC2H4!=Z3Xj6^+FgE`tj(M*$lc}BT0b)URL*Y;SmL!xE0VM%JA~Ewv#Iwsb+^HG?k`HY@S*@=sQ>-%`SO!eyf* zeHs@^StzkBYwbbgQKS2wh}-WUm-8ulE=5MeQ8^A!O-&^gy8WsP>--mG8C`nb)} zi~jkFl`OyYSe5IEP>#$?qPDxFb}2N(f$g?yI#MthW$b%_oH?WKR3*5}@gcdj*Z;dL zJz}5IlLQ*=DUi#XNmy6_sfCb*h?nl27$&uMSD)jk!muFNj8c$$0tN~qUhMo_!brAu zZUo+6_yY`hAg<(_;m3PgB`+)XlTzwaZ5`cCCTh4r(fe-m0CSXLCt-&gL&a*N*r@@+nU+U(Nwk13pTuQ-}bapo>C5F0t<)AXopr5Tbf+l zii+s|QQ4(*lBsT@#@LvtGux+!Dk9(9pRE8^l zE5=~-Fv!73gY+;@bg%;^MQ22{lMsktv!nA=d)~Mgq>U%3q9BdeBIZS4)MyF({c~2A zwc(5wCpuL3KOql#sh_&3D&{h}dQu43A-h<~D=0ZPX0B8pPpuXukW1(nCw44oc^hm@ zO#FGk%`K}@x9PX;>tEruG+wVf%i7LaY)in0x&7p0`cXJJF85s%18 zQ1AY&>*C|{G#G-Ka~p&|QX}J#OUXa_6)VS_Ph&Q-QT5oMJSsS{?QCp~Vs%(}t;x~? zo?m4!Wa#6zIM~>@bI?OfUo^EPe7t@7(*I1myYdylrjCupx1QWwvOAS^u@BQG+et2! z;$y#kVIsw(2O*nCQ2-q5Rv+7BwEwj8iVlX$ z=4QE`j||`Gee`Wu0GUW}@R(^i$TBZD?lcMtyYk2JrbW8t#Lc~XK=f*T-Nu#qyFPPG z>7*(sU~4Ni|BA}<*GIgeg@}C&mQu9+i=XO5bzg!!^MHYX^x;R*Ek9dA=6pOZF0{?p zu+zSw%&;GUSe%eIW^)AKm(w=8em(f7ofnsm)Mh0hOuLXxUuBW@3YbPAs`w_N0a?G?%P)f}yq(;G- zGPSg4X4g9k)PzHg&ERT*`1O9c?8=e&x!I1}MW*-eS#Q>5FH>NKb>eS9JRRHrV8;Q= zeaB6huiM~}eWJOpZW5z>agA=$J(&vN4|6}EgZ#`EZJVjGoSa<<`ICq&!)SYz%Qb1` zcQn#-eW`M@ZMf&9ooUWEOwptg5ST)}jKXo2Fu{Zn1c<3Y&@6b+80))|n<+*7wE7@Z z+sJ*P?CQLXUexRN>;qwg0*z|n(qcwNM!;6Sb&;%k7R5x$hkp^9OixeA6y~Q_i3p2B zQq$5NprfOsr?!qnhJoNKA}5Sc&pOp(OFJoPjVLQ+hL2Zl@=eJfOXW-hA%95{YIRQ= zY)#FEiI6Vg-6jp}o2CAjeW@#b>t4-*{Ngt?@l|$DAbYcoJ$hTkxNuS?Unc}LhTtp-Nu*!w-BVCIv?UhPB4f@@-oYSWf_Gp77xgv?9^61n z!8Z9ARl^TfA6JtC#Z;XTZVOdm>GI>AW{(|2Z6ic z9+`fuM`@HD&^6StJa0x)dF9ntG z4mo&0CUrouJA@sZuP|JsQ<&IOg-;npHFeYy!g+q&23MI}GfO)Jsfh$5tJ60tK`t%- zTJE-Y*{K`vPIYl1x)cOmtqEu*zF%P3oMNF~z&VWD(>O2saMo;ZJDv?B&ieLqI0;p6`?X-1uR}P_4E5HeCY)#S(XZIee`Fris?` zEtT6X*=0ybhZb3U{DMQ_Sa29STl!+7_pq)1dX3;{>$P_4VVv;GbMC#&9FIWCF`3N|#=rrKbIN$CjUL%ON@eB;efmU!0M zStv#zH@2q&ihuGCgLCwl`^XsFYYN{8D45Wn`md3mn4D4EAld*x#ZF~f3(%q zs<3;du6(zgJuo1}AVEk#C|d4Dzn>A`DCk(84tqNVT&}g5Mxw z&svp6$5IcI)=Wr-QhJkDXm)wG{cDuNpbH3+qiyU!RNaows&xnt5jWFXz%<*R}3% zO&Pc=Q7c8ja(ljnF(K~2MZ@tnglr=z0t`|}-(q}ZJ!o6JTv)uE=y~ZiC7Db9h&c#u z3h-NQ-gb5bHKa-?t6wr1nC2+xy&5So-C}NAr{N}? zk+ZN+X%>$?RhI9jRp!aCrPt3=Bj5~%>=cso*<`R`EC|!_Stv{jI&bz=ffciPx1^Wu zQ5fz%WI(N&_MO*r_Or@$)!==Z>y+K}Fo8YqI>@^y;Xikav7)#XY~k3O6M2S(gyA`C zG{@WS2?z^xLK^Azqd_kezUdfcH##j4jg}}kAq$N3;cq!XKWlikHlH|~?sfUm3sj6~ zD>C!7Ph)#!_#DQCaW16`4*IsXQRlT8!pA#{;tj5=savIgAY&S2wVS1Ys{ZGhU!|U| zopL0;cNAlAHYqp!tTQLJ$l>d(is=7o0knY`;LWztU55V3?t#eJr<$6HtgIw~ZPsy| z+z=ujaU2ce{U-aY3KXL}CbZnFN7>v))PfEZLiK`W_+Mu|%cH<2WE!>Q(Jt zfD09_V#9|er$D8?6xU>?gsEa6Y|Kdi;{2$hM7~Os@H(8X$htYp@}JZ9)5A8Xds8dq zyxhs^=r7+m#?}4mXtr}ev1CTa&=An<^)<;snJ8RqFYLZ+05$RR6O)g#s1o$wwbRrb zv~aQU%3%^7C??Dh@?GwIxQMQDnd;y5*#L7z%V_#WPVvX42Rz(;I{FxitN<c_J-mex{$H z_!4*1LGoNUUR|JT^pDlZvF_Yu!j74b@f{Zh(k`Yx;4}EGdCG3FrCDr}U_h$_$j}%y z5;t_7TtxX_iMy>1M-LBVpU_D>>h>-Jxww!Ro0Vpc{z|a7gnHYOd&aUoFDlZ}-F&5c z7f=oy>gMeDfXL3cBr(wMtUEm#6i}6H(iHl@T^s^~an-XBZ5OeSt2Z4Duo=(E@Nzdt z@lwi=NO=H-NH~P9Z~dkp6B8qxL?=LltdQ~{cCaxNPf>5|?)dPv`^}aAmDx?D*6^b+ zjz6bkkF_Z&B8ujy=*O(p9eH}!k-c&$8NzOkiw#Pwyx!aOCHE1eMQnp#M=2&Zd-NUtl5i{dvGOB> zeE0GZtEOGovbje0vao@nA+f`s(wdrtWq)repkNHSP(5KOc8~%pfVo=&DcJp^Pg+jE zL~}`H5kw^{05mVL$lo?b?XmvlHNV|8Iza1u`0PWZ-|&A2aa2o!$tqL{CSBB~Ez9>U zA(AGKp05846Ec1qpof7EXM(^@!|&oo!j~_aMQNWGs6t{TU;%H#AXv|=1y%zfMy!Kh zydE%JwZtj~zY@Tt3&5EHHhm~y(}cMUdF=)Jc7%89y}>YzWlE-f_XA@8)4b)|Jpy9+ zR>INy-vdwGNfMqFal)R|tIxN_UIsYvxa{!GctA+-#O`jjGe(fg-;p5yXQ3`})yQ4U zK-Vh%ZN_L-AeYnVWe6^8+q0%Q$&|U{mgeH1aGN)U7FVM|X7B%M}ch6%z zZ4rb`4rgVdTU^b}b6&bvo%i?4 z#EuVRAC}}l0>ONn+r9%Nf$LtGvC0bC1|Y61^}=ZG3-7_7Q(gkL_oky80Yb?@`N0m5(T=@I`9Tcx8S!o)*orBSy4>c%gz z&0x4_7S_p5u-q0bmlqS097K>B{dZJJO1yD`l3_2ld97*Z<6hC`!oJCg`X)XpLAsCX zTWq3^Em6T>Cb&XjW|5I5A#vQ2et?|zQuN|Vy2>^`S-|w1MI7=&E6>QM%Du~sMXfx% zpUFso2n6eZmHhHaS+t(+N2^Cj#4>Bz=R#Ii)Hte-3F0(K8hawfC7T?+KFSYL0xgdbVZ*V3b!`UH#_wkEL6KgPVOw z%9w~60eTK8FC+tkrT!HgP2au8EUz`GrIIe>dl4wy{kT9&kM({3bF{ZqNLag&G>cB% z>RgT96ENE5$B~9AkUTx~?S>jRzrNRU;noB?75l}OD=?6A1Y-Vx9y;&s>x;d`>JK%1 z7MBRHTJyL(-It8B1bgS>IY)X6F_6p~h(k;lS5V98g5kjWAeatFw4;v@4V|VdUn` z!9*Lqm<~JiUR_hhWwj}G%F)zlp+o)97CP7ZR0&VRdz{7Vy3U7>|fzKHIp^o zr4O=_L3)dJ9m~n?T&t~@oqdT6Y8a$Bm}T9JYN$M5?~hCAQHltQ3=m?eGRs_J2oC9T z0ePWHNt0veo68{LE1EUxE9;Z3K9NC4x+N?2PNiJjz^v42Q6x0jr$A1P+$liy#aC-B z?xKcC2XkHZ5QIFbWl+v(v!Wh`6I7Wb1O{Qxx&d7ckYYbZ>|g}^HE_-AP6iI;tN5(T z-^RToxzB+5T-$E0cIWc!z`55R%(6i+*KHznTCMMQTJ%plzT1eeF7d_v5AOFxy$&mS z=q|cmUUqT#?Y~zMJIhnwYyr+8U|(oH0r9+tAQJKpNVI!-bG{GID*l%%5GUXqx?YdI zUI%e>bZhC8=eIO`V1N=@cJk19%=+~iFIp)3ArEtLG^dA$dfvM-%izC_fdF%l@VYCc)o_|MjH$nInv%?Zbu zQO_r3{4_^ihPJuY-K75`<1 zZZIm;Kg^5Vxo%dg5aXE&f3~=2Jx#LijfbPAAV|c*1tGXk&^EchfBT6S2b%d*FT+QS zPbqd?=ydqCI@)Xgux105!)m;FiaHD58LGK)Ni3`V!sFx07UwJIRgcs%G(7b+BnHHq zV2o^U7fby~mzIc{t%}~3m*7!VnnEF;KUJcEVE;|A{9ssjlA0gV1?c{Ne)q;_eh-{; zRI&Apv&?q|QS=!p=+{dfAtm~CAEKhHl_LIvI1ex&#mC2A$XU?S7xZ^rV$V5>AJoJA?HKg$!t6!rS9c*TBi7xUu7*0fP?T zdn8Tb(w#^(+`^EX?As}=;6Kf4C;(iR|#3>cUBAtD#s zRo=(j;omL5Y17*RjvgWi;CVA3EQiuD0_vJ~?138r@al1a-Dh|KsDXfhc5J=C`Bt+A zrofNhuu(*i*bXG2TFLKkma2u_g@wp{;g6??5f*>V zM#Z~`>CtB7s21sdFE<#TN5T~V3&4~OY!NQ%@RP!L#OKXU3P3UZ9ys(vy+L08u_3iADI1O#;MW`S? z3&R~L`8W!z*f2R(d-#N8p#qqg2WF3^l7=usND>VzjDwy`raUgw__=O*mmq)%+Wb4+ z;}@iz6@b)YP!cg0snhVbGzAPiRjI#|GGfxc^3Eo;LwdH-P%fUHwO<|t!-+N*1xcS( z^Fo|_no>T?|NUTJ;cD@33m7Q90Rgkue$K!g1D@(3%e56K(fP|Y9_O1KIT`+djIP!s zjaekuER{M-a2qs@oXCr~d^B4Em9s-~>~2*GXCG?E3z+;Z2(co;2%K4Yyz6(gpc{9u zwuJ0Kv_iZ^3>0X?PN2aXap$HivwTBgkKcXziQ z{RU$-GVu6v78Djv9W*p>qc1)_XmZ(DzO#m(aJ~^=u$t(#oc2;BF0Z*ZDZh}BEr^f- zZmiOkNo|VA_vh5Ua6DDNrUn&e9&60D zM0XjvF(ijj$f?cJvO$5tn6;iD1wHvwp}8;lnwqm6Uy)_$$km3PZg600Er&Bf#-?~n zpU|z$=2rPa_)wwnai+&Ixb^%&#%;=3EePKLvdZP<<$QE!fpP{*#4=Ef3ws@|gQNqe z>&r8cFWg=*XmJ2y(>;Nxf}T?Bd_DIz|E(2738str>M_@V+QMaR=vK-Dv}ZG|{x?AA z-wgimu>zG)SoI|Ma6DE{2aP}Ya|M#q7dGC=ibwr-)7vDFq9Try`230oPtBOKUGd{J z>4}*nZ#7;xsYC>?-1t_&V+7tuPFxZOOgaHP1@R3OZSr>^QJMq-!kMX`G2@9qFw{1% z?%d|nbW+PfL!pfy81jI5Q@6)MJelaGv~)pSrekUIAC9(oa{D{5L_~;|%CU5h<&h&k zVIm|tUXaJCGYx#Ilx8@6)VMHj)IsVxz0Bj&MDl}traa8pU&L-!%S-e;Lau8d=m0Ia zmqE6=<~cd7{oQAC*c&#bZ)%)()CdhIQ>A#bpDXEc9y6Jl9vp#kGaq;YYs9F74!U`UCL=eK%~iuLM($32;1=i?7wo-UvM&Lb@q z%7(N_LrnDV?B$X!oS%^rUBeNQY|r0+LB*t0v6)#IXZ>k#8M6A5uAz{hvXADoksmPx z>|P0Q+6W7YC2j5F+6<`3bWBRD*=tM8)r5!vjXFgOT)1jw;iP+k)qcu_aX`L1?|*Xz zT9pF6!fHY@a399U1L^(QZ^l)Z?db~O$BF{;X#dp|OW+@N0{*GzWMU+@PdTsm8QVFd;4Lc>Bsi0inF6A;HX5YPV6~MRHfH)B>jFBz`0=zEu(*l8 z{?!%;o)XZ31EB7?_5XyAUA;cZqMc&lEo2dgUfy1#<5vo`RNvHE+bti6khiL})&-}8 zKqS?M3EmYJI4s;W|X-IHw8W#_XtoN&t8$&=#slLk9vbS#<=c!jFwaGt|Vxv}0|MNP(gT?Ln zhVKA)-nc*%*h>ZPg6P@y@O_wSw^cOk4s>Ha3ttssx!c?GO#qvNHlY!TG zu!}H1Z}cO*nnK90F}84XN6)IWGY%hSHzQt~BM92-ISNAr65JM+8AkqzxFu;~*8I%> zveBI`GXpE2lI>$sl0(z}Ia@#DXGUUi7rWO@g=A#GX1sch6Nnt(ZQ0w|-rk?w+&nJP zw}=)!_)WI>R5rX!YH_>1h$Tk~1;cQbdqETUPFW<(35JRsAEL@lc&)jF_1qXyIcci| zj`Wm4)s&w1(m+a$@|+;Q`{!cb&F(yNU7M17cd&ObwKch_>{mmLF5XROHJDwXU-a^~ z90SsQCZEug2T+zCMM*=$8-E}ef8yxb|1etQH8_S}i`_s)MJMW2%@m<@lMn*CecZtj zQZC@;;&KKhDeGXz?f#|*1gLKvorCjsy}Nh4JKBB#WQH-J^L}Pai{WICk9QZo)?{X6 zi27fPaPNWI8!UZ^MGsXCc49#w4X7Ic+QR?VO?4}41L%@xrq2Jn2bmi9&8W7r3&HDsfM;bqrh)eOODxo__Otz+k3NE785Bh-EFKruL&I zl~69-oJsguR=IM|J2tCp!MwTa5xlH=d*csJ6h#uGK7D#x6bN-yY>;ccS`j>Ma^?iF zd+maI>GWt3uOcJsV5S^N{0ObP;ieZ6C+JY4&|%KG%NFxY^F~o_G*A0Za(a>0$D5t9 ztIglPQ3c!YV8B$rJrGWe57F7%FRFio>?vUT7lV|qWaIAcH0b%udh|!ulvvS6rbLxh zm3%^O`Cof#(A5du0O~Q2pK^2SgO{`d_EtS2Knj|oybP7Z$W`CBlbb6Vj}W;K`I;pv zd;{pQv8UbaA{|1L7Om!ErKv`>JR9l=Jb}whRzxF>T_TO!P z2KolK#*!FPb02fE{Mb7Ja?sQtOy=j$h{j#42pM$tN=~>A=B*<0t&0*ATv^0Wj}1^r z2@>WAo2gPmRKg$mq`Ykr68pK9{G>l^4A0e%B^Bs~)55JB&CNggUeEVs8uFL2JG%h8@7_`{n zpec=8QMtIdXlgbCgIz0lc>&e<@3RVt(h;lTLoOygVNh@aSxi~$^*K|%FX+i{F}IVm zU0pJeWT4Gn%kf}Xw?>u1QB?W# zz0BmY2+T*Fw6lvQ(#fnSB!s~!p$VZL0hRYcn90qj{iKjWB&_=cAxAtoIYU9h$dD(V zGiO^rHEdt6tRhIIoIs8gAhK3tx7bD9KQb>4W&RSDjUWlU_U~v; zDD~L?l`CljU@t&$#CbE^dT!f#gX_QEAcexH01-YK84Lgli2dTZEe0l{xTM4v^!gsh z%l~Rqo|xB7*Z77)d_eS|LsIEKt;gaQq^b~RK)^Fd=x8q;pV9SkF zRB(NnP|c40qyPEy8pn|C-k8V%doYY;%?mr)s|x9Rcl@E_j>EI9Jj-mmNQMxm*_ek9 z(k+o8UOrw;Mr9mNUfO-&zhABZRwc%Gn$vWu|TKPZ_7GZp{I85S?f`a z*)vPWmW}+Zi{a4z%K65d0GGsrKmWP}_Z04Gk0oDM&|h%vU4h$8y=-cQ)V9QB7bH}r zr=`&{)h+Y3+;%4kwrHIGhZ1qh*Y>JXK zv#?++<@>M18pSFzS5UZ;HQ^R#~XhU4hA5O&A@TKSJ{n1(}!Ey>Rq*7r4NYZz{ z9yrdlg*sCzL62yURiKsV8?xvq>98x2c5f;z>-Q#E1pSkSnHycok9GI<3h3+K@{{0X z|B_Zq(qrX|F`xN-LCb-Ie?q>S?wx7lx3%oSHo&kt2IK18;u7nMLdSf>S#Kjvj_nfE zCVyaSubWUI=NLAA6>o4r$r;2i%GFZow66jt2A$e9BA^|&)ih}|l$IZm>U8rlQ`FRC zz*eGtv4B(d@iPfd)@yNLO4l>fq!ooJxBBD~Tx^LjuXkAXbw|X~aEp>cwtnS;_*9<$ z%I2vZ|2^;P#f7QutBIQpZE`r|bGOdkgKxo+Vc1Zanaozsm$r&_8R&!cTw?#@5yx9E zq5ny*ivQI?R+;_WaTXvmSn+_6%J@k01uggML)~1BDdu(@7+B8w|COfywubih-*Wf6 z0QUEoNiQ4IZ%KKe?FGNu18`Z4BC94D<)u)1j}@4=rh0LR1y!lz`Dh4_5d>ks)1|So zHNQ?Id*)9t=2%qC*wiea8R-}#r=%3}(h`hXyO%Yurmm=nSGf#lk{10rHubH1Co~Yb zh8mn#%oIE8>?gX`eqJ)+Hj*)0o6n|K%QoA;Ryz8do0r!WM5JT2-DcVnP>B8e0S@E8 zAJ2{ck>^11~BB zqk{VWf)lo2f<=SRz>{AbkAMPC>Z8(#!RFiZOZ@55gewm*L3&vnNZz`09tOPM1}vqh zBAB81)r{(SsuIC7p@5)Pv`{%owAPtZtACR`^>C=XLgOU~Ks?0dB~2YPeI9$k`rw%q z4B1Jjl_!$NxeHeRU%&Q?ofZ`daAKYmE!2NprcKvwvc=L2TJlCZ$vox0oCs#hs~&AV z*w5uHb65xC9`UQiYyLg|n+wph zV6seXxG4{3WVAY6&z~Jg6={7fDXIOoa}4SxqL$x7y(!iRHdcR7Ry_&v6Q#)MUxx8|uC`W|NsWlP5Hg9CP1$$poyJr-_zO#M$Q z*QdXcaXg11b3}%7k^HelfX}6#w7{eEkTQazVp1qpH2~r(qxnHa zQE|x5IkVvNXY%&KnUxE`Lp|Lt1d3*$^rA5X=1pGo{ozWx>w(M8)7tLN-@O`ZZaZkl zH|U*W@{F^PgDMSAzVn*@ljrT}cLF%Hfzrce_^;isI0sJp%HjrQ7K|h)L_NXW%)pnJ zoGD~17&bk#Qy|I4riaPDGPaxLf37KQB3c!Yy=k5Wy+;x&k>L5Z1unVgZ?ULdwrY}D zo^pKoP_XxeI8)kIxCrv_VGc1GH<~fFoITptQXeb6=T9oZ6aQh!GU; zK12W0#AHc&ZKU}AJrXQ@T#jO;ssGagxS{WCfk3Z?eITgicaL97@wr z9&{v~Xv(!z8O#!N2DWcKYg)4aQVgh+-q!fYlVoK$qv8%$&yTID8?9hu*4hFO@+r|a_BF^ zgJNUzEg>@{HS8?ua@B=@RswSA6aG&a%q0=oIdj)%dD1mK)aU^5 zuO?%Z_x9IHLRI!IAJ8pMrNVa4W;NJ{i^5)<&yToC-Zz72l-=}LGm|kFu^2~`XDth* zkD1tdrzY=wcmoZ-*B*x_Fjzwf(PB~)1Z{Ce5mpI0swezUv z6*X9CYDTwSd#9Y0-SCSa*SfbHi0*l+L?)uXId4IsTc6oJK7aDs$>}e!o3RtkDxZsA z|G%EjJD$ov?*GSDgp(Nw2kA)Gk-g&Bv%^8MLPR0EY$3-eJC2=kaD*f~qpalEB#yl~ z_KaivuI~GL|E_<}d3c=1b-6z8^?E;F6I{W2RXKiJ-2(rEFdG+Wxjam*5VWUz z2BI9%5%_(hK+rgN4>uNkJ`=n+l+vaDUf;_9+*?2@=dm!o{%=krQP@~xO-6b7b5Wr@ z*VT7s2yJW=6{Kx-oKpoDB8)wEaK-x!7wM(m3O*QQ_-o(P;7z>!5EK%v%B_zVme}le z=(S;L^Xyj&4hXneXD%!83ySVwBK?Rk7Qas9NIZ;*= zb+E-a%Qjyjp#+hFXYP^h#8@FmnMk}32Jkat*2Ud9tyAbO{59bPU3M_(Y_WV|eEWSRQ@z)T^Ok3K zVcBE#po`x$Jz+YP*s5nJ_r}eOow(*RV2k#`Gw1xrzLeX;Pah&vqXaQmY13?>*Hr@d zJ2z{;9d>UMr^kY~U@d`%vk1Hpyc#R$sED2L=7eRSizW1`%!C5GewD3Y1bGQAF z&ofvOw86{qI_lwFw;F@KC<50OQJB2hYe}0Ei!EW!b!AnHxPtuU*{@hSu7c9@cdC?T zis(rddA);tRA#hB7IBCnNIk9=Hs()pfhFbqd+KRo3(T>AExPyCBR^kqZ}E?!h01jo z`F5=D(5HHVFmhhLZ;t-gv%au>u0p1hj2n*Sto=Y#wT4Df@{)t7bJuHsU#Zm1G9La= zSg>Kz2a%-nAU+qE@DzBmQuvB3Gb-+^JZsFK{d!tD(T*|Cbdt!|2PY{jNJgZ;RoME= za)6i70=5jpxN_c?oOy-0JG8A^qh}Fkl=JxTV^%)1R)vRrc!2D_khzx5f3`dmn)Q zH?R}{@KTv5LNHD$)F=~eu_QL$T$dUSvNA$C84u(N66xvT;X(YJ@Fv2L^QMJ)O-#D& zi*>gMsj~ zLcds+X*hORzWJb$n*H%h5>drkysOSkNV_|54e#Ub;jy=75VYQZ=@_i|mce$lK~GzO z>f#ij+I0#{H(0r~9F{ps;qMson53Ul zizS$SnVV5A@JPs1vu`=sOy0a-$NJ{GRWkz!WYi&qXwc8pidx3fWh5Q8oEKVOe7szb zMCzD0rDI+2J!8U3$7OE!Qe#?n`g{R$E6vR5a+Ox1`C85M_|J-K+Ke?f)3H}7mz2Bk zXLE69og$a`;LE=YZhxBrIaQQY)9xT4ZY(m=J=6h@&}JSad#nTH=dcZVaun4RYzR*q z#HCek*Mb;$BL@~Ujn)||-;oR2m`7?-GIxc1T>hYX2lJr{?-sJ^(-hUN#qVPBG1_uW zYin5C=97uk7$|-(8qFFbDEdOO#NK7Se$?gv0yYDH#U)+{r$}UN71k3!Z#Nr!r7M5# z(fR3h@H4#nU74M3@(^fsAU0ahy(Kqt@bwMley^)d>`fE5gjQq>nxd1F8BGW8h0S@9 z(oV;G-gMV*h%cMV&W=Y={wa>GwEd5m>P%I+t?<;&Vrv%REMlSXS8yKvyUfV8decZNGERQz==0XbzCqyOFc6RZJZZhN8g9vP1JPhN3~Re&{;2QA#@pFj zhvhg85WRYfihNnW(~_(% z%__;697UtUj~JggAPTnqAs)m}3GbuFV}`qqlC1jqj$&gBYw%yE%8zAG!{U=10}yye z*3nb$tCIH0*M4Q8L9S9W_RsBI=_fIp_m*{6CqctVamC^3gp}px7?ysTvv@gi+_$br4)#?mvZKC|+Z3 z=0;jgMrwGJBCr$)$mU8E;Kw*Jg80>7%3@vD?{CrPM222l6m*r13atx1-=OgW*}Pqu zQEAzqxCxWQyGt-hg;y@tlFGeV8B`xozQirw$iIO>in z$$ZqE&>HI%yrE`H3VSTXBJA}-GDGn&7mJl~r2W=khdFnI{1M}FbVi|=-rlu;H9^fh zQy{6ApBKDCGzcW1-2(bKZUqA~B|hI!wkXruIM=3~0AyEKm|E<87$XI86Tz}((PJ*0 z8kkD`s9j%QpW$RZMZD{2)UaoJoD{!m6fn$#(OYtSMxUdWT;Sw zkd*Xk2^d+OEKB7)5@G?EwCC1mZ6YJyO;fId?0nVOa+BKMrWK0wcXJScjFQm6X17Hw zC!99Bv6N|E;mLgfjiANIkFS0Bp5t-t^?wH)FzQd3-_(-Zn_Ysw!6UDvtr%^MJyA6; z9;P)0?KBqHT||?H8vzCjB@!FyW%Z9Fnptwf-udpCdsWnvGqF<1j%;}L!6U{b|q*Eg=9lx`*y zI_L>=AfuW89!Sb?WdJk@7fA&y+_%$$jqPHQNUcgN7S2}~PQp=4JUr?#2;9{HZY^P~ z!n);R0%OJY#AXPhA?0>Ih972%M2=Pa4grogz)r;G;8@zY|Sz`b5#@wP@9zJeDgY#B7dt;=@ zEB=sHHPSI8PPi`m2{OSupz-N`)qM4_4RKq8WD$*5^{kNAe-Pf*6k>CC;b$^1pUbIm zEV%w%cnYNOrx!*z*>B53b}NQw`Xu6*H=xNZa@Uh?5IB-@b{`y*H8NfXKyi-0gsy{) z_T6}?NYHRHZm%S%BqJ?FM*is=0|}=1uy@lzq-#O_kD(OTLLMO>FoBZqr2fF=ncK_P z%S%rj^5^*WDlYIkIuzTGJE&8pN7m;zl#>ixn-3`=NC6IfE-q@?(ECYXme!2^rkDE> z96d{Oqot-57WFEj$i<^UcO)_J0S7plF_+&-wUjhLt3*y!~dpLQ}Nms5z~#eiNd z^HHbuKY_k~>wvP^bKzRB-;x4nN3mY}?TAvRPduZQ$$+#;(0w$@9d%wpdQgV~9CfYN ztXLT3nsn*7qheTA-DBQZ(m}WpGUb&cQouo-T9=O;B(s9JDi+zT9wa}R)$}*JtRv0x z`MfnXx2<+}935pNg~vUb(s*J4Hk}3pr-PGYQEe7R-FT(fr$?~M>kmn?SO z&-)8NgfT{rN_bQ2z{RT?%2lbQ+@^&R=|t|~)m*yQ8zdP)0Ja>7yhlH=u&~fD$52d= zB?T4&3iaEKb;jJLcbei#Qx138LB@qHKw3B9gNqHVieAZKC#7;tS5Jy^(th1!Wh$1O zX^2{{drooFbVa@&jqd-SZc5s&p%@n%1Gq1Q;n#G%SkhCpk zzXPH!AZ3)5|7I@L`~CZaVF~hLY$B}q)C$ccMv;Y6Jh*7rFAO^tu&P=)q#zNmQt&(5^<@kb#^ zL}=?x9}*PlvvsWxt0}^~^L@_d#z^8wk!uE`NX__ZFr3_Gh)XzEN>bW_zOb|TbCrKL zTkQ!5-4-}50NijNDh;Qbjfd3z=@Nf=_bjnD!#q;J3KQ!?zC?{$~_sx(*qQq{_c?ON+ z`<_ujkR~(*vg%dbYID<3U2H@QfW#8Ki=W5iS}F5PXz!3mf9wt%bNLNCmsiok4A;v1 zqz%Ex;S9ayfK@jtp|M=`D_gy$RhfZ`eGy-K8sd5a;+JzZHlx9b3Qx$8aufHQISw+6 z>G*+DVTQgOmO#)_f44EaQJ^_#(HyWazLLq}cg#sEK)StnQQKwixcpzn^z9Vgf3eXO z5&T!xhVIFFqU^o|A9Vb>@REo9FP-0#OGn-whF#jWto5CAMi?11OTKBW zgn+f6^uz&U7rbz)4rrBVrJGRF-+g$W&+clwMRYVOxqR6$LYaplAzd2^3L&TctXN-$ z6;p@&sy}Z2e*30XLqOf8WIOdU%UT(E`3>UMVMXAEj`iuUxs)CUpMU^dEaeZ2Qs-)F zLT?lSCf1pZz}N7E3q5U|5>D+&Mtn*KDiREUZ?Wh={Q5pO)PM_dnR;Pl{dF<(N<8`o zrT$Oc@Zx``kJti_y`p0Dwfwi@$ggdm45%wh?C{|=ly@byDW4H3j7dO@`;Vs*JzF-3 znP=z zl@R!ldoe2RntC^DW!{r17t_6ImyEX8gKJCDi@5A1HHplpN)89(SEL!ghs(LXZCg4@ zTr7(EQLpq-?rJeL-4h{rp1OUW=4q>bg%-E61Dq1stqOW?jmP06zJ72@C}0<5h=>B_ zgD57IKdw@6T&T)yp!(PG7wCFAX5LT`L%Z3ix9T*fR1m_Lc~p9&*0sV@yAMGsLn98; zlp+2MiWLjD0WqYJ{K<8}k2LH&xxD?82qyZZ@l^7p)-CY=Fo5RDiT`g^4K?rroD6& z>+HO&mLnh>AsgYP#MAo3Fv)@aUqBic+y0F_6#-}WiU%dB^MSsXE4G(tyUT*CUGrB_i&WH;tgYSj zb0e-)ow5Twfi^ftgGwe)b~*AmtWQQRl+Aqh1zUZ3I}6g6iEA&o&kJ+XL^f9bLUW4b zVYf^N+gmjW7#ZZ~XlP97LIH@f7G)+@Uyd#5K`wZRoy`%Q6!_y{TwgQ@5*d#e8XT#_ zK8JSThb#`#e!RRxCsquAkMiXYX=Dn`0HPgpD_EF~sNWhbMxMJA@Sds3Ne1 z)4m*lehs^jv=`rWePnRp(!FJX6x#$ZHh+zjVr!Xa50j=DNym z%f7mw=EQ7~d1kQ1%ZH;-Yt7!YsM0?*n{#tK;KF2LbIZ;0gTRV< zCNNaoBzj$F`P;d~{CL*QJ9h@(_i|%t84*Pvz}~*iJ62_3(yOM__85Hu`ze9WUZd&BSY<8^WeSjr+C|L!G1(vVXNmLbn}98Dh5+hbDP9mFV0G z0(o0<-Mm@6?$da$P&({77`f?j6eQ~AO$L-KB46~*M>V*BIKedOzXG}avTK@{CbpE$b2PA; z2c3Hc`1C$Q>_0fKg#3MoglLg_wG zPax~--ItHI`!2`DIVlsoCWjr9xvY!FU@|AsVSjE-%7#F5>rW9c7L~_wGGVNf4xKnL zatzOj29m_Pj#34+n|xAjF!svK&;|lW9?k{bHwwo%-L`x-%agA$31qGG^z=CZ;}u`) z)_Cwx`yq^;a8n|a4e1SR2GD%~h#Wx&r_WiabigH8=W28CbwO#3Hwvs&4wPUOa@g%W zv2RGV=tufd=nPE#Mf#X%)y&~6X2R*ww<U9Ep}$^3q9WE9aI$mM z?f&7*+VEJ*h4&~aRzpJyoG|e1osk}Rpq1ez#Obr!8}T%x;MT{Z`CSl*YgG&Wz_`F^ z%>Aec=hKoi>!rj&`iE^XrfT~Cnk2e7#~deJ-(0)cn9&g7n7j0w@C{B;vI za>VFlOx~zpeU6`XUs#}J?tGv!Z^%QB*U4r(M>txHWJv+LLNIW6Q`f?OdJsP6T?1GJFPkerxtr|$3( zEy`6t(e`ScMDA)3A@bB)Qk4@Ga=)8-u(K5-I8rD!%cuSn~PwBd=`EvCxk{nPq zUmj7vBJ!a~dPi58?bKPLT`9Am(#1?F4NDLli;YH=F+o)Lz`|-C-HJEe9gG^MZ>bnf z2GfB%*rdZ-GZBI^Z8{l+GOB2lO6;IE3uwSpJ0x+M_c`^i5|&=7A9=o^Y6Z{ih>xZu zhAC#VY_?1{FJ6TB^T_j)(RMTtO) z6FurVZ6lK1n&hM;d?8;70?C{Py@QQg{`2pQqQCgA^s49a^xiwi=3Rr!ai#P2E~Poa z`1*(fb{KlCaprsr;7#QOob5_Y*6sd?R6MxLbv8={rdnE|3f`dts-NQ~z{Cp37CI}= zenl$&byK7UNxtNA)F!f^_PJvI8`vP}FSe(NRyn40JjNfLfu%4!o82c{8(}qsKHkMt zdpD8OSWn@(dmY{ip>4Th)U)_t)%@+l)TWc8k5l%?+kJ)MmKF;W^?J0I8)uzGlxz`1 zqpYowU%^GJj9Wpmiiwq}6@G77$6pPj<2yf=I4yQsknVAuQRc48GvK^Y9fCKnuhWH%2c+5I>Q(AOVQTOcd3dB+?j zG}?9krxJ(3zP~?T&g_?ZZ6j;XW9Bw)$gO;L5uM(Y3NZ+rPohVi&JH}g-yRPUV|*w~ zR&)PGMSckr-Gmj~fz9bOVI&K>+#Ue0|vAs8cFvyZ;Q=|4$!$0em5M zAuc=UbZy@>868UZul3IoV?NW!<@a;jc?Mf*F>-#OOA8DqaU1yGjxW+i zRv6M`jFGgsXk}F40e0!kWNK|IyU&CEKxjs6z(nd#-a z^~I3L`CiM#*d;c4H|KKS`fs&0adagocy2i7Vg%S2UU2ir;}uUY1DQa!sFod?mYq5J z;J+s;IhO}TiiZo^ulsZS@j1j*4JE%*i^hjnaFkU4m+^-hj+K@0+<=Jx)g={6`VxiJ zTx-xTNK1c{W}eHFs(vT+$)YkmSzcrD=1i{K!8e6FR(n%Vq*n;U?u?kI(we7vnL0CJ z=FR?7nVuveY-LQEP$ZIBg%+-l#+o_ZO9IZlS{J;83sUU}oWOv5T5TSK=>~@~wEe-{ z!6IjfJx1Efj$^0a1SyJ$^A_+o4}S2#%Lz43f=Yf`vhffQ+-vujyprQcGd%hy^!@_B zN8J8gjRny@;k|`DOiXN^K;~8ZPe)-zQPdnseLN_;A@Vw(z^+Nlnjx` z*TRltE~s2W!%y6gLM9lWD3=kB16-ml?+qpmrwhIpo@Tzq7v&kAU2=D7a`N(4I7qot3 z;nNGx07SJOHP6zwwMN8M3Ob$xbJS0Gs@`2lPlxU2T73npM~bx#(0X`p3|5$*_05m~ zo6-a>_NSd)5!lvp3J-vH}Yf9$;l@>7ZB5kb*Sh{O{x|d3l zi=B@<`x(bQ54i3<5>;-kINMEa+3T{V3~Rs!EouajlPDgK_vc*Ri;%=~{MVqO2k-Mh zxNX$oUv2gM86FyYXqW4^PTxF{M!m}oDbA+y$Vpi(c|%0{bB!7q+R!@9wTi)W##o`{ zote;a_t=;SNGC=RTKKW4x9YLVtZ3}ps+GL(+20i2mLeZ$ZbKYqnC>hl8foKuG22P7 z8>S2anoR`R`!O;)P>`W=Uz&Q_R9SADSgNOd`yhh$VH79?RfPUfLW7bKeGm%H}yg8~Lrn% z&&mM#3$PFvd^B}=(g@(TTEK0PV z=uJqmH@C{Y@5||J^aQrt)I{XnQU3XQ2eWQt29nQ*Ga4o#d{(-rIYK#9>>rtQ(Nge5i!hR>Ya8nJKNf{;MrHmv}`t3jlOyF zCP=yOb+!3npuvdj<_(Bz=ZH`>DM+Trr_sCIgLt&r;F^vpx9d>cG%DZ{X4Bzsyr1c7 zDoB?-)s<03MU|4-RNW6Ksg?w&s5;DjW~VWv8F*xX`&>jnk}na4HF4Ld^_7}S+351a(;w}r(wEYe14Rz=Ic z-8lKCo;K!J2Ij`pRly=C1kEDVYE(6y~MC1=gSc5h+f;XrD)Mk;?%yBy- z@VU|sN6RjUfdcR$V4czxbf7V#aIq?Xg8tuWrGq>lF7hSYvZ0Zi-rno%4WkW2YdC0x zeDjB_&xXZN(^ZmwFb}VYCPw!-_0QIka@}t-Xg+e}UV$f61Y4<%M36#`SgNmxg$tVK z4eNG)R{YUyVCo?Zc`8p%$}Re<#H^K#EJTdQIQ%Cz`X|o_B;GUCQ-<}iNBN11G&LzX zbG1z#JLp@*^IS6&W9Sn)I}`9>APdwlG9;^Ur!+F`UL?bMg9;y~Z1b<=tL8}Lutd_y z1M5ATAQwYz_ZYC-hZr#+{RL&`rg#dgHTBSeY-4i^w`<`{s0xdwa8w~5WZmEG`g6Nj zLfHsUC);OD@UYL$;&;#jgy1xWtspqoy5-7a=pcBK?|qYMJ(7r3|z)riF4%kAI|J1*kn zilYC^&u1k$rzQW87XK(1*#UdR3MHTOe~U?O8?&>sMM3LD(?=`QM+uiJy#JOX54&z< z1WEjF!w2{38M^;~`CZckSxO%!C{_{j=J*ronl9R7aCoP@|Fv2u!{Nozuv=Se7#O@(el-iIJDu}(2pOWZ#OEe2i$XIKf7N1W(^qwSm>&n!ht3{Qi>gYG@>VUof}q#ak-dNI*a_rw*k;ML2K4$F~LzG z({vLxo58!L7r$skzU`aA!@$e`88I9C7*kaM|mxg5rIP*yY=Fv@`#wp;|Y})8I8EE2K zeLQdD+N^-8mpXwOIY?v6dV{p8*cE78F56d|6SMwCDe`Ph&M-Vgs@qAa@gaHUeFkp{ zrMiYRKdOk+e{cErjgeCs6Sc)!NF~zk@+@2FDaL2+PT%Xb4c*#|srnO_;66vL%dY;5 zB&xkoFs(yUZ`Z7_LLFzc?nwbKflk$NaAl=w(Vrx4!i^lv-GxiP1GQH!A~F#TMb(PpCL_>?0ldV z3FR-`JKL9f?>a>p(((OA#UGvzUCL_8Uq#0A{cSdsJxUsRCn!sz4zCwd7qX^hA?@F|(G3@hq(!WcV>Hg0-9l|x+T`km6h19!Hn#i@c zUVSpGS$xS=gwMyDXs%5KMG1Jle@1sJS3`MY+EM2CsUAz^2;T(-dyKRC!VWnP>AYxtc29d2<*i&u?o2gbPAZLJ4(!oaop$ncN+ON(6P6u*fE-qPT=-yoH zi0;wQ8!l!}wFcQVuGJ9Uq3@;tW@u$H29(7!BB_xwE9C^BzBf2k4Eu-|q_ukE5{8;^ zyp6@bs*hHjAkQC)a4t*+;@ppCeRG*zIW<-lS#l?}JxfE8=@xsk($de=Cc>VMdCRO| zoU$L4T?qlzSXvL+lp1QIKMan2K!M~le74&t7)cZlX&eXm&MDg!f><}i@?U5F-+sp* z@GIxX2&7n?5H8T|(HUm%oVI=YZ(Q?G=``_E&r}8ae7fp}GJ<)0-~Th`N0{iJ?Hx3` z_m*OhS2Pn3=%b@;dP3UCXCi0Q@>?yz;P~E8#V!r5epkT!y@6Y4r5$-smz&J9zy{a; zQ0vZ21f55=xtEA&q6SCQDZ;$Hwto+n_2C+4-QiH9@0_%K41Ua&aDU-NdsiD z7h~RVa!4U?)MfnZ?(yY~I*-qoFDqccysa|ka)T= zm*#yOKV57`4=I0EGts!NQfx=jUeYsU7h6epPqIxNF4XxJT}tinTQZ)$%IJM2td&~} zsW;^&2eTB)_y-UHc4X{4zes|AP@~L*DrD)HNF%7*DYSGwentOmzt3KnXav2_1Ji*9 zLPhoO$Y||Ld2j-Yu3q`axoDSD;m$jyDZ|-rfrQ6QXplG)05rNTWXoR&NV3Mf&ku$T zr^b)~xd_O$nk$U?ud08NT6v38i6iOYU${odjC6m=sCYZyCK@ZT zol1<{@RMFz*?{4?xrzG8P8yjn3e=N|YS5?DU~s~Z0kB4_q?W?4f5}z4t(UT!xK^Zo z(sc6B#q$J)MW!WxDF6KV%VpCaPwmWIxu!N6^=#-u)yUZhZAgbN zDnrj^+Epq}{wQ5J0J!SRtQ5`48}CujAtr~fkyuoA-?mIOJ{)>L1~T4j4>)V3r=!bV z%pZ+f`~hUPLU=VK^4n-P{Cih;=Y#an*L1&z{@x#BhVVex?&}>+j9Jxo#iLb?40z;m z7Nf>vVkWw_ZMk4dU$jn1L9z-r>lbw+*+17OR-TTGo-^!|j{Mb@n67^6>-hP%N|rBl){#iby- zcIJPX;H1d@c)0WSB9246=jA2rAI+N?>#BrK zIsI^KVGpVdQ}Bg8+IrNh`v3qbbx8A>F01g}S$O^wC&B*qv%6c5w7jq=uCn+B`?mY7 zJ!(!^P6&itoz~_S+f{6hmCKn1DAyUJnG4FTtCD474>lwT8S$!xKLhrc9A5nK=DaTc z5E&ta&=rOuXJN-Q#Crk z@kDg>bW!qI6w-#&Q1wksNyFyp>S{4oP!u?tM!VhnPS!_D2}uhaQm!|JSVCv*z2$y; zM|f)o7H2TDjj(+{c$6$2IV?@PR=$TX-X63Z<190fuENm!<-vk0N-jZJz}|Fb`;RKE_1-QhSqP3CG_~SP>?^6of?%D0~U{`Mv1bR-jOkcVeJY zLpM_?)2@?;8XsjG=#BfG0B-q}N$A@TGVp3kT^H>r_)(5$(daAGcg@1&pWor0V2Jo& z;umc5e%3bd%2$ow?MGE^Xfq?ZMeYS%sO+$nAh!1LcT9v~o3k4H(Qcp8I*Zosbfiv@IMqU@Z zhT0{B)4zYES2i9gTaJx-XFcepg@Z;40Jd;CrL9Dr-^nk(Cdtuq0v(GEMEqW34~`Z$ zN!Z*XQ&@4_w20di!StBHZSB(vv;Uh?Jb9|<)X14J{x&#zM*qt5A}?}-3NGvljSfSa zxw}=ubQfxIxgGiGYKq0L0lb7yz*Lg8rKUedx6`QOK)Nq9+`N;IZIC84f)?lxxOAxR zk%2r;y{D-oQByVeQg&ZQ`{0|le0J-2$C-P4%%KbgOe^}w2@ws90b7f6K0X55Y9^b^ z@s15voT+(Y9#C6K+#OrgOQ420pCM)eOg%CXEPdS1`_ombRQl$>9U?ErEQgJ~Estf~ znbnYAAoC+O%kP|nm|xAT70jVfA4nZ4v7pv048G=kIVa#8mUH2?DC%Or$748(ak8LE zw-`IKh%}6%<_5F{xO&rY29=2EP04`*t*>HyE6lO#Ar7jm&d9Nb$Zk4!4+o|F%Vr(? zCJQJHkO-~_;mmx-gm*`nuKtY>Ia7p`k8!{aDd4XzPFBF7G8V7+i>*G54(#AJ&K4Hg zOYDzQiM!<{tTSG9KARI~W48aPphsa`6>LY_QQ7Q>6C+B_sg?M6RiF=G148i>qb~14 z`u@bfoVoNnJ>B}KUc~jVUHKa^C*f0hjW3C6MS4cc4&ibw!D}}1Vf2hoq-H>JHuYuNQNQ^`c?-0P-TMz{XYF99pD2v^QGpVvP~e`(zzfeWdtLs^f%9Tn@4I~_ zMf3sDD$6+CJB+_Tv4$C;Z!#bU@E>Yb_PR3A^%i7PJw3fN(YP}&ulOhfpgg?PApSyy|gG8ttWSz_nwF#*@+Y^EOqL&$N%1-v|Ubn#X84? z0{>1;EBDoU@sRC&QR#}KZ`5IRsok9V#}*@OVs9DJrX1L>M2%naTo2*SqvF={o{nf} z|6H@0uSYGN_LiV5aYt0jMYUZuC$XYlJ3)Ny2}oH{sDL~vsUmB^*xp}bj=0cRSGoch zQKacRK8pDXj6=u)y?-79FX)x|bNz0))#wlV^Zj0@eK;NY)?q)M(6e$&0n>5|bnx?U zLT19L`;hW;s zaN>eQQAywIyBfDdA4-T?Z#)^ei*3T^;h4A0d$CiN)8=iWVqrkP^F_9d(n`)Z9gPPP z3Iyre#@nP_41|XAPPLuUJ2IuH^!o3|SzFEYI=k0}b74H1`$b;=-8>)!>U3Swb1oJy VYZPzg1N;e)mYP1iT*c - 4]. // we sample these lines in blackbox/stuff. 9 samples. If we change the canvas sample size, we have to correct these values as well // samples are every eighth between [0, - 4]. -var _ard_sampleLines = [ 0, 360, 720, 1080, 1440, 1800, 2160, 2520, 2876] - - +var _ard_sampleLines = [ 0, 360, 720, 1080, 1440, 1800, 2160, 2520, 2876]; +var _ard_sampleCols = [ 128, 256, 384, 512, 640, 768, 896, 1024, 1125 ]; +var _ard_canvasWidth; +var _ard_canvasHeight; +var _ard_canvasDrawWindowHOffset = 0; // **** FUNCTIONS **** // -var _arSetup = function(){ +var _arSetup = function(cwidth, cheight){ if(Debug.debug) console.log("%c[ArDetect::_ard_setup] Starting automatic aspect ratio detection", _ard_console_start); + this._halted = false; - var vid = document.getElementsByTagName("video")[0]; + var existingCanvas = document.getElementById("uw_ArDetect_canvas"); + if(existingCanvas){ + if(Debug.debug) + console.log("[ArDetect::_ard_setup] existing canvas found. REMOVING KEBAB removing kebab\n\n\n\n(im hungry and you're not authorized to have it)"); + + existingCanvas.remove(); + + if(Debug.debug) + console.log("[ArDetect::_ard_setup] canvas removed"); + } + + var vid = document.getElementsByTagName("video")[0]; if(vid === undefined){ _ard_setup_timer = setTimeout(_arSetup, 1000); @@ -39,16 +53,19 @@ var _arSetup = function(){ // imamo video, pa tudi problem. Ta problem bo verjetno kmalu popravljen, zato setup začnemo hitreje kot prej // we have a video, but also a problem. This problem will prolly be fixed very soon, so setup is called with // less delay than before - if(vid.videoWidth == 0){ + if(vid.videoWidth === 0 || vid.videoHeight === 0){ _ard_setup_timer = setTimeout(_arSetup, 100); return; } + var canvas = document.createElement("canvas"); canvas.style.position = "absolute"; //todo: change those values to push canvas off-screen + _ard_canvasWidth = cwidth ? cwidth : Settings.arDetect.hSamples; + _ard_canvasHeight = cheight ? cheight : Settings.arDetect.vSamples; if(Debug.showArDetectCanvas){ canvas.style.left = "200px"; @@ -69,11 +86,16 @@ var _arSetup = function(){ // do setup once // tho we could do it for every frame - var canvasScaleFactor = 1280 / vid.videoWidth; - var canvasWidth = vid.videoWidth * canvasScaleFactor; - var canvasHeight = vid.videoHeight * canvasScaleFactor; - - console.log("canvasScaleFactor, vid.videoWidth: ", canvasScaleFactor, vid.videoWidth); + if(cwidth && cheight){ + var canvasWidth = cwidth; + var canvasHeight = cheight; + var canvasScaleFactor = cheight / vid.videoHeight; + } + else{ + var canvasScaleFactor = _ard_canvasWidth / vid.videoWidth; + var canvasWidth = vid.videoWidth * canvasScaleFactor; + var canvasHeight = vid.videoHeight * canvasScaleFactor; + } canvas.width = canvasWidth; canvas.height = canvasHeight; @@ -83,18 +105,58 @@ var _arSetup = function(){ _ard_oldAr = vid.videoWidth / vid.videoHeight; _ard_currentAr = _ard_oldAr; + try{ + // determine where to sample + var ncol = Settings.arDetect.staticSampleCols; + var nrow = Settings.arDetect.staticSampleRows; + + var colSpacing = _ard_canvasWidth / ncol; + var rowSpacing = (_ard_canvasHeight * 4) / nrow; + + _ard_sampleLines = []; + _ard_sampleCols = []; + + for(var i = 0; i < ncol; i++){ + if(i < ncol - 1) + _ard_sampleCols.push(Math.round(colSpacing * i)); + else{ + _ard_sampleCols.push(Math.round(colSpacing * i) - 1); + } + } + + for(var i = 0; i < nrow; i++){ + if(i < ncol - 5) + _ard_sampleLines.push(Math.round(rowSpacing * i)); + else{ + _ard_sampleLines.push(Math.round(rowSpacing * i) - 4); + } + } + } + catch(ex){ + console.log("%c[ArDetect::_arSetup] something went terribly wrong when calcuating sample colums.", Settings.colors.criticalFail); + console.log("settings object:", Settings); + console.log("error:", ex); + } + this._forcehalt = false; _ard_vdraw(vid, context, canvasWidth, canvasHeight, false); }; +var _ard_canvasReadyForDrawWindow = function(){ + if(Debug.debug) + console.log("%c[ArDetect::_ard_canvasReadyForDrawWindow] (?)", "color: #44f", _ard_canvasHeight == window.innerHeight, "(ard_height:", _ard_canvasHeight, "| window height:", window.innerHeight, ")"); + + return _ard_canvasHeight == window.innerHeight +} - - -var _ard_processAr = function(video, width, height, edge_h, edge_w){ +var _ard_processAr = function(video, width, height, edge_h, edge_w, fallbackMode){ // width, height —> canvas/sample //edge_w -—> null/undefined, because we don't autocorrect pillarbox yet - + + if(Debug.debug){ + console.log("[ArDetect::_ard_processAr] processing ar. width:", width, "; height:", height, "; edge top:", edge_h); + } // if we don't specify these things, they'll have some default values. if(edge_h === undefined){ edge_h = 0; @@ -104,7 +166,14 @@ var _ard_processAr = function(video, width, height, edge_h, edge_w){ var letterbox = 2 * edge_h; var trueHeight = height - letterbox; - + if(fallbackMode){ + if(edge_h > 1 && edge_h < 20) + return; + + // let's add some safety border to avoid automatic ar toggling between 21:9 and 16:9 + + trueHeight += 6; + } var trueAr = width / trueHeight; @@ -146,6 +215,7 @@ var _ard_vdraw = function (vid, context, w, h, conf){ if(this._forcehalt) return; + var fallbackMode = false; var blackbar_tresh = 10; // how non-black can the bar be var how_far_treshold = 8; // how much can the edge pixel vary (*4) @@ -154,15 +224,56 @@ var _ard_vdraw = function (vid, context, w, h, conf){ if(vid === undefined || vid.paused || vid.ended || Status.arStrat != "auto"){ // we slow down if paused, no detection - _ard_timer = setTimeout(_ard_vdraw, 3000, vid, context, w, h); + _ard_timer = setTimeout(_ard_vdraw, Settings.arDetect.timer_paused, vid, context, w, h); return false; } - - context.drawImage(vid, 0,0, w, h); - + try{ + context.drawImage(vid, 0,0, w, h); + } + catch(ex){ + if(Debug.debug) + console.log("%c[ArDetect::_ard_vdraw] can't draw image on canvas. Trying canvas.drawWindow instead", "color:#000; backgroud:#f51;", ex); + + try{ + if(_ard_canvasReadyForDrawWindow()){ + context.drawWindow(window, _ard_canvasDrawWindowHOffset, 0, w, h, "rgba(0,0,0,1)"); + if(Debug.debug) + console.log("%c[ArDetect::_ard_vdraw] canvas.drawImage seems to have worked", "color:#000; backgroud:#2f5;"); + fallbackMode = true; + } + else{ + // canvas needs to be resized, so let's change setup + _ard_stop(); + + var newCanvasWidth = window.innerHeight * 1.77; + var newCanvasHeight = window.innerHeight; + + if(Settings.miscFullscreenSettings.videoFloat == "center") + _ard_canvasDrawWindowHOffset = Math.round((window.innerWidth - newCanvasWidth) * 0.5); + else if(Settings.miscFullscreenSettings.videFloat == "left") + _ard_canvasDrawWindowHOffset = 0; + else + _ard_canvasDrawWindowHOffset = window.innerWidth - newCanvasWidth; + + _arSetup(newCanvasWidth, newCanvasHeight); + return; + } + + } + catch(ex){ + if(Debug.debug) + console.log("%c[ArDetect::_ard_vdraw] okay this didnt work either", "color:#000; backgroud:#f51;", ex); + + _ard_timer = setTimeout(_ard_vdraw, Settings.arDetect.timer_error, vid, context, w, h); + return; + } + +// _ard_timer = setTimeout(_ard_vdraw, Settings.arDetect.timer_error, vid, context, w, h); +// return; + } // "random" columns — todo: randomly pick some more - var rc = [ 128, 256, 384, 512, 640, 768, 896, 1024, 1125 ]; + var rc = _ard_sampleCols; var cimg = []; @@ -178,7 +289,7 @@ var _ard_vdraw = function (vid, context, w, h, conf){ isLetter=true; for(var i in cols){ // if any of those points fails this check, we aren't letterboxed - isLetter &= (cols[i][4] <= blackbar_tresh && cols[i][5] <= blackbar_tresh && cols[i][6] <= blackbar_tresh); + isLetter &= (cols[i][0] <= blackbar_tresh && cols[i][1] <= blackbar_tresh && cols[i][2] <= blackbar_tresh); // should also check bottom } @@ -187,6 +298,10 @@ var _ard_vdraw = function (vid, context, w, h, conf){ // sedaj razveljaviti // even if we don't deect letterbox, we still issue processAr in case we adjusted for letterbox earlier and need to exit // corrected mode. + if(Debug.debug){ + console.log("%c[ArDetect::_ard_vdraw] no edge detected. canvas has no edge.", "color: #aaf"); + } + _ard_processAr(vid, w, h); _ard_timer = setTimeout(_ard_vdraw, Settings.arDetect.timer_playing, vid, context, w, h); //no letterbox, no problem @@ -334,7 +449,11 @@ var _ard_vdraw = function (vid, context, w, h, conf){ // zakaj smo potem sploh tukaj? // why exactly are we here again? - _ard_processAr(vid, w, h); + if(Debug.debug){ + console.log("%c[ArDetect.js] aspect ratio change is being triggered by an event we thought shouldn't be triggering it. Strange.\n\n","color: #4af", "color_lowermost (8=bad):", color_lowermost, "color_uppermost (0=bad):", color_uppermost); + } + +// _ard_processAr(vid, w, h); _ard_timer = setTimeout(_ard_vdraw, Settings.arDetect.timer_playing, vid, context, w, h); //no letterbox, no problem return; } @@ -357,7 +476,8 @@ var _ard_vdraw = function (vid, context, w, h, conf){ cols[ cu_col[i] ][ j+1 ] > blackbar_tresh && cols[ cu_col[i] ][ j+2 ] > blackbar_tresh ){ - console.log("detecting value higher than blackbar_tresh!"); + if(Debug.debug) + console.log("detecting value higher than blackbar_tresh!"); tmpEndPixel = j >> 2; break; @@ -411,7 +531,7 @@ var _ard_vdraw = function (vid, context, w, h, conf){ isLetter = (letterDiff < h * Settings.arDetect.allowedMisaligned); if(isLetter) - _ard_processAr(vid, w, h, topPixel); + _ard_processAr(vid, w, h, topPixel, null, fallbackMode); _ard_timer = setTimeout(_ard_vdraw, Settings.arDetect.timer_playing, vid, context, w, h); } diff --git a/js/uw.js b/js/uw.js index 202e091..b4f33e5 100644 --- a/js/uw.js +++ b/js/uw.js @@ -51,8 +51,15 @@ async function main(){ - if(Settings.arDetect.enable == "global") + if(Settings.arDetect.enabled == "global"){ + if(Debug.debug) + console.log("[uw::main] Aspect ratio detection is enabled. Starting ArDetect"); ArDetect.arSetup(); + } + else{ + if(Debug.debug) + console.log("[uw::main] Aspect ratio detection is disabled. This is in settings:", Settings.arDetect.enabled); + } document.addEventListener("mozfullscreenchange", function( event ) { if(Debug.debug){ diff --git a/manifest.json b/manifest.json index 48c8161..4df9c78 100644 --- a/manifest.json +++ b/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 2, "name": "Ultrawidify-git", - "version": "2-a1", + "version": "2.0", "icons": { "32":"res/icons/uw-32.png", diff --git a/res/settings/settings.js.old b/res/settings/settings.js.old deleted file mode 100644 index 46f4697..0000000 --- a/res/settings/settings.js.old +++ /dev/null @@ -1,860 +0,0 @@ -// Autogenerated using buildext. This file should not be modified — modify source files instead. - -//BEGIN included from lib/libopts.js -// setopt, getopt, delopt. Shrani oz. dobi oz. briše stvari iz skladišča -// setopt, getopt, delopt. They set/get/delete stuff from the storage - -function setopt(item){ - browser.storage.local.set(item); -} -function getopt(prop, callback){ - if(usebrowser == "chrome") - browser.storage.local.get(prop, callback); - else - browser.storage.local.get(prop).then(callback); -} -function delopt(item){ - browser.storage.local.remove(item); -} -//END included from lib/libopts.js - - -//BEGIN included from lib/uiutils.js - -//END included from lib/uiutils.js - - -//BEGIN included from conf/sitesconf.js -var UW_SITES = { - youtube: { - enabled: true, - type: "official", - urlRules: ["youtu"], - player: { - name: "movie_player", - isClass: false, - }, - iframe: { - name: "player", - isClass: false - }, - ui: { - uiMode: "native", - uiconf: { - sampleButton: { - class: "ytp-button ytp-settings-button", - index: 0, - buttonSizeBase: "x", - }, - uiParent: { - name: "ytp-right-controls", - isClass: true, - insertStrat: "prepend", - }, - uiOffset: { - offsetBy: "10vh", - offsetType: "css" - } - } - }, - autoar_imdb:{ - enabled: false - } - }, - netflix: { - enabled: true, - type: "official", - urlRules: ["netflix"], - player: { - name: "placeholder", - isClass: true, - }, - ui: { - uiMode: "native", - uiconf: { - sampleButton: { - class: "ytp-button ytp-settings-button", - index: 0, - buttonSizeBase: "x", - }, - uiParent: { - name: "player-controls-wrapper", - isClass: true, - insertStrat: "append" - }, - uiOffset: { - offsetBy: "0px", - offsetType: "css" - } - } - }, - autoar_imdb:{ - enabled: true, - title: "player-status-main-title", - isClass: true - } - }, - dummy: { - type: "add new site", - urlRules: [""], - player: { - name: "", - isClass: false, - }, - sampleButton: { - class: "ytp-button ytp-settings-button", - index: 0, - buttonSizeBase: "x", - }, - uiParent: { - name: "", - isClass: false, - insertStrat: "prepend", - }, - autoar_imdb:{ - enabled: false - } - } -} -//END included from conf/sitesconf.js - - - -var browser_autodetect = true; -var usebrowser = "chrome"; -var debugmsg = true; - -if(browser_autodetect){ - if(typeof browser === "undefined"){ - if(chrome){ - browser = chrome; - usebrowser = "chrome"; - } - } - else - usebrowser = "firefox"; -} -else{ - if(usebrowser == "chrome") - browser = chrome; -} - -var UW_SITES = {}; - -function showAbout(){ - clearPage(); - - document.getElementById("about").classList.remove("hide"); - document.getElementById("tab_about").classList.add("tab-selected"); -} -function showShortcuts(){ - clearPage(); - - document.getElementById("uw_shortcuts").classList.remove("hide"); - document.getElementById("tab_shortcuts").classList.add("tab-selected"); -} -function showGeneralSettings(){ - clearPage(); - - document.getElementById("general_settings").classList.remove("hide"); - document.getElementById("tab_general_settings").classList.add("tab-selected"); -} - -function showSites(){ - clearPage(); - document.getElementById("uw_sites").classList.remove("hide"); - document.getElementById("tab_sites").classList.add("tab-selected"); -} - -function clearPage(){ - // Hide you sections - document.getElementById("uw_shortcuts").classList.add("hide"); - document.getElementById("about").classList.add("hide"); - document.getElementById("general_settings").classList.add("hide"); - document.getElementById("uw_sites").classList.add("hide"); - - // Hide you tabs - document.getElementById("tab_shortcuts").classList.remove("tab-selected"); - document.getElementById("tab_about").classList.remove("tab-selected"); - document.getElementById("tab_general_settings").classList.remove("tab-selected"); - document.getElementById("tab_sites").classList.remove("tab-selected"); - -} - -function saveopts(){ - - var actions = ["fitw", "fith", "reset", "zoom", "unzoom", "ar219", "ar169", "ar1610", "ar43", "autoar"]; - var new_keybinds = {}; - - // Preberemo naš obrazec in iz njega naredimo nov objekt z bližnjicami. - // Let's read our form and make a new object with keybinds. - - for(var i = 0; i < actions.length; i++){ - var action = actions[i]; - var targetAR = ""; - - if(action == "ar219"){ - action = "char"; - targetAR = (21/9); - } - if(action == "ar169"){ - action = "char"; - targetAR = (16/9); - } - if(action == "ar1610"){ - action = "char"; - targetAR = (16/10); - } - if(action == "ar43"){ - action = "char"; - targetAR = (4/3); - } - - if(targetAR != ""){ - var keybind = { - action: action, - targetAR: targetAR, - key: document.querySelector("#" + actions[i] + "_letter").value.toLowerCase().replace(/[^a-z0-9]/,""), - modifiers: [] - } - } - else{ - var keybind = { - action: action, - key: document.querySelector("#" + actions[i] + "_letter").value.toLowerCase().replace(/[^a-z0-9]/,""), - modifiers: [] - } - } - - if(document.querySelector("#" + actions[i] + "_ctrl").checked) - keybind.modifiers.push("ctrl"); - if(document.querySelector("#" + actions[i] + "_alt").checked) - keybind.modifiers.push("alt"); - if(document.querySelector("#" + actions[i] + "_shift").checked) - keybind.modifiers.push("shift"); - - new_keybinds[i] = keybind; - } - - // Preveriti moramo, da nismo dvema možnostima dodali isto bližnjico. - // We need to check if all keybinds are unique. - - var fail = false; - - for(var i = 0; i < actions.length; i++) - document.querySelector("#" + actions[i] + "_letter").classList.remove("dup_keybinds"); - - for(var i = 0; i < actions.length; i++){ - if(new_keybinds[i].key == "") - continue; - - for(var j = i + 1; j < actions.length; j++){ - if(new_keybinds[i].key == new_keybinds[j].key){ - if(compareModifiers(new_keybinds[i].modifiers, new_keybinds[j].modifiers)){ - fail = true; - document.querySelector("#" + actions[i] + "_letter").classList.add("dup_keybinds"); - document.querySelector("#" + actions[j] + "_letter").classList.add("dup_keybinds"); - } - } - } - } - - if (!fail){ - browser.storage.local.set({ultrawidify_keybinds:new_keybinds}); - } - -} - -function saveAutoar(){ - setopt({ultrawidify_autoar: document.querySelector("#enable_autoar").checked}); -} - -function saveUI(){ - var show_ui = document.querySelector("#enable_ui"); - var ui_compact = document.querySelector("#enable_ui_compact"); - var optionLine = document.getElementById("compact_ui_suboption"); - - if(show_ui.checked){ - ui_compact.disabled = false; - optionLine.classList.remove("hide"); - setopt({ultrawidify_ui: ui_compact.checked ? "compact" : "all" }); - } - else{ - ui_compact.disabled = true; - optionLine.classList.add("hide"); - setopt({ultrawidify_ui: "none"}); - } -} - - -function compareModifiers(a,b){ - //NOTE: to je precej slab in neprenoslijv način primerjanja dveh tabel, ampak za naš primer deluje dovolj - // dobro, saj 'ctrl' vedno pride pred 'alt' in 'alt' vedno pride pred 'shift' (če se sploh pojavijo). - //NOTE: this is bad and totally unfoolproof practice. In our example comparing arrays the way we do works - // because values ALWAYS appear in the same order: 'ctrl' always appears before 'alt' (or it doesn't - // appear at all). 'alt' always appears before 'shift' (or it doesn't appear at all). - if(a.length != b.length) - return false; - - var match = true; - for(var i = 0; i < a.length; i++) - match &= a[i] == b[i] - - return match; -} - -function printerr(err){ - console.log(err); -} - -function gotopts(opts){ - if(!opts.ultrawidify_keybinds){ - console.log("ultrawidify keybinds are undefined. the fuck?",opts); - return; - } - var KEYBINDS = Object.keys(opts.ultrawidify_keybinds).map(function (key) { return opts.ultrawidify_keybinds[key];}); - // google chrome is really the untermensch browse // google chrome is really the untermensch browserr - var actions = ["fitw", "fith", "reset", "zoom", "unzoom", "ar219", "ar169", "ar1610", "ar43", "autoar"]; - for(var i = 0; i < actions.length; i++){ - document.querySelector("#" + actions[i] + "_letter").classList.remove("dup_keybinds"); - document.querySelector("#" + actions[i] + "_letter").value = KEYBINDS[i].key; - for(var j = 0; j < KEYBINDS[i].modifiers.length; j++){ - if(KEYBINDS[i].modifiers[j] == "ctrl") - document.querySelector("#" + actions[i] + "_ctrl").checked = true; - if(KEYBINDS[i].modifiers[j] == "alt") - document.querySelector("#" + actions[i] + "_alt").checked = true; - if(KEYBINDS[i].modifiers[j] == "shift") - document.querySelector("#" + actions[i] + "_shift").checked = true; - } - } -} - -function gotar(opts){ - -} - -function gotui(opts){ - var show_ui = document.querySelector("#enable_ui"); - var ui_compact = document.querySelector("#enable_ui_compact"); - var optionLine = document.getElementById("compact_ui_suboption"); - - if(opts.ultrawidify_ui == "all"){ - show_ui.checked = true; - ui_compact.checked = false; - optionLine.classList.remove("hide"); - } - else if(opts.ultrawidify_ui == "compact"){ - show_ui.checked = true; - ui_compact.checked = true; - optionLine.classList.remove("hide"); - } - else if(opts.ultrawidify_ui == "none"){ - show_ui.checked = false; - ui_compact.checked = false; - optionLine.classList.add("hide"); - } -} - -function gotsites(opts){ - - var list = document.getElementById("uw_sites_list"); - - if(list) - list.remove(); - - var anchor = document.getElementById("uw_sites_body"); - - // at the top of the list, there is this option to reset site config - resetLink = document.createElement("a"); - resetLink.onclick = function(){ delopt("ultrawidify_siterules"); setopt({"ultrawidify_siterules":UW_SITES}); }; - resetLink.textContent = "Reset site options to default"; - anchor.appendChild(resetLink); - - - list = document.createElement("div"); - list.id = "uw_sites_list"; - list.className = "uw_sites"; - - anchor.appendChild(list); - - uw_sites = opts.ultrawidify_siterules; - UW_SITES = uw_sites; - if(debugmsg) - console.log("uw settings::gotopts | site opts:",opts); - - for (type in {"official":1,"non-official":1,"custom":1, "add new site":1} ) { // unparalleled laziness! - if(debugmsg){ - console.log("uw settings::gotopts | adding sites of type" , type); - } - var head = document.createElement("div"); - head.className = "sites_header"; - head.textContent = type.charAt(0).toUpperCase() + type.slice(1); - - var category_desc = document.createElement("div"); - if(type == "official"){ - category_desc.innerHTML = "These sites are officially supported by the extension developer. These sites should always work. (Pro tip: if you don't want extension to run on some of the following sites, uncheck the checkbox for that site)"; - } - else if(type == "non-official"){ - category_desc.textContent = "Sites in this category have been contribued by third parties. These sites will probably work, but the developer couldn't test whether they work or not."; - } - else if(type == "custom"){ - category_desc.textContent = "In this section, you can define rules for sites that aren't supported either officially or non-officially. See [todo: link] contributing for details. If you define a custom site, please consider sharing configuration on github (see contributing for details)."; - } - else if(type == "add new site"){ - category_desc.textContent = "Add a custom site by filling the form below."; - } - - list.append(head); - list.append(category_desc); - - var category_counter = 0; - - for (site in uw_sites) { - if(debugmsg) - console.log("we're at site %s of type %s. We're %s this site.",site, uw_sites[site].type, uw_sites[site].type == type ? "processing" : "ignoring"); - - if(uw_sites[site].type == type){ - var entry = document.createElement("div"); - var header = document.createElement("div"); - - header.id = site + "_display"; - header.className = "uw_options_line site_details"; - - - var siteTitle = document.createElement("div"); - siteTitle.className = "site_name"; - { - var sitecb = mkcb(site, uw_sites[site].enabled, "siteEnabled", true); - var editTitle = mkebox(site, site, "title"); - editTitle.className = "site_title_ebox"; - siteTitle.append(sitecb); - siteTitle.append(editTitle); - - var editBtn = document.createElement("div"); - editBtn.textContent = "« edit »"; - editBtn.className = "inline_button"; - editBtn.id = site + "_edit_button"; - editBtn.addEventListener("click", function(){ var site = this.id; site = site.replace("_edit_button", ""); enableEditing(site)}); - - var saveBtn = document.createElement("div"); - saveBtn.textContent = "« save »"; - saveBtn.className = "inline_button hide"; - saveBtn.id = site + "_save_button"; - saveBtn.addEventListener("click", function(){ var site = this.id; site = site.replace("_save_button", ""); saveEdited(site)}); - - var cancelBtn = document.createElement("div"); - cancelBtn.textContent = "« cancel »"; - cancelBtn.className = "inline_button hide"; - cancelBtn.id = site + "_cancel_button"; - cancelBtn.addEventListener("click", function(){ var site = this.id; site = site.replace("_cancel_button", ""); cancelEditing(site)}); - - siteTitle.append(editBtn); - siteTitle.append(saveBtn); - siteTitle.append(cancelBtn); - } - header.appendChild(siteTitle); - entry.appendChild(header); - - var body = document.createElement("div"); - var jsonForm = document.createElement("textarea"); - jsonForm.cols = 64; - jsonForm.rows = 32; - - jsonForm.value = JSON.stringify(uw_sites[site], null, 2); - - body.appendChild(jsonForm); -// body.classNamež - entry.appendChild(body); - list.append(entry); - - - category_counter++; - } - } - - -// for (site in uw_sites){ -// if(debugmsg) -// console.log("we're at site %s of type %s. We're %s this site.",site, uw_sites[site].type, uw_sites[site].type == type ? "processing" : "ignoring"); -// -// if(uw_sites[site].type == type){ -// -// var entry = document.createElement("div"); -// var displayedInfo = document.createElement("div"); -// displayedInfo.id = site + "_display"; -// displayedInfo.className = "uw_options_line site_details"; -// -// var siteTitle = document.createElement("div"); -// siteTitle.className = "site_name"; -// -// { -// var sitecb = mkcb(site, uw_sites[site].enabled, "siteEnabled", true); -// var editTitle = mkebox(site, site, "title"); -// editTitle.className = "site_title_ebox"; -// siteTitle.append(sitecb); -// siteTitle.append(editTitle); -// -// var editBtn = document.createElement("div"); -// editBtn.textContent = "« edit »"; -// editBtn.className = "inline_button"; -// editBtn.id = site + "_edit_button"; -// editBtn.addEventListener("click", function(){ var site = this.id; site = site.replace("_edit_button", ""); enableEditing(site)}); -// -// var saveBtn = document.createElement("div"); -// saveBtn.textContent = "« save »"; -// saveBtn.className = "inline_button hide"; -// saveBtn.id = site + "_save_button"; -// saveBtn.addEventListener("click", function(){ var site = this.id; site = site.replace("_save_button", ""); saveEdited(site)}); -// -// var cancelBtn = document.createElement("div"); -// cancelBtn.textContent = "« cancel »"; -// cancelBtn.className = "inline_button hide"; -// cancelBtn.id = site + "_cancel_button"; -// cancelBtn.addEventListener("click", function(){ var site = this.id; site = site.replace("_cancel_button", ""); cancelEditing(site)}); -// -// siteTitle.append(editBtn); -// siteTitle.append(saveBtn); -// siteTitle.append(cancelBtn); -// } -// -// var siteDetails = document.createElement("div"); -// siteDetails.id = site + "_conf_details"; -// siteDetails.classList = "hide"; -// -// var urlRules = document.createElement("div"); -// { -// var urlRulesLabel = document.createElement("span"); -// urlRulesLabel.textContent = "URL rule: "; -// -// urlRulesEbox = mkebox(site, uw_sites[site].urlRules[0], "url_rules"); -// -// urlRules.append(urlRulesLabel); -// urlRules.append(urlRulesEbox); -// } -// -// var playerElement = document.createElement("div"); -// -// { -// var playerName = document.createElement("div"); -// -// var playerNameLabel = document.createElement("span"); -// -// playerNameLabel.textContent = "id of the player container:"; -// var playerNameEbox = mkebox(site, uw_sites[site].player.name, "player_name"); -// -// playerName.append(playerNameLabel); -// playerName.append(playerNameEbox); -// -// var playerClass = document.createElement("div"); -// var pcb = document.createElement("input"); -// pcb.className = site + "_ebox"; -// pcb.type = "checkbox"; -// pcb.name = site + "_pccb_name"; -// pcb.id = site + "_pccb_id"; -// pcb.checked = uw_sites[site].player.isClass; -// pcb.disabled = true; -// -// var pcblabel = document.createElement("span"); -// pcblabel.textContent = " Name of the player container is a class"; -// -// playerClass.append(pcb); -// playerClass.append(pcblabel); -// playerElement.append(playerName); -// playerElement.append(playerClass); -// } -// -// var iframe_playerName = document.createElement("div"); -// var ipn_label = document.createElement("span"); -// ipn_label.textContent = "id of the player container when in an iframe:"; -// ipn_ebox = mkebox(site, uw_sites[site].iframe ? uw_sites[site].iframe.name : "", "iframe_name"); -// iframe_playerName.append(ipn_label); -// iframe_playerName.append(ipn_ebox); -// -// var iframe_playerClass = document.createElement("div"); -// var ipc_label = document.createElement("span"); -// ipc_label.textContent = " Name of the player container is a class"; -// var ipc_cb = mkcb(site, uw_sites[site].iframe ? uw_sites[site].iframe.isClass : false, "iframe_class"); -// iframe_playerClass.append(ipc_cb); -// iframe_playerClass.append(ipc_label); -// -// -// var sampleButton = document.createElement("div"); -// var sbc = document.createElement("div"); -// var sbi = document.createElement("div"); -// var sbo = document.createElement("div"); -// var sbc_label = document.createElement("span"); -// var sbi_label = document.createElement("span"); -// var sbo_label = document.createElement("span"); -// sbc_label.textContent = "Sample button class:"; -// sbi_label.textContent = "Sample button index:"; -// sbo_label.textContent = "Use height for UI scaling"; -// var sampleButtonClass = mkebox(site, uw_sites[site].sampleButton.class, "sample_button_class"); -// var sampleButtonIndex = mkebox(site, uw_sites[site].sampleButton.index, "sample_button_index"); -// var buttonSizeBase = mkcb(site, uw_sites[site].sampleButton.buttonSizeBase == "y", "sample_button_size_base"); -// -// sbc.append(sbc_label); -// sbc.append(sampleButtonClass); -// sampleButton.append(sbc); -// -// sbi.append(sbi_label); -// sbi.append(sampleButtonIndex); -// sampleButton.append(sbi); -// -// sbo.append(buttonSizeBase); -// sbo.append(sbo_label); -// sampleButton.append(sbo); -// -// var imdbar = document.createElement("div"); -// var imdbar_cb = mkcb(site, uw_sites[site].autoar_imdb, "imdbar"); -// var imdbar_label = document.createElement("span"); -// imdbar_label.textContent = " This site supports automatic aspect ratio detection"; -// imdbar.append(imdbar_cb); -// imdbar.append(imdbar_label); -// -// var imdbar_title = document.createElement("div"); -// var it_label = document.createElement("span"); -// it_label.textContent = "id of the element containing video title:"; -// it_ebox = mkebox(site, uw_sites[site].iframe ? uw_sites[site].iframe.name : "", "imdbar_title"); -// imdbar_title.append(it_label); -// imdbar_title.append(it_ebox); -// -// var imdbar_class = document.createElement("div"); -// var ic_label = document.createElement("span"); -// ic_label.textContent = " Name of the title container is a class"; -// var ic_cb = mkcb(site, uw_sites[site].iframe ? uw_sites[site].iframe.isClass : false, "imdbar_class"); -// imdbar_class.append(ic_cb); -// imdbar_class.append(ic_label); -// -// -// -// -// -// var optionspad = document.createElement("div"); -// optionspad.textContent = "-------------"; -// -// -// siteDetails.append(urlRules); -// siteDetails.append(playerElement); -// siteDetails.append(optionspad); -// siteDetails.append(iframe_playerName); -// siteDetails.append(iframe_playerClass); -// siteDetails.append(optionspad); -// -// siteDetails.append(sampleButton); -// -// siteDetails.append(imdbar); -// siteDetails.append(imdbar_title); -// siteDetails.append(imdbar_class); -// // siteDetails.append(optionspad); -// -// -// displayedInfo.append(siteTitle); -// displayedInfo.append(siteDetails); -// -// entry.append(displayedInfo); -// -// list.append(entry); -// -// category_counter++; -// -// if(site == "dummy" && type == "add new site"){ -// if(debugmsg) -// console.log("uw settings::gotsites | we are adding dummy site"); -// enableEditing("dummy"); -// document.getElementById("dummy_title_ebox").disabled = false; -// } -// } -// } - if(! category_counter){ - var noEntriesMsg = document.createElement("div"); - noEntriesMsg.textContent = "There's no entries in this category yet"; - noEntriesMsg.classList = "red"; - list.append(noEntriesMsg); - } - } - -} - -function mkebox(site, value, id){ - var ebox = document.createElement("input"); - ebox.className = "site_details details_ebox " + site + "_ebox", - ebox.id = site + "_" + id + "_ebox"; - ebox.type = "text"; - ebox.value = value; - ebox.disabled = true; - - return ebox; -} - -function mkcb(site, checked, id, forceEnable){ - var cb = document.createElement("input"); - cb.type = "checkbox"; - cb.name = site + "_cb_name"; - cb.id = site + "_" + id + "_cb"; - cb.checked = checked; - - if(!forceEnable){ - cb.disabled = true; - cb.className = site + "_ebox"; - } - return cb; -} - -function enableEditing(site){ - showSiteDetails(site); - if(debugmsg) - console.log("uw settings :: enableEditing | enabling editing for",site); - - var formElements = document.getElementsByClassName(site + "_ebox"); - - if(!formElements) - return; - - if(debugmsg) - console.log("form elements: ", formElements); - - for(var i = 0; i < formElements.length; i++){ - formElements[i].disabled = false; - } - - var editButton = document.getElementById(site + "_edit_button"); - if( editButton ) - editButton.classList.add("hide"); - else - return; - - try{ - document.getElementById(site + "_save_button").classList.remove("hide"); - document.getElementById(site + "_cancel_button").classList.remove("hide"); - } catch (e){}; -} - -function disableEditing(site){ - var formElements = document.getElementsByClassName(site + "_ebox"); - - if(!formElements) - return; - - for(var i = 0; i < formElements.length; i++){ - formElements[i].disabled = true; - } - - var editButton = document.getElementById(site + "_edit_button"); - if( editButton ) - editButton.classList.remove("hide"); - else - return; - - try{ - document.getElementById(site + "_save_button").classList.add("hide"); - document.getElementById(site + "_cancel_button").classList.add("hide"); - } catch (e){}; -} - -function cancelEditing(site){ - if(site != "dummy"){ - disableEditing(site); - hideSiteDetails(site); - } - setSiteOpts(site, UW_SITES[site]); -} - -function saveEdited(site){ - - console.log("uw settings::saveEdited | this is our site:",site,"is this 'dummy'?", site == "dummy"); - - if(site == "dummy"){ - var newsite = getSiteOpts(site); - newsite.type = "custom"; - newsite.enabled = true; - UW_SITES[document.getElementById("dummy_title_ebox").value] = newsite; - } - else{ - UW_SITES[site] = getSiteOpts(site); -// disableEditing(site); -// hideSiteDetails(site); - } - setopt({ultrawidify_siterules: UW_SITES}); - - if(site == "dummy") - gotsites({ultrawidify_siterules: UW_SITES}); - -} - -function showSiteDetails(site){ - try{ - document.getElementById(site + "_conf_details").classList.remove("hide"); - }catch(me_outside_how_about_that){} -} - -function hideSiteDetails(site){ - try{ - document.getElementById(site + "_conf_details").classList.add("hide"); - }catch(me_outside_how_about_that){} -} - - -function getSiteOpts(site){ - var newOptions = {}; - - newOptions.urlRules = [ document.getElementById(site + "_url_rules_ebox").value ]; - newOptions.player = {}; - newOptions.player.name = document.getElementById(site + "_player_name_ebox").value; - newOptions.player.isClass = document.getElementById(site + "_pccb_id").checked; - newOptions.iframe = {}; - newOptions.iframe.name = document.getElementById(site + "_iframe_name_ebox").value; - newOptions.iframe.isClass = document.getElementById(site + "_iframe_class_cb").checked; - newOptions.autoar_imdb = {}; - newOptions.autoar_imdb.enabled = document.getElementById(site + "_imdbar_cb").value; - newOptions.autoar_imdb.title = document.getElementById(site + "_imdbar_title_ebox").value; - newOptions.autoar_imdb.isClass = document.getElementById(site + "_imdbar_class_cb").checked; - - return newOptions; -} - -function setSiteOpts(site, opts){ - document.getElementById(site + "_url_rules_ebox").value = opts.urlRules[0]; - document.getElementById(site + "_player_name_ebox").value = opts.player.name; - document.getElementById(site + "_pccb_id").checked = opts.player.isClass; - if(opts.iframe){ - document.getElementById(site + "_iframe_name_ebox").value = opts.iframe.name; - document.getElementById(site + "_iframe_class_cb").checked = opts.iframe.isClass; - } - if(opts.autoar_imdb){ - document.getElementById(site + "_imdbar_cb").checked = opts.autoar_imdb.enabled; - if(opts.autoar_imdb.enabled){ - document.getElementById(site + "_imdbar_title_ebox").value = opts.autoar_imdb.title; - document.getElementById(site + "_imdbar_class_cb").value = opts.autoar_imdb.isClass - } - } -} - - -function loadopts(){ - - getopt("ultrawidify_keybinds", gotopts); -// getopt("ultrawidify_autoar", gotar) - getopt("ultrawidify_ui", gotui); - getopt("ultrawidify_siterules", gotsites); - - // We build ui for 'site options' here -// buildSites(); - -} - - -// page init -document.addEventListener("DOMContentLoaded", loadopts); - -document.querySelector("#tab_shortcuts").addEventListener("click", showShortcuts); -document.querySelector("#tab_about").addEventListener("click", showAbout); -document.querySelector("#tab_general_settings").addEventListener("click",showGeneralSettings); -document.querySelector("#tab_sites").addEventListener("click", showSites); - -document.querySelector("#kb_save").addEventListener("click", saveopts); -document.querySelector("#kb_cancel").addEventListener("click",loadopts); - -document.querySelector("#enable_autoar").addEventListener("click",saveAutoar); -document.querySelector("#enable_ui").addEventListener("click", saveUI); -document.querySelector("#enable_ui_compact").addEventListener("click", saveUI); -getopt("ultrawidify_autoar",function(obj){document.querySelector("#enable_autoar").checked = obj.ultrawidify_autoar});