From 0baf62a26178af97984b472f4f044b6351ea77a0 Mon Sep 17 00:00:00 2001 From: Ben Reaves Date: Thu, 9 Apr 2020 17:15:16 -0500 Subject: [PATCH] - Added multithreading for on/off input field keymaps --- kintox11/binary/kintox11 | Bin 259880 -> 265352 bytes kintox11/src/Makefile | 2 +- kintox11/src/kintox11.c | 279 +++++++++++++++++++++------------------ 3 files changed, 148 insertions(+), 133 deletions(-) diff --git a/kintox11/binary/kintox11 b/kintox11/binary/kintox11 index 49950ee14be506fd8de40887dfcfc3378f8fe60a..0bea209d45e7c03958d78e9fe428d544afd6aa6a 100755 GIT binary patch delta 101938 zcmd443s_Xu`#-ubGcW@KGYBe!D1)Mockqg$g@!d47Md2`@s4Fmie(qwBvOnc1#S)W zYkjG#EHy1JnVDglXqWF7OUtZ`N^?vrGAk-;&gWfg?{Uxk`km*0p68tBIooIRuJw7} z_1@NHuf1nxyZHxu#d=3oV!SX!U`IA5LWN|i?(y94!j8PIQ^CROB8Zua>AW6JcW>bM zZZ%F!R2ns*Fk0V-<2p4ej{wVIAv2(fp|sJ;V8LPIRBtDtO6^?HT;A1=(>T45P7*lM z)z`&G~@ZY6!}PAR}6nz6huc9VYjQl$hV0Ps1KXlica=d zRlhPPsuLpGiep&)OEtsPR_sq@wb_&?u2-j{-j(roQCZE5P83fw^Z-L&XR<}+L~$;w zKgf7v)at0V;uDP59F-_8V7xn6y*MHr7KlHS{ryWl9??g2SQEweto|^QJQM-%||P&02dI(wRwq!SKE8?_tI@v2sr)bC#7qV&$!@ z{46UkW#!>a!+V6N#nwdCVo6jzh|11nzGE`I*xz3nl27F|5O`8!QLu*?>kanz9`?5j z{Z%(ZE|_=99iv68Qf6aemlyy{plH!#IWei>+S#YKCfry@EM-ju@2~DY? z_z1L&gS=nEEt>p7O;5P|+-_(W2SYXDt>AZkk<^ zyP$YU$&CwVE?KO;X1iV~E@8ahix>7z7ZyxkuyFDG*|UoU4W4%A!g&jX`xebBnJrA4 zHha;c1q-LmUpRAm$-IRNf-IlQZv;+i&)X6%fWvE4()C0JF_JYIWXy`j;)*O_T7w9tD9Uv5gX%w`=)md1xg=>G zR;LJ|l)S+~`~YYu-(=uN2oo?0h)+l2ym>K-0E4Spp9{j;>L;)|ScE6EdIAIlAyRl+ ztCu**pjp_W)#Djo7GBfp+#xAwP+v^-vC^b1{E6Bk3mo=w)M*UYH3q|TKVw92hv8#1 zJUtAbsNtDm_+1*F9fq&?jN2DHVT>BBL4FwioQ4;K;d?Z^FbrRMng>u6hSzC$u@c5O zsxg*^;Vl|o8ipUy3|EBVXEeMj4F6HX>oi=^`{w79+|$ir4Yr-(_>M4qw}$Tx!}n`= zeHdP^;YUMpMQG3%jiC(T0}c0w;hVqW4z+~gZ)v#2i6M?d5A1ynPYlCPF&zEx4r83v z8f1pyKWMlo4F5yJ3&QY-ueqZ|VR(XuFD0DDpYEwkV^oAS=%wMcVR)8?Zw|vf8ooCS zAFts@4LBSBGc?921A}}o)^L9q{*Z>ZgyCKdw zx<_Ly4QsGm!%M^Pat*Ht!`EtfRT%!HhSwT#>i?HDMxBuX{0$A?9EKm$@Eu|JNe$l{ zhJUHy^4&~;r>*WCItZ%h`+s7L zH!zCYb5H5!l9xEM*nmq0`K1P2HsGZOoc7B4QNeKq+e_{CUgK058c>?_qt<|Hcf5>M zXTbGwM2yV_JW5vry2F4+Yu6vf-fLj!cl*SsH{jR~2alr$JT{05LZbn<8}L&G+@a&t z|4jx)oX!CC8}L>JyxD-q8}Jqb-r9f*9jRs;E4v@X~10u zyqy7e8}MWUo_-Big!TqT<~4?pV!*QvxXXZh40x&m&o|&54S0b8@5FFz{uLS+X@&+x z2E4NYFE-#^4ERz5-qnDY8gRD(uTTt(ZU#n`0q<_WYYli0172sqdm8Y~2E3O6-=X0O z^?h#xW3Qos_RNfN>kW9iLH?)#&oJPP2E4BUKV`uC>GyxcZ!$3Y8yffx_y7amY`_N^ z@D>9;$bbvl%18lc266Pi#lRRGWZ*X0fDbX?i3U8&fV&L%Py_BZ;KK}fI^i__$fN5F zj7&p=>kW9e0nawz9s@qyfae?V5eB@#fGal`7=;E#jsY(+;3Exqu>rr)fG;)RHyQ9! z1McBCpMMnwMy{bjl>r}Rz-tZo%?7;Afae+T%?5n50pF2w+qI?f76W6ip~0;NyxxH4 z8}OqBe9XEr;=*->V&VUf&g3<&=#+zac;qRsFOdR`p0dN1L(KocfWF@g!sS5cemlFn zHkd{hQT{Jq81rW!Q1!FD!yiSI_sbWC2kVsY%NH_&b;|SQ3#ob?n$CTV>`Xz{7sq$0~d+|Im&Cd`S+)~oo<1;@29;M$JXtJl2 zB5T4SjY9r@CO=@&dG%7acH$J((!E3Xk-&r{J;r;=h7Cbm!Q(wwV)OWh-H3{R@E?JI ze^ww6IAU&pUd`{`Sv}o7S$t3Zt^1A2*{gxTu|t&Z@o3{IyOi!-_W3N2&(xW&Js$7K zmW+De$j?198$I(r{AlzHhv(pTu7iI>9BfJH_O`dtQwx!%{~_Q#e(?8*_1%tp-<|iN zA6vX`jo!ECy`4S6F0clEPvyv_1JEzD_jnup$KgYj$2YQNmZu-LTVnR-0aS19l_VYb zL!H}em~`tO>hrxiNfZB2-|KagH0F0Tq4z+k+f_BMcgOtNwd87p|F4!nfLtbB`)J3> zY!GKAaez|!x8ImlvtExxdQfiml+}yGf1yP^(7S_l(;w=Y-f7bD-&IqeZVD3P@h&?B zxl^#k$K}ig1(-ma$!aAzw@i+CR{v*5TK71q>H1tvOY}NlA%y0E*S`A z$6-!WhOkLlH%*z~zn|-3=~%{fkwc)B$zo?*`*+U2hvF|YX=PWsHm@S4BFU-){S`C2l`*ZM1zeCE&ax6ChM zuvOaLp~x`59&G~gnb5_Qi;OjTFD(28v!frk=0iJJ<02h`B6+{GfsBJ>yyhavyhS?w zkNl?2?LM^YiE1?RHt=p}M}vR{lWz$P=l*OOVL1Q%n|ghZSNjEE?6Sw+v)R1L#DxW1muK!xeQ?pRUsJ zpVbfgWVa?0-b3)A(Y^<{sYk{y{i1eE&zbT3&lCWS#4F_g#Z*t(vKC=UN2H_EyDi;S^J#kqb-alUbEWK;1Bye~_ zcKn2)YF>UuO~|-0^5SD?@WD^&^o&&HC3sW1tWhXQ@%TnJ`^KMu%Sa1#&RY=Uty`nD z&wTz1LBK>w^Z3SNF*?Cy4h3a?YS!I;6w)mD<@HNKgg*`nAJ&E2`6ueqVR?P~XEnL+ z?cIkEo2L3K%1BRMYc5^3S+KAC6cGHJO5v<&RyX#|NWC5@^Nu_W7n_(1l>@qf8ypvP zKdC?T?R0w&1bwkBg!t0n{g@_1AuT|#RJQD}K&v(_F%ACWA1U;)pR>?Yk)vAQ_^n_z z@f^KUspsg9AJw`2hNo=`0#Rtm1j7PrbyJSMM4H*yF6Lp}ze#XItn&m4=-3Xt@OvSpWqk{&!|t$tKD_IFB; z{-nOve~8i&jrscK){~@bcO8iFB6BpO-k*dFmoWiRi9BNd7#anwzI;693AMozZK0*L za=_fxEV=$&=uZp{N$qCg8# zxc;|~yMA*o#%-avf=s{0?9G{OZeMHJs4?R>Go3S;0vON2orkyl1Xsrz0_?)TQzyGI zBdi6`IEH=>QQtb&VCLH%S}(ojnIEf#nF&@GX=x~TpH!D+t{s{UL*arRGLB~6atD`9 z1VLT|4hkH!a0U7Qpr9bAp!ozd)&g=(K@$i4CzuC?|Dd2KsGyO{o(fS=&%vWyK`~Qs zio6QOx-_U@2bbL&qM(k0n@^~3X007s$`nw_t|_PpDyZVJwIK>hIat9JRQ-d3+Mt4B zF1s{DK_Lf=xPrQWP_Q|uAfL+?geb`7py!18{g8E8|ImJKuzflg%?xSp;-H)7u>Kzu z91SXPaM{EV1p)^xOo7r!!VTpv5bEd)^DvP-zI9Z`3`i%!m!fFg?qg(?(tPuAQaK>K zjKBu}f;7gg;7mqGWKL~A6xQeHCxd2-@fB?d$%R_WM`x z=FOd$`C8tb5j2nLO(@ylajm__YkT{e1B#+)*v>W7aSe<>!!b6gNkjerrr{<{!2+&e zGgrU}Wgw`4<(a2|xlqQkAu7IdHhyb8gBf67u>zaMhVn*j<~EeSua%6QRF9sz)=7M^ zVb_a!c!q;c@^CL0sT{EFVFDZc?{{R(Vk1)-ut4K(=iH^7%Y@M8(>}C-HNyuV`ZkHRA@7G-9tR`UF})q z+Dz5w;u$z|MHYXDAz{;^ATW>v?jX?lG+q9@<>^5rfs14UK-#EjgRo%Xg4sv1O*F?z z@EXui-h^aG6j0@`|1L$u<3D9jiINbKeGl#nTc0?@V*l$1kxH^W+}nJBvO}S^JphB<0~zBwKH^DU%~d=dR56LGDB&uW{ckE1 z@+12KCD)wGgknbUCO0#(j&h*&%o-*}&mvmx(+AEklo4|$$kO58jt+ySNUo^`+XD2w z_&+pxm?qi=_NJU@gT6ZkT0{9!^C#EG=4dk^>_@~8Fb&pPFSN?xqRcXlk z)){P#I7>^iy?j4e3SGQ?36L#kLx69*@1jAWZJx^y!#(aKd=f5f#veZC%lryGTjN_P zJaT-K1+t`{rmI1iyJVih6zTU>(qh4f{qS#SzLNHf1^*|jE=7cUd^fivmUQ%#Df;@< z2rY*7X&W}Q7fn^{i51`Ua*u=F+E+XP5hO?(_cYA4K1qgK$kWO(80LBg_2ke<_-2Vd z5*ldL$0)vvfrm$|Zp2MjYTr7F$zxo0_6FOmCDuR6Vdu`)yl@??ZxXNh_u(m~p^z*o z*Gw@n%QdmBT#T;!28Wmwtsq*kk8mlDH25RQgNAYk2zpt#kV&J^`>E&P1^seyO_zQ9 zyB@{2j%0Ba_nE57S_1Z!)b9VT#kB_iu!uMKKWm~f;pa(WeN#E$krGnb;D6*Rwx<|_ zjIVy1XIw!l>sf@Xi81B3qZME2)9B{&ALSbSiLi9>R%p!9G(xcPpA~itD*TAH(o9Z4 zZbK|L_#4Pt8A~B9jlt_CrOCcxCymP~*G3gzYS^XxB}9(Voejk-ZUlS@s>p;7yn^M>g-k2#8R+wi^-!~zXXdMK@r->=9jz?_d~MgdU8PR@r@{XKW3Y=39vfp& zTaTDuhc@vdp2h7zL3qo7KmNDLkhfgPW){jhS;vQ;10iStA6NO7hVs1#0S$!Xi)eo= z6Cz4O`F>J`<6@eRm9fP5R=z{w1TT7fc0pyI*u45Bzn0#~^q3Wp96advneRs_TwiCV&nEd= zPhyG&^k>98jFC6#Ix*6FFxSg87ho*nnidBh{Okh46}wOhQ9Qy^X@36=@{cr2OxJ+V z5I7t@%Sf2!?U=*RycfI+yIL?MQdDK!za(kDnmj&PT&WHo-(Gxv=N;oEQ7lv^-u|+< zQMKNYA}VUPJNk%Y)d?sMQ18dzM0Gv>{;9rxM@qt(yK!sn{mnml0<>=b3q3cYQN47B zQ{1jb6bumWSBDn#5T~j|1zn}P8`bK9=^cms7az9twx_J5o?{>S4j+dPK7Y9_&o?(e z&wJi~znU;1P0UdTPiQZ7`9Lk0&{h0PEuGLas_}gU;8R@w26fMbZun(R(}eDA58nmD zz3?SD_M!DY6LeyS_@bIRagtb|E}NJYodAPnStfgV^ncYu6Q{(jy^~xH_!Dj?`lElc znlZ_ZFegqLm68pfUmcHWl9y&FKW1Nf6Gj?)*bJqu?^F*>>MUMXFHA}iPpH<($>Kh> z%jE9jBkGvRUF-|z3Ha2L2&j z=PGDFaG)ptkRMs^;-1>ufa|P%<&RkWj|jcd#WRWop&=*DM%Vw`!G}wd;m9~(l&ST{ zkPwKkt)~x}AmoocroJ|1nOLU|nEJeUT>X5i%l6wGroQZu@RMMPZVROsZY$Sl&lBT&UYReRQ(2h z5Yu3y&uRl`iTOM1`{zN*1NhK#F}R-c?@OXR7$LvzXQ6w%z21Lb?RZzmu9-&e8=O1K zKk{>62Dhn^G8G^?SpgWYSH`+so$aKseI6dy9gX* z4`!zzyY|P+$P@3k{s;G~o$l_A>3qxGZ7{B8-<>CA?NfK&eT&p%pDHi7U0S?PowT4o zrfAiI4&rik`-0Y8Jg?J8&Pj7&a4u=e^*xl9=pQ$djoFbIXZ`D6gK^XA>UU`NvYN8c zBboQ9^A>gy?^df8rbfQE2ke1+)x8T}kb3P=rxzDW(R=w@deaSwBDAI`mzxEItDi~2dA z8wc)xIrp2ftnD9Y;D1teEgs|?K-`m>X3l+yxX=vlJJ7c8bI!eib0-q_FSQ=r@x=X_ zbAKMgG)ED4o9ZYTVM#Y}uez$_RdKUAY)LyLb;6PqafW(7 z{@$dnUy^OVGvBz>Oi}$yvXfrE6&5f^Y*|0`l*GAm-P+Tj1tXX7YZ(+|ewE9U%VHZR(Rt zhltJy*8e<;FL(3@MvfyUc@;sFJTWx{%W!nOQ3mvzsdmcC> zE><6S@OE*ldi=pI_STRn3&h?R)8DmM?y`v*U7H8i%T#m7_{61=1aw zXtACbjitFPVBUvVu`d6bYrpXmWVD22K7NkNjD*bSncss8&LD7b*X6$en+Pf`x9l$y zyK?cyCn1tRjo0(WZM`#bD=2Dnkot|(EPYZG^Nel%5#XnP~vI=(ZnqDmC2 z)GxdfEH~y*&zk$F*R5J5o>h;ns*LD!1B9y8$-XD0#ZT`1)3;cZ4wR|ImG|O8dA@QO z#&+k&Zg2I<3NmAp?0aH1qgatAsXx`WRX060BvQE^3amBixyOELb^F6XZ$_i2d9$V} zU;4aM9b45!+EuDPP}MDG-!QbvS;w>e>~Dd<=$XIfdH+T#H-MApz3jiEM$h)&5&I%o zSN)By`WPbjQRB#UJI`006vb@y%{4Bu>&`Q4x`<(r<$^Mx_C)_cn}=KYj*alc~NxaZRKI@SEpZ>wAb_ zs8#C^NN4U<^Eaf4YtOlcNyu$M5UgVI=c_)nM9Sjb6B41VuxiN*8q;ZqPegcY!=uAO*6-CE}! zvKNBhcd(pWF6N7e27htyDDQXPGdbQLyPeJxzx7Y3pxoYn&fg4Ie3|}v32Y|7!PnH- zr;kbImFlNY7q!{~E#Rib(}4RH+$8n3X9l%x#Xc4|g5}4J9pr^VOj+>8sZT!>-#Qab zaM3`kms?RQnm?1(W6!jcJmu=Q&-BWk2aDzPOFMhtIY6r#?%ld#{qg=tle+y1Xev8w z$@4Z%89w>YoGSm8mD~g9qNlWUalGx>9P2q2p8uAWYTdIPvsOJE2;_KsOv+)+hEEwj z^$_f@jnmtVz?O}#p;$cN^}By!!*m?V#GdM3&-N61sNFY>lHBF$y_>p;m1^ClEGe!` z{bEyF$-Pqjb<@l?AHgrJ!^#2?_qAn z@y}7aKEGf5Kt22X649qle4&T5WuE%z3!jU-ch1^umc(z=J74N0Jvm2R|5B>-z#Mh| zOM_gWE(@-n6B_Vf5l8OKzYn-UbG+&PeQNxc0x9l6_3kZ6(ze;Ecgwx@We@PQVM(1d z<-$TWcI%B|%g*sz9~MRYCVN{KQQ7(Twx6ZzKf5oey0eGf@VlV(E&4;3e~bUS5)v?_ z(b8=_Lg{NlH(={Z+knw(`YXe68?oq>EJ?Xf-Tul#DfT|q^=fJY`h)mwK? zL`*O3Y%lIskM0~S^(ay0UDrirErNfv-1k*)-qju{o43n-TRVUlpEv!Qlh(~ulAS>V zWqUG`_92|0p}TaVr?Mo?#ui$Pl6Ln{kS(Sq%W%C8@wYa|>29oQo$A0ap$=JuEr|1gW7pnMIxQbBnKg(M}lv@6U z1sg3B)oHtX3|KLRzOiFpiPaCF`3Bl9kP^uK2)V(3EV<3TCvI;fpaZmCA)v=5sc-F0 zkrqr+n|6Q{5J-<6q0QpIKlW7LDq**H)tY z`tD5=abvJ|o7nQK`E^mOQ6u(s>iiM*2*YpB^?p2je6IJG;p2vTua5Ur_Bsssw!ChC z;ajd2|G#(MvhNx5ntIF5{%>y)#YO6%cRc3Ki+grntY*}w?d(+_DXCu`@`{2w=kSN= zBNr`NxM;|d1=DBDpY1AH=;H4aaPhYk^mKKe6@?^dN9oGm!_}&H{A1EL1_Cae4x9qc z=6?kOO*per9)W$xiI)Na6KDd?G@Si$ZUVOK)j(h;&Vx8l59*nQ`2l(u z)Pc3IHMR%opb674uRssaKpddMW?~+Kz7DzrH0@zH0J;`e{B-Pmu7FMk-BgZbgPs80 z1$q|rD5wehh_e<&5c;D)Klhvknhd%YG!yg$XdY<7qnO;FE4_ihRnT#(fn)J00WAbI zRiYO`b3k{1?gBjpdIhwF_>TnwwrDsA>H^IH?GHK&)T5wq7=;qhm5-zAKP zWTTL_HV_yGS^`=OIt$zC)u3xZ>p;(f?gu^b1R?`9)dT{UKubV{ShTOj(gvCXIuvvh z=s3dHWBh{d+JG(wJqub-e5}ZqKub0Tlz`g~0W8l$K~I3@gZ6(CeFi!XbR+0t(EXsh zo`ON#s+|B$08RTh41=x&%^@7LfbcpDGSCvxQqaSoYe5s9#)JViJ&P{EV9t3?K?4+K z;m+&?XbGqvbQ9=R(EhmP>yN$TTF}X$yFiOU4}-1*O~WncF5-hWfo=l50(t_}fnD#o z_b^644};c%n%;*zXaeX_&>RJY&rz5K+DyO)@C=*jE1;7>*WzL3CeTfwdqEQ#kvh;_ zpgmh7rJy;WS3nCu#~p`bpr#KY51Ipd0(2IrAG8GYD(EIq2c8EgrcaQ16w*M)ftG+4 zQT-HB1)2l8A9NOIBj{n!7SOX;i#+&Q>fzIf4Ak^lAaEFT7id}{_@H^9IiJHJ(6lcw zJ3#3}_p_iYL9Zra{+~r5*$KuOL;#xbB_amh)r3evPk;*8!rjSDr(Lu&r7Pnhm-ObR1~^Z!xAob3k{rL&^`MaD^D>kqPYE64a;9 zwpOQ}ifUhkHLwqDF>)d?Xb=O={y2+oLT{_(r#fZ0^N>bjX$N{nD8cCh-pKaeoI%^c z)i}RWe?Qf(%T|;Ij)mLA92x6)M7kj+LVDa5iDii--^cm#Sass3NmDPOIQ%xGls1aG zsN7B@S!7Y5hpHpT!3iTDIPu)T29FN}V#0W2A_rLa+tt&jk|JiIxbSv0>C>c$l_;*f zL*0PlCKUJGq3%QRFpALy>gi8AMEFt6FHrvmYLNtCYk}I~bW(&H#V-of>rnKdxPO8= z6~!VH^CqdwQLI4mxk>6%r<1yEMp48ypr}2(&;u%ZTzQA4wHMgMDQ;qq&tvLa`lnpGtFZE+OYU9v)Ftx@(SPrmKU_%%p2!)^pz_u<^7kvIm z>y_wgtn%#0!`~|;u3Epi*_ngOpny9+3}SX<;%@;kn|k*bgPe5nECe@;c#~rtX&{?{ ztybUsqLb2y(g|?;5*KMIlWvWQwd6&QMlj@5Gx%4)$MuLEgqd*FYzF4y5R*#;b`==L zIXg(MCooIdHOvhx8(0FcF(h?ktUB#Xd-Hr?9`)ffT_b8y`n*hi`AqleM^WsFODnEN z>>!1o19JnTG95I)=n|d=Y!v}F#yVC@(iB8M&&8Ny4((E{C#Mj28n8Nb@R!q+3Y3Q8 zLT$9N5g0ukxB-&FtXKzGqYHltFuen41RMrd3~U<7d177n!t4krBKaopc7bQ?-z&hH z40@p>La@+ORNFVT9Ys%3^05`Ti`3yDHJQM+0!w8GA6$9Bjsm-hFxF$za2k2!QW5CY zN7Us_ZIV`^*!XB5(Am(m7TBdn)t8&vHsym?1>2^#@iA zj79?;v~qfYJ)}N#S4`0K-RvEUtM-+)Y}y4+YJ{?n;*@9r?gY!mwGuc7$TRg{1&5g@VFr zVD74G3Jal-wr;c3-QP@$FkwMzu2z%I-WZXO;#pOlb9TNm{nbZO!bpi4{94g5Z+U$A2(>)=KHhww4n1x&T^gRKr5STth$P+)X z`RZTawl$lu<4aea=WjNTLkWxj`5TgGH|XCN2tbG(>G-y2U39L zW)jN>kMDi(ionB8j~%EAP54s+42cY4SAZ1*>#bpA%z|y@YPJ1^t{MGNs;}2(rzh5N zi{@e;@T0(oYpp25g}_Yek_%bA>QE{<7zkjm#SXH)3s|WEqgCK2u+{1p7dk~WqjdP7 z8u8sIb2dC)tB(KfW^)xvY3g&|bv5rtDN{ZE-6V4|t`Ze$#>GzN9F(fm2^afCJcQET zL+YA~UCf(NoUgulv5%Q{tQG1{7vs%WP{P&jQoD!*EH3qj)$W%Dn)6XiP-kDd$-EJz zBK4I^Hzb`U_K|BTqpofN_Wlty_WL#w3D}c19Z|b~-!Wn+ibosNvEO$z&qC3q-v519 za}`Rn)aSnMSKWbc5LhzhrjOwt5v`H{mx3qbo5-}l?^M*^p{Tzzam8okvmofNMATn_sK4@1f5oBxN<;k(hWZ-|^*0or;d*Wm z^j8pawfMruNnX<5G^oE>F!(0HGn}u#DDZE~{q=eJ%+X()r?0-z-*7|v zC0Tz>o_>wdUyql<#e#3eb7^(`ZFs4ucOguF4PHl0K!5$6zV^=e1~12Lqh|l<9{Zyv zB5E`cR-d3T^xo26Gp+a5=6896;4UFied*5*QevX|?w`G-0-O5BpB?aVoAYX)R{7eC znDmjE8L3XZ+M%OcON&0hN_j^HUqH9ns&2S?T}GqU-+@42A(_<2bF)@Y()hn?^+K!` zcgT3}G(v5yq^EN?vo)Hp(L#+DYqV6ORT{0+=njq6YqU|LO&V?1sF1^B1>owY_(I$;H_s5XC zPPVxCkkelkslOVsO(XY5fAypGsz*V8v!nhd$KabAHF^EbjQWch^%pPdFIv=Jtf;?8 zQG0Kq5`0mj{$fP^MTq)~59vjRbo{PS{XK^IdkgjV6zcCK)L%oWzjko$ao%2kt)TuI z!5W5R|EIqukc$a|{(37V^YCstevNGENSiQ8 z*w}}DOF~E0EJlRruADXvuDMPW(`;!gbcs4&%>qJxd_hNcY_EBWkfr;B$nKi|5c14_ zbfmey=5In~f2t$JhiiIEKqg~(=C(`UshLX1taCadG}JsMi5-+$_{XoP7I8h6CR;sS z5786xoQ2oMehzi58M2QXwKn%w;??-B-yb^SlKm;F;-(yXgTE zuXRp^4$}<|l-IXo<#P%(sY_y&T~vN1h011&iS9|I!>Lq@u)N5OM=XFuB$Z7+qnG64 zZAYMNc@tNBhskQWfQofD)_YU5Z5hgf^@1H0Tk9H<5-ip5(qXn(;&5ePa^@(T!Uf;M zCc+#Y=VgKsmK~sxBo_57NRvNgeOM4jypaBT15+7R({9C>S7 zPBPDPnXgIaWiCSxsUo&BnV9FGARYh0=I0J(6B zJr`t!mHt|9wa{zPl``vgYBa|FJZcqI4^<|_+yjX!>q)9iYWoT}wbo-uvURd^KPq+B z3W{|K^JlYl0mU%Yx(;o2SWi%8TGVb-_F9{IqEg75tGA9Oe`Z+ThJwR_=~w8EigYU9 zL6iL{j0|g!SVvcMd4#1L5)l?+uC+RXd7YKO2s4aD#Ai9Y-h3`>ay{I z?cYdXv^Vw)pa|CCw%=hUdKE)#o8VxyFIFM8Z7LYHBsNO%pBM;2JTe?7L|Q;>P9)gY zE{P!96q4(}M{^?KDGYBFY084Sgg)ZGAQit096^kK0PzY^d?Ln(V2Y1IUIa`0U2sZp z#LuRhEBd*tA$;*!*Z7+n4*;8^Og6;$w?@I!9Idk4@EFtfiLz^Y$-AA zha>hpUha%A?4x;kE&{g~#$1Gb(?D3UPv_;e@Yr6&%96vhjC}UMWkkEl89)>g0`VX#BEEO z0B!&=^@DcDzhn|*S#Lx792dJ##ce%B>MpT1=~nu0O&s5| zN`F}2j;iS-^5ytJK8`Y;+x%>Ogq&!01H7Uo;4wqv&h@C4fa+Z^* zU38E$^PM}0=it0z=NA~0jyRDocTSmVt;9&W8Z5=O5%wc2l%)vEYFJO|O`76GnI6U` zCOQ&DYcjO)6gqhd6~W26C5c?ayZKZ^;kgJnscGYjK@D^(m$AMt+S)dc77WdB!QOLUrP z)cwY5$`09?-b)G@z{Z1TCCpCAX0Kg0-{qUp|M#QT%iGM$f5?JC!j?R<@N z{v}%e17AFfvl|5YOE{C5G2FJC{=}me+PT>0@z+o!9m{ucL4sQZy~t^~tl8 z85mDe@|Qr5I-ez-tt878)Eb>H(ok>7y=3JKjzZ+wZ{tmxA%d>n5@NK60Qvchw@cr_W^^9eC9t zwqH-x6fTVaN61AUxwwBWQE)WCdW3}rUmF?()V*zKT>$tN$`KYC{El82UlEqmBt;WU zp;&dXb0{Y*r!MG%EiPz;WhmMt7CL%K)^AaFE+zkaYyLY2&=BauW3xElq)5{xHa8u7 zWy+AEsac}4kuua*Vk?u2uT%Y4O~HRx(SZ`(pEJ{)^gO~bK#H_u-N;PFv>wRKWhdWH zWh;4|4N~1 z=zk4yWJz)iIa}zsUb4~_gGZYk67BGiXh(!ZdqYUHIU&)GmHJU!Z^8xfvkv?Tw|!yF@7_tO0bk8^BDoVSILEghO}Ot8jLfC zI(eETe~C^^EON|{totxmc$hOo!kndq#5p@8&N(4*&JBsPC?w8#A#vVmi1RKjP73p` zkTB;n4*tIgK6>Ztaembk&fm?O)FJ*LvbA zNef_wBsU=Gi5>@j$5j_J{n$0r5PDov*y64&9#tWxt3yn$(M^kVF;k_;f8lE67Ls;T z64pxcaF|HUc03_jvtgdcSrcNcHYCjT+!n6CY!9^|#Mr+yW3>Ei)S{#w+{k;dC*NB= z$vNqKZ}p_a_E!C!C-HRH@f7D}3P}m%@4qFPZsCxPrzPvvpo7my3f~U$rS#bl4>yHm z<2l{Ii?l&_UW)FD_0dHRzF=_hg%Affhd8)7#K9LiPsw!7qq+GKuMTy7LuEc2yy8X^A;#X(jV;Ah%yC3F#!NTxnwz@pDA$;td_Uqp%KNN8A5_OU zE0YhZW4zCXI#{3FlQe=*?N z3T;LB7%@&zTS6KzdxvfLICU{J-%)&hKf$YZgG#Nr5vB`zeER*2&qTop@(lgdU9UA^BGEFFYaW4kaU%*y=D1J3M|u+E?enaw!C9A zcpJf~uxnS}kjVOlMAl!Aj7_5fA(0K#B6FUim1z)HiiPSUS|c-M`88w`riaMZr-G)l zbkoeTGBm{Wun^PN>84pyuMaVu9b$TT(6pB>4I^YZ0|v1l%8{*Ia4q6dj|?$=BU#4y z(>7l>g_!o}rdbc>>ZWNA=@=zP{)Twn{8sH|ncb?T^9^VoH-UZ6d8}-X(XzaS9LaRt zDqHJ@D2URnAV97(|gn^iLV z6d`4?;PA;-hRzopt7Xd;2nbR6_(LW3p@CJ1qQ`@8=yekJdGvVj3Th>d8KiggPp?&UEL0X#-s;n-{_X%!)ZQZXc6n@(0{J^5|Pdd)2%2|PSymlgR2m``*& zHpWdR@+UXoK(! zuch*h{j^zX!_-Og}GMp9q?MK{w5o$IT%*crhdgFNNe_i-Ev$g&;gUF|T+>Kz}*_Pbqzkjfs~{fA#qQ(vck`mb!G zjHkAXrSab=+b*GXD*gPzaa^|3v#-=86xfHdeJ|oookZ8OkK{OdjFS2?aZbnybS+3- zLLGflw$n{_s)v@ekL9*>gPYo&E)}21adf|!`U7R{lpIfYaH#{S&8Ko}y2DaZ-=OX~ zEw`atmegGG?lU=-ZYfe9r^J6Q+h~)YI+)abA;;6UJ9QRu&d71JElwRpl`rL1v;|G= zP1>4d2kqffTal+<$!%yam6`#k9AC>$+TElspf=ygtTu97ii1O7JB)mL^*2ENb(;BHQWVNGknW4IdaeXsD)MB^Q2_+t5%-DV~l`3!3Ff z>Po(rEklW|ZEc05WOCytS+0R-41HnQQEXEvTeCwMPCW=gIL7`ML$DPN0N%7uM-SJfq9-PbQ%mpVpk=m3oxtfa)FJ* zbQ4U9-P;!cjj&9`UkiOp+#&X`JVJuAF%rd|>?3l)x{WHmSj8fAdKuA+gCaJPm^`_Y z$n;5~R0czxwm^xPsWGo;|C?o}+i3qI4z{m_uvPYGZ91JMO+(DIQds2z4NaRRh(n`j zNwCWKI(DBR4ztk5ZB{v3$7T!Sbr$L)t6ZpSq@EX#up1+*+@hK99B+qx@gb2}>UJ4kXMjAAYD1q2xJg>xLR*@3dmZ_Hy|Cjj33BHq-V9LXvUge zR=Ra2sFF8xzeEmKit)Tf?N+7hEF`v4OyWS@R>j?yl3FRIaHJVZ=>cO9!n5r8Q z!*e8)sUb@B-YrUxsT0wwI5u%2OzVOx{8QwCjX!}gRez3`$oCvRg$vw-G|=IW#i}mi z<0?Lyc0v1h z2i9Lx^;U@B3h^TT(BSPg0);?Ve#xMr+nWG$^=6Dh4$|P&z`a3`Mz01Q4T3a&HSiPz z$tfDa8mRb#C=Fr_Z3%)jj5V+VLyMcIfvkbGLC}hXYvAS}NaIuk_Xa^4sT$a*0M*Jz znE?4meW!u`Yy2k0r*B>@0H0k(MWJ&#O~F}WEUg(Y-iXFH9^wR-kN_n6;KDUabkmhf zs`m83C2N-0m#$e-b#@npjq_Pz*0X3MSMOE2E*8YuVidU{RZn))w`0UPqMZ~;)rCE; zXeN4SCfv(OV4-NE_EL2bU9}Io1fla0!pDm2;+U>Ax?gJ~ZhWE}_iL;ocI1u~bh)z& zYtfUtmfyuq6L+jQh`W;4<`?vhLFPCDf3I)(e>5(kh^a`i@q zJLM8R+=(iMd*u?RaiBu;$|c@IUdh$93b~c4yOpoF>Di9hkpmQlo4&;(cG4xX-A&ln zifLjrIf$^_lWER(79DgOAXo2TJ=TTym|VRJ`q6`3MYi5a)dlYVL_*xH*9*}<6iw$J z36?~K)gHb9x^U>zUEJ6o9ZUm9()-85W0%Bkygzby=#n@zn19wGl6V^jc4(nX;%wd_ z*%Y~~$5rTlp5jnUe0j%M6Vk`f!tp2D4W(-yjp2@=f0n?b47wi`|7^#HOi@MwYmian zqRbQueU}mYJlmx0qBR4@wYl&r6!gQo<7dyHrRrJz5TA0vrYRHBf3%?Wm(2XlTI+dS z3Czd##Dm)D;3rXd=!gC@Q0c}i**y!j2E(-mr28xOG@2q42F%0N`y^9+S`)d4Nn+s> zH{Qu~FTw@=WNRv;+xpL+O)Wa`WRJ_BCphBCZhV$`D2$J_Fy^C2$%}#iBKMCn8!I&% zw+G!nt+{{HK_wW-5POrjlBipFkfz7cR9?*|3&+@H1(Uj8@j{HLV{Ac}s>vWp4XPoZ z_Oly;TeG>P0dRy4apU4%$QQooB<^Px2Az{3ASu)rUFa;kB;|kcT2bh9I3Tfy- z~j2IEM1MEF!Mti_5z--U{0Y`Fr;tNaw9%vFWmeEiJylbf-&4?>Ji;3Zne1j_Mzof&Og3(2vVAD# zTtB+^m=#U89&GhbH&Hroi6rS?X@$bElM~qQ+XsVUaR~k@En-{TE!!?&sqNSnU;e_l(vNph*6xAjzTlgC#Zq2PmYeX` zOhtV2e*tqeLG@UE#}{dp8_40 zr1&?eyb4Lytzhem z@fz)pWZu|lI7D}26`K$>8qaqUZI4@O&Sr=yctIef)p+{yumcLQTolB#v)E9z-3%Qu z?OPp3S+F(2g_sVuHn3!}b%lzUl#cmW%`CQ#Ni{e16+78GBk?i)lIZP39-F0g&Ha7F z>y}MB8bEZ@QCJT?w>b^EL-hN_%vJ0z(ASUoHg(vVYg(vVYg(vVY zg(vVYg(qC4!Iz!DzY`wEz7viIH)Mo;Cp?aSCp_vh7N%3N8J28voPNp>+mH2vU>gTh zu>)CWS#0!6hS)(?g}TmRqn|RwW-?Zyjeg1yJD62mHu@<;>=0IQ+vukZv01E=Zlj+v z#13VZOxvqa6FZDmvTgKJhS+RY@z_@3`Vl*vRq}0=rPvXyQedNBGAOY*Z6<&g+UR>Q zu{S16L#4<@KV^vZFu#j!^izh|TvjQu(N7s-M@4@LdrNH?K0@s1RvS<$wH+WAZn19z zSz*hi%B_~!&{k%nUoymwu~U#0Hu@z)?1Y$$5U8@9RH!zoZ7Eo_Hu@<;>}018l{y=3 zsAH!ve>U6brwp-Etu$eF*yyJWvD2a!p|aQ3)Dx9L=3Kpvz6}#Q!%__ehXo7$l))b9 zd>t{jre89|_K0mmzhp33#zDYjAx6y?1H`s5^kmg!c@SuuBhfYDKr9sWD+Px)b{mtV zzLe=#3XW9_kvGA%!^g|?BZasm8;#bsqoDF@2s?#{PpA$3NFlCW5~}*jW-0!}(j*fs z$1x90d5J55*r~lrEH>*bBQV}g`LS*wQ3vr*G}CmCr8Tm^RtVFQ2vRH9=*v;2`&q?g zOQbouJbrE#bX#oeF&0c^e6_G0h6Yo)Hg~sUqM24DBte_YMvr+-zE~G3Zrey_&5A){ zr@T#&h;L`l1Q>Gz{=`xb3Q;fNVX-T|y`>zG?F*QWPl=+kV59dD#JgDET9}9NsjT9# zZLj%hkm!`A#?{y|#qQF7qiZrV#Xh6xa~yX}M{5qoe1~|Li|J&)8-90~hBY%L&DITC zJ6uH$Vmik}A(I^%U^}Ku8z%o5EpS~EM^W3~YF>d}#Y@cwC*&aW@`ZSmhp=+$49JK* zW2|zf_LMMn0U^DBq-#jWo3Z?e-$}_dr=zg!^P{Qbe56LaB(dw0RTetJ4IG{BBk_;T zX6gZlk6}X1#KGcV@q?PRgGIM=tFPw3V6k6r`oo<0vp6Qbw_6n2#0%YuwFVhO@IRzi zYL&8l2%0Q$h~H$Px!!#vnXWdo!BhN5&5$8t_nz#|rrJD##Gb)PbEEU8SR5gEHwFGB zfX@hA=&Y$4BD#BifB^yKk!_fHT`(Nl;OsGhTBznEx)6N>;1dELYh818h}d;Z1$sh! z!psI#42E6+Goa@nfYY#^AqSuEh2-r&|Ozpo%PX~I&|qczenv9q+{k(zG9#Pm7uKf>kih4B_FIcO{`M)%Ft6jJwf ztI{ejkg4rjWruER;>TQtTO4PVqk@$&a@131w>XwETl3a1u|w?L7{}raKDg2!uDLi2 zb7rZtrtNhYSDh1ThF>T4j4ss1m00+2&C=_{&dOp9_!RS^Tdh_}!3x{$d9A`+d{?U+ z=mgHET4kggm2+C9`2XVUJ>aVqPUJIE7-e)qPSK-)?Tn))`~Uww{|A#hbLPyM zGiPSboGEuM#E}0t9ry=&T)u6iVq7-SvRLA7vTBx`cCUuCVL42sj^hc79|St@r#R=I zB5s(h(SGItY8%6xRK5MoNfcmZ2dNL)G$A@`s*r8wm|kSNnM{GBTQX|u-5&vxWQR)+yEB?dP14eV%31akXyX;&1kx<@W+lzJH z!duR>j8!pWNI5U?P_|J~lx_LjVpTcMjNA{~mY=dq1#oJU*j>)Y4I@Pi*o;=>Ls#R> zgp(adC0(XD9=u}&u0`0SnBgC75;5b^(0v$HJ=NAKD%(zMH_)q=bJj6C8P4B%j06BG0A9 z^0=zO9UH}@bNIL!OJEH0BX%bZw(+QsNVoxVdU?#Aa3}N;*@9hgeZ+oBGf+ZezjmXN zuF)-CIS2OWgB!({$ZX1|8vcJM^l?>ai!5$CI*|ab9*{gG~Q$s}Gl?0C0go0kI} zZ)K)#!T414Glc3vy}97VQp`9P^g7*ESp--7X16F`#1n0~-b)0Z%wsc_tx;51{s66F z%(;M+uZN8IPJ6_OfEYTN7rIUdbZ&b^(`49mU+8cQu*d&J2Pi2NG32uVYRXE|PZHct zMYz%)VP%NMA%A@LW$_pu$@V~W(GLLT0yPtEd|-{jp`j^6x1a~lqZ2W64ZQEe=Naok zrBbIZfCOICsR;+;&5v&?!brf2S#JAgF>5MM8ui85;A{I3$N{sIy(aL@S(wF#HjA65 za^HOGW*(wj1{Mx#^+hbKJ)6RU-XV`z7^?H45%nsKc`+!wzgf7ZK_5kL5m-n{7&uXn zyhQP*vnigd?iF?inRqOdzC*%iC{BevE7ERN6YGzxv#9%|g4M_)LXPI+-NHbQ^@^_2-r}ON{ zd%!9$wnvarb}A@NO-G~tCa4ng9U^fC@8@Egm~lju&)|5QScmPbThz_qgA7l%h*-z_ zMX}7qXi7Xm^~k88I68yliz7+b&Ex}z#c8Sr1GhZco@&E5Bs(VECX)jX`X|&;i+}b8iibyjif(p4U)mKV(j%l5ka$iVb4fEI!^fe}fiGxwv;0Pl_vt=9K(; zG0eK*idS!t{E9QPxaqpzLf5LtL%YIfIox>B|c@0X8EU!U)GzWbsyFs`sc+%i!&+5Fn_jZ{&!~I;iA|b3{taSF1<&edL`&GHd}Pe4S?2FB_VNd84hrvBFP^R71&is9 zW8PzP5zN~k^$C}ei(b$7+vIWvRt`(1kHr{-?oU5{#KfP+ZQiH-5aD9POhb}Ma7^M2 zvGAhAthqdSdb|!(#pGI%%TbH5NJ6@EEj7(PNcp}Eln-NMsI$>@1028G7FHe*`{(k4 z5l-sPciYDOfXEo=`AE3&GyBvGT?67UR4Zao*05xCJ`idG+CjCI zYzGPddYkQHFeBUVifqPe;qq5$6xnw=bwKr> zj;u;W>Wfr8?6^prp3lefpM-w_k4un)@&?sm5_55-1l;(0E)r)J@I+C&fcqlvAyc7M zb+aSQV#@+PcA%_8oW`a4`Uxri2B#{qLji~8L2z*6-)SaNCA>#uF2uH`Oc<}S8z%Ek z(1BM)!$LkdUoQ5is7jwU{3RNc2HCtcObq`gv;;4-$rZ8TkBK7-ahXm8mFycsO*Af4 z^0-GmFpm0ji{r zAX%jnSpJ;KzF75ru$;(RV-;`G@X)mS%t_56%RG;o>N~0cEfQk|&pas>7`) z$uJb&>hr^Nab-8pe1W8UuOa&kTPI$ur{igf=Y0kD#3{^(XhxW!EMG65;>J%Mhc#IOY~=iPpuXAEaC-atEsK6H{4Vz z?DY(wMSFg+Ay@6Mz-)aB++b3M_Tc+J%sSE52hb6)MSFkU%o8H{`T>`<;w6@h7aQYfoseXFIvLNY zhMU4?Iz`(Om|mYzDaI<9?ClhHEP*Py4H}1j+%LXc0#)L-gz)`fB!nw|s8b5TC_5^K zEae5+vLg>Qqy|tOd6){Y(b4H3G{6X}=oFVO<>TZOTg~nKy4}mU-Fz$0`JLk9r98WG zg$7)Pc6tv4k9Ml&b~|-MX!?0X(~-9OS!+du3_0nyGQt$PGfvc8zzb5pBXK1d{b(M{ zGEY+Di&R4B=@55az{jP_nR2udPg4&xzLHPD!-)i$s!*pD4zN);bj zY1hnM2d*{8H0_X$EZ?gmWerZZQD1i&j#d!dtLf0z3;p=+%pEk)+Ej&BbclDVctM}# ziSn~#XR$TELu4=G*)vvXz^&k-c&85hALL~!d0E6Eujj>Ym+=viKT*qhi%Z2?-Y(u> z#^;wekkH=Y(RYF0KM!T>6}SPPkzC*7Qffzr;X-=20e_7K@O>^<)1!yOsDT@>Pqb9? zxFAjS^^%V+(jdBJs<{}}_$nB5+&2OCsWF1FpOI?R6YWwytOq4KA2<*$TE*NvUWvy% zR_xG)CDp7IE|ZHH6Lms+1*r2saYG<=(apkE!=v5pI+C}yi}V^^9K28iEE2h|XuxC0 zH>^a~t)5YC!07OWj+M)_ga7aH{u2(yU@dc*E;;1AI|1B1Ctj(+IDLj1$YCyZ@Qya| zLk%x#Vqa; zt+aT#7*K~f^yNA%&H9}>K$(FwYH$Jgv68$AC@VirI{O|T;a?+yb-ZBc2%Rw%HGirO z5P=!<`oyqVdyJGGiO1mrPgyf9hg1_vsE}{r(CRnw*w&H2E6Y>>L8cK zrW|0PtJOw8H+pg`Qw|p;U5Bl*PzMt6FchB-w&=7H`eo{ z=+E9%IJ6jm8Gha>@rQbzF>&-N1*RGN^+-xBkQOblEOGW6BX^?4B-^(~V_uB$V!y~4=_VHC>52EY;W3l6pee&-@kM5KI*-Hhv_QqaL zZ#f(D?Ddb_tVWTx0+oNJ4<{uocYGfLe?ObR*()Wvjg4Xr2>i!lMeaq7;>HzN2He+& z&@w0-)t0af_CyYv5_A(u`for%9|#dgYU!Ls%F&Tg8qBUJx%a&fzl&<77E* z%7M#%QJiStBfWmz<4&VeCk$>ANdcY~zd!@O1`r!wt@t~~nJ8ukcvAi$GF_8+|Ah{4 zC?{jd-0=f2hUNGWlfske&;pzDq_{G`lSfMo2Orjp;pF`ZL$0~1MdfZw9c2!P0|}gv zBkZ0v;vyvbEs zf=L6&%ff2lpGRNs<9ADq+0r8Zy^`lI=}p_C(-z;`0^0b6M#RLo6yQHC2*dG!RM1vR zj5#Ock;6)v75`ktX^w&0^he_mt+e;9agBtQuwA`BSVi_; zVZF+Tm5V8jF!xs0i;Eh0R?-RGGq7(+YfM3nhI!J%jl48DTZc(0Tn^gQmN!7vyH*Hu zHTNe+E>~nJ{&;VEZpU&lZZ#H!Upl+vWv%E%PlUQt z=Z7${cnWwPWkzT7L z|GGk4+{BY+K7STC|7T60*Tg2}FI!j`TQHrbF*TgJGH(D}HPxD;e_;KYm0d4BY~qFd zq=;_jdBLe@CPq1*1Keu1>_?1>whbIL!)#Q)3#a=eU;+ROdq5VEgvyqE4y|HK=hWeB zh2t#DbpBHa6JMByL9{R(T@#3;3s?zZVGfyRM+VIRC9VCpx+Fnq5R-?i{^ zcY~E#!%8uF4dxpct`zIn@O)#jd?v^65$I@?B@*794PDtNUSGpEawZnG@>2Ko)l@3T zefnx~Z7b3@trl;z!oILK>xc^BY2!HsDLQP<<}e- zJ)*Ro4|iX0g|BZGo$Yv8;x|p=a68Y4JES9IW2^B)Tb^nbU$>)bOs$`|*&-%&ptP|q zVsi&iA2&ir$W@3LIxrjcwQ!PT-OM^w~0etkkF-iyycg+iH`v= zV0~k2Av4?Gt|W!Jl0Uxtt*N*poUA*Tt~GR&qr5{bSjR^jGdjf1b(r@?b&4bFP~P%R zou<4~xG&@*jcJ`?%7xr-?ClnT3;FoC$Ga6m(?mRLXrt%MM)AajVCSzJRSf^@M)B>1 zJU&pR?($m>w4&cvP-on$}Sa8ujl!$3Jt*Ztv{{jITu7Zk!PC*{vY!ET;*BbC(kK5 zbqmT3MWB>Y10CKd7Z+d5^V~mf)lB@jRrFlU=eUb6(^4zGOt?1i;;g9}@XJg|LT-HJ z|63=cs?Bv=CaN~@_$hvkNqd;dv#maaY~}b~*e8~nw%lH%7*;|DMvm!d-Xb2`z;p6j zT$l^urB3!q04wQmwSEM!)+A>sFIdRM?Liz<#_;j0=Ko@8zl-if!6V)f1fl zI)eAVTwIG+HiKt$Qd;JyoI`BOHICdR8j;{Fz3}2EG(1!zd*4x6Nlkm!nvF}H@A3E6 zh+N`p(-ata#PDvO>+aSd-hH`P+0C>2U!wu*QFHlE>3~wNRDGu|7d_qR?mu2GPIvQ^ z;1Z0=&?AO^OJ7n+88zY&j2XKqR@? zA|8mrs7@|+G!J}~h_zw3*b#hHIEayp?`K2?X2C-)Hkiv--GG$j;)fU!fde2<&b^)o z_QEJ27hAvskK;+s4N^g<9&&Nr+}lXT!k^$0*s4UB1LWdUjL62Hk?&vO5?J7QutP4s z!y9-E>BuDpq8puYc=e6GF^9BMK!TjTlzUdqj%SRVJ(dMXNEnTN9v;hw;0kSAyV z(X;9wV27MNiYEo~($N6m?8lM&HEn#PsE*$VwN9=cGs3Z1!x2Xmgk)@u)2BD{%b-li=3^DqSeOo#C zafW_|jnMkuv~O28?c1t>VO~NqDTpU*lMct*2PSQnDdjc%=7ng5_Uk3cJSR%rxCyp7 z9o@I>C#199cX!fpSO<>7O1gBC-+VOz>V&C-*I~tuRR+XK2d~3Q!wHGG>ELzPQ0Kky zJKS{eI&7E>M7ilma@cSgNOaS=>#z|r;CBb<;C0wY8On3h!RxS5GEn5EgV$lBWnj4b z0EmW-k%4kI9lQ=Jmw~BnI(Qv6UIr@MbQm*if(%r;>ELzP#CW>1d6}EeU58DMyBvWA zH=Vl=Fo&$YC^~BGyj((}C~N07 z<)@?8u4GyDk*~p@2&qOhTLd0abky3Fl1w06Knj09i5EpjtzGF7ZhgF9bq4MOcBeW7 zaNVbd^vB=yBnmKhhM)eV9YCPL-IawvX5_;Nw74e_T9yoSxnr}$6F} z!*dt(e;0@j$5i|^%K-5t#=T5_daENMC3YR?%fsH{-&=V9AYIBH8*VQL)Hax3Vn?6; z|M@P0Pri%blkXz<T|ehJ25g} z20YB9L)+dI?=d7wcnNCm<}-9>)prbF9azibzZmbbqQM7imN zxHlug2ed?ph6p(%H|7L-za=U;j;0Xm6_n@{$BjgqmP4Y`V$3iiO|PKf&^)~wX?N#B z-$kcqc*3b4;}w((w(`tT^a@IJX>uZfQ{4^9K2IJ_kIr!Z6V%e^aC&s6_hulb(c$#yEYERdmPUuuqq8Hv zLQ_ej!|BmE@eGAYqr>UZxrt%q|AER?9DWJOB;u&}_hmdoo>Y$>5%(h6dK8^hj~*%g z$rqz_t9BKe97b1X`&u%Q%(n?c5%+C|-|+3sLaXyVh9+(IJqvu(SL;VV^}UPOaNpJ0 z5U`JqSvY+uz;yZE1H|py4IGcpK+}%!tqA6#&EPgSz;tc{!|2PQzAuoD`ThY)+;*4qMrUM@3I~D{e+IJX?#rT#WBG$J9(R10=w&e~(yu1@B+D7y{;FVy}^rJ9MOfpdZk&8rp3o3FeBYui*YsCNkjVv8QC3 zPAk?%l*Y$2fVj>7Jqpez=see0C^OSV|LxqLmn)491U+qY&@j}!Pdu@m7fhkW z%vl)4a0QIcD*OI@h{rD#S>@0v{nGaoAcqz)vO)nIo&U2fhqjw4J`jVi*sti%|xe!G05?NNyhbmDHCL`-XxS|v*+Vf`aoJdp zTnuXguIv=Wd?m*1-~)nh-=K0c89{ORig&nxAdhdrd<|~I`#QcA+|aMM2$JZ+;9VjQ zyBt)U`~|4r!Ik(aze5U`97Jb_8(9H@cU+~?^NUzI-HR%!uI8l^ru3onm=$StlU_QILFtMZF}IDILVV z4a2WW8g0lHAd`N$%gVJyJVHs&?4n!~qhxIQ?N)4$NVpcUMYqe?;D{O>^9U9FhdUM8 ztq5F&Y)FLbWmQ0g+4j47V^s{AM++oWgJH2Gk-F=2Be5JviJS0d%|^uTKrw&DU^?b* zik)jj({Mr8FvvDy3aAwNab^nf^|kyQAYyYT#5aii=MI%98zTZmp^8Mn`>-f0f6~9vuDr_2fM3H*c8=4<4 zWu;AfdvV7951gy};MD&QoE7)<(z#6G#Qs-i$@hyZ1eR{c+%N8-XZi!;Sv&`fd!RQl zm?ZHLdu6((ZN5oG8*KAU!h1a*SGnyv1$hP~ql!X5V#P;LpXHe1mc&q1>^G!F$+--J zFc{&HX`ZbGU=5tCqrVG9i?hEAaR;c+sk&Z4sPlR;rIkI&8hBK8)OpcjMqH&) zUk7UG51LQvSIc|Ti4D7WX~JWB6;X=p`H#p6@90R%@jWZj8q9igggz?$sSllOlvXmg z>I3l?WMT-_cY{Sx71tzMz36S#i%RlI1h}G`H0|QcF{Otq8BC+cI|@jz_gw^6GR_a+ zy9!u)1=b?rWHQyVXLS#VaeJ{jbJ2Fuy_frvccUfIuK=vymquli=Wt8ySBZUlc|Y&@di15Dm9Dx< zybqw!Z>RXzUYxv{w^JpaNRctusz3z-Bl{7hxw!KS*A|V))iFy6?I|s*atN|oqDhMf z2G2`6hRm0XteBHTAW!#(l^`%;=FKXfm2{0=>57}h^*8g>;QA00DA)H59O@f*qi?`< zi=xy?WasL@CSo$E1614T7-(dB-XoP|F)Q8ICw7dAEwf#1MUU97D@Zo6XY3&>=;%?h-Yu%V+S4AiEL~cMn}HiT?E|h zlNuVIq3X;5VCk6$MCq+OV~A&;D%dW{Cr$^h>L03I%%o{{QZObD1aFnO7VQ(4--=u> z%@z;ditVd;`^3pxd0IlFPEGu?iC>|#T!a-}Aw0M7QO43M#I)OZ|G}St3BEmoQx=ok zn{k|N`>0`VSY$MP;@c-y6FU>n{Sy26jM~(r=}D;HcpnU~__Gsj0A9jK7`x)9=$r z`$3=P*&xe{see1lS?SR$MEC7H!+Sy_JprWB53dmWZ|CtTKWZRx#tP0sL*cbaBvt zK$2X-Hcth;6F@E|#@2tfwPg@Fg3q;f36fa_y% z?}8z6i7TTk=;aA=F@;FdX9uC;1=Je3n8%UA+CE9RBXTyK!66rOq<@9AU6Fw8ii%cX zlZ&Y~qGzi$eH3XfC)}BZb_C#h|dkB&1cm=&^NiJrP(Z7P`Z{%Vw z;r-`XyEL;ug*8Af=7s3l)^qO1Rn@Fx5wRt?PI? zDTTU@2Qk~ig9xf`SDI@7!Bn63HPz>RL7cAQF%9`$U+c=9S`e|W+>!oskS%W9A-~h% zcmfJ0{HP3Bm+g>ZRF~>Fa~!nBATQN%<~oB^1a+&9GcSAz{OU#uXTA)0SOl#m+GHA= z<155RswKo-@L~zE8MM4|3DGN;5WR8<(JPk_y>bcBE0++xY6;Qin1OU*l*&$j9KnN- zxGOJZ8v;@HfpNM$Df%}2As0j9!XnW51+==vP6HHo3y|E5vS)E)0at!|TrLQ?*=qnh z;^@5&<&R>HM<|EdM7nHGZJ&6G9ql$0nzm1Zo>Ey*b#aYnsFUQOF0SzmlL2*ajc2$F zsC#QXBV<6`TjLoi1M1!y&nOvC_ttnu%YeGK#xq6+)V(#Hav8wAHS`Hy&v+S97uR?u z$bh=I#xpT~J2+MM)_5kz?Lemav1G7c;%9|S1xIL<&w5nE@^w^lD1baX?tt^=ucj`r0tbU+Foye zXaTQW()P+FZSQX2c)W5++q(iINhFK>7eL{5ncKjyhbc3;qV1I{+Ci^e()P+FZSU_h z(OJE6N!u%zw7qgk+bfr}y>dz0E0?sra!K1Om$bcdN!u%zw7qgk+bfr}y~i+OMSJCn zwpXrbd*zC@SFUJ#<%+g9PcCVD|6@rz9J<(}m$c=UjOS&s=K-FSs@JdS>)cTuy?#yg zf%WUR#TyUs?4f%3n(92tL&gr4uPG4c(aYBqNc3#;Q%n{GQazq*F?b(OT&@?ZNmO~B zB*+4b)e{jI=+TSSJ>aXzqZg|w?QpaQ5~<^DKd>)OBgSRpeGMMjczV23QK^J zyc-3BODUyv*sms@8Ua`imwLA*@GrFJG+HsgREk{~j5J866Pb=I|#oHm-SYUIC=ncyw7^X=>s_K9ll@ubbyyli`ow?{74d+ z2|Dl<0;vOZASC9KA1G9a8SAeo-wDd+9$7yBA<=n|k5*^H?-@^TyD1dSG8bsLl-m*=kaBC&flx6|{z-8Mnrd#-Z!-z5QkGyDq%0nK zkmvBP#UCH!7w|J;^h11r`#mjv{@#Ak`VcMv_;SD4{}A_kZ_p96BANBXesSs{)FzOA zdv=q54QWfT6;Q0=S!oxiN{4^cE2=O~~JPee~1sbkOqXSf$tTr8>(wtB! zoVM=&C{fl$2gFUFpS-CLeWto6gvqjY91t%fJ}7kj8e;ygKBOlqWT&l1lSbM4MAur; z4l6qISsg7|eoY4?%b)Z~c#D;AI3%%+~;=k`N4quFdNF4OBR=q(9*`@<&6F*fO$LQqrMU zBEp`}3CT8-QZ=A8+4Eybw-$IWmVtDNEoDRB7D#jMP~7tfU*Wz(H(xFeiquDWk#X-qG5b-T?fzItu#XRl4Uh7f;{43oT7tIs^3@u|kLo;xUtaNx?#EJ7|C3&nriWFi zJ_p}$PZ}f)7x!%ZC~F!u(mFL3*Wn$xIfgNEG5<~)ZB6HVn9hyf3OQ~K;!ji)j~dwu z54rfb*pVdRzmptOJflCwlU!6a_l%?pTa17$DQcuO3v(9ok+eKPE_P4GNNeiq9KlD@ z4kWqQZ~Kp=WfF3+dt*jgQ#tM^l`A;05WL)X5W=Ueuv{ZLQ<1T zJNcd8Lvx-qiycc0%wTBJVwQ&g1`*6fXTHp#&ZppaxaiE6IZOtkTy*Bk94-Tit_48{ zLL+3z@1iqb=13XHb1g!vHb==ok&DiJnWJT3xa$Cjnqy?3+(l=;%yJo+>Y_7W=6D&X zaM77BbAk+1y6DW8IWfKij4pH0nJ;s4+(ifk8(ehg%bY6tZgJ6>FLRmi zFY@bh(Pf+FteEo==yp9pEX?*+om;)LCZx!y%*zRV>_cakZ;*F}fE%%zf{yIgeU%e=rj7m0dYbmq&fat%V@VHchG zGM7o_j=1Q|ms#Vu9|VpwgU)<~g(tlUJoilinFAs{IP>+)lc6(T0#FameEsyKKJyiR zS>zjlIb`j5X;Kn?xrBJBw!^n6KTS#;$sVfJh^OGk-B*x={bzW+G%0bUBooL>1#$F~ zcwU;5IMO8?ZE9OMH7z+ci6%1hZCKlg!C&c$wOy4=ncLLDgK;%L&cxUT zfb2~`GTwnoa3;lFM1UXx=ok~O>7}K5JH4Q5=(~EUmpJ83xW)p}5smd6r)qKmG^HCD=iA57j))afvjTSQPoV^frtpTpcdD`_tGY15qxz`_tI0nWK|k#^rHO*;x$pyXf*yV_W2NK+kjG^3U*NJTvQg zQlZjI*t^zn^^r_gNhjR}*AaO#MdeT?Tv(kWZMTfuf55u1rj{Y{DsW8=Si{s zDL&i(^^+kI7)<74qDp6cdAs5M86vBAQvCBNUhi3|v7l%ZMB{OcSr!C`RK)J%;AKTG zA;n9_lf+A+`1&|^7_|e$565|KBpnUr%ZwPR-Y^be5G1dRlJAo@KGCZ>i`DS`N_pAhFgjeO~NGG48a zMK5|xT=6uoHX2gIw@8%kdR*qj=0Zo3B-;?op`*&Y&XL;`6qZ*J8H8shtN&v$!{Ur^56L2aOU~E9=<6=L^ z2fxsf#CdwO78(UC%!CiA={k*=RA}vre8lgeRM(xP}y{799JC3+;==Gx}W2| zfigRrkx$trps~fmsqE}V3S~DRfC@POosWv6&+)Wi3$1m@UqX6LS8J@WlFsE&zRz8K@G!o+H zmw)jJ17;psTLy}oU*NH6n{{LqGGQqXVGNo0kj7)n#H%mxQoc->FY+?Heme3+d|>EI zyjc7q&e!ZcEIJX+9I4S$6_>Ir4IE3{J*c=l^`Ln8MKtq&iPJCgxWvB_lMnMqYUaf! zFk6LVWqg2$c!{S((5YJf%McoQhaM9{UgCE}+(NX*OUaygP<-(cFN(N=XpE9&?|D$< zzRWWst|!nyPBppX5wQ>;e!W=tGPbq-Pm23r#_K|ZP><@@Bffl@=LCmo0Cj-%i1E+V zfak*hTj1lZod^$hBF0-=2p()9Oh^TTB3ma=!Icz zb^1mRRA%RyBZ{jv(2w*xwG6`wnVt5t%ua(=#?8ExnLx4MCtiF7Q*F5p9>#6~$U*Di z%F7(I4zB!m2d#sLvAYSyLF?ekkI!T)3)bmyQJl75&o*GS(dyPOHS{r5aku~LFyolC zRI$^50P{HhjlZt%B{jJR5`DcnX8V{@D~xmykxFAhB_&Q!%OC>W0(v? z$y?JM!(|}RORp$6M#zBQOV+AmqzvQ*y=1OBM#)f-m&{eiXc-vpJwQaq$UwQ5%vDFZ z3{3Tsx#}1%0~KB}R~-{%pwdg`s$*jO-7u<_dC6RLOpe=!K!ca8RmW7xc8iy+RmU_0 zf{e9$$y{|zcfX7LaBvUJ*D))G`c$_UYLGc*%g09VGz!ddJP2}|ykxFA=6e5tz*aAr ztByqxp8#Qpm&{ei;)D~3x!z0Ws$)sgdkF0HlC|nsD*3s~OV+C6f=N!Qx*ji?s}60h zddXaMER(Dr@shdfsBxSI1#PZ6!;_q#6h-E$V?bmy%+>7Iw7KeW&^-syFjvoe4YO~# zQBsyzjyz&$J>7L#WD>;Xku@1ZrmO3635mH4D6VbFPo}Fo+4CYm<`3}CMv_=ugpNlH znXc}XWCF#I>FVw$@nXnyb*D>sujx96mer9N{<=2fPh2EJ(V{##j;9gw(aC;KuB3 zxgNIQd&Q|YpokuSO2oa1g|qcfiIHz&vEa3*#078iRPTElk623d9T%4Y7(wqv@hX|$ zsiWe+n>^1q%|oC;tu3CZy4Fp4_;7CsIGm%R^-KJl1lE%BHb z@fJTXzeEEzBd=sW-?4$|cZ6APEn3kzI@(qwe*YG1p}EJz=Wk(YmFD66T**zvQ4#+( zAC)P`=5xnWmIvQq>|QuOW!ZLAXL%w~w7<>ql5e6AZ{zEAM~{k!-p1XXYc+zw#0PI9 zkIhF# zbNiW^>Rl+<7?cFn$%|1!UXJ_jj*2HvV!`YjjYEQFMW-QQV-%+@WZQ)l1Lc7M1sM1= zm_Q^kF;E^Dz+LO`vm$-WK&E;nlq#LyOPKnY!8V(fDqW{~4CHJ%uSt3~6WI?OJ`j-C zxSRa6q6GiH&?5$7MQPnTJQWA+uX_h8Ix=dO6$P|eJc_t4wuYk!3`Zr_>IM!7y^oy8 z*>3ZcSxY#@MaYa?M2-uUimeeX0wY?n^#Wl;5N{B&zo3|Q_8OAu zp=&BcL0_h6(cLGUlV}+GxDG<2UGXq$S9~0xcC~h4l3#9!hp7$mFg2{;g=P9aO*oBs z;jbpFp%i+d#bE|%8f#bcQoCAYv8y!}yIz1%OD%S_yb}Hih&ZlJA|m0-z@_7wq-)7P zmf$;;zl7k|Dx3ubzb;wgyg`1EBGb}hjN|&G3no%xT8(k+O1XgiA4kByH<|nnNBB3C zsnSn7?vA4>#g7gVe2*sw&2Ab6opPr+$jarLdQQF7EZ@{~ z>YZl!rk+#pG|M;joD<_od8;?|oRj1JjevSn&pB1HtzOh~PLl!kqMmcQ`#a>^~NHg-qdq0k|u+CQ_s0Lp&w$@n|jVA zN%;tdIoAO^^h$sGt`lqqalafqhi`+`~^phVelUvE2bP0Doj=6hOgwydM zklYV~l?bCAB#zsO<SagjTYVrEAtfT7{;YbZ@cR3-xD?q-Tv?4vFEsqPIFSb{(dhFte#!doh% z8r=U7pMAj7Drw)`i+%GGD2v)RkEVTdFZRs|B=^mu`s|xWl_K={Fi;^jm%w)iP zMdGqk*!HsG>^;ZDlc#u5(GwbZnU>^=rtm#dAJ<66@#7->G&alLJT5Lc%`@Ev ze^4y2f?Nc`S!u<>pQ&*l1Ke-r`78qIl{$v(-Jio@eoOH%|I)rGET$+0N<`Ih#*&fcL50g7 z|JHLZ;*);R2&a*TXhIbJewyglM5q77Xu14dS^YfY0t)Q%h{GT9^cf>j$NaVkQV%TS zAjND~XjHeEWTo<}qNzi(Eb6w#A2>e`0ozxI&ZgZaf=og4%3dh?|Cz@IzecP*gA+kp z9x~6RjVybH{NQ0OZDiT;ZYl6{X(P*?kzEgbmP6YtwtPkUTuMcxZTYc8IhXdaZ29uT z&v`88DKKf)C{$`>xi3gS3Vn+&cWMyEh*>jw9@6Ep{4HRaoUxsI3MdcS%CV(*3W!VE zy|E`n6=VT{oLT9~x3+k^*y1U$_Ljo3BMPiNp_sVX{B$6biwzhN1?Uj?bQHSR4DSF~ zEJ1n20<)v@*;z5{PHl9234Ag-x^=yDgF*VezXIHm(P8|*8Xd;386CZbMz5WL6M+BU zhK9{C8Ci!%afjm>cpPtlIqsC7REOO_0axVjD1ymP3BC=l9GEhh`xM2xZIsMuJEhNb zcpf9@2vRBI0QQq6B?KCH=!4iYage#MB(%{HHh`SAWqN@pf<(*5gpUAn_a8*_$K02H zkPyeDQcG+30OL5E_iloXlS~%=2|X3geT%sNV_r6B2RiW6AnKL8&+roOXHH>V7LLVC zdK!Q6`wkef>=_aH3AV5a_~&#i;=xET&Mr@ChFnq!+ux@M1Ue zbiaf@&LCy)kzeBq!;9T0Q^X(9%);ibGg_pzM^Bn%*C$qtEgw9WS5r0$M`6;f;TPj}qlqa~%=M@UBYWe0< zUYL=j!@D3nB1vq<)4dkFTh1T$J}1V0hI@cx(8_rioe^dJ=S1^o(9Icz;(^b2ylaHc z71z?d{28B$8#WU@$K^)t&xs2@=NV4Ae1x}g_MEuvbDlps1Eu0^g}()%A3wngJX~6$ zrf?gWNWqz(;VIS~T=8_R245{pcjj5~4JgFRuYjyBBvyX&DPxzwrGfgOFR+G3H=yup ziGJ!CvEU0nCPSiEk0tcZ&tXZz#SStV`{y%&;Kz@MLto&+v?JorU+@gqf@d|D3GbJ@ zq;RDU@0YyEp(=fnhCQZW_6@8wi&FWUL^IMP%L(I5S#vC&E(5{MiWOAK`TI^Zb4pQ1Mvi3J<^@wKl>+3- ziDnMp7fO|*CYpI^XdE#}*eaQAbICzVy$L{^8IGEcX}uwZ+l2j^+9b z#m=vJMnf3ICy<%PGODUt7(U-e=`tq}JSn^!ewI&6=EH@v0uLVK%(1qJd~1#gxHb1Q zG50L6X00Y>tp#ezDbl{-DI>C&+dbB8iv(@$bwD-5Gh5_H_bB%W_cX}f^a2SzkRB8c z&tcPI#hPz;c98RFu^b?Ge}D!9$y3%R>A0lP7+@ka$RuhC6dB9iZj}M0#`|?vey}HF z5ukL@{ZY~wJB~n6w!PS~c|f4OlDIsRd~T8aEq^~2xi~DI$0Zr)c-f-jFFf9P-Gn5{ zB*zpvXZWBRiplTG5{{D;@^ML$1MrxeG%a?tOfkUCqj^j?B_61}Ff3(3k$Iu?fYx9z zK^e>95%D5%$#+<%$GdGO&hWTVA=*-!M6f(jvsBubXG&V8X-QNgQKWyz$4x8bmT-u* zvj_~=<KXa*)hhoH?-DQ*R`)}sc!=WJ+!U9 zvA(t)ep75|Hb$g$GzHq)>lF5i`u66Q_NvCZSVrI-R3yka-GiIY1 zJ_CpO<4wP#L0lGPoM$s*ip1$CV_MM6Dl#MgVn%E+Bi}aNZ=0U`O~+%Mi_Gww%y?$l z`E)aCh3RacVTL<8&DclH$ZJf`O=jw^MVXzZ)3)X&)6s6)Y|$IdjGN8yzryR>XgVB= zOmnd5a-3&6mYaE$y3)+VBgmJVbMQ1O&GGbDZr0;rt2EcCM-4r0GQC^O=ngY-x#?*z zO)xWHxmmQ_G)J46Mt-bmR+^EH=S@$gY3no#Z+46}T_2maO~~$JlLOgtK7?WW)X0l9 zy~eCqGr|#LraTG(#+V`^%80O=IgTX)pSe5VW)3Jiyd~OL%}v`Urg^^jTZ}Qnj?z4G z_`F!-8N=gx7J`T~&6~{F4v`mclx3KvF*wEy@4$0(@6*<0Mi^y2GjfmV5$*BD&X_18 zBUTC0$cw}2jhtAKl3?_Yjh|t9QKASy&3MNP6cE!Aj4{DWsSaXi>@+hkG!szQiEtiA zf6Ci^zUf?UX3rprWE(?}&2rOal*XCPs~wx9Tn$?%5<_^HB%1VCZbsT7cTi#{iFB}; zOAp8IRcyQIyw)tf$sD@ebdEN|jj|Xs*V$o~+-DBckg+i)0A=@?BYFWg+qJ>=!_A3C zq+#r+I~+_lN^M3(KpaXl1{k<;`*fNy!oW9nQu`TQbkFB?{fuD-uHbxyp4}@CJJO92 z+&I&C_#8hH7^j*Kw`3S=xzV!b@aLJval&pK={`K8#29E8XEq*QS7sz4YU|;h!;z73YQ*6eN0Mjnw!`Ka zqk|je+YhfFYaB{7TJ{|-S!|>kM$f*(bC(*QaU<&B;Zaq_LT)TOba>}7BNM#o+AplCYilRnz^YqUoGbMZtE;cVohen-we5k_|IRohtI*2Y>|1D)0F^<@m9_NrEu8=lp5tgEH9xuw1p@0oSg2Ai8#1?pLQYhd-- zhCq9LTT69qJ!|b~B8q{gmX7wS>eklkb*!ptd0o}&>b6y+n5)(Xn(CU@>Z|~O?20J@ z&l1)aSkbhiTJgEI6+|VcP4!*v46drKy1klJoe>(48dgp?4fmbcc|Qwbn6SqrNJ zO&wrqE#$Xs@zs+wCN zMMiJfsU+gn4MtpITStv54XdXyfOV~Ct?tB2c%nFHBn5S~Lm(?U0;uD4ZB%lIWW|T5IbAb*#0y8O5x}7{w~bH?32pLsROMRoB>Dy9({4F3{G}SiP=F z)^}A^T@mZ5LqS`c*J*aDF!lvk*I(G&RL>R$+B%R2q}JTl7HX(nRg@Fu+|k%hjfC!5 zX$f>uftM3kXq9LyZPlHs3aTm{8iqwG&ho})Aj|rm-@IZ48uolSz78DUx}uGB zsj)TC+{9|DTkG2c=p>crGzQSjXVtg0Rj;U*bVbw_BQabL*kaHn#tmA0tfsLVWd>*U zD8spOpa!vX8tbcD6-Si|n!vR3qvfKbphL3Nig=Z*7c|+XDlIftBkK~)unsb=t8cFk zG*S-@)Zu>@`A}gfSa7v2rmjZRO&5yW+{&8Qq8eFOO-Fk>N`;C*tJj?nxQ+EqtZI1x zk7jh@rm9u->tx5p?d0efH7j9gpg*^uU8Bj@hdP^T+Tff7+y=zpO4g2gN5`xuoj?t; zjiDE{uBvZsW3?Tvt)wYx(XLlCx2|KMlrsNm=XTWvRs>WXQpc^Tscx%hRTG+<8`<(e zE4sDC*V<~d>E(6Q1OiR02FR<>6i|L}*%iX-qhuf+*4|mw0p(;BTWUAWI;*VEDneC> zY|x#$4Ng)0L&Y?;)uPijwV@G8eFo81o@42)NkOSkr8a5mt4tshw5neHh9r&DUUduT zYOQZUJ3}k$stvT(b~HjjtQOHEA+2wQZA?FwtLqh6`1U~gkn>{8=wYeAt= zC$i_&X;r4wf|NUIab06zMT68k|;l%wvfqG|Q5s8&u?9akv@1*49)Iw)(Jq2G12 zPb9Usx}jcDuAJ4}4!R0etLoxn6j%3erGcBKkpk{hyxta~lyYNp(+a=*LtWCMGa}@h zKg3eyijsvfEQB$ft%c4(omp~LEVYq_P*p2MwY<5uqfLuS1iFo(!BAU83$q4CYE^-@ zss>_)%CD5aY_(lzs#H~~5m7&^)m6?aXVhyIso5JYTP?8LP%BjyF{#BQtr{qkAe3NL zTRRMTigW9HXsy0x&x&>nz^m%P{V`Eht z36TczY3Hgw2la+gbSh;|O$E~jtD#g?wyvI99c*iu&{4apzI`4V6E#9IALQ84(h#U^ ztM6)QMqjP2X@;?Yfs@8&&{m^sXq+Qs0mI{JX%O@_8!BH1Sf<_{8rA+oc}{LRs|BtC zqs?8##f7!#hjJH$CC`=WVX_*Gx>n0p&t!|m zU_}NLTAqlz*oX^OPN|1V4%8|+bjcPc+XjTIU}y}>VMr;pLE>!bXhIg$(xiGMduXB@ zbupY4qfsue#<*C8vJoz96Y3((?aftC=@?U#H^;Q<4N}^Wmwx#U%M(~I8>n_ zHWRPtI3z=9CxLCU8m$pRaW2QADvUmzfmSG|t`$mh41ElxsztA0P15{mLr;(`k=PB& zCJ5`Mr6Dx*pxu(vAydqc(J8Lp4KpZ)yxQ0TqU@YMfX(Xbr%)lJ>7< zq*OGcA;3atsBWr*d993wb;{oAz?iV2slLu%+fdz#DFV!6HE^_FD2+L?7^L<>{gBz# zhS47;OpsKSr4(DBbgL@s>T5bykQ$pfNVpRjF#GPJ@Y<)+fswt5>vPaz(~`2bwhuNc5a0 z>N=IPn|r%CT00C&)N5nM>L#{YnaE_pkA-G{%~4BMH&dFJdiQd&gF~j6Reo8SL(5Q| z$PBHsu0;H@#mIJm&&KAp^{t05+h%;9BDUOVEEC_~X~e`p<<@r+dR0y1DjE~2#HhQB zT(RmdqxtZk?=ozBa@00jLdF3>{p4(c<=v=3c7`+0d#unEy@;0g#%*H!yGGVEwy>Z@ zZh8o7zU5sQ0-bAltNY|Ie~%Rk_99wdD|2FH{;#kyU$bIk;APFj#EU(|OL2(a+{xN& z6_K+=me=Ab0a?to6GF<>|D!xod&6j zwL<&03O?1AmiFJY=3BIY0^$091!Zm@6jea`uVBsVgH`;RkuF;PVMGM~JHtu~Z)J%2 zg_hT1mzb~IV}%~HzK++ny)uF^%vsFypXJncyu z_&+p~c9#Fs-p@k&RHGTJXpiLw-u~e>;QdSP@q)h4SU2>+w)_WrGqSubA$eb5HIo|6 zI%gMH-sK@sh1E8;g+Lc5L1S0qfvuwdKaCXER2^5jRc!Au`h~)aw#rg@IO~J)E-=!p z@~F2%v3bcV#%s>b{|ymMOZ(3zi@w^+i|UpCjbgQ5wr#7p-A>JG74M>D85%_mBn|tb-lX{ttW6Ebk{9#qL*(WN7@! z7O{InSo1BfML?C>3cc5hXn8-CDhLwPQ5F{{wdJ)^t5RE`H$t@LT3*m1UFBiyK^^({ zMzULzJO;m3Lv8`iF(ZlCFV~=XAxaA@?|B+TSuWUPg*NmeTHZ}^fXSYuV-|)m=38DX zv66%pTHA|gc|q!C(}spRQO8XK?Q3jF;?$Q$Skd?0s>daTl*E#B?ak>0S>A$6WKthD zj_Y(*dV>uS`=2u6`WYv6%%}PZW5M!%-!1JSnmU{aF!_65KcN~d?>8aPLd*Mo2(-ZR z{v{yBpKI$UdSYz$qSHFw!iNU4ycRy`9*spw-z5!3r||J>&`;7}+8bCSJD~V~TKn?A zs)~F6bI%D7E(i%rfGlvsswg3#D5#Yvh=dlK<=!hukl>TbCX0Y9A~y&kxJJ+(m)69k zKHM-WG<5+3YH`Dd_Mt5n8|Zt5x*#AbR-e4@%zQp`Zf^3P{Vn+;^Z9<}yUm?9B)Ot(w6$%L7p%qFHZAW$ScqlqG=E7$mHIqc8-%x#lEz+c0duMHoK-0!Y;EIJ z5Hb}NudIerzd(_YsTf5{5>(dJx&EcExE&L#5%JF`)dHNDr7V^S3vMzS-F1f45HAEL zYJ@K&sS$^5epfK%GuE6MxMO<7&{LTZOUj{2uU8?{@T{+L`sy7}$yVxwHVxV2*hEY2 z1AP7_oIuKIl^n3F$NB{J*UFq0IB0t!M%W&d=~YTO zx>xl%WZq#Ie~VIbqgq#^rY7sOJl4~*=n=LTy*+Y_N^__rOy~kHJ3q~FEJy7WL$%b% zKCT#jMwFyb{OQ*)~JL~RMcsEd-=ivDz8uY z^In%z=OkGg8ptL&voY&n!xUuD5}IuC$CRuvxm<-(HV5HbmWmVZ0%iKzN(pt!+^cX6 zYIj(}3aT6nD8jE-nEnX4QBRX(p=nmX*|j*r zZwl56gfCetPWXzYVuTH#OkY!aEl?zUdxmaS;s2?7wXEnfc)HpC5tOq131gNjC!93B ziBS)$5ha{psW_n+$*Mm;7d7pyMk%3as8#KHuMN}bYn93fFSk?$q1a`w2RQY!Bm-!r8EkxTrDEJuZbe1tg`yg+;DT}YMwRwYV!o~7c1V%5YkRpsP|P*lv;Ps?lWyDUjdZ|g$D zID3X(Y~*EN1NXKYdMe?n<^GagZvQdORbo`R!dk@%r-CxWgOd2t>(8@MTWk$Ws4{c8 z$|zSIA6t#;kNTm39%0;46*Qe6P=t$?>*-NmMm-Oev%ru4mD_9}S8bza;6ftTCPr$bHnOK&Ges6A$v$@GYD3=@~dJ{ z35w7ztL1OM$m^L4@i!=Chb4UCdNss*7gnR{VXG1)eB4qK2*pZ|JX$?qRZ0m(g(Htz zv<^9CgrX%EztzwLDx~1ZTi<;O%I?Y*OHDiS9 zEEOlbMQ>ttqj4@X{=sG(C1gS>y=V=k%dER7VRA0f8cH_?ii8qZ_xC&mdp`(D_~&Ix zMN&&olq@x!xf!K&CgCnnrspXAB~T>%zKJ5GE;eqAFbkCDEUK*0g1p7z3=I?s&smmq z`C$*-Gn}N@8YXls6k*mf|H!|)`GpRwItBR>j5W?B&tR&RdY{vyHFa4 zkxTum@7?V7PN-YJn7ga#a~l_%PRvW;PYOgZ` z=2?`|_k;&5RZjTV>&zhChpPS8q3a(7vF|#4QYwS=w*g}YY1)_)P*7_PslyJSJ;)G1o3=2v}0!2cmX%s27 zvkArl&v4ifqe-cc)r=BK(q@IwzJ;Vqne-N$%Vff>mMSG=<|=4u4W)lr#mR)s+$cgC zX_F2)lbLa@&A611-EE91NjuE*FDd=2Ah(^NY$4PHUm-h`6-b$3IF_O5dl?$>QZO}+J4Lb!8*Ic5FP2>GMtVQI76u7P5N zcUUS;xZYAR!VR*%viI{=qMrJ4KaY_5GMy4CQ#t1Q12?XJd_y|Le=r4SvU=uGYRKG&q}r;QxUM4gbn_}w&!$u*#3Q+j(WE4gq}bY|DpC)@ z3W>8XUTp4+)Jv#Jm&^yK)HkG)dc`_Z&CLk*5dTkqcl#8+ir(0RQuYn@FUzFerP1sy zV~$*FHeY8u!NmwKuv9tW&p?^omeQOBde56AUo(QY9BUdSqzjpo32AS39!k-`mQVti zQ^ItcZ)>YnN?2^EI3azi2&FZY#GSh9GUPb2Wj<;c5>r=>n1o^`BQsk+8e(nFLr`T) zOanQkCp5M_^W@bZ{r4D3nI#FIoM+bE)mIsnEht5W@W?Mrl^kaYzXWBr2&EscRyWl1 zWsA_;A?qzl_^$O#8gftCx`eGG_af@rIoc@U6^#A{@Q}S%fqW@$MMA-u_nkb9MX06Rv zy~pMTZHuxY<+4-BQ*6In=gD_Fxq*h*T;hboEmgv>97nQL>xcnDuR;agqVDMAbS;2` znJDF2)oy*Qsz>M4D%UwjtyDXQg9`t?qi$YUUVPJkcTV#gj>;{OBw5wBmuI7)anm%v z<1x2u_$J6VPxA|oxr0ZQV3}DFEJq2aSt?FA!%{KAnP%lFlaPZ$QrI4vVuZadHG!}X zC^Mx|8XhPTj+m)u%=KQYS*Yx3m7;|7D$^(-U7A^r(piBmAp?mmp~O^Y)??VDZq}-l zkPemm(i%#G0!2dcWv*eiy%?3uP|m;zX|KGMS#L~76bZ$fOec{%8jzP$U_#YlavIS~ zJ}`!WOhxu;LX%ZXev(7!`%m=3{*t|lkRe;>x+28B-1bO}a1to9=_xG@6bYA^O)q1M z-r`m%N=UELNrZH1Ha(?9fi0l~(A$~r$6A$ALRy>cOlfMMNGQH!JNFDXmF3}rv^-J_ ztL7y*Fd0Ow3Y#uHN{C)q@3l`H!Q$|$Ys`KxT7>7%Ar&W_ZK)XH6PAh-J`c)l4N4Jv z129gwd@dI65_LJM?+MfhpRrVoaPwR>d-O}cXRWQeXw$Dll z$AU8Bj?(hE{n>S;&0A0rw7}d*l3&9?mePRn|8NTvYau^ivo9e$X{jlMeQblu2u}y) zIoF12C=>*G&09HziQYEX>4)uJB3S=b+m=ruyl1Yt6vQN22hIum%)t|%ZOxLxtSRK% zb!ftB+msT*LhGfR@GMJ}5puK1IaE1nIm%pTcnxvFT9ykmYpa_rSHV8WvW+Vz%mL*& z3s%%n;4qM=qfpNc?m8oC*nix*qE-tvJwE+a-@AF^FGQQ!1X)k~*B;Z!HB5+slIs|W z-gTY6XQt1A#yJi>zlI2E=}OFwldBm|tw;@{$-uupu~KgWj-kg-lRVORH~LXUA!gp{ zvO?MGYmftSXZ=SsJ>P8%Fw~%?Ets zC8#vYmm<+}l&zg(@2&KYuJyWxgDPKTAUP&69Z$MFyRt>x-eUam$_+=|&T>sOs8iOx zB9sRsJCi%5QFHxTiP4qYuNGS3@iTf1>XgU4aFQ(9B?ANAM4k&7e1@-Z5-hqZ!w=XvVU z!JKfCtoEa1*<8|TKf4Yldu^l`;XzB46CMI(h8LwT14Y8`EEOZno^O&$l2vcYDsne2 zZXdT7xnqPsSgM@R#f2l21EpNBvIru~zgC~2R0ILOwBDi?TDyu6AYHbSMSrYM3B|5f zGfF5C)bb-K0`rzpLwM2#jT6$Pi7=L82OFW3P$J0cHIhdaMwT@Yp{S@^>{f-Qk^-Ue zqCSi;rVug4*;p~ciIyrSoCM1BHKikxlx#Wc>pW{1CA{2HaY9-vU(p&$;!D<`y$YGv z1=g^XkoifQ2~`I2gs@-tmD`G&n{{%+K`3f+R@O6|6ilBBB+2?A(j-|LmX|Bv;nIK0 z>_yEO;r0H?Q#|!qh!&KhfzmwngmV?l?+n}!Rx3C8xvPIfLj}q!!i~;x_J(JS@TYP| zUp;BuTqT;MB4e~AmC_^?)tf3-1|H!UZ6D=`5fG2FAW$ScQ{GA%!>FPj{P<)w2pM|;+;#}Tt z)tiuZ44jgKX*8ASQ5sDs&Q+uJXCCU-nudRmQhX6!zK%mMPIx^i(-)L(wu&*rTbn3S z`Y2EYOgLBHVxthQwp5I;#!_*@7c3Pc+-9jb;j5rb#+2TmVtXh439f(~A7L(N$WK(D zFFv(>5+#h;7L*gR7tA)L#Ey_fAt8IgC{h~6RGe}RFO%+IM;J{?Y?8PnWP6MvCEGfu zJgISdQFj7Oimg-YDS6-wGPils<`)(HmV$>Sx3NtxArzI2PF`NmQ&80vr8>l(Ez=@c~+si;ax$^-yFZK~o%^q%AkHDRLa(mUL=(I0?46+@KlN z#mfu7jU?V)r>2mc@CnErZZVJW$d83EAe3(ocjpY63O%tsajg8`ZvQu>_X%rhK0 z;RVpH66fj_-zv!5k))&Ex^<77U{;8Ag*0 z)qNmYtJL?&@-}C<%OCUq)ZbgA%8~(Imb>n;`so9_c5U3Ee1Chn*G)~geszJjwh1w8 za8sgw?_lpmmn!<5*7|3MdLM?}+>i8y2JPlIKk;sLKQT`(YhwHbLi9}1_(~CxB;wa2 zh3Fj+^%oa;`C)hC$Nuzj-nmlNKRV9KY3oLM*Gsl{4t1yRSMj8Qt^N6Hy!Rk?^C#Wx zz2z=4m44NCZmar>*Lox6JM#Jdnsr_;RsO3f>)%-CUEX0J?{x0G%FNDPaEoap$`iO7 zmvOaR-^jW=Rh{>=Sn>wjFqrd3+eMHsM)@<8F_bf>DfijD;dLWu-tf9pR~P?cx=E5x zn9qUCXUXNG*ZPkSw6BJ|7Nvc{+@Jq~+bx?ruZ$$;(G2xU_QbT%8*)XLSZ0T%pv} z!38Um#AJAzJx5p5DKA$CSEE$*Kt5~7@|QUO;A3^KLf*MRdpiNK6`tSY!+WPJ)ZX~m zAj>kSO+qOjSl543wfZ}$>Eu!$;y!}v@O7&C z+(&VC!SXkdpFsH(%6CwHfO4NP=NlO;@4@>R_oMt3%9m089_6mZIyzr{VJW{iqW{7u zPeC~d<#3cEm+H2qzP6KrcXlGnw0FKy$MSdA8}B<%zJcYqU-by8ofWEj9N+F{8OOWRlTc1U$=A-O zL*^^rH$q;c-DUITZI*o9dxxp!o7rE$imzpVqpOSg>OIR`T-M|F1^PnfHv$Gh=KJ`? zkjMK|@9;YN8SlHTx`Wz^l5g0*u2tl?)q~$uaH`B!%Rt%Pzwo5|CXo8DOE*(P4VD>N z<9w+c4Vz+=i6DP0qmUP@R@MXGhuHTfqjoAvekWxlgNN4&kHK`Y@Um7 zP0#h#@e!(e9M`iyR#svm#g#3Wv4K1P+2vlh9#@$rK5(lkd2}+->dPMSwq^KTHhXvX zm>>)I)IU#t&oSFSy4maMwRLuDkO(_fnW=i}cdgnvr{=W8i`&AM_*0xni+l&i8P<}1 zM<+w^*pIA+=VUl+lqCgtPNuW*tz^bv&*>yrfLr1_JG1}V65qvHawy5< zgK8Bx>wn<8Io(^-@9soeHkPee6G`&??3!o@34J5 zaE@nO_L9Pt9(1s9nuJIfg6I2ukAbfQ&j*sS!K)*R^24X=`+&a(e63kCC7jby@eC?< zV=+a8H^4hsRgHlDr{Iggp9}sNc&@@`xu&9v^n*%>LnEwd8H?wk;>c|O{@-~838%N| zv2-|m3iSeDlXQ5%^6rT`-suV~60)xsFemVG}6#gFJ_29#_K2j1?e_NpM zKtG~c$9Wg}Y9`iGO?Ma^gh2!b>M*DO(o6u(tzm!uHm_IWG|+_{jL<$Ed}RuM0r=V! zJ}P|3$#st4=WVeeoqy4M^I78-<0r>yOmXx}ZJ?$f|GAgE0{7=d{sAcywV3=TAi;06 zUNG$}0pG5b*@E|dYzPtcUk~utffsZA*I)BFP7xB9?$dwgLw~-}pXAWdI8;=_5y$vt z;Hy&jnc!!EZ;b#;!IymOfAX@||J-F=ObrLXSIEIr?$I4 zZmU;tW!)B2A%_P2_aW>W!54u441C6K4KWEl@vZik zN7YaENNtaC&YNP;Njk9bHq+ozbi^jnjkIvQ`7`wS$$*QYe++zMgCRKEek@1(Od0w` z`2Ap4_)cswae?~XEb=}7Z%}IBDv|m66lU? z;@oj2!gn3%GNKYxV$c@H~lWkw{RnHs# zL4-LU{N{@cfpa~l82k~O@6Lk$RR6B+(iih}k$oGqGO#rULF>VEztmiRub$Ff`417G94u7M=%wh0e1tT&(Gu>1b+eeLJZ5L;D4@p$3OUn z>{_z%|4sV;O6c+_5gD5LZz*_w?26OT1K>+uF?v&=e?S&pYRFfj2OGd|^7p?Xlgb;q znDz%)H)4`|2wIK8XS%Y6#pVI+dVoV}0W|^3uj5P8zNVXAec?YJ|DYN2V!1Hs53!s0(xJ=h`L#V4RicgcK zsQAupMyn^3F9hGX-4GkVmx7N#pHsJdfm6*m30A*p^s!l-_24TpF7x5;3Gj8-8-jE2 zcJPnm5YQLhvP*~Q@foUjqv@q^_Yc#y4rb-tTTfd#P6RtJCzwIPt2Xn|!vBGqQ0@)if#;VLpMY7+oD1~!@A`w}^b>3`J`g?=TH|$f@l>f+gXU1mXk7%e z-MFOG4`%DY@4LVdr(hJ{ZQMPE>V7yfO~+B>N$`AhR%Rsq_j~a3u;n>s_i19WoW_Bf?>%&TIzq^=xuJLf4$5T;Om2n-^_6XX>1}TFGDWsr*t#Q^4}Zg5-6 z?_BTDJ|!{pc3p<8~r!G^a?Y% zKE?5^G31AjODA*kYs@seV3F&OJMNv`mhu@JhJ4q{-+0{X9&X>ss5FGkWfx=~UyF;iJ59xseE*iOy|cs4-;L~aH`a%gwG%R@!)r|b F{|%eE*8Kng delta 99659 zcmb@v3tUuH_dk3tGcW@)3KNZ@Be=O$Ir~#>$}!o zYwfi!XP+~NW7$)oHNV;_qr!`N2<&ihA|(AHS0!&98QX>PIu$}WFM=4U7)xI`V%c{q z-TE}=x2j=clv1w=+tBHKIj&P*;{gz*v~YQfiQIwLXr+ncb!JZWdJocy}mR>h-{JKFsE=`QPi47)i4CHE!>PUHZ z#EIvR^-S3I&XRwJF;X1DzIU;2GsC}DQz1Q1h}vw3a#!Ci8`P=B2=QB{G?NJ`1EbVhW0bg(RawTq zlbAe)mAkUCO?@FCQk=+;V)mUt-)f~HO3e#M5r1b`BGcNU9t-Fze$9}7UOIP9{-UKz)U_c8jVl(S^dLo-Gc&VkZe6pK$m^dhVTMj?Y@z#+l~EdknEB}6S+WEEg7o8?## zHdH-{2^T2bsqqm^9w5xucqQLX1`Wbe4G3onvanj?xkIVdp}sKbos-j(#UZ3?3zm+@ zYPh2f-s2Ol@8r0GSox8v39{Q%7^30R+u-9hJf{tQkA~;A!B=T`o*$0OX#gj4@lw-LOoIj(7gzpvr7ZSa3-czqlElS4ev zBW>`CPdVNQocy{sNvJw;GZ7j{)OB&g0Hj+g>CR3HN311eo@0WwZVns zykRwMaI1#bDQyHDHNlZKc#?*nY=ft1xTg(1O2b>);Mp2(3gTU$=+keOCWz7mI=)E5 zliJ_~8lK(;U#H>DHh86mPxr?a;aN?P>n{*q)$qbL_`4cj)&@VQ;hWmv$27dA4gM{| z(f@UA1n0C0N7~>m8h)}3Zq&9vPRG+UJgE&n zN;lNz{A$wp&^Gvp!`dwK!P)q~T@xhv2$<^2yh6Q=4;GwB1brV$k|REN1XpF>jXrp^ z4}Q`I*EZXH{x$gsCi+y+cLKEip5lY+I|{-l`{0FE9w_Zdd5H^)d~iCe>PMMXxlsWp zyw;=Ar-HT%X0lB_IJ+j$YE=8+lqLPB@xiriG85J6xNrZHq)r#09K=-lSG^A&?1LZi z!7V;`qYsV^LF;kS2M+4V4m;88w!k`He8!BZHH_EW!f^bw@{ROsY`JAClYKDg5d zkMY5?eehTxe7X-F*P4GQ`c%mE!Mpk3c|Lf&4_@elclW`IeDDMfXa3841c^Qs zDt+)IAAFM!-opp4_Q8Al;59yYvJYMxBJ%cA7xeNG)cI8C?St3*;C+1XBR;rxq0OX? zK6r|c{>fGx{!@JfO|1e!=;wobeDMB0c(V^azz1*f!P9(jL0jmk!2=1```_dv801qS z)CW)Z!J~Ze!9IAb4?e^PPx8Ts`rt~6k6@UOAl(Na?t?pg@LPOvrw=~D2haAw9X|MU zjw@{Xjr0-Z_*59>gXj9-xBB3DK6r)?Ug(35_Q8vM@G-6VheDZ;V60DtN*~x6=gHLcT3lo>Ri^9Yl|F2n3qy)#j{hJ^-OY8F` zZ=cJ;!PX%iy-{&?SAX_o+(co6qMSZ69iifvh;_o%T@5tdi?o~ZTN~dd}$kg zO&h+T4S&B6pFj@h`vAn>)rOzu*=|m|BCAb<2i|_U5{;^`DvS*8jI*A%ee{olaIw-^ zG2HwU35^nw!7cgio#n;=$S4VBZ<8&ih*EGsqtHJ^!iu!xKdOs|bQJ%omJR9Bb1N{R zAbFazc=)S7py+h{kZ*C84?hgX^T1WF*E7%S^&U2^`B7~g(p|kgqEGUijilC4N7g;P z{_=XA<)fROTH%24-)*ywplrPJDK%x}5GCYKvgmK^&TC|iI&2yObQYh_cDmMhoUVeV-)&)| zPdZ)G8eJ2PX1PY!XSpWSAs)yYJSEq?-qQMlj>MNcLY?K)PA+iTmV5}&Lw}Pfe>Jcs zuKoqp`2A0>;`N-PHn~Q(K+se!6t{FJ=){YIM;|Q+^Bg5{^5{nA@E379UmF8iJ?ykN zU2uUK^j+r)tz-#0*X4f@pDV4S&46F4V$rH#&pD&Bc(h0KME=q_# zb{5x*#D`u{7Y^?t6}71U7#=SLwWx0l@1a(VERc3zRt=*Pr3;tT-lH7tf4k!Kx(>id zqivU9+f|R6r?05%MrGV{_!4u_(lGiWjf8V?&f+yKLP1vywDQL>G7ew#dOx5hdU_$0 z;?Wny;x!kCu03^5th}M=BF)XvM6K7TT-jP{*G2V(G2!aaTNB%@gM<&a#y`B?2IKB; z)%;t>1Wus}zx<)@zco&I8qpN3X%zC&9TS?%r=4JFcO8b^#Matrs9kRC_ATyr)aS>e z&+5xZpI|!4tvX@Q;bFgm609_1J{9;W-_ojl=66lGqvt_gyUoyj=aTwR#_c`tB(ZC> z=Yx5aku1(N7ph+A&I2%&t8hub3p3RuGk3oul<7uec2voSmZJw~32*BlgRD%136@Kj!)ra$%#YkC}Vw5fdB>ku|MS^Mp< z&P}hnpf-#i8EtpQF!avl=u|t$2 zRzYy>JN+5i+Sv#)&slC@YY&=!B(=Vn$wVdaaOpWn1&v=j%~@Vb>X-#4XF08gC)V>R zv<=QNDv+8s3cECgGNw=vP8JofS459(fyi_0H<+t1zRA=|YrkOJR?gLNu9|c8oO_mY zM>zKk=NkRElbm~+%bGa1iE|!s3LHMk*=8=R@NadnIvPBPDxUnqlVZ)>^rK6PECDI84yOpVCgFs$+>1~#=Ch~>ITeg;B07{v`#-^4&os{w)Qn*0njA7@Q! zIj$a@xN#_}&yv)diMrPMO8-~?01C&ro7*FMqRs;21_lTc? zS`OB61C2K^aI)1vHP@~2Gf>IFP251!O$>Ni4HR+RGCu=(94tJ}I-&U{23lGT+~~_!ohTAKnW$~hEgY-Ql8H)!Y;yDzL9v0az1w1 zsqP6}hGJyZlYTiT6=@F^6WHLngxdiS9^pbpfZ7r>L+=1Mo_(~4;d%_lxD5I(`EVaMgSiv>v#YIxrHWf zfe~29ZnZ#pzNv*O&A_E@ECU{{#|UMh)d0&gPXP;|m}Ns$%1c@2ZE_A~fNkA6?3No! z1w>5!(NKC_pFuvIR1e9GPRgOy@%>0M?k%7n%6JrvRHR*bn745X53$x)sHD|t(t%uB z$E8dO4amV=3|DC^Je0HVp)9hs7S6dChrF;_P)}v*@l2h*hqCZVoj4ccoLbY%Y1JI; zb>3)tGA>ZccT&^K_d$k1d{~>-Q4|$8gu+K}(sA|mDIHT|Tk(3n-W<`hHMb$tb$H|l zl*6p@jU>$~fA+{{YRi;_k+od6?uIT5S97pN15t_8P>IyCTwi6C?n>i%PXjR%6IZ;_iNFnu&DOKXef_1>bQE#w2n%8D_)6On01>#C_>(}A`X^mARLk! z9Fkg=>uOecDXC;-H{?#@=lCe;9j>`~>Mg_L|o4vDZI_ zXlW%GE9c|0B5kWC?7)Sa{DiM@q2l=yckWTO+E4nlR`oO&)^H&+k70Nj7si+$MKp%W zE7)4*GJFij%moxa=L(horNF#EVFy>JK7rk*zX|3F8Yu2ZwpJgZ~ zQPW+=oVK@kL(4akIj8usv%%0vR?j(+3Wn+K*?Jz|OAscw&S&mFFVhNs2x~R;$Xb@` zM_Aj*PXS5=H+R8F87yY8ihTC7nM+dJx=fn6Y%v(hmWj2~T2-(afy%l5{|6D@a3iq% z(+WXGmhZhWcIK?+>HW47QN94(SclBG8|-3hj&FLglN0z#)EfGV%p1w6W0_>hF{67j zU8j*8MWXDyN}Y%-w#|;79GBtIb3L7|uh1tFVq|mXW_{9Ns6?i4MWpAEmXFq8Z0lxo zA*CKkrd37pSs&Nq9t*C7c0Gul@l#);>@zK2XG2FnZ|9<>c1my{71RVzXV!#zlJGf! zpb;wvSjF;)N&s}SF0Y`ok_%UgN`puKftK!0tYRshO3ODgX6|uZ2R8C++G&W1UwT%3 zMGkJJ*Wf9opj(%J6Ir~m`j4QtSEO}^r4Ito8c*WCz1}(nCBgGHLO?G&sfTb9Wu(%> zn#{QJq9$TCIrldOIz?RPIzu(R-Sl&(lUmZ?`NwJUFuV!IJgdLK-GoYPc09)@U~IQx zlmqn~n9czDz0UI%M{)?6NAWzzf!tQ0f&+Q2z(X7;Yz6M)KoJ0hMl~CRB}W8iHK$`k_Cvl#q_{|I0wpPpt+JEHxHm&c~(JA;*~--8XU; z>f>kHN!tIMM>8p!2Bq|(R`m45ctA%bvB>{tqidN_+T^k9@QslJBd?*fMKk3)ah9Qj zeHV#a!27IK;S_tDsjR+#S0^RuCIYBp-K9xUzR|~d;rFy?+e-IRdi|I8@(AdbvO&QE zeVB%cwpA`|M!Y;~1SOoU!53c@iamlxIOLxZHpN_~)Y{zAbmNH(&C{3Nux5>a5Ej}|$7 zmnEUK#(8pcQ@sWcyXW&?GS)LWH=_HQ4NQGBDlk^<@03-@zENQ}DnP6DCR((%XpP>$ zwK&q?nMOC28cNeq3B4_x9YDj=b;`N_tbStQ%~YtJwzn|aHj*yJUAdvMxW#KLxrS;t ztMT6zZnE4rc+B6@*oY#VTJ9^-4(5|d?1~`6y~0Vzyh2lnrCvZ=$~UqKzNvo_b@&+} zpWC{LUW130hI12qdouLq=H|7U>(0z6r8iM*@YqosXBbKePN1!4SK@8!-leg5*Nu_I z)+IjePGfDs2zTghMq_V*sp5LcRT{w@vI$+z87!4bEYi$w=XzG?4XvQzS8iPL0ngU2 zbVEv82>6Pxb@^86Got&R_`BS-ekS1F>L)o;v*S z!s_wU@vPREuF@5VE^6>xLx>G*Nu?F#+*EG%5>`j_>zLwwWK}E}?rW8gOqzd@tyZ@j z$NYm?ebjDkH4Cdkc?B)sXdx}tSrv@Ss?Zkh;bE}itk~I1J;l%E^g~etjjtbZj-!P# z%2^PZ7@->vqV-$`7oX3p;{CTw3gUlK*9dhdca#S+!NFh*Rc4qn(759%*MxwGoR zx1esr_kYxn7RE#zzMsz7S3I+3V79!4pA0?U|4Y5T&@Q^w4!LRK95pL9SsbGl<|azN z{7ZcycTU%@KJ|JR^s&X1(0FCPPLG_5pF1y2$tqu%o#pz;lc~lpiWei)%tf80%SYAR zMTz(kw{lUhpz5PEZk1S%TRps}hj_o*yr^g7>-WKN?>n>~w|5)Z&`qmSQ}3NAI@F4L zhX!wf!{VU^Tj?{Os-N9^SJ*@MQpjFU#O*|X^Yl_j-j{@C-h1D;m?X$N>NHHGtawxD zN4Ao&7%jVL!eW2?*CO?^`?`x?sej%VBkoo0i#v%gssk7I6ql%T7AM&5ScIR1ExPhJ z^~uFUq`!0334Pg1jFGK7|RrDkotyt`pFVXo`xf8!~JW-N_F&- zm&Il3`6aQIZx=B0#Rnu$ni{oqf=PLsT4O9w?_b(U`m8}MU)o*lrM|uNZt0gJYFJ); zc;aEqkOubfK*eg&IoIpis5=2ts{D>O4thX4Yj$T%8Ux=7?QcwoO*57p?wI1oeM_s*oqNMIs zKUqCbtWZ-P8Wr&KdkC((TKLe@agXkX(Tdfv4TxG0idQ>gkX_s3#bBJSA3fLhsQuUU z6rWe`Uef{Ns$fl)^!0n{fi)AQPu^3**WNDu@t%6$+5woN)oZ)pk8M6!+djclM_by^ZaY-2kXy)hQEPzfN$eAuj}3Wn1aLJK~`)JW_OR!gjT?hlKOpz9*{0ThvMF330F*zu^vP zTe-Ss!+LRw8nm%k9I8IHG1ao>1+)~YFnJEVpnkG(N6@n_LCA3Z?fJY~bv?PRT^!g2 zt^uL8U1?D$I?D2&*cP=t%^fEO1dc&e%eK$jR4Iy~>Mu{tFb&M0jy1-p6Q6!moTr|8 zx*{OvRw&I;7eDi?^vCAy!JAiz(wpnlqGwm)ujZ~iJ6xQuragCiyB8iNFBZwR%eo20 zvMfmzw?(Quo*NRlbOa2XdQ!dg+=X^yidusijv^064Xw_WjwV_T!uv0Ggj2gkM!k>0M_Zhd)x zDDA1*e(NjS#8Ag78aIJx7}94Quu8pNvr06p`P-6decblG^l5>b^J+YHR;90INiz$! zfA;EfQFLt|^Ln@_zOCN*MvSPc55Dm*=EU_kGDY|HF>iJi#e8+qTS)_6>x239ADQx< zwj!Cx@YNumKT2sc$2L+$!_$_bW&CDRg|Wvn_0U^e1{LRF2VsaeL4u8hAqA91dZ_1B z)O40-#7E(YHUoRAq`>5S_~1z>9PnT*uI(tEQuo#-4Jm`7>k!s*)46Q%z~FCIj&uF& z`gexww;o?*i9dQy{ex2bzz?3vN3b(a_biH_?9xboMeXwTN7CoT>e;t*+l_}6NaMq4 zxcvxekUICBL6K5#isvvEpCoJ_&*oslLYASv{Z4rMlO|iVvEyTupb4oONJ9rDr_MQ3S9> zciQR9ICp!7c|L2N=htGjc6-;MccNN`D|u!Ht2Xkkk#`?Joeg1noqpJ_@f8$H2crJ? z8g@&^VC+J&YTeOG?5GaeF;1!}Q6JgSL+q{A?ieb)y-xjQN2F9!tOo3y+hN7J)($K7 z2CRx?OWj0O*%>FER$th;HYyC8P|&-VFy9~SZFwm
Ux&ixE+5>b}9s5V3 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 diff --git a/kintox11/src/Makefile b/kintox11/src/Makefile index b285328..e941cff 100644 --- a/kintox11/src/Makefile +++ b/kintox11/src/Makefile @@ -2,4 +2,4 @@ CFLAGS=-g $(shell pkg-config --cflags json-c xmu) LDFLAGS=-g $(shell pkg-config --libs json-c xmu) all: - $(CC) kintox11.c $(CFLAGS) $(LDFLAGS) -lm -o kintox11 + $(CC) kintox11.c $(CFLAGS) $(LDFLAGS) -lm -lpthread -o kintox11 diff --git a/kintox11/src/kintox11.c b/kintox11/src/kintox11.c index cef0136..70cdcfb 100644 --- a/kintox11/src/kintox11.c +++ b/kintox11/src/kintox11.c @@ -14,6 +14,7 @@ // #define _GNU_SOURCE 1 +#include #include #include #include @@ -27,59 +28,54 @@ #include #include #include +#ifdef WIN32 +#include +#elif _POSIX_C_SOURCE >= 199309L +#include // for nanosleep +#else +#include // for usleep +#endif -char * append(char * string1, char * string2) -{ - char * result = NULL; - asprintf(&result, "%s,%s", string1, string2); - return result; -} +const char *eventNames[34] = {"None","KeyPress","KeyRelease","ButtonPress","ButtonRelease","MotionNotify","EnterNotify","LeaveNotify","FocusIn","FocusOut","KeymapNotify","Expose","GraphicsExpose","NoExpose","VisibilityNotify","CreateNotify","DestroyNotify","UnmapNotify","MapNotify","MapRequest","ReparentNotify","ConfigureNotify","ConfigureRequest","ResizeRequest","CirculateNotify","CirculateRequest","PropertyNotify","SelectionClear","SelectionRequest","SelectionNotify","ColormapNotify","ClientMessage","MappingNotify"}; + +#define NUM_THREADS 2 +typedef struct threadArgs * ThreadArgs; +struct threadArgs{ + char *run_onInput; + char *run_offInput; +}; long long timeInMilliseconds(void) { - struct timeval tv; - - gettimeofday(&tv,NULL); - return (((long long)tv.tv_sec)*1000)+(tv.tv_usec/1000); -} - -static int wait_fd(int fd, double seconds) -{ struct timeval tv; - fd_set in_fds; - FD_ZERO(&in_fds); - FD_SET(fd, &in_fds); - tv.tv_sec = trunc(seconds); - tv.tv_usec = (seconds - trunc(seconds))*1000000; - return select(fd+1, &in_fds, 0, 0, &tv); + + gettimeofday(&tv,NULL); + return (((long long)tv.tv_sec)*1000)+(tv.tv_usec/1000); } -int XNextEventTimeout(Display *d, XEvent *e, double seconds, long long event_ts, int last_event, long long *event_ts_ptr, int *last_event_ptr) -{ - if (XPending(d) || wait_fd(ConnectionNumber(d),seconds)) { - while (1) { - XNextEvent(d, e); +bool debug; +bool input_check = 0; +long long int event_ts; +int last_event; - long long int new_ts = timeInMilliseconds(); +Display* d; +Window w; +XEvent e; - // Make sure window dragging or resizing is not occuring - if(!(e->type == ConfigureNotify && (e->type == last_event) && timeInMilliseconds()-event_ts < 419)){ - *event_ts_ptr = new_ts; - *last_event_ptr = e->type; - break; - } - *event_ts_ptr = new_ts; - *last_event_ptr = e->type; - } - return 0; - } else { - return 1; - } +// cross-platform sleep function +void sleep_ms(int milliseconds) { + #ifdef WIN32 + Sleep(milliseconds); + #elif _POSIX_C_SOURCE >= 199309L + struct timespec ts; + ts.tv_sec = milliseconds / 1000; + ts.tv_nsec = (milliseconds % 1000) * 1000000; + nanosleep(&ts, NULL); + #else + usleep(milliseconds * 1000); + #endif } -Bool xerror = False; - -char *trimwhitespace(char *str) -{ +char *trimwhitespace(char *str){ char *end; // Trim leading space while(isspace((unsigned char)*str)) str++; @@ -93,8 +89,7 @@ char *trimwhitespace(char *str) return str; } -int check_caret() -{ +int check_caret(){ int caretint; char * fpname; fpname = malloc(sizeof(char)*20); @@ -124,8 +119,85 @@ int check_caret() } } -int in_int(int a[],int size,int item) -{ +void *inputToggle(void *argStruct) { + ThreadArgs args = argStruct; + + char * onInput; + char * offInput; + onInput = malloc(sizeof(char)*400); + offInput = malloc(sizeof(char)*400); + onInput = args->run_onInput; + offInput = args->run_offInput; + + Bool ran_onInput = 0; + + while(input_check){ + if(check_caret() && ran_onInput == 0){ + if(debug == true){ + printf("run_onInput: %s\n",onInput); + } + system(onInput); + ran_onInput = 1; + } + else if(!check_caret() && ran_onInput == 1){ + if(debug == true){ + printf("run_offInput: %s\n",offInput); + } + system(offInput); + ran_onInput = 0; + } + sleep_ms(100); + } + pthread_exit(NULL); +} + +void *nextPlease(void *threadid) { + long tid; + tid = (long)threadid; + + // printf("Next Please Thread ID, %ld\n", tid); + + // Reference http://www.rahul.net/kenton/xproto/xevents_errors.html + // event type 17 - DestroyNotify + // event type 18 - UnmapNotify + // event type 22 - ConfigureNotify + // Dismiss the following events by initiating another XNextEvent + XNextEvent(d, &e); + while(e.type != ConfigureNotify || (e.type == ConfigureNotify && last_event == ConfigureNotify && timeInMilliseconds()-event_ts < 419)){ + XNextEvent(d, &e); + } + // Unset input thread + input_check = 0; + last_event = e.type; + + if(debug == true){ + printf(" event: %s %d\n",eventNames[e.type-1],e.type); + printf(" duration: %lldms\n",timeInMilliseconds()-event_ts); + } + event_ts = timeInMilliseconds(); + + pthread_exit(NULL); +} + +char * append(char * string1, char * string2){ + char * result = NULL; + asprintf(&result, "%s,%s", string1, string2); + return result; +} + +static int wait_fd(int fd, double seconds){ + struct timeval tv; + fd_set in_fds; + FD_ZERO(&in_fds); + FD_SET(fd, &in_fds); + tv.tv_sec = trunc(seconds); + tv.tv_usec = (seconds - trunc(seconds))*1000000; + return select(fd+1, &in_fds, 0, 0, &tv); +} + +Bool xerror = False; + +int in_int(int a[],int size,int item){ int i,pos=-1; for(i=0;i< size;i++) { @@ -148,8 +220,7 @@ int in(const char **arr, int len, char *target) { return -1; } -int strcicmp(char const *a, char const *b) -{ +int strcicmp(char const *a, char const *b){ for (;; a++, b++) { int d = tolower((unsigned char)*a) - tolower((unsigned char)*b); if (d != 0 || !*a) @@ -308,7 +379,7 @@ const char * str_window_class(Display* d, Window w, char *prior_app ){ int main(int argc, char *argv[]){ - bool debug; + XInitThreads(); if(argc < 2){ debug = false; @@ -318,42 +389,6 @@ int main(int argc, char *argv[]){ printf("Running in debug mode\n"); } - const char *eventNames[34]; - eventNames[0] = "None"; - eventNames[1] = "KeyPress"; - eventNames[2] = "KeyRelease"; - eventNames[3] = "ButtonPress"; - eventNames[4] = "ButtonRelease"; - eventNames[5] = "MotionNotify"; - eventNames[6] = "EnterNotify"; - eventNames[7] = "LeaveNotify"; - eventNames[8] = "FocusIn"; - eventNames[9] = "FocusOut"; - eventNames[10] = "KeymapNotify"; - eventNames[11] = "Expose"; - eventNames[12] = "GraphicsExpose"; - eventNames[13] = "NoExpose"; - eventNames[14] = "VisibilityNotify"; - eventNames[15] = "CreateNotify"; - eventNames[16] = "DestroyNotify"; - eventNames[17] = "UnmapNotify"; - eventNames[18] = "MapNotify"; - eventNames[19] = "MapRequest"; - eventNames[20] = "ReparentNotify"; - eventNames[21] = "ConfigureNotify"; - eventNames[22] = "ConfigureRequest"; - eventNames[23] = "ResizeRequest"; - eventNames[25] = "CirculateNotify"; - eventNames[26] = "CirculateRequest"; - eventNames[27] = "PropertyNotify"; - eventNames[28] = "SelectionClear"; - eventNames[29] = "SelectionRequest"; - eventNames[30] = "SelectionNotify"; - eventNames[31] = "ColormapNotify"; - eventNames[32] = "ClientMessage"; - eventNames[33] = "MappingNotify"; - - FILE *fp; char buffer[10240]; struct json_object *parsed_json, *config, *config_obj, @@ -491,8 +526,6 @@ int main(int argc, char *argv[]){ system(de_run_array[de_id_idx]); } - Display* d; - Window w; char *name; // for XmbTextPropertyToTextList @@ -533,9 +566,8 @@ int main(int argc, char *argv[]){ printf("First window name: %s \n\n",str_window_class(d, w,prior_app)); int breakouter; - int last_event=0; - Bool ran_onInput = 0; - long long int event_ts = timeInMilliseconds(); + last_event=0; + event_ts = timeInMilliseconds(); for (;;) { @@ -582,7 +614,6 @@ int main(int argc, char *argv[]){ } system(run_array[category_idx]); strcpy(run_normal,run_array[category_idx]); - ran_onInput = 0; strcpy(run_onInput,run_oninput_array[category_idx]); strcpy(run_offInput,run_offinput_array[category_idx]); system(run_offInput); @@ -614,51 +645,35 @@ int main(int argc, char *argv[]){ strcpy(prior_app,current_app); strcpy(prior_category,current_category); - // printf("run_onInput: %ld\n",strlen(run_onInput)); - XEvent e; if(strlen(run_onInput) > 0){ - while(XNextEventTimeout(d, &e, .5, event_ts, last_event, &event_ts, &last_event)){ - if(check_caret() && ran_onInput == 0){ - if(debug == true){ - printf("run_onInput: %s\n",run_onInput); - } - system(run_onInput); - ran_onInput = 1; - } - else if(!check_caret() && ran_onInput == 1){ - if(debug == true){ - printf("run_offInput: %s\n",run_offInput); - } - system(run_offInput); - ran_onInput = 0; - } - } + input_check = 1; } else{ - while (1) { - XNextEvent(d, &e); - // Make sure window dragging or resizing is not occuring - if(!(e.type == ConfigureNotify && (e.type == last_event) && timeInMilliseconds()-event_ts < 300)){ - if(debug == true){ - printf(" event: %s %d\n",eventNames[e.type-1],e.type); - printf(" duration: %lldms\n",timeInMilliseconds()-event_ts); - } - event_ts = timeInMilliseconds(); - last_event = e.type; - break; - } - event_ts = timeInMilliseconds(); - last_event = e.type; - } + input_check = 0; } - // Reference http://www.rahul.net/kenton/xproto/xevents_errors.html - // event type 17 - DestroyNotify - // event type 18 - UnmapNotify - // event type 22 - ConfigureNotify - // Dismiss the following events by initiating another XNextEvent - while(e.type != ConfigureNotify){ - XNextEvent(d, &e); + pthread_t threads[NUM_THREADS]; + int rc; + int i; + ThreadArgs args = (ThreadArgs)malloc(sizeof(struct threadArgs)); + args->run_onInput = run_onInput; + args->run_offInput = run_offInput; + for( i = 0; i < NUM_THREADS; i++ ) { + + if(i==0){ + rc = pthread_create(&threads[i], NULL, inputToggle, args); + } + else{ + rc = pthread_create(&threads[i], NULL, nextPlease, (void *)&i); + } + if (rc) { + printf("Error:unable to create thread, %d\n", rc); + exit(-1); + } + } + // wait for threads to close before continuing + for (int i = 0; i < NUM_THREADS; i++) { + pthread_join(threads[i], NULL); } w = get_focus_window(d, e.type, eventNames[e.type-1], current_app, debug);