From f72ebc32142eb720047654313ad68d7b5336d661 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Mon, 25 May 2026 02:40:39 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 25 02:40:39. --- .../20260525/20260525024002-Binary.backup | Bin 0 -> 256717 bytes .../20260525/20260525024002-Config.rsc | 3459 +++++++++++++++++ .../20260525/20260525024002-Diff-Config.rsc | 10 + 3 files changed, 3469 insertions(+) create mode 100644 MikroMaster/20260525/20260525024002-Binary.backup create mode 100644 MikroMaster/20260525/20260525024002-Config.rsc create mode 100644 MikroMaster/history/20260525/20260525024002-Diff-Config.rsc diff --git a/MikroMaster/20260525/20260525024002-Binary.backup b/MikroMaster/20260525/20260525024002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..2cceef0c5f8bf158bc7de05c864b9a348dfecbc9 GIT binary patch literal 256717 zcmV+aKLEh*sF8Ec>H`3MT)v1PxH!#v>%Lbgttf&3000O80004Z`SAPzLlIbK_*kh( zRQ4X~%FzJU0Iw4If0NqjseZ0aAO9(P5p0gaKs4kXQ}w2PDH(#DV0Vv@`FzMlqDyTII6BIJ>XgpVkQ#R=!NttxbdHGo@O2Ou?O@27s*wUvq($(nk4Z zMaL82hE-+|MR9(~Uod8pm?1s9Z25Cd!RHEbuV$H8XK+z>)l{C$vy?XjN?z-y2^b=( zdSjwaan2e`&WBamaPx5d{?caM=Uu42oiomodXLQIg|l*bj3eCfjb%TIgC*=kdrkFS zq}Px>{3rhEb+PjxJG+_D*cWW=QvzjK6D1?hEgZM+e%c@_AC;haKxhUYOaQ|)B-Av( zI&7N!+_TCqr|XJ+%QbbEdbA>y!CFarl|k&Iqg@O&$Z>!FvCsnk3k2@{5TKG}$(Sxa zZ3xZ#wcrYdz@h)mfe^}jX)&*}ZhW}#(6jjYjuG$vH&!!GG-EDz2PSJaytPjzR8<n5XrO63^ZVO%D!aCAt70?${j9dZW88WT!%2Zf*ldcNY8k^OsFK9BP}S_;mp z%#6(k(;Ujk(oEFB6Hv3iTFCalUl+@L;~FCS(>*WuSq{5L;R|=c3I`Xs)gE zf@Lliv6D1p1T#GOR_U0z&eBtA>-mkMV_6vuHvxl3Ruu;dt01`@*PB0Yu|)qu9b5|r zAAh_Hpmlpx0FmgOhC9nH1^{gPj03MN!s zS@-?S1_8zfu!Xmu@~dbS_p7d>b@1%S;yU_&=<)d$5s+d?zoP*Drdd=YgY)=qtqiHc zt~%-gWPy#_Pc7XPLk$KWdN(@C{ZHJFe?;PLPqdGXI*vzZWUJ$fIeW2CPCjqh#Gx^z z=*r}<(EkW`Qn?Tq0pP`*R9b~|=V%|NSamC-F#CZIow$cDsg=FEoNj-`-ix&pRsaEB zJrHEfD#iLg%i*cp^C^=@QqWp-xne7S?0fq;eEBQcf!v_%5e=y)yj0VsgG0g9n0FzO zBIF8Qa&oO)U_S2mV)?q%BPE_QE=W6nf(jx#&s^0)*yYFx60Go4N_K4p6tc$i@Pnapt#4ZNA9~N~m>Pnqu__G5HeI9p6JZ5a4EPvI-P{TDf$MJRxfH zQbY4sG9THPjiDc!>4_Rs75)CT znm@D#ZMKQ8J%*+iw>h$vR!~Lp|8x*|Pbh?;@FiSPmnnX|s)-qHjX>lVv< z@xAn~N*RJ1nIs6kL^PcKYoG=_wu9aK<@y{T7S*2b$l*yDsP3zQ0_FFLLjVD*Dl!qc z8A$yWON_s+MqNThSPFu^U)|M!q}h)HlM>lWs#YyxBN}eGE@2*dJF z846dWQcB2K($D$ce-H(h%5Pf@*G3$AX=A%vZTPQxI`K-lQj79#0*CS^EDD^(zZ500 zNvpY_7X0$bZa*KNquXeh`83crI4oJ~PlK5c=w_BH3NwU9xVQAMlwR=!$y`3B{~M$l z@6l}*v98eJ>jQK74a^Rwa)N9jBa^?lgatpSV#K(a?I{78}u4zFpbViJ(&3nHxD#~NdG~H@L zJPjEsR;H$3CrfiR0X{u+GjZKju!kU4_|wmB=v)#TU3sB*2J^JP4Bo|=Ez!L67(#M6 z3VnB^SX@(^AAy&;^!Z)FB9Utp7MKqiCq<)obVoJ`5lHT240Avt8&VF0eOZJh-TA=H z=z_nyK!YiXfkK}ly;e!*V=jk=N13+nQ0BOm6w*St%vRLg`b=SzR;%m*CV6tM5$st) zt@NT{xa4il{1fxYFqGi4$WyFb@ihQSo5|!0!!1{-Ytxf)hHC=-G8^(rf<8f9?@8pN z(nb}xxX9-?knQ=|+;6K26V0Xh7N&IZH;LndI0_WrKC_#!M&;M^_B&20`E%p&T_E9e zTp8HvoZHpeBHImKv_RH?FOn+qpEwKCUrO$w{-0XY%Urb^?awf=Lgzv#--e(N?s)^KoRv44w6>h0 zCorvo{4h&Hd$=s6G=^wxE{b{@d*zXq)pMGvk z~c35G}#a!B#SSKI%*8*zD9JhzXLn`BNt9jnUj?Q}b2{DP>=d-%7 z^|;l{W{PTR9&+7(twu!@?A$w3fW<7+gOgPFuSC6&s68f}4rPPBKD1|-FtePq2kRW# zv1Dd%L!9umM|~76*;CjD8$P$9Vgtqh3@jMD6hKMH+RzrrNm%($wa+%K(z%~U8v6n{h;W=1 z$mM~G7Z4Xk=|f!!y@QMiJ|5FH<7{0R+wCHdYZSps%)#2dn+8~_GLYU|xTTK}zt1_!opHES}>Cs4UquMo2bC@1$IaEq#g5 ziBG1t?PFfgn-Y=jtD!!&X{+)oIflWEMrMWxY!_)<2kidONIGQ|&xIxVkJ{%v49mX9 zT`x;P7^xWxq@-H}x}MAhxF$z3yBGX^Eh|2X&d)E^blOL0EUPw~9D>6<)Ed;;Vez}u z)8C;dl9f@{bCa?QrOIU>-3b@z)EbPFmULVIL>GxyGmVxslA1-mZ0Y=mbbt8WnY$o8 zNMQ=+`BjcA<{dDE8d!x7YxWj}>8@83MC}U#2w2%TzOM_`NR0t2)8jdrn&CkonH@E8 zk(>Hp3b33UUq71k+8(Gw!w&i+YAZ8a%+J*+c8gI~2{$Qh-S}7e3N#PD#l8@EemovI z)hYCS&Y%FtOTdnYd;PsEH+y3mZS3&|n8w7Y?Psn`&wm9Q)`RBIY}e|&z`CrRx>!jA z&)?DkboA8h;#DQSmZy1xAK!hVd0b;pst(hBZX6dObruRH)Xmk|Rb@RiLnSm<7@5El z-F;4|6TxZU>CWhsdQ>ajfB?Ld#r@+V_B^V{qz~sCsN-xA@PE;fftFN_-^;-OBFPnC z_;I*5iftz}!Lv*@I<*5?e6Yc-n)&#F(Nx%|C1GSCW~6qEU&~*dh^tB_x}!;ezN)AJ zl{V3@sdg)>WRJL8!cU2y-s>r!Q5FketeUX8_h^vfng= ziXU`Kb?dnKjapsQjtieT3YYb!T-mAr>Q2o)Qhz|x%FzTy{`@kK@}Bz%I@)z%KeJu4 z^e(F+btpT3+_RzrZFNac1hhl>fr*$(YmvrWCWLtdQkU2J14l+4YtTn2zaJ3GKbw1U zrRW~OoVDHpTJ8W~^~F{GVnn4L3D4H@hW3^%S-5ENA8RL@pKpMtG~1uR0+UWwf}a1+ z#Ev#tp*J6?0Ja@~GL!w_3H(L}~EvAAMpMx&Ujpq44_+t7cE5 zqAcAN?J0<2hl+L^fh6uz6O~ge7KZ|ABvpM@52)O5_RBXK-I*>J+Be*1fJu)au>B5e zU7fapi8nqazuz3hQdORY&B$fjgxcc~sxbkCj(086)_%W{6qA9g4cvWcJ_17Jy~aCP zjbN&h(?t6y>)zhgm<#(#Dr1U+4-pZ=r=&Zu);%46{6P4oiq{XB5_aFX@?Iy2GfRXT zu|C=w#NkAUdHLFIbp6lB9Ln;?a>g=h^T+o{MN?F0xXVk8graZ2sw>9#TjD$;x&4j_ z6L@iJ{vT&pfWw*^$qVsq+ndnx7LDWcH4q5^s~u?(IbsUJ={&(ldhT^p7sW zeE58$rtB0`(m3DNt?0=6gX&@Qa^$n&h1-(1{u9F##vrMwM41B}v?NBF-bv6=s`-LMoKxSC_XZn6PgJu7Pj za46YR=m{Y|Q0M8t=J!{_C@V~f<|HE(kAJzxLRPySrS87rW7p+{CMxA&37|K};<3qi z;1qoS8Jpq&C2$Wr+p|2O4RNf>Amnt(W`@SzIU7~ANqM?KR1D8DFU5L5Ls1-icOSPd z3#oC6M12}ld0;8MW#r&(R}GoqqY^Y+K z<*EW-zx*Xq9B4I}|4!`}S}6t-!gUV)bTUoM+J6IIRAsausuZkA zB`5HRh0Fe5KNqbajcjt`M}eC4ryhtM1eCgX{4SB63+d=UxmwzbPIJHNItD8|Rhg2e za|Wy=zEULe8p`)R;x4Y$gAY+&cE!lpnfD{`57|RJJ(JRL*t7GGz~Qm)uV#Yy8#Yk% z1-5e`gD@Grtu_)`m71_*6~=SjFXC1^hLZWgz;@@`JY=R!@Sj9!=TWf`6>KCdI{W+@ z^$t|eXqlEqjp7v;2orS~j}R-JplkT#T7s?^I=sUx*~?NFohb9bvFP1Il(xFgPm6?V z7cp^C^phIjTFx3NvMbkGYw$h_mliEKGyM6U)zW z6H5`S`N;-29)mGa1Q`z{ z&LSW=RfM0I`!rL2U(oIXqtZSwX7 zzl(q{uFqV{;of-i?1bqbH%}6WnFO(|!%`63{ExsDuA*9^3byV15`UUZ(*(>ttltk- zP6B2f&QjlkX%qefZA84vrG8T0aj)IMSRgAR zD+?3vkUAI|guOF^NJmdBD~sP<%ei4NK&OUtZ?+^|CFN;eHzG5EYj0pt`f~XEvK%JE zHo%+Z{Py3r{k8y zX+uOR6RF(Ka4i?Lm3 zy_Cmv-lj)|Hi|Nr1`~K>sY$`CX78U{dUt%cg%$x!PAE-ehT4itp_+GO*48!tMmSV8 zP+V^aCjQxU<=E9Uj$;BVHtX>c-<;%*m!BToKjQ%ooPNuO&+;htgXawTuP(WNoU^n% zCc~calD!;I9YtfT$2fW_d3Pd-`om-!M7MPeYosst)NWr=pWqn98zaLD@VPv`vzpC6 z{nT2R;PJJs0)fPQ{o)^(;tO&spZ+o8T%OU#)efGBrMatbftozFF%v)Dx}|FO>~l;K z0B3Dw|B#Q<5}+aCd@HgA$M-YgDT#6B-i)1XLMu|eMxhh5>qA~_!{N6Ax|$rAbO6CH z7iV*_mAap%FoRqf>^DPL?@j0{hVoMhneS|Q$h?cy;A2ZUo;62~1e?7p=DHxY*(}x4 zXhTZO&`Pj!(1WNeLmC^Jl=0Z9FM?!cv^ur#%T4W?JlZdM@mXJo7 zUBSVn3QUX%Y5P}^tRiXiY_tl~6wOy%adcKCzBIyx?e=4Op|q5z3Q>??ek$FFf-{2o zwKmoixh=ZFhgo5S4TZ~qLSXN9<@XH;RCbQ`SqWCT6a-}Q0&@$*+7IYG=-7@(_qjDK z>l0Y@+gAw8N!qdwv$C+2PNAIfNSz8@j@&QACKP(ooP|bgEQPEX&}ZU^ddyt6M>Hlg z6LxMm%$ItvR6mZ$A9TTHbJvZ7V{Zm^1t>GOdX`tOsRoMV7Gu`E6jdVrrV9l1F5sn? zXT3)&Gm&zfGar|jFBFS6g)z@+!d-dw;gG7b;*+$H2sGjIk81-8$xFX#e=v-5FkWwA2{456Lg2ePf}`Xu|OdU@1wVG*Pe_@yynxVbS3 zN`>F?Zw0U}g!PKUsD&v~w8@iB2uhFGjyUjJb0-~JbALF_H*ihHzYLoTBug19@B-T$ zgrSV`a@kKf8KRtvK?Z+sLDC)j#^U29Yw-iXT-cRC<3${de($*xB2d*2gY;seJ}%or zL-3p~>zD>VI{jcmIrnv;(6m>zvs9C#e}hW-J_TscxFb_~={hOx(7c`|)x5faWP#m+ zsX_fyjBos_F$ymFCr7NzbrjqX0Vb-BJPDAyD`jC`^V6q1TX@;scm;z~=P7vNXc^WTtU+Fu!K&bilK7_%2*F45ZTU<_h#Ku5GZ9 zs!?c_Gm0PBqx$1-73%cQF%N7{2fqFtwD~wF+K<&0&iW)BLM0i{&KL70`y00IcR}cjjLl z98{x&DxKFqgRw+dgfD}3gpU{v2}HK~e3X@UI6BVp`rdHky#Ep_qchorR?*=A>IMqB zq*L1%v|)CH8XO;9>1zaWZZ~n9ml(!OFVPF#ZK9c!7M@IM%?duIg=#KHzk6jVRbiCa z3NerL?(@>fJ6y&bS6;5#v``;mlaMrr((MnQS@JFF8R$E0aq$ri z$Hh2ulECg0EO^n$EX$mVA0bNtC7K3H!aL1=8%N~qkai6$kLs5*J{S@UwK}y^UW7#K zss-#T1Xwc$m=RWlE_8hY%xA-%8y9$n8kO`TX}XvAD1-9ZYo7k#>ND4Rmrm6k-#?Nv zZf?~YT27j-EUWr*$u)3GxBWA|Ky`boSSw66-*xLeGWtnNDe0j8MQBcF^Ib{|9=3emUuqN6 zDoq8itB$eTjuDFOEhvRt;=Jguqu~Hqs4#*oVoCzgU2$jjroho;UW8&|U(ivjZx%h$ce#@c<*#H#gaWTyVR zaC2&0c){=U6WyNUof^e+8*1y@aa2dGe188pfyy0&d5PZ{!DQTYUBbVy=_WKIjW%0=QJ`JZovb)2C=-}7Le}O>0GL` z!6afX!o~?Vtw+&TFpsLS2n~gD@B~uQS4{#Mc)SqkI#J?YU{l<=SS`ZOi18@#4-aLb z!lg*tJ9XQ3YPN%q=Tu@b-q#wVmh3$7?eQZhPhUmQOSJw^5f4>3i1UYz!NQCk#m|U1Kw-93gVXqm3g}W6ouKWct3_;4!!B&VoWiWWq%024h=B zOe51uXwab*1WvrATytU+T3#=oVg67$=N@}tzE+DOMg?U=qB&inBVgYX=v_@^+4^PB z!82>(6s;L%KO9BNSWBDdRu2;b7QL!PKawJ@K3*@^IGeG3xxSMR7vb*log46rx{>`H zT>X9Q?K^x94ue51KO!NDTw@a3LeQSnxo|T@Dd~Rv4bF;o4`Eh6RE%wso)&u`BdDNd z-F4n!)+0fv#I(GFii*1#mqu2bdlQ^qAnMU&-3TjYh>1hG`Ars4f>4(;Ntn@!COEtM zb6{{UXhRr-67nw_1gbrF5RJ1#ZLp-a);eU)qx7k<0Un)HWK_|aTr*#R$!l0>+ z74Dh5j}gTPhLQxkFOKouTHscVvWhZM#3*0J2>3P?aPZT&?}X<#kGY25;Kz*Pr-HA^ zCt)!cZa;P6t*CC$MW=vPZ!de8YsK7Oyr!c?N&BJ(XmXXvQzkhM~+{o*cnH4bvlIXUo=#)Km&ft`1uqBEt|&qnK>Dt1BybeKw?0K zSQoo$0;$dr<#j>tD4YOq_{&>S>TPqL9Y|;d7d4?y9xBMpxPmixfU8rIo%e~FVV%L9 zpar0J!?M~&zApeUrzUDOoJqfcH`*$&L|w=P%Qq+3#0$KCx5>-HS{g5-t}LR_rmUV6 znIxZ!2-KvK0i1HTuWR_W1MJV{=JR;!BM29|gmp{mq#{;zFB#x{TC^8#uUDt1s2Nd& zZHkM@k;!k&Z&A7-{hdAGL-{Y{98fsStB>3N5%@@YwvSuSrixugK}^D2{kn>qdjz+_pQs2%qK=siv3RXPie zq67apmOT;s14ZQ$w0(RrHJHN#;Pmib?pc}K72G+xNJ)iaWhI0y>Ve6e{W7O@afG9x zvy#i&3`NJt&Wgw`diZsryA@bG@pPK>Px!F`-onqvA5YR&7`#)^bkAx;>ct-Idh8vY zpiPi#wWdRyS+^~u9a?n$?EPKnh%YuBW8W2qht4T?jG$gwNMSszBRE6|SoI2l3lsW- zy3K^y3I94+bozFPwG;I6-+pWD)oMC`?FxxL4B}NO>2cTk771t?H@ZtZ#7oUp;XuG> zl&KK{6=FDeUx(a2%mAg_vlYeYK0uww*8(xWNni?Y`wACM zqLYbkF=`Y#$hiLylm=KE&2Y^_Eco~A9wkK3RSUCH&>F=)D=G96_bRF%r;TkE;8svT zG>D(Tl3P}d^y@XTaX)v>(sf9Ou9pGZ;UAU%%K_ZGqWVm2zt`BNW6 zWLo$gFgczuyHY+&{%Imx$)ouh0SQoBhSJOrBLS{_Dw0OHiU*7^Uq13||8>~B8bw;T z@07#vSZc$$O*$80^~QO+3XG%Aotgk4{Yu~hMo(QamwSN1K?B{>{AzzpS!ydWXmSrZ z6~{0NHO?#CghUeNVfVxnCv_4yFRxCXTDATCyrLa)S5jrg`j zJHB&&{mTXD$IKGXlZ_VBFP*pyQ9mQX{gA+J9<+X^c8XlL#spS;k5g{NMO&w>{`aQ6 z+O)y(q1!qm2T11OuhwYIaA~k{RnqmCxlRe{JfW}~ai#sBJ4;~bhWJYfW?-v_DAw!H zB6^zo^sWg+uL*93c(UD~6vN+91y-DpMB0+>)~DlI#1jja;H^@!jwwi&i^MsL%c1N4 zu&fN)N5)bmCj~GH5@_~}5Bq6eq{YhXIt#!bE$}BR1jdG%sxPMc>N3_ro~3^rOqTY; zX8sO#Dn|#a!<=Z72`N#yeN|L$KBXi6+U5_~;ov9gEv#@fKC&JjL=lSh?2UqaSJuw= zF@qqsaNS<<*_nsE3S^Jf1FC|!6Dhr?0%Qp*@Vwo4-}&U&vif^i?N@r5fOIko*2Bkl zR~f;6@39-v{GU^svb8isx!78e;vNkoVUFDiDoz)w=g< z7Iv6yJ?CZ@cM_}=7aF#^yo$9Fk?NCpC4xX<we5HS0UDp|_kn0peDbnY$A;{I zAfNAn!`}U+PY_1Kr;LvowLyIioyScy6;T@R$iwZpP(8cDy)iZiiP|>I7h3 zEIZ3Opy;DvDjoT|S|UsT8QRIo5H&Tt$4C}k8$TYQuNsFgeBs`U*DoJ#zLh!J(%eS|{xFSp!Ri}9}LQ0Av; za-n$8rHb!+C=zGPw}S3OE^s)9{QwjLe<7d*w(r>t(q1My8EAHJRPC-67wPB7r!MtFleDu=Hm zcIO+yu*r#We95Ju*1HkR0RMP1J-sQko}O%bpRiL@9yfSU5)b6ug|b@rtvMgteZBvF{lxarCQYLm^KXla2UC$5C+&NfzQ`x@Ko3^UC(UK=7f?*TY`s?e{~8n>|eS zaiMFxyH+3I0sN%8| z@r_oSv5@RgAk>!_w-*gjdQJ*QwG1X5IMGhhi~*yl7RO8p?dHOJK4;)PX2vdzI!l%8 zNOSxcEIbWF(}(+Bx$c4^VoD{(2F~hI4XdhRVmwGMEHNHM_$|@UdjMkrDA;ytO#g7K z_c7@#@~j_)>Kk~S$#s<@^3qr@2RGIcB(2 zN06MapnGw4XFozwm^JH|T^JIN#|4T?yy7XdN{liWo}rIuZ@fng1yIuwdLq*%XbhS)v~h;>A7T&8NOH?(WUqa3 zQUA=Hvt1EpK9z@xgvxLyN$<}o?=gfz)WJ5Y7cCLf|2%>ZM^vwt)930@nu{~5`$91r zPU71iOCQuluW^T+ywbm0QHUR=-^u7D2TVHo-W z3Hxy6+IU$urQH1SacK?uZ&U3!O zhTXsRrCTIqNeOEkCIB2Hf08Wesm>TKQE7WQfQg!i=bJR(pr?7u|N9T&%L^VS9jx2K zC>)ab=Y^bN{Ic@&o??#{ch!*vu*5W_+Pk=~2ysk^& z2(_}Ruz~@NTQ$Wfe)O%!O(dkgK}fo~C46beSqIJZr?;q(lqIQ zyyyAp5qIAL!0`T zL#=r-F}#XUV>vmyOS`ac90PNGukrXNyFT5Hw`k}7Bw z$H98K>*w5e-k-s}R#?u9j3e?J?mew{B&QvpA-?l1leM@C76X<_HWTgV%ceFSBj)5# z4=XawZl0z|SAMyeoeTcdWQP3*me|t5_3L2w)J0Zc;G2IzG3O)%rCt@vo>|A~4w|*j zGc&&ZEYQvpBgC@gq{k~T%UMbI31MfBrpH@rzg0d?FvEgR1iubT(8yRf=ph<%q?q$z zx(byPmS6+Fa0OAB^asabRLH)y7-f5eCx!k1av8I2<>}LX{97#*l>Jz))`r^sBJ|%j zIb+o}DI+@F6K1R-mM3kmCC2TRP-bNu zg9tn`+|2hfmy_aLr2ZljQ@@qDn5ztQaJu;B6q@uvgAJK9iChax^b&|T2ze>i$SRz7|ai!MI_Cm(<_nb0DC#{!%+L z7v-j*5zJV`x_jOs)D}{pQ^4ZGztn0?_n_w48S-4kDR)Li^lFq7d?m9A)QEdH9++4- zZ#;SE>$1V3D-l9xyyX|WpGxA*S1Ka<7-=j3zKa=;wrqGojsfts8ly-7b`C`krix(8}ns zQ#(Rd&f#kUL_G*U-YH8P2-s!9w?7hX*r-58%kbBwGx!Bp{?NWn_PQA`(pE+E0kNMU z^bjs=d)LzEd7m|jo(7N&6(BhN0-RL)Mi5D}*|pE;wrDxo;&@|iJ`%_%`Zmly0apG} zEz~}=Vq?X&*Iu;Rsad4xL z;p%MfpAZ74inFnPP#MY_FpwiqArwxDAB$_C{10JQcmcKx%;3&If1_8m{%u}2&|P=? zvL0X*F zenQ3yjwcDgaNXy%;nqfc{|07}&zB5R2TdgT8S{?xBV~s9yI{gK95uUIb6y3!t{-}RsAfwT;HsKlt<*LC4B^>W5y8UC6QT1ItF>v;u4%fqUAm%8xf)CEmq#8*gwfeSVg z?1DHdrN#DGa5jVsWdr`dxec}=EO!sJZcN8*9HGp|mu*a+) zW@!MN3;=ix(W!H`?j{*N$<7JYVg(dR;5|k-^t?UWsR$ zj2rEf+%R&6E_Qsfg@>o5!HJgj*m;m9{ePeK1Fb)xxvwCZugx`B_Tu=o4YHOReO|D{YCkKz^gGNQ zhO4O*4)j9Ip`+SHue%cMfdvF==OTP94j{ho3_}$@{{)>XR)r_1nGHAsEe41xLMj~5 z-uQ3JHB2IHh`2TEkG1Y+B=ehg{wz-+iNUk`Y7yH8^1D{nrd$@J&C}rt%VHfKTo|qKXmD)#N%P{I~nfjhXI!2X~LIDS1 zr2$mqq;x$B9M1yvHDvduE2h5N`fb34hL%N1d~J$BA2)KZ1nANN*DYz0@B#`8LG$nA zIx@Z$PCR&``XOl9hjwl2ooLsWr=^A zoCxS}5x?wk87lfF_Id#9?g0m|h4iYY89dfvQ&_$I{Qeoz#yTh4Zh%_fZ|0AL0)Mu4pK#*Tlzra9s zrO2Jm@nF8!f2ovQa|; zW`LwfI@_I+OXJyh2I#SktC(2mJWfGMfIUT{c*+Uqk5MvA((_1(7%5JZRlLx21m{JD ze7CQgwcJ4W<}LV_Gv&mU;NsH5;y}eCb$}C833%;CH7S=vH%?R}*db=+?1R)#rfQxL zj@q^52_Kq5`2-l@y>l%u(qiDVtzT_DpDlXO7ZDEJaog=3^yrS`-MeC>IDyrs5>5a% z^pvSoMB%5Ec!R*J5vy7OKW`qp#dvnac#{?Cm?vf16=i%yR5Dm5t^x+hvcfm3=;rzM z4+{mv^roN(`9fd4yeHzR7rD-We~`{ndnHptN&}$<^e8JMS&n6G=k-JC7Tz-U!n((l zg#bTuA?>F@uRo=4%E_hgjs%4&ow^iBmy`NXI226;X0^b+qSNTaC5Hp$DzlW*e4jIE zut>B1)OVP?_qdoBENNwTWo3Q%p6IO7O@njc*Cd;;)Xh;Rkb1aZgT!a!n1b9mtr3H55(o9sQ`EogWYq<7r437`CQHbq*$OMJ_RopV9Lv5GQh6%W*K013=YG!({hOyfY{1tN0W;CSx=bsYY%Bx|84|^e#pw zFZ^+t8s`C^WgYPvLZR|gh;!6Mg&mxem0@JEy9WL2P(L`w%3@X`ZK!GklqG1P{5p!} zLhsb?NJ5<8;n-kD7V-b>4O`!f5x);4ci}{jww)+5D(yi}g4U7Uk~YeNbz_W4>f*xr zyPi?D>M?`=?JI;0#Nwu|!*N8VnMy1BwYV}eM$(wA z^P-Mq1kL#^)F3avx#H}&);R7pmiAe~S-pqA*m~ICt8Kdf3E{C=wuAIgf06;=vsX#@o#)dU5g;Tz#Ah5iMMVkx zCS0DdKI4&(5;oagx3TUMIoTrvPH84UoT(EIM>G{4{cOh^BT#hQnN zeqwgAi52JK*pzw$)k9j(Af3E-uULX(jJAZ~^@I$SMdG8&H$d9kE3+NwpHg-Hz%W?9 zMqBAz&eOoMg8bF7m0P}WxcBvt=bwH<-0s7}{kDcJCARRjm3w`ff|3Qwb4kEsSoQHg z3<)r>vv)7ZbxbQ&TV}4pH+@-WCJhIJ*QFnwhT+4npKL1jX3pu}@LUO~6~L@+EwWy^ zh(ST#p@hmdQt036tX=etUix*0QqLiRPHMAzEjv2WAsE+cQn&~l9~3iZj9tj93{bH4 z8z(X-CsDbD8UBwJ)SbST|l`=3$AgUaA0yG;*`CE=abJ-br7+~y*nx9)qM zh6vY>n&pb^WwvmpI{e3<=BSm20nD;%4}bAd5S&;`#%zmG6&&hywEORHO~uj;LZrv- zIDr_;@^EW4=XOHF&fd!MTZ?6+V_(9`GAu+^=yVrjZX_H!vHxg$S`gZw<3JkUWwIci zA469WPJ@htZRjV|-Siy@$>g;#C^@aaW1C0qxVY_@0qyl8&zAjDD-oQn5BpBwZ9NMM zTdtmUQrejk^UgOqa}QOl4{&2%S7r>_$*0!?{fn*&LUS%RV2|O}&Xe@#5n8KVi+X~p` zDYGg8Q~zL|*dneM#&IU#kkeV(0Ko)mz<)@5v0>b3Aw0?pO?AEtg`TaqF*%72es2;& zCkCrk2?=>R&#=k@vk$z`b+G#)x^?LwY3_{<4TzJg>3O=EjJa{!4J*sO4OrQv&LLQk z6E(^4oiT#%yQOc=PM%eX2x7dN0S3zzM%z^Qf_`n^Tev69fyT{f_ zzu;gmu-)nu?uiQ9e455o=xBf?3f7CVvW|fG5l2^7xzooIP^U36$Tren@;WT_3&k1SBaQTzJH?Yp2Kt6Dp$Fuq`P&~3Z-h;E{zEC6 zoI(s$f#lJslUbh>=k%%NN zr9kUQh?KtGS@fj3WLh;F`+D$VJydc~-Kzmo}bKGci=hKSGw3TXlnBNYa5a>C(- zs+?kLRC7#F=(((CF@diFInIVeL*P~kG?N6LWZJd!Vf$SnL=LF3Fig%bsk4=tc6WYa zoT3;`P>5nl;1IAaToNikirI9RwZJ~WEyc02_p_dU|4v&1dVkA`Xdo#n3B5fCN3W_s z{v;OhM^pdw#opo470QreCrqE0ec{&%O6%--J};z?p4)AX(dm6;+*S{5@0pup(PjPi z3S71CJ!o(tj9>u&KLEg!EbdAi2YfEwIs-EMOSP67!h({4Ey6z6rXtdOK`=KP^EQ?i zx7>Qx@w1y-pNMv$IqpuN>2Q8YFpwCh!GQOD570J>3Jr!fX33Od2_%qAty;lNSTRE>io zsfXrGt@IO9Zut&#Wwed2H=G8T*g+mVsP-nV@y?jnm3aFSiyQoevQSJYF`6EiE#D1D zZ}othg=a7~2T}BM`0=Pxu;J$F~f+HmAKYm|1;5e*rRe))p zKy+g3IkFy}B_1st2fL(Dff|Q$S4co86oj}k>JLl1$D7LvTJSpVa;79#pzs^y{L}C* z9Om{mX!CdyG^Ys_3Yuw<_63#C&Uc|MNS9-Yy|y!50lDh2r$mVbAK`CGdzsuDe;+f3g*3=M*8(YWl9mllz-FlxwXA;oYRvvAJ3ek z_YI8U=f0mM(e77#p3hyqRq&YwD9Tp?Vg*U@`MVzf?N3#vOI50;pl!Yk?G=ITvkh8d z8vr-F9%i?2@tKc?#G&E)XyTQ1LInLYSqetqhe+Gay^lGmcu==`8<(qoW1!ypL6y}v zaE7KWQZ^vPdjv*rcX|K`H&1=)?)rb1Z=8DOlIMuP0IbE`qY)@4qzS0FVj}cU4b|WX zX2llYz4tn9rGeOa6yK{*d6QSfR3PxbwdDi%6rD}tdstH2Q-xvnAWdLr?aJ}c<^K1o@>=qy_1?gsg0y|pt~@_O9?m~eX?JJc zC?6i#5a{xG5qUE%3+oJc6t=ej8PPA-@y5Cs%lAj!XXe4@gQ5jH)>b#52Xu3R*B%?)e^}E6!^l9tW zh}ICvz$fvKVc9bdWG#b}4Up%f;jZEzL(mon>C?%yP!d9ipjz`7AsysyPrWKu=UENTsBq#_wOIax$M?*h5lJA#&kpCJXC7Hk zpF7$wkCOUKou*fXJz2O0bHtyFtKYo1RLa7dS-3Gg@p6@7sX+;c95&JcFiJwsl7Ryl zRUO``mKAW2F^Kt0AJ@5sf+U;k;qJRV@jB^BUqF+rtW7)-;S+=`bdOtn0 z!9u1$3V5U^5zy?x+$ib{BkYc6!&(?ibtm|EC-nj181Hq52=i;e4BZE*5_rKpw+FUf z@*~8qT0HF+d6dnr(Mn`}&cg@Yd{$-xs7#8KDATzuOJE8#4Chy{IKEg~`4Uu^ps7rZ)YDp4p(atsgBh zaHdtSWmRBXVCZR`kGeNtWqakQeZK$aZ$>aZ4m0x~eD^1hXRn?$_(V~tGlJKN&5W!u zYrlT~4zKb-gi2O}{T{(VDWLo)@t$X!Gw>K0R}rn~U2%idpGLS}D7pDc?S zon^$`2hY{8w#5U34$I6X(Z`lc_2&>5Yi6q%sB*-QZ?BZu1iEeQUj`mbntDOYd#XJv zpX9*5vcOi0qo8o-H>?XxK{vlr@JAUc<*(%Yb`d&8bJumiO!6t}L0_4E;e>#8X8r`)_KdCH z^KA&6Pl^BP%WOr>o8L-b3v4#aoJkC~#_MtBQt-X0?7k2T(n)Dk%PoK)n^{6?CHopD zTUL#Xo@xgtOP?( zjqCy=quLw6SReTCb^jw}J@lTB<>y!y8pV6l$GRJOv#yDfS1@JjMETY`5=D8s+ zv>1VZg^UNWz4I4NQyritx}aGoJ)) zD|D!PAnPZ<*O~9ZHh!TP4*>a^B+^yDvJ&v6ert;NshzklJ5W_cBfSbjZpOHr8)_=S z{(N0>iI*HuxiAK0VGt!4WF#MUrPxn>*s-J&lD^bb#HMdlTsZ2@u&x-gvSxxs52y9k z64do{T2{9@Apz^|$sLQYGP+_bmHC1h25>`c${y<-oO_}9n0{pdJl05y{$tR^5oM4D6wzjHA@c1j7~Ka=wWq0>}g4rZ{a_oI}Ak%S0WkkbL@1-HMSCqV)ud zLmMUI;oWcI8Ytxc%^TUw)**gz6e<*{w8a{7cAl)QloxKY{^kKN*l1xT0cV^oj)3~T zvj56^8RtqN0{yi18DP9wI7NwBP4yQYt3D&dX0T-&id$4>eUb5lUO000x7t(;%c6Z_ zsa(%|(Eh|)jf7K7yj(i+6bvtVffmQGMK*em(8BOB?_JQo(7%w*d(0Eu*^uv`JQ%ea z#`HWuUdHP9(&V8wZ0eG5!Co>*av)qqB0hibSOC1f*0Y&NTqbR$on=4#=qz9MHy>A_ z1~DHrn~?N!9B}~}pgIIBOYvEKJR3xeuTTR2Clpf&JUcL0cQ)KI!f9$kG~((wx#k}X zhD(BZZ?-^4*C*lpvg;W}d$8ER7n$eHmrQw}!;Z@p3<>t#4-=UtXTDW|GqQVA8GU!` zkM}uRVQZGGDb7V#x5#|F`X_8N-8@q_vF8DrxZ9PVeP z7fB<^cRJ!slaN$3G@g#k#b!<5$_I)N7nhh|LAa`mxt&r$wf`(>jNbrK^*{xd74%Evp+63h4WwqUh+>9LefPp^M$Ka#>JZd&;0i&8%N^(@D12}&O{!WDtAIB zmzo~lI7uqYB|9aPzth(pyis}&-J;3OhzG#?rz;F!dE>N}SR!6@E2{zFr2|quZWKgt z>T^fI8#(NLUZ}U|2)_sNx*4j7jaTFw8LOH{ii!(+g46ve0ij|hKTwv-fu3)Fw`~k2 zF5-HzQC(0Y))%9G6={M0s`?lrlGwETve(nT%qm$gk)$+_CIEOweSn9F>U6ZJloj33 z+{;6@r%_TSD=!2e(eu3bLQgdo)xODstEyWIu)k7UJ|QREAmBYUotmzn7jHPLjlBMX zi)YkTkW~EZkyFR}VZtP3SurZ2I-IGII?7ug;R5eXz&yM?n3{Dm!0jQ3WtJgS#Y~nh zB*iXDm?URmzoT6*0t<9aHm%V;n9B^PgMg zjz4UEXAub_VDOY0mVscDlW2~H7t>W9QdTf7lEDL=+N|%(gKUpyS1d$!{cn_U3by-5 zay+<*B&Y3eu^G!OQ(`&{)fF%!C2uGSL#&K3_ zfPt1Nm6h`-ux^|ByGe74E-==xz7&Sh=MG8BT(bZ?zOe&zZ@g+*>+IDHqeDdLgY-y) z4ZIs=kqLmm(YVxE_BKqvvCEMP9Iv{!dHQ_XZa$i`U zL|1VcqvEXg$4(H?73F(N;^c`LBqMmsDhq@8}N483+p=laNBG0u-@W^?U^DJh+nXwJpH?bx3hE= z6Y?7X)>e}_#KO1gtuH-)!<|)H!!-xH7aFKIUU$22#VvclptEdjlx5N+?az+8=u|5e zp4&W_Qb-7eKi?tY?>jW+FBhFM22^oS#8N}Xmh~K3%bV!{zKW;S?`;IUu*q(|*+3)5 z%-xWCMS%TP_@ADMUPqHpUVk`9Dc#w;W6z^^!h$gTk6yD$_FKuX>3tlssIqpC*4=;- z4bE^KZ8kClgn8t8l$fEP`hVcu(YMlhBh1|ycvBUj=EWoM+{OS4JxPe(8YwLtPzG0!l`Z{!ef#dn`+XCM%aiJsmo=^K&fH~ zNbp`jY#u>#kgkqkCm&pbl>=hK{d~X24ezQ+gFotX^HR(?$7pv$q%YAiYolR-kodxU0W155%ZWNol0PwnqFoIGp?061o` z^*aRy4^9jFT({gqpEgG)+C%B*L%G6r$eca{PLm<RuHS|6v&vTe z-`8*Eo}l2l%Ywc(%|KjG?D%q4WEr~o!C6UV@Y=>K#L1&wVsmkwhMiCx=-7^Iz}J_e z5`EiJ66n?3#bG$UCg#T zvwuCLUUg>U*xcF3h3E};msS*65Q6!+=?!j(M*wbkNl6kZ)#++v)o| zU2W-^FgcqFYV9PM790}$wrA^&VF#`=TJ-u8u>GfLwmNY-F=6Kb_rJiX3f;5Q52b=9 zP@dDXq_C_?NbfdE?^tHs1`lbVzULz2Gu`nWnM55Mu6KV1i|4hT^=o6-SqL?pQ8P+V zxrqegUxhk+bWQUnwZQRIrhaXy)4FfZ(UjfVWn8-pb#c>s^%`lVrKg4YqhPLEwUkF! zKrVAWVL^wzK4oExe0>-pwLScT?Gr_q^Dt1D`rWsHQk!UPPmVG?P={_{4=edj11rcI zc);JmK9jAfb;C_OIzAdxLBAkSl^XF{Ii8oIS|XP@J?0YKj||}?n9X&t)mtS)kF?m? zz!w9go*iFZ#ta^z7&CqLYe#b&%IY@)V_4y;%TrT;ljYv~NtyjFgn~#lky~vRZ42oK z`?0GP_%J>2PtI;kpGEIp1?is}7$b}7miF5+dYCaIL2v@j9|9!C8k$p@aupI!3e+#Nk4~QzOF&T`C_h>T+YzG!Od2r(=koand^A99`;v zjiZ~7$7bf%Und9N98Zl*8smL;xo#jz5_@&TsWm+!v(6PszKOTAiHlmiveE%L#fFcd z@}`2mGW@*QugoTi_Y$I z!G&%-vE4Z?;pT9f%YL)GBZ!hl*VNun5txg>Wjkhc$iqNMK zx9II%OdyVd=(im(0kS6WI{nlYntg2_FV{#EYNzehmlxK^i(j zSKzwv`z0I<<`i{e21F;IC%?!$hG&43ZS@_tJ4$r1 zt?L(M(e;1frwk;nV1C%??e{(E1hN;b_*W_4K|nXgfBiR|DmRYD#$)UVx(p>aT%4E4 zu#Ie5z05#%f6xU$965U0R=qPnD$W|6-yYTE;jFW6!VgE`!DHwv{)ZNV7-BNpjl?J_ z@g>K;?v%-JO?-eW`mY(|^ zQh}Z3$w+Xgr&#fm=wlm_g794ziq*kmdYg*APF5NzT5D9>XNLrdI<>W_*x)gr9+c;5Mw(r%P7z&=*@nwr49nwnNn8s=Iji5&_k_3&45`J7bC>}k7K{g*L)qo#rP8FjOn$XmQTcoZP8bdp8 zzcdOBtcQzlNpFY~>&c;xhBclo0;Vk8Rz63HgtwOf)g2~cGSWpC*{*5)W6^~)iA@x| z1kYQmEg z^JNHP4`wg`^Aea-_>WGk-lkUS5SE4T>W2YmnQzw1xTeF&`cu1b{@=0V!qsq1ui-`R zeQ5d?vk=$=M%cd6*7GKgeJjT~_OLkQR`<}ul`$~_5>oQWEH{^JWIq?(hjF?Kz)o}?JMlC*~Nm%2K)!bOo8}v_{rSum}Bdt&`Y$QId z2C`EC6>b(ge43R0(aepBbQ7xObqnyIxg>(p2U8eml4x5-D4*%y{2yO8v2Cv?J0ct& z%L8CbEexe_Q`9On?=&3kTlO4>ULQvsHlsl(@f6O`dO#CYv$q(N&o^<`qSEY;xw!jD z%pN9VmhCF~R==lle;U?3kWOA;>>2~tO-aUgw?VTbo5I{!%1dZ~g?4H*JIJEUX} zs3QJXb)9`Zqer`W^%uwQN%=LRH^A60H(d|6mMVwDa_{bP*z1>)vl*Sb@z5@fVsU|V zV{5RN`5XSLV6*|30i|GK*@Mas#IMk^t?AGA5uUYvKQ%mNqOA(JQ6K>G?I4bXq0PM1 zkgARa<|i@9$bj_m@!V8L@iLjX{Ta%)2woEp&dp2{4rVXr;b`wmCOu@6zfP#sMApQm z_Tsq4WTwe4m*~c*waL{^%00dBPg3Pqh{H${COYuN{r%Q9F*01${0R%sU6%}T7%Z~9 zC>ST8QG+0iUn)}Rgu`hUL_rMk3$Gybd*1>h;mUhFeTUhd-3yL(0_av#_}5K7oGiJ^ z`&48&+%cc!M-`#oyHGbLhXPV>ad}HmuB;@}Ajp?`Ffk%om|G>&RF-3L))g002UW1V z{=+@8e%iww+;%jERidXGV!-_g;~|#oHh$I@!(bQ*xctT>eVaU8w#@&c?SKPNDlxI7 zUkU{d!;TdXoNlK25d*7TxDx%!uE`~8zQh4iSJ$H3t(g-`&>LIdU$(A{75xS zbE`TX17AKdA71;m)SDwt9_xI9_muu+*D%>nHMwU;=DRdb6UY%$dwiNWQwBR(J~TPb z_QUw)Hm6pJn-E`N`+58JD5sZG#tZ@5LvVy3#FRn*rB}hcM9Wevcemij$~lKpKC1RHl|n@{Y;**2YQvvigJPO z_!U0k%(@FOmXE>O(pHycM^LdU-7x;m47hmWfROkf$R4a%Y-fpQ6aGAEd)1>Fth)JdSTZ3RRH3o4#6&ASs_dV7L-E$(-&#>F(rs~MeWFoNFXfdXy! z#evIcqTjq&?P@C9pD}c3XqSc?5d5r zq7Sv_Mzx&65Y=@brqx}ljp;Tx)Oi_h2#&c9AfrHZkCnx$gQ5VI*Ysy(6TZLZ55<4APBWqeQ_@Uy}=2+U~e zDxN;pCnCC5*U2mncI&v#h(cD-L94K|v6=xA$|{3YmMyebVf5SEnuD`Xl(9%LEn1U>BPzvYEY*(ZuCyz_- zlun^%5GAZV7RjN|81^1SA;^+YxEN(CTXCsCl~{eI$g$a~EHFnBZcVac6&c)OETryH zt;u=oa}_CSWUpn#qCcBb-7FCKfWK2K{^304CJ@V?Oho^z-)WIgG$2?M7I!RqO4gH^ zdRL4}Xq_w7Mq{$@3{HBuaU`L7yi*;hNh9*Rwo;o=AoI{Oi@R`-2{8tDPOY$9XS@Q= zpZd`2wK!l$s|TN;IwKM*1o@+tGm%z0nXt^`e&6DKd}4c-m<6A-^GD>6gsGX}{UOW{ zw4MtqOvtG^J7s5!BpF)f)fi8L{u*)hHz_~{mLFxL+CfjVOj z-y#V{TO6Z>D51PvCnwF$*FH`UQb{IaGrP+6f4?Ef@y30e8H11JqCFe_Loi3}L10GH z>p`Xu{9gor3S=EnbE+Yx@Geq`Ix^xqrorHAb+4|D(}dP`W2jRiWS zQAfw19K9{_1+7c( zv^rAjnSJges9D!{ho$md<+Rh4_`Ur5$rC~RlEcDsUF6~gb?oD-o0Mj^Gg4fhni%p) z)%fmf1YeZzMNl16r8b|PQOH9;%r~T~JQ9y{^2+cUQFvyf=8WH4@HBhT&(uVIjV~4k zs&ep3`{FI^*|$6AjBAPIWKX%*Xn9nuI~&M)Xb2mY#*-hQzO{vAH6Abbg+*1mqg%NR zLnIVcBFAhnEf8;q_T|&&FywqZE~@+H<$;%t`lQ54|1cF8me`!y6uYfRQJ=-jnmEc> zbT|rXm*jxnfz=gGzomu~S*ohuaPEZZk{v4PwWKs=SA^s~?fAbtL@pOW?844cs#HyC}xqviRCz9l5Gy|R|Pc{{XB;aEHeRzU6P zb@f|)jxqBtVlK=*!E-|&5?KiglHNAw9Q)7vl1)2*!ul7UX~>4RA~3cP1D>P~sLcde zrB<-*dl-s%E!B#(S+zl|(j!Jn5YCx0m_bV1vR762_tXKIrk;H;6g;uV1Z89T~HM5bmgJG>jn_LZQw{o0#U8KY6_7y<=d} z?9}7n+`Hk{MiT&zF3o-V(PUvKliH7@BT9!>;YO-cM|T+@dzerEyKt~q!GH9DJ|GHX zd_+W%z8Dl?yy2KLm;p6TcXcUHu=Iz+d%4YgYF-V1U*fwzrl#G$7_;3Q>|h~wMb|{D zCotIjKqG(X9wI0d$d)L%IdhWc<=BvE@QiK3ftfrD-Xw#rPCcQSCGg>^zzYgl$Q~;J z(WZ95oJ)&45oLEq{Rz1P7{*C9Vvw?dFlN+EJskxo6~kI-g2W+ICBiyGDay@taw==- zby+!>1H3s^KI@I?zzZb(*6MUo40ogZGv!`UKC}AT_sT*UgwlBM7X2%5f?QJhfjGC3 z3qeZNgkO*C)Y50VDirqE-mm0AZ*0j(e>9>QT4=33-B4;*^@K9B0Gc7*!R*D`=1&SWl?jj@%o1gypX^?=idC%g z;grnh9Uv|o7Z1zZVa?)F3d%nsb+Qjcqf#j+mhJLt9jTTBjjU)|$$jO56ZUcKcXx3o za#If&vk$Z&F5TIu&g+o@L)!CMfw%)KEEQylRy~174i6j-j>~%Es7Q3Jr?;W_o<7L} zG6Cgl%*J2g9JP`w<&}p)75*M+BGL6o>L1~3ak+Rko1TAl#vaI0`#)o6!=>u=VZ|Yu zSl;!xEXBsIj5=Ho=3liFd=R7r*yHm2#{STnSeh6-5)}6EvbdGvr=F?c2adlP7OW(B z$}%C!F6MxWlm`Zzf*81T28|z#T-Us1i>vj;uelvf<#qDLNT=FOdSIHgd&&>c&@m%Q zAZC+ispX}b-@&KS!R&<~X)Op@n*fenPHTbi6q>yh^~;ehB;%*l(*Wk6))eJw^{O); z&l|J3DYIj^W!#ixF8rtB`U5M~*`|9VXQDicN8Y|`w8?$f=jc>`G`2@D6yZ_a5S=)S zdjzp1kj?2>hm}?zv&t|C9^egKT%pK~Vvk=^I?^IrbNUuPuWdHkLE%6xeUi8*I=K|| za`p0-`01#_d3p|&=lneT;tMh4cDpCV%Mt=N$iJAca!9rbsBf-k0N(AAV$J=v(Uwi8 zi!Y5tOc5;KFLGk5$?6V^roN-TWd?5Lsn9o%t=00mZAoE)|B32W;U;M1U z3prebR?R&=1RO6LZyRQj2hL4@!#mYJ-#^bg+RjeXvx)Kb^)>~|5^ZI~ zntRrntWA3(O=YGlG zb>lLsXTw|7R@jrIUUJF(jg)L!d1ZHd6tElaG3y{nZ^*m*xQ){Wu0AXkbT5aj|4)zr zx+faN_^w0iIYB=Eu}39<`*;SJ*K%=xdy5;B17}OOMMMv`8knY*S!)2;hPO>+Zy_+9 z^C~YHmpl}k0G~^HLR9V@%|Yc{c>sCZX7tCoQQNaS22hbmg}383+-t2BE^Pm7pBO%8 z8TG{^Jpq*qlB|vp3OsecEIn;Xghw>R!%66n%%#AlpiFF0?TgGmLISt0o zEeNda%=dVwN~gwJFhe=MOye?g238Cg=4FELe$o(=1PP{5cCY_}YKU`_U5G_nqb}dLcn(}L_RA=xl3N658 z8;ran@mjGqYc3X`hl}#!ak6K623zPfpmHYV{pA+-4&8 zW4`1xm@At0fHtsFb1Mg>iQ*n^rSmW8vaeDRsQtsf(AfG<6;v5StwPtP=riZ zXdXl|+ZFo+Aqx4&$H)8rTivYfZ^ zRETSa=gw}PKlyR@2O$?ZrAF%I)R?B-063{Z*Ut2kO6hwNK!NN-@Yvplv16YeoRkt; zVCFxWaSo@u@qZ$0}mPN*?Egg_Ajr2jJitT4J z4ipV95a`S0?R-YCxGbLMuW!&5m3=gLZ3^>KSarRkTZd+t-iQ2tWN?oKb`)kE28dS9 zdH`M#ulJcig`YNdj~eY$WTRPeO8y$fTLs%Ly{O>qY|zy6{yS&dyfX_yGPe&v*Y%jY=n?+&HT7r zp1*8m$p&DO(k3egkYVgILc4owW}dK`wb##-P;QIO7m+8?_^_3QZ`-ZW&NfVujTf&a@vc z49sPEynk%lKB7ZtV<}mQZL`@AH4jRh~ zp^O^xk*Y!-vtq`URmvA6xPl$ra(5r73bFr)P41z zX-0k!4Iyi@0MjOVqB#iy8Cct7c1i(dtYjIP9%4J6+sp^R>qOWjMiW{;@EQj9UJ@5~ zNQK-d)$3w6RbX$gsNcSta_K^Jl(mo==IYG;7X*UCrzUY!m~2n(gaimi#4*{F zzDr*G&F$F$|A47u?~YQr35M4LwGrJ=yR31X@Gj89^{qEYDo1&q=j-3xA_(HC@r9{j zgX#nh3bl=nG!TTDM;mO-^Ah;IiMIY}M+GN`4|&u)-JCAwd;0FZVf&EJ39k&5b>?HK zQyuGpvhWBzT4S8#cqH-Okr=^!vXy`EEw$!l=YdEW+*au-<&QO8Q=90ZqI55SMc z_CEJnz2<@9-YVK*bjXNhb(@9fZ3xyufR^lZ?d(Fv}A&4oUP=hcP;)F=wlHH!_jeVjJms^fG|p2SN~8iMO?8sy087&WYmw2ARSF%$R#=@*pT}dm zO3XUJzBhZkLFG6uBNyn%P2tUgoGQEZDv=^TEHuWRDGd+5N|FB}BuFQu8CYG`&t%CV z-*|5%`+mhi+T*XRi-yuM1ow=i=4$T##eGrC(CG&!eF^wC9@=+Ju;Zz8KvFec zO;GF$I^sssE}aM!6KBrQ>x6LP7wO@y=ho&ezcyu2+TVxYFaT_9QOOc;ojcOYtBlAj zBqQG8+;DR$@^h4dPU;oVWJY)Xt!&PDU!dM*Q}Qj*5Amgv3z=ljhzNMsRDRQ7B0o3* z+(%~AWPWiO=N`20dtO@YuT~A$rL2U%k9A6hX1lR!rfz)ft8N9qtbu6)0W7 z?{PUGNsNto2Q38esM6{$jPrr~3UOOVnKo|9hn?6!NY><$m)@tYiK&Uo_Y_)IEfv+D zvkCiooN$qkg&R&5G^$|%9hkn!MGmGq<+SoZFY<8FwMKzmEvca8Ox${`p z_@R7Q|Ii0h&aaQF#62y*K!ZbBbv+rm!)vh1ndZ#HR^*6S%zDKy4au4fI_TT-R_Kp% z^v^z1z=@oeBfCkhA2fq+Xo_0_6emdYDXRDA5%DCTBO@P60t*5Zko34G3@ctDVfS%m zibF#l;w269t>SR1gMNF2fzl8AQl1FLpGy9|81)a1^xOF4EJG{ZBNudCp>lOsR>^{f z*er_-&QB74Yi;X0Ue+3ODeUEO;amLeWnl`MYK(X#5cFo7)JgfUZL(M9kuUueqz$@K zmkx;Bm)O$BOg}$%+Xi;3G*iORp_gF&#$+>U2U01R1ZJSsHDN&Ql(BVl(X1>^r-a3S zBpv3G{$<39KtLb+m9?I;<6p^e)FK1WIm{}*UnOFKAS`Av@tNg291VJiT=V-J{9!}c z?0+_0#p5R7Xd==wyLcPLoBFoHKw!s(XREKZ>isETQ(J)YPOt z@bs);eHHd0PgeSk^3ZQL)HaFxiHeKT0RX8I7h10}*RV>TZ?(yK9bBp|8WUl2a(O=2 z`qP2KTvD{fcxx@B7gLjC)$??2i@?$x%EFeB>e%QbFB?7_V}I7wqj`A~y!T7RHsa!l znT%qa=2brXoS9oxQI1%x1t%CpGH zz`;8(2+!xgjKyYihcURdu>&akWRi+wcgwg_WB&5d}v3ye-2zf9nEHm@+*W1*5On)onhS0q(W_L$OT!#|=!F!k64 zt+EgGw|o?*71}hC(XGYUcrTLApXZN5h!qc8BFnq$S+jL&QcQy|OE?I}%*qwhUlh*5 zllG?L`or!dtQX`XoFT*cY9aO>A6pjuHg-IAr6D?mlwRsGASg)<*cBYaW+jSHKo36MZ>?~nikZ9a9gY3RQVw!{DwIv?yd~Rp z>XU#r>g4=gcKJ9SP!lz?CpRKMm=*ga2%kS%;xh}~a}=Yz=}e$1jZinN#al2eCDjZO z1?8NLYn1D@r1*7;`}If6zStZb>wMeQrrB@e9@Lr2A4PH0Y%JV{2{L23BkmJJQ^T@JBGm>KamSMsRkPBuv9S?9P zEcTRrTC5GX8hR<}{DQLzhClAUdgDMfYI`vJGw1`n7i*@47Z1(t8KveY=c$;`{$aLc z^i9qNBMNy?a1w`C1tAy^r$@BEg@M`wV$#L2;<684eX~`tGOQgXNZx7`*s$&B5Ag&g? zwd8ON4ol0B*MQ~Lfo2IOo7_*T)+W_sL_s1JAC)*y#Wtu#C1d@u?6gxC9ut_~#Xo5k zif!r^Y0E=`i&KCzl>&1w`&~cJv`D1>=&Xnwy0Sj#+=$gm50Z5M;{M3BKjXow0+G!L z{w5lQTE%6~O@&3H#6vM?d^cP`*l8OSzW;0jpHj(kN@A%KT_@$pViN!=Xmg*tqkc*5$ zsN3vNZl3%E&rvw%2{ttYtE;QV&1z*0ImZBIQ`6u5e>@eecE3<9^MP)8AZ};{2F@f= zBVD~;k_CsqmW9mAw=jzaeCo$E-iXrcb!T2flzTzaF}bN^uVje0s7+srQaOGfOu#Os zC#MNnEsrLwrXTHS`!H5Rn#dZReF|ZV%DgZ(-~*fDu4d&+Y_)L1|Ed5bx>Xv1`5{Ce z9zjj1hT=Hh0&`^+L<*5|^FyKw56)N$9ykPFC-34QY}sG>2YFpKp@pf>zXQ zc~F9d?i5w#zd^-8jhtc+vv&w@96R*gpYo-$`D?MiTs=qaG}ZOJuKxv>Qk&2f_Gu}B z71Ikr8H{L^jlhfr@hNAK+#y5iuQwc)Y8=4)R~8LzMiyOq4eewLBookik*F69nGY6l ze0(gq+!&;c8Ph(_#6*wP5z?6C*5U@F&3uL;CC5^uo%yZ(gE;5`)PzV!vGcjb-lluW zavvsL3S2v@HhN2XRI@|r{F69@=JbQiRN{qCQ3vk`q{wl(HWK;@E(Hy}7!+&1FXk5T z|MsDIwV67{E^hAq28~vH6iy~4?qMk?PsW`9dqsGWMMIB11GFha*D>O*+KE^FOMP91 zw~gW3EdAM$r&838n_II;3CUyZ*dY}4PHlT#^*4AD`>C-(#f7WMMLKR^Qw?9jW?o@g_@p)Z zYs`c?aS%$3(y_H$77NJ4pws~WKLEgYMxv2KHXQ@JTMKuRqM{9jFF(RLdN;;-qIf$| zJpwUTy$@Dd(Gi6Y8rF*?f*7XQ3hWu1y?WdNp!~1W1iAnYQW26M}bcLmu0*w(}Y1*)yn5pu{)c&t=6QrHmLTXXaBPw<;=eIn1HtL)U?NwA{ z0X0B#mp>XZ?ack0DW9w9&xu!i4-!VcS(TJ5blU2wmu`LkfzD)9%ZNJ*k9<#mo*K1; zg;OfNZvpUtS}}Vl%p)iqSk5Uo`6Yo+?}6}lD{BwP4M#&EcLDH##4qJm6&wDDRr{7o z2&OA#B|T7$D*yH3vl4xh?<5-^>&H}?@ZX(khnjtL$vuQ?*N@y|$A{q5Jm)Htan=|z zsv=2a?bC5xAcnsC6IIv;)EJfjFF_`iJ#}$hpyW_C8jDvPwnI?Nh%v~0hMlkW*QpA~ z#svaz$=Ey@d~Fq94pyK4wUOYaB|77crrg4th93`KhJE`)t^^!}pQQc~Tk21N4L zWoh|&1dhI2>F0f|ndzVP3r{Q5S&vRX&8ZPoPBKK8c@RIXE9CilKxPd$O{NQ)ckZ%+ zoAa%gTfmmwP5F#Df8k*-y}w3anRtzqs$nj9N*8L+E~7U>gN}8i=x@z%f~p9W@~#?} zNf4qS*FGfpuc#jTHSqE3rqiPFXWf&k(K}puspa6md7w@$xeHf#h>Cs0M|;LR?!C z!@_j}jyalh&~dX0pHWX>0<^Lcj?lxTx7%)ASC>LM7vW~IH?=V)fDb?QfLC&Yf}U|C6Gr)vN`~;~T8T@v@i+sbUwDc@ zdxR&gP3+nTE)u9Y!jSO?Pwk?+aNz-o(^7;gq_hb=8_!w2(o zs%$T++X@+uK;Bbfn3`_AXJ6_o&9Ah>jAVGE$o*qBRq2g3cK5+ixN-!D)^`-(`q9_0 znu;<%Y7mIw_uawR@7?k467`yvvbU?01n$a4X zizSE;#l6EdOA>opDN$}Rb(0%qN!kYywmO!6vzq0{ZfPoqXbEU~YgG!w^6LO_H>PJ~ z2GM(Em|y(ipe93>V$8Cb`tShtWF z&l9|~yvFtEZ*rf7S&L{Zz?AHsPtuz!>!I86Ey^fVc<2{^$(7!<)V+U+8yWG`l!>6a zhBg4Y^P^ywM(boPS9ZOOEyvgxzW)Jmu$I>jM0N@D#>(!z+t+(*!$ADT5hl=#>~3`l z*z)svfWbo6DxeZl#h1ochV# zgCTydh1`hKks_nH&T2o>h`Edj-ki1XWMomHtA*d<_sGKN^V8j}rwE+wUWDXFp}{0@ zrM6+{96PQUhPzuugSy9f2QSpNLPQC?3C=O5Yd=}C^AL<1OYK7}t<#0`7ZQb_FFFXR zb^m}uvv{_^(dV8Tc71AZ4jK~Y$27C&Iv#42k;kQt1@(EtlxRmr$XiX=QV`etZAY(+ zxQhvyXA7m8{sV*QMRr1EXm88TccnJ-qMi1J9%MlD;(J?isyvkMw5w5i$zy)W*0 zWwbjL6g1VZ$m|o|tFu-Pe#)6Fa%;AE!O4gdXhfWzD6^vi{ge{1xNr$gN5k2%muEIycQYJJ>8OABt2uN$mVIMb5On1CdtyGp-vC zi*@J6)U_sjTnqXsUHyotOHGiLH|GKJ3zsEz*`L~uW!8?B2}-1$AzW$~{9VYEGaiD2*-@Z&)wrkLEfRR=F~9yQGTRb7oI zSN`iC+sL?bDyN2%W*KNy*Lm z;%<+Kxl>&z|Lq%;bZ3RefrhQpLus%}vDY>NjeL~L728eC+;3BDvrt_VWalbyd zGW{1yxPi|AGdLPuzrKA3RO5wx$xZ;Rf!!8SO3f}$`|Y_Jq5oRa*$*qx9o1BCQOdkE z)>*^%{YNw|@|;pH7ZHk%5QT2yVA|j@5&3@2zZt#H!4;oZ(<9>su$qvLChG1?{|G!e z@k+HC89xe3+4(b+59U|lICXC};n6n7V;R|&IUtMrLsO`NO*y)!LX7Z47g8=##xx_WN^)W7Sgq&5%@AZ(98b6bwD1*lNjm3>=>m-y( znj8BzZY^`nln+F#R+OOg|GB9*Py+&52bXEp4OPBZqV*lmb z!~Ri&$u+}=URHF@T4d1SXmq_Dei&-z2$hByUJ%z*wPGm@a9>ubou_9A{5B1)sb{_ z-vc%@V@zgI9;CtDA=*IZD|A??b%~u6t$=qD3Z+)Zu&F>8JSZVXMVa6c!FG`7k;%(f z#F2x77gWns2z&b=9iYy>Q%k^%zWjX6#Zqukf0MW%$o}e#?z^f#`nYs3-gj=$x(SgB z=^M*uc<=U$A>D;rSCSTl&!PZcjK%9H0h5R!sD*S|`gEfuz_<34_85dasm_9Y-NHG| znml4_{U-zTm-u`*a2jh3H3U8Nk~MYpv8k5PLx<+}j^_hC1_U!EY5n* z1jI73(UYgMEq}|O5yAcwc<8&8hoOtX-tegj=PTusb&c2P_xGEw9T4Jp#^eExY-6n) z7Mxf0W*>1Stgn-4&wfxs7;3hx+KvJmEe`i-J7nT_?1S9Z|2_}=q@>|PKf0kUK)Jl^LeIri*qlII71j79)jw6&*3<3sA19>2+irD z8d}zT%dA}Ooa<{Ds0G;f66tl6gY}Y!L8RG`c8VvA2o#*i07Dk3;4~VTC)lNf6b};M z@6uB7Hl~=@V0iSjIfZ|9Q)v^@Lc+p+T))>7dqSBoH-40kMk45hlIGf5-0xn`7;l)B z{XJB>T-9qGd3iswRMLm#a+e+zs&cxr$yjU6;|FAca5kbiD%ZCVu5l&9_!te0c;)@_ zJShsQJE#k8ReBf9mbtA$_`Kb1XA;!)w?!v^U+kh-w?mDZ$sG#X{h)cR87Ay!u$7Kq zEA@2`xhgvIT-q1}7b++M?e{v3*D(8SK^R3v8<`|+j>>-$Q&~UdK<^t5$q`8KQa`29 zO~_PC_zSmI0V&zQp8%!^g}%$mS5cbyg$sn+3?^!3$RH=hL1hhiv~ly}A{&4SC;au3 z+eLhmFj&MS{4I3j{5QYN7arS`^AaQJ*kz>76wis93(L1_x<%z5TpQlV=Hms zcl(6V9hf#8HMpEi`piCAVf`gz4s4WWE|hkWqwRg`0vvKz$Gw1N15tjidbWNx0u>N} zCa|cGLIKp3D05hJXmPLJfpL|{mhZp6Q9)^MhA;?XFaiLL75j!*OvHMJ>?CCncBO5e zwXJhl8wEfse*l=c3)Xj+E%mPw9_gQ>5P+)b`98Ia!U{v<@p9L$z?Rus@(WEwjZ(m0 zNfSs6D-jB_Aq7Xpv7S452g#;g%Nk}>jN8Cjqb-xH_Cs<~vJq5KK%5DF-*-Ra4-Fp_ zrhjGCmC4uG4jZfoJl>BovcjQ>3^=*<)CmniApAo{MdhUG--EC?Y&`nO@5X}&6&hn6 zMh(juVEA@K^Ndf?35wboYRV|63FQx@s>!L}gbL{%(kbMZuy`!SOauCuqC9_chDTjS(16SHxwK@aor zAn9ckXlVgCB!uqPdNn5UTkx5=?ryPHmr09ys8Yz{8p&fZ;%>`Dt?-!Asw}J!P#=&9 z)G|GfsgQ^$MYvyq^Q^kK*%e1+xf3fV369u4GKIIVc`F3ZTxLnXxgDcNo`bx+n60s{ z(w%U^=V4#n7bsz9Xt1C11Q0Znk!va9xRFA~o@%@>T`CbXVfg53p^R)3Pz2FuHImuW zDCqC57auFt2NHxBlFUKTnX#wqk`KR*@@Ulu_{?dRQ6Mp5NVp6hN>XHw;Cd0gVS8)X zJ3^n7Cl-XkI^(#pTYNpd*sQpJ(C0**{c_)EnY`DRR+XfTMr1pl@a`oufBPR)vv~DO zA8X_uny(W>4gZ&@hoY92NcduNDJ`)%mDh!QN44PM`Ke^>TOdHsC?BJL@`Qf;%e}Y} zO(YG)W+xG3p2O&&x^ZnX^)Q+)?+L+zhWg%t>3HhX@Wa zX--FzM+=-WpbIzGs=CYxrp(r4WQZfS*Y-TZ8lm@2?;RYy%($`il(cpxI+c(^S6}K!PGv0lSe9}zFs+1DWi@V=6 zx9Zd*(o8}0{#V@;-Ot1_Jy})4tK$&m$ zg7%bNij%eqIcBV5D4At>q z7h8=>`%hwbr@Gx|K@B=Pk#9~~GNXUr=KW$AdJpU)7npb8`ePxQmjF9=UUox$p(R?QvdH^YRM)({qmKv9cqXT?|<=lft_o=L=I%B;4- zTnz?$b&NkY@>TT8&8?lJh~~ezu)MpS78iV>Jf`6{D;En=2XYkqJ=Qm_lvm^G5fAOw zd^11KET5LKD^+^RG?V|!0o5p*ajteA{|p_odLrR2Yc{OOCsO)oW03wq$(ZOQWpQh7 zBeOf)6PSf&QHMs)kDPAUlaMv|;%75EDuV-ed0r13|)sQ4Y-USxbUIkhZQkY|+-}wVPEjCicSPHMtkh zPa;kKgwjxB#dtcK^iTNP+M86bkXL5$5IL}>YW1pci&JkGhovYnD8nIO$IRF6eN8)71mWp&p{v#YC;b{6ur zA2@8*o8*dJwudOjP)VCSUJFdGH$;Yr+MYfz5B7Ab6bfeO*U83%Q-?)0RY%a^d%s1> z-@d~qNrK!oUYIwR#Y;S!H_({^q07sEs`f7%J(N}Ze71o*VNd)i1k}*p1 zh`)yl|HBE1a)bMQ=9%p&GY3ls-4f_l6B0q>l{V>HYGIfQpK^^^P>M5f#XXaBF_jh^ zS??s6I_8py9y;S_2PUra36}1Hm>NPT|I0#SM%`-r5W|0ssN%&m?&c?>1#m<#1YS)h z+@zC59F^e*Yw?3heD0`8@@DS;=0ssLopa2MGdvp^VqqbV@f8hdC`L(Pp6JR7dW0pz z@8lDx?hfaj-5!nvU_}{oq8?Dm)G@$tBKfJ0xF&mH6U;^7-7H~wB$^HA1qn}JY0AfP z03=Vqc|bgXZazoGOWqp(Y%hfT*~aBajt?4rqwl|pG;4vHJ0$K}W4S}Bvb+4z8_(;% zYE6h$^g}0MOmYlZ36X^F_&~mw8WxyXuBxJ)?f+1n(Kj+FR);pEa;M3iaDakC5vk0; zcjGdgnP3=FDg!F5V+TzZhDN!FscQ3(pl>x>#s}SkOdsYO1MQ-u+t#wwV&Yi-jqCkv zJ>nxQ`ppH{2;oWBML&$NP%+CJFUH5*-#}Tc`%a00u>}w&w+T2kQ)oqsS)xAHV*p!d zlw#7dK%8a)+F5s49_$p9%I-4`wj?vfY!34BmGTjFVNG2uTjEG|#8Uos1z56en_9fR z>f7n+AIyyWJgB_Ct}YuK3Z%WJ2Ecd2wYvNzPj((p`SPb}eACnfBbE>-m)9UNg0iaF z#&gQiUSG|iY9bRcWq)w%@pW6ijivblYuOuhf=46(QZ9@d2>7UGq=kM_6EEK5QaR#9 z?pVpGpd14Pd->H}-^fnlNP#Nibg}Nsmiy=qn48+CErDGD!|g9Hm1FEQoobu(7z^7r zRBXgRi|#N;{8*8s0a-=pe*g9I{MYj5IF@Sklb4bB{eezH`p5<`6z9-JFE)Hbr^<}K$s)ao+UM?7klVL= zA+%)$;VAi6=ih$+SrFl3K;Di;NjRrGB4^PD3JdNDx7W4@B$N@=9c4i^&ur0Z4$ICn z#i7OnuUVjouwx0%u{LQ2GqLAD#$qw7ZQ&^_f|D>;zPGo zmWG(Cai)zP1j7J`4E~0SqZO+;ru&HODN~-`&9E$wSyY7wuN8MXcp{=m9sE*Ky9X$Y zDs@C@OK^Tgn=9L$$T?Y-h@0MojCd#lp=0VQs_v^91QPyS--5oaO0NUEmOKno*NJu; z>N#K;^`nS+wte@&NJnuY71i1)qdx7?SoB0IaaXVf#E0@Wt_5P;MGJQ2?5cGiy7lEa z@aU*~?BhVTETLXb@k3PE-J*S}eN0xKSTVbYvf*sT_E4MMz%w*1l}pj*nxw@Q@%05{ z(p}qdD$$%pKDua|Xlw8cW;)(fyqiuV)^Zh%s0kgt9$(A(mWI*>`M5fDqjrDg6YgJg+1aMp+9NO^%e4TOgY1cIClR;jyf8*KF`2~ z6~I5_ShdnYZRgtCMN5Fs+OO-AW zB!u(FKa=~Cf?5GmohYh!9$!cz+!hf3)`JuZRNa{m#IXNgfc>FU&jms-DAvWbmLpN- zFl*>xYgal^9LU46rTf?w6Qs6yiJU9C?+zYZ;1E>4g9%`gvFFRnALkfc{TR&Y6`eLKinLopd2hPP@_1ZU?N!eodxbqj1@ClKZ z2}T?NL@L|t4E!{<<&2>X2%?FS6cuOOJdS+FZx0pB{IoAFGCk2YAtPb#`~Ec$rPEN% zntLgoNN!1S4O5;C94flZhA?slqbd^QQBeV}env5CEPWb<6M)M1r{sdEHIu@zV2@sS z|8rX%R6uHnClaUlj>bbhUYpkpq0D0xF((gqwP0IhXAC<~k&|YJr9bwPUNww@QZ_hz zyiB@pdh_~5SGJoxg$Cp6;xJofYu|-awJ?C`SMN8bs}UCa_A!(4b}_^z0RK z`b7`uR69o{&=a6Pg|23-zi&t9{Ch8{E{AEVEtEAhlgJ9UEPLei5fU_&jMm|p1$9RT zCTaQKJHUD#oXhI;|C5$)1_1zG^U9|je}!CAcnehAxd-xYv51hjxYihZO;-1>#>U&r zrh7*%#_H0yO}(icHtmzBwxURDQtZOHJEoR5e_=MBfL;HPs7@c^D+wqi?d z4p@LBmo@5RTPj~mB3V4_)mWYv&fvDf>fst&vh+{Ts>%}ME%{w2#P_lSLaFqdpr`*l zK`8-8j)I*zK8=yK8EYC#(IXHks0)|^OXfiPpXE}`__+$?3>s)jW*2>u9ZU# zFMq&hgQZ?$7r+E{*n)Q8aS6iofzFu8nZZ4~!VCX$Dvnp~^V-;_C2rH-OK?)%Up%>@ z@qK+F>WiE|vO__ac=`9&OGXes+{`DL<(Kp8qv8FZf zcP@^`<83Fnds_Ls$0%|_>K2x^CZ4alUI|z3d$018541Wh)40we1qUNKvxoVGZ4K2# zaAKTi&52s}Do66SP{vd9(J+CGSBg)^p-#=vO0;)b_J?rq^a}v)!I^o1RrvqoL(lOP zSj}QAM;7X8isPr(m9<$hV^{2;CDT?%!z?-M7nIsl%6)Q}{nP?z+i z%i3Wvo^niwwrR*OH!nWBiA}UK!%u*Or``r1f<7tNSl_CpL$l~gOac{>y{5RST<4nN zi_@^AXiwCxyLo8O@lEdE5%g9tu^7n|ZFYyolgQ)wNip0Qgp^$T%+zON%{SxV@nW5b zqT)r7Bm_$Dkz=&zFk^l=W4!PTg9tL$ce!Swp^pslwI5u#zA1v#q%Kk7=<`MoBkGEtSuIzHf#)aGY?D`AHQGY{B^p}163E6(M0g#Ufh^oqP zqL3>ilhn9&VVU7&Uu*uIkPZU!#{-)wSF5B28(HHv#8+8`^x{H=nn&Jzld$%&TNaxp z4C!+iL%;{?o|`m#U&_=Toe!5K++paXPI#yp(t8N0M9+$$6!6vssSavvCHvJ6`!+!x zi+7Cg{4l;sgT-h_#}Ey<={LezkVyFR>}Cg8eqU4|ON_qtd-+r0Un>^#==K(9KYYCIzrw_F&pm+w2whmLHOmJdc@mUCd!NzBN*Z7E`Gy3L zhsxFkqxnNMd3T%#)_DpMi0VyjCE3viid3~O&U%CoD$>o&;qq;#X9KRLJV_T@$4)%8 zdW*i96+WVfX2i`KUD=23IgYBv_>QtLdJCE%klb%nW_4arz%Cv?doc~cEle%EfV77E z(%fH`i=r|lwB!O%P%@1jv}Gju>l$riZJ}@{bMFJ*uoC-D__jR3Y7A_s*rsj(2RnTz zs_diuKzs|z;pxRZje7<$;g_ar+t~5|s^=(p5T#aT`xzA%uav=%I)``%FEw1HT{rP! zKcvh}vc|H?O^(b>a#XwCAc&xwMSo=pzQRPDYAbl$Y^BVtjw|GW6Nu$5uAhFL54Vyv zyb^3-i+|iC!$Vqtm$k)gdC`nM!SV3QNUsZw6S>P-=a{kEPxYL`-F$^3_zfOQjA(Yyu>SX;_gvJ=3Inya_09 zQ$+a6NYxd?CnETac4@3kO)t!^*}pVpcb7MF1`${Ig}wAUy0FWGD*+YJY>&qgRi5W~ zQ0jV*AZwhMwO4Vt@;bT-_@pX57ivO>&E z?)(JGoFoR)YaDC!$Ex=Ss=W{9+{1#FaI!l`grtWwFtqLm0e`>((KA#Ch%ZvY zP(5Z26<8yiNqagRtv6+?7K%wJEM9h>9Df|pl7K!G7FLv3X!_hHPBcI5tY0=Z8aL;5 z>dGc(3p#iF0Xf92_HjX1;y^AaB_1J=x z8%ybQO5jolt2+WbPYc^!Q#h5UtoL<%GM!t+s0(Cq%J5#oDP@GTfFawuPM*wPaGpm&%R zv7PI}62b|Zbz)E5Ar~+ftLPZ-4hJ9Ib7aDQiJxg1BWI^=6`EE`KMeJM3?^VkqHCD5YPnfB8Ke>gK{Z@nPh4 z(JX6WeWz<|nQkp!6hcL9kXQAhSVdPDHK|Z4R@kmz7Vj>a^kuOy)dWI?;(vdl6>Fz- zF=nHgpT>yqO>onLVn7hMCiC!-c2@;d(Lv|I_WWqNZAxdPa92`?+}RLK=~jLgY?}O| z5;XG=Hw*FK`inV!gF@xsNs)*@&Z3;yNmlj@Hgcl^6K;(UAi=evR!OiDktDZ&gYmLG z69_n!aEx$L|w!mEl+vDC}qv;+ny%nA7|$! z(dOmG9I(5+{mGmQTmrA@Vihkc#phj(BX!t~l+;RfA?hY5cn69ZBQ?|@!hIdg&FMWU zRY057sOb}WH@F?r#L&J&01tPfihqLo3099WAW#ud_1hKh|APt11N;We!aWUtU3}xO zegnGpQ-`~`m`fo5@X}UEKg1b?M!1@PsEKx~NqRH=B6x!Zq^8(jA4N}3#7&Up?SEiJ zrCFY8YM(&N9piXw{}ioV z5^~ld(xl}ZFPKoHBXgZs2O)3m>FGO}Wo2-X)ye3a-Du<5-Pj2fr*uA+AIlX@pD`E` zw?efiK5m5O0e1Y-Wz#friUxi$E72d4j3-pg?hB7oPhaF)+7nZB){ZrH(T2pHw1feo zVC|qLcu)U!Ezn%t>pl(e{6y8aJYQ@7^&)zcra{kS?^RU5=s3q0jgKHh9e!Vm`|i%1 z06zB3K@3ZWrB0LP_)}Tbs(r+I^UT&?YHBMk9Sc}Z(+7T zl4*xY1sP;Em;P!#o`VUsmznuXK?&oFu)buNC<(6t^xHxfbRrsoRizd93$k4 z-I=aEhbLXX+G##o5YOBX2s9HRM@mH)6wm8@hK;Fmfa?7H_M=m*v3Gt>rx%By^$kql zRUeFlsp31VuJCG6uXB||=n^V2sRI2i*43@<>U0rw1&KIff$@O-9JjS-oAn%x53FNN~ z|1)fzAG(=5LF2EgwA%M;li7ZYmV6d!Stpz zS#|}QI>_WDO&3OHI`(Y+G$YIG3A8D|Lsc7D<*?KlSUD_b?=otz_5ABGXeuWXcx)fp8wORGYP9OZ+>5);?{D zEL3Z8kCAOZz+oJ=3mE1J3okd)Vf-~ddD~`~R9D$x7FswfTht*fkRXz83RM!_kkze6 znH$VhiMrpuya$5B#sQXUFd{<^<&5Co+Apc7^Zwml9Rn|pguCX^un%m04yoo%ouzee zjN`y7i88;Hx^f|eoEA-4r%|&*l@2_*bS7?6ew*yXqYRZb3MXkPOauA5B6^Zd5`~31 z4xoQdUiAhivFvm{2qicjl@o%toF}Xx#B4C2u|~bShlU6aLW}t*P`B$t+Lw;FqAoXI z_N$17bmbJvmQ#&@HDH1@r|t+umJes6D#Iv<1mx!qgLtHhYFC>M9ICMXLy`cf=fF!Mf5XHos#w$7h$0b;;tia<#dL~jIs<^crD|_yDjc~j zHjRFnrUl{RN~p=m4=qQU7v{FV=W`d(!-5y>8u7@e7Na7p&-FjCSL@!NbhT>e;>ta8 zs8#gnXXn=V)?8oSB8&Yoy@VSMDCa61^d7NiVeRfik9(u`Q+VRhyQsm9=v`FJFMdW^ z|5Uc5F~HL|qDlq`Kjjo43Jg-sdzzCn;-kRaPAZTr)FIb6BI7B7mlFrAv4gHW+(|!7 zm{S!?*ZwK;!XUXY3>XfEWENxl1J09Ug~*? z)lh5C9XxUj;OgWe9J67y(sC@dPK-{MZ~O~wi?}1li>B{cxT}5x)Z18@K-@z>IQz%% zZl>;&n>-;1al#EC#GH>!x52ZV-51z-<5acbzMaj_p!r^BjuT`E=)qmN7{tf-s7tic zKJ?{<7z;mY$>(SPLx@Y>D;z%IY@Nfh=>NG3r^^oO?UKA8Ka8f#dg7qfje60oWUzUg zXum@vOL&5e3!5$%1wERn4t*9reNgDZe)`ThOF9RGMeF&kJgeRmbC8!>J3FsID*_Eg zEBs5jGSBylw}7oq9uvE+s`0`VZx)XIYp;g0cq=YEYzchifA2}e(5Y0;rwuRRYAU+CJ3;wx_{s$tT zSJUgmFRcmK17hMcOod!D^XqWFiSBJmQ?C0gMIJIL$Ji=oy%%s#Uia(k;1BI(q;Kq%v#smTjqFK0W!(~_^TtJqA72M0D8(IG#IS-IK8^i7h z&GsHhli#+qhPMRLz=|ry#h0-myeP-n*Q9clrPH09v^4lCM{VE@Z4CQq`LqkM2sqE6 z`=~KFsH^TFUQwKr-EE9mYD!&=IayLWgmlraap=StN6VwM;C zEAyL}41V@DNQb$pvr;4C8N`$|Z2&JIR5CaaMK9~@qVx1JLfn>TFxZLn2q5h+7Go_^ z7zCkvY1&2_d6oDtcLG-jAU;JQCvWeVUBJHHb}%T55Ze`5&Ho4_@Bagz0UY>!f+Ha~ zOD5qSOmoHy?+@3Lx)Nj5*Wcf`LK{ z*U*t$Xt;>&nslg+SgK$CM>q&6EPyW@S3x+JR!S`IBs|hv1CnsMNg@w2x9!hr({qh1 zr)0J!cwL8-|Gpc`^1$_)os*d>9cgMRk4QIo6 z3r+Sut+(s1>*Lan^S?dn?PY#wKaD9J$ddBxvljowPas0gXh0$L($#uf+K_rO;f?{UmuqQ3>a{t~ZKj>ekKGP@l7iGPiDRBOqQ^jgo`-p|- z_gB2UwyLSmY=1yoUdgvJ+@2ZXR(O6ry|?>@GFM=v!ZEMO{71_3RY%Y0&Feoe1b6WB znz6^Z9%EcJ4*XHQ1^}^$$WeqN1LVmNBKhT(pf9`Z9W4MF&E?M+D44tycq5k65dW5S z9&COAS4KA-ftUW`bx>4A4wZ`^hJyUUS&`dI?w8 zfEKHY@nYvlY7yz`a(1x8{3OJYc~q9KMT({;8m<_DC)K+J8P6t2*=)>v(&9;PpvR> z%@S`Q%Gu~4+t1R5Qlp!L2*zud+*nZA36AyWgkb`s{M#_q6TjkT<=LJN=O{tlRYy?5 z%?ST)rBn(o@?ep2>1Sp74smiQ?N_{iluwAU?`PyalTipRNuI$i3L^Qa)xps_U_=AWICVUvLi;M( z?iwIYq$1^g3M;YG-O9B8L;y5vL1N4|SB)n$_|Us?yrxz)y*nwwiCfdJD;s=|*aTzK zN1peHfSqcSeHCZ_=2S7?Bs!2`arL@Ew=4}!OKsOTSXnc4s^H$v3Ihk=)Ediil7pC&HX)Vb+6tZ1!-D61d8*PKPj=zG*hW9g2))ZqBm znbhXmnfbWRd7&0mj~9YTx-alS5{+Z}+X5G;Em%_Sa+tHED~J== zK+XkYlR5$y=#59z1AjS{0Jhn?*L^x)u|8F9IjFW!J3eECIgDdMJlyPQX1Y1b?}*d@ zHOU)6gjf)~s&VVL=1wE?3_5jtUUyJ=tSB~-u^fW2pa8qi$MeOo=7yTUDkf6i9t zn*67Wc-9{e@UCdUr7s(35=%WwnFH)yeUOh4y2e0g3rEm7y3ljU#f?h&c4T&~- zZ9=A6OvFKK3n?nGoJF##dMm=kjC6d{Jd1Mw=WP035O<7^Oa+2ul4tf^VmBqjB$Bla zeyj+hfUiOk6<2ePreKM2Iz`^{E4_H_nQCHvH4O>r=5 zP8UO0kF~{H!AYx!#(gpK%30`0Hnsy=u%kDdG0fHT`l1b#xmr3Zr{bu6XDa@=kn|7o z@zbIneIb-81%ChONw=v<6hs(*V19&!s3 zadi@QI5Am*u@Y(kh1GV?OY(re#x+ zI|citR)WCC5xtAl$+EQ;kq%9w+4qeBgfjsQmr6@{zcxR8v4F83(akJlRE%My#VPqO;YYmcrH|9p7aS3T@3$fHnNYO zPr#^^5#!Ck9*9m99G55Qpj%KKTRBnD-hLoViHD%trPi0W_;%kFacJWQwRSx3cce~U z=#6S#z#H_D>Ke^v7AxBlVS~PU>HZ(CjX=BOP2as-y?r50%Jz5(>Xvp{4EQqZ!Ncp- zfYkT^Ed->&S5FjzX^Pa0+5{GBlx195a}j_(Q?1QzwtxG8pL@YP1(_06!hWWgF@0@q zfw&_unszmn!p$qlu2b@y_)*By6tWPH_q!V z3C9<**QBwrLGl^ZhzD`N&h`Y zNC;WiEmoDu#s?))q$43na!r|Si18Bg@d+#O)IUc=$S3BltIRE3?oX4^if4!SCmz@7 zV6c()aWmrx-F3qY)h%+=cvdiBUF_IPLl4QTZ4nNkZN}}e7y{*oR>?*c@#s6@Mb%1FdR5>`O?<6_nENTse@#IB}E*SRF&>Wn_` z)*2EMutnYbxE<>yaZ*QHFN9_GYc?uVt7gGO`SPROGidjE3Plu!Vgd42Em0<8yO9n? zYZQVMza^iHJ2|!K$cqP9B7KOSxB8Su$faV2B&P^~1^|1n9{JX-@Z<+X)HM1-glWad zXdKdt4h{J(uiy>$`t@mQ(DMI$KIaC;`~7l^vI~izs6^Kw5Mg{ZSI23gBsSU=vg7cr zm@rFgtFsW8#)~13_)%Y(RCNkg@Fi;Q(5d61RM>dJ8;~d?FFQCyJ2cdqY=p9WVZ(E5 zG69N?3^$WJIK(Y$Wo#4=zXGLxHw2e$YNlMIvr!qv3%9Pz!`AA`aVN~T*0M?n&Zo1@ zF{gXQUC&sTa|`u&E$pRTO;~=eIv-_jvdrSp8#}wL&|EuVn>-X3 z@Q|yt@|5eO%?U^}Q_X+z1U6=&7YZzMu#{ls3&*=M4p4s3xK4L{DJ2gf0y z`$BE{=L&_tA;tQ$rVB-y@n{KvTCTJ6*16 z)H-vOav!YxLoV0Bnok=jNJ0pnb{Ur0X4Mo9g2dI2ZZ(6waQSgM&2{>Zmrv7yQ zpIsUNKCU!_IzMFtQQPD2u`16hU*wQ%MP^FSsM~6nDi)9PPfPasr%*#zTM7Gdx~8!O zM;sh~wjy2@a>SQbYUPc5Bwr`iz>dQ7qXDa(H<<+zu(^~({W$HI<-hO2HsfF2%bRZa zs0^o=lUpYTKm4E2{r{BVe$SLP8#5O7fyBrfypGRC7=)*8mqbM>Dk4nco<}adaQ)g$ zKOLeXD7H;n36#Y@WDc1$b6=G~vx%S_aj8w_ut=NqTmYNKE@j^2 zqZdc~3knaTIQWd!hk=ujmw3MN?mHJfb^-3MSo zf+7GhvDvuKnW~ig>>B-*nB>Y&Y{}x8ih=EM+9C&7Ir3*ka{5aZ;eJ++#-R}c&uTxV zu7*l7VwiKX#kaTe6@UHbO}MIC3h7JduxtSTKLEh2jbl7kFf2{TLUYUkew|OYQ^-W7 z_%94i@suOPMjMO9U}XRo!J>n&VAZTxo$Vr_=njASbFF7b}AEJ&oD19NmFP6mJ$2q7FOnV(KWMnG$`oT zzu4HZ_Vw*FH@GKhHF_M2Sfeit)Fg_{WMh@F2+&YfvH>Kqvg`GR@9W@E-1N-`<|Ih7 z`z;H6(FRP3hTL`py!zz_&=T)Yu2F13=(#LJQdEj1*ATmue?7P*V!ROwqhe+H2f>*J zdX8(oIajNq*7-HgYH@*~^Rr!$RechQ{KFK{XD=ZR0;N@(1i0s!1IAdK2kCRs%BLRQG-Vb9CZ5n)Hj%}l-Q=!G z@0!az7<$B(Fj7I2SW4ffrB(mug0-U)YOchegRnyeh(}KN8&md`@m*+xI6HR@jcILC z?JhgC_Y~C08zr_bQvQLoe5c|RbJn$*nGga6z8aP*$FVRWG{zVb{=m=gpoiWYwI&%Hjz9_IaM||Tn(i{jkRBJ{Zc$Y$-6WvT zRY03OrxFk@gcm=AZSk@!{5uX_)=Pa0awH~mo<_X!)*RSEg*gRwR~HVVX))s>mkV!^ z`IW>aozoawTm3_d=bA=ctLk1M8)d8RbQmj7NK_(?8kWDFyke#g_}|Znz@MvLXIZ86 z;zj})7Vf{xa5vhcrDO_QGGk874n-^T%s(iqe^G}X;YFKT1str9N@v~zE;A5GfkDQU zPHm;;5AsvTbNiG(gyj@dAt|v|)N@_Y_G48{el|2gxZ;!MlJXJ*$4~9SjkCcbfWRh} zW%^X!NC7*s^6pW*rr|VdzeM1T)HV;>UL9Re>_(~Fs2;%P%xlsLjMyyce_h`t3bZc8 z_4t_9;N7CeX3Ey=CcyNZZAL!?oU!n$y?mw9EHc21XNY}}5U2J@N*6ue0AvfwFzl98 zk>QDYvqK4l+j}efV**|PeBH7YQLaDGIA)6>&-xFQBR>$0Nd+mI7@Tpfp1m~pqn=}Rp@$1HMLRH4litr)W{8_1ErLi zIHb9@+N%-4il1C&4?pEpY@t8g)K4+5F~HN#Il!m8BsaVbh|B6B$K2|1j~0ePm8h^d z)YU@KC{{fgJy!hwo%!?%yz3y;^w=cR{bCq~yjHW8Ik6{G+q|u9WjdU;y2MubP}SF* zxz7T@Q5;#ZH#R!@61%2!tb2qWmxuLqIkQ}lQr<5_ivzrL%KZXY`^sg+VQpQZHycMm zy3c;?JV#b#b4cqr(p39R8pjk0w(#mjT;dlkv?Fc7Tk5T{w}jJa%!h%d`v;#{!H8o3 zJ;bI}ecz`kmF@9vyf4{WfI7$^rslq(&_JY@YJ6gpKIwwf}ms^uO#kc3Y0Kba~->79(+WTn|r5qTNZbsp@4^@T=^` zZ|kdvJqoWXFFu4VVgN_V=#pz#YW`$F=#|oopaxrC%SsW?3svmhY2=VQ{K3F8Z!pnq z=G|-OGUSctiqD>_&Zn#W8>84kd0I12RVbqj!vYNae1uWh0s+~P`d$%`k>uKNvXMPh z{7}s8F+7=UI;|K9_?`{J6K~#o)J{!0R!3QqFXg5?fp^^%8VX7eP|u&^TuuEPpEW8)zfEl_ag<9tUz z7P+F-M652EVjP2iS&Q$q7?kh(yPt#X@Uukd_DXn_m>NPQt0RU=mq{B~z6&i?CQWh= zzGy(YGa(`rZifM#)?)o~rpwm&o zfx1o51_hrSAdKxNW2+{*OR0=NT<|)a2U+DkkZ|E&+SlE0tUnc&JjBW+11-*qXH>c! zd1MO%S(NIUf8zU=e%b6Qkn#8PMN=pQZryZ-7yuc~oxGE~(FWBgO1ZjiH*J~sC`FqY z9lJKr{m^+>{mzm?Qh-!v1gnK}+2BxeO79#VzRHjM%W05%1F zQlm<2csx>rD_Ysh9HzfLKEo^L0x=ZwS`Lsmz1#`AZfcH2SG;6XZ|D*8NPN!GR)nE` zut^isZ}O`ghrUhe8)K1*XWhC(9XedD#^#FDBpw$E6S<3=yW=GsE4`pCghbYB*D9OZ zsq@OA#encFU}OI49nOjOhg>o8uJ%8rhsX8fYfpQsrG>KvDcXald#}lkZ#0`F@uanH z`#uqsDepgbR-O2>G5kwigjF5C+uy7KAIfQGZ~{w@-PTj>BJ{B&^Egbs-yK?UdNm8M zc<>*cP}>ajJEVh?mu}J@A$^jmVtG6n2hMLSzpb^(^!rmcncjrq<~@&JH#f0_7}okz z%tTiIMx(aZjbC4saV1^$#$exCX1QydqSAPA0pc>Bbcp}oVuJp3Ey}2p z^Qa5mkd!)P>^GrpUxx%E;rhrTr7ya0LRy7AuZ;V}E!Zwh%!`y|HN?jGbi^`?7!{f0U5uU!mJMHCSL~MG8eDi z){j$tabxcPn6H*!B0>f&o@6dQu3T zJmnBfrsowESy!Ys;0Mdw5b?Q=kw~QQ;_g@%7u=6-l^}M5%sn=ggw8#UD zywA#uW6tp1h&x#@I;Fs7lS#^^_76WV5* zVkIb`$IzDp2za7!4Vo3CI~oLJ%j41q%5i`3A?A^X$&Ql(Q*(*oT(cJFw>fW;WfVh3 zaTwRsy&i5w*qG`0*`#@Gb55?jGN#2dgPK7t@Z6Bf%s5pa#NEC#rxH5Qth2<42+dCK z;@*Wjm#4q&dHe~&RL0Ire(kFQK&_@k99rAWi2^wuqtU0|IRWD`#jyOUgPTapF`y_S za0-X1*4#?3%X72|8Mww$3df9e%!b;#YS0H2vnh2_%O}%{Hl1hqLCuj|@k@^bChGxhhCedxi(ReWMO<*>G=^d3rLp#uCPW)ql2QiH!N72g`(OJF zcJj1p7JjwL^pkMw0EjIvf;MaKo1Rkr4{r^JcXG1VpRlea#a9=q>R$sRMVlrP((NrF5`+q7`K#8-$GH2eW8&muYMkxD)d`1lb zQsnN=b6_;-SUNj{XCy_@WR1p9M%a5$UiV+Quv+?k`yok$y%Mm8|G|Ov?`Hx#Kcm2B zq{qb%1y@mh{FSKmXyGCpDV)mz>@V8i;UDB~eTx3N(tbQhs=bWe*z7ga6NTp6!o1Sj zy-C*XzATX|F>a+>oD3|7Vba3BVen+Mp<}8ApxctRqTt$ABJ;icZKK=m=>$O7Ao_&T zSOF<)xzho$VuuPSFtrjzDal2*Vb=7$IQ990l?U>z1L=Jm_gtt>chgE*os>_0Vufvh zQxt*TS%vxu(l3RS!o6=`mdecWNqTifIv!mql_E)pu-22~Ju>5)A;?n0V}n9SaHH+2eb4zA`lYXTFC_ z?-bW4jnXlWM?FfVx{MAm;=^LCk>-6weVY zTvtb=Y!S9rE<&PFmT~CKo0BO~L_h8U-saFxSwPy}cDZ^wzGbu^E0E+2K@;*w4(>hO zf#-kYzpT41PQpQB!5Rw(|H~zs1)7AQ%Sh9+gTX&XHE9@A8t{AWxt^z-j0%moTn&rJ zUQPTdriPi5XKl+87w{Ti(m>FTcadw<}!IogGi0om{Ng~py=&anK$K59Y z9Nx=fbm(#M|I;(N?9_|tyFz)-Ay;^Rmkg$FalaCRwdt=}$%LEqv+CD6%Ux+);tF*) z3ul``e90AcZ)1nqAdKtCdxKfM2g;cj7buvVoj-T@uqpZ0=YhGa`)DcnO}A@hz&)t{ zH3bleBZ#Ypd<&O8Q==g48s7;HyMetG=jDEqu6X-L{2{OBN;0k@VLQqiiLnrO=qXG1G=ByJ+^rJ|%<4QN0HNQ$4A1vHy1yl*j())NQ z0!cH#GT_+@HB;$X09Nr8xiuya+x9MM^wAi**~^?=)f&Iz7(YBh=z;tS{u|C{=1~l( zjnN9d^?zWa{bN+J|2Hltc05{R@UUku=vQMo`8hV%6ptY~yutJzh`hlX1 zy{5K+P!1360x}E`bb$RvupP}3;d3AR^+N16V}gucZ40fg;a7LPlp9|)YxJC>B+C{Q zj%2ZxDx2F{)mu)aQ_6rV@iD*rOvd6kYvtM~*-5aqmI3avo0YN1Zf?wehxMHathuR> z6kG)OMl?c!UNy7xi}6+~_M9sVxCE^?5;shE)>bDYsXX%~`yHehEG7Uck z{XNI6;fLOyB^6RXnwu+?XorDwiWoDc0?6S|!^u%-KPZMlb{{B3&0F0LK?qjmJs{P+ z5#c87?gT`u0Dm4olPS>*jj;1NNwR9PacASQ;+fjiuN!0^%@>iXW^@(*M%0;fi;ma) z>G$6o^DdHQpYEWEvlQI317|nTwa@loJr`2I!||o|O#B_SV34_pWzkqmPgQf!*bwPs zAAZ#-U;t;SxDE-hqGk53!c61SVz=k9R;+R2NGRTuxjb9-X)!4tV{OIo`Yffz-?@b) zqwvW>5jDypeZ_Uqcnc$_ZN<+|nY|fIByYxPIB3=azXjFHRJM-Rg4oq1S020t{R-RD z&|L^ARl^mh0oemC*>y79u)nfMEy~0%;PIlOZr8gSvBR4>1J_zASJDkCSlhpq=?WdC zE~Q6)uxTFI&X6IU|IZM0WM>Ue2h6g6*LE)^#%?{m{&?Uyh@DvC^)J%rl}%uA#b>9Z z7~@ivN@$OMeX~PP*ucLUpm97PVNg`6OQKIB_T%jYJYJ0*k0iS|-t@z$^EdwY6edDY z+%>+licKY$MRf_8^Q$;Cew_uiGx^cdKp&oK{1Hg-0kOT=@&G@E6)aF4rWIs|G{$UhA|1vsqEh&= z`tT>}GKy!Xnb2 z|A$VV>2Yzc8!NXBi~s%yJ2v{a(5X}`Qg+;F$+5Y1V@Z6y~FdOnVR;)5l(o~u1+=~pSK+*SHu|51`)Gl1lwf7_|u-$~ACn058ry<(2 zhZDi2;TyM%iPsvNAf1x*{w{99!f4;ST=EOwC;yUo8-0Mw&;I(Bf|z|75DDe+(A(zK z%uYLvdKtL3J5xeWz!b)?WaPZdbK@ZniK!_&O-)?wdE!__a(75F8G?-EH9puVdyA;H z5HX1h2SydrwavrpWOm~GGQ^14zG1?(3>1TJ`W9|-UX~Uy7?HmPF$=*_AyuMkQA@XZ z4cjT^jSdBiH!s+Z`3a&8M+j^G7Nu$K&m(qg)9QMb#6iV~rv7puqP2>(_wfeMaM%x~ z!oIxO#KH9<-iptel;()#!eI-xgiDL8DrT=v3q>nd9cj%GxsR=7#0z<0wuiJVfeczO z8TjoVkwkPHi>Qv#2LddLm%ILIJstV^3ZDHyAn=~V+@c`Y2Z|IO|FnFW4f5(=Xn4l! zfWbGeFaNratjfQloab$~gWq{e2)SDzy!I6-i5i5Hz`JusAOkeJYH;m~`*^hQkT&9) z=i)1jN{g<~ihQ~d2-c}SuZ*v9kM>(U$oR>y&c(SmJg_yi|7Ec4{!5VE0OD9j(uUx` ztfA0&60aX56s6bIr3(ZH;($LQLo)B{9$lu5EywYX^oIe0T*mK-@>rUABmAmuY}wA z;@d=^HC~+NG{1zUmvi1iOt>U6fizXvKxy`6*uj8q_nyJ_-W7f*jyFiV-K{te)*2z5(DCU_=v4;~IOcb#f2_-CX*j!Q%P<7%VL6unUWuQ^*L3aT!sg^!TJ zj$SyjPDbl12*p7OpTy1$3(+39Iy${i!5t*T7q<$*rzCN35U&lI1EldKr|k*dP^0W$ zwSN!>w?G;XEbY@MGGlG3YazhL3?a8bCa1KSe&!BJG1SvvggynOkzz|(E(Lw=%{6EjzpAYDiE;5$l zMlX!s(tX2Y+T+G}$x2aUgjl|ow~b=SPKatbrom?XayOyl#~|8(-!nqCLGwoox}HWx!vZrv8j(m$ zb#ob()dembb%PejMAw5}>5bnela;0q=)XeTv1}Oj3R7U~o{n*RJbGv%^8M<8X65BV zf@g!oN*RN1tY(JXKdPE90Un~SKs5mw_*+FO$gv?`TF~cQ-=Z7F^g@lyF|T>u+p2Rv z^D%K0>73X2IkOB!y&jOA&cay=Ua1O!E}j zGv9u zM;LFm-J-a%`>A)*Nsq;_aC{lxOAfEg{_a6dKExvCS%52*uqm-FemPdjaE;)lM&*mh z;<`&vli!h6-(A~#Bf}`cc9%@Q4`6Eh{xODJZo!~+hVk;b92XXMBvSFn%6+L<)R~fw zH{`2*QYdFE{T4v!^wFNzMNyYDlY1Bs=Jtqs{Zk-KcCHETxP!EqU2#B2AZ;OSmN+iC zRqlM@#o_4gVlq;M{7)(J82gRRw*HH|XIMTDqlc$u&SPZx>1R4z+{9eyzr%IHpSa;^ z;y=lp{by+ebRDl$B5t(-H-y^O6FD4}zfuTHr0sg-z8T*Ns`*ObUaay>rVMkmU3u+8GP6@u zv=}oZXoPyjXaI=`Bky8lRYcpBVistu7Z7%B^d=11bJGBnLqdjBJ{XkBR&R9T?Bx{y zHcW@8*6=h%@((%gud=Yi*#^B=AwmfrrXf1>G<$+Hxt^8rU!4*Qmge9wSZ%N$Se}i* z(AJK5N%UtJohsx7q)~KEvD)qVz8UwYBRfAQo{{Bo`?3AhTna^>N{Y7f`{18H@ z)liw4{ju%NqMwp;Zrvp+VH^9C>|>*4W|aK}f4_@h2kO|sJ@mDeE#;T$9IrJ5|LDpl zWb;2^gnz@sW*_7Y*CLaZ^tfMVVEFb!x0^QM3NtRl-VwKCJoPlg1Bd7}Cxbj7N>pV)*0Nn;b(1aH{<^d1GDO7{T~U*O z1n7As>IdO&Va!C6V{|i~p8>$U=la7(M7=piZbWS?*cBbv#&I@bB_{ac*h|~KvfI{D zq7Es~%TN-j(32$LZrHv$|7vxYm)97tJcExAJ0htHJ4H3G>-8P?7b_mflxN`Osp}mn zXASxQtxJqulv>#i^BW|@w=QNrMedoUTA1xz=mP}J;sQyX=(}I9*oKIP1nFIOCm(mQy zzv+6gB-))TCeT4L4bUVy%)o(%v6PW$EL!qPH4e0z4mT^zmjQ?4A$=_4sc!5i$%i+- z45aKPU~s|y4r~9?*mC&#J`h-(P|UlFBo;dElqA*614x+M@oT7Pp)uxWan3XQoc2kB z)l2m)_*VbsI34^?$LVK3hFqpo1#Lw-zDv|E4VvpwB0A+Dt zAI`&TYzX@+5cawO*cN{66kiGncTo1_NTghU8%5e~xF?t>ZTS$oQQc{_j!IC23HL_6 zJcidoW<$AOPpa!g#eIEK1f(#aSeaF7?xm-L>S)G&Uhoi7R3_@loK>(O$tB){IB?;%ku8%a6W@4gkI3{cQnv^P`>r1Y`MwEB&T*F&0h zxEkudU6&n90kbZCa$u$hfG>|5+^P4-;3^5o?2$7Hs%Q=?|BLL9A3yWMjFtFc%6n$> zp8|>e5x&M$`hm4hfgJUxGk-7oHD+Z==jX!(fC6wSP^X~0c%K#3sLC5!3kA+3tfB$t zr#hM!*3s8qP#qZbXcShR94M0=Fd!hL+S=Xei{2XFZCq!v#;w z2g~I=Puwbbyrn7bgYxCbSvi)1 zkqG>p@&2M}4WT$YvJ>l<)#j~v?t1hCV!ngKF&n&k6rv>%PTOM+qn`sH$c0)uJFTeK zi#DJZWY&0->z&T1NM-lj%^|*uG_Y6hqu_$UgwQ)Xb(eM?Vd`f0L*rlEF+2(^&8BxR zCKso|fZ_6;O#g9irrh)1O1C@;xJIy8=Ioq`JUXRsoBc48Mgxb!5+gPU+?tHpg@YY= z{<7=qBmJ0LR)zArI{_1k5GJ`jO0TvHwa-JI6C_jAvYQ;*oN(_h-AxT?4s&R|Efr4gRW>eG?iJ<- z;aIJ=^o+hGSOEH32_!M^*j1$dmiOCOgQP~W39uiUd^1tiH>NbLU~!c`!~ zobGm!2khDo2YWboiB7W#;sJn8)%&gjVNV5mN58jxT5bz?_vr7ZGUGS$BS#G<%Fj0e zT0>b$?G}CcJB}avNpPHppPSzyl4R65_c(eXO4eAmqq&5IV$b-Wb}T={qAg27Gdr-8 za;tki7boSpTrP%}RUZJ1;wian{`hDj*LOeEcf=w?4(9+3fTN${hjf2rYIq0~y&XlK z{;Ua+k6o=VzQHGg5J}`X6C8aoLWdKoniB<7r4IZL2j?o(OBJhK1O zSFLVl>blHV3@ya7!`NPT7~?T#`ebdCUz`gH_zVpVSyl>xHSW8Y&@&YlETWe|V7X1u za)s>I3(As4n;~ubKXghSxY7zXV+)_c$z zk15apCL}#+YRZ+IDY$3|MF`y+=!=!qF+0Q!z)7yAFRDbHbC(eWuFqV<;4Gzlg83t* zk9*;RhHbBsH~tQwB`T+1NM#Z#=mmpCpsz&FoiSTKG>y2P+5}qY=s*&7c#x!+n}#(> zZkoe_!kETOmL=s6x1_@8M38}EVCO;ITIccO&+nRpm@vSm>*e{)iy=cRBBdrQ4@5Z| zFRHFhw$yf5qD`;50!+02u-XCoW!IlLh{DFdVsc3m#MAc7;9_vb#aInl#S8cpB^Vmw z|Fw;xARgW1OujZ=97dpM@#QL9Rf9w6oW)}x$-p6&3clh-anSi-Cv`$-~B zoa}?~h1+vAstQf6-?&Ij#tfzR1`lY2U~96~rD{Ur!nkObv&${?=%;Zu8u;Wxq+JtG zfvS%EX7k4JJ$&v85sAKJ*}0s-aUx>n6`_+Ybv|X9p8B`}FFGH*@)09}*ZN(Wk1~!7 z@;RNi9FV2cgb-w1gPLG9>$v+&0P15C&2#Q=@4kZ%i1k418^bj_4O5mb!m1%1epHs%3cUA93dGS}@q({haicPY!Y1f(hBvU0+G9^@^Or9E zh)9(+hcJ6}?yg4aLkNdKRO0NQYap(6LNjqh8;bu+BCAQhI#jn?*AvA6gt<t^zCwK2=aMt0Hevx!YK4C`&rg_aH<0 zpd^ZoXzUu@>qjd8r+Y{qxVK!qU!t!EkLLX@z$#m{$>>{ormk|XLRr`9)}^z08ROq= zhQO5}T92@TkuL+afU2M^lJ>BTWiC#Hz>iDBM^-Nd#_t0wk}Q{RL9F4%bW>n~-ZPWA z53w8lvi>E9dDW?tu!~U-w+6dNH3jYA9qG`oJ;G*dUVr7-r1Uk?!eK!m|G-vi&BwT*f-`BQ49R0}^gm-se_1%4B z-1s08wM+n~7tNC#{Q#3#G=^W&Z3~dqA=#^8^;*|GEm{AnxC}1bCerhK1Qn}-pFZXY zUQ-m&Z|6MfB?hLp7hsdY6>E(N{VL9@*MbP(A)Rl_bYWRCnE-YNeZaXZ@}w0c5RT*M zpc>%@f(xYgh$TvAPEopLQ$4RI_2?F;H&E2*B3K3}f@=m~sCm zYRgxVT6tE}FsW)a5uQc}j%!b*at{a7SaOIF$%rm{Sh2hi zlu``R9<5A_%>;B8bG8zLtA+x}O1BxA?Dl;6j~)M!@>11?_5^OlY{cB!{=X*R z*$>AGJ)NdTH%g@*LaxwBSRwv3LzB=1no>zH$1|khGFoM+x3+8v4%1nZzLgr)T(X54sFuUFY4G=6K#bnAY%ujqdldQ~%( z^ue$%t9TdF(TeMGb@s}sjT45~Ygp>Zu%r86c`4#Uc}Owgm7PV53z91L(E*WcxL9I= zKx%WZs5LuTG*6-M;sJa^Kl^%W98cHYKhGw$FeMq= zKDX3t3ad8R)SGi#gNd@*RvYsAs)I}hv_;3JzIrEKwdW)r5ww0>E$G2Du}Z;yx@Ews^D}!)6(EG{tl@E2}?; zqPJtR)7SwnA@Bq0qFr}%`v%);F3o?jSA-`+X;vu;|{(;|Mx4w<9a19`st_p`cv93+b-)|wq zwHJ=R*SA5qg619Z9b$)i9vb7V4vzKIg0fGE$`?&|B@eR37=0%l>L(m)d?7ou8hGs+t!ISVOHz8q9GxRJd+ku>{R=b` z5_7;yWcByz9o#o!Gc0D8ly3&`tJY3MNqr-sS4k;53MPJK@JsJDMNwPNp8Y!8`GTu1 ztX%52o$eSzgVNCZe|~JB;1oMysfN4i@i#y(qb}9j`$J-}VO~IFcI%EsU%RU5T_7XQ zVQAkUum#Np$%9U0S*oQQg9ux1VKbx4)}Cu7=9CcDiG@1es+W)>R(2WAK>AUWh9x0` zk^tm?#{?ZzdfqHa80N_bzX-=f75xWUcd0@jluC~NkM;1+!!I$wpG%4(B)l^g;~-FV zjTR+W?~QtvHhKJ`FD;`Iz3&8#Cys(9Mda_v`nil9LSrlX?aa#_=(c{AAELlqw{ZHn}^x^ zdN%5PiNy|()E{uZAip>MgumeEh?;z^Q5_T8kI*M~KI}7BJRU_)?yt6Gw)*PtEn+E% zopB%%s_Lgxm__Pg*@S+x&E55ZIEhr5MI(js?V&?8!VbtO?_zX~-k z632}Ssu_o&LC-MUSih~fjc#hR7RJR2DQ-flr9sD#*2(K_fmwaRo3dVkZkZ{vP|K6DMbgJ+c9_i$0ofN(U{}sxlvsDe$c!9`n26 znIalg+%gXO9Oo_sWd}*%{6JzZ&FgLgp+#e75QKlO4t;T&a=uWv@FH^;gp2avP=c9$wR%z&L@#7*pwP||1mhEKtMnxUKJel zRFkf>kO#TukSGW}epTx6?@1Ej`zOuv56o?%E%ovS^cqnS(NJL)B7NB6XENt&0LECc zZo$^vW`h?Y;*=_btB3iNW^*lOF9}yLm%C%fY#Ml{F*+jk+@iD=u{MwZo;xjpP1xHiVFSxo^R{QLRehgr6mxQkW8ippxQ-G0 zcstOQHSRSu0Qz@;rNXUq-aESGNo98(PsHOG9ppFD`rqlu@E+822{zkSWN zdbFW7zYe%gBMSVOIHNEi+YV5BM;Fb?)8QohU`=f)z=CJ*9DE44 zbtlXf!~Oaj8sfn(XBgfLrO?e?#~l-Y7Zw$T_5teoWbU*`{ptNYG^RKfux)G*l=N2n z%W-dBCA`6<21v#>IsnHD+Qp#Y?}%5xW-K^|c6*3Z5lA8GG5y5ol6q5}cgdQL3z-~e zU|+~VC${CFQfv>|NXh>lQ1e~@Y#w?RE4d3IWDbeKj=z8T(;&S_b#O#(TDvqgJvzy< zD^H@?#~Qeh;yE6pA)vX1D*Az|J#Sdhf!e%W7jR!2SGdFF zBe^IU9nQjE0>h*gYn-R|*`2Ho?XTjC3g}#c$(w_0x2TvP>DBL$UK^hK6tRE)?{4qY z(;skIU@0QLZwv#wJ2pt-L!Y1OD}xcW7N~H&=X=y8=ZM_ctfH9Ax#2BFlF4a{b#igm z`}4y^B1u}JfqB~cy+1@0PIsW8ytj&a}AFbotAgPipg;C(5s~ ziNSxbd)lefml+D3hp->a_9$yj+|%iLx__5mP}drm07g+i5?*x`s819x?)|m{>$D3X zwz~?EPyUa7%HM)Va(mg?mDmTJv)x~le!V5#YG*L1K)7H0E0wpIypW3^v{^aiiNbHw zu&a(##S4s|bk^p2Fg1B&k|XPf9*}!Kf52{`#V0J4nnu~@%aF%~7i{L0Os$>6S{vqbwg8vQJ{|er z!^U)#gEpQsyNAq{9sr1P1ow;`cf)7~3gko^t6VT=Z3^5|S6i#@0ZdAw?2kZ$n${vz z`DBqDL=v+&Oy7s}=F(%SCd5oFB!t&UN)S+mJBWJn<#Jci;|$zc9!|Z?uMbU-;hFMM zS$g`aFf%9G9dCdrcR-1Y^J-}%?3RJ^N*s#dmm#Pg zRK6WZZ4l&NjWIpqFqTmqxF44G!(h?5!X<$7fv^?+vkS=!TU{WsX}^?1#3%ZG+sqoi$t25OES}JR{I9fpRk&)LzpIl5 zzGV}yIeaL^E4RCFWONTDKaXY|R*+kqa{cNg0r^hS8295uo?&>$ z4?=RU_R$UiSU_E&0aPp`GXk8E_-67^L#GZ#wb?S8-?$$iVhzszdM^2$jHY-UzwVwEcbDnHDX_s|O1Q#|jGe5ZawoUv3~n_Av$PL)iq zBq@o})vIRJ=4B;M^%aW{i%}ddGJl@bmLJoIc~r#kf-|m|0RQ@ZQoSl{QG}3{gcbBV zlHTVt5VsoJzmzSO%FW7a)%ClfBG`TuI_9?uB?wR{U;a^0QN+F7oV5Qje zP~?s}On9|RjcpVTGyepiA;tZCr)>x~7>9?w*o|pRvq^PxzHSSVcduhj&r#3SPlhxS(Lu~B~ zu1bq~UHVum@Lnft{;>ivGh~n@TPPM_uB8H?ew+89@9!g{6PYW!u{mhKN?s8nQ7?nv z?c|)#cc54FB{yEp(j~J0v8GJ!V}BT@zY)cZs}+i0=Oj;w#k-_lBEs_o_Z9&koYX)* ze()sbG7bsh{S1Th=7Vm4YguP>k$6sz)m7Vffw%r?#_~%DV2e$}n?{UG3%Fge(a(_{ zj1s&ztdMj`Q=@u1R(H4{^M9F~xzwMUxVNq54p9ea@F~8~t$zY{Ao7B>|GSZ{>jx zWxl$$)1Oli6kM=g$mcwJO(L4YcP$T_Ie7BgStwP9lOvBso<`fF#eCC1cN}&Lo)@d> zv^hvp=2^~Wumg)apI8_#WqB?{k9icX%ebWNs~tm&6gTQIE&zk9#!wGm-iFga6}W!; zZdS(I(mH5*IG3vKckmEdfhW>{)wN*9;}bprsvNpC9?r~o3q0OxJ2Tu8M`R+rX>~+~ zFf}T&Swk0J>qPxeB@JLH2F}GU5QA11q-|eythZz?unRz8;<@z;hW^h7d6iqFk9Z+$su<=^ zaEQBMrG?kBvGk(6L{da_98Zy(xefd1;sIf@p7Itg^>NGK-XV+g@O1H~n`33RZhr=_ z0m>`_PzsQc&qvZ2ol|2}9`!B8k=Y)^_~f|sSC)aK6RJ*&uxvn3aHolD*>PP#x=J4}dF zKm1+&&`@TGNzlhpIQU^ka`67VF72kYbvIulYj-S?SgaYg6iY(xjG`tl%`ZxN`93cO zXf1zDSc9r>zuvLM#_d9d5(nFvPa3!jXHiW}LeLBxXH9~VOO;7?%iH|}PqZz#vtVbj z1t~w?v5Wf3mktiyMDke~>W#&>pM=!LN{3}6p+`wo)^2?rkzht3*p1p|pFzuhi|9RN z@Y)HBNAFWD{j#+BV9}4m6cRD8Z@%{C9GB=V2hrbPII^v~YLT!>UtsdE!NRO+!_UVZ z@+Ot&BhlS+lMox59=7AYBRt4ov$nrT*ejlS31U@jn^$n2UY0!1sFFRnjxK3#%vs1# zPs|~BWn zmEkNfjmh=J@w+{YH@veveB4oVp2}f2CX9YtC&5w9YZ1<%#pwB|!0$(&;V8+LZSszx zIswkqS&mqrv$i5(J+I7Y*YaEfTxkk|?8J7%qTkuN{0o{HeE^w$mbB?P<*E)9%XpLI zel$s!G&x>XsE3XIpLB8+=vfD)dyN!IX)H>P6%h)FDtvKtbet$v9!p4v@R}PA?#V|K ze7GE5A4|oK12Dm1y_CV9Tm6-a1fkrTONlVpP| zP2pOqU%FQoW>4y_(uGI$fn5UE-5PlyLAQ7Mhw2Xvm+I+0ca7fTKOvdEhhh>?Ov7}! zBW{|lmegy4e_bR@vT{S?Z-M!GvAsxEi+Z08XzSlwtglrT&ckQKNW!wJ#G~q=`1rdr z4ZP@!Ex?y(z3qz!mm(vT`xxt-65IDeKZtU6$xy2RFa1Himoa(Iv zw_0f1u3Q#BsS9LQUdP%7>hxlKTmpu@Bf7B4*F_@=-p@<1+7lUqb8Q=?u90B={}l;D zo=H)dWcvL~lx)t>8j;L-#D|r}tH$8|OSML~%}6w33VoY>wn%=tRdFfai|ZHPp;9o> z!hAX^M%3wg8?a!VCC>8Dwnj_qx=kaPkKWJ0x>k&{{zx>T!#Jld5vKiwi`QlZ!mY$5 zA$uWh176V$3~*PE!|Wr|jq|+GV?ILx$kCD*`0I2LLlXZ{-78(QQ7x_Rp(l?{USn>y zKm+03l+j)mp*4!~k9KLqMfSoR0OvvY82nj5rTZZ}GgZ_0>hNCLHSULUxe~9-{Fr`l zpVn3FFQlzGm}4aDmi#9>jE?LRH|qq58@~C0P3v5C@NTqZP=}l^hNT{#9NH79Nf3tC zXTmM8?KLxLBwG&wPGlEpSyYE@Z_19jgWw~E$__RVv_*;)8tPl^p8XMi>~S3!USP~N&#g>%duB_o~pN*@cyQ7nadS~d5nz}hk7G`U5+nG1pV zShMr}iIZw`H^r$hUk8xuAP>WQ*84rxKzqc@PZ-ot5o9l~GR#l?kyZ8*ZT2~>`4CU% z++`R`nh}kbAESoI7@0>+yULN`1;tcqji+LW_J}r;_Ts;C#`l0ts0C}f`{apWitNQ5 zf0=BS-gxur-BTm|<)_U=zQY3OHmv3#&=|P7J92hpwDJZdp$(sGtp=NxL1_5& z43Jz1I%?G&$G+zeM#*$;>xO?d+MxkOSc8?_w%U-MfvEuhKLEf-D~v?OzhV`+LxB}< zl-c^5Of#D{e{`j>As#lcAPT`OOnkC7!q7#SG+AX}Vo9j75O!`QewS6o`q14fY69o>K7~~X(O+zl-AJGoLV|LaRm(`0b`9Mh{ z<12&8F;1bb;-{N>0ayf1GYT_Wxz%Fr{L~I@g;9d`Q3xgmz0u@9pF(%Nw>nr*R2DHs zj6#Ykh(UkK1odDogt%=<>>>Iu8W*kq{S5Lq!Zb+B9+pGsbiJpL_?ltoV9C6=3{=tP zke`h@+X_}f9UP`lEjJy7sFn-|WV2IUSH{9XLHT&Sy+6?-`5%p>)YOy%l@5RJiotbetgQXYc)jBu zKmF5BNat^hdS=B@AxB3c&N(xzRgU|+z_mEDE`&%Esn!Ow?U>3(gHUPpF&$yI_vIC? z(Xa*kh3Em7$knKqD)-q;Q8?FQ#V_BrRx(TL+2*q3hnCVXb3R8NwXCQitHiVZ3!Yb- z=m(2XI6r`m>;>#@KrP{jMG1!w=XpFo;LonJed!UkxCXr3@ho%L7A}F6-2HJiN)sm& z?~ka?Qu^D?XoQ4i;EhGIt9xU&L7|cJe$}E@67?YdIE3ZUC5nwq5iR+W=*OCNlgf|X zuc`wHUE0hTgDXLz4SvOt38M7}(I0E=3-o)C{S&BXmANT+>+rTNaXqP(SBUa6iEU`` z@`@c+7OYGzaR%_HrJ(%b!_V}Vh)W)PS8Knn*U&kmRUve1 zcI?EVzWlv<+|5*dT7ZO2N^kB0J)dKvmyQA0K)~Pzc8;A4bR>YiOz9I_$toow7Bnlc zMrHSXk2a?QJzD(fZI`qBt-Z-Z194jO;q#-124yGRz*Q`0`o3Ao`>T(c8(&2ENWIFb2{`m;01%Y|k)_iBk+|W9Vg(0p zeAfqGfc$wR6F!nKeQ$HSReCF#mtOCiZ(oA{a-%i$K*U4fVxgy&sTSCXdauim7RxBg zvsPiN{liKEg?x#>X^l(Z2izZkx7#R}oa-Cv%>|vSeSzRitKLyc*#lzJOC47J=&E=) zH!y8HulO_p57j2_5bmj$vs7g{9IgPT_#Ow{y!j=R4oPyVVA~H z-EXZk>#^Fa^zmk*>KV?ce``u%)Sewii%p*4G-^~KV0Y&I*qgkD;?3t7?Y>@7tAj=M zW^Yv0EXufFrMEq=1tzvSP)l5RjY6nj{Z3>M`8TYt zb_(8dt^6i8W{-?Hz@Iw}0GqZN9farbHNNnC4-LsDihqQ0iS#Rb%;4}CpY}|MBuELX zd5i9eDN8b^y_tdY8kbvIBi|^F06du?1%k&=U@svHN*A}+fHHEVvq`P z0*BUf2lPk3(n?HPH`_hCU}jD4YdH!%nO9H*IQa|s)J>g&$$>j9r#ewynrd4y9<}oT zUD!iAyn7?*sfY&>)Z|sKG6=3rSjaoRsEh zx^c4@VA8-k-de&W%!uUXe1wdde;=gwA72CWv>&l#=Ukv6%SFEfuwf*Yb$L{2hJY8Z zO~%b5=-fy}=QcBeK+S^OpR;gN()`v)sa=L__jpvT5db`D!VRp+?$^socZ52QmV~Q_ z00W_-dmc({f}`~0arP>aS3smu(HWdG4)N+}AI+OKpQH6n zEN@|jg8=09Ozl8wx001j!-}q|Av0s9?#JRm=NSDKSN4+IB_Ixc(*XAs#w8PhSbL?`KarfX1`d|z)!VS%S*xgfX zY!fSmL`Hl4ov~IGQV1$cUK(Sfia!sxP8v83mv@>Fdr{?uN#eJrL@1iDQu6Rxr?ZVPGZv5y14gnC=0ejUuM=E1U$3Yehsw{P%ENR6V4<(7Cw@C{gbJE{<`R<``T_FJQ8>m%mD)H1)EI#=momX( zik-Ch3oj9<9@_WWyESCjMHhjB7t2sJR_rP=&CH0xhtL0^MP@t}DLC6ptMErlYR}2R z)x8`dre>Uw`^;cu#)Q&mdZGaIlP1~*mV}E=4iScO$D4b|!|ltGt%gJZa`CFwiVCq# z!&NZ zU&((?9?`XZS;jz7<9UXO1yLi$U4p|Rn6&gBAhCL`vrL+@mVfWY)YfCqfU_y7JEZLT z11!*0QR?buIx}Z`>Iv>8bP?*6Kz|8EABLk9WB(e{At(#3MKyF|Qp|*i1wjdS-RLsS zJ(g8rT(I0713p!{l`@|Rn&h*R_c8A>D$v#%D|lhdlv6Py?dhf+40h1}e7%Ywcvg>O za8*{|2>)%eibw1hrDMAX?sa0D8jo6i?l0B{(6BV^=??Qe!dMqH&0h{SrBU)IX;cgV zsa@1%&)*}PBHK!i_d@&r7`R)#rPk+UMgF9HVf63K@JW8!#A6xdtUjf$RDX<{qz!|^ z&5(aV=!I7h*%2eNUUDOGYydBAlzwJ_+pe5}KGm;(&n499R_O?H0j(MoQ+(qaK?zWd zE2aa?Nri_;DRZ*Hi_Wf_e2-6%Zddxr7=8N~4P?kE@S8I(#G+|Hg9&sx0VF^D23@*i z6a8v(s8(H!#m2SMo;3)O*RP>jl6&cnmsnmsXm3-8(24rLXM=@=5}Gvg}k2`g0Ellz5al)?b5iLj2k z*My1%N?thp#~d$5pHWo!5VEEP3+E%48uV3(^VOzJx?s@%JalQ8T2`TVqg5gp2xS$~ z*M9;jV_R!Jh%1ngUQR;zw~hbu7fF*m{R2VxsYM}V#0Z3#Ql>Z!k?Vu$8v#T)GAzKb zfw?*7Y$*FIvG+zWvOs)tO}CCSA${bW1mdF}wZ8>6Nmr_wU)*p_>htV|lZ=@h;$;n5 zXhwF zcU9}}G5|vSH~yCs`b7<4#>jCf^qrO_xm*XZcrqCqr1Y&7*Cxp7CINCuq{GK!{ zgS{D8WvC%oIFfN|v(zOyJ=_!qW9e|Uor@r=j2TxrLp)1Qyl zJW&YGxJJjq;=jh~LhB|@|CAIjwO>lrC>TgF7~C-BOvq-qr#9I!+Hn_5GZ6|7l$BZi zq2qD#ULHmZ?Dq0d_^|_nL<}kWBa!pUK0#UKU-rXh|52G)@7u=obV>q%zrfDC>OVRX zl)e;^(b2MDYBfaMB%Ae{e*Qm^HcIT@+-6>Op|~5umW@R<7S>P$a7=_;W&ak8>^~>y z+rucY)OU}`1Yc$%iJ|w|UO39}rMhVlq0+MkQfzI87@C3aJ!%}-xZs=7v zwURl9sQ3|q;1Ar|`62_IwKi#fw4IEINI$|S9s85F^2-3PiXS@3+7&wgOOl{y%P|e^y2tP)xSazUsJeV0}erM*D56{FkRDqQy+#7iSJti>jCZ@xT}?TB0Q z?Udq0+*+g6R#PyN{0>#}=u}}13j*+72*&?b2)-N@QbNf@$xm3Z5;nNA1K;75csn+o zsZ=g1*drSXSvNGxCJ8EJPdL8b<)!_`T479~vtJ2K6DpxCQ*aF;7)A54Q*hHeW75wm zY#iGqWU*i?Ai5awPzFfRYHT(&-X+FDPCNOvWY z$W-v?PYK3|Qhrc_|2))cun~zEYb9()(C3#WSS{Dr^by_Mbyd=Du>P_e<~MoG0Q8l( zBF=BHT>L^9fS@93MrNo%ZMfCLlAsb2^6nP{?UP0mTS_%RIl@oVKTpV&({RvXd5U3A zUEzXxl9l&Rrim)v>SmNc#&fdlrQ8q=?6p!Je9GHso>KQWbZpxmf`A`w{q)Sg>!z-~ zQd>iSN9dNenxU>a>wJMoj4#X_7P{7w zfNCrZr2yktJV;AD1Z0T;wVbJ`yH9T~tL-u6m-RSr>klSOBFH1%A$JA=Lf;e~)K9TI z#nNCV{dd224A9Z0ZtlZxg~n*bc`=cbGd!?HSHm+v6gf7@(U76^>$ktbv_sf0DxCu?HQvd1myGJCV{y6zT;OH9V$4Irv?1ls2Za~fr*Sg(Y9aCFLC;|sI6BY z;I!Ryk&@||Z4=%HIU@aH)j*;?WHP?8D+`Oz`2_aJHn^fQN5w(UeXjZIHD9X%pP;>? zV;M5<$Q=tI>t8ajJ>6JdolSh^$*_GQNJ~sj}y-N;zh1E zzUz+9#o3Jd#4fGCGr>UT$Q3bBP#}iZ%S$=IzuR8LW*nBXP_ugKk6Y2aDv&SSyh`t~ z$r!+vVz9B>m4z3oI1?;-Qw2fwO8STKn93-@CHT~6S z@1@|xC*45S$j}?=P+puo3G%`GPePW(BrI?I+2+WZlr;>5)j4{SaAOVMr zzmCq+E1&6b-T*)BIj`M-6!R%~sC$p|NOQW+os$OG?=3-sww@fb`45VFh%q^FSS)H~ zcK7(JhGz8kFv@5Zig)l=6%TI(fg#Acjb3*>4q8{x`tZC|0MuxZVDl< zbf9?!d8j7}0!)Y=Ry9~@%wZVrwq*8a2I{0oWT9d&PpsH-GY9cZd1GFK7p-y$-Tte_ z6vn!iT$pubcX3Yd25xs=w#D=n{VB#!kL+f#ti;?{LV)=nzS`-U7bkowNjT#gQIJD^ z4jGeJ8aW~i(9J5}qFw0>vSnEizkUktO8x7p&<>v>S(fPE%?pGf@dV1gRk;~cfoqO9 zU8`)*54hDK9O>z?_j+xbR{%zW{_5c`P7e z0JH(L+N)j5q`%Og*Pa*d^h#s5F{&VGxN3 zWMxc8ym(BK{$H9w53cSX_$*71_HmWI8+;|pABSj!i2-3K4{I}D9qncRFbiuh-;?vl z@;+*%gyt`9;HnIZpTsNwg--@PPV9}&`h-k%INv6Rb3q6Pb3by$E7*AG_@RQ@RM-_G z!!$FLE%G~E6Hm4($=m_N^q6(pTcu_q(#)zxz%ZHh4nM{|J+ZWF&MZq}%Q2)pAD0AQ zK+=&*LsZWJ4p>OavubEVvLz6cI4fw^9Gjq%3KIZk$U96XxU)tQWfEE8$DsS+A1TVU z8XYo&wXkd~s+hvr|zOgewm;1n!RkDBao|b1dRf0Q-0u3dEmKRq)$n z?S>fnCOV7?X>$8%sJheEmf;2AzY2$Npu(%N^JYRU%+ZDHV;_`NZxsAbBVXBn z`bZ&1uXwcS}n>q8#a|ZZiaa_qST>z3HzS`PIhMmS(R%D1a|cB1WVnJJec;h zdDke@#pRP43(Z9N(Az#ZtL~!^@sTzvl@8mISBmFn3&dK_ZF~!_HvHEBL;^K|!exb% zi~<4{k5CwYfJ$()7aMF8zyevyVHD+{6s>0_*2B(6G~foD210>xc& zvkZlujx*VjF@$vQMjHPs;8KRXKw2uVv^?SFSo?0qPt-W6OQ(4;()kxhiz(WP^ET|` zntl5Y+2lc_&Pgj9Y~D1i7>*n65BW+NQe6@mv1`ru;|F_1)6-2ZeD2-QM!y`K4fVp+ z)qTguR~=k=Icx0!MCDzj@0$02TQgm;U9=|t?PzJzY&(Yv`0dUb3cYw>J*58vcTp{Dqfj?vrWQl7gmUsZd zWUYuXUS4ulNrSQ#(S@{Uk}qCYl6??PGvc>@!=slG3=6B}$Vp&Zi9@D0@=N)38GWIx zc3C#@Nt;N3Db!n&@|np?OG_;D5TXhwjk3@ZI_4X@c4ouh*VpD0HqibSp(`g$Gtd3-wwW-uO_{T5`scyc$2@ygS~8hH0mQd`YuGzF3P5 z@WQn%TofY7ck&SH#+drk7|th;;kg#UQG-q_tkj0wpH#3<;)0#Vrjkn0Q~SIZw0!-$ z2mD_jtJf3E z7UaB4uw>S;%}2gR1!9ac1jTCgZ%576fW4FN8 z_0AJ~QQ17P>wL*kf`F#5AFv)=Q3>AZQ3>X2)nU(`Zb)8;3Tnds97Xtz%nm!}9|6@;Y7a_ykkM<973!XewEcYhsY4Q4<~z(<_JD_(7jh;(R( z%@B+cFDxcRFv<;zV+Lo@uX>S1s4P=KOO3hN!fiULW& zZodUvZ%LTolk&Hk-;z8n;yq_tqv0n)<@x%jr~d4A1|QgH&%+BU^_Nk+YiM^Riy7Fw z$5>bPVO4jh$X#nCQ8`8%+)fmXS{~j4Jnl0B18M1EYdgbga&Z~`;GTo?m^Yz0-U&cb zyvom*gov1#^VUSsPW7s+9q_wR6i_N1@blEG}zO82)jaaj0PAp?}m$dpz&Sr}6Kx%J0( zqB$9O-oE@-$05AI!;+G`4OOGlp0{p79bu}OdXO7?+z~2uCb|?*-Y(Qw!4k<0`l+J~ zf7;Cr7||mvc7gUwvQgS*x2qEJ@*&~t2)jLkB(l*BWPv!q~vw~-<6C)8Oa$C&>MMq z!yuaZXk{oW8A}1FUvJnasQolWcD=Ug$1gu2B7JF2%l0|Vzo?a|jVo$>7MVAyCJs27 zcOuE&c_Nx5*&cp3P7k+wJBdEVN=!w<*8_-yW2D-m4fr~5X1C%mtE03RkVd6I6RoAw zcZ_Ei7OFLZBnrIoO2nrluzI4}<125PlokCdu0`Wg10u7=-{XLdZ>CR$7;h>*pfxTZ zNz1loTM-_Blf-d9A)*Zo5^hEH!i6EULGc%P)i>LU3b(v{5z(#r+I&*R3Md=>j|vODn>Yib2^PakN;F_UU&(Cz#CHgj#&ect3Lcxq-aFmfc>;S8;K*sdAT8kWrwRJ@?dJw z-VCyVg^i$L1syNlef0zPX^z>jwffLrZGb9^l&$kmu>f$1pJHD$o+BwN&zYqk$JUf6 z-lVhpz6hHq#7Xa+tUsb6isRbAs$jkCQ@gl}9EnxtPZ9DLHp93LP`FZp2;{qem?{G! z;q6<_2UzvRbJYb&r*D$5eV>)pp4BmI4;?Yz0<&~+p}lo2A)`0vZl`%_{z~Dhe+-XI)u5_m-~rWB~uZlYdHNgeOdNp zhZyQwKibs&pM=*2J$@rSEAY4pl|9Lmc~4@q{Quq3PfoPRO{1hsq!WdK>il6f3?9c$L`( zX#RIk`!~3%-@%UKd@-%YyJ8tgjM1dRO)0Gv5L%y0fc-Qh`kI^BSgCn)(Hn~YHiJ9q z!0XmuIBlXc016G{=uZ&MS$P`{ohPn+snF>LnRMK^kyke#fAz(`lyI~U(+3>G>n4GJ zR`=?oUy!xu^L|I?XOcYf?#<%YxbOlyeIkd76T1_G6b6+sO<@_vl0lxBfkcIt9_vp_ z1jKpv+6xC4DS)D0FXsu2frRj#u_uB;Jb)?4-n{P<-Dz}iF`srm$fcQDE78AuYkIU1&v{_H2RU`Z~#eU$Ec)z%Sx*h}J|1>ffH%ji{L z?+QtlS2TJ{yBgnc%jlDDpSHJoqkf)JzA?Km9g$OpBq|OG=csx-bYKYvJQq!^kc2q> z4J=W1{vAjo7tG8DGuzH=WR+C0XxAtBOk0hfm^?vKCfzyov4!X8sA2eEirs;m^zCBe zxa$5q8ELB?pnOvfj@qYCc!j=|sfC06YqQ<3*b-k$q$hcu^G&&OC^z}8E~!F$oNdXd z4uy+apYV5dK#RhAfpE8-2*6G6*T)$r)(uT4)Te~!4tH~l+*zH&jN5>DYIRa!) z1{1_=%>09Pk1F(OWPL!)9WSnm1i8(k_sny+;KFD%GVQ%dKgq z$JG$<+>Asg`V%z?$6ea&I+}mw`8*)?swBBeU?9SrdSgb7%k=)c(=gUTMMgX`#=Nnp zQ`aJBnN)kOrL&)AGXeHv6jA0*rAeVb-WQCBJ7q^P<7NG&^3i;au)_Bbt&HP^U60Tx z<8(|sJFi%fWcEmIp#OtnB01@b+cul=9;G3T04J+0QM^{`(m*l1Zmh(9fXqvB;0ur;mAeNI{D7{N>@Ma$K4cJ*x`I4QqoE_gq1OFfroWD1^UeFD+7J4XI@AraHv92 zJPYP;YWBaY@_f6gLrY&YA2Jlqj$ZL+QJAy%wL3!xZj zA#?(53pOikpyfCXWR)vBO*W{vI0L+MaHn>_EH#-ge^Qk*Nww%lRj@}#-pwfNAR+5zExrMk%3dJg1gPvq1s{4cTs8 zU-bW!(r*&*NX5=#5+^J48m!E0NR_!RdU6|({5xoMw8h2=dMM4tfc^fcwlCjXh2y1K zG@FYL9=lB(`&U`!{5NbCFbARj#qjH|Jl8wQo*_}deT1U{{Q?*0v3DVL8C3*Q?z2LS z%WBeL2=pPZ$?&i;dk16SZ-x2NIGW|FD5T+0-LMXaSzt(Bk_X=QtR$pBK~|E+Q$8ua^#d?P(gLqpTicgb>kMX#cyI7j7uU${>wHo@6iO ze_BkX**2$5A9Em&_}Q=JbD!J$_vMJ|$My->_q|Q6EZKdV3sNcEiA$vh9m5C&^s)5( zSP!TVlv5Xd?F2;xco!&eA8>*ljR7T5C8xG|>8BCn-4j&Fbe!x^MwYDVxj>IssEM$j zSKrLl~;#^s75N zq7spvnj2pElqB6y5Tb4BL<^M#CV4M@tuF77no3rFCwEdvV&yeS36Wcb+-Y>-0z1;~sZI2z1gVe^I!{0=KsJVDO{l8TIpgjX-FI(br2xGAd6 z*jbg*GIV+|Q#ZiNw|GFcr_`4>RCR5F+$!y*%BjUvZND8=Xh9yRPR_4=H-tL!RW=0HFb4Mr$zN3OB9LP9qZy{ z{*2{vCx5$?EhIk;5rvX5W&?lwfp$NUN`X!O^QZo>h1=Hmwd3YQwT`%;{QkBx6J%H< zZNB&_9vaTo$HOtd^SQrHDn#FoGPs2jGVobSMMI@xlvr$L#Ylue3krG&0$W7#dHtUp z$K}wgyigO+-nF5%i*lIb+%`G?r7$np)6kxhIko$Y<^JMd7<2qzo|-d4sSpvEqoY2e z`Bvx1L`4iQ5-U+aPq@M%n>WD!n79_t^B{HxEYU?{=$mX^51pKt^9#n(?v zLbbihtEScOo0Px#$2qv59w3EN*R&!;Slm`**L6A60|p88Dch+iRhJvEfje+!1tbW zJ~-04=cVrtC_|m-ozrlV$x;v@-yjSsYPK-_DA|_?wJm;;7Z94H$> zw+p=&W?bO1%axb(X`4KY(jw;71#Xn@V&3PsguJ+dgykN{0&@Gc3SZLPgvmVw{~4k} zHNJ{&;(*L+y~~M&Gfmp6C(QUsSn>oC|HU5FrsO?B{Qid7clnYD*W56y*%wV!qdo{W zIie$wvL{@Kz#7#YTF?uJN)WXL8UfK9jz-(Hqh4StLixhtYe&Rs2?^(#5 z7G1g}BC60tE)aSW0fVJC2z9(iViDY=z2d|1MYULzAsyjPeR(jKwDGveK=FvXm zt96cUZ|C$N?aHgGIhtLzep6%1N^lNcR_Sy1)r0kQvovXGSYvQEfDX5B{i{VaPr-U* z$h9LB&~qEPt>b2ltT1pvVt}c3seIh%!If?1(;D5200}9riZIngL;N9)GB&}QpBqW& zXUx=Ew+juGoMSvF$NgK3QLR-Id$j)2QMMSU{49AzZ~!j6n}yVxh36Hd!fhp2*V7Zv z-5ye|mMlWkd5*_%ru7K)W@~lAeZuFX5;yFs{v0E@_^73usUR#DtnjJGi1rI@Xtqsm zitRAMCQ#jqHl`%XpfG4WylW2H_`Yi1Z4CLXin;R*FvzqrtYK6sdje%Z67ur(No_QC zGm9hu9MW!Bp>=mj$MR_mG(@wt)Y7-j)(_}#wV_iKIqx#tn!d?_plArPWlHQSIm@^h zdFJpYmb^U00>V;L_c`X+U29xEZ9~thigX3Fja7L&7Uzhuxut_9?R+$&(3`TRk3jg zARr*cgkq)UB~$e+>nU-XP6o`l&!LHBlr|iTjDAtyhr!EEIfz4P`TNCKHoFMl$Woh< z7(*{}gN=m-t&%kX21?Ef1rk!%y7OJVz<&4z36aXJnZZ6>Ys17B2IZ?rPwz|uB|X{g z_q#<@E`Q@m7`DiGS;B-5dwn>el{LtK0WA(O0%Gio$e&IBW>Y-SIJ3zY#xnk3ta_ zZ+!?%76Y-0#D<-ZiW9tyaFp(mTx7<4f`f^2(4zEazGj#UKnQvwO|c&&9DcHIas7y! ze(C(uikfHZ%b~K;_?!y(&zmaoRSua)hqJt5+Snui;}qUK2aPWr;{g^SO!63@oO7h)X?oX7UC|u1$5KOem`u@RroH6+Jv*iV z_cv+SIfKK@_|v9W4e63wE&Hv1w#Go_o25;}>w!Wwjt9mIUyp4YK4zdNml8e= ztWwH{>y+g7xca#VVcSuA&3L1M`yk*zPFKaST>;j`{!FY7X55GrfJD)y5cS|oT*;ss zENuMzsH-C z7KuesyxZ*#>}dApESDc5HA^18Z;#_M86R6Jw=k$?+WArZIr&ozb-5X!RQ$}}1O^{h zQE-J`u@dh9*m58W4@#;Xq>#KbjE3qmOteJVo|7cA{lEoobN&u4_l~sqdrApKZO>`K zu!`B|AlceXf{4BqBx_iSvIE?G;eCW)Y_ueaKOXu#d;QHN&S##54*^sd-veKITK)L5 z)J^7|9!KEs0{!?PI}2!7#5JY9;gG#^(=}gpPI?^}rOf#$`AXeuib@Fo zpWQ8r)`IgIVD&%X!3Dex<3xnkv(dq)q!IpE0wMC>iX4_ZgeJRR&#DePyP^GdrhtS_ z7I)OSatXuI5)5P4FT=OO%LC|zWM=Rzl15}8HR>E2p+5B_NN zY)$&hqPw2WaAo2SX8H^T8*B~|xmqnQyf`iFIpv}k#=~=?rhxG*NVBYD40E1^qJrCwgaimu z68b{J67Z(p`_R|Z+^tGModiocy^y6|c{L{Yzx8XD#;J8arM3Iy2^;%lZVK>of1;b^ zBV&&?PGXTN*OOyjBf5D6aE87_fhW-ShYsX%6gfzx zYMJAgyl^o1Ro&c?F3$BJOe!gBl^dAMW2gMhLBK!XjNH_d(S8y-QoGhpY6MiG<^&fZ zN>&}F#drs#UKClBm??-=`4?3LlgjR(>~HPwG&|-Szk$a}JgO2`x;7IE;PF(->@l(4 zoFpZV8qhO=|LAV%P=I-A&s)i=0WTe8yT^|Yux(HCMtNpUJo3$os!}WEQ)-dTxYvJ1 zNqT7ojURn5I$1p*hsZt-Aq)*Z#iIRn7Fsku1h=A~pck2Qr_k}fvaS_3P?XsVx7cOz zY0;RZuz7A&W@PtO5>GMoP>8G#S)KEd3Qaaf*fm36*|sA-W{`xJe5L*aM%>JXQ^wb2 z#|qTz;hBGxa4+1SebWw7XTbD}qZ3F0CW(3g!`10sfa41uzCuz)i7(s#iTjZyX^_O?1Je^S*5Uc?q;R2>uVN@=KOPik7r0oVWT>h|94}h zF8jiy8empLb^hf!da?71wV96lw!g%j@j1Y9I>_EJVuWZ`;UJjD7Uodz5rX>Y^5POW zxDz;Gr;*XCztcjJwvrOV(-}KPqw~iw_)F!H333%BU!ih*lYf^Wk&DZ%<7xxs)t$*sQWSPxXhwJCu{aT=5S~SCWuaq zPFX1pP*2A*LqS2z>PqoiCq4|A4=Xg}*z{unGm6%vEzZ?xD?+Ja%f2bPK)SN_uEHN=B#*r^8{KTsD4#a>AQ(D3P@BWTVwI)s z#;tR(A?t3Ve>n4PfKATQa+-0hk4o4W&>j{Q0&yNfyhysBcMhxAS6j9B&&jtH&cx#4 z&i*vmi^>rI=gU4rF%kI1kCZ0h-&f-9|6&m7)v@LDSM94lTC7>u>9r=z^SOS#iz}_J z754(P1H#g`v+|M}T~Hgsus`hUQWIP)aa9n<7y+Ny83lsPD(ehgqM{utWX(M*NSVK?SGcrnA{-w+@r(u#%@ z;-15Nwr4?Jah2()qEGyt%2Zp3lv_^H&@#U75}rWx3LFx8^LQ}}vso_uh+6)cKYUOiskuHS+kLs2B0%m<(Yw9wEV4CTiTQ5zk_x+Sq+EdPy--lXSc6d zS&$;1T&({4yBw_k1sBN?1{Gn5dlLy*M5E^gLSaA8or=z+PUoPfkcZomxW^zt=3nir zf{n1l{08f&ft1dyAy^Pw2o|4gOAk9;(r9A~6v=WfS4dhWz8I%17q!*jGzmde>o#D;PC{{B%PLXCZ(h zG7}q|V7NI?PpPlcZdx>>@m+_aoh1euLr&QtVtc^aL@HubZ$<-giwI%4-NEZp+<~XY36)laz+wUy(DyB zs_qn5Wy-qGczK}K|v#BHm@loH{VN5uxP0m{TX$S3xzGvLo5QMh(#d1x8uI zv+>d31XG>qLL9*2+8R%eg~P&y;-3C!GS3%0Q;dc`wyQw&0;Vc3I{~*oqh)Y&B@` zcBkJ&dja!u0gIxJC;h6uBADJ#-9gR{?=VN_-u{uK#{xNPFPGi5+GWln)F|+0CWyw3 zByOVLEHB{5U_nXl$|JtbGn23~%-qyT_Cfr1{&x)46DG0h6lZ;vX_sx;unAp1poB7q zzOMlM;-!xl-!wO&ihdQ;O0g$>?hC%@z6O40BE3nHqURe1_tw(-v_CIna**z~6 z2``UOxq(`;XPJxrN<5w$T;KWo2h+xKdSltFcLlzwkHyZXgmWgwC2d_wGW0CTnDQ;n z0gBtdE)?--Se?i{JF+iVQ@C3f8&HA}u>;>_xy@UGQ!#8$M zyjicwm%Ufyk}UEHNcKi^9ENq7uF!*(2-bSr6qll~-_!boUmc}5s^~jHuOxA0DXeIi zYh;Qs?k%M~T)||)3!VMekU^oLSy2#iMXalUNlyp$7Sy3OY&LKxdOQGQn!7e3Eh$no zanxa3u&$v*xdsbd25Y~_XzTb(*RssBP~*p#4bgZ&FQ_iQUt22-aL#k_kQl7K?|hQ# zb;@u9Ib7p`(n-n${=7-o9+Kpd9s+9#6>diR8G2|LwZ}#uhzQ>Kz(SgD?Dc}NC^3<` zC+UcelU4!Mi0xYFmxF>0*Pi&{MF2fOV!fZb{jf?vvXbJeR^Ev5TPXnlKLEfQ|NZv* zUNhh5JotTciI?8%ynM5h7^XzTazIWkA+6M&r({pnro_HN{*>SHLWMz1?MIzq`Z4&# zidY7Dbk1IO3@ry;q<_`ZoR__al9K_%>54Ml6Go}cvdT9;XY2O=CAUFoSH)?#KaOa~ zz{SKm5i_zX%UHsy3EiityrYQZ?ePg&)ITmv)mv6;UEf(e_dw;yKLXTR;Ttzq!p{Eo z3*kG=r-5Dnk+k7m?4k8~Vu~F~lWJ)2)I;jduDMK-!+M(QLCm@5C8Yf_3=sP~Pq|fP z`_iol^BcM>gZmvaS7H_^%A4ac=#hXyG_(*1Y@)vlN)OF-AwTli{9?;i*+F79$ji^? z-+dsU9pj)wShh|VW0hsj^V+0vta*`}d*z*q-hM6LoRVqI9W()H8KDIlr`zFmcy3d4*+%#ieIG!M$MR-$9FC(W?i$NC=|<66+zm+))8?d^S%GkTtWuG z;xwsp-^Ya|d+rq;XnHF$`WDJ`8Gr|rRzUS%wUwnk=|Pm8O((rH9jN0YbOf&3r2t!p zVWQTA`D%jdV54~o^@!gCp6j!V#&;bUh=Adg5=cE2Sn?8 z+4avki|343;$>amF68auyDi8ghDBHZtR$)fMZBuW1ZD((X;71Z4~%) z&jrc!m6`LnGdpSk)nM+S~3YKZnv3#*4C`_O2 zDEYn=)dz&zeQRjaV0-Ooh+(V)PlEDIxUjEElLoC$T*P+{I%i1z9JuQhql8mv)bEsq zgL%oY96B;9vm?7mZ_@@QP^IAUwT~_iqUHV{=u`%FqADgBcw`-;_NQkUrV)QBU77gM z&FgG`^>O~_@lcdhykgJlCtTH$^0I*H@v)*dL&t=8f`uN{KcWwTRrjdV@DG85J3e9&4nnV3NNNBeGrLA zl$smT0AMAvT8pN`f}&et3f|(raU3PF(0J)7d=mWYG&oZQia`sh z7WQGoHKx5w`1$4{Fm)Eu6}1R8)KmG6sC(;Lm_F6ncR_1t@P(#t^ej3Sn89TSNKYZq zlR`$j3@8^OU4^n4gw?Y`aw%O%_mbdk9Hwy{70a~LqkH=&B6o#bLm93v;5xwHtdA1 z%9y7lz{MHVL*AI1RGo^j^46zK{)eWW)5Rc{qUzMG6{XMUAGTjHCH@JHwSuME#w`vF zFc~)8?Esc`dMl%&P*e!?u~D-lCR#QZFN{oVT3l|Q4`Vrt>nxt;Z(iT8$TfZQR458% zw_c&go7Ay+{sweREySae#4H)Jg6j{fuTVF1spr)IJ6S8Y$W0MII8_Ni?;NL!&@ON{ z)|!^#1oIiGAPb=2nBM>ILoqk~LX*wIB*ev_xq60kmOCncv5pOtYp2kBFt2sN55_r1 ztMkunbjI8jXwsFrO*R*R^zwtX41+Bbv6%4z%O+HCeTf#(4)R`HtsWQKj8JhoEwC_P zlZgqvEow5r>QNxenv7&rQ9F%hN{xn3>T^%^LD@v%MNYfdCFX+zl&XRZjj+1B3?-8< zTe_-T$Ik?tO>9i)@kf80IDO$2O`ib;pO$p>dlC_OGjXXV!elK|$$_U`@5pDjQ=l2f zCe8Vy`DnzE-;f3hgMD)OtGL&LLAH8%iHaYx&F8Gvt~G49{(Dp>JX}1uQP+qFiN~x8 ziylq>DA7e_1>>ks=4NL@Dlq2|lVM#yd9J83sm8%O%a+IV^SVJBw3UZ&^Upse%l)6L zG!ChfxmUt9Itzi^-1r}eEoFZPgN`Jc_|1S_`wy|P&Egmu^M4DUd>sD;t?NeU^vlX; z>7=N}v;hAlX#xm*c@W&qWS3{}s>kRg8HhxO8eX(%CC0xE*JRbo|=*hQeE{GehF*i#N z^aw=-9*OOjwj2=R==1iPM__KXji>G_Rys((xylhKJB$y>hMB*WWL|zQw%9N5_L}Kx zhhxVyAy4X0vT~+gr%i63aqLp6GZbXmYrC={dQOH><@p}xtIqO5WVeU+B3^=fH7)sf z6%qT8c7ocK!GU9*E34Y67-6~ONIr?HuR#(q7#VIo3`>i_ zCDx9JtMXE>jZI_I*O3xRXr-l+)#p2SwD`>y%N=6CTDINFw zifjOE$!w!)3BmT(Sb=(#d_|S7bz)?Mnt@W7SO(<05iDkByibRcKL};^$8b*e3LGW< zD5=??{oclwY`e5pV$b3y)RHf~af^Z{OXcv}K+O9ib&!zDyS#*vt>F|J#w@^xDpHcE z&E4krfB%I*&U{`T(4ovBmI{gR2fb0%F=l<_{7I{Bgv8Gz*t6m|0sGR8v!N-B9RCg5 z9s?)NZJl(d*@^3-R`RV3Nk3}}ihXFi#uo6cv*a|AVoBT9>@tusEeOGQ|K)7m`se~C ziRw2~y`qjXC=A&G1get?(Dx!7Ed3pMH%s11ikST2$5g*by@V7}O|0uu8 zC3I4woPbfe>#50k_V~d&UCfoT-r<$`RAf{ z=UT1CYis4}CDO+QUJqIq62+KJ_c}Fd6Yw;7$-R8+za8ElCTU%X-(@`2d+F zcjK|~aO(R9m|LvYId`JSM>{Cx62J|PkI>1(77RJJbg(*P&MZ5*-gf8!L3$Wfi)|B9 z*^ZkhmLE15L~n`e8QR3_?vXH0YX}3BU;DKY2JGD2`-2T*J}6A72bz9+N_*t1cfDW> zqlleGR?}!h*W->PfNv{FaV+pe`;lguE>JUjM;EG8h8rc9{*T#L-OWUkxvcZhMMT!R z<|Fo!sDn0K#FeNqupaF)B;RcEGGP3dNmO@X?B>pnf+aIQ4%wIU!drHH2hXu~_Z4{n zYB0X%QKSvXqOGl`DMTQC_@m{HKv6lYh#w@$PoU2zR%N-~j70&7Bnh z$*0Pi&r6jVP)YsiFnUIKFAguAkL=lL9)?b;8n%06RP^XAPFRnYmP{@S&W%HYZI|jU z+e}NDoo7JYL6|$ic}YUDg!4*n!!u08T!O5L*+$Y@U9s%UHx&aONNHY?WZzXC*R&Fi z&wkE;2bM&!UGRsnaka=ICZpA2bR&l$l!B1kc`}lYa{rA_X(CEIp!024H19%YHbG>- zXRU4Pd_C$84%=ou%!RF(3qa}sgD6g0#D<>LIBN%tLp1~U$NG!xFMAnQb?X2SZHMbO zFC3dpuSpP87fvoH2S7BxSu|qj-@~6`ULSq zyhzCFo@oftXKF6%BKHu%RSO#Wolhd5J^`8nS?9h2Hpsn1cYJ}6^KLsGcBTzS5K1^k zb^4f_|5dPvY;__~i9@*ECqFD-56?|DrnFw2CUT)AfO}4ur1wJE)ZS!JAxs>+&i+s! z0gn;v1YG~cSP)%-6;=-*F9-**po0){YKmDa{j23`0*BKF#UV53S-r7~8YUCf%iK)P z5ius8Qy^-cQwbroJIl!-w@kNP#v&^aoa+ltz1aKKC2+wF3=EZVoav7y#=5F(C*x*R zALwtUBWWGJ6(^rWRS?MFyV#JbC+KcT6@1K`@&=;nz!eJEw~P*7^JDQk6Xp8Vg3+E= zh?wwI2)n7zE(u5V0W)nyfV+AaN}K{}DOy`I2wS^yf32ghn>vxIJht{0Z)Z7QJZI1R z5%r!nXFzcQR;$5;x=R5&_s6ik{3HQEkXAhR*cxfo*n57FBpW z_BkKTU$H7ONz4o-h?iFBx{eOjP?0&xOZ2Uqn78rzF|b%ynxxP5<`0tkx^stn%Ok94 zdiw!C&sQkEaD*)zK+$=;FiuXCf`!HY&w!7Xeg|QGOkXp4%~OHo6+Fc>Z!3rUtrecy zefF>prq%QQ>v+J$ezjiLAjn93F)ko*C*=X5Zc6!EKeB;oaGWqqP;5*9tl#C_(^-iE z9sgnyM+5X>SJ*Fa6u9GgRFto*-uZcgR5qH_-|~Kaod7oq&mf zNweIQ*-Fk_+Fi&Ih*8GSa2m{9i4E#Jq%e@jM|{MMk zaWx_bDd23icx(V$s80N`YN4XAt7Oc>43eHTX7o0@%3z{V4xB zBp5+1k!+a`ERA}edf>VC3;ORnQs%cW{4-MBb&^FZ%YF+a`^PR#OH#v?> zgiZ96QiJxVr~_C;sY>A-Wq`*rw^%Hs^K@WQKK3&zV*Zk%$S7Lx`Ig>OHMsMhOaUae zV`*svWNFYRm_IZZU60j5^&FROs&)h6?;Ha2a zVt?Y#5HYz(M{HoZb1Z4FY-4fWKP8L8`lGsO9WLmzF7sgjhse`cr!jck0g}(bh(Q!* z6H28JTQ0O4tp$Vf)h|ztzkb9VU9V1;0Chg6{{#T6i~v^@dJY@A7g0sed{?}K!OkVG zOyP>=B2@=-Xaz|LlR;`r57^VSGD1nDZN~#3o9g2Ui$9o*vP`Eokye6MrHnp&G>{sN zjh;vVzw7PGdqR!Lr{;+?JYQB)j$U!;w}riwj5nM$6niJZjw;3hq@K`g2rU~C$+dyp zDs2YoQs}gyBn#7LN^u_;@XDPMRYY3qpINs*YpK8z=JCB8;tu)v<7?z$H6Vy;0e!0RMIKpNl}4Hi-Lj+ zKG{L}-dst#_@X=budnl8?52KzO+p;J?Z@9ah~^qHj6D-KWTI&DE9oE{)b4o3ttQu| z-yw@$*4uk=J=8V$UUmGoaQTH}YvvuWGOee_wN83cNvMo1gv7b9TSxuEngI#rzcA!M zr^d?OEf6`p%zeK{%}{d8^yHkG`Udm41bxr90%V_2KQwOweF)+2%;B6|H5-CwR?)p* z^PGw*ALJ3hSL)Gh4kcUUl26y8ZVKlVbe9ex8@k;-Zp z1beUDoot}c+avLVxC*{^eTv{ail5{E z_UOsriRf#3Qb9Ych?vYiS*r@?fhjXW>@gcI4Nc}rF3xzKp{G0t+G~kN{`T_OA|b0Db=*^p}r!sRo9WJ8d>qmklfO=&cmv;qEGoSwn>>k&mP$!JuK6d}5Q) z--R$w&86dgJ3!wWvMsA2? z=G))tErag@?!37Dif}V(?20-9;U&57-#o@e#IA!H03uotjy|OW<=|pmP*hj6Z^ssA> zw_{~a_SW>5*t1~KZ*&@n6rJGO_gFBqVeT2U;zIC&!gvR2-(vHzJlOsaw&bh0ppB_uU<rz<@yV==HBuHou1kskbAAU;i8#Ln(cYl<18%D3OxtqwCQ9f{QsM}^l;*hni zPpcqs!+)JtZk)RxgRd+)fRds1V;7I&3>y+v@cE(3dzrIYzubeRfBk_KhF6n--M>L` zR16oU&!R#FeSt{?>V~4^7$0os4a2x6+94t3#30Sq<%cF=JyA658-|Uw+;$)VQS;lZ zT1^KE^ZRzBvnLnZZ|D+qT4cQJ*9ERFpwqooCjuX3N1PUJklBi-AA@90lMgbgX^ z8&7IH@hSqIx?*UVAwqChOw7RvRxd%zw?K;g4f|!|WY;`{@V`XRik1VQP~+3%p>5c> zj|tkfj?7SINKn7~JgBp#$9kfM|0WR%5V$9=aoslssIO%F2$zzRZ0-ky`8*#JlRAs&X@L~?OM~yl> zlqo@e!ztmihskq!+U7>&**SKc$~V??ynr|mszw@Abxnzu-jVP!;NP*mJWa%CXt9eC zO^TN+I^2KK8lCa>W?=1bOwPt4jC7j3rOCM@b3L(tU`mbY35P)LM8IxjZ986!b(9ne z{GS9_MmE$kJ_b*ET$+h|rK-g%rj4(`V?U0)T1?kVEHFg z32LTcKnM(F$ zvn%6l#I^p43CO>26Q}fB89G5e%$*c?46~t?%Nsin_RbBg*-JSx;7!6cp4po2XBI!O z&(`m#J-X`!ne6^(nYw6u{m7tjC>uyxkrk8MNJjzfHtKLDY^1g{Cn%i#@=mWhG*}rT zKthf1hmmw_)In}WP7m}1C3oe&ER;1boY(^8@8xpc!mweFjA6jfb~TO)*KX z@Xaf6t^>*FqTt)}VIKt5(8{hyI7RbEfh%sU0u_x`7zA<;)j+ z_t%L?HIian6Hk}Lb1uG)|7Zu-5bJU9uSg$;In?;dlUJ;@-Lcqw+m-aZs@|KXl8XEw zJ*)?#FXA&dSW-A5I=yBP71&FOI00SddmHiG0{!A~}5{(#O>@dH{ zy)%ezxSyNo3Ik(9W4DNHC}?F96kk0%Y86M21#^6o2a?^4Gk38~+=QjDqAr2+AD{zY zsX>mGqwqiyg?HV}aP8IL9exW3Ft}XRi?z^FtEW|9+D2xOGp2C?Ys((VZ9JPJ7Ggfl z*e_Ndt{yv`q_qU9hX4M)pzb)eZn>e!)5wS+%(yrt{qc!uZUJ>q5fIt3-%8w`2^8L8 zwR%RomL(yx?+d#CDPKuWv$MG7I^Dq0pC(XQ7IK@aQ z(B1BAe+Li)!hTo`o5VdKtbsP?%jX-6JjCG$IZFcv=c;jkTLpLjY&T$m)d?OhV;8gz z@pF!_mC@8m5iP?t4ku9k`k*dO51dr>23Iw~fbQt8|HxJjlt}`mQY)0`3W$y+^C@PsD#JLH`3 zbom&T;I&h@5kAZ>lCf<8r2zwU9neMugtP?|o|?rEvnM;EeYn(b2<7zVzuXZTVy2hF zZH(_k%VLG0o&X~bm5~u>bl^GU#JI2*qE6WB&^M7XBK5}P1Iabhh*{x`bmojV7a|?}{a6EC##r5GHg|$<999 z?$fAxl_!#!B%TWdesAecOMiu`nH~>+mDIYbtE*mEKU#BfKL_d?nvI-DvicKJJT zvr%CR;_L>*qvziIP+Y(ADc#5lW+X5v+vp{488yFVC54flM9!1(YvDdtol^S^%DqO(UMr4xD^b;^XraA6~$eb~4 z5vag?ML^1Z5AHeq`F^sdX*?>fVoXHkl1*FohDlOdOhDpKnrFXbKD6VmN^-F=H4qNR z3>>`^;6d}TuN(+{k#V7r;D#0ZGbdWX%NJj176=#FQM-t zz9VHw`h7NLpcsA~QXVwti=%Bw-Vn^RpmAyCKtI_lA^+$jJOdPmo~m0?w;&hz>8B#( z3e6?=6ibbYd;jr2#7P%xu!>&QI7n6Bo&jK&4#bI_=kK^pAVJji#I)tLs5NnQuo;=# z!4g(Lek(r%}xNow+%K^<0pGid1={)hdv!Y%an8`=wT584GswBdk4Z&z*D;iD%K z*(U77EU;``D*sCmi(g&Xmoic02|8#@Tabo zebO#>G3R#Soy8t8oOlSr;yp<6*x<8e^jIxve9zbACMhO0KB`2QnHeMq7jCis&m00G z$H33xYxfgs@W2`FJyt59>$I1U#^_dolc^U%*6NoiU6~P_2Xb>FAkQ+#44Fxxi=z4{ zM(*|%5nw842h1I4ZL!fUIG5!p9JW}?z$8^R1>Zlus^TfPo&LEPeWwj7L$C%g>+4#FRy z8BV7|aLCLwToXH?1*f|$3qpJnWI{L1B#@>u68<%_*0B59T4cukl|8-U7^Cmvrd;TQ zItUjG_8&9Qwt2-a_CXbWi5Z^_#mPIvvN0I(-D*I+^(C2)noQ)L9>O4mcKdI?+NCT- z;Bs@~1D^Q(e=VhN1fyww{ec>Bis8~CT`;GbX;51-{4SdzR(qjSBG9$8Y`{je-9QoM z#BlH15P@$6QobYI*Sq~art~Vu%XsXD8mcxRV&?%C9nS^bLKm@;6@&eiha(%292zD& za^W7KqOUgQTYXQwAfXMDyK${)CwOL@F0JLejK0wNKE$BsKsps+(3dkPGsea6ttNTF{EEt zQKI2JN6w~|1BjqxPPh$1mnX5c{=7v|8vLUkX9+GH9|^FG0f2}CX+ablH@FoPrSWSq zC1QCxnW9Kb6%?ROAMKv#`i+oaWQJ~}2U%MRv3Vpu^qrY&10nuXS{;3TOhw?Aed6%5 z@rX-U4Ijt5$Ie~~@f(Z5bI+%rS-i<-P!4k=n_`!_w(kFhU2cpZVuG_@9U_&#xOL)P z?O>xb_^|xO@mWaQ?OR5Qp)4=|US(@?$KJ8}EZmM(nWT<~F(R=3)Xr;q&7li>`t4{2 zz+HfD$lGi#a$s;D#TX23ng%J)8eM(bM*y}EN8#<3JI9D9YjOz3bxL=Admf8M<6(Jd zGhTsN*Ai33??N)VRy44QAKKJljqXm(Lqus#W$W_6sf7$3r(Z%Hxgr4d=Y7n%j|!{L z<^E0zD626iQslCHzrYwAZzf1jNvqk>#sy4Xt z7-`I}2x}m}{Wjy_$9@D@)no<8Nul+4$dIP`AfwS{nfpA1{p-}lD@LgG**ZSqPKN}N zwd4dt?ljKZ+VA-^LNUKVL_7|}L2oTfcNnMp=O-^&KYxHr$N^QNCn~kEYj0B!UQ%7U zD!T~=f5;z3a~3@+twFeA>(5W9Wc4GlHT{v4xJRl3u4niRaW+s=EaBReq_+gy`?ADL z9c|25VmL{fY74o(?&?K)+>bE-=w_|2QBWypv~{}ZB<7}`*OM@fdS%r ze~Y7g7b;D!xJCVg8qUVV{-H>P_H%0NeR8~{ne#9~y#W_ltZB_imMsP6)+BJM>s}c| z{W^yrAeyw+r9fi-Yw^gknhq*38QnCSZKSl;w#|n*z*Od$E8PF~ zKN({;(a?_k9Qrji3g*4YDyhVLz%Y!3n{sO|5?DKQ_{J`^pByhp4jQ$UAVQmhw zSKz}z01;Om#wL&Ot0~Ub5v@~3Gw4cip$*MT@PPXdsQp9?nW_C4oP7J(Ku)o^0z-w@RYGQ(=*ZJ>qFGH;Es9Uvu($t{(nsu^x=;g`%7{}DGl$VA~Ha6Ix zIx*E;tIT=zG(R|{UYOUmjDR|hx&Q|R5#kim*gD7u8?E~r1O)Ops|eANGjS-Ya4glKaNy{Jz#XaqQ*=9u_$JT|I}W?NKsSJ8&CoVkFBXhYBO; z;OJ;D_2DAq`7?HhW6CWpvHnOE?pVDY7-2jaSigM@wN5we<#x!;2P1LESo|>MuMIQh z6Pog;s4F#P%#YO`BS9g4P5xD|F>6j$OtUT^bdXuarMStUBl~ciqnpFVuS-9XYyxXA z&KrzzvsM=rsBPK_B_J&JN*;_=!prK*o*3Xs7cksXd~(XsMeqoot&8d4$2vZiRHWKO z0(wjQljU0^)4# zhWmqIMKzgJS1?xiS$hy#jLMf4hst!mmKuX6{1%)6!3~hp5y*Nv86W4OJjC#8@;=(w z`OS;ad~E!lF&uj8XfY3Y8!m{6Ad9w2u{}!g(d;{8TWe!A8iS0Zin#d-N}fKXp?*OU z#?b>s#P#g!Ko&4Tb+{yq98*dB&vrrAb1fg(dU4n!ki9L^4OpXCyeE0J<8Jnb9788Z zw1U|0p#e?N@qS#DAHuIQ|BZfM72ScpI@EZTy!3bELpQwI?W2QAM z4|33?hEj_Dt^O~K=04?zOA*&f6Hpj_a&=MT0Tq5}miokEvJt*bpS~Nz40eV84%sw! z_-LRXiybu=@Plb0*O*Dt444Dj(Qkdq>)6MU`)JR>=h(74b^;lW9}Tk3Y~s1*@7{xL zC@Oc7!wQcVN{)PrQLo@LyFalgLx>WsBQTQ{)FoaV`i`4BL8Qx`kT5DRf{ltdeFT*V z0Dv79JnY!y!5(}2j3FL8sKQfsR1I(ooJ6(wr#2Bht|n_^g`q`cX8U^<*s(${-d-e# zgSB+^Zi+cFumfx@5*(cgd^0-BKc?9igaVb?F^{OMc;sf=?VS6Z&iwGZ1|CG17g?n( zI(X}(|969k#XPp&U;} zG=c`XpS->Bm9+`V0=ySJr{#kTLec~fP2iC8w zexJ3Oj7~0ynn`NRS=aB$v*oLgCkXb~>4>Ulm7os*6Zmis$s-@gQ|5jkNnBUgBE9>nMB&$g()i)F8&haO{*iph+iR1Jhq?-8v1|3X4lFVf?tce4rn_W!1)6-Fo>b zSNLiQ#Q+2&=`@$*){Aj%V^Ao+)UE0TN#3WpX~fZ{l*u_LS>P7014|GO1EOXts#bQW zP^Za+gUa0|nHHBuM%!nl7~Xz3u2fbIecI>;RGRM}us-^|ZRSnyCPQC+QFPh3`9MA+ zsOEW){R>zpl+&e(9hf5eKT-o^wr+bFT;mqw8?vZWRPSRUPR<+q4GRs zw04qxv|zj?e<0}(A+tBsNC@GWD*_x%B~O@aBQpWjLI`pxTSsb{^y&(Y)28hRjQeXJt2a!n%5!zA69l(Ob4KhPMtF+67vqGVpy5&2U$R^Bs+k_wx;c9Jc?$*olwyd61 zTEegT-BnZqgB`1CT~hY6QFi>pFm&@;hL5`pP_H2vQN2Qew89FdkS!*&^Eg6~oh;73 zsrKk$FGnP4sPnN|lF}}$=pSu&X~OOfCD(2vm+q4rK;@RH#Ei=j1Y~C=$#0wLrqF#^ zgq=vkb}rML#}xrMRZ0lh`oSPHOBs9l(<-=6HLCf6E!jRax*YQy%urV>7ky#X9KAbU=t}abMmHJJ=C4&lcoP~8wt(; zn-v8oDeVuH4!A8HQgW%ov2}et9*<6HHl>Ya$T*etR%@jq_8O%zGL>y==6glG9C^XQ zr}4Ugh56mBR0eHytO2+Nst#J8G6Ot2oi)z98?#rv=c~b2$ukmcs|2QkrM`R`HJ#0N zrMWKgAW1_=+kSW{jGeUK*rq><yvc^T4Gm>D8k(I$#@iz^f^qFXR^c4b6Q(EFXYuPQzz$`N=@4PxuHXJK<~b& zIv9_yk|66v+;@WzXsq(tSOmzOj`>)o-FfkswfAuC-ZH_o4esj<35ox{PpU52I(FwHM(d0tc2 zxcUL^hHzOvAcjbfUIh>uYcF0W?Q&lV)Q$9(L_5bdDECEu;OBHK5y!Byl;#r_ks*J0 z#KJ}xRe{Ox%MX1jn^z19Ug)+=%#s22E&yN$S<96(#CQoetMpoNXpIh=l z0rTbOLR|7@3KHA+LQC-UX1KsdPR0+GjvdvK{dpDR3o>Frmq-5(cV102u--&!!UBrb z5gkVZ^d&5&UWlDLqH;L%*zL&-HLC|jRuAG%aiv=LmH;)Pa9;m0aq<5Pb_*KOV{$Wm z5QR>El0#Oy8t%$?o*j&RO3~4TT|+_P0+wGezWe^VbJj%lb{1z?1<;SH0rl}E@VE=# zK+sSAiujjySXONN=qw|sCO027?kzZoqkEurhYnT1UV;D1AZ*ORKX?t&^&=W}a3sa( zN4a2rk~Z3{_Txd)B1BRS5tW(`XCem<8)fQ23U=S= zPFVsdqje9V1hC%O^-i8 zmX@JH(1_q!raKJCsR<%z%{D+G5%+&p`dWXKdt!zaB6%I0H5~;}gm^<7jblaatl^r# z?_lY@esEJX(^jkb3-i$J_!c(~Jxq|_((W1>Z8~WItpJNIxDS9~SS{~Fu081-7l8hB zqMq0Znui5MS>R>?G9Ct%*soOPc8shU?YeCoDm#8vnNDy&Qo6PR| z(4OXZ^oK5-;bS#-u~qWZmAfWOaRF`lCiOO~wuvDl3s9$`{t$#XnTi8SQky!tUW6#F zcj8J(0Oo6G^6<-k`wS!dikJraH-X{RLBln0Jh%+aok+RezIqLVfQPMvx2^b1!*N8H z1sGDw`_c)VhDYdkzvmq{fr)tvJrKdnc}awV5!&E>lX3#ZE-_v-R}FZVE2h*rel@(x zT?-l}omf*L3d+=3^aP|scqjtPK^Wd&73rq~*mxb{QPEmT8d+;B%&q(QC5ue!=J2&e z;s~j2z_Heq4uyl078}C7g48)9!fzPU}<666htu;&aa@`F!r~mvJlFJ5!vZy}^jlQ}mGdGnWD!4-BFP zTxly9*#`a;&fJK{EkST+?>i#B!d?<5<#{>o4A}F3EtDXGuwZ(;HI{<9Rh5Q4W@STREOhPwv0qLYw{^pKcvi67FeO}9 zNu=e1tMyDdeXjn4DPfN&@feG8M>h83v7MSfw1{vI9I>DpJ*a%|r8_bJU~%_!eGkxw z`~G1GyB?T$A*(0vSYYbsF`dtD0|s+n4C6Vp{2CqJ7S`tTw##xS7>W*e^4U+y@~xuF?-xMD%o23;}g~XQul?lI7oXOW0Z=*-&7t^cflB(7RO(#+@d9 zS`Qq;J!>HJ6)&?}cSg~t7Dn{F6_o@+A_W}0AO;B~vd{XdbcBj!E%2Vq00Ga&c=+VR zpZS6ZX~~Ity~5AwnTs8^h(*{Zr}WjC-~D!^GbBreGWNnY^T_Ecd*xwEckZLRaSuF? z!pIszY27q?nTfHn6W#o?K#=fW_r6YJw*3__`(?vnFw?xJVYOM(uYr37qY@WnG=h)D zZeU>lsGD~KPMoPm^mDQQXH(*i`uZp3nHcpbLX<7Zd467!2zxG++Vy;cY6K9k|A1wf zxh1y8D$I=oMe@)xxrX*-sHyf9ej@?I3CCdjg*>T@(l2_y!l0N?D{>%(MBW>Q3b+~& zP_*Q@TYcaJK4$#Nl)f{h{2Zfaa%cj^!In#a;P1=%vYPYwnoNVi z9%#ybP^8=)vs`&XZqR>*9MrlyqCd+`-Gq&fxeZCdY4;Z5my(P8t8Rqq?CfR5aV!oy zJoaJrAI?ZH@r? z1|pjI>;GkfziH&mVCgRKQxt0XDE=SM8;uvf36hNG$V0r|G;oDbS(X?6xEf!-qtXPw zv#nITQDsQGESuK;a{gh9+30c{PVp1{rId42M$8s+ZloUBO?KFAqdRW1*8acewaot| z2SNu2r8_$Cek=kX4-YviDFZtu=!=sbRI1=lpDn*4!0XQ8lr*)VakoKtViBiortNV!7`F}orBSJ)fVy-5aNw~+7kfUe z|3&wYb=h0!bHq};MN6*PbKX^UA}+l(1G5_o8tuGZw2m$5x#PpyKbms)OxiQ zq+yS16hkXpbhNCMBElq}pFoyl57U#4S8=6=qMZ$>4JL(%#zf8ev57|{{(CnXoxhW> zI7Cr>3_m>lKf?=f7Rj_fYCrP4!(hQY?Jv&v#x%+1^eVGNCRT-Q)m)maeG#hRq_LM# z+JnU#?@k}kL2eoAAtl_nWyF*im3(CNmL+bg+OO2Ccf0xr&JRJEPjYq6yI$kpI}VRv zL?%+|yNu3c!z@VnQ2wo);DWh{_yf;g!E5f)qDgwgT6+mo+z$a&mxyFkBEuBoo_A!7wYoam*} z3nKbm6U`9Acikn+_){G^k#EKCq_4yLC`j)ci}t4Xn*6^O;KIej|CfEKK2)yJwc+d}|6GvVNc zJ&TfbonX^MZoJo3m}gg3In)JEMj?}~*vO|yq;Nsc+IkU4{>~8;FGuO#gO5l;nhc+| zG{Hzl-330`#W6&|2bx&?-56WAlHfaMqms+|SHX@8BEW#N=nBRzv8l@z&sl;k8CceBDsjY|(H(8K=^Amcke^+J@ETp)K zdwf&%$lyNRbvykIlo47>UyH1BcQ(VP1^%@6Uw!F2`C_^x5yjPi=d^vUeM^m=N^l|>LI{Naqtk-s>7jfh?UG`Gqr_2C~Tmabi#Lv-9$bL zt`m}8ik9zlb^T(F!o>%So+=39Lz++{;Db(QAfUSltTbVC%=o+_Mc7FHEf;ols2Dut?f3{ zwZFcp!GstHXm5+RHb=^IYngI=>tP1IiUDH@ZwG?o$QIE?q!dKag)f`^yAl8`^`+T3 zC%yk%`{aAy8I@4Bt6?EQBmsVJvd?D?6};v(DXpYud5|_F|;B zU4SGDg$M|!;eD-#qnFjrgim>p+T=OLnu|N6MC>Ud{WC$`!tfBx$_X)}$(7fAkTzZu z`7g}8CQ8e8z?U80ggxIald(lzM55oxid|BDqVK+Y)JZ z*+EvUD_>@R&wK~+L~izT!+KD=EGTw9Og!XlrFFND-mzww@0UjF>?draYNAGf3nD{k zfKVXFHv9IDt<~F_OW)9i&fj{KVMCKRgR02U;CsfYG$m{OiSyvk=|qP$K%;ba*(YBo zTTCGPs;dQedkayWnDo8HRZ)a*j@&+A7BB2x)#aPBbDgy-Dg?mp@bgN`;3I6}z#Z|1 zdT}7_H+40?l%(UW&jp|d))lSujO)zsHoBfxzq&K$&IA*lj3gPA0jO#DJEZM^Z)A^m zzwI%_WZn2qyr-x0&bH77X^_~Ie80ZX>0=y{1&OaRVQ~aHK&vB)YJ~X`wWCC2bnn#3 zvzyZ^_txMjSSgt+10zLUJTJu-n0l(b5yS4fkp?z#;zX3j{*2o7Gv&Af>8HQ zmHOq(f&Z+0dpCVMs7G#s)_Lu=JwR6)QdJnR2ZHooH(~TR=*~gwwB5qIF&5 z34|>nD|SXYd8Gnf^h$=}1KD(+;CL~Nz+)j^AZpf^v5MLUILUG!gNt`+8IWUgU+U2C zmT(gEM8SZ?GhmuzLLA(}^rg3S)RiqbE-eki!yJiJpRN(?KoQZrPWvpNVXBZQOA}7K`VmJPB z4sZnj@ASCYB%lYM9Jo1>e?WPcfzRam*`&Bl0NY7^xmNzeQM_|sqmcu$-72p8O_PO@ zss52VH^pN%VcYx1n0B6`F1)=pg;Q88O4eIfWQ-=*RRhH5UtWaOW;2Qll1-JayB-I~ z`YXGp<^(M4UlYUw>kl8mo-dUpvsy>K*YyL3YNdXnVt3VVPIg&Cb3vljpc_*qlfh`- zb0c&9m#!BJQ4x zeYTaAv~qOVe~;D!Ume^93{PwStym&IYY_YnJ~XNpqA89o=$9>OT%S2+FZ7s8O$ zvF-Fi(vDUe<~;AditYxnM9OWXpbVNG7^Rc8({i^m@Y1NZ@M{WB1Lyy!zqE`?`Ixbn z$Hgr~8|M35-@Oy@I{c+r;wj4;O+Om2XNEjNZI~=}2EesmOZ_yoT0;@fTxJ^5I8BlH z!4#4%{u2q05*ii7YKKk+k6oLyCaK+&)+><1MTy{lyg&tH0{mm|oJ`xJ34B?hNv{NDTp|8bv9h*|mM(af? zlxuU!O2AB7L&gJFTz4x*M~L?2a~Ttd>$`1aAoo^vx7=UE7h>VNjhtnV;p z`@?d%Z0QdZQqL(e2AKWZdKd!7eIZmwmN$zOaE9A{GKmg)sC3#|t3dQ;MV&cYGj~h_ zWDwz9vOjboKlo^zMIvVJF3uzh?G97P&39?gmd&QRo7#<(>j#9`l>KBbihsh&VUm+O#U&0ZJ(Srv? z+l=vs_yG^}gx)Y}!}|be&o`BEiwdAtpGAdM*`%0F>$1bWc}bprzn zSwlmTt?gHBROP8s51|R1LYj?hiJV&VvwbCz@B#eZ5Uy(^8&;LU^)WiK<2`WlSj)Y9 z4quOlOvFwPlac4UfrV=#8S8WVa|%xnFVWO#w%Ds-^~JP663~6f$03y;5-Ew=DiKA; z_Ap{Q_hxo`vdohl@4?>feJVt0w*xOl@Ol^H(6#|HD%6%5D1!A)LQOfae9;uYunWxAx3Rt=Aqc}G zI`8-T9sBg+5wh~UO>nsRi}?>xGnS+*U$q|O+ycq8CSB7C)6xr+k$FEQL?q`E&)sej z&f?!*ZJIl8a|TY{G@+3I+=|sO&90GXEEnm6a)P&je&2L{ZDNC(E#hV9pS0}MTwH)h zj!tR5b>{I*9*Udf+k+AQqg;*~?FqeZF@?d#I379(e{HWmJ!C zDCcsTvHZx6EuHgis!XESoeRk<8dCE`&4O2$n$7O~_ESi>xq>)z)JaTC6nx>`LfYw1 zpbio&+E-5Z&BpAyki7w>OWw!MRmKxvICVngcFnB;mhvuR9e_H!b!C}O37^8J`O<^E zG39=ID!C)2Ffi+EVYL{B$FRd19CTf!IpFQvvm&aHbm&bE4bRG?ghv*|92zt*A&tra zlQd8T+JNy@Cm^L5-;$X>_WvxNT@sYUQDNxtdfvYE!5JKb6Hx*@)GFcf=0ZME6t}9 zy0#Kklw~bkY3?>)xMjgsQIFI_0@KM<9Gp=oBTVK3JcH)U;TM}obQ@*(1Zl+WV+)U+ z1sPTHhc17U0N9%Ioa3BtX*MAFrpmsR7Nlpjd0sQ(IVQSdqr-UUjsTgx-x@6IX+R+)-Kqj zE2_5>i!+5b);!JUKT4f8e-DW05*OA`x@r0vc@6crVk0ThIp;Ab1>r6X*$a_xs3dk6 z(rFj6jS%8AU0;kinCk3VDF_N9tFXPeZ%e>X(%0(h7E7$S6ghm@z`nVQS(FfQM z%-#;>G!4KeZK5#AZ>U6`67r-}-hT{GAJvx<#fJY4n>4309QJMpMFQEkTdWOZIGY z9WxLvi74D*kF0n7|7h70EnnjB;cv;nG_Hn%_(Vu(t18UF2x?sA0qWkE*EPwDcd8o7 z1kB|jWc@U^Qi29b&Ki7M-h~SF=!eHNf67rEHrSJhu)dWx{mASF&R`%g)2HQjZzGkWJ zQ)iSy+-@f=xr6vyGN^@~ZPr`ij$>S6HsMzQDjccA)7r&lQedCuh`5$tHvUWgDj-c>8an%*`_~Ev= zSAK3i)Qqig>&dJZsXC|0>*1E*6%ZciV)@(RaO(sAZ<3Fjq0 zWX!;(4v*x&q%x(l=~sA(=^2(x2O-#!3u|Ih`bD{1{)n4LK)+~jZ?@VRa-zj1hc zDKCnQbTR0PS=0EpDiA(kY*~Kl&Ix?E9NG~JG0$BsqY`R{k5Rjwjo(>w@@5rbu5cM6 z_u?xBQWE8sfgd-Es{6`6*1e*}ZtO=zG|95b)?a+A)4z7Ug{!#VMC5-zSG$zqBYi2u=^%t6EYLYtc4;9p8(l=VUSYdE0z67M+ zQO5P=E>bE$TOm`qHUh}c2SA(AbPl#OQ(h7vbTpcDUB^Urj*cg=ATZha4wwu?z45IA zOd16^*C&v|mwx-r^ojnfoRIlaam0mu_huki+NY$k3Y-AX`x@gA!N{4ouUqOCK_o8v z(%{oS<$)`Qw}3c4tw|eNDyYm@D#uDAdG_8oy_rxgFVcu|et%SULij%NC?+VR0UhKtT z=YDYW?5|Tm?h>10X|R4zWw0e%=;#eVUK%m9(2z$I!cv~D%-9?OX%QfjcwlBRNg*j` zcv?O_#JWHicDFX^NA4})i&RJkR3)KD>dwDkYF|J%k)Vp)yUK)>HjU}>UAKFGKmacY zhxN#X?jKHjn=4T`kCi)zIH#w^stIdfBV{0ub{WcvSTiz?bV^X<;Z*eGpe~R{3SM=F zShXBmA?U6Q8-T6k1H;Kk1<1qwILE*zb-5)ig*#1%q zfl04EH3X;e$!dYsTZ?rS)k8hp^`UeYu`EV#J~v@1FudSPl4l%0)7g~9y$=~=M{Z+G zU6~5~_7Gs&_)&r9RiH`f7>034&E5uQFZ?|pQsy-Bq z_FD6^lvOy`SCY*z&G(KsxGS%~6$utMS|);ZSrj^4I7{k)30S#6YNO^)Ze5q}!?kd5 z>Lq|$2MYi0rzX_%N7raUB{wPQ$PtW#yilTr=$jHsTwJmh=tc9^j#kRKE5Iou^}*6F z{e=AJ8u7?;2KvM9-#S2O0j?&02u|$;7Lbk)zvI+KX*eHw&Ns3c|Mzyu#<##z80e#H zRZ$$RPWaU7tpP2JP3fFlcICuMQxNO<@~d!;xoHvx{yDrNag(x?ZSS_9^8rd~^d?;0F9tFsKY zyHkJNH~H#g)Z*}A=@c%1n}S1zdVKsd^jQgD zY7w+UD-z5DsB_3gs(87SS45`Igv{7sAu@Bk;^7cz66ec}-6X3+9%zthP&9*kmiJ-Mg)evIvy{OQd z=`2{{f*~?~l~5VB?I@{UT00MftkA_KD7YI7cofBK6SJgW+6Dgsy97ZBT{Cl=>X812 zEjp_7u4^vp#TNJyT6rqb9Kfm?bL;nk?d&r4!~%W_(^eRB7OeQaO7|e?PRC;GQx}^x zth*+_Cxo{>mCJ!=Hi=8X3NHto1ss$7`vFD1NaUA%G^jG;+D6w>TVz_oP3owuUs?%u zgfkk;S_Z{O_N6aFTMNSkPN_eb8vcCShi2<#8XJ8*-Mr7nf3|#)7}8-Ie@xD#_y_Ky z2|;&qQU+l&nGVJ7S=f%C4a@{_1M|9_Y=a6UlJJ>zIPCWq8PcC%SmJ0ZMDvjB`Opt6 z;ht?VM}?G?;&5|nghqWPc+lEJrfQloe=g-0iA?6wpeU+5N(BOGCsbacI(N;ztlz?F zBkb>EU{uWY9Cj))$*znm3vEfF%Zf+H&oSe<8BQR;&dwH8k^{5WYzYp1iiTt_lQ>lm z!H{wD4(?lPZwA@(xQEXGY1@%=6wkh(LFNzl0IFe;T>e{pnP650x!apDRR*X-%g+zp z-ViRN#J`IpxfXbh#M(F#G{4;6zDO;Gm0LyjIR{tj`Bl|}{FhTVuqN&l=td(pz=Jy@ zE9)KHyLJnw9I3rQJbh0+{YetXJp^qhGrAg`vi60t0nLf6at+VK51D)^TAXBVdYjnn ztd`D4ADdN6#=QNs^1cJJh;ks5l|i(*!D-moXPvV6ps)ag5Kuvkmkl4Z5X&(pYe~~& z>7au2y27&NK`{I4e36@&lpk$HV_8+}$fg&~?f+KX;tSFUvcOa&Z>FrX(#aunv=A#u zIkQBAg$YoT3ve_N*!&wRkNS*jdQKn^Z0GVebKdFqXzrmSa72lE6}{7-B>fxeJMZSx z7fO&sQop1)@<#(%$$9LhFqz9NGOD~F-Yq&%xY5P30nvqlFgX`zx}WH}1VBC?HcFr(i22R#v z7@UH4gF6(_v+l>zp5&lojZqlZ@*pl*;{2PBP{M-}>#TT*fv!ZDuKD(9m6uZJe=I){ zxuCyw$O|b$q&NfvLc)j{=Hqb0cSMDm3>8O3){SLxX#L{k%!=HTA4)EuUHXKYp2vYp zTDvu{v98f)liaPE+-p%`bff^_1O$nPhDKT}L z(Ux*FSCDBwU0S@mNIJvu_9ZiD$Og=^imehZ5d@T25m?PMV+7Cd2|T#oK3*3nlE}Tb`{H{p412Sz>9UX%gnuG zn=)>nCc<9XxdPebAF_d7g<{kN@b$M&wyH5u*_emnBss>`P4+z=g_w%B5fwli#B2NHTiYa<19bs@Ts7hxI%3+bG+idE!w(O}4j68^jOlgrX zful4oT)1k#gMO)GqB%pUNIkYspNIQb)<+S8!XGqe$iNsH)}xhI*|%LbI& zCk3J~NI!ZAw1}qB79DQ+2*bz>9=!~6<-o`|-16dP?q53Q{_;`aexoY|tkBNxG6CIB z{D=yVyvH|)X!U(^gD$AKdj*MpCM&a7&}*+v3RWE-(fvLhI&Kj29@;ptI)K%AY>Q&5SS;UEo(T zcv}tx%7Knij{2)2*SMsN6sunUj}<#|U!4Tq1OZ@tu~;`%HjCCuI`lQ#XYT)gCcaYl z2o-HLPJdPsB@0N=hP4x)RzWIyGFPp0>gtpNKwL;0W%c)*#Manwz>nt>+^~+vBWkTR zO&=_yv-7Bb47qyhq3hv_^ml@*2{s}gE!XJt^x6Gds`8i60NLI zoO^|BxA!b;bi$;ppRKMLuq+>x*VhQ^K%R7AYyE-L0>1%}3r9r!2{ z+j1=8yEE{ehC?jY;AO!6#8u!AR!xXKpP>%!^^q|MvdjYLt?cLtEb0+}E(3slh(TB! zw3(=ftMD1(_6T5;WJDuivIAWX-+g;DyDON;r~HC+SayP7c@V7SLpzg^2^psV(ILHi zvk9=~1vG;_b@s_hzhr?c3q;7K2K9f0QO;-sS|E4Ey;Tr0@_ibUkIaxORJPomzvTW>H8-zTMW5s)p)O|X6R;hH0HF-b1~gLC zqtI1-36xCiAg!p#J++HmUMJ4m;TW^q;?wVt3yO`~#@jtx9MLb?Bd`kgSM6iH!>eXu zs%&=NIP=RT82Rv`-TxV_6ExA8d#*%e#bc5D-Hq$$#Me|}2&RP#Sgsh49C!R694wwF z9*kolm=&>(C?_qnAhV1OOP7pcBPB5Z?hXx}M7U~4ZfC0glhByw>8C?|wP&HiM=eND z3fkp192gugTRl^v5=-%`>0-^_f)=O$O}*Kn`F(#6{sbMZleY2yhxeY)bq8 zJtbnroXU}&peD^<6trfX^BU~gTH3gtI~Bp$WRhmyfdft(`D?HHU<3X?UA*|-1W{Ue z5f(jhxPHdC`vJ(@=R#f2#)bRTJKYv;X%b~dAk<$O-J7<8X1+O!X1@)ND90=42+5(D zxM+w3!})ZFqljhP)p8q%`j$$?K&o47bjvi4Y}jBXB(NNf>79EHc?QNMlAL2@IdY8V z3woSuZ4J3n22W?h0ry;Y>VU$MJAt>VQj{T{mB|2PnnBAhMsCtjSvcaxwfJX0%@>%v zne_O{4dn}~7h7(g%`<3LJ@-UT1h)!)x>ED%0~ehAsHh^c@#~H>BJE!Mrv7H_bDKDc zr(E=!jbHY%Yx~7Yfly(;;fGMD5~8_tbh-blX0lQQFHMCag$H=>D?nX(I?u@L-XUTp zJ|ItinvM>EDL^sqLB-RxJu9P%sNOAizcx>=P5$UK^dTXp1j@aT3c3W7>Dmk?&B&gQ zd|uuPikITJs%T7PAmT@chDQug7gRLHP12az5X>*g55s?)9MGZJR@P*;PjOn>Ya3m@ zvMmYQ(Ah6|ndN`cyHg%95P-M7b&btKF;PjdS~QUV1L$)69RLn?HW~x-=})x@`yI8{!Dp&os!a%d_Ji&$Nk=MVMsgG zRe1nKdei8IL25O028FwZX>ImIUBTiie0g{B0jPKviy0pZ|0urz*8i=tvaBR%=>g%4 zt1GKkmYo|I2G+do#<*WM=b)t}c+#o2GI_kx+{A^JVbK*%k8H_r7TM`sAm8C?u{~M# zELpLFJJEl1si8{ojLY0kADUieMZG%tp=Bd5k6{U{_@Qxs9;Mt&Q4Ucz#!s9da17TM zbw>)Ry}S~VntS8wQ|(TV@ZY}SrIe&GBeVTF(x>T+XAQJuD^5Gf5-J#sQ*;SgT`!wB z`~Mc4cx3E;E&MCIDs6%h{n*X&Uv;hPrv?KZ4=jzhf6l;XCf0xJSR3f?t;8%2m_=(# zNusA(`|i2R9rFjno}2ZTZf@VX#nk^97c{a#qE``}b*LTrcO#HvMbwYzq719!x&g~X zv2w@yF9x!#Ycl^!HPEW7)B#D46f;&=-G~X-l&DOVT@~wIAsv?ctYJDs9|B^)Rmad7 z{&$%aK~CT^^1$#PlBf!<7X~X3sf)v_Qf4;r3F-B;sDlNSCDSIi_08!=Zh0#-o;t`5 zt&0<|jI#c_VkgB*{8I`w(6O#>%KjNR&@p&${C)pxDdrwFnR50+%8xU4hzP2cH82>e zb5}LQ%c}Pn7KoeL#cYwW#{jq}^XF$xw(!cEoBUHVK{)coAe=YWjb z@W9IXcfE+YSX)Sb|DR=92R=D2{1xB``HN&SOA7p(f+c}ES}xzY7d@QAMq4oT9_NmQ z4wzC8`rqZan9_t>x#swK$;(uYJ^^f)DtAwpJycFS$q#ow(~c+(M6URjbb7jK+=cGk zWcz!f0}=Y>EUvQ#!`(XPt>u(aat$hQV@i~Kt69^72h(xIJg9W|D!`#QAMu8fr@(OO zjOQHfpZJ``I zP)z7)fIFuiFhmtb&xpn>R4yIlA?T6bUv@4-l_TaR9WrKN+6@65s`q$bQ&cd=V6~%@ zeTtSjMq#Ms2;I#FM3RgvLbW+Ag*VDzD7H8 zI~3$oOfW#LmZ$iI4u!e7-DOYJ$dzKOA8GoZ5>ll7$bvRtMF4Ge7-rp#QfWK13vK*( z$LB7pRqSt}_C)K28S0M$PB#qcsVmfFT=wX=bU1Ng^pVbZvZW`-RQDzpD|h)gYeh_} zG3Gr%b;@(9aMfh>Lb7YFtx~bkGM~N*1@eb3DRvC~##Y?KG+nbIUK)$zDYj~8WXKaD zJm|~w;UNAEu2{LE@7iE9TzBufvN2F+bGmUiI~rW_dh~Iz4nW~n!tAE|KbiEe;;VaY ze|@bdLQMaZUeFGwf3R3sam0zY8Z_T$20_}fIUTVj)EMz?%-AYWJS?HWHvHj1tA)Er|t|mVvj9OFs-tdYbkE-M-FRu62l)86lOE+ zMDE6icO*K2FWJ3jN{0RWX|(>l1mHw|AUPa!Hx}Cy3e}(xj!`xnC-%wvnl`jTc1hum z?KkR!aS3Fd(-=CLvaC1 z8E+hGjrJM&quu+>ci@Ud(z7 zJiiC8sus^^2Pv7ZDPuO5;Q}_#9{EZvF1mOyrOJ20juXQG3zY%|EqdnR0G^(j zZsYL%4q&u@pUVJtK*o@Y!WzMl@>uLUiIhJqUmnMQ?kwhMY9ineynxM6Kbrth3>ww@ zwd!Mqt%l#{nJOgi{OLRHqEC7SFV;(pPDEO^-n4`YTk+8rQHWD=fM9i$_3D!b4DX=C zUkjz}m`I7LYdK3Inwt3rhf;7xz6XA4t3i)+!tN}nol8aZ1L&6Z%3dI!|_#|h!& z<`;ENY}4NfsSXhc8&*j5QAG-{NAM5hsPHmD_!bhDOF7d{T(|PEg0l905~Dnyz>smp zZwf*oxLj6jZ`svm?^GrTE(P=eN46knA&Hp_AA4ADr2PB~)NDIR!anc{ICt7nFm+%X zaXw6Q4jVKbRE&CrSn-cskbih1AqUBDgum#O)jI-q*t|#yp~pd;eV~Q|$Bdrblt7KY z+vcY`1(05UAZGDH8r#0Ho{H(d_$A;xvT_!spH4CGfp|bIvP&-oOE)%NONfv0)W6aA zs|zW};_p4QoGO-I;$q!I>{gd5RD-Q&FEOz7zIt2VDn6+ON+S7I`_{Egs$sLN++v3 zQ!)DCTk0YLY_<`-XNuyufsW;LNW45XGhRbME!X0FVcs}?_YM+Ujz4&qiYpO~GC6fQ zrE+1{={1Olq{F_5Is=AF6QGzG6BDg`m*W|I;?a1lLR^BG@D5dY9J4HQP1Rs0#n`Rn z0WUlz)k3X*v$&<|X(52+uuvvpOJX0J;s4ba|QCUAb*|G3M zX`eh%@vB2rLx6!-lGfy2EJ`*gDyIF76|k!>FHInl$6l&8j-1u4t0q4k`Y5()&R1dp$RKGsth~Z+^^(8 zQXL->1bp~~OD}K{J^iNim~eCo$5c=bIKn)(#-r;Q0a1M5W^-40R!c(|a<@+5TVw&6 zCbWT57P#R?l>4A6jX<-Ujg?N<^iJ^fXQ7`9xU0 zQMgLrE7^1jt7SKh@U@LQNd4N!qw9}+d&M<%j$`F}4J&$k^ ziYeG&hNd5+@zzE&6k!DF;kfsiZW1``-J`+fY=TH(yn)c4y1d~k`9iohL0~6&aqnKF zR|^=#rvINH#hv3YYfHAW2UL(0iO%@fO}18J3um$=+*A6YAFGX+>b@{>B3%Y2K;4ct zuOwQ2@!8tpRI^g(V`!tEcz|ImE$P~jZ=*f}r&yzLNob>;E67NMw?S?$##Tq^TRnG~ zlzc<^sRFGyV~(Hh4(7?27wB$}#uxe5X&Fw2CgcJ9`-MfGnN5r8ayYt0V6y$tP3>Qs z1Uhx~XVB<`r-cGH_gY?^x3Z4Weq`+auRx&Y*I2gv2CNRNwVeZZvM(T)2G|iS1u3-3 z@V2blH*7Z$Jfm;t0gGC1A<1%OHUk#xGN=cdeSn-+;({Wd@Z^C1#I?nsI@&-0;2(Pt7CfTD&zh|ahA_Gb( zO~6eH{fGVYR3->%66*hSZ+&^JcbggXYlqq*SP=O9*M-?=!r|XOsxkY06O&k3s%jz& zLYY%FuqKLxGMi{NuQiAN()MS&j(urem{peW%NA~kC=kri5#V@#ho(A|(Qgv88x*kQ zSXjRP{Jw9{$Qad)&Y%L9y}IPAv}KK*CpdmH$}(XMM@};)pE6|$&Kh+s$q$&?Gc`1- zC|Vl&~)BnVRmZQOLcOL$UV` zwT4fC@M9_=$I`jx?+uxldPr}kbFW3bNGIzDQS91HxlVQ9%Z zp*m=4a@1-~{x?V>B-~ibN6M(ulOxy9s;CZa2-c!=^SvSXPS{jsN8LBt@US!M8&@ zMWbom1+WSyH(ECH(6FvI8T4$R2W0sf{zcaL7%ib9*RZYFlO^Pn;CAq$J^s{x@!msq zL<{g65y>;GgK5mznAE$|`?^NyZctGc;K{?F1u8`O_Mcyl_FQ8IcznTzkRl(Y2I!au zM|5yFso<2&RoNIek}eI(XI5w-$3Wn5szI--BoPCyxOZ`v%M`@!PepiCDs`P3FSWza zNd>AD0DOKDZw0wM>W=XyBAs0`f962{f3-l>2(pCw@9{3IR&(`CJbc9tFxRvkxEMpC zkU*wl2ZuW)FR=Fhz+}IK#M}mwDd4+czyFJ=^tUP(7DEZXv{B9IS;*8)Qoui|~w0WrL5{o;QezzZ@GLSZ4rP7TUHAoQKxYT1E+KNRLrF0BD6 z1lv9UJRWj6(>(iI3*;6CUKy9nn;&Q7h`({y0GL}8Go z7oN#RMOk8Ta_EtzY53BY?o!KTcy zT4zL(hY+mQ_s~7LTC4=aE*VY>5Puagy(~A9XE(z_rfbGq`Jt+*w$r%};CRGI$*yH1 z_7@C~DZ@?@pJ}J+!h7$?e~pk`JMzs(4+JzJ_2y|8g2iuV`Eu9USn_rBt$Mlt@~@pC ze__+Kws8fJ7`) zFD^y!zoZcjVd0{LSMslGLp)$9jDNxLor%dqI<9D>v<%&}b=j{iGDFi6RN#PAUs%#Y zTCEoKwxpLm?)^!ZL)_iZ$^?Y+%MD8;6TrF--H$L>$)w|LA5ifQ&gLcJath?ov-F$T zbPX$=PCkb~dz(jQ&EicK0duJa>LHuPT}n^t>8S+{H3n22i>~l51Do6u`doe;K~Jo; z@vv_g001rkDgOa)K7#!^j%923-#8Ay?_;Rp-9jZ)8Su`qgUGOA;2BdG7AK9%D!3B5 zb*yNT)k*e)r6=Q6PeW}zl$4*Wzfqw2+j^BOX^v97iwN;tkJJAvIGada=INDi9#Max zeiRih=hX~kL{{MQh&Dm9uIv{9r{DB#dO3X-)`TL~n9J2ej^)N$H0rJ4M8CGv(oI^t z%1l<^UazZ)mjCW|J;TA=$A3nkmD2d1J6hbIBl}@NonwC#{`q?mEWTN6r4}@x2YYbq zgc;eHxQ62Le>_8R9z3E3PdO6Y0u3NcHwn2*wS->RBvy2ar#9}GL zn|BeZ(u}>>yrLujjcNa4?Im193QoWRX7<5*gG3z`Ie(JX&CcY^1MPsOC@;Omu?1wG zIGIZ&9NhS7gjX+184vm$WdyC+h)^Wts{Bj+KYSq*aUNZk#QWpi+PtC(xUon4rqo+I@pmfWwA?3O*^Jd`@hfp_DXsZXRCe{xIvp0VxVgGL zA3pk2PGAV}9lVn+wb!~dQ(C5M+nNhQn)KiLGCP~<+`u2Bf3MfIZGAvvO&POL%EKqp z9b-Kwze(f(g_XiI_L>({g5UR$~fgXzOnlQ9LU}uxhI=#9CwkKZryk z#aW$~1a4Tf*`djdD0PhJ%+KqZ(TyX)HM9T1cSJN6-H4EHx5(tW41xMWc72amAnOU= z)*}ekZ34#SMq8@Pexps8I{vQh%N~3Dry?!uX{%4jmo%0cvssSYHxLto_Eu8!sAC1L z4%xHhdxFS^XF9j6DmD#fTeYw^1RSh|&+1d<5S{-W^)2-mX40zlm8HO0b&m5=+VjyY z0%>vo%eLg;0EstwyWfL`rsxs+ObG2kC~iS@IW-lvT^K%^`@z7s@q=vbB#Hca+5 zhwsj+mV8gwzvv7es-DgILmQL$ zD(5D6St#m%l8IV>ThQ{%s;5O%0B3#p?!FkTx{JZ^Hgd>V3O$-HUu>=e=$r&=O}at( z40f}yPu1WgpRz^f_GmgPnA6vBZLQBsmK>(ZdtisE9=bZomr6ie66QC*yvs2~|XZJRdZh%z9CJHz3vB#@ld)zj&cH(ZKedPDP0+io;!j zIyBR2HW}M*nxhKG?0YCeWgiNi$LCl-A`nxt=mu@daNCV_LDR1aN^)%lE}TEFq(yWj zdYMQrV%dw=wxRCK&3+o_f0}u60w>#GqKk6Iq;-05al#-H|CcrxsCOv)`TtY-Zd06% zb3yUSxP8eUqnyw)*;R6C{ecc6J$gS#oSDjaX~~Ql-qg|wx^xy10Q7DodCK!^^lAJ1 z$gu{Fz`5fh@`QGq)Ojtq7X|8R{s6BJH-d#cC6e6HS_?Jxg3={7F4}$&t9`mhWw&lC$12F-=CX}8Ftu7>u!7ysf5C)@)RL^CBQ*XCRb304r{I8>h0g|8^Tb0{H# zMHg`PJs8)ok}|Ajwr4$0%D&DL_x+#JRr`3 z7HoGYy&A6E%t_~hNVs4z1=-aZaAm%DGt<*YwidM0coKAh*MQXGL-cmiy$&Gt0k_^l zp;$RBFHMtQU|pop{n4QC0`s$z6+=<|k}$mVsl8Ap)xWc1dgbE}*$2-2y%Wn2{mpT# zE|w9G0DI)&;Z$8j~llo(C-()N74YYA#Bg z)<^(#Ofy~Lpll^G&F<#Hy31%2fNQujR})qv?(fT5zzU2|9VV^@Cxj@kGIqYV>}&hT zCaBKnsHNWTlg{>JP12-Rg#@@ntpmJ4kE5fhv4J2wL$5rO?>z+;=|tQ^WsmJ^%9<== zt9-||VtW^#$A`FdYf#r7c`*2=ZtZ+nx9bguXhmR`h11poocZMqJN{h{>4fP6Tc{*6 zdi}aD~FcGV{+NLkCE9sp|^U^&E1QHt1f;?{s{eXcO!>u!^q^@|pk>yip)*VuQndEIAX-cli zYBF+7nZ5u5K>fd_bllGe4DNRqI&w1?i?hk>rGgqS%$5-dKspQ<0b$ zLv;o#+KOV&6s^%P;oHrpn^MuO02?Bl7~#K_F`A>tMAX=;zArBZa^}GJ*Jhx?^|!3v z9Zbs9V&*%C5rivOWhKhK_J}$vO^N09VtVjDBx%RbrU2l^ncyNsz;vZ}l~RLHm+|&x zO85X3$W)Jb6?gSwsISS+7OZdP0^_LktRJ1iSf1Zo;1GyL>oDC zdJpCRL@VN|eE03DTuZ#VzNXCO#-Fq`$6?G98v8fCF(gt!PwjRiDl+Ij1_APD*;6;N zX$2;QfR;DJT&zkBs3kOv0T-ZJ*C&9t3aHJ^CE`nOW9@R=vCeB;sH3bQs(UtAzlEJL zGMAqBfJ(w@U!d$7h3l2qEsZVzg@T=p!pse!5^T)Sg`Wy!3(neme)9<6WTvL*oOH`w z4KCMm7Vo}WM;|VA?i%2O*e-QJbL1}7?-XAY3)&W#Yd9qfOvN84SGfOu3!fE!sMs1( zx`GpM2r}%Jw(7ffu`-H1{#RUNXbj?6^*9eKWGz%P)t&2~UUh3wXYc!ssr_~g-uun; z!{Jb_#kN=KK3i)et*{UKhdLp+<$=b&&doaxEO|GWHIcozd&s_leAH4FTZC9Cnfu6b zG&sF)$vgXJh2!{hW5KF<&Wp2qif<8L3d|4<+W|?aypX!d!&p6*PRsbZFoencwC}!q z>%x{LQY!}@QnO(A0adl7O!Mdh$|Bm~yDRRhT`D9I7#LSVC>BhUcqnb*P=ZV3s}AXjC>9=`901t&8=jA}cPKKnffb(owz4_M zKYYkfO%)mBc39t9>A?gBbc~nH$L)d(Q2)%E0`?z*-Sx_|DZbrx*uN| zHJSX1ZuajVnd_vW$XXg^Vs3{H7z5Dw&-Z&66CM~Va@mguSu3=ZJeicKBFBn)}34XF;jbqt23|G7b)C^_&bZydTRJuM#2VGNcF{ zja2=sIag%8`u>)`RJ=T2-a%&&V`&@JZ7qi+CMjMBl;2;T_0%dQ5*NVoaVbJ7-#jrz z)F(2>{l`^nRkC^jCJ0gL&o%W-Rh+ke)!BYk%OG1MoIli2bw`{LQgfQE?ZV6pU0T^Q zA53_&$bclSA66WwG_)9Uj{g>l<1WtDDhkkhslc1e%Nc4&yaR>@S9vyh0=1Zk!1$Hrc@Z->OW!Oe%aA*A9@&l6`Q)9ZQ4$8OFi4Z_;_L}1st3&Ol>fGbNwku^ zWepI?K#dy_I{3NABAas3pg|q?p$w%Uh0mVhq~KTD*|6c=$E7Gv09pNHnH~P8dpNg> zIZAWdgd9y0o42v*7YbDc()wDWK1J{0G0a`(9{Ww|q@^g!g)ed{rEO7c*0SsBBzA++{gO`QyxU6Ry>z zb>9ehPV|Xa^DSa}2*GQ_4Kd+O24t5K0cCyJ=d^tW>NdxHP&hAU+y?IOY3xK|FpFNWbaaHFH6$+!m?yRqg#(y9mY@ z3X2g{AzpyKgic_yNNUsKvwd@;Irs?r9(k<^BHh!C@gk|bU2a0<@#115W8+PP7w$ap z3pH!&gk4$X!khV$S*B;a(!LP8k^_o93s)QD_Dy|1qkywZEC`0o_`7gsqrl7?gyqAA z70ahMlGI|f7Aq@zCf-vwTJRB);n#$qv{ykI!CBAnxC-vLSRw(<55df-SY}OBmv2Ik zH&7b&mWE%xq5~mok2P9iFOLILEL5K(3X$S`uTlhw42hGYMKV~?QxEI2r$^N-xE;ntY9 z-fFzu6{H(rJl`!8fRp12QgJH(PTnalL3C!=FL_~s^ zz?^i!ZmRjcpRJ=e6d4ycgbx+OJ!siVGE4{w)$XX2)Xw>Hg-4YLz0`~?Bol@6u=Q4H zAOB6fWcrV}675WmxH5cb8YIoOxF|&X%xHV6EZ>T0diHmjj2$%a${X*vTO~rDRM+|F zD@~t+A;t0O8+~3ogQGP684^bn8!1CbcnM3ea4pvm1hM9jD1fuhSWJwyTuW1`;z(0z z`L`@I!Ob zieH4=wMW4QK1Sbk(e##64oAMmln>uh>j#(q``#u5=l3;CJ#q7utF@G&LPji`?qerj zRB~x}p9U&W4jRrp!{t8^j*Bn@^BxgmOk0b=nK9O!%R?E3C>v%z^`Oa3_uh{vm%O(V-(c7Ed17~vxd?1Jc+>W-b8I`qkmA%R zl|bVQ2I8TMC*{+)f|z<`8{Rrjg-<_-db}vYnKn=9bPsaA&3-+#+lve^2$s-vP09BL z3&tV0Up%)wG{lARrn^b+n4*5-L`J_7kSr|@&dCX}V^nvgX%j-W>l*Kks?rHvJ8`sQ z$jDp$h&Bj;WT)7^rt|pHVK8F8Za_$Jfr^-J*#7AE5uN-!D%IY6Zki0f5k~2KW8UTv zg&FO|(UCUnRaVpZJCop^9{6u~w4offk-dngdfLEH_Xx8(mSzd8*eD9-Ywj?F2y}~d zuNv0mTMf@*(^-dx$~Zp1hPBXqLy`mB-Eo414yEgVKDBv~Akcj(H)Mg0eBChZEr+WOla*$$q0 zI79hL591v%8rk&UC(-}H(lEZ+bG zavG{BCT`b#T{@y(x?~}}*;dRx4*0?vJGa)E&PnRCs?}HGB^RX`&Iad`8;_Z^wPCk0 zOJ@hJSg~s07v>T`^RG_ODti>zuj};nFISKr{#{Chqlpz_8mNx08F2)$bD+VtWhB&0 zc}#pW+NqZvR>9U{PI-O%pZkuDLY1UlPMPryRcQ69bin>aqIEo+wd^3ubUGkgGFiwb zG__G>Ae?$apJ-Fffq#M&eXRqGN-7~(eCgIRDRMd%5BJHHtZ04G)_s|Lt=f09d4nx6 zq#K1JBMAYe*y5w#!18W8YwCXIw^=*Y={6~Rr5Umyd`J`Yisd}km0B7)*`?k;V>tY( zmOzFk3Z*kjpu(-7W=z%Kzdi}jiNXp+if@0JCw9$#1vov1Z!Asvhgtm-N1C%2WO37PG1JmE&y900S0^cbE9$Ze@S{wHb#N+JD^}#!F|m!_B_H zZgeXR#(ibI3{;@k^;Y+!8(@AHY8-r4EKrYhnLMiE8qU}`;smp#7Io;e;YW|vh>&zB z*LB=6VrOABRf04yTt8`4BX%l4DVaOtigF~yKZ6NKZdDRLa<8>}73SfmACl#nkWj<% z=ALi&k3Hua$mUxQ1KvV{$DBD{VJXIp5EAg|JRx>432Rzgdm%1aE2z4ltvu^91YreI z4;RK|AD(;R2y&L0_;yr&*29yjHwRUTeD7frP^} zqn)~ex4GetMhiA$kQfXb+PQ z19BUe8bCwD+I$}mnY`FAWiEO#Ur4i<%t>b|Xn8u?tCY>>lGDqBgYgBFW@<&9XtGNt zX1+K){*8M6n}*a~C0BY2<;7fcC!Dh40Y7pop~UNjq5(4N^O7@|l){7)N#_3ws%1y~cSPD$ z3kj^UpguNg0W67;ih_syau(u5*j0i$8*qLH5k%HFaXIjHVci~R1dm5&SseNlZnNeo zz%9y~D2$^RrJ}_$-cU8c<=Ju;-BIK!DSvt;+fkAIC7n7&3jakzAhU2JEW!oV5D0j( zo%XKJqAo#b8=-aJ{bIhZ-4B{Dw>MA5)ct_twpP$&HggPrzaIbNH=k=rbI))OG_o(refjE?S zva#zw%q&kZKi=m_qMx2xedBwD@H9LSJ>PtC&p z^3}+MF4xB9+)c^3z0Ig;!W22=bk86#g$icYu>!<}TmuYI-s|rK`pe2w?SaUPFt##q z=2m+v$bqtozO9l5GlubZX8d0nm0cj8*7rNFrnkL9WwInnsC@xIMVI(J9?d(I6tH?rGN#xFx2vz~YQ=HE5b9fN-MgsqOYU%?%L+Zjv#^c+WSf+gWmWbn> zSk!eL^HpxOkabKfbB@|j2kSr~SN4LhQQ#dKUfwfcDC$H?m<{mL!q0+E1foxFBEu69 zBVM<3N1OR;2fK8rSPo~oh58LP`oQ^;!ouRSqy#L~(wNeAmBeEtndq4rL0E5czjmNr zKCCIg)D=Z z)%2>GSwXZ?#*ZD$^BbaI4A$@mK9}Pu-Lr%M`(@(x)!*RLr_Q1W0;9sI<^2c?2%Afj zqpR|M7C~Kg>;18rQ!ewp`_z>+1P;fNh-LcpA&k=GddE4jn9wiA4qIkv3T}XhNb0Q# zYO2iFKN`{8G3pmRgdn2RY09jVIEno}MSo!(4&jezq4BzhfH|uyjtjS^HS%DDV4BGve zq;w+}{rbYO&3Zs;rdmR*ALDz`fe-iWv&U6Bu@#Y}E_SMmodTcyN=@tJ90?Utgy!o% zrW?2}Ltt))^f1SVMnswmS6DXd%1>B;9VGnO>}I(rD7zh9ruTagPZ1h&0n;(!>T2{9 z50vD-gjwC*W)hI6X*o4*y1QMQJ(AM7Rs1_41 z*rlc7KMFZN2acf+U}!Rj9`nJ1u8PDZnVfrnVJ^g&$R>6^?8nm{L0r6XC2m!^A<}kP z)}RfDDVRKVulDeAh3#OHOKkAVQZ|tz!)~m4H>ubyNJjmFOd<4;G!{DA0{&$ zGS~!gH|6k6vqI0t!{E`J#$g}+wDs}O?*6V~y;-YZ047gAfpTegeO^@=_z6FIDI$KMZe}YezrQ8p5!wLhVE6<4zilgfqf#$gI?&TGVGV zS^0tSZc-JlSF^%bYiidgbmV-(i^vc&qr8R^HR>chp;1U`L1}~X{#F|ro{!S z41DO1SIO9&60T+x>m+Gv-fislgv@O~<`v%!*&9^HApSv}zYPs6FD=&Z=wf9!NF(z) z$+xo5$V*i&3?!DwbMYvZ@z4iDELREFGh)h~P1Q}!Y(qhdT>0~=0omtLrkj4_ibMf% zfq&3VQ8;=hkySe@Usil;3J%s>fD2#@fiMH><8ZLFI)&^_J%CtH0y{-g_PMX6~-r3W*2|w+PIdgw9jjC4T2m;dzNJ6U0l8_0pshh7o zHeUs>5?hGEnLyo$v6`*%ZH`UAMxtW8@76&S3T`i;P$GBk4>a~)@s#2`julbZs#y|N zUyySkAuBOr-Kb(_C9mzglb7kkiEe1kK;{nrZhmE+hsS-*2fvaQYByG@R@p0WoRdUI zkI$kUYdS2?SYB7`15(yf-f)In-NWD??m-Am6m9$5aBH3P-ZwI*ArI3D#MK0`pl-*| z)bD1X<`Fr%8+fb>33s^wlh*WOZ0|G5-#CqSnM}w1^1CNYTfHF(41Csw=@0!kj(b%m znEXzI$`X(Bha7^<4Us*Q$Xr2B0fNh=n%UCIR7x*%@SGRS(#}+FuoEU-yN!4 z2s?^0)reOmK_)?u{7BXv=&{@?+TDrM+UBN_kb5OSN-ipgW{yGE>6mb%!OA065V;>X zb=U`I3jw29I(Vei{JFY6I1Y{5MlNy|Im#OAitoAn{{u~6DN6RptX$NHs=5^~Ce8z+ zof$_Fjzwl9s<^TT;FvrDc^Bm|Ik;EegZ^n3@-I~W!NwGJXJ9wU5*LX&g+G-|YxGbp zIS}f6gV5XFV5VKzuV@AnEMgaB;y&D+Bk8bXm-*<>-|XTx`c+~!mpMGuwueH;^HhA( zA}3U@;eV9cgsh7%4SlW@Qst#z%-4`iP*gXT55y)F%V@cE`N)T^H_Tl`9Sk~d^$6sK z5QJs9<4v++z_$0rM1|)D?N`72Sm5oM)Be}+p?WhGk87U@Y(5vk4+oG-w9eE{3Or!H zodFB}MP7%4Q=lO-&L|DbZACm3dYI$?jbAjnemkcjZoQo%QtCF_UvnAM6qM0;YPfUf z1cvJNA|Y)(B(`Tab!#+Q(_M4hUyIv>@T7mEwTWg_s+Guga>@>UFhj|S zN8I(a)O~x+SV@}{!sB8^+J0Uq)9Tx+-yCXrLv)rU<{9)O+qT^g7b47K%mvQOy&XI3 zaZ66O_w3oOMQfjAqH}Y?HNTt0X(v@okcKhM4$<9ADs|zwE^i~ncxR89UT?nc)tt@H z*k6AmeHYUp+K5@`+FjM{#wYM_X#?VD5aKIxShatu zB9zxfeUF!IB#j#Ho*aH`^a`@oE2G>cgiu--QBs2eFfD`bsq>(nkNB)1e!`hBet>%* z*KMc{^#K@#wW?7JDpW+m9NX^`x_~0%o)ij7_fR~1PemAby{^>$pEF8(C>o7XrXgjgT+1_;zc%80lA zTOA(>MP#$MhkYw-7>}31DnyCLism8(v1P=ISl9>}<^_a+Qg zS2AT;NZVKysyYNG&8rBrvaj#({D9ouT@v9wxUD$SviOn>(OIfk0H@N3s=O>;?hev9 z)_WhB>w~Ql%EuAn*f>X)HKgRU^}>0PY&DRFP%Lm>(oMN14{TnK-#C##d6V;VHsZ7_nC8CFPE=;MYac= zpk~U4M&he7_CsAX$i=t$FyW$59p(uEJR?SF#ydUJcph~lj0#t{)R=~H1ja}27=(_6 z7N7IA%jXCvu+r=J+1q4|T|Argr27Nmpvb`n6Y{x+JWr6ZH6A`w3@WKG?u^&KFE7J` zK5jI@*G2#ngRfQ=zl<1cv~j(S6lws#xy;obv=bj$nM8y3g;X%X)Kgel@$$ZILZNw4 zWd*hHC`4&eh8aniNQaZKN#Jj^F+594xq}I-2wsB4JjyV65aPO55TJX0)3}61Yr^J z^fXVi$`Imx{}6Rn-Viu8^qT2ga59-7&&3_WcyE|%F^m6Mm7|mqB`ChaFI-|_C3u<# zSEb=5c^Dap%x8PXx64g1h~QF~w-|6DA!p5u-pa7M6Lz;tfI5h83o>}e0ue+v_T~n3 zz#dYsio~^6L17!$KN9ZeV=8%75TXDjJ8EGc&!`T6pq-*Nd~Q+~c{~|DKI!vctq0D3 zi&0u~_C8zTSO z!2#T;QDUB58877U|1faL5lP*Ltm`BOmzPLAq#!X!LL4@l%K!|el_s~D#aCyx}3N~NIUSj za4jnq5at?I-3$hY)Lu{n>@6LS>EzG$NpIUfWnHQ9!fF5iC}{-oI$j6xG?it zS}?`UDBt?mgAZU<_vzfuO)m@&i~Z*oz`y!=!0wUyE;!vES>{QvfbT6M!`X_Dln+1R zcFRJB#AmO0XBxaBOh5ldhZbA2GyJpUMQswv-x_Obx*GbDn92N`bGT8l>mAq)j932{ z56n*+%c2hJSOq$WXeR=3O!^*2?$@<}UwMTpWNlnQ4de{u|3bYhCrqNxGl3^V^qFFm zq2Z(b_+DC}psQ9OF6PV6)hogPrV@aeXa2!)=Z!uGl~rja%-{7y(y6T~v||anvRRDJ z)hQR1iJGH}Q%bZVaY_Q36O6Tv3Z(e)dgBJbEvbrnNOc6a`>F^1r$Eu1wxa9Me<%5U zoSz0HP^_EprIuoP9SPgHbI)r41QHawdXUJR{7pnm7A#Uksg#a;lJKb6{Fze6S#CuQPNQ!@S`lER$Taa|Pa zU1@a#JVE0pCE__(2YBPEl<8TiSrGB3A%ivPiYVs?&TiiLi`YqatR=w~loKutwhIy` zK!QXuQ4_lCKC_PlHG^n%O5sUBl6=3ZL4{%*i{{;ZnssW~k!D@E`N*o6-XI;h0DVT-8jb ziVaDRF-(P+!Px@%NBb~8f;O#D~mAh%?10o=0hxzL!nb<8{t`3 zC4s5TAiE@{X2~j4^aJ`uTN`=(&53BRr2|}1qbzYb4jp~Ao8V~P<;GxbA^wWfb*3k~ zd`lfXKB0+rm>B%acpgk7r{NTi zTQ@ja@$&8SF&Bwn<&fYMf)3hCt_Vb5cO$5fXMQPUq$aj>o+HK-=3`8=b&tu2?q5ns z{ZS0PXiZZdsfyKjRef)wtbLn;UiMZ`- zRX4=Gbc{5MfQGFg1#LLDLc9O^T%f9Sa`DFSa+0I>qH4W!2 zqip8cphc(oDSL1t^a$H*BUeJ;%yZA?ee{kcmE^m33#dBWq%H;|fx)3hVwKCWMA$W+ zJ(%VK?YEK}ytxA8%-01m{INUOeFQ#4n}d!_YI=NdaAlwN4?RA$Y1TL5KGL~9!pKUO zpe;)}mAZb%EV$f)ZrC69UiyyjY)fesekj-6EeUbPpQB@-_R7yf?R4xLn!E8B9FgMs z5AtwZP@nKS9US%Z`>s#F-jtATLGrafSJ_?Xh^|T8E|>N0_bS~Is^atPLLB~x6|jSW zGTws)O(75|MH>4Svm^V-4o~>BAjn3sCEjeI)?*7mU4Wi>U@33I?mHV=zEMro<0To) zt91*u67X9jG*evi-qxSJU^OXnMRttAZ(of`IRK@jr=$jSiyc^9YU5V8K6>>#XdUlE zR#E*VNk}@S0f68Vn2I!`IWrMRxTi>tLhXH6Z^nzIT8V;r-M3N%;#4K=YC#WH&haZurwo5Olp=9r>V?)_uTZ9iZCF6m3u9+uElLPB@p; zdsmR~DEyeisO728i(>|I9zKsg`vIHu%$Br<)xqPl$qFK!cK6l&T2)bQaq~)7-ab$0 z51SO+AS`eEGJ(&XW#|vNk+BP{*u9QuP=qI>o18h{k8g_>r8I+R-i8RSVO3r`lM0Uu z?eH*M5%y7pfs2V&+ZVCC0px_xxQM6%+2nYLGgN{T^S(5xip z>c*UzlA3jWh&6F~UMFWW%_f^ts%nh-A7IJNSTzpFOwy}wllBBIS9gP9kTC3C?L{$K z3^U!IF)DPH@+ccQ1ZGzuI>#l`Yz2y@m4PJ-rqDF+b>~|7FK-P@fVasrnN+T#l?GC! zU!hU_mmr@Cd@f|`7(-4M=xBjeOSr201Z!(O#E$)3-*q#=>5Z;n*zDW^U`7$4aEWIL zMI(^DOT<+(%3Xo6A2T$eU|%B@qlT-}%@iV=iX(|Fl#$XA>cr5#9hvivT?}Q|s z&FdKxnlI9@I;(hFI2(jp1kh-8^&t!JHp1;+42sDUBNm5H_1N0PORw09veq{}{>sTz zN~m6{HlV>V^{&rEOcE-_kBG{-gc0Yq3h@kWDYch)PZ}obbpD7*Z3;*0s3OiKwP|$| zlVE(dbHxb@bZE>vRI_Ah9}?o)oQ=j4&T+Pp8FpRD+}c-GC}J^!Yw+>=lt~>7y5R8- zPpP25)-#dM&ztwSeredXA<}6h+Y!e6N=<;dF_IJj3W7P$;waM7;ODt3Wvw>jW78Z!4>((Q|hHMomyl0~^8Y7~7@`7%4SKk*UN zm{H9-93%E&Z=PBc4Q8^F7>-9L6$UqVY9g2*0p|N(oUmcq`f0;)o1?@F(8XuDaH0F{ zp_(a)Owor;A>5>J)v1lPW2SwPTyZ%kmcec7TNyZkvoA#$V$TO$VJGq2s|g@d@mRCy zr4u#FNP}p!Oxamc8PQ@}KN~65Wfdno{F}ud`g&Ip9U~Ip*r5EbwO2u@%jmGL!x?PE zIC*}E1@a^`@-~~%&k3~qytL1TO#4>+=&bO8iYf&jZ7)s$d^8w5X1COcrVzSxuR6G* zHTEND)nceX%o$&_zW)?Q8nyOE@-R_S4 z65Md^H%YeT%>;gH%;*o=4(zTFoS1wR(5n@fsTY^(f-2E(cn5)IW3dKeaTO&9BdvLQ zp)HPOrb3atY&m5Z)t9o&6sIKyI>%$KS~Kg57OUMy+CnmzwP;U;BZM*(WJ|lJVyxbQ z&Imj3cE_|!GV&KrOL-;5W&GWwkNFC32GWi6RU?51N%UTH-_zJUP4bXhkz=@e6=08CY#<~_TFpGHVci~Bc)A_0kneRX-Y(@c!1sK>V70QV8_L9qP zB_v|WjEjNK)2!?uZae=i*LMmn7L-PvH}v++2mktRfif)MF&`F^_8Y>(e8G$G<{<5% ziHze5)p9GzCVSL9adPqpV4v-Z9KR$J%NZx23y{%Yd#I-Br8I2iZH-)f*Z|aRcI1Vm zpR&)poEJ9>Zt-dOdl55n-#v}TEz^p zB&=OQs>QHO?BkaA-c(~CwpFVbBH;osfxoY!7H%}tz*9O>71=mm+a9SOw?E}uT?cTjR1DBP6}&b|4EdYlc3 ztaJgXogB>OFhHuLVM3E@;<~-%Ep1e8jrwt-Cx4bK3JxFh8po)(7M;XFCbZGsvYjzt zwU@#U!cBgnaUNQ^l1+g2w$%K+0ws488CqFRFWujjR@$~2aXlcSA1bCurm;~1!ZD7` zMm+rV4T(GPS1=}~sN$WEga0Oq)^jjc&H~$y+DV}nc+KCcbfq=f|3ostW>j@*Kg^4a z>#K%MO;7vpjshIt9F`39UmxXiO6y11fvKHN7p6kCCabjD4KANJ0jYSYNTz?!E)Cqa zm<0y72VAs}Q=}cP0gQMx#-X|Wr2hg$*I3ZDd4e27pQ|Q4?GRA;`5J_x4Y>v1k}P3+ zq5;8lIw>-B)LYuaG=M$ym4DJVe=BejMm~lq&!CF;UBp?{sNC!7w|0i?j_?K}4?YG`nj0??6Vaiv>Hh2j8h!0i!M##F;1`IJWGS;+p!X?@2^mKhFk z{psZr5gA`{0R9|@%*Ce3WnX0CiG;b3IDlb1m^H>kM2G+0 zaiv*}V~}D-t$=o6KMX}+<-Bi|;Ty=0qLPTz8|4?BBph8^n};zD*C|oh7z->ZWc*Q_ z?J|$62N8jQgcNHHnIjAU*YpcWXv4PjX-ls)07x<#MaDfyVX@_sTacK?p9WLPuq}dT zR+72;QY@hHm#SzmEstKtimj_Glc42t{HZ3Mdo6XpEPo^5?_MQV!$<1WE!$hp>+PA! z$@D5t^D(Go2JwquBel;#_Vu4jQwff>nlWY17%X1EUCGKw2J*gc`;>LuW7dT0OpYH$ z<%JA=gx?3w8|e*3K$#H>6a`7z*-1OkSME6QPrqjV7Zaym*@=>JTE}gG6`2n1GgMMIOwh$z2NZ4}!fodZ(2R$2#4RT{GTNRt!Lw&+)7j=9YaHi4)I3GlLh`IiAOSw*^E8Ztu1GnUd)g5D)B9AULedg zQ(~nGav*<-t=&xn0FazE(zhO1vy?ZArJKa(EUODcc~pxeL$Q27O}vW^{pQVJw1;y> zO+cHi5BS;~#&O>i9=YQ4XpBeq3+wMBBCy21FuLkHz8E5@TiOM{k(@6!&d1-G$M8VX zDE?eoB=*z1Q3oRxnDj)Q#`mguG)4?2RLy#!mq zztqqy<;#$G8#i3*DQH<47q@^$J9=wQATjoG-lwLK-@77`ZAKFf(;QflO2IoWIvZwf zd$ckyk;eS^>l5(S`J|`I4FWVqT)Hi#?Nb~}!FPw~^ZTDq&1LQ|4d`}rs?BKqZy$&= zII11@tZvlbeVQIQ%>&HY<-!{0g zgFR%%Q9ZPkyfwE?l*ZHuor4K$eg|(z`eJS_WOp_7XU^Nf9QsMvEA+kOX2_z5XSx8z z=nQcxDAinTB4IM}Vu12hec*a8CDMQ@`nbS^1HE8I%@rrTrWrT*-(GLvx`YUt(5C>x zzy$vftM*NHY~*A=7np?q>3W>G5f#g&^<6c6LY6uo?@=k^kOnV=f}iUZYofu#foTA9 zzk)9T9PSsZ4ANQ!MFBwDV`gfHU#qM0&im{P!gh-;kW~2vSEwY_YiJS&L8Oi)8M^(FY1nd&KK%MB6hEGj5}^ z!?P+{b&HOm$%V<4t`pX<_`apFXYue##azZ!0Bvv0$#%mD<)~M2>r-wZPu+CApZtxv zUjGLBP1S@y*oApXh_YE@J1T=~7}>5*5oKbqyH*d-Lr7($t7neUqCt6H03P}Aiu0NXQ-Fq zV0d~0=dUQau`94C19Shuo`j?A219d+?2&w%Thc2Xy+7M>8qC#OGW-v89X$IPldBCQ z9(Y`trB+Fc4sb%!!r`Oos1j<~f`8Za#N+v=dlJV;*~W(_6*edfc>=yiQiNxI(v%CPiig$h+JRmf**&GcYTU+>uFvNjgk0g_r#Yr`DLbjs7rhYTA8NNe^eqLb5 z-th>DyI^S5W=F=2;GQ=zF31F5@=68uJu$V}F@2EFPA%pOq}neLCDkxMWsvXPTZ}#P zHj#}-w6&hoqOJJ&D4eQ`j$dEciYIS@;*jG7Y`L8-*Ehg7>2boHE#~@D5x)s&sE7SC zX36RJDDOjK<@GMo?ZHi1fgpOmArqNopYVY|!UMe?eksTn^iy0l%B{Uuy=7n+*5qbV zMYY!%6d|2PKumZ13{#ne{-!#V&xkD>>{X3F16P(cC1J(9I2vG_O?Nc+6EkLWiK_`` zj)CRWOQz1|ds|xKD}E7Dv0lBZZ)3c$EA+ra zF0S|o6&oEec^*TEmXs}!C74`FjFd}@+1t!fwzd9?l|zKrbh#EWy$+?!H*2^<;>)ci z2|=3zUZJBiTyQ6nRu;Aqt=1X`riX?G0 zxt5(8?3Y9Gv6Q9%(L(HsL7}8jsJMp+=j~F2 zhWs>-@pOh09eLl1<*Cvg9-)@;^43blY8%ScJWQgBb*Bh9O}31x6X;8X;h059dR+@F zs@E>b)g1ZxS5?@NL%H5ibK?kICh{!sg5?{3|qBzp@&9p*#KgIDInHW)3X3F|2^TN|Dqsec&JMUh5=9Xt%Y zK3>&i@shIm1vDM(d-3?3ORVDdq$P8WOO){goO*uqSK9Zmtlz?h*yOqH{KY8~;+8+a zkxg0Zucq=IxXnPU465O{ZGeTJy`^2ZjT0-4z|!nF!xT;zK8YDx2hP5x0B8b8?@d-Wv(b9xK2JaD>on$x$Qn^0-T$t z{@K~v?bbd9f-#X3hCoSLqGa-r*UXPFjA3}+(Bq6t`Xy_YBUCPcC&D`3;fd>K1aaI5 zL=2WDJh2#{EohVAP{&B48f$!xW3_yY937oQ7g-Z+(L`@Jr4UquJBMIZF(@+|foK?~ zDaCh$23u4NxsN+(TiWTKX7Tr5*m5!l_Xmp(0BSw*8LptrvjZvlS zI&nWC<{EGt&l{Hd@{xka{dM&A_Th7pukzc%%M)()Gi4oVIZKbx#bQkuAqAV+!hvlC z9vWQk=csvj9}72wUIky}Aao_#>r0A8u&C;N|1TPqYFwQt5*l)siGQ2tp(zsQ@mCgf z=|q)laB_wmr<{zP{EfGY*+Ocrc)V%X8W>>w0-}C{k3pdT`FuvM&WwxagPcyJO;M`H zdbn1$n?I*K9HRRPJ^j)3nS~6O1T09n`b;+%0I9gT1|yw=Bg*k*J{S=a9+K{*M8VdI z#D>$qTRsSVg1(QmBr4a9(E?rr`>nsmKsu~djxgLr$m?H^ z&LLZbsejty@_}2%PPRQoxGDScksklKfZ?rl+PJ`hQ$G*H(ozqe*tV}Ew%_1BAMKJf zESS4pkISfQ>e-{1%(xvt(~?{;jV@(w69%UMD{Je8AATEuH>xB_Wuq4wR^325QK;9+ z%D!COD$-fb=aY8>HEOQ*HHb*nRLk%dWlvt;A~)|;@uW&fa3taweETFJxPph|anLKi^H+#a{2Fk+EoNlX zrYcdwbWzDwN6l#x`a-BmN=0s|5#!~Brtv0DU_28QSS+Tezp@c2vpMn!DGahy471VQ#59d&!rCID(_uzkMF z@jkSG5Qz#7V0GzVH1azWGQ358-N(;p8o%!2A;EBkaHU1C!On>6>%HDlo{1!AOepmJVCU9{EMmA& zB#>b41qSUcAYyN003#a)peIVbQAfB2q-kH!BV-?VX5%ttCBU8AzH+8-XWHO;m?u)nn|5+T%RPW3%w7Sa?fc+= zAAdl@@a|7&m8iVNw@2Tt8>~Dq*1|OwL-&yF*Px1xF*GY*ZSuJ>YFhdYIux1m z-pHGH#k21K%B_CmfNKVITH)_qRxF(PWRH|$TotIl9OL@$?QO0o7vc^pn0H7;-)y047FEz86pwug6`TwVCtsY&$Vm0MYU z52lZZOT9b>MqH@ip~kalv>du_%d04xx0<8D+uLAct1{C{wS6KSN;TPz#_|YmDuQ8G z=5Nw!Da7$IMa>TBFMGx|K6YRJ4|v&#g}=OiH89~so-e7Kh@*MdW$=O-`9~$%QCOg^ zM1xc;!tv1;aH=q9Oy($#f|uICoU^WTTLAUmJ965*1? z!T1zfgJJe@HejS>0HP@>w=?O}-CgvYYMcO`-JC$yrjtxczyPNY=8I3#9=MB)(-JBuw|iPHdocY9`Uy&dHT`G zHz;{Uw9HRrFV(id`A^evDF?C&5Z5{a3QdG>qY<#W4_$~&UeSYN2 znFEI3=RyHl(f$MCw~>z`kDvQYAD~yAh!NinSmK+vQSqk`s6+_4)k_l6RYA*SwiPX+ z|Cy#7e1c^vkWjs$VyC&!{tg3?{p`2`50kr-ZrkPyOgj9u*9=Fxlne(3c5*rrY?ZT# z3$fH$N}pC@@&)Z!I(PPej5IZ#+)@&i_Qa)&_o7pNXko+ye@W1q4t(EpHKwRI^=u=X z^#a1W6W4K0CsDdQSg#(36v|HJkW}cIDWG4|`g7JD6N^J?t@ZybEE`lyxY|m4nq(1N zQz&(@;ETK$jSf;F;|y)VAeZd_NxZLChf#=|4b;bFg|Lxd-E1$IOtaYz!HmzHtO%X3 zNhcpgD&GSrqeaew_*&)VTL=$}HS|h0fvnNgwa>Z=#z=jjP9rjDXAHa7xMM9Vo`Hlq zbBlD_?x0@}j53;HR3V-SqA+lfDwXh(2-<;!NCkc&G3(=XXPj-3N)znRh;fqbI>+hSV8MC$zaq#>V*hzgCkl_t+2>* z>JV@p2Ew-@Yv92QJJQ z1J$RZnM23mzOCc@9ArO#y`q+-)^bkOP|0 zow#0^DR{MTCHB>)9yJQy_T+-20^LFBE#FpBN#bpfoTB^N;SiLSAZIvrY)rA3^|m## zb*ZZIPqWXqZ2(chcmt(5&$(VV3g<8%+>$X#Az+n})(beMP8NG$`5p(8(pf+zfF%_T z)7z5a<+z3@Zc(ZI!`3%9k@KK!d!f2I>^J5H1)-i@-0BJcl1l}^!fLc3kat##Q!G6c z&sY4+h%mn{LSwO{zNN(bII|2)KGCJl5fR3vWz4G879fAH%+8Yl6D$h>@$5eV!W)mq zg$UW}#PQL4EfVs5ZSW@=FAxxUPekvhhijtjxP53a=R7dKtBe!{a?4^}lzIZ>IdyX5 zES~DPlDDQ51Ks=&da6=COv=riBAMt_w-hOn%DFJzC)n(ulI)sHxzT>`^w$eHUV;%f zMIkM4xF^McAn{55QNJW&%Fnv^2IC9pIo7(IppX$^Euy<|>J45t>rfyQ;|A1>DxHwH zWG+t|*p^FMZ&o!7`%3!RI?G=J*c^IZF}!fa8hq}a@~7zni*5F4%U=D@SmH?@SfJ(Z zK_px^*Ci5yPW}I7z;K+*zo@E*U9$fKCRn3W*vG9j3+2BEGV21Ir`!Dy{{M0xmF|RI zjfFJd!pO#EV9t-Nvn}LaaTcG|Zu;i%JTeXLW1?4)0G2TxV^PGs&J1icNLnwU*GBi8 zxwae{#x4;(_G~PnjI$FFdGM8hI9kQ)x*OsoA;3mo8%Vcpiz_2Qs zuSd0fFs3#OXcUzzh~NvADW^(2chUifa0Tk-Ng)0IFTVyWfZl4Po+Y`SHi7*<% z^@)$LVa>@K=|A6(NJxOb#h`4>l9vK8X0)8B>2H&@W$-dkuN1mmo6FQb-G(n zX1?ZKVs9b*t-vvWBBMFr*mMy3CG()6CSaqih|k3b%AsmGnSpELl_q(m9!Cbroi8lC znp$`7nLiFTBLYbCr-gdS>-!=lINT5019X!MI5JE2F;2Emez2bpM^fPv%?D}jm^(l! zV%iF9aI3{{coyI&A>XCmJ4XtiQl}^@4v&-!i8>8At;s93f5OB{X*Odkm?0g;hD@kv z>TZAfh5>_W8LUIDLaGu^1_KR2RD!-R#Qn^n!huXuA~TIZ9YpMmO(#cHdkm{nIG z+zhy|H}atDzo^{8Q4bC3$vD~US0st%m8RlLj^Abt12q@8h&}4>4apEZj(-ocf5YndEqQIp9_POZzX<+K3@4 z#jq)JrujJU{BE%fNIIVg_YoIk4qY;`l%{q00OU&t-I#m83LTf^@FSA4ZtPpta+cL5^7sW(hwqkdn}Zi&An%&s zsrq$cv|eOt(!(rz6jZV9uiL#EUn%SJSq2croEqTauTf#CvSUy*qfXJ|w6PN`OwdB= z2Q+e4lO%VQPbHQFG5_(ZgQ=oh3dA2j)KfE<7F@3RZH$(O^?)BM6D<`eh&0l_lE={8 zYUIC$pGjiX{CpA+)>U^hWcpV|2*V(bJVF$ip~jD3{5CI_3!4|Vo5OrU`coMT?6;vv z_2SLeDzHyXi0OFC?K`_$Usj8mh+08LYucXh7(P$OZ#)8DKa-SEHo~Wxk`qbeRQaqJ z@>nhTcpr5l(Rg>i8$q-~nMjgR$51}%Nl{QPjfDZW;zDqj4IkT_xk|DGHdByvX2v*1&&P#5F2hXg~7kPX1Pc4+1l6cm(JB|7f3xaP*88KPi(U=@A|H) z{i*)~)OO63;wdx;8k%7MY-Q?VTd!VfsoBK;R1=!C~$FuU8!Y; z{gM+`r*D*`mWLo~YsEbas&!}%R(p0G^{f4yEQNV<49Zw!NYD*KCxkjp_ z-FbHJ>o{%^0Qh026Ytc0&sc~7t%I??zFz$4C61X`d;4NkGrXKP1~ONOp$gd8(5mAd zsn?X<#$tW(7Ng!F4>L%JEd-cqO7)j_ewIs1g$OF>iHJZd4yc$9BoL{)l%QJK=Q9G4 z?rV&7knlcDzwwG?vIMDOL6OTT$qM4{ofw(GqszD^OZ;dSt7li}QoO5$=y`@TG3_~X zjHG*wBDc;QoGZa86p!w7Z-w)#VhSh=q>uheJJh%Nkv!>$+!kBzZ>6~kL4d60$e}5S z$*0@nF{Ia&mD=BL8R~7`Ch9sSbx}QxMN%CXPflc}iai#(u%T8%HayE7+7?mvPpYR1 zH_l-yib&feiX{JaWOM{C{02fb4oe91(a_`YFb)?;(Y}It>1GYd8_ul{Oa@z(!Z9{T z;xr^7xz{aSEKX^o^H(5Ph@e+WOi@jjzCEKmK8xA!gu_s!cMh5aGeW>*zejyc8{60T zx_YGyeO8^XUVK)Mu+@zlO`LV%yuBOXwtetcvQS%R9W}Bi^>5zp{0Np=TkO#OMZ<+4IBMVzWwBTu@6}nnnon7 zsDpgI*j)3UBwV1=)fi()M8&FN?(#i7S@&|FX->y6ESz!i2Pc)6-R17k%p_Z5K!5~U zg8Mw@zF1yZxufJxd9Y+DI6K8->$kGcu>sBojy(M$>_sm<5WyR|_h27=a---DM@($*udQ`jMsaW!cNwCF8IGlXMR>A;8AI(Z1ipy%+V z&&AUF+Jh)>By=#%NNLd0=HEmEXh#waWLgugvkStazd^K95SJnNz$3gUgo09h%yi8ikJOx`WbKz_e8|*ak1&9`<~xtKG5z_vJ-3H zAmvOsT*OTeb>q?gXakjKXUI_MR@o`xUAF&2s6o<;WGj^Eyhe*?UM(Q`P#6y674twd zsGdU+k~LDT)=^@K*PhS#ap7S`(Z71O%oA3|xW9pScF4#kwSsL|vMCztr(`l^r3(11 z6euX3hdv3=HBrLBz*C_Pzp}Q#DD^k>zbE^169!xfvxJ{k--Y?ro;49KgqhHncy~b) zX)fiVL0a}m&K=!jvM%_WSrpO|8rsKcy9W_O*yoBYtpw>?&%jhg2Ph=RP5bIDL1f|ci%A5XSU{@FegA7fi2N#|}( zT^N$QsFL9GhzUOO3HEj+tvGb4f>b{ZQ^Nygq`KEf^< zm#<(a)7Pl-4eG(|sH4hwIc*l9u;5P0$rC((fl1++2>*7mOlf;mwu|mU&>pVvv7iYh z%-L%?obHv*?)!h{dAMnA&3VI{hbcb&n z`Fh(mtU02oPKfQM*hy@O{c6U__=+lq?+0=3b~iP{oY|V~u9q!td(xxXYn>~h$vwmO zp%rqNm=v^B1>O)9!Kpn3@fDiD-V$xc9^AAm$ zQe!PDoO{nR7SjRsmDAtJp@1S=>a)DOVqIERYsx=(0@3~6F=0svzX$}DL|_dsp^w*z z&366fJ|Gz07Upx%^vknV zYj5C3fu9mw9pY$2BrHXL=~(ZAecy7!Llb?ML1xFqmE7q?7FE|Hme@6Im0)gXG{GF` ztV3weK4NpX6e1f8*y4yNK;gb$PDmFtO@J0sz+Zxknwk&+}x6=1X_8$i2#| zzO_{Cubof%)uq&uBVZ4zTU?GSmUCF}hd=Zdv*1s@N`fubb5N9%u=5Ih&yGDl27CZ# z^Wfiujj&1SNfKgoUEc3xAE5F%l=rJWs+&|-x%`ZP)E2ToM zaYX&9rrv{mNOnn&G_9XIW4CcF`3%wtevmUs=Z_4+hPIJPoAZW!3<(|g}=LhDeYtz=t~Yd;sF-kG#)Z>sKh^`#nswXzklr>w)8$hl=7Cs5*wn5ajpKT z$Riq4y{D%Gmg9AQ94uaB>7Djc%jIfWh&c^J8>YSioNTvx-FA@O)bx?2L)&#vx=Nex z$TD*`Xn&l<3($!$D8D=U85lU35hG#e+-YQVsw-HfyTKPTS(k>R*FN!jQ0jA?j<-W2 zkP9#E^giiuos8U=O2?GYlE#XBK~r-TWY^XDy)`Bxuz^NSJs;sH?OS73+*4D_=$NkK zXmcP`>Yj3~uD5RdUo@0aEQh?$5CzcKCbWWv>b$WS*i)R`qOl59zh)ry7M;cX0{`7& zQ(|3v-T*lVcZ=|Io77<#-~=*c<-txDZ6m_!{hbE@in-H>B~wt7sUUCh4cJQ)5NZ-C z$J>H~Hl)8|i%-ANUbR(W;Wg`utCE_e3~uvtt&@8)g7w2iVhc%JNgP7-L+?N%Y;5`_ z-BXGW;Nz?Gc~&hbm~iUZ-ep8hWM+7xs~eELuY9%*U}nxLuEa@>>pCqgFhc9tQWdA$ z3&o^n{ly40(#BjG`5bBbDXj`i@z`Tk;3k)BI#Y2{5dfh8m*@$&OZQLBbStcqq za%(+%M+HZp!ka0Ul_(;*>;3x*ez2S({Pq$HH#p$L3XysFcd*O$2&>qHn~XHQ_X}EA z>`NXt4bp3~XSu>=hr`^Kb{fugG_F^l1)~c`fW39?6d>=Rb75zggz=2|96gU$Ojw#n z`k&L<$14aA5(HK9OAKyT#g;pS&PI0vZkoRTU2(Ga#NNaqY@TE~c?5gx_VJBcg$0+o zKo{;IODJaMZ<${O_txv{hV;tBtyACpx^1w7qFBbwQp3XvQ?tcM{?2@sX50==S)&q{noK*s^E=gY$fpMN>*aROCDi( z%V;ZICAk4E>|7WwT$*YZT4K$q@S^96H2E6H` z?o_GrV@sDIJyst1@O!75C#JQ~&c3q!dA6qvSHRo6Ba~E@Q;A%>24xVfGs>4+Ba%vX z`Vl3{2B*d7K{S8_qvgMqdm)%#Bwab&yp7y?S%(70#1BVdo?PNjKHFf;pS}J zg#;pb@v5W_34>PT#R^TNsfEKqL_#Mon55Cb1yd0%=PCU9{fXxLXDjaRZPh7KiePdB zBAkD%gOif`GOAS}fKwTCOSVY%XAej*Z;|W&M$Itg!5orFD#*6}>Pwhok?C65l{HyR z8la?Tj+<2^VhpCFp6{O#w3S^4as?W7@3yhWU$8cmN2L*_yB5d1()?Qxtg__0K0EN0 z1D($a*5YqgD%I_c|A@Mpkgch!y)-cah6e(e$;9# z!xTgdVJS%*v1P8-7NurVK0Va+86bv5GFVe@S1vkmxDN`ay980g>!dd4b*!3=(?Oeu zm>nP%=;Sjb)rSFf-NtF|yR>(SR6;Nlj9(5R z=Tb{H{Y&QnQ`T1lDCWA0jw zI|LNN#BJyy>2*wD<2d#0$NccBM>9b1&e_9n5Y>j&*&I518r-UwlbW5IyQ0iuGW$uv zgkI!1Eq9P}eWDnrYngun|82fQzHW9%9e(xsmQn5)+g zgKB8}?iwL)S0qM)SCaOf{!#TJ7@z6!WS@g(P)YWwy31NN0E0J}ZTruNzVKblHK8JV z6R{i0<)Qi(agLzNZtOQecB706umbe|Um+wP;_C7#4->QOe{WMRdIKvNS6gk{(l*_w zoWlK&b5xq~0_>C5pra>>G5JVLNa@17K9J)}JB^ivV^JhD09x##716UIB-rwO{Kwkj z#CuL_t4B#^;BoNl_>lW7yGAibLeu5*wM*AGVl?7dBR291_9M9}0{Q+5?OctrW(f!Q z_s*W1T#H>3lKua;?Cx5Wn1G-h48S`2$&GUY0@}X*WLl!`MdhC#L*K(0p^oDI*a&u@ z8v%b#N)7Rk>a|vv46M6g`m}q}GAV}!7Q&F%_oKl(auR>dc9N+6WfZGc08q!Ap>9qh zg9r^-C7VD)03qKlTJgQ+he!Q26bh{JRw6Tqmi3gBOk(nfH%Lz9^oj+oMLcvrBai3E z)5kW#zHgr!04wRA30q|RUM)s{hnI!|uV|!h4X`_OS1v;7!Tg>x;iBC)fpA#Qx*@>Q z18(f9;L{g-r<3>x9imMXYIeCerYS@nZ2vGDztUO_hM{q^+-&pKZ?NDOE>#d!)*Fm3>s}mo;f!ITLBtZo)13T5}0GI5;o2`g{}z+pb|X1Lirc z-q=s<;O1UIo-(g9AYfMeL#yk7GR9ac5MRT)&F-NtmbmA$;}%43fE;SUzGu%=704mr z8a`GYrg)UJAF#c?r>3nS)8?(vPvRD-^t1ABDV-?FFwfjl~_ zrb&!O&E&5$v$sBgDWe=eEQ{Xs&l+G&S)-Hoa6W>(4Z_z+Q#ZxVTnTn1+PuevG5}0H z4(NYY)Gb|JqD4gu4OG+A&mQALr+6)F;JQ+KlY~rANuQOim6cR_TZPPqC6$J(qSctA zJ_gwNPR15GRklY&gYgl;b>JkO_wz`z2Bj^6ZLA`4ebB`!vQ)yCip`%mCaAM+R|=njGy1%~YY&^+zU4{+O$)rNb0^5ayC0=dFn^f&*qBV3 z#(__*Oy2i0+%1DRS%Q4rnxfVjuznL(tL#AKfZZ#iK@a?mhykz_Hd5n`1vZr2!QP5n zO7ojjogRTGHy)-@;; z7V53E&-D!GmML8U*#>Q^Ql*T2P1-56yhpIbuT4(0rWJ+?4EEUB>uXa@6S9>SRt8oQ zaW4x0B9~z*82CuP&Wt;01C+lka#f2!@7B(V@Wu|-d&cGNa1C3~|5!V!H8~0`r+D?) z_gC~tV=1$-zb@8W)z%d&FjAHlYuTqq4;zC57j1Caa=_ z2r>4*hzS_U6tjb?27r8-=xcRxy8|<78PXvEQm%eEw2VkueA+P@#Utszc(G!G*0M?= zK1V^XsNE)UVt4hKz#jI!aoK5t13V+5}*3gljkQO9kBMN>K1QUyq*?2 z0bOV-k^?0>D2SRV$oKGKy7*;F2H`d>=S8jEgeu`z73wgvOI7029Oe91Gat%=6q5D8 zOe}P@@`!z1!1c8ncK~hU1ek?xt)R`bqPyNtpBxE-ZElkpZ-7DfTbU!#Wtd;xHTjV~ z!x4O@yvLw0xc`)#WM*kz=5NA)#YwucnV(gr3s5|`om5?@leXP6XPoedAdkS%-iw{> zim2rYs-P}%k;f~1aDtaESmV<{L`o-ZOp z3*8;P26gEhmD~Q9R6nDuF&2eX%GwgaEiD3)c>``V_3rXT2}LmbOZ#m6m71PQ;fL1> z5O!nsn(${Vq36v-alR8`vr5ac=dpT_0dZ#c@g=;pRL#i%; zhiT`Kk~mHz_pJSZV_^|+%sd9p*2iIal8$*eVH9K6=E)?q_s^olgSPu6tAqp5?aI(< zL%}JxtG2?cqlRg}IJk&i@TF-_E3n-ZSjlZcCVKNi5sM3zrqOLXZ}i)}UCm1bVc*q6 zL06Dh6oIhF-3`L+ZrC~YjChMA82?~`UW2<(yZb-POF4(5N_GGd+{Wp7{Ns2(Ef0=7 z>(1CrS|2z{o_{c(>cR=hFllT(YOk@7?x`$I)2RX8r*_{jqU?I3n?l1ug+?jIP?s>F z0YIzki(+Y@j`ThNZSZ1j< z*G5)|m6`xDq>&v91RGi;=(gHAq--ecBMg}lm z0zPT%cJPAzX$<%M>-0NVam9qMJSIhG?p!eKzFi%9kIuh=T$Bc|`?R<&9Q^>t%&1um zU6CdE*fK(4?o&u0%o?YmEDN%z>)<^Ewg^W9nGPJiROS`69L zZv8;sY{Y5L*r!xlDI4z(4DaXZoM4RVF#q*Pu|$`FSxNmLALjrA!OIHrnpSYC+Sm8D zieHx*5R;1#@fokjvURklQ}=hh$ERU zeLroBzbgAT>+a|N6;v%S|2Rbt-zN;gaF@2mB$-E)bL}n=*-o!80&w*&Wkz`TWO=T; zt-F_&aPWr!$xQA61t|S_u$G@x@Bd*5S7Z=)COj6hgwQy3*Wb3WqwG4jW2C@>Z`D3$ z%{x8gMmMF3KTNjdqONu{NS#Ae;?EihHJTFUJg)cCDvDUc$Z6)?xFXtA*_2(NP96qvGP#l@5K$!s;e{BuH4_Atv+^t3ad zFf2Jnq*(RvZR#uIt;F##i@chOMR5Ja2y=?ERR%UY}q;nqPI?u|^+H|VxC8mPdr<~2w z#?~hw&)H?lkuJYEhf1~`V6ywPOY$3F+G28UA9yPq7B5*U1iNx8;TqTHcKR6>oGhxuJKMp2kz^pbw^XlXjElgS2^ z+g<*GIJ*UB@Mff9jW&8%jz3CeX3EzxQhsKFkC!(?T%ROLb6Zpn?qeyw3RwNCL1Hl; z>AOt$_iCLTXk%Z%{&}}A_U;bKs&aEPK^Q^g`6Hbl_&U#HY6ca0(BTK#+?FnH->D@| zP6?VrZRkTBj;A}Al@c)ybkrB0nEE#t zEo5d_Zln9Ux0f%7%J%qDkUO#iqmU4E5G^IdI7(N$gpc6)quiCf#FkS6NL#*%wa$S@ z4H=ym#F8Is{_Gfn!LAFFs2WTYoeUAl|Bkjd`^?r4%#s?bnm)Q31}k7B4-ySZAGt;sW<$l*6~m)%b3( zNUy|*vQsC>c_n8&Pwt+m`ZFvrXh7L?zh>xyvMC=My-60x9y{2cG+Qbs+0>Q$4U+-$ zQSC7*HTvwaGce^}gXJB)BVeyI6l<5*~n4y_93*a2y?;wuuA9 zU;#sz91kqgC+$U`^U9y`&Q%m0kH^UFfui0{l1Hb8fN1v3sv>Urln{OBsjyoOgreT> zLI{mmZGay4vVEs9c8P)s20N?bzsc`V<0q#et+x@5jH6cV-Wg)QiY8#XdHn|6f{*% zm>~rjb-kbqBNJLQKmmu2o^OB~Z=eW(V)PrYYPOXgwhCD$+MR8oJ9q+t9K@blq0&q= ziWmFi#jJ6Fzt9XEcBEav8HNubZk$HARy_=^)sAwit(vn^wMEH&r!H|<0+`MSBWb3% zQyO^60V^T_`9k@;YhBI+e5}v`;gHWQZ3}DR0@@DeVBH7g0o{8Hp}-=;lr$kheDRXy z&A>T(S^qPaN`)cq{SpN`I+svk!?eK6QD!U#Kl4$$ti>El{D5eXMNZgA1w=#dylcJ; zlNna53@$ zKa&}l;%8;*2!i&37?}?04)IMslTMldaM~b$(6V4vpv>b7X_U+xeT8|s9L{nK{~KFZ z;VN+>J>cvQ{-et=K61hJXlC%PwZ&7(q1mXERrqez10aZK*(OzmtU9JIR6TSbcf*dq zJ{C)rpa_t`@;zPBx#Tm@%QBRGNRvnF4TQ`?mrZChP!{m)%0>Qx0#Ze??t}&|YIvC# z=z`ZY*;7~cwimZ~<)WHZ6nrBgs~rNm=zFJZg4)_wvu!|+#^v!Yk!miUyYrcvIo15* zPv4R&sV_w_ide^#`EQOBDg~87Hjsk_oenmPSqj$SbW6)d^qcTruwYj&?9jo+2fe1= zhhtE$$nkHFBxX0-qBoZS24QA+03HKX(iJO%Cr@2ynRIB7a~^>^qjY;-G(L6bIcD&N zvW)6e=)@ayxFtcY=~3vJ(#TR4Iqe>W?1efkOqlc(`Y~MY8O@*O0L6}Q*o?`?MKc^< zPXIyid0HMUE}W6LDQq!Am#R#>Gfx_7O>H1H(4I?%)aYSZpW}I5&`U z;wG>irm5)I^v8{cVb%jdO=>^EFCmPCijFeo)53nDQr}*`tWChG(g^EhmMKapg-+d6 zyP6^3tbVwj?8%NzH1)N_mYUnRz;Rxq41{JzDmqjFW=!c>oVhjt>P)2fvF z-3U$z>gs|P`U!oC;^b9!^~4)kqm14{azD+kqwpvVi=m z`kv0Ii9N!6RF6gP(P0wkM>h1wPp@MW1ZwYDuSLH85X@i+@%4{Q4eAA8Goe?UUWY@g zMX#PSM{3hk58a-^>e!8PIcJfKqj0!mre>A$(tP9>Bxmn*p#?`mnd2^jkh$@t@I6rx zj1E$oO4SEb<`OX4_!Cr)$cwE?8iQueI8c>cqT;zz$^Rrs-72_k7YDq=GVsU6aBh~go>qy<1qxYe)y8~OVS{WW62>T#?3ep5#gYa}CbbsMBjAyZ`A za$eNWv}Z=){6I-^7;`i2b}X$!H73W!rpaXXH{KtTKb0+158TAtyU_?JC=XHnD-!bF zsGk@z#kGSYuOBF2givpZWDf0CK=OMKKk{A_6?zp2wkBZlG%rhvV%rhFra3VbFKG>% zUXLsi$J~Qgoqw5pmvhG2>Hh#)+A7Vr8CV@MNL#Sc+x!#K3b5zrCEx;lLj*#-_%uM$ z;*v5JvSs{}x>%5|&Y9g}yDwV_ODH!A5-=M8xhs$!E|X^~V)IX^)FmHy@kNc(l7Dn) zg57rqUAU_-*6LV@Biec@+|l!J8bcDg>!WmbP z9A9D(%nT5=D*{wR)vut*i9!S46WSuUM1h_H$txfe{+nOCz)sW2)cIlXX6rLecDkV# zF6^dcXmuslx3e=*fbW^y;G=_}#kX~2_MQTH0CI{pqkancfv7p6j@=!gU6|bxQ73Ca zs)fOO6j|cp0i4eTtr&8M7#k>zOigZh*LYg7aCpFEYFh1Y1V170@{Dx^LS)gumxFjS z6}rfnTqzOL*Cl<(YjmMmZrWm>^t^|`(!pc5br6E{jdPR$LrzFT!K(P=WyGe_kRxYejlK|=&J3lwuj5$I8I zjgP>rhSPk8G=-=Za`@mqb%l2FL|52#rvi|a-kQ5VNlo_B0^a&8&y7e+OCL{! znl7lJ<+aa7o#sE$QqYRk&OVdtS`@CK2ouHIdy%Wc7RBU~=BKjkv1N(ygQeKd%SN zsDKXv?rHNmGDNL)3{5y@WF{-%ud9RP)0c7cpYH2-cw97#_hhB z9ZI2hPSBm)a)4?GVwyO@W!GoR-ti;_Fy}us2$;KKu33#sDG?b+|_C5Y-Bb;4js#4cY9MLM<&KCsiR?Rww z5D^(hPTu$gf6*bVukF6a3KoD}m-sm@)J%3@rnx9yGe&0gZz2qy z?|kwL4p@tTX@Jj^xPdqM;W+w(k^xSfXoomEpgXKnnUF-}#LlH?lmY-P^ZqJ^x5V`K1VQ^VrR&fR^YQ0Q;J~aSm5BpF` zEJI`<{87lI*CISX^T*H88Mq_IJkNZS1Up9S%(S( zO3RErhiOJgOnin$1017h-3%)SDd6$oangX8bQ;O|Cw;kr8M;_Fui_lnD1PtnHF!L) zZyBER@n7>gsx)_Dc$QZ!68${56sp=DRB61dUcy2U+Nd`2^m^dyF03i8cq(ZMxl zf14!|-qdI&&|E<2^vQY}8{*7#G+x8btVq#7CjHRC6J^ha!Senc%NcXDk}$c>y9G%LoO}->m#7w0^|tcXI-)Ori7S`H(gr<| zGUDX~9O#Ql=)5zPjEnj}&_wwxeCG`z(6CW!H+4hE6hF&PwpSr!q=P^xK+gL=00GrG zHwFoM-nHP(jw~$u4|Xq7Ra=uXZUzB$Aq3RENF&e=dUQ+I8qD@THf=1ed2tB+JDvYt z-gK}-aekpaD+L`}l(BDQ(SpLq4g5?jwMSE;cD9WaxT{T;mFVraI!eBEa8Sn2AP@Eu zs4)uXHto`w>*4&X%lDG1@GVL$L(=dnB=Z7Gzk;fyzSm+Jz@ThUpH9O(5xckOe#??K zzhgz1&zCmUe(49Dx`s)*eWmk1dy#?l_zN2{QVxJ11H?9ooUYd1S-{F69z7~7^N+sk_wB6`_k> z1SCKNUxg%=$Ayzh5;7akK&2Ia@WFdH$ryiBtpJbP@`!Oa{^P)}XH}-rgh@jce|O>@ zRS&>{rP@YdxSr4JTUEs*1bSGOyiEB{M_3r``VDcyBlrCU0-~!Vljq&1dJL z{cndeWf=cVQc6cR`jb1gnI7rib2wht{1|wR9itKwIcj86og!1Pk@8pt+xf`&P>|@N z;u!!;Sf^Tis=+Oy8Dk9;Vy)pf2XVCTZdC<(73AtJ$hl#b6b zEQavn+WZ#`qrnVu=AWc*N=lr$np|0zrMc*qdsoAIn6PuU+Cx_a>{TWtNC7ZL0K#6y z`{PjB4srub;^aWJ6?G{LsxMmu%iD={k{^w`(nzke58;PRRsOh z9Kx|M)ROTZCtnqV$A5pWO{i_uEc6>!dm-|%cdM3KMn*iR+O0uudaGBOH zWRR++!&=l=<89;af&g9+N9@?4JpSZzVb-l!yG~s!8nlzBISv&fJOQsniq^MyF%a`I z)SeJ1M=HBkr|*%A=o-?wHq{RXBFspP@@MI(NS`Ww6)UIvd(4kz{BSCbUGEH~oTH71obblaV8!rB z8NdO1#m0%chH<|SDR_1lR`bs}UeolwarC8DpR<`P4jTFl?0j;eH0zg_6i@_~UgD~QgQ%f+3igXV zz(_QjSO(i`^i!@11Ao0;9s**IS4~`xvnoBOpx-`0j>M1NPD%Y``8HgGq=@nvZKB6D z&G_OA9n5ebteMjDw!PvTZ{t5 zdU%|xrirhKgCA5%ekPr16n={3vmTyp*Vdxy*y&hhE;*Lp4~RBqW)=z zStFsc7c)7G5^0fQ6t=#@+#+#c$ojQD^2^hZuv;a3@EXA-fU?4Ah_DDtF5TGR?bT)P zo$m`weZ=p?<=8AISN*$*5X|Pc4D=Az`y)hV_~zof0;QJ9XpM*UYs$nn#BEB29bW9R z^QTwd*-M_}!Dz|x=3bY7*;sTLrP_>cw=6l)d*F-sia9aDU)UhOkvP=a$i^Xfl+pCX)bIrZH#{ z_-QcN1nR`)iC3;AZ$(vM=Sn%Y=S6+}eCb2+(&^M zXI(uVg0j;;m4^SnMaXM_pMM+TOdqv`1v4X!McEvb>ge zqDK63!upFG)ztR-ohbE#gp5vAP3F+;K5ZNn?@G=DI<^vH%zvY&zcx49mDzdR_n`u0EO-i<)qn6+?7~?fr(cp131$r&gnZJzaLl1>gtCb-XUTpRPHf zIaK}D5T3S_2O`6H-wFC=^;8+#RFLNWJsm>m0l51XUgypPinei;XWXK)<-hDMDp#3bVKWA+5+0?{Z8f~odXpahJ1hZY|z*T$`APd2}EgV-C zYILjCPLgjJlV!F=LK*0c z�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 aKQI^2BafjL=J&wiK{MAn(t~Ea>$~eZPglVJ literal 0 HcmV?d00001 diff --git a/MikroMaster/20260525/20260525024002-Config.rsc b/MikroMaster/20260525/20260525024002-Config.rsc new file mode 100644 index 0000000..72ee5a7 --- /dev/null +++ b/MikroMaster/20260525/20260525024002-Config.rsc @@ -0,0 +1,3459 @@ +# 2026-05-25 02:40:02 by RouterOS 7.23beta5 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add mtu=1598 name=Bridge-LAN port-cost-mode=short protocol-mode=stp +/interface ethernet +set [ find default-name=ether1 ] comment="WAN - Unet" name="ether1 - Unet" +set [ find default-name=ether2 ] comment=LAN-2 +set [ find default-name=ether3 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-3 +set [ find default-name=ether4 ] comment=LAN-4 +set [ find default-name=ether5 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-5 \ + loop-protect=on poe-out=off rx-flow-control=auto tx-flow-control=auto +/interface l2tp-server +add comment=Server disabled=yes name=l2tp-in1 user=vados +/interface l2tp-client +add comment="Starless 2 MikroSPb" connect-to=176.53.203.171 name=l2tp-EoIP \ + user=vados +add allow=mschap2 allow-fast-path=yes comment=Starless connect-to=\ + vpn.starless.ru max-mru=1280 name=l2tp-vpn use-ipsec=yes use-peer-dns=yes \ + user=vados +/interface wireless +# managed by CAPsMAN +# channel: 2442/20-Ce/gn(18dBm), SSID: vados, local forwarding +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +# managed by CAPsMAN +# channel: 5260/20-Ceee/ac/DP(18dBm), SSID: vados5g, local forwarding +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add disabled=yes listen-port=39736 mtu=1280 name=AWG +add listen-port=13231 mtu=1280 name=WG +/interface list +add name=WAN +add name=LAN +/interface wireless security-profiles +set [ find default=yes ] supplicant-identity=MikroTik +/ip dhcp-server option +add code=12 name=HostName +add code=119 force=yes name=domain-search-list value="0x03'WORKGROUP'0x00" +/ip dhcp-server option sets +add name=HP1505n options=HostName +add name=StartLife1 options=HostName +add name=amsterDev options=HostName +add name=MiTV options=HostName +add name=miller options=HostName +add name=amster options=HostName +add name=garage options=HostName +add name=domain-search-set options=domain-search-list +add name=VADOS-LEN options=HostName +add name=VADOS-NUC options=HostName +add name=MikroNUC options=HostName +add name=master options=HostName +add name=MikroYellow options=HostName +add name="=\"Client ID\"" options=HostName +/ip dns forwarders +add dns-servers=1.1.1.1,1.0.0.1 name=blsp.at verify-doh-cert=no +add comment=Kra dns-servers=1.0.0.1,1.1.1.1 name=slon2.to verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=slon3.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=slon3.cc verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2web.at verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2best.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=psrms.is verify-doh-cert=no +/ip ipsec proposal +set [ find default=yes ] disabled=yes +/ip pool +add name=dhcp ranges=10.30.30.83-10.30.30.254 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set interface=Bridge-LAN lease-time=10m \ + name=masterDHCP server-address=10.30.30.81 +/ip smb users +set [ find default=yes ] disabled=yes +add disabled=yes name=vados +/ipv6 dhcp-server +add address-pool=vadosV6 disabled=yes interface=Bridge-LAN name=masterIPV6 \ + prefix-pool=vados use-reconfigure=yes +/ppp profile +set *FFFFFFFE use-upnp=no +/routing bgp template +set default disabled=no output.network=bgp-networks +/routing table +add disabled=no fib name=To-VPN +/system logging action +add email-start-tls=yes email-to=vados@vados.ru name=email target=email +/system script +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.86.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.86.pub\";\ + \n\r\ + \n#:local Script AM-setup\ + \n;\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/659/af48ca83\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 18.05.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ + openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add comment=Unet interface="ether1 - Unet" list=WAN +add interface=ether2 list=LAN +add interface=ether3 list=LAN +add interface=ether4 list=LAN +add interface=ether5 list=LAN +add interface=wlan1 list=LAN +add interface=wlan2 list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0 client-allowed-address=::/0 endpoint-address=\ + 89.110.101.17 endpoint-port=29185 interface=WG name=MikroVados \ + persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +add allowed-address=0.0.0.0/0 client-allowed-address=10.9.0.2/24 disabled=yes \ + endpoint-address=89.110.101.17 endpoint-port=51820 interface=AWG name=\ + Amnezia-wg persistent-keepalive=21s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2/24 interface=WG network=10.8.0.0 +add address=10.9.0.2/24 disabled=yes interface=AWG network=10.9.0.0 +/ip dhcp-client +add interface="ether1 - Unet" name=client1 +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 verify-doh-cert=yes +/ip dns static +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.33 name=oxidized.vados.ru type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" name=dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" name=dns.quad9.net \ + type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=NUC disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.21.9.225 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.161.94 comment=lostfilm.tv list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=31.13.70.36 comment=facebook.com list=RKN-dnsLookup +add address=31.13.70.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=74.125.131.91 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.136 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.93 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.190 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.163.190 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.91 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.136 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.222.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.104 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.99 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=142.251.1.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-list=WAN protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface-list=WAN protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-NTP +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + disabled=yes dst-address-list=Trusted-NTP dst-port=123 \ + out-interface-list=WAN protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 protocol=udp \ + src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server dst-port=13231 out-interface="ether1 - Unet" \ + protocol=udp +add action=accept chain=output dst-address-list=VPN-Server dst-port=29185 \ + out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +/ip firewall mangle +add action=mark-connection chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-connection-mark=VPN_No_FastTrack src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address-list=RKN-dnsLookup new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ + src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address-list=!Local-Net new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ + VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ + 10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" src-address=10.30.30.0/24 +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" dst-port=2377 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ + routing-table=main scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add interface="ether1 - Unet" type=external +add disabled=yes forced-ip=89.110.101.17 interface=WG type=external +/ipv6 dhcp-client +add add-default-route=yes allow-reconfigure=yes custom-duid=\ + 00030001050000000000 custom-iana-id=0 custom-iapd-id=0 \ + default-route-tables=main:1 disabled=yes interface=WG pool-name=vados \ + pool-prefix-length=128 request=address,prefix use-interface-duid=yes \ + use-peer-dns=no +/ipv6 dhcp-server binding +add disabled=yes duid=0x000010001000000000 iaid=1 prefix-pool=vados server=\ + masterIPV6 +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ + y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ + http-codes="" test-script="" type=simple up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + port=443 test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=yes \ + down-script="" host=8.8.8.8 http-codes="" test-script="" type=simple \ + up-script="" +add comment="doh-fallback, doh-url=https://dns.google/dns-query, doh-cert=GTS \ + Root R1, notify, name=Google-DOH IPv4" disabled=yes down-script="" host=\ + 8.8.4.4 http-codes="" test-script="" type=simple up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" test-script="" type=simple up-script="" +add comment="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ + -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ + test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" test-script="" type=simple \ + up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260525/20260525024002-Diff-Config.rsc b/MikroMaster/history/20260525/20260525024002-Diff-Config.rsc new file mode 100644 index 0000000..621c7a3 --- /dev/null +++ b/MikroMaster/history/20260525/20260525024002-Diff-Config.rsc @@ -0,0 +1,10 @@ +2449,2452c2449,2452 +< add allowed-address=0.0.0.0/0 client-allowed-address=::/0 endpoint-address=\ +< 89.110.101.17 endpoint-port=29185 interface=WG name=MikroVados \ +< persistent-keepalive=25s public-key=\ +< "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +--- +> add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 \ +> endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ +> MikroVados persistent-keepalive=25s public-key=\ +> "zuRsO+dL/j6awaBWZ/NgnHR+bCNUjRWbaHFpdzkNnw4=" -- 2.52.0