From ac073ea5084b84c61d3cb5366b1578b95dd5993e Mon Sep 17 00:00:00 2001 From: Daniel Tartavel Date: Sun, 12 Oct 2025 12:37:56 +0200 Subject: [PATCH] debug fleche --- fleche.xcf | Bin 0 -> 158273 bytes main.cpp | 2 +- pws2mqtt-qt.pro.user | 8 ++- pws2mqtt.cpp | 117 +++++++++++++++++++++++++++++++++++++------ version.h | 2 +- 5 files changed, 109 insertions(+), 20 deletions(-) create mode 100644 fleche.xcf diff --git a/fleche.xcf b/fleche.xcf new file mode 100644 index 0000000000000000000000000000000000000000..409ef3a24f1ac91d10f5d07a9b9488b30f677249 GIT binary patch literal 158273 zcmeFa1yogC*e<&FrW6cBK}A#y3>3Qq0~5PDFi;FcMFk9ylI|2mQZc|nF)(QX2`MS* zZZR>=^Uk$V|8xI4{xils_uM_v$ON_1)w`JPW^k#w>%whm=q5J$78@i0;gxV@Hh{s=QZs_mMrg zrI|z5tzDotW#}w*=^5<_)uok{XXtC~Q`Xfwym#in`35@LqZZRE8Z}o(|M<$i$JS^a z);qL!p!yVL{6AwfLjUiRu!KwZ>h9CuKTv(bTBua zxdy8LSHY|I;%lCu*mZc<1J%d>7boBNHvvvQW$NgO|3!jL|KkZ(?mwb`WRwQwsWr$O zc$fd_-ETasH%ebeTYJ=h`k*sL|NUb0vH$r`Z0SFLAg?bu|M%}dr3aaVC!>96FY??d zJ>7j2L1lyflf(~|o8R~uK)=s2!M`Y5_@Vujw4?BMYBH@pyeZs16>bxS+dSd6R=92Bwo)>}Z6D!w z1h=eGSkh1>hwc4!Ep7Tx^vr^F5LEr8n+G9i*<3x!+m8wmQaOve-SImPYoN8cQ|P}!T?&Zj(vzZY`vL7+LG`&)CJaJyHy<-U(V z(?a++_Z$MvVBy~ngxeV5HdDAQ7j8ds+a(ght-NrnBHT_CZs!ZP>)00m7|Z@I{^7mk z8UOq9-(SDOWu9aczmea-ujkkCYXvoeT0xzlUaW!NsPzAbBlRtHwKdgMl@;Y>r6t8B zC4y3Z8NZxg!LR&TRb8XRlc@YuQC3p?p&;*lcIG=l8b6)??o&o)W>!{qPHui-5h6-T ziwg2`GSgF%-^9hde)alwRCIJqY;0V7{F~&|cbSODFU`$*my#GC{p#71hxhN@zaReK z;lqeWkDokw_A)vy5fRy?8L5e}ub)4Da5waNa9~jI)oURk*Kgds6?!}TQRFK`q?Nu+ zh8WhFgkta>^YP3re@|=4sI9y5%H=t@IyPcVl-o9;X7S5fwV3Fq1Wh+*#S+`-!?t}Vg5OJsUrk{tM zse$gEP0MDDQW-X4)Yu7=r_NBHqp^7PmOZ+N2rIqr>uPoG`2KCHG{z}Pbm^hkZ{U#O zYGcMvoUvf#rrq2*uDDqn>+7%x@y^|Q^;I4`R23mp=Pp^h4H5TCL;XE${zP<=>)EH@ zKwM01%p~=ND>fkFLFw&4Pdk$n2e#8y#H3~Adn+jqQW>VIHg4M7#j6nUsPt~Im;L#Z z!ibJtyZ2P=i;$tJqbJRrw*(PSOT({SbTCE4YC1=U&fVmD_35iTaPW{38FgUbh^}O+ld~qr1&Rx58M~q_MfkQ`(Mnrt+i`)LLmWGFR zvIsE=sg5#;k?SGf3(qtJ5lN*{_X6B57#-#!1Y#1BQXQmaI(6>Stw+z^N{C1;jSUa- zutLNdTm@ZNfj~@5TwH<+>})J5%y>zn!YnGxqQd>XX)JuhCq;^%k8_wps5ix<7UJl&k^tjv^n1)aLc%Joo~cF@kz#l!ouU*NSHH*Z`I zxpp-;C@{d^@3NFK-7{AyL1gL99+G9gRb8W zfAS*cO;Tb)d~8hAtC!E8J$)D&vog|CQ<4+k z#K%TI55M7uermz;&DzJ#*|=Wx54rvDS#)Ch`=XK}VJ|){B{}Ztogi;St=O_(-^9+t zH#qb`WOPzSUTJN8ZFOaNDc9joiF$bbGNM*((>ZDC=w-qWbWjQq0tPhUT`wlpFX zV}qicH<4j}h+4T-=frsjFaI0&BV*oX7ge{k{rd6k%cqY`4RtkD`hPZQ6VE zthL+at9Ks1PRcB-YX1J~$9Fm%3oFWqdlH5y?oBv)2Zla;`Q}|gWfMiw$(kGM>uO4K zl3qPP)Z(=}4xBKtb-!}`{{0c<O1+ZaU6TfTAkVFOcpufVWJQE%UuQPdBdjKW%)>dNvnk`Og# z$+{gn$In^2`Q3c@Dk-P5;TuJLr?5}09~-NR^D+=MYtibhdyg1eIA010f039~((vuK zFpT0_>MD!#5H(}|ij7(aPMo**4!-*=A+xxiqHs2x4(I#SR99JwsA(GL&1>V8c?8^k z8kbR2hbRi8I9#{2xuI5xS2ua~qE(xA9Wu0Zy>jbuZ2AX8{TBQZ`zgT9(aTlhHK>l6 zG(%(Y{u8E-mu^Hvrxn(I75^>yi%(blZrs6yC)PN<=|B7VR#RJ7-_Y1NrRi%)Sw&S% zT|?vKrf=`_Ka^Bd*NZofZ~B&!kyB7yStr>zw&_c3Vp?`VX-z|eMB|vIZ;??6sX0Z} zVh!Srqnp0mfAT6JJ-@QPUeF+hzdwgi7RV{D<93W{`s91{&Xd@8rFCqNpm9`Fi_4{} z_g=g$s>LnTH#E?$MoXtlArbKfHNt(3*w<`m?&KTx`h68{759obwWey6Bp3ht@!7fg zABs!MDk?FYMG}m?F&1we&{V9gXJp}W<@VE;F$ox^X657+d?+emfi<;wUgf6Z9s7?O znLGLf-$Z$R5fzvCHZ3D7C$|8n!)vIgh>bh<9XVxU>+`^KI8j8?dxo(TrzQg*bO|2c> zef)xN+`j+l*{j&Z)XevVrB(Han7eT4s`XoTYU`djV`}Z-=6xmTdRX}57twE0GxLfo zDPsC8jfG2Atl6Zcqj&O*sTHe1ZrqJ{9-Ww$^P!>+5#uLKojF@$;j(pGcOTF@g&2ER zZ~u@x5zk|jGxN(RV))3><1h-HwP@vr?RyR$r5Hy~KYSy6wA@mP=trZvVX9-O#@o1k z&jDP^+`*G8?>WV_i0Fa=SN9(BeO1TL(9m3k^BmAKFn2&Hj(C-rS%e5tMiXT;QAQKh zX#X44XwolvKaWh3p27QZ{>+;0(|K*?XHRYHIE~k4dG6GaS<`smtxZnp?(Hy@_ucmV zsYAO);TH$fQwMjh#4k=}r!cdIUtBCs>1w4jg-d?Re+B#UOI$>~f!<2zCs=TWEA-_J znp;}xuT+y6%By^O@4BC-g9S};T3}8TlcKh^))$Od4jjV!79AOW3v-z=&flEuZLKW# ztEuqHlVe{#zIQX&U)Ui=f7sLA#nH~%a-Z5@URhRZV$91Y5ANO$y?Omwa8Q7s?! zR~)w3EQ22Phup06!~&!0YeaQ{x|jcY*xz85`R9c?d|Q-`~%thg{QCnGI6A?EdS z%mm-Qc`fjYkB5tcjm7doyi(Q!tSBqa&wlqdA^PRhhj&9m0ylnE$Y)Ie8qL(Ija6&weI0Ni_aw zsIRLX(9o^iL5Ba0nG=6J+9VX0csw;}~bKZ?^YHDnt zlxzmQBp+{w?c(-Sl$RD}rNqCYU9<<2?C34$rpCR9KsTll>1u>s?aYK14??+pwbfM> zrSz6kUOl)O!1l4*!LICg@sDo$xeNDImY00MuH=_tS6r=VAN9sD6QA=gIrd?Ii@Cud z+;2rgJ>4&E7-uaic%PY?82v0f$i?jBfq_k>)RnHPEa#^8b28JC7zPYn^)s_eN|~8E}0Y;_2Ov+K2_jlPbcg12D*EPWd&I&2{fmF6LbC^PPP`t21j*vu3xS>f6feLJYH#SNpAX^sK^I2 zr|;%yV_|G~{LtQQ>z2%$J#*^B{`i8WHPpR-MsxZej@IVJhWfhuadVopr%oC_My($@ zyrtEJ8E;^zOCGZZ_u)jvm^F z<0~~aW{e*`P`RIyB8#ZXO@8$d<1X9tClBt~v3cDJ&3Q8?k5=g|+qFyQPNKXg%6p=` zC#v`UkE{2jfAM}vtIy#5?7PWeI`4<#wxhIJx?j%#y`#R{w2v5|=OeXX^B!HpDZFo; zhhWm@u;FCh*Ul;$3)k#CY&ePcMQVtK`rMV<4;fD2eNxs~y=>9EMeFw*H6G1tl2KiG zu8K51rh*65VJ-r)oL_Uu1yY~wzRSFJEr$J*8bvwjyW zOij+7Haw|sU~1>#H z@3PsfLVfe6FJHg%zfr^U8$BBFdWkwQzzzUGz|@Fjlj8s4z29r931J{87b_Dl{fIf1 za&9&TQ#BHeio7qyMTPmfIa!&RVi|&Wg7nsRnc43#8-v-V>RO391OQx+nvBWKSV0Uw zS`fv5-5M3kCT(&Hip#1bY7}{`=$}NteD?TJM8v~~f(QI?{{7YmkDp;a=52a*UQxM3 zr6TWR%&W*p=yP7b9ujixn&2uw_+t=F+dO$0^CmSbzeJ*3kyrc_osFvjzCJV+OrPD; z!-GECorlk&-e4|8q7*TA31Z;pWN&9@Yina;ZEaD$f(43`4UBl3HJ4J zv9mmX?%dh4XHK6sGBPwYIAd<-b}8uAgJ-cR?=jGy1IuC9XfdMfR4`o z!zWFwU3`LQz9dT`4>5M;XHK9?vVHruty{Ki-n41s#tqx{A3tk_iLtwpaqlGFBj%j` zp*`EyuUMkFc+sMT3+B(Cr!iL(WdgITS8hf`rAlNY=J4*#s}{|gGQx1S}k zm`y7e&YCoGV4vQ-6nb>;*0s|=F@blUCrf1FJgYV5P9LYLj1c+m-DJCT>ezlBYmdOY zFWyRIA!f-u^+}_L_U(xfIoYnAWrQ)hXRJMf?!8Qv$U)5fSyRW27~Ds`2ZeO$B>gwW zGx+|iH1_Q3QzwiXI-qxVxo#99Bi(^rYp3oR8^pX$XYX*z_))_L^;MvV&Isw)K~iGC z%#}NJ&)Rrh4Ufu@$j7zDstq69U$Hxjpb#lZiGheYa@N-C+Jl%(_Ptbx4C=3_Alpes zMj812Kt@l1NF1eXc)F$df2jWJ4HHX%>}cQE3*H z=Kp!^xTtLwwau)J7q!j*Pugbb`M??s8Z~O#wCU3Y3%{>fyLQp&p2K++G9#Dov$VEz za0Cq1*~Qh>&CT7-+0pLMfCm&ZNayA2 z9}vjlVF8D|9_)X~%gxF5z`%jLl5-YzF5XwJ5=a&Uj=LCcJPZ%J9z+wSw%cR|@JdXu zfQKOq_7m1N^4aqjFEM3$>zcohyQB3y1e~{Vy%ZdVK?jXSqGRI{-XtcpBV_GP4B!=; z*?aomeE5=%BqgV$roYR~dY2Rpi0oB@$PQHI6`MQxT)p=!J|!(Z1HE=2fdf`&g*g9P5m@gp zr#0W^mR5|MzPEj@E6z%K_3)OzhwbV9N{T&u$RY0LgBJ+FDhR4pc|*MF%rg9M3N*ucmQe2Rin#DnBju$?YH@dHds7MRi?c%crm3 zJAC7RZT(n@+0Dmc0iL!d(l~}U`svHJwjY8v!FK_Ue`=}7ONoAT%irDR9CFO}wzeNX zelh?8!yjNuzPTdzZB)cfKR2s01OBi0`+u?V^!tB@j|ZMKqxH?B5O15adb`%npU_8w zC(Xys?AEuDw=O%L*Vo>-Xp)jRPlk5pwWhti6X0rTaA3>Qsr`gI3tKazA6&(`s82+0iXC2PyaM(@UW{24j+9;=;ov*-0+}y0$&N zf7R^ilgE!zRZ;Gv&{a}+n3aV`xBOhq^|jV4TQqm(hnuVF%W_j=k&iCg z8z0%Vb=`_ZbEi)jIasliI6VR#&VQHi5?SBf`n2ADtxc{mQwyj<`ZG-|l+*H+2T~_%1-CF|r-wyV6 zFf%y3Yr_)tQN6gsl?^rJ+{zKwg>DBRyB^=SWyPGay?N|&HdQp#R+iF=NeXxdk8Tj$ z{16B8=CRL;^Ve3Dvt^dlr1%$i0zItH>g`^?aH5j%@{P0_Qd9sYLuyhKUcbGG{=Q9` zQ~I&@+Emq8S5sMrWuo^u9{2dBue15716!9)>n|>b_lm>yv;@N~rX)VY{Q+gZW5tXC z;^M-?Lf921LXaP?dfA@S(^{oINL+#rR|3sMD>Z;+73RN-Avpc{<9pW59xNr0{LLat zv7AIJOl&bHJK<@lA669iZO|CPhN*N8ir^Ni!1TyVesPz8?guu_AI65V#6>Bi2o_RR z`5`UpLC8hBvxm1XRAr;x|43G8s42~)hjcVS85qF^)k?e$Z27FQA_vdskKDIwsTvz^ zEAgb8B%2#+@~NPCTsXC7`Dj@>pv04E5^EM~;eTwb`;f-U+S!8}W(-vssN9#1iQ`zq z$GW0-aZf`1TrE!QSuqEzI%C;|aHx@r$@6DGk#OsJ74J{}ZY4I-}+zRk=Faz^r&sI7h z1+-atenw)Ha1j-hk3GVtsjtA=Ufjz^cS8KU94*i4A5`LX!W}o(R~EfbPmFmUap!t~ zx1;5m<4U})O?<%7Sl)gUO$~4$u3@Oe>xRX{YOIiDq`Zm25*W2MCfr`+7rT=ZVj{uYu;upFR+bePM>#V$J2MH{!js$k4-PO5b(fEDFP9HXiV6!dV;|l0<@QqE zs|JM#45IgMB5(UE@#JV_w0&W;yx{H2dqKjTv?7TG$?EFjbYw9lUU#h0iD8|!tvm}k zN{QDCZ?Ua9H!%`0!0y8Q(N>#}Gtl3ZC%%8IEl7=esKo2R{%ouJkRJP({-ST+R#%jf z0MwtTSrIiWqGp9a0j${&H7lZKg*r&0W<}Jjh(;^IhM`_GS`m#_M57haXyyO&(MnxU z#eM@+hG`!+vA=jN{MFmMs@AqP!4JVt!7l-LJW9Nxj^L?xmE8lfmRHc7$at`Y+9wy= zFds)`pMkt8O^~5H146-H%Ef$UBh8M|TprHBr^6~IO>DrG3V$B|t^gDkM6|Txc>Cdw zr%bF}FI~M&ysSJROh901ZvFE8C#4?5tHx31ivc&oBV&>?vhzNag1yr6`P)yi-@obT zer~ck?BVm+BrsPBN-Am_Tfep+)daxB%_rbG_$JW_Z{OtYd#@E(L`?d>)sYQw$0lJE4q`nZ*SgJMaj-*$d#3PH|LzO$$3DyIkH<^+Mff;T4(8yDG(vo?ncI@=7HZP{(C5|e)cJdTbwht zaJ(3N`$TNQ+}3?z_1mNDZg70uak+|CjNUk zuU>xEb_0X6R<6F+!(Y6~EUNqR1KCoQSKD8G+o`h`aM62_bT`d3A^r^@EbKpH>4a-O zj!Mohu4QxOBXODuXDl4O18(7=((}2@sm5!NK4@<5>397eUR-ujIdRKI@fv5F*}3DD zMd0h?7L_6!VxK&roC1;gKvE>oPbCmw=dGQ+z)y;J5eEWVeo-lQZMxv-aXFY}2!NsT zim+>>r9GrQhy)phoR^(X&@pp{#kvWC6z$6y!)rdqxK~$i-Ft*xDH+(a`GUQR*X6*F zu=|f+#3ZI+j|Na*9*m&%Ao6v53ihZWd%Ajo*LCymqZctr*rQ->W$)~9@k-#e(D0{G zZ^rUkj$N>IboKN>9=`kNWgK>Fwy>tm39@MDgJ&_=F~$4>q0qc81>Csz@cwXz2qb#Sn_ymVN!k;ozw2@z} z9J~Tc6h^Yo z0+ilnTX)}U*s9q8l?3pfm6LY>HYN_9SFl-$4~5M@90bbG%E=4=nmBmi-~D!O_;;nP zGya`w?I_7F=+a+x+_X81mahYm?Z|0MCm$|{lvGt!SJyD!9%z9Qjh&h#`5B%24jnUD zeV*n@u-PX>8@} zO|LTw8Z;^C8GzCeWR9Z%B2gntBh!13>e$IM<}O^aa_!c=x~Ghhd%%PZe;oNTD)vos zT4qi@Em%=9VnDJq(mj=jj)H2*+y$D;*KOC;k2HuTZ`KoK6G$|dr_Zcu`#OU#p zr>oCdxMKab-8x537;)7hk%N%~-=t-~&o4wGDmG2cQb_eyQnqK`fkRYDPG;Jyh0E4# z+73~<)!M6b z_?UsQg`Mj~yvWE{dL67)0P|6-S)7uIOLy%7O&KN!Git(A^|=d{tXRE%^R`_&M-A{U zJ^gNkzrYL0e2>Ce`8S!Elynza(r#h;E+fZGm@<9V-1&=^tlFe?;Fyt_y@&s;M`#Gr zh$2~zr7Fz%HT@Py@KXh1;u2CFs3q*ul@qgp-p%N-6Q(a%xq0{DQ|IkGgYKeaqD1Ex zl~vU>Vm=TFrTAh3aj`scNonZ3C_tO0zw*ElQ|7JMge0cm-cpowT|ou!rKp6&!za$x1S9tdK%}5Y-hS|uaW!)bi%VEusi{Tc zSkjGwY7Fic0y9vmLE_$hl=}7?GH&LA6&rT!(=#}4<8smeS}1B4Y7rSLkTL+)jN-V* zL_$0#3D_v~?A2SbkJ8}LQ|ByR1Xy*F)>+M zBvu?Saw6n25?M5mtdg%`d_tR+E^xB=m4PcM&F)7bpmN@_QBb z8#ZQ&`urs;*Kg%$s-%_V7ku*$NU^Lj&qvx%LcJYXT(pxyVV}VxA^wAmw0gtVT{=e? zCl&2@FmRMy8_$y9YQ(YcF0UZy#qTLl;LG!S6m;*UJXCGmyENxxT zc%Yl`CXFSQlBRD$>Oo3MeH1A%10l*P^nrvDi7`!@iU(eWd*6pLaE=-->i4|miwk1J z#HHxU@{}9;^#fKCfIc|_IZ88ar2e4D4j%z=B#lMOx#D-qj1gd8zCk|Zi^WNFkm*YK z5UKn32Y-a{fL%Lvkf3*uw}Gr8-&1KYw3Bd#WotHW+keu`(dX*jr?KKl9U}p0r0$fs z|A2vm1`g=ouP@y}PxkP@E&@R)DbcBC{~>BfPqg8!2MsM}lgv`*)R)k%dGR z^371yk>jRopwZi^rA^pU2}<9q-yq?uU9@!N+KpSbL!EN}f&II;ZCt%{zWOA!0kYy9 zJ43&U^t2$kHGbNh1xr@0+XNt~B+_@3>y39idcste8P;#!uC-_1fkQ`*9?{voZNtjN zbEl3T)J;rMx?OIo-ynztusdY{SfocQG;}1|NSqbLVdtLx2X&7gKWT7MPiObmb<5_@ z7^fm9_?vST@Fj<K;33bnd+Q1&ed1XmJ{g%i{*2_yUQH z5(p?VC;EjdW#q6y{d#rlKzVD(h%pnV&6>A()n?R0CydUSp+jbGX<|r=d~27^ojhjL zh~YyA59rsYXZJ2Low`uPDc7A)#mX#q(fc2VmojhJ2C(Z-oi($vckuvz#_SB9VJG0w zbJV9#nE?1O7U6rycIzgP6LgQ$m^o=QvIeq`(f~Ba0<}WNp_a&$rYcm6K1a@)VQUC zhws%;4kLsoID1O(z}_93*REJRcgBQ~15p*?6ga`wHJY<04(mY~ll0&yXHQ?Ybw4^{ z=mg$+5OGh4GQvHaI(l&L_KmAF=S~|t1eFo1OndCwv||2LEZcYNB8L<7L%tk7dC8Xj z?MfXlA|rspC%&JH9X=$z#Z`-EPf|s7)|b_XIy=@bo;j+Q7*mStiHcHr;P}OxpYcTktljWIXIy=^B&Kf&x$Y8EIB-NdH(ka4PTcFXO3!bS)nmu#4yyS{rdEhH#)Lw9dHAG)#D^V zW7)9Zz|t+?&WpDNOlc8XEcrN5GLyA4Jgl{D;S{wI!&Df2-1wOG#>E6I5Qm6z>!8`| zv`?D5`rm$@Tqsc?QC^gn@K^|6Si2B;Z{oO7BZdt&J+Xhw(rL<6>j1w3q>70kXMp@UUz3 z>>(ULpH&_LrHKpI@76nG<>nt2*-m{aK+g^cmbm8+!TIziip7~z#}4n`z1_hCh=@5u z!6hJwKTaSfP#mX0%@GN#+(X}-WH&HzQC3v}3`@-OM|W=qgT~=tZGO%WtWRgN6Z_U{ z443Oh6abk1~?X4^amX!{B}qH(0Ep+XFRP> zAKbD~P1qG7K7?40VUy-8T@Sq(8fORHyocTo;lgTaD@zJFK~0>3xUb%>b`}6@=x$p) ziZ~b49l;HV$qgPmeg5(dJ5h63IC%$hb0PVV_yJM{Ko`vYrh#7j^3DWIg6oOvhP)N%3>_1d(!nD~7maW;m-^kiCkmfORN@@u#II_%+S7F+Z!9|L#@*>wDJhN{WLbcpsE4tH)2hn zn+Y0%eDm^&Xf!Mu4gVQLi$=qu(XePVEE)}qM#G}fuxK!Ch{s;8y2k%GjM=tZCJE6ELs~DtqqIThDB?`qP1Z_Sww5YqP1bs+OTMC_s6%{c;aw~DQNrhv8k@AtSJ9IM8XqdUNPuQNRS`2h#>85cFt&ZKY5 zpcez}0iX+*A^{nGK7M$QkUBmd&J3%use2Ee0MHd@WqoX?73spMG^29-zc~90oaOC;e0wW+YGeQEWAfzWT zaUu_UbEBjC_i8Uvk>yGL&Su^`WV!PNmOyYTV$5nNmu4lsegrg(BXrOA?MAdxSDw^w zG3LEf(#Ba9k$OjkP~eBbg?8=UyL)oSF1${^C4LqEg#Xc(PdFv?*voTMq92C^dfA(v zI<$}6N43Uw=5@g7Kn40y$lWa-5200s@1Pog)8EtH%nTh} ze2HLSgcLQ!IVmxb_iy+^uR`*?z~qOK#y}ZK#3ylfLiA|#Y@c9c^sxmg$nyx& z7xziY$-&-^q)x3aSX!8y9bGBzG8ZYlTP4=r-e7wDc z+PXFn-!(VgGg*e$o{nB5Jd-+n6tsS51|lXWEivW=#4$pG1Ibjt)6E5*1W09edaev! ze-me*L`m>8%`GhgB;$SYU&+CUcQA4oPt}_L&zvT%X6>dXQ z7ETFHa8fWeWNDF+ncY=wb-RQWq^W+83l?*vLT0Hd$;;&Q@vjHswq2+!8cY5z6&h-> zGVn)B>s#AT_MHXD7yNHEpV)VT8^A*#kbJ$}QG1x1{1p4e|6TE`?c3+pX411MFDWUb z6A+OMJhC5REWkwYx~&!5*_^aDQBT9kqQS=#77mu*nKabzpWmrya}Xn)B>07=Qq?La26n~9&i=dDJnq&z}q8ru5aHF^W$?< z4eCFJ!iuOe3rx65 z3bNB-c|cwj_iiKKk>c1lcC0;5MMGwoT%QQHMvBXH22#iR_2cWuMxor$8$by;yNmj! zkDtHd*yrZja@5TvRP^-ut9IZT&QL}q2om1gxKiUFP=TAsb_RM z;k!wRfBp2q{fCdAfr|o+KB+$ADXQrrl>ReBbE?S#A}13luH?joxR}aXM#%g3+uXc; z@4@597q8hFfPEv&spe1Lexg$S1Th?@SOjNhXfMA@O9f@33CG$#GP5%>O}GlryRf?t z9z_y(E}1;5N-K%h_X93#C=--N;FJN?mk)&ndAY^qHH{y?{%mWhDSn?uB2ZU-FI@?| zN@pNO4N+r&zN>Bk@elO|S0FiO3{r=#C>N3fzc-US95kk``+0!F2P)N#uzPq9uj7)^ zv-9CI*8KSgR~h`N-B2MwZzi{>ycWm4H&qre2`lLDaISoT*NC0N5f2K>YMMT^{rV;T zQ|yO$oA~#HY})frDrn8wIl6jWyzCcr?Itc9`3l!1!eT=!C&c!hX`qSy6#r$ybIr^z zsRkqQpL_On^YHSye8oTLYRHXHh)aVLl*~kHtEd>WT+FC)oRZqR+~UfHPe0l|)|BL? zF*w^5vb6St=wA>lu<6O$4Z}e8DPpqU$b>>&xwao=AO{^IK&NKbJ4 zUU&q)UUWQ16Dj*!jFMmkSog6FMX|cHAUlnED&co;-@0*)DsUff?~9l476O8TuU)?p zdJjyKScaY~A^krl?)L_+Vzo&BrMa%6n5zcS0k|8AI+#=tp_ND`-{kUr=?V#OKjl6I z@S`Y)%^yFYY5hjU{Tqhqid_pQd zBzzZ}!psTV%V0h!EkS@OJS-&O62P3)#F?9!ot84lw zBzdBq``A>^tYLEAC2@*RJ^*5FK638NX~R<|^^YIbJAT@XG{1@H_cjCcDbS!AT3#h) z6oT;is|_6+*6k=Q&U=^m`pLZ;{@%{kYCK+#VbhoGIIv%Px7MC^J#et!QiQaoCXyi} zt3#n}B31LHK*T-^zv=JgU@XH+>au?40boX*8O1J9`lAsy2TZ>Pom#~#QBLUY3LT9AMr<%(ZO7~6YtFy5a&p< z96FNEqvE(S{)l@->Pm2ZiRPx-;_N^Dr2gGIcI1^$1$mCK#6aN$4~bE*9z2gv%PXsw zX=$h{$$1<7_;#=l@YyH!ET5_(C&?@C4eHZbFw%SiZlGj6XC><%nN1c0+Q|pBlMgYm z`i3%Sd_BDb3AqbrPwF4lT{pRpBrkR~bI$`kH1K-ZeOSuFU=Q|#i5UeIoV_8}Eodsw zOM^PzwaYG6=T4nCrgvC-mYf7HR^^C3D0{YlJp4d>0wFOTU{)bF5Pgc)&&`$j>2c5C z#pG&jY=A2tIlNU3SDvPCc-HiSoioQB4M$COlN>U$K7htZN|#iezkHln1aJnaCHnIHb8T@}B2&7wJAc}c(jGlB zTAG)rJa^Mk&|Tdx689R^DUNsBUV^^1eSyRpQ_}RbH$7v-<@R}9cqt0UtsNL6mNO1a z1Mw0H{k4r?ivRf5Q2L%!I!XTQED{-X3 zV`R`DDW+QD9eRO1aqIr$mt?Mpwv2Jmzqc?4PzaU=c(ab5`T29FCm@Bwe(-eN-F^H+ z!opz@keHg4hXR2HrtKrM9ijpofDsTzRTk&ZX?Eka&AVXZ;A||$gEP@IsG9w%s~5lo zQ=(DO@S`3aO^L=4@Ea09>+DAzDq^X|VF(g5@aqM2-)qqLHZ({!4rL}&Flwmd*S6JE z;ezCyNqbv3$TV3`eJHD`r`C@zd7NynI`Ag*0OVDR^F zVExzIf!$(P;S;~7o&xC?qPLNqf^tV}0GK?WNuyE#Yffg|+1R=1Ew1ggO#f?7iAYa{MU6?p#yU8v| z60_*c$sidUn?bk{H$sw{Jx4!YVSLuyg^M+tR<;^)PQ89`iB88C)jIgz||3#{E5{G#`)WH z@MfX1fEGu*S+eC#6S{loFQQW$7xnBRS#5c_+FO~OGd!rLZ+On!#>wN7P+tK|-S<@L z(9AY>Y)K>^*}_~ne_@ak9(whPx2yey^QTYh9o(k1_rTFpXU)mGg4{(|4~^^MHA`W9 zmDE%Vm$NJymtn9S=;LO8!NdsuS-ZBaSiKHpD!o(ZEFIj5qfRC#)Hg#Jlxz{Fgy;an zhwQ~80QbYz^XJ5zW`u%@-9vNckz5=(yE1inmB2VNF>9@b#}i z2=Mc;w>W#^u=b9PD;Lk1F?9Hdaq5fVs;hhIJZV^fv>StN8TxLGVl5IM`K?G=nwOCj zjRCHohwXU-y?r}2tXQZ%afC__g`NY)&Rn#b8mjZQ9%#;)mj{R#)zWou>Z?ogAW8a^ zB_pH0ZR?iJn=x*fqAa+x%A=;uTfTnBemz4|TQoXMz5*1E!eX%^u@8d6%DfElNFKty z+0EAEr0za;t5e6Q^pX|yDDF3M^6bT+G=mFmV&&xN3;qUu*7VGbjCb$S(*e*G$-9*q!Y54dV^OvsOLIm1#7K~+n>mI}i;^X6DV`E~X zqoQ8FCKe0W8;%!1#Q_nENQG0!sSc3u+Fedgambh{vllL3yLsn6Vw{6{2Af)(A@b>y z$1qBH2Re@2#-V z&|Bn$O;*?eFm1E7AS&7}@W_aX23qA{rEXooqmfr0HhSW8;v=pF5B&hnK&*F9Uvd^~ zchv#?#td^khwzzKEddW{+9c3Am3w#X4Eqr|rNOG8?tx7~*0$Ss@7FzUaL&xy5gy){ zj=+2bj8`m7PMC8Fv7A+$O zT_VF9oQ$>&u3Wxk;XJ6CGUf`ilj|klUA9vPacNl@364@Nqy+aS)-LgA zM~#&kZ^HXEb~M@35nW7y{8O0o2`EQ=X=SCJ%rAxGAPICm@^*Qr3VIHWt0Q_LeNc|N$QhFlte`Jrq zIQ2M#pxb+TX&lXqFWqav@X_FiYTy&E12J|r&M;>NWRnLe$_UsEkPyIUdIfZX&Rqmu z-xEoUW0~c7&>uwlEpS@sW z02(J%KN{1<43^{Z#6fhYyB2_z4g~~osf+L)FfM`g!I~|*4iJyk$qE$OL$Gp0EjxZl zchbQIVNndUIoz~>U&@nLoeEEN)PIH~)WX6K?%uj~$(%{Udx$~hyA$Y*0$xr}wHb@n zY}2$Vw2!Mlz{xz55L&4)>Jl>ZBBLP+#c8#9SjCz`etJhbiPz5OGm`v1~)4 z5lJ$=2M!-Iar*4}nxOJS)B;b9@k7w9`!rO%41XuIqbH8&>;jp4*}}Pu4c?jFLS@%} z!^cgX&FOC(fEETP)DNu(QRk3put2zl`mdtSAvduo>KuwXhoa7*sB^eT)H&oti$tA6 zu7@Y;9Ev)JqM1X{%%N!JP&9KWnmH8B9ExTRp=c@U9Ev)J{|C+-O3dc{R#xZzo{gXN z>bzg)mrmz>>9G%Z!Oa?K3S)S6@{`t|I(zn_@8Qu;LfRxpIhE*PK2+Ra*J1zuMFH2}RD8bJ-$?NT7=qa~zf0*+RY zNeg;611>sSo1CFwO?i1`=RUsoC z)gHWz9@}tcBcs!Q74ZwJ>c7K<6Hp6?*WC&L?Dp&#T0~kb-JMrEo}K&jX{;~$-FyH= z_Yc*r-vqyFzjJt!d)F?zTAKmEfOV&J^4)l;v!TGwWZN$|UxK!4OlmGv+kgN1_4|8s zWnpIG>qob*UUId!#aA>(stxj;d9jo670vM(t!?Z`ush<_8-^nK4e@`5xJ!+H5fOIv zvX{H7lY_0brTKZ|B_k$Hnmc#da=~U3!GL}Hp(<}>A|~!p~Y;ni>m5=PlV~SyE4L0=Heo8Y*l67y#@S3Dgc~TyOthu$V zy`z(hn+FmDRCn$At=o6QBY*{iQ2>YB`vp8EfxrNWr&aFQS2#l`*5U~<50!L#T-n3x zB3=0^5(5eVNF1l+#{oco0kheT1tUCWQtV4wmIn^q*^V^-8J^ECfY5+|LOy-*x?M84 ztO^FJ-+umrMFNL;B`dx{AlVY4;81xz;F7zey%SX2eJX?LNP8RzQ78OuPx(6Y`nV{jd zrL>?O8GbA1vOAJki&Hr)@3-a1sVm@Pq%8|EulyPk=_n7&JH!SeoMZTt@W$3*4l;CIlpde!^`6$V)++ z3IFEzuhk6%h$iCzh711I!mZ&ydk}V&fiDTW$|ba+u@-jVMH5ef$2krLLkV z7o>`)XAzW52zkq(lK^70gLj3HY%*0V%+JilegZT$G!b_AOA7&q87t!j631}b^I3qo zw1+hVM-C=Kc}Y}(C#MOarW_by?;Lk0M%)%6qnN*V7%%a4k*vVkV3Ujplq;WQ!Q2_s1?*D)>M#zSW03X$RZD)y!ZnO1t|C< zvL29#3=b@n86~xS=;i}RR41tA*95f_QW!|{K9tLGb;2~_!vc{{&_d2Jk|kqUd%*nJ zUJegLgco3Ko}r4l7D)IS666F-5xJmA@KGAjKRy@%d>A4pgH3_EVR#^hkw<|R!hTLvJNvCB0B3_?AzE5hr0KD2*x_c4c8VNbrxDbqq zLiQEODj6=F%iiD&5nKtdeAvsk=5pm7CUI$EXhM-AN3dGaaC}nc76@IOJF%^X>&eizr36 zn0hQwD|@!Cp>^9ClgFu%U^69@ggoe5;YS4EEEhSJ_#KbvnFD=29N7vp;d~Zq%$_j? zK!d^kKqE$vfQ@;tZcP zM^Wr4*GYnsNj9gnG{FR!)lk5Yg$4Pz+5-7Q7^^iamuW800Dy*Y7lUEI3mId%E*-_8 zK#X+!mQ+wG2n$9fA}si#Gw?>b+S}JJUocyJI^ky2REG|NQ+jWLg>>zN<$6j;eypkB zNqor7K+gbt0C<-pckEcdY~Hj{LsbSbz)MegIR;;8hc$@ve>04vpe_%%W}*d=Uo`Qn zjE?TxzHZ6f$s?3xNuw7Uy99&~h)KZWA(rZMw#Jfb+GH2@0D;KIy7_Qj0 z3sNB&Gdvawv;(Uk!OsI#jB4cf*%|2|5~1|o2*j%~H9Sgq0)QgM4(ZjUi+E@8PM=8L zSct!n;1{r(IFoAPSeQ~%4TJAs3`J`g3ol!sK55io1+mWJUBtS6>OznYX!8T|AzAbnPk&MR7SmUAl16{w#G--k)wxNFc!w zER6|&#WD*A-vWM#;bdqvg{%QMtP7wrxHj;0oD1@Wq{co4 ztQ*Me69;x}-@FcW+FU?!Hp%6JhXi`XRBG!?rQ%^gS6FOU$k=Qm>9?FVxQbO%~q00xE zeDv+7OwJC<1bsotKzaf|i3^E-y1O?lM)HYc)rJjbm58*^odFQD5vr=ghYcG#bcl+| zVCax@={rdQ1tcNa;hL{Il+t0SzG@yNhuGx6zCC3n;TJ>5D+Y0!I(gEB@nc7iB3v2s zg`n$q>L3Ogb?HvtM4ddQvvd8@*_0f0SpPoqT_p&4MfL zhrn%TS$oQ(I$E1nE|@+Z$%oPR>fTub$Sbl3fOCxI@)b)pfrTR#XFMDUu>%T+>x+wb zfaL`NPxtNIv|4k{B=}B{T)(1%Tqkkn`ZEmxofT_0Zd$))1qb07GaM4qRD-efFumxm zps%a5d;5k}ni|u`w#&5l0J^OU1L`bT3Y!wGT};Rv5XNcaRk<2afkE*kWV*@s-nVNT z;HyA&O&E#lk=Cu9y3j2$?8oz;R&R#cTihv>w2JFr>Ln6QihPcFnt%eSimHJ z%+JS+Q0Wgy6sEvXrlceU-G_`V_gg>n9LNZ}(r0DJ@`WF8jNCZpv+ z5mQ!DK%QmLHz=g@dkmj6cgebKdk>#DYi?=6z)YK0FIFGJgzUNW63oM*U0NS^%~?~R zA_I&}VZ_w=D>v-|qRPUa8c4E4*syHQI4J4&BLJanr;ZXGDj>R!pEiY^&PA|q02$u1Y5APd>;;gC1S*d%N<&6ZqG|y~0B~J_qsR!tbk0zp zGjHLt_3&dN&k%s1uXqBbc1m~8=H;_Tp#V~2CX3fB-VI-QR=e87;2~r%gA6|(Xu&lb zU>HIGFI#f3;~I@4dp9qiH4@*LYYUOS2V8#^c83uP`K}CypTlI>M*$TJH0j=hKwz7} zQ3ob>H$tuu-H`VGbf5j<|( zz7^;VwhYV&mZ=YC_)bm-Uc8sujKyo)tx(2KngS;vvc@@}N4`9EPVTI`8G1LI@hr|B z-?wGi%%R9)P{Qv-I`ra-W9Ka2EZ>K`Jz#_~ZKj4Ma_l}`efUv0d-`Brh*8ZVo;(Bt z#l~2F|CVJlRD?SEtj$xJFn`Ssd8L6vnU9M4+(j!l?%b~jyDcZL0HT=Pz5n3RlgMW; zo`eOWj%4WvQ(G-;;l=t*Uc6zCLSKM+nUBhXW$PgsZFrs#S4$wN3)YUTbE87ASI9#FcX=i0W(+b)P?Dn8Z-S`vSPi~!IN-V41_1b2Xq@4p&|2K zdTRXRo4(HGrw$->e;F|oG1)=0*6cY>K1j@aW!)yNgD1#bFZ4-5Zv7|fhY@!eZ1&iQ z>z5p1->`YflzwD|!hotkiVmH-e&5MS(6C>&dILe1VHt%dz8?PaZ9zjT&2~_KI4M3R z^0vRb^%=e0>laQ^5{OFyrAuwMyu!!@n+_PlcZJI+$4;HKu!ol$jD*rZGR8J#}!$YFJ*dx*9nhURC|ZF5Y_RG;?h^c=V)^G0_D4uH6B(E32dt18q?L zlGt3!^~)}nr}dEOVYwmnqJihfAeBkWb{sjoMQh)oWAGni6rVuQbzXurRo2*CT|%=( zm}m(LL9=SCe_+SD#WU4` zibBj0MlxzUVej{DU9))BgrPlPxdO~L*C4{NY5v1VG$dNX+alD zBRwd-u13Q|h~Ex!;j;*#NFNAnQOmb1PzCpqd7XJ4=r zeNA*4$B%@Y5m^wx?}uFD<}TOLGqxkwtZ-OoCTHZ*G(tHyS5FdNvBU_g* z#z<|#sNsW@dUX8jOIHLI|kmk2f7qe7gsXFJy_=vfxfOdGvV2tKzGX%T8rR6 z!Wluyb&`~3E>dJSv_KQN*W4LajPUKu$SbaDkZFEX`{7;e<6FK?#)mgf8-U>g`u?nf z?LffzU{S@+7pPNwxL+Px0Tqc^{cTZkH4|Sc>=S)m3E?C>O3ok?P@UQSPQ19Zu<#~D1n6%+UBj~Sk~a`g1Q8u}nIieWj3#RF|yApr#x7A`z{ z>@K|{2#3a{D``JJk4+)PQVzNS@IUwlV5?BH#P6=WtbWV&aPq^)PFpy5`rinD7MGgK zL{Zr-e?lau6#nxU3ojmb6wwGj1AXVKcNlf7w!Wc>o({_NKLkG|eo6iAj8C@a*z#b{%s&i)c9)36O)3r-M#vpldQrZW{ zha~?ce@pScDNJ2uVtL_$z>04zuqk)+^1FWTX;e~XK?SHEFjHU;#qO1OK`@n?2rCB*mu8RtH9Gl9<_J&xJYXCp?5fvSu~fUAo>k@%oj4( zVBQ+ww17K8xq#&XmcGYH6N`4WWhUDGItIKCqUJCK*v5~a;TpmGG8j*W%W_0{;;#Q= zJP|87oDz{nqT;};$<8YzauTu;m?~e%r-RHhh)@G=4c!6V0Hy!=^T)QcX4XtV7C>09lL=vX~j!x{wVFu|e2Fky`_jGbaGx zC#f2NOf$rwGf=m|=HTO(Hk_EfHS!FB!3(7YZ>t12sK3<=^XMRa7!<`h!Co+us8l2U z4|3`tCJ|$cF_GhH7QvzN>L4IED z`<(2o%q*cOHaR&k>JZ}yF?t>;8$+F&Rf6AO@<1LrAY_5Wl8uBJ@6yxKK<)ac`u_PH zP7oY5kSX+kKpjfoycys8Yilz|DTFi3OixWod7GS^l$7}9O#)DC^m&e)CI`%e z2xJp*GGB|okbIs5-R-n2R-C^4U=AFds4~Z(Ln@RDR+s!WH+u0{Dnjg0DWiLm*e{G4 zKozYi`^$%GX%T}FjM%4-Fia{YI~342?uH3&3+@Q+^6!;Dha}Zu*RKZ!5n(tcnJZCcmKx~HqTi@D#-dYk*K!@n7=iwWhl>9>=Gp+;hRXo~ z*Ka?1@j4+ruY{}_$WG%Iyop4An2W@6R}t5z%1|-e>>F?jE(iDm=K63QSHWv!ITrm9 z#t_uW$!LcD{$3)%+Ut5xl~Ij9^AQc;hOcjJ9h2ef6(x-siiY`+P9xX zCS(>>(WO!UiMyYFBzK6WPf#kOJ`H8jWU1im0e$)QwUWGAd9ATC)|&&x9eDS7bZTCC zy;zfYV+kw};Jwn~zY`PnoO2~G+`UPf_eN##qJs!IfBim0#P6yak)B&FrP>lGVkz5@ z#TaDCk5B>c>0oBKXFZGzVMRfD+)I?rHhYu7N8^;6 z-LXS^$HPCN>#V&84jn#f?dEeS_|ePwjH2pBO6znpp*uop4y;FYR7B8K zoEIfGbI*PQV^eeXq!k*06I9(KFx{X#!h0BMMLtC}ER`hQyB&-^brP&|(?fHy-4VO@ z9W*jIX6bPJ>{XoHL}tD5mAicDevk`mtx(SM>{c+Y1H!VS7Hgjtwky3vPape?hwT%7 z*YHr5lwDHW^qowZ$fOLli5ZDe&mTN_bpK9B(6xYz=c&})!TOlN5DDJvo;Y0WvbCM- zDgW#Do`cC>QVZ(^W*3CeoJ`gY?=)X~J|{d~VPCLmm?SS+2M3F1ZCgi=)0b{M2zx^= zBM7A$Rl12}yiIr=23$F=Sr7tFdU?1x+1u#qC`s{RR~i@{Ic90&;C%c{K*&Qf)p(Cc z^c`jzNB%0fXl{@z%n5`6PO)gTvJ5XlhRzVfOL(8VdMgx9lX+zyzLK{R^KU|)V0`qG z-kwCXu(KK6j+dlpXmZrT+Rn+<^OS!eY$@X4Vt|-NR{u|u_Neg3cZ07m0*1Bas1Cg3 zJ|;(TI^fLUb^2n^-KU)U3nD(kVGj;@aE-woBk+>Ft&Nq1$p|@K@@Tvd$^;0#h(^BY|slfT14*?_QffkX`9W@?qFromw zz16eqS1NbUO-q0b{!S42mU;i;ONf*cEt@MLknS;Y@n(H<*R$6{V{*hxyMWMKhWY{q z;-&(>-a5;+9kTK`AN({fPy9W%T1}cTh>w zxywLE8cZEe1>6l!DiAMY(V{5cYmeH!&Rtcz4V}ATznSZqYY$$f6pEK~t2umg7nN@6 znj;r(F|hLRyAc}own)5!TP@Y5gF?qHs@)*pAG>rrZTjZZH|fRVm4el6<&`_Dbl24C zqdjruZc`_pD|f@Z6X&kny3fSM<7^=3a>6}))3>99mtWR($dpCvcNto^_ypV~ z3ogOPpoSVyX=0hmh#AYb>^HUd_78bV10Fn^(z^rJ0OWOkncC<%t9Kl-bfdn2)fw3W zBPRL=5zw;Bx{sZ|ey@qW_XU*Hw7?SZ2ulrqiHP&dG$t(Ge89}b_u7NVx6LpF^3tLP z@5IDeZ|^yInJzlB-;Kv_G7C}X0BQmA^3m1u%cgs$C`yCoZuIr4on+ILFk8a4qOk7(8s`jJ0}4 zozb7eVlzvcU0vvCDtk~h*QjxGHXg8WJA3VZczo7-&OSzx)>4t%sBx1PY&~S{c|PdT ztE8MV@~4rab*v6+($pn84%?r&c=JhAN?t`RVBTGL)q_Wl)0r`M@dh0HnX7l{5~`G= z<>RN$UbJHU)_uoNIECAA96Y7i@);<-(A{Hj3=aixor+4tBM4i*00m;;#yffY(S0F? zt`@eOE`uZ1t|!@hs;C6IOxW`EJM>L$+VOmQEDkP(c=7|s z1Fw!)dkeQSfe)k7@(ZXdQctYmmfLWh?>CTxTV7*_&i_0vw^fIe$7!o^IC<%I80%!L zgW$(!i>dF0CpLF1>Jx0StMAqOFOv&ebtbmh{cIrhF+mrj4#XCF`UO$)ZSGcr#h<+{ z1V4^WD{e9Qp|(vYSqCc-cmgTVBFd1lnWc>5&KBVOyok>(LmyG1^^_tLa>{E}@SiUi zfACF1=DsP!W0(TSehd0mfUOnq+cSM~> z>ssE4SCkckOYta}Xl;UZ&16K7Q8VIS!PFg$8>?L`4kq?A!B_;434AnZa>Lit(PAmL z4ljYh!pvcWyC-*V5aG_wd?H)N9K#8M1_RaK_~5?WI?VAE=HN|r_~U!9R%ITkmZnOy zt^%`oC3)$1UkW$V%jbPhdb)sMc0_}%BLDT|H_UhR^vUCH&i2;kM>nulE!OU!^MI^t zZ)0hG)MO^Ns;)FA`Sr8Aa2$08sMi7p#fOdhaI0#I;dRUyik3tPHa0Rc+%H3`>c7+! zrpLmq+3&dhQ6s*g$RQDfUyC$(5-dL$?o-p`{lc`O$oG$pRR#2$2-eb<{#+!Z$>aavf3N)Zx$^f)+7Ep1kRCit$^*k% z)liY28ZC(ARxVQP!7CL^IDRU}+Glsz_p-I?`t;<9U=CE|YxS4MPTmSH(?jHgf*i zx7nKR{dm=E_P+6RU1@ew)DyN?Tboz&1u_Eag=7#O3YTwB`~JKdOw-eJ4q;iI-=}FV zJ1hii74s#+D7wpMy`2wYVPzSi8$s?x4u%%)Gcb+F6-vV;Qk_Ljum7B3?6krkTWJ^*MFeEEzgme`?_>kQ(3h3V}bTyUOj$-D?spIZsW*2^&z}Z;SYl^`+C?}?w_wMJCxVR z+~r-ZwPi=}zHk?c#wgxb{Fvvw97prMKEm&J+yNh8*zN0Kh!14L?Y;{ifFC~Tx(FY@ z3-orGh7WA+bO1hF^FQtBsDTdwelQnS9?ko9@eII=V|d^EPak(N$G=2WG{C>UK#DEI zzo$H1>__8YFPw9YF}&|M&pXEQ%sTM?_=gw9Gi&|lAJ(hz6d4Tj8?MFJ7b-j@{O>Du z#DrJ$AIT5js*AFcqg8mySn;j8B=>Ec3a=CFo4-|;f+nlN>k6dlH>Oii;i=Yrt07u2 z_ldZ_f=};@^0`mcDVsl)6tYj~yzh$zpMVkOK9Rsg@Ch#4+$R#dG=Hk9RN<-BeJ5XS z`oORKRinbwsQbU~kMQjOPyTAcv;RML_Q&ylXxO>nZ`ngm<9R<9I^eJVw)jhSE$krr zo3%6Nr9OZufwRRS7!a>oGI!d95&hNWq~sV*43nDUbr#Z0j^Fi%G$~rmuMw>kt$S00 zXC?T%M}|GVebvv~$=v9`E;#hgn>u!IPX)>L%4|lIrh#T}*pJyPyx@<^Dy?S0{JNMH z;C>ixK}2N*x)C&H5ITD+Nwib!gxS{K1QwmPn&ycw-+msGK{E&jo{W^-bky8fau}3c;9w#o}VQh=p+9%QJZ2F4AMe3qCQ4F}*ZEI@;~8ZerOjk zdc#yi*(^GTvBf<3UYe}F7m-}pYO5Swc3E$aVnd0c`bZ=rWSxq9dQ)ymZpZ40zhvqq>QSNr;#Cn7nM8 zp*7~4p2g=0CMjtOQo61xkNEI$(J$^?0r(HJMBomk`BHo!4@JbwG%?o-&A^$!N3S!8 z9N#>TDpeOv)Om2bBOU~v^{_VHy>9-v9sqiBphe)6)yFN^u=fZiBkzPKgLn_v93ks# zFl87`r#USp>2>Ih^T+K>_HI}>L5qN(Z3TqKZZtz|h{@2P$1#{nW3+ryY$Fn4mmFZ3 zW1ro;c*4PS-=@WrdIL-;;2}$jtFp=GqmCyp-;JQTWeB(6t58Le4A7sIk?`V9fRD4; zfh|jQ`YMBk%z(XsT6P_ZdF|asw9zL}%cc@yy`-E)mLfDiFDE79{xx4$i-Wq$r)qcZ zsLX7K+5o!R8B^w~w(iH&-=#ZX&5^*IO?YFQ0s?jV>(HQc9#)3iS4FaWA--fxvIW{bawr!=w+jP?CJ7o0aS&LS0-DmFUkGbBM6u|$g z5%eLkJR|z?4L=VngRM&@fa2R5_VrymDzuf9R#ffLckrkQFeKk_!1mL(h6NQzz!Y*1N7xPj=G%H^yH>x!MAe+X;gB6B&Pke8SSgAg!$(+d(yK?o7jPlz z>#kY8m=Mv!2WY9bzO$!{ z8`iIT2atC`SMCdH>9|RYc9>8Sq`A*>Nla|SeW)x*i^bFOB}np)z(^ek?%6t{2lkMc zB;K!vR^I_bMvR%W*}(ev`5Tyi&&BjRZ7#8@Fq4#kcuaP)J!%LjGF6ce1-g>ZmrNBf zc-XYH`^-pv5T1}-#z&Y0!iuxW)Z=y_9GaA%nnI-N&RX(gmQ;M0DxXJWV^kj(?gqIQI{ zT|g;Wk^_Saq(>~J-j7Hv<|B{<4+$hy#tnsX>9c!ReBG=V(sY;##86TInzwD&feAn$ zX<`|wh)rfwWE400gQEsKF`fqdd)b@r+p=uN2sH^PrKF^#Wn^XBw9#Vn63_D?&lBFY zWO0eQGLmN(=EEx>Dees}z>`kL^mSLx8l^5NE83=#^j8NUf+GDD2~tRHQjH+N5EN-R zDLw*FOIHifU+0d|Z9kZ*=c0$>3=gUg-gR_6_peV2G771p6Zs@7b_$ zVsFZd%_+6p$eAm2^&zzhd>ltY9p-MrVoAhK)QaqkgfMnFA{S5Y+qqLm0N#l&FDtD& zZ0eGYKyZ3rx*L^3l?zD4Bu&@_Ai+s@1z~v24g&~L zg2OlsJrwpVmJ{uR>z|(%`S98qmXD_mP*dqDz;Mb+b?!fI_VUeo5bXp!e8r^gNXJ|( zawF#okoD#8%qlAh^ykFc%Qoybvi7=s_bKVBa2r56z+D+4oT@~m<#&lMxSYIp z_An5|o00AkppK57GH=CZh@N}`Q67X+s=OkpIOn&j%@)Ceveub(@DoER9#yS=PL zd)3}U#!jWEBTmq^g`o~6=Up4*;*`>~sE2`PT+Q{jEFRySRy!%QlWfzaNB`mDrz836 znYx}s1<;$MjJ&qkOv-yCVsrr8!@JhZ0(^fcgYS2imj;KmFO+Ir_VzeWA<0?ofL~21 z%K||4GJZP!txIQ36QIb|lx1Z*cJDoK1c1^@)@(Jf^}ZMq8WH!lJ;s1OFk}uA+KMx z6kOWzBL?XK{m>go*>7&{)*-?^FP-LaH+acfZT zr9F7WSb*VI?IEca@~(VcN+kr<+$$qH(}R0-*RNPObJC~*8uA=<7a0376Q(TEHH1VD z8JF4@W+mYT3%#1Kg(O%Peizfm;n7$Md7WU`gXz(D{XR37(|9yS`>JA$`0+f8w=Ym> z8}7x^@T^Io3R6Z`RqufeJ7oBjm3W$ivhf+(SCNK1~3jtC6|#M*Gzx#B9f>}=>pr6jtt@^mG zgV3Jky?pM0^;yVybd9~6mQEkhy*-&+D8SlLS-E4MNsBk_!%ucqzOIzA9XV=cq$b6^ zyn`J&dSL5{S)(=O<@pMHMZVH!voHsP>MIBerg zAla)l;jm3OY!eRKgu^yZ;jm3O+s3^^6wbDhQL1pZO*q>ooNW`%wh3q3gtKkJ**4*9 zn{c*GINJuZcHwN>znN`I7hu8&6qqak%6s)Reu;PK}ES3%zsW>P6I;5PeCWmpovHy%Pt4yb4m~OH8*z z#PkW|AQ0>FGr4)#n}H}w@pQJckOc^6z*=yLJWrek*)#+IFb*8_jnG7-3{Oo!feTP& zm(HU0z)DGhm#Q%h;3E(3Q@;M!ZaoUe+&sWU;3a{#^}dMB!{Q)r1zz;^a<ksg% z0F0wa*!;{y)JtF{+|yw`8q1E_Zf$Gt0OCf_{pZmsIRHid00^-`KxrdIJd>0#Em8GncyAZ{J}&U&0CQxh(C?qivg5*TV-_AV%(blb8Wly}TMfsSU#pCWywv*3 zw;zq=Iq{@ObU3ni!zwi2qPu;hA}>|e-oy7&FoTN$a|v7uIF(<%{cNhtO$@(x9Wgh*R28H|Jr2I$?QnGeuHAd~?$z73f3PAi&&tFwchwWXP<$uPQ7ZJj($ zz?2=pV$v0*Wx9`o=z zdG>Pf{pV0tzAH!4Xvs0r5x^k^UOeONYG)}8U(6?F0LRKdK<3f&w2zBLBEXzJ+yK?buswi z%lOQq8cG_(NUbA@SP|;E9)(=?b+?^^i@W=*gT{xCIe7U6-g^<7URd44Ae2ZNxV&po zc=r0~?JH+IY8$`?H*4cgybPsbO9+L9mJCAE zz>u1R#YHNpDoB0($7Yjq_PP|OTp^FK)b@k5E*C~1BpHR651TdF2s^6jI%}b}C zw;s`%_ffIW5nGQlS8hKcpjbV>i4RgRzoEXS@a^j-A&@N}-M>|;Gp}A|myNq`0Q}dJ za^8OwZxjdF5iOv@^0q&sw`pLf&b&{Ptldsuz8U%|F}t)*{IhuDhYv+*XaS{+@$U62 zCwA||`_$dq)#p;kqlg5!sPh}Jp+<4CPsTF$b7=LqES zm#_6D>Cq4;yIUG;Td^2T)sb_5a}}!re`F|U0y%#wrKV?H&7qxMuz1<3NgePL>N=nB z2fqv~X|N&%DF<-i1}Mrxub+V)c;lkE3zjTj-5VKdloL>o_rhYpQ6oGx%Q)Y@|7=9t zM}fZ15cJNUHFx3Cl`}dZ>8Lw+ofCi(Sr!4^7c}diP32iJPi~xZqn(()Xz9u|>!(m& zKpFwe56GY-u(E;61#Y(i%_ z@gbKNK$sL%hF(Ke1xn}4kC~bn8>00n8%Op)L5A?*;H(2kRon3W+sE>P^mtUjLezWQ z-NnJy%KYeIv{tsXb#gm?^33^5fwvw3%MRQX0cAfiomnKPvse7jP*$+DIEqVgC4lPA z?#IEP=BR~uIH<=j)4Cq^;#oX;*qWnpKQjxu%zxkSIf`N{CgT0zE9ZSYoviVr&oMn_ zMwhvx*E#MgFU7M#E3zn30;=^+x!Wo8ekv{D8;cyyGcj{SM}bZ+16Mg?91{i=&k@{{ z!8tD{x^TxH0L*;fA;9G>-+CJT_FeUtpDZKbIRfPorP+zELZJtA#nmV?dc&UGyBKB; zEUA?IswP22GNXXj6yolTyQzC;UY4p3Yv|zZe}kY?m5rc4Qz0oDer~8OqB}HhyJ#q* zHFwW$0Kd?X^wkxg8DW>Z%s;m@?82*)9yoW;?{;OM_+R;7=qhi-O&s@Hd|OxE2Wc%G z{bTf9D6q+SUoZMavI+NX+>7sC@pV<-w%EE;#G89 zVrp7y5=FlZdm4KG&dnfn4=ZE6Ei30v9N3A+2ar%y^o9(Vz{CbQwQ%0Atxq9|URYcRCi-^@z70t$dN1Y+Sjx7+Y6bH~x0vcbD znh%9>q1SvIj_g@CceEO~iG2JtB4Q%qwHgx^ZPvGNKY#N@YB_tR<$vUVkYX{lg>jFs zouCjP<-Wi;r7cvgh{ZJ)aB`)j1lzdsueR~uL~Q$8+qmdub4UU3a9x`&+`9TRQ8|l;XiH*!(EmtM4<4e zO!jZ0PI3L3MG*g z_q%)k)%k4hp5N-KfLa#A4eIa4Rpypd{WozHz)FkON&b!P;hocmZ*>(Q?(*xT{$||Q zx^kde>tz0B*tfc}q}+1ZzaJH!{WqfM5rhuyeN1NAf4;5esM6Qz@Be;ON#xs7+1iYj z%=cHFL~t9YT`Yc?TJm3n6@?`g@vFsA7-=r@;Xm3Y-j0yL4@oFi-=24(yv8j_Fz@7U7sqIHnWM(+TJ4AX4Gx z_Js3v!g;#Zqd?(2-5XTfh4XZbGy4D6c{)hzPoMR>aQRALP{{4O4<5gWic0}w zxuWj#ciCUDq`*bBP&`!&!RY;>pYJIzcV`D1ODfGd>EnCW&;R1(fUAKdIF3oqEO=kj zKw(ssl$#bG_59(@YjAi!4c8B5K4anF?CS2}>E(Uml+S73v*#`n4jPPQDgmG{R2XC? zy#|u~$~kzn!#JID^DsMP=iun%?Cj#|>gJC4ljpD9ek?Fgm;F@)lN;1Az!C%?cUKoD zM|(RP^0V18LSyt=0~wo75MeUqFA8G5%Kj?*T35nZvYhjBu(qMx zeX<4)dGb27p!$m}OmeEV`3Aro|>ylpHCyZ=wtlP`To#BbU z*MV&gjAb9J+xmy?Q5$kRDFzY2%J?dPK)KTn(P zShwB=rn{}zr9?gog1Dd7Ewd%+C@Gt{xPp|(&>Q|;}Da(w^c zx`02PGp>u$zTi6pZgU#;Kl{$VUiXY?-~T-Bzh3u-^z{GYJO4jlm-ZL?^5^T^a6X^C z`JZ3cmiJ4s9e&?`wLe%t^xv#s@^983`Zw#3{`LBwW{Pe9atD7}^!+yttcLxY2G&dd zO#>@qYCspkpZ#cUct3_%8U1eY&s|f7_f<+=*UGSGo0hNn=SEVzCTZ=JTX$I+&T47) zCzp;S@3YG6T|0N~gS$l+S;6=H*|jOb`>C~@uh+EqASx@T_LGz5+WzS^F3$U*w(5YW zev>h{!kgv~lapeN|2&b1^O~j`7#uP*GCFE5auIb4NogR9qml@|AvFTFc=@}OR}TZv zLZZH5&cKdJiX25I`*YAY3sF12Co@__T%TR)l6Zibq zMQ{7VyH-u_i;cJA+&IKUy9}B%Z`Bq(V++)QUJbtc_yv1fmRTO5vd3@tM zYRyk-YWFsOa$-+fh{l&f`ww`CN-Fp@u8Iw?01R)xvY^YrQ16w)b9v%L^O^YUIN>Q+c zIJPdzXLce~R1|P0EE*E5G!DH_?k5xv&lQejpY-B34j*{(`D4}j;-Uzx;&&fAA3$k4 zFaMCIF{yOioZXEG;ici$Li~IHrsJOlpZ7%V#+o^!yUFrd3C00H^RGRKOe4u#iA-G# zqwN=Q#wXE_K%+K4xNYUEk*ZMFb2@JL3XrJ)xzhwcjm>5L02EhMURqQDyOiYk7{;1D zqPKbJv|(NO;*v6L+I5guP*U!sJ#FOVHyHgWmqQVJ&jjq3Lq0W#lqLQ-h zuW&Y6Q9dz<$PP?-pX7_aVn10V93T&`C?T;&JcHwfhk%oMn!5 z-J1_w%{{8#ZopmA8cscH7SEh86h1`+WADM7hDJ?YvHg%0J%2^QtEUQP3sSJ>h=CVH zCKcVHw$#nac%SatrE_$EeeWPC*I7*yfkQ`(9zSdKE@OHE3yn%Erob8r*oeeem*%C% zM?Qg9p}XawJzLf+nKNbVkUnbdqyU)L>Njxc$T1Tp&xKKgJxYbhpolsP1t!A#Ej1?m zL6E^F#foTkmf*@1&h0JG^3s}&<>75L62zIt@y zyt~=11!IN}((a|%t&6gptT^!ez4{LsHE!~>S@Txn+_;^&diO#f#L9wHJPKa) zvesWSPQ9B-XPCaUYa=Bg3a^;KqlwSIV(sSL#;9TqxP@xiyb74H)Fy)K|LW28b8cpP zSBzFu>D-YvBO@g)DyPwZ`6xSlu{5PbjHE5bBXiNoW75C5fvs^ZjF_phR43TaqdQ67P9 zSQh4Y958;?(hWQHO;M@u&+18I7!X2?MUqDZymyd;E_vG-?_4>x4>=Pd6dM&4=}akj z>%PNO>>G6Z(Q{TpUPw}Na($xM_{xfcglECzrlY%ba<3LIB~iXe7qT|mb;z6sR8*%I zn*_5U=-b5v<`gkhh*q8-`}jHxeD))I_TaKF;%r_=S{C;Han1|TyBYGQ`OdYBs z&U_7!QekY+ck+@gWP1gxmR!1BFv&6t76_UtA%}5ddR0M zpKX`2Pc7{>X_>Q0%N!OOe9j$yHXD~B!*-N}(GSb8z5DeaGoP~0iA%S`5-G#7%*BGE znRzbf6@i3-eS3#N|ht1Q`GiA%Hn2MvKc4ULWi?uI89Hp|5M*l<#Lab9LhY~(Z8 zfx_{_0Jds#$i_mdL&x8lc9|}X$gd(r7x7V~h)V&Hi6nmpN#$V(%k6tMuUar|?4TYn z*l5YL<7TefVaUeFk#CEc2M@FTfn88a%*)VQS1|m>Jz@2tS(8R+t1~ALO0*-!jGsJr z-JZkLD??wyE{L-yN-E7KAJ@CEPO~!Hvt{+-**aqe_f~E9JIzj>hE4&iF1%WJlTk`u zNRo9)Fy;ia0j2qNhC4RE1Z47K zG<7`8OnRs)O3APUJF+>!TDtin!Nz5mb*M`!%1nfv$whCQgX@sU#||IVw`aFbauTwg zHTw=8IbLVRoP|p_z%J*w-}MJC6LQKC@h+Vz%u(jJcLmv{4C&unL$zajiMFb}296v* zb=HEVt2gX0v~=~keDg6Xn=23jciyMBE}gVLynPV@h7Rc4vwK&icH-^3_Zv2D%Irle z)@|8IWydi7dJf|$ipWDQ4nj9RxM|MVkwXXe>!qRAS+T9SoW_7rlV>elxn6hAK~p=A zGXa3A#38LBA}4{7IgaYBojzg+0(x}s+EKoZm^>2k^!dxzZ`*sw)W+S1RpTdS7E%Np zyKY`YR@ed0&l))R%XVY7g&PJ##R#;!#$>ZAb!XdIAcK_ZnMa z>~iz|lknH%%2rffgNS6R?nHiFHbuLO;ASEtDaJ=~p1)>0&g;obx1YR-j7faU*|;Hs zt7}D0o!E@~cp`onolWhT^%V;sH5MJJzMtd-B)|`ymh+|+j{xmMA~eXbFoV&9L)~mVU%3TV7${wg`P#V2MnG- zcZcSO*xx>ia&>R1fP8C9dh7xZwLbj^4INI#H86m=O2&=9)1zFSa6l&<&(t9A)KKT&d>>G z=rGkLoS_rW&I%HK8!hbJPM*6=-Yu_5 zv6){~R`sFbYg1iWK}I5Hmcr^VwoHamLb{2i<8fcE{2~b=nS2t-eEj^Sv9>htZCu2Y zJJ&Cs_V#phc2rm9WgM|~IYE93FW#hJ?ia**I9b$x{_+`euaq}09)_Uo0xj)r0b5rz zrOEN2d(U4dXTKxSC3$K9hTl*{f`X@a1N~3AI-oq`0NM^YN>lYP3`oc2WVZZw8$4w70U<)xj=gE#%A;m_q{4{owJVWnFZa?FCtB!>dSJ;apCG&PdoL_ylmCc2IiuMH z^VX&|?=s>ArZ!U*q4}0Llxt$^arWxn=P_x8)#PLWBMXQ`p)|^S8-r4sE9bnOMx*5- z{vlDr+#`0L%%38?kX$dC8el1drbPwW$d3zP75YW zm^=N(`2YCw`6J|_5GAFj#zP$xa>ehIyCuv{6pf5c;OqgD0H`j=zak;4r1tBNrcZTM zOv02L|N2GfZTJ{@yY52sVTX?#HM4|&kfZx)Sn`CuNy#OTkrqdiH?P7T-3bct^YL_E zgyu_3j#^kV-y>g$OrACy8NpPkBtJ7X{&o1%2e*O(&Yyz#uAI%3Fnc2CW z^t%%B;Q6aJ38|U6h3~6AeE#<3Ls>p_rBCk#UG(+#ba!#IvssOw=W}`3Mt?rkdg` zIN032dd|xcwON!2m3ZmUx4>EiqRf=MlK16+4u2qnjqi=sh3T=-sa`ngY+-uj$j0F^ z$P{~wZ9L8e-iIiu3@$_hlMlF3k@)l3ZMZC0A6_^_u`{n>H#8*vB&;f_7yByujsN}A z=Zd^!=ulCcbaZf6UVZo7CQO_bpHtEFi~m#P2miasw@+U`m1QTqd;rmw&Ec-R94Sak zm@XrMTK)V1zXq~pVfG2or(QejX=?(zhR$PFZDDF+u9yoAS%RQkQeBu9^Zf4BvoL3Z ztAzacjhi=aJ7`Yow3k#bhL)6cSSBG~C>#TvV+@gXRAz18wsi{$PtFSJxmx>Ayw6F3 z6Hox!Zh~Wm!kpc^c5K((ZEWM&T;TPyC6iQ^7iA_ygxtQzsjmPNi-Lq@w4m~Kz zAy{KoU1-ewu}F)EbQbJ+#dEY*?-@X4RYPo{BTCSgzPCk(LR!Je0XJMpz z_OR1N>#_O=_U}jggJw=#1}4`GB$SVI*#o^wMqTJwKJIq7rKKwB9z3Y8&!tv~a=9Xi z-wr+bIcapO3cTRsZjT=Lv(F(>1OCCh!`AL+u22f3#P+qZz7FZ9Fh4sZ`AztvTi5(g zx!WVJO^`IqV_6LrFDy|}dVprJ0Pxp@sOJwtuEG)o4d1RqDltKVFtu#krxC`J>xGm;K;mLfK*HVN)|p8wY1M z&r|+^cb>e8ht1hXX1Rv!kP;X50?rtLm;FwAxjKwS^Tj4+R(4MAUZ>8sE}Z;Mj&4~g zagp@ZS1z9O@p5;vrR=c%h=r}Q$H_Anm{HVkW2RQMnSQ<}kGnb9ZO4Hcnp!z}-~r$e|2e>-xS!jWr^RwrIP zDe?VoJdRE;{`mDP|C`8nksl&IKmPh%foZT^t}Cx$r;)AKg`3agvMZYSzr=ou{`mB{ zJUbo^X3&Z4@2A4c)jQ%ql?PmMz@Djibk@h!fm}IE8*qC z8ws=Yknu3t!At8zHk-3RjPGecwb&HA0X~?R9tFSL1{Hx9)})ORK|VAGM}k&ZkBn@e~Q&UGqn%nAt~K*zysd*iy*QYed+m zA6U!hmf_!S_?}-iqU>MM+V1$DNUa9`?(u)&AK|J0AN$#ar~ZHJ)PHw%w4FMZ_ubL% zpvG9<4?FA8<9I);r^=4w{TwB0*6t_ItOM_le|TX$v(|t9VZ91ZqfYoocn<#m+6U-* zk*`Z(#kb|CKSlX#M$|*%P#n}gd|Zb{&ZFg)RGz*t6zbX)(%s^W&eR49?bg*XmhAHPpMQ zcBQhr_HCp(X^)+`WWz2)ONEvyw7kl~`-Jz~g!K0Uj4k(ZLw z95`mm+-2*xDZ!J4Uz1Nhwd93ofntnV(NaFi?KIh_kk;MFxA_-e#N3W(N=i^tP^Ig}CBURQI8%+=;a*EzHeG!8?{G_pbTE zDvvAj?JOnJw!IwMbfh+1nObsORQQuy7rg9_?4ttWK`JOV=^&?|sHDu=loh|r&3u~_ zi{j*~r(MhqcC1}EWvE(PR*s^mq=Yu~ii?axQj=m|Q+c)R;k}!dP9LG(0TnCq3iu*5 z)L=6&>b&fXw@L94ciF?g?#fxCHTm*l3cnPo0jl*%TdJMMOG>e3=bLEubLk4R1>4~~8S}lt3 z%2L5t3guL@=_(x9PfJ6!yP!0-vJ^&?_pYHZ@8H%&QzwlZHEd8nt?u2~1zb`6K07hu z;f?cND6CpJcgBe76?xqpr^8BBH$?AWk;{c{G656^WKg{gw46FG-avz{koPu{ zH~{AQTiEhuNm@y9HrE>sxA()D1B`-tAWCcBC57Kb^_R&mZ9%8`Tvg1z!sVDAEuxOn zSdzwinT5VKItTTI5pLL4H_u28` z)SE2&vyRYMmV*ui3X;tL{P>MD7Dv(KNymX$+X$cMX!tz)x(-HcV?_ZbD((gPd5)-S zWD^{Ck8zSd7h+=M30~?6@36uAD%r7i{52*p^kbbrx zoY6$qRsc_nj87%)0$jQwmE`0IG_Bs9_YTsDQ+@%^UWUJpgT4Vu&6@fqPToLrKD5|x z=W^V~@ACCq4@fYPnw4Kt`GMpW5ba7^$*>N)7)G1c4g7BAF?W0+Dv;2q={QAVm0}$tzZwy>rJl-7Px}{~%f-fz#&( ztd<_7OY3(->i|s?1QF#pMPI+r>d!rRB`TBg)!SMWUfHDZq?K6PlUJ(+YU+-?hiyF} z{|b-KDyS=K}9RfLL71ZxH+Z ztFbq)Ty@le-zrAdM;ksvZ`y}fA+6U+iTV-Uj{0U}UtZ;SMhw0CoEU(0kf^dgi{&!r z0)kaaURg~oThZ9mk5>i!-}%71P`Kp2hpWejkDnUY;?>S4u=r_IQg%rtX=fpHqt;Ua z3%qhG^krOHJ``|Rf#q1--@%g*t4|{0-e%{$D~5*m!zV0OwsSi{O5i6EF~BwDLQPTq z0gGjAoS^9o1hwj!Si055(ap=}+{LRm?u3Rxs*(M! z3`^%(+B&%%Kk4gt@!GA2&!ghga!atZpBZ&J_v0sg{I1-57#5wBS%{@dre+paw)Rdg zZrr}drsenN)hsDP;5f5dE^K{iWhD?d>NnFA4=KP2gUS1 zlTy}~ad`*uYR4YfPiixgj{y((I4T9p)Hbt)dfc+m$mD^%y0OrVp``&Rf)|2AUnOCY z+5)!hkU6#x{3s$}5Y)A+_y<1kCwL><<{;h&2zjA5V@oK74d#86>Ai5TzL6#PjzLIR zLwTPRhb%O@e2sTr(=%pCw%>{ z;L|pH7f%Sf@M*q{BeKOAeA0m?48I9JX)~#*Cq5}1!$$|_(Y&vlj+sM^W-dO-H}ElN zv`}W|y(@vFM&Rh(>@XxMCIGu?wXzcVSXs;{{*d^d@$kNMH;iwu+!C)Va8zg8my(w5C5V3zl~MVjydWci zRO1BQ2f&MnXh^Rl4-&*%A8Lsw3tK5^nLosHz5tMEyI2^4$$IrBORONIm9>hW$lR#J zxcFu_D(1-qby^DKPIzT+Ys@sL$f-|X#il^ERK*=XZC?;i=Z}tGXT=UsAl??OT)$P%)EK?N3y2#=Sk|W?(;AV;WrP&LYtAHaL7as(;4{abvni0^luf4_LULXYpB)_bz+e($w2P!fg(p zvv$uBhf@LfUZs^${P{n`(*cMh9%x>3H@};-{fvm)+%_imYzNrqfayRl6FDzDrKBY3 zd5E98h5qJ6f;t{&^zXG=En2n^70fg_*^h+H-Bt55s>uyPhGx^A)lYc zzblA)eEkdvtQ!}O>&}H^=(o3SAOZqE0jV;kDB)X8O7-W{gnbD=91Yp0I%U z*kDM%NKOjFcQXq1D7EHrX;22cjQ~NG9$zlp3=5-4RuBal!kVvWE_P9i;DdNNAzErI z^$kk{#xfLaUs^^+woSKTQx~s?NP#5WaPn}qG~Bg*(G_TlTO2Ujt< zsK0f^%n_=B>?0#9+orABP@M&9w&@=Qy7&g>ChbiRY+F5l(xA?wa&jFsM$KBW^#DkK zm+pjz-@bIh-gMvQWz&bNu;hciM|eB6!IS2K326ku@}*0sTr7?DY+62h{D4lPprm&n zF@5Q#y(WM~2S0rp3}+8a;VmYbEX$oNyuIompnuoz&?gF|ue&WK7}qTZk5E~(U0YeT zVW6Y4W4re7AtvZBsm}0;f_QAbeFxP6W2Y}%y=BiKGkZ@@`(uZ8Z(cbc^j0M?aFe?Z zp4>v8#O^zCG{wPPxy`fi4l3HCNIkKA9|-ae=Fl6gTRMBv@Lq~yvQpxmAsAV?MbE_6 z)9=O&KWOXsZ6V-y7Y2yr!sS%@j+i)e(W*^A&|8=r@87X;#e(VMhV+ydYa=Dr5ekx} z8yH^r62RZ)hjwjPI%^!@jOaPCZ8^eZ*FHl5X*#@+a^ld6DEA#b zZ6OpOcmz0wQ%mT@h114pccO5%c{w@xuDu42(V4Yy#k#G#4;%7N;qKZ+(v8_u#trS;t-W+d zIY|Yrq2p&PT(xN@zQD>veCQO+*4?OI(D;Ce4fhp|% zJ-fDPqpBng$;xo-+mh9rw(IF_-?SRD*b_$%&{X<;^a_fdHF^&m2I&YA_OfLQ=Kuyf zVo+a=&a&;gb(CqR)_d@%i9l`R;I^(`xn$mqNn?igRafLr9^pL^-(5?4&~QM;r_Y{0 zZ`QO)V99E0byJpZkMC&PwTJdlQm-snx@y(Z1+%9SW4xD|Li5Q34p|Xuliu2chm9IH zQD^!zoe5(`3Va)jPV@42W zR#UB02MKvCm9{PH^sy6lbS91)H5}jFqg!V=^c*^Qw0WhDU6HGaAU|-(uwjD-^y}S2 zUA2=!TQLQ&eI?o{by3sk*++Zekm19JFutt1S{J1b?5Af(uOz@St84bq>eZ)@7LzG4 zo~$DJfS6QUVs(Lsuc6t4q*0JkDJ#miN6%^AJYQL)qev%yXOS*(Os+vRaDZP$lm=+X ziGmv4hN)kaIzkbmM2ZkOqy@J3Z1bW@B8nmkBJv_~A{|QLivX-Ed<{_b-w_HN3KuA2 z_)6uZIYBTQv7ReXx+wAm(IV|LTe#i?1qZ)b4Ds**z?s5%qG;N7+qV2RO@eQb6T^o2 z9YorTv@2=bitF8VeE&`emJ&c<`SMM29cZ`Pwh@(WY{RyX6Trtl^ARf2R-{b=@n|_m z2fiwZ*J3Qg2rf}UENy`0O!f_8?fEQHL{>y5j>R&zcQ?>vo3k5*(^j!-6pE)kO8ByE zSUexcAtK9{5s?;=5|I><5D~8x6IGu{oLjbSTq14w*t4&)G88K+iDuFwGJIKn8~l;s zOY^0`0!NsL*hh`IW4g1uDK;S^BZ@uZzEupka1kjql@UdAF-b8AG4by`7L3ynWgKz( z4iUk3z!QQs7Dppl@$XtoCTdDch)80gI3L7vF|oGrn~)F}k@((wxlT`f0?1rUREn>F zb$l#tlI*)`YA@JQ;6Gw~QE`4({KFR&5fc%w#%*4E-Arx92$q#5*A6u5$P*VS<}(47 zf)dEMY9lty8^&10N{m%3Dj}jwO~l&BckJ3tvsd2%gNIGiT{5Q@bPpr*t~PUiRqp-lySz67~HR?nvyhY(4je@?$S50 zGS}aPgvWAH@9rICSOX>+T)2{DY-gyb)-GQ-d+LNykPCH|WepU14QICmay;>NI!dac z1v7P!a*?iB1L8<8ShZy@6~%z0Zm@IHYM3iPJcN8i4eEi7p1Fi>*mfRg1B4?z;Yd$7 z(i4vKgd;uSNKZJ@6OQzRBR%0rPdL&Oj`V~hJ>f|2KIYVfb9%x#J>i_5a86G+rw3bF z;hdguPERi)|pJuL*R(*0v5#9@a*?w(4%%wtdIQKMx_+ zowKYcuYO_+6%o`9iG9CDi(wNC*-O0KFYLGrQeU%Dd$h0Ec+Aq)(beMpvTmjzt}?mw?dunOj=MSA+gKhuqA$b8#vEbP{J2$E@~ekIkXT_| z+0dib&|Xu8KgX&M=1sUwBKLr{w~Gf?|d{pgg=jmJ}6a zCcJul3o>B`GesV6BJ^oNk0O)vxnrxyi3e8VguMw1vvNOkjS!CSYrsGT*pPsb_}RN5 z%*N9%=+P@KEVij4Ck}84m?q2fc+y7JP>h8}y)CS3{8az33NYBGw*pSPT20{bmi}Xy zU~4)&-l)T*1AG>f`To;45Lm0!gPZk19*;zH*vS;Old(;ef~u2a2Y5Uflb^bL zCoC?jtl?Wj!>5|UbRxWhv2z$?ru%-cwJGq*1*65j|)Xu_F&(CFNFp{>J}YR#%eAM8iOXOqp-$fL_x4bH8WV zf?Z|i24G-w68ikg#_#;bvX7-%@h=}-_k-SW{{dpTw)DwZ4yB0$07{ei(pT<0i+)>B z)%d-!sj2>bb^;MFz|1{BrqaK!0E87~#DzZqg2>T~<2JL3pQi6kU%q@Q%Yl{m4S!Mq zGT}aBY}54?3(6;cRH&vw;kI`3xfJp!B0jUIrs?~aFJBw}pZ2~xzKLU9do0j2^ zC3=Zsa>sHUuq+E_|1lZioCXu+`_7HZ|O7`ml@-E5%Zs)JRpmZ(z7FM8v z3MJ% zBIH#<8V7Rv9(wLQ;<*XP8p&jTA_8DKbL`j|0W1BSJdq0E(d6(~qAFe-vQ{L^lHwvm z9^8e-0TcP%2O*JhQWhMT$jvD?Ego3$q*C?}6Z*9vD*;=-p=2)<-y}d`|0?*)70)R0 zeag#7iVk~tmw>E^4*f3p(*bZTk_o_Vf_J)m{rX)3poL980BGNc=aX|nz)z>aiSEb= z?gm)ztkk5~sHaaJ1d%U8RBTdeRvtXHQUSaBGCM8lc|^#=pc|Jj-w1jb67f7KE&F8w zC3}^hogpO(6sRJP8hVTP1tze3NdWCU3w``J zlzbxKq=QQ$89}MSp(-^6fXEKGec_Wvj#z+5&(2JvQ;`CTpIm-W3@Dj`(M-_nNhu0S zHkC(#^ZE+-&9+Q}WKK*bUpRrFZKq^~Zv><~0mUj9{J#rS+~?`|-ZI)e5~ihPz#R!* zO0V7&$jRWDCBX1=vK{VDsA>f-qM?T91k|hzh(1UKw>$Xe!8K3Aa{*oJ0MXCMQRO=2 zsq&p(#J|i2TEB1tL#k{fqeOt`6&WeV^NXc&&UMYnNsma%hSOJm9-`-Dt8DoM^i5ub z1%>u9lE`RY7Xt|}*2&N6uniX@4Ygfb?c2%!ChMU*Nf$32b9 z(B$U7bwIS2=ZGsurVImum*9+mS`-%<8k?rdR^>S5s`8x3UrhFDEJP9~`@#I_ zNl9=cm0cxZ$`fAY1J0Uo%btZ=@4=ZYRV0z$Dd8C-n!N&71G3nuApW(0#ur8L{+);6 z@t|!WjP<-1c>e|JLT7s=?h5?#gf}m8GNgo-WQAlZf9zI90wuBzHV!0)X(- zlV#Yo>z9J8k#MPmyIMBrBHq{=aGa((_AKN<(2Yyy;kEXRyw+0XB21@&i=P1Sx8Pe> zE}VkC5;*dTyCt2@&q|4l2zhYl+Qrky&R>BOTS$0xTymNXHCUV`N65#&-Mn=6_@R^M zWz>4|^?_c%X=oF`;y)B<{y!Z#dG68;=qR}IP#ve!xxnEHxpxzYa^~Ipg*RN#!%%|A ze<7bH6g*jlZQuP90QWBu;J(m|lsYFh7U1QV&wvdS*&dkr-iZx5ZE5DXRP#F6R^X4?EE#k#c9BEU)vI? z>61b8BbLpbF>%zOK0P`%tyZd14cIa_YuTo~cc%|NpYZMCbpU@SqT6(!t^w<~iY;RP z?61ZQ>)*R;yGAe$uSJ&AZQAQPcl&tw6m)%d9|Zz-Vn&75@QreEKlWD8%q zYHbf;q1m}xkA9=RA%}z$)J@8C&8lXL1VrFq{RiE=TX<9~U9FC1lNN1Z&fVkv0p$F# zZU3pO_kh1$#}-9+gC7CvtXaJZFz0OK)z-VqyS+Z_3(F-!sfYV#q~vak8Z~raUm3fw zyr!0C^R}@0glYQVFVV?DZv*~*(W!_v6sF{4rw*gZ^6rgWdw1>m(IkfV<%HrV$YGY*MdWzry*9~-tTqu0oWUC&MRqK z>HyI=_zS~VGvN_R&crt#JdLAR0CMyp8G zdbf+Nee31~3kmqh_T4@lFl@|}S@V{e$P?_>oA*NC35Hm@4lqn@q;-e!YSpG4d-NSN zYT}F^mZDugeDdOT8Mqy>$XvXEhkMPc<(!30DET2QUK0o>!i#cqo1B4IZ_R1dFbwVe z>Bvd5;4QfiE&27k58!tUr%%KJOkWMyjh8FqqN>rd>&HXLry^kYv5Rj#^e7e#oy)+8 z+8OrWHCuP@H*CVp1*^9mw%iVWDBJ+io@Ke)I1GcG)hTt_^&Bt~4q5?we!21RNtj@D zpjHT%QJl-jmbt!n??Gdy&0Do)|JgefiF~e!(E+j4FtdhvIBcvdH;~*|juG$OSlKldk$Nz~T_F`}pOD5mAT)*H|bdx|WLod4wHu&Dvf)$Y}^1 z4X3U@iKa-n6xuS1v?#>OX~}GX>Hnf;`03{ISS%rQlv8F zt5mN^-T{r8`shbblTqIvJ;zmW8N{JT@ntGjtx>zKM}x*qy}ArE%vxmHdHDRTC-G?% zBSQtu^13#uY$d>D)~6_~x{D~FGk<%97kwG*ODK)i8Rcd1%v`xoO@Vxj87p0-w%}3FxIOA3y z#@0TvvGq6e{kMRN1LHP2LpIhv-Fki8fAH`L-+_4py;eBnr{N50A>3H{4E%i5xM^T} z*n9N+^?PBlbcSkP&prc(j-K!hd21hlm+ZsvI68yc*8Ri&pO1#?4j4c79X$uip@@WZ zoIwri)o(C41;Jf+_u*4Y-N6}AtA-nF%g)zfd|fAze8=33|fyf?R$MX8XoBZyN+D~Clm23Q6Df1 zXS~Tv4Z}q9sT=nng*+AB+o|GAr#{2UJ$~oU7w%d^!*PPjeg>t1XWrBwR=|7h^8Kfx zQpjW|IMZ$5nCVoS&fKs@MpN;XD+12In{zg~t6jYNG&YXPzFe%E+EROcK6#GJZxWU0 zD9M>w&1|V3jF>vlpRV;dRzmp}nEG@g|D#cGOcbmLiE5NIRaSFbe%~?V?0Etd2vP@I z{-+a-tG4bxeGNH;dvS-?=N4!Ltr|D$EUkwx3cA9*e0A}QBc&` zZEU%l;B0;IdhnCTgpBO$cDDST#9(v#L1=Vh2C`^A3SJ#*xRYp4AT~S@#iE0)r0Fba zIu%cplBTny=`3kFOPbD-rn98!EE#o{j5Ls1p+vfAy#{ns_D81M*B+ z-61ASu;o5`qR{ZJUg8C&z4hDopSXDIAyzc81oR>&i>MgDNdl@$OjqyNxOz$Tx-5pE zgRpiH?Cd^e8z42j-I_5^dwrK{^i-yk}>U1)FzkDojA02`-aua z5T_UyC9Q5@%Kw>QgSc?=h2A!!Nk`Licjiu?84FJQCX1~%LN zh;ssSE)NLoiq;&9P2DRLw#$4F=e!Jcn4&EA#bCMb+C>L%t^bN8TEw|RWVO)=f{#+H zB)%o9B?F9UntJScF%n8FQpRGHRgevX#F{887xn{=<3n04NJ>OR-4V1CkyvPkuFZP-9?`{hlONbg-Z!_$CzutqEU_ z{iH>i22Ay)R6+I&0@FNc-s(Spy5ZyIl^Zc9tP-ifb?x*rCp#hRH-LU^@$;QAzIo-w zEXA?jhPARZu?{Yl&nHxF!lc(=hy?F+Ht1eJeSPCRC?bK0GY|-fSod=*ZN-KK3tmXS zh2OTu87w4X0V^F;G;xtK8RSO4h2K?e%2Hpw$fc!8!Szh6LI=Phz36*@CSoy)h?)fn zD|m#6Fx+p^Y@GN#56h~w1{!9)2M|mYQrMde5+_i?<72QkdjHN9u(s|A4DegxjT0|X z9Kl)=Mk`R3(?|ECIQlKoG-GMB9_(0mI(y>qzMWgv`7H(hVzIJ$7G-nywvDD$6X|%C z6dxJ-5JmRP@x$ib+c&RYy<#|y3ouQ2@%!LUyS8r*ShH$rPaMw!y%E;ZFP}YrV9!pO zHFa?d99Nd+FJNhY+m?;%*7%{Yxix3$%1Zw!tn_aHk@`v;HUNXMXrX6&fXs%xaDERQ zF2;kpY$@>`&ztLo!(<8p06ALQ_eJ@e`-AbbvR*8o3@fgJ+iAnf`Ks?#-`S@(Yrz!b z6m#I(#otYzuAX6kr)&$BNfu8Rj~11$uX|Q)$+A+T9^E*180blJrcRhRY07(bTQOlY z0^0*1Dt$ePI8cF@_&g-&67i=3WC=%FmubziWlmuNg_<_LPvbIeST3>M9Nia4Fi}2r z+p#>bmkXPMrE{m2Y0vT%YoIkt=f2Z{;oOWiuMm-5G4@3#~Hizkol-@SbkJ|MP_9^AKcYrvY7!?CR> zl;yp!jc>UnVC|}IGkGb?g-wtDzkF08~*Zfv>!L{?C{V|Bf7_C3*gPa>xF&@AeM_ znnajcoIsPd|3gSLeN_wCzbi51zx%UM83hGbdVGYSH{3(pXywrrIe7@%;9n!-v-2lt z8^ncAK(T&~w$afDBib}<7j=$lTjouB6inL=;~Q+lbSF6>HYPHhwjCsXv<<>b5b-4? z>cD08TIMqI5!7TpU<`B0>;%b+q)S$3?9;Cc;&eq4-_qS}^oek(l1Gq-D0mhBS6=~G z%YB4xJT|-t<9abRs*j%MyI@gg_QsozAgn%k-h5w>6MKC*Z$4;=y#~+g%IqFJd@C@P zO;)W_#*X-`A87u(>Q}7i<-1^heU7P$Ce*evck%Rm7>e8lR<@!!) zmQV|;&%-AWTIi2IpFX&2GoeaO7%AKT0N9l!)M?*q;HW9EwuT|<#S@2MLbSvGZYpCx6~cu$EKD3<0WUO`NXh^DzKR7hr|`PQ0rV4qrZ`=n&|YC<1G}P|_wU@eeCE&&>Ozhg)Vrg*8(?M2Iwfek_8Gwz>{G8gOh-yPC3wofxWG%j{s{JJkM3N6x&5*^UjZA|qbeZs zoShOH_82^YP+_r<9ripbBK#rv{%H6!WRi}!oghsuFPBuE$vq2#k9waDdXOAD$ zy+IY=0wy&1U^v#bw;eot6UG#Rw32vZSIhyYWTVPJ9empK!;#alzD?-9DK^x`L?RFj z^q)6%L~k#E4FWAtHidCTri0b44yMuC?(IJ@$cy0jBhzxhNho**cdT77eRRJLg1y$Q zTIC9wQb7DutCC&ISCyGgVU^W$=vQ<7w(dW5?Lkypt|~Jn2|SlTHC;S=+^3+ygdtCT z_nOr!X`IX8O(v7cRb#K#z_sk&vp*n;O+d&O%j%TyX^`a@uxde&*~_~kx`) z51{J}88Ln~6`m8n!nFa(vNDO!_9SQ;z|J_J2w>B_T4{|_a)tWM+jZ{op?=WtFUL=t z2fGVpAwNfzm4Y!VxD$7*1EBAaz5;2lt-$p}vPzzsh;rnI<{^GR$L^j(x@$vS_h3VOqnrf(Q3?ooV46}5FRIzNl}k5a-yN` zjIo3i+Dl={MY3v5I(GkP;PA0iW*QgyZGbHuAnOTIo9-q>6S=N=8%9x+Mh*Lns6D+2 zXb+!&C6m>ae#mHmuP*Wn*iPW>H^|HY32iBFpmu?0>4v$I7P}`EhA$k7>?9YL$K5v$w?)|6-Ec2=W8ZxCe zP z&0Z)Rg>KvlCailw)v$%cM{0hhmupr0COA(p_tTd#iW_lJz11+%05 zC$ByT3y+9`6^}6DrsT4@cX+7v;XU{UVURv&>Zk$lHWi5}t%nCJ(}qm~E;Ve$Ziht0 zyfpzrazQIh*2WRxp>S;x#KU7hd(R7Z7KychlI;LwacEEI=->!g2`PqcnaKQ2^itAN zQ@|+evWql3PTPy?({KnNz?1`kQa2O`AS_#*CT3^WQ>_6EIZDKy2siig?_} z)ELy~b0ACzShaBOym|BI`}!_euyEm`5%Gh?$5_gU4TLK!_dgMl+04uRc(2o z*^UZ_8^q14mUF5zsdtYX-$#TWl051%Pts}yoJiK@J)(zE7)h*R+ zr#pE;_sGOk)Q>E6b`4t|ky|ImJ&%qE4+~L0QH7{ObHlJ)K*ngozO#-kpSruSsYg*t zbV*Prs*_&G#Y{Gil)0dt(_J!LGF`G9+|Ym3enrtyF6m*F^sq{LSS3BIk{(t`538hy zRno&M>0zldN_to&b69YIDw)Fq>qE&LR>>Sz$sAV699GF3R>>UJzw8{=vgIoUV9RA0 zsK(h|ox1?_A^!Kw_;BFn95-)Uw;Xs|D`YBK5D6y$JBL6VDgd8>5GBY~F!ohm>hsXx zYv*9QwRR~OVwd^Dc@|9Bn4V03@#c+607R7M_Z_$x;8>PH2u>3S!4ls^ixNFnu#q$>~TD)@ocC7Be)jmeb0YZiY z?n0!3r6S>mWZN>O=b`s#b%QJj=PkhO>AJvuN62m!Y}MdfR!}m4^>NQ$@CFu%c`!-L zNK1^g207+lznky7fIR4bK7IM_7&%6V+`Dn{7vMRVmJeat9zzz%Z&1Jk5H<&; zlar+=fG#wR|NPnGyI0T2R&Z`u85*~0!w!NEx)=65HH+w;U%V73CK@gkhk6MGiq9Fc zmh+$Q!X)ty&t3ZskVAynLeM9K*dnI^atur=Ve!Fe~ zq#0(g7a>W5HJg7t0G?`KQ^0K*e*HOlxQ)0AkayCs3=$slFc@YOG>^S;&9_KW!++xr z^U<@H0X!nWK#+#OZYX1l?J*W!ZeP84>IjTI1N=uIi3ZfkdufI|_(^ya>~TTbE@R-N zD)1vP54{Z-qT`45?%2G}uYW0)x@z6l-9-O;o7R+K;=zsK%LM2dxLHg4N#Goi;dei1;Ds+`4W8@mg+Wdg+Dm#ckaP+ z1GfT@PKgBRWKVx(1E!Wzr`8Kw%;_!5vb13`wBOD>1Yvda-jm4qw47J!LKo<<^p}}( zl|K$ev39lJie-!SZe>|&&!sE;*9L3~+=)U0tf@!gv62ls@QoTa(iwSJ0+n;MO*Z`= z-%`WUJZBU!m7b?H#Eg9K(F;O);J)Q$B}F-``2AtlJH4k{dG^3<7?`>J)|fWIFI`@EPRpYdlz`BT z(&L{wR%ll)o;%FPts;BuISdMYmH#^6!ki+^u-Mcb!Zt#D!ZylE#agffc5mo=+A1u> zt>=s-%a*U+Bq}3F<5RNb*ocf(nB?e?U}ELoxzT^Rn;Uzo?Kyt&igmJQ0Q7^6t_uVt zTCPb=kZq%|Uc9nJZ5FAWU(~K7W(tHSWl<+CTrhPL@}E14a$8AAf){VnYL~c_yzrBN z4-C*W7>4`zhf~7{z`Gqica2~n06vAgiDkw(0J2>L0ckkT3b@RscYhul9$0pNCPZ{>< z$DdGPuUx-&^~&W-zgjL{xNsgTZLl{FSpBUBi`9G!c*q}rLiIU+?(CVy<;02O zP!l`1ZdkkOeJzXY?6-Eq)}4C~965IM$dR89A3AjKz=8crogJz1WC;U_&VAdDdw<%u zckiA(yLavS@yDIpx01>7TOTv=K(k{)-3HXv|*K z=rRRmYn{sEv{tpoY4vM=zm=0a*J#0B)@a?OOXtq5TeVU*u-DM|I)Bdc3E%>b6@;7y zD1-}FZW1{=;lp5$sNSLWViQwo?^aL|6chHavL5 zQ)hF{_7Ojq>`pdyb{Csdwr}ZfVtKFRfrPmO-t@of7kah8cmCWTJ}&FSUXwq=XfK$^ zA)L~^Y$x_+-rR4ySMSUUu4`P3`S{RohCQ>~Ho4=$rk~vR&-| zf2`mC+cbZ$kpCaW`Q!avVUhp8`0LH&f5uoWe(Ctp-!%Nb69faq7{+mQl9pjAyZJ z_hQ=~#kOH;E3Qdt@d=n3Km0YuubkL=D}Y5@6!q;Wf)WS1-37Rlj|yB zGbQXOLLrLMAfA4ud|tm=3D+s%MkU;;ggcaQw-WxOga?)Ih#Y=WQ3>}d;bA%K-&F|< z<#2$K-vKVlKD|EVXP|PQPvhnN&jRIeP^26V8L5P0lyJNfPL{*Zzn8;di{)^Ha-ES8 z^8Tn)CCpU993^}qhohBn%u;!O>@hhU2ZUz)sm41(z%q;d50vm@Ih;V>5Ai09mcxm6 zlu&u@Nn!H-BqcwSVw8O)pOcc6{WK-aQo>v%e5r(Ql#t8eWVI5OQbLUqD&J#rRb{`1 z64ntR#6PX?O!1&8y@Ppj_?P_2uRJfbnvE*GlflXO%49ZMELKU4xTSf4WHw+VP^dGS z-I*&dv>3G=nTyqKf_s~bo}&jihq>t7nQ!R@%vaT&7ivw?JKTxc_0}$2#q2t%GgmWi z=**oNmpYL&3aRPDU6}lHW!$Rc8djh)TBO#zB739Jn=DduUX>MS4Q8ncug(fJ21{dJ z0~a(m;x#E~$ZO#)QUhL_akG#Hl6H;c$?M>dCl`4twLlJ4^SNCzzJn*wu`ay8qJnv(~&&GV9ARFJ53Z8MGByQ@k~k zt}1In=c}{E+-}mku}0i((bhn~4K-OqTu4I!H`OAkBUxL#Eeika=ZyDmF`LyUl~H9V zG@7jy5Sc!OPJ9YWS?qG$1aHM!ns>zOu$1E7^g3L*4sTdUtt<)7LdrEIy&SG01C4|CyMFC?ywZCq7O z!QlbviWedzK0qntvJ~f9Z<0nK%|cp9+9gd#6g{pJ(kP^vq}{6Pz{(&6NxMbYo|WZx zqoy5#LaR~JmT4%|wqfNc)U{?P*A}C$6{{e^maHN!VQR@L(Z_DVD&tB*T3fIxoPJ#I zMba#!9wp5vS`+_y11$bNwWv5$LYs4^+_6pwA5$yIsG`C)**F5 z8iX`C!IO+zwY)B~8?5!YmTHm7T8lSgg?h8(#+#s^SgP};C^pt=ycyNis=PTXL{+QI zy+ou+cpY}Vxe{+laVsJy)EK1-yfw3HP33tzs(@vA2Ueg#m8H@qDyo{pHAQEVIEQNr z;&V8q7)fZ%-B7;p)A+i?;ELLJ*zab}p>y;o16-rQb~}8nwkWUVaP>myAADy+JN8Da zNAXA5v2-LQWWg4S1(kc0FO(T%2ZvCE@DQ%_raRyeDg!C1_Kcg#qN?L2t)YS{;LU1V zA|I8+ceiULY#3VLmIzGyB|(+3 z=&9y#Q!9KSyQFW8YKD^C7B!U=p{6}^rsqNxSBXn>Vovl#7<)mjzr*a@fD&NUbj1rs z2|yOzSfN&<>4NlckVONoR0dxOud)q_0zMtGiBD(1=d|cM3Jqqr(uSVCG?bkNddV(9 z71%ZO@y*!KnM#S`f+7Ni$WiqRQRK@)1+~I$E1-DE-0P>DvUx@1r-4A z9VaY}SzSeKL6t&@LgLOvYSk>ZQP@a@q44U2Gze)fMaozsQNZ=2nYpnvs)=1=5rJN! zfSbzj_H_3$j*8Tl>XQbwi%Ld0)V2bIQh97p;Y8NWm4$wC=qZ#@Z532it{2iMq*+KS zNvh6VBcxtPqmX7HQQ4az+f?(pu^OoXt%U+^tS(do3LlD|-t5L3QhqEoxTjpbYeJRS z%~BnxBW|fHloBbX`pArsIw1{08ih0qX%W&&vOceej0vd~(jcTsNK1XFEUxqThXw`; z&O)jUTDvauz=synOcLeMooP`B{=9SZXPutE=kX?ZLzSs!P#cA6h7T>#2HGHwFKf3L z@g>dBA6mpTp$#%>8ly6aT94+3>!~3!>l@-TkVY`+uq9y&I-&vMp;>~ygf=qcAR5aC za#4h4lAt@#yR*8X?w}=sddE$yC@C6~Xi{`&Qp8PhFK&R!qEf{zRIU(8)Y?d*%$cyO z!C{m@YB?#_+=$SG(1K8p<7h;=79oz42BcjyRd$mG4~6^44~6^U1>l(slz)Q;`PX7g zJY7v$IeX&asHHXOv1P1vMB`+sg?o_hg%;+PhNMVpqMbx-tRX4^J*^J! z54YkbJgbg0vxOQ^JPSP(y;k+g5#JC}i|5 z8&O9EaE>ML{LYmRXK+l3xs4W(vf^*!7Dtb|<$G#Q& zju3qju}`6dfxqD(4)YpHrbJ)nbz zEtFon$%1Z;q|qWC6>Os?m2=clR6~v26^7o?%6$>kU>)kT8J!Ytpz5y2j$^}gxDI2>+ZuQU_3LQg-adlK< ziii5FBV~mQh@LUj8+x&BX!oesRtwD@H`PHKL%nk@d5S(eJqjsMp?2^{c+bjnP~9fA zK<|wn149CAkcJ@DES`h(8Qs||@-LJer>D^37(E5$o}Q6ZqC-Ve8oAM?qe7q3s~}~h zp_fGJNdtw?4MKn6J3y%j#fEoots@@7ouq|i-J%~ffktQoosfpQ7`Ahx2S)$U;1qC^ z76WR#QPQGewwo}#{_}zBpABgL&d2}X!S3I)*YH>MjxYd~{xI}Z2AyK)DSByKs)vpl z{rEq2*Q^@RT{DohTQqerCB=;-?UJE3hAyZ^wGg056w@YX5^K_oiW$SHMx@>JZkT7m zkV>zqhWQsLmTIgSDVnORIW8omR25S+^h58Mq)|w-kX9k3Dy#*kAG%T`4MLiQv{q&< zk+Kp=6G@CTDza9%3`x}G3YZAuMv};DdDey$YB>Znyw|X{a^}jg_M+EOnsvklw52eW z#LcBJuS7o#CrFxwv;vRt$ZF z)^|vR$#zE8f>GuVdPm0KMYfhm~XRNEf{$k^uA?n3|bC797yzE95X6- zLB)qGCdXi<9yFg+k47r;=)_Fp5;PU{g-$ekkT%ppDMB0SFwIy~v=$9GhP67AwGl$Q z$=VnJx6;fd6gx?ikeDW@jslCQCi!-xN!+k?L%@BayHimz$`sVRdqNi#`IWvOYt-9!@IJQdBvn{|v~THdT@T}hw& zYA|7sl)g^BD1+TlmoUP4qvsgXbViMW($R@|Yns)@EH&4QIc3ZQat(Bx1tF$vIOdVX zbdiKmo|?e~5wORebVVp$@mpa^-B!xCcx892BVpK7cRZN~WMYS`cA5HUG=$dIUrc_4T zGzn-yAK4ulhH66BOAM`OC?zI%p@DQX#fw=HBSJkw%#qMs2iMZnhZgG`MofN~po#S8 zm(hv?da{^)G-<0*pB-w5hWM3)W@>?q(UO8$ZLwP=U#F+yJ)=SzBpxW0c zGK~`r@U5MB0n-{ST{v}v-$AB)p=9af{1sK;U+)@4tMbaqhNz_f-Re4>cf|_GpZt2$ N(p)Tl|8)KOzW^*^_s0ML literal 0 HcmV?d00001 diff --git a/main.cpp b/main.cpp index a6c082b..843b110 100644 --- a/main.cpp +++ b/main.cpp @@ -61,7 +61,7 @@ int main(int argc, char *argv[]) pws2mqtt = new Pws2mqtt; pws2mqtt->listeningHttp(); - notify (QString("Program started").toUtf8(), "default"); + notify (QString("Program started"), "default"); a.exec(); diff --git a/pws2mqtt-qt.pro.user b/pws2mqtt-qt.pro.user index df2be5c..c8d942e 100644 --- a/pws2mqtt-qt.pro.user +++ b/pws2mqtt-qt.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId @@ -81,6 +81,9 @@ true + + true + @@ -94,7 +97,7 @@ 0 0 - 0 + 1 /home/daniel/develop/pws2mqtt-qt/build/debug /home/daniel/develop/pws2mqtt-qt/build/debug @@ -139,6 +142,7 @@ Debug Qt4ProjectManager.Qt4BuildConfiguration 2 + 1 /home/daniel/develop/pws2mqtt-qt/build/Release diff --git a/pws2mqtt.cpp b/pws2mqtt.cpp index 03114f6..554b3a9 100644 --- a/pws2mqtt.cpp +++ b/pws2mqtt.cpp @@ -13,6 +13,8 @@ #include #include #include +#include +#include extern MqttClient *mqttClient; extern Pws2mqtt *pws2mqtt; @@ -38,6 +40,7 @@ static size_t WriteCallback(void *contents, size_t size, size_t nmemb, void *use } QMap propertyList; +QMap propertiesValue; QMap > propertyName { {"tempf", {"Température extérieure", "°C"}}, @@ -191,12 +194,13 @@ void Pws2mqtt::parseData(QList> queryList) propertyValue = round(fahrenheitToCelsius(fValue)); debug (DEBUGMACRO, "timeTemp = " + timeTemp.time().toString() + " - current :" + QDateTime::currentDateTime().toString() , DEBUG); - if (compare (propertyList[name].toDouble(), propertyValue, 1) and timeTemp < QDateTime::currentDateTime()) + if (compare (propertiesValue[name], propertyValue, 1) and timeTemp < QDateTime::currentDateTime()) { //notif += formatNotifString (propertyName[name].first, propertyName[name].second, QByteArray::number(qPow(propertyValue, 1.0))); //debug (DEBUGMACRO, "", DEBUG); timeTemp = timeTemp.currentDateTime().addSecs(300); propertyList[name] = propertyValue; + propertiesValue[name] = propertyValue; changed = true; } /*}else if (name == "indoortempf") @@ -215,10 +219,11 @@ void Pws2mqtt::parseData(QList> queryList) propertyValue = value.toFloat(); debug (DEBUGMACRO, name + " : " + QByteArray::number(propertyValue), DEBUG); - if (compare (propertyList[name].toFloat(), propertyValue, 3)) + if (compare (propertiesValue[name], propertyValue, 3)) { //notif += formatNotifString (propertyName[name].first, propertyName[name].second , value); propertyList[name] = propertyValue; + propertiesValue[name] = propertyValue; changed = true; } }else if (name == "windchillf") @@ -226,12 +231,13 @@ void Pws2mqtt::parseData(QList> queryList) static QDateTime timeWindchill = QDateTime::currentDateTime().addSecs(-600); propertyValue = round(fahrenheitToCelsius(value.toFloat())); debug (DEBUGMACRO, name + " : " + QByteArray::number(propertyValue), DEBUG); - if (compare (propertyList[name].toFloat(), propertyValue, 1) and timeWindchill < QDateTime::currentDateTime()) + if (compare (propertiesValue[name], propertyValue, 1) and timeWindchill < QDateTime::currentDateTime()) { //notif += formatNotifString (propertyName[name].first, propertyName[name].second , QByteArray::number(qPow(propertyValue, 1.0))); //debug (DEBUGMACRO, "Notif = #" + notif + "#", DEBUG); timeWindchill = timeWindchill.currentDateTime().addSecs(300); propertyList[name] = propertyValue; + propertiesValue[name] = propertyValue; changed = true; } }else if (name == "winddir") @@ -313,13 +319,34 @@ void Pws2mqtt::parseData(QList> queryList) ecart = 0.01; } debug (DEBUGMACRO, name + " : " + QByteArray::number(propertyValue), DEBUG); - if (compare (propertyList[name].toFloat(), propertyValue, ecart)) + if (compare (propertiesValue[name], propertyValue, ecart)) { //notif += formatNotifString (propertyName[name].first, propertyName[name].second , value); QString pluviosite = getPluviosite(propertyValue); priority = setPriority (priority, 4); //debug (DEBUGMACRO, "Notif = #" + notif + "#", DEBUG); propertyList[name] = pluviosite + " : " + QString::number(round(propertyValue*100)/100); + propertiesValue[name] = propertyValue; + changed = true; + } + }else if (name == "dailyrainin") + { + static double ecart; + propertyValue = pair.second.toFloat(); + if (propertyValue == 0) + { + ecart = 0.0001; + }else + { + ecart = 0.01; + } + debug (DEBUGMACRO, name + " : " + QByteArray::number(propertyValue), DEBUG); + if (compare (propertiesValue[name], propertyValue, ecart)) + { + priority = setPriority (priority, 3); + //debug (DEBUGMACRO, "Notif = #" + notif + "#", DEBUG); + propertyList[name] = propertyValue; + propertiesValue[name] = propertyValue; changed = true; } }else if (name == "baromin") @@ -328,11 +355,12 @@ void Pws2mqtt::parseData(QList> queryList) propertyValue = tohPa(pair.second.toFloat()); debug (DEBUGMACRO, "Barometre en hPa : " + QByteArray::number(propertyValue), DEBUG); - if (compare (propertyList[name].toFloat(), propertyValue, 0.5)) + if (compare (propertiesValue[name], propertyValue, 0.5)) { //notif += formatNotifString (propertyName[name].first, propertyName[name].second , QByteArray::number(propertyValue)); //debug (DEBUGMACRO, "Notif = #" + notif + "#", DEBUG); propertyList[name] = propertyValue; + propertiesValue[name] = propertyValue; changed = true; } @@ -358,7 +386,7 @@ void Pws2mqtt::parseData(QList> queryList) propertyValue = pair.second.toFloat(); debug (DEBUGMACRO, name + " : " + QByteArray::number(propertyValue), DEBUG); - if (compare (propertyList[name].toFloat(), propertyValue, 1) and timeUV < QDateTime::currentDateTime()) + if (compare (propertiesValue[name], propertyValue, 1) and timeUV < QDateTime::currentDateTime()) { //notif += formatNotifString (propertyName[name].first, propertyName[name].second , value); if (propertyValue == 5 ) @@ -367,6 +395,7 @@ void Pws2mqtt::parseData(QList> queryList) priority = setPriority (priority, 4); timeUV = timeUV.currentDateTime().addSecs(300); propertyList[name] = propertyValue; + propertiesValue[name] = propertyValue; debug (DEBUGMACRO, "Notif = #" + notif + "#", DEBUG); } }/*else if (name == "lowbat") @@ -414,7 +443,7 @@ void Pws2mqtt::parseData(QList> queryList) if (dataType == "double") { debug(DEBUGMACRO, "datatype is 'double'", DEBUG); - valueBA = QByteArray::number(value.toFloat()); + valueBA = QByteArray::number(round(value.toFloat()*100)/100); }else if (dataType == "QString") { debug(DEBUGMACRO, "datatype is 'QString'" + value.toString(), DEBUG); @@ -594,6 +623,12 @@ QString formatNotifString (QString name, QString unit ,QByteArray value) return text += " \n"; } +static size_t ReadFile(void *ptr, size_t size, size_t nmemb, void *stream) { + FILE *f = (FILE *)stream; + size_t n = fread(ptr, size, nmemb, f); + return n; +} + void notify(QString notif, QString priority, QString inputPath) { CURL *curl; @@ -616,7 +651,7 @@ void notify(QString notif, QString priority, QString inputPath) headers = curl_slist_append(headers, "Config: /etc/ntfy.client.yml"); headers = curl_slist_append(headers, "Firebase: no"); - curl_mime *mime; + /*curl_mime *mime; curl_mimepart *part; // Initialise la structure mime @@ -626,13 +661,7 @@ void notify(QString notif, QString priority, QString inputPath) part = curl_mime_addpart(mime); curl_mime_name(part, "message"); curl_mime_data(part, notif.toUtf8().constData(), CURL_ZERO_TERMINATED); - - // Ajoute le fichier en pièce jointe - part = curl_mime_addpart(mime); - curl_mime_name(part, "attach"); - curl_mime_filedata(part, inputPath.toStdString().c_str()); - curl_mime_filename(part, QFileInfo(inputPath).fileName().toStdString().c_str()); - +*/ // Configure la requête POST curl_easy_setopt(curl, CURLOPT_URL, "http://localhost:81/Meteo"); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); @@ -653,12 +682,68 @@ void notify(QString notif, QString priority, QString inputPath) } // Nettoie les ressources - curl_mime_free(mime); + //curl_mime_free(mime); curl_slist_free_all(headers); curl_easy_cleanup(curl); } // Nettoie libcurl curl_global_cleanup(); + + if (!inputPath.isEmpty()) + { + FILE *fd = fopen(inputPath.toStdString().c_str(), "rb"); + + if (!fd) { + perror("Erreur lors de l'ouverture du fichier"); + return; + } + // Initialise libcurl + curl_global_init(CURL_GLOBAL_DEFAULT); + curl = curl_easy_init(); + if (curl) + { + // Définis les en-têtes pour le titre et les priorités + struct curl_slist *headers = NULL; + headers = curl_slist_append(headers, "Title: Météo"); + headers = curl_slist_append(headers, priority.toStdString().c_str()); + headers = curl_slist_append(headers, "Config: /etc/ntfy.client.yml"); + headers = curl_slist_append(headers, "Firebase: no"); + headers = curl_slist_append(headers, "Content-Type: image/png"); + headers = curl_slist_append(headers, "X-Original-Size: true"); + headers = curl_slist_append(headers, "X-Filename: fleche.png"); + + curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); // Configurer l'URL + curl_easy_setopt(curl, CURLOPT_URL, "localhost:81/Meteo"); + + // Utiliser la méthode PUT (comme `curl -T`) + curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L); + + // Lire le fichier et l'envoyer en tant que body + curl_easy_setopt(curl, CURLOPT_READFUNCTION, ReadFile); + curl_easy_setopt(curl, CURLOPT_READDATA, fd); + + // Définir la taille du fichier (optionnel mais recommandé) + struct stat file_info; + fstat(fileno(fd), &file_info); + curl_easy_setopt(curl, CURLOPT_INFILESIZE_LARGE, (curl_off_t)file_info.st_size); + + // Exécuter la requête + res = curl_easy_perform(curl); + // Vérifie les erreurs + if (res != CURLE_OK) + { + debug(DEBUGMACRO, "Erreur libcurl :" + QString(curl_easy_strerror(res)), DEBUG); + } else + { + debug(DEBUGMACRO, "Notification envoyée avec succès", DEBUG); + } + // Nettoyer + fclose(fd); + curl_easy_cleanup(curl); + } + // Nettoie libcurl + curl_global_cleanup(); + } } void rotateAndSaveImage(const QString &inputPath, const QString &outputPath, qreal angle) diff --git a/version.h b/version.h index 64a4129..c2d4ea3 100644 --- a/version.h +++ b/version.h @@ -3,6 +3,6 @@ #include -std::string version = "1.0.33"; +std::string version = "1.0.42"; #endif // VERSION_H