From 2db14ed21a386daf0470950aa2f96d2f2d12965c Mon Sep 17 00:00:00 2001 From: Dmitry Borisenko <67171972+IoTManagerProject@users.noreply.github.com> Date: Wed, 14 Dec 2022 00:56:25 +0100 Subject: [PATCH] =?UTF-8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BE=D0=BA=20?= =?UTF-8?q?=D0=B2=20=D1=8D=D0=BB=D0=B5=D0=BC=D0=B5=D0=BD=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data_svelte/build/bundle.css.gz | Bin 5499 -> 5498 bytes data_svelte/build/bundle.js.gz | Bin 48394 -> 48819 bytes data_svelte/index.html | 6 +- data_svelte/items.json | 4 +- include/classes/IoTItem.h | 1 + src/WsServer.cpp | 80 +++++++++++------- src/classes/IoTItem.cpp | 1 + .../virtual/LogingDaily/LogingDaily.cpp | 7 ++ src/modules/virtual/LogingDaily/modinfo.json | 4 +- 9 files changed, 67 insertions(+), 36 deletions(-) diff --git a/data_svelte/build/bundle.css.gz b/data_svelte/build/bundle.css.gz index 00198a08e5697940170d5fcd6e235d950e48ace8..b28a1dd16a2f676a1d4b18eedd521fb1c9a6d0dd 100644 GIT binary patch literal 5498 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 literal 5499 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 CA*IOx diff --git a/data_svelte/build/bundle.js.gz b/data_svelte/build/bundle.js.gz index 2ec10bb5639a7d03e194f749a51631c8e7860f3a..9f59511c2e3d4bcc23ba448cdcfdb025a87229a1 100644 GIT binary patch delta 46885 zcmV(*K;FNK`U1240tX+92ne+hnUM$00sE2FPyvFICIPq$ImU;RkT9&eb3YHW=>Zu5 z94-f3#Gbb)!m4|El+Orb%$M735c@Q#lGq*RC$k;{vjQVm^0WCW!WmKiyMmS!S>5aswZHt^xM@*P}^?g zS)E5vhPnn+?SazQMbkXjl$FV$7E?p`f7DN8IQfO^-|!!imZqGuj->Pjiv_yyrt z<&SA~IMfQOGwv=Tot6Cg!-L5OB;)L?l` zQk#??WaEDrhK#;JwjBbJS?d`^ZE+k%Mn`8uX}h8I0aJTLnY3i*b%W=Du!+HeTlLAZa>*CjTfZZURJU>*M;ppfX;j?g~Y zG7%fBv^~{H7ge!`g_LTq>HdXWLkn7&(gM?tfkO6%FSJFfkAW9s9fZ1}(Mx9H?9dqI zShWO?n#>m9iM|(l0aJDg!Z4S_8Ru1aP=!ZTeDUpfuUz-h$!a^`0Ih5hP)c?PYWP|t2gzbqSum#jDfoGQ zig7NB2~12x!!oKn%O|{O@6KV{%#vd<>PLUuOTcr)s~mlr??+YFsmKRa#aaA-lyCo- znbfduc~{aP2vu!)hK0t_KcY!5%{sh>(|BM);y{YBd62v4m}7c-M@>umcDq7+ucC*~lxze3neaE2@9q zi#(zv`Mu{uvGd5bH&l(TxNU5N6~*TBLwI>7*Xg8ze}Gtw)7mlSQN7;3rU5GL`ZFn zN=z(3^+L9QMPNwfc)&41h=x#xZ4NpD>cqjuGvBMytjJ-Q5=4+)ah6QbPAt=vUIapM zCGLs|Z2X$a@3lxEE&X3_TvVp$$h-eC2aj#(hzDNutBRu5#~$UTuci0k*JXbTRTtmrn-8Sm45){j7ap_@zk_seCqU@re zDvAgM%%Ets189iKKSecWf8E;4=*Od%fL#Telvx)|e!UZey`b%eE z0y1OuD;3opiYxPpSlczk+W=B*H<4lkNZ}kbmkV*2mV|1lcOCe;8Coo=Fi9!a-%_oj z*?6t2rPM|_a@_^wffGPg;2THzsjR00XMBZ_55b?B0YiyZY`6m;8-RaSAAwLUq;C=W zSV*$T3`|l*Ql4iM)iXs7v}Q)G3!d~MbQnRQrhdMRRVPXDt*>RPn3d9v9#lm76!_Fr zVY~-w2l=M7&M0E5+&OAYU2Tm#@TW{E`i9d%8wL0J<(Dn+FAp0VMz2E@h%JwW8fl`_ zm*Viz+1&s2pEoXw<&A$|1EXc+q-deD*X2icz(W)Cg4C!WyoSri0xJnpG~|3uX=WzJ zWmM7!77|cIRI7VorwgnZ7CxeK6s1tdW%TZhMWFSTpqa7D=+$9m{(buFypeujFplp}ylq;jvmN4u_ zuz;j2a+t3KSJ@QnOQLsK}T(jZRA^{W_QIsHmLO%AQ>2(74u5}b6wfHVsc55V)*+UDLS=F` z)2rRKa*P@@qy-LI?CfM$cFAFtE~Y774ed7<6&H3|RZCJw4&_Fl)Fm$vlG?DcstQ}& z43)4;Ol5Dw&QM;85<{4bj|y?H=aDjs=3}Lug`Ujhh2X#58*IKFkd|PQWurUkVFnW= zQVM{bRKo8CbLR?l}G6TeG@-bAbAsGBgMa>-8Kt}tiEXXsCB@PT2Vkx z{$=ZntN}s=MUH)^Nbl!d0`FU?M+Ui!+r;=hA-A0tZ^(Si&JiQ5b9hyaU$xE-LSF7&@cO_H zY-W`;2-T9VnP|(So2$uk)!tlton1-zT7W3K|%$a{`V+TN#KZPBka#6 zs=o|TO4UYRuA%X{?I~)-TAcSN(Eqi4B6xpivS+pf@;hX&Bl^fp7okfB7X)!sj(qe~ zqM+XfGoThj--}>X;>tn^UPgxmR5(sapnEpO`2RqjpD7RiliP&SdP)ovTe%u1nZyaV z#bQK8tl}et0D_UehLM{DS-9n>iDQ4v zvMtdu&f;yR=b%KO^s}5hc9%;Ep!KL3CQC`I1T5{j&2&3durq9HKx}YIQf+Kpm-RI1-Th99WLgi zgM_KtkE+5aRrtIDB-w;*YYf=2t=V;3bK7mr9kj-Aa>BAfPH;?b**bS(XYqfD?~%(K zCLMjw(oBkF`+WoR%{%ME=-a=mgXa{yZ4w7==zL(a7OLcJ8PWw!nwzy=5@M5ahnSG%S;`FQh4262F&Y(5e!T)s{ZLcCBgHM%? zqW!+N0+E15yyjs(%Zqwq=QMwvR!7J(Xv7nCCdnKr1?`@#Nu{N$NmfjAhRrNugZKc8 z#E{^}xIXwve2Rb;_P(Rc!PSJexX9!xKgj!Yb}lIf8W(#tmaI7D%mFL|hJhGt5gI^_ zf6V!q-({S$A0~c{@jb0EK5hxvp5(P4tXQmN5S-6Ux*iFVF2~WtFw=kF#m7y9r&ahR zO#{`6UX89F)&-aKr7&t1?@qn|tCa2$3Q9HJ-2-&O5*l z$lYWUjcjQpj?2zO5ZQlgs+vfu68ONl)96{^0%~MrA%Ak-K2Lxw>4-Kn;u?Iy-U$~szIK1&)Y|lHl@5p6X?*;u z3LnCqWLDcuKdha1kP6oZ>7t`vBtsnNNAOksm!HMRAISZ;8SSy<_(L(OmJ^J^j#W(0 zp_rbq_PD(#2Uy{$N$*CZOPR7E`OXp41ZUBvQC2DvBcl2j6gX-NX=z-Eq^wkdv9X0! z1(Q9ArFonUxleyI<>GigGQcQX0*%n>d9(3+&r$U#=xTe^kdZ=5SdK~y!D7m&mac9| zZ6$@0fyqWoH5`6`ciRao;pd@2V*w@nM1CgRF;c@R7;s3_eW8`k?@^ex|C_q!&nkX} z(k()#YA9Cp^fw=>k5*|l6A{(H!AX&qrPW1w=^iET<>!A4#qx93_&5$K7K1cteb)Cl z4rvVEqzzcp*!U8#4nZwTYL(kV{%_eEo59<4qMlgWS-#=!Fsq{ZRIPP?ICS zS)NkkD0Zfhw+`0e-@bnOB))kcaV>6D?6PCDP4jQXnp?+d);a26`7K0-ed^9mYko$5 z_B(?ft1^E&V|g6y!({N5KIWaC_n=lsdIpzpI>u3TdaeD#&LJGII=lRt&yz`7opyA6gqRLfV zS)I>tSYSUdrlRP;9?_YQIu&u-s`*5cx1y6_J5e_#4)}f&J z9bmq-k}N%jhTbXXX{P(M`uAo{0w_ej>-2jDo3OGJ2ebUNbI#q+vYPQWOZEkM#w-FQ*DOEA0GRcWi%ZI5wJ0rgYC$q>?7HDwY){S2USSYBIIv z)!Oo|VFHqe3jg|9O+fv+324wT0sZyQXaf5E6Gbj>3)3R(Q-muOZpc=OS|dIOYs9B( zb9nr5T;%sEd{+~i+>L&Xqx|Sn3Te7c%0=Vmi>k3~f$5ZYOEHimFNGv5vZ-3jr-y$> zm16X~u;1jIZ%&b?BK=U1Fn#qWAEqij7Jp#M^?NJB)$jj##;f1{ z#M$+eYmBNN<-(Q<8KFq8#)@iWKO>L))4lL8){-fXIh9b|ZvV*MvL`Wfxq5%ncbs$< z^Q5UKz2v0RmKH=bm zgE&8R#=!*#;R}7L76hqd{XDEXQ=p+!R;a0FFr^jY);32b*V{!^uB@&Sr`2(1US_Kc zu2oAYhDt`}@+VP!J4VfVNrHcYlwEAZPGnCTu?yK@8>@6*v8S}~DbY2EqOwF$HHm^v zu0;scTiU4fP>v2qhh3@HNB&{_BkRj@IAp_T(2mgy|4^=e4%O;MQ<4RAGCDDUPU7zv zkQ_+a*9icf0MLm9bfN%hy0d`JMrQ`lS^Sa#NfMCgSpd)(0G&xdXQqEe>2V#<>FCq| zI*q?#K$3VYMgi*-uudhcQ--zPII9M8s!4RJiF2ySa$4W;_`#_8)g}~nb-M^1@1}bO zoI@>t=Zv`jBmPEyh2`d^I#!M2So+M7IkS@G;6uFkqboBoE|dqcdk#$1B3+N9S9q^> zWy3dDmfh4xI@SSkLHvKCwxq$%7P;w{ylOcuUo7Ctk;cBvV(f!p2%hJh@KSrqrQ((G z4;5|Qb-Zu@D(-rlCfsj?;nzk&0;|B&62)O4N+xi*^BhL3Q-)Y%q4!K6URQPyXNF9;-w5}x_~d^D=vd1Gs@GT8;`5ii z>rfE5O)>a=%PTac;)e_@Sbi4B7Vdk%=6)SQ;TB~i{l{9QSF?ZnxYg`Gs_-XT&1xF& zg_15B3)=6k3~x&C@DLjSXYY~YZ>6y1!_f%WB(0IDY9H~;Y$Ea&RiAdwI6Oo6t(K#U zy1tiPBRm%-Z3=$_ZeARB3eve+{I^pIAZeNu=dDv|H9f+9ILyn&lsY?X(V;r4YV9Ag zPPNTCm9jKbh`Op2DmXFH#&(DH&|7rWF@@FOuO&})uv0!BsaD}Uk9zq#CA!T%7l~I4edo~m$QLJMcnRZA!Jp=)- z$ni6h<7Xcr$I}qQJzxVISqOQw8NyqFfSprAHoC+t1Pxea;SUUH^%;k>-LBD@Y9WyA zs>@diV*Z_|-vx$5s?jGk@%!_qh@=bf2pHUY_-;z3K4zJYvKM-p?N+{GjPV7a9TD8} z(@q&|`5Aw{H_;O-7J4BOC^!~~m;NSa!DkRs14l?975z|2vgLep(#Hs|TnikWe*e#j z56y)u@ljm(=PLYuEf*eyXpiK@9+B<=C~)d+=;Nn{vwT09y#|nx{fyS+R0l6d@+Z0) zmV&c32RRhC+w^zHhwVW!Slt=25Uy+%vI8s}Ue0XZ=`^SRD zZBrEvyU4rQ8kaM2i{xqKuZU^^^WiK7gqJAjo3$MVED|(qo4&c?On<1`5V~Md`E2$& zpW9~O_KNAbO@J&C2NeL(&wC*~L8c}so8pRD_XY`dP8vrd4h}GdUa*1RW-ULw(=G1s zgBX7&A7qQ=CmK@W4v71)a>rJ?w*qzn+uYSYO}GM?Eg&!jeKnx`NWNh21;V-9yIyRc zBrxjO!~7T$NK9YRuBr5fz-C7&9?$Zm;+>Bv^_x+-xh~};wa?(9R(B_B+^!jBvH@k> zyiV@~-@ZqC+x%I2@?t2;oYLiybPPPLC{2H!_`?4KKr6>7Tru#+){hHh=H!eh^SZa# z<<9V{oeqiTO*-{bz(t-p4nnGH9JJ*Vr@Se_BW{bxuq`udl(Ds#kRp^uwKixnG}?@s z4#5It(AGG)x|Jr#MAd9{EnL)rE*zi^5madDW7^R62Z4K)Kz*!@TcEj-vfb8~K-qsp zXh7|@8yeEqSr(V1+R$lJjARLBZ{-(dv zpmCR_z2kzEAywNgVRIe0xh~EkuCz>1;MVt5a7%>e9EA!>9p!MJBQyP0G16a$5#IlF zL;5BM{}~%*x@q|=dFIoZFnb3Aj*owt)W*@g?t+-=x-!(zNX83R81H#4*SehU#G`(JDhtbE9soJGb2Y% zM!Z*zu4v9}E|_3WQKCw;im3rz=U?O>jrZt0a}|&^x5PmP{E3ep;&6udgob}tc5k&; zy0ZJYM-o&iIu+7DPWXoYhHq#!V<>2Q&M_$m-s+GK)(-h#Z{!9db4fgZs~vwui6jHJ=cxxO6muL-Q5xXMPSpTo;wZS)(Amf%1B4(y)Qg@tr2-b$C*C7 z&Z#|3Of0Ow%jn2s|2A2EZuoxs-~qlj1qM?E@3v7hVsz&)w19ukh6Eoukl0Qs`7*zM z|L$dR|31oN)~HKE5O5B1S*Ee&|MQpfR^S(h`8jDHipo zbK>eVFP~n!!}ouww@4dhn8lm|m&U|5m?_IUMm(Aa!4qgUwL7`9z_RCrnHps@)0^@S z3&+K&c3Zc!eq}X)g*^T2v8QFpz((d$byt9=O#z;g2f2G+T&gZ+a1Z=uT?Wke9^%iE ze6ytK=UH+rJIQY7${d8LZ5(4|Te2=~H$B9GYqBY%QC5Gyff@|Knoyi2%9l01^I9G} zN{VlaWJ*gKFT9XwCcnukF0MH1!;)||z@PIz{TZ+&!Jc5TeAI%Z^RX@n|THbkX+dZ3w4& zRB_Zt9>R(~5l`}nSV*gx=!4f#BPXCiG|rH%0^3;&Y=?l^036m`I(Vb0Pcx%WgbH)x zYSG=bMR%#F4PegYkb7rXx1NOwzRvM=9?m#UAZ~v`aripdGW)5wi8L0=l;Zu8{Zjo> zJ@Gbkj!SgRmn7Q}CI9yDTX4uvN0{k>&gN~-IC_G=@0{J$um2ZNGq{x@X7S%dQ3KZG z6JaeH=>F|bfNlqUzQTJT`=D?id~|0Sjxcc4I5{)$(Vw8-A3$d1W@51O8OTURJpH3Y zWX6BRIjHbS>-Bcq3DNqDg-M6FcIQy34s^pO@6r3XSa3$tR}@gM)o};jnEjG>A2AZ+ ze%QSob_aXTO`krZyE}*s$%*YL`7-tX;?XgNv5DB#F?}7=@9C%kqDsf>|1%NJ->Xlj z94VQGRs_>&@|pFW5`AR})uKU2z9NrUs+mriTp8aQ-oFP+_@3>M(@Jc0=X z6P*BI+Z^+r?yK^me%Fa-?@)PBIOve?^3gh;2+cxb&a2=onn978)F(VwW;8U(9Ig}62| z5S8KQ@-h*1{33yZUvlX3QeoR-xxT3V?z8nDZvaTSfGsKg8RsHURHlK zloZ$UlWDN46C0+3j7$e*Q+(-aAb@IgEa^0R05iuXP7!Bt$ANQ=q}5fVUO}bDIF36L zF5-~S`%nt)T}_?E^%VK?KRzNjg-M8ieLklY8{j+TkrDleRY>kal)N`_hE0X{4o3FAX|_4;^m; z;bBNLfBNWwhq}aL9~fJLwMq32E%2b>oGCo)@WB_!NK>939}lMB#2?%VTibp7+XX3g zZwEloM-kCipG8uEgs>wkpCBNYU~G|;2=H(0(SEo`vCZ*3w_%^UR;!wsi%$1zF} zAZ!Q9>6UKBy76J*d~4FvO${y0J53A~NmHc$4C~VfDYb|i6aMMHFj~?<;=emy+2-2e z;$e)kE5{4wTz9n0xKn>KSzeI?@E;f&7xh1UF4Ut0c@V!~oZCPwsZXP1y|Ohq0>kNW z5mK^vW)TJ~m=TLHIyJr(Og2d987% z6g4@=D?Xc;3k!BH$m6vuO;~$UY<6%rYz?+|=+7TL;8^b=4)UXn5$szfZ5h)V^=948UD*>mIQ7IcCPvXDQvi9WgYwW~R zp1iS=!Y%Lq7uZN)lv9aWEU#(Jmy?Yt#D6C(p&%_GiF48tX87sv8BWr{I|@>e^JC8$ zP)9s*G#)pQ8D2E@Pm*Q0u!yM|I5b4z1^TTR-wRN)`=|<0!b~DELWQeUD0}BjSLNWl zY*366G0krLp|)ji+a_oW$)s#eV*p}h|7yHPTe!_#Acw?-W_DGb+0h+md3?%@QGbiA zv3il>VjA&YFYd44HV{WD*x{A9ex-PZY{D!S#*2~|4m3t$JEF;UNDR~K#JaSuWQL94 ziK$4{vM`LsS(O#FlTm~$cyVbo*=%|BStOA19`in34#_N^uGG*TqrCSr6Er`3V);oU z#<~{H9M{5$_V}K}mJVs5HXD7K3xA`hE=zoEi8}gYkkmqRfvw6JUWIGSo>_o}hCmA4 zSfA)<)}vt|(Wz z_+k&zb6?W!(*r0I@rRZqZb%FKx^!d-kZ= z6B4}gW<#HT>L4>BEP2@?(HM1uqU1X~SG;&jJRnnyL9;Aim6C@pp5)uQ>djbHp8zwi zkyuF&I?97NIFL>4wkLVt1FLMp;wLY|10czL1o!>k&~Q@5+*VG&v42PB`DV#^)RGP( z+(AD0^%aiNqMH{qiy{v^;ZP8V*gQL)4O?VrBIEC(I_TUbt52%WJpSdGf{;uHjcTp5nHP4Q%O?Nn*QsXA2GkNa1mtX5hf%apdwLCQ(~)@cr(SHSW3`s=** z3_yd_GHJG?M|$`rKYwLqo6v4mn(?CqS!1yY9A)5f*D%_v3Poq&Zg1BX?cck1Z%ZZz zYMk`Y`s6FlD{H&jJSJmmR(CeX!bHBd!Dv!*%Ro_AK$(ZHn*);C8i9@Z2HV||Wlmq(?=zh+-33LOAdm^xEoD*i~K!2SKJ;e~<8LiE}*6}&^ zG0q441l0if{OrNKkw^YWP~@RZ3nwV{l(yAzPv9MKjn^Hgvw06|v+WF_`T?hjNN4n* zZ-z`;`|i@^xK{F1+&a@c{{EaOvBOvmwleo6*2b|N+kfZ{!U?w9H8j|C8{@t;_J@y6 zVl-~hX#z9kqkqh((Az=e^kJX-u!>$tvCV$y&c`#SSv(}DL`VWS_iOv1aNj#6c1-&` zHQG6~vRBcKLqVJFXxwOMq^<|o6Jg#hx2(q*2K#)rkYXf$0?|TmTQ~f{z(MdD8r*H< zeF_P1hn0kEP(tRdkkIj*-}bCMP$i|1b0QP#PWcG9K7XI8;xCQ?G%d>{>fFAwySshw z-p)?Hx4V01XD6f!4KjLi_THVra;PTMgC4&=!0%Vu)2yrDc6NK)yZ7$h9^Bc!)7!as z`<7_Ht73hC5XG-MXh_iYTot$cs(DlpYc1!f)2EPT{k#C3f-qB2p6s&il2`s=>z}-D zpq~H{q<{JQ>0bsLagRRY%}pc+l)g1UjsXhbU?i=~5CbFBPM{w8XOq+}0g(#7TCdSU zyEmNOkBi|9hY}O@VESf$Yi1ohoU>7%r^o80EofkLLXkR21c_cy4tgzhR6nCx1iUTr zyh4vtb6WE@%m%iRO+CxbfLnD?wIg`1xkDx>ntx|EpQx5*bmlUX$|r!(P}~Pc1j=CV zC84#*_;o-ZvpltL^e-98hoh>_w-hnZl`l$#rJz<|Q{uh9=VHgD2J+cAc;l z_ld9+?wsR5TF}c)?lRUN^a8PzMkY!X4k?rJPc1|DqKiyjZ(*01?2{3XFQmbOtbg0+ z`wH>P2XJK`tw-qau#5qrypn}#InL*j1JlC?*{C#%R0ewvsqY=#1={0M6#%xJ=_Z^G zt1honl%Jjxilv@{qZu#R&Id0U^L-;g!)cg(S&irpKk4>mT2oW=*~mt0rv z85Rv7=#%HdU0Ili*$jSfqzzyVq^yNN<_af;maKU znR)p9>>S4~!XNe*S+xisCa4C0XW`?tNLsI88xFrNFskzNTQNHkAZCa^(MBCZ4M zqzB7pGh1CE#c(y+@qaawZgF4i?(XjI_OF1@BEr2M3}?|kgkMY(`fm+1eXeAI^=jGT z4L@7z;NW2B9x;ms?}b2HYO)7p0v*=4!|Ddda!XQ-X9)|Kw? z7tL*LydS%L#ej6ETnk&DVv-)D6Y2AE;rOsbET^t7eNMmiQh%5a*Oxh4EhBwp))ZTF zlt>ZV?a7_ncYAWmoXU;j+r8ehD}6s;VeLR0w{tAn2P1^tarjPp+eG*1e?xU4Th#B( z&xXdQC+ZInl=nq^ac}qDG}#@>=FVWliR2S$Lwc&0#t>4R9YT8{{nx!44Ap}KbUGDR zuWrxJ8qI3uvwyG=vzT3|wsiP%#@>Ahkn?1%|NN$|6R0D zUaJ@NTJ&FsVu(b@{Dh;%3fq*iC0~(qUZNW|pQ&pMRez&RxJT(21=BLm^l(Hycj#$s zhN{gS!B;8ryuBJuOWrDYp@vDm0qD}5?OqdMLwPbrhWj5`EeOiM#pU(% zhC~Y;7HaPUG)qm}(~MhG>jLAQy0N?|b%bxBZE0n~`WU@BKi(E3#YVbqk*N@GWi{>#BU@?x{ypr& zRYygB%I0iZGdz;Y79=n|4KPXQDZ`e$SU17{%{5%)NA-Jk-5s-b9o`#e_l+u^ZEkAK zio8dLC6-%@W8iNe8+vZw@{(?1CKMc`hYOj$(SPIXh!_0Am|U8i7HOr@f>4>OrB3$( zPbx!aI;VYAvWJKCc6{?TG3D-LkJCfbH(2Fs^Gc4R^Y>U#VO!>L72B@r@^r0}Q8*u~ zWD7^HI=FqTIzB(mbo;)hi@EVW3>kHm$Dh$)jVq2V`9cG&J;|UNP>f{Jh&-nF&0s*Y zD1S=>vpvRf$^kJYxEhjK3*@7`O9Vi678$t=e_TUShJvjQ4LneT07R^(uUB*ra|?#} zLX;(MDlNd?MOqypdS7sNT6y6RT-YLl^fpxu^u~q7uSAd83PknpAi9@8M{2oSg_hDH z5Sk{V2qdOSPKD{z9Sy9iqpS_VXl*Rx27jxvH*dHVZ{CpMBK&UMe5@PFFi5G?F(No&xNE5I>tb#f%b(wW72Mw5*ntjj>Oe1@JrX8JiV>YVDA;4Z1KE}COWo42NdDHTNpIW^$TAW5T! zX?p>4p|4z8T5T!fEC&`bZLG+6`+owAuy;-hx^ogQ2*efs44XKSfXOe4?!p`DS!V0E zyN_2bc}3&KW|hC7>zSLE)M0dR$g}Qwvi6d?R9kE)|1iJek~+B+5!RQ;`N}1A>H16R zismJC1zl42zFRU%x#D*2%82Ae)g!)>8jF*f_XNN8q_JJf9nPPsSgAl|#D6!ZV}DAX zWTY?FvIn4k)~*I%%u1nAnFl8Gj>^2PGxw2sAM25Cg)EB<_U32?>RcU-aw?ft?XTqO zVj2EW#dmtW@b6VT2*1HMo-&EY^6nab8ySWS^>dQKf>YrGI{^5b^CJ=XILG2XKgGu( zJ?4yGSy+eWi()>beB`);^?#I`;hbOPE8fcQz3^|q6b|h~|ETy(9{tW!{xNsNaEN^9 zF;dak`$FuC=|K;0zL?w=J9qc#>(2h<-t7bW!il(Ko8$WTZubXwPzRXQq5_a*_`TXL ze(~K_|86h*d4*frYw?xwUeTqwEtt$ZBa&}X#_ue!W>4F=R_N2k#DD4VoqD4H%#eN+ zoVetWDi#+q#ABomp*k^t2QRfzq&9O5`O!6VJtlin+>_B~`r}-GfU5K-(UblzL9}z< z5by8A?Zy|F7?HB0w*iz14maBl16of405S_p_W|^ z1Pgav)sh)f`5^-_Yk&2I7m>Z((BeIG4%^h1f_Ay#o|n0KpAP@(x5Nq0{I)qoKA_vC zWpw)?{4E}Qcq^`R0(Rx3j$6~ zWA7{3Y_&_P>~V&x_9Y~N;y#`!Uz8}FoM3jl?r_4kdl}gAq<6_mDtu<*(DfQsyhXHZM&3V;7TQfK|dCeSe zh$Z)=iDDk(628&k)G!6n@i^v8U2?)DeFUa%Copopqf9-2l{?dBmSWcEgT~JL`tVoV z*0v2kic*^*vVY61rZ=Ztqk9i-Zu%^QajDFRpDwa!G804JhbIv>QoodW39X@yueuIU zBQ%$vTtRTnxghTlkgr(`4U?2?v$Hm#6X4?ypL}>@y!YwHHsG+)4RSU4vD|NNqsbFk1ReUMzMwHDz_1o#mV&c0TfyaBe*MW?;JpP zl-e$(?`#V(08T_N z@9y;OE>u&gA0uLacb98cda{JQEfB+O9pUZU{eS+>Lk4|L1*X$&al5WhQ>os;&cU6U zW=)yzP6m^Sw+!*h)T;Gz3)bjyvUh<;$d5JNy{g3qYBG0ItsMJ_H%rj-p<;= z<$rN;e>W`f7Y9TjfYi2~7bXa(9YGK4A-TZN@K;{GSUr3w?SR)D+6$}ZNl&#$T{|mc zt$UI_Sp!DPdi+0Zq_51R?v6*cDkNM{Gp#1FB^ET*HT{v>lK+t&h2;tmI)jilW2NTj zBA`(wG_Mzw!R8JhNLVcocZhXJy8U5DqJI_RoAUPsgz^88^&Vs`!-<|It5W*yOx|0C@Kkw#~kN{bGlCgAi%egccow2P&Mv=}9)4~gY`Ssdcno4db|@qaJhj47kh zc*OFLjfAauMkhvqLD=!u{d81OisjH!w&)o8(V~Eb?|-kao~|o~j6dB z;vcG76D*QRO_!x{U=Op7b}VbnUC`@uYxf-;va)8xRnI$Pa&&3zgMSOv=y_+y`-Slt} zi#?>0mh>rM!tdUciv!bche+1gSWPyA<7>A_J?hU%oG*Z-J`5;z3qu;Cs6|WZT=JLbksDZhQ zV|6Q2miAWqa7_{16OV909fav{y4g`v#IBT2VPT{ZHt zeUYX9NO#`r5Aaayv3l!zF{dfU+h01$+22=DiaPqZv(VO61An)sPCLT&Jyf*^cm4MN z$`vY0yZ21ni~5CoG6HtxmT0W5g(mE0*HF)=epp8DQDiF29Zp9K5c{rp1KJ5U1|YsLD?{rJk`fX^0O~ zU2T}IsE}4#P0x_py-PZi)Um3Dj-^xM7k*w-~rQeU_l zKeTnP>TMWz8~5l*{G+eDiC_biiyOJEX@a~P>c9yv)Z;vKIJoA_r>>#<;x_+}-ZX0F z0A(tkn3EzxKn>Z(uY99cZ+dR`JCvo9&{)*3pi2P6xeoX$1(Z1FX6&dAxM)^8ICiCD zBbC%js()&X;>$AbJr%FTvmON3O{9iJ)`Rk z&s68rE{T6YNQguHi^P2& z5}zRXM*OP!?wwt)373HP6z_EP-CbQ>U0qdu5#;n3sW}Km9W%WMI)(=B4AoJ-x6zll zSGf@F*xT6?Y{`&4d4JLG(9s`0oQ`~_j{Fc2{xBZ%uH$c&&xon^;O1)EN;p^BrgQ9V|JY zXIda3^>@K!jEVCSIde2O8BfO|={|h8Kq8vE1(IpxnwJXmd`s(i&Pyi=-$F@oH-EfP zI;_^4lL~8lvE*`oDQTU}O-TOfs%GZmA2klEI*|b*e!VH#Pv|;ztOnbOtG*S=qz$!n za0*zSiqa>EY9Q&*}Glq%SGz8i95nAn%d$u z%VW!wF0(q$ek=hAXyo@jDXcs_g@4nKAeCDH`GJ{TAYPaAg zfp^hJe9TpXV4rA7S2~=mNl)4AUj^Gv0r_XB17^s&O8Hf0>tSkDdG@K$e18olU<+5Y zl9&>V7v~59Lud|pHwwGR|2T3T;}eRT z>`&?j9}lv_CL~GCN+ zyMhwKBva>41A`@>w+jXJDH}dpK~gfnD>oT4OxK&F91LqphWZAstTJunr;yDA?QkS@ z2x;?v5hNJ|;keTeAfb7Iy`*b27oZ~BcmPKnaC++YIi7!)z<-%-OCS(xYgRbdjnAgH zki<~v;NDc1V`e_>=6arVq4A9n?OaVwc5Cb5LZh9TkOSsUUzGs9P`B4gUt5chi<7dmXfD;cEz3yTu{h$B{O zj){aj0j(Fna(^e2HVAWAsJjTLqWK{&OQeg(`t7SmJ=etoV(YNeeQYDAa-Bz3mew}v z?MT!#8A=6VZgUNm%zLn`Y7q20hE}QxKg_eXQ3Lp&GiE4Qj+hxGJ8=K8V`R+CZ=_W) zP&RIL50T+$wUY%iaL3vrvDKJUC3`PIU7@%avgs7gUVpWQTIH2P2)%_p075{$zxk;d zUS#W>J7VC}jT`sJ==jObaUS&dWC@y!7wzWZ0=>L}kanRO_K|xoUeF`TeHTsufx#!H>hPzETX>u<@C$Ex|xEAh{XWO-W@+^~2o>65f66K<> zuhiH#FXUr2g?xXk#@)AGn40^wkd?95{+Y;cmN-Sm%gz7sbtL7v#-KT`5hiZ#8LQjc{Kjmx-OskVzLRn4ud(P=owWD7laE5~C zqFUxtlbQ-Zfg0Def9Vj{DhB_faP1?pa`X+Pk#4^6F^y~*4d)=;1xUz039V$~|6xd_ zhlR0fQS^UH7eznY*zuxSoCa;XsG80}Rh_3lCiIe(_R|??TWYlBF&{dojQMChOosY8 zG$T|d^q2TdHOYI?;hD5iyHy^fdEp`TlzwAG30Fs)a!LNIMk}5`K-uk|EwT!LU4CAA zphV^erm#M=)JUlizy*wA4oifjK^^ObqzFoL3^9Mk=kY_WN&)dk*B_^>%F{9Oj2=w( zWPhckfoiJTww#{yZ|zG(q12-KPS$N8<6^Z3DP|Mbq}K=O{D%(@F@!0--Qno7ypvC~ z)3r!mmCdE~@j|^>%_mo^=M(&Q=it^zNH85`8BQU#suMc>NrZhAWB2JeLV%h!6s1Uo zEM9+*Z?d*gP#w!VXTz1GVyuAdaJ-V_^gVOzF2;d_kADxDES!U4z5$mGA+rg*4$9d~ z9%i62`DR0eiXvfPb%N1fQ6!4 z<`Muj-vS0daw&jUG~Z0*ot7^`@7*?w!tH-6Ek)BjBHNbjcZs5tKiuGLQ335WrH)(A z6+`So6)~O@+IoiaVathRJSUp*93fFjjOQUG8d0J$Ig}jdp-%J!iBeMNcuI+$P@*(> zDwQ*z>O}iUG$w2E14^_{iN?tRCCc#=@~*bK{YsqJKq*wG`l&v$Pxf^vb%yYv#Q0n%BDt(FHV-;XeED3yj$9yW$Id#)HLM%)}T=!? zXN*K_0~ca9=aU~@k;rF~oGKtWvxt!{NuF0T_q?hOsu_M1MUVujXdysFNPy}V0#xH? z4%x_EvQg;=a_aMlg`6@!Qo+;i^C99+RBzdBzEN`47{HD6I{rG?DOd)f} zLsCtMerLzBX z#GjEc<za=!X=nA40#o=UXUQET2}*2Dw$r8%e_ftI45mmV;#Us&8n^w%(;Den~Q# zsNd7mkDzB(`?%s9@QRxG7IJ@A0dXy#-f=nB#jdPvT~?)aE}(bImnp8oN0#jFMxL-4 z*?c3niN$VuE0T>g|kkz6jGhD2sZO6@W{N{)X9PS;n>3AY&S zoly<%<>HE~A+oK?GsgK+ihRxcb3D? zgVOi+S=-K9?4WswLj>; z>4&G2K1KfOL*PoleK~>C)3u&&Xws1NQ?WlrkxsyPejJj!f{*4kqRlryvGE^ANa<7Y zVXg_#b*tYta5Uf6j{9!tL?NdwMDx0~*P_zeX|;NSBhTb>o0)sV%T#P3IpOt*pi3QMv4Y0UcW017(` z{W0Z|pNAsl-;ojNDALk>eU414NPrn@teF31F0(D#Y@?sg*6J}#e!c)D3QTLHnOU{t>; z;i>S-m#%+1FX$vKr@f`Sv7OTpAE^jJ7}o*kGn{3&x*bIZGRJr`1ru@z*5!@WQnDBH zR)d0l3^3v%02(Ho$MOZA94j^=1P81{YcyKecRHYfnxmK`%n{fWmNs#+D<;NWM=t-s zNEq-PkjW{&W2h!&qS*{24mb_=^vpBhPQG+N)QNv=7UKgx81U+BK`!+o+^D}tcf?|O zrR(}|8@G!|7dUSTDMnVUpO6DK1jRDHwMsat$k^yeMl(Y%^0p{`&(^ZYS;suLVp!x% z&8l5okm5*7^OgdWOw4LQQi-r2?6Bez_zpGk!B{zJoEF$Jmtm>X4Vc|1^uyzA@60!V zF_wQXnzwyT`F4dlK#l)J={6P2NbzP1GhAkZw>BcOZ)8bqyoiAizQ@RQYPX~`KPD)i&-IbD-#Mpc>I5E zysPuEEUjV<+jn4{)gEu<(!~}3nnD1#Z$;FJ6JQadb)f7Dg56XdQfI#2%eM4dfZTCr z+7``gtp{sb6c?9|fyLSGlO_f$=r&1OTLn$d^y+OEKhmiqmmblljn$);AT?Zm3;=-3 z7pMs_ADGN0lSSHO-@pOpti1eL(87PZyLX$|y9Kc|xkDzlI3q8en|$C>>lrhw7F7KA ziC5dq>RJgD#@KH_z=JaVM!|Abn`oN)JQpVDzElU{o+DU^OuMy{@^RaNX`{ z-kZ+#Rx1N}F9%IC26*jubk`syoTpwiEDhVaS|I6SCTT6lpQWH(c>heFa5{g4!!r*! zc5p+NY6~23Rw7)3W`b9VetWaK{meC%2p{^}?THPs_1M{MJ9(!_?(iL469Z-F00*5TL+eQ?7n=r{ zS=L;$U8TZqfQKXAH$EhNtPPWVX51t(1?%3-kU2x@Gn7*5u{=gjaDYApjLwfN zixy9kY9*rQP#s z;+`!mvYcZ=x@{h+((seXDXx^}4 zP2e@UeLB|6{i-aKRWi_)mEP9noEp^Yl5k><8D?eNujH-0T6z1{$_97s4%R?>*XH#q zx3gsT$f-H9&xD4eEr)-F!g+)pq_uKYbcvtIYx<0?>2u18R=61%5N5-oMYh#qrME(S zY>v#Un2M4Fuc^mRj6uD}*Q)KYemr`ZaEU|>E*+8D0S6T^m?XQYTX`B(ygf|znwZrO zCTxveN};1=C+voWqKD)JlC&0jL?4El%_`0423ckvj}~`dH*kLg{V2i+@A?xFjwNU% zD_G&DM1rtrA(~OXyQjF-WTm4k{#) zOsdMvs3c=yCqsXx3Fp8*Nq)g+!H!^}R}mf)wnC zodvx8{B-uQy@VdH!xfZAN4cK?_Qp z)H=A;EN&$}L+a!>bzj_>w`steuit&$rqxRuN`AxW`OwaPdTJsVPwuA`_{9dO zVm8Sg@C8hkDT5?Rkh+FG@B`f-=K$zcy5LP{=wE+myV3OOHupNoRQE+gDve6Q>Nu^j z>2Dn@JGT)<7xyiQ{ay)oW zEecAuZN57z>xsbClE&@Q!9>14^)aa=B5RWeXZaY{^0NG01MwNBI67Xrc6$AE`O3a% z8T)9NJgW?%<@DfiJL*T*RB+r-Xn7w$G%IhrxG%{p?7Jo<$vTL?JlB0u#@&O69lfZ$aM(PEr;kHFKZA6V)Y`lRc(+PiP zVs~bYcoRZ&Mp29IB3mmpON2=K<_2Qe&cLZjcEoRzfhJQ4=QPPE6H${?$ZZlBQ4@*p zgrsm{e86s2mFVj?Y6 zl3wxRCNVFhXfc0768^mNci-+nNsI9=QZ6D|S%2ZY(7>OemymNf`L?@{aF_OUy96FE zoz<#i(<-^|yWafH#5~fYYnDYg-Y1fGHL=qNm4aVvgl1l)M(f5s}#~np+}?N?S9ksTh7g?L%q9 zD#%-+beZ$Zac`AX@5?K34()%{!Z=SHCkm6yCN_t_td>{SiEQQA9LC9bcEXkPa&0a6 z&*dE={ft@rNYaLg>zn0eHFrRT7WQS3c^qLsQ^m+eOwMgY*Sd2-eUrpxSLXTPSuii!r!f<4TnSv8$!L%wG#?F1kU*jBL4#Ng=J?ywxi$C#tMvj4lSTsJ6Mxx2 zFmNrLut8g@scGGAweIrs&BPz>hsAb_Jhf{^>5a~)LO4^VWpYgg|h$qS1J_GRJxLpWe^-9IradX2pO0IzWaNf@Ku4`}Lq^ z_q=DU+2W1~aw-`O%JuER`o*B&T;iDP3l}A_>h)I&eNsg-{YeQ>;lE6O!^%m_^@7Ml zbGs@jlqP(x?CoN@B~;Ll0SYY!-05nLWu-*?^78mP{SMfri^dK;`f=6iH@=#<+v}Db zvjuk+G3l)6jHQ2Gh!04z7fuCVJ5q)M{>$|!gxC*^Xj7Q4*<5oac#&uASk$KSsmK$h zpHT-EgsNK+$YZT3a?z@J{~C_JS+UcsCRex_pW_Yu{3Tc?pJJngLPXt2;LCH6s#f6) zm)i4GD(Z_oyb&%0wvuuzgZkbJr0A)jS!{)u;+30_y+u5vFc;x&2)5Rw3yV6X? z`9;H0LgTGNsM7jsDVVtTLLqW_Z&t!YVbd!hBuX^S-*5E^^q-P&y&zTLOrQh=E3a~=S$U2q^ z+TCdJCSV%L zzRh#N8`t1sx4n9iO$*r6@wHK&1$`EEw=oQxA&-Car0ATMa?$Ku=yjnsekN{=o+;ux z*U8Bx?|N~Kt$`cp z&)TS7)0o|Db&G0?$Vew{>dBq@kTpwd(IxGd^CkJjE-87to0(nphL74g9`G;l=G8xH zy##+uz;@VmtFi>4-s=s$?9{x`pFQ%8=q)hrylwGNxf$mScxS;kzFt=mwA*s?w43P* zrKFjQ4`J(C)f&zp8^%d_ZU zD4y#{m1UpK;umbV*}t2K`=(|IdI(UizESaeZBt10z;HAetLqkead+p=yZU(Rkz~9} z9EYvxBk%gqgZJIL+mCu{SJ&2~v%o!XTG#o05x+P?320d7EJg#fEG|%> zljm^}$U>0d?T-M^BiC|(IJY!Zro&V_$aeuafGLEoY?nZtC)o@F1%3@?tDQL3{wUL3K(0->f+ z$oUg`(uA2Tp~q8r(zb`Dd-Y%UVA6$qfbn4+9tf-K@5?Fs5R&WJm0qSpDn8-^hc17UxoHdtv*odo6B zn7B=mB2EGks|L(OZ?Phqf+F4-J(K3D82UzCNQZF^lf9ka47L%O(bI|MTgU96ZXW@X)7+ zMCXjBS7CX=GrzvfpizHbH7Co99yi_$W zm;zLjA($2_vYud*1wWTJx>9ml0q#Jp$(~x1>vBzQ=ry@%*5rSdw-m3sOY!aAQhZ0a z6yK>=bFVwSD0@9`Rrc1MWr@jfNmjqNDHMsape-S(lH8knSFw`!vE#V;0>vy$-LN^{ z?QK5hl)A+EiMM28Ti2|FSFuxBx}AbB$}KR%{%dd~;g{FfKv{;>z<&0l2!{pZ8ciCh zm*7_paS*Eea;AUid3K&8d~H1TM!vy)0?(2KY(CaA8LfAr$)K!k`%(AsI64C(!yH3q zI0nJY18>p@)byANX&CPTb-)o<)XgVVx=#XMYy!kRFy=)9D~Ou1x<}%OrMyWog-iIe zU##M^wL}USt5SF&zj4GlS>5V(ml_1>Pe)W*W=nI@Yc_u-m26Cg4{^x6AASmw*AO@- zFs2Wi3VoHd-6Osc^ybxz_!0z#z2yuFJSha&@i{YqWcT74=7C_2rD-S69w! zFbf^=4h3S-Ev5sYO$Bo11u^T0!Qj;y-vo=CumUZLKj;ssXk^Qgq@*MtZ;kGqIlLIi z82{#&E$)B4$A*nFbK0>U4|>_g<;HB*e5K8B^n5K^i8IICf2AjZneWZPRxmVt9ya~7 zJ}HJwrL-rYak(EyuqeTdvd;RFIbtp0z=7EvMeJilF^P~^qMm+EEKp^6MI29Ec2S;p zb2(#@qNqfmhZrC*jwuFFyN7^uu}+}HlaK&_miT{%Sa33U;V9+ytcGn*E8_Of`hF6n zFWTR*DY)Si#emvnKZ=`t4|O&TQ4 z-4WT>NvLai$97R*>-u|#tRq@VX2Dh4G>$XUWv97hR!92f;B!dQ-7c=FVzjViyMQ;2 zG1-3+X)B1y>8X6&ew>*BK>XTqrw@kGgNRH^UgM|>%$&mE4x#0H%Sly(DOFx^R@X`3 zg4C2n;&P7TW9BF6h#@s<*RAga&%F4#COLoosA1g^VNNrS)<=Q_5rw;Axz0^Sl=c0YQ)->i<%($%^db6oDkt*(Dx z*^WatPzM^c+IXrKhV`mn!n^m5o-PfMPGzPt#HPe099fr9U*K@9=9` zR5rJ^22th;DrDU7%I~T2(>+iFETw-X)|c%qu^1J#Zlcmnzf$}1c~JkvcDl->u?WM5 zA_5_a#GPR5h7O0(WCyioB8FJ>WyPva2yzi)oAk*zJ6?KoQaAaNlT{!)4GrcfU|ELM zXflTm8?k@4DTW@& z$Yc3)TmC$RPZ{t4HnUE6(T4J=pFBVOYH@iPw=;AcvK z#ll(kDGN?RW}p#ok+&lxr(?Ro%#MOSqpU7oHvb5`MD;G(t7h&{T^385e-)OZHSRJ| zt+_+3xf2YUMcd9p!fBB5cM!z-3T#SbzuHxRNKu+L{7s3`GymNbh531 zoI?W7-_l~;T7kAEi4G08D#CuW-+}8kK*a2x!5zu9l*wyM7MvVOsp@|iLnf-YM&m>+ zr_>Bqr=$1FCl}i<4-n_#zy*FJe$9HirX??51I3=Q#@2D z(kCF91N%9D`>oxb*zTuT1 zttPcw4TnbZXPtnWiV8nKh2c z?oFMl`ymwr6m2Yu+E2IUWARYc{G75pzhKSI+_w{Lk5um)QXPMsQLUK2U*Ve%=8oWp z$#IXN3sT$MrM6sfKtvg~01Y+ANd4i!E+rJIGp$+%G{WF?glcP-?b7YJl+PEXs5CV^ zxEM9u$8DZZ4Y>~i`8zU0%mtFJkvgbZ?KqOaB^jHX(gjt5RbvY{S*U<_*aF^(PyDWT zgM#*4LaehE^3;FX7%`lbltwSV{qmn_0{=Rif=$Fg7M!{&<{{LU|AWOBsJP1@-NS8pTk|SV6aH4KPt) zXK?oz(~bu1Xs)HY9Syew1yinVPgb}O65E4_xwoWb)vJe-ah=(1!zSCHWSS0_TA)~} z_8g#8d8H}ob16S+Q7+J|gSeKNw{tnK_L+AK_@El}t}YkL%O7N?q5Zf@cn0JkNT6_9 z(CMQ^@f&}LgAC9a+REHIeIUl4UT?Wj^UEz%6WTI|dTr#1nZ#|H)g|?fn@yU)n@?s`O81N{1w2zef7;HfIk1~v#&n) z@~2`65r0C)FCz&OEWP~Y%Rj&T8Kr;qH6-}e5@P?1z*q74>g!y_AE}&IpL_LH+#a$^?Ch0zl{H0dA$DqxE$BLyjLM zQeHhBzk_&>s6ncm^4iFx9114F4q+QEFAsk?SaWa!Zi$0A2S*U%aj;5`V>SMVsz~`Q zB!xPZ1-rlkA6&c(tntB>xWF7AT$Kx~@L_IAm=?AV`XB{`SmPwbr`!NwA>F&)xcSB%PT0CrmMb&9)!eV2^NHBm0N#>q$5-R z$f>Y))KxHMbFeivXDZpA`7Y260(q7 ztse`iJUaHwr(=$m7QZF2d-X9$9}j8gj8avJ=7<@nqyh-wnt96iI47~3d?n8T9=Idq z{__E||5TvzZ%UOF9_a?eSDz{fALj1?h1mlN!=}o&1)8K*tY1ZUqP^vunB# zQ4Qs80lEd?B``lSIc*uDtsCNfvaz&jP!lu0F{QC~Ipl0UhddoUcMH0A&eXkQ(W!g; z>rLI0>_2nr-u|CEb+^x%x_8cpuea!`>UCdlo|^xRc?y>m z`t_eXdpqaN-ugdrVNL!sChUJdbZYMSQzP5MW-XFu+mZo@Im2TL#=Vxu6noUj6_~&E zQ3D@^E5Mjh#h@O5$(3ouhLmj7k}0ecu3gCb7>q#Mxu7;oVeK%5b;uOj<7XWnIBWNa z$-QxzJ#XyphhxXj(M*fJYENj9lN1EQ&N9Z@5q(us^p*RfuY88+%NKu3Q77RckWcwwyK^h(PXSg+nEGk-Mzkfw8?T9pMnJbTTdQ%6Cf$hv+Y6xnkiE zhj@N zpr*Pb&j35tRJ41Z^+x?}yT+!{!i47A39g0SUzY_dByh1DLFiMXcD-lJYY3&3km|sjg zLH0nX4q&dFtF*D$$Tp-Rg1W-bg&CAoeK}?TwEuGPMcI5Z!^^5;dv!;e$|i(y<{?1Y z|M&u5Gy8v7d-O%+CogtU2~)rabW!P|e^*G9?+Hftb$x#*+3+qeZ@E{7R&&GGr8tTs z*d?{;6@@U%EACg2;b>0b)T+p9<6V_xBF?M zw|I=0EfYFHsJE_z6@@rZQc4?F`bkSSX{wXHQwQCosY)8EKakefbNq8I<2SqAKzmPT zVuuyTw7!2SA;$X21s&zt^BX0#q`S1bzO=r%q~r7$t(tOtI3UU?6yDz}O|9hh+77E* z4rz4{(?dkE)>upIo9KXvR-4O2t9MKs^^Rg%uVV~SK4c5bHfL`+tLnt0vLHY7Qv*O) z`=Ae-t&JVEzyjMAHvCq-22R-%L*G*KO-~n%Thf28LCq~8Z==ziE+EegWAdk0;kz!j z3g67cEnbCOQlM-6{zWeNH?EpX{*AZelYZY3T=Ktnp@QBi3&PN&jLohJ^*Gc+haI^(jKeJ9v9BxRtsTb zy~c1BAHL6s59i1YNzm7$Ig`Z1D=vRWd@kd28Q;$bxv3#fxR*k9ByUj|m?cl-E*VIu zEBdik48(>nodNybD7YaJ=I_VB%@7A|n_MK^bdk`l`E{`H!|tGHM=Tg>GE9pb;@HsZ zX(?>s$vbNjmV7Xa-EEjiX3yh9*Y!5I@q`D)!3h zbb|ew@_2Lfo>_AQ{Wl(OqBkb>Bqox(4jRdxCrZId=38Uu}tKBQHE3`Iv9OZ7pY zBuED%{u%G{&+(Xl*5xm7B%L(nk~Tr?LA<1VQLu%MXEnN4RwIA&Bh3akke*$e^>qnw zl(8VrhBTwyF~!(X$uy@Te2|`7>Ir~`0M10HF(Fjj1X}Dup)HdG{lSSLJ(J`Ej>h0* zN>xv(3Qi=2lKO$|7&xURS4qV?k@~p!fe;rhwpEfSZ7HHuT#P6=L}wo1D5eQVwiw|k zrO%Pl^Eq-G1-gHu>$p-ggrNe^&SNd-@v1)M%v|@yoOR#sX6=I>b0zzEiBSXvMnIAP zl8TT)N5TbPplhLqL9M{}*6YDzO#g)~9_Z`0ny=ru`9e0h zXggyRr28RPLE)|f?$AsngO9rtGG)qnB%WDc2;#2zq_}@2-W2Z=?-%bCpBA4I@0KXB zriQ_z%jI@L}?tT-*>GHkO zH&D7P5jlU^eajnq(19$=%OB1bU^;W`Vef9?HC?JS=E$LmoY0r@vKZSONG;EDqPMiX)?Pc`y>=5&6;I=H2!}WWgN~d^4aVn5jowsqnRb$pI6fT z>5}fuEa}0_m|Lweb5AhJ+15cm8jUl#f7RkC_AmTo_;6X1>2nP4b=ccdA;&dmPFS-v z#>d41h7U7w@*`gw*g0 zdTN%J{fXM-l&&41+6r2zzm>Eb^1n?R!hnDNV1KNcOVnEg_H2d^WB#zStECPZP$1Y_ zl+;1P6J7n8?$9(|=$L0-SG6vqk03VneVf{129gJ;vhC_csjP7=Z!44cbi`eKc_8dQ zFnD9|hGCiCNO)5ak`5Buyx(OO-VbKs4N_#Jej}cl1ugo2FN^-~PRse<3_Q+BNXcI$2TaZ#&Y1lZz?9`T?*qZ+w%Snkd$4Me9B{Bnqoc!b3#s?5_Ua!Z<^6~ z<{`s9!Xika`FisiGa8iiwlq@Rna+OO%f3U|!BFwd?`=o*@{Ux!-0@W}ch0vuF6QjP z_dHT|Pw&A-++j0{(v#el-s_UE_Yij=DS$+?r)Sn_7u9+9j^gU$w4GdplCW{(>wNN%}y>EYyu3t1M z{#4iBCMHre$fLhkj!vdfV#h;?9gPwm4^)qb!~^)82^~H@sJdp_=b+?FxDpWZV!B&qrx6L^QfCvpQl_BPPW+d%87orpFIFb_s7UX{zQ`+NYW0SoiIKqT}T1ceNo|<OUk^X(L2*Ay6GsAOy^ z4s5#bJr!e04d$YdqwNiLQJm|5a*k6;E0oTIJ^Y7I9r_}OG4_8VqRnvGK-xb`(m?~@ ze}4Hp`oeDYtH_7}Y=P5E!S|WW{|XzNRl(wd+sgd2WfR;o$3dAtdHH+n6@MWur&phA z^ZD>4sjM`VqITnaD|Cgqk9g&e>*aS|{_*@017BUZ%F`QB*$N$pP`v@A!(n#V08F}# z`7ot9z4HDC_wIj2zS~T!=FD}l8PVH2@7BOcSbU&fx+EF5Rjc9IqWLt}0pzsyCjX4( z&yatt14#ba?`X%5$5PhZVwCpn@d<}9F0}?$JvX|&WV10Rytp9R@b&x?m)GCjUJCG58}?{I9tWjS4M@D zBYCeNy%jsPMd0B~KE6jf@XE`XJf_zSsTjhSY8);(To1D%t@85Wannz&iO85fhe;Q~ z6mN`kx&42Mt6VIAQhR0DysJL!kGu$aTE+JD2~cUKkDwKW$;s3sJ0)-I;3I~>po|r& zpm&MH*%F6@4rm3Ne3a0i6^w0{p8dz{N)yzqqnt}>C0Q-9{J zv8Qn}+lmj3X0Z^O1>DlFxMrf)UXL!`mcEY>IfQ?Y@Cx2o^RhXJ#G!gNG0C^(FvX;* z-Bc&Iej=i}CT|Skt}x~xKf;VQGKVHMJ7*xkL-f=xbG5!vPP0~JhvO7Yys~^{Uqs94 z!Qpn)vCwM_9XB5EIs^9!=s@Ere)MRvo34I(XZ7RV)ptIAv3Yj-=+W*cCXY{dKk?{M z^tgX>8Ag!j!>lM7{OQ_YF73!MIiK8L^DhQL-EMAnUvL^{n4r@qN zjLQ_uKq!s=*fVmHOVlZ@%8trswm2e)UW?SLLb^q`uIYj*VmKrDn8w~IR|I2}b)?u&zRG#O*iM|AP8jo0SeJXpFI zIKZ_L9T7RiGIWA#W01~}(BR!414kN5R$WJtDN;Exp}pIt7+ZTcOLv_&f+mQ!5lCfd zu=7aJ2#E|FX`BIb-U!-5DkrARh7Ny=Vq*i0zhg?reEty@6F!)!jXP@)fEAbqnL!f0 z1bw@7U?0zmoTb_6xK0KXKBnWWYT~Mpaz_1DT(D0%@9x=Yw)zxZ()NoFgjboU&n;^u zQ?$LU(CH$XSX^=_6ccKfE-QL$iI;g?0E|+cEieF8V#}l6%6$S`PR0AiKxKbo^sNqJ zoKi>>MXu!Zv8R;{LDV+}j|ygD_(1bB9A|!MJktU2Yb2Ao*-_nJa8UXD(%W8rcJWiy z+al6Al?!Ya46nrd2s0sJm0EN<2Hd*$ScQyTl6W`*w)DdhA{No1AZNW0KT#3cHKn{a zH!=2xsH3KMrAKB?sXB6w`M7_%hvVi@)aucv6LH|Wp&lkXY~-Za1^m!zSB|K`+Xx@K z8nBVXicl6wwq`OP>#S2fon28IUGK&7(_PDJHQ;aTUFmWgPZ56=p-QEs$|SLTC2$S*z@hWIK>5Zm5ESD&PafS-=Ora^J@*z$<_7B>cK(X6MjK zUO5g>!2j=PXM1LPdd}_X?&)FeOL+{+Gz85-$)ZnWN)ZF|bbeAstPM09I3?17F+dxM z$g_nKRJ7lmw520__*9pt=Hd{*1(}})(G6F55pVEXzM9Ty}p(9gm$C4vW7aELXoM+)wR|x6EzkR=y5H z+wPS(1UEb9p39q^ch2QmOoQHk*{Qfr@4TnteuzaCS{UpzzXorjyspzC{fEl4_+DIe zj_qLDvvFff*m$zNT~xyE`A^E7{Qsn!cT%n~H$U6BapUIP<>-Gr2jo=lTR0_mj$?5u z_sxaH%hCVZX}Er`=$sE0qw}8dLDqLV+>@W|VN~Inp8P-$$G*#1o;|1HWtP@&5G#k( z0jmPbymGI{zauxu;48oKx8Jj8WM=*Vs+OD0n39DvFKn`4=J85>L94Vka6G9`83PKj zIoS?WJb-1+9r1r$?1-o0zL2PmL|srCzQf^BBYnM~9JQy2rDsr)5_8nV=;cpsEOU#D zL^d1ByBG0&Sw;r|(bwb6C~VL(SLkb%yLWv@MW$#Qu;HUR{vy^N_5yt<=X1LYF3CS< zQh4W=4NgbWkFhEF5`FmD%Qlk(@7zp=wGpt`hb|eX;U#}!hfZ)hGJa?$K?UugX!>0t zO`BZmiY;oxrRg!puG-iwCpaBVVQ(GBdvQgXC;aVqik3%Q+Dlu++5{7uG#`#q4M$^9 z@rtqBwOAfH!Rcsr+EG#XVaEN&B7E(();*4WU}Hb(1g9(cN37!e1^rgoT|2hEu7h_) z&K)lBxh;QX$0g?}$0k@@63L2_`wWoMRRrSoEOlko*K*rUo zC5~Se+=VlzONjPo*;iF|@JZ_Nh#$(n8*EdlPs~wm%^0E~6bx=v z%qxFW-d$B5cro?(uzI|q2Us&A_qB_{l6=pgc%V>#g;S3^>hYW&;OGd&jzR%O3kMJ5 zzRLF$`SjZFnx@}30VydI@#TI!NftL?`JD5pz^SYXh7Lp-6>K<=#tehjJOj9ffw9Vm zL9+~c?dF_g(2fh5XONU`PQI+NCqr{O>@$DeQ?F*c0T>KFPB^p)?bt%naIkUW4V&1G zBqR=p7QDB()^Ou^X?>NkEVhp`+;b27u_Oz*R9XwUr5e34myPmNOuJ@67>TYu912PO zLMWLw^vh$KIU#SkvW0_~V_w^4u<@!X3WqIc+Q~C{V-i_LhiR}&SWe_JU&QvLmPmiP z)(DR#Z5)JVUo>3sh`#R{R@{e3p2oT{*p$&^`+97`&rX@{k*525A^eCK3A>1$9?^j0Q97?yUBb}-oD))hPx|1Wgi8s z-4Fi$W$@lVrwvNA;EMb->adaC9x{Ji-A%e3TylD|qV7j6WizO(`~0)7p{Je+5`m*> zs{`E-%*oA`qM%BA2D`9M9P_WJ)Nsm51tQS#RXdHk-Q>8iaysr`QN7c5uHIjQ%31G@ z#dYJTe?`@HCkkKo9r4Td83LGRRs?g~o@aHf;HuF=)hvfcuccf*?JZTK#+-i-9QKxS zw%S6EdQ1B~wr{xK1X4ORbiXDqUf%K}B|X6J*NtHQuVHW6y=f?O;S*1VH@w>5bo7kK ze?DV3%|^Uo%~iRKVq;Ysd+G$IBj$(7&Q+Cq0=%C5X45TodsO6NgHx8uXFQ-#C+l4< zyGUeX%PtbJ*x+sm?CM44NgZ)D5=r1m}eH@ z1GnUla_k*X5OU|-a*#2y3%%y3ZI?b#yW7elGMZP5Qg%d6Nlfsl!$D31_ax5CN!NLq z_1@T$@9HsD!0apuNw)NbaHELA zt@Bd2HA>-XDGFD{Q@B<{;luM%h>RhHcS}+Day*5vizs|>UJ8*hr0`iO3g3*U@XonK zAatNNb3EA_Z* z#2i5J(4yGMOeH>S5WGP^OF#H=Pd%Q|18fo@c;L{G3q(F@5Zs}_bL`%BNM6w~;sbja zZ_@?cV9=HeQeusVE=b8W9yp-c83x^PBoVU>l0-cB1QGX17pl0fx;?dj&HNW03~ATA zQBl_$_i)L=$89&EAq^>e77+xoeppO5tOrG9=`Ki}x*NA>d#MvK}!@A$V_yLLSy z4o`MjzM%Jxr>}@<2$vIo>+96GGPRDM+*3RxKgtS^;uO1ZIv#%#r_&RI-dQJc=HBB; zod4ciP%iaculHFbCF}Wo->_+N>||3?gtj`P z?rm*uJFw=nhtrvV&tB?@V=|xh*O3|FtRW4NuOG9@V0KQ}bz@%SOT~i7SBFK%iuQ(g z7sh58Q`ts-(F8Oy!A%wG|7{ks+oL9VXWGX82!fE`(V+wwtB&#k)uQ{_CK|`CO)_0w zy>Qdj$wqLA5tk+<%umy?H!&>SYMjfq6glS>OWT#|&w5&a+A=hq+6*+EWb^4?e;N#> zV!r~%kRq?UQsgG-M|02q;*oxj`}FqGymjbpjo-{YqRZ8U-PKl?s>$9ShaiNjsU&?Y zC(AatRJ~fQTPxGbNA^uU_2x;^94!|#S>1+-@ z0eB5!RR*tr=iqICUxh9Vd5k{}#(1&2!OE!Py+l;$3}Y2sMfE_+{?hg9)hnh8SmIX_ z(V%2HD{(q*j!jvqUa9$g?Px>L;klx&%GNaNCClEJ-aX*i&WZ~SL)bB(;{!0V;tzh? z_q_R?sJBD)Sf>Z(Na)h9hi(=ddg)okO!nLz*FLa+`l(OR&8651(^lP`Sk}`qhNzS9 z5hb)U&LnGzM>d&upj@nG>6{o`^M*?w4a1;Kf|v6{#Z zNA9bC$k4mV=zo+>{op}|vY#NcTV7(BfYLr)4gPrON-3&9NG00#Boge^ZI8^_qH=tP4c z5sa1G+62>Ks03W6{uR|{oE8@><54c7-F;ap`}VW8Cu)!VKI#GdN`vG)!h5X+q}DB&#- z4iX<%$b+Hs$X7BC6s&yMh3w;%iq~92R~CVzu%E&WB5PBBhYY_gl{|2TXf^-iT_J9N zcxIIw#&ADTn(ND#SMgeOEW;Da4#4(po8@-sMGZ?!Z2$HPY}tx?HW1u~9uLz(kB8xH z0M6POdaN22Lc0a01IsF(&Ti#g3vrt{GS%2QbfT$l+cVYevM(yK9X-TCx=sse+sLi0 z1?bQPv0JIb(2R3&!8fAhrNp=tTq!nxnbgY%EG9SDrQn9=Qg9=8DToj+H(*CONxNp_ z6^N^zc>V-!nP@<__{YYdAg`CJ%d6M87AR-6$qSND!`8MZXh8ecR!J!YcoQ(@22aRw zGhKtVO+3^EEWpfW4Zs^at`1KySSGkBL_4rIqZ7x~;YM>KaCJC&NPXPkC~|dw2wPb_ zygIc}}c+sNO7hsqlR^7{hnkOnJ%)o&C=vB+19h7yte_l=hPlfj)(XQh!6IBP(#N z@fFS-nr(3`wtDKPB$oIalgbW|N$Kv76l%j1mNDjL;G`IqvKS4VC4#QOi$QSU_^ z^~hI8K|ZY2P@QN9vF>`DNu!2B+ymllwH^xcpEXXiM5nSD)arBqdeGy4T%k$|LhbEj zrQ21RGEz;+(JTAg=XPB-BjUgn3wo`p+#O*j3m;n*<#Vl5*-MinybLQ{5L(SWoE2!h zLfunlbx*c|@_3MdcpHIKd8;`puoQ`MIMU=T>8QXGq{-n(<2G%e>~f=!GHmET?-fRq z=1TGVndbOWZ}ftvmPrbK^jDw}dA&q&|Li24q9im>YN}~IKo^VA=$E7%s$N%`h)-4P z`33vasYo96#1^YawC=+h*E7P7>4vc5c~*D>d0vc+-39+9{xV9Dxf`zkkhz=Qz1}l{ zmgH3#jPnh~QHbDf83YqZa&ABWZ&TQOc#@R8gz5$#d$wEs6MdF{@pa~}_~&V>1(0%5 z_4OhZ&eLiAn|MVr(?TWM4>$1@MFl+>Q&2Llpzi|PFROy5*HZNj1bRhiWmb%~Jq7)W z;rjVF%G2zkRaL2hCmuZ9FLILh8CtHn-1|y*g8Hjt#N3?{>Mw$&3`;zZEG^{bKv$z_ zBc!4SV>D(rZ>hU~!W)ZoH_v@@`TVV0H!Yg;TwLDbi_2#VkhI1lNfeTnLDJlpR@H{ErA{JO}S55B|a_U1Ep^BuhT zpt=3Kx`EF3=#!_2DTONVoxJ+ooANx^pLye6?oin1`9uN-w{7O9LZ&+F^=x{w;nW_2 z0JyT`z5E}`9;v)Ak{?V-@?TWbDo2^WV`dJ5hkr5AADxnDhtkq#ATNyAJJS*S_b;H0 zSpxO%A@})zbmTe%;%v%UMf|=9-Fhmu8)b2h$rIX zfp;#EN|Atf1lK6R6Nv$sQ7QUT?7@A56#G&fNime-REk|GPNX=70ihI!Qfx}GF2yzk z`3uc ziu+Q0Op1?4@kEM`gS)}E6ZOW2CgKZ>uI={74kK^yY}^n-rM$_lMnPeRC|4T@96hE^!1%n8D#|Q8(^2-_VintaR~?XI*+d%Gge|B zEKIY1X;Ne{?olLn1CWX|eDE^@52NO+4}L)4)2KP;gFi~(-KaV5gYOXdBx)}B;O7KB zj+%=;c;{U_ruEaS^Y#Lt;%PA9ByA{3|J@`nYJF|Tl|{K>giSGUf)_*Tx2y{@vjgP= zzw{|Kgjy2}>u1gS5yL3Jl#Ylo96hMJ?gTG?hTv~#>L5ZWZdYTuW=no-+I1D}8lzpe zIK?BI;-wRO4`h;~#h)APy_ao14%kT}`sTt|DSrkHiQID~*8t-j? zR>0wfFO<&Dkd{l$sS26CD*%V`=D2B?#?;&_tzbIjOpC`2A5zIxBtdU(qmd z%I)No_KDIqxu#O74xCi`Zunv-{o8jS;sdK?^tJ3RIoLZWs*e;sLzf0DR{LtPI#sbp zfE+2vu1*igP%mf-atg?)f*dQzE+D&q3UWz7P5?PkkV6GI2IN>lHWg&up=8?)Ur@{Z zfZGI$RkoY|=*os(5v5uZrL!i=d{Ly{8_=q#QazH+V(5n73ypg~a-dg1sg^{rvj&FpV?2i(E+5HGh zqe}JMNwwpKFNkdD@R^avr-rrhqn0}MJNZ#g;A;R})nN+D{|yr$Txe5yW<3iw8s!{DG<0E6knm{t>MZ==ELPZozD{oqIzw8A7N`!- zS4Pgz8_2v%ZRozy_1QSDeKrn%mCwfgvQ=r9uF85*RUThJvu~88^{_OpFN(e4yKXL)Ieyl95JEdujWD&8kyZ~x5S(aQWOVise zq_=Ys^bShX+bU1*zARkZ$`qw2J;^TI&CWr2^0#H-dM3+CtO{4M@|CxL-DMZp^2EQC zg$vv}5&!C)h<{X`_}7KRKX@nNpG`x&TJ*{jyi-W<$1L=TY}SlG>zYiq)J;Wo=T@_4 zbj?>Mfi>}`J~cVz-II2t6;R8b+`qaMvhUppK=e!x$e&f(k9$6X z5yLWR9q5@r#sQL2bAV;lDqA8Af|f?W@@pMvo4|krB+=#o%e7U1w!Iv|fkwcxZXGx> zfuYQ|$LJoJ+h4FeJl`jWQM)qVFo#hmGT%9eQO7dhLWfb8WWJXUqYh=hskTvEvCX`S z>$-|8t=EAS6WHJY$?rM9QhYszWIl*A0+#ISz?uoX;sD9|IlvNsJ)UGfpfm#30_ea! z6L`h}(hG2awFBCJ5mS!fxkkVm108s30{1yUIs^`|CP9z09D(Gy8$~eg=tXpxU}*hG zTer|r=oT6|yz>Og&gJsuEFxvLRZrL>oFt^?`=$>f{N)z>&Nazsd=gki0VmUNkkyh})EW+Q<@a%7OqdPs(Z1S%WW(P-hAner!ugw_Bg zP)LRb$()COA)$2z z2^5lDgJi)&azaR;JYsE;mfD#G=a7)l3WNj-$%#R-=pi{KBv3W&5E3oubC)Kdq16gW z6dEKYupJEp9u2M@E+5!f&z)h@;e;a!x_o$J(RWgR_c^uI+?iz1L-w6ydz{Qy>2W%! zCik3lPb8)L4`!7vUk;c$U)LP?7;ooHNT(LK8$Z;~t-vQ*=nL(+e(vb!$8*=>I*^z^ z%LMjJ;J|)mJ68JKv0~?rl{a^+pt)lu%$;1cY-_M-(638V2WcuHO)aFUh6&t}rb5!x z!~|r2L>~}!tf=R!>+hebu7@9I>&5wBrFD&G+m)@=^~!!fPTtcsRp+5-ZG|Zsb7R%M zOVN;HPi^dp6TC2rART54X)^opZ>`$4#jQAWm5|&T7o!JPZ@6=`wh;&-fm4+oYm$0w@yN|hTV|E-)5K+^XO)YC zeK*-H1G35HW*D~OB%5m}ke7_l^lo@O_^kd2AJ+8cEOmU0owmAsd8F}dmi;gbw-2&^ zgbil1tk^7Wn;=ivN@ecz7}|S1Huzf-xEcA_d7Xw9I};Bj8kJTrKElFxwLj=)QCTmc zb8}OA3H`{0)dDsmg-W}NujBlbb$n9dqd(Qf4HsyohiWwKaJ_t)7!+32V>V(?e~e!* z(QAX=Khk@b+Z?9+;{NTY^tENhC~Q=J^!ez&f95}fL4oxbhMuwe`X!A-?HL2~PT*MV zh~6K$5$8+lNRuA1qdd)~6TFy8e3R$MU-AE_)sm^k_C;UIIW3XjFy{DXqW_Ujluf#) zv)kH@y4BDu%o6>ObA8w`ePF;n3wSpD{h8BNi|q}_Y^=hAoKM7)%`;wcSe`q7=9j4P z7YaM3_{z<^?!MjFeYfr(<6IvxvBkz*4C*+M0&eT~1w#Ot1P1wC8{h6zD`^iztZ2D#q1sm_ydMjngEXk37Bjwf@j5Rwp?&9(?ZE zf;)+;$ zKX95&wM%#ph}*E0_8`rY^lCqet&+EF*R7WBx{nrh-F@A4WKe1VVc#*hxbHqMq2G!T`c9)bQdy99Vcq zhP?=+7tw`#@3{+Ga!en8Cem~wYN8?KJ25SzJ?E6Yl3Md~3N=W<^d{*|cXjW6krX2o zUz`Rv^>T5?`%~W1i^rOyBfoo%M_$xvnq{109;yT%R*%=}aZi=-tn}@=xyl^7Kk#(6 zD7)%#gXpz%|R|!H)pfjF$%=GW=AMMr-80;KpJgaIzQh?7OPlo1?b~>x+f+ zoc0EuyB@4j0GnmleGfKQ0Gnr6S9-vOA|UGV0+lQ&*D}-P^5udVWU|>ih4q+6YC8dJ zy4vVywvlg;z4l&z_!jiD%NjZK6b^YC|Aa_-U!P-8<$m-XstV?UjqR}h@BMsUK$8Cr zs|!zr-YkTbD>N$4#WPxzsKhjB<4X)!=z#)w3Waax&b zctzRVXc3p|qfs%3#g1Wxq@%DcYfppS>{8t8l|4d84a z%H^>#H=N4zw|tq+SFAz)#N8L9W$>@>t5}1!_%4d-0H3hvBdQDMvp6n&%)mdIrK3?o4 zg$Z~E?Ufh)_{S?r33vOZW- zjg}KJkm?aOpY>Q&TtCl;(U@v3C(B9BJ*fUH`g*qdZLcatgl zEqf7M_!9>slgWa+P9hT3V)F3n&C!<0I%w_*)eVUfFj>gff8zceL^Th5l@ zM2^$b4DTsEzLqJc*;$i`5vq6wHE!nm#Wf2-j~9Xrw7OHD0r_Nq z=gQ^H8jk(cZ`M(tVYK6mLk=KxPZkpgfF5G+o|$t2L8>kwi2Vx)=v7r`lGC)<`-;Z} zPSdhc_qQQc*HpUOdR6gzl|84;%+8~;ayB60ijHZB1f?Xl?uo+|q)lDaDVep}h`x0d zKGK_xqwhT=8;M6Ar-v=phS*1PCyKmxr=lhHn8izSo25S81TQ{GvbCj8MvbLUGNZo) z8y4e%7xp9+TNT)EB#7~L+yZP95`Ui^7qTtwFDQsS^rHNze41e}3aAQyMbHvW+-UZk zWx-qwmIc2e=MK4r0hwHoElGuK4}MF2=d|OgzxajDowHCUF)9^M0PjY)Dd7i11bL4G z8EohDTZ*C_+&Bop)CIZFG{~mg1c_l3!ij#X=tZpWH!Enw%EpuJZNF0U=d9FsXa}J# z1JW(Xz2>^i^b1-%XF*PXV$ZRbkNw8Eu`|hNUhWQ9501Oy$S?2aIm^Rf$DJJ1n}7ct zTlCO)5AM+z9ix8Px6WU7Zea5}bkkR<&iVFO$nhD}pzj6MBX42e1*}6Z_CP9gR=Ur~TJ+WcY@HB}k zZu{m`U`B;h*!5@Qtb%_y+KlX%&N!9%qH5)mDL~BX!C3M&Sg#?N<6of|y0HfF+$3r-Gr9W%X(w#Nd<&tsoX}%YKqVWS_K;-AuP{Ir2M;*C7zvjz% zR?^NO?j;rCEebEk`HNZ^enVB^)>c-aJWhdL)tWmH6amN!KRy7zrfm8ng3^`cDChnv zT3VCIzdt8($bgdk35~YW?D<>CN$h%i`rY-ve+jhcdCX{k++qcUB6;a^7gPF3ffaPi z&v22!ANli(hUGP$TN&^_@dTvRh{v8;AoX=hJjMNXl1CHgh;jj_2q;f8S_*^e3p^ay z!LYjH0W|m+sREC-ANxxeCYLvjy~|Ki?*{%94`R2A@5OKBYU1W0XVQ9Q!R)cl!|WvO zr}%9UVmRJ^Z`zze#>T8TK+YgXH&I!P{KnohwXjEno8m&11@Gnny%#$o0T{_pR%yvHk&tF} z5!J(z5a6Nvp4+WHBH1vZAof)f_iS`{Pn)@yTVH(^L5PT}__b2lYYz5gaQU*=TsTLL z#JNb`)LXjsMxLO7NG`M_MKa-jxPd3|;pJO@%X&_h;^qv8PM1=I#)v^UixpO|1cYJO zZJ#*Oh8XY@z)qcAdJ5PnZMJztnmO8;ZjKHz(WW`7iJuWCm}93)v)*M={j9{zO^rr= z_mj=J=ZYas+K6?bccBY)u3?G_u3^eBxez0y6)0PAyq`nJKsX;p`=WZr>UHHov2qH3 zmEwEG&U^g@BRJ09dJ$Kt2;1%$Y^^ca=$^hJJSSuDw8!AdPBR$2 z7GXLr#>7`i?>7%KZ$O4KNc7A#Q<)Ecj}1Ka;faB_e0bNu+aBB;RI_sb12bC@61;9x z0HDl*Vhu_yDAAyn1$8y3Z9xMQ=&%8*t6XyI3+85T+?r)2)2C)7(>KaS~!n80yvv~7=W+AG< zcvLNgYG6=xn5dbBo400*adpPyYAakFqcQ0hufx!kj)KxrP^-lKR!?f=%53t&4n^!J zC>;g0O5A((aaCUUr4ad1T@2^^J?8f`e^2nv1KGb4D}Nv8XUAJ!kFsfQGc1(V{3qUN zI2`}!e;MV~V(y$gT3zeF!L#Upwoa3QWLBSjWQjiS0!S+ians{Lc0h?|Uc8;2bMRJ+ zjAsGQaCIjg(b3H5s0*wli#KhwrK_oYcL^twX=JB9`C^jQ-y^GXI>`zR-Hd81ygJ?(oyIV)H(u~&Yn78OvE`)Qa?$&L>qSW%+*P_#ee(F~nei1UwsR{5J-%W!Mp8SzbVXsZ zw%|lNP2Z%Z2Q!D|IgieNI|7k(AmIbO%a<1#vnBzJCXt3sC?2T#^>{CjOfXO(D-4q> zQ@O%M>iPFCWsWuP2WtTE!JaPaM*_;}?s=Ucq8vSvh~u(J0O0&MKYNpmz-7TttA^ zTj~`8ae7@qT|ManU;HmvT9E_h6h`wp`#zT*TPw0?oOhNOmrQ1V>S+aPfY-@WFx7cH zEk*M)x7<=t2@^Z}FIuQhCVT>ldX-pe_cCO5o#U-pt@K8Q1VGcuCB z*KQ-S_3q0?+iEnm2grrl`PrLJpXPKoiSB<`yY*kg%_R-4v@tczJw5<7oN}$0L*evNJxjR3coFjynKe{9~5Cf z9hn)3Y2l|M$XgZhRNsayA4!?FQ)yUpWj&H?E32t(Cbg&j$}B>l;Cy7_!nO>*G*MtjofQw{Z1O;V&L$4zOW6efINBxNq1c@A z7CRZZ!!a&xAje|I5Nbsl$WcShw)AWw2a;^iAXFmR8FI3%=72|BCm(TI=*9=I_^9D> z=#4Q@2EBcoZ{tA15zaqmV3C;`D{_;8DIf5D>QmM0pQ<*Sd;)Q~u{2}s`gWR>ocw-?y)D?WX1+JMroaK_lU ztZ7joaJuu8QO_e)E19ix2SKJY1Qk2SC{_D)y6`lkE8sdBb9y^ z$M?w>P97V2ZV77Z9hJ`;Cepf<*ge{XBcaE95Y+J`U{8DTSub-$^hjktb$ut$fzlZT zHvTW7-r(g+ne6X(BOMVsQSh#z$+N&SjETU1YEXn}Bg{h8G%*Khw1vBfeHtWKcE<=8GJG@uJJ)S>Z0?P=rOlgt%nzX z!@%i;9aMIH@cS&@^OMJgE{2#Cd;>ASvNnD5a$E~Dquw9PM<_qyH|h=|4sS~+_0>75 zwG_VF+X(S=R#>{~(Pm-vK(w7wJL)l{2bc|fg6x5Av>roGROF$0Y^ujPd&akZB>3&I zdaPQv5qNvV59>C9-(K;+ZZmhc z%)i%IF%2qnjt>Kp!ywj#Fv8qJsVHPH$}Z|-sd-E@C*wKequ`>K@$Scc(LQmQy@k zewybE*ia-ghc}*z2Hx`V3Rvxb11SdQoF?@?={w(fb%U1FTP@87hDxf@xFb>q;YJ12 z(R^`tGo19}VN!rp((r_6zO;2}bnJM*X)~-jdY&>o(Jla5yb)4ef0zNr-LlD{R(9HJ zSMt5Ux?`WadVSZ4FUfP+24p&qh@Yd+lCd_*S!vWSL%MNb83N82XX z^EIg^2hJ{$SyruzF^r|1t>`#qg?FwvEGpdG`Jo~Wc^eSDO+*`wND;|qqp#@hX}ay! za781asWxn-6$m#VcB;!y^pt^u$uDh|jp8hHq(cs}Dn?BY(;>%DFF^6wZ|mDhjlHGP zIT)Pqm?hH=3^0JMK`b7BT{~z&&Y)&gO#PbDPpjF1hdLT8XwY_x@LoGeGD)g_(WM2s zjbyn}P_dwl16p|O0>vJbc0jxYT#EIfkY#GDnFbtbcf;UJo z0I+`ButHdtlJss1leiXPd5&Nr(!}t+rdk54-5p-v@q?|}l`C)SY#2B%F4f;+1ZRU? zFl_N|R09XHRjcs~=5@ZHE=S1#dz20f5o&ccj6sly@kR%KQ)#}vrZ&DuKhL~YeL!=H zxdZ&Z{)EIzPx8Zb8)AcO1VP0&F%k_qHODUVqaghQ4b)I9MsrSI08UkM zIv}HC$2lE;wM=(HGZLAiWkwj-@<{t4D((v@^iqXEL)LUvd`!j5u+CkYj|^MKJGpGG`5eL9>bM_`-)Onui=n1xg;u7@ zahmk@iTqWxEz8TEMY~%Gm=Ia3Vqv*{y?O;^PfIs{X_LHqZ8yfEaJr4nCwoiUtrpCt zNY^>VD6E*pu(wZ2^SVRyb4#?Q*R1kRU-i&e67}ezMaZNIfw<2t5m`(->QpdS!D|Ns zT!RYZ?hs2nEk_Y#9b`xr^{T=S9(+T_)S{gn^}CT@53~c1wHfpV&;1#_Dg9K{SvCNd z0t<(KZ1NI;C4-0_L(q|u1iLh;Sy;_@NdrpS?No_s(-S2T_TFhQlQJ1Y3>qB zq~7sCMHlqil<5vS3XP{pF`s`s1ZhQx@-P34SXAp)ra6_!a4M88&ePoxjfQ4Xb;8&r zB+B_q^NI+}OrL;l=7fq*N--^$YdzrEZ$`|2|G-hTqk2VMmb~}ITf(b8S|#w_6h{tT zmCa%{5D&Nd0+zsiOAH;{Dw{=Z0gPGex*09Hflr2>>L%M}to6c=lKTa&RI%w*4XeJy zC5XgP(Orki{0naBv>@9C^kMJDWzf%x6Bj-5S=9XMqE!q)8MJfa*g?zrEX@{RQDZrO z>&9oJUe{QG)MHqH*R}8OF4xrh+FUm)EjBRb8-cW!umRR7>?9HqPa|zdw1veJd}pg) zBX(5Ml2tcz>JwN8rNB>=ulPvwfgW+FHJvnPnX|XGOJbe!qOzJAY89WsBC4L&^v408 z`nNTZ7}U}Z@igjsL);&Uw_B1Fl1~YLi&{zSqGs2Qu-e(^>M^p

%1%>XGP#sk?fp z=B83(+ou%cbZdgrRixBid;0^Hw9tpfw!?|=+PY1=2mHClZDIse$b60w)m+Iq3ATph zj5LR1()6e`0ldvlZLm44$#4Sy<9pxYDQp?tN|iNgR5@kcI zs8{cUk*QY?^`gxZvzE7WwgPmuxlcn9XF;H3W?-G^sgNobUpj2xHG#}{&^QnoH?JmN z@#|&CSAC;06Ge-(55dsipz%)@jtW*6VYl&)>l3K$3w*u;mn9qZx@mz7Es)us&8TP9 z*xUX@raPAii%CS&jG2#CdxRK&CT5v@(Cb7eo2U{*+*h!V$v5eeD_6u8R0pIMM>91) zRJ{_5C?6SFzD7jO&|o$Ia_$3gL)oXQ)R=Y5Ro#*dZn>je^xWx~koS@5C#qL^4(T(( zI8eLVfDg(SRhA$`uJE8&w-N)jlDswjBx2oJA5i7^1FTqlft5abkAjPTc3HuN8CME? zJ2oSWc@U~rYP%riftJ!hi{FZm!JNvr_->hXt#f4gq!je#2p2h2xX(+bQit4)F7FZ(eSNrV3C}&|Y6k!WcQYBS{t;?k54JJH) z3gL={rBM)RD|g%FEA}E@0mLUs z47Wu5M^+U_kvvEs!n%KVy9yhN=vs2Ptf%U2sq8uTFzV)GgvCvz;5t>0crq0)pJAUUcTX50a7i(2iIL?9ip z0CQf)e@5Qm6G3`1#>zZ(xOJos(L!3^XNNi zn5_@ZOyt6tzs?HyYx=HRmZ`asaXMzQ&A!3mrRY$g4&IKJYccmkEa=PrVwCZUfup`O z0!{(W6TAF>``eE=cU+i@Vhiun0sdt52-o ziXWrp$k^mxzFggHrAP<}$-HtdjddT&=!_)7RiV;rP*r5{8^mWvums9IJ0z)6f&&ra zI+X40?Z_iPDkk?z^(rS9QBXZiJGRKAM$&9PpGb&{hKE_o6|r`hkVjV-9?J_^`-1+J zZvV1>qMNNmoFmaBAh4UR&_ksiX_5v=CqhhA8G<`y)7iJkE%a!{(CsDd(a}7t=Sh+n zoe;G%B!bxnYhyfR$`cf?$J$|pqc*#Bv%)Ma*PQ*l(1&jycX+L&y}kB3*bq_SCKON>^qj+H~K5jCM^L!+1+ZZek1!94~u?MlqVRwV!t@UdM# zZNK^ECAZG4Ag5ftuTHiBexkyS<3sg!~!#^?jTS1c-79fx6gF7 zpnrO3PF3AGrAH4K!JPN}pEl5coc06- zIvp}MhTrcP4Q--G-oRt=h*n=vqHNbWg3ia(W!X?AjEclL+=x&is!F;DLkUY5)TXdg zFHnPzPzrBU&lL4c5ok7zXP`<_YZSG`n6q@XTa1ofKw7XV+}i43nUDJhHgAXy3tb&? zi-IBJV%l~#b1i&KNVD`{@m5EF9CL&fZ`V2GJXQuQ=Q;2i$p6UH*=buyM4&Y5(}()Q zD89CT$28{MHlg_=y=LPXC-_Q$${tNSo5uqnonw=U&BLkDf_u9Fc9%$Kgm9D4G}VAJ z(u`VD%VP5EBIVi?TvKUaOL+vU?*EM#rZ^DS88Xo%W5uc#Pp)$grKzxg##(%!yzff7 zt#lLy3>a5P9p(fL^wolak4bu&(r7UkF4$u%w zQ@7eK#J;(_yA5hPYNr-|VAR)~+%5Q{>rZyuF$o!)rG}dW_tX8^2q4AVI!pkM5IG0 z*yYOMbnWrWH0uP;;GVDq0(+mxcRKJCibV9qkgo%u@R6sUxDiWH6<@_E9d_cQPM`8C zzf(Tf6uP&2=U02X;`f!~2Cn%=T-n)c+=*scb|<0q`4URF=d~e5olW83iVa zUm=*rY8@cT)sC}&WH5nT^68cT^T>3TiYj|#^4yV$%qdy@7Bh=BnwhC!Zx*eDK2c_N zrOVlT9O1MW$!tf@c6XmcHM4*$dD>0Lpy=ZKW2=Wv-m0tX+92nh2*f{_Q!0r-*CPyvpUCIPq$3C4$$kT9&eb3X~Q=>Zu5 z93lr?#Gbb)!m4|El+Orb%$M735c@Q#lGq*R=d&IIvjQVg^WknPR0)l@K4T+B{%gkGGPO@JMc4Sbw9jYbLurO#O*5#pk)qc(%)HNYwu&U4? zNGf2Rj3xB3*$4KK!Kgh;wSvAtzoSI6NSCzHW|rfjG2MUIA+j@wq{t6~dI?(503JRz(MtTpOn?;S1tFTXQG?|% zNo`Vokd1$17&7_>*>(s>X02xwwZ(B586BMsrR|2+2Tbi1Wzv$J*A1Qr!X^d>ZtYik zB2iO)F(NW2al#sbPqhQNDRdk3@V7k87}_Rf&K$E&Wz{mOK8?pB^l0hY!Mb)2i;n36 zSoJ}%BrH^(#+uri<)D+TF2b>>r!l0F9f>Gi2H}53UzgZ`y2aQ@fpz?YfI^~UJ3{+p z%S3Fj()Ls*T~x&$7E-Fcru!Fi4J~M8N()Ro1`635zR(t_J_cTlbr9-?MlYF(vqNK; zW7QHoYBF1ZC;DFK1x(qcYzapMp|SOm!DmE&V(5+$eeeV(tW-e7#nK>8aV(LcJ^&Ug zy@7vyk$OVb%Kn~d_J~3e{XrV|3d39yXPj5zK@}cV@x`~_y?Xup7%C<-VUEXejM$D#UeA)dc{`5VtNG1C#&s%1GKV5Kq=WFsNrjo93+cbWx<&8r{L%L zDaN@hCNMD(4a=zRET8bAy*r0(GfR%es2_iAF9FXHuX6Nhz8_Uxry?Iz6=(4SQoj9T zW>UktRHYLP5Z z39Im7@?{)p273%mAVOYh8R3h*snrO;>`mAdqdUeirdC!YxVW(7dI}%@>dl`e~GaNB#c6uqcoDt3Q^<&iD4;Y zXytn$k%K6S8e+)4gYaW#o`UQ${E2JrxN5{Vn+YWr){`UI#8*7?{ALzHvtsu&X~EJ= zmt=^=23SM|Rch;>{`jAxFZMPAe-wZHGD3j9gAs+k@VoSRV@uD$i$yVuvXE4`NQBhJ zsKmqqR4-%;SOkVtjt3kQglGt5*yf-kpiUfYJoCLO&59g`DM19;6=%r=?Zh%&=|vzE zSK_Xiz{ans{9cO$($fF+#zkd{j=cLXbMV-fj(Ffjzp5x|ee6+g`dWGqeqDdIU`5Mr zR;_&js~MZoKoB1VOfWFUG9Y4VS4S=G5a;+6#5I&G*KMQzDnYTV7MC6dD6c@WB+4!d zs-lQMzzm93JAj6$Os?RLMU_yhw8LXyG{DH#5`tHzg^;BW(xR+*_$jmxYxZE*)ZKQvx%)}@)iIq7yn(>B2a$U)wHH7L%JgaEnC|s~IufKE# zCLl9bzfw`%p|~=ih_ziqybU15b`vQ!fE3O_bGZx?3{%AKRe)YaC=1AoetqHj1Iv{7)cUw+vF|MIZ0Ve~pgf!MIwphlYL z^rbj_bT;>Y{pXE~VtIe#*T85Q2`O6W>~;B(9q`Zuy&yFz2(RIivA{}#6b(6FQ<|B{ zaT%5LfrSJV5!LEm*y%&Y@WfmCWM2<#N=PJQ;}5#AwHb9Ct|sdh`|P^v+xBX(glgz$Sp&i&>dPrX400J!U85( zetBt!2Wt6s1A?g49$W5YBlT<>!J@(wIr3>zKSheG=>TDhERc`;!SFH$_y15GsjU@qe>xY8IYQ$>Ai@RB7&KphV>0D z9(l4>hp(i8Iqhm$0X)|@eT)hX4a#1aRMrxt40DPUGsJ)4uZ`jvr8gCAG|f81(od*N z&SrYG+g6TIgNC%gL5rQ8?8+`VtkT6a#jBzH=Az=lPOEB3>d2wo=##qS1wv9AR#sJE zi<_Ymc8RI%ZP*#gOHpD7lkrg@4)#1!M$vq%w6oBYnYe{;v~=owYgaczV*(!EgJviRf^>Tja|OStyL$j@5I#XW*?58vXkxSrp(5lr+4Oo) z^ASi@!kiQVaOuJAL7TQ47JeBT&|)+}J^Y!5r&SP5eF{)l0H0m#P}Kh(Whx0A(K$u` zY@+(h5T#UY^yL~FpV*$FR;6BG4#C%Rwb@1l;CA_NI-?-lmxnGQ;h!)1%j-UO6_33s}u(c~wTNQ%|VY9_Tid(S_`>Tt(QpKH`)T zQc>gp5G%5X5d68CM8JS`Kjf_fo-h|4b<#@_Nd}*7*6=AR2+hLRr0#@?qd6dl?!L*f z8|Kb}4>>G4OrG1}thV?=E{hrQ_-sVxMNOAU_6ayKMfu8IW?=v!@>#Y{hg?Lph_ zx4}-KH`LU~hIaTucicjEz?OhKUWC(d?(FEMVY#O^o?c^moq>~2c@K(*u~?9s5!2yf zPC7`Ks{N=cd|ri5DnOD=*tW)i9ow2+w>7uj*4#mB9499%8{`DX^p>r2Cw6}ppZFfR z%wf{e=Pb>nShn9cFyFkhK8(KoyE=GI!P_Qr;D*izHfy0u-j*R<(4@Ip>m?yJ8Fz>| z>fCOf;vcDT9U!2y)9bY+i=xbn&K%1_C{Mb`Nh(gi%Fj@!*Xj&fgB|=|r_uH*5;FKy z=_uOodn*tLXvAwC=Ci!0Cw6~M(`j{tEQ3ZoVP}%eky6m^*_u>Zx|(FgG-ue%A~uK* zut*FEevIpbpU0;NXkqU=${buxXp4(XuJVJtKWFEXVxV!cS7XVFW5OK3GGG{p!4{zb za zR$v(DrU|i6Taz{uwCLR3lxE_$G@HzhJ4e%^Ny?|4et)YkNhz_>2QzWj`VD*6>A`si z_yM__Y@(4Zt;BKJnFxO(dregnNmT+L7yOI$#Wj4b3&!rSLLkR=__W=33tPxu?N z%gcUSfXtrwX~=!o8W2gKoi~;SvkeF7GL4TKLXL_|}m_n#imsidU1ZU{>Nd zEYZvwZN74OS&fUC5i8?!o+*s?=5QE%2|WviMwGz-I!}EsW#50-PMlhso~_d1P&XvXmlx4HYDFUf|}qg+BC{aMPfu$|AGQXZ6Pg*b#;hVGpYkC~FMm5`RsAgkk;G{P3G8l46%Z;x;PHw!Z!e@{h8W+7#BB3A3-VbVW zPXMv5>CfBs!p%9f7m&M16F63Kl6DqNvreD zo!wSdB-rhu4(V90l@w{xfeCUdve*N{1R!q#^n=zfSquML>56V`qbD_qQ*YgICs|av ziYu%084e5V=fzYM9oQo}6H=!lZkt@odAi^!A>n_B{;2Fb`ePsN^rYbFFg(KHX23cW zG`|DPw^ov+$I#F_6Dqfge#dl9B+0Mb5BCk%M#4JpwBvU zA2gVINz5JPNSwHQT}3rny6WXr;bw)Mf9rpaO%2CJlgX6sxr$WMWLCwp!sLo3lSxgc z*1TF<-Ze}>@=)PlKdT9-UpD~_8YZB>{uxa`zkj00OXX=U|Qa zbZrigKaPw1UWM;!LX*4EuW^(gT}mNMw@JBZ+xa^$6ughe)0Yx#fl z@TgLZo)`AJy`C4X%X5&!vo}&XVP#JbbIPo1f|YzuYyNIu$B-i%E%sp$(aWSvPL@ng zmgmUD?IJ&?1tQ2juZYK|R9bpCdC0JX`A1QzXCW_nV2rhE?2=|$i4nnGj{hI+Yr9=T zYY=k1Z+*eX?fBTA?GaL%U2JkFTK#{Qeo-U(@BXYqtOk?{{DI-Ty)vA4{$#_c2J>@_ z<;y?$Sdy9b>aiT`T{VbzR|fIkpJxzvs9xQJ4;rSg{^Y|{rN`nAOu2qD5?KjqGRSk$<`u9>!WS#WAN6s@v@!*<1D`W-fnMPx_9N z&SIW4^`w`abQ;q@HIlxfq$`%SrTt9llUF=!`ak!lP+M8C&uyl|cKeVOv>B(IwA&{f zoNy55r_MOI;2?aVPt}4Tb*!I?ko0`7Ct4q22oU&D5@q= zu*tOufqF|Dl^)8`;png{_4>#^jDKW(Sq_J6_zc=Hdf^|+)z6_?{b)+EfKEmy2GB|T z9RrdBDf>DBpc4Q(k$_GVAWe4`(AntB06L3bG9XC;53H3Fv>!v?x8U13Dd@ z8bGJ7zsamA#k@O1h z)vj##=E}00`bft*ATEE1f7F&V*x4dC{gPKLr{#+UTshL%msyN`5DdZdoD*JZPq|dQ zGX9~Wt-FpF4nW0SZ_|YPjWGP$NJwB6cv_-33`FS!znbN)TPevFHujZdBq&KX*{+s& zK_nyB?ez9*`@FucIc%Q8h;_;ki!Ah>3B>El4&uy^3HKY}9u|L}yZ{|*c|i603R`^s zvUeQ{0=Fp!zi)Ykrd0fpfd$LY0@=cS57@-7Lnz#$jHLfqi}Y&tZy&ds{YMr4M5|d% znh=t{+NJ*+hnAn~c^-tuS%Nyb<0r!Q>3Ves8eT zFk_kh@RWa=f?EE}q@fAKBtI6ci~_E3mC-{eqbH<{F06ktDtOO^q9lrSOe50{X{U!E z;1xN3Msob@1LSxbVz>uvfFlbbk2XViOAxSgYRE>Hn1!GLt1SG1A+0{+kha@3I#VqK zvR!rgDnZP@6ZN~mkVrN9q$YlU{uGgP0UiN^TMyq&$<)Uz(^2+9FSFgsSBx>f0JI~5 zTYlOpgDrnQ!}lh7V#Pu)BmxD;0`bz{>DugAnbJyx1esJpctxy$yZ*^l+B%C$rZ8GP0l1nw;w3NCxX$;9ZF35g42WnCE}+0e0Q2?fok<(-lW*tC0^+O@04Z z(70`?!eJMAH(TR!MsATjjraW^F{OSpDmT}qyrlLST-56BWR2T3!%Q}y zjGNc#o#5N|Xm6W8OHW=5MVV8&Jd%!qrxkyt$rE4re*kFZIE5<){@D6)fy|to5oKQY z7Q4h5eznsf@w`c=UJAI#Gsi(lb&Z3zeD0JtC3wVb5gE2+W{ono786p0(x}!3O@>CB zQPUwBz6x%M@SLMiL8+r0?sH_O-zrA>>oCIm zpKeIs?cGrH*YMWR+p2KT7q%SEZ0|Lk0bfB+l1#nUAUo1IA&WndT+pzHjL{G;(6ooB8BvgVdJ$bdibu|pir@ScCr@XGG3 z_DWZFANNRtDn+M48psLX(BJS4t!4}bZO=I-<-l7V^1<36AMB0XKx8h-s2Zk~>_Kl- z#Z%tLjs!l~dtroRT`$IAvx5;%li)TK_Y*&aUb879b8DL ziW~ioV|1o}8QF?Vs6;3Tv4q3Ex-N^dFl1k`QAhP zS(0y-H2pkFj%6p=4PBXoFtv?itZYlxrR}DNIB-oig*1Q4>Nik>Ay^ZNvqbr_#&=%J zgGWj6O_5A#N#lhV63yf{ImN{lXMI=_&Ib5%-lsnUwj|gSES8U2kaRxQ1;jm#5N+I4 zTVPFC-vQ=O^Yk}<$FdKlwx=ROdH1%m_^odYm zZd@(8ySC^q6}17(xdd|W4C~gjFvr(9zRtrL#|eMLO(+gu=UQez^)`{lVwqCBU$S4S zU#chGX2Nl~j`@;gJEG*@9)1fB`RNEVJ_%^62e@b{gwyZZJ20%``gGQ=$Yn<#3) zntURxMFZWx{Rza{xVz#Fq)^6n!> zV%!hAx5MsW&$;Q-M|5`wks&#;JtbeJ-d{XA#xOP!yE>+?WBNTEH9%D9c>RAS!ufmk z>69ZS)6j}wI!#^^!5+48=&(G zgd}7a0_uAq(LlMGfiUPZlRsrsRHikV_s;I*Nz|?B{_VBhzwLJaHru3{9oSsK8 zfncH&AZ(js-qU?mUexb8@$4NcFA4`8@?Acv+FXQYA;XvV=F|vM=dEt+@#l<8sIVwV zq6Or@vo~hswY8cVzyhOLPf8Hsyjy?rzdESX9KD;+AWUc!iYWVIqj(nSv6`Oab8Gug zH=vWWz^f?lAJQK`6Q92z>tNa?1ia##+zNA`$l!M!FCzr{20o6VosZ~GRBR1`Rir{( zn;D48@N;>Yi#mRhK*29Lba|<;ZLwTm)PDEb`j0mNq+Gz3l>Uqp5h$uuwt{~e7C5GJ z0z*oQYx&7E*wu**(?Le2gR&{UbTtq_H9D4bnmvG-V-u%{Gq~fxxkl3JDpIeY(qkOQ zoe39l$me}1h4!wd&ffR!!utmj z<q#a91_&0%*=oH#37PD&@Z?g zWR%^~Wa-jmY3PNLY>22*Tk1RgTN!k935$qH!p1Dmgk4{PnY^`$Ks9gFQw%qp&K<`n zL4dFwD5qPx8SBP}h4ZaRPd7ERH19MqR3uH2`ZKIgBc#+KYE1a2|H5cV2Z{ggcx9Vw zhl__X%B~zQm~-9HGUI z!$nBR;+aJluwX_k#^}`eZqTW*xDV%WSMs$Yrbz(1EDX*Dt#;g#D^N?fgs(@hx#YFR zp;FZ39IyCnVlFJ$y&#F#u8{W=zTYGDj5J~GNwL|%-LN&--k~5r_lVQ(+ynd8CTX#5 zS*%vU#qz2}Qi1-bE-|E65JUcx`6nF}M}%`c<};1G=Y6_y1!lQVHB9uve3L6EEeYW_ zh!)_2i#R8fVJM>@NE*XFk<_pfZOI}3aB}E1h@q4HL2{V=0dn{RwyClvlO!oC0ilyn zDH|crC+XlF1u4k+vF8k^Bc3=Kj~mDgFBq6ka`0U?C`O5xW;gy&+cLLp6SRe7Qnscs0I{-vHQu8w+~zKjL*ha+ zyQYXNq@+?;l&f5Pu?Ok7FX{H_0hEb&Mo<&{e~_a$GZ4~NOZf${obJhc6!ilu z%1TYQXe!p1HfEJQd(`X+30`@#p-(?`kQot{yljzZjJiQl@*SQlUc4n9kSWHXSr)KL z$wL=U@@-x9W~{1DfEm|FtfU7W<-r^r$fkDNlf3VNRW@Pqlb7KEkmNps`+jd|I4NUp zD<|OCf1~q!v*bK#Nrw^cARqkt3P)+t%?p}Ekq4e|D2PLBo*mDIEiyEb@pn-jbncSX zC)H;je|Y&s)h8Vx5T<8!6YC;COufbzXZ0ph0SxG+WXmJ^YfNf3mVoXtyfO_)&tavDgHTGVr)-80}Ss zqBC%}w`+^`@7=q%C6fa+PI_p4@)hTmwOwrO{@Q%2~>yFde zyoa^fc7{;>fYU^zGkVZBL#C~LcjLxVXOvQnfnrJUvj zyS?q*d-rY+?rh)b?cBS4OElnBu|7bE;@2HCBL8_w>>#c+m0iMe_(eKWZ=vko54*{ILcWA)M&G%z}$NS!2t zL@y`@y_PzvpV2G=-j;Y$p~tB?t$7<}1KY@^o@HmitvaaM5xm#jArlnMf3us!&Ww7^>&{|~tI-rkPp4vD1mki~@QB~(#iWun17p1~dP%E&hN=&mg ziL|a~Ga%nZk>YOvq?cqpKw36JzsLp<(XTok#Dn-4kM!OQ%F)1i_}i zsHIzwD;Xcw<<`O%#Qp?1t9gpGsVLmjT-E1sdKc=Hf9@3)b2ENfrwZe{J-Ah4|$IxH6B{BXoFJ#(+>>$wIXp=X1${>EVNHR2oGpgFT1T z_m1uY?Qy9J09(#<6HbR!mscsuPtOU(QcuCrjF)WZgO`l?zN%YT1l*Tz$eQ^(=Gaih z?hVxk8yiDT(lFB zRy5);Q?0vdO&eyKw^7k1?9{ne>rm(`waTx~UnhrTKlVM!ra}rf-OW;IAbWKrL^W~)T~zZL)y3FHtQBgsmGZC+ zsiIe*fBl=?hS}(1p3A44;6N}-=r#8tI~5!x$LZ`m>d@T5Wsv73o@ENZBD2raWb%rG zkC88YB@T1Z`r*6qWe)$$JbZq3j$;?$5BrO(T7(Z1R0F`X@Nrrstyi!OhhG;MRr&d? zn4JjnoNql7*q|v9*8z6YgJrXstuB#bxEk&Ff0{|RxG#2hclUSuS3qbH;a(4hvuGc} zFQy6ow+5O%SF*r*wQTW*pDlH8a4>X_m_>v4LZB@**#k0x4(tBcQNIChes&E&2K52? zDIdHP^2Pi!)J|CIN_Y5+=C(H8kKMjvKsr>eg{@C9Ne|MA^m(~(d{`ouQ`eV1r{8)h zf6RyL%bcy2k-jo(imf?Hq=@bIkep}LSQ>i6bnL*vsE^#=&b`y#%$w|j4z><(pfXRzT!@`)s89>OlfJorSCP9l1f&+0V~x93E<; zOY_}03NKfnb{#jP87$bKmJ6(D6+PXfZaWn)P!Jv9>reUf9z3^*?y|!Rg|g{^7>M2X zmFeO`KkU0^pw#aFE?OwB)r)#9`maMVL?UEh=Sl*O6!ne@2v@&6Rj9#4| z@8>h93nhOv6S^sSmf((`(HiYgf90%}(Yi#yyt=xo>)c)ot-!=@=7nTxtn#&aCCAbEdn~B1 zE%UgFZC7=9y4J}koR3wqg`-y;+&)$vpPy#BeP7eX+;|^`jJnF>&uFm56~~r*p@G(( zWKaz#MzUx`9#i~gFrZnKf2D!h9^*LWfS3|o4au$rMoE_lfb1+XavA=(hNKJyTOAsB zpaubmSWjQC=pN=44Dp31OWsskfW3>fIzsfm;O?~Y!Xdb@MFi<>sv78x3yWWg9fJ$fFM*EKa<>XCr9~h#O-2z&Op}}n)2TZeSXD<^8-mf=SjG)je`Rmpa4X)tA;U%Z z-MaZ$IS6_w4g?tgL}Q7rsBRr4Wp)!U3elsdw9AnuV1HNzbz15&>sk&PFfldzpc|M* z_WDdaI_t)4RFTKi%k`6b)fHo-$8QeVMRZl1n@OLLFVVQc9`~^MwSh%AHX!nDCeCQX zv^xa@r+hVtsV<%BNqW$O;YqIh8<+<_yUhl{mxJk*n1_B*yvv?)f;9`M&)g>b{2e>p|ikUQej;*$C5U0 zO$AdbiVAXSz?(smMh(;U0_H+rxwN#}Qp8yfEMnSNk@5Bge;8r!oD_8DBwi4REBqNY zaUubeUliSiH`KGt)^B$ouUhho#*NJ?e?iwXH!rEf=-`lN-ScGaC3UH`*iimqa>XTe zaw{UNFOid#OX||~m(&%_OX>=`r0#vUWR!Bn?c9|S$&0E-d?z&)CpGU0e(gzPyOcYe zKUJ|(fy#()e@@5#lsw5uU#w*hK>e&;4ZxU{LZdPdOy(Vxd0S`hBlAAiBi{;H78&f# z(G1kNIvV9vGOgNQ$<@U&{Gp2P^m^gnt9TH8gKs=#5|8EGHT*U*3>oU@B!va1!UuK$ z@Hgj2BJgpJ#eIH?k3)LQ8Nafy4$T+Ed`9`maR=)ue>cN9zsgs1{VF(d$stuNE@X(uNF73TV*UIxa;Qu#tHyBr7>?z*ZaGoG3@bMrnO z{?%`Z6Q22PbBcUGw@u0a?k{FKOJl7|nHMuBtNW(8v-tG%Q{qd7nIkm(HKElR;ke%2 z#?7Rj%;c#O)Q}ehoSeqqSF+h^msZ*13|H+-NCL%uJX5|XQ93!n>~`JZgl+dSu;WQX ze}3&inmfjMMCI0CyIpT|o!PFQT?%bca@AQkF-G2fX(f2zZ8p+3z582h(wI`}!Oaf? z;*6W~s(-d-aBT9LIo=RU?nx8HJjNw_qrs_R3Zmn2%$d66giHDeOx;dkNE#J3e|sRb zx@X~R0*=W+j}}Ql!&Ra?F_A zy&jz&Z6weBPffL z>Fon3v=l~gSKQt?fbJ-@T}t2C7GeOVDy9e>9PHlRz3YWi`{jtF*Mm|kwP1=6;@}SQ zv;K?l;BInfXSbmiBmUmq>D^tZrcysf#QyFs*R1qp342>0hS@s8+qe7uf1QU6`kV?( zr`zIoU7w~>y@Q>DJ2lOkGT)sHCKGQN;+3gY>*W@#(c@(A0*{a_f1zvF!xpY%54H}| zV|{b_XzQ1+H~n9xw}Qs6%q7mm1i7x>8Ryv~M*4+_`n~dKpa&Md;#^d_qaBi#PvS-u zmSc1jXo>CT_%^+rwS&v!f8zdbSl}-Xh(G|TZ99w<0%}Ll!+J(Xt-@4;$$#GpW1dk*x{|SJX_aiEN1lO?6Fw||qe;40p{J+Q1AM^S7zsJ%4e?5*q%HwFozvx=Oq5PwA ze~_2apWBbi&eUYEQA~fw{X(25}$>~F4IbRls zIQHi5FJ%17e>Y>wXfz(N{9_|wE1uDbQDx*T1T}#o{ER1|-hgOikwz@eR|6B&cEa=% z;wg%Yha3m6GSRk)%V@8n_=4*X&l(YtfL*vT5}il`rO)mM~AGe8FAI~&X^os z8vEcve>FP0)<8X04i$)ueV_~d(2orNjodAQfOb|MC6l9dcbW*kj^GI#C`Qsj249gr z7;%~a>P_z^Ok6iT9K>P|siY-+N|^AwH|65MwA&$)H8xh0&EWXjtq>drsZ)g{L`x3Z zHhrW*ota-FTs5Nmq!fG&=JGgmS*Lxq8%cDTe+8VA1nC>k_n~`(E;Nl4wOBrgRnO=* zt3k!91-rTYa5-vV?&4V8%9N$Ol|Eck1oy-voKOd$yJd&#N}EAoSD^g-DqDEbz{R>A zL1tknGxA8%tx{Kwd~9E2sXx-4_xb}o)OxJmx?ap_it+ZBj&k<*Rg|KRKJF~Eb=APF zf2q@saD5L|?ZI8Y{l9XB%F^yV)Api%;hv0uUAZM1t83xb=HvYc?A~ARk{~|R$w4vx zInRTiEB``vAgY58rC^k?@>@4y9}Qgf&2VC`;~X>^?_nAregduCc0*zL;b#dOZ=;g| zvo@_E;;tew-qI8fy(yJPBsvFE^27XCf8HWdnt~=qbM*BGftAyYMJX(Q}`j_7T z7jE>~4cWKaQB4oJ>WZOCbq`hHhpJhT!1aoy_^)+S3S`WTs!&FxrrYkC>l~&U;q;~I;&LnlLs-a`))cA$pm`S+CjrX!VC2{4;>D! zIrFJ&=)Snk|D!jJnmP0xW|*|3h!9Xiw(%?9sMVXE+x-q@=_E83^(*Ld0CBDZzDfZl z&bb*ossk>X)eeqb>DWjmwUVkDf1~)ajC)VTYw@fH!F3a<;hsyaW~pK2>ONgv)^@{{ ze6$s>E|#L^hcp6~FIeN4i+o3$V4k&9qxae>PcFKP}y89Uo=?e_-JS=~RR$p6v~Sg*DplibD|e4MxbN?%PfnOkw2*#e9_F6u)OjTJX7WR zhO_wfxhh>XdQTDIPOnGz%X|a?YK?{A%p?=Jh8C`0oih06692xVJ^et2a<>YX1g{gD zj>vtlBihFhXHAj1hM=fpf2J4zX79>-<5-ILS8-NgX5+TA>mv#4Ojdr$3s){kI30t= zyB%ke^^BRBb!=iw+#qpD`~yNl9O7Rj?)#AV1j#qzSJmhA&aT%9mw@*a@AQ3DS5;S6 zRR;q@2e$_LDBoS{DcH;2CTZLUKS;KA22=w@LgE zA^tEO>u%C-=FhV*`P4aOoIHGC07H~%i5gc{MwNrvHecLB!lO?;l4=l@H}-8wfg9LL znA9l=wDN6l^*ty#n`fFMBaL^?Yz&FBGI?t>GaE0*Jo!F+Fh?d@yE(EM;F^^S>wMGb zc+SeF5Z_!`aW_0ye?IKi8{-0dd%o;yeJN`xXJ#b-bVW6F^A9VJRUNB<6~Eq4>?d@c z+D?P**jL{QWzrT~dUEOa>CZ?y6Sk9+X*P&$HWO4Os6s22`zVR!K*NoAZnkI%J-g*w zU(VCE%iI=z)zp_-w`y#e)@9bm*^kFS0hRi`r-YR!CvX}Pf8_EjApbBA$m0qmvGyCK zRy$!Xh4UFUkT;0o67@6HJn}Y{uY#p$?9irmj{Y#Ok`d8$P2eq;rTq{!Jz=48cC5=F z&OgI5QMqK@L~UpMB=9ymiI15|5bP5z?kIaOMN6SLBj*O&(~^y`$3`?nOY>c@CSadI(R+7RQo(!&Zbc<@NES^w=~ zM1x(J`fs_r_&~j|cLglBB|m?|ZnrR9|=VLlb#Z4%8=H=Tnmp#u?R_)8B_< zs`8_9NZ(J!)QuvgN|OrNZ#Unz);wZ^Pm;wAf0EzUjqqA6GQl$$tPA?ODIPMVB0(nW z`BvlzX&ymf>+&hUxPlUcSnBhqje{j$jS2e8kMBBd%vj7pl4uqFbwp1&?aL5+YnzviSh4VcKka zcii_O;+#ciOMD#lxDd^KE`_AS4{p{0hfyqnv1Lg3c-92?-pcS5tB{P_D&l_c;X;QE zcol=xd*MK$*W!fbl2cm3Ux3C7U`5H4e+|M67V0hnx@vyN%OUA($Gm-2>F2swKnAu$mC9@tZD=Gx*14A$Mf*+)^Y1R<^&zUn+tY*y4 zlAE~y*g3Lh=5HlMFi|dTc^8S{Y&D|=J8?(GBC*k!Q)hcGLLC4eh|>4hDX_b(99sP>cVNvCH|iXM;~gm4af!EX3u!poD^5={0YK8{M^KY6xU zswdB+dh(1K%aJJ+nR}(iy?LP?tI5=3HGe+cdSP4cl|nVfUi+s4zmp4?hwTV+c|d*$=pnH{3C|fa6g4dnjTKAsiZYdS-*4%4-9Qo@;yn03}Ab)8E z{FFG`?iis;RI&H}CMiP*;7VdKeIoSODO)ikn;kx7OlqJuUnk6x`0$fVx4`stlA)}o z{XM7jsr%6@5I9A}GeJ$(u}Mi4ph5#{#=mq3YXwLDqhReLk#_VApiyqV@i7T(1`KBa z-8oRmKMAZ<=l@|qWu}FpYF_Zm=YIu1*V)m$MZ6Ae`kV4E1Q zlQgRV^@M(7i!v?`Ip>1c|Z#5Lo1Dx0s&mWXy!0MNEy_zUPz9hGRF`je19H2G^!L3 zZ*=POB#Sf|q0I2Xcvp>ANgAl7vWet$m4EBHR1``rdhBG~1~e{~yO3g5QAv7zkj{Vj z-~dyY(AyoJKFhoLL_67v;#JvP+8i(Ro7H@B#eP1Rr5l;l*P^7Rq3*Z( zm5xG*UaN%)nP;vWlDqk{Mk20*bFrJV(T{0Jq*GB&5uluD$jH>B&a2Wtuj+%U#E-@Z z3ISye2q+5?P}zWhO8m?~8>x>r3iCitc^0xzOIA-*aT*Ui_V9pn`B_^fr=$Bger%R3 zt-LJ!rn*Od>VNx819Q6uq_$EU)%a4d*P?n!o?#Jx6k2&qm%b0DXntsB)?7?wMh(y^ zeq?7WUu1#ehjfQaZU5(qKU=~&ixj1&ACj?t2>ouKZK33#d{Q+V=vFIl#1#jeCWpRR z4zkg!zM(DKYKNZqCCO;4e@{+6f{{7x*2|)Pf))25V#T?_`JZ$$x63wXi|~&Q?@rkm0rMlejJdy zf{&&plI=G?vGE^=Na<7aVZI5_b*JCf_cY&Dj(UFRSOcf4#PGUq)S@ujX{COGBbDm8 zP3hn8G8Ui6Xz_Ux!~gek^AgNP^dfJ+(0|HfKu2{ne{l_r#5f*YN9Fx)uLEq8_Lm2} z0T4s76c2IkejJU6N#4W90e$Sp74MS8#bP_(5r?rRoyYoPQziGK!+5{HuLY|{sQ(1n zC>D&2i);6gmr}GT+-{6sL25VX-;55$v8eQHyJJr(#_isxW+c|9R@1B9_T>EPq<F(VUbLEp#vyVGvj z{&D?0#gpB_*$M!r1f%9niJA(pdVlG<{UWcBnNu2u8@V+N;gPB!fbku0KEqjdqtn)C zKzhcTIhc?Gur424P854VZ#C$+k0Xw_2t*BHF5~!uPmMGi5k?2BL}M~~*z*QpA`M3| zj+rBHIUH`{Y?o|`zmI(Wfq^jKJ0O$Oe8)g9%Gj_O$Q*DQ?CF_Tz+ZgjfPbjnaz(5U z_+Y||(>b}+^Khee8r>H2l~u0mLo)6*lc{jl7SfEY-ajD+Y!QlMeoLKkT#&KRp-N_k zUZhP){GP32k!9OHw_;gjsaMr)E=X~drFlbzu@uvK5Emk>2ozRa0NQjXsXnn zamB=%&-_6TlY2*mmwDuIO@DV+d!1$n9#mPh zSDAT-Xb6ezrLw&=K>c(2I$)+@ddoF4iG`qK&|465g zTxLd}R8EgtMd|6Pryv6H>IG^7%m=oxE#!bU-m~$D=Ayj)S%1*Ny1RF)sCEnDTJon% zY;Zx|Iyd;hrS~&dSZ}E4^~9@9W_67S3UgfVK){1DC#o6kmec>hxj^~QEVUkn(ZT3J z#lfmzP{3(m^tv5;KjFLGGrTvQ>z!5x%3ch*W)1L~?dYySN;pfsXpmdBb2&rS`ApIp zjz0@QzwrKyw zp}sVzGtnEkdU6}*HHE)eM_=qa6BlX*IE|$z{Vm-hrGJ*SP3!VoU#+JtlICQd>^9%Q zRS`gj4sg&pvbdgT@*4C6z}$J!uHr>2c#Td^6<6qz%m zJ_9AC9;svG7zgMB#L@YYWzphsTr9QdIaH6Agm9>}kY|X^IW6IxAoy!_XF_y56bJeU z_r$ESaDQ*c^tz{Fd#71yJiliP2P|ipkZ#(CDmnKwoY%M+r2y`1-Iit9@^@sHcI3OU z0VUnndCgC5Mc?k%S*vceClR~>x6ed|xnEY5vPuT}veezUm{Nzj9THB=FvBdY`<1kD zR7+PjmezP^cd!SVhc;_esaqvSBPZ6#Jrf#=wtqYp3g;1akk-gm(IviA*YuLE=~F6- zUibw$A}oeYi(<>!Qg?~?*c64Au@ngjUh^71F#`4;T`M+6=JDu3%rz1=xNt~n2OQMM zU>tAfe&c!2@a7=its+)G7_&8YqJ)l)op1yTRS(DsBxx;l2|o-Bo8@f%f+ACoNAtU{ z>wo)!UaN%}-mWi1IG4bctYC$oF3s!_W{;-QupWXadJjs2n;43u$(68_+pQR;Mc2L0 zniIoTutEo|!@!7>$5?{#wS04oB^X%F3;s`$xkP3)g#(_d!ZERf?Oh2odaG~AZG|sQ z>r77h68aQW4f2|bg9ZsDld3W^D)C6T#eYzF!ZmPDlArV0u*F3`Buameqzt2NQP4ys zn4jd@uG~zPmS_%u12j11I0}#y@OoUDGg5jD-vqze$w}(1D;lRunNdHt6Ba*4UF}|O zryOVb8i1zgfSRM+n%Wj_I=H}m;E9%4J-vzlb`Jx;Fg@!@VHd22fpnBRIbZzxDSx_~ zb2C=s`@#PC_UHHiUDuDE;)o0sM+CqF>Tg%x_dF!izyw-0) z4D=B-dz*_pb+6K)AO#e$J%_j7fA*~@zjI)w*M!{khHhD68{y~jXMoMp?&L#Rug%3{ zk=RhER_b_4spFZYj^0;3kVPtko`1V|Yze=Bu`T>K)v62(!=jTpsFLZfYd$tHBSHEs zuQy@QS^jQ9ZAKIhqvn)2>3wjsn%_!%iqy$->OQ|SZ`*;VZ{C49m5}CcrqN3qYW|qj z^C8NAa$*x0PVOfK_{9pKVu|Dy_yR`DR6rpmNL@o8_4RBdodHKpSrxovE`;mQ;+AK4JY79 zm#d3xkyv85^3IqxJdUbGFMo4Nv+1exy{Vm+@kS?@auE3TQB}x&S&!7#d>%vvmCSp+ z-rzpj4Ju5z!M7G_K6p(X2r9O1wmU25iNM#A#_iJnSiL{>ait`pT2lvS^%&RUqWWC{ z@);#KI$pYVa{XlS(w=CT`_>|PR_V7Ell_CuRE_W`CRt-O?KI#sugLq7K}JT*(bfghcn|22$A0z-vhjq~0YP8&71M z(Iu-)L|xJ$ze`|5Z6dzs?ya48pO#IXd0{OdTZbwmi3O%WYWoGU`MX3(o_xr2v(gBH zQ2dw!nOH%QtY?J$TVt2aih!+*x$IQII+>ShksC{j=0IewG=CZhEWSgi)E@B8ghQ`V z?*4S3Ium|Sm2OpuiHuN5dBuyW*uIcr#QYUW_|x`l-|j$3i{Y-NT|_jp{=$2qfj>hp zA!l&%O?Mw5m9FV_2|Qprtyf33SBmcY-uzC*EYxFKR#kZ3C*rrO$Qzu_pqaJib4}ai z3j1wV7F`c#jep&3wAf0bb;gwFTI#ivFmZANmNWcGvUw@kTaP|6XLH_am`$Fn2NJaq z0UAC*s{1^1@zgTbxVU@LNx~Pus#n}J}KlS`|F zwo(v>Q9PQSaVfu8It%_Yd54yH#;kcJi6G+oW^qxk9YCRhed)^@N7$3P8r6yMnVsl3 zcP?me9Q*9bEFV0}GT@sOZf^_UT4&_*gMQ7{ly+=PX$Owc*HpR5iZ*cuv-xT5-j)n9 zn)gK(?tcs3SyMJf7HkZRN*J@w%9?drGttVIz%`kS2023W(Xa*;DU3a6kZPhi{q|&O z6Mc@|dX9}rGlB4NecM1Va4lT0ep9ZAW!-GF?y8rY3O_s!2kj1cO5cpKHao+dFRM;Y z)&s~%h#+e|<4sA3t|d^Kma(+9n4%C#TYFaWn}2mgY{&6)gSD`)pHiXHxZImTH3&R&!;pYPYXiXdy_$zST+m#PsCg6bqKM1^04_iTlpd=x%Mox@C-zfa4W_XHwo(I1sV{RRmkp@{gU1Dp0Z|(KPM=uWi+U_ZV%SW`WcrJN8DbxDN)qyzeJdmDzceR z%76y{W%?UVPGYYYL>ijg6>+9D;ZtpI7tt-Dj{P`dp~ZkZUBj^~B}iXf99^g1KD%@= z&|zjjD%!oOt|sn}x}n5$!JPw4IxBi}X@5521Cs28OTpKUR3L-@ax)7d^aCQA6y{4d z*IWu-eXH#ea{#`2Oe=UZr1yqm4C^) zDW|={qu%eItTt|@N>dr<7Zpnht+x)LYwKxJLh+?eFHfmW>*d;`r~~z&1w%4cdP+(> zO-8cZZ5YZ7Mv*(ST{ScTDsC!?M{-+TvF;GTnxaowj$+uj%vo8jdhVBfycz#TZJvR*WkhXj%=z>Wb);!% z(@+9-{=BaRoww?xZhPLhdCqy`8eHr)H!tL*fK4A?EA3gZ&Z2HtmSMB#aetN+o%2#D zTAg#fF4V-&M3vPuMSA-h#vZ8`ysyXgetHi~PNX<&jwzcU3n4WSh5v-7s3Rp#@z*T^ zexC3BCad&a&abi6_XE9Ygz62A+5KKOsI~}6I&l+E?vw|tSz3w?X}_E;$tQM6%iI0J z?5a0>)XwvOe~ve={!#lSV1EKO!=XEsB?$H2Z0gmZX3hTenXg25j(KOY#Z%=MoH60; zIp6qtQ$^5D!_CvSG#5&7H4`4f-ZiQO6RS5F z{_khx-{5D2ll>r)5oUEPWCA2rh-v2CDB+KC#FRj+SlQd-bzkkD$f2PBdx2O0d z@qm+Dmpq*-+kdeW6UK}GKsP4BgYjMn^#Av9@*nNvM6J~Sy`20Dy_~2i{~z;n!Z_#u zo=*O;o=zUfm|TMP?o0M5jbHD5s@_8>wAEto4iZw?+meFUp?5=`io1?EU#M!z)7}e) z?+5F}+_az!r{YsG)_*+L<3h^M$mj(dZuagFN(^r@s%;7C>rjC_sMXAqJ8;D0_~H$7~j>V0|u0;d>4 z()hr^ynB^p)TG#$#?PZHkcA+_l^rC<7dj|@00B~pe>wgQ`S`WCh&x$Z5A6FmZ&##z zmt(tE07!WHxr?QEL5=iMs|5~5P@muM{el6GB2Ra`SAFcOE1Yr)z}J_cMcis}kS`RH znD3cYjMhfWVShf<;Rx-Jx;MgrIKs1L=?&r+s$Qo*)Ek>Ps?r0Fmn$nPl8NqNTPIZ7@v>zFQnPlP;HAEw!67SZN{~$5L{*j4oqWJejoeq9WchyWFc{ z54pW0WV8_AvaRvy&nC1_d3iOI$Gq~ZiySpfi+}2Paq%5wvOv#@vm%cmhKyX^lJA1Y z;)wv5iCu9do(o@k_o+Y(bXtSGr`uJ(HO|T>>Eo)^YZ2hJb~M#ykvzxn}$xYeq)^=rg)!UX>3?F6ny6ZxtC>OOM6joBSxqBHq zc@GrFFBd3gVd)0d(RO!zhjW@5XJ_6}nO$4cGF}Fya(FujVpJqhg8o_l#fNsVCr94sZ}EdupZVd4G0ZBz&#y)MmcIeFCqNi&)<=E7@A@K$AgR z+4fqUgQM0d7#Zdmq~#a{GY?Fp5h&>~71A)?1?YeyE@+sKi)4=kz90g`Juu|81a=U0 zWqFsx5esRRUdyX0c5)!m8fS^ z5z>ql##R?4y|1pF*I*Ue;;N2f(Jht(QR_O&TNk9PA_bFIO1=peDM1B#6n(HhrJ_a&aLyql^OQy4{O0zM><5|}+qqHzxa>0%i}izg-l0B!LPv47yC|H4zs z?K%zHu2ID8p7!clw7zI>&E?>Zk2M48w*4?-zAU+bHu*?DhD_l?zPQMW*C0at8=17W z%5C!se%PIe&<&a-!`%_uH(6+CY1<7^fONg?l(j`e%`CWTTE>wiU3OYaW_6Tb4nBv( zoz3i;uEq#UHZyqR7?B;3v44UXpPZ=2?MKp10Mb{E+C4CowHP6d*=i!U0X+sW$T3%xQ1d zY(7#(4Wvh}KLc)&0p4+U9p)ERWE1Dnt#Ka1h!_tdDJA*Xw>{ek!xY|k@sPdpS`;*Pj4ZiokQBpuq7A=+&| z#ER5?7Cv=KK%E{y*vHgq6q|Y=v7*_}!a;YPidXFO>x`=l~g`-E$_p0R~ zdb(UzBTh@bwB^-HYkwR$1Q{H*z-aQ&K=;ytj;6I|Bq#^ZcJm{Z+f`8(%Xv0B=IA3E z{VZ-Na!RmIcdf16JrLNjT)qri-b0AVD2FhA3(q0cTzIm4d7&WhUUInn7#Mq@e3A_F z=gXr#uKl5{eT!eqqPn@aC6F>VP@v#it^TgAKiLH~z*bsdeSg{R0*g`6>N*--uQ%#m zJ`dU-yFnLH8H;fIK(v5JTH;PHcLR^ZsN{ZWn1}&3eO|Dt6M|gD$Yp&zl1B?q$7Pj1 zK3)c})6`&%0+wY^442btfBB%y43kkBSxKq5iL zoUQOO%OQK4;(ypfm3X9n?x~-L@F@cx;6}XtoMGV!r1X*`FzetJf~buh*tOkf*1&N! zUE(z!5I^%^4t^#P*eqORkBZ_~ zYRf@s^{;|b^v2&Nx;J;IH+O(% z$dwxT(DU*>&VZ16IcW||k&)zBjs!T9&xJfi02G2?jxcmR?YFv^u1*UnMs;8|F)AG~ z5-qP|fqcVDK|a;jK+d5e&n9V+>8(ItT|w%L7QOYxGk13)&TWC0A=?^ocLaokB>Ti)XWm zr?{um&6IiHCdWgaBY6yz*>|6_$#3aXVngT9N862*jgEABr<=&$r_fW(GB=6fVG!XYR zO&C+5$pxsU%_EA}mQJ_*kg5TQRt`knr{D6Cc&J-`PDP%dvt@7Xn~`=6Rqt6;9h^~} zn18=l;F}NTp5TYkahGG~#I~uAZMotAiE`W=IMf~^&4(9vA*N6%jcOUd2$Rzmy00C! zOLyl|K3^oFFxYVaeAsXgw|RAJ$YTi5-=Upiu8?$%^g+#O$B_gsmTYoL7gRBJjjP~z zt_rTY3f_%R{H}I_igtZOY>H;;)LB_EoPUy(wqAbc<t{$2_)>Rl`ihOGkL5vGDDWwLc~C>LlLwVta}9crCgqPY2?eorBvwkv zu|$qDzdgoFdIs=XV$Sap9-!OwaD042M!Zr9`fdbcBZB2mL^&yxck#cHQB%;|j(_M` z48@EEbgNbnCo)h5pT^jJROm-_EjRtBxF4vPN^RC;g?m7;U5J>w3tCpad@vrB(vc09 zZH=-SJe(MTVxs%Ak6P80rozvO`Y1&*N4NH)QWf4z)w;T8-ZA0*qTju|m@O`Tke!D1 zq9W!MP?Mk{h1Y|24?T)LhBU|ky??1K?5)!WBK+xg7c;%S+(W&f4QpujMjG2i+@xjg zNA!1vC{Kota0q=t56z;3F5#2s-KBGs8*}>EH z;KS)nYSa5chA%y@PBKbNM{bOq-^z0crn1@V^a)o{C`0A-AEN(?1n6H<3V)39U{5{w z_ml>2EndAfi6p-L@@KEU`toNBFaHW`@#mMne)-2&Uta*q`0K0BBH|Y>|M>FPi2mKH zZ!I9|3$H%+>hmvuCKizJXB7MjvLM64%U`|x%gdir{#Rc|hF>or^)Co~4WF;R!FBwJ z>Us6~S6@Tf1)!t9AoRtTzkdUQ`U16tQh&kkuP@Y4lx#pzC8H=Q=u2dna=ls^qbC{S zpUg*3P02oblEGBIW6Jf2meP>nAK`6H7QxXVKQWm4Ffy6pHfI>btt2}p(cNT@dz=H@ zNRTubb)YKtBQtz(^?qcD4{pSdO!2`@`H=-a>@5l7!sbcu=fDsvoQ3$b zgfLjH5k#!kLk(X=3+lLUUnnH9<`$RbKAEWFvMGz&AN8YA(1DTaz$jMhttMPW3!0?N z??8sEBin(I*MU*J1Ao(ira$OMgP;ck)q_E-;7P49MloL7`5l}E_jp|(=f#QRA-53P!}cNn9^MP9I~9vAx|dH zBtf^&Sh}n8F5Q(kTe`>cKXd7>{O2y+y)%~X-7}Z&&6aEbKV!N6Ls#bE87tH6&bzC+ zoi|&j>OW(h!fl0d{pYUU)>*5!`cK?g&oVr4mi`fwN8>YlwYj?=&K*BTGb#EiYeI{Zq#&4fmNAx|=&Mkoue2`uN~egv z>SBqsCV!SljZ}+HknR*-?^Qa{s}+@RQ!N`!L?Cx^!l8tR$V1lez_?K+o^S|PI?@Qd z((MGoA^M9|E?79kAzowt!nBYS2A|x0m(Ed>>+OU@N$i@($o!r_hBYB1%EI|81Nl(O zVx7#B52bN>hG;0Qi-t@c4w&{J5^IK}8|RP!xqlraAp9TY6;g)saWWoNz3uxj0;K3c zejs}j>c@ntIa!P~XCH|f0lO84@bPStowa==#jf1phqk;smAdC?@}$v$4xXKVq*Id#?brf;D5x$owFKrUa>OAq zJAWuMk`sJ5$t{%KRM$qa+|*SQ0vz?Z-~nUIo66I%nJpM}lY2-z zC=*?T8UzStJMcPCSN)mi2shVMwSS(i&HCMDjZLkE3C*`-TnoLw%rjO<;A%O6z^7DK zT`$O_u$TC%3Hc1wgb|hiDt~s*vmFBupnv&h%yl8qMQ{laRd9biO@sm&I1XvlKkxD^ zK@vqxYA39T{CwI8Y6L&97@(|mw%Tx z{VPMKxlz}pIE-4bOJ-dPd>$m#6MPr+JxB{^)FPDBLb(muYb<4f+Y+rT&urun;X9p$ z&Xd*k!`1coc0ObE7LSm!VME6VbyrQWpb!TV%IVUQde+3xnwzZeHbFmYuCs>f52W?= z9RIw_`1MXF(B3nJ*kJ_lq_eQRy0E&wVA9MSE!%qP@rcn* zq454*Zd)a<*KS(K)mnUdITie83i%P0rp@ zR@I3}WkG$Irv?D9?m-_mTN`<5ff>ja2!5kp1Ly3DLETdGX-yZ6d(ta`&3_#tZ^F@> zFF?;6$LP=O!ne=23!h4HlXoH46zCeif1XSJwKaRmzqXD~`rQaF`QJNNMVD1Y+a0d! ziVk%-bXC{#>4^YD>*LJapsf}vzKYN8PSasU+QUj_4lBM~XQR8;P)jkrmQ>4cOf3obWq)C zF%0{td6VGGIvJIRQKQ*g35V9nsL4tuwH;{V@!!;3XX)RBWAoaUd|$(9*MVk!Q0;;I z9cTkSt=>rV8&y2{-86;vCOb)J~!TCKhs*KDQ zm|Q94^4cX9*Xz(^H)c%8TlER4&FkVKEh(QE>(L*YDKta@^pS&^J4zQi7k?WWVxjW- zkr*k@3zzVlg&?t9;dmAuzR!vdXUGgm$k(McQ;4KiU5fNnrGKX?y_fb=+d>-iD1{nG z+Mp~jO_s<*vN55a=*OEO5c;bOzOM~}9R)D24}IOJA_+aL_DqZ|THBn>Ade{adXr zrkEx*rh>aYZGT(^YA@VS3Qx?M#Cj~CHS{(@pZ)+s6BZ32z~coj=J-LxA5#UYXr-*R z!kO7&l!=c`H%_f=vz#K^{74;+r<(OWj4NW239jA6QAAsN6?>7r8ypJGLVwr!FVp}| z!%a{X#^}5nw#*(#P1tcV9Ja=OHaws&B0gg>BCv)AHh=xl+5838WMp@qR!L|%R_%_K zcZbKz<-R(z@+&W#>Ck0L4=T#=oUMpdqBZfOQXI9{SgCK=9&lmG5`KYx4ibHwd?NM% zu=tVqsPAz6*lk~^pG5uS{1e)zsmLM!c(w!g(02yeZC))v?h#m)XYq5y>zNZg&!r7YVdJ*TI>VvD7|7wECVJMp1Kqf!juf zt#Z5@#H2$P&?@&Xf@O$akPRbTn8k=L_>qu0X5d=FE45Nb^S364J~sXr_PB54%_Ym5 zx%)zOIBO!T8C`ZN!kIDQ)a$_mntH4DF@HfOuz$s&c;<|M#a;0!aZ@}MZ;SVf_lnPm zPm5a$Bv$k^)Ue6>7@KsjXl#<#@d&l}p_n~hyfsNdK2$^MZxICnf#&o1hnRvmx~*Ed zs#_V?TXB?3WqY^I_H0VFk0=b-(b?`#$@ZSezsBh9D4J2ve3uW7Z`*x1LeBTgLH#4&wow_@St z+gmj{{g$EA3VR>gDxUfEZ*k%sn|R+(yupbNY@)29yY&O_r#Qz=KgZL0j<-3-#}*eq z#+&5**ws#&>Em%@%beFJ0%CoNkWW&CWPfT+P7nE`(Z`vfO|A0T^eT}! z*}221HQk?8)BVYs?o6%e!PJzSO)0Ypr1mbepALs3si8ZGBMKC4M?Gp{wJVPq-{q*r((rx(+$o;3u20gd* z{(WSBK6du!AE)p$oBUx4-nYSzz%>0c9(%xyGI0peh4-GEC^i9H!7btw0)%h)g;d;f z{6cQ|1+z4Zi}i(C=bXObizWpP*ni)NmMr?;B!bYVKcJ6v@!N|Gi2%*!_(8-UZgmZ_ zEdc@nZPCoOiH}Y5r)EHtaA8uO)rM-6cj^G*a^H8k9b_PT04kflEKL`UN+q6;-_sU% zjkruWI?(@E|6^L42e;ZW69u90Ac4*MeP-ePU=}_`nmaUZq%*T%Oeq?{5Q0*%trPH3sGbXD~3wbli#A z*VgSxM&nrx7;Y03LG;4%{AbK)P}Y0ODr;-9_`O>3Eh-L%imy8EdAde-l&;ZMUDs&q zY%{xT1`WPlLuI!O4OW&Zg@0dABsFnG{W&$5IKBEBjFWy%vT-&}BHJbeKZk#xZ`Dq0 z?2*s#2qdqez)G5BvUu;qJGbL^U8{-(#`bY|8oGY1dSa76A)X-W<&Pna|Le6&@X5UJ zC|mIUYsmb*;hY&^vh_O{T>XZ+KYx)wzzXYUD298Lc?*3X1%3-lFMrsDp~YX%RScx} zO6&T0v*J&2{as?LjE;Erck|)#1W0VvKw`^)M2!b3M+4#k>YT~d9pXqBEJ@i&v%lk|kS$Z>uL8Zoa!%4G#FeUl2|j){>q-Nh{fK_@By1%&~nSOEjDSzGzk^ z59vTJiU8+^5|8j<4}a?T8LOY+9E-Cb4RwQuM9GhVdyj~cXO499aFGtn|oVz|TZE@yUa6=^W)?&wv1=BK==b1Glual*9)>c_dx5eetvnXo zQ+C{nw*qCy*|75oSH~nhy=?`9x&9qd^cF=QD*}2{BcLCwOAIF{5fKY84~f~hMgAOn zjm$HGoqTWveSZ$KYd1OzyLkbDKH~HT$HR-I@!{h+lDvXgjGJ6rE>|S6TX>ug#$^w> zJnWT{lsj~k-uot~>rS&_x|gHXjyc>g9!Qn*>{Q)p++($O(%dI?$PywlX_;WKpX-$1 zwiNi_jjrLpCPv=X3AWB)Au=`9wVD3J+3wb6xlqFkfqzw=Q79nbKf*=%mw<^uhzK#m zK$-5k7nC_N;{WpU_w)r)_3M_E0k{e$If5TBj{h~Nn^QR8iks^Ei{laeI!8gBKYjTJ z5Q@Ljo&KxOH(5A;SzXN!xUR8vH4{31+e5ncKJ)UsFaLCQje%#H-6}IwC~1rxg|UYE zB!huGsDBVmnmp+sp*6kq{s;H&w(3seu$86nPOe2SP24h(dK_wv(>8{H}5(j6#LuFz8{`F_;C7|CTk z^kNmJIFTs@dhI}=%mRNt>ZvKx_|!gq)ET|xn1W;2@gRp24wnO&B}JM)JgR!RQ-~hX z=YJsXAei7qU9Pt`_EqTwKx#M7tGCO8-msQH4+*%jJ_aaF^@y>gAvvCSQX*lh4kls% z2$HNq04*bAmJ1vbCSb0V(_u`1mN2&+dgL0bs|>DWTf0ib&lPdVp>?rOzgKC9?af_K z^k@DadlFUCZC21}mIiAk=Zk`-aZ8a9$=(yo9q3Jda9K|9*h!n@zUZY z+~X}K`v;q?wu`;Sv7@RMd7UHoDAJ3KTG69N&gI7P|3GPl0s37ybaqlI>6SR*RGtmZr$jIKXhAHp|%Rb5kJoUq>zu}4C?;Km5uTQ z+dydj)u^V@uePXHT_F$iXRbOzi1i-%&uLefe9-|`#B{cl>-d$YKqCPQz<*KdMr)t( z`Q-B-fPQQc9q%;>M5Sj3Z~G4;k5kZR=~k=J#KIxHz?Y*-Xp5GI2}6I5E(Q54ehi+l zu<^*_;Y?3$I7cooB{bbw7b9o7;gG8L+{GB_E&;hLg7x0J7$TF6Z!q&e*Zu@qy8iH?k19R zOh6I4`e?KYxr0s=jO_cm5QAm0AK_?0!Xxr_WX>v$yaSTH*?*KV=YPScke}lW@+<2+ z2@$_RHdUH^Dg70vi!Us^>(%GxKMK98MXFJ1<7|UVRq))xN~pL(Zzhuh7Q5z8U8OE4 zI2;06df^NaU*~Q6({2Et{H977=S)wl2>86!)+@Z!B}M#P9}`DfmOT)qew5@`?E7v~ z2k{mw;cEhqAKJp&QGY795m5)N3XC5y4^%`UnyKu+(Ku@J?@<4O zU-GLtRMpVQvTQ7W99fUIMRqQujS_SeC&n5h-4#9)y(%07y?-Wr=DDLxtJa0bFmDLQ zBVRsM+}ieXS1fmTd~=W_o5N&cb#y&w!YfEa^))Q zB3{FuLYIE`#($!G4Lb@|`s&8zMftyGKk;|=uC=#~rV9TRV^x){PTM%Qwkak`leDBH zZwpOY`c_f3u{X{(j@R8CCr)W3?jV7L1bjeT1$^Ku_xt59z+d2(@SHO6?kR>&Z+NW{XK9RUWT-O zlej8S2T%o;8D%~)e@{*`!Qy@G?|)!Fn#_kGs#YD8&ZMTJDMGVn;j`4}?T(B-(=7u=D!n>H0A$Ickg$$(%JpLR?Z4vzNEp zNM_~?fq!f^lrI?K!qSwkj$o|E+aTCrPS@Wz`fAtNdqpPb8*s#<3i2W@9Ln}SG~3!} z!PXR5k$>R}F*Z0INGuErdxgsfT-!@q#o7e>lq8#u zQcXu=j_``1tXn7#o#1phJN>9I{5ZpYV*$Q)d+R=@ZrIdMIl<{_{xPe_eo22T?A#Zp zP}d!>LgyY=_}tdANl)us z>3?OFar#qJ(6pr%UUzxr)}>W zp>WWr*`i9Fn&LxM988b;+2kK(9t|Fdif@_X#Cxbxk4^DaRUCYh`uTu=lyNlJrcztX zQEkmwaUtYQZdJ`IQ{TF(54@QA`MCOdLqA~62;J8%2#fN417bsg01Kyn?x~;W^nU}6 zjzH`v5MZ>9!zAjfa!*lC(|*^k`+*5aNuiLRg6c`KSCOQa4;+gXrCUFCV(xIvmJ`#M z;i$Eo^;pBivC4#_W;yD$TXK%0cHF3Wj*`+X$xoa0q;HGH=gc6pcsBD5k>2z}M)!`H zGq;e{pKP3Y%VxGS37P$=1#2?blz(g-FRdTGl*PtnhI{UTKbB-(mPl(}wp61p=CV+h2s6<&CPO7jz7oo&t>m(lW`@WaH@0vRbINPm4K`hMMd7sNLOZsQJ10?Obeejn zgyldk^RqpltOb%D!N5wG8Gq80CxEmD z+;dtM<)6)bn>YSF)xSgi`&j?3l1*G9jjf!uJJ-MW_3wuMeVVORYcKIY|4Kykq_SH{ z^P;@IJs$d}E57v_daT_K|M6Au-oKy&O10oY4cc8h_Ygn6vofAtz?eSsCXjg$TzO*@(>eCasim+f-|Fwd+A=B~XA>RORi!-c9Lhexla zT<-Lis$pX;A9>JQ%GhcfyWd;t_t-w*K@&jf%FTnCynK1fkCpTQe}BJW1oMCMN7J57 zeVGei7b<)Y&<3Z&XGH$w0s@5Uk=Hxeh&*vHUENl8;~{{z_v(Ds+77Nl+k*vB(rj zQ*3ZLWPC}Dmc=}?0Dm{!nm@&<_Z&e8zAh{W86&&UG)En~^mWv|APvdnoQM)TiAax@ zOz^19LC#a@cASr4*ZG*ueX%9n^%GFQ^gIbkw+Q$4MbDn?(X;2E)Y&s0kKt(%hMO0~ zaB~#H!%`R?kH>JU2*W2A#qh}}hO4D8Tp5qyS`mg1FNz@w`hOU%m%{Mncnn_`VYqQo z3{lX>@L4Gg-;Brb-i1XVbQ?BtE>{Q0nMpwGTdlEqtJT`cKdQC)fW&+H6FwxVk{tu$ zSb+fBp?-$^qeLO#LI}jB1@Smeq$;;<0IVRO1tt9RSpBRTnFs(paR9&yG8(Fq9~clX z5zxXC{&}T-)_;wd10Wt+5Id=9#K#SQHwb9y2mjnxKhNj~Y!U(3aB#>3BA+qFuE%~P)$u}_fz`! z9%hR=Jn!VV`{Q2jRc-%fl;sP0?|6HOm693uug+h@tikMXI)mB0o;W3g**qPY5e^M$h>U*B zDihf`Vd;OyyvRt!g2<@DqGLCEE9W`=q>QO-!+K6{_#V@*{I6Na9*&yioogHWV+cZi zPxk|0tUAgE6q&AWPc)8Qn`FAWa_Oe4la1i)Q|KkkPm?kBrHcy-cN!P6Ek((>#nN`A zdRtFQTZSf6n}H^iY(DevhxW?&OFe-U`H?F{Ch32!^#v_H(BDy?zFwNIHhrz}mw9z= zxf=IKzEoYR#{2smf)K8zvh+btmThpUdc9h=R;HE5<=qC}+9i9SkM!Vunwpe^%v*C?s%2hZ$klUR> zIoL0$lwH3Dc3Zs6Wm}_c=Pqn6IuvUzS|?QUlI9TL=VoRO#aC3(M9N|sw=G^7n!L(1 z`LRzJkX%S@ALk$YJzrOMz7x|-L2waQrYg~MG3|Q?8C`u*UVQmq;87Hb9;APX zjzl{bB_ET#aXzX=Bym#Fk&R<)Q*@?*mkGv7Zfm^daI6Ger}|Tl+}V{Z0|hHzb|L$CrQ$V@ z7L^6yDD0>3A;{X)-=n~?se%ICj01R;GygtTSk*46^_*s}oL6^FhV=i)-%h>}T(@yEAPY%;0I z2P`JH*dO0k&L7`a=8q2{CO3azM>$KYX46#^H$BKXFISgWZ*VJ6 z&uWtil2Fsu_9t*a|JGKOQfQS(8FPa}@_HQB_0tHKK!CG16&yc-Lrj(lKK{@T> z_zB!NImm4 zwnj1$=#@WG4^=keZFqX>1)VS{T;wQ2)DdLh8_Mq#C<5$=v@GY307`w2yzoLr)ECh( zbK<1mb5>ZpWLA2J`7;qtR0M=>R4{ljgeknfQ^AkBx%{C3JLCbS`YjdBVAy$pEZJQ7 z@;|u-PQc4P%!F22TveX}i2h1`l`Q40)vzM$`C0UR}l2q-G4YI&Sd zTZN-~sr-BNZtdkj(VI|M?pTU)llv57-HScD3wMHg|rRgY_%Q=@}D)% zvqZPDIVxzk5w+3dQoc$GLhbE%rQ217Qc_LH(FdMe7k2$MBO-s#D+)%fsyqteBnux^ z73H(6UD;3KBYYfJxR5+iS*1t)vDrQ=!M!SD;6JJqO(bF*%1>-9E9-#fI zDtLJ$=iSl1n*D4Q) zzh~9}$Jl=}(yymP+QGE+jk-%i_WpFp{^LvNW0q(9XV85%9lFkhI3IIXIKD5$H>O7X z^H^^X><~xuAHerhrSvq@czF7>_=NbR_|Wt8BoZkC@FCzpB=%P^0AnLXUy6OW0+6C3 z#gTs$$5Nca22F~g6em(#k>XH_O(`Bpu??ZC6k9lcNwF%$6DdBB;-wU8QoNF4U5bZN zd|Zk*QoNSpz7)@-*uaBoQrwf`xfDB6JeA^s6rYyj6HDKP*i_cM-BRtK3n$lh`tB*o3pp|H#9|k`tIxR zeGK-!QyHcdxo;x7^mU-Wl9X%cgrhh9$%VmDII0QjggI5%QAole?C*4{1E9=%)-kd- zo2HsHf;m22fjdgEQZc=eO(^Y%%W;>9%KcBe1h{rx1*UVUv_6or|x-sTuM!OKDQ+t#g?ITi6G zRNBxDqHX`G>2QK?tD|hPNHtlEicH%+Stu(`@NydSO@lek!Nq;P#YjB1HLsdJe?pvR zc%fUS?}R2f2K)t|+O??qi-`CGQh$Fw;TkGq{Bd9$gt&x?9J%|a_nqJ+Vaz&6+?gHk zGg@K00bFvv!|oYup99-CgqttU@zmyc-~=xP+nqiU)(I~4KFuh6!q)pqgXD)mvKx|P zF?~>XNJB1ssfd1#)G}(pRmfIbVVNo%BB$O&8bkvLOi2%JSlBrLy6n#t=tz1T2=Rjx#~nLN5^KVyWzOgi2aGqmp! z+WR4Bqsq18b7@f(aPBD8luVmw@Xh%HsO8G_E~aglr-&0ozEH zMK_eC@og32+rJEa+okdCmdE#~5Z}`>RVhq|>81OH>6Ax*MHbRCSym`kNXg1KK0jPs zdb>RGYqF5Qy%X~5?}Yrz^2pyWME+Cng#5-d$Sa~(9^t2j2!DUV#(pT9H6t>+A>$|N zF{!%qBGxl{BB~w3{PpeI$vM}Dtx)T@mUF6w>XO$lbor!A-+X%NzS$|?H(_{TFEZ|Z zDQk?&fffRpIWB(M{FB|8DkVuestq$2wnKK%pg*)2rc^aHuJ%DZCQ+CWRzIJhA4tCG2jXwn z&nwR?IR{u&u8PGOfUX9>;&UAsm_VBYBv9u7i`7-JgA71N17K0R z4jh}nsm#vKN7ySeYXTO>XNPD%X(+SPw4Zb$vtzZNbVYw==W9RdP-X{hKWS5%6Sqy$ z^CfHIwr(OT3v^)11RisM)CU}3C4!zrGMhyj04o-B;FSribAVJ09AJfmo=`HIQ5pa% zA#~uG32bnH)Dj$E<%BBsJOi+!0kFbC2OgNfr#V0>3=Xg&Lr=6Yn`j*Bh2&H@B-8j| z<{jBOISzlrQ76Y?@q_zNr-!6Zw+a$_Cou|H>+U~mU#OYLd=YoTV#9i)i-6ttQAnos z`0My0=C9^D8`P_mR?UP!QaoS8NBK&S&G;hDQkoeeXN_CBsg@#{#wXl(Pank1eFXnun{>Wr~E@CHZm$N#0C6j;cL(z4zwK$unZ{mCbNQIMez!^P7 z6ldHADM7}Z>Sy_wrVtcDtO3$8HA5ai6Y5JuFOY$|6)F0LK_ds`lz>2e#QGvFhBJg@ zNI;0PAcF#OYJkk!P%<&k(08 z1cZO66*4FwLjzgBWb?u(V z?iO86ISMn++=u%2k?&T_b0_v%|L$ZSyRCO_RgnqACeSs30~6@jJ-%%P<83PuZ(C7# z+seS(R`}h{q}~V`)D8G;X&NC-E2L?LH0>~f=hC#u1Y~HM64LgiJ&xy%74DsX&su*B ztw-d4m$o>XZB?GEZdN+|D1J{*K3xQ(wH3x_%cJHHnu?@P$sD#E?A46PE~QxB=xh&Kgx>; zNE8)cQN^)3?k6Fr{1$fg$Np0&v&xTX;4<>Fw>hrkX1imeY__=>j$3iE%{6qCn~m?s zZskq@vw90Ytm%hN>ez~%zPfsKr1NZ%j$efP2Sxl2vqe^H5w}lJ#_y#vZ)1NP+cz?{ zcrWo>c09kR1I}W{+`h1-67-@Y5WegEK{pM{dfc3wo6_Uv&ZV^i_A7<@#LI8v{FH5c zT4K|m>JfxXv{FPfns&Ngy-ExUTNPk6Vp2cn&nxuVpzodDyS$7r<&OLJpV4m1I$PM! z=)1=M_}qU7g958HOg&?-_A7syiQ3Bq@SVW1*csg!d0pl!>Uxl#v75sFhuO21 z_U0Ey^_-~G4PTZmh$hys1j!yF{!{j9ImnS-=?a^~!61-sOJgUcE8VuXRMCNJ6{e#0 zv#87}Y$$PXR8M7fv<($vPE^d1wxL4I6%}(Vab5m@ox#`pBv5}}Z2D#q23zmedn;wp zEXk20=aV8d*MVLeF}QzPufDTUYaN8G!@YRun|7qh^|;qP<>-%R(Qlg7y>8q()ZXQG z>8}2A)jYDbNRpk*fzF~9>!1-cgsOS1Nx7#>4}x}lf+6z_K-#gaI6inP!Co472QsYC z0}Hf`&7};JiFU@9N74_^hXguFJlPz-}4a0a?BV8 z(hMS6qGQSrVp4xbvClbsB^CM?6l#!q=}p|5?it)pkrcxhUz~cc-g0#(ohe_u#m}13 z)Z?%QCi4c*ys+IgWSmnTstg}jKd;r#eO1G=(l6EaYdH92iu(t)Dob^Ibv}MRR6kN$ zExro%w4Rnvjye#TfK}sjfKHSg;BzH$S^3&A$5dj=tRPd&zR#=YJaXFwVDr^RXR}RwgW|RK!na_Y zUDn9Kr*MDD+w@NoO7Cks23GE-?_gE17Hn#pwSVttdjU%MJ*+Nr!kp!y#J|kV9%MaA zxTDWFy!txQ^`g~bEizUbGHWfe)Jj(p2Q8mS{L27BNTkF=`iR8K_9zGNhyc=(MrN&1 zwg4M|ctzr01`%>57BC5Y#Nq{ioP&5w5Q!KdvsQmED~Qv|RQ>mc`S+Q5SJ+od_N*?_ z&@R+&^^zIkvXMtJqgpod7=cs$81Y`-3C{!HSp^1io+fbGfogfI%ni3R^GCkamMhjD zzgXWTCG&Z?K7w4!Rbx-<>6zVVOyZz*Xr!m9xwD;`Egp1BNmbzkC9&=;oc38K7-&nD zE2V#2|FPC!;M`7~Z~^_(?!W=vgkquLlDek6x%R0r{w={O{-ijM$_KqZ4JuQV9dmZB76uvCT{z z)2N`S+X5F7{nf_qa2khw&AKVw<`#68TRpS67;2K2%dYXfdOxh&M#5Ya#XCn?Z zQ_ttsCq{fLW=ToS^`W@1Tf<-Q4rh}+eX;xY7o3%UZtnuQFl{BGmBeXUnBEF{tq@#n zH%`N)q`>{thwu1O31&utM_fH$!*twE+RRa${-2Ud+_Sb)f zlb8FVIleFIf}9-L{M3Ql6n{ySxm4HnqxXdWR2FX&=@|Y=FJdx&o zION;Hq*;&pVWc`^Y8Z2kxNNR`I zea2tYr1n`4PGg$694rSJmlHI(%|f+@s*hX_Cjx^5v}%E3Z-VjMO{(y>?1lGuj!g42 zlhKM04Xy@GIAnk0{ItS* zijS|Q$^muSWMqV@UPTM4G<5qbL{=c9J44xj|o8vT-~M55!qtr#%0~= z&;8Kr))7l#I`KuL96*}m03zZ5FhcApGj*K#C(4tl68<-4n?iZ`m@0UCcZv-23Nj1365p<_BCKrMl7d*HAINmDmIsNaoV1aL)8 ze=!{r(ZhK27taI^p|gk_AV`g}={m}v6^>W(plPc|dtFSDTA;j=JFdUc$Vt2r>Sedx zJ;(KT)Ql#&{`N=aLj%K3xlSz-#q+I~j`aflswdXY^#a|Pd5>t%EpDaqf7kl9mz`8z(+ zcS~FO_!iBw&A5{;4aPlO+RhT}E2(`BqSJz-^j;YDR$0{4UfM^$P|^W@0i1cUm2Qw6 zEp?hTIq~&V+c~aRX#amrQ`2Lfx8?}>+$7}mI?{0^oglN9iu|^VbDo_8WOkG4qWGQG zhKNVsX>|s~c>=YIj800?ORBd-EB}&eHcnZV+x$*y7GL<5>K)N`-%|Bod~M8#zID4j zGMbLl?0sY#Nken(#Sw8N~w<}01MV5LrGG|IyOo|o|Izz+!t@|_1X z*v{#9ltd-Ca}a-ksS8S>Yfw!02{OYdgfsn4;fvI~zb~&7D_fu3-p)5_{(_DAE}bCM z!#cVLdDL8oq4|myFIbVA*>wn(hkonA&>3ZPFAoQ-2gf}Zl&|mh1?$6P$NLsEn*aC$ zTlCO;_uix!oum1>?_9j@%)sXN7^bgNy}$<_@TbLwbsT^DJH`ghMt(fKag)r#P>d6+ zsJ}6DaRjoLK*;LJ)I|OMYpTlgI%^h4zWI%d6PihD19j{1K%aOuUX4y*u=Ho^yo!G`+Kuc_&-lCfvhtplui{Lcq(sGw``7q~Q?K(fp+;*aQ(I~t zAQ1KXGp2t%&$nNJOd-Zl4~CM_U`<1?#=k}>^!f|Zxl0r=H1Es&g$Xy(U@3+mHIn*_ zp9cHVjjUD7o4=aWs#nCwe}D{-{Gysl_+a>GBe&-_{Lsxx z(jG*;xI(-|;X^ZjRg~ek)D-S*Wd+Lf6yQ~>c>sTb5h9uJV*~gN71NstYFCz{T>9(i zX^kfT{RN>z29)ILXtbARFWyT|X4etb?{EI&E5JpsV+P|^DR zM*;rC+b=qnX*~Bb;{VJGkf;&QJwqV%(?q<)^Zg``Caw|Xo=_oB9%u9vCe@dCIoY;>s=K+`}SC?lt=aKg4bqzcC+YYU1W07t(rV!R)av!|WuT zr}%5&LpbR)ZAq_SV^$oXq*tOFt0G2!T2Px`Myqpk#Y)u$edzRs)UA+wmy|BJwsL`j z`hrNglJr@l6T9xKM%{^Pb3Ete1RT{mHJN`s855;bJsFdxqL+$9xF_K`kvj#?3;zT> zBXXzT1(7@XHiUcXU9_+6-xBt0d)s+-|BiaAA7`J@y|L@Q zOp~O!3nwDUUpYChRnud#tx74_59EO|K@(LnHQTyXY1|IxZ!A{kZ_HO_@c#z>yMBM? zU?x~V)Pjy`G%B+PjbIKD_%F+M>)?80*1HoJHA!JtIl+I`Yb0*g$tO`8Rg3Cvlm8%$ zItS8?IgY}Ud$4g6Ns}IexK?EdvlN(}$3K$~BO4!v*A2wkd^}=c07f#DRU%m?5z?$K zl6oKs9vpf*xfS%0$c708sjuRwXOn;ZH_yx)*ZLW;5JJSp)zBz~-R@vN23N1q=+ZHwHD+AK1{x~tY^3sHD@?Tq!lPzaeTgnke+b9DA|3^DD+gjgS1dN zg+}q4T^D`)g8`hR@A3c$>n^QM$w$lTk!)78Ff0P^@*qgt>l*(uTK}#Z(QT{UCK|X@ zy;<})(f*jniPAAJFy;26P7!~kgE5ej@sN5UH>n6(XAHD>3^aQ4t_aT27&xslaMIHh zMz2MXj*B6&%lb}p&%7d5yn;l}JlT}y<0BKF9#l(#Y8z!qznBC=Nje&pj7G&Jo{9Qot%H%COw*x* z9gRvxqv8_JM}4U3^EZD9k=@e8OwPU|{!X&*0N*@^^Dj$f-vj;I&QaEWI?bbig<_ij z#-{=I$M5n1%n3IdF8*R9q7Tw@99!Tc$**TZ!^8tVq!jLpQ9;62pzO#EaJ=2gQ z6e%wPUft?xH^QTt;ZYYLB8#_evc;>ZoQ4S}k#S^iJ{ciN>+gS&OF2j<7@%R8(TurW z1RNGsN6&LKm5iHC*Q?!CfY0xQGS$702g~RphWWg;%jc|B&Pv5*cAe7}8&TR57k$s} zo|#cs9-`T7{0_ffr)$*xNp|y2md1?AleWTMkVNtJP;xACsp*sS%=C#d4PM>oV_ImZ z)6`j23!E7EdQpEC2X>X-A)h>(dS*6x8tlv*LC>a0&4|R#Cf!ijrY$(hPDeMXqrtU- z7H7#>wwV)9ub@tyx zmX5}c>T1!b67TH3Aj}>bomYg1Y5wV86v8yOFAMXHo6+ZlVNyKvK8KCa*2gTHY@5;4 zjwTgTWpjUIcsB{}f76g0=XVObPef`%SXj(9gv8wt)N#aL8%68KU2qHD7O*gz-y#+O z!4Z%Uw=6RG^zA$-A=^5l)J(*raO?2OLTohE-jHT9 zDa{>88rCjZ&m`N+YH8bae`zb?kfj$AhdHOb+n;}IUysQO01LMq9NhkFQh(}QW)YGD zXOoEv`_kWOLeF42EuP5fLr;)6z9_)9TjlvhQ@!)B2p9WoI^^&`(7>1w+i( zST28CdNzB2`}S@1=G$ts$yW`R8%s0BfN!Ts*~!62U%uGcZMNwzMfjHjx;UoL?X;Sa zAVib~N15#~sd~P1vS2*nU9~~hUsCm#F)$r@B#w@%xn<@);MNN$%c<+AW5}t8)~g3T z948~ykEZ>g_py)O`FvBI!N{wvQcx=TVe*2ZI9IAxz=b@s`5Le5!w| zSHm>#H>UbA?6P4O;)`}=@3gXZ6v^bYaxYFIFbaoo2#HGI83y;?r+Dxt|Hw__w)@J> z+=71PCa%{#_bvV5^~OS_k30Lm$CQ2-_w>o>O_u7rXz^R?-igmTCe%ul$i2gbyPqd~ zS_{guTJbmon~jx}i!a_Lgv{!DL0?0>&hO z8Wcg=@{3S2P0B$M?jzwQe?J+U^NG#LMTU_ZW{~=AkV^?4S2Sji39q z&5bSI#6I%#>wfd!Me==NU=&+4dX>J!;9yS8tJipZaI^?LuO$z7Az>E!xB7o7eSpG^ z;*TiCX$D&c<~25?qb>%2iGJo5t9Acf8F-hllgh3S{+`8mcEz~Rmk^_ZJrENtZPA{W z!CIIZb@O00q3kZ-sNaXkf3cy|u5(n2vo{!GeUqP|bk$FbrOpGQ=aKW8!%BbdHHSy`H3$CsfPbui2>yD-KlUXD{`$E3c|$+oYSh<# zh2aMOjK1Q)`#qZe+-a1Qx-apYNaFVba)}VLON2P*B9oX%KW>rZPIGa$3gXbcxM$$_ zAxQbM1YZm9%4NfGev!WybMgLUI_$nh<7~d;1iX3`W^Seg8B|X=aF= z&EC4bFl#t|J4x@l2a37I%q@rMXV$V=p0xz3hHDoM112}AQJ*>%?%XwO;|`!F%W5j| zKxP*-5SO?&H2B*YjEsNf6i=6*W@SA#6q(E|ji;i4uWY^|uJ(}xlXFg^`hXOh?@ZmG z4$VfD3#T}3Yw9&c8%^A4>)fMnxoe##|QeZ zf6NCVHS~Ka;&@nw917CYUaOLw1x_481Xn*F3Ny8ckq=IS2&sR}=79kRdxYCNWc1d2 z_~g+CWb&VeG%b26NGIABd6=(BwK(E#NcLB?D&{aqJDbaK&I+GgaVu1~rL)^ZI_Atn z`U)X!^dChin}fc>yQlHCN5ex6fR@^EkW?VtfY_-nU-XnEf+;U;kFbaz7z(kf<6 z56dBgP%i-SDBpkAcY_+cMWqWbxXQsc9K;XqfojF=@Ww#^IfGhJ5shm?f8u5vuIOm8 zphH^$!M$-1r;>E~qDut1g>0DuP_dv41L}610>wU5bO5{rSc>(bkY#GRS-r{2GdA4GmJTcf5=`=wRX<)B(P^xg5yaW_{`7?u5t3 zXELeROBjSmFbtbchBwGCKxF-{VTC}J;$%I*BCdrX&mn9zI`bH)Pk)FfvBQo3K9;ZaNVAT&dfDqLoSiCZ4&UnE6+A%!MYm^5TISH)&} ze%Aec&gH42ThNUG?{>%(Y$z2<6xbK)Xoh1G({$xYd%NtuDaJp z^EX^B*fG@dtPo|YoFs9tL+G!fZ&_aUEZl#45`zhmwJHe9&70M0uy0zrO^4*w8+#Fm z!s#{+pX?TCuUfF0Lfz&Bv#?@_VXs3f^16fcbBnab*HC$9ta=zLiFWkRBV;>;K-A}+ z2pvb{>iRD?A=eKSaRVxh^<$8DB1d5_Ovqv^gkafD9_%4wTG5J+`rRWL${S3pm7mof8|)C)Hy zcLxSja9UR#t9IfNNa9ZDo`Yq!gIhdpl&~s=zP$RG*kf1F)V=V8uE9SYl^-$9~nxE1B}@tkoO7>z&eLrL?Yy6 zq^*XYfOvxM4Ei--{%KnJD3pD?5N$n%jNai}$&HDj66v)UE$h{~d|8XM}B zJcC78J+0}@0bBi94Jdl8v{QdP3A?!|o}Y<#V@V3hrvyb&5=+!9?eLqOj#7`2a}MQ8 z3aCe*GbS$eP~A&(DNb-LeC|f3{acNQG zQZ()(qaAMBrCv0&Zw;bdbXa26@@~df0Iya+W9p+g3j`%I1DlLbg;cTF>2Q442r}bA z^FXBBy&8SRua`kzjg2Zy7%kE{1XF*D=0Djps<^uFhmB8MFVNauY+s&llC65(^gxOp zNbSg`G_q>$ZNEtM;1Yjg5s7G;5%baNj1a+~ER`F*b~t>5CPBn~4dsYJ0CpkKBXSwLP%P}A~Bh?qx zYdr_`8DTu7U2nkI)4ip(~%Rg=W$lN{9tKiHl=@XH`Kw zYe92EQMH1B3g>MbRGT|E~(mvN!%169E&q|EDAdNKN9$f^}zK!oY~8M_70 zRm6R^(d3P@o@sx5Oa_N%!-r3F!d$Q+Sl*g|+sJFxn^7!}ZsLD~7f1DO4*NmUrCsi>%UA4& zOaa7aNDQ|`{0AhxN1;53A;NmFzFmclMR+4VTvk}q%s4j+ek86;sVjE>RenS5p&1h4MU)OUiK zFCd+j=>vaJy|$uv~#B7I>uId866c=dl>rsVy}O`_Z%4f%%~#G#Mr2yTwy zDtw-8PVsDA#jsH&0u$@?AWVrRQH&YOS%hXhRMgv1qW$LcCMMpgGc6v2%cgNV&`4XSrciBwb19aq{gh zgo1pRQGrfIK~oMsoFzO_n?3#!iCTvEDi2_+lyPHv-!B5 zWr-sULfA@?31%CtjmarfK8fn}TssV5Wx7{46lP($=A7q+zG`EUWv|t?wTW34L6el< zcinSjQgDvMr4zD(Xg29idb7#?5oPew$I47Yi8-?o34jGW@6->zf%yo`LLz_O`#2fP zTA|n!1VFivfp{%UE3Cf?+io*ZvT*NH91F~(f{rbBK5CEa^~VaWyB`_5rmnbaO3fZx zP<^`TNE69Mb#>I4J0((?KbnW^I-z&BpcN-6%bG-*F#*UVlbAN0(2*mAMIw;Uh(Hu2 zbTEjh(;VGfB*k1fj}cfdz~O&7{wI+UlEK5M4^vQzAT86xyb`yFR7SD(_N~L*a7!cyX_HpUoDKe_12mUiLxoO=pFzdoaj|UI zC+}J`m>&!IhxaTFeUu{%dwXV8&RwaM<-7)NLGyo@4Oo_`MVXLO)2D~E@mhRk|BhwM zr)|>aA1a!S->8pKim!iOJ-2L}M4hM?bTyC+hU2J$d)rfX7jS5#;U=c3rxea8bJ*-< zTa0z?AYGe+S5zCeB^v?M^Pg>2Q``}+GR;JTj1{ja_T-h_p;Ru=Sfd{(?z@6+E1ZQ@ zRv1@E9Oh2GzRVa`HZ5iT6Fq_2iHHB_otYUY_rA0{T>7udu4aEVVIT!6C7|j@8B4gy@nso= z&$>VK0-RuWFnZtKRO7VFQGFay0$W0G6Sg4R9?L1z8koX=rml;FzP=c=UQ@lvm`&Ej ziZ74)>5=~ciuS2scMN#yaTF~m8t6*gK8|fHfTTWn#|wWu9YwUD2_+JHI~BL15p5}_ zb9$maI~<9-(Onr|dnLX_kqxEo;%Hm>cW40Dy4N)H+s6TS@$qBH-|Ki}odTV0!KBKo z@vC6l@(pUBqyv{G(yYCRzs*#XLSwdkhjJCH@WI!V%*1CNT$=fUm@_!tg)NjMw(>wJ z(t=`B9}r+3qN>Hs^}9d57DoATF1{kC0Uh11XeU5N6_hV3u)Z$#SjVi^6%X@9^LR(< zzvXnme7>B;?3;DOB}Aj$K7%1-4au$lw&3SG&yR31f{Ha`8zNuAHhut_;JrV-z5)QW Cvj!Oe diff --git a/data_svelte/index.html b/data_svelte/index.html index 6494d3b1..9d22217b 100644 --- a/data_svelte/index.html +++ b/data_svelte/index.html @@ -4,12 +4,12 @@ - IoT Manager 4.4.3 + IoT Manager 4.4.4 - + - + diff --git a/data_svelte/items.json b/data_svelte/items.json index 7eb08547..40756f1a 100644 --- a/data_svelte/items.json +++ b/data_svelte/items.json @@ -62,7 +62,9 @@ "logid": "t", "points": 365, "telegram": 0, - "test": 0 + "test": 0, + "btn-defvalue": 0, + "btn-reset": "nil" }, { "global": 0, diff --git a/include/classes/IoTItem.h b/include/classes/IoTItem.h index 2086840c..81405849 100644 --- a/include/classes/IoTItem.h +++ b/include/classes/IoTItem.h @@ -55,6 +55,7 @@ class IoTItem { virtual void onRegEvent(IoTItem* item); virtual void onMqttRecive(String& topic, String& msg); virtual void onMqttWsAppConnectEvent(); + virtual void onModuleOrder(String& key, String& value); // делаем доступным модулям отправку сообщений в телеграм virtual void sendTelegramMsg(bool often, String msg); diff --git a/src/WsServer.cpp b/src/WsServer.cpp index 9eec262a..28dbd2b3 100644 --- a/src/WsServer.cpp +++ b/src/WsServer.cpp @@ -34,7 +34,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) case WStype_TEXT: { bool endOfHeaderFound = false; - size_t maxAllowedHeaderSize = 15; //максимальное количество символов заголовка + size_t maxAllowedHeaderSize = 15; // максимальное количество символов заголовка size_t headerLenth = 0; String headerStr; for (size_t i = 0; i <= maxAllowedHeaderSize; i++) { @@ -54,13 +54,13 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) // Страница веб интерфейса dashboard //----------------------------------------------------------------------// - //публикация всех виджетов + // публикация всех виджетов if (headerStr == "/|") { sendFileToWsByFrames("/layout.json", "layout", "", num, WEB_SOCKETS_FRAME_SIZE); } if (headerStr == "/params|") { - //публикация всех статус сообщений при подключении svelte приложения + // публикация всех статус сообщений при подключении svelte приложения String params = "{}"; for (std::list::iterator it = IoTItems.begin(); it != IoTItems.end(); ++it) { if ((*it)->getSubtype() != "Loging") { @@ -69,21 +69,21 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) } sendStringToWs("params", params, num); - //генерация события подключения в модулях + // генерация события подключения в модулях for (std::list::iterator it = IoTItems.begin(); it != IoTItems.end(); ++it) { if ((*it)->iAmLocal) (*it)->onMqttWsAppConnectEvent(); } } - //отвечаем на запрос графиков + // отвечаем на запрос графиков if (headerStr == "/charts|") { - //обращение к логированию из ядра - //отправка данных графиков только в выбранный сокет + // обращение к логированию из ядра + // отправка данных графиков только в выбранный сокет for (std::list::iterator it = IoTItems.begin(); it != IoTItems.end(); ++it) { - //сбрасываем даты графиков - // if ((*it)->getID().endsWith("-date")) { - // (*it)->setTodayDate(); - //} + // сбрасываем даты графиков + // if ((*it)->getID().endsWith("-date")) { + // (*it)->setTodayDate(); + // } if ((*it)->getSubtype() == "Loging" || "LogingDaily") { (*it)->setPublishDestination(TO_WS, num); (*it)->publishValue(); @@ -95,7 +95,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) // Страница веб интерфейса configutation //----------------------------------------------------------------------// - //отвечаем данными на запрос страницы + // отвечаем данными на запрос страницы if (headerStr == "/config|") { sendFileToWsByFrames("/items.json", "itemsj", "", num, WEB_SOCKETS_FRAME_SIZE); sendFileToWsByFrames("/widgets.json", "widget", "", num, WEB_SOCKETS_FRAME_SIZE); @@ -104,7 +104,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) sendStringToWs("settin", settingsFlashJson, num); } - //обработка кнопки сохранить + // обработка кнопки сохранить if (headerStr == "/gifnoc|") { writeFileUint8tByFrames("config.json", payload, length, headerLenth, 256); } @@ -124,7 +124,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) // Страница веб интерфейса connection //----------------------------------------------------------------------// - //отвечаем данными на запрос страницы + // отвечаем данными на запрос страницы if (headerStr == "/connection|") { sendStringToWs("settin", settingsFlashJson, num); sendStringToWs("ssidli", ssidListHeapJson, num); @@ -133,7 +133,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) // RouterFind(jsonReadStr(settingsFlashJson, F("routerssid"))); } - //обработка кнопки сохранить настройки wifi + // обработка кнопки сохранить настройки wifi if (headerStr == "/sgnittes|") { writeUint8tToString(payload, length, headerLenth, settingsFlashJson); writeFileUint8tByFrames("settings.json", payload, length, headerLenth, 256); @@ -141,16 +141,16 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) addThisDeviceToList(); } - //обработка кнопки сохранить настройки mqtt + // обработка кнопки сохранить настройки mqtt if (headerStr == "/mqtt|") { - sendStringToWs("settin", settingsFlashJson, num); //отправляем в ответ новые полученные настройки - handleMqttStatus(false, 8); //меняем статус на неопределенный - mqttReconnect(); //начинаем переподключение - sendStringToWs("errors", errorsHeapJson, num); //отправляем что статус неопределен + sendStringToWs("settin", settingsFlashJson, num); // отправляем в ответ новые полученные настройки + handleMqttStatus(false, 8); // меняем статус на неопределенный + mqttReconnect(); // начинаем переподключение + sendStringToWs("errors", errorsHeapJson, num); // отправляем что статус неопределен sendStringToWs("ssidli", ssidListHeapJson, num); } - //запуск асинхронного сканирования wifi сетей при нажатии выпадающего списка + // запуск асинхронного сканирования wifi сетей при нажатии выпадающего списка if (headerStr == "/scan|") { RouterFind(jsonReadStr(settingsFlashJson, F("routerssid"))); sendStringToWs("ssidli", ssidListHeapJson, num); @@ -160,7 +160,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) // Страница веб интерфейса list //----------------------------------------------------------------------// - //отвечаем данными на запрос страницы + // отвечаем данными на запрос страницы if (headerStr == "/list|") { sendStringToWs("devlis", devListHeapJson, num); } @@ -169,7 +169,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) // Страница веб интерфейса system //----------------------------------------------------------------------// - //отвечаем данными на запрос страницы + // отвечаем данными на запрос страницы if (headerStr == "/system|") { sendStringToWs("errors", errorsHeapJson, num); sendStringToWs("settin", settingsFlashJson, num); @@ -193,27 +193,27 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) // отдельные команды веб интерфейса //----------------------------------------------------------------------// - //переписать любое поле в errors json + // переписать любое поле в errors json if (headerStr == "/rorre|") { writeUint8tValueToJsonString(payload, length, headerLenth, errorsHeapJson); } - //команда перезагрузки esp + // команда перезагрузки esp if (headerStr == "/reboot|") { ESP.restart(); } - //команда очистки всех логов esp + // команда очистки всех логов esp if (headerStr == "/clean|") { cleanLogs(); } - //команда обновления прошивки esp + // команда обновления прошивки esp if (headerStr == "/update|") { upgrade_firmware(3); } - //Прием команд control c dashboard + // Прием команд control c dashboard if (headerStr == "/control|") { String msg; writeUint8tToString(payload, length, headerLenth, msg); @@ -227,6 +227,24 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) standWebSocket.sendTXT(num, "/tstr|"); } + // получаем команду посланную из модуля + if (headerStr == "/order|") { + SerialPrint("i", F("=>WS"), "Msg from module"); + String json; + writeUint8tToString(payload, length, headerLenth, json); + + String id, key, value; + jsonRead(json, "id", id); + jsonRead(json, "key", key); + jsonRead(json, "value", value); + + for (std::list::iterator it = IoTItems.begin(); it != IoTItems.end(); ++it) { + if ((*it)->getID() == id) { + (*it)->onModuleOrder(key, value); + } + } + } + } break; case WStype_BIN: { @@ -265,7 +283,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) } } -//публикация статус сообщений в ws (недостаток в том что делаем бродкаст всем клиентам поднятым в свелте!!!) +// публикация статус сообщений в ws (недостаток в том что делаем бродкаст всем клиентам поднятым в свелте!!!) void publishStatusWs(const String& topic, const String& data) { String path = mqttRootDevice + "/" + topic; String json = "{}"; @@ -274,7 +292,7 @@ void publishStatusWs(const String& topic, const String& data) { sendStringToWs("status", json, -1); } -//публикация дополнительных json сообщений в ws +// публикация дополнительных json сообщений в ws void publishJsonWs(const String& topic, String& json) { String path = mqttRootDevice + "/" + topic; jsonWriteStr(json, "topic", path); @@ -282,7 +300,7 @@ void publishJsonWs(const String& topic, String& json) { // sendStringToWs("status", json, -1); } -//данные которые мы отправляем в сокеты переодически +// данные которые мы отправляем в сокеты переодически void periodicWsSend() { sendStringToWs("ssidli", ssidListHeapJson, -1); sendStringToWs("errors", errorsHeapJson, -1); diff --git a/src/classes/IoTItem.cpp b/src/classes/IoTItem.cpp index bb57d4f0..f3f35c89 100644 --- a/src/classes/IoTItem.cpp +++ b/src/classes/IoTItem.cpp @@ -178,6 +178,7 @@ void IoTItem::checkIntFromNet() { void IoTItem::onRegEvent(IoTItem* item) {} void IoTItem::onMqttRecive(String& topic, String& msg) {} void IoTItem::onMqttWsAppConnectEvent() {} +void IoTItem::onModuleOrder(String& key, String& value) {} // делаем доступным модулям отправку сообщений в телеграм void IoTItem::sendTelegramMsg(bool often, String msg) {} diff --git a/src/modules/virtual/LogingDaily/LogingDaily.cpp b/src/modules/virtual/LogingDaily/LogingDaily.cpp index e0e7bb9a..e0973b46 100644 --- a/src/modules/virtual/LogingDaily/LogingDaily.cpp +++ b/src/modules/virtual/LogingDaily/LogingDaily.cpp @@ -240,6 +240,13 @@ class LogingDaily : public IoTItem { int calculateMaxCount() { return 86400; } + + void onModuleOrder(String &key, String &value) { + if (key == "defvalue") { + } else if (key == "reset") { + } + SerialPrint("i", F("LogingDaily"), "key " + key + ", value " + value); + } }; void *getAPI_LogingDaily(String subtype, String param) { diff --git a/src/modules/virtual/LogingDaily/modinfo.json b/src/modules/virtual/LogingDaily/modinfo.json index c34cdc81..1f4edd66 100644 --- a/src/modules/virtual/LogingDaily/modinfo.json +++ b/src/modules/virtual/LogingDaily/modinfo.json @@ -15,7 +15,9 @@ "logid": "t", "points": 365, "telegram": 0, - "test": 0 + "test": 0, + "btn-defvalue": 0, + "btn-reset": "nil" } ], "about": {