From 95a5862ed53a7d57efee1b35c2cd9fec479f660a Mon Sep 17 00:00:00 2001 From: vados-dev Date: Wed, 3 Jun 2026 10:00:31 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 03 10:00:31. --- .../20260603/20260603100002-Binary.backup | Bin 0 -> 255156 bytes .../20260603/20260603100002-Config.rsc | 3419 +++++++++++++++++ .../20260603/20260603100002-Diff-Config.rsc | 22 + 3 files changed, 3441 insertions(+) create mode 100644 MikroMaster/20260603/20260603100002-Binary.backup create mode 100644 MikroMaster/20260603/20260603100002-Config.rsc create mode 100644 MikroMaster/history/20260603/20260603100002-Diff-Config.rsc diff --git a/MikroMaster/20260603/20260603100002-Binary.backup b/MikroMaster/20260603/20260603100002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..d2c0bc8ce1e6e4a3fe77666cd9457271fa4a2a4a GIT binary patch literal 255156 zcmV+aKLEh*sF8EDz$I2n@q>#bdID_zfmS;E zo?WMy7sl8UrWYWN~qk?R8T_k_(<{j!B=rveLl?tu= zRYy_CJfG?soUV9VV{`))-oODcvi~Uw*1t=~%huUAI&u*=0cP`o2bqoO?wXlqIp6R^ zUG`TC;->)$fhxk;Xnj_W|J`_C!98qpha5JQ>+h%TVr@J`SQbkZr73hYFvE8-w6>fp z5TN_|0rBt0=^)@;U_-n47E6P~Pk+^w#H?-ng4mX=M)ec17Hn+ zP8KhBj(NMv(wZlNa{&R3YOKvhJ;cYGNlm*%+XEoQEOjG1cfvVY;rI_6uvoHD%mn>m zh?IcBU}+Wg8s~vJ+Yd5nGG!x#P<`7`qd9%dOFY{#JSU8GZjb}PBq_fe`K*Z?Ba37C zL=?VE)Y*5zN0p$YewZc}3O=q(EwyGNioR%_{fMqIKYG&Sx>QHi~S5qxqMQ-ncswgr{(R(wP zk-zmA$zqJm!fp|W{b-BIEu&mYN4P-87lII{jSnTUzD-F5_k9P3wsm4*Puva{>MT

