From 0ae9832e054687d683611b0494040d6520ba461e Mon Sep 17 00:00:00 2001 From: Lincolin Date: Mon, 27 May 2024 12:20:56 +0200 Subject: [PATCH 01/52] Belgium_Version --- config/config.js.sample | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/config/config.js.sample b/config/config.js.sample index 688f627286..c9fb8194f0 100644 --- a/config/config.js.sample +++ b/config/config.js.sample @@ -46,19 +46,20 @@ let config = { position: "top_left" }, { - module: "calendar", - header: "US Holidays", - position: "top_left", - config: { - calendars: [ - { - fetchInterval: 7 * 24 * 60 * 60 * 1000, - symbol: "calendar-check", - url: "https://ics.calendarlabs.com/76/mm3137/US_Holidays.ics" - } - ] - } + module: "calendar", + header: "Belgian Holidays", + position: "top_left", + config: { + calendars: [ + { + fetchInterval: 7 * 24 * 60 * 60 * 1000, + symbol: "calendar-check", + url: "https://www.officeholidays.com/ics/belgium" + } + ] + } }, + { module: "compliments", position: "lower_third" @@ -69,9 +70,9 @@ let config = { config: { weatherProvider: "openweathermap", type: "current", - location: "New York", - locationID: "5128581", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city - apiKey: "YOUR_OPENWEATHER_API_KEY" + location: "Brussels", + locationID: "2800866", + apiKey: "f8b3c5d1e4b3a80422d92bdf820148e9" } }, { @@ -81,9 +82,9 @@ let config = { config: { weatherProvider: "openweathermap", type: "forecast", - location: "New York", - locationID: "5128581", //ID from http://bulk.openweathermap.org/sample/city.list.json.gz; unzip the gz file and find your city - apiKey: "YOUR_OPENWEATHER_API_KEY" + location: "Brussels", + locationID: "2800866", + apiKey: "f8b3c5d1e4b3a80422d92bdf820148e9" } }, { From 95ce9bedbf7272bf1d6f884d81d6b9ac05904c31 Mon Sep 17 00:00:00 2001 From: Lincolin Date: Mon, 27 May 2024 21:11:57 +0200 Subject: [PATCH 02/52] added ayes logo to start screen --- splashscreen/splash.png | Bin 37062 -> 104991 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/splashscreen/splash.png b/splashscreen/splash.png index b2acc49539505c9bcc991e155f5b4decc9534069..d26034e020469cacb235f690339d1bb1a2ee93c3 100644 GIT binary patch literal 104991 zcmeFZbzBro7eBgmNJyuEgfvT+ba$s9-JQ}bptO|I(nv`v0)oKOA>AMdNO#A=!tO<% zcprV<_kMo&{&WAi%Pu=RGbiTEneWV;ncZj&HF<1Ia!ddKfUT$?qXhsU-zAX%=%{yZ zO-)4DcW(%uTJlnWs$t6QyAL#$3RT6W&nV2Isic8 zmer&wa#wI+ZJ=nQstRDaOQQqO5b*C9-?6*<10awCP=2NX01E_)ztau~On=rvysN_n zxcd*dlLYWU;QpB=yi2D?+W%DYjtijT?)BrLaQFK0`RBW&m8*p{jfS18m#e3ps~e59 zGz~W=7as>74U?+5rM=6KY-Ye+mVhuPmoOJU4HuU%AD1vM_g&)?k^h#nl85jgee)3i zl8Fq+L;5TIqd9;docM*gxP^JRXt=qAx$hFZ05Ol&@Vg=mHw8ma0N@_Mj~4z(>1^#~PUGwBdd_ z=4TZzM^Rb>RSgxd{V-K0ZDi zK0F+*9=1R(At50kCpVCroBgf^yQiOvm$@&yiznS5O#b2{W9@0_VejT;@9IMHgRi-T ztGAaZE$t6Me?R`z)7kBBK`x$uw(72ZKwon=AQuNG@P81gs{Y@TIXnMXN>4A@XLp+X z*|PsC&{N0H%^Ij>?dj_6VQDS<%-Y3^?!PHv?Q8!Z8~wuRN6G)x-OBQB@owH8PCw0R zWeK!)vUa|c%X}0vvYB?^Kj|>H5C8Zx_{LCm4~XTu%e5n zm${3jwW5sJogp~v?X85lEd>QE`E7*Qt+~0)*?D<*tl5P)dAZpIg}8ZztOU6E1uVFJ zw(?i}l+vzFt{&QM=9boC{Cs>oe1DStBl{l| zR+hpxt{%?jUSjsn=C;;AHy2wG;D0jzQS)y|75>TT4hyZtctn8zE&Cr-KfqM@Zdly8 zp!v@(xEtyJ%KN?k5ASyJ{!v}m#okMd`%jYJvj3#|qhJ0p$NucLKXUJ8a52ogPWo## zAcnd6#zztWkN_ykNb2|^?6vsR7++?u`!u=srcs*&DUt$I@Zv`%;TNp-oC{#;dM_J@|7lPa5MZ?oCMlWdscWIPDvDDmk@yR-13 zutY?f7aFTauD;C#(#vuo`2vP`&^kC9i`WI0kO+pRU+Sxt zB(BS~;uWT%I+T&ldA;<{hBqWC(an^8k6F()n8|J|g@aZQ;Vh5~l{VzRpB%J^BtxLt zUiYl4TGNAX9!?$?uXKu!=C+?WXcv*47Zsj;(McZWV?KFvGhxRMiE4*Gj5z92=*52f ziFxeoKyv6Tln$1d3_NQT8@$EXi2T0ZNZk62Iwh_3L;t0rkq+!8$B|V{077SX1f_at zRBhJ#6~}4586U}z0ua^P`5#5@G#U;-q}IyJ$-TT99bkM+JqPmdRp9|!7L$VzhOUds zoLV)~hVzfgPRH`L)L#VCUUX)ovas_;cYx+UABG&8zu1bzv&%e_%H8c;$Q2AEHOWza z`|4QJZ`=1cc13t+8*Aqys*L;KlB7(h{tGE@#DzfPs`y+abrgoi$_xwh z@+al%4O8CPhSpN{D_pRan0^qSOYL*jKxb$iJ(UAsSv8(O*GdjMI{ecs2pTqL(@5PxX@R;z+|%lucYaa$x1tcG{O)Tw>l_d^>YrfLEo zz&zQ93FK!G+c!j3`H34g_xbB|LPt(cSn>1D{rUlUk#et~3;t6l*A4M1Ib~5^2LWUL zj>A4V$MO1y-iwcM(n0R|Bj@G^>P%u-)v^9n#Cd+`m1&3P*$(>wxF#`9nk&lnTJ81c zqMsZ+slP(z^P^vC0y8w2G)hXIBIU`Bjr?LBHxmK~=eYUUw>*|>_~E4(G@+P01H_g6 zl$%?7L}OW>*@*N6nBVzXi5}K5{#tnRhJq!J0cunrK85L>BW@hY_VQ9g?VhXu0J7M_ z&^4p0b~T9lQsz@k^wQMO+>0k7X2A*wF3BSu@fY7{GH0u_QERg}uf zavF>&o4)DUX%(q5nTRyz@1d(6T3%lz;;ofcf{`|UB7AAaN2sAjBHeWl^uUg@S$u>y zos_J&+lqO^nyJ*&MenkDc)7T)Wwy}|`KfV&!!4sX7lCD%3L3W*Ct$f53Xg6$^8XbH zRPMCMXs9249tS^V99i_XD>!4U%{Z|3^o|Mgmu3j2&!o2t+l7mK!Uc{Y6QlQ0ivvG4 z@&x8?7o{E8;ssk}G-*`}9A}JC20QL*y}fG5U0*%!VXoM7TG6q`WQYlV1U~X<%Y8At z`qJO(jrVYtbvc;ra-d5?GFv>k;w54VzRQ!D$oaXQ>gSt97SH;YVO{9?rHFAyg-ZOl zGrwS#%5pQKn+Yj^uiW!BDx%n1P7-Bd9=S8(noy7ZNb1$G9qT z4k{FJsC>pl^ayf-!aJwM3n;f36;70I(z2Na;U3KLhTs$vlq$<{ze)tjB9y);j{FNs z{=k&Ba9Oi43c!l#4ehD;x5p5$YOx3WWAbnwnMHC+;b5Sh5`8~NmrMOaHn0M>*T>WS zzCstc<3KWFSpPaFa*J4Rb@MW4NP@z@bO;Q+!J}lU`~H>aDWqdMc=C(46WD^3pbiV> za>%yAMB-p3!~3%A$U5$Hi==>@q-=DXR<4yl^1-hE``8t*r~w(|p4JO-X|zRqr3u_2 zxscdZimlJQ2n3veJwF+sv+ck;;Kz>D>+tTbQEK&~0JweGaNyP>D0D2g%*~oe`t?>C z1h;WqQtT-k^_#;}DcZ!3MJg{1xlUn36~N;Md@M}7Hdjw=(e4G0c!nct-C$c?T@bit z^?(A8&drdGCjZr)XL~2$>g%H}g|RRc{fC51x) zMOQ6taho`ssNrh~%1(kHpq?NJnIpFaP3?94o+5-3G&{}TAgASO2uWvB+zH+}5 z|0)(ja#56I&D+LTu?&Z_GB|&b zzqs}olB2!7v6fkVpWg>2PP~b*5*ektD#~UgZBhA;6a2I)S<&GOH{v+#RUL%tGlt~0@Wz7!{K%(tLc?+@ zZ63RlO;dAToWK9CWLKWu9;3E;<{%1J#YU& z*>GvIF){$`JR#>Z)Q%l0KFlnT;UOFLC`skCKrsh?HHNQMITOqu+O0rCxc*wOVqxPkq`rvohBmBYnv$<=J(Fkq|ui5G=54$$`u?tnrxdX+IFHVCVyzP75aC2jh zX38ji==;l@5Q1TBfJ~f%unfQ5zNb$q{1gsS(&S)Ow~op0=ju#nI3u_M)4+fg3GF_f z-|@|0qMiqiWg-m1^Jin)x#pVUEva}C&QNkEN5lRLi-~p7**i?~a~7~6yX6*p+I&UbqGbDyW`?VR5dStL=7w5KL_iAzsS$NF> zCLkHTBS8<b+Gw0!o^w_V3_qwi?IcaeDrtBG;PU!~)f(_?R&7vD0eA%$=O1is$OW zl6VOHsV08E8x$FtIF8~dO+5~N>6y{`fMJ7QIji)1PAY&mT+tLcH^TKej9x=|Q#xPV z4`z*-*kDo#8?O_>@{xx;Hv+boqdhvFQK#%_pk`jhb$t@QnB#JDG$t)55`;PM`P88P z?LBKbOiHpha{Q{Rk~|i>VBs%kFdm(VdTzP?qY~}XY@8hU-I8`xF0(1;D}}6T<$q4tdRb0Dy64hM?Lr~@kmNfM z7EEm-+KvcPAyXLJ&5hqFMSWX(EqyFbPUum`ywF;V?c+>UkQAbcntY89 zb%lT1nn@-F=rA31W+0}=)H1<9VfQY60bK+F2r{x*79s?h1d^wn>$?)YH@1BZ7k<6F zuaNnQVa2qdNHV`mpOAB!n!0Q35NLwsG%H6t@VvU z%$i!>Z$l-%hVEbwxIrNFCQAYlhQ-J?W+U!z>x*l$X~k0Fk8c?hR@Hr|JHNEMsOZq@ z@EFFxu{_SM3+1+s_A7ckRTWztY4ZtkMS#bE zC)u;B1PnHE#K~P=y`t?TeUo5HmHNsS4HsK6 zlL3fDl4+MK;I$W`N8w@!2xJw68@aAbgW}=uFi*$eRRw{}N>^;)nIav$G_P*RSL{MT zcL&Vs;i>oL`!qH@C^u14aMqWI=>-CCw1fw;w>uB(5h^qxwd3L-5~Z*tanlo%dajIa zTJk~ebD@P#YLzg#(c;*$9>4^a)PxE-{VNXg!~IpzVN2HR@2lQ02Df1>z-J$7HrUbZ zo_I9Th{{-jo;4;kt?!sK^fWqTP!E4wsQBF^(^p5fX%fEKc%WKghiQ6O6XLP$JJp+S zyF9+f=daT%Cy%eZ5Cp1sEbg^EIw)!ow<(Xs4~P1YVzf!Xmp=o$tX(#xTEQ=|xDmRp zTPAJXcCV=x+7ZL{3E^dX+QA}IZcurnDl6Q~+-VcQ5o>xNgwIh`}= z!;Dry`DPno%tNiP(?jSQ(Jy}5mhrGAkucC^12kf|eo76rg`4xGs82Da;J>%XKgp?S z_8cQn7@J5iAcDPl7{(BP?`&<8tlqRcB?x<==GEL4pWe}?esem@M6Ri1XafGoRcuM` z@e#r^6oYTEW9=q`V}SeJeA9U8k`;QvgU|$`;gL<$1Yph7(gVjB$V%};!VdKa@S`Hi znklnETUk1KFn#Yh+chwr#O{~^kq?127RSD7%%YyT7hCgWL(TehWU zpe-4T-A_;+B&>5_jhZRS%Ruu!5N1QgZU+g!cVWk3h&pv; z{vak?i9V65Led>5v}8sF4ko+$O7HS?CN%qvJgH)y2Iv{3nXp6*Dk2#s{kiU;>7m=h zn>456@Za_`AsEPrwokq9VpcgWHlWWvVfOeeU(!-TlFWV#l28fSPb4e4R&845tw(V- zRj`vPRM@d?+G>5doSPd<&n1;uNPijrL8CumLxlxO$QSpRE0@57cfnm#EF(6%62-Vy zJf5&at6?xEjL!~WcjB+u2ww9!GckwXV-=w;^^f}{ zKwySwo7rZljsTgiop5v5$)!9BJwEi8&_-asz+dwT*v@gj6q`{ zM(}k9Y4Ak{vO^>Pv-_n-fzR+X9;$fbE!UC1r0JU}c^?!+Qhr-Lm0N%{$*nyzCE90q z@vPHumdr)X=w5XP2b}A#P1hfD?594A=BJ`rM1+wEl;2(ruQeG352P+M7znXKf|3#x zX`(eWImATIu%@cHUW(h8w_?fqqcRY~tMf(QNT-tDl41iuFbJ23j}viji_`tb4Ha#( zRwy7?9|q+cd$ZFoVmIIJF&?$WPDIrj65p_fE5W1jRGxC#nJv@xhJofuncaFfiU{E^ zvCRY!45?o&;Rq~oBL@z?IkErEwj@NMwNwZav7Plz3uR|+U*yXYZEvw%reZN$TrUD? z6E`k({Vwt0n3riv2~4naJB>;pwOyxv)q^(65vtxCq}S=zwjqc6egtFQ1Ma)lx1_*c zCj^6z25Qmxlv_iQCLiK$CW|ET^_zjq+~m`HCnlOGQ)CN+VW7|aaRsV2k$UCgF)+O% z_}a_U=zn@OFrU~g5;$rHOTIBnvu;PXJX;j;D zt=DfYJc+w|cu%-a&#%5^TUNq_W8p<#h}Oul7lOW_SD9wm;($;s&(#70MkJg4Jct`i z#}e`{crVn8-b3q{lPC7iu4|pC<1k_#pMVG&6rvrW25XyM za9y$Dd;WT&$ZRiWJo&Kf zQH=e@MK95ChV44M-pz;$C78~}8dQG`U1(AZG`AE_(9Xs(L@_W+OhQxqhS0i37CkqJ z8sd4LedMkBkHECbav;5%o;H9=-0MgyLZjMlyf8!Sm8T3Doi0(25k=*LyIqv5B+YR> z(v(+{H7tg3iLFcjO=lfz%%{^YMOz#;$EW&??uXTC%Wpp8u2L^@zN~iM?=^!ePH(YV zbiNC|`Btti$Tx5e%fMn;C=ogx^60x&e{yxasgd1@qX%7TbieOsQZ}X|DZzL7`aK)j zhgtTwgY<_(;C05|ZRu-@XgdYq)N}Ca*8Gf_H9?Tsm)@1jOzpUP4y~GTy@LYAM4L2B zqMbLf!lYHEGWo*sj`9r_X!IBG;;?di4n-E*;$$cWm*P=p4sR_$c;ndhd#mnsg3puU(cxD^ zX)E9sZw8LtVKeyHYtlWX)!H}mcr&!k&zd7lC(&yIcchiES+YI>tI*#Y_Z}M-K=F{k^ z%Zmo*qkW-!1c?ZFitttu*gX>;7wwV(1)?d|*_!4D^V8>CV&DigldO(t2h1Q*XWyGR z0>~;@Gz4^cgt2GI)po&;35$A)WVijLi2UJ#X%6hZVjjl!oa^{#o-m>S&n9T5xM<75 zz3uIk>4}lXGPnt=S^Fk8h@-XO_duZZaz!y9`Q2H>hp&D|!L76-MHngq`ee!h`U8T7c%}@UOlM+0r=Kp#9VZlfSbA-K*;nW9 z9B}jcP~;=}_aW4uiRD#%!E)4)bPJ|6{SqUD;a9?^bZd_rOdxZ}!`uiFs}1jVS<%F0 z5Se6hbKs?hmJks6r6^A*ZReHik|5EsN;5}KwOR{>}J;-fkc2U za!a&*rA6 zi%cMwHm+Z}j%()@T#64A1kRZ9N3q}fDS4Z{0;!EmbMo=W%QeOTp9)3Mw!p*#?GZ<) zqSJSCtvMu8J91=UZ&xf^^(OCaPA(ZcV?JKHTH;No?A(3NV>WvAB`Rr6-)V534)2v5 zXkq)eV;eKX+(ZfdSU3jbRZU4`flac&xClAE$laQ;9=)09E4=F7y9=4(xsV;e+pvb# zP&qoeqUo-Yi)K7bsA3znAa{K9u_7A!=2nW2Tj8T7HzkZ}mS&2K9Q*cWRb=0n?a6Uy{h@EB z);_Dw;p)L%k7l~d^9`~)RCjguL8P*`sH9Yh7@DZp2yWQT7aayQ{p?Qc&AaTs&nJ*i z$fXj)ix69JA*zwV)Y4mKXQq0oeV%ZHQp~1Ej4X3RvW-hdRHj?&d9Y3d?k)1{MnX93 zqz+T8_T9Y(r@c-)NwVv$Az{|B>l3;)>WLSLej5%JN|M|#o z*ld7>yk}*Ml^ZtWriVVsJnHDQUm`EPVv3)o$J7m&B#rl2x1$J#W|~t{vaZ4dAor<) z?I|fD9v`1SDAz3HTOOefB(Q$A3$1*UnqOE>z|%-I>ABBK*!P?o%@yn-^U4GdW%~(+ zfcDLj;_;FyoxZTmC-7U|^N;b0gC^6{GT(pmLN{XctSQ2fS~v057Z}Zqp)|E+P3wO8 zYtiF?Vc!Y`z}!sWO&sQ5-X2m zi4u!A{iT*^kOI$PTV$&F2FA;vu^=$FtBwM9F`0>bN)b6)B|;)cjXWhz%|L@Bfe!)l zgzUQ=Ugi6h{D!+FN^Phi>O>`sMit0fr(xjX=|D{QOrlwdUdgirgY@d?i@+DJ2d}DY z0cJ+^Vg5!4xGh4F?Bz}N-Ml6qkCMx(5&5>aa$h%WRCIl3Ats?RpN(_r2H1Xc8C^~3pxGI~2!!Krt zJVw|R_cStc-7gLOwjoR(ZBm>(W<9|Y}jw$@mag4`xp zbo{c`u5)I3-UlpE?jqON01{Fz#Z^JUnTIomW2Q5GdW=%#;B2S!nf5FY5vfjjyN*FZ z^UafidHD~A`vJ|)zb`3lUxi=;Y+qGvij^bNe=3`OPUC9*wS;N5sCnw3y5k76zJ&Ws z2C`SI+5GX4H~6|-+Ri3cP|tD}^eE02SN;3wHn$#d-&!?*IQ(4t;V9q1H7S%U;NLc3kK7(% z%mUmVZTlb8DoLc=-Yw&*gPwGN#CFA2f{USrEC@@b7JfcmVZqEI7d`frRqT>gY6+rC zpM$;8_&F%reW*l3!G4u7fwfrcP=P{353F1L_ie&)=$Vi8&L!l?)-sf8vMXWu$0G(v z#b~88W}NtLC_9+Tzm0b@#Msaff<%(el4ZU?7UbkK;7A~TDiGLma%6p9gDIH&O73~W zBNigP-A$qyw*8GI?k{s}r1EG0e7}Z+*?wqrJss#o0+5QuO3G72HFxp+_TF z_gEh@1PjBzk5t2K82sdR-=ZDNe}EYrOhmTEXZ<2^O+DC{7@oT#zgPB~=iY@eO8|k0 zzGB|*@e~-oUt!%Qw2uZU9nppd<|qXkLk$2L*??jSJlJ)A;V0X9mW7}pOk*zIaR20v zrX;nS+W|%{{-+jOAk@11s)-mq0HRyVeK@CWm2jNV%(L;+r39yU?Hm9+Zf=}r_A_xV zf~W)**vJfmfzzjEs$ZwC(Aby|IsnJJ1ZYR=TuB`%oX(KX0-B*T9LsQ)L)`i^n^oL3!Yw z=xnohb$?L(fnLCr1<(dTB4XE*wZtOiWJ(+4YCIRa-XeQL>tOaSsjwtxJgemG+_?%Vs$H4O4s~` zOdA7_iU<`P&NFyp(+=iXxVxeuOGe_G%yJV+3;#Yc4^sN7Ms@9Ytd9P#`%zgxY198XR?~nm< zMcMFBIw`j>p(WFXDww`j;=#5*QW`Gt=zKh0F{P(Hu*Jw5>aq7j{R zp+W@?LKYe?DZM6gG^4ohVL!8WZhPF>&C+{oLT3>HS-KZ7w=H~jUXb&ozTjB6DdVc> zZH;GJy@{H&8E*7knla~?wP;i| zDP+8kj6o|!S#=mv%Hk|LyrQRZS9P^x)Q8!U(7}Jh$>D`LfzB+Kko=EyRfr1DduejtAGJ zO6&7~KqviD7G?;=gh>6ScW%g?-noFqMiJc{x2Yyun#ZCrtVmpo)UV0&dm8GY6_FkA zUBV`;loCOcBZ%j&2m#z8dqeas*()F&+A4KvXL+es^UPJBc4>nw(ctjVcOx*9rJ@gG z>UodB*O^dS@cK-}PEY8uy-1TQW|0#xQ!_P*AkGX+@jaEq^LBUv<7yOg5Yx3jtNHv_ zs)a`TsFhsk^G#D$O@R=Z3vhPX;_+{Xbey5xKNdXQ*ZqNQP3hUggdu_VA%=eEL>hbhfBj%a?pD|9p%nfYi&d>f8~FMzcTLD|)xx%rI8HQTM9)*9$C3FE^MZ&7>NN!uSjecn{JQeM+vHAO(q;$2gy>orKxk5tJ zh`rO+4@|WN)Tc-GHwN7+!6?iw$yJ=XVfYKKmnUuM#;K&c#mDp=yCLu8NKSTX)43ucKKl(8H?Wzz)ujU>Dz+6&-{T>APE*>tHM(UAd02Fs;n z%g@Z3bSnJ{(qgM&C0O0y3;J~WHRUXrH803L_$+#Bb7yNiElso;#{{(ac!I=&NZ_r0 zE7e4-x~0Nvxx{olY`PZSWX?eNnF^-3p9|K~!Y#QC1(!Ch!E!?Hw4Yb}sp3tnnuUU9 zKfv#54lg9io>*a=a>C zMMfLz1kL>}(dzQ4Ph->%f1j1JE|Hx827}ZOJ;yC0%1XAudb!Z_7;j#q4$+zFj_Xj` zA_uJwjspF_u*SoY2c*5qk;Unk>V^YNfagz9oJ<;#_2aydg>LWm-Yd~`3_2&-gq_XD zvi9f-Sb$3YaBc)%KM-c;h-Rs2eKUm-$G*I)?F%H8JrJbmHKc#lb>-6KNho|}qsVt- znNYaa-ni)_fp~y5B`~*Yob=T?{g=zMJlB3dlgNlr9p}4)^(J?cZm*YH&vvRG7`VVnuf(I6|)+`*7N=Do*51tGlmI2ow0bEd7{Njyf`pDOoH0+yOSs|{DG?>KaD}2>&IlU4v@ka3l}$P)JZsV3L>?Ms!ia%8I|eYp zB1iAGOf4n1CotA2i6x~mbxasTE|RH<*YhPFgwx+o{JZJW0};<(gO9=s(eY&hf?LE}_N8X#V#UDZ#+K&FQ1K>b!T{X( z)kQ{}LM5c}o}zuomuY3UCgV(J7t{Ipr-N4`+`1B4;B(9SNnKbpFBe{!ON1i=$IX%2WUt$y_5VC2;SfY5sWv(l zfiUTwn=WqhLdUDA+04*drkFS0*IGU34!~5W%<96WdK}ho6aRge$ZL|(0ITK;&spo& zTdv$}dn8RAEA|j9(eHeiJ3^C?vRW~!@Jg5hq4M>k6a5bOLNr{)cehXz8}Kb)E4WP| zLX%i{?@RH~8iggP@}>Es`N(gPmc%!YBZ{(xDxQ7~7a|u@~@AQmtlrLkU^ znh$)ei(^lcQp)4oHN}u;Qk`#N?cSUzvRT15YD~XP+N?+nJFw*B*_rFGEZ^MW94$Y~|joEWc>u z^LqUTfFAbp`!7)2*~gc*6cuDNNkf}NPsyANb=!0ck+u#8xeaMBd`M8QK9@LfnTU&p zn>M?Jg?)a3+OpSFEYq~1mVDAn0B?$jA>cL%#lWbj2hyR$kvO^ZIVwAOYNT)OvJon# z1+l;0#34s#T1?<6_>QKY({;GS8MXAS9&4uNn`wkxOny6U@bx(IMf~Z()su+$F3W0k zM6&y5SyJ`F&z&nSK+t0IkK1a`w{l0Ipb==Msk%Y(uea`hTnW8W|JiIZr8c>C^QqDz<)x4uLLog>zPx5Yz}l>IZx24St3KdKca+^6J!`oxMt4-J6 z%F^n-Nf4v&(~SaJaKLUHI-9f7N16$D9~cXe=U0BdCm!I3NF*nCv>}Dvdb`R4@d1fP zQgBfBWaeOz*9lYkt}sz8_R@kh(PF8&SwhBe&Ix0wUuADNCMqWFBQ@0eu5kFnrgnfu zdLZNHsD~n?SYoY;bSkUjzinO~)ok4bifW?7X~WxW?EzcE$~j8!#sO{jua8-zuQEtY zUkYn}i$z%b33{!mBI=JkLT!yBT1|ijXb#gmahHEW1*!{KL+0u{U4O4H6QV`2 z)7;d2uAGLwQk>#ExLdvAY9bhiZvkGKQ92w{_JhPN3uusLq@nU zPyM&=T~9KF5UHt0E4RPN4|LA^a*KbczpO4Y>2fAq_n&52%8Vc^Hh z!oaj`DLe!gGlNYSY9XRS7PLBtN?Lw0@-YYX+S4Mp!`NCTo|8P*oSrIn<5~1^dc`RXgPcp1F`)=mSh>41|13nv1a*n!;aHsGxiw zN^qAK>;8RhF^r4I4`5pvQADik8HFAkQbVd#Y(BYStRm5 z+1*yLI~7Q-TusGpnQdxHdw6>irF~Y81CSN>eYqj}CCp!)I=$_**Ve6|Ll_}zb^L(M zrO}DB9PJe+sE*KhQM0Qq&10Qcqyg^jpU_0*L&rrN5H8?^E9NQDT<6}~_g z#U|V{OGFQFnc1ufQe|xYXiqaqQ99Ole|pf`5rw?zc>_K|7~k^hH|_Mnf1NLxB@xsh znBjpWxI~Yz>$e|!IbiBz{Y1$T zm@2H%lNi)W#GhRci@{hqEj z3pC`nx$%%(MhB22i?vx7Gn8?;qL3c=uW=V=z*tr*Sz zPOnVPc=gU3R(S@RYO+#pLmlkmNO%~<3K9JmcqSCgM_?E?x2&s#v(0J|h*^!u%p0q= ze(b61tF8Q$j+4iyn+fLo7eq`plO~*UrnacJ`(*V?g(EpLTJbGUj)Jn1iqgb}R>Jx8 z_FT(V%%FBirn8d?q5s;miB6K9-**ScJPbo6ni5rrSOMT4 z=LSAH{e1hc3m7C!cRz?Syo|mPwo0$bpWXU^&d81_!?~T=x zvBj}&s!(g*LQHJp>#sL9_arz?j-t#4)5X=UVDIcTRvQ&r+gMgH9A-b-2;q1vg8es; zzr=~)s3((UxZMYR3L@Jj!CF?Qez*KsJ-6d%5z|Dde=F39G3M+hl0TGLj^2%oY#L`& zl+a;fR&E4drAn9eW(ukA$!>BeL)rBbK72uyqw@I8;al$)x&K_?{)lrg-!R_A*vW3N z7{Z@C@Ki0XTGa~4%;y>qTwwcgQ)28xdTcX?wb3^^g5}1Ea!(J+$%Yv0GyQBMWB3A<+Sgs zPn!23F|?$vAHN3##9LhOJjXgel%bf(4)pzq+^2Kjt11%#vBY2s&P5EFKkXq@8~X6n zq$>9NEn%l5+irw+@*t`)HA)cot1e_Rqz`A1&C}CGkE(2U^wKGV+}zE(+Z!GSORihN z&wF#x?8V~ruBB5^ldz@zD05M9)JTr6w}qco9CTo_em&;YCV!Wq7I7djw@o7zE(+6$ zO0+?n7S0R7HMSx(-wE5;peDl_uQS{;n13Jw-#0djs!128X>2+|mM~|BS^ggCC!zZ} zph`F}Om!WF{bseD^cl&Xyy?8Afyr|jzcmk8yg6X%c{=mbV(HABGLJLfFW$;U`GeB5 z0JqS~DQ-x6j^*q?Cg6?Uh1m-{geyuEA=xYAy3p6Pp1$ixye5x%qoqAnCq119X_&M= z@pR^zJkxtPs#1}uj-bv}&4kzwLq!RAz3A(rr8&d3kkhM>hJ`8;f2ccaZ{|_l<$V3s z+n7`Nk}G(Bp1+_TZJP zetM`DV+S8WVXR)7Tk=?kCSc`X=j87AH3-XCpacAOEN6@(;tmW>TguOd7t4}f_3Ijg%#^Ls zjY_J_*MZ_AhykKeCrWgsnm1ba(X4aP&HF8c){9aYU{_t(dQ5qElHQni-(WOuEI_;E zWvf9!Aerqt?niwz7n4YI!L-#VR*Xo0y0hk!pr?aSJ&C{4M6*j~%*}Nz!g-xOZkkeViRV?YWq2`dd^)@u9j1XqqoS5yF&a#j zW=?hcA)dV6D4!!kl@bgHfU`bjL)r7!Q^PBRm^^scN zrCBQ?_5JEv<#w*X^REaCo~QogfcWolShu+`f4Z#L>z+5Y_LLd##spuN1P4Ggjlx8K*+=JHO|G~n`JqMQo*Aqz_qT&am1SDGA7Bh? zOM&9l7k_RB4m^8SNNP3JlzJc&|2Rx5Jz$Qa{TgROL zJS)C*VG1QLBQ@=D^nHNm>T8hzzXj$s>8=pO+jZs{uB=FVRLNaOj%}YO^j^WNaPcV6 zGx{yHA&Z%f6ctsoQt=V{n)GGgvd~Q&m4eiMo&t%POm!kV)za`*ONEfy6NGAZOUW3i zAVXIi(>eYa6At@&q>%{;=I}R+HSSaBMzFY*#{oFsGw6iV#!$$ra_sR=zDDwS z)b=1_@~dlt!dugn&p(=jbk#lok=B1?d>w zDV?LcbHLbsyFSPNe;nWI{l0GQ=FanVKI2g@l#Qp%+&~qC0^q>XXZx8z0MODzIU9p9 zzJ7Tp%4_gHC}3<&W>+EbX}!<3lNO`T;FMM?SY86(PjmBUm`m#fUJj~qxeBNn3QyCN z?kc&lLm<$UMvv-7v2s}ulg;O%oG*HAZ%^MIoOjIY&Ly019h#RGt866wrs);u+Y(|?lp)m zwFJq%I?J755v$z%BSBeg92`MNu%7oOQ`q2jSy6hEmN`L3^rUr5i*suEtpO%;%y`$k zkaGP5^Q#hzdA_P&(4gjdqWq+dGBrE)pDOIaJ7T(^kL0m3FrSo9dD_%bMFiNYz?=qt63Y{D4Ny5{CGnNU9`gNV;S zMfTD;WwKhy)xNQu?lJH;MX9d3K!2WKqoPwyN%+1!Ut${zzyJfB<1*lrQ))G3DEkXY zw$M~jk&boiW`)#^>A7H^o!6BGX5_=aJjk`U@jWFpc$>(QUGrB~AStISt%9*vB<=D8 zutMlp6YBg-{4g*ZC&nT8;4Ot*#oL=ckKLGo>`#SD%Vcv#MRC9~pQuv(y0xYh1^C)= z0DNL2(r1a;$!IxVbpG#28Zk6tg|*dS85X@(@uH=FJzV!ZdXngT;KE>(^!ZkkHI~II z`3P)~SJ_ebD9_UmJ09rN3W>2mvALp#CX2WHLXy&|^bVlRe|_pY zmqNXA@42`M46OSh35<|vWYqnpqqEktgQhnlK}!6DQ-2#>LdVr2N7By7eMUkL~rxxl_5QK zAqgRAjIOybaCYNgdXML)ndn91G;`j+*vmkNFODQcgM$+sFuZ?T%29mM7|2ojp!2Po zBu{cjmtgTeSEeHbLjK|JMQ(o7^ciO@+e8*t37gP>Z8^j+hwea3VmSqu$!K*#A$JNt zNm$P}=sPC+PDV{`$?)pmV`?vO4gJHda0NZ*>V&?=TDzTjgd*;{ca>bmJ^iwejrFe9 zO02VYQ(1#*v47N0YU4!OeuS?)jdUqfQ&4!(C!%tU>*dcc@qvqUrwK-g`CwO-M=E<$ zK#T1^;K#F`uWz@>oX1zw13Pgxj&_#xric035U`qUxY6N!_|v~;%g4CY>T*puiIe^; z&)$x`MD}TvAFWPZN8f@)%}+-aifh^nq!`lq6&UTAT@(bVJu+TFGq4rL5f&1cwLjy# zjtu(x&N8TrcBV9{5*X`<4-cYt-=xK8%q;)tGwr!Bvu#6ytC?X)yS5ZNVteh8;8a7F z$DaX)N*Gf~Rui4iw;(*_Ne?(NSNJCNO;iEPNAR^8@;Kor0V$z)UpIigF9AH1F7oVz z>16_wv`-i*Sy#HnL1)Z&JZje@yZ-e2W8B87-dBS~@}+2t?a3GT&i#d6jL%svHGqsR zP7Qm2QuLp)FLaAr`44R4g>hTVw-r#txg|rnZa)fP&?HWSWG^Wxt_cu7&y zYHU4jQh1)>rw0g<geUU*jUzc*i+G)M%d}1aqU3+L{Ztufb4ng1e@@N5# zuIxm4&4Dm~v4~l>6K1Kh#P8~&ei7}t(vLFwdU;M}^PkrhIDoz`BcM|`{z#E$_WtLm z^v8bZ?7bywhUQ{z$6R}$JlhP`FZsTh3y*IYTTWGi&7a9mC5+}UI)IlMR~8`-giwzM z&O;fA@K7sOf2Rw6;^F~zF(Qc@wUGNiy2#}b(^f}{0AGx^|v>TD1yn#JgwYb$6+t% z?KzTp70t=3`edS?Q~X3tMU}tL*4BgOkA@Q9`-a=4m9OSC7&)S0tYszO9Yy!o#WR(s zw=R^GiWBAj0b8TF+|y@6X?UQfvGVRH68#rEoB4`#|gC%OZ5KEPq)k}O$-(xrPB)wp5y>1BC@Uk-M!FuM+D!~G6 zO-lp|(WUNtQ=n<09j1@j#!rvsvTGUYg{Lo4Fh6t0_B~$*cY<*eHdDG$2#lrkfACJ| zpWbZfZDeI&L$u{fRr0w1&1<9MLXPX%npK$8Y@*;{Zna)ahR?CYmhBi*-vgiEq0C|z z&`Su^;E}w?fv)Q9P^0TwPPl3@SERJ&8RS4WwBg~r?Nx(Yn`g{Ue1YR|>6m2+W%&2N zcWaWO9Mt_E{PtnOKgYxG&B|A|$d%`LD;d&+0?ecDPR=A$=*F{mp9ppT+9Sx35svS> z)>voP!D^R8aI<~6ks_UujCxAVzPn}{9eAu?4#YuDHpqR&T%f*&dKf;=HI!->e~L)9 zdyF>tkt~@?2N5-|$$N2MJrcx4gN2zSOuilD<}{yA8pKf+A(K6^5<<><%3#o=#t zRr|GbvySu3e(KlU!Bn0;_rS)%EHPTMw+4S#OPFWtm{{)NwYqh3<$qb zZ5Om;_MQ>P^$4IAz^>bLs6$t~c!jw)V~~g^NHQ1)<;_b$ogObnA9A*#GMe_RTP*`E zTa~Hd`4HZKpIG!W_eD1Rx)vTN_QZD@ zj6S|F583puUL9|?j>cSCDJo1Wg&gRL*8@DvewGV%kUV%U)%k#Qifpx<#sM7_7?av@ zCo%!lTkfC*WZ_)Q=?XYosZhH+n8uU0AB2AXk6!(J%Kl9bT?oxWiLkWGG^!UMd{U^V z!?(GK2F%aOdANg&A1N%}aeui7&z<~BGmic`(E#M?@~gn3S}fOWV2ZO=;tOgeaFMKD zv2TPWM8TOB+!{#JBQq@k)0|}2`d+@eGse{Oz&G+e!%;J=wp%3p<2O#D#*;_ZSKso# zLs#re)h%~Y0^o;Rm{YZHT%~nyWV+V_Ah-R}EgdRIyNIhIYQ>~=kL_At5)@gdATTUF z=y@#W-%PWg?b0T8>$~{`-$jcWAICV17IlUbZT~G|Mfg}rXg+;^eGyJ@$5AMYjZb$G zf#1qxN#Sj(DDbMxYkce*aPbA<#z24${7fe@y(y^!6i@EcbRcxg5{S4QaG6O-b6?lL ze|~o7jnBo7IhwHdrKsdWM==sIYFFWm$=`&h| z11{3oGl5wdg^nz{5<|ws{3ypkRn4a%Mp$9q7%^v-SHf-RBwD9tOXjc#QFlTqnDTZB z{QCH*cR)zWwGcPw>(AVp&`;}=5)ledZUq4!xcYDNif?0_OG(U!RqltEh?OFlk9=CA zE?!-jVhQ&xMn0>xiCGbpeb6|Lv%4|<3ULce@=rG zYOOAV>{3uZ!=&W(zgrbc$ojVRBU_lmr94YN8}o}^NQ`+@lKnexGpgey$&km@Z$9hW z?~b~IQ}1|K{%y5N)L_<5VtQzaJs^zPrIniSi1=gw+Pe?5iYD%5P}3H1`gY21CJT5v zMj!z_csCB(Y4Vuw~! zk{9Qt@D+vo(*=(0r5y+1@3~K2No68@?r@$*CN(RP_30h7{g5kks;w8!OwD)t4M9 z4N@eoDXuAm{Y?v@DX*6 zMv(+0^&>YcXZ|fRetznThaNgHrb1xiHXug{f7~RKbTlGNagQF0RFJOM)ZZ6BY}S0 zp9ykUux(=M#QSN4dmGUhJ*Tz-G#b|EMAIa6eo@*PK%VCQ{`3kx%^gKvZ`5-5*12I* zPG@fX)+O-Nt8;!)rJ4hwM5v-;S2*t^8Q5&O;F`oIU0jonQyu7d3xZFeyOJipla`2< z+rLB6Or|yjW+@lecI;?&*vg?=Wo@K5nEAV1R$h=Z&Ki>j1SZpj>G8Dqx1OxX$oJ5e zwBi?$<)!nfC;M`ePzbOuF;||7>mGJ9CE!kltH2X9U9b$=Q;)l@+h9Z6hCdq;z{^6A zwQmbaKP;<+niFCD)Oo*eeP{s10xvX#DMb?yaevfL3cKSfkyEhcoOu%W{@eRS$UmWM zv=E03LmA)?s4y^l5RL`t*|<#0VxV1#*fWIH)tWCds_VOXuF8DCNXbFXq9N`>D*iS;REmDl;kTgkN)TY0Zq+bL zHu2`7uv8>pDd)S1*-aEq)X^mZVll*=BgP+oBJD|NA9)T}u8(K#^F!SbGxa3q(sZdw zb*k}%J0FXObQZKRzG zI%U4F{@RUSPaUr6cSr*7?+SOR=C$B_;VGB>kfYu$_)LNF+5UTi?04<;Xmje~w($dp zu=MwdRV;;V=zV{t_h)R>TOXxIRs1;-@>{GcBFRI!4sSTQXwBO=A&#`76$f3}nW^7} z7&b0u}HZ;(c)XM8VP6|z93z(nJi1O-P^qOS^p z*Jig+ayf3f3Vz?)-jv78nt|U^5H$`=4FLh7($MgAnc`bCF{OUk@QLI|Jlc%CUfpnKC&r#~5b7ISPXH&q_n)cmdPa%vT>yb? zPOc-ryG%OO<=JZz9hD2(^V=bI=3BluiJ&38!OS*Kd}*kwcD??N9J#}aDF zBCDkOgL!hn@1XOH*|&kvQEPB0f6=SDl80GC?@F}FjRxmk75~o<&_Km7SgR`uS48S6 z(pGc5h%e6SN|v-oi2>^GE3-e%dEDlNC(3=&J~bzHqP>hAWTKOgJoIdrz{hbJAQJOv*%jO1$}!K<%x5FTnD;FbUFQ47NNzr)G`o?@s`BuPu@SQh(XhD)-F zrF^t~9?qJrNdN6CJk34D*~sw+mv1OiV#L00a#fVNc~ZlI6L127g%{LuXzR z`y{x3|tQb+%wg^ORaowL5usvRjZY6Iy$r)d- znoHmKsHmav96*V%Qtf20_uIW?Qfi**^y$P9R(rM%=KCttY4>k>>G|oe{}3jaEd#Qz`fxqUrz#%MsH=-MDQ`Yvvf~4g2aNP8!CBqp2TK` zAY9yWG@guK6y;U)Q+aYPNc^6Eq#6STIV8!E(pKU$-dr1Q+G+Yyfl<=V*O4vheh>}U z*d9K=6R+c5^0i}YQ#-4i3S;fzjxo8%A|gLjj>0v|_^!P|3#b#@(ifR>p?L=NiCPEiZyI^<`9HJ&EGMsUljIPd_CKEs>3^P!mP&$N z`WWPWN$~W;R9VLx2CJxWKD%WbfQ!ubW2O5dV9n%i8W#6^m^XKO*Zi33+uqMwZFux*wznc#mL?>|6X=z=& zwWGvLl9n;k*f7)Eh2(hP{q-3wx?&fU{q}PBNyi9oczwnEc|F@6b{w|(M8^aYSZCS{ z@-vePp4_5s8~z>wZszFBJrR%DlXyxc$l$$dO?k7CT&Ti8d{W6g%032>5YR)HD*!u@ zoCWIkj?l?;xi0q%NS1`pHP z>MNd!3Aq=d0^^?*g3bI@W|&Q`vZ4$rTM8N;|H1&(Tshz}!bC%vq_3ZE?+T{Pr7oq| z1{x|;LYu8v^>{6EAjNRad?qZH_1oFFj|#;Q3D%LSTcGj7a!bV{@ORPH&|aK2hVE+v z*4Pv2K$1iTTaa9v)Zy&kXJr)G%#Y-Tm7_S#Efk~c~Nz`&xPrSJo(zSB@D zo71newD6Tm4a;d4y1<)=C)^eO}6>79uWe-;%F zkh6SZ7gPFLjk+k|47~d)iXuUBm+22|Ldtm-hlm~IVs572AxG`(>)rHm-XHc+=onVAI=zIi)l3y3aJN99!_Vu=HpSYHa0Cgi;96{(Y8yprWbntV})5xM+Lk zKkFH~B`UOI1c5ts4bLh4;F=nRAKoe-v?8yyTk0pTz=j8_-}%&;HZMbdq#XXtLc zCxv%^#)A1efxg;_JymROYu^J1gAf~wI4-7a_g5JfX|5~sPG-|Uj>I8(64?ldTZ7}! zTYsBAPWPI(d3hi|fi9P)U0ylT!TRa9iK>IAMHc}Ng;hAytRHxca)H1SlcdvGdu)t9 z-{aPsNp<-%bWhiR+f6;&G+aKN#MFT|KXlDie81B$NXL zdLSZ6+5iRH#LSuoFDteY{Ir_o;FQPMdcvn>mN>ZQdEFr}D3HZR>-}0=S2UvUpDcsg z>a5CY3?86Z3`}#9%Gg~LX>xz@+t)YH`KLqz!yR>|#$H)vg_rfD@ooh_Ui$zbUq08* zgE!k0qLADAuJ#3)2FGQM3Y{lIMlTr3A2vy&e8vHgwQ2z}Tvb|%bezC^h$@b^y~r~* z>{^qLnv$0;=V`URhav+GUY?56p4RGoQr)ai|IK6vfLV>90$a`V-eu3UdtBs{NjjVwL1wJEIvwq{Q?6zRstqT`Q_oU;C}!SM}bID)stZ z*X?CblpLNEmv?(?ggxHtlnhk!i)(%@IX8JFYLF*;ae&+=g)2N<9YuJ>18(){14`<5$JkKZ^b3xE^b3Piga(bq**Tn3qOT+wx zX(Eiz2H*epyH2;zuW;kkeNE2PcEaXYEh-xnSn#he_0~$9&;Tkm*6Uj-Y~}@fH#j^( zTGD0muWtC-L}W1kD@&*jCXXTWj1OVeXfL&M;m?oVnzkZ!JiO5DZ$V2 zb|q+Sizn^F*0SlE&p4VM>g{n$vHxJp6ZrBIo@tmh!e<3m{*AdwO91s>0n9OS$(9@8 z!`SzR$_T_!r^Si486N1p9eIIVt&Y4U&nR*ryoA9`D*?LTau3Z)Ygx z>O#2kv@{>R;Xkt1+=eqmqt!rx;AsM#a9;Whn@qsLlc}-F_K4>cVPAkbBFPVK2v{En zlF2+)o^6Pe0KtpGlDI47e>Ey|c>X_-ZN+CUJy?KGXHZ$a^YnTR9m%Z*H;bmz`Ios@ zh9s2;H$>d_V(!a8MSU7;f@PESwhO;UC!@LyS_sZ3qv!WH*!LA(HSo-xM62g(6zsd9 zOEz^7N6k2yW-EYxt*BOZX7@7v)y*$sJwfy)8v@cbLxKE|(5pk&mRDym_M1)CTO({J zl)1_SdfSX}ULlax1Yq;AU(3|li6755VI4>uc%PQm5BP*(WQ=Xz+jK<^5mA zqrW>=MG~MrBrcaPvIwUzfoSn1Cg#aw3HmO+I5lBI!LgIK^!COJa!=c}R8hyUNi%F} zcU@C$*r4hG$0*m)oRnDji4-J64q&sDu}s|Phr>E^_3jk6zP!^}ClB(mZ=d8nK=o2r z8WK@}Y(ovZw)DS6=>0Oy20rOx5*Vs1-SjGER^(kb%+mZ_q4^0XhBWy*i<4PBs3@|x z3Nk41%E#h^I zY0SKk5D~%Y^MyrS72?b4C(u}%Ao8ocaM+cJ&-0vlcTVSUAWQ0~eE|=%`u)P$<{B+H zyZc1Pn` zF}e5pDrk1easb6Wrq%5*MN^Tlg5_wWAFUMO<-FTXRmW!)4phe!mtub0fliU;v6`jBkEn6`}xo1grEaALDlh(TMK!1F{^7Sl=Cxs$cE>Czj_6msn4{j~=sH!Ao=!@bS zy9MuW_5_&8J13OFPO5fLh1xX8-=smGvGEZI=ZaFdGrr&DvZ1etIC_DJo~~l zQg{yZ%Fe7TE_1Ws+slYOrtCW~Z7pMXS#eY_VD{Pi#C^;8t(vIeeoi%|>|^-fUng^y zj!siIhVOvtH?D{&lbrdV0A6k8o2x%(ev%rqgzFC`ujNXUsP$+4d3(D|0LK$GDjTfu zU(p44&56TnFE6pgx{@KgP+Q_wAeQ1cER884|NCDX-pFU67=+Z_!e<49#IUiEhj-hR z7h4#?ESO}1CqtnCNk~mXCOZ3q4`NAv*SM0*mSdN4+G|%4AAkx~_zFjkfxFhu4C99D zPSa$H8dvd~9#ktY%C0O$%6@%+0njDe9TY??j>q#I<}J#c$YF%U%|jxH;SA!mo9ke& zZ?ULwEo_+YzuTmNJ236dBLFKKc9qhkA_zLQMz5;b@hju{OAqKyw5)73Kar>J{1e8N z4V#h;8GUZa#-`Y#)3GVnj~^*@YO!ix+2;Ef^3V9h(5|tOs<|$5*KO>26S*NWB;3uU zQ$6cz90I?vUSIC;X_*MARsN+50hQ3C7g-cKgq1#{y|c-*TQZ_7(!BNd5n@6;;h)@x}sz zuslUZc1Bd`RRir?%;ae7M+>1j>nPRwif+LeNJ>TDp$B-;xTm(2;!nlL@T{wMJXY7u z(N>^twmxJ3DHofjh|{)u1ZKixMEC+ULsYz5&AHr9W6V&P=kI($m!4 zum1+ht*D;zwQQ?8|5IjX4y3{k9%2D7TYRGs@5?!VnR4OJWwT-wa6;t3_@U1k7ATTx zAIPv(-EGHWD~(K4)@lFv#}qqY8c!8I*Alj#!89`w8$FNp^sAegyF^dE4pChESiZE> zNKCMu`_;{<*f=J$oL5FiXtD(W2Sb=s^R4)M7>$uwF7-^zIVHxjT+V=|YW7@!cMMBl z`ZQkq!Bfxy2t~_e@ZLBm1be6H$Ron%Y>aEa>Eny>)aM+>^K)IpD8UwY2eMi2gLW#X zW?FL1_|-Xs!8ZWVP5AQ_bY1?u%tpiat6*kdUZns^W>3G18k-)H<%hXni&@mR_a1Ah zk9YKk&u!s;(7o-g>PK+N{8w7^|21V3wf{RkK@rv7(vjTW)X~asjN-JM4!WPvE{%Bh z?%Kyr^l$=}-FXcRmozQPdERYvHA_Qv)BDXP7%wKm>2QqF3#+8MXo89~J@PB*g*G&3 zG|Csbp0^gL%pL;rCV08lmsS^ti?alxzq|*J9Rt2+6sa9W>&;&$XF{5Hl{d0T~=( zg9K4VS1mUH*f19j4wK4YAyeT8R(6?9 zz4y_+{ObjvRDMnN_LNB6QUC!D4sbUM`s3SQ0DsqD1?SzpMAe_75Z;8#1B=qObL1`M zdvR=DsHWWV_i}BLKX=6diZ_rTb{McrrI{;NC&?x$9!B?vn4aAYz0( z(#0jjgp(nk!Q2l*3iXJ6Wy+O~sej&473@!@QY_#-k)wXmNwfW(6Z6sSNS$|w ziW|XAg>%s&it}CnGZbH?LVqY}Bb<1euqkcz&FRX`p(Za6P`G|dM(v;9RGL_@;sfMR zrU?+F2H2Aw8;1NK^N*Q%W#|xdou^#*=2oHBKt9n$jq4r8yNs%neRfN6$HRNSmjYFP z7={*xc8{XQ4S6H-+FJ;J^4jnRPsCtrSCDgFi~{}Rrr-KQW(8W@s}tgs0?>Bu+;eJd z;?eqFH(=w>Y=M4N%v5)`fj-zD9w{Q9ROR#S?F*7@7R$D&cqk*@W?%$)s9O2&joN=6 z-#l5=e7l=?0guW79Kv7{;}Nh%E0JCrEI4r@v1P*ZP*O}m9f1+TMrw6pbG-0~z$VU6 z+%kd&TPrrkg|;}!xdhooC`%|{z1qdrNPX1KLKB(L+-i!0MGt5o415I(`7aQc8NKKeOec8L$c3V|#R|O1u$q%mlNLAr=O&K!qPc-Hkw&;*J}-3V zefw&{l@$C?olAT_vEwl<{zq<$C&`WKY*{Fma=z5WAR1hX0Z9H+S@Z0~@ zmH%G?SGx}$cZtzGKL+5cMHzJbrN>Z!51J@=b#g)Z?2scSbm=FjItP+G<-|UWNoWDP zJt;8lY;&jY|k4von^GB}L!afN{Nf!~~j!^})k^K0iBlj{M|C@8*iDqNt~u6xvJm$rE6CeYKN9Zay#5 zgNktS_uNr&KR4p&z>giK=<2QAvVUB)4c_V7^!mcI4Na5AzyJ6K6oE;NxmW>jbZ`wkNPMsD{^);n?S}a|biC%rdLgeZJ^S07yLc6+ zi-98)9}zgX+8%It3)xkYfL~B$Pn=@VBBp6uC>02$+=c1C*{#Y*O2sJXVE?fe(NlOg z5HkFMH$99rqEXzk*N?lfroqh=m$AW4q={O1;?B55)UgpQ%ME8hy3Lcj09LC}(E*|V zZyVRg3%)hFjzu}e(i^6AyU7Lh4zB22&a9`;pW)1?WxoQekTU)*&iyEDeGTS)aQ*Nm zu_4jNp1?*b`3>=UE(Xwg%n%?;`mo|k5)H1U?3Q%y_PKG5mW%wvwnFWQ_7V|Vx+k!F z+aY54mT`?#!GK);o}LreQk)s~9(mipq$)NvAd|nFyHPCFTB#M4>-@DSco=CDn@vbv zb(3?zEWRwt?*ZRrA+tz@PpT-f~6 zi1OU!jI@8Ui3-*fXrZ_t&Bw|O)_g>-!zN%VM^_4X(Q+=f5O|K+jY%g^f8?3f;!EDU z;3r=vZ3At_lHB48=eA-PMCfcjCj>n^v`(DAFjJwXjv~V$+E!hJtPL)7AiZ?)!^RB6 z+k@l_mf}UnhSw{pvEYAAXTL+^S-t_8Mz8`{^>CM(aN?J{yu*(GcE93FwL*dS*M=TR zT2r`P@~PLh&Y3c&ntTib_hUvlHfL^bZD_22M_WfW7KluUS3O%zu!hec6#b6<87bpq z^~I4)KuflSksPS#szt07gHo-fc_ zSk?NJE9eVZuV32gWiLBYqGhOsb^zEEKGCP!M$svR`) zmaXum-|cN~3DDB!W(zmZyxq_7BgJ^F`$Kv)L=K@mU_!E=yWB`W)+!zsnJW{bYhTex zZI4p!+nIYj9zJ$V-M&(w1Mj$C6Uazy^dtzt;hmy<@^}!zRmAj-rN5{<2h}WkwI&2Y z?cdra2jyOfM?sbY684r#6(5Q&%%WN#q<9V3=A_K`WdH9c^}GrXi&D2I0Da4P<^o3+ zIe}ixjy%I`>p8Vv;0dZ-x2xdwZXj_T9y{2qK(?|cJN*C_wO8)7K1}3gUJN0!83aA3 zTi?#d=B99jaFp4F=<|()m-z@#6Czn$b20?QPFjfrket}*us`4s=?(7=B2_MUXkvNi zH_wWY$laPK9-OCFz_zPR(iYE{;-@1d<}xy~>8dB;Lap~TC0HPCEdcY$^q4Kll9wYs zc&?6ctVJN~zCZ9bcO!Oc3lwjAm=b7tqtkBro2-Jv z?UfG;sKG}3jxYHE@+p8$x;`MN{ILn0F)gL9!udUz1Z8B)PrZ8a9XaXaCA-qhj&AG* zpy9Tt|LW`hn^-F^9}u6xclxceU$@=&A3LY zyH8#&#G~|n6xq#;J?#+;VyzoCgkV3Z=OqurEv2H6ghae)Up{Q{P}~wM?=+sYMjxcH zyooiymJLVin^0DJNyv*9-=^>r7s6Ghl{VTTUGzN~a1qd>Pi&^J|Ok*33ov-jFvu<*%dQ}()!|vi!=DfUt&9FQw z;3ClrlUl6i$AlZV7B2w9Ntq#R2+jF>PE+D(WIHcj!j+Yf+}o~Y^hGtnj$GbL^s_&L z6xw*AAlR6ru1S&dNGBx!|JoveSiBhk*+;rIhqeYy(yF%uId??$->>&|c0al@-8?&Z zQSfH6b#J3@JY{?-QNB5Le*gG4W^p{@tG+hnama{`+Fv$vhYKFD+V?~@92G(tYvJzo zuZ}`41Mc}m`OaCdIJ&o3^U9zJqjO$-LY?DdW3!cstmr6}#A-5gk-L}AnhfpQ1MgF& zsi7VhAL;K01mbG`=Jhknvkws4`cxj|7%Ozk${V`@Gb;>(pAxblmMg5vLJXo8UtDca zGS=OX+xep!H$YbcfvBI>1~t_TsK8H;m3xKW8F;imig@{G3+a$MK80zG!5hp_Mg%=;?K zTh2JgW*V!-lg{D4Jk*KJ0(~WblzA>F!yW9`r<9^uN|SR1aLXqc0q_GGDovnh^i$xG zmK`Km9s?ti$jC0P~3tHBNj#p8-r z?6*T!JjnWfiZwFZG-D}B$3D z!b99FRb(|^W&ii^y`{SP1s~AgQaSz?-h$}+aIV-`fGbrg8TvMW>}V-BF8+Jqkvg?u z8zZ@XxkV#NW4LT#n3%n=Xe{sZbVxf7r7F7+^SG!`Xx-Py@lm~y<4`^Uu2IjRQP$TB z&Ek|vA?byuU-ni#D1Lkp&>H7Frx$$seh>1b9A}^`ClDJmq>-torTWO08cR%08JU)- zzR_-gsh&VI49`e-G!1Nt_Xn8|{*E9!z|%lA9!NJ|a||w48(yY9N_U*$7m$uWnBnbV zSG`ZGYBg7d;F?(^qE?2J({0=(3W8 zVwo67;{%m=wCv4KmGGr>Ejd8!17HLKL{HiX;*S5C4tR-yX<7hTslBOR7xFJHI06>h zKmk^uQ)QUBxTNaRSNxbI!mpXmilOWN)l>1&!6WGlpG0kDSE7tEoG{3Xw6otBlD5yf z%KtWdrC$?X@!R50>lwYTnIABq2xmh3r@@JXtx|3Q?tFb^L#QO+{TF@nq2LhGsY(CW zFG_{XGU+dU2$`Y=#YC37f6apoe?5(YFcf`)WGlk*nwzf2lPf_XK!V4@F_)s|d3l}Y zJx2$AXY>7y%hOxH4*u67k&`SQWleRc#HZCOpDG({v)-_uMEpi5fC4V@l04cAP$1y3_ree{oE#8EF}+U*^_1lbfFG+0b>y1#9y zH2XU+6XGiA<&DEOHYM;vx5y4kDGLGCG4YqRyKR^K*edvw;P=9F?c!zXSJ}`U%#V-8 z&y31DDQ;hub2_Y<>kQDzhWfkM7R0%0xx&&bqn{c80uJ|K)xqUU2Q=0UMKYqedc zrYjgb7BGIj|CM_yt)Xx{H(Q}D=K*Cpv=_uzAQkOPbE{aa>~UOh>}(vG;bC0m{zjCu z@_3on3V?}f!U9-}0zP)E&)124jZK0$hA4XAovls5)p7h$*6X!{Q zrJe}&R83WJE;}+78{lbe`ZY{u;wPbD5TxyY@A7H5!H@WH_{RjfZiao4=rC`6mfO}B z_}k_!Y_1v>T={&NFMF|FY>tSi4O%g;^udJ%keG^r`l`#GNCC+zY@%=2Hk|XC)3%kq zfTkNEIxwf&cdrjJrv*^?KDb>SAX%J%#DQYha#2=k0)j)zg;&i^HGKp+KC)G+y8Ojt z>3JeVZPZNhRdhN0uIYe(LMUjG^x@JlI1l^R3t1MUr$7pSy!n6%eJd2G39s#;Ml<98 zp9O$nqA+})^v>BefJXUl`L`X%F|3VntnCw_Rgvw4nPcBq+`g_G8HlQk&ECt?>|AI# z&q3-2dmmyC(a|dNho#C_t~Yp(`=j>DZzih7FT!7nUTY(63bOlzZv$u$zn0DO6=hG{ z)+!0GTSr4_e7F7;B&fD}{-mlH17Q7A!S~yD{Z1Vx_+WhGs5j@RJo{G&aRcbjnjTv5sLhQ9@ikwP#6YKnknn)RzMMsSQ4im-HCHLOUM7cjiBV+*9xsrQfQxw2j%XT#Ro9TMY@pP#LC{*;`{iJkng^GZ&S$7MQ1 zZiI*69jd`kK@<%@gEXtqij151wN!O37tC-ZSjK};MqHSt4YepbIm_Hg`5!1afQY&{ ziqj#y_$yr~y(IMXMT{u_X@EU{=JR4L?|L@SF6gv065L+mi~<`3?0Wp+RGc#M$TDoiE&wAcPiK0K zz1s*R#5GR8eZ47o*kUU9eS`fcK1Y_yZ;#?N`*>W{Aa-9o!RQ|elACfRAsfeFHDvk- z@dm-K{*<-K8kn?YrOd?@Xzv!UU2yjA4>|MiZ2=WW-zbjghw2I4$ZNc}r>*AdEC9L9 zcGx*gSxPl8A_e>IqyicS0A1A8M)BK`j$!(b*JZX^Bl+bSHO=|MbpVFfkl9`{|BpKW z3D8*{lPn3mC2Kc44>Py*f6yP|Sd^jwlJha2n`V+7%Xe}Bf(;+nJGpVLbp8pcAe}|& z=Q6+`+eR&^r67JLL`>jv=P4# zasusLvpiQrBRyz353>D79r6G z=+BwNl%Xzooncz6nor|t+sw}je_BNN-+P})d2AB6nX$ZU1wruIj~-(>bTH*9_`kZ^e>{f4T>p1^-c?uTcw7J43gla>Q1N#3O>KnX z&Tryt6--IHb+zuouIfLi5o(9&Pqe zN!-`c7Z!*4kl=iKuW`)0j$!H9&WT`}RxC1tE&PP7m#zK`B}4bW-|w(}ZmlME^Miz) z^4(K!Sv->3%_QIDpgzl+Y zJOWAlI(;&2-YPa24T)0sML%ib^KDPpvT{*#(+zD0S zV*bK&py=^NF%%uzx?b~gdk8siMDjwNZdFd6p@|)Mi57E6Xo0{D81U z>4$4zi|Q>we}3NZ)lz*MX72p&xL{22r&Y8;&m-2V*Gj~9NO17vFmVAuwSV61hdw!B z|EW6>xG;G?FyEjf!w0M`=Ettjw z-`8f0V~~R6wdM7ht$>nhEBl$YZHip08XusJ=+Dqr;sc5!6qhC*U|2K;07Mc~(wyfp zCyLi3Jpm?v6>305ur|24$#_CV5(AhS95%{+N)6@0f%V{nJ&i^wFr>#1Uli?E=XsES8espU;r;0NKh5TEH=W zM?9FO2KwKlz<*|I7kqMqDL^~D@sW}giG zS~|Ni_4BCs&KW=VRD|aT?tCMF@b@I^8^t@kQwP!_ zoDb~g8BdW$JUEZwPX8Z!e;pQe)V+=3LwAF8NSCB^4I&`YAR;*+B_W`IG&6{ZN=rA0 zNJ@7O-Ca`B4Ba&_%$)K0{(kTEzK@>&&vl*i-*5r5KYM@n+UwqH-S=8vv@d?NVK#x7 zd+IDxfjp`R6{b7yg)PO1X+Pd;_2X#&=$zP+t`kG;ebyg?V3Tzs81Ff~mKER;6?VO# zWnv1-Gs+dEa7~PbFN#H{@qAMnIEQewAb#}f=SG~A`F6tLNk|ovtu4CkZ>^;JDuJLA zvrp(mm5faAs)}2VUYe>2w^wlR8u>tSv5O_U5&a!JOwl+Ciiq{Q4QIr8FnCba@ldC( z&c>4`5>?cKV7XmOd2r<7P6*M_3~7$LGhY35gi4b3Ja|yR!xUj`RhwxR({s~lY=V#f z1i05YR4*_&^1#4N31#R7QKS5kjteyjP(~E*gRn@vzD2aZzgLX!Nyb0zpbx+zq+Itp zHzwS+nnSHt(6j3^bOHcP zwkf+kY@EI-LqhttlBW}2l77poeD+@MldGcsd01EwHsMZo$>>?gHZ_InF;nQ<*9XtF zKsEGypjjD9Hf!$Yc4EZmgjpMeHVsauqygRVwtO7B!?{tMyUK7y{UXcMLj|F z0i;J3i!YFUQ(XP-#4u3h*2EZ^r^*CR!UH_qE$`C`jBUrPA>B@n&jlF%Zt}b8b=V<* zP9Pa)g_LP=P_1!%$R%CfmCs2!?vc=6Q%nqe3)C;8Zip~&EhAxZD#`=S{c<@_2(Zwk z*CI`NH+rqj0vD^f6@mA@>d{JpvFT<y$+Rs)&XMa=M zh;?b;=Q)pI+%cG6P0VWI;cN)%cGE1G<5#-@*s8GwFW)$9cgHM-VMDd*qr#p%B?go4Mk^Dgy8$fjhc8M66t{Rqcsv!N3xcGl^whihBJ#kl;^ z@@73m>fCS6j9RWwqbxnu2|o6u)gS$E){Ejm?EiF}+P26p3K8?a^(y^o&q+kVsuut&gLKT4_bK$d zk9yug3i*hc6+Z+!mnxgvsVh`%-gnlfDIW3qjM{ghUI}=gNbgU06!FNi;k5q|&h(yJ z_jM8Lx7)sA&-tWRrPlV>(*Dv3hCEcX7CJ=`cjA6jS2BhZg(gr{Vz3>R0I+DD4N6k6^CgZ^qT z#O>}&{$ddT;3^te$$NH|?oZ_9i^(MOAqWR!Ue=_)6yar=oLzZ))kNdt@-$2_p*O@D zQh11=wO>y%%u$x}v`*P>r|D8D)T{1yxRmj0BHRx-U6~00S!Bo;yPtYnU?<|39n09g zBo|{~c1IBSGa~pY1*5Uo%Ye6}qpcFb7QI`?v%0Ju$Y9G7v!xKV5PPtC@5z?*-JNCz zHN1prMTG|Iff3&)M$~he-J`=u1s|(kLeEc;rnC=9AO{$0MK+x9v+NJuO8P#3^VgDj zVgwGlJKFbs`r-v}ffxe)PnG1SxVc{txF_Gc6T^*FVFx& zeP~g=xHeVvt+yR~0jNB_W-qmm zV7RPjlLq-^^A$8W2wOt|oe>GTHE{pL-bvrgW7$Nbg-^?m^EOQhhnP<0nyU*@@xNW@ z|0kypO?Ygjj|HGS6}yakf$nzf(qn3OJN#KAf<^YRF2p2t&aotO@tVud1hecY17@rr z8z6dqVdyi;I(X=tZc>3^Bekg0pcOns2`4O@Z$;6U&@pbXFzmj0@RPj?c7HG^lPDd= zvAJcGE*#z}om+-Nlc@iQC}%Vuu2$SMZiG~Z>^V}0qmtzJXZRV zm@NG*ibxPPTc8-I8HJ1seW&HtL{c@X@cyvD(U0sq9bFKW_-$6tm_nN9FcM5n=N>bN zMCARx6>HcS8664nY8D#g8Ky*&mw?I;voa7x5nZOAFMeb_mb#9Vdw?wi8M;|G7J>09 zNh_+!0&je_-vIpkVv7E`LcE_0WjRALMf~6_xDgf+Ef#{~?Yi9#dvUqkbEh3eO5ALV zpncpbNK;dIaUZ0OpZX#2AIw23OqpO+Z7N#c7%umk&=SSL*&2=7T?)eiNuD1fvOeS# zIR0GN_`DxNh+2F0H0B4?t&lmw9+Q?v#2W_bH8}iWhl7BgMbw7Tp1bGZ>j)tcUEOx` zZyyd9Z|M@XSyu0JJ);wenMC@(rko`-=u-ufy%xnH$s5Zr6A&QHHcIf_qEncrCbL`) zzb!kmkpPlJ3ic4WMP@hs{17{b4ZaxCh?o-axqJ2=rrTRk1#9~{TpdA3u-VjB7Pb@)%Al;ApnKJTE@*ygyB>Gh0- zxt3?8yBTHLZ)Kq?)~yBluLNE|)1`5Oo~{<#OskQz5as6(wZ11Bc<=CRkMH(Yf&wDO zY`AG@yWrZMLQ3d-iKI<-Jd%4$9awg#Hnh%=P6yQ}*wore9o(!m%40OBrI@wskQ_Mi*r?p?EA+X$5Ue404} z!}IRqUiGFpdmmTe5Oml5z&V#-++Mh&o6%x|!97RL+=`fDoRzyM0#q3gJNqeOCt`?o z)gv@2%KBZw)K-&6J6p01r4r6S*KFjt?)pLF5K~}~>V9%0s`UZlVBt6B^y}wwNG?SmP;lfSNE_Pl2abZt}-g1-|umIXzG~mD5 zn#UAh;+@Ysn*m!GGO84KPP6}Va$$7tOqaj-_!BCOqpH3O1N;FNKsm! zf;6u}FuuH`>C~V_p3dnr$xd2Xv2_Mxsh`ZR(0!TK8M4!VMN#j2XYf7m-9GE)#5dk+ zyn+ek1B{%lVCN*cM=~khJhOG{L<>nd841KVhr-k*4}fj}3*)Q8gpX?YrTu@CEFlEV zAWT|q9EjLWLv_MjrWpL|+)%V3_AE>t`?9R%o_@po51VJZaid;MoYfJSCNkOIrB&+& z&cy9UjY?TP60M43R<!jP(sAz2ZG&jdE zB67ysZNZzzbfMk^jD$}zKfT$LdCFMtVI!>A6v#L5;D(@jzTUNlWuqbJr?%!0hh($t z(fI$(EE_Td+SI`ty&6+boA>Uoj(GEj!}hpC034^-ug3bKi*+tmU=0XkZiSp*4p6o{ za|bS<_*!lsP+4R)Ttu^~ZBpv6D}3Rod;16>CGB_dAo)i@(oYaefX`Lh9Otvm1u9A9F(mKi*(d`M-N{*V6UaehEG1ppSEySH_I7J!u6L9Vz$bufi!LN> z*G2o~gs=JRG{8b?igtqrAiq5CgoQelDpS=>Q6{jwIxaNX58QirnN_m>;z7><=}KF@ zKZFIWib(6#S$Q`9F_{LRfib!AB`^;mb}_g|_@&?>&zs&GmVm<_L7s1i9qaQR;otid zJA~=cK1x=fitu`ciEj-!JhsPV<-!OCmZyGYug#8jcnwT*jLf&f53HkzjJJh`TWGlO_?8AkQ)o~e@?44zCH&W|$34!Bo zv)PrA6m+V%c(uDu?PMuGI(uR!$~4a5K@o}aZ=|^%zR$6VuZ>2!dRRMjh;04^^WB+9-Z`@esh!BJHo+ ztTz-@q5SWd(}9ck*0Dn{$lBcTs{uguLddAa>}RD$m{UYeUcuk12@p4&ADf{>z!a6eT74~9)&(W>EGvv#; z(S5xi=B{H@D;q0jbT67n^PU>v+}+1#TP?9tF5rwQ-#WRmz0Y>+YTTFnI>|b_=T^BV z$n!UuuMfkeku0VMU|6f3e$V%qF~%w##baTPOv53@qI7|y!3x0%Kt~r zi5aZP4IqE~uoe;KD0oF7otXTwOmeoW!Z*~BQW}Gc1i1u>6MSaYyw1LuNOcs$|E78 zgo*_SCG(U${Y~&O^4Ij;;DJDSAuaxuhnUar7lbOee+jrF1*9KIojLq{ zscvHk#`%dT4%~aslmR>C8VQ+01xNrtJ3B_`S||5Fe%>$%U~txZoTS&0Jc-Bxw|84j z;K|MB2bhS$S=IYd&MCe>~Z!kkK;OV3k(T5E7SX`%bGynpcKtoH%CG!R(Pi~>*52(= zP2n;q7)RrRbn4B~mgQno4QoD+^EJF!#piPKzIoeAX8U}HlQl+<`m7d|_H)8!A0NW9 z=!YT(HaLJmc*3ME{bT%Y1TklymR`;$u@>yZ-@igeT|iO%v=c5yJ6u2&l?&uqBb-g; zr;fUFPNUqx)!+0}E6g?)G=BmIf~{1wPp@#E7uWd$Kw#(kY=8#oI6>$BA`{?($6L6a zSqP52!m7G*BGH4gRbzi(>yQVsaM-jyB)S*!=^LFul6OuV%zVzWL#56<1h0anpFsQ9A2Zn}qB9OZet{5x7l$oyOD zi}?E4;?Q1%>8Y;QW1pJx+0nnZ1^2Nv0Xk<7@&4^3lzkT9i;sC69RYA|r?MjdY5Jhq zcq^+(1>E9y*6IHxNaLtHlv(x5TLvOA2at^c@+eCtBI%=pN^yH^d*^o1_g`->3_KIW z7Tj|H#L$kFka30MG?D3k*m^AYk_*nlF3L1&>Y^%_eOyxm*ya z8bzUrG;!y%)sTRfz*b@F9*a1ffu9VcR5k^3p-1u_lx~?$Yemk_ZAQ~_ubXIftUOC0 zG=Vf-o5U&(PJ*irWA}^k#nTOp3`p6`yMKR20O(5Q6d*z6NoEV)1DA29Kxob;qVLoDEEqUgKq%V(1PZwj7{T{Fj6Rz1^HIJ-+pHs~YZrCICTTs)}{nZIF$U+g% zS5mIUf6LOo%jt&9@^gDF))bOuE!0xm4V{?2Zp04(z$H4Jkur>41kPiY|2%odDW!{5 zmF5Qpd*-|ZC^rOGVIf9H0}t>Jk8K>Z5wZjj{N=#L z#=1evPq4<@nNl64LM4HVlgOqcJKhciaye%!V?ou@3vy*b?Q(%!ziUF%gSM}XO%$t+aws8j7$yWF-`M~Q7{4%KeOuYXlIXGDQJ7U^8=cuiP6itQLC-QIT{1?pr zgEDgg&?XOq5e4~zS|U$)7SSXIt|RfUY<;#WlpwPnx6-DHnf@f;Iuu95iKM``MvrDp zupkH09vp)%`WhpmQioCu@PqMt9`lE4(O@>31`T_3{Ifs-I^1rBeb4g{#|-+?{KY-6 z*qy+svT)GUHi5`v8|b5|9yWl|COTTnc}o-!r?h3~Vu-+WNc9TV6Qj>$+IaZNfLg4Av8=B_ zim$Wq0QZ7uQ*b21`Qb`tnh;77)ZzSCKO zI9SPBvzEJ_@hOL8S(zO>D!qC?c!0__fM1;C8v&xKv1_Qzi@<9p^*gWQKuZpC{ompr z$aTI^g&J-Ozds%|!`Slvy9hlROA7G@3vdG1dJJ}b0c^%dI19QdU7Vnk_1jbG5hl6~ zAEn5fTpnPLZX7Nem#CbyVIHi$2vnKI@_TunU0|F80{Yhz>?|yYW&Hb{$3tnT0X}Xc z59|?)Tu~=B?Hc-dg81bVdsCW!$Ao#5~VWp?jzx*ztS8o9=NSVn$ zW<*V*z7&AzWoYyW?*VQMZO7R5O?mO^*JS?reVWh*fScC^8-|H+;r=c6Gqch4#-yN6 zhd0=XG>xKHxnUKzjLX2lee5D)z~gj^WKq4Cek!OXnD(g6rEKW0+rkPncIhVo#M3V) zA$rp=1$=yGJfoD&TfWb_-DmnMz=u`x0OenjtQgA4pTj~sZsOXxAB|!e4Lktlipsvf z=gj@~Kv)Tat1HL>4Hz8lopk^S2CV(d+t-)>83-7AcN-fo*X{Q~?a87*c-F_uJ9fWH z4Hvm)+O#VqwWfpm+#&kJZnS&^7IMw``Sbl;7&rpfilpJ>P`Q7$Y)b?zmQcch^lF^# zS!fDx*$`)vyIZ5)-0uFvM*bA@fkd3jM>@Syqfgy_Ne})!-~73L`mt~~YNkD@9NC>; z5n%sytu-P(nq2_*o1hIe8|NNg_ToL8wTj+~TLF**7nIxwcNak@mWuZjNz03}!Nq>a z5)+4c_6fN61?qnYiUa+FtyGO&iXUpqI|auQQOX)$&g!t#@O!O5jOij%NtOl*ATH*P z=J-Yi{31y`DTbq#H#S-Ly9`9H5XJWmV_h+iV1m$jmge{Rm6}Dm?1wlVZm5E zz_|+!eDe?ZMjkA{4v4w;@*&@dcrC{Fp^-WV33G2x+S=x8{KVnRZ(GrPbA$KOSPRRt zwt`X#+2lndF$sT0MB`r+bR6|=3nhtM{L1}xQB%gQ&jop6UrkFqjRW@qW`s38qh0x% zWQabEr2mWvHJ7I(y!l=*gc5XR3c!#$3?$av(#f?n*a@Pawx>^cD7Mg%@21nUmbH2I<`6PZFui8a!oGbQ@j)0 zpYs3LbNsnH!~q~1ez9vU{b8K-uHkkl1LXeUk>jvc=Xl_+E`6|oy_&wjtdBWHUVP^* z@6F~lt2jBi{+;?42EF?H65N@L77rIod_yw^q&qKjr3Bm(cQ#B-`hd)qF1B(U=zlwbNWrc zFRh*oY0>-Li7mP>;Zu&!@#A^t7YY_lzKuQ$inT{43lJgM&wC*+v6*QYuoO?F--+YL zL}WZ38VKPm{;(55$V=^$@lrDmN19zv6ekiN-v(2$&*+Z%AG_gt8sGdL2H@V3;l31w z)PlZ_kERQj9z(0Jw)@>mkjv5)9j<*8`x-Um`-?|i$RKXySu6PS30Y0WdkAdJRyhh^ z(CTuWb-kf1fMl2g7vqK9*qRC)tj5w|L>>RcBqjS%NHaRQZLtXY?^?=#$bMIDrcnpVN61a#r1E6}}jFve%^ ze^BW@U<;8EJdMq`$1#f+2|HN9bI6Ai<-J<@r&6X138f)l>1I&kn z8)WPpKvKjlR7tyF%~(mv0=1`4z-JU_T=?m8mVAUm8 z@-eahX$W-KLgN6alFi*7O6i~Mnm)#DcB62k5msGg8>@!=%Y#_-y{<@@J zWbc)*vCw>rcPRNtvWxE#$bjccyuKFEl$o<7&%>q9e&zZg1;8UuA=bS1vHHltm~!$c zBMV?_W>wIK_WL4a&jSkV;Ddkrd~P6Sk`{n1(%Ia#r`bm$;?$5VP*l_LdbVpT*T39% zdHscgI1};J#7n$Ti8K_~IXu$b7L>f)1gt4TCH9DNvx2dO0}h-EqAMsNMnn&4+1%xU z^<|hmRNLdsyP_Y%X&&_~t!>;An>d0PO)?}DzkSI6od?>L zi&ko`?7hmA9WfG>ZjT2KL?|&6JX!z_T@))Qs{;OcD$gqa*#rfGiq>jM0+Rau_T}qi zEaq)6^%tgcA@-jYkQy}8YVel+BYs-< zT^^;LQq<+%lQ3P(2wmRi_eU{}Fg~nzg8o6d6A1>9{Rwijh261>uV)mj_H^EsdmZVP z+eYOgzhPowHMk2EWo7n2CT>;z09}qL{oa>T;_mL&wE-Q#9;?S)6v25BMg&aSeK*+W z<)+qKu~{oAZUI=4t5giO_djG-o=9bt(l>lHXlie{9 zf5t4R(8|8MaD6<5tN!pfy#A0Y>L!gDhDSlk50iGxG0__Pl;)cNlvZTL;62Is@Ek&P z(OFTFb@k1E4fu%Ae<=#xqyAOd;{t_Kk<7arsqt*l>>?&p2CVGLV7>NihK~Vqw@$0w z9cLXF|6tvT1fP-Df5HTq6AmAX@da|mUpDxHdQAK#8WnyznuC3WT^G+dZydt(1V%%l zK(n~YRJ=X4FVxda$X5@0)#wdEh8Ixoje2 zgFdLr_liL{AHzB$Id@U{zd@;hVb6l1e+OPqd!iObUX^!0Z#ZXw)f23W^Vlbv4-1Q*yblXNJFI*4Zu?(6 zwphygSI=z2OYbNc3LeUy3d(S~KMr2*Z-o!5TlUyD-j$^&etenJUWp<^7le-~{9yQ; zxK9-Ib&;<6(+eEEVfOR#FX-*@AHWjAfvJ0{2%qdDKi+RCbb=U>5XPsYOSpXXK2ZIy zgySFHIRKqF2LOfO-6iiS?`}3WmLn*i@m%q{cdxvQ z4Z?u+>7VYh*$tC6GU8cuKpeZ&XGZEKg83ID<(u2CF1|Yyf*FjttU(MQE~q{X8A}kF5ss-*vVIq z3uuoAxw_L`#QWPiK0#Hf0DX_ZO_d7-^P*vlcvov5TcUH_?1?Wb=T|wZr3MOqP(#mg z@Fy{nnT0ZoncH21y#5s?fZr|p7twOY%+4hWecs;D-|+Cr&}BakQF?0mWrOnv1xppu@q4^a z*SlasC4rA8U_v%?KQp0gqI0EBJ2#*qPp}I*-r}Vux+Tr-J}ZSvSB6+uKYfTB&jT^V zJVz&(|MoU*n8B(f0P0H0-i4$W-ecd}EI6(g>`LCus&FA%b{^KU%tb%&XH{EXB!59M znhj*CM2Ouut2IysX)YZT5|)#<8jXbrU({pQy??B*$3hKF2Gbw@q^VfTVX{6{C!3^N zDSj1|iNDEks|gvjmPO)m!*sx6riV>k zE<h*`Wiq~ z=jo^b6SGjllDnnBz(?7LKrmbLYQvm9oS;z~thIw8n1jPA7%;I&4e8ysq#^Ae{r2vC zd1&kVP^q(9#6Mn<>K`&aP#~4`rG#n%!7e{eOBY)9;+&X^w1lFc3JUN?DzB!|$QHa_ zXFKNe<-0)#ZfZH3wMhNfD1WemiJMwaX&(0IunSF)>tn=2IX68z@YJ!z*n!bq0Zpgw z7UQU}{WPins^}XGQnOMPLRPK^J;lXZex(fIb-S%4RQIsk3s9 zgICR?z(de7I1fc3e&?thc=ENw*ix+t3Lqe2mfl43{xI#)&|nnL25OD=9sIacbWn&! zupkHS(_iH6+3jVUuv3k{E9nYxV1_dQfD<|u{8dU(M}~8L&w9N&-CnMv8#ivAV^hv! zO|5-9y(=NkKFyP{biK|$@ixvpVP2wm1jttAcs%noySVEeB#gBkiCP7#IlF$fp@IvG zTJHe@F;e4E?9X2MLoflPnC5CI<6Se+|C;>&TYtPp%{5W^C=}fUA*AjTXgt9W$A9q{ z2*tr6!4}MZWTCI;EKp-=jE&*ERO3qXv+3SV(!IIIyQ4JN%I&6gpDH;h3ZlF4i+oq&p5K38QQj-2$g_StPEKZK6!RmWTd% ztBu&i0MFo0l>h(vl{8@nqQrrL1y-&$!A z(E;ct^OxJH(EkVpVk)8FqdbQ-vzFm_^Fo13RDH}VCp*^<%&ts-sOEAVf0SyrZaP`- z&C0yVoGv)K`2cfR65D$hc`i;BbkNU}h0x>BjzK?;jVTlWO;)@k%>)Ef)+0^_9r7m2 zH4HgUxX9#>p?P>LJ}agfYJQsu#){T+m3C%Q3(r@(!)ZsCyq5!yc64Z28-PQgRMX$F zBOBZ%!h)Jk?3o4@HctXifY z4s@#?R~xLfZ0Ke2e-`GdHz+Y{E`G2Y#)^C)rlio@$d<)3k}9#M8Nx3(>Br%IKCZ4i z*cP}vc+muE8b>9xL#XZvzHmSIt`WDTn=E2In5UUEG9Yo>?viEXONpG|%TGT|eHX-v zwkWzY%)nOi2wxHaHhzRga6mA^k2E0vFhsX^r|hd_lU$&7_oQ!Hx^Ni`Hh37dbUT!^ z6cYC?$h+~n4}0SNlH3+Z`vIe|cExgThlamJheVA}i>c&-OO@je`LNDH6AIjhs2mjX zM=0LzdmPNmW@`$!ceNh#s`6D;igJ`oyyxST| zQ7Zam*Gc}O(zf5n zI{osWJwX`38mE4cO+d~zW}LmelLKG#d9v){ELpqrBkeFvp>zyh_Wb+nOlJ#{e2!9K z&6=Mh;M|+G6glt1=aJWbR9dh$+y`4%lPhoNul=l*cAN$Iyq&YMGA?!yb>6KaA%Kv~ z9`MDq@vK&)tXp6ra^l98+@uUUO8&Hud17UTO;@pPLKoI{lG1 z(?{OmRhzx-|ICwlJ*Zsk^iFO$0zp!i;2aop5dUW=XDzfHG33^AU}Ddx2QNDMoy@+o!OI!+bVpv0xL!!zf%~GG z4r&*^O?hh(UMlX!c)U|(0ZYH`OW-TlA>25;i%(y-Scq(TSspo561>3Rn=je%{?F#F z!o&si>=$~kVB-_3Wy|t=Nd<}cs*CI5vLNjr?itRmVDG+0`KBSxJbr@`bvE|ivRux2 zj4HH=)lck!N||8cm8B;Rxi)hAlPI}0-*r^*1CRez3!rXtZXtifB%`Thbk6^%WiQk{ zkp#$w^)2o#U9=%+hI}tvJPWrX2EW_4KZa#ePCtzUxU*D ze#MNI+He4^q%j8#3r3m8FP8=+Bmw2_s~rw@S!PlUAn)>f_7b5r!R*rfm{j6M$TGu8 z21Y>N0tytPV{*2cdf}sbclutgI`{2Usph9qGF!=9GDSpTezpxGvQ@Y&L+e7gVIK*3 zl`t?FzeCgkl6{lA+2|J$3{+4LFfxY2W-Z{Q)zkC`K|)QLzAe^Xhk8pkYF3s})uR^~ z?LU$>@&Ycn?<6X1i-Jg`&xLlr-|@ySUvZ$1w|6l z0bYPdGZLxT%KfmN?59jjoEdx^<{A$NyxEJ-&L%X4mt>hML(*=aAojbC+6rSR?}YTNZ%-1d&J5}r z#hn4!zK=erbGl!zhRud^gO*D-&Ui9?zU`nmD2TG}@1oxQBqG#tgqXhc6n+tlaiONZ8ine*+` z%6XGR4fO*&V@qEJIKh8=R1Ihzw^JxW9eN6PN^9gw(~!zG0wX% zF?d(iTxC6vcCd+?ho@?AjqcldrGr@>v|45UipJRdq%VGn_ZE~{xh_uUse5VYR>XSp z_N1HEP1N^vBmc)?{`bmW$*7;ZNQ)V{ukTcAK?%#XC~dB&%dZ%v{e`y^=Ek#mhZeFI z4s8;*w(oda85H*p!Drg2wiL8;+;mi5`pGdK6*x_q38M&B{h4Eb-qkZogx&pa5W3=Wx#+QLt2)*f*(9rI>DwG@z z4oxxP9rN(dmEv*kz>rOo3p(gz=4EvggJUlJ{@H2Uvj9u4N0p=6lfHDrch$R3d#%)3 z+1i9a&7h1Z4KGqt&9w}xtkL>&dBkz2hvA{~oV$~(yo9uflcqMssKwgsmg*ZfEk-Ai zZ#BeInJ(#Zq;mvPOP-TEVJv>H?w-AL*1)^MI`OlMDwGXj%XWDZg%b0SRR+sS-n&CVpyZL=+ld{gk$@c+mT?EK_f?||E4vnzZB<3gDey{t3o{NA zgV}J8(x}LT(~{|(W+hmq>`sWEuYGAO$JZ+hzNUv4&un&Eu*-(#O(%L@8^GGQPrXg@ zXJwp(J|D&Sv|#~u_K(tEqcWVG)^$>bY6}`2yw@6{Kncf92D%nJEt>vHcy@Z^p|8$-QIEI-7m02BYV$qq=P_o!_vbeE z3O`~WRUi2U8x7OSbMQBaoMEJMzA`_yXjg~NHtW3{9IK-xm?0SkFpOcpGo0EBmiN0K zBq!B5(wj;z3|*4!S$j9D>durtHG1o2>e{wQ--RkNH!8<7i)bFsAC*t)$OXzV#~M!l zFu}6lZ?d-E9L;X8D{b5@YTI^s3V%TPn|m*}a>k!ARoF<&b0zP!1@qU}3(j7MA0*~4 zH_eK2sq&+FX1Pqzhh*JZ+v!(@no+b;Uv~g3v&Zo~7F?djvvngBXFAe9zu$kDIK#3(GjGy(34t?lSNtHQLwqOH7IGYQVtH zcTpx2%Q0SlGc<`z9i0N4NEz#w@1y(Y9T#c~!B1beZlyYNZ@Qtr$CpJpWsQJey9tM% zUXL?p^c5+JA6M9vCRN29nH65a;Y{Uc%LT=1bXkcP@ty<1eQb-LN<%JBE?C@lmx9(K zrCbAHS_}4zVAS1oZS-@$8Dt`Sr%$SE7 zn^Ktj1DDLZkZ)l5sYMx`D^AAS9jk*x;XS3N2%L=SoPeI4n1B-{r3?AS0j}TqotZX2 zN4E45RfmUmM1-At@E8w0J-?z_OwwTQ%8fivr_#tH8TQ2;3dvYvi>zg{eDIQ zQ%K!?%lU}tm)CBF##OmsJ9}4i8Pkg^kEomUPNReTTZYdn&bz+21DP=+V3Mwb=1N&~ zdD~YiStW%{vXz1JlZ8s+PDqZ`MxxeAI|HO5t`|xEIavYLB?hm#j zG0HyUvQkk{>_v-jgDD6$!guH32Jo+HT%#pXFZ|uJW92KYF5f&cCV@Gyo;6OWF=;P2 zGo0b!78J;SNP;Do4Z~O`e(YAyWL)sr{WQV!qOEF}${3!UIBAs`B?B!kiu^iWZ19j8 zJ>M$hLFwGZn4Fvl|UKOc0y?XnOgi7q;j74#iQ@?%SKmpqV5*AY#4_Tdry4c$ZVM2fE{&@ zTp;fj?roj*ytr#!lSx$PMt~1qhurkZ_^{3P34Dbg2N5D9y?)2aI$w_eFp<&-NEq$N z?`#Djg+`tt>F=iCz2B#8ussZqNaj!z0W%PTyVoeYnS)BnB)&P=XUFw=a~?0_!0&^n z{)Y_?*7nH({I>^3ZfhU+k4jyNgTJP>SJ@84^Mx>+7ku1oK&3u7%OrGwUuoTy%{}s?TPIS>;V1$AehCCaAp+pYXO?~M^c9-=w8Zx5R)9mgWs!K6RVP$^wSR1+=fX(L1V#**bR>vQ4}^l^DoD2NyPrHQVU62c^_oMDZ2a8&StTzK!jz@?-5xt)=B*|FjoysL z0byPAsyG$WRZej&S{v=XmVNf;3tlNV<<37HsNIyA>DlsPzjj9+{{EWy5L~lD_Sx9s zIzpb%)5al&bMiWWQwIqV2i(Y{s>-xoR1P1ubszB@T)U%1C+prurLV-G&)a}+!AckB z+?xvb7xMO#;zV+#PIQBB(hzm~N7ckkOH(yJX|(Syk_R=Ze8Ds7UYqbMM21D$C8Ay+ zuwWeCKx!GkUf4D}Vh};q>LjOZD15`9)%#WOYoq)j!YntRPR89| zN?9ac6c)*Qb;!udKcPP;0FwiyCIjsL`p041$DblXo#I?00`voo)_p7!j|)fu8-wuW z@2&ljH)Vs2<>2|xu)#M9S@Pe&Ws||+XR;Q(?{-}RT7|u@6~{kaF%GQ&mk#8)ys?Wr zuOmxz-E0@dN3U4EUeiZb8{w|sRM)qb3ap=YEvHEa76}A~zLLc^=02$@guS2g2}cUH529BAGlFX78=;dGJ<$-sjnGEwHKa4dM8U<*!{f6QZ|4vi2a&`opPriN+f~ zZHYEzXCiA{7gL(d!aAyWp8VmfIRw%30N`%XP3mCYFi5&jR8fpkPFyAxK4X7}8k|YNyv}0uwLGB8Z(py-XfMAJ9;JJ^q=VIGqz<^>|WODNs3!Q1w5)AsTwEC`$3i zk#Fl}`^)Z3iqSOrs#mp%g*+Wh+I!P~{ndW!d&cAi_hnCvrJfwkUVn9CsS- zcCU~2vQZq~SQ6Npoj+XmYKu`z+O9}D5UCVjt!v9#ypNFD)8)Ag|7@IA#38}weD#Lg zaaiy|6IbS=P2*K!wXzp7ZPV#eMOFixRE?LqQ@FQea$7G^N5-)j7^u|7GEAqYAV6K{ zc<$(Yb@tmqO5EO`Bq(z0vcb0y>`>FDm=g%oPn}_Zke&lQ#~j&EE5!13Qsi= zDd93ifzsdCNG8dNm!E!{YMK}UR{=@n^B#cXs198gJ#dDNYz2Wq)&=OtCiI)cUAwB>7%T z?x^_;Lk7GQ?GfN8;*Gprcs-(jXV6(;v2Zyk2+?sUa-Pio7Fe3E)vhR&w$|fW3@w_;bC|Q*e$`ZA;c&h14BBLTyqBI*Di7+}v1n78V41>o_#UK@KyMCUztv8fG<}=pb%@dBd?{>{*3OvG_MGoFXUOx@-@)o22 zAt|1xkoDUx$>N^mH(>i)i%9u( z8?PrEic?m@U$-s(FZSL%9LhfY8zx!GmQ*T&fj z#lEj&H%cYzWShYlLt$dp{I{c;35r%!kV2#1v=%w`HDy}0*XVW}iG zGb;0?*|?o*p~|B1z_rreuS?hnp>2^n+TwKeZrfE%SBgCK(B1j* zw(fhak5nkp=MTl}RaSN9l*$@Go1i}0K__ta!BqCwtC8P6PAHX8m9z0@-ux_;Aiea- z7uLuQuD5|q4v%w{BzBmsq%O6 z=SWO1EGfZ&wM92}EL!J4dWsxKuR9|&8-Vm2Wk9Fwei=>zF|9i8nY3PnzNp+y_tL=y3bPn zFK=X@x4)Gn8+uUL+Q)WaH_>61Z8?>;U!yekQSV$~@L0Cj4d_yITeQ8>Q?ymn?qzr< zm&TH*q;IYE^{BL3CPQ`t3v|4o4JyQ>gDRN^F9z?KhA$H7M&w4^sZMS5l-C|J#;wR`wU$h!tZPmZltV+@B~=`249-dh zl4LYzmf21zb!vgz3D%Zcv&9z=q;k;JoyT3d+TA%)a#5fbwTIehmZ{u9sj*cI$>+P_ ztZ0^M^|n6pheYDnnkwcZEObymbKBrHVt#aZgFUywjDA+C>s3;QEM8X^_}-k$+RtYh zp}8rnt1)0qvG8VI4YwQo{vlk`2=9Jd5yBI^rT%t^!S)uee$mijy}JnNuYbU%q189@ z<9jLXSFfTm70xr6TP`*5&!S#mgXFBIMHOO=H^jR z3rr0s+`d}Ycj)a_sDi(Ka*COMq@LyZiP?$i1BqDa7faQA1OT2U#TfHrG(UJc|8_*CyRelkW8I1F4i5|e5Q{GE>MBVW}RmMlOSkycbiACW zudXXRR9At_D+HIxcDyn^O8a*ELxF71OsS?EW9&nsenb|p-~pk9mDa1uX=fbPU87H~ zwxuq9Jqb8n-&H^nG`6f4xpwV2cqLY=h*Vr^<%f018AbJJ&v3^8fDYTeTOE{X2N|Nb z8l^RlJI(d@*K}l;l2(!v%%~@JiO!fYp1@N;66XgGk@U-bMD;el=Y1GJW{xFwo{bi3 zmPe8#(^=+-Ny0U1N)$uo;ck?f9u7$w*X0ofOR#6&VerwBt~FO1af6%E=YRA~+4gnQTJ_I^9ADSwKkt6uI)>ppwj|H?o z3My24k~SMr#{KM$^4JRL=GNNMZsfHnc8&=1^X>YFWx6?j4Ut7+r%{D_3mMs-6-w?>z~<{MZ=@M5Cx;ggYe zM^6`WCs9JZKs-4K!K4d=cN(K=MSeZCiu~~-#Kq-Re}8F6_*a8M=gr_K1OkN!XYTLUUr1PPLITP!xeqb01zm=-*d+r;Yri!%md_`J z2Ee-H(tRh)C4Dcj6JGv$qqbEU?gmoZ8*Prsp4XHBwd=? z#07vd9fUf(Z?%03Nd4(|^y^CKWH|9l-y@1rb~9Og@FHT;7t)U_v`|m5bD)OL{}l`} z5)uuY49bbpp=(#)AgHM|R7Gj8)N2gd9_C=Vq$^L*^W7U|>W$o z1q)jm={F<;7j9+xY^9aMphsUpM2FG2`V(C>`TA-lGoKep&=X^z@|w))zm5UH`kMnP zTq^lisE6`~u3WKA&BH6n#ChUe4}^KVoqI`WBqhoOb5WElmke@;bOW%h#W>Jalwnzh~^<#%d8#TboW)Bb^s_A$cNT^}LMP$`?iVkyKc_kTsN0sWHk&ef zsa33bgeKjpS6ZFFtn)J`VNOA?yK4HkRD^c#{VH6Qj^Q?zG3{{*Ny=ZNmc36#2WpR4^WSfww8c!y z&GzG?sQ8s73;Vv<+WQ{xX|_oyIia*K!7&&Okz4PnT}qB*<)YMa(U}{R?LMX#Do;Ar z91BV&J0&)5oP8)YwIEN>Bw^Je6#wBqV2Xj-8Abt>0~DCrcF%~#kjY0FQC@71CAU#I z1iyzKN(wanQv$X1#p5*aq6=Z4#aUPeycM+ROvhE12=8w_mD3i%!{E)>gmyA$WEiTL zh*WzM2<{$f<~bwz#_(t`&9?j@l~}1w5Z`QG?^c9Vq`QiQ6gIX&x+u)_mrG`Qj2qfqyD`; z)NNhU?}a|M9#V#U$EfMnUJxRC;YbHGIDHd3HmR2v)~<0If(J_yd1E_ru3+?LVc+Re zl@~Q$6a#mbkwt1g%3FBxgX6+WGB`>UICnpra2L7~Jl|M;7OoZSA-vZC5V%6N)a;S% zr(e~Bmlrv9)W_Vl0W^uR=UI9J9Fd9*myth28&s1@cGM}g9kESEt1&%X z(DV&n&@JZ2$wyb;=1daT(tMZ62QQvzp86%QF~3TT9FgfOJWGRoa2eIQe@oHk5NGX5 zZMb>3d{PPhyY|>4c-IBmMTb}f^@Kb0iCKe6u@zyLi1|D)k?jB^6f=VK!}BtI8EOUj z?$kq(*BG$swv!MRaW>dO8MZh+9jD6m9j~=KbdjVz2iDK@p*4HWJh*D)>5&OTB}Uc` zd1|Z!!~;G5zZ`^jgeMxeW}qg&6K*%boIf=B*-tYhZ35UUWao2Ucr2}Q!IrZ|J244{ z2-q;zQhbpURgnq|^GyipX%I+|$kNI^Rr^&&ZouSdC^-K+XyQo)(ly^h8s4qxz3A!! zUyCL;tp_1D9uq4Rf3{i@7yWi)i-KQ+@7i{xADkX>Kf~+#kH*^E4 z0QXst>w9R%nDDqA7QzeP`Yex$u|}Xie6E+mx7Kom{MjBa-szu^`=?V#V)8_l0?!K>wJyLLx_k-Ef6`5@+mJ8*Ys< z_M&tl_fa~XBT%d$98(-vA#yA~yl;sGByIH?8JEMOaC zcZy+#+vs|wA-DWVMb^^zRHVxloK&?_^WoO0erBPrvL2_jdg$8rH4oFs(})7B zXY|+|TP*9UUS{Xz1t|$i`SX6&vz;67Epzp8YjgKmZ=>ZtWEh9l34|E@wYJ3=CY~@3 zw@O?oUYS!r7hL3nc>mk(KLhsrs+hG6KuB_kZOQ^cW*h>r@eL-h8mrW%@&+}MNg8KDq^s3Qy+F=(KAKu_F#&$*kiTcJ(4mRc* zwj*5VZ8Y#w`!8WNEq7PKZEyhOfb`LayG(CZ%M7v6^OtR@o^6#>5%ZAE)I(f-&2>35 z$D%wA2Qt}i3rV}{)QDRFrmG1aW9Ner9+3^xxByhEO9GIKKAm2!u|C@w2$r84aJfCEyrvl30tbgPF3V_CLl=dnH1oA=2Hte>hfH&AB=hFGPY=Gr~Z;_{Y^i}F8$ zDZ6Ge-=vIZC3tRR$%B1_77*-KILX|-NMBIYf0+LT8ccSnXT z>$--^K+dKf4@b1?eepV)XrTeEi!L)hCpiGg%d9M$P{L1WCxZP=vkMC zOW{+wW1QlwvDbTsE1d7LiI7yC2C0=u4lP)?U51mq6+ANBF7woH8|=9Q4-&%G%=w(<*gWCbkgsj2Y3B(GFjx3Md9$bT zqWAQe^V-N^3;tTG`13khnHQgCrm8H?Hj&D47akiV*FjHy++8DVTb&{e@xz^vO7H~d z32S9)PrknNL3Js*P$vKqseCWZ3|ef2^iuP?FdeeEtqVbDN4Ej=y<`F;c6wV(yN#2q1NN@}N8t0FH}=+x)9yJ+9ULvHHeY6}3r*e`ways{zGJ7G!5Na1{U#?N(1 zxk9~F{9+k^%{-fH2sLeu;^PX+_Sw+xUW_|D+R!+#+Bvt)y8J`u{Gh)t(MNVyxn*pN z)d#-Y{>$T?PV33v@Xdp9`}zpPPHR{158nrKqZ-8|e)HWZw*VqZM8uEtSzNJTGa0Gc zjjrvsGfHdNg48T^$L)vaxTR>GXgBgNe)1=joV}GbhkBbqpzUY%|+DA@+QLm`a7ac zGYu@%FgE*2pxvZWU?^7K)~8kv_ck1Y@`ybG2jBGU^ddI;1leBlM7hz_P{`{K?{$I? z`DUW>l>2jZAms9mi&w~+Tjh5n@7vAQtZO6Pl``Qa@&>d9rlfE$4x^cu6JI z3?UQe#%N1TNXklusfkv{vCDL<7Q*S7k@vl*tS>)UlA6gn?zpz+2b7A7NKuoUh>ew8wXI2jF!IaiG}g%-7@F>r{8f0{J*Eo;IY0&G zEY-h>)Qq#>DB3(Xh&N)njK-6>oBv@plVX4`Jn<*9iI z20V(!1$~KDJV&wjKA#-he0KyZ8GPHoVk>#3Q3K~BRsSa7)h6~#9M5_q3<+T?d@2J- zxaA+>CBfxYt}a~lr*gW;gK>EJ*gRwbtFmp9Udy-BTSbXDSDBp^A(S7E*FEXQP6c%q zc3zLp4rJyK@cx6tn~l0MYneHN1R*$@!!oY@!xRRhF9Co+$YuH72w1+Hy@fg`N>J@w z4SS?rZNb3Drz@Za1?x(dYtD0XfbeFS^>Kw+41!Yn4Fe*6v`&||H#YJxi$iuF$TJ#X z_-!q`F<5^8{A}_3vS>)^A(hOJPs1B=Owloro({^$?yKKk&^tfpaP5IFV{Fn*g6L3r zT~K_>P|~(}{9?ip>^rUU3c2mibI3=e25;QEhvzGPXnMv>$rVxU_B%Z9(X3gCxY{z- zbvqkr)8wwSdnRC=bZF-{IrU{hudlDm^M~69Q-b=K*5pi5_mC9Rmjz$A?etr#dG@Xf zwDX0iO6}&}(Q)7xIp9v4EcK~q9wzb*%el>!U0BlV*GR&7Hbr7LQ?CYhE~E9xq5Z5u zTU(RXY^6?0y_b`oqCxiT^lQD7ydWf-MTcl_)rZ*BI>W!fg6zf>J^;mPV#Q5raPr!F z8;@m!4!jl;Wu-@G0C*k|AX6+1b1~0bIWS0qt~fgbEyaVzrJ44m`|uE ze#Tv2kHZw`88Lx8YrR|;c-_0>g8r#49=+lLoA-oYcrUWpiFpP!IMPVJfQd9e&heWs z>|KXh{F*<~3OP*|K2~qxi4}=HoYqW2k)*yQ&wJ=&Qp86nU+y}GI1jgE8`%Gu9YL! zeP<4C4sT{to82}cTIK1v{nB@(x;L0wr>Suq5ci5!Tg1-48qCOH3yuqV@kV7T2h`PP zdP`@A98+u)9|&D=ziUIkN4L$=#%>wS8=iHtX`I_+E!^{$zTB`$py`lm-S>R4&B=>8 zlN0>CseEv99P90{j${b}#QI7YJz!qbXtYbp%dQWek&5cHj=S#vxOC|!DI2XlcMLJK zUm+E+s~pbclvvD-JGXWL*;S39c9}9deYS{lMX%@T{AE_OY^R!g_v>JCB%@SF_61sE z`hF34?$vO*GC6%lF0v*QEbC_v2JFeZk+loQl;6{XmMvGZenvIF1uld;8a-Nmvc^aSIsigkRhd{kBcnNw5GYb|`gZ{)UO9`pN zMI!YM2l-D5uYSJO44Z(b6_fM?v*cUBzPqr>Ks|8FeHT_|$63?Hg%={wd42e>&M}k} ztg}*)Vf|5j5V-w3{Xl#odFtJ#Coxc7PgE5=qyHx7M1beapfK?jHa_ESy-Wdvcg+xY z`9uVhg(-UKo9wZN?wGGN(1)T_4Di%bR(EjK71LKHPBtWb#qWFgYl3095sFRL}> z8LwM6$9-J>wDWM*QpJO}m+N3n!DK8DQ@bwh&h215uq2`!Z$eh(Ewi^;7kWkW+z(v~ zyR$&^=svH*R)4!1pv^XV^*a5}dXIhwen0vhUHOv}HE1gY0v#X*K?CovfGj%M4$c;( zo}1|IZO|Bt+$+#f-~&Z-2wI?q!0DsmBzDQ*0L%tywb)IrX<@8r!PzS}#W=wiu*hF) z0TDSDwJoI!9AL@~TN{*lxIjMrJAZlKX#L2ZE3KD956<9EO)u5xYm?k+HtQ!cThKY` zKA3=Q+^OGXK+eD4m&16;5WiX0J@Rb$^A^+VD9M?zL*L%#i>~}&;FK( zN0d{*g8mkx(J25F_6;l;=H}3?nfu-VUvTM3Q-VSq*;og8p|w*7Jh`T8CunR#IGx?G zr>Fa$Umg_a6k|Vog(h*f6SlLw;m5O99C{Pm%nh$hPE+ndX3nuwLRhFuA{^?{nB1ZP zT;b0nw{RXAwu_4+6iug-(s%kNBX}ckYEzqYA1C%L#_a5TiQYE+p*iEv?xT&w5EcQ> zF&W!;;=97%a{A}q|32M6QqI}sKNt8v^&eOF9g=0fAN+nliL306il`+YO`K0ft4A*< zuD-T#BXo9$@sazVH#vcX5x{ewt!4$4dqZLFxlEHON(GGh!J{v;?mY52zgtl6xlZ#@ zpfZ4H1mapWYN5E~=wb6i;lCHBJ#+7y%KXr~2AoS(PVYVfv`|$@Y5Gry2S1XmPYjw~ zpY0*OkT!@8|IvJxc~1x5c}lQl(OnsLYEv5261LWCO_9QnRCq%nEcN~9x1WdQ%+h>A z$Gr;5zR%gz9dl3YrciL4S~aeuTW4@d{G@r9RU`@?ady6cCezrnV+6O{v3C7Ci()z-n61-;8wKR*?R zRr`)r@7k5+hdgXW$?$|X*1i~;KC;T5AJg}8$Jx1&`AW61U&Vv)EpF{XiepLDK!+Td zW?KDXJipp3KH3oH3ym5Na$QS( zxZeV|G1I@8^=x`3#fpXA?(K~+B3Hq*O(1jRuK9+jAH&vGIayvKL&2VuC=;AMX>q3F z-yM*g#Ngq)xnFvN|xqAa_j27_Na zv6rAKwJrK(ZEg{owMdWZst0cdyNs{0Z~9{wKWKMbSxkDPFFuuijZXAHc+S<-$r9R3 zl!utfE37w15fPxAm*6)2)TVOn^=~J9aCogrXwZamKhmL#JiF*~dk_I<`im7n@|b87 z#)yNo`6N1$MMj{i7OYr~(mHsTQgRhyQE*T{fa)6&ng$R zneB~sM(Sy<5je1LClDCAW<4S$u${-K@z$(EPo;Axf?D}*KP#QfUs2`t)x-PEr3hWL z$lD3?^G{cDR6$+HuG7>vp{){ftd3F&r1lI=KM5H4v6s_i1bDj}Vg~~+LvMN80pTMM zj;qHu;Rw)91F5X|p@DEOZB3NP_Q+F|=1^`YF<~AhtFI*W_Gb-~cRo_Df?M4mKt-i3 zGmPcfCN$j(z-u0@jMYERO7}$scW1*HE2hS)%Ei8eA{OJYyUv*+4Cr9EB%&5A-)4fT zkY^~*??nGv{E+`ep7G9?eqSGLrDJJ1p8L8?XOQlxcN({8>PagEYP5b1-6#dzN%>a! zX_O_)Z>S1-dp)vp;hOwLTL?x!-47sqmqxODHmOhU!XQ6zGZz*vh*~<8bPybp{b;rH;@$9ef>gcwd{04_(Bgv7yLC!oE?qJ1zvgJZN3AggV}%i3MX-axP0|TKXjO&{8$QBz`Gvn9{01U+oYLc(r}jtS!-l>9IcX z%5O*qsOL2B2_VhKlP8Lp-umoNfNhldy0&$wT=TB9gzVCZE)*NE3c5-N(LCnJtL3iE z2-HRJZh0bkc$ocC=$@|jw2t-ii_d6_Ekcd0am8{mOrI1m6sK5i%imge%kzA=_pP6! zuS?u$mPoeBQW5vlA#r$`<)TLyW)*j6%X_ICRyDM4 z$`S@=R+gsn@z&NWiPfwq45_*-|9b$uF0Cnr-M>g2w>`t|YVT}_^i2yA^)&GO%630= z*FLj0{wCGfn?Tb&vF07@S3%bK;A_q1AB4M!qfXOl7D&GgbfziHadRzIIeP6m%BmG* z&PeMOpxLZb&UV$yzCzD5L?=bGC9S%jCbLz!HfX+1!~G2^v+22vuTNo$boOnGfh@yy za1ycVJ|BrXH62{ycN%8;i8@1LXv>quSz#lH;OoRHhzYYmp8Z%0i@3%d8hVPze5uZL zUW>w1^-}HuZ)O24)+VsK_#8BnB+eon>2w~m?F=z4$MpcN0zYQa1-aRU4-G;xm?(PEn(P!yjpUGOvq&brkRWlr9h19=@chKx{ zq={O}Glu5xVK!(@f=*IX1{lw@g>Pqj+8m{}Os{$R++S}yE!AWcY`3}i+W8IBwzFnA zn*c%-L0mBIS-#aKb&$t$?lsTvm(BkivwtXF7L?(!kwdv>J zeVwvvZRPc7CBad~7;pMlhxEJ8Xpb(hlzn_)YBecYZEFmRFD=_d>J=}VriYwL&*NbS zjx)zfrOoF&J*9I*C@mqQ^pLn3w5*brDjjN~{fS^oPfvCFVUyo);$zYRjwUVQ#jh>Zu~1291bVDlQBKn_s_eY5FHB8OM4#q&p0!eC@Rk@H!2}Fc3|8`ui z`;=GD&?c(PSR$Dycslr+2A1Ykr-t}hjqu1yKZ$;kE1j~TIU_<<9zw#bbWVP$N7r4a zn@1Gjms*kIH;HdK+lD1%RfykPHUKA>Wmt|u_b%NnK_3n*$2#9U-1^h({k#1u%UWj5r5!Dpg%cB38`Zh9z#}F>ixoNOz^ZG&7pyRXgWJx1UnsmWQsI@O)71su~9M_*1eJ;G7HK-;RLZo zWLS=hjkTSbB`~(JDAreB!r6IBP#egdF!Cxu$*W@~m$Jz>^f4>BHnrhR$fP!8felhsDi_WS4pEcv2_lRGGtz_ z(Jq+26xA*_O1+gXrPXhJlTbQ?YSsQ?LOMe^c(H&7?_=lXP%r@yXsENiQIzU-y8>Se z0?bAql|~`%Ld{oph~TuA$|RPSvic*yy(<=9;&a7ahKOwaX^hOpb?kEylHB8wxi4d^ zt;nMpy6R5v)qmX}77P_`pZO4(o#hq{=^i0(Q~Ki~_zm%E{&ia54LD)F51FZe=$QQV zZrrYWIbBuRysaX)yorq0xt6^8&;%OPDlIca46tgby9F<?+7af zr=i!!BVF_nufP|bpI24*++qfZY7*9A`!-wyL2>YlW9>Xd7N_hwqZ9R zBdE-cehJQN#rSCgvs;f+C9Rn>>wB>?SH%}DkZJ3$S9DdAO3P-6CKZ-Ya42+XFr%Ut zG}0y>ZH1J|u0~jlr)Fr~59Jf{x5RsTGJV5yr3}p5*1V_=yRgqC3{w1tYFq}(=@KSR z*_1~!u&eq8NgININjM}_Xvs)jB3q9+nH`c_U7LXgth1q?_31coa#R)H`qa6)0CZ2N*`Z+BD=fnjBkSS$+oC&*zq+|4YOMzYeQ|ls*^`lx6+Q$<7?^R`=W$&I-Di9 z_8}Q{6if@{YxJI)OEd}4n$Z)agk4;z%ZS8d+u0t_zU;#E+soJQ{HD$QgN0zsVz<3e zsp>70+Q7|0o(0QqlJ{Zl=0;+gLhJcYHA1>~gjl!RyKL_L5li2ba zFQQKU?QG5@on|F=hfuAEB3mUx@3zSuODD=5cy~HJJQ<)6-y6AQb@UI^VYJ_VTBJKJ z;%&lnPLzrXh&5kgMde>ZSrK7O{X~*CNv&an0Q;HJ)h_C(Qb^v*n&N{>Ij@Kk%96CLv1beEF%s4wJ_iwk} z|M}I~;DE^Zx!+XjSnw5qSJV`Avi2e8#~NX=Aq>sFi_t2iI}VzJDbcW5{xFaRB9j7A z+Y`v{t{MNQdKCwh9|o@9;{RcAY_D({^uBE!c7mi4} z|MpMq_ja|M-v82($S!YQIJdn&J$BHpw{hXM0c$N$k4!{^z+VTtZfLmQ{gadJwEYls zh^s`*ZsfO7lYy`cjHee$bwq64fGAOKC9G2?;wbZ%F_kmUK~EV*>wyBG{|GR;in(j&eH~XQ>>Lm3&-XWq> zYBR@Xt+3Oi?|&BS8FB!zimal%!?nlDHl8cDh0*v8wm#0z=PI*_Fn~OremlrSk-1od zc42i{MOQ;$HdZ5cJr8&V(+WCJk<*_Z_ZUzc(Mkk>N|?@`7KPpOqi+-#v@(E-ggwiE zO*SaoRybF~m4;$bDnQXItyJXtFsyCuWk4;)@>4T`xjdV3x{@*Kmgo$>_|P_p??jsC zo_8tkrx0j|`hGa(5Bw%<)_#IZ5K$|CWKdKOR1s{6_)}(Litia81bkplu{D)nmD6 zTifhQx{?#7W;V@fbJ&@|sTh@6094P#BFb0EfW`358U)@H_t$f!2vwEu9L9m=8hn@d zNzMZR^NSomZUdYuZ$(BnQMX_OX$e0TDKh3Q0PgvtDqsJXLLFD^$eHT~OwHUp?Rh(A zunn3{V6)&8A6LQ$Q{cl3kBI$I0iA6MrN-RaKA!v|YZXQG9PSv)2&$*>;g+p0%FA8O zZ1~~Jg+=s68^XebooCxZS*HLncL@o%lt(ouShnyT^hR*fN@z6Wr*!?%V}%-`ZW-rZ zs6P8U*n7ASC?8)tHTFlRRCwbUl2mX#4C@S8q7}fl3*hGT0AW4`i;4=szmqm#q1mKz zoz49f=>D5)j#&_<4lWa+F8CHm3F)5jaF2it(~3O4J<*gB5M{WA0n|z%HTM()p$*d1O<+< zvP-mwD5@wx*P4iHiLgkLA7kVgLc`Ay%_GW~mkL*xe5<{hTA;7!V&+#-w54tXvoV|8 z^_~1kUiTfCXnhkGAp?g|V(st$~Zj6efTfn(#aS<)GB0ct4Dv?ODPy1;dJ_L?-i ziumh8;&S*`HTXc6{xJHOlQ5WnokJGoimf_Rxe&nb=FnO7=lGT2?M#IQVd_KH{+NXp zEPjLBuTw!B_o-MK3mLL-3LwHJ$#86n1fwp085B*MEhDl>OfJr-D@A4oI?@9TLDBJW zqCT~;RgKHr^=3lB*J7)T_=WiEQco zwL11udl=8!ZfsqM#NwF|4j>{gG~Fe_3k`6oF*N|UcH>B3J9n#1KU}Ywn2ut&TTLz! zYS8-hjeIPc%OAzuEYsOguX+2Ud9m6I?F_+>L{u0O3%1KqtZg^|b(N1~R8V&e8(z|* zgOoQ)5Qlxws-L=n-nJXte%hXyaeYNB?DL7E0}6y*oky!WYE!ELM&Fbb|5zuL%YZ{L z+L@B`+gb_P$nbEbSkE;(h#v7CJD1Fs*Xn<$%C$=L6#n`xR>%CeL90B;+rr~&;f<5v zoB|lO8QQs-sXp^~15g8RE>-1Zk+V25WyMw}4z<*@RMj-bgz4>nVMNGuL zsWzLt(t=q%Z_l{w$5gyA>h-%fDr5Z?l&079vgr<5Yk zIz{p!#J%+bi8{E3(ntJ5$@t%`?caL#zu4dZKKWn0(SNJ)-)j6{8KnPjG1-4w@Shg^ zrv?9M!GButpBDV51^;Qm|Ibt@e38Gsov1NvD#{Za%v9l4w|<= zf@i=jhqUa<$BE7AJV`PF*V1;nzFiS1E?K|`v)Pku7sd)*&bVDHaOV;3|Ni{91pi6F z|2IXLQjRtJrCe1Oupn?@M?%brDS;NRJ%uI=Vh`zYOsum9=K5~4{aJdI$9okIcwABX z+Fkgm^!9B1hd#fEzj|D9r1VRR`js4CxZiq)x%G741G|Q_>ra+I=)Aq<3j2zmYP!^B z-IMEmq%^JCeyB!9o|sxg^on0TfJNOwgvj5!m&QP zVzE?q8+Nbir0xG`b(mP};mG;}KSV16l}ZKf8tfG;xm8wZtEebc)BiZ-u$iX!yH?{m zc=Sl7qs-|2D?d!!@Xz9mimzVsMQ@zg7rr)H(HWn#i!1xv#skW{h8!J=R1$^`tE)HS)ShK z=sn)0tYhX2?g{ZyOz`6(Q_)N65qBn}xn+btCdzo+QrrW*96Lhe{i5b|+N&Ze zcTS9sKH9PA0n&-v#U1))JJtnzcB|_jNsmRT?l{ZENIkZ}^Y;#3*Z~vV6C-OZ^Z8W_ z5WaeLUc%9r?vf!|X`jm`FYyTMkDF8 zSS76O--}}p1NU>=$F3Jg`d6lw1zgXe_G*Fz)8DbqtP&Ke7^HVEuKw)P#u7?ilb?yhNqr3Cx$It=qT|PQmTr%UM6FfVjA3sF->zx}6c+LDG;oBCMYH;AG0_c>& z{zUI6u*LIq<&wH)S}k+ZOvuu10OQJBpt#Z{XgE+milAdZrvNw)4jL%$kPl zNd0XkV>Jb0wW;bpD2H~XIqBnl-Lv+WPZaUJ6j~gnO}A=e)!%kqPTBpLCUK|hYNk!PZ0sGZ&$hj_ce-_B zU1B&;RA74l_4gl->2g27mnl}%Ke!QqWP|_FQI@Gd1J|nE12iP`pN}TD1$KTuwBYk} ztvhLUw=LuL`FCVtCGDE?}++K_=G~L_gh<|Z( zMl9@xa9GZiATP08anHpw27a~C4lZ2eRn05M5A0IptwN)f6%IU8z+v9)Ic{8jIoYU~ z_YK$ecUB+Y?U0)Sd$%CI{^Llud@cd&g*qw2RQYWcfZc6(lHlGub!V6IUNY*it?RiqTbm?W;l4zp2GVlqd~PLExZ<0XnQ-y-z)lVz5~TS^P0M*#5}8-L8Qa_iU%$?TLJM>Ea{lAz6)H zi5|xcL;>N(m&~kR&AYfZVgqBQR4SmN4-Rbqk2F<0iV@_3$!$e?{*Qnew=WW|JDy?K znKZs~A7nYxTp;skF)V6d0x8HX{whC`G|}&@J&7^>gnCrO^Xxd+>n(mGkuz+{t#FTR zd2Do`YxmNc{~c~S-dL=7V|#bNZmtKPZRoH)JFk0^V~>j+`}~n*Bevs*J(El#Ic8?q zh}($#H74Zzy!dX05KqgNlifa-canCmA|E3nQvpN%TOn8Zjt5d;&;VC)#_+!z2|CJs zDy^mzrR!T!X}lM*RcZPvTVZQS(jn32hy5pOZilmvcRM~$3pqDZI?ykC7>_ho7Fzx; z_!6IKg$xwCmd0O{h>>B(y0tod%W!GAmH?`5k-V>=9D{A%>DoG^Y!SY|6OXd98#w8- z=<_{v((k3a@~LCHKW83JonN+9H*ql1C{9*~PDjJ%OSznjf#Mp8VIc1nk>!)xIy^@3KoQUEgHw+XToO{wVr>+2@qZ7oK3G&-1e> zs{y45b9RP@DZ^cC*I%m>?H# zj}3g753%ie_agAn_2W-y1t$%2FO8v^mgr^bRfY$S-EIFC=^y_1ZrqJLC)_@ZF9M+| zaWINIgK)i6nHwG%B0QyVoVEP-9(!DzDxJ@pPljT#+iL}s(K$nvRk-b9zqru zf7&kjWP+ay2phf<%l^u@<^S&<5Ds$O;>(L9{{OM93<3KchL^^UHKw)~x4yad>vpk| zgvJs!PYDXnud#FMs$IALc%{K`|Esr$bIAp((sx$XyO~!MDd~PUPex9SJHJ@R-K_tG z(}ddiaGO4J3VjsmVwPTzDhxT5(WPK_{L%4ePcDVGFYG^;Ysn^ky2ca;H3$9cr!|iP z0mS5%&y>=?$;zb4&hVCGK#M-CDeN)!t z%<(<9Orp2`I?PoWF7`~qU}yY>!N02``3x{%0jC(zLH`QO%PVgWKlj#xf7kWrO6kLA z9vm-IGlGJVAFR~6UhJOXd-8FyM1U*p*IB-SJV%)wTv|N$n#AT5CVBSn<;Fx!_jyDw zowa)|aeL`8W#9+h=h$b_ZEv%^M~Zt&920vLabraS7`BX1yGmpA&k^QBDMsSI3Urd= zn>D*0uX_BCs_)$4QFr!{c&7g%=GPpvCG=iyp3#s=H~#VS%Y26ZUx@e4RIbW*ACv2& zNas7%d2@?Bx!+KF{J3FZocu*~*42=o6-(JyCtm&nMGc(R#~F~hD+ggWU$mtQy3fu@ z>`#zOy%%7#a~FT3Sn07?fxs{8?BqSGgYr5?QALQQ?sU7zlILeCwuT7byCZZ!+AAYS zmb)c&oEb5Hk5c=TqE~KuMw#i2aPjU*EN8C;P>`rcD~SO&K*5yk3QYaB29jxpSb$=k zXx)Bg0c+zhlBWi(H%)qZTC{#XHIVUqbFB`y+Tp|qgGO)Ju@?b74v+(!T$rM>#me(P z>(Wlp-sxf~5q&VGBqbvFPW_iBFXVu^_M4!Z-p$g+BmE1JKlv0|YKt55ULKl&Smaqrw@ds~Px*k+7R#Zy}+B}NN0fBu!a+qX)WZ*ySp z!OSnHXS@F@6LCTb1V6dD`}O5B{BV)EEyVMybq5j@T}*bq+jGoR?xaA*seQIKEs@7Y z^(O`uVx7Kx;{Cqs{j@;C<1R_V$(?&o@}1tdbz8;v_&K>n$Jcu-E}fftR%CmcxA9=N z!09_0%#v-*E@gL0dCRSak3lkq_N$`wrw$&5eGwv_nAMuWNuC?Yfr#qK@Pbrz0y)NyY|2e&X!TrA&WnIG6zbCvJ zIsqV}Z7tR1rbq(}@POgp33<{`5@*se7qDuCFv}3aV0~_AenkOso|H}z%c+H8qCVZ+ z-w9IysWk_~5HxTux-{uq#*hG}r|s^jkQo84>H!9bB`yfWZ3Yt)uY{Z_YGB+&N*62= z$@@Ty`-^~AE;IaoI+m`cNmcio6XBoC*?1O-C62MDy`XmOi}2dKk$Hryf$Se_HnT0AQ7i=dGu^f0=&g)%V^;L1Tr4_8*S8+#+d#BC+)md8qFrCzh zVhxDuZvQQ0{s=ZCX!2R=f|lZ}9~T)ZZrs28u65 z8!v`llK!1oL11!4K3g`}=MxR{naA6WI<-s;c>Ugxv-+*!<#M zec8D5RMQ{*TVN3^7K>Eqs5M-$kt34c0RTGenn?`1^9>uMm{5yE9Io9a5t zkF~G@I4YoL9}u%A(ZVa9Y|J^gjNr$&u|sq+a;pq{H+xK|;54bMPif#NK3o0w3^u_( ze(SDn&Gk&580j#`0{Q5uns1gXi}>5X;tQ8D zQ@*}+vwGaogwxoPTmLdeQ(t@QWo?4@32WP!170$DrQ*NMYyB*Q1z#VLw{ zPis7~r=Bz}9Q*gXu9e+9Vp=_Ve}Hr{TTr>BHDcqgAxo;BP6mbA5Pwwe5e@q%1oj0LVpOL%XSd)K~Og8|*uT8GMzC z@US4>$6lPzC4i|ME0J+fjdK1|L!gT8Xf5Vlmag9H?+pVR2Diu%Z@Zv_%N)oQjkfUx zAfSFV_pR@U;`c9LI@;XVc_=25iG55;5!w+F+j=|zz0w1do(gID)Edv~U^>Yo?hqqI zxKlE>M7Vn1PZhWwy*iHmo8L~EA?{)=I{rR0G>&iWfG?3{A{71CKMat2D!{ZVx~if! zX^64ZIU*4^&-H4!ei05wG$P{lU)5O`zY%Kv;QsPVx!Jq#C|8caA_eIJSrV%PEyj&G zB6=Zf055#-h^|4OL?SUwp>1X%$IYY^gg^l^0bgYlpIk_|GDjAT3C{ybvbbCZgfRC=PLTGjS)hG(}W-2PQrSnfMC?TO_;4sd1(xRJ%Zm7>Vv@B)Jp;H z51ISa0-kzhuY2_&CV4QZ!sff5JZ4SjFVVvILVX>-0X5_r>VU@|TvrBvO7V1ek0b`< z%eEIJ$V&qjc?hdr3nRk5Cw;rZIp&bVnV%POM9il2XENh2I9L9g>{B60mAgQkL)Ayd zN;0IuxT_QRZ3pPLoO}+Y9B?hGU$GvN6)tHy;6ksn)6VBr(Ls8_da-OVp53!R^g>YN zCl%SK805A3@0srZM+rNMy|w-KYqyUgF~Hb*`PsZ-@apRVpvutT0?BBGJmI!5ix^?` z8+|Jq)`*~LePOFHZ8Cd#VNa5_2=Rt^c2ATp(CoEAx5ZFC809cO=;p|)?_YR7x-q8p zy*uO_Zt|p!`Zo7!sN!%Mp-Cf;W)bogl*LzET&Gy(<|02{E;pcp%+ur}H9x-EfOD=& zbotAQ0}x|9C-`*rTAw#ewMWX&+gMt~@1Zpvf>L3iNjGRElX$a|S$SN*dHK_8Z2~yG zNbD#4+`|2S_WEEY%2C0E;bE=VD}sQA(p&RVC^*)r9BsYu`I^m@#~1^qnVT(8ha&*BCr4cw}O7=+${DXTe`M#VIJWqcMv#!@!#bvTd@kEX&KSwAtA7m&N;lBaC5SSxI>%g9fJUvyE`!=^w`7M$THjdDC^5~^U z4|Ko}z06vRxHrf{&upcKqDR|$AdZTwaJl77`ul6dJSYGR;F2>NG*k-WG<&9 zHdbm=qD4Oxy z+}1r2%JMYy*8SY~%Iqo^&1loQdvvuk_mL_<5cT`mOI4T{+s>NF{mQ$@bs3Uu*5Nh@ z2NKKlxO=Pr*ee?~*g$t@p#Zju(AKRaB3ph6<%GOyC-r0YTp-?tFmqcN<`o_eVBJyd zTEsgj%W`ZZLo5eN51yNCs}7F5`RbYGbxBx6U9Dc9N7o&O#cg(b1zOuKjw~dhv7LFC z;>@`}EIq7YwJ!o104YkE3-f;E#8FX|42{qc9+-*b;*EjMv&3G};%M&qYqIydtHSbQ zxyl3`8v!rWZ4a(G7*eO!HmIv8`Q!X1Q7n*i7xSKN=Nc}IIJaPC$Xs6?YtVbnxiN@& zyW11{Y!V1PiStnXenxkHn-)7b+6TaZ14p&fYz4vn?S$mHH+C5N8D}nPZwX|E)9^5uiAHyo>q|d^yq@V0_pSzJzEC7lH%>RU9qP0t0-kmpIZO=(NVQ4QD* zutqIxEp|h3J-Lfh;c4QlvQjBmOKUf;CfjTU1wN2e*4yu3FzQTU`#y6zj}8jveQ4>l zv7%WHxkJfT;EFLv!!ym+8ZgUPVKgvib5|@sm#(a$uOM8%59OWnENzt1Ep))OBY+jf z^~&$;Mi)@V-8ha%QTfUb5oOZ@r_|6joVb7dv4Dc8Tt_pKUBNlT)XG|@Y)stfGH-Jg z%}+qfq!8;{G2R2=>cBNRpM-2+t-n6u5~k_>D9ekwhczX+UeAN|*?WN`JUjV`y8Xqn zP7M#hXxmje;T;<^Y78R!y8qdd>uO>>@y>wipmRB0B5tzfL%pEm}N^a<<&D{V9~ zEW7UG%xb=p{tIq^D3KVDO0@QKVIKR~+GDjM!kcP5vvs-hF#<^x491kUonyfSQh|)# zK)Lw*1U9v0;P7ziUYS;CM;-A*i-Q-Cxemx=Q<7TI>TIm^#kLvR1fgVz(OTV2;&Q!7 z_%Holr2&3AI-1|s;+G8!(RIsnlMGM-=w%?TuJzYok0)Qb$WVY9jx{8JLt+G_s&;A8 zL5u(+{_MF&`^px}?G?hjXxzJTvzxR!UzFUs1tT`X%NdxWZth~ zcd4!t4tD}}5GCypYJ&{um^udwLB69gIIR6cuu*gLT!?^@^q7EYIJ)cWAGsBSD{6Wm6Jw zN~%YEZH$!&@easx6WGPK&5yZ~hTSW}f14|)2v?{Z;_rv|NnV}#D!a32w{*(l&lICAa5--^nsfDV_Pkter}H|^9$+!L`J7(j zJ8zHv1`#K^tb;g@nYySQNClU|@qG&wZ(}Ac+v{PH`tlM*{rr%d?3nNc&!tHEM#!Q}Mpz`H4+_SIS z->y1axJ!XDA1guYJghu&?>QCazSX3Obc&p z!ta*tTr)wz6r{fWG`1fSwRuj=2wM1#T2RUc6?0;E@V$gfC0aW;2gM+mxJDvg&b-6w zt--^RM3Ju+7ILS?#P60x&Azg-h%Y0=@4!C%FX1RkJtBT@!MCmdDCX{fh*<Z=8z zKIx)34w6tRU2)PAgc0?XtHY9VYhtK`kxB?Hb8RNQHX#DyPD_SprnEYi{AEg zEVBm%8hljyr+7*$f+ZHnOL$3seMd11ZuPz&6<(O3deBLSd{)BsRODAy5d%l+DIdhr zZ|oFes^)ttpreYY>&^zsJVJlZ>E9dcC4Rf5v^R4xUM`fux=F|~bGjg0Q7i`2Wva;b zRYG*rvo!GES^tL>=5boM^vOoRN+eJKA(%-K*V>!};VK1rxm;oG87=nni*fH8)Q~;! zOl7x|LztwmMc%#k3LZmaY!p&AI+)y^;MBFl&UL93UM$E7KbeZ4Z)`o-9phB@eGbdj zfL?eEA=+~ArXTpE{GYRhGT+<(HpTYxBnAm02O)wE0IE3-A5%C@HLcO)GgP+?6?~49 z-V10v5dI9(^}uOtBA-e>RNXQf3`KN?J5!#ik<|iq2F2>z!ohi!YiG_HU3y z)M3+o4+uJcg>bk85Du(--d)$V+MTtxa@bD&i%u>>cJqu7{Fw3CoMDYXTyYsB)iv4a z3>Y!G=v0n=Z(#J*p8p^%!=Hpi@Px6prnJLwM++rrJa5q*N2`MaC-8dmpy6BaQEcnK zopdd}4@%Y_Z-IVi>CI|pEljSrU>MPYjxALX7ac+2OOB4v8k^^y>FUDanGgi}dw!`Il0!ujsnGr;WGVw2fFA zQ_TmG72@C!GuGG_n?4$=JsJ{|NGA-0FzzOe8yX+PT}OSoggw+aI+W|36Oy&BB!3Yg z&J?l5_5zHC!6OvVNHy}oyHyFOJK+(uBZ~8Az_52}nEdkO8IZdl(ri}*w%J{<7qQCc z>PCfXUm(;jQ_U`qYPx5=g!YwQ=&0kN1GL(3g8>l|_ll{7xP8WDE+cWPVb?&H)6X~w z7_7EMOT}2R8VLn>5v};xzc8fOQPmG^J+3&w+~At4wIT8MTm27u`t6PxRxY8Nh{SB4 zr_>Dxd%eqzPHmqpS6#&jA|VQm;wmb%5Rz%!3BzH?h|JdpEX2@nzf2L{u7tm2lasa` z-BEvG=FHdIe^Z`AMbxj>fwmdBR8oJ@<=C0vSE@BeQ$wft3$yy`cqa5JX;OVLs9EBB zJ3;<6+Xl6?{Z0#J-K~9{1|8q3_7ZAJR*d_@l~?A2*v%R_0;Twn2M#k^Ut{tq`R^rB z3jt{&T-GyOV?S9GJW64c#8=kjMiLbA?e8mAgS!f-6QM$)ezeI50f*&)a({J%$wZiE zk{ugugPd=A40$J>Xei`YbmI7yG-N1V+UQET5?_tZ98ms_2ceH@8j-?!T$JD#(?`2w z(SjY)ak%n^{1ZGTbbJ=3#s7(EV$pwMnmDje{eMgBMFuDi(?(bUjAkQjYrsyU3+oo|=lsiLr`4b&K96HQg5>LOMs=BOqXKa2_|n?qYx zSHw12`@bv+K|!r_c9vESf4`s5WNAs95E`hBJ!%Z5bg4>VW9!HtmSxqFK>ilHhjM9# zep2Lex7JL=rhH>b|dQdhe9_Sb99Z&kN7)AkqL z4`GO6j9%Gp8k$0u4jClEDWge=Fa?5DK1|55A48XMEMkx{In z&qI%9qxSUN`&%3B%JZWITRJbGs z1^{v{%H21mL5wH z;@T=#BiVQDN{@Ko?qpc6&4bVL-}`lbK2oDT5yZQq9`rO&Z6$d_39{{P$U%#@u@sg) zg?*o?dKc6>T`AJ#T+3(oY(%jnf-Q%iq$_QrFF71Yx$7MU^4|rP%wJcwSxEh67Cqw* zB1BNFfAUw?JmWU$Yl0$;A`!rW=Y#^)ss+2IcntIzx#Qww6R?UuDOdd5asphY;{=$j zlM$Qo8wlB+hTomFeBE(cSAj6H*+4V+L0NA+snk|!XE}W&Cy$zypqd+kN1zQx8}5C}^A9aOg8? z)oW-II6uocW<`-=EJt;eM0sQ~w$vbrQ?C?bLY9vi@3+vLjpWj6yf7~kKiQ$pVI6Rl zf15BnB8C{INpT|AbUa*#=pJAaI6}a2BmY@_YN1Lc2k|Ws(1fWcn|y@64M}R-{I6;h zdcD;?uW;5_HHiGeA>M5T=U`g&)7t^Ym*C$G&zAs0fA@cP>SN%OGzKqu3&%4@er#a- z7?9hWR5avs+>5=|rES8^)gl?!Av>Ig^`@IJyKq`~t#q90bkG!P*yQQtjM-kb<7Hp| z-+7F43f$(R6G^aKpDu927}-z-bZj*A5zkWDrGTQdg0wzFgs5@Zg$TcwnA6W3c=wh# zUUu4ZTZPH%;U|o+!EAc*rZ2a9-%52wwOK%+Tf=`%zl&S7RoWczMV?AT$RD}TM>=}^hd(1p$N4deXBrD*qLrvLy^!Vq=J9DjfQHbu>reKLi4pdy>V0`l>)?SNLLL^Lk{ZmQn0`w6Os+ir=L6;}?rW$G7@v`gc6v0O$c0(cqfTTy zl*ipZISlEQxN+Fk#%`A! z`oKQt>P;qY3@cS|gLm-~wA#i?+So|f$i2p%9vDbtRJdU@6{Ww56JD@Vc;zXzYZymD zn&)vy0l*jzl!uEve^n$TS{OPKO)S#!M<@vl^7B|RSA`gJ5r}s2!CnO8{!XXbeJ7t3 zEI=&BJoo+dase{`kw_ITN)}5Tu>jU=&-&d&N+=Miw6-Xxt=i7&G-hqixJz##E7izA zyHa;N8118szv$P|pn7vug(FN-BoLM(2p#AGDX~Qndi6)>mGP$A5$R;ZO`VuxBECLC zGrvo(J=4ny?0*}7->?m3TKM1+TQ$j}*`*t11$n8IT;NzNcD>D*OM6RcD2$BAIHou$ zsv_DD2U zCeFQ*Z3Z@N;RuBX)^)!x3cmVT|EqUUBQ+j|pAB=1b$dyw7Yhm&SG`7;+Tl0w5bM=h zboM2(O9kQWabNqry&TT5RR1fvt=8o{JDRETJ#lg`MNkHBQ$~sGhUnxElMVA{ogpej$C`|Ge)S{JmLV2_Cb~T+L*TtnVj9DJWO< zxzHX|wOkcK^1+JOOXOMMuw(_Cq~qZ^4@OJS#m}(ST-IseQx_lBcg0xq*W~XHD98)J z9D}y54f-14hRNs+V%a;JD#W>p;jgz+1{i0nQ1;`I6S@0Xv`J-hgoXa_3`lF$_)FY_ z21YE$8k%$A(6^UUnW_So#oIBoRK6srexL`@B!vN(>s2SGw$^@H1vxeO{^F0jiks^J)Tg&0aB2p zCdx6NI3~Q%A`&Qoh&D9E*v4gsZ=5>q%d+$P(wug;eWf8dK*>x>uL{{4+NFsvq z+Lh3#Z~iTm`G{$Y0a-}bqY9ydNCZHnvwlwuq^G2mbuMoXJIEs%z8RBWTY9}YA(s+Q z^qXCjnFaF%O-94}M)@j%HjZ z2%0Mdo!)}dOXaHVUKQ@i;5tsP%-*LHB0m9WISkeoZYST-K+j5{~{GnXiW_37kamm2~7C8deo{mqofYV=k%0skF3VC6e zeH!|&$gxRLaA*c^%DU4i1=N?p3YW(&MyjrofMFy7z2AG&bJB!8WoTwM ze&sgEg!czAFv=;3)Ft(W|D=J)D2y}IIo7VJZrc8mBjf+Y*kDN^Ox63W4+!#-q{gB9 zCd`1$2B(U@gQu@i00rGd@XWi=v(ftny%~xUr;gR!JitCKqw(QL$*&HMWCcSqT4~)V z!VK-qD##{rL2Yh5JO2xG?`E3Q%3|hRWo7*U4&yFugn@2x7pzOHL0(%D5IVdnerTH@ zTO4o^{*J%ud|S*hu1BD52GX;`KbxY@SV_{;SNl5>sl^L_-KzOhTLs!EJQy{IJxP0U z?@JMT0uV&@MqOV$vP1?CDJ`>8^ZUV#qr5s;IaF+-XS-oO_dhWis71K0+UM3Eqf+|PKnjT zhqMNaLP?A0J?P90oFPwr9gkuU@HqaIfkd3J6-)p1O>WJkOAJu6ZB7Tzqo!DlR8>>~ zu?ejg>m(UZmd}k_O(g}vp}WE(2MdRHRRZ^y^IlKTG^TA(0oa34g2SUj6iI7P)}IGi z85Wun+RxT151!5qal%8Um8GnTeBhq8&(7X7EPesc-#(75SuDR^Gw=YsVKA6*Mro0) z?#N9p7A~dW%S@t0A8dx*9s@oypa}|RqwPK+B9rVW!G=*^#O5>%$=9WfaQ$fec9_DY zAqx~)qsU84@Re#%0of)7MX#)oqn5ms(I%gmC8S8Rgk>K(yiBZIbf!mU4E8>iQ#0*k zz_Te`!IYv=c}-!0HR()TXle)B1=WPojBVs^7_ShL>KXbrIG3Hb!d?%Z=I04Nv`MH! zA7D?e1abQP(0366G%4GSxj+6A5uicxUuhuPz3D$>Hs@^$1+kq~M7YySWA!pYa*1d< zGWCPe*hO~+eZ8n8hg3*nB=)I#&*QZm8VkM=kMLOFrsQ{iq_`%S_TWc$#OVun?N!1-A)24tLG1Zb&M~`T5X)`906(ZhzB{0bQZgbesaTk7$Lz zoWZ-5_)!t3UP(R);Tw{AM_~kZRshMk*Zh^x24CZMI+xZCnvw&KY7qV7V-z#eTURTTvZ6KCWxN-$r`BZE#IES(Ktp$WS7#yQjpCYz zffDq%4rQZ!fUXmdv}({Tg&dvb=K%^~=Ldu-LrGvDHK4=bzZ-WrsM60_9rkpeWX z->uPNNteW(nwu{dZb=u%3mY2>d<6yRVbGGlFH~ff>%LA5kl*+jxg`Y3AuH*(Gd)K93iHt8+lIwNmnO z{SWFKF*!>mzW{rbt2gS;b@+R`k1fS}RKaV9bMc^3pcYybrHhTX#HQyCASje!-Q``a zLUFu2_`P;HRp8$GQ~10I1tZ;A+E|5rrSTGF--CfUJunslfA^oUy(*}?e6ypfKD5f| zzcy_G|1Ka*E>r_IS!?Iw7l{W+BtBRL2+W;axALqV1wB6|beYQm6hh)@2aA8S7nu z+Gw0a2fyH>@)aGck~g~Q{(0H8^Hxn+$nBs9QP`39r}keM$v3P)t2s|dkpNciy8|~D zE`2|oUhc5FDkr_4iQaosIx8oAK0as7yPj0nZ}+QqfD=g}QkB5n980Uknm9|J?aq>W z;w}fV9KWsl&W|G}PeZfsQl7~Nsqz{iyNw2AP$GlP@4aJoO;{)vtr)`?A=lx;5`sQ* zR4g`W@gO)^M|HMSnu;cOJ6T`#fyA70hPs|VwW+5Vu;?jqnT&&^mC3*BZ5~Cqdb+ec z#J%^j_xEszwV=RNYL4VJQT1KDpSUB|eM+A!5NGKC_1-kx3OolN1VmV* zn$0+2WIH6S&`9;uO4(e zf_PKQ1+lcq_gwXEyQ@2mJve3CTV~X2j<5le)w~ho&=D>$Jy5rf2J1z;{_3F>%!+B~ z$gJ462#-notO$;95XH}cAd=OELlTa)wd#fO8GeR_3}3~5QD97}2Pl}ZM$3#Ul0uJ-Hwc14Esp-_yGO2LSHH0%a6 zm9fbYqbl~NNJK+DdsNBTnxlbk)r9U`h`aPF5B}J!ZtyKd^Zs*uIZWFZv(*Rb{`l z{V*Pn!w<{C{HcfF?F4eaZNPn=VSg6+?r(l#L5Zr`txkcz<-z?kk03O8)|0@L{oxSV zArH&j?D&M_zaL`_)4`O_;w?e-J3D+9$d^k$0q&WF87EzmQTqerCvybKV?N#l7dm1D z%7t$nZ4U9+C!>xFyjtgT^rr-0mlaPQ{oWVn0}uP|HSPwZiTX$PVLsR#-fybjczt%v zKjS{$cpv}ecb(#IwkrzW*5phZid8)deRRF?eku!o#wl9Foe*(8G?W>-C=j|EBROnz zjLU2By9s}8Z+V`|8B-=~7#%`DM%dTLo?E7b!2v-lMRG@rSH zQ>YfRrtM$z_Q#p})&oZ4K0u3a6wC%3 zt5K?%)+%~EGJ1bq1dHN4)?Ba`*kk)!e>dFS)v%r%tyGH3R0pdMCfeALW$@ZA2ce_} zFH#vQ&kTMZDt@Zd?|`b;YQy_{D-gagX{-g1$F^(bi@$TOMJ@>e_|S(M&}p+td^^>C zTLeM8ltjx5A1%yzeAE_wnH#k2l;-7ZEXU~mYFa3+GSw>?p^kDdTyqVg{0%C{Y7@f8Kp=ePVp!1#^I}R#rdlk;6J8#&DPY)j)a~o% zhHbIy8Cg!VoiPPBFzZxCAq*y<(Md@q+J`FGUy@)8Aku* zo9_>(C#=0tTW~f!vOKp%UR!HVzExSJTWd3DadSq)ODk+cW$&3TZ_uCc!7DQg?fnU3 zmtMhZG>OuA{6SYG66-?v=sOUz?uR8KVgh+Cs%MDrcvmLUEQ*s!*U68@i3Z(^0I7aj zI|#(5`^X^x_2?4z^XNwzOj8x+SwTT94%Me2j6f1Er(7Wkl#rH4xBnQ!fP4=2X-NU1 zFIa9SFh*KCw+ACyP`!1r8OPPhI}LolAbm5OWI+xgCqN% zgRDOME_54bc>!s;nQaDHI6@nO@p7F{suxKWqtEs2%X7{raUj#LZF=oHudY{1&yP~BU8f}gz;|nWXb(KZPuuovEnNMs&!no; zF>hhc&UXVet7=@%kNcWB8e2Qqh_HABEfCs^Yfu%G2f0E_wB;zTojN(g$EN2=7};J@ z^D}hL9M^jTl>gVbsfPyzI3vxj_cX>*J|-}td)$)!mvIFWD>}>AtE65>&91x2&oWOq zIG|9z)lMfKp>XQc6K?|)7P*rt=zVLD-PuA>N#<(1fSl*8CubgB@a4lmXU*gA{ADXt zPz1e~0S3y_)<|aYav6WEBBtDOV{S9M>vXMmC;oQN0;X?M8M%db#|Jr-&`o6vqX-DDJzCe<=Y;&>3LIUg@do^ z_Q-)=x=(VHJclGF-Hg>7Z=A)p2-3){HJO;)F%z8ZlvPooSc_oIQ~V}^=Tc|2ib)qw zVbfx%q`TOqJ)9gxqa?!+nc)PTh8v+lpia7G4Ww(dX7!|ASZ=aASK_7Syvolql)+AO68 zdG_Z@Yr>vo+iN*f+%XsZWChIg zg(zf@_-vPPw#RKNDJL{3Jo1+Bt41&%!g*ujgCeOXQY1=iSnMeU5}xU=JgZ+D;mR28 zFV)6&#_r32ZMulN8A2uJ0!{7EY9ZBQ@0thMl`xMD`(@ReCrc!pFpHx!BnE+IRkVnY zf;~7q+;zpTWnvDi(ZcLZ3J)kY`&U7=LK+bW+>vZzfnU?E)!8=9f5g=LO)~J?8+}y- z$Q+oiIA=D$nn&{$+zgi__BHG-`W|D?FHHF(#FO)xrJ2MY=>+-yynZX)_E3ftye09d zpzPx}{Qgciz5Amx7uxHw4BP+U1O8$@L_Y9ktIcjcBwE2|yZq7OcaX;_D$$%wWxk!? ztAK7hTRuU+5157#{HB6C%Ebqu9n!waoXaxXdTo6nmtjXB9cY`cG5jyr|FrS1 z+tg(`L)4_z=SN0jG$-j-poVB|_s%|$5{`rXrvot=1$zQ#ZqfHVai&N|dQYC!WtG-G z98?uN2VB&2%xqi>(OBzj*vWc?>IUyM7Whg1{=E9^d(`PWt{ z=uI@_9iwP|S{zw}rpNm0Ms_zg0}qur0n8~wgiPE5mHwj1ZKUAi(cM<~$vnz-A8;f| z3$aU(Sn}tS`A6k~2bRx%rx*KMbjDl=*YtYE9KtgUgWR}tQS8cqMTmc`=!em(=e$^eqAovf1%ar1q3>om_vg~v{J~o~nAQPJ8QhV_xPYHTGIaDa6SErMZ^DgfFp&YTN)dfO!x_OIHV=oTV z8|>zQ59_7(6TF0(FPUwb;*aTTK(hHUYDHYFUJ%)qk%mVSM*Ls7Q49WY!e z0I1H5DSckeGC16qT^t~0<{}MB471+FK`x?Xd8~rdylmNCn!PZrq=ZTgM|S018SNF0 zEY%_&=PhEOTRMD63y|iSgeLze1ewUT9iGaf^$KDBqTHD!#?hU-=0^0~@(@Dm>i?sS z%8h?WGE5RMR#u}KB|;*bSq`0Y7qjkL_hKmZCQBhGZZ*(!Su?bQ%27Jc1lOTR0Q_EVn3+c4^!=k;Z7eYR5G zz18LvG<|cE866WH55ri%K6Km3|B7~AsGG=t-uv=-#wy9~3aE)WfnbI~9{nCix-ACh ze~`92DBZhQhWzfMwf~gDppuVj?HlZXEea^V$sYS9NJI|OSVu*%Q^gM0me1h)^Rx71 zn>u?yn<~$xavdEihZ29R(e;m8s=(Q50sasuR>%OSg{%0Pdw^l#o$XzReC+6Kxy}k? zs~qjs_4~1h0>D6fmuG1&G@b!}r*irEizD7`56KjF5J+Fg%b^nR6*Ahquj7%wG&xF? z2IJN4u?gUP!0hCLH0|?$i~(CGPLG4WSD63LgZCsisE6Ps$7se&;Lhk1hCeBca)Del zipZyYFv7E?DsdV5L|`~%ytA8a(T)AwAl2FSNN>P&727-y7ALgNkp8jI>MT8eI;#;>=8>a#>b0lv?VMnMFw5P3NQS`ty%Q?P z)>mQpIKqm|%k8ok3C8eukYPpozzPB9D8+({_SkGURvl0~u(ypQQmJ}u`=&W;a{EOf`u=T)zyr|ALIEXv zge~COL{vo6JuDkRvz6>^ahPk1D^-Sx!P0i}aVdb8xI2pRs8`SBJ@E7EjOFrk#ls6a z%tOyDHe0h_hUb&-sK4mQ-2^=Qe#ybjiqNO4-RV?xaiJCfw^TX$f;H!3vUROVQ=5cP zkc+npq+1aNgFtSg{R+&2LhIuBXA7hk{zI-fyZy=^1&7~~uTloTwxU&q35h)cO98hzPopF_x zTI$>;eDV6(=KgZSgL^SpL&JFj%5W>odHTdtd)EY)#Rxn^^4LC;RD@YXx}Mpb{YV}= z5xn*1ZFuel>$z{Ex1e09E!9YKBHxz+dhrH$cemk*LOoSr{YS00F<}LC z+U|=oTGw68t~{lK-d)~FEH?c?iuctxiYKT1LYF{y)|^JzT3o0poBFc`7f#iXY?yvSP?#;yEAdRVTyK zmK~?-movMO6@izXDyyi3YARmjdVDkHUAN66YBRC?O+;L!ejl`-T9eVc{6W|v=|8f% zUdlG-P_r|pR7x0*&N*$S1)mo`)3+6Z1B>fBoz8-&fObEAGUH?wjgfB?)gd5*!YrEB zTQukA-#tHWA1&g{H*KfA=QC(V6)b zyi6U&nL1DdR#!X7l{KaRfp_NKqN}34QE`{|K4;bxF_7!BS* zM-Cs@!5n1-(H*S}4r^#4zn1+n#4vTrDv*fYSrsF^3xy}g!KZl<<(`KJaO{rEkB@FMuF65(C3_I*SWfY0Hi#FVRg*=R|L^B7)viKG^cUt`pH$N`@Q^wI3G2tVBU8V=Gj*MpI zXwP4I?~@wU!9zcO#0Kw>z@la+UrzNWbb4gNXuHZElSKD}UQPa|GjYpN`ZWY8wZvOQRq4dxuEm`s zD#w578d$9zx943#b#PY(@0)AqbF8h=XEz%dWX$)lbo+w7*Kj`IW{FJZeRmVT;A{W8 zFi3n{x0AxXv-9;mf#wmZ^f3fKFenOZu3C)X{arC2YvoPkcOHaBF%n`zI`F*+3R&9BSYfB6shw)aUEqOy5KN$J4aBlxvY@ z>B-C%a0H{yPj@RhzpE0(vdfp%`A!d6rTA*0fiW*4cR9hQo0R*wHedomjK`Pl{cK{s zq6~o>Ry@(j=bhaWwzVZN-Y~}KXnAA?w=Q6eE~@~N+@?&2)7E6e@9j1hD6fa)Wb)AA|3{#XHzdAXWLaHzT8 z>U%hC%=5AJm#0%GtzRC#XE2*JL`hf82;)C|j@WoRkxP+wl-hr1>e|R8Yw*f1#?Z{Y@nJSY# z+IMWGJyw!~E@(ThzZ{JMV;iw1EICZ^d07!@UoNH(??-b!GL1O(s*VmIt+FxDyPp8Y zglr->l#Oj-W6mfdEoz{toOmhw3r9^auNl0)^)BMe0JDF_PwkLkB7P^e&*M7%d1y(= zhR@xcpOrQ6v}brb;?gluj8^|l`c29UAU|^&selD}ubXzd>Fv9b^k}{huYcOZA^6`VPownJp*^U8x zaMwURaWtj$FDgJ2RJ0?sQi=S!#IDhgzhnLAr~bLks;_EuN=o?}5@x8srzK)`oI>fx z=H}Br5_r1s#h3$ZlgW$}up5bS=yP&SZ1EY&X`N*9n>{h{%Z|jid7+%}S99&1uiqLh zUdg_Z5(MFz12K5dI!&41tcJf%Li7UB)MeZ$HOhqA{#G!G515lvG^&MLrsLf|=J3S0 z4WWQg8{p4>4@&W9X7s;|xm2P_{Ia+nKa^nmO+DI^XA82tRD#bIA*8xnvNuW7(4E~a znK;qj^pf-Y=mRzoc!#nOY9|ircF2`Vr>f8O%0qei`sAp8jADiT^Cs)Sl@BV&mAZyp zg^9X-<7k&gjRu!;wdNzcc}t!8WJq;|Yx~mVCs=b==(frsjD6XEEkthGsML~Wd?d$# zZDJTQgcOt{n@B*c)5^@_5m(7Ln7~Fm=b7_chaBInjDuggMIb{ovmC_8KTXd0(P~{c z5!(b+79J5So(<`CaZ{UZo-y#=1XN+lWvvS$-2&Ed)Rg-FZTh|r(t|Y3E_cXE*P5>x zWtI7%x$hN*S*L=CK#R=tRwr0Oz)e-`Fga-tI$%)3aSFKI@rjj)U6Qx#!4zwPpOpX3 z$v(_JHd7_~^8eNK)lpG>@7Kc+4&9A(_t4D{LrI4qNJt7ONGTx<-QCg>A|Nd(GJte< zcPiZt^P+sdzyID@XRTTHuk+mfJbUkR?!D)n`#-j&TrZiG&1C}W;EE@VqZzAINq^ir zc#c3}g*7q9*<*jcH@|@kfiC4D!Uy^;p|1G-geD<)pBVeYijeoYs9wsHE73!Q!=>Th&k3`e zA=-k|u1Sor*n!sOug*5n?3L=bQuo&+Kd21?8~k4dhJgYrNbqjLtv6EyCaM+h>gJK~ zb8+i)h2v+ueeZfL7!1j!gS_s=W@Zx%b4b?zG(gYh-K$5DjS>T>g6*BIRTq&$OFg8< zSy}3`7;R|-hkFmKLM0s@4h?{k{ia>>-Wavr7|LWql_57D%ZV$3h7QLXo-Y=^tPPm{ z*vT9SmI-TXe(ZX9ptruZ^V7X1T_s-fnny zf;PHWv4_JjVNRO@=s*@_1Ep4p?n$8K$?Aq^=)^$yIhH-!43RsnfSiw4rPz@4-BV4L81_wZ!@~ZGLk7{fY>=GHKpF)@Z99PQ3q%iQM@*dQgMdCetGjt_O zHzauR%&8bRHr?0WzH3K0j_1`ad1sgMK!W9p^LM%Q{l?B%vkYwd9y6ru^1olx?Q6D1}W$Ranc@GLYP+xPpcijgxBh^86p%rA{Wl7lng?>o( z#FNcwUZe+04J%?CPe3Fks7_bYkv&o2&3A3=`haowMeemId=;xBs+EuHt)VV4jJDY$ zZ=V6#n$Wjb!zDSs4Xr2BQn484-_jDj+-3fR~Do+z@))2oY_ zFn#OTACq;D`iSXN{G2hsGAD(6uH?D0Z{;Fr^O-xwz=)5%oQ;)ew^Jp=xl^z`3vWx^ zzfSUoizl)HVbmS-Z$5F^^I^ZQ?)2b)PaRs)K}c(0$K1`^8iAlIXEW3qgy`J*0CT&W z7GUb#yth7WUSE^Ktf!#Z_XKU&57#RD00j$6;}A|}+BYN@_Ikj6m0p!EMNKn)BHG@s z>;~JXCZE)F!Pe_I(wk71a#gb;cstp_{mRT^=-ux!C{Et)FrNJKG;A^Uj!r#lK&vVV zNwAb2(&nc+3X1gHNz}9V=M<7_k;68Oy+PhzyV$*{B`bVttOl@00tNq?x zi&tnXUvTt#_9}2bhe2j7Hu-RDV`RSfdGwK~&sCgG#_Lk#s2Wn|YWjXO0Qq~w$dkWx zB1FP^(k&sxXta^vX&V-M&AorTngb>O808ksPOSv- z;UT@wl#?HCDXJpOs*?--k)(Cv%kUfnEe*3`MK-V^>~aHNIZ=QE4ihORFfoc`5400X@7dv6ja}7Xd&JtN*{?Hz(Uo@z_bu%Hj=}%x;|A;di*Wmh%fE6@KhNI z-o})V5{eb|9vJ0)@`_Za57eA>@(8QqhBvBa76i+h!a!#47YtwKit}wr*Ca(FJjZCl z?O$u_{K|BMm1T84znYr7meY1A6cflhMHgMKvz*0-w`H2|`NWXYg1UdEuZ?FoU$^!a zNB7bC*JydC4RIQip}Wszu#Jv(b=?l6`D9(ZLw@U>7h_z#E5iS3ejro z4K(DXXeiwCQ)_5(XQVwKKCC_@whVx*|Dy30sJsVMBIp4IWNN8*e^7>^8Ubc2 z43F;;vkV^o|6}wN6;QS2@}RVacMG#Si3w$GjTp%not3Z|`qG<}&Oc(@9%eqICRS|= ze@<~NfDSflB5`ouq% zoh~h6x|#9EVYGEOwqm-oBw5?G?1n2n76l{_+c{}0U#rWmH{mtGQMhjd#S>^C&w7_v ziuYdfyV9v}0usaxh!@#ZUNQ2k>Gf{{_>cMely&fj2C(BRR`QbPK;Cqbc5hQJj?Vu~dPOJu5MUASwbd6XTJ>Y;DG^_2 zk^9Ja+nIqq(R5K3MR|OWw*I}Ed!%kpCiy0xk;!n?)Pq+NEoMRryb(XPMFeIF#jq?x_k^aDGs!2F z+*0wtBXoQ=fnal`z;3Fg5pI{&272REx+1QEW}|-Lfh|`G-aZd%vJOiWR^EQyNLc$0 zcq@(2ZKS|^DHa}q+?;38sl}`QMj|qx+LF3>f_f9g>^VqP;DD4t+@p2$RA(tD<7%c2 zuj-khVmiE)2@QMTE*umb7m3?{5^3SabPjIE4kbwaesy1I>Zbbo(0F)$&~|U;;TdeM zo09rgjF8LcH{VV!ED4aq0|wPLN0*|p4c|B<9BX|oV1zN~@>nK=w;d-bVB!j7^BDCt zul0*vE67^O7^3R+LZk(@haOQW%jhT-c;_j4eM<7hDT)uG* zlSB+p#kI8)Pesv|++Ck>l{nlpI=EsQ(&!u<$DHwTk4HFY*R0T)0%)TS#{^^DzuuI` zfQA;JW<7n$BO%RUpj6t(^%wF>Oe6V2y*gz?n3kAmevJk+bu(da3CoXBWZ2MCkBrRa zW%~2y8D8QugR~aDZV@oK_w!3VY?V@E-y9&a!;m(&-Xe@2fgD|O4N#E;J#5r<!R93-Z|SAWpROK+&}%RNSppK7i|p9VCRQbzIzN7~yg{Rzv1>?u zmH$dEkeFeU9|Mi1EqA@1FuG(d(%lhgGvUOFcW5!F)73wd)q3I)6?D|*@$H?{Ucf{# zQqGf7vYcGe7ST$c%7o>Vq{3FW(WXDYB-{*^sh&h?ecrGbtX!=(3iK9j77{Eaq|To4`GM79~VidhUe{E%dAYKaWIeC_1Glwj6QHYRt%Hjp|$~8?QgsCpf`p?6QWkC<+>(bBQZAe5C<~jg4PvJGlp%6hAisTLzV7 zt5h2cDHRh=qIm)&nX-eolU@v?*6lJQ0OGkKR_kji=Wpm!#`E!ZHn?iWUIQ%Ze0%Xf zH`2D6hRL_RT4gQ++u_=T%U$=F(5&CpVwmkPw7NSAF1!xBt{^{2M_vu00S074??uhA z!qFp(P#%$TS7ORAc zh5!D2kP`j71H}Z|;xb5^SY@e5wgKHi7I_v|ZsS@IUH*t656y!IK&7dGQlH ziN^E7dXHPzTZlo1k5egzDH^&=&)z=b9vC03_x0@T zD#E6E6M4Df5<#v7{~G`V~QZ#WOloe(MG8YF&oN!-LXqaPA1L|h)#q9gA+ ztJgDB(zK^{oOM9l=X7y7b+mj8?-&?MStarAt7F?O;9b`+#cK`=UhDLvN*&_4COC_>&IepU+r;1MXx%jjxq8@#DWg&xwx zBvqTX50or*mRi_YaOt19);^zb$LJB99x^%eT@tBUk^-UVwyQ4QMdq3?y&V?HmI~`2 z%+`8SUPfIm9EMxOG9p73J2diN9Wt3Ax3GBGel&k9gphE+wHkDRdHtFLEvJZm!?26C zOBcKFGr7sV!#B>%P%qNvXvGwGSjZ`KNpsEat%f~&&F^A&wHW|UNGODm2aX|K>_xdS zYhF=9z9X$_esyY#u~RZ6aw4B}f;*BbN%V*|3<@?_kB}8avTW)JL?dlz~1SkH|6NNFlC8H*l!JN z_z_NB59$`O0silAYQ2D)Dhdfko$#-CsOme|@L6?0{HR5LOM(0haBC-0U=d z_QP&eW~ls6`pIkwtI_p19-hLz?`l5_vTR2Kr( zc*k^iBbypTbOl;u?Ki6!b~we4j*#${`gs_GtU+r$k-tPtn#)pr(PEf&u7pa4eGPWM z44nlGq#7GUE`V)mONF3FVNA+2)?T^DX>48j(aa);ni7D=;)qdrfGj3>Qe5a?kf}Jp znm4~3``+=(lPAp|?Q0w!3v0c;VwCF>#NTJi`q)!zy-R!SIMCk}RZY5jKH+G-(O%#_ zElOc@h1H3inC)uTd#8U7Cn*5F&NeJPgzkzPO7`{lDMq=Xe|Pdebz3TM+F zI_6{^Y91zhbZ1(VH_m)Z`?Yt5KkGNdWKXBJ;p-HA7%s)Fy6TD%xZ5Lz1x0CVBP7CA;fl>K+fq05mHQq_Gkr zUD(75=XUcF)+W3p_M`eNJv|*hu=}E)TAX66ze61XVEdmj-E(LosbJi_71~^TexP)_x4m(Bzg<)BwkvxZ z%i~;6Jy&a9vdm9}uB%s1`XO?Fqn!73Z4utpIIw+Ock4#uHE#XUrBi>l7&)|#kf90DLn7$?TEhG>^B-s* z>P@`m_{;yQ-yTR{>DG*>4@398yj#d6#ErPB_d1o8sJ~U4mv&)u;PF;Ksv~(dpYO0% zP?}~Hc?mxZeQM2G*JKA(u&Gn2Tr^Q#CPk@wx#+Ey!H%)5(yjUZ=aB?O=KJq#7^!jA ze9yxnc2t)UxHkoVW%{A*;#VNG=(PTa#v)`HDlZr`IT{~-e<78l_eXG1Uw$T)9w7b# zKW47_XnDHf@@TZq32{rawz(TO-Qs1WQd^`62=;g8Yqu!rMq=}!c0OQ!p?LQ<512r! z7jr#@lm6`#{p*H*LA4M) zn28w%cU8#i$1;t<*Ho&>Cup6zO@@>Q-0eWTedueezJw#_cG2%>XuGN3Z>{kZ!gB_e zV4Xktr&g6K@$Rf6)By}wD7K{9?`&;zCeL@!x_$qWLoo*jtLPU(P)C49kBHa8e_zT= zRi#J7vn#rbgul2|LU+J7d=SY)VHBbVbAT5?NU0a{KPmEWKL+IRkz(Li+pzn!XwU29AHJ~c;v zMdCqoG-Pw02Ra{IXR+Y|M%}rC{iX=ar1mxN2Pg+fh*3G+!Bo-aDN4S~=5Uu&T`VwG zH*->gkS6};T-c2k;ClCd%hZb#{^}n-?_Q%%1Kz#nDScx7h?f)!V}(K#r?c!yQeL^4 zcWHv=lp{L38-R>p6mCd#RN*4wkolAPL)k~dCD?mz>JQd=*?Q|&2^7QTG>o@>YX==D zi|GJD&Dwlbe8$_X!yofcJ157^41RNV_P^n|P9jiO5?nDOjMU(xW(8O+g&r<$EkAv% zCMu-|MWO2M+e~;gmdj}r#>oh$J2oyGlP;-hvZ>-bZ% zdhyUqnrwv#BH!oYF~(v~ly3FM(}vHLZx0UEH4~1P|D(6!UwX$Kc|P*3h&g9|8?AJL z@%|=pkEWV_%k9VeqSb|ib|Jkx$3d>ni>>C!n-m07v$zk_e%)qXOcyL;505LS))#eE zT4Qml2yMF+PKxw}K^E@wTCoQNaaHNaNUTcvV2aA7IF#LmlLYi)k&bwI@~*soJ#cBZ z>s~J13;gJ@QV-CmE(uFOmEI2NZu_EI<(^K#Ywh&PuY!oa3Nl!JPZvd0l?~CfFRdHPn?k!w>FGIV>&~ zZ+Ta)4w%zNT|j1RObp=~l3tvx6Dbo0`z_JOj$VFBxgjtqKhqq6qqRxp2|@FuLszQL ze#d^{FWb5@4j*uKCyUY(r1v;H(~t4j{3Mp zz?-d1gHN_y9}3kw?{;9(MqNA|xO;@INCvsXG{9_s7$L?zYOsH2egPRE_X#T?^*|vB zJ6Ci+|3Yf~%0qfg8Ip^zlG7%*=L3KgpQ7OL00V{z{ChSJ zRB51};qH{U`XVfA`vV~|B*8;Jy8G4!I@q+hFqu2tqIk&|(ZHNjx&ShW1 z90F~(Ttjgdw(_4WhWI{A{6d!LJwcB$d7uIz9*NudovB=$!@UyC9)B+*q9@UbQOH~f z6SVJK+l+H}J?^Xb+KZ@n`lCCa{US6B<0j51v#NxxC#yPyc2{~Y-*0&+)!ZhEu3cyXM~ZG1V1+MYEzjd+2f2xJ*N@sR$VFwRL>!Vs}1hq785w-@1XzzTNyx7XRbnHAa56(bXINcmi z)O#Iy&P#bRI}8nVs8v3^2|<9D)9k55*)ux4R%FFPj(f63w?Nmj~4Zk?Hg1Td4)sZ^ce8&&V*8R5RB9 f=8*3$(Ql>24wg#qt4rSl9)8MDb@?(`Gynewg*Fq1 literal 37062 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 S=!i^7&H4U;@8|zXnD}o3hzZO9 From 366022246c780737128674938d2904c38ed5b007 Mon Sep 17 00:00:00 2001 From: Lincolin Date: Mon, 27 May 2024 21:16:57 +0200 Subject: [PATCH 03/52] edit ayes logo to home screen --- splashscreen/splash_halt.png | Bin 22304 -> 101181 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/splashscreen/splash_halt.png b/splashscreen/splash_halt.png index dcf9d8be0de9cc11079c61ef6e57c5d52f9cab15..386701bec865fd16afb6d69397816d93651b6296 100644 GIT binary patch literal 101181 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 G;r|EhWQ~RZ literal 22304 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%0A(dduSt; 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 cwGPx# From 533046d8e8bb7c470d862d7899c0b5e010444eab Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Wed, 29 May 2024 20:20:37 +0200 Subject: [PATCH 04/52] WIP: seems to be running, can't see anything on windows. Let's try on Linux/Mac --- Dockerfile | 34 ++++++++++++++++++++++++++++++++++ docker-compose.yaml | 9 +++++++++ package.json | 7 +++---- 3 files changed, 46 insertions(+), 4 deletions(-) create mode 100644 Dockerfile create mode 100644 docker-compose.yaml diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000..93ccf4eb5a --- /dev/null +++ b/Dockerfile @@ -0,0 +1,34 @@ +# Set the default OS to Linux +ARG OS=linux + +# Use the official Node.js image as base +FROM node:21 + +# Set the working directory in the container to /app +WORKDIR /app + +# Copy package.json and package-lock.json into the container at /app +COPY package*.json ./ + +# Bundle the app source inside the Docker image +# (i.e., copy the rest of the application into the Docker image) +COPY . . + +# Install any needed packages specified in package.json +RUN npm install + +# Install dependencies in the vendor directory (only for Windows) +RUN if [ "$OS" = "windows" ]; then \ + cd /app/vendor && npm install; \ + fi + +# Install dependencies in the font directory (only for Windows) +RUN if [ "$OS" = "windows" ]; then \ + cd /app/fonts && npm install; \ + fi + +# Make port 8080 available to the world outside this container +EXPOSE 8080 + +# Run MagicMirror² when the container launches, using the server only mode +CMD ["npm", "run", "server"] \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000000..9dc3060547 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,9 @@ +version: '3' +services: + magic_mirror: + build: . + image: magic_mirror + container_name: magic_mirror + ports: + - "8080:8080" + restart: unless-stopped \ No newline at end of file diff --git a/package.json b/package.json index 949306ca8e..c9e3a0b62f 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,7 @@ }, "repository": { "type": "git", - "url": "https://github.com/MagicMirrorOrg/MagicMirror" + "url": "https://github.com/AndreaCalabro-AYES/MagicMirror" }, "keywords": [ "magic mirror", @@ -49,6 +49,7 @@ }, "homepage": "https://magicmirror.builders", "devDependencies": { + "electron": "^29.1.6", "@stylistic/eslint-plugin": "^1.7.0", "eslint-plugin-import": "^2.29.1", "eslint-plugin-jest": "^27.9.0", @@ -67,12 +68,10 @@ "stylelint-config-standard": "^36.0.0", "stylelint-prettier": "^5.0.0" }, - "optionalDependencies": { - "electron": "^29.1.6" - }, "dependencies": { "ansis": "^2.3.0", "console-stamp": "^3.1.2", + "electron": "^29.1.6", "envsub": "^4.1.0", "eslint": "^8.57.0", "express": "^4.19.2", From 5d7ac1c9303c67afbebaee332806e3d0177203e2 Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Fri, 31 May 2024 22:35:51 +0200 Subject: [PATCH 05/52] WIP: working docker container, needed installation guide! --- Dockerfile | 85 ++++++++++++++++++++++++++++-------------- Old_Dockerfile.txt | 34 +++++++++++++++++ Old_docker-compose.txt | 9 +++++ docker-compose.yaml | 8 +++- dockerfile_x11 | 11 ++++++ 5 files changed, 118 insertions(+), 29 deletions(-) create mode 100644 Old_Dockerfile.txt create mode 100644 Old_docker-compose.txt create mode 100644 dockerfile_x11 diff --git a/Dockerfile b/Dockerfile index 93ccf4eb5a..84a986fa42 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,34 +1,63 @@ -# Set the default OS to Linux -ARG OS=linux - -# Use the official Node.js image as base -FROM node:21 - -# Set the working directory in the container to /app -WORKDIR /app - -# Copy package.json and package-lock.json into the container at /app -COPY package*.json ./ - -# Bundle the app source inside the Docker image -# (i.e., copy the rest of the application into the Docker image) +# Dockerfile for MagicMirror + +# FROM node:21 + +FROM ubuntu:22.04 + +# Install Node.js and npm, keep the FROM to just one per dockerfile +RUN apt-get update && apt-get install -y curl software-properties-common +RUN curl -sL https://deb.nodesource.com/setup_21.x | bash - +RUN apt-get update && apt-get install -y nodejs + +# Make sure to have x11-apps to perform screen forwarding +RUN apt-get update && apt-get install -qqy x11-apps +# Install dependencies +RUN apt-get update && apt-get install -y \ + python3 \ + python3-pip \ + cmake \ + libopenblas-dev \ + liblapack-dev \ + libnss3 \ + libgtk-3-0 \ + libx11-xcb1 \ + libxcomposite1 \ + libxcursor1 \ + libxdamage1 \ + libxi6 \ + libxtst6 \ + libxrandr2 \ + libasound2 \ + libpangocairo-1.0-0 \ + libatk1.0-0 \ + libcups2 \ + libdbus-1-3 \ + libdrm2 \ + libxss1 \ + libgbm1 \ + libxshmfence1 \ + libglu1-mesa \ + && rm -rf /var/lib/apt/lists/* + + + +# Set working directory +WORKDIR /opt/magicmirror + +# Copy MagicMirror files COPY . . -# Install any needed packages specified in package.json -RUN npm install - -# Install dependencies in the vendor directory (only for Windows) -RUN if [ "$OS" = "windows" ]; then \ - cd /app/vendor && npm install; \ - fi +# Copy the configuration file +COPY config/config.js ./config/config.js -# Install dependencies in the font directory (only for Windows) -RUN if [ "$OS" = "windows" ]; then \ - cd /app/fonts && npm install; \ - fi +# Install MagicMirror dependencies +RUN npm install -# Make port 8080 available to the world outside this container +# Expose port EXPOSE 8080 +# EXPOSE 6000 -# Run MagicMirror² when the container launches, using the server only mode -CMD ["npm", "run", "server"] \ No newline at end of file +# Start MagicMirror in server-only mode +# CMD ["node", "serveronly"] +# CMD ["npm", "start", "--", "--no-sandbox"] +CMD ["npm", "start", "--", "--no-sandbox"] \ No newline at end of file diff --git a/Old_Dockerfile.txt b/Old_Dockerfile.txt new file mode 100644 index 0000000000..93ccf4eb5a --- /dev/null +++ b/Old_Dockerfile.txt @@ -0,0 +1,34 @@ +# Set the default OS to Linux +ARG OS=linux + +# Use the official Node.js image as base +FROM node:21 + +# Set the working directory in the container to /app +WORKDIR /app + +# Copy package.json and package-lock.json into the container at /app +COPY package*.json ./ + +# Bundle the app source inside the Docker image +# (i.e., copy the rest of the application into the Docker image) +COPY . . + +# Install any needed packages specified in package.json +RUN npm install + +# Install dependencies in the vendor directory (only for Windows) +RUN if [ "$OS" = "windows" ]; then \ + cd /app/vendor && npm install; \ + fi + +# Install dependencies in the font directory (only for Windows) +RUN if [ "$OS" = "windows" ]; then \ + cd /app/fonts && npm install; \ + fi + +# Make port 8080 available to the world outside this container +EXPOSE 8080 + +# Run MagicMirror² when the container launches, using the server only mode +CMD ["npm", "run", "server"] \ No newline at end of file diff --git a/Old_docker-compose.txt b/Old_docker-compose.txt new file mode 100644 index 0000000000..9dc3060547 --- /dev/null +++ b/Old_docker-compose.txt @@ -0,0 +1,9 @@ +version: '3' +services: + magic_mirror: + build: . + image: magic_mirror + container_name: magic_mirror + ports: + - "8080:8080" + restart: unless-stopped \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml index 9dc3060547..555958d010 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,9 +1,15 @@ version: '3' services: magic_mirror: - build: . image: magic_mirror + build: + context: . + dockerfile: dockerfile container_name: magic_mirror + environment: + - DISPLAY=192.168.178.21:0 ports: - "8080:8080" + volumes: + - ./config:/opt/magicmirror/config restart: unless-stopped \ No newline at end of file diff --git a/dockerfile_x11 b/dockerfile_x11 new file mode 100644 index 0000000000..ea11a8594c --- /dev/null +++ b/dockerfile_x11 @@ -0,0 +1,11 @@ +FROM ubuntu:22.04 + +RUN apt-get update && apt-get install -qqy x11-apps + +# RUN apt-get install -y iputils-ping + +# RUN apt-get install -y telnet + +# EXPOSE 6000 8080 8000 + +# CMD ["-e", "DISPLAY=192.168.178.21:0"] \ No newline at end of file From a7ab1975dfd2efd0befc3d03fa5d550848af0ca8 Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Fri, 31 May 2024 23:01:40 +0200 Subject: [PATCH 06/52] WIP: Readme file to setup the environment to develop on Windows/macOs --- README.md | 97 ++++++++++++++++++++++ modules/default/compliments/compliments.js | 2 +- 2 files changed, 98 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0221b79f40..424d0a5c0c 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,100 @@ +# Docker Setup with X Server Forwarding for Windows + +## Prerequisites +- Docker Desktop for Windows +- VcXsrv Windows X Server + +## Installation & Configuration + +1. **Install Docker Desktop for Windows** + - Download and install from the Docker website. + +2. **Install VcXsrv Windows X Server** + - Download VcXsrv from SourceForge. + - Run XLaunch, choose your display settings, and ensure "Disable access control" is checked. + +3. **Configure Docker - Not always needed** + - Do this only if you have any issue on the first run + - In Docker settings, ensure "Expose daemon on tcp://localhost:2375 without TLS" is enabled. + +4. **Retrieve IP Address** + - Open Command Prompt and execute `ipconfig` to find your "IPv4 Address". + +5. **Firewall** + - Set the correct **Firewall Settings** to allow X server forwarding + + +# Docker with X Server Forwarding on macOS + +This guide will walk you through the process of setting up Docker to run containers that can display GUI applications on macOS using X server forwarding. + +## Step 1: Install Docker Desktop for Mac + +- Download **Docker Desktop for Mac** from the Docker website. +- Follow the installation instructions provided by the installer. + +## Step 2: Install XQuartz + +- Download **XQuartz** from the XQuartz website. +- Install XQuartz and then restart your computer to ensure the changes take effect. + +## Step 3: Configure XQuartz + +- Open **XQuartz**. +- In the top menu, go to `XQuartz` > `Preferences`. +- Click on the **Security** tab. +- Check the option **"Allow connections from network clients"**. + +## Step 4: Retrieve Your IP Address + +- Open the **Terminal** application. +- Type `ifconfig` and press **Enter**. +- Look for the **"inet"** address associated with your active network connection (not the loopback `127.0.0.1`). + +## Step 5: Firewall + + - Open the **System Preferences** from the Apple menu + - Click on **Security & Privacy** + - Select the **Firewall** tab + - If the firewall is turned on, click on the lock icon and enter your admin pwd + - Click on **Firewall Options** + - Set the correct **Firewall Settings** to allow X server forwarding + - Re-lock the settings to ensure + +## Step 6: Addittional - in case of extra issues + +1. Add your IP address to the xhost list +- xhost +your_host_ip (replace your_host_ip with the actual IP address of your Mac machine) + + + +## Building Docker Container + +1. Go in the project folder + +2. **Run the command** + - docker-compose build + +## Test + +1. **Run in interactive mode** + - Run the docker container as follow + docker run --rm -it + +## Play + +1. **Run the container as expected** +- Run the container as intended +- docker-compose up + + + + + + + + + ![MagicMirror²: The open source modular smart mirror platform. ](.github/header.png)

diff --git a/modules/default/compliments/compliments.js b/modules/default/compliments/compliments.js index 39e6c34d49..5ae9505e81 100644 --- a/modules/default/compliments/compliments.js +++ b/modules/default/compliments/compliments.js @@ -2,7 +2,7 @@ Module.register("compliments", { // Module config defaults. defaults: { compliments: { - anytime: ["Hey there sexy!"], + anytime: ["C'è solo il Toro","Hey there sexy!"], morning: ["Good morning, handsome!", "Enjoy your day!", "How was your sleep?"], afternoon: ["Hello, beauty!", "You look sexy!", "Looking good today!"], evening: ["Wow, you look hot!", "You look nice!", "Hi, sexy!"], From 96db4e7831483f31e40aaaa6e8f33d54de265c88 Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Fri, 31 May 2024 23:03:13 +0200 Subject: [PATCH 07/52] WIP: corrected last header --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 424d0a5c0c..f160dd8a7a 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,7 @@ This guide will walk you through the process of setting up Docker to run contain 1. Add your IP address to the xhost list - xhost +your_host_ip (replace your_host_ip with the actual IP address of your Mac machine) +# After - common steps to build, test, and run the container ## Building Docker Container From e711503576be00d16ea79a5433296811e9902a91 Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Fri, 31 May 2024 23:34:53 +0200 Subject: [PATCH 08/52] WIP: published docker compose --- docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 555958d010..d686a8995e 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -7,7 +7,7 @@ services: dockerfile: dockerfile container_name: magic_mirror environment: - - DISPLAY=192.168.178.21:0 + - DISPLAY=:0 ports: - "8080:8080" volumes: From 696ce766e23d0184341fedcfa17471ac93eaf999 Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Fri, 31 May 2024 23:36:26 +0200 Subject: [PATCH 09/52] WIP: changed gitignore to push/pull the configuration file --- .gitignore | 5 ++- config/config.js | 110 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 113 insertions(+), 2 deletions(-) create mode 100644 config/config.js diff --git a/.gitignore b/.gitignore index 945c6c244b..3c51c20928 100644 --- a/.gitignore +++ b/.gitignore @@ -68,9 +68,10 @@ Temporary Items !/css/custom.css.sample !/css/main.css +# We will have a basic config file, then each branch its own? # Ignore users config file but keep the sample. -/config/* -!/config/config.js.sample +# /config/* +# !/config/config.js.sample # Vim ## swap diff --git a/config/config.js b/config/config.js new file mode 100644 index 0000000000..e85f1c6c3d --- /dev/null +++ b/config/config.js @@ -0,0 +1,110 @@ +/* Config Sample + * + * For more information on how you can configure this file + * see https://docs.magicmirror.builders/configuration/introduction.html + * and https://docs.magicmirror.builders/modules/configuration.html + * + * You can use environment variables using a `config.js.template` file instead of `config.js` + * which will be converted to `config.js` while starting. For more information + * see https://docs.magicmirror.builders/configuration/introduction.html#enviromnent-variables + */ +let config = { + address: "localhost", // Address to listen on, can be: + // - "localhost", "127.0.0.1", "::1" to listen on loopback interface + // - another specific IPv4/6 to listen on a specific interface + // - "0.0.0.0", "::" to listen on any interface + // Default, when address config is left out or empty, is "localhost" + port: 8080, + basePath: "/", // The URL path where MagicMirror² is hosted. If you are using a Reverse proxy + // you must set the sub path here. basePath must end with a / + ipWhitelist: ["127.0.0.1", "::ffff:127.0.0.1", "::1"], // Set [] to allow all IP addresses + // or add a specific IPv4 of 192.168.1.5 : + // ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.1.5"], + // or IPv4 range of 192.168.3.0 --> 192.168.3.15 use CIDR format : + // ["127.0.0.1", "::ffff:127.0.0.1", "::1", "::ffff:192.168.3.0/28"], + + useHttps: false, // Support HTTPS or not, default "false" will use HTTP + httpsPrivateKey: "", // HTTPS private key path, only require when useHttps is true + httpsCertificate: "", // HTTPS Certificate path, only require when useHttps is true + + language: "en", + locale: "en-US", + logLevel: ["INFO", "LOG", "WARN", "ERROR"], // Add "DEBUG" for even more logging + timeFormat: 24, + units: "metric", + + modules: [ + { + module: "alert", + }, + { + module: "updatenotification", + position: "top_bar" + }, + { + module: "clock", + position: "top_left" + }, + { + module: "calendar", + header: "Belgian Holidays", + position: "top_left", + config: { + calendars: [ + { + fetchInterval: 7 * 24 * 60 * 60 * 1000, + symbol: "calendar-check", + url: "https://www.officeholidays.com/ics/belgium" + } + ] + } + }, + + { + module: "compliments", + position: "lower_third" + }, + { + module: "weather", + position: "top_right", + config: { + weatherProvider: "openweathermap", + type: "current", + location: "Brussels", + locationID: "2800866", + apiKey: "f8b3c5d1e4b3a80422d92bdf820148e9" + } + }, + { + module: "weather", + position: "top_right", + header: "Weather Forecast", + config: { + weatherProvider: "openweathermap", + type: "forecast", + location: "Brussels", + locationID: "2800866", + apiKey: "f8b3c5d1e4b3a80422d92bdf820148e9" + } + }, + { + module: "newsfeed", + position: "bottom_bar", + config: { + feeds: [ + { + title: "BBC News", + url: "https://feeds.bbci.co.uk/news/world/rss.xml" + } + ], + showSourceTitle: true, + showPublishDate: true, + broadcastNewsFeeds: true, + broadcastNewsUpdates: true + } + }, + ] +}; + +/*************** DO NOT EDIT THE LINE BELOW ***************/ +if (typeof module !== "undefined") { module.exports = config; } From 0a2b7e9686ebdbed60d44a8c65007c923dc4f119 Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Fri, 31 May 2024 23:39:18 +0200 Subject: [PATCH 10/52] Update README.md --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f160dd8a7a..e11586f5bc 100644 --- a/README.md +++ b/README.md @@ -84,7 +84,11 @@ This guide will walk you through the process of setting up Docker to run contain ## Play -1. **Run the container as expected** +1. **Modify the docker-compose file** +- Go to the docker-compose file +- In the line below environment +- DISPLAY=:0, put your IP address in place of YOUR_IP_ADDRESS_HERE +2. **Run the container as expected** - Run the container as intended - docker-compose up From 7ef6d294017e52e7fc90e627a7b5727a353bb6fd Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Sat, 1 Jun 2024 10:55:07 +0200 Subject: [PATCH 11/52] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e11586f5bc..58aaec7e5e 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ ## Installation & Configuration 1. **Install Docker Desktop for Windows** - - Download and install from the Docker website. + - Download and install from the Docker [website](https://docs.docker.com/desktop/install/windows-install/). 2. **Install VcXsrv Windows X Server** - Download VcXsrv from SourceForge. From 8682dccc23f197bb44021032ddc8c3d5b279c4e8 Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Sat, 1 Jun 2024 10:58:23 +0200 Subject: [PATCH 12/52] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 58aaec7e5e..645a910fa7 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ - Download and install from the Docker [website](https://docs.docker.com/desktop/install/windows-install/). 2. **Install VcXsrv Windows X Server** - - Download VcXsrv from SourceForge. + - Download [VcXsrv from SourceForge](https://sourceforge.net/projects/vcxsrv/). - Run XLaunch, choose your display settings, and ensure "Disable access control" is checked. 3. **Configure Docker - Not always needed** @@ -30,12 +30,12 @@ This guide will walk you through the process of setting up Docker to run contain ## Step 1: Install Docker Desktop for Mac -- Download **Docker Desktop for Mac** from the Docker website. +- Download **Docker Desktop for Mac** from the Docker [website](https://docs.docker.com/desktop/install/mac-install/). - Follow the installation instructions provided by the installer. ## Step 2: Install XQuartz -- Download **XQuartz** from the XQuartz website. +- Download **XQuartz** from the [XQuartz website](https://www.xquartz.org/). - Install XQuartz and then restart your computer to ensure the changes take effect. ## Step 3: Configure XQuartz From 0b500c335a167150643b24a6572277ab2410db83 Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Sat, 1 Jun 2024 11:04:14 +0200 Subject: [PATCH 13/52] Update README.md --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 645a910fa7..87b26005e7 100644 --- a/README.md +++ b/README.md @@ -75,12 +75,17 @@ This guide will walk you through the process of setting up Docker to run contain 2. **Run the command** - docker-compose build + + +**As of now, keep your X Server Emulator (Xserver or Qwartz) launched - as explained above** ## Test 1. **Run in interactive mode** - Run the docker container as follow docker run --rm -it + - Use the following command + xeyes ## Play From 9735aa93f2aaeccbff99fe7d29b500098f5712fa Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Sun, 2 Jun 2024 13:07:02 +0200 Subject: [PATCH 14/52] WIP: updated gitignore file --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index 3c51c20928..691475aebe 100644 --- a/.gitignore +++ b/.gitignore @@ -82,3 +82,6 @@ Temporary Items *.orig *.rej *.bak + +# Ignore the docker-compose file to avoid unwanted IP address pushing +docker-compose.yaml \ No newline at end of file From 08e3b5575205f2580558129127433355b4f931ad Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Sun, 2 Jun 2024 13:23:16 +0200 Subject: [PATCH 15/52] WIP: dockerfile cleanup --- Dockerfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 84a986fa42..45a156fa31 100644 --- a/Dockerfile +++ b/Dockerfile @@ -55,9 +55,7 @@ RUN npm install # Expose port EXPOSE 8080 -# EXPOSE 6000 # Start MagicMirror in server-only mode # CMD ["node", "serveronly"] -# CMD ["npm", "start", "--", "--no-sandbox"] CMD ["npm", "start", "--", "--no-sandbox"] \ No newline at end of file From 7920fbfde5845a484fab4b292462d9119da02ff6 Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Sun, 2 Jun 2024 23:01:21 +0200 Subject: [PATCH 16/52] WIP: AYES Logo added on screen --- config/config.js | 40 ++++++++++++------- docker-compose.yaml | 2 +- modules/default/helloworld/AYES_Icon.png | Bin 0 -> 131220 bytes modules/default/helloworld/helloworld.css | 20 ++++++++++ modules/default/helloworld/helloworld.js | 45 +++++++++++++++++----- 5 files changed, 83 insertions(+), 24 deletions(-) create mode 100644 modules/default/helloworld/AYES_Icon.png create mode 100644 modules/default/helloworld/helloworld.css diff --git a/config/config.js b/config/config.js index e85f1c6c3d..3a070b3756 100644 --- a/config/config.js +++ b/config/config.js @@ -29,7 +29,7 @@ let config = { language: "en", locale: "en-US", - logLevel: ["INFO", "LOG", "WARN", "ERROR"], // Add "DEBUG" for even more logging + logLevel: ["INFO", "LOG", "WARN", "ERROR", "DEBUG"], // Add "DEBUG" for even more logging timeFormat: 24, units: "metric", @@ -42,23 +42,35 @@ let config = { position: "top_bar" }, { - module: "clock", - position: "top_left" - }, - { - module: "calendar", - header: "Belgian Holidays", + module: "helloworld", position: "top_left", config: { - calendars: [ - { - fetchInterval: 7 * 24 * 60 * 60 * 1000, - symbol: "calendar-check", - url: "https://www.officeholidays.com/ics/belgium" - } - ] + text: "Say Yes to AYES!", + imagePath: "modules/default/helloworld/AYES_Icon.png" + } }, + { + module: "clock", + position: "top_left", + config: { + timezone: "Europe/Brussels", + } + }, + // { + // module: "calendar", + // header: "Belgian Holidays", + // position: "top_left", + // config: { + // calendars: [ + // { + // fetchInterval: 7 * 24 * 60 * 60 * 1000, + // symbol: "calendar-check", + // url: "https://www.officeholidays.com/ics/belgium" + // } + // ] + // } + // }, { module: "compliments", diff --git a/docker-compose.yaml b/docker-compose.yaml index d686a8995e..555958d010 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -7,7 +7,7 @@ services: dockerfile: dockerfile container_name: magic_mirror environment: - - DISPLAY=:0 + - DISPLAY=192.168.178.21:0 ports: - "8080:8080" volumes: diff --git a/modules/default/helloworld/AYES_Icon.png b/modules/default/helloworld/AYES_Icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5aa4b71c587b4bb41fe40a932106f098ab896c32 GIT binary patch literal 131220 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 z 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 Ragl&ORYeVjaygUF{|^IcI)(rM literal 0 HcmV?d00001 diff --git a/modules/default/helloworld/helloworld.css b/modules/default/helloworld/helloworld.css new file mode 100644 index 0000000000..42fe9c15ab --- /dev/null +++ b/modules/default/helloworld/helloworld.css @@ -0,0 +1,20 @@ +/* modules/default/helloworld/helloworld.css */ + +.helloworld-container { +display: flex; +flex-direction: column; /* Ensure the text is below the image */ +align-items: flex-start; /* Align items to the start (left) */ +} + +.helloworld-text { +font-size: 24px; +font-family: 'Franklin Gothic Medium'; +text-align: left; +margin-bottom: 10px; +} + +.helloworld-image { +max-width: 40%; /* Set the image size */ +height: 40%; +margin: 0; /* Remove any default margin */ +} \ No newline at end of file diff --git a/modules/default/helloworld/helloworld.js b/modules/default/helloworld/helloworld.js index 53fbd80c03..b2d123237a 100644 --- a/modules/default/helloworld/helloworld.js +++ b/modules/default/helloworld/helloworld.js @@ -1,14 +1,41 @@ Module.register("helloworld", { - // Default module config. defaults: { - text: "Hello World!" + text: "Say Yes to AYES!", + imagePath: "modules/default/helloworld/AYES_Icon.png", + imageWidth: "40%", + imageHeight: "40%" }, - - getTemplate () { - return "helloworld.njk"; + + start: function() { + this.sendNotification("SHOW_ALERT", { + type: "notification", + title: "Hello World!", + message: "Module is loaded!" + }); }, - - getTemplateData () { - return this.config; + + getStyles: function() { + return ["helloworld.css"]; + }, + + getDom: function() { + var wrapper = document.createElement("div"); + wrapper.className = "helloworld-container"; + + if (this.config.imagePath) { + var img = document.createElement("img"); + img.src = this.config.imagePath; + img.style.width = this.config.imageWidth; + img.style.height = this.config.imageHeight; + img.className = "helloworld-image"; + wrapper.appendChild(img); + } + + var text = document.createElement("div"); + text.innerHTML = this.config.text; + text.className = "helloworld-text"; + wrapper.appendChild(text); + + return wrapper; } -}); + }); \ No newline at end of file From 57e6a48722d8e743e95bf39162dbb332cc94d90c Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Tue, 4 Jun 2024 09:39:49 +0200 Subject: [PATCH 17/52] WIP: coloured temperatures --- config/config.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/config/config.js b/config/config.js index 3a070b3756..4a370262cc 100644 --- a/config/config.js +++ b/config/config.js @@ -83,8 +83,8 @@ let config = { weatherProvider: "openweathermap", type: "current", location: "Brussels", - locationID: "2800866", - apiKey: "f8b3c5d1e4b3a80422d92bdf820148e9" + // locationID: "2800866", + apiKey: "f8b3c5d1e4b3a80422d92bdf820148e9", } }, { @@ -95,8 +95,9 @@ let config = { weatherProvider: "openweathermap", type: "forecast", location: "Brussels", - locationID: "2800866", - apiKey: "f8b3c5d1e4b3a80422d92bdf820148e9" + // locationID: "2800866", + apiKey: "f8b3c5d1e4b3a80422d92bdf820148e9", + colored: true } }, { From ee6e8b1b5f0e22e2a8f7b68baa1d123ae853934d Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Tue, 4 Jun 2024 09:42:10 +0200 Subject: [PATCH 18/52] Update docker-compose.yaml Modified the IP address keyword --- docker-compose.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 555958d010..ba2294a49d 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -7,9 +7,9 @@ services: dockerfile: dockerfile container_name: magic_mirror environment: - - DISPLAY=192.168.178.21:0 + - DISPLAY=:0 ports: - "8080:8080" volumes: - ./config:/opt/magicmirror/config - restart: unless-stopped \ No newline at end of file + restart: unless-stopped From b0ec48b07d2fc044afbe34d97d183ddda1453971 Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Thu, 6 Jun 2024 09:26:54 +0200 Subject: [PATCH 19/52] Update README.md --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 87b26005e7..e9e3677efd 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,11 @@ This guide will walk you through the process of setting up Docker to run contain # After - common steps to build, test, and run the container +## Clone the repository +1. Create a new folder +2. In the new folder git clone this repo + +**If you already downloaded the repo and built locally, you can't use the same folder** ## Building Docker Container From 993c4a7ce3abea3937472a85069a1e57bd137711 Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Thu, 6 Jun 2024 10:37:16 +0200 Subject: [PATCH 20/52] WIP: updated docker-compose file for unix connection --- docker-compose.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 555958d010..b4018dd26c 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -7,9 +7,13 @@ services: dockerfile: dockerfile container_name: magic_mirror environment: - - DISPLAY=192.168.178.21:0 + - DISPLAY=:0 ports: - "8080:8080" volumes: - ./config:/opt/magicmirror/config + - /tmp/.X11-unix:/tmp/.X11-unix + devices: + - /dev/dri:/dev/dri + restart: unless-stopped \ No newline at end of file From 59505a99fb2c170a261998f7fcba309aa914a14e Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Thu, 6 Jun 2024 11:37:52 +0200 Subject: [PATCH 21/52] WIP: docker-compose update to work on raspberry --- .gitignore | 2 +- docker-compose.yaml | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 691475aebe..9db318d9a2 100644 --- a/.gitignore +++ b/.gitignore @@ -84,4 +84,4 @@ Temporary Items *.bak # Ignore the docker-compose file to avoid unwanted IP address pushing -docker-compose.yaml \ No newline at end of file +# docker-compose.yaml \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml index d0b9814fd0..3508a87b52 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -7,7 +7,7 @@ services: dockerfile: dockerfile container_name: magic_mirror environment: - - DISPLAY=:0 + - DISPLAY=192.168.178.21:0 ports: - "8080:8080" volumes: @@ -15,5 +15,7 @@ services: - /tmp/.X11-unix:/tmp/.X11-unix devices: - /dev/dri:/dev/dri + network_mode: host + privileged: true restart: unless-stopped From 2d601b8b1789ab12e9b12055575bdac70e0a0094 Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Thu, 6 Jun 2024 11:39:51 +0200 Subject: [PATCH 22/52] WIP: ports not needed in docker-compose file --- docker-compose.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 3508a87b52..0b505788e5 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -8,8 +8,6 @@ services: container_name: magic_mirror environment: - DISPLAY=192.168.178.21:0 - ports: - - "8080:8080" volumes: - ./config:/opt/magicmirror/config - /tmp/.X11-unix:/tmp/.X11-unix From 3123ef4505640b9f0d9526197f55b8ae2746c290 Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Thu, 6 Jun 2024 15:12:08 +0200 Subject: [PATCH 23/52] Update README.md for target --- README.md | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e9e3677efd..2a1c2d2bb9 100644 --- a/README.md +++ b/README.md @@ -70,7 +70,7 @@ This guide will walk you through the process of setting up Docker to run contain ## Clone the repository 1. Create a new folder -2. In the new folder git clone this repo +2. In the new folder git clone this repo (use the link) **If you already downloaded the repo and built locally, you can't use the same folder** @@ -102,6 +102,42 @@ This guide will walk you through the process of setting up Docker to run contain - Run the container as intended - docker-compose up +# On target - the RASP + +## Prepare the Raspberry Pi + +1. Update the list of available packages and their version + sudo apt-get update +2. Installs Docker and Docker-Compose + sudo apt-get install -y docker.io docker-compose +3. Start the docker service, and ensure it will run on boot + sudo systemctl start docker + sudo systemctl enable docker +4. The X server manages the graphical display. To allow the Docker container to interact with it, use: + xhost +si:localuser:root + +## Optional: Use a Non-Root User for Docker +By default, Docker commands require sudo. To run Docker commands without sudo, add your user to the docker group, and later reboot: +sudo usermod -aG docker $USER + +## Start the mirror +1. Clone the repository in a local folder +2. Manually change the docker-compose file in order to have the following env variable + - DISPLAY=:0 +3. Navigate to the folder +4. Run the container + (sudo) docker-compose up + +## Optional: debug and test +1. Build the container instead of running it + (sudo) docker-compose build +2. Run the container using the following command + docker run --rm -e DISPLAY=:0 -v /tmp/.X11-unix:/tmp/.X11-unix x11-apps xeyes +3. Check the logs + docker-compose logs + + + From b79c369194590b08efb348addb2c7221b7c2957e Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Thu, 6 Jun 2024 15:13:30 +0200 Subject: [PATCH 24/52] Update README.md layout --- README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 2a1c2d2bb9..ba716aa486 100644 --- a/README.md +++ b/README.md @@ -107,18 +107,18 @@ This guide will walk you through the process of setting up Docker to run contain ## Prepare the Raspberry Pi 1. Update the list of available packages and their version - sudo apt-get update + - sudo apt-get update 2. Installs Docker and Docker-Compose - sudo apt-get install -y docker.io docker-compose + - sudo apt-get install -y docker.io docker-compose 3. Start the docker service, and ensure it will run on boot - sudo systemctl start docker - sudo systemctl enable docker + - sudo systemctl start docker + - sudo systemctl enable docker 4. The X server manages the graphical display. To allow the Docker container to interact with it, use: - xhost +si:localuser:root + - xhost +si:localuser:root ## Optional: Use a Non-Root User for Docker By default, Docker commands require sudo. To run Docker commands without sudo, add your user to the docker group, and later reboot: -sudo usermod -aG docker $USER + - sudo usermod -aG docker $USER ## Start the mirror 1. Clone the repository in a local folder @@ -126,15 +126,15 @@ sudo usermod -aG docker $USER - DISPLAY=:0 3. Navigate to the folder 4. Run the container - (sudo) docker-compose up + - (sudo) docker-compose up ## Optional: debug and test 1. Build the container instead of running it - (sudo) docker-compose build + - (sudo) docker-compose build 2. Run the container using the following command - docker run --rm -e DISPLAY=:0 -v /tmp/.X11-unix:/tmp/.X11-unix x11-apps xeyes + - docker run --rm -e DISPLAY=:0 -v /tmp/.X11-unix:/tmp/.X11-unix x11-apps xeyes 3. Check the logs - docker-compose logs + - docker-compose logs From 85d8de7605fef92dcb0331a8e0cfcda29c815a3f Mon Sep 17 00:00:00 2001 From: jensverbove Date: Fri, 7 Jun 2024 13:47:45 +0200 Subject: [PATCH 25/52] dockerfile correction name --- docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 0b505788e5..efdf7d877d 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -4,7 +4,7 @@ services: image: magic_mirror build: context: . - dockerfile: dockerfile + dockerfile: Dockerfile container_name: magic_mirror environment: - DISPLAY=192.168.178.21:0 From 80ee16bbfd3318eb79be9151350524bebda9b86e Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Fri, 7 Jun 2024 17:00:46 +0200 Subject: [PATCH 26/52] CORRECT IP ADDRESS KWD --- docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index efdf7d877d..8fbb42c9c6 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -7,7 +7,7 @@ services: dockerfile: Dockerfile container_name: magic_mirror environment: - - DISPLAY=192.168.178.21:0 + - DISPLAY=:0 volumes: - ./config:/opt/magicmirror/config - /tmp/.X11-unix:/tmp/.X11-unix From d6fea62ce500144960a072c50e90266e268a45af Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Thu, 13 Jun 2024 16:33:56 +0200 Subject: [PATCH 27/52] README file update --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ba716aa486..c4826c5513 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Docker Setup with X Server Forwarding for Windows ## Prerequisites -- Docker Desktop for Windows +- Docker Desktop - VcXsrv Windows X Server ## Installation & Configuration From 934264edef1d3a64a1aebaba64e6d79f935075ff Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Tue, 18 Jun 2024 16:26:15 +0200 Subject: [PATCH 28/52] Update README.md to specify the container interactive mode --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c4826c5513..ea7926c102 100644 --- a/README.md +++ b/README.md @@ -86,7 +86,7 @@ This guide will walk you through the process of setting up Docker to run contain ## Test -1. **Run in interactive mode** +1. **Run the container in interactive mode** - Run the docker container as follow docker run --rm -it - Use the following command From bf53400594f79145720d6484bfed526e0f25787c Mon Sep 17 00:00:00 2001 From: MerlinGuillaume Date: Wed, 19 Jun 2024 10:04:12 +0200 Subject: [PATCH 29/52] Add the sunrise/sunset timezone --- config/config.js | 1 + 1 file changed, 1 insertion(+) diff --git a/config/config.js b/config/config.js index 4a370262cc..9901714cc0 100644 --- a/config/config.js +++ b/config/config.js @@ -85,6 +85,7 @@ let config = { location: "Brussels", // locationID: "2800866", apiKey: "f8b3c5d1e4b3a80422d92bdf820148e9", + timezone: "Europe/Brussels" } }, { From 3b0d9264c187c89fb3a4edfaeafb8da58dbed546 Mon Sep 17 00:00:00 2001 From: MerlinGuillaume Date: Wed, 19 Jun 2024 15:40:08 +0200 Subject: [PATCH 30/52] Add a 'greetings' module This module will eventually work with a MQTT module that will send a notification to the 'greetings' module whenever a face has been detected by the face recognition --- .gitignore | 4 + config/config.js | 8 +- modules/greetings/README.md | 6 + modules/greetings/greetings.js | 151 +++++++++++++++++++++++++ modules/greetings/node_helper.js | 21 ++++ modules/greetings/translations/en.json | 8 ++ modules/greetings/translations/fr.json | 8 ++ 7 files changed, 204 insertions(+), 2 deletions(-) create mode 100644 modules/greetings/README.md create mode 100644 modules/greetings/greetings.js create mode 100644 modules/greetings/node_helper.js create mode 100644 modules/greetings/translations/en.json create mode 100644 modules/greetings/translations/fr.json diff --git a/.gitignore b/.gitignore index 9db318d9a2..7b5201521b 100644 --- a/.gitignore +++ b/.gitignore @@ -63,6 +63,10 @@ Temporary Items !/modules/default/** !/modules/README.md** +# Do not ignore greetings module. +!/modules/greetings +!/modules/greetings/** + # Ignore changes to the custom css files but keep the sample and main. /css/* !/css/custom.css.sample diff --git a/config/config.js b/config/config.js index 9901714cc0..53438519cc 100644 --- a/config/config.js +++ b/config/config.js @@ -72,10 +72,14 @@ let config = { // } // }, + // { + // module: "compliments", + // position: "lower_third" + // }, { - module: "compliments", + module: "greetings", position: "lower_third" - }, + }, { module: "weather", position: "top_right", diff --git a/modules/greetings/README.md b/modules/greetings/README.md new file mode 100644 index 0000000000..48fac15af6 --- /dev/null +++ b/modules/greetings/README.md @@ -0,0 +1,6 @@ +# Module: Greetings + +The purpose of the `greetings` module is to display a message to greet a certain person whenever a notification "FACE_ADDED" is received. + +It works alongside the MMM-MQTTbridge module that subscribes to certain topics of a MQTT broker. +For example: if a MQTT message with topic `greetings/face_added` is received, the linked command will be executed. In this case the command `Face added` will be executed which will send a `FACE_ADDED` notification to all modules. This notification will then be intercepted by this module. diff --git a/modules/greetings/greetings.js b/modules/greetings/greetings.js new file mode 100644 index 0000000000..5499c51d8a --- /dev/null +++ b/modules/greetings/greetings.js @@ -0,0 +1,151 @@ +Module.register("greetings", { + // Define module defaults + defaults: { + greetings: { + anytime: ["hello"], + morning: ["good morning"], + afternoon: ["good afternoon"], + evening: ["good evening"], + "....-01-01": ["happy new year"] + }, + morningStartTime: 3, + morningEndTime: 12, + afternoonStartTime: 12, + afternoonEndTime: 17, + displayTime: 10000, + animationSpeed: 1000 + }, + + getTranslations () { + return { + en: "translations/en.json", + fr: "translations/fr.json" + }; + }, + + // Override start method. + start () { + Log.info(`Starting module: ${this.name}`); + + this.personsDetected = []; + this.lastgreetingIndex = -1; + this.sendSocketNotification("ADD_GREETINGS"); // Establish connection with node helper if needed + }, + + // Override notification handler. + notificationReceived (notification, payload, sender) { + if (notification === "FACE_ADDED") { + // Greet new person + this.personDetected(payload); + } else if (notification === "FACE_REMOVED") { + // Remove greeting + this.personRemoved(payload); + } + }, + + personDetected (payload) { + for (let name of payload.names) { + this.personsDetected.push(name); + } + + setTimeout(() => { + this.personRemoved(payload); + }, this.config.displayTime); + + this.updateDom(this.config.animationSpeed); + }, + + personRemoved (payload) { + for (let name of payload.names) { + const index = this.personsDetected.indexOf(name); + + if (index !== -1) { + this.personsDetected.splice(index, 1); + + this.updateDom(this.config.animationSpeed); + } + } + }, + + /** + * Generate a random index for a list of greetings. + * @param {string[]} greetings Array with greetings. + * @returns {number} a random index of given array + */ + randomIndex (greetings) { + if (greetings.length <= 1) { + return 0; + } + + const generate = function () { + return Math.floor(Math.random() * greetings.length); + }; + + let greetingIndex = generate(); + + while (greetingIndex === this.lastgreetingIndex) { + greetingIndex = generate(); + } + + this.lastgreetingIndex = greetingIndex; + + return greetingIndex; + }, + + /** + * Retrieve an array of greetings for the time of the day. + * @returns {string[]} array with greetings for the time of the day. + */ + getGreetingsArray () { + const hour = moment().hour(); + const date = moment().format("YYYY-MM-DD"); + let greetings = []; + + // Add time of day greetings + if (hour >= this.config.morningStartTime && hour < this.config.morningEndTime && this.config.greetings.hasOwnProperty("morning")) { + greetings = [...this.config.greetings.morning]; + } else if (hour >= this.config.afternoonStartTime && hour < this.config.afternoonEndTime && this.config.greetings.hasOwnProperty("afternoon")) { + greetings = [...this.config.greetings.afternoon]; + } else if (this.config.greetings.hasOwnProperty("evening")) { + greetings = [...this.config.greetings.evening]; + } + + // Add greetings for anytime + Array.prototype.push.apply(greetings, this.config.greetings.anytime); + + // Add greetings for special days + for (let entry in this.config.greetings) { + if (new RegExp(entry).test(date)) { + Array.prototype.push.apply(greetings, this.config.greetings[entry]); + } + } + + return greetings; + }, + + // Override dom generator. + getDom () { + const wrapper = document.createElement("div"); + if (this.personsDetected.length) { + wrapper.className = this.config.classes ? this.config.classes : "thin xlarge bright pre-line"; + // get the greeting text + const greetingsArray = this.getGreetingsArray(); + let greetingsText = this.translate(greetingsArray[this.randomIndex(greetingsArray)]) + // let greetingsText = this.translate("hello"); + // process all the names of persons detected + for (const [index, name] of this.personsDetected.entries()) { + greetingsText = greetingsText.concat(" " + name); + if (index < this.personsDetected.length - 1) { + greetingsText = greetingsText.concat(" " + this.translate("and")); + } + } + greetingsText = greetingsText.concat("!"); + // create a span to hold the greetings + const greetings = document.createElement("span"); + // create a text element + greetings.appendChild(document.createTextNode(greetingsText)); + wrapper.appendChild(greetings); + } + return wrapper; + } +}); diff --git a/modules/greetings/node_helper.js b/modules/greetings/node_helper.js new file mode 100644 index 0000000000..9e77dd2226 --- /dev/null +++ b/modules/greetings/node_helper.js @@ -0,0 +1,21 @@ +const NodeHelper = require("node_helper"); +const Log = require("logger"); + +module.exports = NodeHelper.create({ + + // Override start method. + start () { + Log.log(`Starting node helper for: ${this.name}`); + }, + + // Override socketNotificationReceived received. + socketNotificationReceived (notification, payload) { + if (notification === "ADD_GREETINGS") { + // Notification received from module to establish connection + // No further steps required + } else if (notification === "FACE_ADDED" || notification === "FACE_REMOVED") { + // Notification received from MQTT + this.sendSocketNotification(notification, payload); + } + } +}); diff --git a/modules/greetings/translations/en.json b/modules/greetings/translations/en.json new file mode 100644 index 0000000000..2c7dfdaf6b --- /dev/null +++ b/modules/greetings/translations/en.json @@ -0,0 +1,8 @@ +{ + "hello": "Hello", + "good morning": "Good morning", + "good afternoon": "Good afternoon", + "good evening": "Good evening", + "happy new year": "Happy new year", + "and": "and" +} diff --git a/modules/greetings/translations/fr.json b/modules/greetings/translations/fr.json new file mode 100644 index 0000000000..3958e6f8d1 --- /dev/null +++ b/modules/greetings/translations/fr.json @@ -0,0 +1,8 @@ +{ + "hello": "Bonjour", + "good morning": "Bonne matinée", + "good afternoon": "Bonne après-midi", + "good evening": "Bonne soirée", + "happy new year": "Bonne année", + "and": "et" +} From 3d0b2240fd65fa4cfcfe72628c7ef145273cef4c Mon Sep 17 00:00:00 2001 From: MerlinGuillaume Date: Mon, 24 Jun 2024 15:54:12 +0200 Subject: [PATCH 31/52] Add the 'MMM-MQTTbridge' module This module subscribes to certain topics on a MQTT broker and dispatches a notification to all modules according to the rules set in mqttDictionary.js --- .gitignore | 4 + config/config.js | 12 + .../.github/mqttbridge_logo.png | Bin 0 -> 35954 bytes .../.github/mqttbridge_logo.psd | Bin 0 -> 714038 bytes modules/MMM-MQTTbridge/LICENSE | 21 + modules/MMM-MQTTbridge/MMM-MQTTbridge.js | 458 ++++++++++++++++++ modules/MMM-MQTTbridge/conditions.md | 168 +++++++ .../dict/mqttDictionary.example.js | 38 ++ modules/MMM-MQTTbridge/dict/mqttDictionary.js | 32 ++ .../dict/notiDictionary.example.js | 49 ++ modules/MMM-MQTTbridge/jsonpath.md | 84 ++++ modules/MMM-MQTTbridge/node_helper.js | 214 ++++++++ modules/MMM-MQTTbridge/package.json | 27 ++ modules/MMM-MQTTbridge/readme.md | 402 +++++++++++++++ .../recipes/with-MMM-MQTTbridge.js | 94 ++++ modules/MMM-MQTTbridge/valueFormat.md | 128 +++++ package.json | 4 +- 17 files changed, 1734 insertions(+), 1 deletion(-) create mode 100644 modules/MMM-MQTTbridge/.github/mqttbridge_logo.png create mode 100644 modules/MMM-MQTTbridge/.github/mqttbridge_logo.psd create mode 100644 modules/MMM-MQTTbridge/LICENSE create mode 100644 modules/MMM-MQTTbridge/MMM-MQTTbridge.js create mode 100644 modules/MMM-MQTTbridge/conditions.md create mode 100644 modules/MMM-MQTTbridge/dict/mqttDictionary.example.js create mode 100644 modules/MMM-MQTTbridge/dict/mqttDictionary.js create mode 100644 modules/MMM-MQTTbridge/dict/notiDictionary.example.js create mode 100644 modules/MMM-MQTTbridge/jsonpath.md create mode 100644 modules/MMM-MQTTbridge/node_helper.js create mode 100644 modules/MMM-MQTTbridge/package.json create mode 100644 modules/MMM-MQTTbridge/readme.md create mode 100644 modules/MMM-MQTTbridge/recipes/with-MMM-MQTTbridge.js create mode 100644 modules/MMM-MQTTbridge/valueFormat.md diff --git a/.gitignore b/.gitignore index 7b5201521b..f84ae204a0 100644 --- a/.gitignore +++ b/.gitignore @@ -67,6 +67,10 @@ Temporary Items !/modules/greetings !/modules/greetings/** +# Do not ignore MQTT module. +!/modules/MMM-MQTTbridge +!/modules/MMM-MQTTbridge/** + # Ignore changes to the custom css files but keep the sample and main. /css/* !/css/custom.css.sample diff --git a/config/config.js b/config/config.js index 53438519cc..3eb6df3b21 100644 --- a/config/config.js +++ b/config/config.js @@ -80,6 +80,18 @@ let config = { module: "greetings", position: "lower_third" }, + { + module: 'MMM-MQTTbridge', + disabled: false, + config: { + mqttServer: "mqtt://broker.emqx.io:1883", + mqttConfig: + { + listenMqtt: true, + interval: 300000, + }, + } + }, { module: "weather", position: "top_right", diff --git a/modules/MMM-MQTTbridge/.github/mqttbridge_logo.png b/modules/MMM-MQTTbridge/.github/mqttbridge_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..bdce8b35395d60ac476e71f6d0acac703e5291e3 GIT binary patch literal 35954 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

+ License +

+ +[**MMM-MQTTbridge**](.) allows you to integrate your MagicMirror into your smart home system via [MQTT protocol](https://github.com/mqtt/mqtt.github.io/wiki/software?id=software) and manage MagicMirror via MQTT messages by converting them into MM Notifications and vise verse - listen to your MM's Notifications and convert them into MQTT mesages. + +So, this module for MagicMirror does the following: + +1. **Listens to MQTT messages** from your MQTT broker and, if mqtt-message arrives, module **sends MM Notifications** based on the pre-configured mqtt-to-notification Dictionary rules. +2. **Listens to the MM Notifications** within your MagicMirror environment. If Notification arrives, module **sends MQTT message** based on the preconfigured notification-to-mqtt Dictionary rules. + +![MQTTbridge_logo](.github/mqttbridge_logo.png) + +## INSTALLATION + +**1. Clone and install module. Do the following commands**: + +```bash +cd ~/MagicMirror/modules +git clone --depth=1 https://github.com/sergge1/MMM-MQTTbridge.git +cd MMM-MQTTbridge +npm install +``` + +**2. Copy to MagicMirror config.js file MQTTbridge's config section**: + +- go to `cd ~/MagicMirror/config` +- open file `config.js` +- add the following config within `modules` section: + +```json5 +{ + module: 'MMM-MQTTbridge', + disabled: false, + config: { + mqttServer: "mqtt://:@localhost:1883", + mqttConfig: + { + listenMqtt: true, + interval: 300000, + }, + notiConfig: + { + listenNoti: true, + ignoreNotiId: ["CLOCK_MINUTE", "NEWS_FEED"], + ignoreNotiSender: ["system", "NEWS_FEED"], + }, + // set "NOTIFICATIONS -> MQTT" dictionary at /dict/notiDictionary.js + // set "MQTT -> NOTIFICATIONS" dictionary at /dict/mqttDictionary.js + }, +}, +``` + +If you like to use a tls encrypted connection to your server you can use this example configuration: + +```json5 +{ + module: 'MMM-MQTTbridge', + disabled: false, + config: { + mqttServer: "mqtts://:@localhost:8883", + mqttConfig: + { + listenMqtt: true, + interval: 300000, + mqttClientKey: "/home/pi/client-key.pem", + mqttClientCert: "/home/pi/client-cert.pem", + caCert: "/home/pi/ca-cert.pem", + rejectUnauthorized: true, + }, + notiConfig: + { + listenNoti: true, + ignoreNotiId: ["CLOCK_MINUTE", "NEWS_FEED"], + ignoreNotiSender: ["system", "NEWS_FEED"], + }, + // set "NOTIFICATIONS -> MQTT" dictionary at /dict/notiDictionary.js + // set "MQTT -> NOTIFICATIONS" dictionary at /dict/mqttDictionary.js + }, +}, +``` + +**3. Set dictionary files with your MQTT->NOTI and NOTI->MQTT rules**: + +- go to `cd ~/MagicMirror/modules/MMM-MQTTbridge/dict` +- copy the example files `cp notiDictionary.example.js notiDictionary.js; cp mqttDictionary.example.js mqttDictionary.js` +- edit `notiDictionary.js` and `mqttDictionary.js` for respective rules according to the explanation below. + +## CONFIG STRUCTURE + +**For better understanding, we have divided config into 3 sections**: + +1. General configurations in `config.js`; +2. "NOTIFICATION to MQTT" dictionary rules; +3. "MQTT to NOTIFICATION" dictionary rules; + +### GENERAL SECTION + +- `stringifyPayload`- specify if the payload of notifications should be converted with "JSON.stringify" before it will be send as MQTT message (The setting can be overriden for each message seperatly in "notiDictionary.js"), default is true. +- `mqttDictConf`- specify the path to the "mqttDictionary.js" file starting at the module folder, default: "./dict/mqttDictionary.js" +- `notiDictConf`- specify the path to the "notiDictionary.js" file starting at the module folder, default: "./dict/notiDictionary.js" +- `newlineReplacement`- if you use `valueFormat` for MQTT messages or for notification payloads you need to configure how new line characters should be replaced. See [valueFormat.md](valueFormat.md) for further details. +- `notiConfig`- the notification configuration. See the "notiConfig part" section for details +- `mqttConfig`- the mqtt configuration. See the "mqttConfig part" section for details + +#### mqttConfig part + +- `mqttServer` - set you server address using the following format: "mqtt://"+USERNAME+":"+PASSWORD+"@"+IPADDRESS+":"+PORT or "mqtts://"+USERNAME+":"+PASSWORD+"@"+IPADDRESS+":"+PORT. E.g. if you are using your broker with plaintext connnection *without username/password* on *localhost* with port *1883*, you config should looks "*mqtt://:@localhost:1883*", +- `clientId` - specify the id this client will register at the mqtt broker with, default: a random string starting with "mqttjs_" +- `mqttClientKey` - specify the path of the client tls key file (mandatory if using tls connetion). i.e. "/home/pi/client-key.pem"; +- `mqttClientCert` - specify the path of the client tls certificate file (mandatory if using tls connection). i.e. "/home/pi/client-cert.pem"; +- `caCert` - specify the path of the CA tls certificate file (mandatory if using tls connection). i.e. "/home/pi/ca-cert.pem"; +- `rejectUnauthorized` - specify if a self-signed server certificate should be rejected, default is true; +- `listenMqtt` - turn on/off the listening of MQTT messages. Set to `false` if you are going to use only NOTI->MQTT dictionary to save CPU usage; +- `qos` - specify the default QoS level for subscribed MQTT messages (can be overriden for each message in "mqttDictionary.js"), default: 0 +- `retain` - specify the default retain flag for published MQTT messages (can be overriden for each message in "mqttDictionary.js"), default: false +- `clean` - should the connection be a clean one (look [mqtt-clean-sessions-example](http://www.steves-internet-guide.com/mqtt-clean-sessions-example/) for details), default: true +- `will` - specify a object containing the "topic", "payload", etc. (see [MQTT.js](https://github.com/mqttjs/MQTT.js#readme) for details) you want the broker send to subscribing clients if the connection to this client is interrupted unexpected, default: unset +- `options` - if you want to specify additional options for the connect you can add all of the MQTT-Lib supported ones this as this options object (see [MQTT.js](https://github.com/mqttjs/MQTT.js#readme) for details). If `clientId`, `clean` and `will` are specified both as single options and in this options object the single ones override the ones in the options object, default: unset +- `interval` - interval for MQTT status update (messages will be received all time independent of this setting), default is 300000ms. +- `onConnectMessages` - a array of MQTT messages that should be send after the MQTT connected and subscribed to all topics successfully. While `topic` and `msg` setting are mandatory `options` are optional. + +onConnectMessages example: + +```json5 +{ + module: 'MMM-MQTTbridge', + disabled: false, + config: { + mqttServer: "mqtts://:@localhost:8883", + mqttConfig: + { + listenMqtt: true, + interval: 300000, + mqttClientKey: "/home/pi/client-key.pem", + mqttClientCert: "/home/pi/client-cert.pem", + caCert: "/home/pi/ca-cert.pem", + rejectUnauthorized: true, + onConnectMessages: [ + { + topic: "test1/connected", + msg: "true", + options: { + retain: false, + qos: 1 + } + }, + { + topic: "test2/get_status", + msg: {value: "test"} + } + ] + }, + }, +}, +``` + +#### notiConfig part + +- `listenNoti` - turn on/off the listening of NOTIFICATIONS. Set to `false` if you are going to use only MQTT->NOTI dictionary to save CPU usage; +- `ignoreNotiId` - list your NOTIFICATION ID that should be ignored from processing, this saves CPU usage. E.g. ["CLOCK_MINUTE", "NEWS_FEED"], +- `ignoreNotiSender` - list your NOTIFICATION SENDERS that should be ignored from processing, this saves CPU usage. E.g. ["system", "NEWS_FEED"] +- `qos` - specify the default QoS level for published MQTT messages (can be overriden for each message in "notiDictionary.js"), default: 0 +- `onConnectNotifications` - a array of notifications that are send after the MQTT client connected and subscribed to all topics successfully. While `notification` is mandatory `payload` is optional. + +onConnectNotifications example: + +```json5 +{ + module: 'MMM-MQTTbridge', + disabled: false, + config: { + mqttServer: "mqtts://:@localhost:8883", + notiConfig: + { + listenNoti: true, + ignoreNotiId: ["CLOCK_MINUTE", "NEWS_FEED"], + ignoreNotiSender: ["system", "NEWS_FEED"], + onConnectNotifications: [ + { + notification: "TEST1", + payload: true + }, + { + notification: "TEST2", + payload: {value: "myvalue"} + } + ] + }, + }, +}, +``` + +### NOTIFICATIONS to MQTT DICTIONARY SECTION + +Should be set within `~/MagicMirror/modules/MMM-MQTTbridge/dict/notiDictionary.js` or the path you configured with the general configuration option `notiDictConf`. + +:warning: +The configuration of how to ignore the payload value of notifications or send the payload of notifications as mqtt messages changed slightly with version 2.0 of the module! + +If the `payloadValue` is missing for a `notiPayload` element all commands configured in `notiMqttCmd` will be initiated independent of the value of the notification payload (new since version 2.0 of the module)! +If the `payloadValue` is set the payload of the notification needs to match with this value for the commands in `notiMqttCmd` to be initiated! +A `payloadValue` set to `''` will match for notifications with no payload or with the payload set to a empty string (new with version 2.0 of the module, **DIFFERENT TO VERSIONS 1.X AND LOWER**)! + +If no `mqttMsgPayload` is specified the payload of the notification will be send as MQTT message (new since version 2.0 of the module, **DIFFERENT TO VERSIONS 1.X and LOWER**)! +If `mqttMsgPayload` is present the value of `mqttMsgPayload` will be send as MQTT message! + +You can configure if the payload of a notification should be stringified before it is send with the optional option "stringifyPayload". The default value is the one configured in the general section. + +:warning: +The way boolean values as payload of notifications are treated changed with version 2.0 of the module. NO NEED TO CONVERT THEM TO 0 OR 1 ANYMORE!!! + +As of version 2.0 of the module it is possible to specify `qos`, `retain` settings for each `notiMqttCommands` element. If present these settings override the default values of the general configuration. +Additionally `options` can be specified which support all options for published messages of the MQTT.js library (see [MQTT.js](https://github.com/mqttjs/MQTT.js#readme) for details). If `qos` and `retain` are specified as single values and in the `options` the single values override the `options`. + +As of version 2.1 it is possible to format the payload of the notification with a `valueFormat` string before it will be compared to the `payloadValue` and will be further processed. Look at [valueFormat.md](valueFormat.md) for further details. + +As of version 2.1 it is possible to define complexer `conditions` than only compare the payload content to the `payloadValue`. Look at [conditions.md](conditions.md) for further details. + +```js +var notiHook = [ + { + notiId: "CLOCK_SECOND", + notiPayload: [ + { + payloadValue: '10', + notiMqttCmd: ["Command 1"] + }, + { + notiMqttCmd: ["payload ignored"] + }, + { + payloadValue: '' + notiMqttCmd: ["payload is empty string"] + }, + ], + }, + { + notiId: "INDOOR_TEMPERATURE", + notiPayload: [ + { + payloadValue: '', + notiMqttCmd: ["Command 2"] + }, + ], + }, + { + notiId: "TOGGLE_SHELLY_PLUG", + notiPayload: [ + { + payloadValue: '', + notiMqttCmd: ["Command 3"] + }, + ], + }, +]; +var notiMqttCommands = [ + { + commandId: "Command 1", + mqttTopic: "myhome/kitchen/light/set", + retain: true, + qos: 2, + mqttMsgPayload: '{"state":"OFF"}' + }, + { + commandId: "Command 2", + mqttTopic: "myhome/kitchen/temperature", + mqttMsgPayload: '', + options: { + retain: true, + qos: 1 + } + }, + { + commandId: "Command 3", + mqttTopic: "shellies/plug/relay/0/command", + stringifyPayload: false, + mqttMsgPayload: 'toogle' + }, + { + commandId: "payload ignored", + mqttTopic: "myhome/plug", + mqttMsgPayload: '{"state":"OFF"}' + }, + { + commandId: "payload is empty string", + mqttTopic: "myhome/test", + mqttMsgPayload: '{"state":"OFF"}' + }, + { + commandId: "payload of notification is send", + mqttTopic: "myhome/test", + }, +]; +``` + +### MQTT to NOTIFICATIONS DICTIONARY SECTION + +Should be set within `~/MagicMirror/modules/MMM-MQTTbridge/dict/mqttDictionary.js` or the path you configured with the general configuration option `mqttDictConf`. + +:warning: +The configuration of how to ignore the payload value of mqtt messages or send the payload of mqtt message as notification payload changed slightly with version 2.0 of the module! + +If the `payloadValue` is missing for a `mqttPayload` element all commands configured in `mqttNotiCmd` will be initiated independent of the value of mqtt message (new since version 2.0 of the module)! +If the `payloadValue` is set, the payload of the message needs to match with this value for the commands in `mqttNotiCmd` to be initiated! +A `payloadValue` set to `''` will match for empty messsage (new with version 2.0 of the module, **DIFFERENT TO VERSIONS 1.X AND LOWER**)! + +If no `notiPayload` is specified the message content will be send as payload of the notification (new since version 2.0 of the module, **DIFFERENT TO VERSIONS 1.X and LOWER**)! +If `notiPayload` is present the value of `notiPayload` will be send as MQTT message! + +As of version 2.0 of the module it is possible to specify `qos` setting for each `mqttHook` element. If present these settings override the default values of the general configuration. +Additionally `options` can be specified which support all options for subscribing to messages of the MQTT.js library (see [MQTT.js](https://github.com/mqttjs/MQTT.js#readme) for details). If `qos` is specified as single value and in the `options` the single value override the `options`. + +As of Version 2.1 it is possible to let the message value be parsed as JSON and select single or multiple values with [JSONPath-Plus](https://github.com/JSONPath-Plus/JSONPath) before the message gets further processed. Look at [jsonpath.md](jsonpath.md) for further details. + +As of version 2.1 it is possible to format the message or [JSONPath-Plus](https://github.com/JSONPath-Plus/JSONPath) result with a `valueFormat` string before it will be compared to the `payloadValue` and will be further processed. Look at [valueFormat.md](valueFormat.md) for further details. + +As of version 2.1 it is possible to define complexer `conditions` than only compare the messaage content to the `payloadValue`. Look at [conditions.md](conditions.md) for further details. + +```js +var mqttHook = [ + { + mqttTopic: "myhome/test", + qos: 1, + mqttPayload: [ + { + payloadValue: "ASSISTANT_LISTEN", + mqttNotiCmd: ["Command 1"] + }, + { + payloadValue: "", + mqttNotiCmd: ["Command 2"] + }, + ], + }, + { + mqttTopic: "myhome/test2", + mqttPayload: [ + { + mqttNotiCmd: ["Command 2"] + }, + ], + }, + { + mqttTopic: "myhome/test3", + options: { + qos: 2 + } + mqttPayload: [ + { + payloadValue: "", + mqttNotiCmd: ["Command 2"] + }, + ], + }, + { + mqttTopic: "myhome/testjson", + mqttPayload: [ + { + jsonpath: "output" + valueFormat: "Number(${value}).toFixed(2)", + mqttNotiCmd: ["Command 3"], + conditions: [ + { + type: "gt", + value: "10" + }, + { + type: "lt", + value: "15" + } + ] + }, + ], + }, + ]; +var mqttNotiCommands = [ + { + commandId: "Command 1", + notiID: "ASSISTANT_LISTEN", + notiPayload: 'BLABLABLA-1' + }, + { + commandId: "Command 2", + notiID: "ASSISTANT_LISTEN", + }, + { + commandId: "Command 3", + notiID: "PARSED_JSON_NOTIFICATION", + }, + ]; + ``` + +## CREDITS + +[@bugsounet](https://github.com/bugsounet) + +[@sergge1](https://github.com/sergge1) + +[@DanielHfnr](https://github.com/DanielHfnr) diff --git a/modules/MMM-MQTTbridge/recipes/with-MMM-MQTTbridge.js b/modules/MMM-MQTTbridge/recipes/with-MMM-MQTTbridge.js new file mode 100644 index 0000000000..602fa6c26b --- /dev/null +++ b/modules/MMM-MQTTbridge/recipes/with-MMM-MQTTbridge.js @@ -0,0 +1,94 @@ +/* eslint-disable indent */ +/** MMM-MQTTbridge commands addon **/ +/** modify pattern to your language **/ +/** for MMM-MQTTbridge **/ +/** sergge1 **/ + +var recipe = { + transcriptionHooks: { + "LED_TURN_ON": { + pattern: "включить подсветку", + command: "LED_TURN_ON" + }, + "LED_TURN_OFF": { + pattern: "выключить подсветку", + command: "LED_TURN_OFF" + }, + "LED_COLOR_RED": { + pattern: "красная подсветка", + command: "LED_COLOR_RED" + }, + "LED_COLOR_BLUE": { + pattern: "голубая подсветка", + command: "LED_COLOR_BLUE" + }, + "LED_COLOR_YELLOW": { + pattern: "желтая подсветка", + command: "LED_COLOR_YELLOW" + }, + "LED_COLOR_NEON": { + pattern: "неоновая подсветка", + command: "LED_COLOR_NEON" + }, + "LED_COLOR_CYAN": { + pattern: "синяя подсветка", + command: "LED_COLOR_CYAN" + }, + "LED_COLOR_GREEN": { + pattern: "зелёная подсветка", + command: "LED_COLOR_GREEN" + } + }, + commands: { + "LED_TURN_ON": { + notificationExec: { + notification: "NOTI_TO_MQTT", + payload: "led_turn_on" + }, + }, + "LED_TURN_OFF": { + notificationExec: { + notification: "NOTI_TO_MQTT", + payload: "led_turn_off" + }, + }, + "LED_COLOR_RED": { + notificationExec: { + notification: "NOTI_TO_MQTT", + payload: "led_color_red" + } + }, + "LED_COLOR_BLUE": { + notificationExec: { + notification: "NOTI_TO_MQTT", + payload: "led_color_blue" + } + }, + "LED_COLOR_YELLOW": { + notificationExec: { + notification: "NOTI_TO_MQTT", + payload: "led_color_yellow" + } + }, + "LED_COLOR_NEON": { + notificationExec: { + notification: "NOTI_TO_MQTT", + payload: "led_color_neon" + } + }, + "LED_COLOR_CYAN": { + notificationExec: { + notification: "NOTI_TO_MQTT", + payload: "led_color_cyan" + } + }, + "LED_COLOR_GREEN": { + notificationExec: { + notification: "NOTI_TO_MQTT", + payload: "led_color_green" + } + } + } +} + +exports.recipe = recipe // Don't remove this line. \ No newline at end of file diff --git a/modules/MMM-MQTTbridge/valueFormat.md b/modules/MMM-MQTTbridge/valueFormat.md new file mode 100644 index 0000000000..a431080355 --- /dev/null +++ b/modules/MMM-MQTTbridge/valueFormat.md @@ -0,0 +1,128 @@ +# valueFormat + +As of version 2.1 of the module it is possible to format the MQTT messages or notification payloads before they get further processed. + +:information_source: The MQTT message or notification payload will be in the variable `value` which you can access in the `valueFormat` with `${value}`. + +:warning: As formatting of newlines causes problems you need to configure a `newlineReplacement` either in the global module configuration or in the configuration of the messages/payloads. + +You can define the `valueFormat` option for `mqttPayload` elements in the `mqttDictionary.js` or in the elments of `notiPayload` in `notiDictionary.js` like in the following examples: + +```js + notiPayload: [ + { + newlineReplacement: "#", + valueFormat: "\"${value}\".replace(\"test\",\"\").replace(\"abc\",\"\")", + notiMqttCmd: ["Command 0"], + } + ] +``` + +```js + mqttPayload: [ + { + valueFormat: "Number(${value}).toFixed(2)", + mqttNotiCmd: ["Command 0"] + }, + ], +``` + +Let's look at some examples now. + +Let us assume we do have the following notification configuration: + +```js + notiPayload: [ + { + valueFormat: "Number(${value}).toFixed(2)", + notiMqttCmd: ["Command 0"], + } + ] +``` + +Now we receive the corresponding notification with the payload: + +```js +10.123456 +``` + +The result will be: + +* The command `Command 0` will be called with the value `10.12`. + +Now lets assume we do have the configuration: + +```js + notiPayload: [ + { + valueFormat: "Number(${value.output}).toFixed(2)", + notiMqttCmd: ["Command 0"], + } + ] +``` + +And the notification payload is: + +```js +{ + output: 10.12345 +} +``` + +The result will be the same as before as we selected `${value.output}` in the configuration. + +Now lets assume the following configuration: + +```js + notiPayload: [ + { + newlineReplacement: "#", + valueFormat: "\"${value}\".replace(\"test\",\"\").replace(\"abc\",\"\").replace(\"#\",\"\")", + notiMqttCmd: ["Command 0"], + } + ] +``` + +And the notification payload is the following string with new line characters: + +```text +test +123 +abc +``` + +As newline charcters will be replaced with `#` and then `test`, `abc` and `#` will be replaced by nothing the result will be `123`. + +The way to format MQTT messages is the same as for the notification payload but if you want to select sub elements like `output` in the example before you need to use the `jsonpath` option first. See [jsonpath.md](jsonpath.md) for more details but let us look at a simple example now. + +The MQTT configuration contains: + +```js + mqttPayload: [ + { + jsonpath: "output", + valueFormat: "Number(${value}).toFixed(2)", + mqttNotiCmd: ["Command 0"] + }, + ], +``` + +The received MQTT message is: + +```json +{ + "output": 10.12345 +} +``` + +And again the result will be the same as in the notification example. The `Command 0` will be called with value `10.12`. + +## Further examples + +### valueFormat: "\"${value}\".replace(\"test\",\"\").replace(\"abc\",\"\")" + +The value will be interpreted as strint, `test` and `abc` in the string will be replaced with nothing. So if the input will be something like `test123abc` the result will be `123`. + +### valueFormat: "\"${value.myInput}\".replace(\"test\",\"\").replace(\"abc\",\"\")" + +The `myInput` of the value will be selected, `test` and `abc` will be replaced with nothing. So fi the input is something like `{myInput: test123abc}` the result will be `123`. diff --git a/package.json b/package.json index c9e3a0b62f..c79531db30 100644 --- a/package.json +++ b/package.json @@ -86,7 +86,9 @@ "pm2": "^5.3.1", "socket.io": "^4.7.5", "suncalc": "^1.9.0", - "systeminformation": "^5.22.6" + "systeminformation": "^5.22.6", + "mqtt": "4.3.7", + "jsonpath-plus": "5.0.1" }, "lint-staged": { "*": "prettier --write", From cb3fe51d0f9dd56c0359eb1755fd070be62365db Mon Sep 17 00:00:00 2001 From: MerlinGuillaume Date: Mon, 24 Jun 2024 15:57:07 +0200 Subject: [PATCH 32/52] Fix the gap between the edges of the screen and the MM modules --- css/main.css | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/css/main.css b/css/main.css index 0aa5c3418e..15bd50710e 100644 --- a/css/main.css +++ b/css/main.css @@ -11,10 +11,10 @@ --font-size-medium: 1.5rem; --font-size-large: 3.25rem; --font-size-xlarge: 3.75rem; - --gap-body-top: 60px; - --gap-body-right: 60px; + --gap-body-top: 0px; + --gap-body-right: 30px; --gap-body-bottom: 60px; - --gap-body-left: 60px; + --gap-body-left: 30px; --gap-modules: 30px; } From 231e53abd0c9dc18e6829c15c1f6b8657718b377 Mon Sep 17 00:00:00 2001 From: MerlinGuillaume Date: Mon, 24 Jun 2024 16:56:59 +0200 Subject: [PATCH 33/52] Remove unneeded greetings' node helper --- modules/greetings/greetings.js | 1 - modules/greetings/node_helper.js | 21 --------------------- 2 files changed, 22 deletions(-) delete mode 100644 modules/greetings/node_helper.js diff --git a/modules/greetings/greetings.js b/modules/greetings/greetings.js index 5499c51d8a..396ee4b6c2 100644 --- a/modules/greetings/greetings.js +++ b/modules/greetings/greetings.js @@ -29,7 +29,6 @@ Module.register("greetings", { this.personsDetected = []; this.lastgreetingIndex = -1; - this.sendSocketNotification("ADD_GREETINGS"); // Establish connection with node helper if needed }, // Override notification handler. diff --git a/modules/greetings/node_helper.js b/modules/greetings/node_helper.js deleted file mode 100644 index 9e77dd2226..0000000000 --- a/modules/greetings/node_helper.js +++ /dev/null @@ -1,21 +0,0 @@ -const NodeHelper = require("node_helper"); -const Log = require("logger"); - -module.exports = NodeHelper.create({ - - // Override start method. - start () { - Log.log(`Starting node helper for: ${this.name}`); - }, - - // Override socketNotificationReceived received. - socketNotificationReceived (notification, payload) { - if (notification === "ADD_GREETINGS") { - // Notification received from module to establish connection - // No further steps required - } else if (notification === "FACE_ADDED" || notification === "FACE_REMOVED") { - // Notification received from MQTT - this.sendSocketNotification(notification, payload); - } - } -}); From d93790b932d28d8f7852d374eeb5d04d66afa5f4 Mon Sep 17 00:00:00 2001 From: MerlinGuillaume Date: Fri, 28 Jun 2024 18:09:39 +0200 Subject: [PATCH 34/52] Change broker url to localhost --- config/config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.js b/config/config.js index 3eb6df3b21..6b458e71a3 100644 --- a/config/config.js +++ b/config/config.js @@ -84,7 +84,7 @@ let config = { module: 'MMM-MQTTbridge', disabled: false, config: { - mqttServer: "mqtt://broker.emqx.io:1883", + mqttServer: "mqtt://localhost:1883", mqttConfig: { listenMqtt: true, From 631ed4d3cee38fa56db82a1d5cf35615c17a859c Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Mon, 1 Jul 2024 09:49:07 +0200 Subject: [PATCH 35/52] removed network mode - host as we will develop our own network --- docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 8fbb42c9c6..e9c0632d50 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -13,7 +13,7 @@ services: - /tmp/.X11-unix:/tmp/.X11-unix devices: - /dev/dri:/dev/dri - network_mode: host + # network_mode: host privileged: true restart: unless-stopped From e7729e929c93ce8016c3c667a42e8ecbe1dccafc Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Tue, 2 Jul 2024 16:04:03 +0200 Subject: [PATCH 36/52] update to use custom bridge network between dockers for MQTT communication --- config/config.js | 2 +- docker-compose.yaml | 10 +++++++++- modules/MMM-MQTTbridge/MMM-MQTTbridge.js | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/config/config.js b/config/config.js index 6b458e71a3..7bb1a794e8 100644 --- a/config/config.js +++ b/config/config.js @@ -84,7 +84,7 @@ let config = { module: 'MMM-MQTTbridge', disabled: false, config: { - mqttServer: "mqtt://localhost:1883", + mqttServer: "mqtt://mqtt_broker:1883", mqttConfig: { listenMqtt: true, diff --git a/docker-compose.yaml b/docker-compose.yaml index e9c0632d50..4c7f021591 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -8,12 +8,20 @@ services: container_name: magic_mirror environment: - DISPLAY=:0 + # - MQTT_BROKER_HOST=mqtt_broker + # - MQTT_BROKER_PORT=1883 volumes: - ./config:/opt/magicmirror/config - /tmp/.X11-unix:/tmp/.X11-unix devices: - /dev/dri:/dev/dri - # network_mode: host + networks: + - mqtt_network privileged: true restart: unless-stopped + + +networks: + mqtt_network: + external: true diff --git a/modules/MMM-MQTTbridge/MMM-MQTTbridge.js b/modules/MMM-MQTTbridge/MMM-MQTTbridge.js index 4da34873c0..4eec21d8f2 100644 --- a/modules/MMM-MQTTbridge/MMM-MQTTbridge.js +++ b/modules/MMM-MQTTbridge/MMM-MQTTbridge.js @@ -10,7 +10,7 @@ Module.register("MMM-MQTTbridge", { defaults: { mqttDictConf: "./dict/mqttDictionary.js", notiDictConf: "./dict/notiDictionary.js", - mqttServer: "mqtt://:@localhost:1883", + mqttServer: "mqtt://mqtt_broker:1883", stringifyPayload: true, newlineReplacement: null, notiConfig: {}, //default values will be set in start function From f6a377e66c15ad8e706e51465fc33cda05672ae8 Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Thu, 4 Jul 2024 10:09:09 +0200 Subject: [PATCH 37/52] BUG: Internal temperature not correctly notified, but message received! --- docker-compose.yaml | 2 +- modules/MMM-MQTTbridge/dict/mqttDictionary.js | 12 ++++++++++++ modules/default/weather/weather.js | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 4c7f021591..f8e5017e71 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -7,7 +7,7 @@ services: dockerfile: Dockerfile container_name: magic_mirror environment: - - DISPLAY=:0 + - DISPLAY=192.168.3.18:0 # - MQTT_BROKER_HOST=mqtt_broker # - MQTT_BROKER_PORT=1883 volumes: diff --git a/modules/MMM-MQTTbridge/dict/mqttDictionary.js b/modules/MMM-MQTTbridge/dict/mqttDictionary.js index aa888e5757..8c38a43fb3 100644 --- a/modules/MMM-MQTTbridge/dict/mqttDictionary.js +++ b/modules/MMM-MQTTbridge/dict/mqttDictionary.js @@ -15,6 +15,14 @@ var mqttHook = [ }, ], }, + { + mqttTopic: "temperature/internal", + mqttPayload: [ + { + mqttNotiCmd: ["Internal Temperature"] + }, + ], + }, ]; // The payload of the MQTT message must contain an array of strings called 'names' // that contains the name of the persons that have been recognized @@ -27,6 +35,10 @@ var mqttNotiCommands = [ commandId: "Face removed", notiID: "FACE_REMOVED" }, + { + commandId: "Internal Temperature", + notiID: "INDOOR_TEMPERATURE" + }, ]; module.exports = { mqttHook, mqttNotiCommands}; diff --git a/modules/default/weather/weather.js b/modules/default/weather/weather.js index 224aba0647..ed051e8c03 100644 --- a/modules/default/weather/weather.js +++ b/modules/default/weather/weather.js @@ -16,7 +16,7 @@ Module.register("weather", { showFeelsLike: true, showHumidity: "none", // this is now a string; see current.njk showIndoorHumidity: false, - showIndoorTemperature: false, + showIndoorTemperature: true, // Set to display simulated indoor temperature allowOverrideNotification: false, showPeriod: true, showPeriodUpper: false, From 09891fe8f73a2d828db5c5116a7008422b6ab11e Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Thu, 4 Jul 2024 10:10:00 +0200 Subject: [PATCH 38/52] BUG: internal temperature not correctly notified upon message reveived --- docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index f8e5017e71..4c7f021591 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -7,7 +7,7 @@ services: dockerfile: Dockerfile container_name: magic_mirror environment: - - DISPLAY=192.168.3.18:0 + - DISPLAY=:0 # - MQTT_BROKER_HOST=mqtt_broker # - MQTT_BROKER_PORT=1883 volumes: From 002db8fc87f1361f3c4aa83c45f9d640c8069281 Mon Sep 17 00:00:00 2001 From: MerlinGuillaume Date: Thu, 4 Jul 2024 16:52:44 +0200 Subject: [PATCH 39/52] Fetch the indoor temperature from the payload with notification INDOOR_TEMPERATURE --- modules/default/weather/weather.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/default/weather/weather.js b/modules/default/weather/weather.js index ed051e8c03..b2a3f36820 100644 --- a/modules/default/weather/weather.js +++ b/modules/default/weather/weather.js @@ -113,7 +113,7 @@ Module.register("weather", { } } } else if (notification === "INDOOR_TEMPERATURE") { - this.indoorTemperature = this.roundValue(payload); + this.indoorTemperature = this.roundValue(payload.temperature); this.updateDom(300); } else if (notification === "INDOOR_HUMIDITY") { this.indoorHumidity = this.roundValue(payload); From 462efdd5b58841a6704d19aed8f20797c7a94426 Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Fri, 5 Jul 2024 13:10:35 +0200 Subject: [PATCH 40/52] enlarged internal temperature, in case it is used, indoor temperature flag set to false --- modules/default/weather/current.njk | 2 +- modules/default/weather/weather.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/default/weather/current.njk b/modules/default/weather/current.njk index d19848954e..a9fd22cff2 100644 --- a/modules/default/weather/current.njk +++ b/modules/default/weather/current.njk @@ -46,7 +46,7 @@ {% if config.showIndoorTemperature and indoor.temperature %} - + {{ indoor.temperature | roundValue | unit("temperature") | decimalSymbol }} diff --git a/modules/default/weather/weather.js b/modules/default/weather/weather.js index b2a3f36820..5b40afbc03 100644 --- a/modules/default/weather/weather.js +++ b/modules/default/weather/weather.js @@ -16,7 +16,7 @@ Module.register("weather", { showFeelsLike: true, showHumidity: "none", // this is now a string; see current.njk showIndoorHumidity: false, - showIndoorTemperature: true, // Set to display simulated indoor temperature + showIndoorTemperature: false, // Set to display simulated indoor temperature allowOverrideNotification: false, showPeriod: true, showPeriodUpper: false, @@ -113,7 +113,7 @@ Module.register("weather", { } } } else if (notification === "INDOOR_TEMPERATURE") { - this.indoorTemperature = this.roundValue(payload.temperature); + this.indoorTemperature = this.roundValue(payload.temperature); // The .temperature is added because maybe we will re this.updateDom(300); } else if (notification === "INDOOR_HUMIDITY") { this.indoorHumidity = this.roundValue(payload); From 53c81ecf85530eef16ffca9d6cffad48599962bd Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Sun, 14 Jul 2024 14:55:58 +0200 Subject: [PATCH 41/52] Revert to use host bridge network, ok for POC --- Dockerfile | 6 +++++- config/config.js | 2 +- docker-compose.yaml | 13 ++++++------- modules/MMM-MQTTbridge/MMM-MQTTbridge.js | 2 +- 4 files changed, 13 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index 45a156fa31..2ae77cc7a9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -50,6 +50,9 @@ COPY . . # Copy the configuration file COPY config/config.js ./config/config.js +# Copy the entrypoint script +COPY entrypoint.sh /opt/magicmirror/entrypoint.sh + # Install MagicMirror dependencies RUN npm install @@ -58,4 +61,5 @@ EXPOSE 8080 # Start MagicMirror in server-only mode # CMD ["node", "serveronly"] -CMD ["npm", "start", "--", "--no-sandbox"] \ No newline at end of file +CMD ["npm", "start", "--", "--no-sandbox"] +# ENTRYPOINT ["/opt/magicmirror/entrypoint.sh"] \ No newline at end of file diff --git a/config/config.js b/config/config.js index 7bb1a794e8..6b458e71a3 100644 --- a/config/config.js +++ b/config/config.js @@ -84,7 +84,7 @@ let config = { module: 'MMM-MQTTbridge', disabled: false, config: { - mqttServer: "mqtt://mqtt_broker:1883", + mqttServer: "mqtt://localhost:1883", mqttConfig: { listenMqtt: true, diff --git a/docker-compose.yaml b/docker-compose.yaml index 4c7f021591..0e8a27bf6d 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -7,7 +7,7 @@ services: dockerfile: Dockerfile container_name: magic_mirror environment: - - DISPLAY=:0 + - DISPLAY=192.168.178.21:0 # - MQTT_BROKER_HOST=mqtt_broker # - MQTT_BROKER_PORT=1883 volumes: @@ -15,13 +15,12 @@ services: - /tmp/.X11-unix:/tmp/.X11-unix devices: - /dev/dri:/dev/dri - networks: - - mqtt_network - privileged: true + # networks: + # - mqtt_network + network_mode: host + privileged: true + restart: unless-stopped -networks: - mqtt_network: - external: true diff --git a/modules/MMM-MQTTbridge/MMM-MQTTbridge.js b/modules/MMM-MQTTbridge/MMM-MQTTbridge.js index 4eec21d8f2..d7754919ab 100644 --- a/modules/MMM-MQTTbridge/MMM-MQTTbridge.js +++ b/modules/MMM-MQTTbridge/MMM-MQTTbridge.js @@ -10,7 +10,7 @@ Module.register("MMM-MQTTbridge", { defaults: { mqttDictConf: "./dict/mqttDictionary.js", notiDictConf: "./dict/notiDictionary.js", - mqttServer: "mqtt://mqtt_broker:1883", + mqttServer: "mqtt://localhost:1883", stringifyPayload: true, newlineReplacement: null, notiConfig: {}, //default values will be set in start function From 6bc6a99ad4c24ecf1d8950f6bf7f233bf86ab581 Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Sun, 14 Jul 2024 15:00:30 +0200 Subject: [PATCH 42/52] Removed entrypoint sh script --- Dockerfile | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index 2ae77cc7a9..45a156fa31 100644 --- a/Dockerfile +++ b/Dockerfile @@ -50,9 +50,6 @@ COPY . . # Copy the configuration file COPY config/config.js ./config/config.js -# Copy the entrypoint script -COPY entrypoint.sh /opt/magicmirror/entrypoint.sh - # Install MagicMirror dependencies RUN npm install @@ -61,5 +58,4 @@ EXPOSE 8080 # Start MagicMirror in server-only mode # CMD ["node", "serveronly"] -CMD ["npm", "start", "--", "--no-sandbox"] -# ENTRYPOINT ["/opt/magicmirror/entrypoint.sh"] \ No newline at end of file +CMD ["npm", "start", "--", "--no-sandbox"] \ No newline at end of file From 158b4ba41621093404b8bfe17b296b14ccc59784 Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Sun, 14 Jul 2024 20:03:08 +0200 Subject: [PATCH 43/52] docker compose cleanup for ip address, and removed env var for mqtt --- docker-compose.yaml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 0e8a27bf6d..40be6e7571 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -7,9 +7,7 @@ services: dockerfile: Dockerfile container_name: magic_mirror environment: - - DISPLAY=192.168.178.21:0 - # - MQTT_BROKER_HOST=mqtt_broker - # - MQTT_BROKER_PORT=1883 + - DISPLAY=:0 volumes: - ./config:/opt/magicmirror/config - /tmp/.X11-unix:/tmp/.X11-unix From 23ed502b2f4a3726d0f1073661e704cf27b3a504 Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Wed, 17 Jul 2024 22:32:29 +0200 Subject: [PATCH 44/52] useless first try to increase the AYES Logo --- config/config.js | 4 +++- docker-compose.yaml | 2 +- modules/default/helloworld/helloworld.js | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/config/config.js b/config/config.js index 6b458e71a3..44ca19b9d4 100644 --- a/config/config.js +++ b/config/config.js @@ -46,7 +46,9 @@ let config = { position: "top_left", config: { text: "Say Yes to AYES!", - imagePath: "modules/default/helloworld/AYES_Icon.png" + imagePath: "modules/default/helloworld/AYES_Icon.png", + imageWidth: "90%", + imageHeight: "90%", } }, diff --git a/docker-compose.yaml b/docker-compose.yaml index 40be6e7571..4ccb2c845e 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -7,7 +7,7 @@ services: dockerfile: Dockerfile container_name: magic_mirror environment: - - DISPLAY=:0 + - DISPLAY=:0 volumes: - ./config:/opt/magicmirror/config - /tmp/.X11-unix:/tmp/.X11-unix diff --git a/modules/default/helloworld/helloworld.js b/modules/default/helloworld/helloworld.js index b2d123237a..8d5d47e287 100644 --- a/modules/default/helloworld/helloworld.js +++ b/modules/default/helloworld/helloworld.js @@ -2,8 +2,8 @@ Module.register("helloworld", { defaults: { text: "Say Yes to AYES!", imagePath: "modules/default/helloworld/AYES_Icon.png", - imageWidth: "40%", - imageHeight: "40%" + imageWidth: "60%", + imageHeight: "60%" }, start: function() { From 14d80e87dfb1f2b338371cd0f49e767963803ab1 Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Wed, 17 Jul 2024 22:46:03 +0200 Subject: [PATCH 45/52] Max-W and Max-H of AYES picture set to 80% --- modules/default/helloworld/helloworld.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/default/helloworld/helloworld.css b/modules/default/helloworld/helloworld.css index 42fe9c15ab..3e93ae5ae3 100644 --- a/modules/default/helloworld/helloworld.css +++ b/modules/default/helloworld/helloworld.css @@ -14,7 +14,7 @@ margin-bottom: 10px; } .helloworld-image { -max-width: 40%; /* Set the image size */ -height: 40%; +max-width: 80%; /* Set the image size */ +max-height: 80%; margin: 0; /* Remove any default margin */ } \ No newline at end of file From 058851477177c48a62436855d4a3ddf525de2092 Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Wed, 17 Jul 2024 22:53:14 +0200 Subject: [PATCH 46/52] 60% of AYES Logo Image to be shown News to show description as well --- config/config.js | 4 ++-- modules/default/newsfeed/newsfeed.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/config/config.js b/config/config.js index 44ca19b9d4..9d72ba6bd4 100644 --- a/config/config.js +++ b/config/config.js @@ -47,8 +47,8 @@ let config = { config: { text: "Say Yes to AYES!", imagePath: "modules/default/helloworld/AYES_Icon.png", - imageWidth: "90%", - imageHeight: "90%", + imageWidth: "60%", + imageHeight: "60%", } }, diff --git a/modules/default/newsfeed/newsfeed.js b/modules/default/newsfeed/newsfeed.js index c66f8990d8..cd72f3fb3a 100644 --- a/modules/default/newsfeed/newsfeed.js +++ b/modules/default/newsfeed/newsfeed.js @@ -13,7 +13,7 @@ Module.register("newsfeed", { showPublishDate: true, broadcastNewsFeeds: true, broadcastNewsUpdates: true, - showDescription: false, + showDescription: true, showTitleAsUrl: false, wrapTitle: true, wrapDescription: true, From a8e7073edc488b3e6b4db5d9d26dc5288f23cc66 Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Wed, 7 Aug 2024 14:29:58 +0200 Subject: [PATCH 47/52] WIP: white screen version - AYES colours --- config/config.js | 2 +- css/main.css | 8 ++++---- modules/default/helloworld/helloworld.css | 4 ++++ modules/default/helloworld/helloworld.js | 2 +- modules/default/weather/weather.css | 4 ++-- 5 files changed, 12 insertions(+), 8 deletions(-) diff --git a/config/config.js b/config/config.js index 9d72ba6bd4..be804eafc0 100644 --- a/config/config.js +++ b/config/config.js @@ -45,7 +45,7 @@ let config = { module: "helloworld", position: "top_left", config: { - text: "Say Yes to AYES!", + // text: "Say Yes to AYES!", imagePath: "modules/default/helloworld/AYES_Icon.png", imageWidth: "60%", imageHeight: "60%", diff --git a/css/main.css b/css/main.css index 15bd50710e..3ce9d5d799 100644 --- a/css/main.css +++ b/css/main.css @@ -1,8 +1,8 @@ :root { - --color-text: #999; - --color-text-dimmed: #666; - --color-text-bright: #fff; - --color-background: #000; + --color-text: #1f69a1; + --color-text-dimmed: #001e4b; + --color-text-bright: #288bf4; + --color-background: #ffffff; --font-primary: "Roboto Condensed"; --font-secondary: "Roboto"; --font-size: 20px; diff --git a/modules/default/helloworld/helloworld.css b/modules/default/helloworld/helloworld.css index 3e93ae5ae3..5da4985735 100644 --- a/modules/default/helloworld/helloworld.css +++ b/modules/default/helloworld/helloworld.css @@ -17,4 +17,8 @@ margin-bottom: 10px; max-width: 80%; /* Set the image size */ max-height: 80%; margin: 0; /* Remove any default margin */ +} + +.highlight-a { + color: red; /* Highlight the letter 'A' in red */ } \ No newline at end of file diff --git a/modules/default/helloworld/helloworld.js b/modules/default/helloworld/helloworld.js index 8d5d47e287..768db56e4d 100644 --- a/modules/default/helloworld/helloworld.js +++ b/modules/default/helloworld/helloworld.js @@ -1,6 +1,6 @@ Module.register("helloworld", { defaults: { - text: "Say Yes to AYES!", + text: "Say YES to AYES!", imagePath: "modules/default/helloworld/AYES_Icon.png", imageWidth: "60%", imageHeight: "60%" diff --git a/modules/default/weather/weather.css b/modules/default/weather/weather.css index 816f0a9b74..ee9beae984 100644 --- a/modules/default/weather/weather.css +++ b/modules/default/weather/weather.css @@ -41,9 +41,9 @@ } .weather tr.colored .min-temp { - color: #bcddff; + color: #409cf8; } .weather tr.colored .max-temp { - color: #ff8e99; + color: #f90606; } From 0b3bdb7a55a71d5e67a9328639721513b6fbdc8b Mon Sep 17 00:00:00 2001 From: AndreaCalabro-AYES Date: Wed, 7 Aug 2024 17:21:41 +0200 Subject: [PATCH 48/52] Correct AYES Motto --- modules/default/helloworld/helloworld.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/default/helloworld/helloworld.js b/modules/default/helloworld/helloworld.js index 768db56e4d..baeb041613 100644 --- a/modules/default/helloworld/helloworld.js +++ b/modules/default/helloworld/helloworld.js @@ -1,6 +1,6 @@ Module.register("helloworld", { defaults: { - text: "Say YES to AYES!", + text: "Say YES, Say AYES!", imagePath: "modules/default/helloworld/AYES_Icon.png", imageWidth: "60%", imageHeight: "60%" From dd0a619bf69d68e9c692b52a603e34c3c1ed9ca9 Mon Sep 17 00:00:00 2001 From: ErwinCornetAyes Date: Wed, 22 Jan 2025 15:19:37 +0100 Subject: [PATCH 49/52] Add indoor temperature and humidity --- modules/MMM-MQTTbridge/dict/mqttDictionary.js | 18 +++++++++++++++--- modules/default/weather/weather.js | 8 ++++---- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/modules/MMM-MQTTbridge/dict/mqttDictionary.js b/modules/MMM-MQTTbridge/dict/mqttDictionary.js index 8c38a43fb3..afe1b254c5 100644 --- a/modules/MMM-MQTTbridge/dict/mqttDictionary.js +++ b/modules/MMM-MQTTbridge/dict/mqttDictionary.js @@ -16,10 +16,18 @@ var mqttHook = [ ], }, { - mqttTopic: "temperature/internal", + mqttTopic: "temperature/indoor", mqttPayload: [ { - mqttNotiCmd: ["Internal Temperature"] + mqttNotiCmd: ["Indoor Temperature"] + }, + ], + }, + { + mqttTopic: "humidity/indoor", + mqttPayload: [ + { + mqttNotiCmd: ["Indoor Humidity"] }, ], }, @@ -36,9 +44,13 @@ var mqttNotiCommands = [ notiID: "FACE_REMOVED" }, { - commandId: "Internal Temperature", + commandId: "Indoor Temperature", notiID: "INDOOR_TEMPERATURE" }, + { + commandId: "Indoor Humidity", + notiID: "INDOOR_HUMIDITY" + }, ]; module.exports = { mqttHook, mqttNotiCommands}; diff --git a/modules/default/weather/weather.js b/modules/default/weather/weather.js index 5b40afbc03..558d99cff8 100644 --- a/modules/default/weather/weather.js +++ b/modules/default/weather/weather.js @@ -15,8 +15,8 @@ Module.register("weather", { animationSpeed: 1000, showFeelsLike: true, showHumidity: "none", // this is now a string; see current.njk - showIndoorHumidity: false, - showIndoorTemperature: false, // Set to display simulated indoor temperature + showIndoorHumidity: true, + showIndoorTemperature: true, allowOverrideNotification: false, showPeriod: true, showPeriodUpper: false, @@ -113,10 +113,10 @@ Module.register("weather", { } } } else if (notification === "INDOOR_TEMPERATURE") { - this.indoorTemperature = this.roundValue(payload.temperature); // The .temperature is added because maybe we will re + this.indoorTemperature = this.roundValue(payload.temperature); this.updateDom(300); } else if (notification === "INDOOR_HUMIDITY") { - this.indoorHumidity = this.roundValue(payload); + this.indoorHumidity = this.roundValue(payload.humidity); this.updateDom(300); } else if (notification === "CURRENT_WEATHER_OVERRIDE" && this.config.allowOverrideNotification) { this.weatherProvider.notificationReceived(payload); From 287774a8fef46ebd3a776214f1d2bc369a215a6b Mon Sep 17 00:00:00 2001 From: ErwinCornetAyes Date: Fri, 14 Feb 2025 11:57:47 +0100 Subject: [PATCH 50/52] Add streetmap moduleg --- Dockerfile | 21 ++-- config/config.js | 27 ++--- index.html | 7 ++ modules/streetmap/streetmap.css | 7 ++ modules/streetmap/streetmap.html | 1 + modules/streetmap/streetmap.js | 180 +++++++++++++++++++++++++++++++ 6 files changed, 212 insertions(+), 31 deletions(-) create mode 100644 modules/streetmap/streetmap.css create mode 100644 modules/streetmap/streetmap.html create mode 100644 modules/streetmap/streetmap.js diff --git a/Dockerfile b/Dockerfile index 45a156fa31..bff0169115 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,6 +11,7 @@ RUN apt-get update && apt-get install -y nodejs # Make sure to have x11-apps to perform screen forwarding RUN apt-get update && apt-get install -qqy x11-apps + # Install dependencies RUN apt-get update && apt-get install -y \ python3 \ @@ -39,23 +40,23 @@ RUN apt-get update && apt-get install -y \ libglu1-mesa \ && rm -rf /var/lib/apt/lists/* - - # Set working directory WORKDIR /opt/magicmirror +COPY package.json ./package.json +COPY package-lock.json ./package-lock.json +COPY vendor/ ./vendor/ +COPY fonts/ ./fonts/ +RUN npm install --verbose + # Copy MagicMirror files COPY . . -# Copy the configuration file -COPY config/config.js ./config/config.js - -# Install MagicMirror dependencies -RUN npm install - # Expose port EXPOSE 8080 -# Start MagicMirror in server-only mode +# Start MagicMirror in server mode # CMD ["node", "serveronly"] -CMD ["npm", "start", "--", "--no-sandbox"] \ No newline at end of file + +# Start MagicMirror in client mode +CMD ["npm", "start", "--", "--no-sandbox"] diff --git a/config/config.js b/config/config.js index be804eafc0..2b84f78864 100644 --- a/config/config.js +++ b/config/config.js @@ -51,7 +51,11 @@ let config = { imageHeight: "60%", } - }, + }, + { + module: "streetmap", + position: "middle_center" + }, { module: "clock", position: "top_left", @@ -59,29 +63,10 @@ let config = { timezone: "Europe/Brussels", } }, - // { - // module: "calendar", - // header: "Belgian Holidays", - // position: "top_left", - // config: { - // calendars: [ - // { - // fetchInterval: 7 * 24 * 60 * 60 * 1000, - // symbol: "calendar-check", - // url: "https://www.officeholidays.com/ics/belgium" - // } - // ] - // } - // }, - - // { - // module: "compliments", - // position: "lower_third" - // }, { module: "greetings", position: "lower_third" - }, + }, { module: 'MMM-MQTTbridge', disabled: false, diff --git a/index.html b/index.html index b97124be10..be5df92eaf 100644 --- a/index.html +++ b/index.html @@ -56,5 +56,12 @@ + + + diff --git a/modules/streetmap/streetmap.css b/modules/streetmap/streetmap.css new file mode 100644 index 0000000000..c96c438b0d --- /dev/null +++ b/modules/streetmap/streetmap.css @@ -0,0 +1,7 @@ +#map { + height: 500px; + width: 100%; + margin: 0; + padding: 0; + opacity: 0.7; +} diff --git a/modules/streetmap/streetmap.html b/modules/streetmap/streetmap.html new file mode 100644 index 0000000000..a16cde497b --- /dev/null +++ b/modules/streetmap/streetmap.html @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/modules/streetmap/streetmap.js b/modules/streetmap/streetmap.js new file mode 100644 index 0000000000..885a1c4496 --- /dev/null +++ b/modules/streetmap/streetmap.js @@ -0,0 +1,180 @@ +function initMap(mapElement, location) { + const map = new google.maps.Map(mapElement, { + zoom: location.zoom, + center: { lat: location.latitude, lng: location.longitude }, + mapTypeId: 'roadmap', + streetViewControl: false, + navigationControl: false, + mapTypeControl: false, + scaleControl: false, + zoomControl: false, + draggable: false, + scrollwheel: false, + styles: location.styles + }); + + if (location.showTraffic) { + const trafficLayer = new google.maps.TrafficLayer(); + trafficLayer.setMap(map); + } +} + +function waitForElement(selector) { + return new Promise(resolve => { + if (document.querySelector(selector)) { + return resolve(document.querySelector(selector)); + } + + const observer = new MutationObserver(mutations => { + if (document.querySelector(selector)) { + observer.disconnect(); + resolve(document.querySelector(selector)); + } + }); + + // If you get "parameter 1 is not of type 'Node'" error, see https://stackoverflow.com/a/77855838/492336 + observer.observe(document.body, { + childList: true, + subtree: true + }); + }); +} + +function initMapRoutine() { + const trafficStyles = [ + { + featureType: "landscape.man_made", + elementType: "geometry", + stylers: [{ color: "#f0f0f0" }], + }, + { + featureType: "poi", + elementType: "labels", + stylers: [{ visibility: "off" }], + }, + { + featureType: "transit.station", + elementType: "labels", + stylers: [{ visibility: "off" }], + }, + { + featureType: "water", + elementType: "labels", + stylers: [{ visibility: "off" }], + }, + ] + + const foodStyles = [ + { + featureType: "landscape.man_made", + elementType: "geometry", + stylers: [{ color: "#f0f0f0" }], + }, + { + featureType: "transit.station", + elementType: "labels", + stylers: [{ visibility: "off" }], + }, + { + featureType: "water", + elementType: "labels", + stylers: [{ visibility: "off" }], + }, + ] + + const brussels = { + latitude: 50.8477, + longitude: 4.3572, + zoom: 11, + styles: trafficStyles, + showTraffic: true + }; + + const charleroi = { + latitude: 50.4081, + longitude: 4.4476, + zoom: 11, + styles: trafficStyles, + showTraffic: true + }; + + const liege = { + latitude: 50.6402, + longitude: 5.5689, + zoom: 12, + styles: trafficStyles, + showTraffic: true + }; + + const belgium = { + latitude: 50.5039, + longitude: 4.4699, + zoom: 8, + styles: trafficStyles, + showTraffic: true + + }; + + const ayes = { + latitude: 50.82909981139743, + longitude: 4.36146805513083, + zoom: 15, + styles: foodStyles, + showTraffic: false + }; + + const commonLocations = [ brussels, charleroi, liege, belgium ]; + const midDayLocations = [ brussels, charleroi, liege, belgium, ayes ]; + + var startDate = new Date(); + startDate.setHours(11); + startDate.setMinutes(30); + + var endDate = new Date(); + endDate.setHours(12); + endDate.setMinutes(15); + + waitForElement('#map').then((mapElement) => { + initMap(mapElement, commonLocations[0]); + + var i = 0; + + window.setInterval(function() { + const currentDate = new Date(); + + if (startDate < currentDate && endDate > currentDate) { + i = (i + 1) % midDayLocations.length; + initMap(mapElement, midDayLocations[i]); + } else { + i = (i + 1) % commonLocations.length; + initMap(mapElement, commonLocations[i]); + } + }, 10000); + }); +} + +Module.register("streetmap", { + defaults: { }, + + start: function() { + this.sendNotification("SHOW_ALERT", { + type: "notification", + title: "Street Map!", + message: "Module is loaded!" + }); + + initMapRoutine(); + }, + + getStyles() { + return ["streetmap.css"]; + }, + + getScripts() { + return []; + }, + + getTemplate() { + return "streetmap.html"; + } +}); \ No newline at end of file From 25dbb8eef89907012b758e2f90cf32e5460537af Mon Sep 17 00:00:00 2001 From: ErwinCornetAyes Date: Thu, 27 Mar 2025 09:57:02 +0100 Subject: [PATCH 51/52] Set correct coordinates --- modules/default/clock/clock.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/default/clock/clock.js b/modules/default/clock/clock.js index 42b066ab58..673f3686ee 100644 --- a/modules/default/clock/clock.js +++ b/modules/default/clock/clock.js @@ -27,8 +27,8 @@ Module.register("clock", { showSunTimes: false, showMoonTimes: false, // options: false, 'times' (rise/set), 'percent' (lit percent), 'phase' (current phase), or 'both' (percent & phase) - lat: 47.630539, - lon: -122.344147 + lat: 50.5039, + lon: 4.4699 }, // Define required scripts. getScripts () { From 7af91b31f0b12e2e9ae8dad03221028e8b674fdb Mon Sep 17 00:00:00 2001 From: ErwinCornetAyes Date: Thu, 27 Mar 2025 09:57:44 +0100 Subject: [PATCH 52/52] Change modules order --- config/config.js | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/config/config.js b/config/config.js index 2b84f78864..39e5884b3b 100644 --- a/config/config.js +++ b/config/config.js @@ -51,11 +51,7 @@ let config = { imageHeight: "60%", } - }, - { - module: "streetmap", - position: "middle_center" - }, + }, { module: "clock", position: "top_left", @@ -63,10 +59,6 @@ let config = { timezone: "Europe/Brussels", } }, - { - module: "greetings", - position: "lower_third" - }, { module: 'MMM-MQTTbridge', disabled: false, @@ -103,7 +95,15 @@ let config = { apiKey: "f8b3c5d1e4b3a80422d92bdf820148e9", colored: true } - }, + }, + // { + // module: "streetmap", + // position: "middle_center" + // }, + { + module: "greetings", + position: "lower_third" + }, { module: "newsfeed", position: "bottom_bar",

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%0A5uk}zAQLPaGO+mPq=QD@A#E5 z)yVmP%{Vb)$B*H4#aGJbPqH$aA%k_DpAsj@HH`FR&*(%neo7aIcwVjm&*d3mUfP2D z{$!8mdlQ}|I>uziplWrpwg||~XHrbQ8brMzxwOeViItb7_ch+GMORU*Kl_kx+cYpO zb*AI9PRV?G|i820NinADiG5tnHj@Rx{bf z5TT4w@AxaVZ(GOKy+6wW8B9}(W;2N~e?yID6O>jA8BnHg(1!-cWgdrATy}TH7+7(d z!wihQ1pm0YhDoA$DdAf+0-Q`vT+H7JcO z`w=OKs(L`EzU;~$9i#$4n)_iU85%F6oNG)Au6k|RMKY98;!~b()?Qpp3T80|Z5GH& zQycOs`3qrZv0R#&DUmW)zHHI;vIS@JQlfFLMwz=*2Xr-EyWDUG5`5NXz{r8EtJk@ z`-G=9MT3cY!0z(5c`+E^@dD-VxEG(nGTDN^3)S&@K3=FgkIewFYuvFoUY%A1;4J>z z(^d{wjEyp-24s{UEk~Q=@!Y)xLb7vp&g@in^?bml)UyPTRJdtpW~Ip0+uo1=iZ6dn3Jw9!;eD=Gq{^+AhnjuBnC2o_U)*alk|2 z=AtIuoZtSudtIs0-km1?v(E9e?Y}zk{MJ(bky)9u<$qtJyu#Is<53ukONY9yE3ruWj^;dm@1Z0$tfn9c^`w zgTH90dOo&E35N%BB>6|HMMG34r0%pkvEX7G_AiCn|322qR!n7kZjk#B(|M!7rk^{6 zmf@G2irj%nB-N;+<+mhLA|Rk!^M?iwF@;fjBY`Eo{gmm5w+r<}`z|LSeFY#r-8mjZ z)}rz;Ru5O;23o@TKvTPY`KiHsj?EjElV%eQOoTsx8&GUT=FM+N~fc`0*lOEHbOGK)c zk=JgX)>MBjezCC#Axyr=l10<*r3t=u8f9fU@9=$1J5MEQDG)`L?&>C|LoO6LAJ+Ec z{e8Hi*y=FjN0<&;{A8OE2G?XjOdZgYa#*KTKE$LZ>wpcQ26CNJ@fvHQaK-s_ySVPd zOjbw?rA$??xETCJ<1OdP?hh%NE9#?+!74qAXNF#BP{bI=Tz}0_Mk(ZADTwsZJPq_I zc&TL*DJ(L=hEpn2qaT!(Y%ciSGG}L90rJ-Z%v0z+``KIxfUFsZ!~Lc$iRaP$>{POH zi+{d&s#Ff%sC>no&da?=6Ksl2h;C+HYK(38DzZxkd28f)n9}PX`BvA2o>y0VCI8k< zC-AC=S~TOT3r=~6=^~B=wu*WES@Y_-HXZpSM zBV$HohwpzTG5IFWA1eF!gST^~cqv1_Q_!~bThmUK^?S9YP}XC6>#8%2$8cd3+P0Fa zMm0c1oBUkP)-9v9fBtf7Rhr8v>jpq41&q`gyLhnri{mEwLC4j19)iTKp;M;Mx~cOQZIGye z<*Ca9AIm6IU+nyTMV8;b^fnJb-34LugewzDxIoxPiQVMd zK;-WjeO|1{2G7Rewh?(5 zQu(TzJRdiH6d@+8F6??es~d}-;e1m%Qp}>B?tRC9SDN!QcOZr|^6uJYiH|=Q$5lC$THhEKgf0yOgu;3Y-s2GZ(8KELqR zPUPvifPVWN3AhP_*_JU9X$LnA?zR|U;wb99PsK^XWm`oGd{+nL6opOXi!XkDv#)9! z^aU>$ewp**pMdY!>VSf4=f$s=s+FsbOn3}89k9n3OawHhcz>Yy$k6Fcvy(4>d&AoK z?;Q2$S~)XvUw6bVnXMVwaKi5M-EhVi=u9$~T0Uqmqb&buZw8UrG&n|lO&=PO1tnw< z@2cK&el8fhF^}c0m5=k1Jc0XtjIpuD=C_LP*Ont2b9NDfYp@C9w?`M_>mN6 zZ)!h@|K=j`!dp;mmXfVhO$Y+&xkg0^(F(>I;PkDCvGeRafmAvo0S_}(kXM$hE-hPi zJ1X_Jg05l{E|$;#ZB1qqU;N_7?26){s01!W_ecA~87d=-Ufgth9{<&K)q68aFMVBZ z+&z`-B}1g~q0twX1Ve|7@WsqPfm>+!VIKczdN59V>v`PHFd7qEQ=u3&TLy}ox*!S|bUoM!gp z)t20J2mFMVTILT4Z(M=UwbLQ6cV7^he`3pmyIYLmDq%clz=rE|nYo<3*U?h1&_k#~ z5^09@K|BpHpjGkD?R42`U`$~NY7Nx8G0T*ROALX@le znVVgkdk(L+b6jSw;3vLosj>}IdQ*@dWxANfxLzKa2#}`T3#Xol^54R$opJ3wWQx2e zbmLm-pAYpT$Z-+0763PO?+JZJ7yhRB$`D;d`weR3q=bs9zusDQ&A#$sU&)(fE=a5A z#XP$R6O=B-v*vHK5-5GhZCgKo5ftm?)ve&xk}#U=EE8ZlJ6A#%&4LMfPv{f=dq0jD z!4VWCB=T-vv@g;tmizA4*L6GX&a;IwM35gLk1|#2jxB&kjhp6scJI$z zBxVO&e|_3pAXmN9gNIA>bD1Gu{m6fq1;;F%bN4IK2J5L?A8a^Qy)ZpuMbRD6zSt}n zZ4~_*L#BQ-Sij&~pTCf&Tt`7VNC-m+XS~k+5bBo<*p>QxkFaxesU-F@MZ*cRo<}y( zYy;NY*XTv4UiCSW9B1a-L#mIl;O;xk$VoCxTe*j@ubGaRAxLiT@&SBpF=*J0^Hqq4 zn;*>(f3j%Br{_T!&6S^On2qjO^WNfZcU`5sgRia}Lu$Jz@=dx45;!|k*j@RoxOgF; zeO}2O+_1pzTT2J{gVn*}oPr(HJzl(B2Ye@EH@?wC>eoWiTEtmog!-@TPf;ERLHmU- z9S&JA8rO&Yqy^2v@;F?x{NEI`_K%Oyl z_K*5EE!0uxiudJ(v8b-y2VtEtAG375e0O%|*}GT2$8Oxz-TQUp;pzVQogn8>UPTm! zdd_w8J8uhooyMz3*|cx{Gw5GUk*#e7}$lMlGrwWIdqj7shz8yM+8@w zV;lZVGe2Q5i+PY%;9YeN#gm>}2Yf=o1Ab--Zl7K!(HM-_P=!C2zjX)Ls9~K-oxcV1 z?1HNqu?+`-5t+D>IY$zxeFuHfcbDtrcN_K(RpAN1>Y#@%NS1y ze~-fTnZ|sqHb*2GBCM&CntnaW41t4Wh@(~=AQ~18ir5*sO5O53}>^3y1#HJ}H5z zO2t=B6X}NJ3UlRdMvmE9DLG<33boY8;|3*YQ4ac)qzBLqZ)T&pOkmvahlw2U5!8n0 zj!jFyuBz%iwf1(KkM^UMkrU=)dCNiBBKcc`zUe6AQ{W2;^BHk}rKRP0cEiqA1&JtI zjtf)vFn+|LjjPywB~L`CZB5{#t3Vd$cwJw94(&8r$GZ32(ts4GO~mlQTI6TAiBd49 z2#7H_9gj;lorTXTGB+3I53#b);haSzR2YKq`Kc*7w#SRlqA1{J$ij#}1( z35@77##4|t9_xEcNg>5Z>p0^LX9p^DgOvwRZtFZOA!K*|hP05|czaN;KNw86gEeXgfK zvK(5f(kk1O%vsoRW-vF1l?S6`OlFfze+Cn6VEzv9H?(A`M9_;7=yf)L$bB-J+3>tty{<2 zy~4H{c_wp4hAvbK%jk-!>LDCKTLKSSu4ngr?up4yzj?LU0gBwzCgoE0do36x<^X#mxTu44~=D9F3f zesU48qqQLOy7)>x{za+(bxGU2%uWz+_yZ91?+FJf^2&P)UT>dUdOm;1kPT?~hsBg_ zRg49%n+^v*)+VzaKnZ(^K7{cZG?PCq(FRBD1|C7p{}8dn!tGloJ`Q%k6AaTpd_^m( zo67D=&c&O{zq)vz6}<*~@;Ni&6s3)2WO(Nyz5=(xhTmY0(sT-N00zHpZkc5ds)8HP z%nZTUvZ=bSKPT(}Hgsi$M&*PZS%7RWVPGqjc%})F^mFEn=4{;cv=5@a zgx9+U>TmNXCh+}bMM~llDwZ4$tZX_{+=H3J%`r|h7lk{sGh;vBo$>OLfy)fNrb7)jc`C>B zX~;%6mVWx()X&HcB6~Pk*V(q;PZ0~3okZ^Mu6VX+Ps`v2GG?5i<(ve$`F3Y^W9(e|RPraEc%lLOe>wP^Tu&pCS2J1=D7aKepUsrr$={PPrgPt6OSvVja#k;gY z*s*_IXC}<8Os7~aAEU*Qml*}8%**{f0iW(_I_bQ4fVe+1#Qb&LkhmE_lOMdHw&K4k zn#}WHdzx3WSlPA3)|kT{nm@(QmYmo_vMGQ2^V&oFRvL+hN+p)8fuv9#i8eZjz%d`# z(=$7bW6TSp^7rJK({Rz%$f|kF9r7cVzdpx^6;NU|GXc% z5N76_83m^mhq@pXCuAlZjJj@$$u)-rcU;Y%Blv#%545NQW*fapvTgPACmLw0l3~6= z+V-ekB~%XQT-xw_`55OJo_~Q!aIiz4%=Ut6HHkW(FH~};pmFi~1UuAhO8EOgk{zrH zIIfy%6{;&}L#21F%8&5om3G~~uXx;NBQi77u8gtf02E=GpV3xLL`x%L+PStGDUcp& zQ%R53umrxKYLBVF@fQyJf9|JKjadtTYAQCS5y;36w6ZZ;)+j4?e(Q(A3T;)iu%fiH zJxcF)ASKd?NrzZ9SYF&nQk(EV356LgRW5I4=>yC-Mpiu3!a|CY`hgIKQzmf@FYnAw z$0xp;>)s=8!i6r&d2Ll%DDQAaOS2#eGA&8eeruWA2kdgut4ah)p90YImPT?%zl&f8 zY-v%IDecEWc66FZwHMou`-CtYj+mdZ7=|d^tFfz|*T^;;szxi_P&xJ>a~A0|orNl| z{A)r8hgkLG!Ceugji$1kv0&H}=`Cffp@}i0y?&QBUrh+iqYrQ2F=(iel_B$8%397Hb&OUeDys&!Eo7<6_8(xDk{sI&|lDrPsc`xz1?q zQZ*OsbV}fUA(i5Dc}*@0#Pt273TJXR z`!@MvR4bo^iY>=uI*?HL`hIgcsBe|s(U`le3Py1+f)bEKtO!VF1ob}0zxQ3(=KhYs z&mJc&MYYKM&9qbh1(zNT8dzrGZZn*Q<4k_lUcDtH`Q!^u^isJIW^16Rrf2fCA&$|n zP){w{U2xu``JBwer8CU)n}+mz$?o$$QwqlHltAIv$8b)uu?H#DS{Q5Fqi%D57lnck z1rwJ~LywS_lM;!QjQuQ>cKbIdmhuTLu#WUbit1Ysj$+!*h_9^R^N=u148`p58P?ht z(d!fksY&0L>@uUPs1y-^bFr2F)b>nFzDC4tyxzYuGH-Zd!1(LH=)Q(i)jaJx>O<6Q zxRvM^*GVHw1BBIwJ?@gkRGc7A38L`O`KAvP)i@|~4rgl6$EKyp?eN<4;I#2qGaL0` zXg?PG8xmeDhOEpOb(xKAiG+($e=9w73hh;`R7UyI!)qg|K|Z#SbmIDcNUH3i57bb4 zXj0=RMO`mb3S-6v?J=B`Vu`Vz<7f6wEf~AFMz`Db-=qJP0W!h$^TYX*Hd6=iJAs|h zp^&ETFwqM~ZH~+Y{f073pABux+UQhVm>KO)ZYW75fx_LdL^x-c(qA%D3SgeR;$6J} zC8f>f@_5$r;uCw|G#(5_QSxJ0O#jnEuZ*!;Yr!>bmt*gtr3CJ<4|qHgC}8~!rDbKr zrF2OtB~c7BE(B&AsXvCqv=x>t`0n>%!7HMbszy)|r=69Vn+93&43ym3*#%;P@p*-r z3s?7VT>S4y^!W>B_p{jcz>z$VR8|teO!N`R<&2*$!my5@sNc%`h2BhxmRRd+;ZH${ zE4p=*b29?Cb~{6t04O~~*ey98mkA+s?+FrfmfMSJ=a`Qb@m+FNg|-^QL=iqy(q(>U-^QwA ztscjx0;~N|QWEQDdq27|!)40&v_7Uz@Ln}%u!nPG;q~pWP?1if$QexIV>UlA{mzRL zE-+4J{TLUFTZz?6!5Kw|IXm0w&52yanBRfKcxk_V%n9$WlM|#K(F&$6pITng zD#}Q-LD57JFHtCKlKkR?cYTl|4O%*SocIdgC^1^z-loR={UZL8>`wEq1pKGuS*?zH z3HxPP8rs^ULaZ_7(XpTJJMSCy`H(Gt(>afvUfjYVd#85BeKZ!}L|E0|azqyoupfK%m6EEDHi3fi1Ht=cs;>JHCWViWcK^_# z)lO|RUQqX8OnU{cz_ngjEh@VQAE%9?gDO^(x{io0{v?DIcJlhkg$WmtX!ff)rK|q7 z`?{&)V3cSd0TPjqCTBW_M=_uMmuqQ#a-4RIXrtnwb6l(nwU?g%7;cfTt#>z)4odn~ z7I(n8%fesfM?QW45KMui68t`-_Or2~;AQX7x&p*+~oTWB0526RdR4 zu{~u>_!$XN;a;A#dmzKjSaS^{#7lAWYbZ5&r!RU|pT{h*g>z%;z$>z0R>V#*rHji` zZ~J}$c(%ozyu6er*~t?BsXkf-8>=m)NTVtsej=P~p7Z3Riu_KIJUl=$aE?3??1@dF zsLI)?*A{TVB+YXm>?RxzcM=|NdZ!t`zlIbtqDJCPQ4hCzPAXKS+{{_<>+gCgPGSL( zQ^;~QctJ&y91E0D?3K&Mo(6g~=iG_-M2cakb-J;Jf5N_J7zDe_*hRR8YMK`kT#_eF=FanBvzw8^ zTzI`fNxtBJq(Ed#zUM~-Wc=#={peFO^|$TUm7OM@%6Gp_jAn6$n*5vaTnnUEk~s0Q z8KYm+DCLzZ!FM9ie?xm0N=62+!Bdl-LwoMTzKqC{w!<6DOIL`CnIV%Y^?a^c|9SA% zi@zBigITAo^PDRXrAeTH(-V-08t9+W5`dRmG*I(d#E&@$6-}eT%e4~KUeQr?m< zchd{TL^?cF-u?+VqMaoL3d#*u?W1PTl63*;saD~T6_khx*za&TZiB2Q#wbpIa0h+L zh+Mv?r(Su%{s#Q@zmFr)Pyg@F?BxHw)0C2O5Oa`na1fS&U-Km_dsWg|Sk6gSPFURW znzXo-gQT>qtR(b1^xrp_E(jKWi4OMv-e~^+d7C*)k52pl!rM&BAq1iP`R{G!$I3DE zIVhFOdEN5}Qj?AYQ(K$^f{(h#SlCzq>b&W%> z97=i|a6$8wQdnfv&QadOhwYR7ooBZjMXJ`1Ij)cMO8Ao^oSlV>QV@jn$WV(zG1wr1 zL*Y!ZeqP$GTU7h^?|;C3@t)?|{1C5Ioktoe9!bjj`SUt<@vBs0;9{2g#fz82!&}rZ zU9u(b5{dSI*4A40$S+*_M83RmVX?Eb`wLHQxs{tJ5uA*hdR?OZ%wmEWqa-1wQn`48!$qN##rX#ystng#}kwp9_%+lCCt+)M0&=}@D; z%jS=CJJQBESV&P6c~3le$-YJ??lvz@AuS{0S)KQUh@feCQiWCh2hvzGue7vjP`TCe z+FI(pV}e@uS)~e{d$N{4UrW4PY2Emlg`!$YOA0A$Z}6Qm&Qp$f`@^sC#~=B?UuW|o z{$_4$Y*c4ZC3&%k+8PU*Ri-#~r*&mXxlhjzl{N8<9TOE5EitcoJXmFCH$PG(nyB>m z`1VDlP7St0l8`B(p+w$U@roLq>B;WCK~48|Vj_?FG|o6jIl{6hN5PC)#QN;^`tK1A zKD8eoQnf8#UO(metu9p_JMW__jacOyQ{sgmDFo@I3R_9HKRpkUKdfro%W|j3j1s@r zy3a3EwWYyMcLRGk8kiQJGu@MIW?AdT+o!k^KUi*&tnG{(kArQi|5#8QxTQ(pK-L?k3XB@ zhG<^2wtggFUY&2<=*QchR|c~@cj!2*SedPSiCs1t&LoQ<){jnR@qjtO1Y)D_L>uBK*5$CBeGE=X}uVM4#24SLQ|=U!(|G7(Ug@DFvN9JA#NGgRWlOa&i_N z@&TGb^a!T|NLA|4ac_BNrLViue>R}=k7m@)pO^sBs0BKtQL&y$S65exJCb<=&OpW& z#=U#@?k5gPT+iZIvzgTOkE-x5eyZ)-*Q0!TkCJ+G6tss*O`Nv>E*^D9P9&h6Uf1>@ zq)V{C`A<(`N{ve%mfJL&2C-|v>8B5tnrO=h{LJsoRnl&xNxFJ=2=O_>r=L5>fx+ok zSk`KpfFYgH$v7#Jt_@v`w7Nzc{fpp$#r>u=E9+^JPW|hF%1qjac+7xGm-^54&fn$B zCEk>4M_tautB4}QBCY4{BO>>tkow1E$6ayOOq7UoWRTev#=$-rF^7 z4aJ@ivq$V+Q{z4V4GkV-2!vsH`|e$7x?QA2t=o_mc$O*!#{N_1&RtR7AX1jVntpw& zPjp})R$eK^5YN1M^Cmz8v2U1&+}1Uzvb6#CQK@i%gnxaLw#aR$RNQM+wn(-W!P}tL zp{uU0{xbo=+uKF$)`o6O#yEk*O;3m-Z#z4+t881R|8#Ptugvxtm19Pkz{p3bidgYI zZ#z0lL~NR#73W1}?cSobXbr73uC&hlT}$Jm0dgl@@bDB5%}V7luo~e7Z`EiUTyxpUITRmZI)M#O{?&4NcM+)D`)x&6|LR9(Ncn zw?L1>zKy5~QQ-lszpLh2=hn>;qzgP*)Np5j_JhJwNPE^yu;W6p#$LWnfQ_Elt zAHY7Kq2WbvMMpCX)TvYFLFF>96YTGxR~VEeGP9-F3s%UP1H+*hw& zJ?f4x_;=<-tV+mDW;DpFWL__HRpJG=Ce2Zc3Ze$$on~ zA<*t>oyQmM*3h+n&@UQvdC`Up!IdMnVY-Z*iq8~i6bB10Cp-2RUe+nY#1x<+h3iWZ zGtcPfmOJ<5RzL&mzFegrFr8l@@)$;ejlmr~JA|8sLuKTUe}DG~A1u6G z$f`~UJV?F*4Nm9(nq(+PG@)Mv(aRcxx&0u%z6p{Z{CAizgo~{IOnm4{j|{dGce4ZR zFou!i^tp2n92kPdP+9O}ZJ55L zwxW$X_;hc<#c%cL0L^^p5sy3QQEhB)^4rjz*OKyaKfB-^aSTqzPG+D@SaZqZvR8 zpw90m z0-i_i{L$bydKynUd+8ns55ap56&`E~!TqVUZ7r4d9xqq8b4958A(;0E05JR(&mC(n z7VKHg^%qreCkS15AIGEon6Q@JT4#btYvN3D$U8FPGB&K zZvXz8G!YvCh!;Z~9kLK=!$3*|netUyyMO6EEAQ^s+6$-5JsA}h757h%FY1&V$%ZT! zvMU6}yFWm(QSf}g+K3^e=pXBsd(6 zoWX2E7X*32p&V`w9thhhb|GEF26dyHM$gF1$B$o+SQ|3)n}}GSOK^w>Rhv&hPUieu z!F5!lN&7BchiCmd8Di&y;^~ti16kPq-IfmcAKKr7{ha%6`y`6uC`#uqHP-+|e*Mv% zuFouF4!^KUnNy}{uO9HRMPAfiV{lm5Lc-&*jyRSd(_P8zNeJ72q`Ojj@ech7?t+2> zPMc@s;b&KP+#$v{T{}Jr;H;kmqbmRJIBK}Lxd%ntb{;F-F+C<=oCHb6e8Phg)GwD9 z7TqHq|GEqD44j50Erb|EY*=4q_cRK7=_>$$3EA4(CS(|rdpbKivlK&~2ZzXom3$~< zt)_MPU4jtLG(2S$>x`zP4bb@bp}QOIL)?lK?l2!zT1^_Nv{4v4_tI~xPsN@E{1akd zu0q~13ZkkIFfBhDvND4mOxc=1&tQz{<-OS0B=A>%E{ocuU;`0L8_>oAM-K>sVQE-75d?rn=k_YWZI7n?>JUb)}(3)`w zGG!A;FjFO5^o|`mbW+Z5IthnE`0ZY`u!`B^wjinG|BUMazGH84+PzdwO|8Qr#wTZh zZ%FSIow7YGP%y+{)Pap4l+4(D95gcw<*sd_~A#2 zIsRLY(!5$yMXX{clHJsDaF5&lS0G-lWpn!nDE?s}Z%gJ`t53x;Ebh2qd-p$75?s z={H|;@hXq3OM#-PRJd{F#*G`Ga{~PQm*EWSRZFA^z*d-mXZx|Uxe~M{3pwoa-u7?p zsdx8z6%`*jFd)?&eCcj_A>3Nout}#>z1q5mibM?}c^Ut;17&{t*qDt7 z=r&C$?62d-3gBI>Y-vwNptwLB1BePc?Oh`e3`@yCjo^(_+5l9r7*C&ZA@Za4Karsa<2wX$1k>uccS{-1H1QZpmD{Y$3oI7{!Fc(*p896&8C7@kqZnXRvq=+UdTeIpt z@84@`1sQTQmifl-jlJ39oynxZMW{iWJ^p zn}dF*0m;%0%Qh*vaNB%{5_##rd_zG(YYie(DY*PKHa*W)8^BShQD>?|y(+hEH2lZZ z4Ik1eUE~uI(y6`v=|Y{?SgFDR9}O_#LQo!bb!+c=5(}H6rY$W!|pe6KYI%o*OPIF(`i4aI|QV@*=G zS?gFpZO}v%I92|kUA7`io+B#0O4#`n6o@{LB1ghzVjxVD?G1Czpq}mV=~!V{~gs{1^W;N2`(=vThp~d0da9dpfpdrk5m?!QzGK2 zIZypb(?GdLMn;}k-v15MTl|L<0T_7zmGi^3lto{|!HV5he|~DZhMe$%OdoQ_@r7+! zty*V@O2d%ZKT~)o-0}9U=E_Wu6Wj>^AE^4&*R6zc-@ff0c-%wzqatMG>KvbE|0CxR;d^pB?p+x$Ilf`gL$jWKE zSK&=hMhziczx4QG_-b#kDT{2HYFmz2pn{`aJkF#m$be4+f4 z4^v>d5^GA>b(?oNiY0aJQbUjq)Q_1(VS?O2LT->w3)WbXsJx{a6feok$Jb3K+H%q^ z{10^pE0T2ek!7hwsiO0$nQKu1&}-;2wQD)f48aA=FbC#+0I;q{n6zqrxBf1=w{Fds z!NKxFOoT*FRKlgV5IxviM%vg*x}{atjSowzc)*KPB+gD7dd6H{gVdrxfg)*c?^WR) z2*H1*I+v_DU$p}g;w=mpjJ35 zIV>1hkv#kvu!~bDPS+{zNdxeM3S!n2;L0?)>iy)HkoiZ;=Z<#)vs{GUyEf&J`hg52 z6#Jt})cfqNhmMZU)3!9={OXmMligk@Z4hsw`a^o4!N~+W`v>lF93!?D>kl6~l&_$b zm0}198%w6FFE^Zz&j@-xZrouIQFWq(Q{2|8+Y6h3dVZ)B76{af&Jb{YOa;c@E&y>> zzPU0R2U|lr>uRWVd7U)IKaA&aFod{XQj~Rht;ct({tMg;Rs73^FpgO$wgiH@ygedPjB2~w=hy<5$j+uJVhr@lrQ_RLMpl$lm!K`M#z zMf7IR9WTRG!pd4yvGF&Zdato^usyq=_<$=~mlHXa&JN=}iL2g3u0a07q<3=@GN?8c zAIx|ce`4xqn_#dq+%BQKGlX1gyO&o=JyHI17%qJ(6)rUa!-xdkGhDPK2{p*)4lu5# zb)5|q7&0j}u7Ql|u>xEO&@i%}1qj)C^}vOax)StqMq9MC@PB>Zlz_{w(mB7BMI#V6)jg zYHP0eue<<~8IO8XRJR8UvkX1$0<(Q&}yyq$b}es&UzMrXv45Ag>Y5#5Y0Dyao>P@lE{?t&V_`vxJlEW#KEN)o0pe| zTH#RPXqm|Wye!xr3FP6H71`}@nH(P#1oddmv*GcN=WNN!Kd%WrL|;Pe<+C6g}3G2gAK z`Yo(LSM*hliiXCrJ5AUKrH5df<`R<66s4@r4{594g1FnjuT>ictd!%HyYH;Oc*$RS z;K8c3QqDdgk(B|Hq4cYcPCU?qT5yMSnvYN0(Q$gBO_ZCPiHS+3MIXWtdDDOoCRcIs zfXn5*S+zLerN({yWz)NPp-nv@GbQCTAUv;#Dq#4h0TOvd=oA8LFvbUT($T0WG8EDm zeZ5IVO>Ketm(cHb`5Zyurm4ca4h%aisDD^0ChXo0arlRM`oAnma{tvE-T zAPEgY9)LIQ9aE4~C5<*#fSFtd;ts2EIlWDvnoBucwu3d{$Mj|Tq=!b32kY#;)`)R@9F_yxM-}O8KOwo~6J z0_Adtt3AVV^K;Ol0==>h{AGSmioLU|ScZcCO6gcPspu;?HE3q1IeRpg1Tux+wEjIrO^K)1q8u>nG1WDaEXRO~G#ip?tVVoP6j*;a8qjOeUS&w9D0pC)1eJY3jrV8{ai@6N=*h5Ho~QncMQPQI0ItrFg>ymxx3{nAgg#M zS>Kz=&=103>@Kd-aE3IComYMcEKW~m*qPD8Bj%K$=4rgZLiMt@Bm7{73W0gKOdVH7 zXpfR|lN4%=71k)v;6)xax?ISD;))A^&NATwowN^k?vXXO`1hkO`uszBt?KW(zERrK zrnnV;sO$*+`LW=r`)5Pob^hD#>`)1iLSjrsto5rwH6oTTpOMba{r&sR+o=4ib_$wF zi7-9d%aJe6-RqHpGlc2hc=8(-#@6~yT>`N68Yq~Jm}I~>I;E-o{+a>nW+A|H*mG-1 z^>@I8@XI)0LYjX$nF!N~E2UUn`LW&g_h6cL(XlvcuGNqx+EhAN>&^o`a=s)`)aG|_ zbKXd2r$+a}$DaQRKgtYq`TlpVTYNS~J*cL%C?SDFg3=MvJq~Z%;kKx#6aQ@R(lrR{ zY9mtkGfRb+Yn%100^LexR=x2ay`vJ7mB)lF2Ln5{!2TYaw_it>2nyK07TMHH@P8tX zoOx_Km4LQ^ih=w8*r=3%C+6*r|DgbivIg3WW(N&>3Q>B2HK+){%`j9_c$kz!O@=7Y z9sVRYhIbzx@Bp!i9z?0q+^Towe+>W@e8VbLz~qBzhb2F6YuI`kfIfww4jP{Shp+dJ z%lUu%|Ib2JczX*OWn`2+6B(H$p(T;5WJC$2%(AjmWR~?-w2Z7$D6^9FPLc+pq>yCO z_}-5*KA-FQ-hRLDAJ^ylT&}b8e7&CIcpk@N98XblcvMf&dFHs%b+H$fTNHpc$s}eZ+!pqtmIuzrhTV(lLsiQ7~D8}oJWlh zKyYS32LE2_Y*_PLmz3s1R$m79i&ytLRa4v3h?4)rulCh?tnYZRqWsB{xc3G{d87Ms zkjW5QJ&m%ZSUWiL{d6MkIkkGt17_@K)v{%m-m~xim6F_fWNwF`fnoP+9T;;VOMC0+ zzKTW+XLaXy-v^~@%%9T&+^;W@KYF|goDd7Hed)vD4J<;}Xvp$%wtRoTcIU%GRAmoO z&bXk=t?t|B_ZPnRB+!@Wm9k4cM{d#Z?`n6^gjCqJjcPyHXdNDZEy#0L?Qw9)H?xQL zeQ(7ov-_H4tWoZwXUU2_O%|E`uLI}wXc0yvtf^*sX|ZFSzJ7H&Hmx;2)?$C$VHv89 z3mbVC>OOu5s1^qeb-|}WD;KT)i$@6U2?)9}wqgo#-%;4uqBOl9pzbFrEe3cv)(T#? zt8Vp>0qzvfOU5$bt#VYnhmi)9@&H4eyjCX`X zRV9Cjuj~e;jxMJ?M2kPFGl5-2=2E9=x4RGOxVDf{dSA5(e?MrCwOU)DYABHeKHV z&&PWZQI%0JZqC{$aC0Xb7hTi8m6^YIbfT|TKKxzY+?ooPmwBo$<~_0QO$hn(^gDC5 zxG!FO_WZ)x?G^O>x|2bGeJe@PEij{uoSSv+#8=3ex3lQgTt}-^{ zPIlkpY@2qrG2><7c6TF_OQv!)P*qLPa$US8_s?dQsr}qZPL3Hj)Fzx5r_~>hnY4Jz z=FR?)i%A5HG@Ts-UuN$}SE(7h^2gas(q>dX;{hVt?Qu*V^etOQfL`NPtKdafW^@d` zmR#fdqbIi_jGnm)@#DPo$o(v^Q4_)}Z(ZuFlAsb`StL9Z1dlZc_wFLM zZeA5-r66b#Z2zr?54ZZY!P?-Gk!NP%^Wv2*<9{W*SZc5=P+?Y(J*d%w2owLd>Ey5> zt}m{WYmPw}Fc6?!5HepM?~U@9;qXa)2q89+wu@38**`dF*m2?Ik3I;5CawOF-}GzU zFh=5t^$B0u+ZN$7#*j=!qv)6!I6o3(pe-c&-WwYmEE!RKU=r^*0ri758+F!`Q})qc z<}_$&&|2P{|2a1;rnbyL;B85&lnX*;=zZgEQ!;G&b&mtc>Vrg#g8!C9!x9C&)4Anu zj&7VqnDn@uv3=XN08tf&Pl(9q9-Nz}dM$W>`|ovYcg`-V0-{2RvAwun!*`qa_OXcI z$UsxNep|X}>(*TiT{4VUM)$IVWs8UT}OM=?$@GAShXx@`k2X$@kw|)6e^;+TcFwXvj z5%+U?Uwf5t(zdeXMuXIUM%LZDV@H8*ZB0gDNw}cJghlmLhgkQ?!rRAB(NRu*pFN{5 ztWeIoahQ*BlwH)+xTPn{K6q8`3Jz}P8{mDkeyhQej9mvR(v*M#LG$w8Jw509yd!_^ z`qQI`YO#ku!L-CyB31h7Y27Ky9&5F?zxv~Ki)HUGJV8$3+NfszmgWFXp=ja;JUaA= zlcN{%#hmW;hRp1^%5hq|oFogmq0?B;@+Pu}T>-il!`NIR`cl^#5OA#hbUzkL1S5PW zWX#@P<(Gh?y6x>gZRzL1Ra-*m&+e4S<$0OnBzjEL>VktFvz}dE*0QHcwU+44ID72` z_{;y{FmqWXH77OpUyXE>9TQGbnOJU04LA$Xe1K#C1rt4Jqv4d@K}c< z0>E3ZQ>&N9oKIe|AoKj_Z+1s_6ADjwRV{Nl!V+T&4y}k}b&uiHqE4~`{Ohyu*%U-i z_x&3^%q5i$7fiP}yMK6Ce``@#9)3)fWb)fc(~Hj4TR1}9ys{n)op zPVZGBGU^EpMQ11yE5qCM&LXScv#!N@*%{>*{u8cOy46(lvith(=}A^wm`oWdk6YrU z5DG34I!s^)2hQJ6Lo<(+7*3K9>rj@suEAjVAb9~vy{p2}qCnS6Q#!S6JB-2~wee_6 z%bgHl_Lb!&B_(ewhji*>itcPgUgZaiMlD+WI-FRyUcDopwgY3 z|8|3CgI3&1EI7QS@!x;9mGYwentLtNzAg0trqg5H-=;MhKd_CG%r^*Id}&H4D#0Xn zy*2Ofv`w{UM@SO-bxAdwv9Y&PubqvMCl5SnAi)S>tl?U_DKIzhGopt3Y7gopvPWQ0 zQBsXCHU>oqmjCZR$Bwn6YkTcj3Z?&>t7ywjX3*U<<3*ZsMsaJ3CM8mVD4K zTEKlNQ}xhy2XwQaTvk>#aK3Tw3*E=Ak$!%E%_nINAHA!?sOOH~kWGuEu}TZ*o%r;k zbKqncnqtj*3MR3!$h&Qwk1ytzPxdI}KQjerAs!y?pz&Ga3PN zPKfgZKi%zZdD(N(>XLc|**ktI8Yb`Q8h8N;X4$)_L^tD0A?QDnP_P_~yI#Fl5(KTg zaZDJe*Bz$q&6|+{QVf*@P$Fcm4zP48`~ERpC&ak7asO36&riOzID~iNAm|Ryeaw1A zeYVMrMCZ1H2Tv90q3E7bFvh;hup~hc8HR)_VAr$H8>|_QDxzU+b@lUC%fH&qBgre) z4VxU}dXz%N_y=TddvwYk+bUx!D}Lo)Dme5=Yq+6dlUloahFu&I=iF$~qD4hvCl2l8 zSceZ)s`_kfmP=B5A13#_@Q_3vZcnzg-LcAbzU`7Gx z3*Y!Iwu)Y|tF9s%nx|(@!-``7Fr_4uhS7b?wjQig-DNxRJ7Zp;h-etc5gzJ0L|Y}h zyI9lY8nLi-V|Y^5|GAqtKb)*rzdj&-iKf55f2>Y+YZhL1e&w`x)~(-pkG@d;)G;vQ z>Z&*)-HSD~omu^7owM{;lo=Ty2ac(oayGK3!);qc5{HU)pNLfH(7y zTlSJ2;tWBFRj}xh-lM)845ErzbZJUvFZs~bpGBPsUN1ikuJNdD_0%2A?!K#ISHcFA zlFiA3GL*Z4Q;=YR2Nk9x-0eI+JyJ>dH)^yi?1BB6=|knDD2`5eMYIfC_3LZ0SV8NC1$`iC!fsfsWC1P-HoGWE26!~yzed0u zgbUXEyT{~1&-sfcT_?8#i+uUvTL-i5e=U8b_o3r1rzKq{pEvQSp7<02AKLQH#A08a z0~X!nKfyOol(crnvkh=`7gqgRiUv8F^um~>r<1s&RlnK( zI}taE=${~#M5K24eg$4FTnrE4HYYnZ7*ck|`sCyZ@Hp2VtZSj(ypPFM_Oe-gm@k^g zyI4nx(od#5cj#pHRDaNh6G4<8nP$X4CwxD#4hG|xt)L-ZQ^At{G2HS>9@9F+wDEkh zws81!VH?%GuEMU2CZ4#(FUYzC>6&?Y*|`PJE>Dv45gZ}veU3@@DKV|ZNW-R{Qh9;T zhmqlofn^I}rYxC|f>V7yTqjn}z4A44zQo7u#EC=}wM=-gIrm#OY8XQi*RTJ2PKSep+YZpzepHsTzAyRl z{d*EYBAEKJtQ<+y`>AH({{C1dA`I6$*k4^a$)kELf`EhYu4oJ=P)a%?;%!#iQV<1b z-7{-VHdvZEqi+$n&hwR@w!??Fiq)C-2_ohWL`f(4AQGW@sO6RuErXGyPuX?QhfVU9 za?z3q|KQ>1F>|?|!1jz$bNvNL&y7*F<-p2$by(O4(MPO~fsHcMpw)Jjl@rNPC`Hn- zXRE&1M{AeBNp?OszJUYa;P5J9>3&ho-d* zO9Mt<*tNfGFb1$Yo$O=J7i;=jvsQ8%wnkCyj23_9`)60|@I$yK?(pwEZLl1AA=Bbl zcez?AizSpZCKR$|3@hFd@FZ5}sSV7ssMg8CbvD##yc0?)0@?q*IMYW*U>?%(L zdX(F;+C>VT5};=l$=P#e?DGy%)|B2H-GyYl$Ev_LnHM68Yx!Ei?h(@#7mu33#O00x zmWdL?-r@E(u!~%`%1cL%v|dJBktLf-m`ME4(!SeXNoH8@d%`V_`N&SDq;gLz)x}^I zfB?-D!Y`QW%nA0rQ~&-?-!-=DAPYSbxoHxhjkp7&%L`heB_wG3zRSL3rM==^&%}if zJnno}ozd@5FW|<&2!#C}=O5fW7%?sWYH_XabwirF_6Et0VCSc^i9*Qy!nCKOY$f_m z8(da0y#La7`$RCX=h26ZmWZ=Q?a)3caZ}V;3$iYb^=N0DK_({LyyQASHZ~l#vrlLD zTEm|G!tmRP8u-PHjVX-(%9L9xH~-x}4}5MHjB5&meUhkXCqm3;hd%5ntf5+H%zAqi zy;-uqhew7IwMMB@|^nogqMf#FUDjTJPeIKFbV$dH#z ztXa7jn1B%8rINS|TYb(!3oh^6ee1x`Pmk$14Ky zlRXINhwR<&rlDP$C+aHYdA>y_jBwZ+Hf-1*|IfO_GsD*y z{UqYt=$18tr5{P&xApYt)5W^lZ?VgX94z}%i*;g|==GTR@OXHGLG1`PJ9*(k-*s++ z7f_Gcf3lS?}4K0D}42697j7>*nx*XVcmb{pX5|MS-4_ACbi3F{ruRjH50LTvnRI4$ng%zMEZc;Gxq)lV|n8q_(>g zu%n#0XtvxE*90QCA1@xTWgl-feazs!kIr28?>pPp*=>%QQlI}i_g3E`+Qoi8BB|2* zh9AsNEgWuQvPlSNz%xnNCAv+@-gkFOc6kf$EPE;^2t7LnDFmn3K1u7~mbI;X(7t(0?!f^@~Z^%L(@K7l|mEAdI@bDEOa?0#E`?dXkf z;0viQ!hGa1y=ME@gFi7(c*UK zFlxkzs**OO>_a;}y~0zyFHPx24*2rbuB(&t^7Da=+RUr)U}77S%i>|)4aVE>M`dB} zRs&av^DTPQmMz!_zwBf!z42AuzWV!%n#%p>;7T&8a6~>4-_r7h7>+gdsTL*c^kNK9ns`_1AajuD! zbTG}~Y|~O!L7{K88w+w`Cx}eDSwEMSorh-Y*IBdi6E*7Omi=a0RM5Q#c&Ro%mleoDtXbc z+cs`%ulv`bb(Zh7^%kbpNNCBAL_317hclxham=xp-W!c14KVtK4uV=t^~rIMboX&6s6*kF65XpH8Y#FVUuH9oe|sPzCEqQUQh3i~M=9^INF@OSL7gy9GAj5<9z)fJ=A ztP7i3n71BSGbD3RMhC?bl-t>9RPm1;b`0u3YWzg2hITjNC+g5U_3pY>tFyk~h;>}e ztm@OdnfCRr{EpemS|%0vk1uXR5Ck{t)(Z!f&Gx?<)>+^2=zl-mLKK;g!>o*zC{mr4 zqx9MnfOdk~blRJ8tLWbszsLUfSe~-uWOjOX`O?jsH(7i&1N+R|dHHkdn4LjEck85H z)BP)^8A}w*mk#7fq6r0An|EeXcz=%Ti z*nxfvyHR@M3wqL(Oz_aEuaibIJ?(2JmfU=qcmD|+Bs(OcW5oi+q3aa5ineXft}b6* zr|&jNoWu{g&(_c{B|lYbXx$EvP3nEnks-;Q4uWX~>=Gc#d<$>uRhTOU=&6O0v^ePg zu-n`3WUqsY<|z!)0Lvy2hfxX-^U!ELR-756Yr{R%6&~I!LUJqCdBPe=kDK?I+nVkH z54CETMB@g$b7bf`+X<@rk|heA#xM8axDn8X#J)DaoTbksusO!tPEyr}eEah;u^*Gm zE)icGA2UopH)s5h;jKQ|wZvSu$=7!e^=}HfkgenOW1chT1vCHXBASx%c#CM%9XmEMrjxu=XRlT5 zTXr6sF#W$@rd>?ZAI@T?(michCwJ+P^3S_2!y~~R#nj;B0BDgl+Tiu#OV;cbsgjw% zX0HKR{V3VbW`6GRzt(=jx_X*DjA*?Oh63xw^3QMD@K-Z$)z;k9>y7s19kOZR89;)Y zgKQLQ8Xe!XW5-?ueUlNl+PbUy%=qs#RO9>(Bi-LDb6z8<4+qK1pH8hC52)LW&BOP| zchxLnmn-=-_12HNf|PLN+`jXu+W+2S4L&`cb2tnn8++E=M?^1?8b^#z`0Ia+L|$5$ zRS^dY=ER45>HO3v2jkJ>#?7u#C+p+QRFnTsXqx~_@rk3b<@h?1Ltf{Y7HYwOMc-?* zwGodNGro>;fwU2!9eOwnhCOb3t5nNF3HkA|kLr%sn?wA;_8-Z>x}t~r@;Y!KPo~NF zFjVAbcN!Uc)lZlf$kwk`0&Ja7&F#Z8d!>s>vF)5=N|XKlmmCL3JH{7y4q!Ph0X>)? z9&r9K>eQuS?>^ntf6e#7(+%#H@-hE8Y6i_x4XmB$br;ZNz8-M7VkD z*0>knUcGuH=Q<$45yMUusmLMb5tmB8ee)=eshczlo=5pe!zCR9>;XUd2u0e(@lJsM zACN=-JL_U<_f%xag_Co{yJ~;g)1soHKvZZPF8$r!__Z`}H4?{tymjJta%K_di9s*N zLXr4q>}QJ&PV54PK8YVoOLtOqjpm3BcFBpg46|&X%o%KFvyjI>Bd@{FUMl=>m^55E zoO~_L=`0{S$~8jWw&LiU4y*7~N{0zukMeTWq=DnQJq{YxK%!H|U22ijhHH(bCBQ)X zW|V$@G=9t))f(p`#o;$ctYy+;L)bVVm@ZrP#gXZ)!{B2dv4`Oa7YM3IV~^9R|lBNd_zhgetp4L@g>m6xC74744- zvHk@%o}(PyB9cnp+x>9yTy2ND`+8zr9Xr2TFHTVJ6DTqCOYuRz@tr;&R2PQnuh|+-h#dXRiPYr(p61WNZl}p&fKZnJZ-6Bmq2< ze#$<=(8pQivuBrmn*9UoZX}xbCwn4#fjYfKMtG6xww={+vl)w5?L}>W?R@j3>SPXw zAaFBo!l?!uuI-8+Fo~Wn@_J$|*kQXJ-^FCI`m?Klz3)ex2Js(_^k`=%^epei84$cS ztfdQ%Qc-v$sQI?+|IeQ8(@q)sydU`a;c$_LFMGAUUl%gS9d?@??;Uu|3E?N=f_aEA ziw!RJnQ^^3x!(DHn(IO(lhIM!D<=_4t53fwk1lkj* z&O_ssUI?e(U>bbrd79R)p1lD*2Jhb^1AH&<=H^DY%}%pv&d$EqoCVct!_R5pb2FWR z-0&zy8gBV`_4~`Z(C&`6>S+FEmsQpYZ|hP0Ro{83(zT_-wQJWR&%0cI@Zfp)`TlZiuZ7PBlBhdw*gXye;{1P<`kM2A8mV5JjZ>+q zKI+epVsI(+ogOJZ=E1+-_5S$v>uh)TK#n_yRmg-H06mBa(e~%`ENOb;S-|G1l@b&? zRPS9gOAxUi&PTu#qz)*yQOF`pwL?(gB~zL$MDYZbOKzNAnXPA!#$t_GK2X=RB2 zs{1Q&1?WXSm|PPKv^Enw3J-cbi<-LX%LKmb9JLYvvB9g>2~s{PXY~M%9eiD4cJ;%pZMid+ke%|)_W4b0*Eo6y*6G)&S}t-J?-{GhzfAnXw=7o5+tko!5qP`G8 z-}uf@M=G<@c;LY8C(QcmJyw{}K0zIS+;OR!c<+yJ<|)EzK`J!V8D(;9Z4G?Dw^_aJ zyquaKvnN*eQ1z4r<41fQ1JhKjIV$PUptvqmV*CtO&Dlw%Hwi%NU#%OO;B`oIZq;eh zV;hn(W$L~z5;YedPYEC_=Icdzjo_|sJEaD1=6h-pj#0)H`M#Jt?%*AZ<|+xR8Oovh zF4<6`4JH3Qbu4`re@iKH%+RMHEcN7q>mnXCGa9tN5(agbp0wu*I_yBAx6 zD2{lYNKQvP7G#>%jao!2IYyL)ih2}^6nyI?Sl>oNNm0tnT^Br22Y!cu1PEtIzA@=4TL$qGZ++Lqb1Eb{ zWnEn{PQK>jFE8<^PTE(Z@=kvSPuG`QdHaN*4uj zkNRF6Jqgw#*sU-% za;JKJLBSkhaqxSy!ulfOJikyv>MZ1YnA+ZfD!&UBa#I=RR zV`V+MylhEMLqD|>m0AbUz4~{{mMgQo?q_A$ zNzk#leOzJ-9Pmpu$Jg^=xRB`e|LS{^Bro@?dJBCsUjdXgC(*Z`zDL2-tA*mMyUrl@1OLbVeA5Ck(WHlS$?VO^^JG zL)0#I8G}LS!<%H~e?EH2Uf&!Y{mr@Z5`Y-4hiT#QLr7jm|G44YRC+XE^@am90c>(l zG-?jRABp@iR9UcTblqqDc1E<7y+0XO;0NJ7q@@-Gjt}-cf3b^@v;^}*r$6|mc6n^L z^qo0J{cZt=rFT|*{TP2sQ!@MyZyr1=Je;BnXngH)EAvcWH{|h*t)Yea74PJw=!908>fNpKuEG zv(vAsQdEBh^)dk`Y_F%6T&6Rw4qrqQ1kS?3&)75H_#Ua3IHc<9d!RahEh6^UcVe1W93Mgu$xo5#x3>RB127s{$)Th{A5OM6`8tf_I*nFQ|dt?$uW&-eCF z*?+Ck7@dBdmiUN#0gta(3%7t9?C&!#^@~^K_^@XP4#Ov%JI*OH!ow!_;wosHQnJ2G zr^)ZrEZ>8oAz6us1@DM1{lwJD)p7metNV%Lch5b_JP(o1F?e9i!!4V@alVKf~^=;U| zuMIR|sNwalBc%pBvVGTyLrZONbF;s{|2k6Js5^fz3?F40RQId_v~FzJ@S{@T(#6O} z#4g3PqVw|J?%)FqMX@*QT+y48A#n8;cQ87#l3ww^qCo#a(DYWO>r1T;Z+UTAn*a_|e9UlEINrr$|NP@-oS=mQ_FqP-xSHROcb2XFF3CwG zd7@OX?P1lyj$HCTeCRGZ7>c@YJ_r3LJ~}?ueNMGrX2jL)S5wYgH7x?Ep!84J^3(@H zgYGv?Nc*X4{xZFAFrcel`sApY8wkW;lrbYYj`B!L_YjH8<{0OJ?$uNF@YrVL6N>Vh z#iXI^NI*mChHT9G`^p--H`CMAMa+sAS5VC*GGoS;7f}h*laFzT=@{6jyBzu zigkT4*NK7;b6v{Wc76J!IqxX=fYp3sM&;EdE6vRxepz@I@Fn)ewvA9G6l9GF90(rv zur4dh=kJd_SMuXq{7Q^kk)>annunl#dz6_l|Y0qw0 zce>eBWpy!QK{*AO?s(WjHD+B$Gh3Bhn~Ejc31CVKg$niPmV2?WuDOxa*oBw&dyfwK zxqGRI3i-}6sb~F_yy}q+Rztq0Zg1-oxTrK(Qs*aQ$DjI;5p_%&A-uh>7MzTeNIE!4 z5s(jgXnAsS-z+U>juIM~=yRA8;tSn4p`<+l50?Z(Ok0$Smr5{Ua9H{6^|c#`65IER zPyL@ie*72>u+Uy)ic}U#nd1F}cG6Bl92TOH=wuz*ni0D2rD1y5E+_xW?vFv*v9K4O zp@=7>&j45lTu&GgwxFT59RFsz*6*IJq?VI8&9GjviTKTPGr<0{kFslJ$csC4y!FP^ofql?kGhY!soL?-Vr z_fw9?b0TFQgCA)N8_qdAR(0PWlt>|s8#wlbXrY1SyJk8X4FUiyX#sVF-a%eDy8aUe zPOrstjPIYNC=p;uq0C-tWx`e_{WEf_TcS}X5r>H-mNF=tph%>c~Daj|BdxHskx2clY*~p?t`C8KR zavPyVm^hk4Ek#bowy8gSPIbjE>Ovpaexo{s%#=HWYs(Jm%lPAmb{EgibAG*-z zPUx4xzE9}3J4o8>0;3!SjAE=~YQt(h0_9%U2Qj`!_4mT50n+_r@Sy9X_U+q;L0&5< zh>>v=GaVk6=nn7*D_-q_VYL2MB?mE7de%{NpFveAq7=kBz2Rq`URrVj6d)7{%J*Nt z4435B*SsGlu!evDq|6SDyHB0sp{|3?eplcg$A3^_bY?>s!x*?3yAC|Q*rXnxp2w$W zpqdiM0CG8)10_i9P;DM^0!6HpH69u|-+%rzm18tf;a5kVYoqctn!P;jcDXP2V@b5uxl+F~;?t`2OMjunixVmT0T=;1_$Cq2v&m4MPOr`OFWPq2%LA zwI9f!9>ce*ScU($5}OMPJ*1)8r7dZZ+)mHorer}&5&{mr6DzsR zJGI;!+QGN!aPWIYmf8tAvFwrLQ1sV3Bc2oFAL^(CVM_CLyXX*1b)E&GYFCnAlvvM5O<~JUW;+Mx#Xo zp6>d)%uiuApElg$4_(^{=6KG9`Z3K8uZyi&MNUo+m2N8{WHa>f=fAc`I%pMC=g?{@ z=5WTQR2f)iMoyf%Y$VO63KQ@=$$THh&mYOS(c~@??$J~xT2F8D%!5Ar_GxlRb)E#? z#$$Gx5_3kmXw}QMTAf(jY=Y*X!t!8X8kxonbUz6%Uo?4r|6phMhuy@*<@cTby+_DD zroHO31z~wJt^Zaa>bRAa6}Y|L8I=>-O$QaOYnY(i4X8p=tM*TiOmN>|@|99Dt+SaX zGo;fhuOpZ^@at+ zY&vqwQxww3X7^1PFul?5HQ_V=(edrdmTBs*@INF;4n=EWk@om@eS%-V2)C=HH27As z)DCrl^y!n=?^@WY|7@2RsOuxC^8g52h-j&1tCi*)yl-O~|DaGw<4o?(UTZ2Uf8VYe z*u9kdM9n)Z7dLFpvC6$u4`5{^e29DEne8;dk#;5_6zoOdZrbs65I;;rfIESTc@O_u z=l@N@1y;gpAZQQhJfq(vT zL|KA}Ne?AJpLDH68#3j@dUw3d68;s5l!K9bP;>D$3^u9vaoT^+7U1J?J^On+DLIO%Fw!Ok* zu~6l395DjL7OgZUOJfZ*4&qPY|3d!JR&q_$CvR3S^Zm>Zj^W>I{j2G-ckf0t?f+V- zEYOF?=^H^cB;w21V+J&@f075g6zh{zXv@>4SG5e@_ElI=z*60`Gc^YPQceqrh8Ryv9T8ZVCj(0L#ziv5pvUZSv75( zv&v^!hmG>?a>Qgj+4<$LGa=My)bXSK{o!u5vav?hW895d^eT^i2W|GSZR^%XqE-``yJ_pYRQ12Hu zIohQweE~Z~IA=89&`|LXPrYX-!#su$@hrVYf}i9o8NF&o9dg&zR366KcgUB76w151 z-%6@}=~E}YuG+O*zgvHL>p!P`0~>L$q32l{-e8A5VJpn$Wb+|;-ostZs>xxQ`+~F3 z={IE2j10F)>M`R6%>FD`7Ufo|`JMLc!RYWA3l{`y{eQeQQ@6=bD2zzja}^*<=>p!t zLLk0z-3nWu!fJ}~ZSLB7uyNII{3S&RJ$VeJNno*Vf<0cK03z@x@mSfUd)JHkHOle# ziBjJZBs2>8^-qK)?hjb$#{M{(sr&vV3r$cLQEC;nM(>Z}OGXNYIDXTdIQ;f8V zr0BjrOtnM-IqPLen9hvzI88%fGa+6O1JP~745b_w zU!8Q#Qa0(XS^pD?+T?A`dK=`oFbYSXh^j4;Vx~Q5*luNqJBQ91^MB=za#U0tV{N7j z!6`}bv4o+bVuB|=ZeGoMqX9mf@Tpf~MI)tAWO$yuW*LhPwddx*XPVo1q2mbsoKH@R zpNcUk*s#vPAje5^BMg$tp#1#&kw?{B#~>P>!3xA`ZCVOvLBrw|8uLGqF9gd!rDNpI zhrfG_6z~oezldl#*#|_-N*KOq?1fJvM<4X@W~09wHau#$CDE2#(Cy8`q2#`|GL2aD z(aOfq?Df>6!)r>veW29#a(4^6%D-{1lBRVWSgLoIB0Q2@Qc0fOdbN@(WvX_ntK?$y zz&xXgMb2aQ_Zqo!WlVgV;%6Mnx`JY-MNHiBxTnI?PkQz%8}9ie9)K87Z`N!5ybCi} zSE(n-G155-fpV-pG%_-XHl4vIc9H5>gsNogcX<4ojd4(H8O55~3lqFmbC=k_SRYSHYj8xRR1m&rLjTfQRYN~Q0ukn)Hu z4RNhaM|*!wEQ-ohw54XG#j#PMvO)B&zoB`8{i_>OdW&UB2$w|H0NQU31ChUX!bVM& zUuUw6^P>GB2&8M(@R8_5B7BE66>PLdHFB*=44sI~Ab}ogU0W1j*=xnu1vx#jb|_r@ zq_+|hW9g6dQDEnqYN3F*(ma62pEoJeTP5L@=yG`TpQs4kjJ?TDVm2d8mL?gZ_`^UI zZdkw1$4{SjwHfY{M9LdX&KWRI;gVS3Hv8rL^Pj)7=n&2>suMF?e$$=Cx^~iBoCCA; zv0Z&DK-3=yP4mE;FA@zWeNjzfV0%*xV~sI^GE}kVSq$qtk}6$KMjgaLN*9i~TC{f;iv#Fqtj>%2a`la$YzTOvrb_=KrO{)Q9J@%O7Qw6jb);@%LF z^q?XddJSb|8?@-U>wQWKesBte@6&Lzrh>EPBC z?Nj|{it{rqosWZnzGZsSwQlsp!Gce$2+V~?nLFX)f=TlkqI3deFz~C{sd^U3erP2W z6Etv{CH(;Bpc^{N&9~J}FI;*?M=A?y08wwef@e*1(iz;uwvbdS$X) z>Orji8&wJYPF_k1;%5nhW#19&bgi}{2W~m=Akayv5^rzM=^3698ClO)V1aWw~ z)~yph4%yqbGG40{gZ-6O2>k0#41;nnhnT7PO<`BD^@mV38@ zq?w4>MEoNy{gpO0hh=@R1&M=LnjIpq`|$nn(1!jr1OI})QL6jyhcg3V3* zf@)G0Cn?(H!`^{C!}PQGVG-fYJLTnCAY-a$d!}`ZwL{SjxSqp=7YaRhhYff5R5epd zHeut*G}>UOG?%M~Qp=m0`O#fI0(oUR>qYt+SjMkj^|5s3-u!W33VZuK^Hh4!;cv-; z+ltLm>;Sa#P+q;ndA~5ieCsCROQ$X`Y)?LR;NA21!|$89_BOrnRA_2+P^QT4-Hkt* zuwDGoLV>jfC)8=|+9)JI%xi><1LWxqJU(lRkV-1Wv!J6*UV0Hl&WTcGJ^)WTys6{6 zj3|-szx8#r1K#D1601oVujQ@-a_o6PT0xD&%e;=R23E)i-k>BpmHp+FcoPKM10JiN z)mvfAO#;Cei1-3PVVIEytECM1*68SdiOx4z%l)LQExnTVh^2)VjrN1m`Kn;Ta4)Zl zl}%pi(a-9k+^Tb7;q$>_?3A-h%AsQ0i{{8OCH$13Z#+x8;0U%tlM@}Dhl*03m=Ha9 zHWL9aW+7dDF3t(AYn5^SqxRF`?Da@$p2a~+tEHUH+dXlrKLOly?p)m#-nfGj><6s) z8cC;~iz~S~z-7f<+Lek#n_Y5XgJ&mc@5#sS55PbyfsftRk&5$QtrSfLN~TnvNi2&H zO!L0Hd-~|k{@xvHz6!L($wI=C-o|m|Q8?`e{(5)rEJ~UQB*07m2`l;f z^&%)~dvR1@)Ji5|o)Tyfw0)NdRHbYECb?#3pqTZf@r?9_$(}IyAPQM)>ib@0%LK%N z5O%_`R(3_I3E-~2&9T+ zxl#J&J|=v{4bJ&x!*3`@94G#p)t4?>(6vCeL@H|eOVU9{+_@w^qU?IgyWj4H%BTB= zq!7KzF3G^r)XN%=iKby@Rsek?A^_P_&pM95&9il@mB=nd^2-scggZ${i+uNs(@9#1 zgpngiqbOpY@;BzZ>}JokCZamr|1+qXnz|^pzEJpo`c^YrW%~Z$gqiXZdXi6z)e{4`XY?zZEf87cE^lnxdg+#F)=Z8 zOOw_SLi8hUy!l*D5o2L)?$=mDBiK-_C52S5l_;2KPsKy%JUYCB1X7N}Ffh1t3XgLP zZ3OAEh_E>{zkHcSOWcX*2lp~GchE&hLz~64{}D&O+#)ET2v$Uzs!YAo$yAR*lkpUDY|hrTLO&ut~!l3%{WiSC5b1 zOPMr}3#kMTBDVSNQ3N*d%@b)}lGn$r&;zP5urVeUfAl9Q*IOKOa#9DJ%tQElEShh z?Sj&^@{f~T3h2gLY9AxXj@2pKNWW-gpMW}=v=@|@FdD(#n5RTV|Ki098emBWrI+vD z-!oNp-6a=8daMtG@Qs>s+0%a>H<;)T4fA>BOg|uL)5P-OtwWHxaO0k50C?*rF_CIk zvd3GC^<2CczaP#Q%kF^3bgO5P@oamFxhqte*wOq%jy}htZ^KVxKSXF}O9BWPawAGS zGo%V~hX7AD4=H!h&w8`G1tnl9o-n-a#d@YMvqIrFF2KnkRW1e+o&-#s&llcmIxPU} zzh&qebw6O+`EXoHS?Qg61n~ykhvFc82mxqX&Y_E1I00X2`7u2p{#h_=u9+&C%i(ts z3?Y~%KoIiEqIS0m4fd-3P#U>e!={`cd9*&*D-e?@V(vRdDoNADh#_6WJhr_h;lQ4- z(Ye(hV(o?IlGk@FM9wJXy+x`RA;ozW(0$sW-PQbR3slE?le=HtjT<6h=-(!2^YvPa zufxN9bfhdTl6RxO5r6AQC@4*{8Xt95wU-5=)(c#>CqbrI*OH<|-tyzMYO)t!d;~62 z;@MdmMdF0y#GKSq(Oe{_q94hF>7HNz>aYeTcwYpRESU?-X)PT}L@#8K8UiLEs65D( zapwu)0qA-=BqJ!=Q*fFKPn8#3JqN6jx$qS0Z$`NJ#4yW|v~zy&&7zuGjCj^LnynhlrilOTk54 zJf%k5*w9aT$vTqIR@LFdN!PL^(MMU`_Qs)O@`dC}=qhGU=jMwW?7IcvC|T%|4-|0^sdF87Q14mP#1iS7{Oeth zu=^l0-Yfp|+b81@5fp!41cB2Xa&s8d?9O?w>Khsfet8~%f+chqNx<$IWpEGi6 zW0mO+9OCKVd&<;`W93##=kkq@1ZhOs2fO(sI^>UDD7Da;X`hDSX5KwHY+Z> z+}G$>e8)6XJ(d|z-9#F|b%6@2zIARwHR*mQje68^(aF6m#9EOlN+TLMhJ;;UG%_kw z`sIGoRlecU4&#DCDPCP7hLt0eG{r7%TSHObkLoOf+EwBqba+A^pm{s#yLPh91x~oT z0G&d3+Hn2zA6)*-cG^LO%3Fq;)Aw&;#kcs%MW1W(iGdo70SipyOHssW%TN`Ct3d}P zi{tZ=e9`PE8-WW5)TV2j_T8orav^{KgHD7F8pb6|3WMq%l|E5mI1$Ug6`!O7d%1n+ z;bpIz)nT%mt(SGyBh1HtaK(2A{v~0N?zVZa2B}VO-r;eN`y5q~a!nn7B#1N#r+~6A zbsNans_$~rl#rmo)l`0+J6YL!(){)~va|Z6vA~^7eS~@wpY4?}X@)IXYyZt>Ke56Ov zka(}sywO5mcOjMfd79$dlnOsh*c%dxvTUBwlRkJpqLn{0;po>-pN^Rurjcri3K>jWoP6a|&g_|E; zD_8h|(0=&7i2sy}pd~Z{$Ewpm-bI;9(8+W*=ENdU>NMT~#zw@Z(nrwub^UWFsUHLJ zXB{v*kuQA!2>m8BI+VZWl0=D$4`*WQ;QBUleu)ee1=3Li^+P%XKZ7<2^g#22)UopLf z^ltRA+-@e$)~v=wiu}IzS9#FIXzRmqGUYFHBUJ8{x){rn8hVJ z#|J&3QljY=< zD4!_1qxS`@|CnN>fUo zmSJt$wne9IcYH{JQd7P_(L=jx8eI+fC_n+Fo}H}BmLZFBAcT6C_orp&KffHgN-bCa z$D8_!2Q#CG*^{FR0W86E*!C6x?p+=o-o<5V^OQeq7XCt?#xdt79PP%jNL8?V*!Dmw z;|0fubPQ>(NEI^_X-2lJobZLuuc86Wq5|tI?QSHCo^^Zd!69CQe}5$&LJ6=Q_gpr_ z0^5q?TksQO$6$Hh{S`r+BMKq?UY*J~X+A{yU0@2-Ge4r(&^(MA=gdie(3nX&H*J98 z-oER{w|}c8D>uerY3DQnpvY+i{OI5O6~%6BaQ-rSM7qVh{by`qboe0Z*q!o0&Nzd= zb;g1mJubZrI3{1JQ0}E@XZ8_0fmF~>8vCFG)lDcUH*7e}#{AS_Euu-wR zaz9c}IXS5|HJq~bSzG(0tuiT&KQ}}abv)!bOgwxXXf53r8H17?&tKNRyv2X!!6liI z#id?K2rw}+QW#Ik?rERDhp$k0m-8i^_!8-cDh9cViVA*1J!AM>g~D<7=n+G$cT=Nu zeUQQvrQWU*r^JM@aI(V9qk%A`4-;C^RydlBaZFiBRe%-Yc+Y)Ow zkmTvMJ80`fK#_DJ8kJ)^xQ51{c)q7xJKLX_!Hs&YovX5s;UmNjejF+)gvpT3BFfWh zln*tHLcH`nw(lrbJY2|yBjV`(Cm@vur_#5rSzjj&W9wO(_Pd;Ln3?K1M$N45Z5_4s z{9zFFP$3#2?tJA!XP~@ADOwFeGGB-?ZtAl9#&|%bwJyQWQCdrk^*`!1Hhg47yzL6^ zfLvWyAsPP)$wig}cQ5FDS;cZWX_|CtB4t|{R=kp1BCd&maO&zGjwG)Pi$$ovp4%QL ztcKop$E>pwadldw3DQeDbAikwMaUIU!LW+fR^eL0-51gG@Z3Gs)u1%ekJa~|B#i;_ z-7~vowNt#|DwK`H?Jq*Bi)R7y6sB_>?Ot>rKR;n@_;BL1RUyjW401DWdwXe)B)6Iy zo6q7rRw%L$LQkcz&M@z0&jyHuxY-goE<*2d{ZDcuI^M_I^x`?&MF_9U;2RoFvpQ9+ z+6zBq!APqjF%-c{iU}Fs=C0S4z9E@I*#bvl7Uu*G8??I2lU9c{jmOOzK(C)8bvN{M zzHB_(5crM0Z-Jt07jIpBaU<8^QOB(fZxUJ`Ta6zSa-mD`UP*3PK9J$JEgDVc>JO(C zE`}@L)KE|<-}?&5pG2X|!}q$&k2zjnU%Ovf^N>sx^dioI!`_4IFr<5_o)_O-uRmbx zN&Dj44HU8F;rFE1^Y4q2)%$S{;J&)^h0FOeZ^+eNLMlkR9BwH>`7aXuvo{yn*{ z%SAFTMKo@ZCnt-2)jfAYgNlInbfqEphB$+&$lppAESk!Ke{`{rwWhAS=KptQVcFoZ zyuVC(U?GW+wbHA{1ya&-ZT-xr={4ELjOpHLl8EQy11^bWhOIpvAE!ssVW zY@`K;TtoEj+o0<7fnBqL<9|Fenbu?jp}*=dv<#`Uq4_8z!HU*t3Lx=xK5CS5#05ougJ zRy55Fih1aaK8S)vo^{WP`<>)Z@W|*g7+G#2sK4(aKswZsx-z5IVxxP-1d}w(M>^G(+`?bu}55*~`B^opUR3 zV^-g5{pqLKrorIvM>d&v7Dq{h05iAhv|h08_vjpNJ93LH zlSX%oq&`^IF4}s%_v6k_?oG6oTZt&l1Vw;$-u?S@Gx&MUhI=Ye{CuOSQ;(BAIyBNV z9pLuHwfwo>V|`HOR!SM7<~(U}zYOHVv~#X!$9(%+LmzacmNPzHJ2 z@a1nCK`~iSYH_9ASkM`NiN~Nn1~0E&)V-)cdwAg~i{K<$tF3a2h^}{*^vUW)6Q#zS*w%JhlIm*h;z8V({R)=(OH#B6~3hi;;*x;xebZhjrgvT=QB zjD?m@+V2uZ?|?|)tl4_3-keeB$sg9n#?wh9Afkc-DxP{`!N_KkBd7#^md#^$s} z>6?#>n(N|H$=XF-a=weNYe{PjJ4LLk!Ppib{8!1fNpiP1S+Pi7Y@iPUry7?pTlSk%f1Jpr zNa^kn;QKlS@E9A1)!Q*5s)k|-ouUqtirTS$WR>*@a8mY@62{D9o3$(e$=^koWZb89 zHS;$rx#_U|9O(KW6)}CQ^7wisFE+Ni!~fGg@%s)*x2Y5I$lMD!QWV>&%8(1Q znRF|*#1pMoL!`3&jcY8)$#Gh34j}(qOw; zr!;`N0I8xNB>G!k`#0dVMbG~{iFtTmQ#sy;ju;_*mZ3*?B98L41c~Ju87VpETLbf) ze6VoRp3CsUqDDwzk?LqnSC9m_&j0fv0%!y+11BHK0>=>P8rwQA35;@q*g_~$?m@Y} zH}kqLMIcp}T;5&~T3yqJ7?I6gNRp`^aEFPb77v*BKyH?jE5-&QZ)xc-!;;&L%O*d; zT**CYq|qrQ1ycD6y$|-^Snlu0*)=ogK?B9{-(^uX*!$E2G|2H>=9oP#k+h(_Xd6JY z7q?SYC@#|aOu0&sUCpbfJuu__4%|EfB?$~emfdoL;s$X*4&AE!@Oz@{GI~Mz)o#=w zCjTRM#XI5v6H%k@V6JFaD6QRB1xB2CiwWcWp6tFm}U*xJm~T7X3zHMQ?C}Jz!rc*t;TS zx(pJu9&)u?d6|Mso|Pp*JsaS2X$aD5)lWBw;K|{;-qP{jSZF(uQ?Nak1j{cd5uxnR zyW;msr=5hZTp$aiFv!TLedwDyh^e>^cN9ly+irjXxer9}8Q>e{| zs%6mPm-ipW;Q#u3?liaV>25=YD6VAG4E|l%DW?C`WUKeNC;%X_o_G(nHLsR%GU{-3 zsX7&!>ug^TPWegQPYHb~v@brKDc}e%!rt@PDxALC)e|?Hw`gNC5nygrN z#joF^8bFdgw|b}u&rD9 z{YEO~MY^cozdg7$sjl)VyfxgqW&B_NrhGDQJBJ~)|G!`E|2a0nN0wZBoqx-vnQJd3 zU>W08d(>Oeo&l=s^uGq^&v%%#5cFxr>FUhV&_ChztEs|I^;Q$_ZtuMQGsGrC3pCc( zR##?5%6X6vt-W8PMcqG<@61HnS};&<9!^*do7dn(d~+TGkgq}-XF&YSo`Jv^KB^2y!YL9a9@eQQ0# zaTP{{Dc)d2wr;36c|kYhZyGsr#eI*RS{1SPSuqoPM z_;w_19q+@({Qc_?u-~v-7*As9fGqaj_upSQIffY{ieFmD#ezBkBYlB&5Ty(wo{mVN z<+xt3w?uSDU3m~cDtLU6QHnS7>DbohQr=-U&1_5iKSuNny4#vx;L1aaJqhhuLdy|0WtLV=zD7{v^${+cr9A z9>)@;i4f+1;tqM>^R-TSk4Oq-@aYZ@Oe2C+VpNGZT1+JkW?!w$UkR?wWNmP2(inC$X1E9zlM#xqQ)kCysD zstF1u01?~1Ju1xC!0WpToF=-=Z+{?WKQrc6T7TWq3v21`Y=onu2i%3TLHCeEWxQN) zjJGL$3?v(X0a^=tgPY;KaG42d8$>aZ74XZ)#=4$|+*&0y_Lung zXCt5En8#`ux&E8hNRH=}`139|gvuobuD>Rl493&$lN%oV14Jq8&H#5h0;> zZaOx^^<=E9S^d05O$w`4Y4@p5xIHgw?J=Y|AUi-?l0XgN$?b<{oOIrrJ|-XgR^LI_KsB zmd^WK_OJ>PE&GnZvzVLYR`+37sZDiG`?jUmW=8TyTzx;*N=I1dnlWeyXHMTfeR})O z4P$p^?%`945f$73YEjggU&d1<Z7{?copQisiAz8$kJk=}=9k}QZ(n(UJm?(mh00#sWi z-LY=y>v*4x56_3fn7vKqs`Wv{yFt644B^Zbl0vTEg_VK+tWpNn{`GW+7s{ir7mwUu zus6E`3c=jIgvls{MBoyZgC76BFV|#J_5fIk63mJ~M@hJF2O+1pypgk>ZaWNWs~yn< zRnsUK4s&e5(kln&I}*<}H2Tf>4E|PrWA_sqIocy1M>d9!|GjzDq5=9wFr)NA#GzXH zS&I)7+TXPM4x;}2b==`q$DPMyYN8W{VoC9~*zxPJcD5(|jzON5d44JN6@Q z6E?{>d{_Gg@5As>K4GWNpD+C7GJe7Yo4~2-X^N)~RsR9BUh{9250LW#SVD=yCxm(- zaXVX3J0a&o!Lk{mrER{qwxZDzWE4feT)IMOi~40+^1T*xsRzI{$%$~di>sI&g5;wB zJio7~w1A!4m*YMBrx;0#>SpR$dl^k^g@r+s2ue(p+oq{`4d+OPKsUm{%W&~gcJ@mj z9{l0uS9JlKLj5wi?MJYy_kx?+`K*NARH%5tldk5X`&~1{>+L&!XtPq!0Hd&I%@!T$ zbmOi#)qRaZ+4rpI`94=Vt}I~LqqkMfik){iM~9==?nX~@)--0gy>D4XGk%YDl6Kjj-X4bR~ zG!gzj+0Z$VGz_Ta5a*WXLy)o_faQVn?UT-!=`*$;If_=sHnbu%<2cQ8M zKl`ER5@bQLJf{2%0yU4k&pKwA{=IahE>8O%PxJ4z?X$>to z%ez0GLZkvaW9C;Zq>uG${Gb1H4`;2OgnAQ1DwTh48&Mv4ZMaQ*&nuCnkIO+ksG7m5=f&@^SpNIRgsC72{GXp-^8iWHFqHO5dG*RhXA|av4KFiZK9DcmEcW*pEkv#Yi zpLd zUHh3ob%^~Z%})2v3s4Kxp+maR*_$EmbBYGfCk{Ug16#%>$8jtM&Z9AU(CyZ--q6E1 zCq91sC|d3_hWXre`Wy-qR`^`OlQ-xZ!}hE0Xx5PsCa0$D2(O?O@I5e96i>`z%?AJQ zwl?<+fN{_-ty&!UYmW}}-J*F(Ni=k?(R;_7rB|{@cb=IB+H)47f}R+$nkV@9!Sg8& zao&AUB5Vgr0lVoFxGGHw9}Tnf(on`;Me{amH79|#p>XM|t=y;Bimd?Qf>C}ApQJb7 zqj4!H$dY_@xdX-Cxa`cZ*7M-9mj%>|g1mki$uWq-dqm6EFJo>uSY1<7o>+WT-(jCM zgO!Vwn&V1x$qcApjX)>}Cr}=earzAukyxzY?erVaB$GQQ`)q{M8kcN1jU9qg0ct0z zV-sw}XS3)EGkOJxwL-~}j>Ln4Z#zZH=5307nS|45`-S=PWU-8o&SE~Qj#%(Iinipx zlN13*<|EmT1AQD$U4{u!c{7FwSH7L^C{5Guu@MNo9@Ksu)UT?YU~sNAtJLGZ0N50Z zRvUn%Lk>($olf(svb9hBB>;^W!ME{_ia*ZZ(Ysd+=94f;hfhGKJ}X}jFq_5N9|po! z2_!<)T?F4Qs8BZV3KD^p*!9_d2CLD<3zFY3Too;3a8+Sx=?~=5xbc{OrQSh->egRu z`pEq~I}jFbO&D(rfDZeLguHwi)9@2waKX2BPL1*BBlHdyVke2ht013-v-0~z=#f%a zT3J~|qr68#c`G$18%%M0v<4|eBuwXLE?A(Bt1=7StqJt;V4|d9CPpl>6v#N8Dodtq zxI+U{-r|~Lm}{D0X~@DVBf)h_;Q9@PsR%Kw)f^3|84>nka$^%M&orX<>cf^n&0iK` zZG=9jbi$peDNI0pIf)klat4E6p!?v&3#6Z5u_&PD4`Jf?sPD-TC*(q<0rkD08%k17 zdu+BlADkfaB|b{wZwa|etE-m;e38Zxwgj0(m2}Ots45{UlapPXj*brQLy(!khpQnQ zCaNeVj+I)cDCQnD!%}DazYx=lx#&7JFaguvqrsOy5t2$^fPfR5Fpc1>H%L9LIHE!= zP)n8s)CckKi7o=>QzfmG4dE%7-`n0lF@BAuHx&4 z`$gW)-@2R`{PVTOf+*ReVzvb&m^2d_HaQ)K2+{<7!d}PKA1PXd;42X#Ig_tE3ieTZ$8b+FH)V}lYBW;G15?^#jfh}H zo(+Oo@z9#;vrpz!VK7NBH)Y*epX!k(Pldgm$KUoqRXdgT1qvxg;vsBf+c%<|O2$0zz&a?{E*7ayY581BDz}Hz+M8Se04}5f%k@BrlB?k^D_q#B$WMR4}a6fkc%OeB2y_M z)`^ye7D6UXK3DN%%t3)_qkAH5j`|aP1yI0e<4$!0ma!-{Lz0+a9VbS(-vBz1kH3yW zT*+sxN@v9p!1x|N;#0`Oq{>OD972e%L^TT-6+@G<-j^DA!LPk6puveogPsfp$>5C~ z7AjjQepBWh_=C2;RN%+f8R)ts@D~a!xuA6CCeJqpz{~Op{*>XpF8ElrIKnHcDGlKB z@qlo6lCu8s_cwrpMG~Gsm`W1NF4!fSJ=X(*^=DHAMlQfFogG3BDJc#Mm{v207pV!1 zSjjYgK0b4DoTR{#$mL%evkXjM5M7D*!-8Y9U+tKQ(a(k9)K@@E9|Ia@AiIi$nHt02 zLHH~(xd-#M2>D78F}Z_GQ4J&yh)~psS6iOLAJc45$S+52mHdLs0ve?;Kd7C6b7952 zT=5`juR09VRG?HEutfL@_9jj}W0a>XK)NKoP0rQtNOxwvhmUUw@rLNj$Vg;w!hyI) zEjZFOQPCQRx-u2gDKW${dfeZm%;zxEXAxEiL?8ibhd%oPZJUQ~2}kvziIOI!Iq@5S z#N7V#q%s=z46Xhb^_E>@ajJRh^|9rSAbG2IX_fM`Kx2&z>{2o;E$TTELpvJwXR7wC^;o) zA~g?%j1HB7cT~XvA%1hL-yS-!>Kj15wi?OP?MQBeGh+qrBh+|0s!?Vntqg^bf=;sx zzEDZj`I*+Nkj*b4Rz+!rHx!-Cmu zVv~X=kvndwbm62p7Z|uBdiEHz^HiROCV4X%`2UevO+2Yc%=s>uM{ENNQkG*gW5EI& zG*kPsGx*cNXb3WMVVNb{)6RSQgqrmzR{blgB=YnK<^o*>IZYKS($Zr0;#Juph(NBR zx}%O#tXQcxvh_tY2e7y)gDb+;AY-vo53(zgwd%ZZwc`Y5N+1-}Bpgz3j3bg|Y-%xB zH=(G@lOHJ_;TrLeL3*R^LZQh<)o@d#M$5#xu4;VYi;B;8kYA`T6Y{p^u1BPf`Cgm; z;=CYxx98y$U>`yx#DR$NalBv70hFVC{0CvRAX++4@4;SakOJ(YXSbf3z}1tB?_f2J8QPU#)gQcq0XBgV6BA!rrkqH2U*$(edb(4$6JzckTkI%!xb2#A{4RL zN=x-P37@xMN|10fz&)8=&tpsLYdyARY2USDsOc13jxD13T0x}`p>i515@Mwa)VYA1 zO~6LjFKL)s|M9|3s=A|!yA=$Y-b#Ctbkokrnd?*V7;!{q7McWxf~+Sr?y44~VpqV} z--`KQxGx61CW@%7JvcS>138jc6&;LeS}UQIi{zi9$l>$hOiP-fIOQh>6QO&+2vTLX za(7na$fYrGmp6uMA$Grv$f>-^_b6UjG!S$d@R)d#&VeSd{pQhDF{=-EeMyW|VEhwB zy?x}YhRv9B>GNw8d(A=CLSzxVpWfR9lDv_HF_>B$(SSW@F;A0Oee#j*+t1FEKJX9d z;Xdl=vq{CUOe16w_O`>HD%_E1L?e#C5}M6%5-f%zH{rF=Jz zMG#VmbdtIx;x?t3+gyx|ddr#L{NM!ygTt8$sVt^rGzyxy8r9lK3PA4o>I&Pzh)4#l zPh3SME&XLULZAT%Sus(QnH4Yrixq}RxY6^jd^sqKT*O#yMNns?6QirEtBFYOEA(g; zLbFp~8%wbWHD68;FX(Oeh0#g~@WKtA8fueaHHi)1GGFAUPhsYxk1SRP3zd>+?K*0b zi#CQ87QTZ3VxlopeAbHl&tJm1xE+4AUojDr9fCnOu_Qn7Dzmj!NFAtQ3|@9MGk?aA zn8Xsb?J8*jY;>V$Y=HErcB$_m#0b%Fmn9AoXXm92kf&aTfUx?wqP5w14atXrQP?_PEqLg3~E* zZb8tiSV`!$}2wFJ>*swelrdBYk$N;JMzBCl1EtWo@)Y`^1zbTj~L zYKD!=z*|%eNv%~)ht2pPeIvs>v2GoHtYUhXMhZzKgXs1gqZ$D~5X z3PR|6(qsVNz)WMZ5Kxj|_ZD09qOlg4a48G%QCLVDAdu&z_`R4b)k+zI%TmV*w4H}? znN{zH?a&epemyyJ1DwcS7ORzG&P8m&I4T*&zu_l5XWwzklXBF9Le0NJ3#fz6pZpgn2AV1ky{n9hWewCwke zPa%*jvxp7|SUGgmRIh{Ivcp#d(}_Jr{Wy>{F$tH*%kT13GC)7??O2A9hd$h;zUpK( zOa^jLF5bLTAt51AM5FV!baffTEW%8GRwb!J^8Ni%pgWu`z#I|50rZsP`4gaqJW=s_ z4+W4T9HIcAul4|M@ydxk3!UCM*C{!N;7)+Hb9Lp4UqJemMbPZ_waF*iEQ0B8=*;waWlMktZG;O71IPH$#}I z1*3Rq9jgggtG6Tr8#0N++n5f)GiEL6#Xj|JQG!=I`FT+Y&*^O23ZRMFt6w3>&~8?H zHgJhT#3l$ymp%c9Yz_Fju90lwqzs@E2JT-@P{k2Ed^5^CGin35x3EG<4msE-ad8Gr zepoC;I!dxMpAPT9#%v2vQy8hKYr#e%5b`KwB=;ZkSSXm}yKgf}8n3Mp>5?ReIt-CB z0G+Y@{i$`;?=emkve>a}LF%$qh8DicY)w8XK?FzTu3{GGCFIYcWWLDu6QLqDtzhgD zN%2Y`u2ulb+US`$1r@)uq{e~==eN@{!;K+0umo&E{XJ8jD=7g!CXGGy9F=&~hqzD! zhYL=)m6&K75fYK1x_wXjl+?OM6A{`RfXWcS&|Gl8Z^ru$;)O)RYqZKN$^g3xbzUX~ zM9NA$I8KrzWQ+%iA&g)xT5$PiY=~bG`S6>SSgt@;T23khl8IngX9O5$3Fd}*cx&62O*BhxCs*q07FoGPsTa$xW@N+)8TCc>97n+^m(DO z_grrr)`!dp!DV@JBelsScNXiwrny61)7zjo#vJWOu>HAJMt=`=Lb6jlH**Fh60~>{ za|ZWdbG!zDc&>p%x&=tdZ{rJo-NHVHesrI3PzIMi(AQ;aJ*R#Fun{yX*dmXSEXSdh zq~?5{`d+X{UtG-WFK-C@6j@DuwncFUByrpc*+6DoW%hYD=niB>M`^|H3!iR~UmJOi zQ}+XC^zRF{Bx7DdL(K@o&=g>PFGJ)PvyoxY#2}fpx!!g5tam4SRUYFKy++8YNgIFj#Ba% z;an0hgAYs944=b<6xEL>ZW(Pp(xtn=XoXzSwz?CBL3TL6Bb3V}s7WJ1g&4D*ewjaR zh;|bx>qPH__u!cV1!WG9fC>n=#31bK-5Zd(wBB(!Gd`J^L^M7)nC(96^ufo3Ho%9TveEB)~ zN}$NoZzwMiNGs-4xRS?5c(a(W{Z;_KO?bLrf2C_HC zou4DhCH`rZ>jQY)8WT}PO(!RLejCBBKBt@_gf3x^P&YS^wDWa=t*lO#l#8|u*(K1Kq0`RhJv0+usC?#ESve_TR&z1lt zaIHJwc6K3pJbUZbLW9;RSOR2txPl_ZfG&On#L1k!S~b}R74FsES=cXI5dB*WMKpd< z?b|-2igcYK52z}b{6-NaOGI@;Gb;;VwoFK!DI!_`@*z1fPmd98S(F|UbDj-Hg1#Sv zU|kYl-=_>+mKSZXU zENFvBi-00!u&?MSfYNC5o#btRniykAT_KJ#Sh3XsIz;jTKh zluu;BU)2~>1-du%Ar}^Gcm;276d1K}Q=byd{9UK)a#hhfM0rHx>C==Gbj;JQAk!a+ zz9sSUDguPjw|lx-iQtJ_7-Wu5=Y#w+O5VAp@PJ6rE^1gFUiOL5s{JkNG|5RTjQ_`#-lOGQo?km@hwYIkergr8LI$~*yEusFdDnn=Z#;s8$OdyhVyWrs|*w{A*?|V_+W>r_z6H9kwY<(OZ1{JLZL$5|ksj;llD` zH=pAgN?Qsx{PfZ=*n&8#EZK}CJ9g9TNHY|`s)6hsoPf?|9V6^g)dA$sR;CZ{ptz&Q zhd`Q0Dt(u3mNN}?yr)erWwmLs(Rx|2%s^AZnJ5wiz~c#LFJM!h@F*Z2aVhOMRzXP$=`r+Ez2j16mx3YrY*f3;vr!JR4CZQs~qWS zUjskHrqXxE>N7`G2au;!(wfB1XV$CH6Apv)LHyM9pOR(Q(+2ckYenmC;S6ddopy7G z6DxBh<5$+SD^!Qtpo;eMw(N3fNXwchPMmm=TDEb9Qj-8i#f4YD(>Vqm5pIWrvk#k} zH**}Xs@)gYjSi^Q31pkBpoT5@OZ&qlN-tV&QKuB3Lk4Yz;V3Pvgk7@T9N1#~z5UK?9XtIX;Az##jVJ-!FG2_B zhu9$Ci=)9Aay8yy+9GwQCJ#W}f4?BDbBhI70T&@WtCkD}#qLR!I7-CYY{g+C#FM4( z1o`=K(`iY1Ph}02eN38`(%5Iuw?O^VP)eA=E zT(%B6vAG%q-Wv#QMOqpYzJROsRIhsA*gW{-EBG(NT>1BsX+za*VUkGuH0^?r9mnCL zlBoD_YLN0L3l=0 zt*YG{$Enr({rmU*q5~}oGkZ&h($d2-es-3d)VlwuaU{AlYg*%lVDD<9lk)2FfkRHo zK!on&?YFBte6G}qYe1h27V9=epyiEL#=}JiRl+amaBAheO~=>p{2d;}0#^sOO&d3s zS`wsM^{lg9PKuk{-FzT>Zqgb#kH%uP)i9W()!W(m()%Xvs0F4@c0s6c&;Vg9vBp0q zn_1b{$S2_Sc+_Q7;b6R>c--=Ro2Go!d_~}&hiJmN9%rj3rKmg#)%6H~?Wf9^b6@q%lxbrJ5S>KS|(AG)>yHmf|Eh7c;Y=L2RK}H?>G?`L0)ubvH-JgiMi20Asw4M)kuC+g>KA!yd1!x|@$Kuhy?#Tnx zJz|TVqIpY_OJg}zTU^^v(KiTeiI2LDLCgI;Tt*RkTIZ#G!o4Qfe?#aJQ$&d_KHm(N zq9S-?mc4Uui*4?5$XxTEiK@C8NQ%{uPC3OgfL*~rpH=p7h<QZdA3=Ng@utJ=_s!ow#M0Q-GcruX`oG3_MUI07hZJt z0zDd=OON&{tw**Dtf!|v?%1<~n!Do;qV;$7T**;xJ|GNTM_v~jo&gXgS*RGhGL|2? zp9_xp`<=5;c@*5>yHdyv1uov$B4XR+0x~Xr7s$oYFMz7I9@`ses-3bi0HrGN>o{GP z1zCJb?ws(G$$m`1BEWgG8k-@QPi5sr_JCP-9VBnZ)`3nFR9yBbdxLaot85HxtyO6s z09R~eiVPZPn%2{`#q2zAs)BMe>)=+*%6)j+!lm_RQT4MR5YKg(+5w@*w(SqsG6VG^ z04tLI`|C$^CA#Wzgg(WhNETNekHag*VO#oVB=f4>5gdH&lOA_??a5&a)(caEF^Sg5 z_kzTVoBjj?qWGNd&dvk`HFwsQAVgd$FMrK0=_KZ|Eaa1AQ(R3X8sZJCXZ#za!6A|p zb!<{Uju8uB)p7IE%0QqXjE*ye!6oz1Pe(P1TI_6|cI(&qgfml01A8)k9ZaObFvu&9 zfA~4LuJ#NHCfl5yWvW{>K)g_pMVX>(3J&QY=%#YYi*+3!uRF3#6VO)qe*yxWr&!>Y z7O}Ch$-#b@Vtax6X0#fDxN-@^z8K361!{|cSz0y)Cq{CQd-mL?Fcc{Zm2( z%${)@M=lO}Y9|ka!;~Wt2B342M_pA!9u#KgNMmg88^xev?+ltfXYNPjIn{yR|KYp{ zf{lk2!Z9KmAsoHKvPPXR2pMMOal_@d_e(y0j6^k*vVyZolMx-hp$aA24}@(PdM5u# zec12WAeq>Hjs?OKcIXN4A&hYyy9@P{@~l4I)-wja^zE1+2{Q(iqAu2n1%FUQD07$?BGj@mV#Q<6x`ARsr}b(ZMT*aK<#p}<~$%%rWrSeULc$0p!5iT`+4u#p$&1W9_U z17E;7janxO?afP7@4fEaRZd?v zTb0FKgMEqi0|)Hov!lU53|JY84TmVw!2+J}s;p{^#j?GD`IyYSp}m;9*mS~B)Kd>& zqnj+}gFQ*8iJ$V!y;Jz@;0_coZ2>NeGNtt4JIH7xKj{D~4?{*~6L^nYL3H5a-2T#h zLI4_9;It7f<4T00K=U+xKLC;vn10^ubyw_x5^5V(JDI~8n>;{uvuJ@snkjILuQ6el z|4>K>uj_A@&AdU&VsiEwyVi7`omt;La;K$mrK}AH>Kw!{kYOfw*1PNG%G7TlycmdKaF-QR_wTVF-y21K1_=Sv{#-%)$? zhXlqK3(pee=qiyol%L(0D8GSv_XuwI4AP2G?}J*RexdtMqFP!!Ja6&{G6ub>v;TnL z!i5fCBie%PAxzzefZ76`BRyNNZR|RD#Bn-HeSLkmVg91-#vRF7QCQdv!*DN5amh9I zC^7dpE2_~7^DoYmhIz&Z^6e4}u# z8SWxp`L0MQ`eOo^m!vma<8#F!`dTQt4?$qIApmmrO|)GuFs;h)f_6o%DvZwqz#F3e?#k8*aGEE zjt@kkn6ekHSWrWkEpCgh}lX_p# zPJ7&{Egu#ArZdZLI)1WwhIk;$C6sFeautA{Kv-7Jp>>#g27Bx)s^p?5MV7ueI=(+q ztbx!+2F$opp^`Z&Dk?gthmm58-Uk-f3M7(Fc{ahN)V$oveTZ6# z%+X(mf`ig9ZlP3M!J|^OstC*LC=XFPBWg8)NFGkc-1K|#(p#wRgFww0iO(9hwi^{!Gw}HWv^ZW0 zhigd*4I5k1*`1ElvIMT!MA;Ua z%>w~U6He``DD%BYtS>@w*3qBKCWhmumI6^~35AEkAj#T|V>?Sw~uBtBBaGM!WKxn0BV9zvvi zjH=Pm0EqewsOeg7Os+Ym#Z@pfo~PBo&tNYg^1I3p&1hG}N;Nfv`H)W-s+t!_1%RjO z=;^se92lGwhP!>RvuJ|Eh63Hvsz%{iQv_CPQ++jv%qOu*`aM1ISZ$4cPo+ z$Bum*>t|p}^q(;5^#T|Qb>d6cudkpEu*4s;)vX7A3}LG}TD`?8OB!NdFb>s;0TELZ zP?%_`HxU-`bTcX1Py`fDW>k=zTqS!(4C~L2F2E)X$iD<7mA#&Zskumq#2HubtIw&d zkAhQ#@{@=Tm#J-M3o-zhZGw7k6*>ljgFub2sFsHRl9W)zhNwWqEa2c)fm0Tc&aDgH zf2S?;r^;XT>}P6?wb=5QVNxA$&KzE+ewLQ$*IiQz_L+Vg=8LW!k435Ba>2pmLQ z4J(@I!MB#LUR??9x{%unR~IblE||Q~kt!2a7!?&2im9KAYI35Q8y~2R2>nq!V`no2 znpmRP0SO@6l%$B&D9+r%_Vuo*n12pJ)DWDV>ubHbH5CHwm!YOALvaf+!|c@R@Kc7> z{6VkAf*wctRWn4XFwEX3K-psivz)MiBe9(kdo|c$8fuy#(A!|+)}$;`O>J!x zkQ8Kv;jz9{q>)Dnr9|lSrPS8(Z2=7T=qG}6+LK>rv~WvPoy-PMD3)!?))f{eY@CD) zRI>IwT(bp;BGvSCQXLyKR+a(=QY2CXP76+_;Bv&xC=O(5__N- z4rz|0Q}@z~Ew=@OJod3q!cx7CDhoSMSK zPen%%&$CaOkv9=NhLz0_R0TFzgiH@Q@bY{6`)>i&8~FLO*c?IKZbwJQ=-H|8`!B(| zBw9nSdi_>PG{K#*%3-z55B5e#+N=XY8Kw-e8LM^*hym0C7$S~n%Ou)93#t(Zija{( zlpLRwwhvJ^`FDbrax2z^i(HW^Le%C7*WOD?2RH}^NXXX+F;npdjC0n)g|{@M_JS#*VD$X(B`94%zBRrB;JJ%RodEuKCEv#J@sfD! zi6-OK?jtltXPqDkd8N^Gn@a1EgS-W%=71GyeQTXJ4u=QeyV0r^2LZTB$~TAHeW0Y= z3Dc`mo*r<+x8Kq7hx33D?rs5dcc;;VqKKF_R4?FD`;B^J6Dno8)fW*==cj>SfRvk$ zw&LS!l$a?5&j9N5k@Sdz$F#T!XW5qzxpzU*A?EY7`&(Fh7+R%&E(V*4Q04|yK&wN1 z__Aak80#j1A$75KDs=ow4TbxM_R&N;i z#xB>kt|cBPG4VqO4#{SgjW9JS2D*<81Y4Ta(xs}Dbs>w? zV5LRkm?i&xB4~Du8?tE6T-4|@qB@B?tnE8ho`GCHJi?}=uy`6z!8wV9+^R5Wb5 zx-lJv+mgqon|O|lhdoaq9^nmhbrcD0V1k@?@P3IHnoLj^30e*UeSTbo0+ujNCk_ks zA#lB+figV>QOGk^U^)jQfmSggGun z3>meT-yyKZ36h5*3S*Q@wA`)9D}h_k6VR%r`t;WdQ`iYMW2v+>&YmZSh>PgiA{o({ zpBZHQ4uW=ja2A#k6J%$NpM`!G_-T1a(i*-ga?yv&5@mRzDAImO4qsK5+8`BpOTF^w z$i$#Oi7@FS(h@SyN$s~}qv6=?jE3gWMIZiE!Jo=h>y-9Fie3bQ*KNTp4)p-(f_@!g z-mOOU^@#KljGUuhm*hAKv6$>Ibg14PE_RMIr-w^{HD<}v%|F8Bs6Vj65$hkU}7nGB=bgWTW z>&lnXgfBwVfPnOK?ET9ZazMbyq-APRM!A|_HMFVM2;)S!`4#KKc8O9Ya5GI5Z^cU8 zsBJ)`c9sppfK^AAv0@@fAt;0%fogK(P8WsA#y6f99s=e#B1LfMehm213qOFB1k)iB z>T(-ve1bMa0Lon@>3ELfs_`Ij(qM_*1ewFb6Gi=$OwQCIsc5 z#LJs9A{%39aMb?}C4VPt;}IhAN>$38|Sp#xeNF)1%0WU^N4+>6Qs zb+IFX*3#9hLtfw6k5sgoI(Q?qhm`L=pj?W5JN`_4#NhAeAS14$UQdkM#M=m}W>MgX z0iIl)rg0GoH?g=EdUc$@BvxeysI3H@izw36n6Xbjje!fL;7}~u4PRA~-;o6nMHSNs|Essj{gPyP6IW?q)?;9&Fm8Q0^jS z5w(^OTRx8-2vF!UV&I6wp%vj;l86V>9vXSAD7rLx)xG{fCxOrD(_RSMn!y1s4QNP$ z*i;0^_%)o0ATEtnZJGn>tPQk0!bqL25IG^Ib35s*$SidCgSmD0s52ZZ^A-evAL!vB zF`SHIH~Fh$7DR&6U&GqI84r1Y=)l-Nf^pDW<#Zm!3b=;I?dYGrr5$XVqWxJw5;Ood zQZ`++bCEEN**@OhFvhAj?U~%6_v?}Iw#uvGH7Q#nj;8Kb46R3CsF+-VQTOS)-o9y( zGL25X6t*EVU~|GqG%Es5uA78g0z^P5ek45KXio$N*%{*O0-pL)uK{OrDJDBwSokS& zw)Te+UW5U3Z(chhGVLI!RgR?cu2X8ZV1tiB9YY6Z63q6FiDkdb6{XJo6rLiGxTd0Siz#^8u(xP}O=n%KUfms4f)_%H+{I>m{& z&u3k);FSmu0@lI%z=Oy=pEH*wLyeRmbv?InY9wP?F?1ix=hIPiDus9_cWjVF-kUSC zqVW8D){6vb=ocB0GH67P&2mft3~53U68sglyeR65tj2(8fFH)t7kOCx?zomY;51xd z408eMQD=?tc^Lz*j?UbIt?ep8Yo~h-i%v10$fEg2>@-q0x$?0TV&LRRC@=hw#7ftX z?}WV#>!K<3F|kDX6he-wovfNDAPf*cjq;tJx`|*%M>X{CakzkzlK8p42A>!Cpng!N zB^<6Z^s9_?EtRaJbcngrxcn=J3k-%M~)+N`d zB!HPFR{B@||DqhK4I8+oKnoMOiR9Y1)|oKA{NrsiKLd8~u_K+7?8ungFaB>ZeMftY z0^?j#J(uybFekmwPPjQCJtC)E9XbSIav;ft#61~mBXWeK_FOh}G+aR?WW#0Zvg6mmLj;xoxZ*>}Fi$Xx(539p&4%<$3B zh3=I2<~sP3BkGgm@jWWo9B3(2xSQ{cmtjan=5d&zj2jbhODnZeN+%HuQQx%T?pxfw z2n{j$t}wIa_UpN3*j<+prWP79cgNwAOo%e|MRMiKjKVlHf!ur%!LmM|b*3`KjVyaAt~SHr?jpm}8)due zsih|P;lj7V$Jb0@F0`8{@1!~dulVhgZ$ggVG|91N>L(l+he6xKO!R8X2}$)bvdK8A zQCW;mYqZY`k(rt*#tf~Us+t}hEl zxJz;xfM#D92f$UU%uP&`k@Fk5qGrbNKjtJB*jYc0B=VTDloocL7SEi_tlf&e$hp5) zJi0|$6dFpC|FZ>*_lY^3FIT^mjFDI!^BK*6ea#`b1Z@Fk86`MDC=%gh7Xn_&lf%!RTMaplrEl?8&PhsYVIJ03Ih?EB=P3hJ*u28ZlJV|{ClVo zEC%r4%Bl4M^r~34k72@2wINrX>Kr@xakCNlXP`2Acuqrmw_6pFT>QdT9tnx^# z2C6?5Lt#JuWxTFXI<7K5k=Z=d|nBe6Rusn7TM>wIOH=KkRUdY}Jo zXL%JBeM;_J#nmRFvj9w{DnOaY9Ct{fDn>vi z7mPls_ei9M^J6*oW~K=i@_5)z1<0_%d%NCun3^J_=x*E~7&y`EF2ya0(tl{Je;GZW~}Sat9Blo~JlrH+qb(?`7`L7_z&! zL&i^}3{w~3uADItVZ(KGa6a6MV~^Y44*R!c+fPf#5cTzIymk$2wq%bw!u8r2GRobT z%UeFQ?twM;qdp#a>0#Bqhs{k7TdXy6w!j}OnN`w?5~~y>q-FG0$*z@^UMnNFa@Fd! zt5&VmYAgIdzhLKJZe{5~zn~zoN=`yXRu3PNTeVh3dgK>|T(f-e3wrboF0KdH9x!#W zkT~LO#j>=rwOET@D~BBHETqg2NZ~I{tn4iv=wGB1Eu~gTUu7<@D2b0YxV;d;^;z3gwKhN8xc?;n6|3j}{bxs-t<{#z`1yn- zxRAM`qQU`*0~U&M60&A;mJ(}BO)VwNWMnO556H+#<1g{SnXE%BE0!6{7XRbc`y#YvxZLuglcyU~%jj|LkjWVN#9m!Ft4cDkYE#mV8O zJHy)k`Q~pr!}-MhuIGhIyYh42?kw#b9q@ASOL~O`U-&a&(bL;fjvX0Wa=w22nC+D_ zgDy?nU|D&2S$M7Wvlf%sv)5W%+m@FZ?I_bN?(_P#Ln?M~cPDpUOCP(XG}cAq)JHjs z0|#E~Y@Zio@$5t0P4_Qnk`Xw!$9Vs#@K$aBfS}Zinu0PNQp%ZfMaR7AOd@%AZVuRJ zmHXw}(V-^~bEML~YdRc_e)`lU3n`TWSVc4+5mgy+!C$#Z@-SW8b#MO~;aqPS7FrR0YZ3Z!_LBtn6arA_MJ~`#{%dAD#Rwb@IifCI`Ac zWNeeK!@|FO0+P#L3)(%3J==`o-5_#-_2Gp3Cf2csLdEagO$W^N^Md@(FL|}{W?ynj z`ezia!uq15{%{+)9lUinygyk4ho=CjEQ^SUP|G_KnXUe|e74~flV=ZC`aPPi?%uH? zM>gwb`s|kP-hHpPoQVCwz4=_%aTq6?R4Qtm-oL4Np9}O%&wEf15aPGnn=!nhTV&zD z<1;FI0uNfIrG`5@Eicd>pZ2UVy*J7GfY8xzcUl44xITQ|YF5ih;ntr7Fx`0_YK>DC z{U&?dz5VBmJ+NPExscO_nGGTFa}nY^x{;>6;EmGB2Ja7kK|w)k4_^+p+O)m&?D&0G z%Hi0Lyk3~^H~negEgtyha>U)z?_5fxp_kVju53rMk6V9(TFkq5TJZMbmaX9qoeTKW zpR?|G7GR6tmeR+pzW)gFTJ=kDmhQ4i%hXpJhQwy#`<&cAPM^L-j=%o)scFxD;Ay zD<~L#>-pEq>c=}VZPNAq1}x6kISEYe_MgC8tD(AO!lv|&rVFfik$cdJ4Dxe0o`#)( zk@`XUDXk1Ve%Sx|1>-w?Z@Yz~^&3w(e@MO>?; zp92z4&dUU3!HWLHeW&sbSC%{}jjVS0{PVzAUZJ$?7FCha0kWo?46cp$V3EUdm$G>W zZzOnN`IS!{JK>o9)|>MbmUunQK9_RO(93*e;Fc?Mk?rNK=`M7;F?=b|aNvm1PX5s7 z@44*sYRSye+uIZo!6>+C}^ zLf6`g22Oi&W`dG?M_l2or@<8yjy&?dslYXOr`%VgoHXDqA3wvVHaLJ^bJ6+QFB9FZ zub(o|m3(Ozz&%)Rv5JfE?DZ#`N5`bS>#?Ik>b?^=MT?EAsIiOD-0T18-Fae_;5Q{5V8)p$@4XDtIyo+zb%4|dO0rd*0fKT<|3*I`*uvs zT`+sf%JKUWW{I1136C)w`(p1+y=W9gaz_i4V<&7}2NSR!QT>;mlFNn`+rtw!Z0QdD zpeRp~VPkL+l$Fs{Pc+TgQ_LCFVh z&tr=X7q0uUW!zZLX&y4aq^^A*>XuR(ysR$yhu?0vYuZDH($&8LQ)y4qQu^ewS!mJ} z=UqP^sW7>pQT_b# zb7q*f=a#JNfA0OomDYYqmw)1Ho)5pDcPW|qt?|km?{jV-_!Ktg14+on_i%p}2i@c% z>gL{aJmx)FnkLpfk6E(Zbm-u~0oZdVC{=%Q({xHNlHD0Qj7ki3M_nRRLzV%_;Jd@$BU{Cyqr|GYk zH&$o5MCIl-$NU@vWWXwbla6U{ zQ}^_@FJtz`Ee)zyg5Xiw{|j(UV68XzkN=0?&Yh8a$KLZwt4MD<(%%1lhxhXpUOhV& zZ^4YTS#?uvLC}Ts=hK?;K1>wleswMT_0q6e%7LqoUr{o$GXGT9*z`%is{8Max8$un zao6N}-%w>`?xPRCKXw#unx-${o)OpiMR4p3l{D0bl2jnbaJY2KqS%gk*bBL{{>-e! z2IR8hsEJUw;sFtE98R_60V0)ax{migy(QR*2Dw6U2E{rJ8q9A@&DVXsVE+8IT{m3b zv9as=4pckcyxvf+aMH-6)^F+pt@m~NEM{sB8ID~4jc&f2L_yFV7TaQj?5~%O-45Hj zO64Y`%=|gnjTr1@R6^qn5p1~f;yZ3F{Py`z-#SMOqo~yPmRCHPt`{W6J^SW*GJKtb zyL*4}$yu)(MjrJ7q7&afL{vfnwfxyOljrT+c&zAhxP_Y$&uY%R4elQ&zIw>p-m;GC z(ea?LTWRFRi@KF6_-b*2ADMpCWa1-b>AT`}pTC8Co#=DTxpU`9qdm1RO)X?b?nb8A z$+hF~nEeZXy=+Sh;Oln#62^U7aWH$R;FSU2?q#!>cYmt;u3D()oxUS2OY3SE>}VUZ z@n62APH~5F$o`h%lG$&!D51o$XX(x1XS35Ev88Ie7pix6$N26)Fx*tXSO~B9{-R>3 zjXN4R0(m&dUdNeZ-Pl-xtS8@sMvN|^rB%l$N+IIFzfd+IH$ zS<`*R%jEO>(%?-n|0BH0~0+sE$Y zsga+&R4UlquAU{E^)BO)b(;HxSJ||`Pmo&R5PY(h-)4CCuNQF*UpU!cjeIBmy`vX- zo7yKUc(dQ>$_mtMc`W_+n-Yf!oux-*A<1un{5=`gCH<=Fi=LmFdx!2{wj%sN?Fs$13 zpC3Q)cpd6G+S_^YqQVS0B_@c$U>By%Gx;32g*BxAQ*`scgRyS@dH(Y(^Y1;gYzr6S zC3dXhW;cn6m@Tdx`1fl%T3;2EvKCbibpHJU{6Kf?y#$ZbGe+LBzWdqw{r^4&zeCD= z*4PCU1q!7-P-1qEm8|Nq6GndGqIHrVf=U%0nPnS1B7f8V!4t>n0Lsq&%tZ*IG? z-d4}bneq32WIEpeK3P;3&|NxZLdw5CT*dWMh^<+aU@!{SXZ76@MP8oNKr(Cg}d-xS{?k+(zP{mtI4KmU>IUMTY4 z_mp$x%Uk!xyl`($$3I^UeM(RLJHbM{H+2kcK6qSb>`;x? z_kkB7-k1LSW1E|f(czi53@1+PmYT}j>4V{H=9Q9l$llWzF@xnzhu_~3>IfX)I8KD6 zfAr7aVOJ{5aPr7!j;epJmv*#6MxHg%_4xn%fbW%+tq>g(w8ZD!6ka{DuuX@H-d4wt zXZ^drR`RAx1rHSPWGcLRHL~JNZd%;!i)sipZK>NMZ=81O@5lsSNKxO=eoo$d<)BfS zV`uLhr+=rx6ikEt-6@Sq@>#F!{(F-RMHx%;p59xNdhPEO6el!0-0t)3+IQf_?OdMB zW;uy*vyZFh*eNgZ5Ji^W5N7N=43J>o|PfDY}v>8y|lk z*)7uD`*Ut|RQ-SKy$4tnSJXdz7Z5c@jj^Dyki;m~MMXgrA!?LZv4&Ux8yaIlQ7I}C zdlC!wE?8oV3ibwq*iaF%qk{CNu(YLZo$q&McGv|m<$eEOd!9Tv&hG5Yy{FyN?zwjw zwj83!8yNMCx#Y+8X69}5oVt_qeOG^ra79qd-e1M2qeP9d%l}s4A3j|ZeLS<=dfRKS3E^!ZLj@uCuAfJ`d{>UNsKHiVJ zN6GD`M)h+G_4g-*>)>QHRB=HocBzTn%s@Yn%$d`&$FPg>Tm<^-xF*Xt{KdvrFP*M0Tk-ZvW<>O+fE?4){xcaWhjNQNG@4m2ZrrGEwkn|Z zimz8ZdF%J`Qea?4=KxatzTfhlS0&$`iN15#^CoNwzOFu2tKRmlOL0qmznRj&MthS-*dDpJ3VY64 z^)G^vQ+CVhXu2i9b9V%^f5R3XjwK}B_%)T?Rr=u{$e3G^?X)~u`3+8o+yu4OC%u~|Ox44?KHQ=Vt)`3MmI{sKP_Qq=j9-GbiJ_<>yZ9IT)DE zk_OJM+iCG<;Xwfk=dC+SO9LAwsbe?p-!xr|Xy(B!&%{SDzubd##N1loa(R28e}?a< zu%;e%SLGos12^qEy?Jq$$lx7{(Y7gQDls|v+L;;Id$WgR_%1tS< zA#imK3lHxhPqTX>DLzs}8gSx~Vs*=h5#K}0fm%y_Hl`i#`AGhF=O^-2Roe$*GmoBl~W0D;^#qld)jD{@t!5)AIEelpO;N_FIx*=zMF3qXA z?%K@L1y9U;bZU{eb-sm*mpFgA)4h&o(MUVX(Z;{PN7r=_a&lHPsM{sDwsW0h#wrX? zrIBSFrv@!LSP;WoDW6WXYi}KS&~xy+e7D{&?lwqAs-XDJE}4mY(MX-+(m!LHs(I7w zohmsIEjv0PV-L#$k@ag~q6&l)a`+}c- zn$?_ob@j9Uy0v+Yy%8<5PBg1`w?zk6+di?a%?pwbTJG{MA#FPPS&M|hXZ9ZR9KT}# z-(*oY|CLJ{Js6_&J!5p{&$CC88|40c`C(}25+0;=n`1rGgPrU@NgMXX{kTrf%SN=% z^l0A9tMS*bHjJ~~J}OdEQryV`9rV~8o~`saQ^WTN$xmqS5{LO4w|f@A<((THc78!h zJAelVa(w@xPgWLamOhNw6L#Tp***gsIkwdfdHQPyy6?VEaL%Qt@(?>ikLP?3@_1f! z^Y35*0lU+@#YD5xPyH@^8Dbynv@p}6%{Plpcqeu;IU3RH;^Hn(U$)Pp*Dv8?0!gnT z8jV<~FuO1CuYTGg~#^+;{I;Q?kVk8^w0PP)Wo+v>n!fH?Kx(6dnn9f zZ+foa6+zSU`wtAYf8ee?XLM%RyyN>k{f&(^p8lkl{-<=Z?DPcsA2xK*Y%}q=|t&H%@Xs?pd$yoH-;UktbsZ zPD?*58sc63?{qwt<;%-$4S7ho;_^4Xl>e#iB_A_9`W!DGLtHaGHU;$a9pq5|2lhjc zOO5PSxX5<+dVAOBLF!sGZev2peaFdRgIX*0WIU+f;f{Jv>s!J7OhUVMJT|Jsl?dp5 zbP(3|nVAb$7tHK#DSI*3`?5NIzH10V-kzxQPun#M=P~JkTb@oqEQt8} zg!`6&rv*S=%Zdp2Eg+$W>hE|-=c1>Hi3<=ui$RvN?~jkR&fs`aOuHH!KR7m`$gaKXdYixm zMO;0n?;pMV9s#s-wE6_bY7aAydGlOeSrxxt5vJ66eAx|t`3*TMap1cp?NQ7R%x0uU zvd1h79<^9oFVpQCfq(XPQS-;N$nwn|vYO(sdT!?=$y2oMDLTzHLrEslD*U?HFr(rb zXAgfSINEXF+C`tc``FAUvevgdTpe^5f3%Cgv~s}P3qO=+*RgY-*2$!|xnLl}e6C;b zxF-5s4O>OKz?~=H?#R{`lA0m*%{Olj5F@#%^%{rl3(Vr(9J7ZJ%FLuK=_h8^ zo7?79%xK%r(O>gT`tFYCYyU|`8;#wMk{@5Z8dXrs>*9pWw{QE9I2PZzH^bI5&cb|k zVcQMqvvzcJIF1lt!>6H03f?`nZ}5p^?c&8dwqjuH8S1uBWAkc7*we5J&Y^GjD}#DQ z4Yu`JHOcw1d*bV>^R@xJxQTYBzdD-Tw|tp>rrR*rH}Ok`FO@s=_UgAs5zrvFL;Yyq zqTC?5Z<<})q6zO5&Vd$p))n5}+M9cmQv3evFHY2KnEUf?2aHt+V%>Vdb(XBLpRma} zD9fUkeCy|*_c7{1al1J1b0%0hJZjkTTd0xd`ya%P9UPk!sa}^Z@NaEa&yByQ+12+u z(Z#9fvqvdItl7ke5uHTMHPqbigq_FT%VmcK{bG=h`Qq0Z<6bs}kJ40f?`e*O5a@id zZbrPSNJ8Ec9h}SFcjk?|^reOQ9l0(t)Tzd6*LDDqb2f+;ulkG` zj!Xj_s&fU6;OlImyu(4um^)jikdwSktGzgSPK&<0qp|+=@DXjzGrIYYle{9sb~R%8 z@?}>Y1O@R>^ZOq=2H6k3)o^1Mzp-g|de`#m(eYT$wMfmoe4d$Yj$QxWt3CP8mk%Y4 zt!w7t)WY#h$1%2R*Ic?pLX!MqM(b`xBhLtlzex`drfz>Gx8vn@g~Bk5~Q$+k{`8eSCF zXI-1yu@Cn^ZWv@vXpJD#rL+7P!j-s*VUdxGCdWRWQK#s=T$eI%WNkCCCpGUGhxz#V z&B~1OJ!DL3^%n*BU8 z(=V9am#$vgs3HsaVf6Lgz{=6r;y@v|>%zU?>px`6v7?lRuyM+`&}p5}q`THs(Qez$ zV)>*Rlg3UR650CIi@CeKy~_k!+d3%Yo=ecuMtApi-x4w|SbbpB!zAl&xgEYc)BL<= zha)RgIq$}iQ$MSl-;Pxto!Hvc~LB!7&qrgmYZ*2Bg?yD@^{9p zKUxhvbJAT)V|C9uo1Rysxy_Wb`?~rC24z2V8vK26tsA$ILly^qh)0aNr_(}4YGh#t z2WKQCYEllE_i4=o(|UH;CTqCeswu%=sJNd?=l&ZMl7w4M@j_CB> zeRnV27Oi%#F^OXP46UiDGD9mUh;C&aw~TMAXjj*%=gs1=8_e>*eD&hgzTh0wvSSf6 zC=q9ue*OB$rhq9iNxv_1?lCc}&-@mV!6PzSeDUVZKwXv4jGj**!jQNBN~S=n{% z@6N+xg_y2RrkkIBdLi?~z8&sD=pObjLigzH=3{?GpHOx}Z-heEn*TsiH7^@IO)0%Os`}7a$eD7qeF6Z1zvTK*Wtr$9$l$_pe zp7mS315hIyhG%4TK<;@Ga?b+)ZY^lxcxQg#+VC;EEcVUJDrnQ3Ni*G=h??tY07YwQ z@k^e3^Q}P!v+nKloo0RNx4cp!dc&Rbb9(>yeAukj0pT}B54_v&j9m1f;^IT6ppXubVTI(1~^wNWv@jq4e|!TcRddotZl5EcwQR{kbm)R} zQ_(#A@CZzyuWbCwSjWxaiD2i&!l$ig*8U(&u~) z-;)25KD=T3FX{7N(&xXV&woiD(S!Og>GNOG=f9*6+_L|YKK~_s{!9A&m-P8B>GNOG z=l|8ZpWsx3wD0X7aMwAjB$J9jJgbL7ajfR=rAV_m#alC<2Zl!KYn`J z!U$RJ?Q3nic5U$Mufb&v7g_roU$@*A_j#JhfFGFkv6=0U7j*13y?11Ao!F4Iik!so zJQJTkFJCS@zqW4^E9+POto#gGSiyiC9y9H1ql)-*t~w{e0$}4UC|Qs`b+vb}n6i;}fp) z;!=lxXL9b!bK<-4HGK&_=fbX@@D0g!YclrRpynImT3yui+p(}{-%ngndTZ7(BlWOJ zs5WfzSg+Sj#ss#Uo`R~VvL(0v44>*>*wRByQ$eTfn)Q9$?)<3@wbfIH`?UOR_z`m( z&SfAguDzo$>MQPemc#HfIgjM;Z0Y8&?Htr=_c*eG0Nb=SOSDt@>N*oE_oj>OqOBvp z3F*3+FFkaOjd&X76YJk8CU&gnH%xB1gRg3>FOPD_++Nh+oXC;saOm^^`S^?I@cF7;T0E<_1+NEe?4E{ zd5f}`LJ=hD^RD`YzCezX&!#84XB;dOCr*Sb8PRpTI`zwsj$Bu&Dil(dx?9s^qaLd& zB`S4gu*N9U)1{c^HP_Yd)t7ttP^p6z!qY)4azb|^Ej9X6!zYPTmy zzk9j(*i*r8*zX11Z`<_9ZyYmWRifEV6gn5R`PAur3x#*@J8IdsbpfBv7AWp)*-G2h zBCPbgs8QjePrBZBWIsH(<7iOvSlA0maf6AFiXzx~mF8Y+(A+EX$Y1Qp%9+|nlhLt< zBEvkk&c^ypYCW;rT8_kZ^FZA^TKnbvEUeFsy&VIahR=!Ls4cqiZm-f~hxOw4`TGXB z6?yxe>){bN=S^u?vYjm^?C9Al%-`G6Y47!+MO|Iu#=c2dIdIv83GqX)&74mvmP0L8 z*7fkYWqvm*%I*25&R^8P%P5yP6x=ZOr#%W=cC)iv`YJm+dzRP2dgW| zI}1^xWTKsB46&nH&C5&dHh7jqoOpangO>{VYuX>%cdiuMBDt2mM0tN?+Q!~_+p&A! zlX9$9vU(@K9OqicEZb7vGQVd|kNC?0oqP)-OSpF^RbLj5&4weoH|_9z18eOwDw$@s zP=-i_yf*!R*?p(Hc4>k@%&+ZY+uQ~cs=99zHsvH|{`A((fpHjHbuqEA^^Xx_CYby6iEKLn2Iw%+6T zZ@<-+V^eZh)oQGO@W5*A;k1TTAuoHut+S5;ZE!)8(U*?js?)BQZ zlKd-a8>eE^1&ue}Ryr?a4qi5T_{VhP#81Q8H)q*?h2qRN-;dVCTj{d^djY!j@a?(y}a`uFEWG+j9DrSGypi?-9|-Pmz|jTZZ+Xd>`_?#BkqB% zW%Y{cSRTnOs)Z#EW=;+E-Oc!F;IP;7`VToQ(b=3;Xuc)IclUGW`ttgYCVxa(hBO_I z_0eTDollQ1x!Q7Ny(hzT=|NJ&$Jv(`x@b z+JE@veT&~uFgsj!Bw1fG{0tiNQ>R4v&evLH)Uk-7?IB^#+M`Pn25!!@3~M>dwEXV9 zdtUhqf>a4@l!-R?<0W^^ZNB^}qM%>mAH(Y{cH5`OpM5|qa)R=Be{ZY*=9tCys@JjF zxZvPm|DCTntc{gFDDYi|l~8XxhN!cD!t7lpcD2)bDmbhZRo~pZVr`-s6|~HFG;iKC z?Z_szy|i}bg};~;PV;r!J&zx)^a_hCJB6)Q>o?9m_Njbl3Wp7qmU&~3ldOBoOrG`m z8m>zLzZ_S*qTTK6>YaL71$EsAHK@K+46#fhL?C2MkW$Dfvdq=zE0inv(*SY44 z^0`s(My~Cx*O^5P}k0)um`3D|WJu6dX6ga^)ysX=9M_k}dRodr?zctMLF4ir4 zAZ&s!Y=TqZvFHM9cP%Sfx6^g;yKlzHoPJ2^sLHav=H!tK z%eno&UzS4aDz-o;Owsmk&Qc!xpEK*lFWFdKxWfD0BZ%pu!p#Rw%k5Mteq47ock!Mj zs>{q4iQ=2_U~8G9=pEs}q(n z71e>QTrZe~)84uTF!4{;x#A6lcMosu_4AVQPv6d36?^{F@OEWOlPu_bqY6qn|p zO}lt^8dd7eu>cE9h2XRft42~PSq1ZQE{;2mK zQ_m(t%Rf8npyf8XLE-G@OMf=#DzG8Bp2-(4U9xZ9qGj*k2KKSD;ZrnjcG*U?#U|i-~cYCV1vFU5`O`a`7@%y&aL8_os;!r<+pne zn|frXt^`#E8rg(lyG%?NtCw0w|-Mq&5% zvt2)8iTBxIJJ0zC`WJ0obgnpv-fMcfh1aXejy1SsRa?azuWFVayuXF@Ufa*D$2*AK z3(;5W!%RDFMoB%Jn_0H+Wl30Zy7t|`8&i%vzfhOiTgKdsKXRb#&K~a3hC5?WXkybg zACvZ28l)&(X#DN{F4v&Zox%s%Tb}&EWp?+QS>tv{cI0zKmYnCg1pjhw@)jap`-cV# zQd~8@=X^F6y7Y@!CsFOVB z^4roxEbuMzf3(*o-(6#4^``Tgp+Q*%;Vt}v*3l*aWvl#0LyB@t8$Fm6F#ixOXFBIN zd9oIziJk@1O2di|tzEmeepu@79kspGd&k}d0B)W^o)Ml&g|9hY{Jh0NDl4xQjjd}v z{PEVLeUsw$({h|t?!dNgePWwyQ|kMdA3gu5SI$V^m#u;t{a6gOV(#bfe>6Ye)h|Nc zXZMZI0-cua-DBog?^1S1+<~%18L0cbu04yw&*?t>rYT1@iFvH{Tj5d`$gK(4UUvG|$ zk}J#N4xwemWaDqc2R>C#Y~yHjb88oFh0isMi*0UW?Mc|%$uz5WozA)D z)yzKD)7;a+)6LW0GYB;K#)%8Z5++`+SY)xGiwAy-AZAHn09KJF4nMqo;4gR^r+3U) zXO~5Z@kz_BEx}HWvT^BISg1ZFP})#z2_WTON#2QVJBw@3LO=vVZGg|L)#h;LsQmRYVrrH zD^=WBQ#WAF_2Q>xK2sjTH(G7k$M3D&o7Shlz{+dOvV+ZQV0Pc*_XS1)w%D88oL7iK zIY4KiYq`k%i~7!EMC;awh;H`Wq1=- z(*3p_o|t@byO!%Gu`SHaozE$0;c22TR1nR_0d-O>ehBCpST6L zj%(NiBptt?c1g~*(ZdzCi`||sno(=G!Y2+!-pysvi?Nq~k~BGZ5g=Fq%(7{oc~I-bpczSjv6IF6c$wl__x3FSmSCTt5MObA3fddeqw- zhxynXzUBb4fR`l!9E3(!9^c6xZeM)vTD~vHMUyOR;*@#xUWd(id2Z%T z7w_Daw3o%ry3Je3X=T-+BiyV+H!O#XTYIeIumTO7_N(nrtpwgTc zNhiHNcq(J;L9eNCb5_*$+8FjzL>U5|c08RLecry?;!T?{ zY__7o3y2jCSI#}UT~N?PJF*iMxa4XYu7CN5xU?y@vr}95+8)o2Vs{p;Dxx&*>6eeU zzZgJC7UxlNGrx279MlEo8tgq&?f}ytusCz~j26Y=BV3n!61!p9pp8r@-kjot?Rebq ze%4!evE7S9`%XuOuI88Tud*B0XOwEK?NUX?PX7*FcDC#&IaGG1P*+es?rg(TXZn8T zKiOyfB(tdIty)=6t0hCItkHMDz>RL$#cNXu&Ny7^-5``Tex^w&M{<3Xl)U$eRUzKFtH`#-o zP5qZR$DNb;b7lViziFQ}ad~&@%z(8#o?Tqay|$e8Uz&&Qdy+GZ>~c;eVvB<@21~If zhH*u1i8<>70^-eFeNqkwDIU&{?s#D|Vf^^@uL|n%2riZ{J<{oQUr+TLY!i|nu&nsj zj3iE5f8(#%+T})In8;U+9*gFG{^XUY0VwuUju{ z)7S*tEyn~6w>J9Bh6;rv)qS4q$CiuB(jiZm^Zkksb90I>JbTpCF~9k`8DE@lXA;`f zwdd!_`w-Zf(?&)1oevwsVxDvUrC$Q1Xs4M|pd!B1?ww-73~ZZ-xU}e|vxD-<$%~4h zjS8DDEf-)>m|67J3~Tq4x^HV;nP_7aexSKT*&?aTE=g$N)@=XIy)GSzNwQVtHa1_J zvE3}9e{95AtjQfQW!(_vje?)uq(3HxUc^2ug;>^@9$Fk5zv#|O{~tDX zH~C{r^t8y?+x?=}v?`28e$n+=(Nf>%?am#J;Z{5OE1z}5L#nCfs&Xs>zHTXTau4%a zQhw5G+5J10V?D3-^9kK+cLW$J#zn_2vo23V)SLG_E^PXf{u|TYU>BOpHSKKryVSqh z+q6NtI(wF|0l;pbbD4;ePR=fviuY4!Ba}~f&h1%p%t4d2C~l(sUEyda7we7oHrBBZ z=M`S)yuvZd^RSUmXq4)igJ$#+Y*e3j&fWj@%Q%~Y`?Pb7`KGb9?)l8+;oEVx^ZuNC z>r@S_T-gw{)kQOHs(Ig^HS-b+H+nDCCa-k!mSMZSZu4J^HE+&EN7%)*U#E?XzFWuM zGIW07PwSG)&#as=^!z;*rYu18*~SAe2gy7c65i|VocIw*jh&ZH8)0L#F$o(!&vI`! z!g-oy3#HYJpJYzTy;<&N{5B6woYv!K+d+e(QhqV6S6*_=zU00fX_v?e^?D|M%Y|s) ztIuA(E|cZWF8<`YWuRHtn73Da)^+vnXnHexxp$(k+0awt7oBb2yY^hXvmxVJPHNl89}XB`MQe7X9??cVE38_H8GudmI(`Q~xVrS313K-Fi(X^6f!k1vl$(p?PZm zGI*lJi7;5l``5EwhqKtR?;q6h*7-vt zP0rt4X(6+)i(Yptdbe30Ros9MS7}3*%WpBVX85HwPr6c$!Q{6ySS=g%ZrJM|Z+sGH za&>Y@^rm#&2Hair*@iaR<_w{bj!bC?N^tuV!1bV@Om2J?Ui>n zFLQ5%ti{rTuQGqL2!C>|)y3C`lU7ux-yKDUBcF8@&oa6LuC)4*~?net~v9kO-pCKt3Nx7WnZ3lR_f4Z zdzN*vy>j?)S{aOUdI&a_R~$}EObo&n+{KFJ%P+osdL(KOHt$)MljRT*^&&I>(6Q~A z!}=I~cBzTiOy6nyXS0wNcCSZ#-?seT@o#U3mcEH_JA-|)kCY{GHwuxSEGTrcE41y^&d4bllo?V^bRx@4}Ve`6=ZR6Lo-=JZ$=gt~Hx6tQ-!xqfKN4(69 z-zSeQcf+20=ByR|zF}=x4}7;_9awv8)z_5`WcK*KJF{lPSYI}hjc2ZG0{&l!ZTx0o zW531h61yb%RPv3)nw79@mdBo>g|4g<>&z_iR2!VPvSaK%OJZs44SUSu*$vi~wPRo7 zHw*l=)ctkFbM!ZajYdBs@xK#3J2D5>5$$wAYc{wtfemLPuzlbjc9OkdsrXC7@svfe zL4b4^?w`S?12PxDHj8<&4Qv&g&lUjMX*hq!db3`@!vQT0WJA%59qWf)*0D`&8}nyt z**+GCznyG3TY~dJR=_ljVV0iG`$=#8hI+N?9B`z(UwXz;TbouxQ|z z!NS-xe1FYCas3+mgKc4}*>1GFfgNVY@fXNW0HPJlj}73d)C(~6WZyDp_5)AXacnT) z`y?Pw>x{ z^#_JyK?@hqFOl; z9J19;(iXC1q?4{dNY@37rzk-E0RQWy>l!=HuCharT9Ph5NY^3A)=@~;F}4!2yNs7E zDJ10kD$+GXCtcHd>G~Nm^Xq@o^}o_xACoSpD$+FsW4t=u_2i?v%TT&Jc-k#QKY^GW&sar{R)s)m^<t~I>wS`XcI67sbl61IZ>Bi;4yrEB~DPjwe*FS3kQz`6%?Nqgu;E8a48<1OPL zXc0$fJ^GDwX&>l9qRs+X$p`EmQ-0JkZo_ze@RyeHW70JUBfAeEAze$B(FPE8K)*J; z#n=E%a0pxrgfs+T#9KojIKZNg;%%!vp0tNG_>Or-Gurl7sauvB!lGjI`fS5Nfz9jx78Sm{21k^Za!n;m|)!Bu5l$XeOC|NEHPH_^A zOq*Y`ptR_HF~_Cgfj69rvtVpv87G;~l$?f>Y&#TF335CnHC8aA^IQ_{e;;ha*#lB^ zuz;yloR%|M!4_0~;?uo&!N5RA#}TuqWpa=4SkY?6;T`5PdEk{Q?DA~n!`vTM>If)A z;nwuIO|+93^TVxfOrhe8xrNL%y6T;YxHD~5Bdt4QLAY}c1I3Lznd^h9Hx}W>+-*!d zpRui4P9l@5IZ1hjier8f=5oK%-N(3^>iD#zw;C>;9$L?|%Rw1nC}D-AoMZ)F5OdGq zfft;K@~ZduRyU>Bq$WL`yss+d91GMiqmw*kWowPK6B+wW%Y6bTljBskS1de|0T60B z8;ZtDPI7%{xb%`#GBm81tC@53+?k{KTs#1ft*F5bWo(s(Gb!h|h&F0wvP{jXD+$&s za5NxHdO<1)(ByOM6+Px(gB#4)FF-LEGSypK3W$%9eL~LE51}>13u*!1shSN9AfiPT^rjz+*H3S@d$0d{)4ot&7iQEE4LZ6&eRne!0|6C5{ zD{+@Pp-5WBnI^o=isQKZ=qu-^T0CMP*vgcZp?0~Ve!Vs-K!a0fWfDi?=}dyW53>TKn| z?_I&eC-z(l5)~1$(Up2O`j)pAw^+TrXim;)t<*TUDrcqcyM|Naw?Zo;&dRC;uqi8` zOu?rZ99wziA;8K3R}Of8D14QvR25E9_+V9ceXkl`f7qZTE*e88Z>A{+As>{o&+Xzx#F6df1Dl@7)y^bD~;85111vlXk>k;_NtC98fhXq%0UWx z68Z-^TLD8{=K*6i3TD<2Iq1uBcsJ+;8}>h;g@7%APMjrqC3*;G5)}m6(eDDvhWD#M z7U3THT}P=}JY|SF)TI7)!^g$X)V#jw%Hku^OD!$s#iu&Wr!*LtYM4I3;FVx-)``V? zJqjzRB=HcO%hzv-Mx52x1f=j!|A}C(xNOCb$xrnc@TsyC34%Z)n8t%ZF_J>zI#HAE zC-h9I6&!R;xL?D!PTw2rexu(FK2nqPGhP@VKvm^Tzv(GmJ>|$H_?Vp%v^+@}*(?># zL_MBza1?44%{1oldK1zRs{}t@jt*PvVAO#m09^HpK!X1%;go+tG_93_Q~n*n8dV__ zzy<-8)e?)@@;)8>mpafe^-5aiIr!#v` zK^oyn<5lRh`p<-^c#jCP-Vg}mTt65DHKGBgTC1`OOe^0-cas7knhC>3R6=B0gnO%J zr~VmwPBfJa9yVNbPk44WYSyXK6^Z$ZTH1ETs8#Q?3@b!p^bOryq~oZ-bp=0$>2Y%X@~a=?7o^aGV&}1{PBh$84ghz zrXpDBI*`s#ap!9JRTQ0QM#`}=Zh{2W)jh0p z6GRI^P}4!*;nV`VkM<)D54xRjLd|oRz#5uZB?PEj331Z|3m!9{t4Fk!%hsjC)yCY_5pGX5R!5bM%g9gs|H$I zf2YjS$>$;H;IB2zWJ^@c#U9YAX{3US&`@=l>19)JUg{8!#6uVzA~7m?KO*G`Ksx9< zMX$tx>iVgSoM1$&MT{B{5o0$s)+|iK>mahF=B129lldWhM1?34iP|GhiLQw_{0TPE zW#Qd7LQ(JGFiww*-YXH2sjd?d8S0Qaq37wEAt3abenWKx`Vz&Z0<%THY_^Em0bu5> zU=rJSGQ}clWJ!n`Rna2xqj*#3QPgtP;Ujt=I>N=URce8HAjPEDHA0Vq#S!5r zmI@>3GV&_68f%G7Vzy4+0=ZfV8~ZnFVlzKdD+ByU{PVD-L%9f35|=r)S!K{o>~^ESLg?_FGlN7U2WZiTh=&R*8mci$T{ zqrd4IS64B?dcw=c*4FYk7wZuvIUl?2_vshZ9NorguFc<6{cTVzbcd)|2x5I#|Ihpg z`9ekjIXF%&Wn7{3_+P;w-VD}D#RH-tJ@VHNX>c==H@Fe7$%mP|YVC7SJ(nP6Mc@8IC`Hq)BK;sVRZ^H!%L= z28mOIzQ`pye@OHMK=mmnlj;89^fz#d%_5SihL5qFiQ>e#FHNto+sx$CcH{n3+~WRK z7de1>PlYT!=4u4DAF(Gk>x%5QtVZg+Jx=XU-{uWyoDI&k=Tn&Q^o00hVpOb~lB>p~?n*c#R#$Wy8&p63R|Fg2|c>H7( zcMrW6R+cXPt`J6Yn68stRf;)rJazOL|J3s%A3U{# zCg}2{M$(~S;^g9Uj{P1Y3ze~TAKbl*CggIZTAGj(r#Er?3I6sI6}RVbwKvVbrr~%m z-B^8b#=3nR3&@dbFfnKF*pv4%%r42egm*Z!va*D78ALfjiQ}P+Juz&qWTdrg95okb zJkff*Vn62W-b23He`0c+)k(`6OSzQY`q(pqBuEAYPXPO8Gp z-Xks-Ci&N0yxpNDF|VV8l_2|@<|HV$wwBoEpuGird!CP=I*gu=aeV<}mIWi6SOda7+;}@novh;9gb8I=R>gK&1bL6{me8lB*CONCSNKe0n z4Tkct%Epn7sdOO@CEL#sQPNRe^!Wnzny|%$4A@G*Xk>~6&HykqzKdYdZ`Fb&Nwk4? zW6QDtS$7^Xt4CZRXPUXLr&KytT|I0VxjK(VaP7r-TD(qP5FLgvV%7;T!g%0}+&E7- zfq=wrSb+qFt3*m7FJUBLMPh6q09hQH4S*N!;j*Pl=_9Tf@!r+BT`_R1UcBTJK14Rb zHKemZM!^XqM@(>?DCiWUJLq7Z{N#1gp~7#(4m#*JLaH({gn*F@vtIy_##Lox=o*;9 zUnSPiA>2)}LnIIeQDvmUfYeP9sWKpS+s_u#y&~ZSg;)YS0#>?wJ^8WFo&ZmXI}MQ* z^7J1=QlTS@=;v0CB=JH7RXmfp6LKmU`?mS|!Wo^Bh z`+o{U3M}D_=|tnh2(>DTen<<*!nwz=ZemQzKQBx{{nQh2UQT|n7|}z!t*HE@XsIS zbe`lcX}YfTE6kuVAr^hk>4EsGaG?O1kn2OYNt3Ap?79I))XWwX2*D=-0l-Ok$_n0F zmUF3~H1Qw@M@a>_{;C@!{xvLMi!_lu(+C3&h}{S@rml$ILYJJ3x1`8(t#2 z#(Vo83ntJ}z-H-NIILt`$#-vOw`h5huAO z-7HOjlY7HptpAg)2oc0VI0R(GE)3%lIcKCCz_$-qH&W-Oh>e@-fldV_Jj4nvgWjx&Bsy!Nk1|-bY^+%#WEmMo4 z=P0O>a$KYS`M&X4i=GlV$p%Fc3OIFLdHzqjA_WX-Zt40QQzw+&PXB8e=R#CGtMiJD@u5whbrTxu&Oi)z9wNyM|lMZg1cq{ z5EA%q=@+_#cmYY{K`=RE-ShVx)Zlj40bv!%QPCUCzYB_BITwr&vf!mGP$nr*lvNsj z#Am&4z|cVA0ZZ**+O7DdWwdFKqRE=wp?0VLFcm^Q#_UJkuik=T?(8jt)vI46EQty zsZ-G#P(bXULAa;ZCie6GOf%@O1ob|o;FojgFQ4x(pZXJdP+pgXBlBWy`s9!0Cx>H*ivNX$FKxNnA>rPGyr$5PThKU(^Z0KoK+r4W3k)Q5J|; z#I}Qo4*rHjtkR*JI+VycRa~l`v?1u!-B;4BCD+w{L zj{ACZOP%VTEK1emh~j8dQNQ3w|BteHAX2DQ3O=%{hUohWc@RT8c32G(DE00?#o{<>; zMyW01-;MQ8fl|;Eq`!m&YXPri^im?WLg*E9D7zlU=h!313j@SZ9_+bZrmlXV zJPQWpW59@h$%jIajTBr>OQ}+;Qga)$ti2I4l3?v2orDkcMflFxX;ffo=~lH0>m&fr zD%pEp*9#n_)(H;rEdMCsMR*MTBpD}137b$KtC2Rclv)x@Ntmq{L19K3NelX-hYS@Q zxtvC+QK>X4twJl|6f0%#cw6vqK!T>1r9ylw%5$aPpnIuGtws4sbp+u_Br#G;K4o4U zx>jjG7mY^3<@4RcG;p#SG{$5V#Q1BXptfd%B9|YMrl^>f3boYIIs}GPtx9;GQ|D zaT;I9+UpLj)EIyv4z8hr9JphNA%R995@;0^(@5&mR}W4@1X6&XS|;aVlOwYHTiB5G zWpL$jr~x0rCR{OuO)&WRRiNXr9!?{zq0*|kSxj3AIGykite=rwv!6H(WCv2MQL9)! z4_!V%SH0t?r`$h*PIM0ndCnRWXW`LHB~n0F*Aks_GZ|z_Ae|A;L`eFsku>1XY%Zte z*$Uva%Vk+G8hRx}W3BSIkJeG>V>CMt{-xn~BaJg~D~cid$R|J()Fn-zCZKdse2uf= zaO1y0+bf45ZktzfQsxEe+N@)Qsm7&8|292OX zVQXC)1iU`baUZPpyr~15`p;Yo)bl z6k>RDGg4SxBQ}Qv(u6rkC3Gz~x_Z%oH^$%v;$WZxQ9!sN2yP+YF9aKB!-X?6z(gt- z^v_9csDEff4L27H+McII$G>=-ct7oK;-i;_fHb4P`QABISUOIXY&1{m*R=olgenIVoW95zuwCP<{ZN=?d+zrw91 zhUhi3h#w`U46#dx1RF+JDo_H#i9@7>@U1c>I0zT&%y@nYpGEG8zlfX@(XYH9s05>4 z3)Hpz=qK$?0x6I~E`3$u(iR#ZuhaY8pfb4`jO~Q+rGW^KK=>f)QkX<;Cu8%V`tdvN zP-#V!1myJy5%QG+J*=hrKZ-pDACF~K>`4`Cfi*2RAkTxahkWs8;X3_Z07?jMdOk#2 zuq@qx5ce}+ZBSZ#dy`~ z*e!e(*)9GevYU{=_{LG)qAVJ)B<*C(X|(|ALwLkVBSDyO5E=4;HpLa>uk!ZFinmv@ zuuzs)y#lJldOe3>oYpevM}gxSjk1D~FLl@?^1QA<7IKL&R!BEdii6~v0$cqwB?ae{ zjG~}gIP(8*CI}HlAOXpRuojDmfxsviv`|aC3q}&sAIyL=oKGXeFtXJ*L-Wd%qam82MfF;dk8etbmH^2dB+=akYS zQaDm;GUqC|6Vn+xRAH>efy74>BsOa9AY-%1*AOI3V~7pm@$Yca=U>RoLPMYhaVnZ} zoJ1cXQzg(t$cY->C0?gwo-hdoC5g{DAJB=^W_4@iDB~cgToRfORW7*{dP<3ok4DWq zKB4d%bhbqJP(dk}B0t{FibD{j`Vc`%zKMBc`Ya%=C&I_k6H`#79}tdo*1shj5f7q- z$j{ncVRJ=-!8i+wNW-D}eJ-cg{h+}( zt4t^{&-~8`Wr&WDXe;K)gwTXXl2lOjBognaOnAfgNNHW*EnXJ>f60fWG!8}iGF%xa z_;Tcy8v1hN+z2v7rki)9r4$vyZ;Rk?o3 z6}32yWV+Z_%`nmU56Do}lT#4V;=tfP;0l>;H5Y&_M>sy<EV$t1RCetS8n||P^(q85+?qaT;0x zbex1+;5?6Xh4_;Zh8s7VcrWM)byb*!S_RQ-{W!$r&JoO%C?U&pm^Yd-K1l*sM>m8C z0~)YON*I85P+$0_#=sU1O+pT@1YdxEcW`K`O#5l1J@`z4mV>`_9s^gD=Zf%*Tu}%* zw}eDmFY!?T={kJ#kAVks$%CZ_52)(E(=afeKU4|1e+i!G`yd|x-)A2uf=AI|1<~mv z@B6?`iEPmr!bjemNIsBB2SsK0;AeoO9Iq7#QsKMdnSPV;(7uFMa)unG+!1k)XfH0Oxz4N}nJRl`lIgK_3faXCCDD{%6 zlLZRC4*nklUZDd#4)j&?i3Vf=aHc4g{AV%uBKU~J4Iu$&Xt@!9Ue|?He9|9sQ-Krw z8tzx#6V&-TYIO_{pb8B`q-g5xIfwa12ncLCPiMh|>c`*TbHWfAOb&w!Lgs|RZoxqj zzUz^x6iCDJ?%@ZZZuUTkeE3m7az@z$4_)q8i$Qz-Z*d^G_)r7>oit_fLm&>sCk9Yr zmhvG4GkquLNq}FtMnMn9OPkJ}f~?VKoyph*a;GXdq5l9}RFny-FrfJUab$!MO2n^f z%7hV2%n}BM@ZE4kXB(hGn<A1WQqd|9emCGlXI( z^tjR>B|s?xN)6oSQ4Pj6#!!_N;8Ql7l4`;xPsqgRJ{y8Anm`S20{3&e&`g*~;e|?P zR74Xf+HlP)zHbZ*oW%lHF{NS1Ec#uzPFgQZR?eAbZE~=-o(NS(7*Pod`Kff55Nr_@ zs>6sjixTt!VW30;oeZP!nXZ$9)`wLzO9`(d92SKi9Tfvd^g)mjUe1SAyugtOdWDV! z`GWi#07cPfWt4>b=pH#x!ft-$p$lxa){@?F@fAo3$OuR&DiBJ5!4+8qw0T7>1kZ#V zZMjBcN>F@+5TRF85hKy`CI-?DU7EWBC(&pE6>hH(BMDfmwUv?51N9+NR1l;}C45UkJA_g%`e;fLWNs5aM0JOv!5u!i;pF z9y49oqYHxh$qP{@5KBnO3A#;9bKf)g$x*@A`8SBsfFf;Soc8BD`={1=lqyT!Eq)vs zqNGYl)}dtRlnG2Rh*e;4U_Ax61b_`7hxOc`x1RWcs|>mxh7Wlnl#PA>x}h2%u4og4 zyu2Rt2Rzu79diNfii|OUK1&)|52{FQ5+^mcgL0tydDY55i{UN}e&L`&PNRpum*60v zc|rOGD{tG5_ z2-|Q)%?0YRse-=+d#BeuWUGaoJaR|4PT$3$3HAAEk&U&r8yFzYpuWV&qqsxGAM{zA zh9f78iWZ*n(jY=g8U<@%dCwf|r)c61CPOz0NlP77`Po_+pEnDwt-}rbg2~cFSe5&s z@bGy>KiIuRvEi9ceTifd0it$V1_64d+7)7inpcsAEFtHL?$pCo zth4eWWV(4xQ*ynhGYM)8j0`3()%;AgzR2OFu086B+QtU%AMIIT&}(UhEq=yZPF z%_V9jjr6q^ti~FT`g|b`U#5bB8Y)w%m`WsCU^NWCycqRiSUIkc8e#2np@D=NlIEWS zs4%dsPXQvYa$E82+N zf5*Yt3aP@faJ{`O)d_t?`3gcSfJ1;8qrN8^I|GH|ibnD|4<^-)kdo!qFkif)&@GQg zHDbjQ^}mAi!x11zJxLhJ;o}N8u_9hDfFg`d5HL}E4no0M65yel8Z9$@&Z(8$Q>K@&}pS+q@$?RWrAVZ9b*?Y+!yDBQaGNr z7_w8ztriS{niU9jQ<%t;)~1E@mDkdL97J`62BmBg4JW#yAErE`MSCU^k(0LNRVgLv zy?L3`l_eRmR?jeB+7Z|23KWclV|5k_^NwT|kPQ{e&j?VI#__A@Q9{L^D?=&H`;iXE zsHm`0Pa$n&c`S&H_=6?nQpF-c9u5gJne2)y078&L!0@CZ*QL>l<$3=O2B;359U_%Q z5OC6_1OVnU5Vj&+pd$i*0<(>3Rb0@rPuFmKwnRv2SJWw@SQ#TzP$c3g{Wuw*GkN1A z>P)4y8)N|FyV8%UR{0WEs%I5yS%nYy-t!C=+G2lj)Uo1aYg|Q*rr0@YFzWQ<9m9yg zAnChBVQfY5>4OTLXUH*F!_v)$59q6B@gi-$__}h*uITtvS+`-)@4ag8rdo0o}ql);yDz7OFnDWuJaY?ZK+8oi&pg|`XX>S0RH&i9)(<)wB&YtH@ zNhS4J`Txb!a(&=<}dUr4M{@aPSO&#!#=-??!DI$#e0G}<{bzL|Ak$UEgk`bmu}V#87iId z`4&+w{I_f)8Er#^l7cDMLEOtoR$VvioiXrSAL2cUDEPMHstv(1cMIw02QqmdzI(q4 zf^W2OW%#lJMf5jAQ-vlB2fIeP7uRxFBoO@F3uBN{C|yG5pu>VDmP(ZWa6#1^;J{m1 za*$71Oldm~!sZ*RH+ACMr8o85%W-`$3{ci#LtOE58_E*_uo&weW{|>-K?%l5=gLhR zVzLV(&{UbLi1t$8G^3JnO9q0+f$I9ry&w`hNrn`v0X`xL61p4?A3BTgcsP(td_1>n z-;o(@$3ZQCUBIF2&C7n2`U%1M)$-->$F=FJ95!vl!jDQTr@!)W(}H@54&- z_J|dkUCIQvX)y-UO}4w*5Hvq(nGvx6ZgY+JZeAnCvO|Os6}{DiLB{P7K_=cC78$qC zslRbEwV>`Wm#A+q@DgJL|^3JIsWyMoI!_JS3DivC(nBoRjSuX-}e!a-QKE7}X zt}8GV#i61kYxSZoC<)=nm2;+;gcxPQ@lqKP-il`|*r~_qf7HAgZ{oo&#$F)zJEAz1 zb6%rtqT1rVA|K*p)t0P`Qf=`K1&BBe=GE+Hynx4NYTWqWXUHf;#dT$S^%?+u2U%SX z1Qzk77;y>F8LqsZ(Bp)zi$JR6$LwdED#AhF3Whudpm;Av0abEaTtJL13P5oQEf2_b zQCuL5-U%S_;kQn=qHkyhJHV)3Fp4*BcUm%b*w~n?8C4;y$%H0Yti{7#Wo;7_iVQ$Z zAQODDd`0RIibLhfCcdMM+rpdrjI7k^w?te!+}7G9s3KBOZJrXi@NOL$q8tm>W>M;( z%K?cQM)((3@2SyA%l42Ggo!f27s~;bg?&=PO*1iuG5~Q|-~4SF!FOEN4?*q>A~jCc zYNUT#FR^?j|>n1IT zjjuMB-`KZQXrkD$yn+^;77$G=2o|Yp)k_Fd7DVeha6=@Cm+N`UjtvR7__m}W1Xv3L zPF6AExNF}EpJCboQtxzH4EidQXIg1a+YLyn=DFkodBBUU~X#z)J9@zJahlHt*Y z;>_c(wp6S!=m!%RbFx;?n%Hj7hOyn)fE^y?`afhE8?dG*1DR+Isj&@Ag6%c2=jAF5VZm8ciY=M+_go+fn9rGUc}QIQ4}K3`IUfdFZ!5C{+^%A4l|0#qjj_5Qh}o*QRS-7pieRB+Y( zICaBvjVW2=!Z((`e2s2;%&q9{|NJadv-LRd3*BK=_!{QUDL>(BV4b)Eh_whoM+ms& zew-TfGTJVGuR8_+VSyq`ACCnABiCqkCMU`2%$E)o7?3qiIX~$jJ?a4UvftpO-a9Qz zu!CLNF2S_Cs}llWt-V`6Z&o5ce@oN*4IJS(_uuf(pO@v6FMR%=Z`l8$X#)1UZ1l_+ z_Q&|ks3nW3QT|W`kt;Cfc*3qP;(M9ye~(bzd)hHPtB7Z*M_-C1VgPjPjS6G6Sto`j zak?Lf$3%c6hOUhn2yR8!>j=BHOr<@L+{uApl_?MouQES2=&D!G_}8Vqg8@im&1nQ8 zXLa;NN+D`-7^RazIuVZ8kb$sF+Yr5ZWl8Zc3MYebI>oo6`0LT)2%H>5)p7FyxBI>qj=~1no zLFsfaoWxU8sS!-9sHfr0)L1PON71RZ8X+IY_v)&*uexkKreV|Y=aOg@KQf`MGefKK zD3pd%IRl?#TxuYdjPYkJ2qM!@K#>V>v8E$yl)BlPJzty{EYFsm2G5Rd@79So5P&?T zZgq200x)CG*}_O^nFhSEC_D|Z4pZtTYoQ1knIx{i5~&&tV;Em=Km^ZcoI z-SNQeH?umi`;?TI8f)X!`jwu3e2acaCzecZ#iIO@(V3L@gLgQg=!%j^>y|Mvx`n@-tMnA>SJks+@AwxQ1JPI1+qV zT!@Sq+_o#&e3am3=g2}TQMaHMOHyy##p1|+>Bj2bgjivcjS}%-FDazF8xSvJ$kMA$ z8TpmrC|w^d9p<6jt<_ra^$M($Zalv?m3Tg$h%iXIlHH?`2`{Bi#xmrRo>bzzcuAYs zr9*o?!;wU5hSn>)Qr@lzo>*&ivPXi~g|@14M`0gS zu1EtPVJ6kd11WVOfKMx?5dr~u53 z){oxu!Pe>L0d_pWUfPe)u`VYnl1^>Iczb|EK0)>?GWsfV*ihxa1-`F_cJ7>t$^& zoU>Vc`yn`;$L&H=(aw~*F{%RvUpvL(q>Mck!j1POe+l6hTlQipMSTnU~0Lv+j~;# zGH$=lQ!88>1l{N7c-yC|VFFKO0_1Eh%+c_DP-$Ifz`RX#%^NECIn%nJq#(?{0rWe1 zQ|c;=#m9^dZE$U(=UF*o?U-zZm7Gq5KMCpeMKn8s+^&!tiz;LHV&5@e5G? zL8zPwH2%SymwL-dVw{1aGaVIfg8JWjQeR4~hxWe*FYa|ci!gx~if_QLV=_9iYgton zS)ys#){Hn0O|Iht8|dfp0!H(Iz!=zJJq}+cMT=nq?I-c-(bapumP*}%?0|E}j?LYU zTaQoRP=fIwPHc5+!FD^@yb_&HEI~-a6(DyW;=t)d(-YfW6qW688De zCTAyksO-HaVZZj-WN%WpKc7_Bygy0UPw!0@+p~Cb$t<4!c8w=z8Y!TmX8e-J)0b4I zBLm}VoVGgHBR*adtR@nit4-#lawF(>?f zz%Sz2p9J)SPQo65)?kc|f!<=k7TOg`?N1(J682;s=fd(hf@NWvbpNp=fG(xy)4f;J20`v5vWi&FXa?&Nz;!VX9ZPZ4cJ+anF^Cela_ zXgusXe)1i~rHdVP&`H=)i9q=zlI>-hqTkZpk zx=HN+pCs(SRfATI&r;!waw(3d6+U>U|G$&4J6N*^qk}PuwFsN#F2}t#0~A>Qw@Je8 zcOFMpsoIN=E{-(IjsdVj)F7Po|2aw69e(ALeMWrBX}+v8F!L~dV(@w~IRD2cVRtx3 zm!OiJ5-m?Dqs_|UliV|$gQM_2B?=RgOYgnglzYArmNB<%i7?qHIz-)Sa^cN|m__Qn2ul+(R~Ny0w=nr{v_ zli=asyk`ENldy-0n6NKx(!Sx$?w^ye}EL=+qHjA!v5zZ>`0lGPyIOw zI})%l8RegouuGbENg|KSrhiVtUd_Xd(3tN240Iidq3@;8SGG$slHw( zPC9O72ktK-7n+iEz1&19TeNzLs=BmoA8z!G=SQtF7Sw;&=%nP%9Oec)XLO}X!I zoK7)~Vi`JYlPI3F4~i$56&@L>UmaFdRn=!a(buODB-Bt;1Xc0~g}8Q&_k8#scT90b zlic6~OK(1j81@Dgvf;8s@EegF6uAPB!m1Sz0x0uoksHv+EO1FqRULi)ANrX#N!k?5 zs=#v~L)H^K?s=HUBF@ih76Gz(HPn1Vt_2?mksUw@67s$wyGB)g;PeU2#Ktm*#FrpS zxseV%(nkw_8bq}^oZt9I6jz*-GcZksNQpRmTXeAo@>K(>Yam}WxWey_9&bDR_|*M_rQ1>Mp^>w zXGn+;Rw`mLQiNPfvJ6~8lK|6}Ft~pZI)cF77;{ZKi5eKk{Ho~EW-zinM zagJULL{~u9;sAHy-DR^MU(ndpSpDR@W$zYVM3k39Xl^%n^nft{i8KD@nOVkWt=2=f z&b;=t&-}%Lnx>i||LY%4yLM)4lK~6Ss2NH!2B(466E^UgZn1%DbXD>7>pwTI=7pN7 z&t3O=@g)NbL>ehX?+iA&LQA{`M+VQCQ}bMnch0IP2=J+rK!?@WYOnR2*)>a0z4c|i z9Iban$8lH`QeL=mR?XrX?^gwLGs4whyivhz_}*j!oABO3=SGG1*58_1pMI;P7H)1l zcgEgiB6-FVd!}cdR%2(@EUHnrm6Vo@znNI zoCMyTEMU9csrH#&HP|z*(d|3&6l?n12Wl{e+Ov3Gtx=zG!G(vqt9YvWL9G_;O2SQ8 zWY5k3i;wTB!A3DaLA4vO79`&m+PnR?+iTQc1fX#lDmVb1zzOgNaWv{1gpAF4dx&S9 z-WdaoUTxnGT%&-u)dXO1(Ca$h;<^)b&)=EMVZYuaIL`dqCOF<%gWXymS7LSmaP~|& z;9YCrUGp05EhN@|?}GK1H^EoKx{BPJ+gXDpbpXtpPi#!!JMqooZv~vOA&e(qlf_^1 z>FR%`Naw~ad~nLH<7 z9yg3&gAYHU{8LCn8T`$6(2?eGal~FSaDQP^1~(y-+2m__Kf*sOyz&GLoZ1Z=kn)>}!lBTEN7zWV$;01ZO)&Anzj&*` zY)P3;LioU$H1F+imY|Rr5|F6Do;FbAxQY_Pcjy%JmR-X~N>g^o0vSY6qRf>5OB8a} zXO`XcMM(E;EgN7beSCzfDokTR1ZT6bIUs`sg#?qpY8I(TWCkV37B`)JDUs|8i>m#k zxRbbCjXG2U{R<41!mO@peSGxDHOY`V5vdaDM3RVKY0i4{hUX?hZ7R}{xa4k_b~t|v ze=a3c28dN_@>xnITqs|BEA}DgioAA#E5#z1|J4*Kh$%ckUwrNK;vi`jwR6g?9pEDJqKTzK_uu&PD*a`4|FbefXSI+myW^Q`hAFv z@!T2rCb#fh=Msk^g25fW8u%n&0D2Oha>jVeNVE=4vk!LT=?&O5STi^URZ!#8$<6dk z5fvop0o#o5m`#!2(xk3oQ#e?NW_s|@hWFMiM9*j}5R{)$prP>%$+zLiA|^^8uC^6e zAio99q}UQa*$OQZMW?hSh-*;G$^tRy#<}riL$U=WBp*7A|V~-5n^l;?tG*N zfo{HG;KS8LENUYt7WhzqPG~8xpF#cor=x)M=z*~j4{HuV64h50fUIQ1k zrd=oIC(&dx+~IhO3GjfzEF80+(jG;DkO|Rxj-pBi@Q&@9w(-4)mRgt&7*X%8^_#lp zy);Dy3~4mTi`s^F)Lw%wM7QD>G608s3{rIbkiF?A=WYN`Pxo6rJ#6*&(Acv^C69fp zW_nHaCr6H&jcnMIduTHwh$Pk(NO3nwFrR?{3-Q>hfknG%nZK|EyMtH}3&~g7s}m!9 zJZhI}o@V928qoz~Gy+J?8@{3Dp&D=aTwFzPMj(YX6j;mlC>Cr_wTD} z)EG7>X=gbuDW4pd(H7&(=C8Jtv>HjfiO5)fvjfTf0jFncHD^uD12t++hWYAe)t>n4 z-F*>dP)^Q5-m+0~1#pBIvIlhan%Zh+*LB+K#Zf+L`7wG9ZvPy|2E8w2vS`uv!$6?s zIE1W)mLX(4MOx;{tx$%I z%tIkL7DC>)2*0W6@-4#4ModiD(g-$#Llgok& zZ!Ng=QQW15HCXz6#-$B{)E-?p>f^zm$Nca$m~8}*XGz=}*Hr6cYj%rThwAdtv7cgG zDxqWD6e|V%6iH~uirlc{lL$PW*W-%na|loDM=3^}UO!YXVg~aybEPt!4vHc}0II7o zx7F-2S|9ow5DArd*iR%rHzTB!Jr*C=ZR*fHIHxLy;0wu`<4@vVLp8<3f|G^oO)ffc^mTTsatB=jTPaxPdVq$cFf8~tP0~Pm`|=+$v3PM2O}4O zIpKkEl<}T|JjG-c5W~E92y>DAL$}_;h!I*P%(x*ghxWJtE9m$ zN$kpdks;>}20QB~beW#5V$Z_CO?t`W^T{I_A^Q@92lkOm7!<3C6L9;G`9xY&6TRLf zxlqR%M@Z@{ zJK+8Xc(?=3`~`V)bApVi*-?Wu1pZ)O*@$%rJO%TK%UJ%myf0H-U_ty&8!to%QaRlc z`XT+$2|1i!&p}5qIQ``+fgA{omGAc#KG?XKnS=xDz!;$KplsZ`Z!QLYCh#njH8w_} z9T9r|qIa2mVYDA!9_{9(VR3gu+ToEk!V|=!KtE}hHzKoLrd7x^KHZyf99x!tr}aW| zxY2_qImeCbT30r&U%h$7)|WQFwqet%Eh}1Ayt8`aTdTG%Yh8aPUmRkG z5zdi>C(+mr+`_-TMuTklf(7D8V_pD6$tvE}aFKS>f%k)LMbTW;pve9EG}4O9jAisN zy=I38l0U;^>8p%VG5a7@5&&U3kKPG^7K3s;C`DEj^{np) z8KV6ptoR8TLm?SRdf=u-8Jv87u-ihtHLd7uc6d`D_C<`=qTku_-FCM9#ST*v!R{)5 zDCW2wZHdht1gY?fKyW8VhC8hd z!EkGtt2E?Uxac5z-j-*wibF6~cUn=QjyRAIRl1BC6`=C`;^LgOS|;D`?zAIm^fSYA;i4osr*dF3upP=R9LU zi7K<)h`Ob~l&V`g6Ct0B=p>m!2ieFL>4>~waLGK6npWRv?5oefEErWv9+%zh zLNdP#$sr3W6K7YR`byYFZFQ(@BkLeWcq+5ay#p)OnZ6c1a%-KjxaYHq?v=va>v(7& zx>u6}V{7>Zt1NO=&<`ujA@cqY1q`t$pX?&@!Sl(bMwZw18!llUVrZo9DbFEWBFc9c z9))V2F?Boe?*=mkb%o2l?~3hA!<`IleCWc_rxAe)Y&Iu>@YbF;HajrZVz_9(C~ff8 zF49G-$f2~^Um-o^B+33>nHsZr*b`$8m3F0(R~{sFmpke@;16)lo@+!*kVZuAz$5-a z517^;Fi!Rdj1|vgstzL!({*2vC71#N>Yco(dZOeEMNx96EaC^x2^Z~G4J=V$RKuc* z%PD91g(aeVwF=sfp$>nRn{UJ}<3TVXn+$z7q?@vu*B1v#Km|Fu$4Lo|F+(|sV_m9- z!!ng|j&p!xBx=RWL&^I4F`_vv)tuWG@nrlC&*HPtSg!kNq{Od@I&;$;XD(E$GLg}@ zN1QpMGeR!VEW4(;GTx#Ec4KM4<)diOsMl8>22C|N8mAqa5%flB5A{WSTg;eVrk=i- z=|Y2^x2tv>|6+RKxH0v#FB17U&T>e>`l*#MrUOTuxgbJ|GsBq54zm~n_r@Q*q<}*; z%jE&|9rPCd%40~&Q)u69wBLI4-!eRf*k)hE$C_Iq*)-|WzobZq68|z#S^{sp5_&L` z2CWc1km{pXXhg@GC)d7bQ1ry#!R#OY&eR~woS7>S6|!8IKFydXI~)rxcJ$vY^S~q@ zhbVUNEx=H1v?1}7zuiy%)?skn08eC@@kV6dH1OE`S$!d&r`NH>^*YR=C9suAu3;u- z^?}>A94K057U3C8_xlhBLlKd z7xe%p#ytR$X>!_l09S%0F>Zz8D&V;nLcn#FR$mY}Zu2@S4UDS5z*J%5Y9DjQ!5ajD=6e}R`vMRN~G0)?Vf z`5j1)2v3dPFkOe0_13c`xd zB~+d4F#KJa4jGwbd)$E8ku3DNBiMd#cc@@QGzyYnA57excbr#PDx#*Z(e#MFArYm> z$r;T-p3yEP$n%>ShdjSE`{5bdb2vPE^l~6+mb`o;BHEyG#iW(c8jdV zu`9SVBhn>n5H2BsErVKp%(Z1kLxJ-`PM%&rZ5iIszsqkjvlbr1<0HoeXj%Di^2_)A z&;`i1gk*@Mu@`UT7y~fF_vIxt()Dy{l=Vlx39T4LWzcCk(5U@&6^adJ z=2ft4kTkP;a0%ADtvcRR)9t$^a^k`gD2pUnLm)C)o4kx9u@A~S>&*PQ62R4h6^7KO z8=FB&Yk)pijk$6rVbieO;(vEhFD7fbKAbBUyZ4~>r(tH;7-eRcOU*nV)3SnZNeY`x z+ZYr0w1-*k%7t}?Ne_RQ_f&Q}YLEwf$9QBT{P(<2#B(O0<82S%l%t5@-ek;^f-Kg^ zxgIFr`JQT-Qz%*S<__d&u6R4s1%LWL!r(I%^cXXTG6F}%uqlu)LEBDZIMa-hByvd7 zdO#A=uLt=Yk$xTBM54l3Vh-M?C8z~f)^-uiIrX#5lSv$dCUQiH!XrT>uiI{2Vl7+K zKe^9e%MMk6Zz@5Go+48svH$sEl&BD?Qlcn>x%NH~RCLoq>p>}+4UtpEkMDvf_^uJY z4ZvBpDP(R-%CbgZkTUSnbd^x%SWvq^VRZt##42s}CN{P&G8>;*%ES+cLKp`WwS}KW zIwUD7c`urAMXvhI{x{QefA>9LcvE~rGgp@oEa~R-_FCyyZjbjesz@RT&Udt?y zVs2-Hv@4=!F@}TG)EvX1#pGDdRlrqdZkZ%;lnDf8Z5W`BngvsXR~9N0`)e{sqh-?% z(bCcKnL`+`bk?fTvWc~$yiywYw;hyFoPI7)Do*hgH(<&3iZR+Sa&YZZ4WFa+r2x0(DV< zmN#A)Juk?hdH9_Z7ng9p;Vf!>fELaG!%eVwY3Gy*vd0(IXAe_Dk@s5-Q-`S`N>$-w z82-g~ypHUOa+?}%RbPXP7dp_e8>$Vh@;nN$$s5%e#Y;+tcp(+IvF;W#qf>@r1VV~D z92`hE`;vLXmGIQU2EY&7g&x4)mDFh!fnE$R}&tdP(yCN;uv!@ z#vDB1c`A38ketAM7jtVFhrSS|A(KqtI(C;Mo$n1nWJU_?=^CJDnDUoYw3nhc90Y4S zwSM;#a=_?A=1dBXJD6!YW|4Bv!eWTCOu_wXoJ6UJ<$=2I^+2R>!=5>!B@J_*FY)>0 zQNf-Y5aP+FDje8ZiL}Ab;apb1`>;Wi=Rv4kjrz?AC*hs}FFrUOV?GDNvsC;=b>2sZtNB@XXLjCnx?1KIS-ti4I zi>K8QzmWYzT7!Z;OGY$t&TWwHw)=Th-53yoaasdOqq&jgluv+!!RB&L}9Zy=c?7s<|OIOuLRo8MHN=CuOV8&%U^E} z!(Nv!U&XrmJduo3ymS3iyhtHsjlJ6d&xhlbZ4e)4Khz{^@-*>N=O;g5P7{A3dHz$G z@~4SyeOE1FZUMC@aO`1qch8iP*aMlxE#!#Y{%Q4k%_N(Xg6LW7JRONK;fZ7puS-_f!WDQ0GzY=D1h1`^u)zJ~?>4)AU> z)-wib#2dK0QuT?{l_%$GH`d~Q$FF847bVrNU`hk;V3W^U89XrnxFp@>@nMzklZjz5W} zb}+c%wH$N-)VdnMF4%xfI4A6ac=3Q&H(+svkXa7c0^cH(h5weV43D-Va!J{gp1@_J z+2*p*>`b7yoAu5ZcrFa_3PcoqTe8}a3=VZM!WJBeljQ+h=F%uJwI}oh3#h-o1|X5O zmrFAosB|8rn;E49aV?BWi95ariwQX*JRl!L1lYReSzGcI?JdM8$K~0DygVCkzBG_j z$OwCoioi;l;5IE*LAohynit4iGmVTJcw}Z;Ns)CdiPx-7Ys#I&GV%lH9oxs#zFZOSWFIs||2+SpO zs3^%&y{HUIL^yioEGecVMxk)LR7Qjs;2F$$YEmDsc?sSGbY6@NKyG$KaVqD_M%hHw z#SzShI9b&t3!_wBd_w^uPJ_8O`xzSG@tF(_u+NZDii+#m_UbhN`VP`E9SAHUF*1TA z0x?{9J)y@5T^E5=$)VZrq#7Rh(pNJ86z|0-pi2IW3y8si0Vpn^l zVC@#A4!RtWm?DUOaq*rSowRHZDM3W226zQy$^n*jeNw|cGckxV0C6wh{B0V+cihVl zK_V$_$Cq=+WBd-HS$)w4b8@M)fT>`(sz{tfk?J9 z;Vc`-s(cG#-J}Jv^VQ~F8~c`aPZT>ATF|1?0s@C^II;GNx760&|IfNsy@ZHlL13-} zH$;+niJlke*pP6GZ%Z0NEVWF1ZT$v@dfQm_!`icYA97-fxlOS$vE@U|g{F8@yiCCo z+??4OatzJ} z7{-kah_++{rTrf=jSW~+lz~jNhSb;wCY1?0X9q5&)*1tmT5IoxK@~xIg*#0MygS?w zcqeW(nnWy)7(RZtqs;AO&dpkr>V!aBSZooCZ?VMUTja#z`}$0T8!14Rg7cpYS!XU|a#jT4c5)1l(dzs>YYmcKM6jF#rf17ICm1LsUl@2WzzY z1!v3Z7cU(uFd!Q&Nzp-i)B)<{f5zFpcU7KX2fLD8f@%4clMwi7?LGc=vn28L$D7`7 z;0VGwFztd&8+6sHXZ-8Z-oXH*vG_Cs0lqq-X;~NQqr!lkjK{g#PkE0BOxuv=c4bNN zFyJQRZ92ubqxkF5;?L?Mf*_iRp}8xB&BCjrg%=<+W~Nr%x$^*}Y{bjK%l*L*SlRAF zn}KZMOW#2L(XD9tHN=L-n%UA`YhB3HKWGz6(i^$M)_GJ{cYimPYCyK&9jLVmF%)$5 z^i=A!o!0EJ-ZOqg#~pr4k81S{N~e3_B%Yc|jp*vbGBdL!PmR?wArqZis}cEee6Oy0 z`>M;uUxKvN=WohIh5%D0NAu4jp3sVux>IU#G|@IPF$XDT z+mNs^ml}G?RpT0N`Qb?LY;iQvH*VAwY(iOZvvXu2m8e_Li)E=d?qYEy(Y98Hh;Bk3 zNjh1Ce!T?Q>u*3bj3G;}I%VWnhNEF#B1 z?$|wA-GGsOGL|Ek^rRB!#Y-wbGZWI=_Y5zls%B`t5*f^QMexLmqm%v>ye_mAwtL&! z5xb|UkgD3PyGEkUQZ9<^+?L<2GV7dvK;;9bdhIi5UQvD3>A6(mgu1tpr}jx;bGp`J z_NBZBIU={8J3N>2PJMQL6!t+Sdo}Q})~Ze(NT~|}d>Uem{z&(Bro3^0jig&CH9QJ< zKYT-aWb`UIi{Olc%f{F$z`t}+ndg=F{SjM3_oKIbuyy)*fE`b;m-ZvnVJMME*&YCu zX?zqYGrV>KU=IL#&wnYK@=jX=picwW5&B*L{VjlcZ=Q)CPW*iwu&iFtv*kK7=R$%l zmqCdwAJRjg(k6KA!{0cbtP`E9UoWmsytZ}#EP4%c*nAIKTh8Uw!rIsH%j>ImMZ1*o zLRGnF3(Z=T8sl>~FDtwtO zgs^!h8^ijFj+FXAbl6jBcs!HSaGAP9J2;AW6fT+GNw_-!chg{SNi{n$l*lMt;g-d> zAH3*H?m|}J&Xl?_ssjaIJH;v;KJmU}iy_=%`(7-isBb}^d^s~1VE0lXB;8EQq|@xQ zSb#FIW*<5aK;Q04sh6V4J&LS*1rM2ABO}Ld8OSISn4Qq;v%4`wZ|_N|%di)lnWt8` zHVC@UPtv$gSHlFJ3IpI}YhjLt?}JL~Is@iyqHEqz!B2XKkdgEYego)t^rqBR7>kb? z8`|L7P|?gx8`!PY!>}21QGPMXPeb_?#z0SS4K&L83LoCiBPc%>BYpwOKM0jGfyV!C z*Z5<%&svfU9G&T?a1+%3)|2{DYCW|7J$P}i>si1?`5E|7d;@+RlhKJ?%bIe_5>3mt zX2f}Davhh@1_GmbKwu2)upWmmlcL2if%dcT_2}xoUrVKK>DP(5W5?!h#|_6Pa6rI# z5GS^}wP3rQbbN`|;R=vD53$~KqUnk4F7k8q$DScnn`}4C-$fgo!j_!#6I6-@Fe+evH+aGH^t%vOR#kaqC?ORbF zxj{dOA8!4^Uwv;OR>dDV5l0wYXQKg5lUk9(4SocAJWKV&e|=c1-5I5B#fH#z3Z^|; z_hCJBB#w&QJoWQMrFMbyzf^7UGI00yAd&iSweC7xsYxjGbG0*G=y&iQI*Ogc_Vsn| z+K)q7sPGofT>KxU?(Wy#RY)9yadhu=w_h4GDjipav_Nz9J1D>F=@I&5V2TEQrf`=N zJ$Z}zS-i%PQ%*hYw0}A6w6iY%ahqnE?e4Kk*WogUK|YJQnoeA=e&ULIg9ZsNqv*Du zeyn)DQa7ULc`AbwpZXg0BX=B`lABR->t!`XTvL7+B}Xf8JaM)9kvl+5!EO}XbFV61 zrPKr{fQ}vvwt?*!KR0^nhwkui(2wb1`R1+fzyaFEO8=>fIC_3JDD)KP3b){7v#Ver zviY|bJTmc*>4oX)`)4d@&SMlkR8Wbh3}-v;s4D)uQg;>g2j(N^h|V?La?Nk4gNA+I z?OqI%mTAwWpGkYuTK4N?cNPHSHbyC#wV8}NuO3zKJCR_Z5VJv7pCW=RWs6Ru0s=he{Sjko5LWORjaak_rDaCw>yFw^jH2NR`VXhdH2NT zne+3{RL`BC)y(wXDG*@3)Gi41k^<&rN1=!G;X2pT-BZjC1f?=d3X?fDiYki#=I9 zxpWp!e~-qKGmR9`P&0nXnh$jPR{pKNi zh&kc+1AY!B@g@7SpI3beKR;=>GKP$L(sS8&>XPt$@{{83aNRlTk{VS71Xn*-+Y_DBP}i8PV} z8V|dUpL|Dg>0(E5Z0)(^FzSsP(8z!Mdmf5wnevX==c+n3MJ5Sz66u~YP4X>?mL|i` zy#KD(kcuX$-a9TCroW9QVMW?!p$lgv)De4MfkxMWNM#a@=ram8!k?=;BDT>=*zmL=8f#_Ge&-k9Y+) z4)$F##P;9~YPWHN)~j#77hZ%EvuCj+Z}M%bo z2|*DAf8yg-x8K=J_*+zbEWh&UK1blAnlI}N%sfn=7`$E#&Ldt|YG_x$CGQGxF5i5c zJkqJZ@zbYB29@%Ea7>maVj-8T?DIR*)!--)I7g0&wDCP3%Q>3_BrIPrIWqY7M+0_o zh6gb65F~&8nDfs5#!vnha=JX{=n{mgB5J2Z%Tvl|vvT+(_YCLYC>+*(NtOPNXo%ay zk0;kYO=Lne%l{!Pc(07h4#Kn|GN)t@#ITyO49k{fmYQUII`}U~K*Jo}cbU@P6{4?` z84ii2dKhMbM!vG^DI_dmyO>?hzNsuCSxP)gV5`B%KELx3K@!1WZ3+|)|C`_V{Xh~C z)(NFSO*aHSJfJ`P+-Lsj?~%m}bROPwvC=;fI=`=Wags(lIbNmB^503REn{&ePC}{B z5)KCbod?d;060?SQyMMB(o`VinG7Gvwk6a`+49{P)?ry|Diu6zxajlY*}X9Ah$B9> zM$htq7vvo4V5%g;&T3ucn|LJ@A$_2`uG*;z_m*SigcbJ3+>XFkg5-oBzbe7vq#hkaJ5>|WsU zP_#HF!JFnka<7>L-}}h?P5Dm!;R#B82p55$>C0{TsM3>^`b4oif>DE>p@)70_i=mG z12}8ETP^AV=-pDN4Xk|FXCO9`TDNau>3>k_m38XPydFB_+g+YgZ?Uk=4=24Y`RiDn zjs$L{R=j?s^+M+PN2C*&=fmC;8te}n&Pz4l#(yfILpd=;iPfdz#V>CSB|Og z$U&BfL$&1aGmAQG$&$g=IZ}tAma%A)4IS9d9KeZ0Y-jqEdheHdXWJ7e7zR4)Z4jcrsfEFI#nUp9L3qFD#JCJfhcX#u}2A0`7a-9 zA&4~}{tc(rP*|ZIJ3LsNM#zG2JJ4`Zej@LtS`vAT(~^j-?y*okXB2ho=8XOWRwjl* z9kB=56CyZn4@T*uga01sqx}=>T-u1+d)9{VT?uhai$~=kqwE=b&=gz#Mn0!Q$No)0 zRi|HGHGep?>Q<`YN|c4NDbC9gws-g`qr;9Mj7+%g<;u}xJrLZ8F;YibT&R`~DyC4^NQ+`|EdK0L8A*ST^TOVU%{T&MZ*bd&ktb&`aL~q_1GY7IQmM4mg5YQ`j_nx8EcYlV-5Nkzpw*o? z0Cb&OBHUTWS)$-vZEfvKI7<|O2@BykQ+OtpM`Ce4seG~UOe>GHmM;d|;O0>-IfE7d z5gDW(&q@YqqEx2(dY!oImMtARKMHBjMoDJgibbnm9CdNyzI_Pt0x=tf?7E{&cHL3v z*-_}}QMhA2DxpV>>H;WuBIX?yn?`N&dnVRCL^X|KX;e)k%YFKBbO4iz-#Tj4=qF*U z%QeHM>;q8^nsVPk<&9#t$1-%-CQ&?X9~4jj7EQ0y-j+*?qpB{RxH8+PvuK7C6@y18 z%!77$_#3$0$0ew%__6?hJ0$a;duz%!4Fd^L*z+5D)X=G&+UvTzsCS??pVYerRFo_-Gd za28P^z64Rqjr??^j~4zki0V;?^Bez&;)?03A>LGol!&vpMHlNKUpOO^uZMiqW8uyn zAY}8AI-U0a$44pC-w!&#c7w1h9el?TLa8};LO>vnXUPNBg1AE_sHIoUgcOZ_$dw}L z0gMeJ>o8tMQY-gNIf_Jt5EmpSVx^r@01X9n2JzSCvjQyul^)98DbqD}uwHccvH^Gk zhLM&4`xz1|)FEveEwqGS1;PnUrpXk+cbpdCe7*B`0t>;3=naeyAMhyz$e z8)5RhYSgIvcg)d?f#eG4S{&fcHQjyDcNf$()m8uC^1GMiUeqn<-h*y#H+b}bF#w5) zzgRoV*x=Q=dif=1pL6aX>R+s{{=qqCU-EL30SdvWA4(zyr-0@W7VvldVgc9SvdHwa z&z)EQLVeY_XHPG@WMF|rzzN3{`luc}i;u0))UMIqwC~NSf3Dv9-n1wPaLIrgwE9}@ zz4X1=^-ECwrI+<`wB8jR#bHa3@!WsRs$X31U63>PB3$h?(cgscO((Dg?=|P`J{M{| zf3B%@?sFxz?&GHW-gF{8t;HS~ScjVkGwT=Cs~bv6PvR!~o^+9$?Doh4il1kSpBEIz zg`Dunb`{TTPsL{Y?sNg0?P0Z@_1G`2*F8J&6zltY2I?_>da`&{*1Mp>GbPl`pCWCQ)sm)-#vmSf2KBmO$0O0INa=?4Wz?=V? zMn2`8jZdxD`N{CmCX0tgTyx+e7SYWowj=PJ_~!68PKBab*gpK4#b5I52-$&~a$|5) zu3-v}Z<%HueoZ6)^Zw^2q}L&d^<<2P$?)zb8}Dv1?9^nK(8=)b%!8Gr$rvT(9afAc zC-mgWesXOffCIz^nL>T0N26(rSRQ{{wD?sxJc+B0;D{Y$;0o6OpV;Rzj1va3yP*ww6yB1RWHTueswlvY zT;ZJi<+#mw4emdtv+39LeqEJ&Ywo=mFcWuf&{?2CwiSa%*q8?q^6)p<5MAKEhBPQ- z^GQPZz=bq_vrG7!B`9P#2}smqCmSeoL`8|=J9LV9%dX)gr71gPfefK2QRX6mB??LD z^IH~8f^3XATPD>COEc7dwlJZ$ZnWfpmM>nIwMh*F8dkMCu6WwN?DRLk$U^E7N2kghg^zk z&KxkO_O^mb;S|jtQpMkCeE2v<2RHVwzmhlhGdNVzYY4*r&8~S+mX8;$W~aim`oq!! z-`A(r(oCEz9dNqLuPhA@+SH~#p|XtPF1Y5PFGS<>Z)+|?>}fJ-1NiKy$I2)?!Eg%M z!>|TVKTa}uCxSI>(o^r>NTbOw*EM-FvxntiYvPjA4k!J5GyUQsor z)0^p#A{0o_1GX9AF`FX4rAcXOz*xH;)8%Y#A$kV8dle=UXsD?n{Wkp9=N)mit-t{J zEkMXjOZ+53G)NR3-4kyK;u_SlvOo;Fwbz_(NVmYhMf8_os2@yI^hG+%BgEJy+-XRU zPUIgl@Zsqq{h@b|xh51y3LLTYWfe72%U|%kRDNytnG7*H>S7 z?Y+x$eMat~&5R(%1ya0C63k~Hz(O3hYGBc0TIMe-!R{bd#6r@L;za#KACHMkHIK0J zG>zzjF&dGhR$jfK{-JvB>Q`|8z!`z;>QG=U+oM>pJ=GIpAsrCK!sZ%stIPiZxhPZQf_O>OnbS3ZdlFF|{~IKM|N&(McnZZsS8F3)ArqV0zPuvXL@hmf_< zGK8$7NXuNg70Qs9G`6Ce-l(5kubQ%YtHXL6ay@seueqrj#N#1+s~Tjyh{E6)dKdIK zsTV^g#+qwjbGXBp+t?Z=EXJ{tb7$7S4KS_s>RiY`kViI@0jt%3@)ZWg6*^bDNjP{; zQ2CrNd0!~8PSx{G)$_ut-S z3WQXLDEMh+u|ZI$%qmmjdv$dPCJ@weJJ{9|+OV!(r@qgHE%p6kPzS7vI6(W1q6vk> z!eEBe{kl-+$pV{q?%9PB7}oCbleP~T&|&aOsQ{rpI#-wYuB`ke&OPV5IR{vIZ>Yl@ z?T!P315>x~AnNww#G=)lwm0H+2lGrwiiLm+6vh(#roPL!1PF3!`uETvifrOA^2)34 zsPCX2$94ZQepDscm7E(SqD}uL1Oopx;8qPx!P0XWp%(x7ABCenF5mF(m>(jZYyolO zSrUh7G|9D@2ilbo_3qyOW`^JBNw?=m_c+S>=wu9l8fcQ{~+I$J67- z1E=xCX)|%cfBc8RvMo*@F@FQAJxF{Z88tHqt-Rva`klro912cQ`Sq<3Wqa=auNzGB z4NRT!n`j_qaw5PY?;WYGMOgowNjFd^z(lZlVV;zuMtf#!2yfgr)Z3f|G^ntC1P=vGa))VCW8!hN1{j-Qp2m33GO z##1n#T(FXF#hzD#(TjMT@V+?GaBS3nis>WSJ75xXkNiZjQv{ua03K{S?V> z5a*h?hKs7f;5Huf#slJp1>ick^?35YkGRPj7dNr{oh8^2x$zB>f~y!{C;XxSk&EOT zV%M82DU7+Ut}wV=LEOswk0IX<1~=;=beT@AVyD8jO@G8Nu3HOp=)kRb-b!zDoQwUCd@L?N6&y3Z0i7zT zvJ49OV7OHgqari`-+PffAYp(d{zrLbUPe-iYH6 zvs`f6ADIU2_fQ!Y5S-up)!NpT&Ff#^ynO4j&8s$STD4_)>+;R7Z+L4}>$28$IDUCC z?tTVoI}Bs2a~$G_q0S+NCsEe}?83jjI)iTbf(7De!%YXOWEbzJxoA5cXFphXbf8Cz z`o~B(j>IA}O{T;!r-#AN4i)5ghUdoJsor{S-1PW=adz+uT(xz2rGx7s;SQmMdgm<@ z_evF3#Lx}sDkEo{$3YvK?#W@eVvq!$;eNADpp3tv8%9w1jR&70k4Pt#EoAT?*{B1kXF_%}DP_&3?nlin0~wp|YKBS|^5EAx?G~pp1IzcyQ z7<64n8Wk*7>rz~TH`>=v$BoVx>X|hW2I>yxG6EC824q|bx^jb0&Sulw0kx1!OlW2O zi3=Va>zv|-+m@WDb9IW-Yk4~Vi#bBB2oHG0jAKN&fjQD1FoQnxa42OON(_OgHGP|4 zh+AGT$6QV$9q*;cNI_oEYv$Ipr8jpF)WS^y&7B+`?kqP1!)<0R*^q7F3WV%`TeiuP z4#8LzYQ=@B;y{8_={jmuh|05!D|I3|v|lDs*Y73siO5GFIQ){)`bK8pv?<6kP#Bh5 zl#2rs2|w6y%U!XcCdK&2lYup13CKDgGK`-Y|5y8W9`C4mxWmh`dkoX;gtiNkU>U-3 z5;ugEM-^{3cVf9Nn?}F^I2E<@pqbbfsllcPCfkmsAYrV@v1mLFk+6bG4e>uTTEgWR z+FED{K(M>hT=XP=WZ6piA&aDLDf>Q$a$Hg5$}sEfF5we(Cr3`HpTqamyA+yIy-UX; z{>S|Gqm^33bd#>|1e}7s`ITfX^GkqLr37*%&aN%J6PP~PmZkf3t1WPh(r zj#*ReiE)R@yVB?@4>CUTI^Y{{GM}qMbdWm4@W3O!LJzpsA8<}K4UD)Ln@)>u{5W?| zfelWIR6UVSJJ~?hOoi(5K~O(PqdFFqTuw>LFDwz|tX0%@9Ci3p;Cvlc z+jWw3bCYf_Fu%4@%ufC&q7@}DWC}#PbcQzJ>vLxj)FBl4o8LK-x=i*vVlh0HPn?6 z7j>{3O9w6^MVCe$!SXO@xXIEu@z9YVI7)n|IO2O|G{jJxS**2U6hyL7%c`C@ZglnF z%9#v(lI|E&ITx=itcvTry1((eC^X_smyTF-$%NKthB2HSX1N6Jjz5e^0|#xEO9$va zs4)DM$KaNy(6iep!u9CFWq1nd=w2W?6m$h%*IW!=tL|Y3#5t!!3TfBBG-fjp`# z5;*CV5QNb*h=mA(Kp(+E9Xj7Uxt=|PB4|Az$pbniNJi%TpZu-EV7mc+$ui@&2s<&7&0l5_#&{tngY**D3o&b(ockND z8g^a;Cs){=D=Y_!mYqe&$aKHIq3+SFU4$t`n}c>JR$uDyP#UEFqo4HOE#kW8MPu-Y zxGd{3!F|&d*6`H_=s-=fAg@=cG-pV zRa$QQw|I&qN)`iM`;EnyCH~|JgH=?v(NUCT*l)~4FV;o#18B^z0s%a`;S$9iz;(I< ze6))xr6cgbJ>e3A9b>o~B#6rn;_BMJLtsvPk$ zT?3-f6*;DnzC_YUbFAko6C*>E+>aYHJEVn3cPQKM?G7mnnMQ#U5`w9{^Nv%FfD}Us zG$;B6OC61-U;G`6C`nFYX%6>{c1b}(;LJEA1g_r?kI^35;X$RB1BtWrcGM$hxSwuONCHAAVW;t&m9l0z zk{A_EhCfLVlK9T53My%?j>+mcH!U&2dJZTD?uPkd{SZvpZ#EMwBXd-Kn*tHT5O9#< zJk+}WM9zL^nI4dYu$@8rMrQ1Y(`XXM*oquhqWee? z$?N9i8frl{Jkd`RvFB{mwY4_ZaDo&)h05COd9wS8QKCYmN{ONn=6d=-5W;7Kd8GBA z6wQXrDdXLD!8v@_NZ$tFEL$2f^Ce|jqclhv_?LDmBVn>xYP!q1GoX)sVku;I{#vO~ zX2%o@p7`NVDC3Z##_;n_hcrb+??p3`T$*w{TYQ>a&&=po+}a9EK@z&FP0Ym!%yvlRelyYvX9=#P(5gDHZ(Nj!)=NKl3$p zsQ8c@F#Ndfn==o;+pRe|V?4{S)(C{flxpQ@?(LdcT7kN988%2Er|?cH0np~A)d&}jDgLeITA97FK;>dfI4 zpjwqcd@qCodk%-Y%<%dA+2FoCwO}BLZeQNDafmz$&o7T?4=K9Oo3=v zfy(&h10BkRC5~La3CF4FYHQIf505cBMQO8B^mFpC;2jCHfYT?}V*m8>U?I;};gFy@ z;uoS~X|D?QP#Uqsfw@7t+wKBVg=0_zW@-(Djn?t+L|tGDrl8-Ao*Ps{F8GnWA@_j6 zY7J{-)N29PYYd;74h;jS4c`b+U74uL4IeiS5y5iJzz{FT@en}!19GqvFFokkBgbm9 zW+JQG!O6uealrAnU~F=nMmx&o0u-h(O;%wZ3v1SZGp-NO8&N9Nk=wW7Gx#>M%B3xp7z#SR~stk7eUfYNI)n+W1PK^;~pe5BnOT z6}-YD=3wn3h4NMG41nNqEcg}wSTK@*Si|o&z@z3ku^U9!*$;KenmnG|H2%sTnd8Yn zx^jF|uKe+2Ti?}=IAaOz7#^B0-){LRHt)S&ubF;xt`I%%o~KLEtn+o%|8~(Ye?5Ld zx+z_K&z--#=-={zcIyGcm1Deg>Hc(Y30No+cm&Nn%s%R_dFdC@-d&@@!|Vrw$hgS` zbG|EzEUw!bd)|zr`QCS~nUj7lU3JZO>gte$JTvZ1^bPF2X1m@ z&{7UK4pN&&EXr6*GSfWE4Rs;!SqwW*(?HhN;`aO;@^H_fdA&-vVjX?!M_8% z+lf%@4SxCK-7z3*Rna=vzBEv|}OJTtv0tuBT+4ZMU+K5J$0!~o#R2?1Oh0JxC= zhTLe7LxcpN#vx?=uDX@=Tz-oAu5ZcrFt0PDK=aTe{ki3=VT$ ziUh9Zv>_dXSSd7B=ISCZ5mGmsON2%@_ky%iM;ck%L5iFtq(0yy^1u$`euaC2kSl*Y z-D}^GA#G{s2e1ryl)bIl5VY%R3mQPSE!4SZ`s}JaVG9n#$?||L%jrMzCd9T4(7;Y0 zk$(uItcCGdI8f<9NH;U6AL3&el@fP;4;B-0M0h|xhzJl*%d@uhE74oH@#aeva>xjK z1dG5*ncy}pRzbQcY?^n`Tr-V)9nRHbtV2W?QPFu7UJQkJH$+d<{sRYA&%r+kK;9~V`swNf$dN9Q9rO2ic=N>~F3uADb7!Nmq< zqB&HQWD#Ff1|=dKy>b>66B46PI9@6v!khFA1w9p7_x3ce)0=qEi?L0}oscL}&fkhxk z2C+m)hbylq^f;mGB9JP1H2a;T!wh*0K=E#j0;=S|xPTa27=Yp;S{{(=thhiJy%#_r zVPPgI>tzick)eA=PhVD*F#ts`Bmo=k0gf(#r2(^0fuvb~zguNmo5l85c@PrnZ zuP7RwHlPx)jKoPa3Gef#(O;Oy`L45UAd{KfLaY(U>rMvpx(+Q&w-K?*w;<+C zS`b5DZLY|%Z>iBlvtzXdEjleA0$C6&R@bVR5Y{Y+@O9vZND{B(^DZ765^nKrNka(6 z76zQHV#L{poZw_`Q>;vE`4DrVDc%$>WUvG`ZMKFSLo;E(+A2n@eW+|qH7kTAK^a2WayL0?K^!Lb3+mTaK3|3jv+0c(pgkcrli8r#66GI8tdz@^k$Yami< z4Zbj_B1q&QFfsIAaAWA*v(;!4F*#!S_}z{&x05+JYfY>1fwr*NhQa)ronU_BW~Sek z8skc8FlZnx6@muBM0uN>pn+<9Q170SdTvZYHEU*iGa7g|t!6FPn496|A2xmc7^_$g zqe8PNx)r^FakEU#*0eXSKdcI81G|j!z_MfIxB`f^$kj;*xDlUL^Ik^V<*$Or03Zfg z#KU?FVIgH4tkG&Rr^{;cONR;!2nXv@bVnX_fO`4+IKB7o%MW3n>lb?wK|4qG_ViMe-Q-$N0;tC5x+3{*d+L3XD0P zuv)&=cXv zjRr<6r)`ClT3J#&jM~Ydolf!XDE@l1I0B~!(Kr!|6M@q$Y!+S}EsPlK*C7V`oru9c zXek>ybMSJA4R0b}A~w8%HUr7Vm%f4YrCZVRYY2gXMYE;7Hqt1WiU{Fn~C=5PIV=6Tye`+c0|8@P zKr5BVOfdmPCcwp-&OFRF+iTF@8v`quv zSQJJEYK;ue)S3GbPrd7o2WG#S)rsAwAWQXF8`IXW z^z`FfkWV6eVoq`V)`$G2Tm)EqaVB*1TP-JCO8_BjTWxwC54oC143&IS$fqeBfl~nrC|@<(qVEWWK~}azFvU^ z(~al%rV`J`6Oo2#myk6628`^Ju^zdkCzUuaUeYFZ>d;=#aHNBoq4i26K;IQ<8B31H zZNqO`3*NdwYudN*bi(Z2qHs6ERmUBI|u=X|l z^7`ss(Jl@1(aNlWb1&geG(#etjP%pX^2_=lw!&oeJvV@rqW`r(Hu~dl{rpD zLZDnhB(G#2-;a#1Ofri$Ht$X)Uj9?z%WOd$ zd@cj!Y!=^s2u^2u7m^Bh zrqqp59VqzPDHbPX?5PlLyf67n2)Ed?7fUJXThJ$8&I|_Fy^9FRgV>M+d1O&RfHE&< z9~cavZ+E5COHt(>Mb^Ez7auux&p<|z!0d!xpWTfidV5bwU53rr%shpC*of})b3E?T z)i8mlG68zF7UpR9KB%;=Ghp5(y5kb?8`|L7P|?iH zI@k?03!5<)BYpwOKM0jGfyV!C*Z8|h%;D%v zM}?c9{re#|*;yg6Dj!S3*fzdo5 zFa~y5kHeQq(PCi|zaCw^_iL%tEyy1{ckI~Q?YIE;1WpMU58}jDx0YkOkvkK7vKKowQm_8S&dN*c=+#wNaX$a z){f;r+piK+-l@*1m;E2)XPhm(6214wsy>xiuRjt088>cDLl4czuZ#6xmHG7@u&ihFqr*aOH-$LSCXE!Llm1Nxm(AIN=r$p8NM$CUaaN}r-WsCH>R z6{Q#Gzt5?H@}@MbiXe_EodY_N#wN5L_SswZDP*XgjPlRw&*rctk$6fsl~lMlw{Xa! zCG*Z!C!)>?Phe?P>-!8wsH0WYlX^uWS_#;*?BCz7hcpR33-xh19P?w*S0f0a=$BFS zQ&aS?7qxB#*x4i$h^%-eUhq`n{DdBgf{!BUTk2DJ<$daeoKjCE^hz&U{4q7`m@j_q zYhOBAeNAc&Ltb{&!ZDJ6L?cz0hAj71I4!JK)kDA6_)g}JdLc4OZEXDR&>p28!PtL9 zok9qYYcPorj=7DwWj}a+!=#%|RI0l0iYpo$lvmgM940GX^LO^EVPCxYw%f-1v!L*} z#@!kHC{nu}t<+U}acpGPhtvlmg0%?;BJWyEcmA%bP8C#}k7}TDBIey&j#9B2>aIn4 zF3feTd|s*VK#lI+3%6Jd*$Xv-JD$BS+6L-uE$Zq~A5g=QSl$~MY3VIw+1tu$ z-nO9-tgrnf^W((lA}AtR-9JI1?<%MvpT_+Ce)RXSqmKGu;p6JVZ#ay8OR4&2HMYzD zy`Z3XguR~wcSt5+oDCSC$*XEe*|SRh?SNL@YogVkGSzLE3o^#JR_iXRpbMHR@WcajsUyl@S2IR9iCkLmTTkFE-Y2M6lNJ*KZ#%B;sF%Os)AP9ITHdrTjQiZq_2E@1QG%;S>6VJ}U32)X=Z@GV z{S2=@T=0?hZ<4vHE?8Gr{7Ye>veRB{!K;8)xYgsnqNQb^$lK99Oibf5K~<&%#V-}$5CMiom0z!P z4#8b|U9V4&-s5JtjW1W5t?!1Dm|jYigep-ak^`@tlQ1PX*&c<6t_`0%KI<%BBp>U? zxcD~v zFUrQdWgb5P%pP(X?>Al2ZH~b7Fbhr;$*Vh;VQEdd{?lB*u)e{jfMl9_S@FnHA31y+ z3bydWbmU>~CU=19a0<%Lyi^%$tr`&#e}1&Lt*!ND>ySQl zzlJ#Qx!Rn{9F%<02DQ)p&*ap%@ifQYP>n5CXnx1fn1a)Ob2#EO-HNSg$&?v;W?N$B zXFyU;CVx0%7`FA!UR)XhZg1&qYis$w<@N+5CQL-Y?MCzdcf)NTw2pMeK3L7x``|wK zV)8+H)s5w!^j^$uQLv3tyb2&E0&<9oWBq;rO{)SxCOO4sl2ckF7=cR7B2ru?Lh|zi z0Jt4g`&X(hA~S8GIulJ#YQyC0i?YGUc)Vo)(?PV=_bUF&BzUe(g69=L1+Z0?d~muk z_n$QujX%>B+67TAbpm`y zf{zYwX6x6DxnhF3uvbE};X`QrIW}%ZQ)-5eI$r1Tnc$4a2k^PmedfrD?83k8IS|w% zLiQr=Q}2x^ChAD6GkrMIgwg~_*MG~Bw8NMyKWDB10|oP6!$8voNt%*2N;~y*?Q}Ht zrs&DG=6Bj9AyqHc=J=f#pVJ%guh;Lzp1yS}-<0C<#*BgBDtI4VEoSF&$Ug5jUtkUL zCzMPL6h!Wwrjn^i5fdW{MmtX?Nw|gon6>ETQ=&dVP=tiYV)g9sZ#UqQY_NBlY6bsV zz`HFU>!dKK<6vc1#EH!BH$#KVP0J16eB8VQoizIk%1O2RC;o1@4Z%g4G|f}Gytupw zZ2}WFA#<9-XjTM);d>Vlc7bpYoD^A_IUh;laqmd$U;jz~zri{(_y%QHX9H1X>AZ*Ss z>$WWWrnq9za6D9kE znew~jj}cJgb9E=l(eqJ+_o|o^P)PTnX7;d@ihGUOSKjRu^j-;u9_%y4`4h+gUU_mYJ0GoLXG$H{xd*#qG0anIQ@%w(+VGQpoOWia-vF_usoS+=NtbamRJcXN6C z_#C7Y3PY_UFG;M#z#izBVqc>@YRvKUb4b;a)=TgaY?KT7&w0z~+Y+h!((;%0w=}K2 zwy+QM|HAfU%uYBLopfC<(tx+rWgdbvFV(Fck>G=En0oCwdym7+b}PW?8xf{QL>6GC zWL2_7oL@XD$BpVWolA}RDUJ;p`*s3N+~_eGQum^Hanu-Njvx8F`SXyy12wzr_g5E% z%_O|yp;`IO;8@tgJC^jEQqIFyC74t9K*UdOi}1;pM(qRJyD?n5YBw!jYkKcG`5+`t zU3&}HPRtF*xrn$7q6PPui>OAlAVbuV$@EWE_00tHD!;-2yeehRwzbVVO?^nV8&$(t z`F&UZKGm1X_iF7feRKY0^IxFrS1=RYi5L5xHJ1w_z1k@Mk{fy@KhvQ)%P z4uUNBSdt``2_qSK&xplOI=8R8?krN{g+ozS5$ZjmG4{3sm ztG*xmCbUfI7iPec){~EfcVnTy7knfGlxKqXNLoG(UMsVVWVN>U*coa%QErD89lAHE zMQTnoN2&^g7ki?x`L}vx@;Fiz;`pUiteTg!nt6HW@RCL4n>u41)dgei-*C-fW&(WX z8SsB&MwGE?Mv~#yv#f@z*oc+){WB^?JSa!a2nkA}@-iVKaCqUfP`PEF^bU^^mxLw9 zqWZmEM@PL9Kl5tA<@-v`9>gT)nT;1~&Ilxt`DRLVaS~pn&t5AVK$8DtEMhN%cD}rBsH;)^+rV3_0ml5}4 zN7lB9epwT(pRuhsR<&-VoKV|JIr-I9G;g=f+oR@tWzejLt_a1xY8Q%E{cbLfJ)N-^ z^Y=0%0oHH9`jcQowwvch5^QAQ1@ltfV#wufl&HyMzwG-8PRf7GL?CZV-B@JPw;8jn zGc>*DE#}%GA+UD12`a*rF9WhiWK}oH6&8S|se5pCfLysr-jSegPGf%a;Orixf$b-w z{Yu+@)h5{|;i#9Md=-WmXGNKQ-om0Tkl(RTq}hTsZ;}I2JQ*cz*Z$GkVKQ}z!w~XG zWJ!7RF|^XEPJ(lALXq^yspzNE_S3aVTBLm1ENn@Cp_t!OQmg3%{d|$X@BKwikGn-4 zLx&IEBX5~*vq{=89dY>@oH!D6jr`*=B}K_xf)+wTcrhvBcV5gvNE8XmCuRzWnc#^z zEQPwUOIslJ#-@?<(~3u3WmRsWvl;ZF{_;sswc{pXU1*t2kZKZFD(^F9Z_!iNErqkL zTi1?*J|fDLyDG|R#nya>N&5IUPlhvjQ4JFDp0LQ^thxU$3OQBavzla%P@BXr8#6v4 z(GKzQLm1-Qn@-FMl3qI*6{$AFT^-o-;zT^gRGf5HK7ay3fR&bxK@oMZhQZftKt*uS zHR@G#oYcQ+;*{8G;_`wIiQ^UL@3CbJK-`;BSoyF-w81IVKL8DRHuO&6=o1M~k&kAi zByVCMwozR`@h?R!C}6!y3g1R`fY&wn!gFzY%fv?6gHc-)`8E&8aq}0MK1c+^KN=%| z5B|#bHA$zPeVwB86?9J2Ej<0;hNA;AE}k~>$6;-u&Iaf7l7WRCHInYekW&QtY6dA4aIOkbjXIc+96L_htU4J48k&H zhyU4kHI)p}Z%H`S0DK$5eHJ=|&!ET8gKgpjNh_gzgZCEVo%THpwXoP6MUE)*!jtjJ?`2 zxeH**TZaSOY>J#7sDfF`{Ek3Sf^I;0UOJBmCsSYIF4QZ#<&6Y0J)Y3`t+$#`98R{9 zz`-i%8TooV%hGRwA)Dw$vsyNQZMLw@STow9lOD`qo1(Y6>R|v(r-kXt!stsCbHlVK z*UF2g5n9}H;_ERZN?sG{9Jh~S(E^y;Ac zcH}qCc3a@rHIe*@C>I=7lB_zEh01!FeL2t|U)44Su1@IaQ>uYAz5eUrYJ~*fE6N6K z9cY7TaUS3)JB-~f$&aZx8f>UhylmSvgUuS-CU$@~<^<`;LKVrwJy1wcI(cR$PR+b> zW6SQ=<6EBk8qc3A*n2n!&(LA~%`6aGIs9#F6_r|um^T`UykKY@CM z1jSOQ@{y^x864vPAEycI(PGsZewtyiP{wO3&@Ph#=nd+EaxsvV7VWBIMXN6TfYMtI zi?S4m7osYl98`jGp;(e;i@2GH^W$FLNN$O|ev6_8_p;p59F{4GLa`i3r$yaG)ZP^0 zK$wU2Pl>S5rid$`d9kIr7;@|&=+aNjZu4BOo%STd-C@NLltZ}}7?uhZmcdh2zYk|tkGpu{C11U4!o-UwO}Ol< zm+-?x`{CkA7mxcj7dpk!SSe^1J}T#Tl9(%2ek&zt%MxS$^-UStU~n)pv{aQdRD5x~ z&clcyh+>frL465ozRZ~EU>+j?J{-OhG!@^=&{95MC}H$~JtY&Co?J0Qi(D8}EvkoB z%2H!y!vSEdO2s1epFOZ6sA~zQmEvW2DGWnfl=Vomf@2}+dILMh=96sjCJ1`_&`FDXq$>jMl0 z)O9A3JwUthu*0AN3+njmp%@BMK#i!gLy^qH@(11F$C#3VS@6o#8tRn}14r5RQ^c<* zz#L%j&;vYo=HOMPGk2UF_Cm2h@lS{H=OV`#Q)Mw#84bQOHalhBQ44pmWbJFVsMc7z zt^A>_R$0IqC|@c?WvEhchNl@-p6WQNOZ3mA+K#7FN2e~-BXWi3Fth@Pm3pL9+ia@_ zVrm=MovqrYYEJMX&C3p7Ky6{bK~v(j+L-TS9kJ9fYeJR~%PQQy#a&1LPiFA^9)aIR zCwNf9Z#$f57g-H4sdrIzuu6vK&T8x54%Z^mX~_?* zYp;ou>I37Lf!z|Il0yN0ovQ-lyhC{}q4jGEs{%D~mXW8ZK{#1jFQLP3Q9_>gP-U4X zSe4Lge0Id0Pgb4Rge8QFJhCpS*PTfNwQkD~4{d-^3O0c; zTqs5A1PAcwbRN3YV0Fdidk!}(6Fu2T!R$q)U1x3c5LZi@YWXR6OcIk)d}=B9b+%+Z zEEFFZ5>yJA76pJkkXTl!i8(|Vj@6&$ol<{%x3K~HCe`LJsKngiR$gl2F5^gdYXs#qvka4fI^<=mh)09kCh<%r$`L|4p2UNE5(8b- zY$cuJTe0|chMKh79AAyd%Y=D_A7l_584Dhw#x+_hs5!1>Z%Z~?p*k|DQ;o4H z28P9DE6&$gTY^@)>Hb<;NfFSVZbrsF*Cr)?V68WX+1N??d=x0KubcC-eNCxn=8q9t z@yYtpBSw$-bp5FF>PP=AK8zgsX?!1Df8MD2Ppz(gC4j|a5|PS7{D(|w--RNdKX`~Q-_R*~2$y4c?Cil`e5uXv0VN8tL3g;9 zNGSPYY}WrSHXVKsJ=iEg7vyqtKf}Sf2)-us@4!8vPD&Rt9d>I0VBm{b4U;bdeKIqb zR(%uCR*4^57nnGa6=2|2Fz{paumUd^)Ko~QC|h+JfvbU;wa?m}SV?&scf2sqg``St zldvzP6+JCLg5u1%;AcW~-LcP#>B!>3kVls8h8%>;m=h}B|1sD7gJ};#lFzg*-#eEJXMH3ue2#&p2t8U;GOPvm3@r<93@3VgRufu`0R9pF?SlUU{R=05A zH#27IPV?p9Q!Pb=b1x7gl9&dXRL-&mrjS;N7OuQz<)LzGpI|Ut7{acpDBauQB;@tj!q}y#@P#By z(e|!YFI-y5F5KwaSLI4HL!2RzsGZR60@kDC!9?q96-Wy1OSGs#B{cvPR`jOW6}>54 zkw?;TB8A@3R`>QG%-${_&V=J|&PL%NjmULkj;pnL-IHsUbM2btJgixQR=5*|h5VgY z+$!PL>J?b5m`-vlrjt7ab~3m@0ig%h-vKOV*_R8qbP0Ch*1ClD+#2_GJDgBZ5Clw9 z9RaD;=Q$B%(s3~GDm3h5a07s&mG4Td3M_3KsJ2|8H%c%Cy3mA8E6Ejjf~8AveUwzN z>;fH*e3)rV17;>m1Bhk7aGOSyqrTYVkYh^%#al$7|69I5pd_;5fLPvX%g5@g{6g}y>m%z zk0*1t-(i;5(pH9&ncbq>wT{%t?tH4*=q<5ZjId?=oQ09|&J>oiM-+V8ZACR3?TL03 zp`5hU*J~#0i6RbAsEWg?0<#J&xB3dw+?J?8uhu~^56DphjTii<88sa|%BW%Z!PI0K^&1vu zXBAAcLR;qBMhl)6#(PFPpHY#p%es4q#$Z{$iT8+naFmbFw&mlqpF*Gc zJ~9K$D#;{izeGX2j{9bmf7?R#XZ~=k$g%{lNFWW$FWCb7&1Isk*eV+BW56~BY!&smPej^c>ik|K4ee4m zXU(IdkWAi$uanXsuJYc)+=tMNM$?fLd=GyYC%J)wEyA*i_x{+6KMhT$AyD7IH>IUM z5IJ>XF}iQN9MOt>@0IYgNC%B9d=_l_ZN@;%+Hl`^naFhDyBm#fgsEfyv5!Rr!RZ+* zAI9kvRxnGYI1T0epXip#$G-l1Mdpy^Az0f$U@Cg9kgp)Czk--N{FdJ}kKW_J>fp~siFOENy z=h6H|G~X(hqIm+aHCIGtSb^!bf0D^OI)_c(Pt!f~M zV%Yg(`p*w97(EE&U4Y^Hmb88VxMQ?XyniEvGzZw{n5R$ z{vxn@6{@-=9Dm*EN#d)|cY^)?Gg|+gr(VTEpCj`{uEqV^a_)Zz_h;nX|2pp9T7ADT oWaYMg{K7)h!ym{#oQsg$3UQ4-oay~eDV_QsJN~lzQ%oWL56d4ty8r+H literal 0 HcmV?d00001 diff --git a/modules/MMM-MQTTbridge/LICENSE b/modules/MMM-MQTTbridge/LICENSE new file mode 100644 index 0000000000..87f03d3f9c --- /dev/null +++ b/modules/MMM-MQTTbridge/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Tom-Hirschberger + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/modules/MMM-MQTTbridge/MMM-MQTTbridge.js b/modules/MMM-MQTTbridge/MMM-MQTTbridge.js new file mode 100644 index 0000000000..4da34873c0 --- /dev/null +++ b/modules/MMM-MQTTbridge/MMM-MQTTbridge.js @@ -0,0 +1,458 @@ +/* eslint-disable indent */ +/* global Module */ + +/* MagicMirror² + * Module: MMM-MQTTbridge + * MIT Licensed. + */ + +Module.register("MMM-MQTTbridge", { + defaults: { + mqttDictConf: "./dict/mqttDictionary.js", + notiDictConf: "./dict/notiDictionary.js", + mqttServer: "mqtt://:@localhost:1883", + stringifyPayload: true, + newlineReplacement: null, + notiConfig: {}, //default values will be set in start function + mqttConfig: {}, //default values will be set in start function + }, + + getScripts: function () { + return [this.file('node_modules/jsonpath-plus/dist/index-browser-umd.js')]; + }, + + start: function () { + const self = this + Log.info("Starting module: " + self.name); + self.config.mqttConfig = Object.assign({ + qos: 0, + retain: false, + clean: true, + rejectUnauthorized: true, + listenMqtt: false, + interval: 300000, + onConnectMessages: [] + },self.config.mqttConfig) + + self.config.notiConfig = Object.assign({ + qos: 0, + listenNoti: false, + ignoreNotiId: [], + ignoreNotiSender: [], + onConnectNotifications: [] + },self.config.notiConfig) + + self.sendSocketNotification("CONFIG", self.config); + self.loaded = false; + self.mqttVal = ""; + setTimeout(() => { + self.updateMqtt(); + }, 500); + self.cnotiHook = {} + self.cnotiMqttCommands = {} + self.cmqttHook = {} + self.cmqttNotiCommands = {} + self.ctopicsWithJsonpath = {} + self.lastNotiValues = {} + self.lastMqttValues = {} + }, + + isAString: function(x) { + return Object.prototype.toString.call(x) === "[object String]" + }, + + validateCondition: function(source, value, type, lastValue){ + if (type == "eq"){ + if ((typeof source === "number") || (this.isAString(source))){ + return source === value + } else { + return JSON.stringify(source) === value + } + } else if (type == "incl"){ + if (this.isAString(source)){ + return source === value + } else { + return JSON.stringify(source).includes(value) + } + } else if (type == "mt") { + if (this.isAString(source)){ + return new RegExp(value).test(source) + } else { + return new RegExp(value).test(JSON.stringify(source)) + } + } else if (type == "lt"){ + return source < value + } else if (type == "le"){ + return source <= value + } else if (type == "gt"){ + return source > value + } else if (type == "ge"){ + return source >= value + } else if (type == "time") { + if (lastValue != null) { + if ((Date.now() - lastValue[1]) > value){ + return true + } else { + return false + } + } else { + return true + } + } else if (type == "tdiff") { + if (lastValue != null) { + if (JSON.stringify(source) != lastValue[0]){ + return true + } else { + if (value > 0){ + if ((Date.now() - lastValue[1]) > value){ + return true + } else { + return false + } + } else { + return false + } + } + } else { + return true + } + } + + return false + }, + + //https://stackoverflow.com/questions/3710204/how-to-check-if-a-string-is-a-valid-json-string + tryParseJSONObject: function (jsonString) { + try { + var o = JSON.parse(jsonString); + + // Handle non-exception-throwing cases: + // Neither JSON.parse(false) or JSON.parse(1234) throw errors, hence the type-checking, + // but... JSON.parse(null) returns null, and typeof null === "object", + // so we must check for that, too. Thankfully, null is falsey, so this suffices: + if (o && typeof o === "object") { + return o; + } + } + catch (e) { } + + return false; + }, + + updateMqtt: function () { + const self = this + self.sendSocketNotification("MQTT_BRIDGE_CONNECT"); //request to connect to the MQTT broker + + setTimeout(() => { + self.updateMqtt(); + }, self.config.mqttConfig.interval); + }, + + publishNotiToMqtt: function(topic, payload, options = {}) { + const self = this + + if (self.isAString(payload)){ + self.sendSocketNotification("MQTT_MESSAGE_SEND", { + mqttServer: self.config.mqttServer, + topic: topic, + payload: payload, + options: options + }); + } else { + self.sendSocketNotification("MQTT_MESSAGE_SEND", { + mqttServer: self.config.mqttServer, + topic: topic, + payload: JSON.stringify(payload), + options: options + }); + } + }, + + mqttToNoti: function (payload) { + const self = this + let msg = payload.data + let curMqttHook = self.cmqttHook[payload.topic] + + // Parse the data of the payload as a JSON and send all of it in an object + // We suppose we only have one mqtt hook for each topic and one notification command for each hook + let curCmdConf = self.cmqttNotiCommands[curMqttHook[0].mqttNotiCmd[0]][0] + let value = self.tryParseJSONObject(msg) + if (value != false) { + self.sendNotification(curCmdConf.notiID, value) + this.sendSocketNotification("LOG","[MQTT bridge] MQTT -> NOTI issued: " + curCmdConf.notiID + ", payload: "+ value); + } + // Skip the rest of the default implementation + return; + + //if there are configured jsonpath settings for this topic we create the json object and the jsonpath values + //this way they only get calculated once even if they are used by more than one element + if (typeof self.ctopicsWithJsonpath[payload.topic] !== "undefined"){ + let jsonObj = self.tryParseJSONObject(msg) + if (jsonObj != false){ + for(let curPath in self.ctopicsWithJsonpath[payload.topic]){ + let value = JSONPath.JSONPath({ path: curPath, json: jsonObj }); + if(Array.isArray(value) && (value.length == 1)){ + value = value[0] + } + + self.ctopicsWithJsonpath[payload.topic][curPath] = value + } + } + } + + for(let curHookIdx=0; curHookIdx < curMqttHook.length; curHookIdx++){ + let curHookConfig = curMqttHook[curHookIdx] + // { + // payloadValue: '{"state": "ON"}', + // mqttNotiCmd: ["Command 1"] + // }, + let value = msg + //if a jsonpath is configured in commad configuration we use the pre-calculated value now + //if the message was not a valid JSON we still use the raw value and write a message to the log instead + if(typeof curHookConfig.jsonpath !== "undefined") { + value = self.ctopicsWithJsonpath[payload.topic][curHookConfig.jsonpath] + if(value == null){ + this.sendSocketNotification("LOG","[MQTT bridge] Invalid JSON: There is configured a jsonpath setting for topic "+payload.topic + " but the message: "+msg+" is not a valid JSON. Using original value instead!"); + value = msg + } + } + + //now we need to replace all new lines in the message if "newlineReplacement" is configured + //either in the global option or special in this configuration + if (typeof curHookConfig.valueFormat !== "undefined") { + let newlineReplacement = curHookConfig.newlineReplacement || self.config.newlineReplacement + if (newlineReplacement != null) { + value = String(value).replace(/(?:\r\n|\r|\n)/g, newlineReplacement) + } + value = eval(eval("`" + curHookConfig.valueFormat + "`")) + } + + //now that we have the parsed and replaced value we can check if the payloadValue is matched (if payloadValue is present) + if ( + (typeof curHookConfig.payloadValue === "undefined") || + (curHookConfig.payloadValue == value) + ){ + //if additional conditions are configured we will now check if all of them match + //only if all of them match further processing is done + let conditionsValid = true + if (typeof curHookConfig.conditions !== "undefined"){ + let curLastValues = self.lastMqttValues[payload.topic][curHookIdx] || null + for(let curCondIdx = 0; curCondIdx < curHookConfig.conditions.length; curCondIdx++){ + let curCondition = curHookConfig.conditions[curCondIdx] + if((typeof curCondition["type"] !== "undefined") && (typeof curCondition["value"] !== "undefined")){ + if(!self.validateCondition(value,curCondition["value"],curCondition["type"],curLastValues)){ + conditionsValid = false + break + } + } + } + } + + //if all preconditions met we process the command configurations now + if (conditionsValid){ + self.lastMqttValues[payload.topic][curHookIdx] = [JSON.stringify(value), Date.now()] + let mqttCmds = curHookConfig.mqttNotiCmd || [] + for(let curCmdIdx = 0; curCmdIdx < mqttCmds.length; curCmdIdx++){ + let curCmdConfigs = self.cmqttNotiCommands[mqttCmds[curCmdIdx]] + for(let curCmdConfIdx = 0; curCmdConfIdx < curCmdConfigs.length; curCmdConfIdx++){ + let curCmdConf = curCmdConfigs[curCmdConfIdx] + // { + // commandId: "Command 1", + // notiID: "REMOTE_ACTION", + // notiPayload: {action: 'MONITORON'} + // }, + if (typeof curCmdConf.notiID !== "undefined"){ + if (typeof curCmdConf.notiPayload === "undefined") { + self.sendNotification(curCmdConf.notiID, value) + this.sendSocketNotification("LOG","[MQTT bridge] MQTT -> NOTI issued: " + curCmdConf.notiID + ", payload: "+ value); + } else { + self.sendNotification(curCmdConf.notiID, curCmdConf.notiPayload) + this.sendSocketNotification("LOG","[MQTT bridge] MQTT -> NOTI issued: " + curCmdConf.notiID + ", payload: "+ JSON.stringify(curCmdConf.notiPayload)); + } + } else { + this.sendSocketNotification("LOG","[MQTT bridge] MQTT -> NOTI error: Skipping notification cause \"notiID\" is missing. "+JSON.stringify(curCmdConf)); + } + } + } + } + } + } + }, + + notiToMqtt: function(notification, payload) { + const self = this + let curNotiHooks = self.cnotiHook[notification] + for(let curHookIdx = 0; curHookIdx < curNotiHooks.length; curHookIdx++){ + let curHookConfig = curNotiHooks[curHookIdx] + // { + // payloadValue: true, + // notiMqttCmd: ["SCREENON"] + // }, + + //now we need to replace all new lines in the message if "newlineReplacement" is configured + //either in the global option or special in this configuration + let value = payload + if (typeof curHookConfig.valueFormat !== "undefined") { + let newlineReplacement = curHookConfig.newlineReplacement || self.config.newlineReplacement + if (newlineReplacement != null) { + value = String(value).replace(/(?:\r\n|\r|\n)/g, newlineReplacement) + } + value = eval(eval("`" + curHookConfig.valueFormat + "`")) + } + + if ( + (typeof curHookConfig.payloadValue === "undefined") || + (JSON.stringify(curHookConfig.payloadValue) == JSON.stringify(value)) + ){ + //if additional conditions are configured we will now check if all of them match + //only if all of them match further processing is done + let conditionsValid = true + if (typeof curHookConfig.conditions !== "undefined"){ + let curLastValues = self.lastNotiValues[notification][curHookIdx] || null + for(let curCondIdx = 0; curCondIdx < curHookConfig.conditions.length; curCondIdx++){ + let curCondition = curHookConfig.conditions[curCondIdx] + if(typeof curCondition["type"] !== "undefined"){ + if (typeof curCondition["value"] !== "undefined") { + if(!self.validateCondition(value,curCondition["value"],curCondition["type"],curLastValues)){ + conditionsValid = false + break + } + } + } + } + } + + //if all preconditions met we process the command configurations now + if(conditionsValid){ + self.lastNotiValues[notification][curHookIdx] = [JSON.stringify(value),Date.now()] + let notiCmds = curHookConfig.notiMqttCmd || [] + for(let curCmdIdx = 0; curCmdIdx < notiCmds.length; curCmdIdx++){ + let curCmdConfigs = self.cnotiMqttCommands[notiCmds[curCmdIdx]] + for(let curCmdConfIdx = 0; curCmdConfIdx < curCmdConfigs.length; curCmdConfIdx++){ + let curCmdConf = curCmdConfigs[curCmdConfIdx] + // { + // commandId: "SCREENON", + // mqttTopic: "magicmirror/state", + // mqttMsgPayload: '{"state":"ON"}', + // options: {"qos": 1, "retain": false}, + // retain: true, + // qos: 0 + // }, + if (typeof curCmdConf.mqttTopic !== "undefined"){ + let curStringifyPayload + if(typeof curCmdConf.stringifyPayload !== "undefined"){ + curStringifyPayload = curCmdConf.stringifyPayload + } else { + curStringifyPayload = self.config.stringifyPayload + } + let msg + if (typeof curCmdConf.mqttMsgPayload === "undefined") { + if(curStringifyPayload){ + msg = JSON.stringify(value) + } else { + msg = value + } + } else { + if(curStringifyPayload){ + msg = JSON.stringify(curCmdConf.mqttMsgPayload) + } else { + msg = curCmdConf.mqttMsgPayload + } + } + + let curOptions = curCmdConf.options || {} + + if (typeof curCmdConf.retain !== "undefined"){ + curOptions["retain"] = curCmdConf.retain + } else { + curOptions["retain"] = self.config.mqttConfig.retain + } + if (typeof curCmdConf.qos !== "undefined"){ + curOptions["qos"] = curCmdConf.qos + } else { + curOptions["qos"] = self.config.mqttConfig.qos + } + + self.publishNotiToMqtt(curCmdConf.mqttTopic, msg, curOptions); + } else { + this.sendSocketNotification("LOG","[MQTT bridge] NOTI -> MQTT error: Skipping mqtt publish cause \"mqttTopic\" is missing. " + JSON.stringify(curCmdConf)); + } + } + } + } + } + } + }, + + socketNotificationReceived: function (notification, payload) { + const self = this + switch (notification) { + // START MQTT to NOTI logic + case "MQTT_MESSAGE_RECEIVED": + self.mqttToNoti(payload); + break; + // END of MQTT to NOTI logic + case "ERROR": + self.sendNotification("SHOW_ALERT", payload); + break; + case "DICTIONARIES": //use dictionaries from external files at module sturt-up + self.cnotiHook = payload.cnotiHook; + self.cnotiMqttCommands = payload.cnotiMqttCommands; + self.cmqttHook = payload.cmqttHook; + self.cmqttNotiCommands = payload.cmqttNotiCommands; + self.ctopicsWithJsonpath = payload.ctopicsWithJsonpath; + + for (let curNotification in self.cnotiHook) { + self.lastNotiValues[curNotification] = {}; + } + + for (let curTopic in self.cmqttHook) { + self.lastMqttValues[curTopic] = {}; + } + break; + case "CONNECTED_AND_SUBSCRIBED": + for (let curMsg of self.config.mqttConfig.onConnectMessages){ + self.publishNotiToMqtt(curMsg.topic, curMsg.msg, curMsg.options || {}) + } + + for (let curNoti of self.config.notiConfig.onConnectNotifications){ + if (typeof curNoti.payload !== "undefined"){ + self.sendNotification(curNoti.notification, curNoti.payload) + } else { + self.sendNotification(curNoti.notification) + } + } + } + }, + + notificationReceived: function (notification, payload, sender) { + const self = this + // START of NOTIFICATIONS to MQTT logic + + // Filtering... + if (!self.config.notiConfig.listenNoti) { return; } // check whether we need to listen for the NOTIFICATIONS. Return if "false" + var sndname = "system"; //sender name default is "system" + + if (!sender === false) { sndname = sender.name; }; //if no SENDER specified in NOTIFICATION, the SENDER is left as "system" (according to MM documentation), otherwise - use sender name + + // exclude NOTIFICATIONS where SENDER in ignored list + for (var x in self.config.notiConfig.ignoreNotiSender) + { + if (sndname == self.config.notiConfig.ignoreNotiSender[x]) { return; } + } + // exclude NOTIFICATIONS where NOTIFICATION ID in ignored list + for (var x in self.config.notiConfig.ignoreNotiId) + { + if (notification == self.config.notiConfig.ignoreNotiId[x]) { return; } + } + + if (typeof self.cnotiHook[notification] !== "undefined"){ + if (typeof payload !== "undefined"){ + self.notiToMqtt(notification, payload); + } else { + self.notiToMqtt(notification, ""); + } + } + } + // END of NOTIFICATIONS to MQTT logic +}); diff --git a/modules/MMM-MQTTbridge/conditions.md b/modules/MMM-MQTTbridge/conditions.md new file mode 100644 index 0000000000..c2375f81eb --- /dev/null +++ b/modules/MMM-MQTTbridge/conditions.md @@ -0,0 +1,168 @@ +# Conditions + +As of version 2.1 of the module it is possible to configure complex conditions instead of a simple compare to deceide which commands shuld be called depending of the content of notification payloads or MQTT messages. + +As the compare is done after selecting elements with jsonpath (look to [jsonpath.md](jsonpath.md) for further details ) and after the value formatting (look to [valueFormat.md](valueFormat.md) for further details) you only need to care about the current pre-processed value at this point. + +You can define the `conditions` option for `mqttPayload` elements in the `mqttDictionary.js` or in the elments of `notiPayload` in `notiDictionary.js` like in the following examples: + +```js + mqttPayload: [ + { + jsonpath: "output.myValue", + valueFormat: "{value}", + conditions: [ + { + type: "gt", + value: 10.1 + }, + { + type: "lt", + value: 12.1 + } + ], + mqttNotiCmd: ["Command 0"] + }, + ], +``` + +```js + notiPayload: [ + { + newlineReplacement: "#", + valueFormat: "\"${value}\".replace(\"test\",\"\").replace(\"abc\",\"\")", + conditions: [ + { + type: "tdiff", + value: 30000 + }, + ], + notiMqttCmd: ["Command 0"], + } + ] +``` + +:information_source: All conditions defined need to match for the commands to be processed (AND condition)! + +The following types are possible: + +* `lt` - The current value needs to be lower than the configured one +* `le` - The current value needs to be lower or equal than the configured one +* `gt` - The current value needs to be greater than the configured one +* `ge` - The current value needs to be greater or equal than the configured one +* `eq` - The current value needs to be equal to the configured one +* `incl` - The current value needs to include the configured one +* `mt` - The current value needs to match the configured [Regex pattern](https://www.w3schools.com/jsref/jsref_obj_regexp.asp) +* `time` - Only send the message / notification if the time between the last send one and the current one is greater than the amount of milliseconds configured +* `tdiff`- Only send the message / notification if the current value is different to the last send one or if the configured amount of milliseconds is reached. If the `value` is set to `0` or lower the time does not matter and the values only message / notification will only be send if the content changed + +Let's look at some examples now. + +Let us assume we do have the following MQTT message configuration: + +```js + mqttPayload: [ + { + conditions: [ + { + type: "gt", + value: 10.1 + }, + { + type: "lt", + value: 12.1 + } + ], + mqttNotiCmd: ["Command 0"] + }, + ], +``` + +Now we receive the message with the payload: + +```js +10.2 +``` + +As the value is greater than 10.1 and lower than 12.1 the command `Command 0` will be initiated. + +Now we receive the message with the payload: + +```js +12.2 +``` + +As the value is greater than 12.2 nothing will happen. + +Let us assume we do have the following MQTT message configuration: + +```js + mqttPayload: [ + { + conditions: [ + { + type: "mt", + value: ".*test[2-4].*" + }, + ], + mqttNotiCmd: ["Command 0"] + }, + ], +``` + +Now we receive the message with the payload: + +```text +mystringstart test123abc +``` + +Although the string has a sub string that starts with `test` nothing will happen cause only if `test` is followed by the digits `2`, `3` or `4` the string matches. + +Now we receive the message with the payload: + +```text +myotherstringtest test24 and some more text +``` + +As the string `test` is followed by `2` the command `Command 0` is issued. + +Let us assume we do have the following Notification configuration: + +```js + notiPayload: [ + { + conditions: [ + { + type: "tdiff", + value: 30000 + }, + ], + notiMqttCmd: ["Command 0"], + } + ] +``` + +If we receive a notification `test` the notiMqttCmd `Command 0` will be initiated. +If we receive a notification `test` with a different payload the `Command 0` will be initiated again. +If we receive a notification `test` with the same payload WITHIN 30 seconds the command `Command 0` will NOT be initated. +If we receive a notification `test` with the same payload AFTER 30 seconds the command `Command 0` will be initiated. + +Let us assume we do have the following Notification configuration: + +```js + notiPayload: [ + { + conditions: [ + { + type: "time", + value: 20000 + }, + ], + notiMqttCmd: ["Command 0"], + } + ] +``` + +If we receive a notification `test` the notiMqttCmd `Command 0` will be initiated. +If we receive a notification `test` again WITHIN 20 seconds the command `Command 0` will NOT be initated. +If we receive a notification `test` again AFTER 20 seconds the command `Command 0` will be initated. diff --git a/modules/MMM-MQTTbridge/dict/mqttDictionary.example.js b/modules/MMM-MQTTbridge/dict/mqttDictionary.example.js new file mode 100644 index 0000000000..c0377b3ce5 --- /dev/null +++ b/modules/MMM-MQTTbridge/dict/mqttDictionary.example.js @@ -0,0 +1,38 @@ +var mqttHook = [ + { + mqttTopic: "myhome/smartmirror/led/set", + mqttPayload: [ + { + payloadValue: '{"state": "ON"}', + mqttNotiCmd: ["Command 1"] + }, + { + payloadValue: '{"state": "OFF"}', + mqttNotiCmd: ["Command 2"] + }, + ], + }, + { + mqttTopic: "magicmirror/state", + mqttPayload: [ + { + payloadValue: "1", + mqttNotiCmd: ["Command 1", "Command 2"] + }, + ], + }, + ]; +var mqttNotiCommands = [ + { + commandId: "Command 1", + notiID: "REMOTE_ACTION", + notiPayload: {action: 'MONITORON'} + }, + { + commandId: "Command 2", + notiID: "REMOTE_ACTION", + notiPayload: {action: 'MONITOROFF'} + }, + ]; + + module.exports = { mqttHook, mqttNotiCommands}; diff --git a/modules/MMM-MQTTbridge/dict/mqttDictionary.js b/modules/MMM-MQTTbridge/dict/mqttDictionary.js new file mode 100644 index 0000000000..aa888e5757 --- /dev/null +++ b/modules/MMM-MQTTbridge/dict/mqttDictionary.js @@ -0,0 +1,32 @@ +var mqttHook = [ + { + mqttTopic: "greetings/face_added", + mqttPayload: [ + { + mqttNotiCmd: ["Face added"] + }, + ], + }, + { + mqttTopic: "greetings/face_removed", + mqttPayload: [ + { + mqttNotiCmd: ["Face removed"] + }, + ], + }, + ]; +// The payload of the MQTT message must contain an array of strings called 'names' +// that contains the name of the persons that have been recognized +var mqttNotiCommands = [ + { + commandId: "Face added", + notiID: "FACE_ADDED" + }, + { + commandId: "Face removed", + notiID: "FACE_REMOVED" + }, + ]; + + module.exports = { mqttHook, mqttNotiCommands}; diff --git a/modules/MMM-MQTTbridge/dict/notiDictionary.example.js b/modules/MMM-MQTTbridge/dict/notiDictionary.example.js new file mode 100644 index 0000000000..8de4230a2b --- /dev/null +++ b/modules/MMM-MQTTbridge/dict/notiDictionary.example.js @@ -0,0 +1,49 @@ + +var notiHook = [ + { + notiId: "USER_PRESENCE", + notiPayload: [ + { + payloadValue: true, + notiMqttCmd: ["SCREENON"] + }, + { + payloadValue: false, + notiMqttCmd: ["SCREENOFF"] + }, + ], + }, + { + notiId: "INDOOR_TEMPERATURE", + notiPayload: [ + { + payloadValue: '', + notiMqttCmd: ["Command 2"] + }, + ], + }, +]; +var notiMqttCommands = [ + { + commandId: "SCREENON", + mqttTopic: "magicmirror/state", + mqttMsgPayload: '{"state":"ON"}' + }, + { + commandId: "SCREENOFF", + mqttTopic: "magicmirror/state", + mqttMsgPayload: '{"state":"OFF"}' + }, + { + commandId: "Command 1", + mqttTopic: "magicmirror/state", + mqttMsgPayload: '{"state":"OFF"}' + }, + { + commandId: "Command 2", + mqttTopic: "magicmirror/state", + mqttMsgPayload: '' + }, +]; + +module.exports = { notiHook, notiMqttCommands }; diff --git a/modules/MMM-MQTTbridge/jsonpath.md b/modules/MMM-MQTTbridge/jsonpath.md new file mode 100644 index 0000000000..e19524cd9a --- /dev/null +++ b/modules/MMM-MQTTbridge/jsonpath.md @@ -0,0 +1,84 @@ +# JSONPath-plus + +As of version 2.1 of the module it is possible to parse the MQTT messages as JSON and select single values of the JSON with [JSONPath-Plus](https://github.com/JSONPath-Plus/JSONPath). + +:warning: +If the MQTT message is not a valid JSON the parsing will fail and so does the [JSONPath-Plus](https://github.com/JSONPath-Plus/JSONPath) selection. As a result the raw message will be further processed! + +You can define the `jsonpath` option for `mqttPayload` elements in the `mqttDictionary.js` like in the following example: + +```js + { + mqttTopic: "test/test1", + mqttPayload: [ + { + jsonpath: "output", + mqttNotiCmd: ["Command 0"] + }, + { + jsonpath: "output2", + mqttNotiCmd: ["Command 1"] + payloadValue: '{"state": "ON"}', + }, + { + jsonpath: "output2", + mqttNotiCmd: ["Command 2"] + payloadValue: '{"state": "OFF"}', + }, + ], + }, +``` + +Lets assume the message looks like: + +```json +{ + "output": 10.1, + "output2": { + "state": "OFF" + } +} +``` + +With the above configuration this will be the result: + +* The messages of the topic `test/test1` will be processed +* `Command 0` will be called with `10.1` cause no `payloadValue` is specified to compare the value to +* `Command 1` will NOT be called as the value of `output2` is `{"state": "OFF"}` +* `Command 2` will be called as the value of `output2` is `{"state": "OFF"}` + +Lets look at a second example... + +The configuration is: + +```js + { + mqttTopic: "test/test1", + mqttPayload: [ + { + jsonpath: "output.myValue", + mqttNotiCmd: ["Command 0"] + }, + ], + }, +``` + +Lets assume the message looks like: + +```json +{ + "output": { + "myValue": 10.1, + }, + "output2": { + "state": "OFF" + } +} +``` + +The result will be: + +* The messages of the topic `test/test1` will be processed +* `Command 0` will be called with `10.1` cause no `payloadValue` is specified to compare the value to + +For the full power of the selection mechanism please look at the [JSONPath-Plus](https://github.com/JSONPath-Plus/JSONPath) page. \ No newline at end of file diff --git a/modules/MMM-MQTTbridge/node_helper.js b/modules/MMM-MQTTbridge/node_helper.js new file mode 100644 index 0000000000..858b4433bf --- /dev/null +++ b/modules/MMM-MQTTbridge/node_helper.js @@ -0,0 +1,214 @@ +/* eslint-disable indent */ +'use strict'; + +/* MagicMirror² + * Module: MMM-MQTTbridge + * MIT Licensed. + */ + +const NodeHelper = require('node_helper'); +const mqtt = require('mqtt'); + +const fs = require('fs') +const path = require('path') +const moduleDir = __dirname + +module.exports = NodeHelper.create({ + start: function () { + const self = this; + console.log('[MQTT bridge] Module started'); + self.clients = []; + self.started = false; + self.config = {}; + + self.notiHook = {} + self.notiMqttCommands = {} + self.mqttHook = {} + self.mqttNotiCommands = {} + self.converted = {} + self.converted.notiHook = {} + self.converted.notiMqttCommands = {} + self.converted.mqttHook = {} + self.converted.topicsWithJsonpath = {} + self.converted.notisWithJsonpath = {} + self.converted.mqttNotiCommands = {} + }, + + connectMqtt: function () { + const self = this; + if (self.started){ + var client; + + if (typeof self.clients[self.config.mqttServer] === "undefined" || self.clients[self.config.mqttServer].connected == false) { + let options = { "clean": self.config.mqttConfig.clean } + if (typeof self.config.mqttConfig.will !== "undefined"){ + options["will"] = self.config.mqttConfig.will + } + + if (typeof self.config.mqttConfig.clientId !== "undefined"){ + options["clientId"] = self.config.mqttConfig.clientId + } + + options = Object.assign(options, self.config.mqttConfig.options) + + if (typeof self.config.mqttConfig.mqttClientKey === "undefined"){ + console.log("[MQTT bridge] MQTT broker uses unencrypted connection with options: "+JSON.stringify(options)); + client = mqtt.connect(self.config.mqttServer, options); + } else { + if (typeof self.config.mqttConfig.mqttClientKey !== "undefined") { + options["key"] = fs.readFileSync(self.config.mqttConfig.mqttClientKey); + } + + if (typeof self.config.mqttConfig.mqttClientCert !== "undefined") { + options["cert"] = fs.readFileSync(self.config.mqttConfig.mqttClientCert); + } + + if (typeof self.config.mqttConfig.caCert !== "undefined") { + options["ca"] = fs.readFileSync(self.config.mqttConfig.caCert); + } + + options["rejectUnauthorized"] = self.config.mqttConfig.rejectUnauthorized; + + console.log("[MQTT bridge] MQTT broker uses encrypted connection with options: "+JSON.stringify(options)); + client = mqtt.connect(self.config.mqttServer, options); + } + + self.clients[self.config.mqttServer] = client; + + client.on('connect', function () { + if (self.config.mqttConfig.listenMqtt){ + for (var i = 0; i < self.mqttHook.length; i++) { + let curQos = self.mqttHook[i].qos || self.config.mqttConfig.qos + let curOptions = self.mqttHook[i].options || {} + curOptions["qos"] = curQos + client.subscribe(self.mqttHook[i].mqttTopic, curOptions); + console.log("[MQTT bridge] Subscribed to the topic: " + self.mqttHook[i].mqttTopic +" with options: "+JSON.stringify(curOptions)); + } + } + + self.sendSocketNotification('CONNECTED_AND_SUBSCRIBED') + }) + + client.on('error', function (error) { //MQTT library function. Returns ERROR when connection to the broker could not be established. + console.log("[MQTT bridge] MQTT broker error: " + error); + self.sendSocketNotification('ERROR', { type: 'notification', title: '[MMM-MQTTbridge]', message: 'MQTT broker rised the following error: ' + error }); + }); + + client.on('offline', function () { //MQTT library function. Returns OFFLINE when the client (our code) is not connected. + console.log("[MQTT bridge] Could not establish connection to MQTT broker"); + self.sendSocketNotification('ERROR', { type: 'notification', title: '[MMM-MQTTbridge]', message: "MQTT broker can't be reached" }); + client.end(); + }); + + client.on('message', function (topic, message) { //MQTT library function. Returns message topic/payload when it arrives to subscribed topics. + console.log('[MQTT bridge] MQTT message received. Topic: ' + topic + ', message: ' + message); + self.sendSocketNotification('MQTT_MESSAGE_RECEIVED', { 'topic': topic, 'data': message.toString() }); // send mqtt mesage payload for further converting to NOTI to MMM-MQTTbridge.js file + }); + + } else { + client = self.clients[self.config.mqttServer]; + } + } else { + setTimeout(() => { + self.connectMqtt(); + }, 500); + } + }, + + // check all messages arrived from MMM-MQTTbridge.js + socketNotificationReceived: function (notification, payload) { + const self = this + switch (notification) { + case 'MQTT_BRIDGE_CONNECT': //case which appear at sturt-up.It sends pre-read arrays of custom dictionaries + self.connectMqtt(); + self.sendSocketNotification("DICTIONARIES", { "cnotiHook": self.converted.notiHook, + "cmqttHook": self.converted.mqttHook, + "cnotiMqttCommands": self.converted.notiMqttCommands, + "cmqttNotiCommands": self.converted.mqttNotiCommands, + "ctopicsWithJsonpath": self.converted.topicsWithJsonpath + }); + break; + case 'MQTT_MESSAGE_SEND': // if this message arrived, commands below send MQTT message using payload information + var client = self.clients[payload.mqttServer]; + if (typeof client !== "undefined") { + client.publish(payload.topic, payload.payload, payload.options || {}); + }; + console.log("[MQTT bridge] NOTI->MQTT. Topic: " + payload.topic + ", payload: " + payload.payload); + break; + case 'LOG': + console.log(payload); //just to display LOG in Terminal, not console. + break; + case 'CONFIG': + if ( self.started === false) { + self.config = payload + self.started = true + + let notiDictPath = path.join(moduleDir,self.config.notiDictConf) + try{ + console.log("[MQTT bridge] Info: Reading notification configuration: "+notiDictPath) + const { notiHook, notiMqttCommands } = require(notiDictPath); //read the custom NOTI->MQTT rules from external files (they are in a config.notiDictionary ) + self.notiHook = notiHook + self.notiMqttCommands = notiMqttCommands + } catch { + console.log("[MQTT bridge] ERROR: Could not read configuration "+notiDictPath+". Starting without configuration!") + } + + let mqttDictPath = path.join(moduleDir,self.config.mqttDictConf) + try{ + console.log("[MQTT bridge] Info: Reading mqtt configuration: "+mqttDictPath) + const { mqttHook, mqttNotiCommands } = require(mqttDictPath); //read the custom NOTI->MQTT rules from external files (they are in a config.notiDictionary ) + self.mqttHook = mqttHook + self.mqttNotiCommands = mqttNotiCommands + } catch { + console.log("[MQTT bridge] ERROR: Could not read configuration "+mqttDictPath+". Starting without configuration!") + } + + for (let idx = 0; idx < self.notiHook.length; idx ++){ + let curId = self.notiHook[idx].notiId || null + if ((curId != null) && (typeof self.notiHook[idx].notiPayload !== "undefined")){ + let curArray = self.converted.notiHook[curId] || [] + curArray = curArray.concat(self.notiHook[idx].notiPayload) + self.converted.notiHook[curId] = curArray + } + } + + for (let idx = 0; idx < self.notiMqttCommands.length; idx ++){ + let curId = self.notiMqttCommands[idx].commandId || null + if (curId != null){ + let curArray = self.converted.notiMqttCommands[curId] || [] + curArray.push(self.notiMqttCommands[idx]) + self.converted.notiMqttCommands[curId] = curArray + } + } + + for (let idx = 0; idx < self.mqttHook.length; idx ++){ + let curId = self.mqttHook[idx].mqttTopic || null + if ((curId != null) && (typeof self.mqttHook[idx].mqttPayload !== "undefined")){ + let curArray = self.converted.mqttHook[curId] || [] + curArray = curArray.concat(self.mqttHook[idx].mqttPayload) + self.converted.mqttHook[curId] = curArray + + for (let curPayloadIdx = 0; curPayloadIdx < self.mqttHook[idx].mqttPayload.length; curPayloadIdx++){ + let curPayloadObj = self.mqttHook[idx].mqttPayload[curPayloadIdx] + if(typeof curPayloadObj.jsonpath !== "undefined"){ + + let curResultObj = self.converted.topicsWithJsonpath[curId] || {} + curResultObj[curPayloadObj.jsonpath] = null + self.converted.topicsWithJsonpath[curId] = curResultObj + } + } + } + } + + for (let idx = 0; idx < self.mqttNotiCommands.length; idx ++){ + let curId = self.mqttNotiCommands[idx].commandId || null + if (curId != null){ + let curArray = self.converted.mqttNotiCommands[curId] || [] + curArray.push(self.mqttNotiCommands[idx]) + self.converted.mqttNotiCommands[curId] = curArray + } + } + } + } + } +}); diff --git a/modules/MMM-MQTTbridge/package.json b/modules/MMM-MQTTbridge/package.json new file mode 100644 index 0000000000..9a57f3848b --- /dev/null +++ b/modules/MMM-MQTTbridge/package.json @@ -0,0 +1,27 @@ +{ + "name": "MMM-MQTTbridge", + "version": "2.2.0", + "description": "NOTIFICATION <-> MQTT module for MagicMirror", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/sergge1/MMM-MQTTbridge.git" + }, + "keywords": [ + "MagicMirror", + "MQTT" + ], + "author": "sergge1", + "license": "MIT", + "bugs": { + "url": "https://github.com/sergge1/MMM-MQTTbridge/issues" + }, + "homepage": "https://github.com/sergge1/MMM-MQTTbridge#readme", + "dependencies": { + "mqtt": "4.3.7", + "jsonpath-plus": "5.0.1" + } +} diff --git a/modules/MMM-MQTTbridge/readme.md b/modules/MMM-MQTTbridge/readme.md new file mode 100644 index 0000000000..24243f7671 --- /dev/null +++ b/modules/MMM-MQTTbridge/readme.md @@ -0,0 +1,402 @@ +## MMM-MQTTbridge + +