1f&<(p@|a#x4FLm*zl0e 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
kSV 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 z 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 z%0D=_D%b{8IaQH-dh=i?ffZj~ryIXZwpY*OGzSK9Pp^nZxktO-S;o~{nVE=BK}Xg| zM->?iY&_7P6t-}PbQc3^Il!kh@d$lQkm=f&(Y7|Nma*s8Caf12_XQPnwUk+yWVJ~% zLdN)Rqlk~>7P$$LR_bIou=!&Jt{Qm$;LTHH-T7ZgL_AL9xN9_No1e5;0i)c?in_(S znO$y))6|crzXXU!{@9w19xF*IKrWojg|E`Rz@*Y!_?=~nNamjx7!c|iMEB2KefE|> ze0!}>N*2X9md{vx#@_L9jD_X8G9cKogkT^F--bsRz;YU+fadE>4SF?$z{+*pwZ{*5 z_kX=C9Moa^ut>E3(64T+XQg6%Y>lhpM(4Fpu-VF4pBtMs)S*89PGaz|jEiA9wzdq- zSgw*?i-N0jNLP;FTAa@$MmMLR^gm!9YE=q( z`ezoNakL~B%^fkMAe_RWWcUn&H-%rw)FE8K+@F;I+ra-9ctzzecYWIe z(YGTiSkUsl;-R8;6^MQw;L-y*JM#2WvjQbi;%zKURJZZ3?$4C{BUnD7QMBVnRdKxNdom>J z)$N}n)QRmhZ%O5s;7na*0o&HHsPQ^zRn-S0;-3GUg_1mj!&QF)c8?Dpk!J^k#b*>L zO2b_~kDd}z_BsG%=YvnlGEp$(>247Q%u>8(ihN%#04!dvO&3ATv8u5ztSJT!1JIkY zz3`8&e=fO<&RW%V_E(bNPNWS0+)z}g!|KY%UXe<35`2+a>V^~TR4q+d%An$Cyf9h* zuox>#M~H1;C*Aq}NStRrXo5P6Q#ph453E8Zw6r`TT&z&cYY*#c%g+l|8u8tvVTj7c z0h6H)!BM%@XlFvF;hyIiM1*`lrJLUTB`>m``cQ@$Qs>EnH@~&&dt6`huP+7)*FHu1 zjB}xs9g$o5dsbs}xS8sm+3Zpk zsx7LFe3p3p1|VMoBztWw?2vzZ9WBTKJU(i%9TG|aLwnyq-F=qqfniOHri9S+O*TR* z5a@h<8(&pyGsh9|%g>6onZP~d)E5P5uPYG*<36;(M?ioM5){5V0=>dfx%%B`%Q1(^ zqA*}`ySqXXy#bEfNtA8XEokb@>c>mlj26<4`WeVm-YsaU5r@0AjvO~0&&7BN=zmSJ zBvDQK_;6Wg@~gaMZ43lj7FrVsd%|El4|G>Uk%ZkwwfA`}EmvPjq6Q7ZENa{Pq+lV@ zS4l(-pVt8$91keAWJACto_kH;bAU_e6TsNEJ|dE_eJHAs40S%*d}wg%0hQ+{-L0R$ zr$@Y47HA_)a%lkZ$800RgY|$uPjlWc3UadyPeoWA0l>tKto@&(hjDuFfeE0URfs(d z?I?$<`U;95QR%)zLP!z_tb+>i3uLo&&SmE8YXtai7?LXAg#T5Pz- zC?2?ccfiu;wHNII3u9y$KZncaJQZre*3E4Mt)PVFUQ+`gW@kW?R|jR$Aso5X>KWo0 zm3vXHB0D7h9?M{!UQ>yfHI5V~M#OXM3`tTa}u3nIsggsf+4d=e7? zb4^JsGDV=b3W0Hc)ZRQ8!cV2>$3DWy{%Aae;^Gc?T?nrG_Tuwo@Um!72l=f^adrkJ z9v@Tk-1vFAQg-08?m&G%9t9R-J?I--c6e!n|z>d705ba-X zKmakd%m744(2rB@Pi02nE7>3L-|P;N_pyb~{eJaBQ*=g|2uj zn$Qy;&=cMfF8MYo<{wmW;V-7TPEPVm&?~Eb1WZPehEdrnI9fnS&Lo5$KZ-M*y3;h} zEuF1Kn(pCpoW{3+&6mzqJt6{CaCPYSq|4naYE)ta-R}mx`Mq-H&c@ehx+e^kYgy(| zL-ZF#*uW0hT7Ht_MO+Icpr)rc*4CS*-Rj|cpL^(aci|~SFF;h@UTqE{wTFq!v*+$L zs()90TKgiMaKN@V_uR&RqBKms6GMkAUvgugcIRk!cT@w`=8X5C_Xeu&*?alYDv*9T zK$9Qpd7Zy}p!UrMYm=Q0)0|$Hl|WZ9K<5?&%GWNPf7Z7JxfI?R3qD1$5-^;UTHO<6 zksQ865jw<& zVI(xAW!}dj5d^-PXp!kPcBnL(_+8Dlfz1@ZNrjWbv&zyq-r!rSeQ75RdyBW^qwrdOQ+K@}?L zB7w6Q!l&?5ew>@X@5q31&WKYr$`&@&Ho{TM#Hw3WW#*U=WI$o-LQ>sHOe-;p0l^_E=-Sc$$QZu zY<6htMo|YDhtAuxXVu%&mr!;+txdi)lYX3kORe@m& zZE@axrPeW7kGYsST~a9>!ld*2VLEGdW^q)@T}478#5{6ZePNBH#Wzo&_}UA=0ks}ghHvNlK`Dl~3 z)Cf3!g2(a86K>%g%VGgmC+RkBCJ1PmLKXP;uY_e{A77l?OqMNXcRLXvZXL7~qJS6d zn!B}MZ&_suaw@?ADBr3ROqARL6phf`RzsSn1lF9lp}fC8@6^m0sv%ydq9i8f1p16m zaJoYYxCyE#%D(8n5Mto$C8vq2FhWfDCE4{7mN^F%*AU`Dd+t$GGXYT4f~_UZYTq&t z|HViIbHOSCY`O6jM|Et&6fckI?f~sjTc_6b#Sk*2#cE0&F|I))MD~EuSlX61Hhor5 zm>DD{??W~w*WJ{P1VjaCw_5UVg%sogxlQhK=hQsa-yqu+vB9^2ZD5ogiByAJJ`)5M z`FTOj)JKDQa+nmE+zGe`^YQz-{*Zi8kXy0jF(RN@F2ss?E6Z3U%>^-x9!0CjIyY1* zeMYJ%84yi2`7oUwA_yv{Z|1-|!uY^belI$NikFu;SX7KqXl=}#IZyou#V#T*GVGh} znnBAtjoNFK>19>>cd?o~(U15|KgyM=ZgaDG@aQ;P0ZP~LPOqORKHKt2z)9USYh?kn zIW!oL@XI@_6ExTcFOvx$=3@K9Te#2Q=UE8k(zuP91FAj0Yc2Rr%B;{k>R%DoGHwhT z5DlzzL=xU1Mf!|7dgX~>Y33w5Ry2irGpLo=<$n*;lqjJGQ#jOpwjzYVJsRc6-ne_w zW5;=@OSDt4YfU8MXPM_+jw<~lm&WlMs<>B&6+r!0mfQEYgFfsaPL68=;r{Z!{i*xs zB>2tNGbh7|`XdXyC+ANgg2v=i(9~La52+!Sb~BK9`P*&5c2ElK#%jhN7xDcN;vxn*j}LLa76tfxv=)e z56Y>1J-m=q%$4hsW>o>TpNf>vP-M>*2%2*~mi2@-2vGANs z-c@D)bLi!;L=d_09KQxC1=*JmKl`V^Wd#dd?)RXazulC0xwb}X=$A?F+F1jRqRMxD zZ7X@oTIVO_oJxWNc7~a>Mc#hOqYWzclbxrEOQ9PKk@LPa*jTN37x@PXy<&;cs=ix$ z())Fa;Yf=&3t%V$W|~p~h8+WK`32P1rwKLd;AL_0fDR?Jq$Q@1tNbiXWH+l{r}9d6x&4sv6I_9KQlm*Pdz-RINc z{dQO;f|y>R80YrJ-$Z3=kkL$1> zTy`!(5hipLLl}}Rilln5OfM&)OAIpZ((}N23>t-s+shD(b&b!(J6GW@pw<|SxLO=Hc zXdDmCf(fHsFv9a!fj8M!2Fay0-?9(Jn7-XB=q5R6gO$SS78A>EoA421d)7h=Bo28M zxbPuir;o0W2er-?AZ9lNaoN@V!ZY${KjT)$>7Tihnb5N^pL}ED-CA@v_CDQx^IgZu zC>Rt%?Ee_G`828rz9Wd4R z6CjI4OT%a)OS^*g(-y6n{Y`h8cy6|-(F2vmHCt3)BBS@1R2(|Ivx=lKxp0{`qmbOjgUf18qGSalUmtaIMfYdgx#LkH!y16SF+R>Z zp#fxz|Ht~-ePDKFlJ?phHl`I+Jm;ZSKv<}RFjF7xUK>tp;1(f0BMD8h4PfN{_O7x) zl};I~*fCFcISd``os#Ps$?SD2dK|&1H~d?{F|75X*i*}9yj(En>tg3 zTP($qZb^< zBts52S;6`YZ>J}%4DDF~^st{vA$9gg%<+RR#@ICCtL|!WRdK;?Id@nywOH*AWNrTZ zY5)*(@m($O?nE}`(Us&l7Wbt^QRZKi)1}M`>w5Nevi%nsKMpa|0Wq0CO(DX7lmnz^ z?$NP_&$0Bg2V|Vnx~+#BEtNPUoBf)D?28CzLOInDy>pO3wgYF&Yo=h6^uML&7lXz} zGX9VZPIsomzha2%MwKpLXz}Rwri~R> z(Xw@iVlni$EYlKT@Jay1`Ff8k7p0#~v9!@z=wZqPrws`-aocn#UW^fn;13HWA3lpU zW-?y$1Q+EbB`#&pdIMvkPaDx)gf+WlSNAs%Za*muqPiQZ)vvl$z~KhWVA{r6gO~@T zotMzlLvV`-OK0(8lDdF#kC6P$&yj)676*U>0pl>5Zy|iX_&1`}VYT#VV>h3^Ez%oX z&-XqV0WwRrmz2T>wbns+Pact|5^$QHWXOD>)dtluK`s?ruN4PUUwJ%`@}FcUw#2XE zF_~fxJ&mC0RzmDlF)zrbVRFyeK|*Aj6OW}5t~iCze+yBc9=?dLi!|l3Q2eDm@Z0JM zz&_Ww19Y%UDqcRdcg&cLPS5!e`HaPDuGv`Vy zYESt^{$9L8+J#a23~c)?oiq@8Yn{o!_*FgsF;1-z8OXzcJ8EAqOf?LwPg07C;DTq! zX+DMT`hECYFX0%1La(@Fe7)Z8ku;j8WknPQ*Ael~Zy`$%Z5^&02ikgQ+pa;~l33ZY z48~TE`;H{yt`SEm+EjXWonHJ}qs9WLWKC$WRT_F?4`x7=*teuEo}8H`xi59x+QGrU z=5^?}hej)DRqp&ccsr0o{JlckPZ&~OF323Pdmymm?FA1|5cEm~lqe&$*M=d0=xU$R!> zmIB8F2LeW>L|7F1mF7`hb}l|omaE=@Z7pmf99NL)$CAL%^dUl9EmHFSV7&u_2X@go z77)k@4F=+bK>wkgF)ufUE>RIQywdz5r!A52sg=a)CJe3EY24R|Q(i8EYf3)@3l(Eh9v1nK2!17bC zN`Bu~vYMeh>V)D=WOgvT9 zexpkz@dS%7>U|rIs-cG~Cn_H=N5+|B(1{`vwnZc1m3FxYs+QaeWr z@@uP%ZYhJgsO#P-N(F7)K+|<>A-YYe1jH*u%;y7Z>kQ8Vb8Z)!Dp(D8MLR;}h^j#x z*DNF5pR+PN8v}N=CB~r1tnKaPN(jvx*`y%En$_FO%PH!ha;zXSkTjpeqwUzjWqyhg zjnSlTna%3N3uPzzhWpUw59o*d?n~=dQq4NxPEmxjlZc>y@4Y=W*Hf?{Ps}H_fJ&)4 zY2q3;J}uJD1UPu+Xtjf>hIgCbfpndgN*EzFJH82g>CdqQT%PSh;ceoN0?y$pJn#-v z94VOo@2MHto%ftm zSPUC;HCPg|^jNMU3&@|JPj;b2IUcnKK1H<1700H2Q)j*=jIJ1al>W9V2{3v^wi?yv zPj^(YlQmg28p%S@m<6Stz^K)Nj)yzW!-~1ln1mlSFp~3FKqaWAKaIXT{2Z5etFl5= z_Ac;ufIOQYQ2GUglmXM0pGFzC@he4p*AG=w*t)21+$B z%xCLqXtMK-t{Y(DS>!4^l0lv?A@*{m``9i?Veus>kEb0&8g?*e7Xt6UGbz3JQTW6q*`3r=glqV9u+Er{91#^j3Vcw4XXllBqm zB^%~F{7RY_#GV|Rk9JLu7Ej^Gw&>#=K5j_-5gBFZMR*5yaQekrH6-&D6QX&iiV50K zlEVN@OC`!8vk(hg5(q!6hUY4Ul;|B(8>XkOIf{IhN^h|ckY7lO-t>A4{y1Y7tUCIR z5(dUJ}SA6>HL zV2z%9v6`{9yCRtj*>L>f2e{(zhcfmVt9C!xM7#qv1-fwly$CXVymk?gL59T?z#^Mt zW;&1&(&aZCGBqgyM1NlVH+ySjNfl>exrTH?;v1|w`zWTw-m#J7GG~Echa|4$4?`O4 z9oZa8HHc8c_V#A(T2Fw5o}@_F&JG4N!5Iv5c}yP7GVKk49HIr9B%8-w-8in#H{g6a z7MP_|dRB9Y<3ZXP*vdlo#icc84BTZbkT>dZPW~mCW7Exj>zI~Cn=O5WZoTri7g-C7 zJY*gI_i4O(nZOb*xvy!m3|R4pO{vdLYTqCi@4-`NPGk=pQYwZ;`hlK9t4D7a$7_Jm z1>0pIF?G-c*!7i~;cy4{K&FXz=AX;FFd|;1_pRhVf)?m_VtXxFBTcc_hIA`}GQg7J zc^z84`erttM9`JLzuw2?Iit1~2RPbZ$^n617c+7U*|Mi8lU5^MMpfP2@j#>jWToKf5T3d$MiO=~mb(2C+M#GIt`(7BB!4ow_pw z;6(ZT`rEMba$PRJPJa$=Qa}y53b7UH_te zupH&38{C2TL!h80W@K1i=4RX6uq|*q`owY}39?8do5|ZnF-gm7C!-~by`ODt3ZatO zTh@MrY>gPgaHA|jgw+MU<1!n~Pm0>tnx8vhowoq|A0L2fu)SlK>il;W>D}wYE)#AaZ6- zm3O$O$0?}r2DSZh*0BL;<@W;bXQvgwQ@4n}1G+YW_^k ztoP;-A-V-)6-I}|r$>NZO=Z|ju$-x^=0eHyMQ%RKAGG}zQqcrptcW_(a^ zJP2TqTUKy%@M{2TO0U$(4<>M;?+r}c?I--9iIz4vhPibOSL=ZORfT|3m^pHKBeXpwkV{Q6RBcK z6o~Xa7_cSl^CVQ@ak7oUzaz~xU+MCaSz2Bc&DrF<8`nPq!=%GB`~U(=z3JyBp3I_M zl(tCoV;7i9wv->5I-wlryHF~SfogN3H-i^`?k%0jzcp>wY~OE9GuP%$ntQNw(V-V> z(XVq~0QxJdDfcn+paXG`juF*>#9%Bb4#058ySO>4>fi8g@<;|gyh{1-(l63I3sG^juw0iP9PVc!-(Ew4X2%UB0sVV zwSD%xhCxRJ5zw-!LSLZOJTA-9<)5JhI@KOFg0*#yuVUgSf!pL`!m&veKqR)YiYJa! zBy_+_t+h%MS2p=Cm-ce)A#;+NPG)eOs-tDt8Ro<*D!}fvP4Hsj+o&Hqz51FS+2o+n zUldMwy22x9${jTBIK0xVTxD)hE;c~&@P|O8xGG8ZfNTlsWWE3KzyX&dR`lY6$|1ea zl~WjYL^uo%+ShkZDFLie=Htk2_?91QnmxU39OrU&-j}G~Num?jaV;AV4ehcW|b?FPn-?YXY6s z_1zP(40*uBM-C?S(2=|?1CFVX}CxtU0Q z;g1j#d|Prb9x{AuZjD!&6fC7cuH{wq9YMcD>oGzir{H)zh3lf7jAQrk$S}?GH^j>v zfao?W@LI8V zlBL3XGtpAAx!T1t6*n`h$8(%Z%&t^=Ub2w+?8Dh}OOB8PGJS5pR|_=`@1;l8?B7VK zL}$5HUc#B(Rq-k9?lrB`gRPe%sTQt&QIQ5V*Ysq&&}@qyOVF5*VK^EAo|{{I;s;8r z?t$g{O2NfY-Ck!WZHR66?b$?wO7kRyPPQ8Qh}%HU91eDh&cE&Om>KTXWBtglTEg`d z0>#`ez^j3D!A>mjRt>v`Yj7i=GPTBX+1pvA^g&uIA)Ajr?`@aaM1#;c6>VUsnHZk+|2X{2>V1weg(l-GB}+FJCystCsf%K4p|mWku|Wbt=f1PR60aPLUSQlHt>97H%HQvhJ5qk) znHpzQf`YhB93k6sY1cqfyBW~==}xwVn56p1Ex_Li)TaM73VMTOxzKm z9P^cK&m7Y;bN@$FJ;EmcCrnN@nRGFjAkwdH4}6WpF3RknEDS1|zS4=Ms9fM(H^=QBx z$=V6;|MAW9w7bUf!nL>|nv3b`61~P0@3|0Qq7_sIvj5t$7>H}oA21eq8LolsAJKg- zmBI6NYn&5nvCI8w67Y3!4PQ;*|y(YHRc%t$;EQFgsK#f-r6_87z6cvBj~aD}0Lo%Zm2|53=B zp#giAaW=j?Z$%F!3RNpn-o72TEqJbOZmlIDrt*utx@?47Jk`t@ zIxEA>EBeB@RkJOwV1ibU@R{MhxP84qsLRAI@Q-kIVvb@TvonC+QB}SXCzunhOLj5t zvAz3X(t2Dbm~;($g^Xb^zLF?i%xa)0N_XkbRCa{|kzC#n#vfy(U#R8BePXn%$H%mH zPFN{m;nF$)7ZNxhBIJgSY~xK@!)X+WTD3t&#q$~JV?71QP!ujj+_2YQk*1uQ z>ghWd{F*7hk&6cS7FdsOyu#i5sM!z~vw1LOW=D^b;zf#Ee-C1gWQuP*a8N7D;6nP=TD z94ugD4Le@va6yp-!Y4fxR*&ghLlsi><-KdK#@H&!rN>}r$RAf5#ArJyX}a_e~wiN$-F_`$ma!`f=ogiJh|9cxT9v1&b@P0zHbxPlvs6_b8SNAPc(&1fPH3O8<+|Qo>of!;EX^gu z>N!^Uhwu9!2D(0T4Dh91IRHLM|8@&A9ge0H+OVN!RnxfNZL3B{X$U&6OP<7fivuH_ zf^b^_cM+ZXQ|*X@q`(7LWLCOxwDjB1<;sdCyAl)$>?#NBp|Ry*nelis!V;@|r$P1_ z$JYW(i*#I6@QiItPC%wvc4yR&1A8g*RhgVfcEo4%%8`8YEUFh^q!$z68?+Vao%VE_bR{HX^j&$ohV zzK#qh`Y|+uR6pwR@kbJx|5(=vX^cEPtXc@eROr8ZZzHRM&$)I7E0fk%YQ(vE zkD7N@fv8y2)3{<5HO&&;6K8kcCeT>wJ+9L~7^DdBTM91F07P4T-dDE>RS>YhfjGJx zz=55mvS-+l9gqc~pBD4t=0qCvot#q>3}C%+kmPNJ^@QbEnaGnM2pz6R3TE3XqU3~C zjoa>CG2z)-W%%I>sALqU%}0>|gtA?-@!Cn%FzPJ$x;jZ$9Rlx=hx6+=(iE4W>nvGG zj@Tp`$H-@I6}O+X3*eKEeR9v!pbeSscdBOG>vJk@qY6Sm_CEoU!$+Kz6_JFZ98(et zsThwq7qW7Sckt$bBh`6` zN|JV<`v-IkmT(6u?jfh0tSMbVXSx?OSYZ#sJX#{=v;2={BN}d2a_B~5l-Yqx%sWy= zY8J7SZIg0+Rx$361TTFNA|R2Mm#K*%XsSW_xckQ4GloQ}`-hfqoVMoYS+dkqEMvMf z(W;E$iUFC%-FGpsx0WZPLY02@DXzC?ttfoy>op_~2U`IYzc#^p1n;QJRSA4VR?^8xgau%`E8xDcl3S4xA&z z1%?doReI>3r=5JF=?OhZ2FZu2TB^zce457_EIa$1O9+;WEe}K52cn=;_`LzzHh+b0w&4W0zDjnEpeydUEvD1E z@JZXXR+fobzP=-3zj!{ERd5$ zRA7nDS9w8Hd=^u2QL_s)*b>wEJjqm7#uOc$C?kp9XJ5DN&VH6#V^^X5_Q5St!=Ewo znUMU&t*&8|OCRH?-b3xG$?!SyT*tG}(w?VVD#i+J=pA-R5`Br+xDN4d#_NwZ6y^F%fs0$7R-WPvt$96f_w zWZV?5QYGKZC3@tGHm1+)g=_PX5=p5$6;u8#$Eg52i1u+8jTMMqN$z5=%@C&`)>7*% zgP$NgM!gmw;Yf|T-%^2YMKqH!2fGWngsp!ytTsF?0b{)D16Kz_dSwA-vUEW>novg~ zJP^3yQ>`vH&B&I$&R{NiT(kSRXOm(H|nkYV89tSCwe)(XtJPEhpd zRsjLT>Zc%A%{|nw7scuMbG&=7M0V9R{?iqGv82e`k_%@XmooEmOdGa6f3J#6qgEAi zBX7uF=V9S$V%e!~X0*BaeEcH*LB_YV&@Wlm(4UA;o*q`RZa+FcFuOj0SdXH;w+Gw%zTPp9bWsCSu;Hf#%3oD;FjK8OS z(y>O=Mdw8Zhq^n?ab&tdZ^E3qf%BwGr|gU-=?_&fJC0oSYWpSi*^(ZD_$NExLK?G9 zlES08Jz2?$zBK3QGv5Iuz{r=<<4>>MdC8*!)}TOs8u1s#!F{RTPadu#-@vZPd!dnsfk*E{)62DEX7I;hITw>1d0m`9evO;J8B6i+Q#=LBx2@J?F+gE`W{Ab zzQJ8JEl~;@HhbPO-u{>N{qXN;9^(i4h)N6Q0lGV2w3-$B1DaL++<#z-#{>AOYaONK z$fRZWS2KdNcz(V=cy;1MMdA#5UGIXI&f=C=WmP5S+LmNA>@+`J9Cnun6p8Acsmc4h zUglqd+`*gs--yyZ+?ArI^EwKiRGsATi#(;2jt#GQXa^Yx(^hkegL!#iWz5lwT6(xl zkpTX)7tQ+r!qOV%A=W<^J3nA~+eofqU)=qr7k+*ta)1w#r%s@_rlowD6ln*EoVTN| z4t2SmFZ5I?8*XFQg{tQ}-gK?+YwWz>!(%nclXr1ebOp`BWJOh_P?@G_Z@kCZT9L)@{OP(4W)o6%}VN=W*B_qAG zmSxWJnwbQlOsui+$XcTl2{A_Q#c0vG|GvJ=tLWZq=|7_;7R-tAKDwT=mt;j!4GCx% z(LJL!chc2EB`!N5DsqT$RyRu0enAhYc-`6pi(mUwHPGE#jlGaqm8``I*J~Z_scdzZ zJJqasfL{Ix98K78aZ~pY$ZTG_bo4z-Rr(JDMvcS0189$+F4;fKNyJ zqJHPUBKXtVWW>B{QwJ^9qgbVX2K!$B*c`SV7r~& ztt`BJQusj6CT`?CDFtaelL&~rYw|uGCci~|gpHygx+?F%I8B#_P(S%@_tY62YSJ$c z*MImym4xzo!0&L&3hVF7`Mis`jqRvC_5+`|54>#=QUo~n*hFbTmapkR;Tf(PG>Q_>2;XQ$QiGtMIl)eCs-a1VrkY1$EVHn;uk4dhRH6%!5@^x1Mc}%k_T*b5 zP1%z9nV3CHBkjko)D5-ngHLgD)XHkiCzO0WBgY8T<)anH`Aje2_IoVKn z&WoTgt7rmHN7pgq_Z80#TxPcLp?q-f&CRtH&Rx`JF@b(Kxvd_mj`y?!jewn>nOI7% zAv0-;Dc&K-FBZ8dHoJQX`1p~99($9Y29jZhJ>B=wjn9zr9*p?l8gOQDzx?L_ZE7l1 z>xLWFHOaq605+wRlg1GVMyChFMB!;N#kiU^%V2lnw@~_h-KWPyFv@}B03_QoN& zE@*q}j~gnD5V!qwW*$`~zJ z$7<(OtIyTLO5&)Z?|zs%Mzw&b5T=(y_4Ex{SWsJ}^(yS-a%Q<@7(Z7e5alQR=-26x zjE4r>h$P0i@sjXor+|T0#pEbA8_f1F9w@*jgdA)&;`2AzOMrkv4LpZ@(A!e^vNNg} zn<=@J5y=5Jar=@h{#*a(qKIJ1(rilc^5wxti?X9YB7^L{%weT~9Q^E4lGG8H$6(#> zmx}0Mbrl7Sx6OF1Z{EHDlM{wVXLQbfkC3=qPptU@yqb=R1_@CE2j1jXl8pEB+rn$% z5%m0>><~gPv=(Ul+kZ=mDM>dXT>DRYuvUc%TmL5ADZ^zLU1?+*`J!!k$L>>7>X@Np zPJtl=ziKkTM;pT|T6lg<3cgRqPmAtG%=#?Zc1?mTCl`;ti+0DBSih2D#(o5C zvEVW%=dD4K4q*$~6NZgbfyi$kx{OS_YB4A41l+Jk#KzM$k==%fmRE`BZepSmPcuQ|Js!53iUv>wbIeF&H`#A8# zD-@w2VPA&b9|m$G4S)}&ZC6hlm2Hu4+~F!d3uUzR*!ao^^~bnc!?1tu^9e_x0UI%M zkDGH|EQC1}ZFZ?GPzg~*05bFH94P+WA~cmg&og#bBVVP)Z5^NOHFo3jsKTsJZ0d(w#Edur!wST6i-iD*`b*|2ZnSJGDjM&wY4i-c9?d;HshaJ78OlZGS;bupm;yom@r??``Q;K$~GE-rN=RES62>NGi}`ta1cKyZZ| zlH6UqoLp?F%Lgl4PMbnl$shjqU|c%#bgEw|~Au`(x?^%1#ms988PaA5|u8 zqkqe2G*;G~x8?Whkk~!UO+Qj?cD;%@f|BASY?JbwlRMe%A45mVDBSIvL~BiNM(u>1 zb4b;(6A*h3VbHI?6U0#uQRBXompMlDMI0roX#1-`CUW9A*g7gbGTjQ6j3(0@!Payd zx-C8n8FHE)xp1XWrpzhQY3UKyAhH=>MrsGR~2SSn8+oZz=MLH9C56jYQ|IhzI;gsFBfzxu^e zub{9f85MroVU>gEiad1uDf{Eyz)at^5o_VLWp<&Y^j}U~TO4z!47@U-Oq-4XZ{MIP zAdI;-(5v;5r)FwPZU9f^K~-2j`JrzL))N6EvY*?u0DgYIO7415n%F?lnd%$G5orIq z#&F^H?gPaDi@goBTR78I z)lSDo)yo|Nkot>jkRk=u9CPLFSbu50N&<7P9`NHwqO03TbWtv)O(2n&jtVyc+secN zy3l6wibeB1dYIOU06*8Kzgo%U3j_Mrz$T5Sky~#SwcPmdO}2bFU2P35cD?VBpIj3>O8on`TjSRDZ#-Eb$<_Tnidu#8!_0MxtC=Y`qZP z5L8SovYgup=>NEPSezPfgM*I2B_CTDhEc0*!0kURDLqvO01P-#fwVh2`5uDiLly1v zuH>LksVQd&5=9Gdp!HI=k2srm5nk|dvNgV{l4rM~tX{pZ_YrZJxfk*DUdq*F@pSIG z?T~@9V}+oV?iWCuU5P!;$&~@ARSoiU2TRz&-}GxRy)ci!UAZ3qwx$G_>)5 zk*Vx>+G~F}-B<1A!~*Q^3Gtb}TiD4fw$C;8EEFsEfR&s_kyeCk6e{cQ$kh8DyZqK+ zPzIakU%!Y@=D5D3aL%>I7lwFd^y)*lzjji#>y{vqEs42l<~E@H5#v z)GE7@mdGbq=$|_h6r8f8G&e6UZ-$u;c#Ii8)*8w-rvPRU4s{}ZuTorKox}-=2hZxk zc_!sxL-tStAUW}P7`~n#WOth*>JSz$kZ36{mOw~z$jRHYyuAsV9n;^!C;jCa>cDpI zzS0@~<~q4htbZ?5m`Sc~iG)+6|c~&}_@(=<4rTsm2Ll8xn?!DExM8-8Gi~q;PIkYIjGoWZf5(0s#UTOT-ZMa1Gi+)j z;lgq>!odLcAS(-~bVDx$)xTxGtf%)PVI9cq3iC@_5H&|ISsB=%sxm_uepQ-)jY3|t zt|Vn-3&3U1X_JR0@891})Bsr}Xk|elDc6qz?|YkL{?FjtT%>f>YKqT+V>w0sZz3EwGI4!rZ3gH(7cAe~ zyd9ZT&2a=;I{r~Y)17-#z`J%UgLO5lkBJwN<4|(dMLXIRR%2d#xb%w);S*lDK4p; z3HGmWc|T3y2&A7AuMJy=3vmf^y*!!`ZFJ5fCXXqhzeC)huhp!Ffa=BIYB<$9C<)h2 z+PSj^C;kw;-oNjkt=4vg+z0fck-1OH*}Dd{{vd0av>DzZb0h%UGesC40-qm_ z^HB6L+-=o?0pH#(#Ex3_TQG5P#@X5;P>H1d5|Tt@dD%7q^r4_IzQIqM(>Tv)qeyQy zwM|$T((Hm_p1c6ut7w*1682)vv4YR}Ch=P+@;gW@UG9~|=h@5H`V*-`NJu~R)-l1= zshjYgvMZ%jenC9mN8hpcLz}oGS&2e|q1Y)~x^~Ndc}mzdYX;ytm?RrU!WTaHWz>w( z@DtqX`(K}{i|Y>58E1$i&TdBrj{XOn{aZ3gJW5C{D1yHJh>C^2O#WcycEj1n{az3l z>z0wB^6;_l(3`8*QMBh4X%{&HVqZN?Q~jrq_e3cUgEyr=1>{oI%!x_94DMJ#z~zDH zz^d&+`4x?Mg*PaFxu_F9E6r)5bjUQx`$+W5bwDh@QTa`)eI5~YrO0GY$cwH0vPM@L zJ<8aJpUJ;Pt9}bzT)(ii6%d?A5o2i5*feA7vC?XZTHJji(0zj{zEOI*;1?Ln+F+{ge?)1y?LrNKud^SN;Q zU{5*P@e&QZWqpA

HI@RvwLqdKP|$vgYl6b<+w!x1wf@6@a=~0)@jeh^c()gcW$% z!)zIg#PTZ{3}Jy&x#3G}hglK|yvxIi{vwF*RKEPi12SU!@Ktj%^B{AiYK#+?e30Hw zgg!Z~%|LboQTvTm5w6Vl5!o`3-c4rQe}~nXI*lnR%k=p&=aB6KdUF8R;J_*st|JOg zQD*fXsPxc6Gg&!LLBb|+)98T0ZLdK8#8Ljp?tl&P+%SfL&^%q8e>sq!#8 zMqnB8_>#Eet#Pk^=z|!3Y9n=wXuLl;EW8`5g2CuS=D3aupfK`CmLGippjSndI+8TZ z4UYyv#f`13_W9)D3tj5?BtZZRAM-)m`Tw!a?1`>ok6Z146E4}}T~IX)8-;0_QTuW3 zI0ZHI6;X8?b@Ga`5s4)uG+w+UtOK(L+Zg2e9vVYr__e{vbi$)(IikJ^cW$ycX5s{> zC_nqU4x0XB9dNKWo+da;ww~)C36UskCdk#ynfq-ZVcV+=B^DPaFHcN<3v*ZbXt>Q7 zXHuWhn!qqWqNAjtUz4v4>f0G21dq3c%gsNpUOfuQhX~6MA#v1f1C;@w@2oNEmLbx2 zk_7Uj(d^U4CX4yw>g^zjmZD`!=)l;66qbj`#wiZz!_s|bCO%l&!5SSl1)PJxx@9lY zm%4l1JTuYV@8dzQM@hB?5-v{DU z(lB4$%gN#{{dUR-XKaE3M^k9FOZEY+8CxQD!*VOL)7M7BV(*axjq~Pd|Xl*FYgANR-;8o zU6PS4`2q)C-Twiv_%$J+1tRM2)s2y06sdeeOHpm$&v6I9av1h-&KQ=od4!K{vqnmoO3EZ7p}^Y!~f z^z1KHPrF*mkMygziJZV$YR?;fK(alng<#>!dKrH4KQD!i#Wz#n1;ag_m@>*e)(sj- zS<6F?L8LU0MhRxdNUSADY);{sY27zvXSN_D>QGB{bR@zRK_1&5y1`f^?BuLFPPUeiugb6?{E2rQ>TEBOXU1@@vZ;geWs+cQd}LeUCQ-LB$d|p(?a_Ih2DqCx zPDe(ErFj=%ZL0cN650|64bH;xJ;WI}1 z6!A*H_F6r#Fo6tr{hPu-%qx!63a)N*%s*gIOemtIfS=a9HD*jKaj9q{d`M>Vm8i_T7IJ@g9AQ}~oLZY0fR-g1I3E72j3 z)o)?Sj@(pjQlNYXEB#o$opT|g<7|-ki5^~=q}Y|UIz!o}#R{q^L_e#x5+Z%=^LO&~ z+Z%l<>%L;A8Lbo1WhwMV!07!d`QRxHYnpD5Fph~Dv4rrs9R1a@9E)ea=oD-*{*~EW zV*np^urr(vtIt4;>y7`L=ii{&J3`)a$q^%nRX~&G3+(JLWwe6lAUZ|a>Q6Z7s7(*! z3hWZ)U$9-1aU(qCOH$n#K$d06mWw?h?ZctO&9m)JYPZYAzEZNwMDP=-yUC@G;Hz6j zZA)qE7r?<3)cht;{}xg-)3RAKs|tdK<}RgXG~ocS4q0c+F=G)-`2mM6%9P{W8n)44 zif2l6LOT)N*j{_&@X8p(qE0)Xx<2R-CVfUb8)7D+&&eft|NpY$2$#b0)Ay)QY7K|f zpurL4on=3Zsi|SQv{%b6bJ}9@6kX9S25glmCC4%KeVFf=$3twp1+s~TS2#E&Stjg= z?tQEjfa()C4GK_kUna!~jxyXUb@Qf+?q&xV_sX4}2<{fGId_ae1GZO2vu15{JD60siWrzeg0J@+8| zETLM)o5OsX$9d>bBJMDw1|yoMC?UER9%0hUae;;0kOlfWgX~49_V2Ck!wZ_Q)wUGj zL(Dv+8abh!(K=!#MoA^)5gpvd;n9rOpzmU`!bMm{zmnb&L0|0Q32mbN)W2Zer4C|i zz2fO+oa923z`Z^`tmf9SbJ%bHG{X8Qt_IDZyC?33@!2$u+)MHy24#=z ziu^{F1qSY`G2qU5uWfmSi?K!Iq>*`5@lcn+lO_kNZ~kQnPMGD$th*4(9fnc9;`%hF z$~>J;WyVWL-|Mk#7Sz{<+w>M=LR+0TU~d_4id=@h9XlVS;d@VvJQzE$Kv}2l!!%M| z@Ydg?D>ir;(B6M2s{k^d3Hv@%MMQO)Z!qd;tU7r8B$_7~l^-7uFf2%|S;R;Rrj0*c zfS#$|3Zd~*0}&c{pi(tcnQp??!{{W<3;737(ff{?_UCFDJ#2KT35ZPiJh;00#;&p^ zzm4k1KC!|EmNwacR-HGagZA4#z;aa?tE+_DO%M=7S=aCb#&{L=-nvnW-KUW!IS~hP zV=>LxEVR=&pl}LJCGRWxmsV=+ojUkU#q^^oH-inz+i57>0NPDp+uw1EN@$S~%0XF) z-JtfL2<2FY5w}a(o83;u?ZjgV;I#!siit)iW5LgUwf5%3^dIy9rV;SXusHf7P9#L8 zKcJy=@@`;AL`)#VJkY`3Q-znzMCt9}^cV8d$pT=*?Q+e{<0tK8K41DrB2^of;9Xr? z9IyFzge5dTEB zkWE?gK1;7mvnT>ZVq9jAbwt0EH-{AT_pu!~l)r6C*A;ctIteXMw9LS}&be4&n)+PT-=AAc zgs8J3NKtp92Y%&^QsqbLlBr@xahXAJDZG;jA_=OW0`AKYsbyu1jjxP>d#Txlo!)D2(AovFeRQgISLj5^AdsI$LUo7M(roK? zqc+^tjGhLc`U!mqNW(PGyi&?8`!y>1okP;&i4ERuPA**(+M}O}H%HO0993{R5zp`U zM%t{pvmg`!h_ZP8F}-S0V}Q{9ss-9<75) zO4{Rf9}1}6Hn}7TQ2Cf_yC-7GzbOH5WZr@u7>^I>2S5kR2wUvTXB_pIkQ^Cn8^nRw zTCe)`v#ua5GhpSdvV~_r2fB@iNL(lRerq(usr+%*XBNIr`zgAx`&P|V+e4OP3D{e; zqH&h_4$JSR;8&wE2wiXO6Z8qDy8};3uq}s6R+~+F?V=i!?d*@>GQ|>d&I1&#CXv~- z+pEad{?3K$-xvyiQKIliw8pxu=xuYMI0F6#(NQ{*FJ5=V``E!WlFw|cCw4LBy}UyJ z17?kc)agnuaTL2}tpI`KWYwY93b5TIN)aqgYe5v?WNcCAg<%zfv0D0S8%-1k6kj@2 z3?WfX@l6C4Y8dMvHzIyZ#DTrzD%bQ+XPi6Ei*{xKxal$S0m)+vRv~qL*wQ0Ht={Y zms8e3T({1zt#lgzM#ixUlZZpPK@GGruHp1y`8l*5lq{An)jQRf9T{V$u2ami`>T)Z z(~+=F`LGL}z!luO7UsKhw4efg#!=v+Wl7w)iN-`rVzjAM1H0U)2K=i0E^Y3lI~r5W zC;D~NWHw8H%6`)_HAl}-LW7=8JIn`>5(IHP)JIwla1QCmK&6l$m1Q}Yj6vzfGTA52 zp>3hETFtz2zFV{rgjGIh*Zb=SmzF%WXxh7+cGU+tj^VMYb3t(E?YfNPYWXgxWXNOc z`zcn{3D2k}7AL~u9-|KFz6YEy4(pk?jNcGQdC?OMDlVj6B@kVnYDAVIP? ze4sS`H7KJ*UVO}FKTbiE${)~Jcs<#+9MGqXE=FmMj!I)GL@)d0F<*P|9dZft4#=YZ zCrNol@BfI;ICfBX`5P;7HW&`I0_sLbn5K>X9V-&ckPx`QDZ5QF)ZS7U9()627vMXT zZ?us@+|kx_KF8PyD0+wG*k2 zbbuByc3)5c4_9n-RL9q$8B;63Bcf>2m)t=D6KaClqK^|jDvm0;9a&$Yn#cOpj`|@@ zMkx65=7NK?@Qh&psDguI~^WK?TgeC z1sJ*2Q1n61Adhp&nFy++Ex2aBf)JShlOe|?lCVk>F8bMcG~;mMM5$iy12Bv5Xh_@L zM*kDuUs4ctmkUS^afW>Iya1^u&BI`#K%sNcCLBQlo^nX*tW~v$g$oF1ZSD4u{*JA_ zk?^AIRMV1#SHRr&87CFp_5?qOn8dZoonq07@sgh7fR2N^wsg^)QoH<@aaoG%Pl zuV)3Mn*@%amT1E~QGyDG`qTPk_J8<;Ck}&hoC5C6`>b+Ro0raCT7gfa5gPb+=1?-zE>7X?R2>%(21k8z!xV})pB zjTJu8KV7x5T-&%wokU6%Nv>EX8DixGJJ-;nLESDcztZ+Gp*#8idJahuX>&Db(XWd3Su|?BFq`pz9pj|zDp5~NmPy+!uGcx zeadYZk`SO4j_`Vc z(=@s;w0Pk}^G&9Y(s7&>NO@>bbF?!3ab`=FuV}zq=nWj1jP`-M((x6 zi1R$fmiD1o6ThKJUA*2w&AV+p3V`iC-Fg0c-{jU za!q;kIR&z)FPjYIM9wf#pDQR|R&Z+T^|`yD6}Y^%KpbXA*AHU=#ceGem=u0i%9!%q zFKb>Y*g6xwB_uMbOCn+g=P84PF!OaLwrc!s_1yQx>&Ha7iPTy@DGjc17Y~O#(&IH? zL?J56#B;6=MyjJ$cPxB=Q&eP!yG+ABx`RT1{#&1k^Puhvphw?4k zN=|wjyZp83Z%J7fbcUC=ep!8qF5QJqUI0wS&t z0W*JQ3V=+1uNp+8X`BO~hdzX(4gGYalUkzb82@=pEwpykfC748h!ufCJjmNk3Bp`QlrLfLxK(@J=YVKd79lpVVxBPx2DhfY z-xW9K-}B3(K*X716FPl=v=}yK-sJ4_fgIo=G+sv#M!)OXUjRtNa|z0Y-2POR_8gNv z6#lasjQbIvWzUu*`5qKGCva9IH;gu(4jALTi}V5N7hR-)QA_LZbSv+0ic|t$sEwUH zgcp6z6x>|$3gm`~!Qk36kU;%O?Kj*iDNPo@naS&V#tWqY(E(&-WvsID`AP;fff+xY zN&!5Ycxl=VQaD6iqGp|&(?V&_QYdbE=4po>aVOCQKR)_#`v;S8k^7&P4YXB48Bol0 z*uUsX+$%^sIG(tij_7XSAVhH)ew+Qkw7gb|;w0s$yu*{plhqtQK_ z)$8)Ez`YM;N|}jS5Dm_lnkSGxU%I=0I}Hn#?YUOPsG~b~tp!q239k6+xg$K3BO&Z$ zTqvbJz~kqNTUP6b>Z%|-48_fEzsHke{14qn>OKSTvYTBP`%_0kUVhZVAr@jQDc|~- zDwx7|7)xLb&RxWm*D>t|Au6&srvA4tpW$q$LUV*ZflIQ|#_@@`ExrhA5viA#YEj@y zvI9x&SatVu<*Sm96W6E-g*{(%vH|8i%n^#lPxChfs)+#4Mq%oYsEsDd79mR~^T1`q zc>iVerE{t2el!SCX1|XErh9)7_edLWyf|ka211vEnXg)%bLuZh(kmc=2Id5rqma!Y za#qt9bY6swi!}LN!!Nx~sA-X#aPagCC4aPb` zC4F`#qdew;Wd>0A2k zA1+rtci;fKJrL+V_cuqGe24eYKsT%CIH@aWQog_&V~ zIj#HU#2{G(ms}Bb%GfeYviS_2d$$HpaS%Kol&f@UAZ4zledj(iGmR@;!wFk0S!I9+ z76W3Gi}H~b8jICz^>J3KeiL{gw&76@x01A`n$q!np4Xn)rnbx+#_-#|S%U|0{*ZW|rwWb!|Mk58 zgDS$$RkHzf^sid35POX!p1k(bxrv=G@wCKG_4|=fw+QO)XA5u;vsf^BI@`K^{+Zwb z?64{uUsl@zR(&SbK24uJ1X=VWXSL`&1t^NF&5?x){L30RF^M@TBHU@a@#q`nSRrJ& z2+2Vgfq?EcxW{$1^NBV2JX^(~UpRX%d6e`HGpDavN-NSdME-N_**M6WW<3(x@i6E~ zE}#(4hUW3boGA1;iQFz7;vCU7J^PWG&yvuMOrVzgN$4hWeuN`0+@Glx9B>;(TJj7o zX31Z)W^9qi2Dz3F{A(t>DhoEOJU0ej;fyS66-rZ?1J+-ag;4B)xvuaM7a+^Ve zPirfi<8-Z@VqlMkiwPTxIIJBnraF1T=Nn0iv^;s@;u*p7PMypd;CQFf=;Hu&YU@UJ4^9*qar7B|(;mWIaEp$wtq1+) zHkIo{FT$g6Wx6YNq&osf#qBfnua&qkoM81z%$~v_sLLe}P;#^`811*v{ZMhy%KW0-l)va>c7cnMS1TQDA)0HOA9B*m873t_#O z1SP9NR}tS9P>`X|Mgv}O6_%%=VQ|57Etb`(n(n$0tRfo4*ayK1C=x*HDG(;+>D`}x5D zA#7Nbfg7nQ1+l$$j@ZQyyB;F1yOoW=8R_5_3rLxbZq(eRgo2l6|K9zI+Xf`u-Q}iI@M4GR5QTD3KcJC}$!-t%K$g;ELzyu4dPCm?oF%2h zV$|q<4coEV5+o3=r3rVmvD3@~LEXA74vyMvmI?$l&0n-H9TU?W-BfG=QQ93g0JO^M zPxWbCiUA{EB;V1F~tgjZ^53)r2$&{PLnc5ZziyRHd7JBVm&@~`dtCt zKK?RnFM#b1WqR8aV^GR~3NIRp_q^zgF|K8rZf^=KQ%r3MAejTHp)-8Uu?NLX-yrzO zIiII@OtJ4E#KOB-_FJbD*}*L}&~2(upW1mE=Jp*LyJUQMpmpCRdPSq*AR@pVDKZ(g zr`Gt0;A8k_P@_(-Rqk6Sw<*jN9$P_qSLN6XDOdh}UqIldQr3>^_zd*+3pSIY|_*}!&* z2Fe*RVDe&+IQxqNHjG$n_*X?Paurv1ahF^jKBUrA4A$c73AD(eB!5t9U~mQtz*79F z^)7H~+aG&~Ok+M1_g#jefS`Zg$7_|C9oz9340L+}zf{u!$jmAR~3k z(q~O4^$?x=-6TCOh9x|}xbkn)!FZ(n`~g?$No9v2LX!yz_JXc;f~OQ-d2J-=Oh>T% zeEUSyJL({d3X;m!hC1IrGFUg^*yi4iMT$XO`Uufwdp`ZqD}?>11h6pg9ulfXOQ>z> zctjjrEV9enN8AcPT~BDyF-~orY*D_)AM;S*83AaMka_dICs%(W|KA+Dd|cF`t;{gC6ec0G=|67Em@tM-m!D*7gJh6R12wJ2s6r zdeN`9rRHc%NgZ+w{cT@738i!1SH--bxLAm(g0Ht!Y4uDbE>@a9KnGf(P`WYnyQd$c?rKPph45jDpw*nl1X zaA;7II6~|%xdc}d?02k#DR(eQG`EtuS*g=6mT5|cf6T!3q_wT2wTk9Q1-nlTpfQR9 z?neB;Nl7Nu#W`o1jDr%Kf2!mGx*%tc^pJ+)dFip8zA->Bt0N0FCJs^WhO=C?r(KtK1 zk~x*TJ_#<4FJKtw~%!*eAd*RJ+%Q_6~V za}%aED4PDsHnoCYPF1H`unzUoX zsRI{>7_D2!+pqdm?lROmA@x?&sZOLSJsVB^HkhaEp=jG)jnz_MS)aeaw7Z$H;Ao*pI> zM#)SV07yDxUyxy?fF?SKF`46>ee*?92FGu zf(EPKrgpTZ+Q0vrN)>Lm`&eF=D&dLHxR~NNwOK#_PtE7|1#p))jkrx^v$2 zv?;IkZAFEdsk+A$KTkH+!ogI#uTFyXK{^z%3gk~j_32qU!-f2%(+*m(sp@q%T_KUl zW!fS1kn_w3)VG$w8gj^Mmt7`piEFu7Lm44F=>ifDcl#tK}0jQPSlD zUJJ|&30+AouATsEpOOKVYwHQgRb{j)kTv^gtdb_p&vua<@D0pzaHW`pz|X}KEFWe1 zXDAubD#!i4YIPMU(#m8+L*vwLMB8i1H4-EkaXy?LhAtjNt4*!=Q;=*;{Hea37Olsp z+}ui^1vo;K{gk6YYnH3@!2_m=xpB8|i8Y5QnFb8;lZ750YIfIg)vzua6DD%(l_r_k zsX%Ce48DPZ+P0!GV64OI%28!d4y7IQ_Z*VSnV%WZHrvx;999<7kwjOv4xhL@To_l0 z?wM629@d}kD+Ht25dvpa{M)n1W5o5U2cqg*A{GEV&B|&azcpjxsot}%BilYD`|5!Y z^=zCmpw?V7F*S^S^aN~89uRf}G%`WdiHT!m6N}%LqHExvGM)*G4@*!%*F=&nZRg#< z>I|*~EX^F!uyDN`oORwDVH{?~51If#>d<~dB%J6`K-9l#nS`Qhx@MDn( zzZVG-OdJCuJGCODL};|((t*yD@}s;lO|^DUG(cB+YqOP@*A*;gxc~{d!xVotUvCFKGFJcXb$cg|<2~VR zzH26WEP&%eOP3~3na3NG2-*rhUSgExm(iZ!ji&z-$GV7cH@PnIgxzgMfv*Z0WsaZX zMA+9XRv}5yHM$POtFEo;+A4Z^94m1ZPgmw2d8*K8Ee|*F;9Nc z&JcF(<@~cQ(pBu|aaa2;^PXR;*TCtK)LQ7ZS*IX`3qYA=A^A(@Ch3snYauYCV~0_* zUk5`?SgD%j7T#e5>arfj+<(MYF|634@}>+wp$%k& zI)ak#5XsG7-;737*6TlOJe7zc>6F5Y*=Hz?enUB%yQGc0$P;uZ)?9r$?pqTL5_MiV z&NGX-=TsV4+lLjjkxxse!0{?wJY!av-%jI|-rrRhV@jFCp6!TW_e%A+`xglmnkdon zpGL?V(%H_lIh10jjV45cW0$cpWB{;~&PlEx8nosu^gzLBGX2+^B@LJ`<}3@1hrklP&*9T-5Uh#XN`z8aWKD=nn zw9Onl;M(4XrxPyziY9IC7ybok#BW893+Mml97OpY?NJ*n&)}kNDr1STchPi>oGOnri0hJanXog~z(~YfXi3Ck;eH~j0P z#<4JUB?%%Ci0E7-(vKYiKV1^@?`S`h48w!0nvYl_GVj5v(k(Gh@ObaU%x2p{-)^pv zt+}Fm7dVDGyfdsS!q0R64;vH^`R~k#i}i`0PfkX!xTV)_Ap*U#gTn;6QIE=`k(_G;FYm*a`hIY| zIs_jdnG)8f6`&51>BrcveGw+E2=xd;PD$9cRjIL^+ZY`U>ya%DJy8x zO(q@(r1^?n zKhWH@){8Q0r+7WfnFDPPu(}j0XH2X(NZB98I^=|~mU4?U537!GyR1ht@#s9biN=>^D9mzW&b+ae>fVKPJV|fEi=dVZvQQjjOr40` zcJgc|ws|_#vyu&rpPw=nbLRqN{Wi;>G4{o+hjI)#5z7yL>R#OJ`2yfQ$QVsy!dwD5 zcRW|J%tMkD0&{^PfiYXdd>{a5kn@};GTR^2qT%u%SR1w zWV00ysxBcgF{-klZX;4!Ik=ttoT+xH3Ema@Pz>h=KUvs%lElgpf>?=ql015j$!6(! z^~EMsDeS@&=pS;wUc7edY*@uoE~MaG8&3iH)l>Oz0!mO~8YpC6aVComi*EM=CLqHu z{L0+FRTzson#vt(Z-99xYpRfAoMf@6Gn-o-*eFbc4vzNuKQv}Pq;mWD3~O$*to~E+ zS6!7HyvfsV^72g-uuw;bPG7^Y>yg4yU=Rm*8i;Me7d7*Q_{_MP5Xq;Kdd;fxFFDvi z0L~a2!yP6h+wAM`EPO?Ba8&j}I{9%E8|EY32{a1ln$dOFVd9~oH}sB8W24Pt*WNYr zn&?l888P&II*blD6Hc_4S{=jB6XId8e?oLG{fZ7@HC7)HtZw@So+ZtNz?>eK7aD{& z@@Dj`H>W?5{DSrG0d-kMeXt%By7A*CK#g(`s00iq8}*Ync~YV%P1LM3Gu-gWG_t{fM+$9Os& z$dS7(v-f$t?rFg4{(w<8q{QiKc~C21FnMbLnn7$)_#0IPi2P_b95~v8*b4>^MBo=M zrbyb;oEDdnUAuz-%wJYk+`tbTf126C);v*(M6D-`*iQWf#hPBzAB8ZtG#)k#V}WT( z^~rUNvrroK3|wEL!?F;hcqPd&h;0`f`LOlM3bUi{>3v>?yW|)59aMf;SAHH)@_lW14XW&5WsCer@HsaDO*3g7OhhFGnL=zwd~pn8 zFm_|TIkWC6ehe5?=#IOPG`AYNAEG&*P1I7ZU{S^;$!^=j;?P==`13WaQ^Qip^|nH7S;tf=3dsB(70U}(UKF!5-ue5s|G|M@57e20iP}r!L~uP ztON%jTRS^h;YgA>DV3}lTsHFle@3npTanwLfmO8q)SAV6XhO9yY6`(1IHx#i#G%qA z7&O-4ANaoaD1i=X3~HdcEoo0S9qln0Y|tR^L#E}Pu+i_vm32+*5?^*KL35kPrnTPOy^;n_MGae>(G1iGOvl0wrc zw1-9Y+lFwEyPMV(X#3W8BwYk4FbL27h@!n9P+(a0CNB%yD=FFFnTv9ipuYHW8e`C_ z+mjXPPbCMdCIJPhY7H-wiharWzV9eLr6lot!B;QWv`p0yX@Zloojc*o9#A0g!ZfMQ zs#A;Il`@Sc$qYB_U2Z-2v3ae5cEp-dcyX6c4ruE4dfL)(aRSY#o+hdmlAM}v4h+=a zxAVV_eQW651|Aq0%~ebEq%PC3Ze2BX4Ob2SOeJc-z6Cz92^*O3 zz}?{?x{qj*G3v?~Z_09Y2!D_l6qVlo&uCTb*B3_*&ULI@#k$>tY^#EXVeA+x_E~R$ zh7hZ*5Bhi3V>??Uz-2R~<{hK9b5%4f+W;4VpZG%KJvlPAURza9O(}qKBgcc%iJ(HX zn&oLWf_-GXNn)YBwVOJ=U3PvHW7B4Sf+*JyqVZ@`%jdsn`ZHne;c)v5OTbO6ddY7KIZyYi$7R3zSLNg7&T;!6Ko1K}}pT<7s{}x&Y2c#lQ$za)vju&-6xM8>QIX2>9cw zS@|Wrnd0@%M3AbGp(w1oaM0o~F-1L>%|}q5(Q+t9JCa*DueTX%i*zR^c*8KF=|%D| z_hT{tM|@j5JD+t`Z6d>vrzEn{cFlP%a&0j{jAc0Vl+6PU-P+^!I;W@+PrT|mDTCj3 z!%T4|^1$Yk{HbuHFYF>kPoy7;@uQ!<6kf;~Qm~nDk-BJ)`U%;Ig}C67A#{wqbEQTP zg+?p`;;^_LCQI-3x$@n$Aj{djSJShtO2u4x9-T6p zSAHLzaYtNB3a{`@{h!+D=Qm}Lf4^f`aE9G@$fT7_}Bux3|9Z&wCEhwoZJ96GB)^9@l~lMF<* zrNORs|D7Vm6nP-!er3x`QxA1t7NzK)B9{L(umRB0drMN^6R2UPpgegNGvuYpsA%Ni z$pAFzK9G*4`d?G+X$O>JH$+}1IKVhUk@QD*KkHQVUin7+&3dSd_YWGKv>l%%d*%;S z@7~Ccna{X>U%xLl1)-A{U2PZ057bH?&dWym6nA~1P`5uXVPm2Ypj}S4)@cy6lO&*` z>|g*AOc{qH22#7Le6o<#EQDz&uNSaeLC&TV;gor5zAsJ4F(NPANZXjHH8}hyTH*aYEW(0BXRR+A5x z28S!;*^NouAaBA!f%mvlCh90vhnY)3Tnsez7dX_XScEd9RA3Ik>`RDHVtHm^q4@tK zT!} zxhQzPmsqdPy~C;)6YuQYr)G-&dd&zUu-EVF;I8f=Lx;dc3_372>BwLQKyx2yOiPd3gfND;eMo0%XQ>~t`-WmTist+1P zWL8r#LG1s@{;!_%zP#=MJl9%h_M|y(3oYH-ZcXv3#-YQbC&bEgQyb)re~qLQBRCj= z53?n&JcOoL6{rhwzK9;`NE7F6vd1aOkszpgI~YFZ0chbdllG;eq-=cn7~U7?_P79+ zX9~<(!c(X|K)jz-#r;)qby0?CYK8#+KLEhU?(zv3wnoIet#arHhN24hXwO2t3Wf;p zN8Eu!0z$*-Z8@o86-3Y_5Ik#4agFt9DLNk6^H3u3)q=1A2L7x9OpIT^>TrY)Bxw32 z!xO}(e{l^zfW0Al*aMZ61DRiXBO!fT`uhUik}x=4tdDz>xBEZy5!uR{^tz(?Xx%b# z$=@c03UTCTmcibfHyyxj5KH6;4PcLy$=M!I$!}h?J*f$|EYgCgb#S5EN98Ag<-~&0 z^=y%yWDFbZ$mm9!C+y@btZXMf%sMw|z-yqtMW6W6rioDMC;#Rb*+}&o4_xjXHny%f z%MG)K#%)(-*U%xs*YQLn&=b;6fecJAtLK+hw8`Jb zJnitZEvsCp4C<9e!AVpuBV4FWOoH|bj#dJl7m3ck0)bvM;*G!>24vAOFXqciAFoMC_f)CBp#59 z$SS!1;fa3$X4um&4TP?*Mmr!YyKruN<|M^!i5ORCJxpVot#7+!a@7{yU1J5QX1yr8 zmM2P@b>UJCY7g>hTc*104q&pLy;B90(8;%g{0gf`!9vvf=V_vyvv5jK`#OZBDX3pt z)QHou=9u5WjVINtAffZgl#>B$%}n%-^}C)X9>|W2Gq=rv7>z->yZ_K zXg$yh@z2mVs=&32y`88WSF%ugkaK>quFV0tdr6y%DK88jI!cm5@#HSgYg^BMX+f_U zA1O*43!3z|mXkMzxe9CT^TEcMf?8y}_(F+2iWV+%N3_Z@hw3gOvksJNV>i6zyK6Sq zhFZ=5>Ik-quiucVaGr^0UuSfU=?aBR#64=Wa20dkAP(8w#Ht#Z17^^m^HQ5AX(Xd_ zTwtN5pTl$#_81hx+3S60*eTz4&|I;51ELuMFr~+841i?OcHr1>hLEEqh;?$_fnMSS z5d)u|I?c&2`|dyS-w>ezBT$Jb;VRA5p%ox97I}e)$weEsUS?Y%k1$F)7Cxmj#S)?6 z{5B^4QQjC@wWg9(5-o;&saq$u%DLMC~u2M!ah5fzp{321h z+D<`)l~;jtSeC;OQt+{@?N{a4+dJa!2TJdoZ7FUD&SzAFiG0P7>}v`1Euyo5_JmAc z1Um?q6&?%XN&>Y_5f9qAM${zBT(+Q!oaTudECJ> zOTa<8CEM-SV+N(-#|kL3^^9a>7a_71`nnRM0iG$@w0FHkS3~vzNs+y^dLS~FpzGHi zCuHJBr{dzuq;MC@A9`Vyv2_J``VjmRRCuE-p}Zqj>^Td==!t!rRi_Y=Mw`A5LS_10 zpKL9%QwYD99-5!F9%8NxJ81mje=!9BcXJyoHKxs%v)A*lAk4WWH zmsOz?G!u3Rt5bDUMCYc)Q)keDoy!2;Z}4^o_-wE2ia>hk*jUIQv(^=c>ZKwC7tVxF zE25a{_^+k9{&JqYTB!eTmSo@Bf049CCqTi_{mP5Tu3S|Z?Y$%sN_Pv165xe@-j6aMp3Ce$Vj zCV4k8Q2wR}9Y+Mar@dm7p*7N{>{bNLzlz)KXY4xTx2rFK)#i?WY*>K~s(_oT?-rE) zdNN5PJBb}jtvD1HIRN#_qZsJ8wDr<8Is<#(Oi8#2y^f6ES97N(fPlVv5ZhMe*R%T} z!gRTZgugb}2t>ba0xWAj>F>)iE$}%bK!oAMe&5vpVI2dux@f`S>?JjN4lwQiQ8(Qm zrWnvq=WGn+F~QvwECkOLZ3nR7=j?Ozpg&KZ^==p};)tv^wW^6^UJzPR!b(uAn?EhlQ^b-qr6nny9=cc5cmmN#K z_OtJT=GG{i9>?=zB|pglOWHhw;qFGiSQFw9O78{*Zt9k+=*n)qhKBr*FD7&)hyG!{ zK-#vXJ;Ge_C z9kVn-p%rq4Hghrp{15glH|Yv$+qajHbi;&#;FUM**MKt^bw%MeV|mZE?WOD^dOkN5 zs?xRLN0CleDo{wD)2hDXO#qQI%}zOG2%l*oavweV>f(stX@L}v7{iOzM0TLw)9{BQ z_U#V*)iBYPVrp)LaW~&o-HpF5{n;mMjRmqm7=73fk?mq*ei$l-UJr?++u4o)-}ww( zYV|Ks(~H?@!xo3lm;q8D?p_;yw5_35!V{;=N^cu7)U_}{7xu9{{*Bc7J7mb!Iq!ux zv3#JOE(3$_COdgPDtKX3m*RZgozoKrekTDZIABA%kOw3L?Md-HTnSc?d{qA#CD29` znyDX`8!;01pWiQor{$~0V3SEm6nwU*j9tTHXLw+bDLT}B&jP35lfO*{Et}~393nuz zBy-V3#~dd0wq!phnKso(zbu%%T49Nl9WFr|3n!=?8QAe>ruvC_(jHUU5Qeg=m+0zx zzA{L31;ksj>WfP$^so+IWER!7bDrNBNhRn{6%oa=EcD6}#yA_O4CbPDXls&eY-F4K zZ-T__YPoVO^4q!DYr7qU)a;B4;(qJXmx2s9(F?ZDu}to?B_|&_np*V$dd`{TR5gLD zDMY~Mu^A2HbkA)b>HVkZh9M(Iq`x-Dc__ca)%AjPmKqwrz`-b;yk7~t=JoZ=?`1VG zb)2y0ud}5>VO^+%?>gRTU=+2;!V4v}i9guzI=ZPSN+%jv2ZW~17Y7f5H{)Mm;m+*$ zLpS?TgO7Ko;N)TFEI}avGYR~*8_bGP>o3!VW+w zL04hw`3@<#XujN7s{3-mwthHrpB&iET3pg)StnN0bu=L3vt5wF2Fl6TFpyLDX%&5T z{_UgI4fkj44>sSjyQC!!a-+nnw7@E+8y9QWh}Pd-)V|^#byhxzj9{xW-(rc!&{}!b z--BY;!xpygFZ1|AGv7a5Ui`+kB;FqXJSHl!cLH-9YVUDEh2cQ8Sb_MmcIv&HR4)23 zsYLq6dSu0EI@<9C#Z^G?eR0dxd(GMMr76-eq(c_@@|dny4alOc9Z@%#wfz+KM!8a3 z5(_|1W{ZBxo@g+cmpU(k4WhQ?(o%yYAv~ynL1Pjg3RB*pvClv{Vmg+-qhfx4zaPB% zf5F{6{+X(YL69NTBd&lN9}^_iGjosDoXTRN=i*R7mT^G(SklVj#nfk4NPCc7JmiM8)kAe7hT3ZJj{ zB>uml6RvP-8H%y{x=HWyN2Xv$yEA4AxfJPFko>7g;y_gVZ|WX5;h zOg)u)G0aiAtV8~g4mV$;vz{xgjf3Izcb$&Q7S^MRv_=|unhkrd3nsQo>M4FI!L zr*fCoM|D~?$q$nDUVz%gF3=`i!GN^2P!Ne1@^OnR5sJsC6C)f18uXiOT7K{AWC+Q# z#yN+#NIO?+Ip?KmgLbXvdRP)LDVuF@QNbxszHYRi$v-of(V>yL|rF4ReFQqJkJ;ZmFTCDyvLx@2_gZeD64*Mplo zFjU>z+d9w4Oj670Ac5VJKPJ-y-k>tm3G3obmPL{F7FB(WB90^wV~u_w19c}^Ume3Q zAZbAvnI}Y__)n{OL25FIoSKMGA|zInqp1 zu?OFu(S!3sOq0xPZvcC6RppC42hz!}0{O@c80+9HZ?hx|z zyD$p{{6QZngi-_5Mo*c#|1S+xNxDLHd%nMu8g;%?jm16kPP+s|u*B5Ajpx*@c(yHG z`ydRRlXz*9ngw@-Uc>nzb$o;$F@hl4>CMMEp&(PSBKiUKM1B~b5yzjlE>x)uP zGz?Uqn6h)k7fdeArpFjMcI7embB?C`rPu9=-FO+}wTx<2l}JYjG$^MfAV(3_t+p0S{nCy|Ey45fJbI-^}C2iA^T`Y8C#1-)}`<#@rJc!q;31fcC+l}3& zJ3a*)k9?=J0vY7Ty>%0wwwXlFLvbD(n2GT!GV9)3eGjKp*c`%fCN}%mw~qNvqRCx2 zfhb`1YvSN|$)f$HyF0zI7h`(ZS7{G2MT=D8I8|iR$Ndt~NM<};ETPH!j0=0zHuf}u zpdMwCI}@n$_+884s`5CN{ba*(nfBDRyUK{ee)uw;pA{ZbrNL0)mYewI+<~=BGj`2d zBP=W$zK4Yvk>Fegtc5Z`qeu9Hb3M_FXn#sBV4%aNGdBmps3Yxhv^>p}q(Q#frm!{( zg(cz80wBc zkixx;JTR(|kZGzbNcNcEe?4_67Aq|nUXr6?r>Vk{WUjN^lluHDnYQpq|KT06;d*Nt zN6vfXkx;9#O9jiuZ>;AwhF_q&)NpmBS*f4ML4|K{5X_h`NjLred8V2jt+V(A(v0lQ z7A_uFL-D!6Td%=_kdREwYi2}rPOs$THmmm5ZO7_*FGF^bGgq`82ChL+>FCApEf3@Z zl6uciAC?cr1`Gu-Z&zJxlM-Rv*As)_exOkrhG8duL|9S zoy-=2-oZDbh1XZDmF*-J+v&-uQTB$7DN%moPIa33K9}$UnaH*F4}+fXsEjzx=*6Tk zt%GS#o_xRw+m(@b6lPAZIxfqS<2d!evdgYHMRYC19|C8lfx1?S+pgEgYb=m z{xb?qRUPzE z{f#)gi#mE8$HU2_`yTkdMprQNj=w5tyX52~;5pw5jsu#BY;pC}HLNfozZ?Uhi3hQm``83ih8+R#8S&dA;asMacbViV;zQH+CZYt_@rAdy#i|jXP79LU! zCmjN1;xLag3tE;HJPwWi`HaFgvCZ|yw!Nt3t)pv}oMCvd#HD`x%rqF)9r2Rnol{9v z!M--U(1p^2(u{-VuhtDw(jz#|HKd}3Df)mkEiTYMj6%1mUn#D@y!`y-dxm*CIdT+l~?I+3JJ5cfyoj%P}dSh3iMj zTq5;y4~g#FYwHY&a$$P8LoGElMOOa!x#*?HoQ*mOp~@^T?|tC9U4sOjo?DM?gj|t> ze;dR7)jqq@CxRWG9qX`co>+j3xgGE3#Gfw{3~FZ-f zaKPn$KTI*q8+~s_zd`>o+G@$np>L$^^XC-N{d&>sZA^7KA-SVc2|vP#%SNs0IXcw} zP2~+|bTVST-19pGRRDa(T)ccHHUOr2*)0KxFUilPdOLb|+(badXff83mO^2yG8``M zc?JT>o^xgY>q><}-1~W1DFv6&$!01%dl{7Qx*Mk*M=st2DQA!~r}q<@f#CjW#KT6y zn#Q^3c2Xh2iNfj(hx<(s&_EAU478@}AA8VIaormtPSWh;|7%!t-uyY}+B#fT_5P4$ z%TpvVxIvM`jT5BD$&|7FoZOW10&9{9)GpFnEzXJI2BGruaUd7%!h#0U{(!l_8C52Qlh-c1)u9Q|QHXi$AX!qR+UrN@cu=j@ z3F(oNxN-zi(;xmk6EDQTsKXz(&ChSc!Gthx`w|OBnJz(2`d7}cC5N%tU})dmAVXKN z5Kb0Q`cmf*Iu&j6@TG)fC~(ZLaAfd(3i22WF3iA#{j8D6^bDVjfZbX}K+^A$ehmLM zo;xyGL4urO(m=waM&k+c!Ml42jCThOS`lZKA1R}|IW;48sSQtr#3Wtr3sd#Q<%7>^ z=viH#`R;V?iWgB0=W zvs#s{m$y^76=-h#AItkN4JwT};SLMYJ%NMoq(LY$%s)R*{Dpxb z*AFI5&%|8U93+4l&C~2!PzQ!8P?OkLO_wYZvUld^0xv>Ytc&^sJ_1A+y#4?bXe`W| zRdXUcGzjY=ud)m)xe!X(CoN7wwIOp1N$1)*ZYxdq9IA9UR8WFI`B3XYa}{1Tsyg%b zV|MyPmah+kwzc}5ShvPDYqCBE0#$ServcH|pn({^-M}8ZEqQ{eZ~*F|E~O?T8Yheq z_-9QNhG>Oo5_IBctVT?=mqh3-fe1K`HRCY9%Zq6)1C49Zs^eX|cTyYhfJnQKbZWC{ zQoMEcXaL27-Au==6rxXsVG>2pu%mL)kg*8C4X;*E4`r7PVnI4IlxhF5I+GfIt&j@8 zy8@fApY2Qp$H$Ex+SPVpC4>*#TR2j!Vj&+BPke%p!;1(MoJNfw)qHeWrA_-LIHIs7 z53m3YFgI}))*8MT4Gl>%pSb?y%C3U**p~*-=^$H}y7v4|*ujQ;;Pa=rWVL=|r(1n4 z!-Vd#4i5tx4aMkyo^~+YSEq&^uM(!JJus|Yq9k>u~IWHuEOC1CYKXAv#J&} zy){S;V5;%hutQe}e3S7$+C)mr@~pmXKiW&>oN?@Rux>x}r51JJo35e-JZKzv$wz}A z)|_4^?%g|Q!~ep5h|e0E&qa~TE{(Y){(Lei_T9Y3Y-n(QVcTE}UMTf_s2Y4Syc3tW zE~Z4gU55guqVA?oY#Qj1R#v@5a<>2P z==gRCcj=hPs{p;5jLWZrd%TklQoMVh_2~ryj=B8`Kfn0J#uLypxSlDxQd<+&8osSy zWkfn)hTKQql(E8u`@_qqeOBu7bisfylb0{3oB~u#APZ&DH@c=-7P?8aZni}B*?6yB zq$iN~fSUeaYZzF09h>LLMM4e9$HUf)gueQt!$j<8IjT+kBAZ{vD#zsijI0jSdk>0| zt}9p^FqM{6J-LM-4?tooa0(7S8;gS*=+-ZnFbU9YySoHnlc2GiF)-WC%1$RPZz+pN z*Ox`D%cAeD$AX~aUG2#={JtZs=;B4%x^+FZx$9biXeZBb2@i%3lSY#4ia0(2CyA$U zB~I|gE*rsM6vX$xISS7t)`<@@?#s8p* zv6%S?ovm^~Al@qf(@>o|_$#Ty#MFyb(0I%=g8IdLbpY$QRsZ(XPYEf2jke za(%tRrLI|oCPi4_N$F;R`b7PsHcL2?=}ZO-ku82+xR~B_aR2Z0OAtQDEY-@5Xe#(* z4`SUn8UWs*X>5pdHW%kKIHz}xH+P9O1wGdOfNObFjP72T zj>ZJb9||{BYNA>HPEn1cjDR|(%Ac9iR6hp`j070gzS|rf;YyPMq;u29f>6vq!A(I@ zD3Mtah__rA<%#L%lTp_*>bI|BViqZ008QWGF2QO&vP1z`>D)LG?RwjU(GOido1}kl3QbZ9s&wXQX*C(rQLsa6sp3Pn$}3EKLT0y>8Ry zDfhvypd6tm!W=hUpqW|-3Vz|E`c8^Yiupp5l=dH;!<~7irk-GQVETy78<`^k^SVN{ zdeGfG2kgESLIaCHwJ(tEnb&?R*a0?N!Sb94(ZcPA$Ar71G5&vu>ciRNc$`%5AQrZ` z@Mo++DVDJ+8s}3^xBQbp5|$NDBDh`&ibR;TLX=f+)P;!8%4jTALv!ii>$+6`Pooe> z0j`OA2;d|(07A;%9+$~DkhI5c*HmxpV+xVI*yi4CmkaKufh>FwtG^~Ycd8sG?P&VE zGgf^@DSWH#Z>AD2BbP4@?XqWgzmOte<8I0-y((8Q){aG6$rTUFQFXC+aH z`$J;Rd{;;P8T=>69k8|?$AUKl%+1Xuj-Ilh&&V#lv;go_iFh*l<l&s0;ipl~-%!yDESt zLU)bwrc5d}NEVkauOMYw17L?yOz$V3THo9{WMLY>bP{KTbpUw1t6(VI*(8j;;Xo0g)SSrVv{a(wk<|ez;(ZAP40EbAlAho2lFLIPC6fIgV+5aZ7GpYu4v42= zG{IZ_8)#-gjkU>XjTQuEC8z!o)96S8b^Z(}n7BD~GDaoY6K~tv2{yG=C4P@IMBBge z?}Fp9-nhl9sTO)|e>W~#<3}w^y=p zOG)YV!Y-5;c#XS^64P>Tlbz6ldmq+`o2u9LZDH~(PUTYq5e{tkR5?YjDMjkcjRJtB zU#O4)QfEYk$~*(WfUmR*vu#;w>sm$T9}7L3GOG%UW;?hTwVK$n?@)(Gk4A&YIfXG4 zUXHlzBV+du^KRAC3-y5K>xbNSv$EjAcNZhE0A_XicM$uEu%`kX`ddmPMff6=dZ)+?SsPxD3|A3ja*nXgt;BL+$JR$`}!mim!(jqcFkvY}%7G>`qY% z+ONxRMrrw$p@aP(3PP!&lVr5}3+DUy8?5f+P6Gn6&GCH>dWI#V432Pvf;?tDmN;pi z5p)vUyY`_(JVtGSCtx9gsDnkc9~v*s6LI#wv5fHWtl5L381WK5I!Jy;ax(>Q;CYia z^WS{O2#z(|K8q?%gE>tI00RNol71El*K4F1=95pSM|z{o&}0872!2R0n>%C4YK=;xbp<@T{WqY!CW( zr;8Jmku$h_jLCzCWG5@x!FSdCF}Kn@z;#OU*O zz#H5=Pqs!uChe%~%3CAtS8TCRKRQk`81t*tO>I{&QC_y0((@#Kwx^ix$3U40;~a$& zKH^wc``n{>?lI*lwut5td==mI>8C^~4Da!>UL-^biyU*N_Hz?$-2(rZ>Fl4EW(ftk zh~vJ(*oesZI*Sxzr7PH|L?Dk|Wl;3zw{bh-sn{ZgtNvPBq3?&PKT5ccE`yiIw=s2s zU<4&q6ZhZ~bvICt7+@{4VUOH$RYiZ`Co*Fgh2fYi<vR_KU{CHwDOToh@FIf=o{HRqJ#}YcoW%N_~3Dy)m+R-$(Vh@ljpxT~52d zkHwy14@l%|X*DSbV6oTetRkm#acXNryQu_@HhbEzB~EN{Z8hsls!^QPn=u@y;;5< zWseCqBRgc+{=iQVm~ik@5vt>xw{nwICrnednnzBRL7j6T0Pflwte<~4%*q#-Q)7L} z%2K9v>=si)-y3;3+2quqm6y0ZJjGNKZlss*S@tjRP zkW8sOtA7mU?^z9ZPHuN1N&!%FK8#C6##v}N-@QoD06H?s#Gdycqw4pRVq~meGDi@Z z^^~s3dzd9Eec)K_HjGO1Ew9Wa;>b+cSq^gub7X2*3mmw4GdA4Q5~YQY><825xGTjy z%#>_Bo`A2UaY<2{JKt(gFzNjUGZ&(=tW*^gI`alRVc6{-Y^n2-P~FmO?6_q;P<&E| z21t@{I{KV>w*+%a>ma4v3RemwFymdfMgwViLAq#F1)7O}iMjn%6uOnAnd4amrEg|( zF!ya6quKCHSOGh+ovuT&T(t1bZGGzf*#e?^a)mG7~O)PLP-8 zroZ*-p_m?$sXjQ|)H-sKv=wLx+u>laR7*EuK*a#ma92b@4qq2!St!Ibv+|sJY=s7x!*Sn@x)Rlu)fExiSL&1IwYk;%1Q;m8i#1NsZcIR7 z&ni9b-wuLyyizy$?RkBDo);)@g_5`1XA*=HCpA&u>UJJqt~$E9c0k*#(vNUL&G}mo zn+#&DM=$Is9oBY0dsx%GHC5v!{YC*kg?Hqd$#=;@uOV>>>DkyF(sUnic9CKiv0-?b zPG~7vu0j8mOf&&RY}V-wqI^G~1M4}_g`Jtx4@{ZZZ|#c!ZQ?)DCh-Rb6>lVkehdfc zKM`=1z8DVT_GbSau}AlwXF`w2O#dW*{hOiGqOzzYNfiZp#*lH!&C4g5@L6 zwq&1)YBuJlI}v0&Ls&tD@#D`ka|Gwf8=2s4vZKrNL1@-yqD(l67f4#7EatNkEsQ;` zdt$>%Onj9{yM);?W&zNasnq5VGf;M3J$_^>#Aew35MiK&1-_kVqrQeb1Yk-h?Q9hKY-y&)Syl+OoRU!(WqXtEB5m9BX z(0XgS?5;lr1>}3?7xXp$;kSFVW-ZKCSHR1=kw)326KN1fIWCPAm|<$FAQ9&RGkR-{ zrI1IRd|+ibyiA`m5|jX4`Vt#=M7~;G?gET z+AX1W^yLwrg0MbHjs6X3%(m7N^OS86$*cda)%sWjYUl;GXjTNlGV`rPfbMUR#ZX>~ zr_)I zHO)zP)=c}(%8oJ028bM7`0Eix%eL}C@E0gC7^E^2#xF|gjgzp6kX=`>z_TShqXeyj zD4}*scyC@_G^vW)d*c)H-BYWmXZ7j3+iyAVh_~7~sft)cL-35j3on7Gj(ZLo`%=l8 zYX_9^Vd6w{3n|)t+VD(K_|^EGha)!2qT|Y;m>F_8C1Idh zd0;n)c6T~HccZ9*yRoqPP@Mxrl(Y8XOp&C^hj7v%Zl<{c?xMLT7Z7#s_C$tXCLEP> z2>8C$DHjX6_|ovlk57!-!jzRF@QN=a;*1(_LwmUf3f`7Yik4mQ1UiWymIHRZvQ5B= zNnaED03U<_O4N$Z@-fN25PYrkKl=@!JRSWw&&!o=Oy$4ldb&SbaP)P2RHrA?0;B0; zxr62(QMHEmH9{7?an9l*0GeMdVAL?0CPc*f?ium$VAmgsBSm+bb&`@g35bVkc!=TU zZ$E1$T*0CeSLDF6eF9sy!Pki$i~C@t&Sj4g5kuC*bh8~%@+8st!8sIME~w?UK~U$b zy-P$K5fF4o%waab1@CT~YN`%pS_g0>wR;*&?_Gu>$ivX^+OE#+<8D;qQvUNFbbqMp zAJI4ts^zoIf7ph^%lEzL;2v>Bhpk0Na*$`pj#40SPzu|gN&#}zvWaqkl+8yRLUkx)2V0P~RGFT%n2n7IG)FYqD{(an`Q?1dT9+w5a9+!DBcr{4 z3AQsrK;+V`HS9hMmJ|)Y0zN2!v5|mG-uAT9DgAE$e=4NR6}7fJ9}#?5om{7vB$#5o z{0E$~XoQ5}Zbp`%lYwHj*7WJZjpQdwfqXaND^UQsKox`s3%q}NOu2v2f#iMM;(^Os z>pAGh#}#DW8-xY71kwu+Lx~xNn9LUZyGHS@~rXpEt0~&3{H;tdaxAxo})KYF!(vV z@v?pFy&Nb;^m-s_FLR{j>HF;NqL3{gTup3c;fSBC;a-@FKaqU8 zi{dP!0G}l}u6Hz3Lfg-p0-&R@L9NII{`-v2Z%LcGmm#Aou!Szv)xwH3JL|TJ^q-5- zFo{Kgar<2^6cPIf+N;zHBr)50hUbBPcOc>M`+#uom;(4sUTGM8Uj2N~__{jHQ<|!* zbOE;-_~VZHp-!Z*aLMij`e6oS_eVWDSxb(Rg#80f!dy~lS<~5_2n;*`EO83jv2WOy zD%fdj$KofzvtSSkP}CFLN6QP*u{aG$T4LWp`5hBZ-%W@%_SLZO#2iT_V`oN)kMSFB z)T;LihM?h1WmzLR>GaX_kV2((r2&qejY~@TphFvW`NNEjIdLzJ5UCudvSMj?yg`L) z3;4Js5GiQ(`~2KTdN+(l>|4!QqIirEq)`357aEQ3I7;6`VDE8j=ah&^f)2faO92I0 zQGr{2C|&LkG4_H7Nj7!DC1`Sv;%G)P&OAb?W5LNR!|7wkL~Pja=PG1BqZ6S0#=6%f z^=bOJ`=0`cgpM7REz!Ku(u*8#fY$o1n=@5gNNie5^G^RS6n$A5K? zpoPqVmI2&1DXrobf|mnA#CVA3c6*hJ$hj@&_geSP&~hht&#DdTO&44xo&MF0{|%_=B5Pl6v+%$j;xRA3hTRw;OTTOgVc~c-k!M7E?8in2`_ru7_6)|z@0Wjh%mkKiI z8rzeuN(oZQnz!0EW|poU{rl6G+rB{@S=(5LeGF$a_FfhJ7yheoHf7Tjy?1}r@3>-3 zz)mFSububka;m#oP&ld5*zl-+m0LR{sIho^op2tWDWF*?kd?%;+jcOWW)cQd@-~}a zrd|9@Tq0v|CRm{2i$tXlBDL>bH$bk*szTnkZ0@PVxWDGy&r5qkY-Pf3pf$0Lo@~}+ zA=amFB(+p{pZg`u3D7jQHB49-Au$`n8MIck_W zBN2eN*RTLp&ZDR{d4_w!zxUrB@RL%3QD6OV3D1%6!kkE{PCa+lxdgpN%8w57{{2bPqjKOxRv?{{pTu39OW_HxD(S#F>Bf z7uF8)`&&kUzD>aqR8xNs&n9Pu@M~9i>vPWdG-?!T1(B7R!>VRui5oJJ=&JMp^Jm-9 z)gXfc0hlRVIlv}gOb_rG)kRRG<1dNE!>c3Kj=;1?b+ao0W8q9zpW^kpwwnftoaXM} z`C&Nys-^6nj)eAIwAd%G#uEuEnrZ@x0Z_MDmA|2qCFX~O3z^p{ai}-KkZcLSIuLJ; z*K`@fX zmA^0hIZH2sLkY+V{#zL0TwsRaUO%?M>%oF1YRxIE&4F}UH8jt$(855YwfzMOpuKmW zJT)1WDYRWw9~7xF)H%Du#xSr(R+C@aNjnAAv*!b>v~@IiqdEmJUBQ0CDKGRqX6J7o zoA7PnPIKEP)cYKbz22;RfTm=rT#Z`+E8_m#_3_&65L0d^{9nIf!dhlrehK&CJ_##lS2nQky`GDC87bs-9CXJlBB zv+B@WAW7@vF0;g59nQen6EA%?==j4N0##DtA?;N2S8E|p+VJob+a7|gVD9ia-$AP@ z4}arxam`g$XQZ*B54?@7F-5{i3=ym$WqJw3(N3>P{-(p0N)|uj8}0pRpX?k4`S?(R7V4 zt|KdyV9~lYE3<(Aa5gOiJq3qO?l7NY z6oW4Yt#P^Kh-zVo@m?tZ;YSc?L@<{6ePtoF{)C>n=Nt60;EZd#K|Zg#)ZOP31S=^tD> zJh0liiWWhvwB7G1#`9epp8-aelt?s>#$;t#5uo)@BmL>va#xjfmEOH1)Gm)eRb4xZ z^p&%S_)f?mm{@E{;|9?8xmU4T-W^Z zG4U?j4`<1ciM zbx;N!5L&jwvFk{gtj$!}f2e5)var-g?tZiPVbd6dYP?dYU zuf&T3JZ|U`8_}4f`&&EaWMBV7af`pq)iXN)rbnDLh7B7-TTo+NeU=uiHUg!xG zcJH`$647Ge;8>M%9HoFh;%oE6;z#TBJtto2yG~IP!(#rdIjwIcPL_fb(4QKRCikz? z39tosjfO~?GIwdg7QQhy#3Ibvvbk!fLt*LFCxY6+7OVA78|k(h6KSqL48c63kHT4r zgoB>c+=(m3FB{wNuy(;__D2AQa1nhHSNub8zjR*a1moqqmZ*_yJsj`U=rO)qv9vk! zAE1MT^K{sT`Dv2E6yTgz%-H(N3I8GbX_Z!h35hHt=@SZn_>6v{JK#EN%cxGT^ds{r zOpl3C99fe$;^!QeT)ZtnJi1iOl}Wz>JTtgDKT(eRBSr-KBSm^}^FuKS%1WO1$28_5 zI5a6=rq1UaxX`w_>}(2ptWBU@+7AVY*`TNAd50kmXzvJFd^<=~Hd4mW-_BsJ z(*#18D`o{0N7<7g1>cg%=nh#E`z;a1A3ZP^vtf+r3&D#69-;pxfG;~7d?7(6V56E` zn|-$cS$Z8%G^3o`1Zm3KH%3*4!XB7Wx}$4j;5IO4)HjQ9JbasXAVkhqT`t%?*He)x z3LhCl(}eKD_Q0|w5~A~5x1GVtg>yb}X;8~5@>?UqH2CO9{7(!^+h}gguxa*&JUG6)NdR>CM4*2NCDIB&TJ-}^l_xK< z)Mg&|C=pkOqG<|z1gBv&|J%{|A>ybY*(DBvS(Td&cp)Wy=lzex}a-=F+|C{_O?g^$R)`PUZCS;Qin1 zgi1w^x58m}Vb`eYalrEG{s9Y0=YmlGPq>O*;GisTxX97fiM$5_5c#+R3yh(lg`4t}CKBL?40hTT)O%l6;@p)2 zn!u$<;X3fKGsH8BS3nFEkj?aJNEgIEaj2FC`Ge6~C%4V?2A7Ojn?3{+!u~tA4NZtFI-`F5huLbRWVf=7DjE?+(BEKw-v$hG~kBvyBhMP=)% z^@Mmm(p%-W`HE}3B}sa6`(hJ|Ivx-7(0}iT#ts1gKLEfFdfTbvtfCCz^cgx$swjbO zq9`>S7&}Z03dXn)!-1{ef5a58(1YwRFeWe=oAJucIfUkGMY3WF`q#YCPAP>qa}a#@ zwy5mb9cyj-lKc50&KWFYmmg(yYazDTyc&(P;tWr?h|AV~SDz4%sbYbdk&_o`%V zDuy(8x!}%b@m4BU#2Ei5d_~ze7P^GYAamp1`70NQ{*SdWzT&dZttV^BE2eUzpg7LK z%F&CN#o0j(5780h9wBA4CuJKlICOLf1yy`a5~*w2P8;kVR4xfQ5v5;04n}B0K(8K! zqK~7;$W4=jE@wW?^{4`G9GL5DOeQ^YQkza;YfdoFgy+=Jy46VDKq*lklBy`3;sI)K znk<-sy>HzDGn0yjPb2Y7-CB{Vlh}g(Irz*aECD?^J0+ z!UwGGKi(?b!nA0Lha!IWmy91GTe&21JOdWbBbJJSH&u|qqhicFk7ozrDW*1_S5R%V za*LEGb7~eKU7@M0iAy>=pE#{=qK{y121UZfWO{{%- zS~MV~42y;>7Vk0g+Gs2&mr;;W6sOKxSlUMb1>0`fU6@qP>>xOG8N1FH>8^i$70gKD z*H8TpFJjl*$C>7a@+WwU9NENYCF+1w(i``>^y6omLeO<^RPkhT7(rz_sLSG^_0AkBM`L6qf6pr8C# z+H?*#M`_qrRM)>{oH?J5AP)_DJxV^;(hVoJk|^OH2D@NCw>jw4c=jY%u~T+=%!mks zWt5ONm)?YD9TTmJ@sf(z1RM*!b+2ama6IsO42v3@iofteK4Gt3BDeA(6QB`y=wf@Q z1p!O;gMm@s+Q2eYjh}qI)#P0ZQuBd6mQnFwt!M-k%k2j&KZ-frqw*?#MCOpHnEn8B zT9vsTFx1}d;-Kb>Owe*V)i&0xWhK1|i`T1Ja2t|=88o3O;)q0_20JA4>8Rylz!JeQ z`Px4fp?mM1BrJ@{-$g~uDGjo&I;+U&&czHfts;sB* zh{W%0Mf`?l8#w1^zsxV@)BS#0Xe5oo?fr%*`UoYyBe9fdn}P>t)-{MvQG|Q`JYl{H zQY-Xj5=w<lb5ybR3$yU7kGM31II!?hwY`n5%kX3) zQ7{f!Mf9L4mdFuDJIs8NdN5!*d4CZC>$~7>R#yuTE3fc=Ha5W&@xZjeXD3#YTnjqn zz|I3AKp-~>Lo%_K;we1o2^|Sam<<46G2STEWNy;4zRS}h{KGBgzgI53OJKS72VgV4 zudwqZ^$){oDB@?{0755?gUrz=__A9dB|@`#-0?b5c4;SrbqMN2<=dAmf+6`~TDTq@ zeo$LNPbgmX{VtKr!h~vt@torDZ=%P{nGAlbyRMHyGO{Uh*FOLNYJRU)-6M(^1JnLp zk9~Zlk{hR*?;rkYh=x?Z9lf!d}h#~q! zNvCHIIkoq(=INyO;6Szz}YR2Z(&g{YR(^8k3ZiOq9Za z_mh8wQgtx3m+0k?nmWw^h%jcZae@pkMYp6Kb&G2)!az+lG9%?*ZLTUk*Pr(Q0B){u zYv#|xPD4}+DDNlSSA#rp=K+;}9X}1&iqpTB4de3EzWxPIdu<=}WrrgnSed#)+g0*w zwPp7`4q%`!7|~W!V1vH$fUlYp3@?IvqU$6F*yGu3Gy)U(Wt@dk+zVjLi;Z8%d#Damy_>9Rps+& zq!vDOk9VTmVZ3s%x?rvPNbI9^geiGm%}d4g1d#(TP6!wG>^4Bi1qVg@Fl~!I-r!tF zKFiwC1|t2!v%tj$yR`3KK|Rizvi6IDDgoYuN&j)yQ7brba1|7JwxhmgUr|Ka3l?9+ z27r89ab>}b8nGZ!T%ImBfFx}+@mVQ;t~#~tW@i$lObLJnz7FR(7qeE)aaU3iWMeFg zn!=QG?!nSCr{?&WWMd1BINhh9Db7z9Umj}nDx;E8)W~>bU0+O}w+Nf^La7maHk3Z# z#}Orw+k;#<%!A^0{o5s#;OJc{9P>Ohooaz!r!hLvbBe;2^=a37nhFI^RR|y!4hu5l7d!<{E4v_H0jX|0 z-n;>H@|Bjz%VubKF6=5`!wm>Sq&y!ySRWW8_nd3bX>ry?+g6k)OZ%*>IY_t;4HYnz z3I_Ggtm3IHR4ZigGTBgSXQ4$LGizVm6jwW{C7L9&h%-%`j?)rX%13BFfBvk z5;>do!i}!kWTGjZsMlkTbDzHWoGK*2P#W*9n(;cv`ay$l_MF()E8~RPcBC~Yv=#eiiobQ+`duwVJqlI312 zjRYnEYadq>BL-I`cL)v|*a{Pe7;|9miE>2Md*ciT$<*cFG1GD@#%M zrVvTa>5mfSnxZzjt!FA2@HePV?}k{y+5KCqQ9)U|c<@3bFU}_Cw?rG=Vp+8b^LNo{ z|Hi5ASt#zyuU&*Q_{dT2;iG?K`u5tt8~_u94r>8qStjyT^wD~&?9Yv+#~T##1)@&8 zkUH!V7(}H5yfAh9VLa7}vqi~mHH%=cr)`)`E|OqZ7(}<-4-WD;yZ5cK#R-i_qIirK zR!=M1OMm0^Y!!%@<(GEv!k8?pJug!)?_@;t7YMsIeJS;X;&#gP`7%y@V(n}i3wTmp zf;T2}^jd9_YhEvVPiq-cP>VyxdRj~7cCJ1tLL&C1cpA8y#4#Z0+6tJek{*C`dG2YS#!EL=AVkrk{@C;nsY#rCV2N>Gd4Q=Y zLB>ZAyHdT~W|xa1@24(S)9>jF8YCu1nmhU&2w>5_`5a$Hvq?1YR+V~&Qa5NQ<=D|D z?S;W&pV29RggAN6>PC(N&%)jIAzsh@)rDP<0Mhtq^nDP7i5p zh&fOURTXg=CgeyD#dw*T?u(l_f5O388mkCzT_3kmU*z`?N;0HDVyzS)#X{BQX!Sw2 z;xONY8Wj#uRXPxO)AHFggT792 z9z4Ewl50-gBGh6E6eOdz=}w)I!GEcV+~Ow$I2KFav)7_)Dp9XwLol-eHDtD?`B;xH zaV&#ozYRq5egAG6;?T?D&%ei%!IZ><`MYR2;s*Zl%uBYhC_O2WrQr1rD{KTqJ8Xf4 z1CptW-C4@8St_e%VwJWY6R!-qS=7>`T6(@NHX@8y)-kEkUKMt_Pe98cyUEw-_Sf56 z!HJ0WwejrFPLjt9a{KsMJ=^!N&%*8-Cp2}m@}MvI4$pecm6757@eQOSfGkK7EeYoIvvY|3;Y-{43!+UL_?awqFbhR-|9;WrO3Tar0} z>)2COz6SaCwHzVF69oSl{1yzOBhjOF<~e`nudM1oy+}?w@yVtSnsi|zu5BZm=Ly6m z4WrA?o)UmM#AYbN<@QtX%p;udyGf;5QIKT@xexATnvUqBj3xjC4F`|=j{$%7UjkvJnunx(w}l4uoT zNAdAVT!SSED3RC^NF(o|B?_2a#I6VbNi*vv`ObZ#hdBXop$D0YasnPEf9KkSfW*$O zsog-K4cnJ8@B;`y>$X5Un>iI~NGdHB43MR^oz_X;bK~RB-9ryOWy2;Awd2{0Tr|PR zN;szP@;;#NDJlHEU~4f5_yh-Tc-6GI*Q*rJPc4->9x%Ic!y|h&El%&vj@L_^jI)nl zuTpl%bq!p1@*pDAl!P5eaU^*kH)doMVT8v>-^e;5B zxvzq0vL(J(*>YSK8k=EjFh83Qz!OyaEVi8(1Oe+O4psT66gpC9zb_K8{boJrQrekJ z?p9!1J&&TDGkJv;K&xY67Qhb~JwN4C3G^k`l@SdB^3zmFPE?naEwPHGt_!)IEaE=$ zE7LkHND?{lqcW9SQiaN!lu={cQ5-o{a6QHJ4=ZHd{#87Ncj&-eqGE{S|O zkDiieYC=Df@w<+ojS4MS&cJvtJL(%hr!A7sOH-w9CLQRgTcQ3Kv&x)GL`k9;Y3+0S zpU$;ZOak%;T@QyaiiN@bUVBkeBXrwqbt6OQIQ)SKg?1e_Rgv3{n&8f;_xS!iCiF9H zq-tcO`-L(DYSK9{J3g>k;(@4aoqpNRmg!&kC_XcZfqt7ycoR8Zerdc(-Wl);1gehU4Y}A)KgtZeG!o^$5~2$=1L^~ z(02AeR;P1BR_FMWr9_r5SXanRCVztsEWY>>TJ%_7v)d{fi?ff6o)DYvpR@;eM|w)+r3@PV|*)>~DPa23cQ&Xpn8rD_#{+3U%+NOUjohy(v$UkDApg zKRD3ip6JE=A$Zj^LcoqMcjI8PUQA|{T27qtPrQQT&zl|$|2+8{{!<%C7GatT@&|U?dioGS(2lTUXb;fn+E_ z!f?;Ek4?TB^&ul93t&f)SEcpcbZJye0V^VzQh?gI%+O0L&i+34*u<9HXi#UFPWe)GwnX{=|f%dvgH!CWiEHdPW$p z?%4EJ&GX%k!E|ijJm1(*nW3QHx*NSPL=HP;C4tB}q8v0P&Xn>@PItA3Yw6%ll1hGg z`t$9g6VASEmyd4HnXBW}!~R;G_8$0qbYYM@n&{#1?F%edcmF^(*ejj~&KmvNWx`}E zHz(pg!~_9rcmLj$ex!KduKr~a3a|r8ilqO>0T8g$MzKUPjI4pV8kyO3?wWYg?xd3P zqEDJAez1gxXB0^7b5pb|1&IG8_pJlAT1hyK>$*c@Q0J{*sr0*OB{5-V!?-Mg(Rlgg z;k2GN(z~@Rzpt87)=I=65`exyc}a06)2z^H$RSKgl0t;eo(;94?W4d_Lt|6KfrRw1`ghjBY4Wb*UVb`==K4` zY;?08_ZHHm;-CFMK00<6Uz9W)s6^>L!Sk;2gl+VN!)Jds!E`=@BQ{n{E#K%+mj5Um zKW(V>gi|*B(3qO+MeW1Q4he1q13c*ab_n@5YF2o=_rSQOS%J87D#z*xD-soUC)&u> z`k`1B{RA~7d&&9vTyr4a^I3Gw10}|wleBA2NOFh|(8Au+x(_twMb8>G`q zBMfT3tGI3+L`}rqQzsT8<$ZFXiQcDiZ6|uo|$@z zOm3&gMWpKVQEDg4zrRnbf-}N;teCXFynz>48K{J3{XG`H0HvTLVB+$`*A{->?-JQ0 z@VM!uUm_;TPSt`3cem~c46<)tTo|m-H-8~iVD@=MeDb?IFBDQSjV2vlb>^#BRkocH zNVfNoKfSO$p07J5`OYu-*1%!8bo2|LcRWJHYJ z=yay>Ox0B|trqqHI4r%Wc-)ECE`PN8zjbk{zE|bFRFtD_fYp?g`NzplzujO^EQ!@< z-@C-ltua(L7nG7b$Qb*mDxdJ=5FqSohGAu3AIMWUkN|T*xsoIO5mIt%xNRjyIHr$3 z-J5cg#(V5mzz^|5&S{XQp8o-{hl7=K@>&mey>yN9+J4i0?4xn4?F-VX^~9vO=kUC? z25`}4yamalI_@k22_6XV1XSM ziU(ozf2$#7k@v$G*6?RdV2B7j4`Q7hlLbvd$#8! zW5{LS@9OPqXYaTh+1J=X=@Ht~xXarmz7pu}O0ln2u(F;)B?Lhr%RrR0{jDJ0f|b^( zXr)65MwKAT>7B$$k~cQWdlFsJen8Pqfiu~s9dD6+&j%rv(c1^7N8l}@adisTUH(h4 zV2}$%e4|*TC3Jf|voGSqizUa3&cf8KkHdrCKOusK>wDU^e$(QWI+d=9P}f)PYA&1E z`%|w)6lK$&6A$qQHGSQM%1Xj%<}5f$niz|ODYh1YsFA*nJ|QJYZP|CSH<9?V=x^El zELxZ&5YiH?Ee87s$m&wYn3a$SBDadgt{v%M+$UWgg~qbHXITdp+~>!*Ht9%=O$7Xa z%PAM0MB*S@dY^=V-rd!?t|@e#Xs!9_sKZAP}5j!KL+&_9fHwiq=}_3`W;JD>8!j z7ZQbOwU6#&*@z8p1NG|J`OTOGlC}$#xyOc=B_PQnO^j#|yj*bpALF@GIP%%mh+7q8 z$c|kSJtLsQy@*Wvs*V-(272R8rJyrUL6DaM)d8rounw>^$`2X^DbAC=A=89J_Kh@HygGu0i(wlhIme$wtE#B2}Bq zkhso5qQmjdh_6Xnq+O|M@&wQ?-;b1jt6yL_&OrexzG#{z(s}Uoi{O7wFMts&h>JU| zF4fC3C+O8&yh%{^bT`!>xE0K}IEyNdC1HV`emhlp!#0w0%i`dT=AdAlpD^w@SeuRR zCi+lBkl19R2?8v%GMwo__*ei|`Of2*ph}!K3)8oe-nTi(@G8B`cEww*Z144HDv5eI z(rSBS2=0v?xFNsem?NrAhm_+6{6ikk;qyklt!*V^lKe-7PkCz@k(gh1rYJ#;7JgfH z(4*F%6S4|vRwT8 zHi06-hb$DA7?yr(w@G)S61G!@^~&;pe{>VE zYd~sNsS1}Bz4zznWkC+#rrH^Yf7tcPv-leoL7MXVeP#YP$fp=;cL3GmN@=D@g4|kp z$i-hnWTeUq`*OwaLvFY*AKn>l3Z<9%9}s9E@pt#IYpQR;t}8wRv5V{#sqk!bEp)7u z3X{w+RVCj9d+7$q6kt~2$N;(7cat|Z4`JSj-c^OG0^88ee)F(naZ#$oXVC<~kKnMO z*GP>Mnki3rrng^_$#C*N+%oNZNT5L4jVK9f?>4vEp?~30M5a99ciz<1|DoM?r zAsh%i4r&NQzO~@L+r(hRDDZFC@Bi}KjM3Cjz+W* zZhUi~%Il4F!u%)g`mQqdjYvhW)mX^)CNm}*F3&TL{!#dlc14XtR2TQ*@`&~-azTWi z>23ngP*27TXT0@m)3(?=WHl@n(dtOFTy$bgHukyo$bGG%~mAdlsZ=rQR6uS)C2^ObB?pr-gEQ|wR^Yc{~}=gc9r*KfIC#=Kt{AKWm|4FvS+|Lv6vliqx^3alY6%?x}X5oa$sj-{h^7^D-L3#OzXrElY^VKF}i)$R^tdcK) zoNFpfKr9uj%11hPXS0(8*H^b6H0O2S#Sa0YO!4Gn`n|~l1m1rM$Jv5}Pwm3=aMhaP zbQ@O1ZGN(s;&Hp@z&8@R;Qn0r4#ZN5g%A%eF2Ctc1^{N^foh6cGaT{G(AQzmD=iTp zZ`Vahg6xEzg7il_eo0K2%k#7uFWd$J-v!_STXHP60#L#GYNDJST%)1PC?6+a-i{cS z4`o9GhIRIcuL7g==jxJ-b!GiC5&0u#FQJ^fLk9Cd(`_bP%u>r|HfoHjw0U%|+wWE+ zOIqHU5!7&NFBM9%8q;qsZA(I3PRJbqp|tQ2%0=`4aHz*}Mi^IG{`dY&kr}0MJq4GM z8oG?i3Y!@%APX9|hxU>{am!D=*|lFNBAD%AUemfOrt|=Z#EtCx@$D|5@ObA#rBuU5 zpO2-qbmLK!-_nBPqd|AqRTZ|OW{vr)HiF`lX|lfE!G;aGAnabEoz^L;zo~s1V)#(n z$UyLFv%{^OhQc(>W)@@Bt17KFfNV@@vnymbJEt{P&z_+Q8HjtMVe;Ome+e|Q_HxL8=PU@22~fJXlj*OrI#}UV(V;0 znWUB*E*9{loclyQ?nmeK9)guKI`SQOianCz5>8ykIxp&y|A-Mcpdo$E2oed}}3STL)R~wmd%Kyqsg=1`_No5qqubI$ba2&V>fG^kX z?6916M^aj%4stDCh)sD*3jKA1zcxLo${T^k`c|5JBb9%d)c9VV_$Z6L`u$+_T+yUKCzJ3p!1YNmMVZDjH^HZFz9)h)`(| z4VwS`yykkL$AXPn)s7;+-btmRi0zc$$WY(*w7YK?b>&~^revN>EZ6)6Ls>gIBD5>h z15d#tXX&FONkUQ2lLhW@YXpe0a3Bu%FF6$qFfCfRDp7Ht=;ty)w94CZkz4XB zMz8uUx{1Ji6(li$PI19WaIqjqhLdH_(_uE-0*~c|rP)VQu?XPz)YPAXKI6DU(@j0) z1YvhH$RoVw*a~J1C@!S)gPL(f<4SeNkNKiSvR9A~Sa3`uDku)AzwNZB=AFhREHZAQ z)(=q|_-7dD7`BanAxXb2s!Q0u4;7E7UpZE{Q z76<&uzlN9Xwsd&acK6Eiyu^XQyeo3J_oBcLvXQ)?AQvCvlNZ7Fd9c|Dg~spN>EVGq zrm`!*BmUP)_RV6_Kw?U-k0X7t0r{!{E#d=>m>5oY#u&;ViRz$dLbxXn)mJS+Yl9V7G#Z(J)s1X*zwVJ zT(C{~U-LLVm?eGMz7Xw*6ICAZ`G48n#DW;TnS=lh)3AGint31aS5DQ zxX9b=ASAWdTBj&5)p@%02{ijkL=6R{fm}tY5RwlsG4(ox#qW_ioy##tR6hFupostx zN{s~B-e$1g!rgISOw=r972~YMa>#=d!Zuo2xHk2V0qUQIl3}5ejCED_ju;Ato;bB3 zQHf)fPf5Wy#SoFg3+vZaG{c?0&n=Jw@UJWd(=~m1d;d+M&CvA0@wnt~-b@`#TE*r0 z#3qQ|zaeam-YFLQ3a}b*HY}Jj?b0eRY16~J6 zpgQdw6Z}+zMXW~7CQfSV1iQmw&WUgbsGjRG^ch}2OSB89&jmGl~?3c z)50R)vIRu)5lkM!B6X!a-Y~tpO!OA|Cs0KM_TU>+zx$cIHb$@;Md76Ixh4I zpP5=BgU4$^8WE_+{|7v)Ab$|m@n%_+5BEuPD_#vwY&%s3>!Dv)T*GKK_fq~lcpr0l z8ICO{%*+iJdOT`t*DbVNoaUBm?}))vBccnl73b%`f^ZOQl1>+v(E zxS24-BoOR1V28$<(pF1-cDBh7q{^D9{>So7R63kBN*OyaUepM(i*FsGk5*i+NLYY| z4uhks1yuuk6m`4qmMmqS-2r({>>*V@P~*_sb17ZKG=^E?RZm$Ln}g|uc@_PYO4Jg_ zejv?R-x*%|L-ZjCH6Dwr%B2=D~dzgdR)avR~6Yt}EooH?vodebPurZWUlAkNz zl;N*4w$kU{F+?nqE zE~n+h|O2eK@CFv9QphY8Itl`PM;vvvRFR*o`5fwcMADe2W)+lnj zFvO|Q^&4Hts@7NH&4RwNpU5S_Ai!0tZ{2P*{@U@2W-w#*J72_lFb%wP;nv}u`!Lq? z^?;8XVdk}WAadW(siBV`FH(5Iqk@jo_?`okxq+m65)p(76D9NVbHC)Sb(U;DG#uBX z00mI-OAU7XfEB;ir}!w&7dquNxY=AxvlhfQBtD#fa%G+llv1$ee5mJT6D$jFvwhtB z+_PhlTz~UsDJ!l4IA>TMJpx3RppfXBQ3~ zANL(k*H+u$P29t_tVf)1(TN6Bi(@cufY;4cze04|z3!EzzJqHiWz5vzX01X`QY^nInfiwFbS3&$}9GvuFD}qIwk&(pAK0 zLfK=9s`ZXo+ly{1cVD`&pu>iydz!7%~)minGTQY}crpWm;c@`4t(H3%5R&aUpo?7s+jL_y!e&25cRo z<{D@5M6p4DGicIh0@I|qoq2jgejZ-<_U~9P7^y`+aD3eb&-OtjalfGUaKiFy#)rz& zBSFWj2XcJQwYa%cpi*Oega-N6*mQEFFJsnQKXmAanBYmECXjB6YmdK=>AXMIf|%_s zIYb8HBDHCqZQFE<27fUGR-CMTjtr#Eom#f=XJz?f7=q`9f1qhbJba{}IEPB5qq~eY z63Ctmr`KNYqaN;O;-}b~d_Rd-berZh4)G79vA129q8)y5OWf{~^LFSnjIDO^wthOT zQwpf9WcS}pK0`-7XvFJqoGl}rH#snBZy-C#?6L|*UxD_8ZCh&4)Qakv|NMkqN zg)Zm6(B|wVw{5H@67lvj7KHkMYTV&+2c(a?wU7!Jijy&TeVF=Uvz%K=3u1WcrMqZN zuvsUN;g_tTlPb-8cR(c|)P;e5mcv8Hli&qiSl(jRXCnLOPeO_u^s2jpg% zyvwT~u2;@QcjGJ-6KkxpZCQa11)`HFQ@p}D8O#QVDV}z4@+0E)Z!U(tC`NKCoTKFW zT*-r0muVCtdX({20-fdWKoAbcNcUjzaBHk_pmZ3aQ(6@l^Nh4nRpOVm%J@`@o{A^0 zSi)k7it5M#(WY|1%YkxvmnBUrx@q=A{HZ%hK()!oyBSA0ja8IBut9T?WUBTHW>~ew zrNFoR{;X{I^uJ&$=od8Xq`v8LP~hE9-~CW=e5Rw$YlL7O@Je=1O2uEfyl zWW8bWDRjd6Dl?8|4ka_A?ifmc2CUgyy*d&tj^c-s|oj$i+ToqLxG@fj?bOx?T$L~)X2IBqGc%IaVUA>(nJ4J3gRA`)) z=rC&;KcecaXI-e~V_;f3z>J``b|TU}t}tqM&nWUOe$i9oN zGiUx+7j-DrG8p0$T@Zp_Fvbg$N4p}8dP035LS^NEeE{zic*dxu0_uJ<{A99WupgUD z>Nxbp%WNfD9ojaKp7!Y44HN_h5AZl*0r1c9%t`xFar}8`_+EgqG1?>X48-2(C>)ar z&sYK#Sj+2k7HgY3%k3KCcoLx-1d-}^7b>a=8Kme3Mh+9Y_WE2XgH_kf6u5?`l&W-* z65VTp8QN$x5dG%YeGbs z9U(Xe`IPoWfZP13BXl$r{K<02s)J5tMc%juT@#^OngYHvcy7SQc@5G1S&bt|Fti|+1kL+J<;*ejfK;vs2WbgYC9vYjwhu( zNtrIf@~n6<#pqe{9X~AugSSLa!AR&KYpCvp{}Uv zNbzOEGyfaHa#cro76r|uG4d6ezy{?sxkJ4x9nuGV?d|rkIqi_6%>1UH$_BQMayZpj zPK9jX*c!Ua)F#3CyT6FpYeXn*_T+F~zBn#I;4gxX!?3RlMBLuk{k>L`@_Oagueo zjY2LKF@EhGTArvOJK>UaD-?l_D_pOy48oZi4^j{Or?sZab-`51&4n+*9h-U#xbL*` z(5ZTJh0oA{PbDd=6JYpAqiB*N-l+vC`X-0pLQce?dZ2#EFfpzWy@3ZB6uF@qRGGWk zWmVSD1$lL67rTy3pFnT=#WDQY5r>^MG0o$}T7ntmS4G5suw-y?tU0@`8_E0L0Q_(H zb<|rX+Bw-C&ecodhT1-un`-X{lV;C2v2AF3lhJjN87qo{IboK?s0CLPpnBPCd3qe2 zc+Y^tsE-E-6#*GmmTkI;b^V{&nE}edso;qDd+)OW>!OLnQ{54NfSi3s5WooF&&qE} zc?%D|1u}pD(0J2bFL>3Avr$Y=hGGaN_sqAiW7!nV;(Mv;wiUgKrxE-40F0}Ld6BhO zFr28d#WQtMxMfI!UbYpRE7RRr=!@Sg%oxP9nH70$Ke~Y?W(#n~t#k;lfG%l%CGdWC<#J3Ab?KlBkk8{&=)lnc3RCD0wMHL_ z<&$dik;4k{RB_2AuwG-@_id(~FB$W7HSZ`%ft+dV91%@BbT6sR?I5ZvY;UC5m98k6g$K{%Z%e@#?o}lO`E-<4P7zelB#SnDm zFh=V{@P%rI>Wp)7>82082Q)$pY&>G*w#?$WNG#{Jr0=9MEk<<$sR7)~IwbnEtLB-U zvA0Zen>5wOMRyc6Q-8)f$4+vvAoJ=Q980Z$iS(OeON-~jNTZE);oqA`2uQhOkW^bI zk3ovH(-Yn|R3SmH>k?1nt#L*roZ;|rTuu=ET4rYGDcE>|SYYDCFo5C%T(lJOKn@+! z5_J@{$FNL$Aai4gb+4E>Z>b?@rU@DwJRkBt6p~+{XV}0%_mmphQFN|Wy5EzXrJ1+| zw5U{`B))*=pbzQrbZ8UY2YLc!Q}(<*0J{R4dV$>al>WoWIsPq7ROqhi&L!0tR2!{*;|= z`lcqW@J1QCt01)AYHjEJ$6j97h24?HE;|-qN(+3(u&F@nkTbg!jp1ebj9LLzGkXQJ zVQqTuY&%;6`Pqm*Dm8EI-Cl(p)8vc&j^YeG@QDR-nxj z>sQs3LeyX>ArcW{5QT&vJYlvvcZt5ijo7DLrsq7}sFdz^n6q;591xL@p(&@0ci9pPK@VJ+zrEY;uu!UA)ELv2h~@VC$E%(v2hg=MVC|;X5aDwgVD==x~kCDrjTpFGkW?M@t(7YQ|(sVT- zrA@$er@jZEnEG9`t2ROb1R6@Aa@_?2I(d%PD^aADi`q6a!L&?tOTwQv(9S z@MD(`g2ZzzK%tj$zOKLq1}MYsM}ex_mw!dxh}m)#c72PM_ADJDhs}M+V=wz`_(e=1 zu2d8#YqAgzOZ_u}zk5x6u?@IW866@GGr$Mdrf(#HmdJW_fY!q0g_3caE|;6cN(5-{ zf3>VC858@!-ma3Ofn~Vjoe}%KB>9nv-7dsWrkzy_LxS+?Z|^Epu+>NwZjyws4`m;E zW^tuJ&tz9RDznb1-V})qNSKqsJW~8dJhtJnKm{1>%#b7MR-woD1FVqt2B|Wu84I~x zg6lOQt^`gT2F>Jnavq8JXF)^Q3qIdw5YC1K0x$+Zm|UD(D^ab~C5&oPF^%2&GD%g( z>^1JZ3Xsbw`%6ovyb)YFzhUZ*zp#XA*+2ydGjp$N;4uw+8s2aC#*gC3Gi_gsSWj}x zf99Et5BQ)0Re$9mqohUS#~rt^G-U{2FJbY#TT_yo8;xQ!M+*46lal^C$rjM9|Us zG8s}aP~v{L_9P4h8o-xdkpfQ3?X!VU=M*%dCkGf<>={4=Cgnd#EZ05BU-bPZq@@jx zwn<0P;<*|~z{T!))NQ9!olAXQs6(#)RMT=OaimCJ-#! zL>en*>;%*4Ee41=r?qofOrY(3J;u0 zn7#pYlI)u)7fJkdv0=F))0L{*dP_yYWB3-fi*eC%X$^~5 z>D_b}QJqcb^~d$H{-QD;K1NZ{{T>CO!;WT68NueRf*so>AYL*Yhe`0qlDHsaVRB^> zx@du?)p*j-_~@~OBuBM}^=!4a&t$2n3~5$B=}Z&$fzV*!fx9n4*WQ8PT)6a^3*#-%g9X%F zza3}hWfVK-BJS(w#5#U*C(hVG##eNVHOtl3bsU789Pj^ucT1Sxv2`jC_@_?cH)6t= z$YE~_FwdY76Q9Drtp{5%mW0x(d?m5>kuL3ayx`i@PLDmy`qJySm+ta>Akb+IcICPh zYSBy=zUtyjf!U;%rXTPN*gPX|bs8A*M+Jsq8!ydv6>a}034A#cE1d6n4`v9#(IDj0;W5XxFAe*P`6LPHlhT#IIZ(MCB9Fg|4-J+-Q1mt>KR zv-koXuS01&dwhUQ^2o|g76f0>1+@GAy;EZx7xSX6r@=V$f@E-K(s3iU!PT5tZhPvh z8VHIcV4PT^5-y+XNz#OYwL*p3xgNlq78K?~*t8)B4 zWhNK{6~U2n-WKlwa})6_UJWk>hZaHS?*d(Cr_qZuZw%0nAU_E@#V8qRr5={B(5u{A z(EsZAeoRqaDL{c2Y$Pohh#2rNIMJ*XeXPy;U8r@Gwo`hnu(|edAf^EV=YiG7!alY7 zmxbyF%sIk)M|jcB0DPuvB030M_ba1~F@+8G{GqgCq|CE+aPq~|Rr~IFqEd-FyT&Aq z6$u9=C&s3td~_UV9M*xdt&bF#D^LtY-3Dkc`?xc#<6L==CXFc{?rehZzC6aJqO}q` zl1K?r_#9*&Vhsh3AeQsM}H5f<-Cu#Hks$faHYhbaL6KLEgL*SB1_`W`Wz z^kiX^V&edrqhiOtRglai1kNc8^-%ta0Wm0*i>zD-ho35mwsTcxbXqmj*xdj~SHgpk zhMr&yBa4*Y)oOtwPw_9FX4|03GGO6NegV`HBBsM1?ju8`V$iLRC;&B>n2PZ#BfjsO z{esU_Sy>!Sgp+k9dSv-V1FM2|z2Go|v_a&6$c4DT8FNB%ThWmAFCN7?C7^xCTUVNM z^EutW#B}xr(V5LUEaIzbBYleEbV#XU!@-VYlSmR*s=4a<%iEi*FO>^M8i;bz(+3q8 zH*;dmy%pZ{&v^xvh?AZmfeBF$&yrP$%4P}_d<N8&I6L{+0LwQ=yVvgh z%42jx3L%N2(Osj54LdXq;Nh2gSHaACwlhc)w`<59sZwKpwy}|qR?myJEhhK!=mRlv zQeCM93Cb}lf*7Biom|8--HM_&Ut$*+jkHgIIZl&H_+0Yv_XpP6vj~vwSv8B~V?JR< zSz)^h@|<2~b25m=2QJPm>#A+ zLRy@3gT5ZKr%_{*98ZB=f0A@M7rc0KCms(R6}#*ZFmsm=d^Ey5ZT|FUZStx#42wR} z0s(gAJeK?k-r>Qfd!rz}RF2gi2zWE@u((b*kpwXccM)h}C8Ihq6;^N?q5(%D89f=K z+8f+;(31+f5@9~tIJ8mpDrmWCQb8_invt&VmLQOjk=G!gpd9ct9cgnk$}^_4Cw1-* zCgoXFR?BOP^zAPVTfJg$5wk1Y8Z{Vt^h@&T3sKoZ=Jt`n4q$qn z6@rSt#-Ec0GMzmc8ncW1(!qlyd2XN}06GchKpyLy6Ce831#X%`gdE@rFejJIE^b+I z__f;In<4cXlEMV!uK7ae3#$sc``SDZ8OP=-GuE-BwcZ=mVu_S{1YGckAwF>NKS9uS z&G31re_XxOL^w36US_uZ3M+sMy+6plIa%5plc*t$XosEQ)I|fftXM!R*o!C2sA)_c z_tJL5g5&&r$;c`^xtRL>Q*0QJ)CDg)63K=jykeB1)Nhw-tqCw|WID$WR6t zm6m|E+rE}~z44rIwaL!LNyDy$R1~m}?~68uyzdm@cHjdol&2r%jJMPrTz12>47`Z< zX$7~(c4zzXQj(hZmoj3ilrLfbrpDSTI2S?u&FT!!v)>%@;M6anYgo4X$;(JF!h)k2 zLg*I&wvsD9ZOtO9f;Op5?t8V1NU?R>s^zs_C-Ro6$&B0|#ba7p&o5ABFY7ij6PjZ1 z+$ar*12dfdO#*)rhO=^1)|-axzD8(}UQSSz_YBy-IocC3rj21-&{#z3)D zLKe*=xb0#H9b@i!3M~U$VPz^fz*0M%igE#vZ}M^!eJR}illJ_cyVC}8^`3gvTu!MO6`-&%%iz^Jm~D_gqO z4Ihpie-U)egueoA11vf8LLyw zu-(;rIs|YEAj&>Hw+}0N5^8;neSI-$CXLM`iJQX>(yQbaBS|5MFIL(UVh5X~%8DEw zWQq;yuUvy5`4-1e6K!ky4W(hKbt`u&`qV1Ha>NNMQ5`Vn0%~8b?;^ZDk!kstu=B;P zDyB77Mm@UBlsvETPBjl+2Nl63#mE#<8$ZWR9)T_>i&c=XenbWNP+Jq?4v_3 z6Am!3W*4m>39u0JC_DS{RNKh%E%EtUVOTe6TN%X5g9Y2QSnNly@^HQ7s~DC|_DX)= z?L;&n3WD>)f(~e{R~i~!b_vSrqtL#1?XIpp`QLSg_B(4B1}2PQQ55;=vB7U5B=CJ3 z)%B|mJJ-U?Y^)-w*l}i+hSz8`@C)H<_V^jmas1wxw2Dlg|wKZ9+Mqg7Tq$AgPez4pL-)GNgw{EyBU zR$ALwI+mMX0+l|ijO|MJ)GN^8(t+bEFs}71;BEHYLW^I<4Im;vK6EG_U=c=W_A>ug zkd5{h6}maoNqO38hw@jl_rejWH9sTssI@j+zXZ*IGxA7xsV@w|Z4#@RLjr)+F4X^36b{24?%?B_lti?;qXXmNCg574x67&+jlB0KQ$7dJ6G0v&a) z5Y+{M#~D}!5V)Ure7VsBFpZ6YyQZ9%;2`gHp1$8cD_+jlB!B5`lRKM zSs5x#Ed#yOw_G@lV3m0F3f!}ytkl2bZm^@JM*ohFv9;Xd5`K$2q;4A!?^*FQcuxnK zW#h!$Fx4H0kPIYAAg&TMXAc1wu9DZKXuera&XP$w+$~}BDI2J!6Mb$11dF?;EceG6 z*a6%1T?}Rb`ec>UCl+S#MIw-ehCXPJkQm+8pL6iQ+Lb#Y06*ix)wqh}E1~t?c zl9?a@T!`*&0hqOOT9iw^%w+W;lkdvbP6hKDih5{lPpsDJ5^0Lb6_F<5mN1ahCkkS5q|E$k)?mYLr%cg`EX()-bG&{xOyHx?A%jz zQ)Y#|7AbCI3kb}+@le2j*=lEvmZkdacODBpyF_3>2@r1^g%Ovfv!*vqX5znmwi1UT zLAp>hZ~_4Vzv6GEb?L&Y&N@SyDy6arKQvd5WJRXcm58i6}>CQAhNhT@cuNaYe@re?7r!%0)0%)@AjmmRe+ zJf*929!WLe2Rz>i)j~F^|98pKfC77<;!bCLUQXVPO6Xclw3GJY5|%mU!u+mT(i$#q zKIOe6R!hHG_GpG?iQn7_Kd$fp*rYY3qCBJ#=%sMKNdAh1ATa5C`gm6N9@aEFF=7>+ zqNM1d#iy~XD`83WicI1x*>F<}zwX?GD2bUertcCe_ic;CbkF_a^kr z4FlP=;2lP}aqh7oc`233tOYt-Z$U@(t=wdkXm@fzn@ri%Lr|K9E>0lC^ly4AuFFk% z50t@Cgb+7(wI^nS#5#UfOh0ew78aRjS;)tcEC}rkJF*db=c05mPHJ#IC_C;JPUvP z8KaeB^?5@9oQF3=ptTf+OPb-#Gs2G6Wxn$;+u?%0;~QoPAOAI2ZhpFY$jUyesDLrf zTV@k5P19jd)pjb{^)|JLcl<6FR;Ow@gG6rYWpm9@rq8;jR`3B)Fq)-nSb(1<8gfq~ z#X}Gg^WNTvt0*z%q_wT3*Ro!cv?c(ClEOIaoYCQ6h?S2P#aNJ|&d;>w{7@v50Cy1LdFTZ!-tV>3;-suU5=D-=8<+ z6uw9kNN5CjV2f=oH0i&cG4x~x?^TH*M|(izGH3EM`^`k)>Y@`|26F0 zC2fsDwa3s&2&HLdz>o^{VX5}Bu%o>Ltx}@&tWBM)?c@YO@WB8RI(a5@$ zsU*hG){QY1k{9T0)!ij~HAXDI+-4=#PaLuYpiV6G?0tyNTEcUX1K7xRM_SPvw~oH;7L zLOkt?ON#wSGTKr7{WI9s0f4n}$p8&bM)AUE1*P5zClw>d7MX=Wg5W(ad6%;aaC?)>vtRYQx-RxwuY`YdIuW`;eIm;+z@pyWi=qF|`# z&_Fo1-G-#Pq_BYz$c4GJ5>OOU^Ijie2uxey9@eK(gx6#IaCrR3PsgSZ+&`JTC&^fu zT!hxdMG+zSOEy2@=s`79V zL!hov_ndS}_Y2LIK*wBih%R9rHpzdB37*&yg7zR)`!XaGt+>GR#2~~zveaRt!oC%A zzaQ{qAl!jS48w}BvgEp@Td!Nc>;^LB*-p)*z$s$uAh*K}2u>zVeA*oY9JVmpvC=#c zK5Wa-T}m+6F>;2qlgOe9A?P_*GKps`hSC~8PeMj*%u5dEQRoiuJrTTLckTU|!)}I? z>`b?|+5~xT5LlffBk+Cm2M;aUN}beo7b}zREey!Vf?QCH$P8PNBF?p6m#<6G2NbkP zd>px#IF~q7<=LL$$TBw{cVy`eE?1=WYhVOv-piRYw4X4`0~ydOu{~WGc9`HO*T8B6 zW5bb)ewaTED&>X9>oyI|Hq{=10b5$nq#O$iINg*38b}j=2Z(o4n}SLoNN(B1Zr&I` z0iT-r`XQLAEglsDtJ1jOxtDQZd={BNOaQA@2eF=toG^Hu{WN>w!N0tIq0x`n`xNSM zdo4ynjVbU*=d zX(FDgzFw?pr2n!!K>62}ym}&wRki?qORDYoy~iI%gn3!7m}O{3G?m*^^J>>Ahj!O> zynjks`)RN^<54uQEGqhZ)4hrrP#? zGddTj50%&+QL!&ZgGln!NP9Zi>Qbrr9wp>IbYti*fl~%*#6&SoOb~!Cl1@56OS8+_ zBd>9X(Wo^2L}~AAILrlQY|H`*mdlqqCW2E$)a8+JoEbg3j{tk0(UlO26jN8e#tF5h zM00}F=H$2$9j0J{)!p^3Q2GahlX!MG1hn*yecd@GPRX$p@U>wUhL{NP2n4W}ENX#F zE0OyXbSJ$R!<;6#VVQnQkQ$yo~w1pj%{v(Hw(ML(Cq{4?!kx-v+o$Y0bhEUrz?wcdQ`Gy!?pqMjUIN@ z04YGgHjSQow;A5lW?zk=#%m+w1vcXHmzh=o>U!J-fICJiyu07b)=X6a6Xzs10cx@A z$p)}7vnQ9TF9QYK9SxvLeZs>|PXK~E*^;37Q`F#$>xIIFXletMZi6e^78m}PI;S#! zVQouihj!7}z15#eh&^0)um+^+cA+-^ocRe~6i*gyiY^M7MgvT-kt|9V1q?Q2t<*f7 z%}LiX=y)e{%&M|VTiS>a0k%IeaNA%1xnQ+wH2=itTIEqIaD_rGr8c(wGX=WHM+mC2 z?N$t8%A!x$^!jPwmwNgo%poXjIr;DG^*pE1Eldi0*+-=z+qEzLX*3HizVmy?o_ z{+=!^B&uBus+z1~%T0QV`z&^;XOtZp87n0V(3#Ej9?RWlz+#`jtPbSc2#2fkaL%f= zI^es4??&zPu<4~iYlz;VD-2)4)NYDTdxQ~)R2~%(9dx}Bza=`{auOYs=fSK=x1)iB z_BSqlPjHBtBa`w?>Ss<|N0t z=>%|7JAo_!+!3K5-~c7GCDxXc{oA)w8Z`8yv)xWNa||Dkq=i@$Rt3|9MF31>!Wzdk%O_3QR+B zPpg{#3hRAoB0?@Iy=;BP&k^*J`mR;;Tl)T;#h}v;ciUP)1>q)k_`C&f^}zwdk8MfJv_1`SG$2BqUwovAd$tABELf@7Kh#9P zZg5Q;Io6(RQr|=%sxYyxQg&iFRdn;U{nfu9xy!b+PNqTMJGuxluY;d6RAT7kI5oN3 zkAa!Wb<-}31r?AeUI>9oBmrMGH*Yy<3p35Yc1+Ai`s-VxP)_$L815lsWGAYlw*Th0fkSeOJ>jj7kAgdIIdl5XTHv z1rA?9d<-Rzw;`&i3t$pFyZWu*Gd`=0sA0s)bDEh?{e!cudIYc3;9cS@0GJYKJX-f4C4UIS_mbF+1Qx1@T=OIYq{~zYPx*Cc+46#f%x@(C)bo{ zjLt3okeI%Rsi3L4GTEKu*#HJHyz?e7r?wzFOC7hQ&wTR>RT0Ej z3Qyv^i$`1TlSYdV3l=?L&Jy_(7f*TxOdZ*|wYk$-g0my48l#v7kx~F`2N-0A0RON0 zm0_k|L%k$2x5o0B;_1>XZMxfSmQ-g2g&xQb-(D{NoD!J?p5Y~ZiFH>s^PO`bR6$n z5)Q_<#%n1WCsCjmys)(P$k!2}&>UfBNol4`NmT)xHS_aUSC`=9?;iFOz znb0xYFY_!dwoaV?W634g$A}u@-c7DADbmu~@G)@+XYp*J(^FvDwY;)~UTRCfJRY+~ z2L!VcHB6f5i2kdXZcP+sQY<`)5!@L7HZirL?w+-4!$C29;Io>%BLTiwB1iy+L&G^X zT9FYimd-tK;kn9G*1Ue14m&gJ2(CR(|1Azoc$Aqyh4=SL|FQZJ`7fiBfn#SkV8_&J z3hZd=wS@9mb&vIS?yu>RiCRwosS?%Fp~WF`W^;;*8U@bhRdY>^aZd^1qq8gy^n+vV zvGZysb3w&yMpkXh=GkY4*VfepR_Y0o16al*5h6{MrD82H`h<^Cj_HtrEo{hg~Usx97W?({|>Kc;kX2blC8kB>}s0i{IP-DN&BJ{vudtN;N;O=^ydGSQa>SO^J}rbnWjwQAU#CT zd5WIlphEFpQYjc;dMdID3k)1ySq7xJE^%JAz*nn2Jm104D^exgZ1|SqkYb50u6!w2 zCX+GbIF6DL-mlkMEZFcPdl-y30>oCu1?LLBEFznfg!v?3pUbgG! z94WmBb0>c=)AGsPGRw5tt4bsBt0v8>{4d@mHlWH^$!R^ziigtsS?UdQSr$*cK3l&U zDo(Y!Egx@5j1c4&{PXWbfhx{wqvKO@XqXi_F-JzVPRhLk=xM=Of9LB=rJm$dcLtQ* zFb3>62_hCTSzUHdIl%6y7RdX4iW%ha{37sk5sf&n|IR^h>xV^1wQ^A~;?tcoktcVU z-cr5vpg7A`8D+}hog%R2e1x3qUh)U8PUoqETwaLY%1^yzCF24xdPubwnO_T}5(B>z zBG0N+wzc1W6}iadQGI&KFHr?nlSOlOVJM(_H}lLt{rCXk!$WjZm3#lcWq{wdnubl+ z8CLX4hhL!50J`wxlU0(FLa(&lvk+As7U-`juL@=+HXS^7Upxt%rar{MnJcARZXXM% z5_@L}7con3f@UKb?E&(w8pVGDq?IJP{OLbWcMoyD#aNd-N1-2!p|g{# zSw1{WjPu5GEM8_+ir$S;lri)Oho8dNzP6X34Vr@ZyAYm6{yU+La9BMyYewpQ6+~RT zq!y!+OOVA2ReLMD_f}^z8_B{)n!l*YOJD7lRUmX4e*39BITu^8mrm3ubj8;HV$v%06K?yf*|XaX?bCU$fNko;~+Y9gJUZwd^-4wW16@`2-3ap z8Uo6@#5srLj2a6s8>q%pXH2jBAK0ZS6jt1CMJ-`#lKCfeN~A~`Kig|BfxE=ze0e=o z_~LCZD4lXgvzI0jlIu6%$L|{lZ zMnyo@e@mB*LFht|noD7fs%yvkb2GVbmXrhgg*)|nBevA-T|828+RuEgXTZ-|^cfeQ4=MV{&skt7WWc-p|<*|i&wkQuZYjWLD z2~aBIXy5s71Kx_Hw`O}VKN~Xa*&TOA?C-GTO}kvtNoPA#ZuWpC+>*-Sq`u&I)U-J| zhg{+XMw~=91yxmw2d~X4lk5W63qgl{yHDgBw}A6R;)@ShC|O?>97N5Efxc^Yr%qNtax}RrqN155 z2caL6`t=^&0mZ@iShx;Z-V;v#z%WBx4ft%s^x!i6j}m;mIj4vMIm*E1F@J{kWauq; z2-*Ue-SC_tDw6yHg!)3aIdbH3LKsW5MkSSpb;xsJ_}^{QKHL8ki1qZ+ugE3pjvdaCAhwI+ScrG^ra)oeTM3!WZP zX*HDWSIvQs6nijLvd(UTXvC$uc#LL!k`meN5 zuy&54!Zq(iQB$L_wQDQndYNbAtc1(TbH*xbb9M$om+$2e`hs-rEZVw?$L<(}1a_l; z*CD>OX0%qjvhUCndie0WR4u}QIsVob!0ii~@y};Yp*%!{WEB>EuiBSOjM3;rkS?4O zJ5aPk@*u&_Dt~0N;$a8`A3CEu zL0m$A#?+#FVF7NNu>Rp+#U=e~(^JBodWuFX@0E{n?v0rS6*?+m1<#K?!`AU`ROq!N z!$J$E$=JUy_f44zCiT0YUWd@vpiP4xy7~o9&G-gkV%s6Xt!a!A=E%(fi#j}gnn+!~ zULG6{=*RrG`t!A&ikN;bKHhL)KP55*XH}!ZzW_oGN*NL8XhPlE8pH zYj{xj@|#9`(t8`Fo*xDLqD}5eo710-PS(*Em9kkJn{&hb*TTOYg#s%XdWdUOG;j8` zjn;IqZl9L6#Xo0l`iV{@Jp_M$PaAzVxQTudSf8|8-!Eyqf&92RV7dnB(2vytW&P9Nmlc?8T%s z9oZKw9aoFQ6y@KB=FhliKzQ>&ftJ1MmcX>Ufi)Bs!?s3d>17zR)4_=*B|Iab6DBKf z@WU_-e`&bEF_t4R^2J-Y)RO%Bqr(eP$@GP+(6p6;FMoC$IB8j&{a;lW^3Zmpl)KH2 zCAyNTfWe}izie!y_4L>_6m6BJBpRS+LxRO_jhv2P{c!0L)E_vFQq5P&`?IXoN5FvpJJs zM9SAW^B2VZd{QAxKv}YBDt~2h!oVk^I=(9*H%_{I#1~7J+JQnfoMvd zBd`qm7hJ_Fhq)&>QZU`Ci3M?1IKEa~*U_6`stxzTh-}}1U6bV^-9Vk9-U=qZMG#wz zroSv%*L(km9T#_52Sm4~Q*#hB!hcyM6+lW^U4nBPpqMXQFI`S|Li*qvGw58yMc)FM z_b?a@b5^O2r7{syp*XDZe8xG)^muPI*58Hb+H|-+e&Lv;D!XB{Imput!~`Z;@;SD# z6bvn5JYva&AJL%@x4;e31**MqR$0iGO!0gQEsv#9n>?@*f$A@({n1%_XC58_dBFM; zl9iz&|9alEW88@XZHj=&Gzh0NQRXg{`iJoIklKQ>(-Awld5B8GNu489wTv|OztkAE zy1PWS{>qtB2rpyYF}M0(bE-l`B!AOjP>=NNCZj zb2o zk_}3@>{y(cvpat41LW1>AiL07dgrXtUbu5pQfV;7sf-t)W8YIwOt)RUCDOs1_!!l^ zNW3i}Tl%NFAw1QOzYHyW$Xl_#rH+y-3V80q-z=7=Yl^F-!_a2)I&Z>&2e(jIvzCp9 z07fq9*mT4X-BE$^p(g8*@6%J;W@^1zqXj9d(Ps65D;hK_7SuXQ(aiN331=XDmD_&L z&QPr@BeD0MX{`hdaOn==M`6pDOc*@hlzeU|D{Et>_zqdg=SPV8z|j35)MZ`Z64JMu zym?64kKf08Uiw_@Jq(8SE;J!tiRu90Kv|+SnBjz9+SD(qIGmaHJzI(o2gF`&c}z=2 z1K9ZAj8g-rk5DBK=fnD0+U@MtF_&~nXm|0GP0qOK6pX`d6#2OfeVUhu`? zn6p^lSu_)EBY^RSrTIe@>~pMtp zaNN*w?+JMTdB@AhKOih2M_9KLzjLJX1{R`amIo=$Z?r5Q;EFR`m9g#P3K&0~k{&%4 z{;~wOT`{Mgg&so*$bB8ctDq0`fYarg!-)8~aQ1FKp+W=cP`-n4uQWB1wlSN@ zn9>kq%?{K+_Hbp?8nWmnO=ITI$%tfRu7R@pZUM*WR#I4XuIb#)AI%9+pj2 z3CW_jHbcq~dIes)F-I|2mvI=YO@KZ&x4NO|?{(m#@DjV)a0>~EnF1q=MsIrHx=F!3dAJ83V}e4X7}nM@EBK9P5D4%O%K`=Iy|x;-AvEgLW8RFSGLF!1 zPmNj$-Z%x(2BdS!#4z$=pT@nkDBRebbLQ8y)JUCDwJz2CeI8nCS)3rR!{-{P(?X&Q z`eeCtQGlG$!?`&Pr9u|u)Van5t&O-?_kA5=m#6tl-2Dz|KJU~)x&=@!{21Q)H_k~E zhBoid(y+)NnOR&}KS3QC07;*l<25F@{3++a!N;TK{GbgMPZ4kU6@wDg-37a#RqH=k&!oXpfT`oSV*U8t3{xauiz zpPut700Fl`-72j346pm`Q9=tnw|=X%HUK*u5$pLz)p9HbC!qJ6lj!7YdfK35`uw`{ zIFGKTyl}^cn28KOH6m0a3onr7%}g$4R9z%;Egszf9$0)=-MsTZMg%Vf#j%#=M7ka< zy=IPyxHJ@MH)L~y5>F=uHbr`ANRg?JQVI!OU}uE;NY zNk%X*%z^3d6z||_fr+EcEI*V4b&%A)9@Xqa8B6s&R?3_js?iz))TUa~bWZK|396In zZ9t!?h%wc-$O~3XrT>vYmj$M#kN{p$InU&QI;<~8y}tJ-e(wpS-I={j51S{ZAlgy1 z#5J`h=5$qXM$nW4@Su6Ac*idz!yt~I^Lj@Q0junI0_YoG%VvFhg**=h&TvLKP>>Q{ z`~5qouAIy{@b6+s0wn5`eQnNeFW&dd$Hf@e-S*JKkQWfn3v?K=MoHp4^oCWO9kt?x z%9_yXyh~SW!rKB3UGmwsxjYrQP!XL zSi@j#{o|qA`>jaXPoam9K^B)uxae5=(v|u7)+cfngg*s?Xx_Tcde@ilefSlf$nXnI zAKm*T&ucTGkv-Dpb~W1ufX4?nXq#}@f}lCCgkp@$k^a|f^GPmzfxvmxK=n3!0ua2j zx5G!t6KoPaDtp;f9kgXBN+D7$Gu9RjfL4QitqohDoT{8Ul|lapmrNWGuDt!Gc9|={ zr7h)wcpWh13)B!$Ff6znUTTBYZ&-AFaYGDkUOZEIK*)rud-};y@Mn2|1%ntYu{+Fz zpUG8GG)l@umx<3ABDqL1@X2dwY|ZJ;qH2Kk;>g|Dy840~=ByBf4qYY?!Hn7R$C#Qh zqhb~~fULpI^KUq0e4KKd>Qk$Dz!T)+kQp@hfLs@4DnHx%c=NTjE@bJ;N%E`{9KU&|P!8f$S?k_KGZ6-j;>8s882*hKn zY@C0=w3l0tNJ}BG<{5IAr9&;)^$T(Upm4^oZf%xG{-2lX(l$xvvBsO7sxp1+DfgPC zb-w%!{QMDa=DN?I4c?k#iBWP+_#b)!v!!FQ-2*36t#2jFhQI4unBj29~P>Kz95;iT-LNrlL?D z>Y`TFSlzy#`C2rcqoV0i2{7{{+P_w23>K(Aq-DO3tmLRF?#f!I#h<9F<7s?ID62yZv5b9!iNG+_>Y~mLLd4M>y;H!k=KE-zDV_6231c2m=P97*CTedaheu)6oOzAHi-1A!ggGPxVL9 zL?N^sg|FzlB+ucVe(h`c)7r2Mb7gtA@wgu1-B0r~|Al5_Rku0nbiV~kSonRF-&-DN zw^mx2*dm21kGx|8W`p&+^kykm2%wFuzs=>jDBuKQUN$2#0f;$ zSX?0b5gK|;_s4Y%vgZA8pajJiQkHn%3y}N1ng!zK$EbMnx|fWB3W8rCI;h?YVtuj? z^d(iClsRt+_W_z&je75ZUR3}pbv?&hdSF;gj#k1OWQG)18G5HUU$`|AvtIZWcS>}e z1$yP9PrHCg7i=zhDW=>s;JrETc{M@tH2Hc==A*9mc2*OtF$whmNeh=eC2kcH`EWK% zxz>`(3vLX6sxa;1{H2;6Lq9bahyJ7c7QiJov{u1r2gvkTN-_p3*{x7ooeBvoIPc05 zCH0^A6XWCp@$<0M4(`NE-5iqD$7K(7<_gH{2DAl6jXrWyvO=#J*0~GM)K#^kCx8Gc zlk}L|frd+8gEe?nOB&Fts-P#h2hu+c!W?|Inh++MX~5|I=H0eg>}b}=wfGQO`s zYtD!H23hgY(TFCIn3xRwxX75X*6a|In1LLqyk9m3k#Ce=u&OP_{4Wb>Xb!8_d+2Sa zYAdTT<$yXEm5y_u4r)TtR+$;EAA0sHEU?=7C!x;l=!-$xJiE&<11MeNmJjqQIryc>@T`TPU zO`y#=ZB9+bprV*#=(BD9)NBa+0oaM<&@l7#M>X)dxpR=LMhM4lU8NA|Z#Uc+f#bXg z6&9bcS}mq2He66f1`{&TUJ+G&seYL2_|hlMs?(e9FHsO_k5hG(rzCYG(WuBnqAD*2gVnunFLtun_*wU}rRMNW zNfeFyP5)}Z>m+&0Mr>go?DjuMQ8}8J6x@^(B9Sb*<_hhwB{@MIBrne-u2#N8UB5P; z$!1&Ca4%NkaSaZ|74g6Y1WdL`+R1Qm0CpBl^jh1j@wg`oLs__9lvF{_T7tkpzxvHa zyWkYk{o?vGe>p)Khs5h5-MWQPEcl)Nn)l5jxQ1d?atxUtW6I_%qO(vMcy8JaI#a~; z&ffh<4JtIPpaFQt;b;}iUdr{rX*sQ3q+e#SiAMaZ89Jm`@9BNtoy!pc(6NEes^!~t zP`l+k(4`sNp-8KO9)x;g1G=si*A>b@&)Sjj+TbC2E}1IwK9I+(^8j5}_Vyi`bvYhd zHqO1iw+oPY;v)-S;Qa?qK9<7-Accmdy*o1=tZc;aeiv|Lc2vM(d?(m%Sz(W>r;Fy5 zF6<(uEKwt*0r!V1frt4^%=9OaA3EFPRMAHRd!jT5D8OM5emvO3^=yZuO6{{ht8-bR zQ~Hk3zv7NQZhir&i8&u5`UJIn0ku0j?!#SNXbQa&=Fi-3UWLBB@o;K(T*My&RulIM z3UJ8pjTIjJYqKviptE5CUSrN|wp5o7u==K}PY=yG9wS_bt1$#mlssypk9SBOsj7?5 z9yaclb7m~=;wDRQQkarg7pvy5j?;nhP66gK+zTiCxDk=nt4wf$^S2Wp0>Tza8qWFR z6qj*Ec|Z^%MC~HH1*IdD=YN-QIlV?>ClgFkW8UaTp})pp}>-ba4-d50;Uti zP^w>=Y?py$2ixjC)!m5{QP}PJ%=%HQ=4c!GAJ+y6tGZ8lZY1qQ{NJy?L`l*%%VAI!LRk}8SB&omJt-HUwjc7P&aFibD8Wg-jIKY#;rGRX@ ztw04#_?35dWd;S^M9YT|&I&~9S^W5;8$l-~3yDr7zGq{p>3hTV#G8vY0+mz$CfQA= z34C?BYQI-r%W{$TT3m#OR-ujIJs6T=Kt1+}Dz3@(IAX)qBt!3W&F=m}i8K8c1cD#h zW+JDm>MSd9+%G#EAovY^JO(4vpK;CgD=VM$*VRP1DS zSj^E~({pQurWzL>&Y^0=ZJ+#rRd_`67sv*qBl>ldA#gn&` z>)`YmBZ6LS@XrEv7{Ee&O))!YbH?2!J+i{$mSx9=;g^3l8K#V2lJqa-wv->%b{6Hf zDYz)N4i)T3>RHyRl`Qlo+#uAK{L)nDlCG&ZSXfI|ja)xP%$;ZO9kziu&}@I}e2vcf zvu8mYT zjjF0v!+8o8a~PW&^O5RpGm2EEk1Z-}0QSh4tQjlo3D$`VdP0Ap7zxgq$V!5@9gbT~ z+rm*?M3dT{`o}%pvmX8-)jGN3m$WwiG(Cez-jmnrxS~gU!OjnYM&04VSc8b}3!k*^ zi)!r(ae$2SNlP=mjx42<`@^NitE}((di%!(oHcj-8o>Wij1~)FK`5ftIuHQ=KLEgd z%5L@~<=&HGL25zxTYUX3e@VCtwZ>QVWTH5=SdUY!1yvUdPgnmlXl|Eek6>Om|L~ z@wFScx&))Id!Z1`dwEU@r*Jg(MI%ekxLyQgS{ zuak?c?IV^9hHWguZyk>m9rwwNIqQz;qheAkjub(*vv!cfk1jHmPQyRlAq5N)Q2JV>Hv@Q)CkagsctW6a|Fctxo4bpL}<<&ZF*k0e1 z!}jf1CbW@Y#}x)H8_AeUsMrxHPS+C6_Vw38Q5Hb$2;C5W|CUqBuW*fIs~qJ2^UdzC zm7raYjeRBigWLtp(E(S1&l$6|**f_1H0~bT;zAg~`I}phC1b8Qi4WOe%RP5MFp>*m z0Fq{1jiB$lG}{qyrB{7+ft@J@I7tXO3>011jq3<9^&=RBD7hTx%l5Ti3;BEh?1RvH z_zlx6;_N2KCqv%VFqq6;fV`gDTe=X4Oo?K0p#g5b?HJ{=eMEROhwXQGzaS;9gz7G1 zA7bC&&g5EU0pTyzj%1#4mTu67^sK#zW4j%h?r$bBjRdPOMDs~d#}sdJ_me)1 zMq0nNwj@6NZS672xn(mPDs(A{MK)1yR|t{o!0sApO`=;Hew==FPs|rGDrA4WQtco4 zVOR#M34=yev7+t>w!ijdl9~vChNRxj+wf#$xFiguvr~xR1^e1-*$E))^>4P7$`|Gr zD+m^2p}}S-Mc43lu0Xn?NMpK+PzL9EsF+Gd&e}VmW0f69a~r4-{_N7aG0UWB*tLmH zT#9^b6~~J_6jONXTPO!GE!=k{rw9)QhYN5goNF&?+-QPAj$OEuK>FE}?B)8sVM6<1 zi;^4$in0_1eFQaagZLf?kZYwD647NM3e^TsJB;WR0_1!@HIrH_9Q1#|!-u_2cb9IjeI)Htas&SjhTiqsCkjRJaM93J@fCK~vr#WZWiWy@(rVm5=g zizf=o8c!1rR{5hJ#Qp_LTAWcLFt#dh-i!g#P*OQ(f`mg+Ce7*=Ij6)uQrwiyGy^&G zI7<#M*xJ3X$6_()WK3cSQ3k{pO>;baMIRL$lQfYaAEIm(7{jbT!&X5q`DjryQa-Rc zIf;ZJeM$ZTN)%z_UhPhVt(+$2wi3WSE=uPzSHo0!l6Zy~N32ch(dK?I=C{PRx7yr9 zcIHxXS^$R>Ir$V%+nQUtJhUIv@*VTO(tfUT6T(w|g1m6ORkprj6wxK_?%&_yk-cbm z%0ZH-%mXYlv-kv(Cy}40IowfvmxlKBPhwIupNcBi@Mg({%E17Wz3#I>wWQ}JcS=OQ z9X7qWN6pDi;bw?S`9U78%>#%OrVmY98cxGX^(Jd%sq*Mc7r)%~{m{EBXziDEM1?2l z`fm5Ll5ysDsc-4mz`Dmy07zk(bCFxs>T)u8wlYebst=-lCP#mBSwp9?w(2i>le57b z;AosdU6o>`?+Eeb1P-PN)4Mw>)$J7xq}kI3*476NC38IGly7v^s92=(m(yT)C_Kj7`tnkD z!`1zr3wo=Q2Sem5ljPC;`9*j_HeF~OkeK(Z<`XUXnE#-O7T6+53IKHNl>IVVvO8w9R5f+vEStO|sz-MOL{vfnlOm>kl(Yy4^E3pBZk5X4jHJ!Ij|K?l_Fp z(8aC%>D4bJJ%G_ps@T^6E)I$~(NQoXPm`xU-w9c433=6|Ufq9Vs_T?kPIH3sQ)Il>gIydkOE?k*fFC3Z+&UG z&I>%?0?~qg=U<#95ZB^|NIinjJe4o43>(sCDXebOMeV?0jDQ>i~u>y^++2xE3xX8}nAMa;q6 zD)3HyG?Ko}+lJX>&a$v9V5?IFWGphZkcT>X!F-zWU=-kUPw%5QzF1TA6#2X$g z08u#STEIIzaDiX0&f{g7qT&iC|t++f3x`?XYNbbBJSp~m0vXI?05V}Iq`l&(tBgaQoo z=8|S-@dU?-X6W_sLTIo_3G<`6V}Gi1_!Is*16q!mLR^c;V*%UDk9*o0iq_+6#V~eh zY6F?Qs%|`j<)sJz7K#3nZ(h_@$I6Q(EqR5dF$8~_PW?mT@!^PHVbi*u^+%?%Yn^!D zHk!D>mlNMr;slw+F9>RoLer8If9K-6O;hz-RN`jL83a~lCKLzs>Q46TvI;;XRmotD z6cWuXaqWf}(d-N4svJQ~aN+@}H2ndsZ_xUhb1lK`8u?*A`yItc6!{g@4tQkd+Y>!3 zt3geGM)kvU0a0j9BR}H_!nE?alIq$bu`Rw}uw@90p4dYO3n9L_0;WWl|LaTAni%bx z2Y!SPEF}pTxuRV4GKRnMRuj=$5!o5=+!Y-VdzxJ#!3* zrE-M4@%je*@T;@ny^h;?4|twPi~D|tX&O|2!~7>KU^xYBZhH<-t9xyuJ`k*1X%=NC zk#~tjoNo@`$kJ5?n7CQ?%!9?58!JvH8|uLJefTB|WK9wb)12`~(#Lb=cQUt;u=G7y zWlKQot;x)+ymC~CGLnkTNB9ls=gFUMWznEB3^s`~HpWNM-7L8f$==(?l6C}5Is*U`FhhE201A;~X1+D~-x99U1E_^4tC zgUCsu9`5(BLjs(Ns7bmFnZ<8spN_)MVFK2XsT?E_vw!DAbVlQp$;0NU%p0*{KkD$# zERW}*KZsMZmV+rpwx0(PsOI#uIv&bZdaO20XgTBx2%5~%Tf3+7bvI6~z4|aq@jKh0 zf~|)#>C)Q&e@Z} zTVC_P>RxPy;5^x?Q<=Mih0R28LkVN!h>5>V1SxwkSvp!|7hMjY9{go5#m1h1A4TC_ z(!+i|;IB4g!{?Db68DX%*SY~k&Yl0^mmynU>(1HNx08%+loQwxiM}P~vdrnA22V!b zzw1Nlu;spqZ+6EK36$9U#zQYO2%P(BJ!Zt#N9lJy3t z*d+9vi__%9xX?$RSyqio{PDeC68b4WL--d#c!Pw9OSRW>8J(u&paP6ZL|c|EcGer^ zS!xvYCw1YQ!NG6V*8kYrb8;94ykl7C4=i5FBkzt2YuM0^4pA<#F zU)1ztlkvw%{fFIZ|Ayb?#y8o>%awbqvNxlwJx+_3ABlE&&YoH;Sb1qeZOw%6)lJ7s za>|{n9#U1|4s%5rxx=Zp5fF~tW#ckN#41`8ATJrEFptP`*Nv6{NswGRa)4inzz-PL zC&(tU$4|4m-5qV92Ui^x)SXpL{i^Y9XXxGs1th!s1(W6MIzE$vE=HtRn~7kg&=v&z z#r70>@TL00%=s7=B?S_mBv|6%UHQ;6KN(_W_x+BJrc5DPNs!;>o>#Z#Ep0?k!IkL1 zF0om={(MGRm}II6?7gwUoEM0Q!DB(kU*L>=3q3!&Qm0Q{h&#M&iIaTVDoOX2CKi4bfFj1=7pNyo*fvtfHE%f?poO!Kv zzR;W+PpyKcFpxaD+SY<1Y#kGuanFb=`+@81QoWGOao{qHjy7d4JV8_pYLOi!$gQ%A z`s1sm>GE-r_EyR4VN=s~EEdCI3o20f(_CV~d#up#m?*hevA(2rviC^S)|4i_%jq24 zD;208rhBP&khSIzd9cO0cZf`-Il%78f&bOsMb|cSTDM6Z6PD&hVIj*)ZExSWFWbJN zG1KBDo@K1&aL|hr|7jch?-r2fhOsv39q_*lm^P+*GNYGXd{Fb8;E1sRl${f4{z|-~ zghWe4D>=ve&&lReJA_KJrMAMco^@_9?rsE~m-~aaw7I*aqpmpcFzK&xG;ewzw1`78 z{m@mnHdufN4BelN7T)9B#ym^14h2niTxoC6HwBuB!>=Rg1|SIn{3KjyndbupO|n*V9d zF?UIIvVuK9?P%}oK7@zTJx7VR?whwIu2dQ0WW-%^a7|AHboDl_<=V}s7&UX`xV*OU zV2o$~ir!qj>AHrYi?$(!4!{u$UW6yFR!p9>i zaPE7PF`J}6A}xhK9&2IMPSks%7#(i(+WSe=CkAZXWv3*H>t#@caM!1cdQ4WY7EZ8b z#(Ok0x%KlOVeunCuT%Vm5DZeSOXy%1Hm+c*3;rv(qNX>J4&D#A1<9TBwq@8rkBJ zpWKmt30xH64H$ALUm-2N;@QhszfJS~CAPwe7$_Cm8pQ3AeEcV5cLd-PARU$KgD4j{ zFt?$Re3hQt6o|Ls~xGCyfON z97lI*I8#i!W45bZs(MafM`eynW7Dl_QqE&NKx!~(QtGLs`84A9wRe)!UsM14+l8qo zeBP%x`~J6c5u*JOHI+Z4AJO-mYtyBLZ)XO$bkHf@zSO#t2qhZ{hnbuz?&ga;RZ5XE z1toI>1*Jn%dsCwg{3%6#5PrC)*mj9i!)RsamHRlZ zt>|8*xD%j~gBSi^`Bkki4>hZVy_aZz0(U2XxA+%Ht? zY${l>q48>>{=sky%C~))$8{MRtf5Sw{irHb{JMAce}D8V3Qe`U5>L4rHz^3wq}6R^ z0$?ZU2e>n-w*WM9V;r>_`_Zy`LXO%x4Ufy_~7 zghwO^{wV=H-_Mdy{i_33sIQ%{U%!PqmQT#;Y5QoMUy)PQa=}m0(tqktC&VV(Z+z?+ zuGEjk%ej7YC~;xQH2`S|hIr09PpaOKBQ|a7p6#xE{~nR*S$EB%NimrLRPGCmwAp_i z_4AY*GBFAu7mF6dTP^4zom?~BDh|&9``KZsb^afh*V_?e`(>{r*Y>WrW&hPPBv35| z84|LmUaA{aAvBa5q4Juv6etW#UfA$>_ux+p!p>AIm4sjvfq~S4GQqO}eqj}Fz}~r^ z3*H_QaQ2NzK!)rZ_L$c_yq0QctK%HFL;@TiX>r+2i(IjqSCW_jus3j;6ZrTu`D5*) z0dN!@nsFzQuImN6^lQ!`+EfAiFf&~j3ufp?4e9*cxSWyjYyG8V>UqWA5%|(f^os}AGyk;1vTrw@5^lpmRw<5X~#KO z8lkZ-4G&8Y;GQzZ{DAI2)anSmLC5GdC_~xB zS3PW6{3rqi8IA!Q)hosKX(mRlsgX359qgnNRj+T9y8|i2wjmjKW9WOZ6{1m02KAU; zvnAYujM}JMIdw(CohiBhrWN?JNbFJIj;*+G zZs{lFv)-pSf2b@Enl8CN?E zeq59mmJy{#4zzFlCbXLzrlj3Z6nvtNw2{X zJUMn)kSai-K$h>$A zAT8aQv-ZtsU;rVS3G!$O#tfCfKSOb;;7%Ucd80J?+{K-pV(2?uAPW^lyu+Eh}V9yNHEFkQ*6#U ztf9!-I8L^Q==CAL1$bh8vN;#+@IGGJ+y6-W(vJnyjyjD%UUEC+h`{6f|GO?r9gw26 zQ=BffV0>_ieCjPNY9<#)bcLmmVp?`QLJc^i*lse%@9&pEMJXPO9=_ef{*3KCil;#m z^&PbdA{HlXyw+h*gHQ(KS`A@ulsJ5C&n#%lDspYw?K-@BmF<6BoEdnC;F|h4S}SvF z0Y`(|k0+C2y2Qwcg+!gKH#(7N5kn?ZP|a^}J9wR1K##6{2&6#fZ-jWlDXvM=`VqnL z@``LyeyTCgXqCOrk25Zw)zJ?}!vLXAEsOIs z(S4M07G`SKZh=%S$wT*rmnkWlU9;=Cpm9y!=4!2N!C;MidOp*$!g~~ApJf^BBtLR0 z0F0$gQg6wC#*vzhfLVFfZ7a}17*jpcwh|>7I`Eha&yq-_ei zUHM`_ShP!+i>{~Kuyuqt9A_JQA;6a^{88@@S7RBVaUo(Je#hKXr*Yifn2%^HZvJ-1 zak8JMnnjusSuok}&S+F>@2PXIjShXPAkqu;q`e2fb(hOoS<%{SUXZ6i3Imnbf~S0> z$cX~)V0DX2wCT=C=gf@`xTchE{^~1w zo+veTA%w$To61W}sgaiIh6MND;O+cqx0H}jzx)En)bY08la7@6T(vweR0`4$EN8kG zQ)QxEF?+R^R}DxSesu8z*-f3fmvk9~@OnVo4uhV{x{(KXAIz9%L<;(SN7MG>_1kYL z&^{>>>Xt>YtBF$%M?gq)nc9{qxRbt5(l9MsYxgiit0}jSq1C+o(3Zg5K_*U${!Y1m239^Siq(KynC5aM z2cYbXDi#1SVcrvOamCl0J{_iHpDqvhrTMP+JJ-Q=SpUe|Ba+ISvPgaIN$TB)3sPDo z2^jq+Ff0~AKki*87tdt^wgT#WoL?(NA?0?oiN5DNMmg54gg@aLoKh?sV(GIIOqJ`q z6!>8|R&o2ex|M8n_k_8&DG(51rc8+}FQpdzmeDfZ1FR}ob|y#Ra)uH92c+=GvM}H3 zCsoLHiksCUD#rtSBm^5jIY?t^Pq@mad^tyMR)u#Y($2>3gqPL<&Cmx6Y#(}e5*Ha| z10~nuqhg-0jUsjXpA=8H)8TNK&`e5=952))1~VyQ#%yqF4Ck1ofwm$vnE z=tXFL;-mjOCw^$tiP@jl9z{toe161g3Q1|t!NTVGi7DkxOz91{IyS6hOsLJ+YME^f zNQ)OXlcw5o1(2y;W8VFhDSZ%=Oa97BR|}-2sUyQUuX42S7KJ&WO{i1ESStaS9P~e; zBp$Fb1LS#_4HPn7FDW&(pH$Ez{pcA@Gy}aClr90wvz^}F1`GlXjE=`oTSf{ z%jR}@;x5C1W)%fG=IOaB3?2&X+t(M2``A~LaQOX73lfTp z^+=BuNl>8Wd{TKAbNtqCpU3Hz%Pk99j(ZE432(dx@fw8RM-xs33gW3jb~`&X&3PvM zfw4v;Z5Id8@c!G1YGJCJtgi0A@jFQmLBzyVmN+zH3KX4pp?4U_`JgFjk`7DJ$$D`9 zo$dZctYT7IN#tPS?y4>_mSca=>_ZF2hM(3R0Y!)NzWWe-LwZ{CEWm}1JffV@t@fa*#W0G`1s-uXl4+DDzMQ6xMliVeK@7vcbd}xjTB~A_FABSs+Yq%Eaxk>*-ko zop+R|)&w(53n1F;Q})BB)#l0)zUbvEvI^+(W%B&t?dSUPeUA zsvM9SfCn~Fw9Sr!dsg%mye;~l%9fKsPw{3}Al)$-9osY!%3jYy@Lwsr4VCWvd;jQ7 zBXL@%JK!GqKo$VQM3<%>H_hqQO%%*wUfr!F&T@+4<^aM|=+EFHK3 zYo;sN#zCiytD6L46TMn5qhL^V=*6+fy;kl8jLvf>2B*eluJ2K-mBgbs;j)wtBO)O1 zR>@B1eg8Pewxmy2+mV1Dyg&2Pw`sEMd8>VML+-dT+*O~UOSHMTGtTPz!CN1-c}C(_rWl{j1TXZdJo{ zrss+cty7ig3?QE6Zl*{HcbyH*SAY~Gk{-vsXZPFh+#lOrw_6t>{RvpIJNH8m(=Lzr%;b6qx5Nm}n{!TGC@)aQMW(4{{)hhQRho2Pcjy-mCS3lT}&9J;$AD(#2?Gwy)i zg-pQONAua(13TfAzm=nRN7O{sE5z^MK8{@}QzJ}G25#(^T-Wm&F!O+CS2nJti@k2E z>4VR>;Ai21hJ%lSB*s4}@sqP~fVf3#J-r(JMe6kW-aPcZG*_L`R8oHbD7V5b@DTrU z*flQnaM0Znpe{Vo7A6b@K{I?B+J1g?BfPc}ivb)M?aZH@!Dq&@n?*-<(sGzQn9!lF zY6@O^T^aoRQvuzI^Rsr|gTH17Lnr_hMx#V|s^>S?_KB8d-V$m9o8mr&Tta%EC>$A( zWT!jzFXcl)$HPt7#dsWyL@bx^r9Jg4scii%>Y6$;_RxiofYV%v#c)y1N)2hrVAEcK zDl6ik@UN`$Q}*YOmp||ygwuf0fWf}F)H;sjJz~n+ciq1os(VF3L=iUq4b_nzax@#2 z9)1LqV_+wXR@Bhvw5o|DKAyNgw7R9_Z&&KfsetsVmP$rRjTILs9=0$=US+Sv@$D#3Y75{R+Y$|_Nnhgik^_t+|ilv1~o=AfPOr^EODV~@FB z7n(G2&H?cYdi(0=#4QgSjUpK&i_x>4a?+rRM8)r>8bWW3YQ`yNu2d}x6&Khz{QM>= z$crOypeHpQi&Uwhy<*x+h*ikeE4hrV7zjs;^>H4Gea2m!6h#y@_-9trL&3Vj`n5|^ zaSFD%QdmH5omj?1Z67H+orhs_;c6*$XPXtxn**}@U|ZfR5m}=8UBXAnxO-JVUKAC@ zBD;^SQKMqNAhfHfzN(v)2qp4d4#_QI8u?D{Tl@n$ z-P>>L%3Ks*3_%-WmdS*1qM7khTZRb!AJ5wYQGfO=%07o(RGAvY1msb{g^Ms2Nuicm zL+ULt#1)Bz8=h-P7eZL~4TI#8!fIK9z*L|Gtmxciro7ly6}d?}>g2ko<{Lu(wp8H3 z!##OXWPMT8eArY!O}J2hLx|2Jkkb{&%DF`6l_!>4PO=XKv{wYO&^(clPfBRoj7R-U#L z;W)1>>82haD1$fa_oInDgGhCiX?TkYljmXVx=ex$IHYUrd8MQ8(K$!ZnwvC%iPppq z+G#=MB8rV1UKIG<{p>Jh@R`&!3Ch^V;ynQ}WsPZpz&D~ez>Dph*6(mlGJBYt#j zw+bx2ywhPcU#$-lgC&G)i=eFLI-9aC>#hg~qcdabIgwPl3)oxs8%(Q$Tk*m)JhZxA zR~Y>a@lrkRt)4v-BDMejTi|_y-sg_yh$IxV?s{~}Je!>$&QuF%`41`iV9jQe(x|9ldf4TNL;Ncs*g40sjY6!R-k} zY63O{w%2U?Acln1n5VriGJ6 zj8FT@tGJqUzST7w{6?p1(822}3)L^ngWZ&O7gmN84IOf(Q~v=u9Q#L;7Fr17spWN~ z65zao*h~C|Bs~SL*#>4wo=BuNW;ls8k2yQhNr0w`@A+Fd`_hKsS+d$DErdTCt^baF z8^-wbOku1k>*QSg-{KED!l#kTc9wIW473Xw%WMYJDa|8ksgHCB#s;GScGk;V_2va! zrT;Foe*qVDo9w{tu6<$hJ58Xr2O-nAL-*b1Pv|vSa@MBWuhZjI?zsf|5qpnzNA99) z=a1vCL+2{h*|Jl@nuCXQm0JCOLmAo`{a9{1PQ4}Q9;Rc?euk42Hp zeUjSRaOu^XkGY}sWj*^7uq4?PVCjJiZ;KtB`#B2F0uKtfE+s+gnOmfL6MAS8<_K00 z1T#9^_P z-GC-IDkYD1rA0@jwq2LJl>NQY35>|49pmZ9*AfO+NRKX5dCec&yv3EixjM>G1s$xZ zItYp3EY`B>lVHQnB8xbe932U&t8&L6YuI};@WM3iSnVFQ6HfuedCwMGFoqjTNo!Q_ zR76>Lsm@V`rcqmA$H3bkRj28`&n9TkgIk0=uu0^zVgCz7rV;yykAn=5d)XfMz)N7b z2QtuJLog$E>PGd>JO@pB#OHr_Q^pF)skR2*USwMoV8wvLK*{oJLeJaq|F%QrAh~>3 zEv^x)e~URT(9W*MVUw2U*e+t6 zB@b}lWjfBsf7nwli@4P3crROMlS#eWF>;%F*<|3GOw3YSrER<& z2l}t;737KoEvWABg1RILX4KQflULi`LJo`_(%vv9E>0Ly=SH|nsODrvirig zqm(b7Gzl)`$&AWpSerN+$y6X|PNYaJjD84->E=A=GX^#T@6lhV0v4rIz}fnJ{jJUa@T*~f9n|0L(H>Er)xI6cRh*Mf-QE^Fe z$>%v0l*WHdZ}gaBo^sRI?6Fh_Euu@!J~ft6?bHt43mJ&U`s9B7f~@#mqBJN0Ot4h~ zZy-xwiFtG*ZL;*V?#3{GWhQufF~gE8mRCoE3kpnv@`;~pBct<(E2g4tn;*{&kMd?o=BtOh06)*N>$R$C(t5t8hr_9Vw z2(5bqrwe`iC?jd>5qH^dE zdMF%p{y>GNTxLczi6J|y9LF3xZjb?MX9#7CZJS560w@+L!vNBk*4z7s%eGG9r%1Xe zr^nB>>F#UNduBhz#Cohr6YM`%)`*9K!PZi!sF8Hc!#dOXc=NAZA~hdNd`jC5_)@G@ zMo@(UUmb9FL$E4DUm%>*-~p-`-LIKk7Xm`LC;jjYE|>0-h<~Qv4)P#G+zFCy6GTf^ zOKRNj4)x^GAS~|Arddp0o&ONqqZOBrwk~LZ9rn>;qIkD8$!WGNEh9hcUERY^Z`t&} zV=IYPrO=O<%yv%RYd;_lY&+v?FO2VzkopRmyhng|X=ROIPxD#>G6!B69ctDuk4wg2 zwQIO0%_?gfOYTMA;?+Dz>I4FOQqJr{eX3dmtvr$={fKGtZwMp#`hcq&|A=2a6W^WX zesXkVlrD=%!R{~5W%?PE#Ja3J#OoB;4*z|y_@gi8zA;8!iMd}vC7tV-9<>q6O*ty)NImeQsW<~>*l z$5EujdrI_4^Fw+R3}BHzh!0f)Pu9mf%tH&JqWxAV9vLZ*WG~J}4i!BrlZP(IPk$a&85Zm-bP`O znm(*N9w$VW-aOv_@JJE+5uYp9=sEw*AXDWGKY|*wa~`GM09E5}GWd@9WE)853i!ZX zcx?H0A27*VId`1S?`V@u`~d*KQfI4Yp*-RZ`6`4Q#~ZE z4k*7aVYCd?a|ap3sz1d27Mg$4ARc0r6QY)jHh(P3c~p4uX`hZ!OH0rx9Gg{ zU*Xt3yDtom=|IQg~-_q*A(9PUdj682g#MpuY}PyKl_1!l|`r=^{^ z1P8OdR|qdqPin8wfE)ji&cIn*t^V5(2Wv?pwU32Mm%;Wdfq{^#&76N06gzQKI3`Yl zqDn-`E=HS^2%oy2D)jsOPzj>OKB~>^P~0r&qIUSrD%eb9*RRE#}qSKHa2DmLETBAO#Pz#iVcr z;MPsVX~SyQWZnxYIluW{lCdv;fT2fcN^pD*$HpLDPS4t?)dTX3llBXrYbGd30#OJF z9vKs?v&9#3W+a>Yn9J>zS`+vvbZKQ(r`9*LlZ((29`h|c?FPSn zUbQ0E4&jMomX4p-|255g7iV|eR+#1=POO=H{;M$WEU3bdD)SXscWj+#7>XGGAI_Ny zD-DFpYp)A2bO^n?z!Mua(9y0+R#dMwnO)gJ0q7=M(fsk+$2IgE9DFj;N85T!k~*ok z$G1>HB5eNIu(`lGMwg!UNibC8+s2%CvQ3L?7yv}|V1UOSwOz@0F>Rj%>$lm5&xW(E zg@_5SbP&;`$U;qKbc0&wTeSD_zAhGELJUNJtqs_f*LF3p6JW`jDE1GXbzB%EODXe8x0H1BXpA zOx5O080#X3EY=X-q_obNOUc+4u zDhGJEKoeQrABl=94S|%u{O$YMM$W5PwNR8QRIvWtH}e`dWi5AiP{G!6MI*OfCXr8K z_tNh}asQurhEd&4(p{lUPbJwKZ~|4vp?ko#aQeLXII>&mO5huvEPIUL(hG5JvPNQa z{9;gtf|<@Ir&OUwFnU8fGE^0KI}7aSAG4%nDc`=o*T+ti!E?RP)))&xWyl7USWYz- zQH=tQcJjlFXeeW^GNq>gYqr>0@xg23#XQV=SRNq!H+c+*LrM!7%@*A6sR!Y@nwB;D zpK~6K1|r78^j|4?D&%0!rEniL@N|jKWZvDhM>)A&4#c(x+MK|e+AN~lNX+F@apDF5 z;Q$(z+gP^P+F*=qIu$-nPZua?I}gtKW?&es?lP8q9FxA@;bwbBj(~;D78ro=9Rv@q zUeEPGVlhn%0SF7M@W^6XeodS+Ot4+;Evoan#r8A(d3P{%0!g$LQ~U$6QA!vJ_zxRv zq(D?rl)+~QzlzZ_oRs6HG0&2;3g7{*77oQ%X5D1-Lr9uDQ6lG&C*~9vrWw3afBx<7 zh@IC7@5mzd@7$?@8H{bx;;vDI(Rbeh<%WY8+}Y-WaTXH!UR?fww)z3)F4!&R?Y>V0~rU&002X7stm%urMqA3^3aAoZagS#y6cla*#_s zWD{TG7n;PlRK8EesbK8U0%*HX**WT)a`4%i44*xxE@qz;H;b#C8UK_C{@Hl8w&16X z{6Jh1G)uSbJ{p@Ou%Y&4&{3(*Z7XM)g}Y#>IH4#hma=kulIFd4}}M+g9xRjd%?BAQ5qi5kly!K8ejw zoG+7VPbuRMz$D$@vH^z~ku6K_SxEvi{`SvLjGF4tnUJ=ei*K5GlS}G>w%3NLgaU%x zEQp7a8P4}aKckXyX2j;w5vmRJk$2sa4PGJqM?;EcL=}+cYAq+AbiaZ`E<-H1I*tgP zA_y4}pFoIRWJ^kpe>~AL`GbeEUpP>HgFpAvYzebCwxeLW{eiI@fpqJBazkO0xSQBa zxTtF86r?#$Un!_mej8%*mZG6gC=<4;4jq9T-*VZ?fs%7Q85IO$c{ipMMp!nLci=@M zeZ@oE-qP>k#k)q3EgbbLoPY@_Tu3il`9;%q?IX8v&_MBx7+P?Gc|=CVp=W?WDhpyk zM?)R8AFN^&EYQb=*QcPblTocZXXgKq=9%o!B-A(`s4^26b9%glvZ(^2mRsu@6<)1J zaiizK2g4%E2OH2s!sw=KqFQ{UXk0`oolE*wu1Lv@>IS53vzc$b{GU@c>q``NX@IHv zztDry{O9HSZkL(%5SYH}K;3FY6;C`Ub*`iPJK7LCHAEwI(uqDwW`ZdiG7GAi>*LbB zpq7%+SBFY*ZH3B398cuw`4BmU(WGCIupzU+j&dTh+Pl=GrPJkkq?2!Xbxhw&!Tby; zs1b$w32tZMT2~NjDl{Ufu|a?3e=rGsOH{O~{{iCbLTV8DzL^`g@_HpbuBlE%v29cG za9ZLJd{@w2!oVec2f-ryrOOZDU$n4y%s~pd%(l|k((J)gH3eP7aH;HKTVCmHhK|_( zIKH`5>yp|@cI=gBlKKC{lL*a73-oegqs2;%)#0@frTOs>wGbDg*2G&Qo(sg5zYif9 zd_6CZ2&e>d$q5bA)NA9dg2~i~LWOIQn3jYDn#arosHg}Xfvq(>dPivx7fqL*Fm$k(JhfnUeb)Y=krNEM+or~579nmsY0)VpOjZ3ZEv zpIMemCY6m^Ks}C;ZMlALB{|yA#ssrRM2-TV1~0UVcVk*K60vQ9o_xZb5hg>2cq_v? z`)-&lvK@>`<}P|gLdZW?^_}P1TPpe%C*BMk|42v@nyEet2Df-M=Xahbs7N0N5@LeH zBvieC3ZvYYdVX7Ko?qVE&;Hbyrgy{n)|&)YV}ac~P3E?OD>%V;8zco#5%*LXf6!74 zDS}&k71c{9Eaoz@aw%7_itJrYZhxbP=Af1K>(0N{5rG@U*j>QRg=AjzJW zWCysJ;T6Ano-;$$st}$S1Pchf+pYWs$UFMPF#eek5g=lT-ARF*s=7C$z-LQ9D7EA$ z7JQzlKWOxkSlM9`C1p?Q%(y#lwey(KxvMF?CS|Vy0gC<;7vit?2Olun4Z2Uy=oXJe zO=}AM06nUX7o*3-@CL2_9j@`df2an=U(U&VrclF2Z@LKhlpy*m1k}fmApS32*@w%ga!FviyKGxC>AyE ze>s^3{q6WV-r%p2;|oO*c2xzxWcOy&4(~pp+rNWEPqty&MF*UuG+G$S&0YVTBB zBUoShSLI@f)|nm;AP^N%n@N9&P(ELDkRhjkKQZ)SBXo{+eG~47x3`+1a(KF}NhN;$k$J%1)`%uF`@&#@ zg)ce6{!*e&<#dfK=q>$B zU@@>@zu4{F2nxd~#!o-tTM*`5@@TJ7&!l=VG~;~WXx9yyLsH-;Y}w%v9dn+O!I@O|O$(G^+gNkm^|Eum5sTZziCe&v3bX_U60 zSCexANMK95*~D9bv(hwTEVWJU*h}zT+~n7m#k%5QE&c4LR2Yju=wgT#Ro4;BzR6vj zP*IkgbwgSzsI^>)%w0$LPW^~3)j@>^_{sEW zv5J~gG#3@XUUN?#@evTA3;jd%3c-QyQi9B=ePnGjLf{@p8Tg^E!8A18?U|miG7dm& z^dF@C0rVlXt7Noc8r{M8WvuPrxjTDLHe*;TMXkHd1_AbS?5Si>S4 zE4W8Q`sIo^pBF;x=|7_?hU3gSE#gG`d3)0-FJg9AtOoH3+90q05SVz;9;gj-p!?6u z=E#PlXs$McT*|Jsyp83nG@3X|Lugn6%5g9<+=F!FWqx7JO^aI&bE8~8NB6tGHM-y^ zULnkry}_+*Bu~frOl@_D>~tv6H?A(lT^$4L_idw;YdKt&E70E=Y|C}*;yvx=2MZ%Yn4Uo05d70+}xr=ShK60egK0op4tJfyI(NEaS_+ux z21hw!q-@=_WbKa5l^DIbqMC`A9*7P?!~4akPpTQr8oR0JCpm=vOJbA*+lY^U+3Ea{ znrqS;uft8$c66QGu)*KC4#dJ}0gEx{3o&sNbR!_G+~ zxJ6?_%4?BDiSn#{Uy{qi`LbKMB?!{gIr>qD7#D-eHkT|hN zRHPun{&X@}E3LNS*%y0*K9@vFB3o@)C7xlXmt4eZl)c>N1C5nc`D=jH1|(F6Zb85g zGzVFE{n4<;OnuLA83TO5K_Uv+@r*9r-xs-+rETMKo}>7xiIDzqFbL?kS>`jlfVybL zRN74R{I;g>g}Q^KO6}APV`wL;Xt)r5S!R!++w;DyJR$3)a8?FEj|qu2uzycZUL>;+ z;E@~Vf?%3D!ps~!E%iaz^Z;65F)@FNQUXr^Oz8TlsW%f1fd-uoGi1D2-k@;D1eha0ji5qc&h!XA-?cKb?`T4b--WxR{CnM}JJ>bd* z=3X#eUQnGZTMJhL1*Kyz&15g+<(cL{_%4uecqU7T7M`8RwO$X1P~Gd4DH{lX~> zz0|{_4(y1asc8zZc>{?O(20!KK>}4p#!j%=c#`hCp^Q(4Q#X`VNUf(IyGZQ$*Lv)S zvuIC=!9x3c_Dyy50NIb|Vz9xJsLU8iWy`=KQ27KO$w?a!iIiX3zKT7EsYPOf+HVMg z(Q1Wp*wth1xX**{^pe@ht9J%*mFZ;IQq?n;VNCmA$H%-l05%Ihf2zAnbO#_aATh>K z4l6@(j^~%n9nn=NqN0Cy6EJ!fZjuz!8)+7`H|daYKC$c^EmC!hfq%`9?A+W*nq6tk z+V&|%S|#_)-IisFGF|!+TRW(KXdm z`VN_U@7Z&)-Zj>Vk~=weu!FgTt-JkeNAVK{CSt0iUn&~z66V7=mbIY|s$TnqUv64d zZ|v-o=L5HC?OlCZgp0RmVPaaAYuvBG$i1kfk)kDI`iA#`>iZuy#qG;ZAqbub z;pQ>b$1TmPm9)P0A(pw1ZzpBKa`$A{TEV$xnTL_1uQO>}p%Y{erJWYZ@+#?y)(n^b zDIn!@tFW8bXod!cSzj%?I(%97%Oqw-y~GXzg%9)n0#upRJ(YD|LeOO4Z}zBBaW8(X-M;(SV2KLcm zPbhf{G3t|6*)&E4#NCEHD@1vsI>-V+u;`MYbawtK?TSgb%W%`>p83-Fgi=>C*-w-> zi@Upn5=b+aPW^adCsIk;&=H@jcgn`LQFHAy{5+$`sSFg~ID5)_5ZF)hvIx0tMQv!$ zR@Xt?x$Di5>U?hz`Jp>F!o^AULNi~;gD*oV2p%qv2jXpC3x1aNcG8X>Ssv4at3>|; z?LU|IyZju)+Ldx|FW5Vn(4ZBl4iwO2JY1tU(Aqk{3cY;;SJ2zqJT(GqFVo=uYko4_ ztVeock*)4?2e}VlTp%(`4K*!W zTDd9A=($%D(mS=s)%iBaR5(uEFpiznVYxQrp(@p1W5sS=(YigK^(CdXbLWbL?sQzt z^`F4q203Z&wIl|Y`9Sgj> zrN&_WbW(Kt_nW$_jzfs6lHA^x2HS||(=>P1cGL;bNKwwIOb_D~L|?{M3Tmat9}+K- zKmTEX_8;yxg}t6EiC$zL^EU;XEH}Sz1sJ&^+I-Xr$n-f&v$^n{*T&9=V=6z|h$5j4 zR)$G?rU65mO>d$8Tc8YHz03Np%&8M|sjSykd?6o<>sH_A1%7U!zSMkm*hG(pfSi&q zWGQ=tpozby5=T6g`@_1^*=cZm4^Og(BDB9I9&6KDVz}@`Hlhj!-(OSN?luugq59D_ z1eC@*2wU9EFrc_}Ur+kap;_)GD2kL2naVtHx;sr!4ER&f^7!)sCz+xBN*~)$q|F}m zd|_>dfWKH#CXb7^w$pO+Ao=-}=%Is*)q{PEGOe~xJ;qhFkB%|o9Q5+LSkM+mE0|^< znVYkm`I;bg9MFfhlEfB6#23grSqL2hlf!(99{nag0rUFOL5}1C^PjV*qJx}m=tQ~^ zYA2f_QOAyn-2B>OPNu)8;L5G7FulVJcu2KBVM!scY{XqQI;`t2xM!cz7m^cdPgcc0 z;emFS2l#-OLTfRP{fw^#QL?d)smMc-oosPXYyTZNNlQ01HDDv`m7eHafegyI!0N;+ z?mw3RShr=}UssZ%!1@^oo*3+Li?ApWg61ip^(Ugp#T>z3B9RY$)>rKd zR%jaXJS6>$Bk6bi-l71|6Ye9@6Y~Vh9@f=N(`^GJS1c$gPSUG5%#jIEmlYUP$@M1;vpk5CfzV0_@n(_P4lA824)5m!hDrue;>}vHq;nT#cvu=u zt0GSnNO4s4oz8;g~1O*HD4#^3PN84XGZ)P*!@5DhxoC!AGG}Y>MP2^OvQ^Cde6!q z?Q-_d)(o-<3h|T-w{KytYPr%Auwr@(hCSEsth}G;?-TIQJY7_SaD8x4&iJ;FfhoKJ z9lG2UVignpQ{NwiKjA*~`1uRqg5o+}dq-NUA!p~Dtno5@LYu(+3#6;A zYV|WujkRCn=W;Xf447xeYO5|`cdKoRE#SvHs6~a@{*XN!843A-C@fx#S$FHTjE2?| zEBDJLs&Cm&d#-2D6^;M6a#jaL;|FA*bW%iKrQOYQ`amF|7#?v@?~l!x!#7UZFiISzEbKc)*0 z#I?|%5w-jh#p3eEOi`{`vFX^4#cThnQ5^9FX|IBlgg|B+m}|J^jtT+1qs(OF{e3{a z#OvXcP{?2fV?el*Dn9+=PJ0$mu$0+(_!!>=Z_JCN`0dj2=PxobIGnFb_Bn8fr#Jn| zvcFNC?V0#3<^%k_=}!K`Oo6>}Ml~HdzaNd<9B5&hFW?g=BQn)UFAoXrLfJv(ssMZ1 z(>MIk8xUecZjuBqGjk&2f`2@qcWe*^oO(NKX25rdJE=tMEI8%{p+ja0EhY%{fbfG?eyn$0W3<;{% zx>5{$x{HVS_(Wi^9yJr1jlD)z?D0)kC5Moy`xWEFF}jb~OwGzSGycvn%To5R*Z-}yt~-|ar5PstOhBF1yq|vm zcm&xw)Xd{CFp=x%N8+=8g<_-GS30v&{*^e8N7UCtio>LmsU@fe)(|wX4;_1KtXSGA~o*Uehg7z0ejk$uE`t zGTnU{0YY=ppx@yRGuqsvt*67TdI8^a9Uc)cJ7?{xRX8`=rAv8OSP&+|QoVs^FqG8e$@ zG11y9#bvS%WjiMFAioms%jqRl3FB0?2#dtM%7R&$|yqyw;6;B#^u~4=HlnVg=Ec91_)Odiek1itaJaF zGFqy9dfd+0M~@|9kMP>}W_gove($O7shkO5P{|1uBT=yCxUpVYv}rqT=)ViSCiQ1Xsom za|~8fXr^iei!lb2slZPgK{MCP*mp+U*BS+3Ek>N7ufBv!KIr{_BS)jyX;FkHjpU^h z^+?o_#bK_#0``0fVz4yYu%_NC)&tx0Pl7mael(m=0K;K+;33#2(n53J2h!-rN=D|S z8rU(9z?6=4IEdla^l^UM8ancijtA*cG zf)3Nu=1Dh_;m~KOeP{q&W*?Y2`bOFaj{`yweF&7cLll?g9yL8oUkI(+hZcTc`58GL z3^%o?wSv+t4`1QiZYH((%caMW{Y(iH|Yv~-8X$*YG&;Mf5APu-i%ezz%P7qbi`cSC(#sf`oDi^6 zQ)V8^+h0+zP+;?{vwq>^&br}4OK}_Y-1RX5RO}KCb@jdZ zzsWxh1QxcV7J&9#TS8F4KNl3&6%33h}29 z>R|`4DcrQHd64?Yjo`sE-la-dHYV!V;^ zHXwEWuS@^6F&v3XWnDdF=Fvf}+f$D;@OJ%lF4Ns{}t$z z337taewIwYgJq(rRVYh;@R?TgJ@H_MFLT0)t|2Rynx~&y9C0sgn zUK>FIb!d#SpPick#p3NcYcRC-a)Lt`H#HX%KYyi4^Ws_?!%-sA@VFAiw{ z);Fgg3IzbrNg@LcM$QbMJCGeF>=Zq#)%dA2%OF2DQza^5Y|4Kkitqu=`Us8a!oe_w z1@@BWuCfmGVryeydvJ@PENo-`ioun8leXCdI2>;3=jT{@&Rdlg^@c-r_0w00A zAsmSj520TQQTayD+*N|#LVnyMPrd`gb3f&{5i|#icna(PNdhC5AuD`qA%H!U1X@G% zu3W*o!7?$ApbOAzPLGD-_Zd*Hh?7bluDFMsrwBBBvUt5faWF+*pNqlb*|yx~h`AW> zXWvqjTZ(+0O&`_3i`C~PiLNO5+PgytQCeTEXGr^_o?%8(ba&NPL>Fn*$#+c#y^Y=$ zb{M}0D@ zKf}8S{Tty9Ox^e_D+pJK=_|(y)-5|$4jcHzy=mO=Z6!A0xW#ksKG3Gqw8gdnUb_nI zB#K2X>DU=m^76&81sc*V23CEXTpP-xKtS7byBwOp&QK}i&kHp-_Ayi zPSq)yo5W^7IS7cT;jQ?`XVQrYGH;v?&F>*#{PUD;g98k9GnaLk-O#$NsnE8IB)n82 z@}-B^37m>bEQ2H^hUsFq-dMuV*q^|rP9W{otmhaQll)aR;RRMa@;e{9f%YM7q9F>T zI}uQNbO#j72QweCX+^;o%C_>hJkOk6>=*5M1%PI~d0R3ti-3FN_#S4O0)a%_R_9<+ z<|)8br1=>i7Vuagu$_N``eb???U0$ zosbPhC96VUsU^yPUe~}xY0L&M4=je{xqfek>cNY_JtxbirkWPH>!IXAG<@l^lq+zIM;&G7)I4Red0sRC$pkl!b4BkPJeS8^tkT3zy53YC zZ{5DF=7f`b&QM=)>Q@}h7iShx*TYl;-^|+@FLtW?IpcV31J)w*B;*aux--a(K42K9 zAc^(SwT#bN-cNTH{XcUCWNdWtatv+QGIZ)9s8vCc(-GbW59?}CiSZmZSa^=QdpD|^ zecV(Ja!#Gm(>yLwk{8Ce&#J!}X7KoPxbEl@a$49+a=OW?cCsX_vu+(T@spEl8a4-5M%U*bGtb&ieLGv&zf< z6ATd{QC7DAs9oASU5#RbtuC^@L~P@8|EWbU?rHa)ijGk~Xc8b6MpC?QdXF&^l@s5O zniyv;$zH{a$FBVRR&r)a$EvkQme7g$cn?#rb33-Wl6Jy;_JSN3 z$v-Zj`s=w{r?PikrHvxousTj>T%A|iK0y?^fQkii%cNAh2;_U@ED%mQZw>=|x+%f~ z;f{7d`8F(iIZ}Rju_{XJa5+T!+0PYNY30Nu$e`wV8%~8P?ZmzYy7_!pJ?;VEmt!biUO`x}TRCpfS3X`E+D;M!wFvQgX;b;X#`{M|yM6LwRk zM^ZcC70cS68s4`9HV%Sb*1lbK$J|jf9>clIu-el~15Y*8DmuM*3Qv^VCEY$Q#hKH& zkJ%f|SNllOloYFEBfrk1g|Cw2qK3DQ*##LTBIrmTATv1r;;6{fCD#R4RI_`ku#I75*^X;*6JS5?&vJit&cS7JF zq&0_O`@;PS$V*c}UPBSfzET)-{|`Wz{4WrW3cH>buHMt-uBO6sDca<=$b}QK?(``^ zwifB3l3d;`@}vkF+tY^}^@QJUHRILk|8?)PaU*Gs42wjD%V4%jTn&SctHgqnr;Ug$SLG6svRX=G3%!X?>lQ|@XOniZ$au(X!_bd0I zm3uHJ2fXzc`_n{5p707eu`iulDNy+S74mbxi}`62=M}rPd7;9p2*?2F@M^xc-{Vbt zc@?%!{2Q z)oeIVMF1;=hHWjFxzG((qOj2Q{U66fo9DF)*G#*dRVY;I?e)z`%L(FS%A!L1ws6JM z7;vjHsDx-msiI&~_)!uqDWCT=5P}_xvwmJq74?8c-YLF7MH4tyG`fEQ2`*tqa>%m~ z1)XC%?}Z*8KIBB?R@0X?e6=ZZks>?T5}UqS4UQ`K87chwNm$bcXwmwtQMCZ3cd8{HjAZ!YYZY%9lJ2G?u{$pUJumPtGS^#QYhd_dA(j>t z#G#CjP2x(wfMtmNgJ`DeAS1dKPkm~=S zBZ9g+*Hj}?c~D7ek4YzMbBM@hG;?EM&#(sE`2iA~eY4eYa7?}iplrw*Mfed$gM&|( z!?f>dZTbr1=u|@b=S)f#AHS|SEe>6ZTR*tAbf<(l0~rc0Z-9iL+;tb0-b}|G=ml!v zL+SNUZ=hv*8$6P#M`8Ol963d?$FD6>xg0T(8$sdJ?>@!U4J!*jwgNP>T_;tXxx*f{ zaETz8xI#`-cLgiHl*6fDS7*7-wTA-Y`rTbrL7_)RGgydx!Q!a3wB*^l!EueY{r5Lj z#w$jv6cCovuW(xx?n*;1Zt?J6O0wA=Y*9%4rU~W+9vG4E6|t8v)q!%CGGIPH;woWO zw^UpU3_;1)(;i;oqihrfdiM(>$77WHx}u!55<)lUBxJ$xS0$p`ch)fgRZm4L7E$?o z%zyElkzl*Osp8I8XKJIllanKr86wK~X(&omsES_g2y-^<=S_{H_@Au3R*V+NP9@Pp zW6rsxXfpj^S{VDxIa`r;HErr%{0Wz4qL*E4ImQ7LzR0yI8-34ticY@^NGsg|ldghw zkx02m=tzk4HGCymn-k+1<=e{hylk5lz?WJ?b85VhW<$LOfSy#U0rphKhI_Sy_KXc0 z6*mBG+S!2qSH;|Qps=7&`iP%)&UZtx4$8aNQ`8h%djVCeU$0&{P z=Gk<~3~g#R(lUtL_w?xE7fJ_!tsg|B?Qx*t5xs*3%o7}X2v&;0^7;2ld5k~5@*it$ zapzViCMILK{9t9HUG)kV-ZNbD*swR|&2G80)tbu66*l!1&NYXI(M33xKZ z!aTFp#HqWwvN+OMi!0x9b9X+OUWnX{j^69ZCuy2e1kUh9g{%QEST@v;iNY2@jWZuF zJQ0bZI=&mqoZW$Less_TiWkWOt{Jhd0%6RYKxMD|32&BnC;)v{id^D?Ku$M93V7H= z=z?*+O#|Md#9SRmC_p|LWq*aRdo4<)dnHHXZ{Co9rs-bpH8a z)n7up#6s&7jE2hpLkZiYEgdc+uH+~cG9B1j|2um!C4C8%TKHnBRMB{8qV}AdvBWNI zw54299Su?rCRz_Sg9O>W%paHAwzAy-ZArA*huU9L7XRNBO{9f0Lyv)pdnVqEhEqN{ ze8d~NxZ-5)z!?=%`Y;>Xt!j;$f659^kOupP6F(oZ*TJsK?m4Xmg{ zRP`xZg-2mUI)^k84L!ao%;rbr=nL8MDs;oTl{pM$3YXV#^|+o&SxM&hL&@Z$9Hb~{ z8r7N7=xj#+&c9JNQ>SY9?H9!II3q%}TKSHTBSka0);t{WLS3a3rX{x8A9m{1cJl77 zCVg;`lwWobd~d;AQb*eduKlZLu{p|mE?CaAk9@_Z)l;oKAFG6Sl0LC8CgDgIAb0cS zGaD}65MER1ZSQ!KZ@X$e01mo8yE{uQ4v&RUc#V1(H9FJo8xqQ1>(lD|$wKh+JO%8J zBan%VKJR4|_&O08{v(!;!oAvl~vEIo4T4r}0^zcN<~ z1gEY5SekavZo**|j^Hk3*e*X!V(X~v7bhCBXj1qHo!Hoy^rPEf+U=;RnO1AphVw!Yd7B^+1|_*t^^gD$>V>El30v&a)pz!!OVv3 zMsXx+@s@NZ6D47PE>L}_oUjobHTziUhobP8D^zvr4VL+Xvy)t^Kz+Nlo^gk;)1^@ zBQUp}pEJy$ksy*U(1Nl7B|G%lx()ZA%y`5%SZX&Xyz9+(2$^nj9+&xCkgeEKkd@oG zVEbS@hkxu26kfmGVn!>22i|Z@m!XqS=QT}aQiwVS zp%80~JFr~oROES@{v&$}a|a7rt=luqM{2?N_$96)IHjfE>^Q1-RaU3b_mV_x9_&Tu z@K{jR7YDjpC^lwm&(#pKaS;ENT?e~!*%p!uS|lUYYth3l2#7AK*MODvA=nW_4jFf)X|{(R`0fkSJrAEnQmOAadYU$6^NNdMa}&z)+!k5 zLZT;mfma)r#|oEnjk#inBkqiqCsEk|LYnniZ{0~G=DwSU)S~A8yGU=T8t>57Dq@R- zDpi;HLX=UM926;{bfa5Z(nz2oL=dx~!yf9sE+K3L9-79nsj0Am}9y3ban zlnMXc{e*}5np`A67<>&=qbL1E;i%4z``vHYQpu*ddT#;@{@PF}(J-A8kqol{y+@I6 ziWq#jJtOeXhc^%;tjEcHBUKAK;oYi@bbqF*On8G@Ejgd`>OlkFWg^EOQU(S^Yd~2J zmmNs#`qD6Sg4q()Y!P!ch=7rzOcLTp~RaK+nQ^@LK$yq14a#X~!tL z;R=*uB3tY|vb{fqYEX;{I)$NoEUBRJf;~t|n*|%&yC2NSn|@5L0Gh`$(Aa)4gb=|s063L5S@1M zy9Z~=YoQY_s{!*;d(y+b-C$CK1?S! zU|QOh(e4oGyTi>c&Uj~823L{n>EP7W$OG}-iS!FrYQiNOvl_g(Jo3Nq>T@*;$!$C< zy}IzvxLVuwC^&AS13B;NZ2+PSF+W9sf@7e^rC7IsAL|N7-q`eSCP+7(i{bm}9rlEA zmEIAys}wAIB4OfWcLefoVZ?>cc^qHTY^9!pz656eg0Xj{Zy|Q;OuaFJ& z3mk`%W-AJTgr8NC3kCATyHNd6ZJ1r?Wf}q)(V@$m1nIBRYB0T`rE5lFA#vZ9@ ziFk#@sC3a9cfTmQxZ#HTUq;G`vTE5}?c%$=tUV`nsyZu+D-BBw?Stf}V?@{Z zBZUJvV3RgWrOsxp<1B|Dn2J4yJuJB| zqa^A%jZ_yc%1);e(rzChrIh|FaxqrepZ1OIy!dhu$aWA@)izc`g-1JM#?W`9@p{(511YbdrSv7v6n%oZsZpulPTC?@zvn2G8V>AZj@b()mqoi)#MV-UjqdRl;)M1*BmjqT&+o9pw92 zNdy}E{X3tH3R|sicqoJ76W|4}{xEKiQik$$4u_>hJ|>5J_3-k(m2>?ZHfGjDt-6c< zpb9;K?cVUGBKC#~{xR}Qb=%;1^(0YTA;Czzxi5PwssFKEgyN>{Ck1+#L!1*QfGh6X z#uXjvstej@(UMy<{WRV}oI}4YqPf-eXA03^hmQtm84x%0W`5+GNpg?H{Vd7m*{4uA zfoYbh;u2dySu(cha=nh*wu6Y{efnngAl8c(55AdO0YjhB6>h>QE4=AXt{PkV+aN<3 zmsa}bddveXe>FA~5Qw_Wc#G|8uq{I6rxs;5>Ks7n+d^ zdO0TD&@UV72LAfWsFugfNT7*^uXSbvp(6i^g84{CT0x9IvVx=2EhDMMBl91XbODpE zs~)4&48G(=N?uC#J3PS2#`HWJL|=ux@ve+52#t_BE!Vnk-jG6(==49A0e{shJ?vSy>*bc{ZcBRlq`@Q#S~*Mxqqq( zfLC;6)JsEEn5iaTqEfeR5Pi9HEIb8=odv*Gr`|1FK6agis220?X|iwm$pf{Gd2Kk@^Wg36t2b6C;5*xB+JSx2Yf3Vx?)p~RN9rDSr%tGJs6r1tL1Aor1WB{( zwWey)ZsX!SV2}d7H(^mOSg}9>2YU^WjaDJKphl9 ze8>`8k8Z#KQR+WyK^z2iSqqj7wTeb~BwMmW{H()mRVCuB;r8o3C=;7BOCc80zqgM* zIu!;~(^Hj$zKuxvO+$kw>Lx@`WU{2r7DD*R#^h_a82AP!GbDe%Ib-<%G>O~^Zdmgl zu-|F1_4P6t@D`?KTgppIQaP^cpM3_#Ook=(dA)^TJao+k(F);NK>6?hILFMTppwp! z*pv~Ghop0s>jVF^-uiQD>bRGQbaydj3`ufGx&%`7<$!lxpC+LrzHcCMEk?%NNibl3 z7g5TDgQ5zfLMm~wAQ;cIRO2ZVorkz}<}Y!OWuwDMh59}LYb9W(gOzB0s~ z5}-;I!`RXRH(!O`Jd4dB9QEHrf9J1;$7KS`Hy;`tgwbyi`1dhzdi6Y_uzUGY{>Jpd zpuEStvu+BLC|={ToE`#62UOLu)^}VpvegocmWajJvzXhkTlBS3A0{UM!Q};TVbOC1GCSmyS=X}GM{z(~ly=Bk!cX?vUE zNkt7&H(=T`_e2J-u@}_R=sT&r=Sip;S2O3pQ-ltS|94(4K3q&dg&>VsTh7zW%N$Pf z?FC0H`r1>k5)c=qbAAq?CXj1#QMV(Y3_s4HayDi%OkNF8a@rctrz8B**h%g|mJ$;e zvTvcH;R`(HJ&>p^fS^zs7b_GaKL+iN^MhQJ_Fs9iju}yet;J0j85TK#Li9g+GL;d| zT-7GC$XkY=n{^grTnTc<(813bmXz`$VP&SHDEskB%YpUT)5-ATIUiyBB*_L$G*aGs z8txVTU+r4*a4tJ!+?7vaQ?;!AE;a}%P$LgsGCLW_P!Pb-b!GSIJC{R>3GleW0T%OV zOg{67lFSE*c|H5wt9B)Z+09h2Y4o6-YFx_ud(Snfuwy{#jV@HM?z7S-k~X1L=Hwub zquXM+?5oEf^9KNlw6N6IVQkK%4E&~3zh+R7Em5NjU6zLXSoNL(SK1_WnqjgkLY0DX zMyF@_x!fH~Q~G-!lLUdA-eIhyfWT-#ecB_2k5Q6*viV->j?3#p9OVglb5c>dS%ZDf zqpa84xo`#Kug(Tqu}7mti1r>dp&sEV7 zqX#jg7&HQw-R&B5Y$&#n3KR{Syn8lw?VYAw^K;VMatCyqeec~1$RRxrdOpE@y$(Pb zw(@LV^*w0Rs0*AodW|w|mEZi389&Ny{5K}2wPPd58KCkKbIVES9hD1kCf{zRLWq7ZzjIEtzM7Ry)}eo!Ue)tK5g zACRCY6Ly-H58Fe*m|bTH?kd`=*QBp-JqXrm=E*EupSj?g)^S{8#ETk!I{i67G6hmk zu-r^doEcCm#pSxb3(+mh_4deDEm0Vq8u7*HNSx(%vYanb{MUsz5d=UwxQ&3zA##US zJm-VHvBRdtJjkI$A^#~w^ng6$O~x@ip}bKE-f+LH%k?t|qT%#CKl5WP6F#EM?%z?O z=OFAB8Mn_~hSH!mYJCfBm6TA=c}^#DmQgTyj$fr5^i(tk(lg2a)}r*jj032Jh;p2$ z3=TNPeO2bDi`3LuvDG+qC-qYPpUFl<;P}OmyqcG~PiqV#PgD;K4v< zE~k1qos>vDD>5-KH*akk5O*zmi*z@>{j{3~ErUKiRurvaC>%qof)6_Yme0xXc(&gDzhBs@IrRz#7O4T6f-PUS>T(?I`MV;S7U-Pbjy|AZ z!ja_WIx`W&(Q#$y$L0m|qH3#TMxAKskXlzx0K~(N@;tC;l+XvGu7)|)vO!PtTRE1n zh7Loc0esSB0ZXmcbfk|a{+Oj);_3+HN~&7FY3*IH8YVdM^Q@ikO0Ex31NH`#pxY%$ zkOF}L4A5!)t?e1*%+ukDE@RqWe`}Lf8PF*1Y%9Lxo+I!otROvFPwC$3!iO`K>?f#R zHsO>3EtlOV1uuzYmu2}eP7J}^%T~Fe?i0hnc8Oqvp!L7rjJ{sqlLNgIy_CkNCxu&M zk752*b&1U;$WQo9bmz0v}nX4h^yo4*?s`=$CoFC|nkyyiulF zX9)t^-HYy3^dBNwB#8BomoJ*NTs@{|K$2j z+CUtV&5M*?g<)$+z7Vm^o)=2U{=j>?d4mjv-V*V9 z6u42^=$hzIq4@)~HHe6EdiNLMk97 zuDS=cu%tEF0fX>!?}ER~7~wgV=NgHEt-uA88~+%P#|CL`;Auwdth`=~@{QUgLks1WpmgL-Yaj1mYGVU7^T=pPk zw2TNE6j6`SzA44%324#NqwWhhD3@Yzw4s59W|%o-q5Bu-e`ZO?@+%U=Nlh@GI(IMU zz=b5;faP0k9CK;a_8-6`Di{D<{zBMc=fs1Xl7J7`=IJGr?SRLlT9evYUL$$noSqh0 z?$vOvF|>Ir*H`ILAV1r6*Z)H<8yg1w4a3&y$OBszm?3R1KJ`CYzR1d8H_20x`-|=u zTk4>OFwZVtQg{IWKLEg-WZ);SX@S=-T81&23YBIf6d)=0&_RRcV^{G&C!@OihFxK7 z{nf8y&#Ng}$Qjt=lU?*huMUR7p|Rx_pjQPXiajluny!IpD6m165KtkxTg&}`w(YXR z^e0Xv^q=xukm(KG+t*rCIph`}m#pdPc%BYToz)IsPQ%1;O6OKG{hcOUd_73n%*IVu1p9dA1a1XdFx~bd-Vkbji4;V1$K=rw5%CJsQKkSASHj+2 zGNOz~&^EB3Ke3YA>~Z1Gzyh7qrxc<^LwT8DFX94(9cY+gcqNnK|2tfIXPDaQ0iCd{ zYyXG+Ubg=%3qqJ0kL(KNVzHf=R36478g(P2`xb5JbAuhE6PVTq{|(;!^EJ3DwuUQPq0w#-4_zJE17(HZNeQViZdt zpDa*V__Rh*0830Dm5#4pNR^@R0 zp#=d{eOQwEIOf2C6T+-sNR#M)a3^3x_xQx=**}zUk;AbFr*M}23ASeW`$NdbTDM2Q z<2|~_yW0vJ9Q#wq6Gm>TJQVP?sO~RJ%cb>TJ}bC&aq_`loG2rPTXix4<)CL^3;@2( z+edJ3g%fZvi7L4y$*E83BzHK%k-u&s1|bHerkNTy?RV(xy# zgwb(1JK#@Z+e7^_SVMy?QCwMIvNeDUdfrd=pWyaXNtTlZ$`W!cj9u)4d}w6hWW*Ku z$}2C$&5Mnnm9^?Y8~(!rj(+>!)Jr!Hp2m6X#Pzwn<>IZ@3jX>ds{&Be=9Qkwvbz8W zU$bXg$OLDUtrI149rt*H6U4F}OdGDTZp8)tiZjS18cUR#MP`jP6OYp}a#rgSmQ7#3 zmxv@wLN=dLY;PnfB8CP$VY)^2z=nJRqEsJY(7TwgCIYy3)u$w}u*g^-;tlVStNAfK zFz6zMGRGcbtN#g8eFW8E1Hk7`T+Y4|OR|e+;1vy5VL<~>>NTG}*Q5Q{PB}0J)%9Xa zL(Xy(555#QnbmJcSBdTe6My=;Ad-@VI|7&yO^5|gwkpXhFzk!lnuNe>x`MpIYKhdH zQYURdmMpohB~R5qKd~EbV99V?rw-WJAU2~GvQa#8$}MT?x~fz4V}>-Q?>=OmSL*|{ zvS5x!fu`iHg^UF>BPR*~Oz9kwkcTODT~s+vwnnZ%Phmc*{?;eB07`fcTvI8Fh_aXU zt8Ca5vmhpaCl35X*g!|a&bvqQCE|26byHfwMO{C4^wz|fTBx{dsd*p*66ckidFJev ze5j?ec5x*XrLr#h&olP%`D8FL-#jPO;aST zu&i^{oC1!1OJ5VU#hCPBP-A#O21-23u4W|?`+CCs7QtZ4XcbpU_?{yi+L8~BQZOtm z)N~OGyNM5CR?=%>AA0HN`pbIh7?(1|B1oTAzfw(k7mh$HH^CfsN;*{oxD6zDVei^# zzE#hn|HA{lyXws)TtWf#9>^?vo14VobBiiT+u`z!RWAHnJwE zm!QxRvlw?HRF%~`W{aw4*K@+FUWbz46g9Hjngx|gH?SgyxzgntbvXxWb+v1~%%x#x za*D5f_q|JilAX`jVaY^3VqH^sSksy_j$e3^V9X_gbXMC$w4#bBGJ+63CH(R_h@ zYSbT7T$i-}he{DS#>58=X)^yo#EzbQ7hc3QyKJ*cF5u~l&vDLcLAUfZyB^IAEau<-p)XEL$K8!RSrgV0)C-+##W^5V|{~~Xb zr;#_gz9Ym|d6OVhys$B$vORTZfWJ0*9A@nnRb}!>Bnf)uwD=K(Fv3$hukoH>PuSOQ zDrKZwen%y_79+66A~4Ui!|ZkK5zv(dzfSKPP=?1RhREiSp&7sKv+Sv^-wi``c4Du7iV9Vs{)rB%*zvy;gR@vs5H@m!Ho z#Q90y)Q1Pr>$qx1oJ6R#-oSRu16#P43&Wg-N=9*$>#b~X*Dm1`uk*Y4RV$(E=rCgLVs%Urli`IyFa z$g2%nV1Hy!u3|dH*gAl6?gj~k;K5qCcr?|^epP3q(mby*`>FsT&a#2!J11-s^ zc8{GIr#s`Z2EBKawQgkR;7;oJRR;NNOd9jQq4~6j$kl`%3E^x)EhbcL%Ow+zy6%?l zT!O3f9>Bri*napb^`y=TKGQ?MSbLc-tXV5HD6S0kFl#CM-^GW)yS;>l3@pClEvJhS z1nbvYxE^zz)->}B_E`-x!z;Pgx7Yl+V}CqqDb1kAEj)E0!5}`ezYf*E4B3ohPi-6Y z*IGY~xmjGUzx&q(AXVgkFf@6h6W(fEQzUMF^OVxV(UNZ;t<&tgJUKsDM822A=)wnuD$aH*cOx1yLYsQLt`+; zc-EAUdyf^`W}Lju4QLZFD;2y1L6iA^aP-;aPzb8d1I&ai`!eE_)^`O}#M-f&p0Rl@ zq^jN$t+15zju+OTl47kuc4-Y7Uv$7<JDm7CbLHOx?cY?!nmg3;*J}==(eK3qrIS<$GIE;e zm9e~qK|gy^p$-Gqfdo44Pl~wqr{>n&F(?({pC++|Bel9w|1Wj%fqZkKfV|`;Lvm zf>H&Je#2+fGz@t2({KOkZNKv9*Hq0{j0xBlBSs#2tL;RZh+sBJo#nX!HL<4ic1fzr z&NiQMu+jTs)Djp6EF+Y{n3ezDWp%Yf{P#xnY|6UGH0}e<0ch2oG!s^Tv*Ali@N1r% z-PQs z>aYlUi#kynwOKJ`d(Pd#@%938yv@?6mn(Ph)X1nR%<3JlsWE&s|6hANa6{z+mBHYI!=G6g@9 zx0&CUK$X5oqAA~XfaDkB-c`tnVDWBIE`k>PvZMTl)396Y4jVjbzTOeA^>zC1;M3Xoo+>~1)1n8o0tX^J_*O~WXTzqI8O#JB?LmiWxmniZUD%k9t`UmfH zXjw{4kpN~|Xkh2#zW=e(II*HIKF0k3vi{tF?nff+Do$k~ zXJ8IaLn@AJ#YrNXYE9CRs=I6mwx zstyx|*LKny#vA+2Z;kEn(|j&wftE}n0h&u0|JBnlGxyv2gpwG-5PRJ}{XW3AH0Fzb ziJZ@$K$7=eMD&D=N5sVxWPsh;Co4!CBVj9e;$9rBdrn?9!2@k^*o$vP>R~i&yp)je zW(??D>d>+ib_gXQC#+G2=1tu=CIualE=ga2cc497#`2O5G$j}rg2klq=n!~7SqBF! z=i$C~lGGTh3P!wdke?-5sb)qA+~GJ0Jb3;(I5jmQObH)#_O}j}qkZc*E?<2w};+nn?Ms1FG4X^SaGA<21fDk-lh}D!F@Rcn$)34o@7*IN2eY z@<|yW_YE($96Mp&hwY83vRqxz-QFfOO^$P5oxQHQ?wcj@*FyotItt17XXv4~;4=jchdQR_6EEvRI*6YFv&rYCJkvWvN1U0Eopfe&^RMt1eT3S#WIKbU`tS|i zsD~H)Pm7HC$q}=j%T!4;WCCdAhB4p<`xAA%7D8~t9%;;BOv1lu+g;dp8&Sjs=-jUE zI~E)Yzx#z0PTg}mB2fF&IV8kl6PG)9T>=ev9 zVcA^@^=PN-PmbvV!tnrSrMJ@KG(Tm+7Z2yuHHZ|OE_?78Z&!H3)F^4ml z1fkM$pxrW^b`@nbf^Z~fW(L$p+Ep$GbUZw5R6!hKCGO>Y8X}!nlXdGxjE@1wJ^8Nw zXI2+?oPL};nryw{5=(RXSRqrh;5fAHAV|YiF5AZh?&r06Jg|hYw2A2bnD{NhBDx+% z6lU=}efr-&IJZ+1@^5T?Sg2E9_w{hzL=KNNQkDU}y89U-M}2>RS7 zM#c0h4^?~v!4RDFb)Z;b`+9kEDDwPV?)@JhT=}2TprYC|!A%_W&3@Y+6X4+v;b81r zhl}Ui)^JT3VQ3`LR)=cya0wNjB0>UwpqG}G+^MfdQ9FDPkITQxGJ>dlga~AAU?sJ7 zZ$<&oP3e(9H@+Yqlj&5mplLb&M);KJk4Y!PithF(S4n+b_;D$_;N8IDXXliUAixmr z$VCOD)U}q0G@;|AS?X#cjQ);6yA2Z|DUPC05>_rP#IuZaZ`sNJk^wCD`kR(7`Y1SD zE<4?_Mp1~iehRm*eCb%hnF1+QwVyF8q>Q5utYyoNU4t)RzNksP!B0xd2UDI&N@ZrM zVl2x7RCn6!dDo)B50}I!HmU*02o+T?pvS@_LwZ_3T|3}h>TRzx3?gwqeTrWcY8_~1 z|51%lM3M7Tx*$$0_zEPnY^{)}cehVRrJQ z&oe<+zzk85w@ARe-F~B}{hJl^=EqhE?W-h%B~)-$#FnCkO1agool*+ut-=P{8)!mtFfMCS@BMbrEhF_VQw>88zwq0B>#kEuKh`$ zo|7%5PXrgT+G=L}^#3qyJS$MVb)jM6mpImch=jC)Ro?fRw}}?%yeU~MyC~56SFXwL zxCVu`UjVHC)9dNsE9ON3US$iomMq2xrDN((QL8U{kV~99?^{O>-W*hj6~4(qoI5c^ zKfsQ~;=B7cemS{}^0YsfAQ)2w9Y97e#yebvr$p@5bYqPdWUX_?6JG|P zi{(ji@}^`N!%pqM;MHRS*1z0XaUtW|xZBSGssZ`vn9Uzk^!*NJ;R%q?eCNo3g$$IN zfBh@*I9$~`k{p3y+iieW3}u;U2Emj{OOQUCvYQ%!$B))`;*02d@WUU)tGgPN>}bDr zLBv^({z>D%OW+4sV5AwGM7BPZtzjeN^Zk7h!n2NP!2L_$zaWK|-fdL@%vj{V9B&r~ zk{>p1I<+1zrl3O-2avROv&Hu_Il@|5>0KMOByul#PC}ozgyU8~1?4ZzEg*6sd-)2E}>qaeIJUpSa@21ZUGb)z? znug2Ce)?}5LI1`fQx|`?4%mlP7~};W)O0TuDtH)J!1vP;P1eA)Z7TGDo$Q3Od*VFN z*0oCo^dqj8ur}!teWRptFQfw@6=5iF20$FOR%m;m`OMXwjM|@U{nwMWD=v9n@w~Tp ztCc{0jv(;juBi6{O@U_Zg7<3O?+NHY%tWy9f2Y2BL9ATRhK218!(D%`G?ZfV8Z^1L zcFWJnlT%F(fK-ZoHh4*cwkv4lq?xG8DVK$SUVGs~lDl$}h2l?UtL>fLj##3=RZ%Cro)tXZmVbd!UYdur?|Vo5 zl19^tQe`BHKxC3$w-fhG&ilMaZOiHP4ns(Hanj=M0-q@93^w7=+jy@ss|VqdHVb79 zJ1=2@H-_N)**|V1J&Rh=3-mnVFaQ_mI zc{iPxAD;hH5<#*gvegfW^M-4tE8$}x-{HHOA);D8rbR>eH#OjcO!~2Dzc#6pDS~86GpT zZY`bFKal6elX>a~fH;bCQ#Q*JIt8C&Zjt^eS|Wp3)V^D!Ddhn?njcj!{x`mIfW$&( zJ0X)dRd{?eKA-J-I9lz+`5z*O`XvFT%4-!{zxgUe6d+(y*w> zWU#Oj5>g#giA{fub!X`P_Q}2C_BAfFV(rs`HwpnVP?oQXAPA5!tgR&RQTbn?p+&eb zBysK^H8VK3YdpWx_{eC_OY}B%?i!S%S8txH?)+{ifDLQ)K~k5C>;>D3!7yP=c-KV$ zXDlDw>BGIl?@%yU&cz&_OZ-qFw65eno9~%1Hu#D6QZDM&&{wQq4@GC!I9iq2oEn}; z*V}6`uLBrzCGuX89P1-)l}_5Kc{dGs9dQH|Z1m=Z2zjm;r>x@E`hU3(rxe}OL(5C` z>_9V#yXLGHHH8HZqw@~Ur{>=F{H+YwDz>Wl0fHl)wRB8L=?>7Q=db#lQS zy$!Hj$R9Z}Hogaj3Ds`>{4>39baqOu8ERg&DUh2Je4o$I(Ly^%KU2`@|9To$l*MUt zY9Sc!biaw? zhor!>Hm*|olS6?-&=uOW13t>^bDA+tfLYHcJcC>;D(`lZoPzB7LqDJzho;!kk!sbf zs);;lz=TXBj8F6mkuxG)ZBB1EdeZ=AWStB<23WB!xOP)l-dxRIM=ZL916;Ih4%rpt z8ed@qFNzl_8|&8V!Bu+tcRj=x5u_Eqdy2Ek=HSMrORP`Sh1`?M{!7z-Zpk z$4=m2AUy^H4y)7j-;Gv6MfjW7OXn@EB}BgqJg^%#d;Mx?>Zl)CwG?r6cZ20aN9v+^ zP*Mi&X@IKiO|710xNLZp-yh1;m|Jwa#~L)&VuZOY^5U{_WPM8nYDP9+&QU(McN0($ z7|oPb=t1T3PXs?=1GS2$N!vYB6cjNzCpc*14VkL?%;Zf4){>pWiFaM7Se^+!em>Mu zIM7Fi|6%W{AXJ|SfHboK@AdxjJ@s9MS;A zGFYoVz@YFF=Y)+*0;mOt4Q{sv)k7x~U`Tc1#K95N=?hCWN45pFn+Ss44t{{|sCgCa zZGu<&v`;74hrGa2+a|UxDSzybs5;2^dWv>2_VmZ8@j~A(E{nC>J8a!}j_PG0E1Q}_Ztf>l;irG-~UPQq>=grz|oe4FQpet{*3h$FHNmaK>CFnk50 z7jt!(Wfv<& zl|67vlym?2%$!>|9}5+yAC7K;rVZcfyvh{q>XK07p79hXLpjTK1`MP=ztMem>A*Il z7wn2Fwjfp=%N)VnXPs`E9o9TC9$e^uSvah*08oz>GN-#d#24j5TnM2U3p$7B@4fcc z7C`0o0;Jr)ReM`>X-e5$Dab{(*R}=fvLdgR8D&e28Nk(ptF!s_QWo_>8MEHUt)h<_ zW~p_}PBv&R3}>M#5Psfk`oD|^+O!>bfe9VWOs%1cW$s(pAsHd;(@Sc;Q0>Mj{GH+h@Gw4Ac%C?LAm5 zeO1zSkml=5H8R%PeCeu|w8fyk>x1^QiW6TUg$43;8BbG+Mbhu(>xhJwO+W-jrBz0d zF5SN%U4)zEX$Zu&E{9U@ovj@~Aq+dnP9Zmubi;G{m?Hz!h*h*Stl#JGthHV*Y_s|W z0oaf|2>YxIG$3oG6iHY!C=PE6t{~qtvy7O?I_BsB@I|c0+&OPagh(Q6e?#Jbt(N1k zuX=?F$v0*A6vs>r<%Pi~Ke%nsCbd8Bz9MUd%vo zv&g&#sVKYjva4O+RBi2fA;msccmZuzaU#A{ND`)WyV7Eks>E~r3+zdy zl5N8~e*Ebh1bE^1stg-Nos%jBrMKW(q#5Tg0T-?d^s0@SW*T1ZvdH%iI?!d(N7#dX zNHu31hXonoS1%|UYJ1UA5w}HUE8?AAVg6TIY4y9(`SGyD2qM& zlo=fpGKXk_)|a3U%8=FIo_qsm=QLNGIkp+R`zMhg7~N$O>(C?rBN+^E1-L}lhwsJa ziAH`2=fhl-$Ep|G#Cmgzh&7xbT?Q4?AEvIg01VivwB-ikn`a-Wop9R9{34&~EgeAk zBb%z=(IU~?(@w<}7KrhrL4Ye-9LZU1RG?&;p0~jBul#d!(fdDTTpKD*v2fS$b9=ip zN{SACc$kVH2*z8@BG%YBwr?8l3sc2{a8A1HrthET_6(YjSyZ3xsM}5((9`)DX`QRD|j)yMZ+sOV^dNZ!1j&tlV~)POn=|^J1uTOcki897j8V zf)^QyXl^|B!^tI=uc0eEjtbxs`3;BxhC6^D!;gBdpLH#F=lI_54j)-!ymlUeg36_C z*ut<-I#lv^Xi)aWk)5kvedHdl&6j{(PnVy(p`f)_7I?HZ=%NgO=(BDL{@+_)aObZu z@~2bxH=I8tpM$5(@&he`Cy218zRN-!LJzZV$?Flo@So8Y2V3TdP zNT6Uzyd=dS4)HgXPvG1&Yb+ZL=~emdxG5QoOwW0O3|<*Uc?2`wnwXw(me7+cG(_*^ zR~f+4*tnM;7761dYN*R(4-VlVM8Pf33Y zCq&j!_ig=PuBhD|^AS}&f#%7S_Z%qakj={SH?5aGf8E)zWj?@2UVqkhE5)g2gZPL5 z)K1fL!V}O0#7lU`T?C08Z3_iZgVVV@O#@$Bq;QPu zcj9e9YTJNtwQ5rsx0ihTVel+^tOFI~X9($6G-9g*@iLO&0Ic3Gh}E6$I$sZz)+8ZO zdQnTJ_eC`o1n@xpQe0A&%5_*Az(6DsZ1q|-nSdN8?)s4Hv;n=szLh8!tn2~)C8ErC zw7ha=2SU^kyf;c_@)=NH2tRMS+kj=^rIsO2@Z_vvVygAV0Lifd5WE<0)o>7RP{u9L z?@f+FjI?zm-p&lyXzHG&VF>>5J6_OIp98RE7*fnhES9F0K z+l1H_fBGwb<8r4s%h8sc=iHR`su3m;C|xIt`Ac9v^i?Wtg6!GP;i)1sKx#cg!#Q}v zth-~J1w`90JtE>mZ4c4AJgJ+JmDtWb+-KeVw}FtbVU?59qtW_LUF3u7KzNQQO-H#{ zPaa8+0{;17B8A(-KCOr6H$0$vAFM*Ny)Zj$ROOw9l9e7vuhuRpW~b8^cdG(oVw-m|s*f(kS_9oLvkx${tZ1Lo-%6pPlq;Z`C}X+w?8E$j&^yYkyjsc?>v zDFw6a5IbcO3(c@4fp@QAae3^TX7~Xe3Nf@EZ|NCc@dY>X)kzrSVON8*4xkX;N!5X% zx?|?rgPwkQ6B<|YY6dy+w>|RAEMWnt7nqEdp5ANN^5p% zaLWV{o>KKZX`LY&;Kw5Pmj+4p_9kp4XR%dT?kW2k8Q>j&2t)@GzXmqsUXCxa0qezg zkC~(1L_=Xp)Z_`BcixDNi+YNC0L*EN|A~XXaM&JHDSDc#V_%yZdyf)|1||E{zvfOL zggZWUlY!XkNOxo^?lGRjJ8)SNp0%B{td-G>lN{-MJT$R~Ta}vr)z`T-1m4_n0PcyP z7W z!d7~JB-ygS1EVX$P1OolsG{f~rg_lv7XL3rHs@NoWO0QYYULI(dx@c&@D_nw3`inUBrQ^rDNb-?0D3-*RPfb>R#Yy8-_1sAC$IS)PCcA= ziO>ve$VcZ87vM(t;h1lK?k_RRHa0)Z3};Hq0|a3Mu$ssJ#RO7n1gqWKiBvCn`E{mn zbrb4VKGKY%C{d#HIxTG4?D$dU2uMn`CfL6^jgl_=RG!a12Q@zU+IiY=pT|$nM;TJ5 zXX%Kv6l~TR(yQDeKrEGDJ??{~Cv-lu4>rJLS@4!OB8~=zdn4%DV*fb`vK)Futc#}sup*P8e^EdyXhQ#l80sQk*F0Jq7V0Z64^BE!2iw7F1H(7 z9T4+z3)o#3bnRASbRpFY8~#sCBc zPUb{Ra8|xurMx!xF`L`|23(;%+@>#EB_$V`f?&xyZ9J#kP-D4t( z%97`nn*E20iMXNEb;7D3Qc}XTYjbE!6K2{+gJz)cD@WmeGjs%+7REQz32sfQK+W zop=69GpQ0_M=3UJgQtrWt9eH|__i!bkz5f*uZmS&Mj(%MGnY88Y24yJ!i$;xkzMJ+ zOPMeHyZ&No5A=ZNsjr;B2VUvsrd40}QxXCN5(vdNtP$WCLl{u8zDfdi` z6Q*HJZmy@I!v@XxD@|K~k!;mOE|uyI*qZ8L+tOZvJn*& z`s!wqaklR#69fTI%x+GMi9$3|5;f7xc!pkPwovKqPI4V%d4_{p0K8ioi zir++A_O^|xlxI{!4GsBC%IfaU9DpN+=zaGd)vBwg6ip)e^h^1_N5z4YkN&IV+P0N)gB%XRxP)ea-kYXaM&t_+0KR}MzdvI0FrQsd~GDgAm zs18%jYe*?M+-@KGT1b{JY;+DBF2X46C>BbBhtF+(`4xN8J^CWrSoA^O@hloQnjQK; zj&fNNo+*<|{?+rO-}ak9x)X9~MwfSkN%{H`k4PqcJ{ndSl*Bp%ymrT+Cy=I`_-5)o zGK-#OQ%phz4+fLRS6qK4VvncFcj)2giybk8rJqI|qTKtm`fuY06WYJLYdKCOsUY0s zB&nQHvFTn!d`jVVw4A}y1QSP_r96b0Y!z|b118rMd5P1xHlYg+w7nz)O1Qvjo0uB< zLyb{bDW+GSW_db5B+SC9pW>_23!eJF*K>B6ubJ{J4d2G2tZjZ zNOA0lMTinKG+gdb^C^-S9Oxj$kJJJ#GJbTIV(pi0_>x`|D{w^_f$4Pc`<)(d!!lyN z$1SH@6?w2J6A7C1xkcuU z?F>}B>){a6bgL5Yuwg1^$~F75dcw|0-9HPOP=?6P*9^lHiUn;2GXvspaeEi9;wp)s zDnCCH-h7+iewM>!WF=J-=z>qkch&pv%c3k{0jln)H5P&eZd;iPx2+3?8!2$>uUeyrL8PQI@}9iFqhK6VhVEwlq^uoTpGSa5Gg4`? zy2K*hT=tm{g%TuZZv6HW|7RB0&^47EZp^2WD=TyvA*B6)RO1|@U8`c%$d>VJwUs@O z2k*SQRZi2)c<-d_mF%>e%htZeB3+@c&`F3S7248V6nJg$xOyNbC)(r!b%HX@S}uWw zoW_LNR*C;-R6(&{ptfsv5tuh`vl1NgM4jrhApmcA(;;H^`}j(O$urQ?nKJ!q&}Xx- z%3*nKt#v((0Ko&!S(>eGEM$bYWNCnBcuI@HDB=8Y<>cRyo%g|8Ckd1Src8GTk*x0m zg^qmC^^7p*6rOmEOBKI%W!K^ZQ4JN&;8QZPM6b6YnJO&RMUphDJ zWb3_-8`_JOU`a0^o%qfc2c?K)CV;ZpQ#L%BzbU>f-zKI8{$g!+#v)Foqj|3(|6j>p zl%y~NXDUpW^iuB?0&VNm0aw3eC8>cC=P5SrkMR{FsXN%%Kj&KwX@}prX1=D!r!)@; z;I`Xpwr`9{s4T-@&b6F4(gl<@p~1p5i0~3Vt?7m8L~3>=@kB_|@yMb-dy31P5ww_< zJ9c0lRq+<#wSWjCI>+3|VM;pf1^$S-tYo5-JLUB^*dnVZ9IUNV?OQE?Fx=>a;%}LK zdIK}bQjuZ>ILl`%PONq`6{|bN)0n?)9^s5seQ?NiOjQeL zVL}CYm2qx|$GAYUi{ALBqeoFdi$@3~Y+RfPC_D)(Dh8y0{~I-TUX^L>*KYA4NU}B? zNPoxpw;3z0!n}NYWS^7Ur9rCd(#3f3LbFifX!;dcJB7@OY+XWk=q4Ezhi>&C*XMnI zHhi(rmhe(!$Ef?3I2@n0UusvcOP($7VkEw+`X>JfxqI(C;3tK?TAs^iR2f0>egMbS(HRt%)W+hu2Rl z4>s3DZfQ%v-3-yj8+bHhN7&a@X7^i&udfn#Q`ZNp%oyivOhAd}w55`cFx-F)q%$Sb zk8gKVnApqyWOU5Ktm^I&trs<}!;f4WX*n;O+nnxl-3;kCd)~(_j0veo7>(Pf0V%Q9PD^`O z;Aw8TFL_SDt1ML6?!W-#kFxuGLZ5?Idy$$}`xjpk#NySq1kJr|H9t3qgt*_~k>`wD z9Nf*Uz3aJ1P8e0Ze*MP?_w!zbk$SSFk60$ zLa_w*pORYJbE^w55<@a=F04^9y*-f3ry_bF_@Fod*u34r?c7V%-ZQj5RwMqNJ5hq< zM?M7-%)F@GnWhtgx8UqXtT)DYYX|hcTxeJ5{o@MV^g569cZhzYOQuLqTI6V>TbLN{uZ)n}qE$t88Mjy0&}ss^0l%h4rQ~kY$LtkoL1!UW)Ka zM^c=Y+dH-Da7F8a8W#$W5y0GnwyB3R8WN_EC>&=#Bv=HQpq*cK#1y`~ScLIz-jhZv z)eognol+fa1qzB%;YuI#)U+SFCJm|F!FO7p`X={4(-s*`nOSzP_ug;qw8~XynPu`P zXYQ!+ytI&w7Ehze*1i1Yjopn(dr{vVPWr&eWw3cGBt!-*ZKqrM60F^lGNzws=~?Kn@lH#zK2-k+dUFi8H}f#qYsnil z#rNk2e)IS!+LFB~))@gU!}?F*Bs@qAPzunx?8ZDfo}PQogv(=WBAB-IwWehZzP%I& zb`0@g`+yfRp)D4mhp1z0Ye@a}WZFqJ1pOVJ6>=?)?5BZgGr-dvXY7_=sDmM8UF?We zju;cRk69Kv+WlBqU-%7&aurfk^M-bIJv%Qibrnx57)7`d>Tbhx0&VHMAbX=V#Q z&r`;oeRDYSwV{NAd@t;$0c>DNJ@xwm(qO`{Zwz(S7E!KI*?;Ehx!=E{J!7ZNuq|5< zJV6;PEH>gR67xUE9J%83A@aV&RcGC9(SrFLabq264TxI8){sPm>}GmEry3>T-0c>WzUw~>PRv?T?I zH$iNg&okiKLZ-jb)_6~Y(-`=rOyR+TC<2@#A*+WwYMPj0tfeyarm8KK2d#|rw6r`I z6jBOEOyjGv2+ZDK%|F=bQs-4l)Wv5kO_}7XY8U_G|ZXc`xeX4VLQ!m zFJ&gzMKESJ0(X|G%x;qN-mt}M054vT>E=jTWyoO2-*>i4BBy)!^{1WM9NAZ5#u%+i znwW|LDG39c|NKp8T!3F4WZ=MryVK>%|9CK>3kvy%00OjsziqiXs_RESn7j9Hyck*; z27pe4zol=iA07UC@x=1lO_sfh8E8`p)H~7A>z%Zc1{%!#5qJ+{1DHJR-MC`7mp+qVr=Cqm5osrpc1GvJUuAnsF_Q$x2nulx zU8Wt!aV)5U8w)?&rrxdY8ZO-O@X}W*g{^33*B$aVF2ckScmk}3hlB{sdhch<0TT%lKo-h0vlUPvgH`a~#r^0kbA|MH7N!5o zBIv*qlM<;|4;_Ub;IkD?Ag~CHFul}Fu6N(eEH?x4ym8|AuX+Xj zJKd}v?C-+uTDnZ>dCF*^7O(2}vS!e$*z5d3> zJ%DExP9VmrxkxL9R;6rHGx9b7mE==QZ_?_C@IYv)9pVC?XDPD+l}j1nsf!JwCr@bq9f075Vt%2Ty|1wD@^E3RyVV z;WAv*ya1Krpg_?{X#clYTPXxl+~=olTD1hOvNp*w9mN0iY3NTtksxD?EDSi{1f`f! zYmp3<6sCw%g_4-qrjB8<0P3G;e@|Hc+&Wh4(9K(HrgnNG@l{#(YG|&6ZWVtH#^btkGDvz?@dhB ziElI|T5Nz=xuo?$<>+XWkXqJai*~uGVWtgCY{HORo{8|?wWEHRE4!^Vf)$> zdD#=gYcAZlpEd(?3yw%XBmS6w&OIldW|TFk;qbx5w9C-fp!yCVm)`74VcrB%bf}mkcF^JH1o?5! z*~h_xZ;O7!94lmh)|Gj#9`rx;I*-3Fc1wK+W&DIcEo-9o>Bd6gAt_Srs=NFyNAmc~ zxwhc*WQJb`34l6#^5_{mmb?l}cFogsiF<86=-?w1He28aF@@eB*U=7o{{b7V61u+3 z^*!2?xp#)jZ@k*Ox(&o z{B09}=NhK(yTqK>iMz()!yeDJo>9v0;fvl2$go&nH~Ekjq$Dz(cZxX6$F4@wkd$QShz9Wp29*TJ*2@j`A zsBXm1MBuH(rBCFZQ>j@VH!y_7eW#c8iGMrDZE|auTV6r@q`1ES$Rh?OWk?kD^g><> zCr%=_Piqbkm$Sk*Buwiaz>dfq34(U>MryeNOlrC=d_GOMIY+W08w)1#Nfg;kYS6f9 ze8I#cf7W7|L*r_MotqMi#};Y8`sh+4d*d9QXrWm13&SuH!^k#Y_*aX24p#>PTG|Ji@+Dg3`q!Q1J*P^8KswuJFa8Lj}FCa+sC zD&a#lXjbePB|2V3qqhi&d=3=`H68{ow%{qBw$C9%tYdjFqwc#H_`{WOJ^H9$?rNC5 z%lJ|~Z+B`XhFRx4bVUFyQT{NkskkSBsXS`hxdzz@gWA2mGXyK3^ZzYy)HH{B=w}E4 z%65d&K0Pv8N{0?B%lze6`W6oG5;=MPuI0=47GLrSH#bPr>W=R^1)<@}ro)c09N$WwJezcGpq54Ifken?uE>Zdh(TT`ddXLk+c7Z)0% zBD7#Br9boxs15GrZt>NB?l5o!U2oY0&jB5TBWLLe02!q>;O#yrHvjm)q0_^@PepV* z38vV(jfhCmd_wj0`8+MyuXRIa+xSKfa{S!^Hz7<9-XrUAeQD{lQ;7=$(x*!2UK#uH z%>J1H36mfXTR^7`dR<-Bn{sZ~sX%n2GW4Ld)7h4Oq8+cO5k+u^*1!$dI%QCjF+`$X zPXwKZh;4q3uxc8$>|1UKhs?P2kZPgjbj;IE=6s+y*&$ae%aY$&7ndH+NF}K5mU)DA*UW~6WfQOl#xCvArf;$ev{3E%%{~}T@hsim`Og`uw=;8BWLG+ zzCNIfx6cw~+XEmPKS#$-M~8Q5qPgK7ot@`Lsm3%v#8P<2o+J>$tCt$&(X;^elRVQu z2pJ-lMgY4xKYDvEF?ILAh1LMwlJ_^RhmmwIt|41l@4frWgZS&%3;ZXj-d$9bOn5;FV{T|S$c|Xey;bTmg2&9_p1sTrV4bJJnJ2#tNsgm0U zBA8U{Fp|tCi24%e5C7Bq_K%3Bmfq?l3EBWcoAMcuA+?ZqI!nqtUlIg+;)pg zAbypz@&UkM%IMtD?oOXYi;WI~P0p^Cw9bFPZIA=Dg2rw}EkIWqFKg90gewrXIVmA& zFo+Me2iL-_w`Nc(H#yj&)4OSpso_H#&yQmBC?r>4s3;QtriCPEsj);PFLD&uEWaYI zv;-u-DC>9V`(;{0Q39mN9JI!_nKO}Cc|P5*m{Kz8;{SUgj{tpw9X&&db6 z5s>?5iGH*Z5_A4Tui2lnR9}ju<*h7H_7Os4{$#T}xn22SWQfu=6LcK4mfhL-(t!IN zRXBU&5yK%{X&HQ~FY2wo>&!-rWbmR}to9a)iSR)X#pZMMcMlegcJ?;5_e)`SKF-B4 z_MMTdBm)Tedwi>}SBL@OoF6AJDSq&=kli!_h5{9~H_8X6VDBGE)HZ2*(Qu%?fqV)T zpasN;+H8e|esDtb^V@p*HPn$8TTZ|QDJKDXN$Y*Gbz%; zUYx?}Y`YbrBUf&+cEfu?(R?zc*KG&q@7sOt3ld>8G2K?BBP|_fxA|fT94EsQHo5{q z7@k$ovh=a=s{$(1_uXoK`YIj}eDqazDLle*MWURbCe$?e>Il=nD^_>(cMiLpgT~q- z3G@$mBAzv!0ZiLP1;o@ix!P>w>Hp4~XU6ej-_fDGII#SU2A6AFIhI5qV9ML?WxTql zjCLf*LYwJrFi@%(U3vu;oc#@{=wa|Xz$aJiQ|*aK+~~L}gnqb4dD^7p_(Z0hyLYjG z*JBXSnBZS_9!dQv$rP!w0oe*GpTC}TdI(JY@;Diobhee5r=$={nDXd1n^j@;Lo!0Z;2Y!D!k4<48ghMg9l%^3*8X=^?`MX}`@5)#)Ra zNw!Sevtu>G-&2;E3iXh_v#nj~ScaN?vrD*g-+j7%wS3FYDd$_`iiYzD2bdvqDli3B zK(nb5a5<8B|@M;!s<1KH8SXHrw&~g#5CT9 z44mom@#7&0_P;cIf_yV`{Mbhyx)7C-hNNyi9$4DGBhZITl-e_qV7Qdj9%oS4DH@{m zO*?8>;#Z^XY@P=nD1K-?yD;gCXY{&pODcy2wTN$n1Cg@&%FluDN~!%Lr?}*L%Bq`? z!(`n-LI=!=+hAeCIHqMREc|Jx;7HguvLXzXK;ZyW+==vQxt2D2G7iFHB=vqW`KKpA zXQ3HINl!!oY%6yZ0(50m-)#%K@u)1*pDvQW0XjfT%(57if#;>p~E zBUo-gF;LSj_)|aTLNKoJmb3n65QySrLZW)ks%yP9sWBl z4gfkk$pCOY3VtRx&XAS>YAKvkV(v!7eegF@0x9Eey#gF#FUxVCb1JxOy6h<~l`M3h zWXBS3Sd3Czr0s*OHKydwc6?CZ*;T1oYmw|5&N(pQ(qc^ogU)QyJVOusrGZp5f74-! z4`0Vj%l)P*5Ky)@J0c&)(|UxJzwbi)Fm#89xe2}E1WzeuW{MuqQ706um;-7U zF>Hx?Wimk#Grm#2LA#7fj7yFJ$C^#2K(D?xGzbw_RNXjH9Z#4@7VyCIaqmQ08zPql zd(63wR@2rzvo|9I|C~I6MeqnSD_Y9L!xpTxhq*dU3~H|a+5jG&b~8?hrjK%m`RG+1 zK~nQHhEl7SN+>a)b?doUCG&l6s-A}A=O?LMgl(nn^39STORUxSYb$(Qz4&BNSS%y2%whf%11=}p1A-r4BHApq*-8INKGjtEUmOT@vt zrP#Gx{1q6a&_^6g3O$LrS!nY&Q^wJ1@BT}6m>X>9erOsJDn%uy;im(|zZWQ*w^`6d zR$m2XCOvQ5ZNZ7;aRv>uMQn_WDiE!nR7&+4O~Bw44JB#ubbe-{vO&^w1=0;+r(vkZ8KLK(&U?~cj(@_!>wqvC+ejw~(^B@&y(wvLKZ^B-W*SC6TL=?Gu$rs} z?@(xz(aT)*iR&ayUwI#7*AI1fc!5-2%3&bJc;nj1RP~rA1oOCo!*nuXWN=pPa9}Yh zUB&Y$i2f!L*ax!We2#HMTVO_Q?ouGKb$DE9DrjT_xM7qc9J3gpmhh^3pGiT*!=1K{ z4?#JvKV$U2-8n1y6I46R$1-f{ANO)p7svfXD-Y#cbJ<1FKV5;j*HwyDF&t<)zGInJWO zz*;au=8z*xbTp@}k`V-5(^>V+9=GtKyZjav*NJJT7ZZdVA2vE}jvfLsrJ_e;xk{g2CadN4hLW&d ztE#NopdNhth!9aOYIWC2G<1p;5)|4aJm#;2bl#RU4r%vMCt{Ez8qmJuB}8rQPsub- zI|ip)^X=~p9$g8o{q$X=wJ{c}N4om3vPL0$8t0)(yu*hD>*+@gY&8i_JJnGQBc@Za zfhiV|_HFDH%)#OU`x6fi_I2`3*~(4k(V!YK0;P3GOV7SI{XB~5Ddm2GJ4P2}Ff|{N z#!k*Biz=jJynIa8e~KCD=?YBjeiBvhf_@Wm^!qD7XEC{_aZ)xn&A2N#lX)(C&=e?Q zCsY{+9CGl%wyV-@wb^mjZ?4d#19C2RFA9`JGN1k75l^-J3;cd zM|PO^4$ubxg`fZiCuHyBm+v^r;qt^$-4A!jUVW}2D0(Dkp)vUh()Cl19F;Xm8z}DK zP@91EoRckyU>Se1Ci`-6k|rOw*Cd<%vR_08bKiN3KpQlh@0>_O;3B#4VTnS4w@f)s zK9e==GzuG$j+(r@#9gq{6(7=kjMCrUfKT-4Pva~jUN%LC}v#g zdGTahXdOIWIqsyM$I$P^ zn;W9Bl>u@z=RLMzvWPPyf&7mi&L4N{XlTmvwD;&0?c7jU13M_Ggwp$b6FjlTKQqZ( zGHhY#35Tq
nX)1Bo?12^(V z-A_upvFEvO_eh?PlL%}2jc@8}ajzcMc&NqWC|^E0US;i)7ZZ>Kn@7n&bhKU77-6$kTA{ zan1Erl?E(AvhrM6lShwpO(B8B^+0$H=sWZq$7i)tp0oPwM>7lQ2m_>PAHO5z?#!Qr zE3N>eLg?E{v3$Xt?IoLGSTEfc_Upb~7r zv%6YSGT~kS!bAHkqY^}TaigO}+H(0R5HG;=0Ul+Qa@3M0SZ%OnVp07e*r+ejS)Cro zSm<_}4aDp-=tU**QO-pAKD$SX%0$lweOIO_2Smt$BeX+zka@APt;Ct>32`Ks6l;~{ z))B`L=LO~9(x}5WfK#su`}p=ioMFMHquXswB6h{k5Zvq3+vK!%2FY!*8yf|mBPJ)T ziZX_9YEt4k9&qEK%&1@SE#M&(Kv zb04;7CTm^wDP&3|tvx;G^n;4SCx2E2J5GEnL8WgB^Xa&+T(Z1h#$)VX*SxZ?UmJJx zk>1zf%Gpv|0;pA9zjsa?*CK;ttQEp(IP!j?aliitI|tL?h(Ciq0svjsx(MfKj`j#| zZBKZD1pxgac)PGTeRhwB6hA!%9}f~wQ^ zZXzEzz¨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 ZWEc3>Iqt}7!}g||mgaBJTpjVqc~X@u&6ofH literal 0 HcmV?d00001 diff --git a/MikroMaster/20260603/20260603100002-Config.rsc b/MikroMaster/20260603/20260603100002-Config.rsc new file mode 100644 index 0000000..aaab85a --- /dev/null +++ b/MikroMaster/20260603/20260603100002-Config.rsc @@ -0,0 +1,3419 @@ +# 2026-06-03 10:00:04 by RouterOS 7.23 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add name=Bridge-LAN port-cost-mode=short ra-guard=yes +/interface ethernet +set [ find default-name=ether1 ] arp=proxy-arp comment="WAN - Unet" \ + loop-protect=off name="ether1 - Unet" rx-flow-control=auto \ + tx-flow-control=auto +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 wireless +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +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=55982 mtu=1420 name=WG +/interface list +add name=LAN +add exclude=LAN name=WAN +add exclude=LAN include=WAN name=Internet +/interface wireless security-profiles +set [ find default=yes ] authentication-types=wpa-psk,wpa2-psk mode=\ + dynamic-keys 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 +/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/670/7de640a1\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 01.06.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" +/ip smb +set enabled=no interfaces=lo +/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 +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set use-ip-firewall=yes +/ip firewall connection tracking +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set udp-timeout=10s +/ip neighbor discovery-settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set discover-interface-list=LAN +/ip settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set max-neighbor-entries=8192 multipath-hash-policy=l4 +/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="ether1 - Unet" list=WAN +add interface=Bridge-LAN list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 disabled=yes \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=25s 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 interfaces=wlan2,wlan1 lock-to-caps-man=yes +/ip address +add address=10.8.0.2 disabled=yes interface=WG network=10.8.0.0 +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +/ip cloud +set update-time=no +/ip dhcp-client +add default-route-tables=main 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,9.9.9.9 +/ip dns static +add address=8.8.8.8 comment="Google-dns IPv4 1" match-subdomain=yes name=\ + dns.google type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +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 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.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" disabled=yes name=\ + dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" disabled=yes name=\ + dns.quad9.net type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one 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=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws 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=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +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=188.114.96.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=188.114.97.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.21.32.39 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=157.240.205.35 comment=facebook.com list=RKN-dnsLookup +add address=157.240.205.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=209.85.233.190 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.91 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.93 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.136 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=173.194.221.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.190 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.91 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.136 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.99 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.104 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=64.233.164.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +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=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +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 disabled=yes +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid disabled=yes +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new disabled=yes in-interface="ether1 - Unet" \ + src-address-list=!VDSina +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 +add action=accept chain=input protocol=icmp +add action=accept chain=input connection-state=established +add action=accept chain=input connection-state=related +add action=drop chain=input in-interface-list=!LAN +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" disabled=yes 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=\ + "Mark Routing main for VDSina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina 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=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + disabled=yes 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" \ + disabled=yes 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" disabled=yes \ + new-connection-mark=VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" disabled=yes 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" disabled=yes dst-port=53 \ + protocol=tcp src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat disabled=yes 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=dst-nat chain=dstnat comment=amster.vados.ruhttps disabled=yes \ + dst-port=443 fragment=no in-interface="ether1 - Unet" protocol=tcp \ + src-address=!10.30.30.0/24 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=masquerade chain=srcnat comment=WG disabled=yes dst-address-list=\ + !NoVdsina out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + disabled=yes 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 +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru 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 check-gateway=ping disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=\ + WG routing-table=To-VPN 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 forced-ip=146.120.64.211 interface="ether1 - Unet" type=external +add forced-ip=89.110.101.17 interface=WG type=external +add interface=lo type=internal +/ipv6 nd +set [ find default=yes ] disabled=yes +/ipv6 nd settings +set router-advertisement-route-distance=100 +/routing settings +set single-process=no +/system clock +set 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 package update +set check-certificate=yes-without-crl +/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 certificate=DigiCert-Global-Root-CA check-certificate=no comment="doh, doh\ + -url=https://security.cloudflare-dns.com/dns-query, notify, name=CloudFlar\ + e-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 http-codes="" \ + interval=10s name="CloudFlare-doh IPv4 1" port=443 test-script="" type=\ + https-get 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="" \ + name="CloudFlare-doh IPv4" port=443 test-script="" type=https-get \ + up-script="" +add comment="dns, notify, name=Google-DNS IPv4" disabled=yes dns-server=\ + 8.8.8.8 down-script="" host=dns.google http-codes="" name=\ + "Google-DNS IPv4" test-script="" type=dns up-script="" +add certificate=GTS-Root-R4 check-certificate=yes comment="doh-fallback, doh-u\ + rl=https://dns.google/dns-query, doh-cert=GTS Root R1, notify, name=Google\ + -DOH IPv4" disabled=yes dns-server=8.8.4.4 down-script="" host=dns.google \ + http-codes="" name="Google-DOH IPv4" port=443 record-type=NS src-address=\ + "" test-script="" type=dns up-script="" +add comment="dns-fallback, notify, name=Cuad9-DOH IPv4" disabled=yes \ + dns-server=9.9.9.9 down-script="" host=dns9.quad9.net http-codes="" \ + interval=10s name="Cuad9-DOH IPv4" src-address=146.120.64.211 \ + test-script="" timeout=800ms type=dns up-script="" +add certificate=DigiCert-Assured-ID-Root-CA comment="doh-fallback, doh-url=htt\ + ps://dns.quad9.net/dns-query, name=Cuad9-DOH IPv4" disabled=yes \ + down-script="" host=149.112.112.112 http-codes="" interval=10s name=\ + "Cuad9-DOH IPv4" port=443 test-script="" type=https-get up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" interval=10s name=\ + ns1.unet.ws test-script="" type=simple up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260603/20260603100002-Diff-Config.rsc b/MikroMaster/history/20260603/20260603100002-Diff-Config.rsc new file mode 100644 index 0000000..9c787b4 --- /dev/null +++ b/MikroMaster/history/20260603/20260603100002-Diff-Config.rsc @@ -0,0 +1,22 @@ +25c25 +< add disabled=yes listen-port=55982 mtu=1420 name=WG +--- +> add listen-port=55982 mtu=1420 name=WG +2434c2434 +< add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 disabled=yes \ +--- +> add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 \ +2443c2443 +< add address=10.8.0.2 disabled=yes interface=WG network=10.8.0.0 +--- +> add address=10.8.0.2 interface=WG network=10.8.0.0 +2448c2448,2450 +< add default-route-tables=main interface="ether1 - Unet" name=client1 +--- +> add add-default-route=special-classless default-route-distance=2 \ +> default-route-tables=main dhcp-options=clientid_duid,clientid interface=\ +> "ether1 - Unet" name=client1 use-peer-dns=no use-peer-ntp=no +3312c3314 +< add check-gateway=ping disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=\ +--- +> add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=\ -- 2.52.0