From 230151ef9a3c5b2ab3a18f943ae9a09b3a78f6e1 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Fri, 22 May 2026 07:00:19 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 22 07:00:19. --- .../20260522/20260522070002-Binary.backup | Bin 0 -> 251960 bytes .../20260522/20260522070002-Config.rsc | 3445 +++++++++++++++++ .../20260522/20260522070002-Diff-Config.rsc | 6 + 3 files changed, 3451 insertions(+) create mode 100644 MikroMaster/20260522/20260522070002-Binary.backup create mode 100644 MikroMaster/20260522/20260522070002-Config.rsc create mode 100644 MikroMaster/history/20260522/20260522070002-Diff-Config.rsc diff --git a/MikroMaster/20260522/20260522070002-Binary.backup b/MikroMaster/20260522/20260522070002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..3c1283c360d932c469a6b2092892712d6d950876 GIT binary patch literal 251960 zcmV+aKLEh*sF8Cx*aHA!uR!c0w?-v>v&+{V<^He$000O80004Z`SAPzLlIa3xr-)e z<@ zBgbP>!bHv+*uiUX$<>AI3I8yir-rQr#nPy=ZuI;>T9I{o&ifhoA33yb&E>|0YV&%? z%S7uCNVShHJdS=3thwm;Xz$rfJ~s76#?LuonxH`fH)VZ!)*o0FVb3=U+;3#r^$nXv zOwv9^B*X^7xCu_PStsh^O}~WmOR7C*}*+Y8@V&els$Vr;YBf$OdmA4+pL}+y(0! z;3EkAHMNi;YEkc#g7ZoDpfj9us`j=EOVR5d?l}+67=>jI|O8_M<;O!&-Er~mv>s$H3c!#%E+nqnIrnR7D3UmzGV4mwsYBU>F|sWb+=<+onE ztx4nV=ZD|q-zPnm%?D*Qh5zg zq=}Nj3j79Z&Nv&Oy%;o&aW^T!MJl5m=v{!pQjP}gU_whuI(=I-iLY>zmF?|ZC*->O zaSo^A$5E`wks&VrS_MM|)AxNp%Z2`Mux>qFMfWG6TV4 z5iTJS7A*P`PZqwa&Lr!{%^um zrsME^Al}$lw|HeI;zKbUexAuXhGEl8SzY$X&=FzaQM$-8oZqh&ZTdD@HT1 zgCG;8Ohu)K^mjlTMqt>vGZ|WNr0X!`*_cLR_h6A{0D6i`OsqTOT+q+R6bbTnn&{?j1cOg^fBqAPVjKY^dlJM`a-utRu~bjG~(J_Kc?-Q{zJUYWqz{ zGUmSfPrj|Fpyob%iP80>@@w1>s$V01J(L(4gud@EN*_*#fJ9=JMyi|9DF&c?Md*5$`XPbRj@*dct+)!^(F6-Z|rgEUMJBuEYUs4vW= ze|BjcT_M3U>qTB<)fTY^#0N>$u+00LX?g;*n{9HQhN#h$h?9+xQEG@TV$apv*MhFVj)J-LOHjP7&= zbc}wQAbgvlk-R9|?0#b)wFI)7i2nioTaXWDa5JJr3MXl$f-EMZ`a+)0V8O7fc3<~@ zU5VV&sF1!dgL8Mf8Qc5{+HeWo$D#|rE9g((1FBV>+^xw_!wD`aL4EcHX(w@!OL{-) zeb4=s@AkG*vf{g}a8Ntq(HPeL_fW$55W>R4Kd5{}X5eSWO#{ z@0O+ns7|N-gOAhj&^K7&E&`W!krDRUke_@osDw#BaZEE0UX~upS1AAe!&Y+f4=Gb% zi=N|r16(f(*6t^Yks;EKp_lg9Sx%04nhEDuVEBKH^{acL9`I-|Et&UhR{2mL%v64% zmgk(?5C={>SKbzR|DCyom5cBu&WM&C-o~NY5al=_^{C9aD7Zg`UMB12wY%^Tjx0ifoMZg8CPDw=~dtU z9TmM%acJ4J~~HU2W0&tNiCtEPRccD_yXcSCy~jZ%jqQ z-?F7P(PJdsCl9Y!qAN??UHyY*J7oJR-KasZ{#zQfi0*_BE^SIQBo-xXp{JZ4dmRo@ zLk(B?3wM4_Aa~h8c#`MB-2!#pv#&9CaiuuY4LQMBbO-gYx5C1&oU7WKC=o zgnC;);?>*xYbQrlNxR#Az-))TUGy6Gd>CNdlOs0@O@=hR3%GrVz3>AMPV-dCnwAR| zG~n{0vg~m|j$Dhd1;$W z;|z7Xnw`dO&S^JeQ^cSD$sXLSm7Xo~LI%nRNRqQXjv$FohSsg2Z|95_A{0!*qcP1T zS5n)MsISwWT-u#hvb1lHe$@5c$DK_%XS0Ozw^HKl#o*xv2ws6RPIU}zxJ{F;ZCl^W z0VGornX#e9-ep-@S31GLx!qb;zOE-sT>n1MaHDw$*|}}f3Bm!%T2Sd9!rzNfE-evL z1YOGU0$-OLC5dz7v^ExGDiFm!H`m+--Fq5CYzi*z)2L^09o#^#S^xRa zGwQ(d=)}8kWTRnjsrGGU31)#CTg!>V;k;1&*A_I)9W{rFdGb0g6}Zq;j8s8Q8XKf8 z{?2}+z1m?9BC)^$)u-)fGeCBpkZ z0j`ou0YjNqLu1jxw|*3DgIQVDs=c;#bq+Ng z!EwTj#OWaRqXVgw*NqS${G=K6ggGg~sI0sxRDPt_&I9Z&x>Hef4uKqBvijl_8| zVBFXaMm5tgNL(Dnt1J4kAWYG2qmCmn`aw0w%X4&7A`SA@-> zlc3)i=Bk$p>`G>hRc{#`32kN_X52q~Y<*=3L*Pzz>OdA8>^&hB1}$hoa&m@Ua+Qs+ z@JAEc6yYtSo_#`73L3E@$mCfxn;hgt+M5(XV>uTCqP1k zTm|#efW|Ud`@^{dtF{qezt-8?Sa8Mc`-`FDxQkBvfGT=f0IeJKacGh7eJ(tMR)o+w zJFme5A8GQV`#Jp~tewb}xM}jU$yl?^sI6|1j|a^*D~9SrevOauH`Wj|3da#Z$b&eL z{N&IgD9ot8!FOpuugl_TKK>F3;#GcFxuUj}b9V{#X~H+23TvcCv-FT*n@?%7;SMN3!Y z*B?fqCMI_4fU_pdUBZS^0(U+_LWfLLzUj}f$Ph4nHrY;(Y@c>$>Y6i0DJj$k+6!;AK?zGi9$0Nc-iLlS1EST1360FW)& z<8d(5BvS{d*+w?c4_HF`6yS}|q8R>VN0FQ9dth2R5C?OygRM;4NxY|)OwNJVlM|Ye z#iYA8SkXN{GN5I&?QG zy4bXj`6}Pk>Gd|5d4>5;wSPai>32Q>N zZ0%X?raRr5q^K?UvYnw*A6CE2a+yM5T5a-;gZygW^i2iTAmp2f z6mP$m+aAK%HnFa1ZGcQ~4I^!)bn;-xi+SPaTrV{pc$%lddo}x+ zA|C^mL3v%=;XOV`Ej6z;y#Km6jB7q;X>A(_+JFpp@GQN3M_zIOW-uRsAn9m(aRzaR z2nu_BiuiR{Qo>$rx>@#fQES_e)Cf0*U@hxAG=E8FzhSQqVl5G#5dPQ{y;>O>eG7!h zIQzas7vJ2anVe}0mR~!u{W=27W#6_4{63draa25-l^4d;^(~ z&rjwht+)(3Sa9XWzjPHgRs$;4)I25;9U)~ia!FW4;=GPWc|?MP$D`c0F(3S&5twm- zW;cZ6Xi;YNdtg#;N;(NZ`@#k#(2y$@1s?l;u=Zj~hlZO8HOPP_Ewr$yvl&u2n7C>O zVSzzCHVywhQ*)uBJ8j7m^D0&mtcHdj1(-t}#OBx%(z*`(C}=e*KDaXrJ?VitJBLM6{K7z>VynvUoqPdiZ8YUwWwyWuT6P zRw&g%0X_F;K|RNJbB=HS4#xq2V33$M{UB=CfiHCF&%_O7)$@F>c%OD6%vuE&XXuR_ zXv9y@Sw&aTCUhBc5|@l#ISF`xVAK8uSJ`8juL8nEbZ>(j>Ve zlG%jOA@uo9zR6RM;Qg?$+FH~Gv{|Z?6EXN_;Faf!%yJ@U_5Mb}81TZr(Wy{|7iH`? zPQzYF!t9Z!+C6?LZX3Z~_in`ilYF=Z0k!)V+JZl z^k@uHtGL)-M@q`MXp_|JT-dAt9)?kDEJ(bmJ}7`fCbLXLpFONs-uDEw7u>fRW%2{vBfLsR!JTum1y;rx-S zWKylvrE}DceZ`&ehDg#ZTTh4`N`r(V;6s6$un)f3%|;AFBZ|#0ZI6v&er&Saotg9% zFgmIW`^j(qd(CmrDX0m06dm=6oQ14auy#4Zq>)7kEw(JA-B ze%C}O?ZTtY^V^TdL^_O-jgvY&6?Z3NSl;iAoASbc#}<}aDn+qYgqbZUuQIK{R|3ae zxBI#$>YdGRI6)tibFaF#BfSXiKLaM402G$w;5fZK+k>Q?abjn#`i_Pajv6A$j<|8} zl>!PJ5$+tBA>YBe$;()%l>U=?K>vXfK}PmiJ9f1{Es&ZLbxmJu2W-qr-OV(eSO19M z1b)noQF!E2M1L;=9>Z|*_%=tK?gg` zYpx>_zNiwz4|0OhwJtVE#aq6rCG+Kqs$=_5hQytqDn#T1qePct#D6WFU5O?z6vD@_=#t&ZIEXC7x(5?Eqo}}jj6InP8j+`lyw~G1MKAEHj$7|L*`Lpa zV|g5Ta8tL^7WB!qxMN9(y5O+Z*~b*hK4)tQ8J@>Bc}?;Hz@aY?ywQ9*Z^AS>e3GiIx!X&AWu?w>c} zBC_Ab%s6%wp|B}tgbs|OQ_{odzF3}S(4Xh_?kgW8)pBQYDbw%Zv)poT_{kp=hm_#+ zbt(MX79=^>nv}$87xq2U_d&|e$I==R=?LgYK9ho>;Ic+u8AZlB9_d!ws5Qd+!$P*O>$)FPdoxy6 ztF7`cs7nyj@8<-1!vWDo#i~=~fFVxIZ`_%D+Aza$4{Ai*FxFhrRr*-o>3Y4$`3Y2}DkI2Z>Qxzq!Og`j zE1-p>U5QY8pDFQev8-1E73B%D4c(HU>w?#;PJJF8)i#j_SI84YI9OWEmyWtf=e<0uOnyK=t5Fw1HPl5J=(x!pH=7gYd3beZr3m*mOu75Ayn zZfG0HSND}SsCp&&N#v7;MGOWju{#!`R1l)`ZcJ+*mh~(GJpK|v#_qEgYV*yHNFZp1 z^1(B4PEbDTd^^7dkfy6MHd<6yt{fVewpO|Jm5iWp7u$UM3dhBh>X4U6>9Ix(Kq|`` za@!Dx-^zxR$w`bEc5b8F;y`T`B8G3zS*y%66$6udIo~3+7YBpn;wMDX&mI#-dF3Y+ zcvoE|8^5tHs5GlFfNAv&1nm~bz4RqRy{0@(u0A#F0sCZu zRfk(f1;Gh*AR>>~GT zqBq&bqxJ_MzUaDDI>tP3JdR;B&@0H_JK_<=Ow&Tip0yvwswg-NT}kL0jBb0WBi5p@hq7`NkF2NrBLHE~v_0~>}9<{| zC`A)$|J95pjKHp1LM+?bkJovM!mxgZ@h!)EYqwIYm^RZxq)6!}W1?*aFf6{2pegn` zfIAQu2)Cc2CWtk;=_Yv@lRv>PpgjGgiQbpQ*Y+22_JKs5D97Gd(c4)5ZZ$P^d+6W} zl1%cq&wvNiCYO2Pihf?oa(#y*Xbc$Y*}@UsdLKA&R2;aqHdXkfJg!x+(rgrn2}>#G zA0JQ{7x{f|GE9%zmwTE!s)c$*;f*hRCA*uA8X6%UEzo>U%>%{TS5)8*B*4AGhOXPa zk_<^QG6Re-b#geQ!{nx(v?O@a(2Hn40^uYlOOP2eE)|1m_{hv?oTvxXR*)l%FqeQ` zEErPy7qB8cQ;gc0?2A~}Tnx#$Jq%QkIB{U9>{&)QeHXb$=B~M)#=9(DP>$4Zr1=(< zq9!{kFm+5G9A|NhrG+ZN3y2OTnQ@9NOy?HXR3ci@E>~kSBVIBhXBc(RAd86 z2L_7c@dAuNBTZ?ci}AbbJv{PCz*81l<;x9BMRl5jPpa`fnoE2c`T8rnT5PkDo>z8wHx6eq*?Q9?C}@b0S)wl|*&c~+ zeR2ug@EDa0b_X+G5CyTzHR0g>u~~-$v#@)W09PjaUL8(j@cnVGf4CckT!_3Tsn!sq zIxZ`|I!yTsykbQV=^KxbYc5u;-nK~!iv;S)Rt)75&(&vH;JM#-RH`5eX||8x-wQpK zYLaHIl*x4B<|=f+BbTyS|FTuP76|=+Vw@(sI4oToJ$)K{p*TED!@C!wkJowwEfWiq z^u+4siSpW&dsZ`k#Oe0undv|p?m4%0B0Cj>LAHE~i*;{6enA$n$SdMHi@gfeU2MVA zCZ$-58JoHynI_k%g^w1*&jgO{@toL(-gbU&t5tDZ0~E3@jcczTSr@v~6&h^9c+R2p z*_a7!sxrm4on1 ztz-C=G$b<%#oWzNPa=>jHWqd!i7w(r16y(C4CHvO1~1}H!yKjp1yu2;emjiG?}InC zleTG1*NE1=ynuiPI^$Y@)!?n@`f~w0ShZ~aZ7wJhGo`QS$kWaOJEHOU-@l-FH+GbV z?0^o3FUuj`D4}`a9|hQ3DXLM*_n)*vWVOA=5MPm093!gw2z&^S&{^s!W_4WyinQzU zy!+!L?CK)1W=T7_#g6dwLNk3RA^R1N7qK>TFZk;7MT*u$X@I?u3*~m&qGGWbl0=mQ z25kg9NuRXudfzIM?t%B0VIv!F@%u~whqkM{kMJJ^|1jcEpJ6qp!BvZl?BHB;dZ10$ zxRca1iI&$3EL9^dQv%Kd{-YsnfGAXU78mg`mq@6i22D3zD4W z`tn$VjJN~Y%V`J1`EP15@km%|f#F_l-oeG(AMtlPyM$++aBAwBaT-~W{zX%VxWeS1 zJD-u6a{!mp(X^)lBru26-oy_!&d5dFIiX&1?F4@4eNG4 zv18WICeOHNnXMA+24dN8vY96XJDLL`Q6cLOT`DGI9RSfbz6bVK$`bt~s_%vWp~xBC z-t7l5Z9HNNk5d}YwCUC1cHllWfE8lsiNRww>BUi)B~~Hs5BT|tU_VP9X>=oc@slZI z1^J1evDLryWk0A>X{g~89egNHL#o_NkQ-hVp+jZx4%)YEJN+b1dTRWI;=;&N)hbl27chtbV*=G`*E^e&Kdbd!S)rO8%bfg)hRdj2|#swRDeMJj;)>77%J?ru`vQ{>CYRQ%%a z2CbN0XwJ=n!%cN~kySv<(9qN{(S5a;i4Rhd+ zMX(UGS0Y?;%d+r+2dP6DVp&3ZGibkcZ^Nw7;3+2-Fw?mkyaYZcoH7l0FB5$f@vK)@ z&%=w*(YOg1=r*fGa^Futvoc@pxp5=3Wj-B{n&I?Zhl;%mF`7M~_W<8<6FJTIgq~=M=c@RDV$?y$B;Zz06uYUq0Rd^UK5Ubedb8E1 zn%L0cB1QUd4xOQGFzVf?uPq9Y8ratUo?>i$vf0|)}oCYD`ZmhZ`Verw`(h>htMLI zMqW2%Cs23BwN@c#8gWVfHi03B&^9SU#X?q({Yk zIe>7yqN}p^MKPEmR@TnXX>{1aA(J?8GmVm&`)3mx24S?IOY;9y!KSh29C|opBlRRb z8Y(1R=n=YJ$;TF(`og)9&m4FSOl(>8r!5(g@g-&AIie2l#?Qs%nx42$@jivsJ}^n& z7uY1)6yFK47$v!-Tm)zdR=UYt24)|xEo%gzhs_j4FoI*>&(7g4OZwKv-eLFg^oaJf_l9&f84%Folv8)!v&Xn{T3_H< z=cBrCP+}~ZsXBS@9aY%waRNGH^V}=ZX!F+8xrcoJxRG#SraUPXX&OAEniRlqTcPMhSh2N;U==VV^;B5lW0k`>vA6o8 zD%{|TelN4vwkS{4E>{?|v8^11h+kA4f2Ex={8#zktk5qSq9k1b&iN}O^Y6#?0IxYa?vH$jw$khk;mwEBspZNMX&y8W7wV5KdLu#%U(flM*o;}1VvxJE{|928D6{0n8}_V+XZxca zMxiId+THPi@ZJ@$d`^Kze zKTq3Q%JXPCbTC?aCGL&4{*Ml;gCYbsLfn%qaU4N!fYuZ@jdKY<5GvS?X9Q>FvRI{b zC3(u)fO4M_O;ycVHCT|fH?J7CL2)Rp7<2utRP8jqi|;$zRs==F5gYZ1nrL2n%S(=D zKfTl&ycjAD>HJx)WRaAK=yH#C|M&zU2>$Mc3hi2ANrw`h3T^!UCkR(6!Ct$K!3)fb zf~++ha1qa8oA2SnQk5F2;+l}nuO z!a!2QeSu?piBwi$zUA(#-{LRE2=XsTO4OHQG)gn34f8%(Ei&d?N)2x7_q70yNAli3 znDd5g{9-$ps7@#zr?teu|)hP=LQTQ!&?a z4)TwiyCLRJ3uxRS-%LF7rk0li3ZX8wTYC9)&vaWowp<$SUwNbL6!h3@CQMXh81>Ea zFUnE%8TG+~Ux$yvXaZMQ=3fYddkGpj8B6L6qCFB5O<|{Vf)riwe!X2}<2DK4eL8tF z$RH?)Jl?RTeIvU~OL%jS^kkg^UQz$yNghW~E0f8E(N$HkZIrbl9%fP5_SL|m7g%=J z`kg@z@B~n~-0XTNTo!eEhnvvEAlOz*O4F$cTC`?LWvXM#R=+C3*&L|6pHN(gg@?En zo3h4;Xurq$CZ#mecZRyIoVr#HPse3T^d?O1#if2^p!)!j^9ux4Pe4w*Hzdd0M9*0g zFnRtbmNG#keO46!Vcm7kSRnD+4kT`SkoB@7NmYH9&v|IsNq(>%@c3B&AAiJG-*K+9 zwI9M>M$YYuHK}rU4{$yjOsFG(Rm|$AGvI(|Wq(|SYlIlAaEetbl<9i4_CZwd5~%1X z-_s3_8e5C?R5}6|tbu#1Cq$^V4@oXEE_i1GV)NSzA_it{<3&erzXURI7~m)xk14gh zrs$d!0H!4~`6NisF&)DYJmRA&SC^m$WY*>IS&H~oalSP5+qE!D6%?0QSJoJElGMUS z#5%otivNWH+I=CHzN_Q$^oLGIVE-+c4lO4W1Mci~3;%x{dA_B@46zLwl#;xaf~Ann3*f!RWcv$ogs} zD#sG;9kjiW1cDf#H@Ip(s4r_C{yy4~;n!T0z2?uMPIAIcw6-O0*(|Cju16MI z1e=9d?McL|PLJD<;LJF>n<<|X&|hxY7jk8Z5#Nbk!`jUZ*tKqovB11j9it?l5vO{U zuri^Z&(TNAQE=pq1l;T4LMEUJx!6mMYzQf~YvKy=CG!zHNI>K(vAOAz_hPG2YT?l2 z07K8HE%r@Q(>&pyS=;9njne{-^n#Ej#f>E3)519@vKs)+HcK#A`v(s+u`Jmk*!Fdo znmo(>MkSm_7x?lOK;|9tBX70QS8h9I!#Cq?Z%xBtHow-uI`X_ssAv`)^Wfe4%CIa^ZVB*e61iSUaD+I(=bc7R=j@BgSdT`O zrMEwMi%LWY&Zc)6TYGvX@cm}4addQ_R#}&23@b7QTU)p z>!Ot-HKG>8?9#AkB=UpmYT*x$KcVEkKH5%M`Q1!TVgDtqfNNQs?}0(%4=1fFv+9Xk z`SbK*+wB%Tf>@$-GOY8CF9W4Jb68o~^1yeH)aMAI-GBN=@wm1jXv%(5Es zBd*^A2aX^Lk$})Jq!Dq_>A8V!2^}Y8uT68tKX&d7-K97ggRug-tY~8B5z4Ts%%jA1 znbL`YYORk~AUv&PWs`&t=OToqo8v(Wx+9-w9dxkdeE*rvBeR7~dAp66j3iXI!8I81 zKTr({*UckW2^Uy;Zz9r~D`8XcvG=)lCK0Zde2@;B$5R+UNwz40f%x@4G20~%TiZq8 zCB!R?(VO;)|IG-B^ySN%2luazb&4t&V}2`D>HMbrVFe5~dzmu+5J7W{r5D z3IE9n>w`B?)`YaIh@(na5c_^J=hSRn@u`#kJfksPFE8a|VP`3fE$0se zcMzJ=LSYW7k3>YT+;}iQz50RN3r8rOP^&CZn_q3N&L6mjTCT-Krix1h1s68G?JR>yi zVe&y-@}qhv`lc2@3DTth(f=CGe$)fgR+!)Y;uO#ShpNit-ZC~m)5Sg4^uq_lhl!N= zBLiWbYEC8bdw4~5PvcMQ3Dk68JqfZT1$1hmod$g}QW9mAo7v0E-KB}o>;kP1C)e}` zPXkKxo4DbbNC&Q92TZH>y?P>Nl5k6mXFr5k%J|>HU{0tjX&coWVt- z!~&6e%Oyj%Snqs`>*FVUw4V*=+iFa6K*RUHprzoXY}zwpb&mn2if?}||C}N@j5R03 zdRkhr_Rr3v?#5o>vKpE*zHeHD^&KXDXFomp_h*fj50KHu`+6}b^SU++drqApB0hicD`1ILUx{wlM> z&9B>prAFs>?Dbh{@r6v-rURBJOkgMTeXl?JL6OV5IxH;sn~-iKjI`%-iE z$s;&&mtmib*HmId4!ZjF%w^Tu839~9Y@LuDH9ELtf8nr3rGSQPOYIO*WZZI*MMH%A z^$C1&VG!Akhp(r!C?>CM3;V6ZqqIFTtHcYe?B~23&o@841CCmd!s^U%B-BFZazrf^ zJ=}xj%kNXO8~b*CRfpu)GOHyh8d0;%y-%JAlRgbHb?zZNm6gEP45m-KZW@w^1*K*8 zC1>`tT~qtOFbR3-uaI0XA4@m4mM{av7|B225JV3A7n#tAQRP9uj77AYxAvR$fA@PWvEpdlIVh(?rw>wtbXAQeGcKWQ7d z$~qusy+HS{6}*mo%b<4Ax`X8s-;i=P>W0F7a|JHki6UNgzkIP?6S`lv9z==+DA^C~3ZTu^>B6rdYVuCb!~ z`w%h>iyh!R}q5)K=fX}LIng58p<3ww~lc9Ymc!{a8K5L2K3y!5{w9%KCdc(Op-RNUIdd*R z16J4tWhaP1PsAS9mN4M`^e2M0=Wk<1Vyg)*=Rd)mgXE{JSPO{aX1({0oRtf&a?M4Y zOq3t!%ZC|6rH-=_%U^c-6>PIp&Ver!;*I~VRSni|uvq$aFeIV$?@LmMDifZRw@0d; z7j_u~P@BhpZk}FNf%z9BxFU)+J5~13ayq}v%7I&iCCdcgQk%hT~@b-Dl zO5b6mjkG|1G_ecHYk(5I!HynYgbMBx&O#D)<^}c_+f>0M_!ROvtL1fmFnwVqZR$~s zT+V&A0?Mo=1qi)sEJVtwn4e_UX!ifosDXPwtftVu-b&1{Ky2(u5V_=`({;1f++&3b zxjjG(O=Olsfe-bbM*4 zO3Ib8R~BhfiuA;3KZFzh=k`h_)|iE#9XpH6_#{SK=r%g6+pc47wlTByVpLHvZ(ZzY+ClGu52CX?VpZv9kdLkTs_V@pVdN zan9u=-bE@D_CK-K>VR+=CQ`|^!5H-}_bq_?~ zlkW%Flq4QFS`v3|P^MII?JNLxQdB9-wwe(N(XK01%7u}P{)&Nc4N@7n>OOI`$DEO#Wq0$ue!VQ7tQR(y*gCg-$g;OHIU&tCqe zTBpQK$Rd#bM`wRttcZiBg)n{a7M&i!i!dkh;~Fds_Z{l)`B=%Uy85_XJG+fqHdV5J zD+12Qo1$b45`O^%?EE}DRRXi`&lq4>o!(t<&Rav_%NN zV@Xm@^OJk`p-O7*?q@j6VT*6!7MSHc@YyREF_cXZyS`;wr3IMXZ{ICBU7C9gj$Rugew3geM#7%L&^J6o4ik!HC68Fd zeGFu_2)xt9p^F2CkLg3jGWdXHf_pWq@L_vtAmTUwzzb??l+2-_zn68XsN+aAUl7lg zm(w+RNqbU{MTS@5f{=5qi3$&BmpPUtpMF8?>;YJJ`<4!iKKGT`T{~sKo2-6!=dF2D`qxz zChjQJgT%4VC^-QCKLEfxqIuU*U*`H*k$H|C zJ+QYt0;h@U7Mff#?#Fvvi29QLlget#y!*1yACFQ8RcX% z;cFlPSW&JSU_cl(jmTI1`Yw_&xU@&VuLg(Us%V1?!(k(TbaK)X=TBYo#VsYQh5#={ zw;5Jv)lygWOlDCd8!;SL@}%Hd6Q^{@5T0uHMsy?pV$28r`oVHZP5P(SQzujgdMctn zFBX}~sbP*0gF*Ruo6#mt$V4r%EZd&YQa_4jtJ{(Z%AxM<@&8#Zl;!sj**}j}?|xig zv!X?Y;8~=3CYj(+yikYbH4c93P|>qP?{GqEM{q^y$Ia*d(s*U%U=Q@*LF_KaacK2R z(uerpTv_tJ{d-NJ^CAyF@Y2mw41+GoqO6J6>21tx|cugCFO=2rZ zmKna3CZ0w53DnVuG)0C5`2GJ8uG+C1{K$0~kiMEuI2#-IJFIC&%6-Cy!sIVxXY{~Mc;|QYJ zLf^{4_cRnFOWEYqwU|lDZZlkYndQY~D&SVy105D6BHQ=2iOuV-#$q@_Y- z3$D!~{vhXah5ymtF;%`aBvxgJ>Oc@~wj?=lxQp&>o|Eo||Lpq8QcV{l0F+_8SdU$Z zPt#P<09D)!lfF%2zdK+?;#vyU%qgyE&E481)G~opIW@DDOgO!<;w}_7@33JYw>^d* zh6y-=*hMC<46ISg1H&G2jUkn^mN9nm^CCrIyS?mbUF``hzqsoj1_)qM<@rB+5m^N{ z4^AnmF7}&}r8k9xi%VPtfJkpa;{-uH=iL0oD$%a@DRT9?(+h`?tJ&Vd8cG6@0A8`X2HjRbywfit4sGU zX!RiOXCS1yxH@Jv*4NZ}vd7asJK!efVWhfSxB)6{=SEH!tfGEE%H++W9HSQU3*aRQ z8*vW+VFwfVgW8%;`b)kk_adro7b$O!DC=pC%^$85Y{M_QP+JHh3du2>`1eANsatye z?=rrHyOU5V8C72mZt622nf#wT*ktcX3uHP%*oALy-r59K*QkC`Uv^_R57O z5!7xA>XGOuEF=4;`yT5{jhkjb?bn5BW{wB^H_Q3+U6i_ZQCI`v&YMaCSTQ7wdsca+ zF4!N*8KQl^zmP@YLmy9*&fa$kDj(Pd;EOzZEd3iBg$QwJGs;K)N&UEuB_>LO%QKBy zWpG(UYjuBJ>hlPAAg6Z$Cn{f{W;^52|VE z{34pfy9qXlfINyA;O@XX0Ecl3WMm7XFb~sGv6n(2&||ftLaVZM@r)3`1Wp3YyW`ni z=#B>KGs(Y(&sPnXRU?wkidIJG!^Jf6&@FBXxsn;%TGx6oVd=l=R%BT?j@tFj6_V6? zt+Dlzt3RclmFmu(RiY}^JaKn|rxI-(ak^!JS*GF5>A0VD1HZ=6!k7xQTc}%pUmwm|-YCW* zY9;T;n0Q_D4hF^&^V3sfa1=+=?ZZxTQt#1~aqRZ*k7BL)$FO=_QV{KYBo{g5*)Tih zWBJi?GJYaiPeMhS3vPg(YGaO;a_;2ADP@W+x97;Qb*veF>hV`qw=NIb1b-7GcXn*``H| z9yd7;QTPDBAi&1c2#Yw$Ngpj^+XD?}?B``>-l1XzOhiHXf)w`ud8`GC-II&N>rfQ}*@`H3}im5QVO)Jw`w5%tvP5UA@8C^&rX1HA)_ zF#=a;p&V;VaSUdKcE`+k!+Tb-vK(Cl**+50 zMq3$Pz58stROB;YK^7fJwqaor@SP(G#KVkh`=|5&D*Ah8PYNsLJsO~$pM5d4qmvCL>=$&4)MxoP5`37P8S#;<(8`+ z^coQCc-axBfRISJ_MCepzF!E?{1Y*IK2RIei|EQuWwBjbq~u*YC~K+zBaR1;6`d^& zqjKyLtIb`KVu0QdF(Gl;JzIW}YR4}j>ZS>O8w4QU)sp_d(Er}dRt=ELEP|rt9(@#d zg-Lb~o)&py&ZiLuD(+AXBkx?lUdVIkPsYCT6BhGCHj-Z7ajNd+^QqmOz zBsz=jzRO-YlC_Z+?7(9Ujx33z`(cfA{$cbs`wR%|)4Kf<(C@LOPu4_~XJ~>d;L&08 z2RVt|?_BB7xEFWEcDA84MFF|?FRET6wBmuZVLZqnb28`Es*bLjz*A>J-Y%}2>@rP4Kdrj6Y6CI{Dm~ZYy=M1FDh@Y3tvkY*pCb9rcwBo!uxh6ca#=7o;G5C>3 z{6+S83rI`J(RBw|OpAiLu0VHfCiqK*lrB3RzI7%wA{YC($|U>^l4HWM{Gy zObXa`0RPn0#Bl72kvIG=VxskC+MzNQw^9={O4VgN(Sx9-mw>(?XMHrC{u_P7{xEJD zk1EZK4N3!%wrZ6|$tHL^@Q5bn1*xI14R&;v;RX9uKYYW@a-OnQMk8Pwvut)H)mT50D+7Vhe8UosuKG8W zrMJoA{m=!M7#D2g*Tw33si3~g+tOkb#y*s5s|$w)z6l^QbEu+?Lp~1>h3?D~2NLJQ zAqzrVG#PJDzAa@NU+{g;77Om5uf99-a>#BSFR@N-uEE_t`8rxfU-F)+qAcpAjQC@1 z$eQ@kYuktknFXGEO>Q>l7{rSXege2=Qks=f61z!f#B{D zE}Ymylbo$%vT~B|fqij~nP`NcX*QE|*nhZljUJU;)V_%wlD8~fT!nDEz*$9(Cg7{S zHKSEmaJMxqhSlF9uSS4=@vrx^(96jog>OhIR#jF&|56ISiTW8}9?rLZLl!k$AY>q= z&HWcy;u7x|#sIngw4@8?Y92jG z@0cXlRR}uo%2%i}DyB z%|Fs(lbbeV?c13+vI(qZZc^<5kvU?5;LO z26@AWkcO9z>oy5S`I@y0cpmX{Nl0OMlJbj?hqlhCS#Y3~rSbTfq4@n`X^)otaK@O> zNp`6~(x`O*LR^R(`q*7~d~*m!Z$*3lk4_uN0<5WxvljaB z+G;;M@~pq)v7WORroAfTaZs={eHOJ%5peKNxIypbVAS;&_fW8IXlKfl2n?#9TnA-p ztSc(0@}J2a@bbOFkR0ii8^zb=)JnnWn1X<@&PJ&70TCM>+-XoDjz^x_Upy{~^0-`D zM4ZY6B|sRe2#*G<`HrNGkE5Lrt^Y0pW$RVhkgx{8W@rll{ew_!MXP919EK%h(fh{| z8u*=!52iNo(b<&x*gBwoT;pR|Hca>Q>c=yPciIJi^2W=dWg)a&hc8mYJ%NBmlu)*r zMZI&DlUW!ghU$czyz7xp5DYvLR=1T|sKfiHS$98{i|PLa$5G`>S4l2GTf~Nk_3u5z zK5zw#Ast|xFAaz{V#a|^BsLuEq%;lTHZR@SAj(s+NZmgqS;>06yr1q;jhi>XM>{}~ z)#V<+gT9Fl zu#%gfQRyx%1lbZJGL1k8rON|951>WbfetsTS^iWyhV*fF0Rt8|S%e6nHn5{KBY~_S zd*I18u3)x?zeI5bLtKnL;ZT1VZ#T{@HX-_(7rNQitgf6dEB5OZ%ME=QLiRhOL0=+Y z2-_`Or*ash1-mJ?;ppW|3^kE*L=+)7z@^RIwk>LkGhK!f321G@a}C8&Z*usV=dL^8 zGRa%4iCsvT4rp0y+xqG=C)XETkB(&t4Y)-?0tvYSGdwe`nuI5fKRsH0df|-q!Xh;m zD`I(upzsmBQo!Mxh=8KSgC7D zo+;&3Jd^o+SzT-NWk{sE2lZ~HjTdtF|iGweG zr0KL|+0+yVVa1^I*0tHQ<~+V&t@AuggQ?)jYMNpuFbIDkS4+mC;ywkM2;muPe_7m8 zv&sf(kyN6fX$}g-W?em8(Q5>f*MxcJ0#=2N1}LokY?jZbB@ugdao#KMnzjOXOijvi z>O>2ce?N)~byCBxtnamu&~VZl zd9L~5#Prz@!FXJ_C3qjT;Ld0ehUi=S^QsNZIR?!RXCqg~eV>PXK9wW*Z&vJoG zb7OA>1jbM9W$yE#zt}Bd8gL7WB=q$^)%T{`cck3+m-KK3)WWF(c)HDio4Q}uiFd;E zBk-lqN`iy8#FBl(^!87yBFMVqq&!BA;=D{x2ny9T0wg^}2#P#5_YbZ9(hrSII6A_tR)X)#*(|+Y(LOakn!lc+a=%N$QSPs!)V%x;ICGgV89y*g~|F*ZTGrdur5Mv~2LHO5K+R5k+ZhibAD^TY*4zaG~D!NiAT-cx+z{aPlLa-5eBJHo2q4 zx@rfu?YyJ}hv`EyYE0oqh^$e-#=75tbCYTTb z4gna}PqFZnjPj+?))Wpq$2E&1HjcELByq7CSlFUNiT_K`W6%yg+Ztm@QFnIJ4@^b0 zIQFbYTQhje4JScw6{>o*trN#dR5cqi73`4Mx*(SQgk3`a*QGZo%gj(BW^;f6l5eX1 zMur)(HnnpNclD9Us3S4;J?ZP|$lqMrCOvvJrxfF$37!U=dVxZSZFp9)b8pE#+|4-i zX8nb(GNZ~*NSZ$!?z6dobOFA&++_6#8_ z=~&-K`xF2a+`XsvlOnGYSEa^^+V@!burU~5+%Y$&HhG;SeoD*1?5-6y;=bf6lE~JA=5ez=0xo zZS>0Tt6cu88m(n%mTX;9VlPc%h|VKwkdL#4S@ugOqKyl1qN7#Ym>Ix3C;8=4#506Dq{i5N3-di$!b*O zN(UF_=GM)13&&C+1$@7)@I-qwTSnN{`)>oVbZ&-#r1MuIO9cl7RdVmm+ZqmHZU?d! zi#=-c^hN3$;ayPE4=Z#1W6~Cd9tr|y}|w|a)zqKIc<6ZgTjXB@RToC zx%o7~R8FH&`m@TN17g*J?@D3aPEu^;=lpuH8y(rq>HNK6P?oLZ7$txwKbEE8mO5=b z-)d*Xl!jIW;6h15mxagzcVn5X z4J-1)zk?M=t+uAc953|p`APgeOvccv3Y{+@}x>kgwpG)}9|G0{|Z zv1&+-+Ui!?8E>S`4;V-vh^6bouW#ISTzXSNy zB$kuFw>>>26`_deZ$lXH*%{qL76IK6`zXMr{-K!>BGc~9#fdsPKB1DD3e3G6KV{@F zB}bgQ&?=fnBx^=drmEDYvnt^l3oAV&q}VmeKzb%rSqx0a8ftO3NW}!qnq)rE(NOcy z{z{t25#T?$o;DfLFDZr>M&Ys-iRVHV=cEvomSS{@ zireUgmSnw33ZU}7q7;HS;z(EtE=%^fk;O4wcuHS7llM8g>Ceim$5<&kbCbi1sGdgP zi%kB|4+n29~*q%sHw+M!_FeqjQnv;J)CkxbOV^XY%gN;9BTJ03In#V&% zk448K93U^WkQYI=C+|S+)2LDf?vJy;fbfP9K;e*Cu!Rr;9b5wQzurCwAp~trQ__(x z*Zr_TLg7!9K`c~7(!rJ~i|W6UVx8R)XaATzVRHy#5VI%pCKNhQ#Pq(Z+^_yYIdhN> zUiQN{9EbK=`;tZQm#&egmW&*HL^0~mu}CpQlJ)Wru}6(N+8(^ko@a^_NeSZcz?!hV zwp5Z^(Gv8Xr4}8JP9(Gp*t3^@Xbydt7KjK$)3tVr#w-%op_0OKz5#SQ5 z%2U=}VY1gH#2C}eE$8fe2jJySk?03N);G3+0 z70l1oP&9(4paLaYBsc7;J4D> z<75OydCE#Gf$^0fp^Wuv@1`v6U{3sWXqbbF!}p zJH|w0Vnw-j+tokuq8f}&;y`ulCBr!Z-(}k>shzIh^uelgt=8CZA}xS;R=L>*}}P8|B~C>Sk@V%_QAz78-TlQR88vQ_C;IinJ_}!`>u)9|&Zq8A|E(t(DIztk3~HR}RzQke&a- z^YkmOyL|x+pdF4CmywBMp09E4;67U6v7s$OzR3OEjp1?IAgC055XvOt!)f!zca?0)- zKHKK&8;Qkv^O8gl@0oo8vz$iiL&&@(!qw#T(w6qo+a2CYHwcn*nSLi+9oQi&be-j< zH#3W85PigH2#m8Jh>))F`@kkYB0HZ+PvyvQ8sQ-_) z1A4ja#|x%?H0lM;>V`UH-=t@)hivxa_+oM#3S35{uOfjRDdD2UQ=>F zt6}BN-@C`FrGeVdPCnR5;Lm^4;YqqN$I@6dmuWZ<@R>xJ#51`dw}ni~&dRG=<1j1Q zGs8tAH;4}$LiDJ%#FI9n$B#8S>=C))bbh^rZU;aB+ehPdhd@|xk>Bvr z&(Yd++PBJe8D>sJLz+jn2j^gLnJ$zaf)3G*_PcuPJwH{sv%|(JKXc;s;gwL^U-{vz2Ql0eUR&60(Ndop zqv@-?3T4_EUpaw2(6vFqC3L~?!)xB?*CyfuB;_}p%_`HlbI8D5t3-Wy7 zM%~>1Lhel&A3};$O-g@JG;>mJ{r25d;P&z`5%eb%i8ZL3r~>bgrqHMhdP1$t3|Ys2%m?fg#Vl)u+DM;NjtT zO&;_zm|1IjI2FvNjr)_p-IJxf@_Wt$5 zs|98kRvzH?f@E#mfrR_-l_2I}fE=s#;72wt;RCjinMrkUWJJPI8wy5QJg#!Z&BtRy z&oM+{5;y%9xrM_8xI|VbA&FxHf+$mOLwBSdoMb+D$1te%j^AZr@ZFX5HoO7_!k}ud z7}B{KN~=z!((gVa_0XaG;})4j7^A46a?mfi-D;sQ8k+Mw6ajyjTf+lnMjYcFBvspy z@6jm_YUp0q9xyN<|MlxU&%Jg@(#x0~o@E&e+cH<~1I+~ChesA|a+93!G6)5YLu53H z#@Ap#QqOMH&*6h~ouxVP3+8`Z*MRHB#Vip^RYl*9yRp_|Dt0wd0!EsjgtCYamgZ$V<-K@Un!vSDLkBA+bcYHc9vlUF0Cand- z(969qK*$=1ikH*8_qm*mW-bhEjHRaB=fsMI&saD@fCd_SkKkTG6Kp6rGaDHxL(}`;$hwQ!R3d;IO<%;Uo1L(v#R`**jRN+?>~*I>__~ZC96|h`4E8qS zsdD+h=`qj|>LJJ3c$#j?2w8L(BX+{M=1yMnUAqke^uwd8T# z0mwxjZ!^;2FsGn=fd0xk6Yev6xYRJN8^`Jw#+9OU*?#zuYfAokx8Mo`uk=p#u0B&r z|2e5JdR3FAx`Iw*6P!hDOQudPkmY5?`h!?=xp03J#r?K{trCqiMQa_ou*)9`%U;Tq zrtU82b`tQsbI*0j!}~a}8i_F3@Hwgqu%*SABgNYlfGLpndt99!d?}Z5%HsNX;nr2N z!8r^zjM-HBhNMXss7%525zf`Yov%$iOc+3QkqJ`MLJ;}>3DRt1Ba4axz-B$H~6#`CzNZbf?x^c>gTzO zeN9pV2=jw>D2Nn}LKWfHiI@pdv}uf52i11vNTmm5m(~CRZOIbp;COUAIHG-{Y@ht3Db8*lz3)Jzq(35| zq(R;OE13H8w!R3)Ceh;SS}8p^`t6{oOxnP-ZmeqN+Y&IAEJ$;0FA9ii#`vod^(ySv zAJ@e_t&#QE52r8Y*dSS5R4VKw%FoxK{iioP2XI8(*a>%WTw!WD>VSvvx@!gV>gzil zm!N>S7Mm97h2-p2@8wt7RV!Q~{}^{W{b~=`V$oOu21oUG6*_#- z)AR4G+Pk-$Sh}AO>h65ONTrne3|r5Yb0xAL3dmpNiNF)vgq^Gh*NrY}aS)t>;qqPS zKaVV>F$3#<-RxY=@}Z@;TB@{n2uw-!kV!6R3}4mB#nj~oIA7TLPcKDEbP0+fFRtuv zWySsS1loU`h^eZFkrE-Lx_vx*^?DL#PzZi9aoVx^EZaY=nY>E#%8~GS^suF1w1)DTc?XhZnBEH1Ce4R z4>5~%H!75^T>=IkZf7m9(d5lG1v%TH$ zJHj@TETfAzjN>YjQ=)MF15jHwLRxxKA~^I~Vrky;-+OPg2EX>p>CT8+dZ2%b9nJV4 zjf)!{OD=OV_3?y+TNEQFHGt9Hv1~S*f@>sQMX&xKUX2-EjcFXxK!O1Uf9^3i6^y}t zXbN{>z2MZgWwYo83ppd05Ak75LtV1Pi+_(HoXYPie0PTl9JS&ZmNaw-P~n#0Q8YN^ z8XgzrC9y%EgbcGt5{y+d{ArQ+{n_#DEoFDz9_X``|Jm0~34x5WP7{?iflG{)|QhOKl=1oDP9&Z}rtdYpGWU zuEoA6>9t%nttmr83S)fc`NVbJwy(AjWT4bI)2r{ZR37wW>v0@b?Ss7^>k}h)zE?wD zUutw)Fw!mpp=);|K3Mqbu`I}lIP(#!93Jlpk`r*sEazo7)g;{xl*bh*UW1U~f*KpK z$UpcGs;UdRIYCbUvONAyksU}4+JvdV`DodJx>4U>2S&W6%%Op8IF&4 z$xviK*hhdPXO8{ReJ>Y&8cceC_^6jVl1We$t^R~IzbD-BCwZpxP?11;zummp?we+R z(Rt$)9EpIj!%9-MU98zH=n|kEBY0L-r6=OGjr;UcHB)NXc&K_Km3xMSR;lJ;lj)_Q zn`vKpr#pP%&mmkORmR-ogY62pFH|T^p3A1ktOQA*UjZSqh=|1EE=?rU;lWNc)jCNf zly9%7 zGbL-!EZ9gkk+%M;eDDSOZaR^TlG^Z0fbdlMS5pm0tvMB78y7($)Ud%ea9&-*TnmYj z$VeAZ*4n%#)^;L0)jET&0myV=74*k*VQ5&bVEQl7f`F{%@hVSD4i^A!KKTlB4#T+Ru zF?s$Ny$-23^$SR8!}42b=omuO+E9!~_m#Z&{q#)l*s|Ea0b6PPMlXAFCG-ey>DHtX zkCG95tt~3p_-!8RZyEU|X&i^Ukw~clBmde8@Z%8W(%4lRl63G}Bfrm+_4}w!jWU}~O;xaJ|c}#4%g}nRs!0mj3FoW#!dcB^zlAP+D#g2fC>#JBfT_UlUaDvFsca;r@KPJ7#!vkb{ zSGB8BfSy)(C8$BDDy^C`Q*8_u*Z|1D$UudG#Xof?T3ZX`5`u7$Xm#sqn%sU5su;b@ zR;pVpf4(9Z%7=Z+eH^YeaqA2Nuk395i{TEX7|ft5EX))l)y~^ixaRsx*DKAFwFB+w z%=F-%33z`-bK*)!4lz^GU$KpeLIc@x79Cj~j)p2!-E??M#Whkyf;8{qly*#g(1b@l zBv}SjOcrbqKDYM%dYAilxvja*Xz!MG?5)QymUDvuo2ECDNl(XA%;cw9t2_0cn!Wr+ z`h4J~MnNUs5?9o+nM|21rGS-*qsmNTAj92_`lyDLIPFDRxZ5J#f#k6ta{7hHB3Y*3 zM~MP$b+C@BRyv4_y^@?Fl}iFLTlwtqse*{JgjF^$h_8;)3{Oo94lZUcO3zl2m!$Kj zg_*^LP$GH&AEW5gwhEDu@O5uvch;PoaW>Rl&5rEw_^5|7(hd0Uhc#J2sY%t^CBlkt(Hl~;>nKItip3~ z8!1GCnEZ#T3(ZP(xbX9z~*Y_-0m>HO(~5Ya9$Bq*(!(2Y<(s3PP`ET{CxL3T_(C3O!pPG9*cL zY=ESdVM>;hZ<46>10mf!7yrzjxI-=XWteMsj7|h^=1pyYd7l@~28^c8^^y%Af+=s^)a~F~`M*i;BH+5yKQvzhgl#`7ORa1=^lj=5pmI~= zF0_Mg_L~Zlm>iZw9%%9Qz;~@2m6E~>CqGw695YCMuV3WrnG{g_o^)6#GNaY4>Pc~X z=XCi048EB>{3UFKaGyY@C0=M1;&rV&wwxM2fxxT)(ZelW_-N@|1$KP(iJem9<-FuB zQ743X>!is5Cch;gziwY@(Nr;?*5h>(Ah^k#xmo^$zdC5_JzyLx$bD($3g`;Pikmnw}a9cEr1lA%gab z{Oe&TQnHY^sF;s}6PHU4qznO*NKTKHj-;9q4h(^(Q>yz={c4LtKmquP!rY0gM{UUe zUCHX9+fC?tGyUpq9aAF~c`I`$5IEgOb>)XgrUm`a7{bD&9j@C#GL3_?W@2*BGJ#uh zk*^12g|JjJdaH{bn{)A6$2q9=+tJGF3sn#otAaG!Z2&mDdZR~dviJ$f#^Ys`@HRn@ za;LNm|CK#|(0x(eC)-Z-Js`uf+@3^;_*Mjz^^?vI71w-{k7A)_R3WA&qMqdQO zr7QPNxZiy*dj9}PS0j@)BPrf1*PzIU{_m9+U!Z3(m>w(*hAyU!#z>sbD66eu>=8Q6 zy&h`S=pQh?k`-|W_baz^ooXNIwpGLQeoy*RNKya_~>Hs`8%(t6e#ALjunHM#^jH z?keJr8c3)T<~A~9AL;GCJq50Xw=XPRmfr;g)4(ixB+yYEu)iEIWRx`I+o4!ObVkUs z>5A2W5a~Q!7;B1C_yG~_*K^b~_JqlG=&()=~v&RUaKuJCU| zeg^J{hcsFoRu`i>^xtgb@;SUA?)@FK>@_G%EN3q6Huj+MUMIX^bMBlxZV*O>?{ zt(wz-G~8*`#SgRX(r82ZgA!SJ{0)@aj_+nk7q;~Dp=$UC*Ayi_6#s4@ILA< z{!OKVocG*60TyFiJ?Di1${-Idy1!6r6o%nDC48rkf`4B5q%$-FWoCzq^liD_YtAXN zCt>DDy~f0kjB&eHgzXR<z^z5iN zbhGzj;0Z@U@2%SPrO7uPiA>lkP)Lod>1M?TYyBS;alG09O;wVKT=ZeNcy=q0$gf~S zp#up1^Xi4Cw!kH8u6$Ww+(JQ0UwgEw0X24j>z@;I0Y%sZf<`~n9T;itPgDjj@uklp z7wIY8`0w-QX*=eOwI`Ggt;U;MH!$8+wl-_jnRnXV7#4sA%2-W#r*LT5@-q z#-{M$f*e5X6@0A*)Pm+ED?u@{3%SQrYYeu~RV;emoGdpARsLj-c!T7}H8FM#m)&$( z0De4e#4>mH5B#AYhpDwIkb2EOCS*ps;iCh!Z3d0ygsTZ~wpJsOYviI3nLdcRRLz zSm4v?iH+SM8@Ji}uS_}a*%mcZWteqy_q6Uus8C3Cv8MqJmoZ^oz+%JxK64+*Vg8DxD7?dN<5t(XatX`J`>#l|LuZ$qb5HTJr&5ixT2pjPg1bhixu?Z ztpzk@q+pJHw79?#3&D$2uG3KONw$ zPTzlGD0Mr9W!s9d`M>Mj<@?#?7_P%BSju~>;`b%6q;iLfL!6{>3#N_2Sx1{zuZ?_- z>D*S4uO^bO^{^NY-~`-Ihv!e`&@#;YvsM6v4@eoR@n}5t0kz0?_+aj6b9$Hr@{t#G z;rtLZMwl8juW^g2bCnZPpWJB|T+I2}vjqX+SuBW0_n_d^M+ulGL&Pwz z7=PNe0&!%aOF*x*WXY}3rILwKaXkRUPIBCCYg)rO9MmAY(S#-Y1?q2kdI-$Kgw2*FAq6H~2Uh{FT zE=5d|NNcFt?PU?s zxh?99Gm|T?D~pXtqFIy&HQ(jUer_`Jv+<&sRef~-o{~|X)`k>9Awl^waLMl!Qg7gI z+=)#UDW)#q2482ZxdJI7WENC?Xea(k%z-TdkgpSru%+rV*a5DP;8=pv%f79A!!g5T|Vu3aG zg-&J?>VyYL=#Be*It`MBK1_?jhgj~3B*#VP4>uWRi29G6Y z@p{)voBie2h#!POqc2C0*-^pHdw#?E!4BYlI$92N1dwJwGPyHOL{Ctqkm32dELg+G z22a}$2k?@%YV{Df++XfemfJ`PGdEHdh@kw>D0P9*GV@l%&|(W?m6#EIqj`QtOe9ZN zu-Cp4s<1zoAM%#tp)^FZo{_vMwg^iZ-yS)OvM3u3SlFAhBF)DL^J%{fKt^4lz^k$1 z5vFmh?R>3Kf?;?NYt!(j+RmA>rL7lZ?nkmOJD+6mW^DU)2_D_18+i=2?4R&mPdl)n zDA%uy$64K2?$3oG*XJ)MSz|w;6A>s^qDuE#=GSF=-+0ggT$!w1?QzmVrL4|g6nhj4 z6Jsw!MN`-s3FpDOgyd~i%d7zZKLEf)A@2J8{@00DFFw|40}4`2HIr`jJ|wa zsM0)4!q|D5A=X3q1e#PyVrtk`raGg*>7?K=@*jdlBdSf_vnQj-~`9ok4HeCl$cKEwy6YR_2#310g$dj87 zP@Jae(hFP%P{uPF;&UX1Q?Kn24O|C) z1gkWqp{-;Lp6(t8@oqr|X77YU4CW5MHTGuO z4!Nwngbn5&#D~V+S>>%%d$VaT&;WFBHZrL7_yU-HDbY{`uCcQjBn)K%-G5mgl#HdzZQhub#N#ipB8HgPR{3L_BV zZun>MN@`R)V1n_?wFRs=$Ir#T&%jKTJrn{@EkH=&dt)Apq-jcZrf^Pk%g#I-S~;Es z+Zl&Q*RLjslm4eaQ$1!iIF(HiW5p2$~*BId^0595=)jY4DYu0zjPHtb{J3sIG^aq1M1EFd$hrp2H)=Q!a z)s88wyK&Q!&6*j1VK(<~McbB+ueHo=ZubT`DT4|cZ7neiH=Y9JA~qg&lpw**o|5i0 zngxXO*UY$TiB3AZB48^pQCJ~B2Ujw$&-|YEK@^v-KY@cQH=xz9SHbLPw1^$oVBb=2 zJWPfq@g~?gtxU|-Z7E40RpjLqVV1Rws~;9zQH%4kOZ~u-qKh`U3IBP@Il^Smd16%! z0_WnE5(JK&mF#I?=s;06QVNrkn}h01Nn|$9tSlzkE++EKqkVn$KxEVT>&H{kbT*ua zu{SB7OQrziU&2|6aV7-GHCcs`d1}_1L&huH3J=t|ils1tk$}-EZAFbJ8R~tE4F5Vo z@MA2rSE)JXv7N2&=djj0i~}}cJ~>pLE8NN{@fGWBVvsf$S5Sjy|3?pZ&e+L^xvWxW z!W6k8-#bB+v+d{C7lW$q+xk=@JFW9GuFk|L(TJtd^V>-r*!YeWn~pj^1xJMRZ>(vo zX%yrDUjke&aWH3gHX-PXTc65Y*cAT&wZ&Rs1%9E?-HD(~Nt5tYx~Rz}$Ejy36gI>>I|4@@9Pu_68khFWt6FI7LQdMC~4OZd0T zfy+XGsm!pJy4~1z%;D>hxd(QZA{wprJ)`~+zX#u7g=p!M!K!?Y^+{aek7}xKb88=@ z&e%uXY56d|>CN7Kt8`PXQ?FM*Cxz>DnmzUIRfbjO*63LmoeDd?R+!^}e^qyTWaA_$ zC++%+#(@TNjGOW5WnAXOk(^~}p&}xjSUSGR*`kkV5nWnqn&kD5WE+*mYPnpRw-Sxo z<}$*PFqh)8qsPRnbOHw6*@RlPB#B6+p4;`@$5*oVg6b@#!}jzPX$O{eVH@iv%~ zDx6^D!po5t1Owvr9~b>;hBC`0Ji;x^o^;PW<+Os;qxI3Y-Au>s+?~!vQ!k3<@q|+P^7Vstao=FBB~t9u3p8A%lie23qvqICSu2J!eAeIw=g-U zVYSqqW0Tt8%40{z|MvaMaay)VbhA3?)r5Ura;Bd1EAJ99NM%Qd-|uk_nmC<;E_C-h zz%T%W4ol0*#qKbCB+)NGfODj1oprMjn~xKZ0e6F(0zBkUap`&J)V~dS_1+O5U{9xg z+69ov%D&DUZ%_k_VP!#rky+3Vm7dqVS>00N&Zkt_p6llF^?+|2LA;N^t6x5k|k-?@>M zWp6GF9lF=_1dlA_A=S3mBBc^Tux zpw0A;rUv#EV2wT2G|^_iXV!QVFx8?$poCWYO|mQp&(DiKSJilP#;Vx!T$NgYzcEBn z5)InC6gKF1sEJ&4@-qpTpxs~CmL$t~o1GE8=ufZJ2aC0aW<6vlXK$TAR+ZS69F{m4cOzR9#t#&j@0p-MAcchK zmLE60^}1gxOnpu~4#-bn2$GtvESCcqBfMf$%x4JeFMU>tsfxos#oeDAhvynh_T_%X z=hYK}TPN%uqx8nuOO~iBFw*w@(P{yKnTX*5RRx=r$B`@e3lq-rP!nO7t$F27_uEXJ#f3`Bg-Og+T#|PpixcQr&v`FX zpj+C|&+%%Kaz+BG!9yhOF&}B&kA$Hjl;tO+!JK@jF8l)jF z!b!sLS7!x|IR6A#B2W$0KiCq_mX$IPL|DnD{<`9M!|OY$Ffp~uB#0q@wZZ4Tm!#@HgP%N9>r$aV%AlcN_U_ z0o>6j3Pbc-&2LV)mD(+PZ`hZ}$~UV&p0iL`RlVDx?RQP1U3bAlMyUyUhu(+i~T3 zQ9@R5UMRDBQS=SLkwY@Xcf65&*HF=b-cm#iu4`~Y)WRTn%8{hVl^AzwKfULn}70OmSBfaQb5zr4FVc*MY5SZ31{K00b4CrgvMW-6FhoS9}I9|Sz zlt0$ft|RIZhNi99Cr5XQHmdoylrwPSc9(IpA=m~H*evm^TL#0C4hf`k!l2}BUNSc- zl7akRJG$SPqnd>s@`}=4OVh+y?b=tVN>@B%R{hg2v0?_%bApGu;|Cj_ctgf03+T>|^2WhsfGvtzG9s^)js<&mViH(rbDy|J&a7#oOw zY>vTLj+rC=2k^-GgW!K7P37Ari8fd58n#3nR&N7VrN3VTI=Ps31W=M+gqNw&(JL!NE6aaF;B6-P2IfX_ zWPiq*AlLUE+?vBgAD0L)2yq^tpZBpW8EzUxjtD~oM)zarCvcN{vj^3`A&8!0fa1Zd zI4aQ9!K|^9FkP!83ZLKU8mcnt-F1VBr0|1<%eSyzb3c0xE#;ESSe>0FfYa4udYpvB z%i;xj5UVjG_5C!Lf?s+x?Xg7RU#N9$15hR02;qYhX>Ra3}h>J}03;VjeAU9DnKg{a*bFHA)))6ZU2$5ZLJo($YKs5Q z$+jFjQbFGMvO(n*J&Y65f4?>PCbt_bJWNVh$+a_JZ1+6=^Dfi~32aZ=28iUNS95KKl7qmGq*-tq1NGAJ(bk)a#o!3L9X@S` zZ2T^QySj3>NXSsr@1MybpXQ1(`Z1qLDG}5XU+1+sriMU5R0kR=MNOYa)UYJ{y1t@( zk{g}k{gIfIeH9;kN|6`Ch^>_N08>Gb zP`mTm9Wev`#88I#_&_LTc7%;#eM$>Cwp~`q4&-D(&lZ{m?4+azaeg5T^{6&zRM!_g z&hzal#?b%9Nyvv?X!>zAq)fTT38RRkB%T6U!fwyo>?E#~7O6n6sr;?%qjSj)+9Plp z9#>e{Na|?oQr``(>}H$uwVR4vuW3r(kVA+flMxkkp^4@e#W+cww`F>94{VClv-Eh&bu_;{~ z7KGsFomW4)o776&%zz0SL@q^It1_aFhZv2I`$>k_B-bHZl3u7#GYVd`>@jW%$FURR zSE8W?)==gOIGtjW8FX?$69zQxDKW@FDsP3({|n zASK3Eve-O@G|Oc6Y&90iFj(NVB{day;VA&uXU9&Irp5&>go%U)ANk8D`GRlj04bak zN|cyg4Q&aNTekH=!T?Lu+y$$pVsgGzxWKY&OT3scX3!vLtArZIKB|fZ0rR3^SgVPq zh~4O~Z!pN(lb`OwefbXzQ17FFzHwPnMn1eGT5ZR%S`-&I7h;gO@ZM|1rARFyCg)}& z5c^ld;i83}d@%e_-bE6xB^&`A;EFY3 z(?z>Du#;!(Su!9FmuX&6mrzosrKajBq;&z{ePKq&0pUE8hLeT=6#;#!GQ5a8i_WoL zlw6?N#grGK!N82h+MKR42g`{WwGq)(-yvl)FTYmxa^d}^3?-0K*>)8!kue_>C~l+O z>NBR~y{E(epv?0w=Iea6w63vu%(^MGveq&phZ>3ncDG-skAmm5K#cC=v=L5OEO{av z%!DzS^$o^i>#%)WDN)Y2Qt^!eaG$dXuFcXLN89qaqWJ#~)T@aB zIM}-p?upTWZV~z_>8>Ve)&7~v#juAJr)-ZKHkG4qWi$0}cUz7oo-R5^2@ChTss+t+K#E;jzkS7fSedubqf zz3q~Ey-R(eViAdD{o1c&0V6VJ!EMe4sS5SC3Nt3fNRW(A(GAtDOWodZds%}gOSsSb@QW0XJ+5nFwyM7rx zRDa9@`_R2+FU!q4@Bbkd_SYc?WdS<065F66zQ&=?z+89SSToI~`75ABfV&8ViV`*$ zF^4s53%ZEhV)b(f?rGjZQ%(r3#PWCtFaI~cL*<}6?A{_{a<&Wy@kcjlu)^QjZ~lg> zvru9GO;aK0CBOP=LQT0}Uv^#Lz-S3?C*XSeXN>i<@a!*i4Luvd4+%5}N|LIiure1Q zy9dQiWE%M*{+B z?TP1lE&o*!Q<|v^K)^IVe$iZ7((E-y@$nn&z;`4YMJ(4yYU3$?$_r#WDR=c5Ol{&K(gaZeMrxA}hJ3(O0QtqlC#7EXUO$Nhq+0PNeAPSlFefw$lTX zv5^9Y9MCnTT6kJRQ=)Ens(U!lM=79z z8#xcmpNrI+>d029uTnk;SLPC(8As%L{6~Nb`yP0Xu)JN+R5vH z>M0Jao;ontogna=*Vyv|*cLXany68d+uAH|as4rM4kKVeMNTUQe;H=O&?d(y!?{Hb z4={SbxI;p^SLEwh_eh(ee0d_hpe!XF>s+gwq-6c{wEVG)JDKWhQ;ot03Z>)Y z^hYwD;;uf>uQbS9TuJ)@5Dpx;pw=lEx1U1j;!j+e7L$LTRN-v)WxXRp!kjxeZndTP z9;&fh(GvyN0{?)|d3Y%y+}PSzhp%Ff-w|zWzUH{m<1_TGm~*k~KgKGeHZZQfMES$=>4jz zrRws`O6Wa<13uA%J)2>kU3a{3p`!1}VEwD^71*mL7~>2{0u8)?k%zblkbUfR;*^%T zd}KG=h{TwDwIRuVXO{de(o3n{8fJWpWXn&6YI}(#XryV4B)Toe z-7!bwzJJ1XxlCP)+n}{%)PfsNyS;`k8c3xjsdo0hq`5yOz0&CyyJmhF9(r{Lx#iGrPHBJAw6D#Rl%ga(rc zjhG1a!tHknr14fIZ1z;NYuZL3!WlX7+QOC;hLk1o`BS_Wdz*MXfGCn=!H5Bq$*?ZT>S7F8Ts2 zKarh-rw2#0T!(JWce!I70I4VLS7-tTcalA&!Hqo;{@sh4Ulhm?`-u)Qy8!1|SBVm` z8Zf1AztelRh@^YzQqTD^*@bZQgLj)jy5i=NR*~1`4$ve|qGgIF7s$eWyb#br1CHqm zW$f`*ne;TVZ$GK5oHBLlUv_^%C=ijz(Um5?M(0 z>5i>eJ#0MxE49v|bNTS>L)HT{I?(Q;&pI-Pt4-By^8|)OiU0eb+kTVhZ}iQxcS>=F zHm|%bdeGZ?Q-yCn;&s9O$sHj7?6ps#io`NH+^OfO+VlsT)gSVUvSD(;Etxs|MfOOB z^UY$5(d0FBeN(X}mvr}_{p`!S-Nn5=X;n@QRBQ9tk*Y*n@VhRuZRu}uywrX9EXy3k zMJ_B2GrUJtnn_R@z~KGe5LnxzfN8=7rI?TH`b&X``&AP_(fR*Ey*Y51d7qsWT#o`*-bX1{&v(UGKq{he1Z{)ZclUfln?X>4(<&h-nfzD(}9OMXt|i8NqWN^?`XP^2u?;((y|jI zyJ_^N_D@RZQ(#~VQ!H867Tq$|wX|59G}@BXlXV-sUZb9v&!4=cJr*EJ@?9WHT; z%RApPx44lXtY2tJ!`Jgh`H6Jmcb%i#Rc8!$DrQ{&oL+UC=-5z~{`5LE2#CD+sIvCg}sq)8V;!KnwPC z0scioKL90G_IV;VIME<~%Ff{i<1LHQFYeLba2+CkQsvVn)^hu^^tkJ)G7um@67OJd z1lodI#8I^YC5w13KXS-3=_TdqkgpBSMw16vb$!NE`w)pZ_&c?-fuKHg!Za8Fh2O6E6T<2}A75EX`e+E8KF~akV1XJPR zLevIQh)hI0Dww@+x9@~(bl^1guYHXu^in#SsspUwD2dZ;niBTX!lklEmf$sFFSUsg zfsi36Hpf_4ElspvvNklLJdsUsh;R(|kfQVv`hHm+Ze*G*mW!SL))MNiBQ%uA)*siSV^4#r zEDg7ZxXihuJxaD>!V2jo{L_mUCZB~>xT(K?io2dE^TziCk!P1+ksczXeDGIjOf(iC zSV7Ch6HzGS3$$9*%OrA|eteDv*=J>O@cWoaKN=z_{DN8Xn%RQ;$wsY>NKDrt)_VC? z7dZa%M(4zGYM-nRh*t&$zcdWxsg1egV$&2u0z<2j4P|N*V@iyLAs3=_DocfOqTTO3 z#VF0H*bHkn#{P!tF=w}GaeP~!RGoizZY<_Mokugnz?s0&l!V-|_K_vDp9iwBrCumO z0J4CMnyI0m3X|E_rY&q91YqW2Bh^~*U977_zgjPb0m{qdV58}ocWVX3KZ|>-ph1ys8;!Q?wedrp_baZ_;J94?570l5O>VMobPhq1GfTSU@?(raQL*!u8z z?L$nqg*{`__IHbD+I^`lI3%E9!i=UdV@@^3mk~)nf@bRwC{0+$j1-*KrLC`29aw`M zOmArsINTER`~MpTNHLa4*54eWC)-Yw6N+NE*j1%K*}K~Tfbx1RcZ(d(UJ1u4k1J4!yw*$WEF*iAuKshN^=zKYKYs61VFE z?2W#d`>;hAA)J;>%6Ygz4p|$7*9e6is?mv|!}7!nP`%suZlip!XpGQ8hrWZGBKRQ} zUFNy+Xh=pd$O?#t^}OLBY=gKh3iW>4aMe+k|82-99#Oixi9x0{i>H})P*fsSedcIy zs%EvQM4})WyTGySP;ozxY7y;n>?;W*12201uEQm|p*b@NR1%7|FYcK(4a*=gfr zI%b#QPEsOzN*L_ZOy4^r(ejx$QjdM*k>?#lKTi zG*G|?n9$h3>=b-}otl;Urf+5Pw)A3pvJB+~HC{!exVyPgb3P>DmdWoPpJsV%{WR8! z3UbGKlt5zjt9jaWr2*~jaQFO`>^r57`5Hzm-S~Hof~&N*AHNVeWDv`^C40488s$}W^V6qJu7xHb))!~Kg75sal0NR~-KiLo z+sVaImj-X({kHY=sdEwSj34BQqZC0vV)o66qv4JziGu za!`Ic&3=$>RP^fdMAe%F@X@Ahx-aKE?DxYir2sC?Uc@2XWPr;Q0Xxr%Tk&18$Vjyw z3-4bEoHr-5t<7d|5-M%+ll`;BmAV<_<#e<`L)_in?5;RE$`3LhG#yNW=7LwuOEi!! z0dbO&wU=Zlx@!r%amM_ZTD$JKMpolFHFO(rQRYh|-{v@D_2&mZqD7A@KXy2dC|1 zddZWc`Ilr4-8@fX%E;~3vrJ)zfNL+BR#Cn~{xM`mqKWe~UYFhU4taHgzMR5G``BgU8e!10vUqxsm2bdI2 z&9XMnhd8uG_Bt05kU$(^esnR6vrNK$B2-WvK7_q@LP09+xO9ae9pLQBta~m)sgdGtyZ-D_9lC(-$JxhB!~E%dMzwL`7o8>% z+Lek(oNM8$3{A*Rc4ZWIm1o_<@SolzX20yj4%=A+J2~D`Cp(Ny>4skWKC?N zC7010BH@S|Gg_;Wu-;7JpO4yX_Ux-DFe7o$k=S%gn}oG`6RM>#aTlq4ce&Ok>@t?C zQv`^8$a=#W&FA@XV@9q3ceVO5PErcgbd#1vj{9y;25~AoQ_?H>dgNZ_Rez@VZNlT_S*m2*`xU3-v|vLDp@mCf z875{=lLpnmrx$0SA1i~>_GDzE4b$w=L-LNYwr;U5Fqq6EXwdc((VM!D@2|E^P2Fw? zYOc)R3c^K32b!>90TY*Mo}ag$(n#lq%%KC-6*sJ$c+fPFneV%Gd!;5weV?jVl)k6U zFKRc!ZbxVEF;_=M0>MC6tAC2=FmeoYYn)AaH^T3pr~dAj*#auf~vW>y(UZ2@-38iHLEXHzOlaDfnEI&qmZ z4RC8!S`C%+uJFPULqEs#Ck#n~m)6Vk8OU7hD(bhcEBj_seckefCr9I0xkw9SwMa9=uavmk+Cv?ktc#p!0YyfN6|0%8+ElyS4-X=;SDyLVr2C<{qGC2eru;c z<7a%lgR~!^;MoY=j`0GixYEt%r!eWhY`7f^i-m zeT)VTrU)x?j<5xcG6B9mmUC)_YPk5lzz$xO4p4@hMP8nVaqx_Jj+Y*SG@TfJ&v8a8 zQB^J)qln?{mOVPK<9%5PJjV-_bVzNjdlP3s$KMwYgf$;A+WShi{9(@a7kh?b%8lB@ z1)Q&9pmHs9&2V5^0W4boNmv03`X389ryI$V^r^qg^1CrRGG0-ZFCStY!ofk$L?F_< zROAlF5E~r18R$uO@YF@R2mh9yeh^O^|DbV}JX{_W1*o=YaDgQ1eHB#DqJP=)(hOBb zB#+Int8k@XN#1q8^zwMRrz28?Yq=zF7iNu}K|@Tqad6(9cev#5xwTXZS60@HSDhmR zGslYAzQpQdFXc<+Ktw9Qr}C8 zkl1?zodNeQ`;2wPzr`(rFBB}fWvGX7B)4MFTLW3krw5fb_q7S8)z4B~v0?N&pai7O znQibZOm+|4V0}LY<psYn zm#z`Gd|vADg}!L$3OK-Ua5^*-G6EH10Y;}Lm~QsZPjTKj6ZKZZCrcZofQV%D087D@ zT=Un5O`3guxJsMR=Az{OEJnvJ)mSle1YFy{$>Y_~2z%IER*6VM&)Wxqq z#kf2V9${%2)S#>QHjBy}e?OUZE0A&T(1x_G4cvAZMF{-iv~F~fu#L!p>iuN)1G5F@ znNV+3Yz3|2EVqeY(UrNYt4U7?^=4#14VbnYr_W%QjQ|9W=^YG=ms@#jV1Zx_@w!{w zb5~i5Rs!(5L(ZeIeWpSX4<#;hRx;H7Lq}E5}3F*7Tc9CE@yQppbU^REmfcC?ki%k;O|IjTlsG=D&Hp2j)K$}{JSH;X0vxDXpCB(`30 z{!%OVfeyMmS_3<3%J=|27r5&PXUGt4qtWw~1$CQdfo9q^qTkV}Zoy3PeQJV?>#ekz zc5Jw-pU1Hm0GCEvrqpMN%3jAXOgh&gI{`i>;J-w*G75PbQ3u73-|>{!0~Y5>WkrQM zLZK6=GaV5tN^f(cvtr-RXlKSN1+|?4)Bs-HI3ZkLJ&*H!LwN>Z|IpL;k5>r<`agEu zQ=gdZB9j*hl7+%wEDshftyClyx7q8VA#qRr5#YbzSaua3RD;;OU3A^PZvAUH=huBr zy6};tq-$kYo9^J^=nhgH5>#Iw^psMtwwy_}uLjVDtueC6D>z!hr`tB@DNpKx*#i)-m(huH{InaW!kh$Z^CU z{cn&Ui0>9E=w)1pHrjZ^+HfTxm8d&B^vNsf>M6?I(E-6@+bJ#kG2 zlW?f{au8jFgq6+R%W^JDtmBTAd7d7v;|?Ttg)mTOXl|GYM;=J>aqNi5hSUMw+y{Am z8E8_*ow2Vx_;)mpyZD*dA3#b^)wDiLwgQXEjl=bVz*Me<_Vzj^A*rVPb6^ln_ue{$wf;RihH@$fKXm87K<4cpsk^FmTq9d$wG9;+LjUE z-qgHCT!Pi&Rfv4BnR4%n)b^T>sQzd1d-vCv*2jE*1Z*hyXZh#0PzT`|TFCQV^V~#a zLKYnNXv?ifFAs7y#NF%=-U%;i-|O*P-`HE?TECC(^@t1C^z#Ml#9stNN-;Wr9h5A| z7Q_Y2Qas>;okNOGcC7RSW`6KucuFyd>!l-RiP>DQES<6V&;~0c*D$f^>!f_w4uy{M zjmW3l$v{;OlAo|})AY`AB{;R0%bA+krp>aqq0m0y>R2AL|K3eEPyQM%)HyTHWNrSgc7X2`D(w0pw-}S_No+n)Z2s*s*ln{z?9{e z>27uX=O7=r1Nt>cAECnIQ}Lq8%}x~>;*}L|88imMEm)Fc4z~IHI{fD%`0RhyrLXIX zI$*;gq67?mJKFA9$F}U0=jKmhWzz{=hMjv~gONeZ7dLP?+Kv3(RWrc`5vM-NgFoST z(mKm3NzoBe;NdFbCi@v$4PVweI{xH>n4SB5sdFpsOVWD%hq!Z13j4I?#C7*q=n$D> zR8i2F18gY5&?Ewl_Nx;{=tiOPBPY$rkxJSqg`j5+pNFf%J@DQ38=~u-UwJxA_3~12 z`PJdsEGmw9!bw6|glo}^$`OT28_g^rp@K!s5>We=m77fp*oMn<@4{*s_c7km-}^Q| z+(H~$%-6g}?cXd4FYbSO&{U0ue1$Lo^d*wM;82)(;?|-y8LO z#cgl%Sh#o1?5zIa#9OKzP1?bCc+%ma@Swc}Gr9WIIZx06;Mi^04~wlDO)1jE*nj&c zNh!OZ9AVzLq1?eI<8yhD8X`6K(cyWT%ET^J1zr=^T`l;C%5ze%WD#N^t@5_Z#hR8Hn_T*a`1kn3L3Ho%~E|d6L>~<>3J9xO3j*vAE5%M2Js{ z<>~+N@SRDxe^(6EMSH2HZm;;HA3Q7`Yew)g(F`hVe`9fZ0`#mdhIbiJBqCTGNDx@D zbIGZ^!65zCOk!(|h@#+RCANet-R6+SnV@bV_L8|SNSeZ-)w zTzj90n4O$JCH#YQc-EEF;!NE&Xi28fDZmOC`7-f61jo9zayUGOE|K$44Vb<7Lh#qd zxh-T&(Blz`S^<8|kkI)2!kRk#2(m-Z9IPryu6^u6EflXrS}b6o$_)SIrqv(2K5+74 zs9bagR7l1xMc*G4?IuTs=dd9s$#p*5EqG`x0Wh;uOAyjH(jIm$*`N`SFGEj?*?z}W z1X)uwu)}{{q~PRlq5T`PD|+i8;;;#~%n-v3%MTeuCT(pJMJ4f^`Sbq7+UHdaBzj#o zP>H7%mi>D-myNCrs}@-0@Mmi|{SM07urzBVKeCs{4iL=MpV2b`d{k0!4I*qmtY-T1 zpA&~3%l3h&Cs@rHfYV|IbQk6pKUNE4j`sh~{hIESnJhQA5phI8X`Sz8(!7~9940JF z275))B_4{KAb+&_|6d{((F+lZoaSLc#py=)QS=lA)J@35*HwRbD(rv5$BBioF$xc` zTv?WhY7*c;c&JdTb(+?5K;=BsQLXR8VwWRRc5T5DZONn&#TXZ2Ef9%n;y+Md@R*UJ zym0OW*T%GxK5yu8(^&?<<^#G*Kq^Zr+@|ApUYlZ}P6OwZlaqso;S;|f0VN^A#QT6-hitUj^bE?VucuGm zc>fKkzW9?`?fqmI6gC^_ZRQB)HqUiD^GhQUe9Y8nLYuq7)*Lt9qVcxZdF;QKJ#e@} zY;fzYg%06-`Ng!p%QHJsKhQmLLhqQLJYIg$~4czCD zS8*7yNHM+~>Mj>6kHcc9{ds#Mjx?`+Cb#QWB-Hqz1zW6p;w4dj`$ONY_Gi-27Qk?5 z>aFS5ax0fnyJmhmGNbq#(iNcwr&BMo5ea9_l2mSEuTF#ttZIC0Ctlu@;%fAL?b(tK z67&<*e^&$^TUsl`2e{wPi}tGAM5@7g%I4Wyys-~^TmR1{+KfcwA3fS`!w75%yjKl$ zE0Y`SA(2&xafD#}?~W|CrKcjFpX$giLGYpOkSq2y3;<(;j?-x)UR^k9tQgvXPBJc! z0;)9X4mvmz;b3Y#HE7fp$_7TE4h7-a>n!B5$Un*tmHWH2LHZ z(MH^l|~P0w`^m%b%VNvwLSpXG3{%hD_m}+CiiTY2iiOKI7B)eJjul)qWtO z_KT1Z%WML-s}c#?4_1Gtg{>-PJ#Q{TcAu?hjZUf)zSF#=w zdvLGx>VFAR$9vi_SRP3R^IbJ(`!a3SO8FGwh7}pFJEE}|^gm^JeE&wU=zby9ot+0< zs+h$0H|UE*#;4hW-SV05nd*hK`v4PARC`gT&E(@JV zTQJlaeujsb6W@J?8r-&;S)+gV#gyaPu==&fw4V&d*FjIvzNX+72mi>U-^ur@^zy=VSpY^;&yh1UGT0GEQ-IJ9zfdG)UE4pWf znOChP=KGiW^m$C37}R%#9)i`q^uX1{5TFYB%9s42Sb5ncKk+-Gsh=Xri;f)2x{Wil ze9D?iVHpc1m}|I6e*7ymb2ut8Pq~-qMZJ+n~Ub~Y)drMaH0br5D{>oa%jVS9;r&gwe@L+_TE9S*6z#N&Slb_2tVN<5?$-l~ku6cQ z+*!Fq!o(pkEJmfdcnn~&#sr+Bf*R>eOql8pIV}7QbnX}G!Qg?{d{lVA)4qUfhg0wl zy6wyUW|cEl=~S(RrJ4Ug4!v z=I!k9j@LylVTo+)|#D`@ELlt3l>M|;X?Z59LQSD2aAE+=U}aZ9LWAxDm;8vPmOP;La3 zpwm+`S5)OU=(EINxFxXK&FIJ*+9)7TI2y4<>PfF8^q~7?>HqRAf$<1B~-9Q@<=xXrzvNX`3YN+2Jmki!hIDeSY??oxn zTjkeGwcuo6hw5I`pm$Y?p2ju5Z|N_nypRzNl_E#{(Nb(iroR^j|6gJpLOhn-j=CKC zt?lP?16Bp&h}mv{29OEZP`c~8QA3XfM1T96LENrry2UWs5U;Ez9A!mHbSPmyY+gd~ zE~ILY&bPPgK+Z0!JPI&29bul`-c;ltj@6YxkrwLCFq~MAF#7epK>#LTDikgL~Uv|OwZy3EWqF>1!HvZ`=7-H}-6 zEX`k;yjXlWc{YN?ylqFxfI)`(UOvG5B2Y;Zme zQQy#;4yr;mKqC?6n6{D@C+WP*Yy8U^&`6Wjpx1bC1J>&@n>JC4 zm|E%dP`v;#UQ{WY9e&Pzd|PLkQ^VT$F-+zyOOi@(T;Q?!1WCtJi#2)Pv~v@gU_<7u z_rAD8X&cJJbc|#*mnitQyRTZS20D9ySGI>cI|xoW(yBIBm!tqmy-wVk>mMb@nh-y6 zZ>eQoT1U42X*h8aInD}NySQOZ)*$IWoX)43#P(zO5^vjbX!+g;IB294VG<1IfONP< zCNE?rE)^?{C+n}dFULcX{Gq;gBt^I@a@@~CtzO)PnrE(T@N+47di~^I)q5hcW7s(a zR&<7~oW}hw;m4_?doRieO!SSarB8&Gy%-A)h=FCQ~$1J)TI9zqWI;SG-y+icotS>888lA&XD>qQm_(Fzx7E*&s!@B69*UY50cno_)V+s(0ec( z(Vw>kzt$hQYU4#q;4yng?-Q!8+;J{DN|G0ibxX5Lx(6Kp&djB|w!FRugX)qbEI80% z2RVRHYBi*%g-J=8g9a66hbRWzJvP|!(HEJ+hX4A>>BlhA!L~YIdUnwr`F)#JKG%XB1hd!n7!x|4YbHI$lE^}oenK_I0W=!L?C91 zb;sKpIssfCOF(mYiIEVpReaRn65;T;plYJm;8y1bX{20;&|R(*|5MKSBAK*$;RbhD zfOddpBZR`D4G;)%PiP4&4Ug}3BHUm(_a#7_iQ7}Dj*zUTG1a@8jk?h zH&Q~t*XQINR*Nz&;pj4$X>!gv zj~*VuovMgFrUSBXp%gxBF5-G=uNP7MYEih(T!a*5bF#L} zkhFlY#vvVi@U6K^(xlsC9h_7uDMc-CQH(zFb5GP5d2_KMxbZJ}CC@x^?*1ovCDeFcBF$FWQ zEp<)&K%*q$06<3SbIabYWDE#gtdj-R?TXTVNL@D?HQ@hVN z>NwF4EbYB;kPYjV@|}lx6ehih41k18Mz)$*k{{sDS%~XD_szFRoHD}8IRu!@`1*cs zSw`HL@g555S$77Elozli4Vi%fHVe#G)2ad+RuKmc=5;CqEWr4qO6`iXDupy+P`U9? zDkc;aYY^x(7%Ibi(`iWl1aT#WLx;Nz0njvnjZC8_U`f^{`Z@U8jaaSUg68qNk+Qvm ziBJq1rxQ>(^wTLVVHIA{*rp?;-qUp3^BgDD_=M9WKP@&dm9m~mfsPJe@Z@*v>*L*K zASx;lH)?;Gjc8jQxMspt;4rlnb&*^2XtF4GFPN_a zWErBjwi5SIIaN6`fD-K*hnD``)or(riKd2$#0_^l@UBpR2&P=uiCntx^`FGv6J^+K zdzw`#HT!3;IN5xE){;b8>#$Na;wJn<;h_{Y2nvy2@&uBmt9kRf>fy~o+GeQPM;rL9 z-(8OgT)g9h5C0u9);|4rx1Fv~FV@X(U&V?dqYYk{v(!Lu-j~#zd8r^Wt#3&t5LsDz zA~zh+8(93t@@5kNnooCeQqxFrYovhv6YqRX&$oR%J6^r{CL`LN6+4M##8hi)wGBlL z`JB3q{bojO2C1-jj@cwU?ux`e7k1IWSOnX2m1KMDypGqQ2(YIcFE$ikxO&oFP$p;^ zHhRrbm?qZ3V=y`2M6(xN)80G;nDSt(a=21gqLuc@CV}ptLX~E;E{Q|X1Ewm1iqcF(FNBqP3 zPt<0f$f|a`GG%eEY8*jRX`KSsI!zk*3NhI5>l^r_dkMw((F#tFjha#BGDOU!l1JQx z4l6)yZWHBo6v4tkgS9kHMu70B<_+?>@a12Lzl>SGjg)mc`xG%};3 z2sF&+@c|p-V63K* z>rjb|sLQzDx{n@L*iw*OXm7N5IRN3WXaJZ5a0o&k<8ot2NA0E3GSA69v+=rn`7okKy<})5h7I`lGkIr)Hl_A z=zrcHifd}u0S8YX%j55R-E_i6J?NfGe)?R#ZO&Tm4Ev@A?$Tqu!1H2^m zt;4;}C5Yd;3o?<}(3LZq z8w0Y&9~jtBSw-||VJ-`n77Zn{Lpj`zuktyZGocr!SMhgLvsh{z#*2*L=&g#5-+`O#wKxh`@gqM^e4h{*SAw!}e9AiPkyPw2#|s+A z(!IQbT<&K=nhWn?&=#6?;f=XlPcEC@mSx)(cOYNCmj9+FH&$l4>B*$fI?F-)lYW2h zUoP6%ZVy4zAiqKG5)y4a(IK{+G{{6REyb3pg}3}{l^hTZBlbTV8fvrgn#@fh5fA>l zCNS@wbJENRy-Vbug!pXaVNVv$!)Q8#`8NxE=Ix?J5ks`^K++Ry>aL5*wl@PEIq_K?631WQ&RIR8wGP7IOdy9&CX^a496Ql^x0 zQ99_^T5rA#}9G8j*@+ulUt9_>#qu~A-f6D|`KOOC{XZNdf|*#sxrc+L`# zgRri=qX+JD7AZSsH^jRRjzxfE?Ua`P%p%$m6-4AwR#YkA%FR8z&WuSs^p9U;gCW05 zDg?Vh8W{meR*{iuY@f6QH=Pc&5ox!@qxXaW8P^5w2l2Wul202CVsbcEpU4~C zFY!=c14wpY;PC~LbJFO=2A0-^%8$8=K*#)9%et#QwZ)=asQO^mff~H})(4FG4T|Z= zl&8zuF`+*Xk$4EOhx>KtSL|kkX$T=;_ea{enAVpoF;Si<;5IoHrEcD{@roz~fFw-N zfscbR$ErguuA@vbPDfifB`aTT?7#F#6_?WFZ*sAGNZ+#G5c}2#t>BNvX*YiO%qP#! zO!SS)Y15j=RBqe+K6L2CRG4^LI^K%hgvAuQliHf0*hXi#5=IIK`kX;9Bl{!V&2Nze zThqV$;+A7zpl>5^1>sbB{D3mtp-7)ZPv4F3L~b>kl|6T=3K;26Sgqu?a*2*cQ7RG7 zg+`KlF8th~R5Di=P(0{u7*_o7v$zj>y37*swCImd4y(t{j5szW z8hPPS5~=jQ+B)Y9Ajr}Dfj?g8b^3kWk3qCRpZqL6H)j*n+-~E*E9@%&5C3CTL87*k zXA|p|qhDrUDJttPav_m=i)YuRP(v*0jc%}2$_JxVE^I3NrwinZFPd1dvrX0+MZ$j*dXQ@2f|8g0iW5xO`n|)JzZ0T9N z+f5k$Wf>pur8S&|Om$n2?xVt5X)j6*jN1?(x=Tm&0fl#ZKL!nFBfJ5yRJEqn%J!@KxBBenxdg_)V zH}9_`KvVGu&`~KKAPl`8W_;ARe&-LDggy4_sGcK*m(Hc9>eP#GMfIud|9|sNb3!JE zNzIE@5235C?Cux9R#>RZuob6k@muCt zN|#xnXeeZ$SCYWa)Jkr@P%YuIV{?zS990)mULBEiIF=z)1$nod!Y8y_XRpg#+DR>1d}yIjC95_ka;?rN?+&WKOCYr zl6=A?fP**8CXR&4WW|8$D?%mUKhI77Y3ZyBSC5&+Y@9a@M|5PMkn~Q^+3AR&D9rbQ zPzc_hbXXZE&X02hz5Hm78s;nLqUuS33DI&5V2A4?V5=U&uy1SL}+}!A=*(I=c#W|C3 zzmd`}Sq^J{fH~HsZhk45VvkncBOVskWhkXW6>$|~7VvUusX=-Dc+nX;PKdYo@$IOi z`p46gYu!7tLzYo3>^>}rln#gF4;uWqsV?#YP0_w(^|*&vG}M%rJzs$t9@!79h7@M$ zYD+}em^8YAa;dvdz? zlXytJ>4#(z^fdlcLRQ6sDqp#e(!A}kWyIA>EpH0mOhItvzyfb@qiJqOjXN}X(x^0k za|dRJ7WQpJ^_9UfYMYIW^bu$69%hR6X)B9u0#^EadRPIXGSew}o2&Fd)xyWtM}Eei;c8^X|dX-E80aJKON&tk~_7ySTWi zjs4lTxB)j280$FOL~9DBelYN66n*;M@5Yv@*I2Nl1#)F6i5vf(F2Pk`Sc;>^RN7X%jSX`s|%Gb`3;$o9O^72P^f_Oh9Uvl>=e{No865 z`+RF3N@Ebg&0nbbjDX6TG=fR3*27}rB0DkdT&O`j zXz)2Mq_cvm;azV7$h8=`(<6hRx_oYnzUB_Ed zjl*Y1u8P8TM#1^ zRjGbW>-p-S>Gvpir+wN|yQHdop3y&gbA}Jr*qEIQ$cGOEpDxlH@=_krc~~1LzbRH- z6^eOW(ynmNcX33nrjs6E9$Bz!LYTR5wRziY!05t}g@jK-8r}tP zvF`cJEl!1!Gh*}pDO+7*r=fbe5pa5sytKReOFGx_L8WUg`ILjt{CNv#_`qtF@Y@+>b`>A1CdiR5uAN#y_#YUJw1m^fJ5f>$m!eYIa%0qNi} zcVPH&30;DF9Ka`Xd!hB+7u48N77X2O%;Ou@ma+9qU`)qa70EI4umaOOetGPeXyHzR zwBOYID2vQhdMUSV){y1u6eu{=!b1DSBMZdqa?t;j=34@EZfDtcC3Gdp(QLkmJ`gZfM8w|2_*0m z>aSg+GGTB8q?Jly`Uq}MHiwubM0O7Z@d-kJeunUtf{Sch=xxB-v@@Tqf4$F_HI6xs z6yhV@a?V{HlF@$(<95}q7yH=YQQ$52S3Yfo+v3mV(k265r|1;;+O|scxCiH+#hm(q zG=%jN+SXq84U%OjQ8cqxfH)N*8M&FeIRj@#V-SEEMe^_@^sOzota$hYAaE6@Zt4E~ z$;BuGdb&#HC>;sP8y@BAixOO{2&mocv_byC#E6tlg1)g!F_WK&&d|a7_)N7gb=RU4 zjPq-wlz1l<&gt#$T2K6glO5yvj)XxZMRhzAI}7)ADInaoTx z*y8+iEZs$2!9zwL2uu@tguy9@4Z-%;6d=1~tO20hjPu&rU)3_VR=A28VkdEq?f{Kr94>FgROKq>14#v~AqIoqi^V({rOO$`g>M_GcVJ8Wh zoSwGQSW=4!#`NShCw>Jj2-UYLry45m<-Fy#aG`GyEyye_`g66<0axK6az}}LgLq-S z_kx2ie*AjrEA`vMvr~`O%g+2Kea5=*<5a}+c(WOYs0GH0yan_k8JiKHN{3EYDE82t zsmHyOx6|VgN!l{>tip9Hq-1aWVG6f{OM68(mP8XzQ%PEKWp&1*cwZ!rtML}Ko@7j2 zqzP5%aK+pGs*{{ChvI?r{V2tVCc#P~;*J znph3ts5h91WGtx$20;@$0OJ~v3ZX=v5&ED1+nEO|47^6z5kmGxwcD0J_%NuDxF`hD z5k!v;0DK( zoFe(@0)+u@e4m|=41w>0Ojd!Q;816((jPdP(f-A!OUQB(h=aNr1SL? z&)?f~kpKyzSvDa=URtgVlpsH!EQe#J+05aFS5r0hm7~iftb5v_l`X zrpI1M%Z8Mf5G8%oSI!WHTvr#VmZWtew($lQkW}UoXwVHj9Wi<<%U4M;_$vLBBde1$ z2z(CUH$PJfo*L$Q`SlYBgYsG$>nkbNaLE4bN}-h^xsdRfE&%)IrN$!z17GWc)hYsF z`Q36h*wK-L+O!pAH1cSo5p5}cx*H;y3vbucTE;xp6#Pm1c7TBC`5moYP(}?w@Iw=U zUx7OuIdmkan6{^wV31`ZjYuD283KEE=O}8zfyV-2?{3K85sV%XhHV(@SgDw!)^XBy z+Ckv9znV3muuHzqvIf=gCH|7D?SRw57d{eiZ-0ffq^sE;5Ga-{W48L<;Aoj89h*y# zzwlQ$fEYN*qY!H??n$kGR>1=!7lcB^+D+{0yG6@CN^2Y|vU+Eor>5#{W<)8sE-e;^ zTfei*Gsazc(8Exw9^}4`oB1eEO^;@dLRkfggWV3ci>mzyHos7RycH=!_A#$IeW^1cZvGCT+orocQbHUt3sW`Xw@Z?&@;G;Np-7x|cN z6?(e^(jc=#J+E}mDDU}Z-L>!UmhMEd=e;Ow@^Ky1#w~1q$}d+@X*S1iwL&8`<{ZIz z=Pdzx15K+KHY06dgKl5gH|?Ox9WK>@VCz3o6xaXh?Ieixg9LSo2rG;rX!q5D z{!d4TcV}|Eek_Dk;Ga<%f&Z_`AzScvgqR3hprWNM{Gw zNnR>iJ1m;jo)~fLp>mwje9D4#4=gjnDokkBQ9hk%LA4K;QV{A=v^J@6IfpP>76Ou@ zh9;DguqLwYe)MZ1?k6&|aa}wScto{YwwFF{30k8i0}?MVy0VH@%RIpcV5;8#oNl1S zX@65M&Iobg!1Jl9=-6bAlFU?UWvgYW+p>`yf`OMsJNNW58UB>t<~iH@x(nPLF>K(r zZT5Pi{l%tZW)Z8<5INk@o8T+1s+v8@x4D8sZvIj03WNmwq8tW$h*S=tEj7&>CQ6n) zyaWrMK`UsFgqv%9qVBvw4|%EEeJufhH?Kl75nQaZpTK$#By2|(J96TbxB(j!-Qrn}Vf&{XcsOGW@s;z}J41V%JMNRCZ+<2(ri%hnyM#c`wos~T$r6)q z)%q{Uj}b}vdpT>d|3sqvCemt>;Oigsf)M&kO72s3pQIEazm6L4M@$C|S$l)sT04R< zJ|-_(5-;?Rw(52`w&WbPMpi=uOp6v?{jU9)e&a7RvB*(iN>`l7w(L*S-#uf2ct9mX zWy*2(`_yEZ+Xx({33X_DA>xEPa?YKnzjD)!BSM3HE-MsGD7<`uV&|xU8haS{%= z6OzR*(IG^dAkW*7BS~-AYX0YyKB?3RkoYqaF2H`9#9PJJ_YA3rh7VV)214W8kLY;B z28pKXf2?MwB}U|Nsdlx9y8ZlbexV)rtFz#+dZvFG)~2dK3ItnolqsBsQrPWZ<+~S4 zId$qZUeyi!>U(XK(@JG9NO?Z9aVgnCi;jLNRKDY8^-?IhTfJe2d00_{>r$e09%2}k z&+zbL5sLgr)tK^od*U$afu{6}Q*>X8LQ=Oxd?#PBOngXg;p)>m!BBIXzE19l^APTr z_FCWbN#jx}v%vU}m$_v414{GyR}+BCVW@;jw@<7jUk~H6f=%E;G;Ru>ko4KgzP@=EkF_w zG%Z*#sY^P_D+O*3u{CQdkw7)NLj6l)Ts=VZ)#%7uyBuFCm;Yop zkS4Vj-}p;e)=>m3sw)tvkDPRA8quJH%*IMa z!ZAW1d9TC%C#;RO-cqLCF3WR(E_Ej+oG^rn4|`PF(V1=#byKwbLw`d}h_rFpLjvK5 zJKu_&_(wpOQkCXS_?HgvT+@2o4I_UgEI8ZAR_H%oywe5MsY)$kb4*I(b$R{e&9rEU zGt8vWJvW~S$&KzM0$rolFNY)GTO|v&WuR!LTFMr;`l2G7E$a%a_wO_Z79m;*QBKi- zeIgr?sEa}a@>vTDk(yu*Ax{*}{oCnfeokzKwS^Eej=CqrA&S_8csJRLSVN;b>uqHE z%YAn2cSK~V!}*VeLE34gCLMnt9nDU`G8#S26!Y4{>=*}zgGw2&A^$ys?RT}Ug%s}K z^{0}-6HfgBULZ5h)^g$^9i5L4IxF?^u&D7mWzn={5I53XdVYpC;6+gAK5t2bU;#@|q`l`A2S5A@T5Q7VHPvb#)+dnniC*%mJS4MQ-qBSe#ZCIJ2OG~_^+8)vSz(X&5W4l^%2-C zvlH>(CIt)|5hC3xL-U(12#+SjfscZOF8PoG@oIH%I=RURCMc?^;e0Khh_IG9ee4$1 zWK931h!Z4epc2wAD-9jHrbb}by~JMeow*mSL9Hjvc(2=jokNrq?E1sn|K1>dpSMFl z0jliT@eoj=_rN!sUNe!2&|u>SszK1ITY>3w^30PT>CJ!jQdaTmNLZx|^|SnZwW8KH z>#?{1mN30ltSWQ2>f69V2wFO-r2V*l2R2Zq9FH`|x&+{H*YSLRzYEK(7ru|Wab9RN zz;@n#BEkeJ7`h)DT0rJ8sDiViT)#x2&~Gi&XoW0o|HjZ#T3*MVdJ8z4g8IS}X>UnF zu%mjktx#Bqz+Z4(8zRV!LBn|{p{|Z-p?OGJ(o5B^K;7p-)Bs(cjcA?epW2wpr~Ut# z`TUy8|CiyY9pk_wD(s|4u=GQ*`>ymV%Jes2^3@%i4|{k=s>rO@;_1Wz*r<0*Pa3;D zZ^!8AE5%R5KuIx}H-j_K(!0jWbu4`FXaBYBz_46~gFe_mbpNku* z#K$(?o2J2F(HI2E@8bqUX@75~ZLZr@lF zZRbHT(Po{Jm6NfF6^L7xkq`E`5md=>*%2{1vVLAmNSmIbfGhKcNRCKNT(#q9%o>nX zxK13k_Ey8)^esaK#Ky0$efN4laOqmNI}Wf9akCF=JHFA^dfm1VVxm_-IWP~WGFUM3! zf)L7nNATn_7;;T&)Jtdt7sALA4H;qWxshi@fF-P!eQectNc$Rht`&v1OKH$RP;-1& zw1SM0U_)YQ+%3esSWPs*J9Yi|+G@HmErW&aX>Zu!Hb@LQDdJ+&f{{j-dBk zJ4S!JPET<2qRPCv`HAs}2#G2kvwxWm;1lRO)}(!S7&4PF5SJ^t3`C4jYPo~^l)Maw z0v>+{dYudMP3kp;T?}pSL?_c%g1;tKaWrLCq@Oc%tDXA=OFkwVucxz)P0qzGmx8HRAUhej`haeO-9~Qn%_! z5H#ZYD2J@_0jyo$pkWSF#C{(+sO6Crvp0IjA4BoOl3 zri9?)YCBd;_CBWLhZ^y2qCTlVwmcdIemY0!6#ODse^^dIAD~~T1FcF`k><9_{Z%wA z)O2zRK${`KyR&y~CBGyp>29tCTbR}DTgX@(7IHK!_Ed^2k=Q>Snn^o5LsG3>;_N;f zXVi8%u``N#CI)vIXQN;`7E`{dH737cZ$=HEJ5sf#xGs$+5AfTEl}5%SVu@i&(lMp0 z44z+1WW3pd-UYx`TE}Cq@7}s{)6^1b$(D0$9ng~`RC3(cMG8+3ML7h+hn%7IO+gN~ zBW200WymU8Sw<$jc?OA&&{@FmQc68mN5EZ^pdDqyYfrVHYH7hhff9QMc53#T0AY79ZyLevu^HnS=7({+F;g*^wl*&MO-uq)ZK=&iZfu>F0CD zd1KK^kIlHx6^3zbKeiy`y~;zM@uu^A6`)CSb0PE@DT*J~LL>)_Q6HJD`ppJ{$FhPv zl|Uq3lwnF-@cv6*DZ$)^pBN@o_KMcj7qQgcl?8isD$-)({3%>f5ubgL*$PQHIu_)- zcBlV$V@%1WHT(6N_jxrCE-R%H4|{cOU-&3~p~XhSg=W~+%MlT}HUdx4B&{t4bu2%pS$>Xa?y^;<(8HAlOIn{RZN;Mz&xjyK0(k3z=t# zrFo~$ZKYID>};PwEx$d!9s$m`hSA!9LtsC*$zXfgI+bW$I!PelLcW?sVF}c($%4P5 zs>%C6CAf1ayhlesE=QMU=23Dg=ZX<&DgN;2k?N5yjVm0W!m)3(Q8|>!+&4t^_>F|) zXSCv7fzYgGz+ySB9b^k()s}BP^9g4vm%ojfqeutF6Q*{@#b+7ksuS7a(ZSO~LQ`S% z#d~9I1|IsKFM|$vFHxY9S(c>lXBDl0^)3+`%V)b`j;k;I@526A0;T;NFL0+$-! zwCsC>-(iiAT9Fo@Ki0n=*%xyEY{zj_8<=)CXm24|+<=NdFwk`1Gaxhm3|p$x>vIa(BtBhHhO~Bf|jc0qNCgqW7eDTl0S-V(Uh$*#8_rEfJAciU*UtI#D1l zB%BKw4c-q&xs00KKoyjjPlzTKK%@@%dE^cWR#2Ns>grw2@;H@%ae*N0Y8#!E@?o~} zc$K?4Cwd6#BZ6wZS9buCfOH?uR-KySVX!`mrgE92wGW(K3d05B-tH#&`k}83b_>hO zu!m)$XL!twIMmxe>l;^YnK}s7G85~c1nm^_78J3z^Rl(Kl~c1(@8-R$Le$LyPtL1+ z1i{<8nYC^w2}gae@jDCLzX0HSJI)QqQsMPI!unQ%BXF0*Vo8@0A(4Oc(^XdH$Jc;= zu@!EjlF!bnEUR^dEHqSvE=j#gzFS*pP%+*Sjdr)tppWUb!nXYo-+AtlT$pHk5R*0YHWop>92 z#<@InKBwE)_}95sE zjIw?3_;~z*kV)x$@TuFKv|V8K6M;=gqP&Gyg#$#@@_0*d&A*-&h#cj{z7Wel-5S7| zN8DP|OUd<&V%oFjvVs;iHK=rjntQun@}y`HZ0FtGF;s5kCkLQ?gw)8vS?$`t@P3<8 zKjMi}J3VDinyv`-#gB7SLVb5)N0+2Ngcfil`orbXEBzj63$oTZVhv;|^1`2qJj~N_6 z@tNlSC;V`1FVGPZ>V+T>HSmH&7yyfhMv?!I-$x@>2$cjotVE>7jit|^Jq>hu0*@0V zxb2MD)|P3k`Ra`nmOu5=!_#%j(u^<#>fX56cy>j9nk27>u>Qza`c}#R=W)v3(`)4{ z1{CKzBek#ZchG>Y3#E&0Xe|FOI*XI~UwKI~wxE`uJqzdGU77V`z5V?SdTsxS3PiiS zRALq-<5DmAd-7Hy`D0h|heDm4p}tvl;I%@XxUp2vy_+0R22zE9;THCG%hZUcQ`;6*rpkG_VkDNx_#r2f6PTe&%+aj1gnQSGWH(Od!EA(7{DV>F6^rY!^NoMIbnbme?H22JjR{>& zno!lZD2xGJM4n9XiVW!P5mHB{R5LO)mR&Xm4+p;?c*}KJHb=yMXifdX)NMvTh}o^X zYxJymbl)S8dY+F!&APh~ZuwUMFT!kvB)pNlh6A&M<%W4$UPU9Ow$+dppbQOh34u>9 z%9gv-N@c6~O`<@`9$jMi6HuF1ZmK#s%J&@f33?Wo@0CEu2|ywCdyQT8t1%dhIh|q| zR;g|Crt=qY@*?l^cQ=u2LRp*9qoYEBTTwtjruOQ8gsF&R93$ummVl}p%5{PQ+iuYp zDOStABAUhB(z0Kkol?~9Ty zTr>NKP@Z6}x;td$+9gx#mR!H#_Pr+m<#$^HQjF5zm}5Hkaxd3ZmxkizZBGDGXyj_{ zuxGZpN0)3t_n}f{?TrljOKD#mtBlE96)Z=a*vi!T+o%C&zy|j+{8pH@xsm2rJ5eKR znCuXCCR9#Gpk0zYXEzWWRGp+Xr}UGWoj~{BnjYJ&1dX@1+dCF8WqSO4UOv4;eeyG- zAEF1}Y{sqY)b@V&aNIw2Mz@ALN+mg1Wu19}Va4Z`b;lRy6}S?X9<-MZ>R4;7Suwaf z>UhpEUkaHp0@Qa|`6i|E<4P;#GRVOlimpe)j;lZXiZ#sv9~k?Zf4ZVdq>3-@Q3QP! zmoGK3eYUjzH~^e7|NKkRJu#~a0C_uBzvg}l1N*Xv;s6EPVZyz~#fh*Cc-(X!sHXP6 z=~*e3q$pFAAMAd90XKDQL&==oF*wVNkj@7A*w!-=V7x?nd5+3Xb=;~*s3D{#c>vDr zJEK)o?FHgGRSp{LwgTu zpFei#duCh?gQ|W(0CNk<(Thb^-sf1j*mnGBOdHBbwzp%MRoB2lsorl#_cu69p*e05 zC+I&y&Sbs!l?iinLMwhevr=a7&f$N*et(%WlZNWfXb6lD=y{4_1G{3rS;V$aU`onA zUWJj56VU*LJoVQ*19fOzT*Wf;PJa^4g%j?t@r@SZ4iib#rs379&+M>405 zmG{aSP3SCSpZ{1n;M*9AD<^%RB1x!Layq9vL`&;$gNmmBFGO(=5^rXAO_KHU=6epW z{eC2)l~}U_1>3ti@_Cjq#{n~~Eq?p8!j(B{d-v3S%1k++3^$lcJ(X5fL1SiSPfOX= z_IV=|6x3u|b`)ftKIn^5-J9-YGpzb=f0q>YGp3_KK#5A!v=e;`eGaq=<8Qnbp)V71 zND=BqVUk&_a}KTr^<_+x$ZF!LXy^iIJM-Wzxln1iI3BkwI(_cz8>W=LUHF^wzbIPL zQa!}rcfqEG=wVr$Nd8-t3l4aEN#l`q73$CqQ5~Tdl;tvZWxOj<`hp_upce39y&EX# zY$j*n`J@AKFy>$za(D>yl>x>9az^5UD!n!|_EeJQIH(xewc12Fiq@xF?Nyjow_9Z} z)l=TwJsVx?H1TO{kw)PCXo3k*1O>$I4z*z@l>ywE@8vSlCjh(Ciu?!Q&vs##9g}5u zrPn3F&fkIb%77dq3VcI+Bz1G++53#!9IcV{R}SmUOahe?aYmbRM_~0H6D?pOtm70N z6MG8h6Y4ixihm}cE>WcATtYcfx^NbT!>IznBRH@x6s#3T#Z$CD9JQ(=P2z}+-R#wg z59uI%nnJyvDtEwcjQXjK^~N6HHar!LCtQ30rLJ80JB4=o>Z+?->tN%63~ zl@q6*zx+v1V=W(SITy*i1!{Yluk{ydj@rORkhaTs-ce`;t1>Wd6yxZIx$Yvk65JTs z{m28uD4}95ZV#2GiyX|uo>m7cMSSS3D@>x`>m3AKm64g~;zM1I1vs5b=>*su=V91T zKDi+HNumqnge=JD^l3PKz~ix;QhkYgLf$<&O|5wEoDTeEMk_I2o+m;olm zVN;Rbc9i`CZZY>&$gSh>NY4V(Z`b7Ur%Lcdv=KEX{cf}%IYB8_Doy=#Z1N zo8_dtZdjtqoi}GtSowpX0NJ1l3$~64`MqCSS+jx8}ZjuRD(u;6s%DW}#;(LJ?^K221 zFss!?*}pmQ&SO|ZonHEjD_-~+l|3`Ta-P-DBVF792J5klPa)?l+x87H9r#ctU_%YA z${b$RHAII3Y-QnWxl(1hZ=~H>Wfal(j^9$1MIZU?u_TZQ&=j*gEJ5U0AUeRkQywNU z6bcQ3ShA&P-{-WxD!n(NdBd!onp_pHO__+vS`U9M%O)ApPn0&hwaPqP@f}x3Clb1I zVfVLpf0)XTxMlStV3o$Fmph}K59%_32rL~0HQWcz&ts_a48*hjK1O)J=4w~eKHR5` z^G}-{-luB&pD^Af1R3hjP(YaZ`QF`)Oek`90mBjWf+Ly#Gf$VN||h)c`>sjJr=+b_`%; z&{n_I1k$LHH*52@xSCFvt1{gC0fpuSxorTO2h9f8|<0U4$Qr0eKIVF?7kH zS)q?V(m3$M1v=KC-mSEqczb3ay1G57tTwg4Bi{&d#4; z3jO6@d4*L2UNs-jEKLqmpTe9^mbdEmJeRhR$PCFcGnbREC%fYR)TT3yeEXlsf%^Vg z$PFs_=<6;6lV}8TbqIxeBszlWxRDH2c{wL<92x(+S-o5{5%x3ujf{gu)Ov%^TJ>My zw%bTesP~R&#wJuHWB^{M?!%9Sm<+O%KX~LVYzbt1+T?yyYIaUtsW}g#Re=r9=|(VW z(|+Xak23DCpCp|ywJv==&N67akv9N@sQDtpgFXL?FRsTrkw=}Qa~;UkF#2r0ag!S) zGIvuQH?C5V?3XNt%qHkr-;4gyMMPn^6?Rka29X#0{cDK|i@oymB!8!p{lypztlcba z`&2<-Q}?QEFvXK?*63BA0V@!1k$HYrdAG+HxK(TZ4xg4Nw->_NSMbFo{;Nn_c-tMw z0qmw}2CeBZfH2X;XGE)zDwxwE=)6FaG6`#gxyTgXeF$?J|H@og2yLsahCaBJJo&VL z_Gtk4#g982pX4b>6zd_1@lih`=JTIoNPVK=T7cz)K*XK~s{l*Hbnz3UW>W3e%j*Dx zP6Y<_boV~x9kyL3p*ydN@=1&`9OA6w5b^qWS%-))4QWkPf2Y`+dUy>aH_aP?ga!7d#7GOE3_BkmQc0`fUg5&pG zl<>k3LRnd!xUXSeTe~HK$OD6$DzVX?id4syGz}aAX{?t2SnLTqMGH5Fn5yWo@*B%q z%~(atXO#4n-4JO1#Nf_~>;;z^=!7|aTL5oM1reKhN{D9*C6g{omI;p~J2cVn&OK$& z2A&jhz~@0Y9-;|iankG7vWlOjSmDZ!0=1_mvaraEZ57n}EE*V%e#dC2 zX*JkNE-$jMJ{V@zjE~Yj!{59CxmYu6NboaTp)^<)?Ykq8Uv)|#akPAQww&`CbJ>G~ zYV-+f=Jm&8*EoeP#4ur`@EqFbc8&dzj+n&Tlz6*bH$>Hlr<6#YhiR)pg)nn=(8y0G z&5;i_`^`q%gCc|cHUghnVW*aUq&mF~|3@02cJGT_#C{9&;B-UR;C22KHv(ITSXci6 ztgN})@9RMoA{Oy8mhd1pA9WY1SmZG8RusNsvWU9qq9^-_(`LAXavhJTzAA%~T zAU@%M!1Nn&FsvX<9q59=?&53m%!ro!H^U zYfDdw6qozGJcgP2Ce+eS(VMWG+EWx-wj*lsK9614v(PcEz2N(GK703)Q#S3>4=omM zrVthN_L5y2m>-?bM{*bt+8ZIf)f*SA-JRMV$g<#rd@NrVkEkQD)Kr#Cg(J9DeH?iu z>MY;RXWTIm(-vv5O&=hO4QmiPwOPiAkV*D^N1ba*h1%eUb`{}b$%m=rSBUnn><8_Y zVI{ml)G7~#2Y&EGps8+O)ex;jr8$C`4V9_>3mYb&_kV7wy$@!zb#;vm7;7e!@zYtj z#hj>?cJA*%q27nI#IMzFNygH7V|9S}Y*@D0;u7uUp$q(|7r% zr($P~CiWtH@cy;dh96n>1^f$6 z3Z+j)K4bjSRM(P-lg-sX>mzcX-4e^10;wmgtIz3VTDi98u##v4k$}F`acvxZk&J8# z24YwGIcyPU+$U=xI5Kq>SAt0zKL|90hx7fK5BX)+Uvnb?`Pa($LZW0piCY|v*kaGJ zlrEZb&3~;2W>@FF?7hgKtyR4nN^%6oBRXGkYYscZoz@J#s$e;sBL(oPu&J6fC)_&& z{%E_8Sip?7dy_gc_@Km`up+Q5BnrOS5zvU5%0wFU-VV1A{f;x}MUx#67}L1`JQ4wx z+THt+AP5*jC}xzi0i#~f32LqIzUt(~v_t>A{~C{6MS>8}SKZG{QAq37cjZJYO{Awf zgP!6C&XL1P1x+TZH=At#I%kX|C6mJf%^Bdh4ND`-Z?n%R>8B}$c@17>{l=abPNPjL zoWM#$8Hn^5gfPT*KvEO02@Y3&33Sc<^5NFo5Zd3rA{}Ee>Vf;zuYy)gx!q&`cAkQ+ zjwO|O#0D(J_UT4Lm@wfs?)no|UNLj?A%@ZAr{bg@3L@AAnJvM0&aCj;L3`+Zw3Gt~ile!Lq1BzB2$I_A5j{LAtNA+Z32HQ~df%3>F0{xitE_6W6 zz4#Q=#(l@l-|7%+KeqX+l-$$L1)+4A$aP#!;lLX=?S45_u@#P-$-usX<5W;GuKzAR zr~2zH@*8#^FCZL$0%j^>qI@A3S}$N=@`3heX0L{6oiXJ{NTSZase4WrbHc6Vm{oZs z9MSi^MHN$4ErqbU$D&NzgGqlOb5a95%98J*S;p|T1x=KkOB$blioDmn(IPQ>KTPva zU%Fm`&u~;GkU*wkDLwg6=jCpXAtCht-HaR_vTP%RpbD$SP;3NDoI&Q|bL;|dFM|eu z2zSU6xJ-mZxHfVEMrK4KB%bpz=XdMTZ${h*yA_JT(=?DYA_mx9Uxp0gRv9O#1{>Mq zJ);&_%5I}5>(UytTTHMY3*V2r!a)P>nm4a1L!HVu+*QAr{RDJYYuvM~1@(h|xnF^6 zf4cu$>F`DuAa;~Y{j5z`A%E_5U@ZqVt)!thgBS{3g&$2hdNu7tGxD-HP3V|xO+sA4 z?HGuFS<=aa`LwOpnWCmrtE67AuB8A(6Tfp=o9Jq{N(zUret1JPIjopTm4L${4b4=y zbV|ugya<*RrCF6}1*nW+3Ngnq&C;?D>hKokGJ=W_cJ`Q}j6|||!!38}(_lR~C}-uR za^b7$DmdfLj{N5?|8zV|!AZY?l zTOLE<=8=8ttek)oY7PUXES3}jy^ylNB&=D7FnurD_GEgwYaOrRY`BX73zr?CGR+U_6WBH+1yUB=PkAoZ zP$g(>>fP?-dGwd0nV0c0T*@jWQ$^W=gQ8uEyMSwH-02AyUynUq&+j&}7 zsdO=dC+8czm3>3;F7Q>m?L4fXNrk!H$i@PVhuEGbjkoClTvN(Mb|K~SvVQnEP z3q>?;$Q4k@Iugvxt@e8Y%T%>Po7>)1Z(-Dt^#) z^TM9}My|9;HbScdGoso+RT<*1n)HT_4$yw{&F6$6o5=PEteEaBdF^Xz9t-?jt=1TI$T~Pd5y$7&NXsGH@S%I|e`9?zp0WP^tm7?!;ba z>V8M!VKwS75^|E_scAPLA&k%qdo_yq-bbACVS0g>I7Y1!Gt%(1W_R&7THK5R=l+#6w; z84Nuq{5J?G-7Gkf7;L282mLcl!qO613;lQy!$30I<;){);~L#)+Kii0@Po z?}JMApO@9B5WTd?KGi&>V7}dppMJ`GXkE(ndn^>)iu;D;_CN$Lxz|fU@0v%>%El}S zLj=wv2cIdHe~B}m!?n}edW4N){H}=oGQu9bjO!g8*#zEKygCx|5ctf7SgB)&BHg!w z;hD_v!o7$&Xg#ei$@l3rorDm-2 zAP9x=2y@iq^F+ZtLkrVk>)H2$m6viagrfV3XVD#Mc*YXgmr{ttdLT>D9Fruk=S8orMKm?N^?vq93GV6JT8RXMt3oG_D^awKa}n+Fbdb>rjy%3xXdE+@@`3g zk2Ae%$;>RcFiojxn8^js=Yo?Jk=$dh;Zhg(x{`K>iyz8GVboTc90Qew>lQ}MLiod( zSChWUubGpyf6N{s0BeJ_lBxh%C@bhbjveHd!qTG_!YR_20w@FUY?yjV-T#(ymLzYW zc+N)DGlR711It-SbadA3sKBH<9dmkg+b_ll%3T81*4IKw^nukY3OGBENPpy z%X4S60#?<)$&Hh0a^L~+iXdo$R#+ahW*Hh72j9jc(?LHxouGPb<%JOA^xiM72o*aX z;u|GUEe(2{-9-s@-cv~+awvb0Qki-Yv*)D*V1hp^;vvS(O3R78@K;suS(Z#qnj;ID z`^Kjpr%MnRqK00)2#;9Bs!6*lR`TMaMbkbu1=Q+)_Hh5{PbhvBZC{ZSojUFs{rp4Rm8a!>X zQ#6Iod8R;kxiOd@t!MZ;RVfuxvj>{oSBq%uTREg_15Prc#2O1&l0;Pbbqe0*<=A0h zVzHN_x2pq=&q7xuk? zq3?W%Ysz(=dtB$dzB{tbJ<@hvsxs9DtC z#CBzx)W7XO29Wr6TkHOJ8yJ4K;QYt{s&Xt+uOEoWvLXkAvW_~;V4toc`m7(OHBuS| z9IXrYMIjSSo^M>&YGa2wiok{4cg07|ww|MDhKUynqKeQcA9cqk#%d06q_RCViY9Uy zAg(I;7)lkxjK1kKmbEXzR6Xc~0eUa7g}U02;!J-;@6^<^$Ezk2C@Q-5hCtSeH_Wy% za@l2K6W#iVQRG51Gut0w`@w3t-FT%xrbV)j?ThUrj~GkpDr(Oz{kQVB{oz*@35IV2 zeIXQ|qOT=IKn$c9wbq(d?*EHNwrUQtS8%w{oVkWy>c2HA6S{eUJCSH2=q1{H|GMEn zMvylO)0Mw{B#s1nd?-mJb0|!fH50v##s^V(&|y-)+h3GD*RdOXbe4oeU3r2vnjDj$ z+Q87jP!5LOU(m!Wh=D6^IJOAT#(8Lj<+XTc&1%3L+MjuFC?sj&`xw@38D;dKORmt8 zyFw7r{aRH*_GG)lr3$B9D*5lo;y;EUcu)0$nGNr?Q?)^t~Jv8 z1>wIk#5tjFQYiOuExVTYJuXolIzSG^@2CFaKawdLs#8!6&)74tJq3$1Cv)q1o|<3*QE*)% zQ!srjgZ25ewG~?lsG3hSCw_qlbkJ+-Pyi!Tht4@YJ5S3~d{UX7*hT_Jb_)i{w_9As z@fNh(X&f4ixUrx5i4e%0w4i{4U+Mx0-J;XW{X!7*@IK~n&3VKEDoc1Pt>`Ek^pPvw z6hVRZ5xrro@}t#p@s#O7V@1mI?D=Y2jkl0nQ-X!j!j)p~W%8&3@KI`ZoxD)0pulz# zgF`dY~f_hnfyv_>WNxPA6bfc$E*_z9F)A**4Q!YZ{-`}o@iP)Z4tVdXC#lI#Am z|D5Ekn3IerL5N%GFKDL0`U7IC+(;RQ>VJxMa9nLPtue|tP?)4BO!a~|Z^E!fcIW1Q z!eEmdk5%x+9Y)`sdy;o+`SkAML*b5evpXc& zIXY{d!tRS{LiTxG0%)lNorU|>p-XO&WTpWPap~aLS?ek&_|N59l&*Q@s!4Pn!Irqq|g%J7p1;HWeW_voZCHe zPABU=tYmc5*_mPGPSUlx8MAT55=|@13UpV;8k*m&=}9Ptzgx|jy1XY#!oPtk5C4s} zT*7I=LQ^1IWuc4N<0e`uGhfS_UWce1QL{k5sB=K(Sa4T{8JNai8&r(n^5f)=nf>Jg zly8x;@SpPTDy}=KhMs%#;_aUI#j4s|t9iI)S25Dt3{+={W4lL4Doi0BN9vtcR}(jq&jp{=D5%K8Ng{_+RJ;>`8|j6<5rdPc#=A)!E+=}ABI9zIbFsKvw^(^a9{_)kt<+ar-ysX}png4QsUC)Y@WAMI zX4Ek^uZm zC2n#A9+Lab2@>jSjmOvU1mi{F7NdsrA=BA0|LVf6l+NBaE=LiE_ol~hVG}|?NJiNt z#iH)Wu@m|EU}J`I?w*XcpVNJXHf?}H4F~=$CS_XE?E>CF-|y(_M_ZN+5$?P^;jluOEhIs^SuINmXiFgBXhVfrTCxBWhvu}w0>!E&{cM$*=~#trvM zBio{ZJ2w;rB`f@K{dC8&2F$+7_jnItGWPVBsg@k5RW(DI?19s$}DnBcqr55uk>P^g`k-)_&mRy(NST z6fz=>m;g~e_eAjuBgq#y+QwDKQpeiRG-h^rMnHEDk8S{(g)sIW3o`l`!!QLVV_%LFUI@+`rW( zg|lY$jXJ5a{^x%L;FcGS$-Vy$+bj_m1)DuJLmOnVXRC^38yv89y~v48*)w|2q`T?r z+!?VE?+wDSo@uGNiOwXPq@OqZ!fx^w2+HF@l|&KVBqxxRMxpY4+c7Q-=8%VMKBdyA zo-7>M1y`N}-VCFp78z{Imi)Z8Sf>PX5TQ~XqggUor4!BS_Aj8YXJbXv0IB`gw{hMj z)Rkoiw<64Yz=BSwz8)Z{dy@E9uv(o$7DQFM8U5Q>Ot1%Ot$No7m|0kx=nLY^F_efd znL1|UyNqp1s|gu}jdhKcy%(&q!l}(U3vM^9f?ARvO~T0LivvRGPy+!^ZklxNgCM8j z-Uue%JBZ>jj~DsLBVccKuJlso?>FS^cWUDJ%ED`VIgiWkNMH?$As6m=nkU!2?Js}k z)eW0>Ecm4s7`NCnXqMCySzg?bPSr8roI@3HM#Np)+C9MQ-s@9Stdm4sEIKv~`0A^2 zyULa}2$-F=L4wZ%bPN8r66rvKYdqdfVrjWxBy`=p4OPjxi{YNvEUxxc143|t!&yOi z=_JkVpLCMFdG&r1$WT{rKNA_KGImo+)h5sAG|w_~f6`pwobP@2cI}OX(Q+V#>+VDt zR0`zOO$SaU5zna>Fa>#3`#}2hmUO$P1oM3S%?)rql@gSLx2MyVOsL87a#9O^aMO+3 zp~cSd>P5X|f2_t05Iuo;T;s0e`CjW4h2sZz%*TFXkdS29dlcBoQgnFCiwb#9h)#~a z$%A8Te|$+8fbpKYUY@59Gh;LYrii&;@)(!j!%Sba^OGL9FPWbueXj`?kjQd|^j9ba zfVuCwOk*Gt1{c{LAx$ToRN_hHHh>WF{V9R&LtlZ}-Qqjt!V~ZY8Z)kPFEt>eF{2#* zlM9{^TdO*JEGzh^s5Es>^Xv+X&kAM1J;Ep8jd(h@1h;guCPyr-mlhPD{CLq(mKGer zlXj%+n&pF(HTppamy`;bup4%QV2B}6HcBe@^#y9GZJh*kEfha{>#cXlxi@2C9wRyV zPC#xNT2;1u55F-r_J}N9jgQb(A61iXo5`eLC%G2 zc)B$Wu#p<%Cmrz}D}o)L!-Hu|Wim;9I){lvm$w<34hJ0OY`8PCeRMho(EuWrDvbjznb~BR>>APPi5=nR`Dt&kWL5}e-plghCKWEj>Eb|^UD4p?>Fbx zMAh#&E!J!>$Z`vx0Gp|~g2GdbjY9Bvg=WdBZU^V?k~0$o1+I1}@@Nqy-w26RZY2A8 z1iMF+2#xowq=q!R&S8QA$K8lb5;^xp{BQK13E>;tiV%B}Q0-9K=o2~|5UT>*(drbK z8l*N!4X(v} zba@uB2N;O!NPm%w07_c``}4a;>>VbdUiE>zF(R)^`s@-i zd6;2m7_{QS(a5-kU^WhWudZL}eu1iZ5Q=426wD#(VM4cP3P_iEU>a08vr~}(gE}P6 z;>3$t%~wW6-q){V7UxU&>PM%bHcKk&oZ)EmL0tF~^!IY)vL=QCbpR+$yKX?n=VhYKmX?&_=`n>YvGc;_L>T8B%ewp_vTtq= zSd5!jE`7H=TAr%@-piup9wA9}lxLHFRg`jLqQ_V|kCriYo{|uuy$3V?&>>9spD^1n zfuuxw`HJ@c-B)=5p`4wW%x*p3#zzAY=v0te25Q`Ps@%jG+vN9i`PzWO4N>9Kf^Y4_ zG_}0=DX6&(aEW^maJ|%df$FF5nKd#&s-T%G={jzA>y$~;Q(440WA?w=u9 zL3NVFgILp(TOBA?Bq%Tabg!kQR~KSHxm!>jK9xZK#p=Y;4@}IYxg1d^`wbTx{yg*M z=F)!!)Z(EOMN#)RK%$?Kj|fW;Y2=5flP4=*t2)R+I^p-Ep)9~s3`T7*e;}yLL>xXLD^bQE*LhG~uZsp8 zUejqXp_Qt6(%d|udOzNmOVg6>-h13d)n!-!Tdj(^Fn#USBRv6XnXkhWPX4vQ@3KWEa>jK+JbJ0yA8D z7QGoA&L380ep9LFBB?zR#CIr>O5_X^z$Un#(P@Xqe;GaJdjTQSLJTJDex>XRKO^Lv z*Lqbbvp`_&ZPT5!JdhV4a2zT%Y`)__F@^N2vX~CQ-uy!|3p(hUPdRGXwW-cpIwWp{ z$^{aUnd~cxIgpSt^SEH2!a+6d;tOy4k8dl?qJ#`CM)ibx5@er9;;v|pq%<1yi$M0O zOjswVb&*jnONtz1nNTlP?*$WUq6pQrx~MC}ob#(ckG8`D`J1!p4?~Up5}boHkp-zR zT?g3vh|L2Zbga#C0}repWSEnWcOk+tlUs;vu>(SuqXaic&O+;l@;H!UP4Aw1Dac977geDSO72I>ZY_03b!k;rVK~+7i%|iRSi-QO- zP2r>TFox@l%wZPexZ+?6*+cR!YXk zIWhR$-MSgeEl(gMXC(K<^w#n**5r^nn%5$VmveJ21?DGViTt358IL3Z$*>;UJ?aqn ze(3ce(01I>ey!XJgal(v$s#7xsgx{KmJzU+3`%@11=P-DulL1O&0KRu50j)ZVxt32GQYLQpm?{f?D8qzCDZV!zq}bJu|8xJzS2Zpj%RQ!=n!y6`!sf1tm9TX7HdSns1uBMuI@(r;zfPSL)|f7mCaCxgZkLth9pR-dX$g8&25TykZQ>@TO?7BaRUd*kop34P$gD zI)*GkM55`7x;)n7LN@-zJzQvS>A}|r zQ@&k3OoUd8*I1EQH(6=15mP7{R_@uOwiE($o~RC*$$ zxm@Ek?}w+gPp3_om-RuVSJ?FRg{H$t$&i}=48<4dzh=uDw5pheY5t!wQAJtutXaZ( zbPV1(Yyt6+Vy--_(P`*<9l+o|wgv7w|lhI@N8#P%y@Vm~0^76r1w&LOShUaiAe zY^mCM{!BWs6|A9txbyQD&IMXao7=Flkbd#}$8-*nkeMXrVk;W*H5r@fTXa|M7O`}_ z3PZx^w%~U0){~=8bXGdc9bcP^i`#@E$0}}_O7bZiG8W_{X|3^b%-pe~SOJ^0H~eJV zS4=7ZFTT2`z_%H;SIJ~zj#5*4WdxrS#c}h9gLagWqDNA=7&cb87?IrX%gx#0OsHPx z9!C{xoWrM&Yw`H6YXX z9#%s*e~-z;m?uE?zQLZ}#QY+_0GXC1lGYK*JDei*$12m*_^QxJhEEH|DDR=yCn*?8DAkIK$j#j zmNM{aM(|K@>LL>&dtq{DSE%CLsQkO%n0WKb+pB#uqhXSas)>jTM{>HzrnUAqe7B^< z5K|>ol(R!(PKk_LitE`qo7UM^c+xGuHD7a?+nz~9Dk=3d5~(EZw3C+c1LpY46~_36 zh2rEd@9qmV)Xa07t)&aBgl}|;DX_U62piuXD-sl({z=&OeBEHgf99>nL!l_OgN*ab| z8Jt!1Lm#P4Pvs$;4vdFxzheA-y5lv>jD=J`YrW-)RaaR{%gsRv`Gzq`$h`FAV2N)` z%){$JxXto7A190kMzRoyyG$!>9`0vdD8pYXuJK(D&ExctlSyl##coC5My#YlKu(8# zI@lYjZCX-W;ixlzb<-b&$X`m-x9qx6^$`jQ7v*!OYw$DUY}&d>$Wac7>}$Ie1*qnZ zcRS@g8xa89H50k#;k?CjE1U^efd9$a61I};x2PDG0|aE~Ct5X@$A5=~hHpu!n4%3n zd6`Pp8fZD!cT2${|DcIKD9@ElDaB~p;LeTP-@Oj{g$jBrDuL1EWaVyA-*LL&ipk#r zhfI?g7Icj~`gD^mR}Qjp75YIf7aKNTFu3qOUQ1F&S?Khs(*=e-x-{-a={lFykJQ!5 zmaYL7;q=XE_(7*<ak5Urc zep{($miFn@G)9qcPRqSV$iI}JwWh!)fv4n^gK5t#G2m1AQdFx&@r*!Ug;>}<)AEUq zsT(_zuy7;787%FJUAW?B6#H-&J(l~CNwha>7n3>TArD`?(o^C& zjA$q|wNOU5ClxLNw0ZW#N}HA5-xzyIkhdYlLo`m1FtH>LQ0KJkrhs~`B~rv#6to7c zt}Zvdtcq%puA8jZ6ClqII(X;sX>?jTNY^k0`uP|hycBl35-s=gn?r> zH5;baY+oYSgl7{v;x(Wz{qsgl=OAu!+Vz;1e=-G>5xY{-iEs0b{9g%D;E_M2Y|hql z6J&22tm>IYP+9-~t_Zw}HLjDv{NXCT>IL8x*<=*YF!uGWfRG#SUlr!ZyxmVVi<*nY zEq=^O^bR5swNAbx0^E}B8-Q&VM9SLlY||thTmkY!McU}=GFw_DI zANV(_S{DvhZug7h04aOTZBSc0%Xo`wiHwVUtz}_m307bd1fmN~kJ}K6WVk(ZXtA~k z5m=kY%R$RiWSg{=Rn-;F(NV*wL6$@v{;8{xh1nVMNsdm>DR!RQg1ft$0vPRhdZ9&?Lo z7Md#SMG+;6^+VG}If@3|xQC|L3_EQ}8c;LENBM-Wb@m|qIHs4uL5g~cJ|h=u2*a zdlH?TCBk7T4;ubq=x44xYRb=?fGiX$zyMf54fF3`%v_byQyrKReo?&fZ9Vj2v@Z(5 z>UiRV`Pj)~7-%mt%?1|76MS~`6;ha;L3MxJ0;UMX>6fL7=McTbFv?7LASaIx1*}nE zFZT_E05b>x$61tb^RBkYf}Sylj#w@V{|&o_LgpizMYn^C0x+li=PF6Si{61 zRWmTBycmvi^iKUeeYE`z`ilcG6@0D+dA~@V8THd5V@Cx7?3>+YG5fPE>C0=CAxpnP z{V!iouoYMC#*Gsln8ZhVZBMHneUa zI&a%cIdFuh5dv*RQpqXdjtY zK1>6YDGd*S+Ef?`x`Lh-6v_4~<@Uar(;(6cKs?PsR>XKrP{}QoN^ToxSoiCvr|9=% zPO6)sW?)9^LKd&Qo;p>z;wt`=j>iO;nUD{XLB^^J0ePE!cj%KyE)Wp6lbLNNgY}Zl zY?TaYTkc8X{gnSZU?(s}aw?m%Nxo<5*ZWVMY=1M009tZB!TbYq+=*o}eO_0{S!c-N3#Y%hv|r)Id$l%a5vVg=t)T;Cl+!$$=6tpc4DE6qZE=im~< z%hVzwA+kv@uw&@TvA{Fjr$?|XTxtJqD*&O3o5|6*?jhWa1Cjns;wnwpDbAu8MYVys zO2*3_vy|=moZ@)A!-8&tlo)s01G(owKe?pUC=v`PJg8tQ5{}`G!ISvTKmw?p8otFL zKXVFljnjrmp|m0?rgAqz9Rdn@!=vn#oJU2)w%0riY+Bg9HE;nosOa!7jhzUTq}HH^ zfdR+#j;gGBa+5N0xD1TA;LCGlrSdXler&D!^cLj0#LQjPXTv-1I=TG_H16>uMdC z36kc!TFP{@z;KT?(O{auWW1KswguYw`oP;H5H@1B6#)038oR}l_oX}_!+s~;Yjm>O zmXw%vWqUw;$TO1e$#=fTS>7&rpGe?3X&_?b4y6HPLtB-tH=a)_(fb{(J%zogw%t4L z$Q+cVE??OaB*#{?Bj_E{xn_!C)PpgI5R`{Lv#?Nj2E0dM_>?Wn!VenUIjW@Ka=8kgZ3cN?Z3w0l9yBGF{~$nK|83bu%p?eNm+ldrse^ZuZtT~>7LgqmT^Zp9Fc>5B zWvyTk9mJ96vP}UH;K6HEk3ev}sxP5lP(KLXOG(J`4ZYvTkmFo= ztH(}-dg{{zhA5DqppFZ6fCj$xqtGB!k5Q*`LXLx1Tqa|J%&1#T8HQtdhzdZ&`uTea zeNfvq)9>(fPk?2=PlCY4uKCCt-UP4Y33t_!2y?)>T{Ol!?;Mi+NJ9yjm?+NkH|y|A z4+#y?dr@uIB{EJ;!%>A{qS^$L5~x~T^Nh>))4?=*R*Lz}hOl{E!p5N(-BFDP1)agz zhlcFEmEJ2T$G;j6Sb35C&%~21s+!GtwJ~M_&DgZf)G0TosYPx72#iPFSnX7UBfd$h zTmi)j(H}?=WciPjxy7bVn|h(;ku3i8zz7u#K9-HD$Q^qU2&kZI!{3Dcu+5*gdm?e! zs)%ebLp)+z-=<}(mR4uJ+Ou*7glZBE@@f9pgwbQjAh*+~IW5y!jZ5#$iAsJM0AoRc z4Ci^wri|wO8YUHJML^iS_Ey=D-yhk~4xF>Uv0SM&KOBTnR&Ip6d!Y}_k((nthy1d( z={5T`9jR*9K^f1ajEk@cO2Cc(DQRUcJ=hd5UdVKlf`bz0B}74={~uXlUN1`g{H$*g z|EQ}Pog6ttrMj=`DEwAJCkFuWE0sDYVLfMh-6EbPbbNgr-Ma=n?Eb`|<#iIFWQ`}a z{p-R|l%0Kda1;ZBNU&E5AD(02gn2uMl$9(F79*Jw0WhNpheM2vO zAGy1ZNYK`h;kZkL;ghZD8^VSAmWtTr3BgaJ>s`NeP^}~Kbze_2MxD8Yi{A=q-1Xm; zFmyR4&MYP#5_~%6py(Ww$%$@Gu4$BYjY&Rv_}R{zWaZ*QOP#w9VzK5Ij=VkEO=n4L zx;YxKJ^~+n8slv=!!ooo8`)i!vZ3z~Ylj=#ZiyF!JPs__5B})94_L^hy$t0b7etv% zNKwA5d;Pe%hi3>NhT;e#Z2YqcJ?Y2E)Xwf!HgW*eneOZn)TM2>W&4_pf~iA!j#L!O ze{EK&hrR9J?tfFLRIx5I(-6!(j#Uvwo;Cv`mem}#h>3XVt6|~H+Ce{&1-w)Ba!wZ? z93zhgX*P_~uL4A&Hr3rKmuA#-Z-Jt|P&o16MN0y%*U>XfHpJ>Be473?o`KY=yVc)N z*trSYG+YNy$e=bc@(AGzDNEm;&3Wev1f~Lsrm-u$s$_sx5WoO;zG;IHY=oW@h`ED- zWM7I`x3}6co2EYvn#2;E@Cqrz141wsSP*&_6)f*oGQoSPe($i?JO{q__W;V|4|$Q3 zzD*WhO3(9ixa8n)MRbWcO4lg-5u+nM+XHqFf(J>71d(qmY$Dyl4|O8(T8$&SXAkR% zcRPUlEuhQ=sRi-P?K$VYLeckmw<>MmU`}l_ zPzE~Tyflj?x4`hq;b2c>bkWG<+2RCQ7{n$4u8P76UN=Z*}(T8 zg&zg!e0($!VIla?3^X9Mu`A(l)U{2y_YA1V_>kJ`egCY zwo#8(<;j(_%v=OCg@+6;2(5MggRrE*W4fPX(yIl}HqiV5AjVdum|eAb$+oNlIv2`y zu!$2#SsbWM{o3za5pwGRg;P?B@Ul1AEY?bVd|0f^tY#`Fu#0H!H6ge6p_eeU$KlXD zWs?32q}h^PLP7OOQqFVJZnq#C^3%oOhx>!_@{0cgS!y*D&;p|=tTBvz6IN&yD)P{S zDkLE;V)#GfM9wkU2F72Mqy0!V8@KzYtdESP>SS@y(;X};h0n=2?MOkWP_Q< z_=*~fnUV)Vc%}5iw8nQb4Spy_68Uf!`}hLMxoxk|#mwpMy`%O&xpoJrhHJ*}Q5u@V z)o3Pw4-$Kxvr;0V-$k0WZwJobjWp+N%1l0s3iD&M9qep>QEwvhsV(6e z5X^Q1&XQ|ax`1>QYVn_(#~2J$^jy3-BY&o%6OO|wC17ZIpalHlZYlu(KLEhQ*3Q8r z-K%3bN6%zv6IV}uW#T71DM+K*7sl$Z^Ek4TubU*{7#>z)lFDm&EM+pyAPpt!lDex~ z+$$XHs0+9JIik@tyPH{xRt-V^F{UufEnK$h-BB>ggqiB6TI|YB%=Y;%l&{YKq1}O> z!$2;J)@5vPT8U4_=}t#B?NodKLtdZU)QunJF^Q=l8UlE-57}{D9|I@v1CI~19hrTd z%jlv_`H-r(W=Law?B}l<{m|Bc_ zyc}T+Cd+hlyd5e7>^n&mc%6vDEk3ywJDQhS;ud*%)a-RNcJ~|QdBsNl2E>2qX9fedLA%L!(>(L8=xf^MK zMks_om%y9%JDkc`h&bA2ia~(qR`OYiD9%xWCY+7!&0Kn&^+w7_|dpxD33^WPo&8x|UlAQUK6eAh1A1o?uTN<_u)RQJ{3qd71?q(E$pO zZYiD7(iK8Dk4^v4x3dWvtE{&*C^ND3PYr=6j`=K*V7=WW;J?YsQeY}McB0EQ$hMmm zkh=&oKB%R?)=8g7AVacr)&mUcGk|ARXHtm4~^**p(RpbPO z%6?7L1h*O@IspfK`HxA<5nAf@^oCQ}Lu+p;jeI586X8M5(pr$(jO> zrq(9ZA7aU-kOj>;;%a251lHpi;@>qGAN1HqZEOz2B}-iT-OSU6tML=5SE@s;Qj4jo zltn`wRsw6mtEHL|z_1|h?j22(6R0Plwu9hi-c3wGj46L78z?v^^*P}eX>_1#yUI#q zWV7#LZjz>aWsgkjnWRqWVuSeD*$P$lNhZsex8rOlLj4ErW$+-*wu{%cK>k<)jw$g& z;~T~|CO376i(W81A-rpN@v0Y9v7w?02k!8YT_0@SCJlx1SK&6N=j{B}TZV=Fj9+_V z!b@=!ArZ9$Io&@oZqYbHj6DYF8?@ZoS0J1DVZ^?z;-s>fZcTHkP&LyTWlxy{fql9< zSr_$-`#Q?Xp*yf6wtRX8bNco%>+I%y5Y*wWv7o2N>dmQ4#K!Ss40H11hoE(6Y)P>a8BsI3M=Flx>XG2X%JFP0-BAhP_&u|DCQEJ7G;cBR^eFIpQhh$fWBHKq4o$WC5rm z0_R4I-{lr8tV$|u5G_$Bz67{M98`>nkAy-%NcAz@{z?0ZaR@s}3)%IdVwWEWOMl zsP|Do4}Uyv_GF3j$UpUe?I`0`n~bORsybYYy2(?x*&Kl$FmrrDI~|B^w{TRg4Z1G2 z*5W;LnSM|dmN)NXs?dML6}pLAR!Ei0GP`yYG7;){wG>kpy%NgS1o@?>tW4C0Yn=8^ z@&2!xs67qWVyoj3zU-C%dW znBGnwh~vE8r^!$Mz&K-OW~zG&qUozymV!di;m)*nhgNa9DRJ z;A}gdN;^@oRSR7EPHXK<2ItE^k#ax$z~91!3m9Jq*8ukfbSfMplx2yn+sf<+17uPHD!XG`?S5I+W4a|6xE0Bo z*AS*Rv$9=mVjvzo>*@^UsM|V{m2?M$XwOYp_bICx*)VA}k^b~_g{8<6(+x!rJ;y(B zo35gUF+=&i@XHwmsXI}h@<*M#LB+4%@mU5$E>v+vFNmC@XkN&dw^=9VKT4Hil?Aa6 z^W9W{f=<%%n-ANuGuM`e8T5;z$ItDKqf1~=D2}ek%Bd$EUS8)VhyD#7CA(2ak6|Q` zk?;5CH4pNAAvGHRFzl|8D(vmi#!Ex*M?LK((dZVt?w2O%FD!Q?)ljznE9lXX&l=JK zUrgZ2cyJ8ge^ZX=L`R6>^%0SyL*)sy0fE@cp3zS}rU%hmt#ik^yMPlSM7xr?(*;lt%Lb2c^~TY=OvsqRk`bPIas8 z2HVzj*Km1x?8L&UH5?v-p*u&Uhv{jl$1QFNUnD^_CXm=fAkedl_F|MLw*_fwABrXk z(uoL9lvsMaTm(|U6&_rXeG5=F>OgezC24jw4A!JQ>+4~Y#MDg(^s<00vi8I>mL>cN zSzLNUW57xTX*Q2`{|wzMkv^^EM*&WKjZ>$NFD~6IGMabz%`16n;EPo-_jw-i4hv4@ z64$s}g=?qAiE~#IrV0%~R-3+;wEOQXVjMDxYImZc&6u8_c+5N1Suf&P@OYR%b@+0Q^gO zKg+?f$H;(c;fiy89CJC9c{Uaku>Z13jaV9v0LyB!8tIOz!YVWREB;>kbWFjIjq8#a zNHbJ}$+k;^#zdqB{{fTN`2ftm#6YvP2fbh9Ik3ywI)Rzl80;ZtQrl`WXpnV(_t+!c z18D$8Z&sh<0kh-VYlhcsnm&y=K*i2cB>@Wm5dZ7tEpB^Pn2U`ILhO2X_Lu`moAs=S zA%zZ@0O-szw4KBi^(Qw7bN$H}Nh>f0$+F>w!f4cjWrP;obnT++U0wv6%e+1%@D){6 zqAxsn&*16pGRLTyL-Bu&_pN)3yptD`>Qb@qVDfA;PSk>&Nax9DZKPwtIx8VULTB(< z4dO-lsT>^^t+*S=l*-Fw4&&84*V}^gq?paGK!6>ish-Q#E?oUq@<_S*K9bR+ z^HtUkLQ=dOCgK9bVuj!wj%IwP%V}OiL1FPf_ZKOYbkS&{ehCrr1W*YcqNr$dj?^ZRfCGPFHzL)wF;QX-sn=pBI~1`L7|01f!riSu_2pyBG? zqoyB-HNTc7`qC0QjU(;+LvGbSB1aKkGP@wePXVQED`Zor8bVHlr0^_oHT^s%{!dLf zuJ;ciNFM4xSP!<*Gg|HLH=*_`T-Zd@DyxgjF-9`pnp_;X2*QLAEr!jBL~-N;Ihg`r zU4IVTB?4Ki$c|9(p_A|XUO`A%cgsV+gs??T(yAJ5&&XC z1B-5+a(QYrdpNTZqo3BW6QE!FVP0gtv&xvT9V8lu?KB|E@v|g=uJr*7$(!2wN5BEY zX2URon&fFCylM*0u<^-$n|rlFIcWfOx9E%XUsHQU*83Oj8v>t|Hh<0-M@T5#dI?E{S=O1PDkR*K$3jY8>b(Iad~hc zUZ~NBvX%sbrRfu}*-}FH?o|M<)QxI)PD;hRFte7fqs%_1Hmk0Z;p2`W(IiwhH zmGT53)i7Qak^oj*=AGvYh8|u&1nohR*u;^^g%pwD4b?TU$uqrmMg|Nb>{!1+<*v`SXAB>KD zh3he}tR21|aS&7i%RMr8Jw@vk=v{ad59fVIxVO=5RSr)^FFkJfW#`76dBN{=zfW?v zeB2^U!kz$tP#6mSeW{b@E~$jGo;v)mjGnZHgX6G`&=jan)RiMRw^YFPDgiVmi}KvL z=WHoO9Dok0JW)3aP_F4n-mMuCymz#4SC7tsVG95B^Ex1h)SXObee=J3s-M}6Oi>98 zZr;#A6D~ulOAEGoy@)e=gd4}b$)MkNp+}~`9k?-Yz|sr?do0{E%b0+ z@fx|FyJSF6CG_213N|;*!LA{!UcLvDVwSEmi20xW=bZ(iYO0l&(k;OWvqWuqk=mRl z(E!}nZp$6M4Fr}2K^0HpOohn|nL^S~Kud)?w$lXO>%aBV6tKOG$F8(#dIhdp*}_@K zKF03R1pABCU;DN*dyc3G1jpvE(4gbW>$RHdIQgTi!0&_S-w<2-R0p`wlR>AFBh8wF z6d9HQv?7yI>uDQR^&)7!dgrzn^avm|s^jyGBMp(rA>*jFr{>}df>f*pQey*n4N;4F zkM%guG8WFi39Z=n5vE5KgC7VP4e_Z1QJv`LX02RZB@m2ufOdo4i2qfDo|-~=e4IBoa`|AlA{Awi#R}Gr(&J#Ka~m)C z>UfvXw$$TNQ}WtO9&8#>CS0yn|3%&bjni|yu(0w&(OcPvnLHm>J_v zbg*rg%wK`5H{HFiaTAU)aoMF9+Fy2^S*OAV;tn`X?_I#TT9EQ&3(xSw)TATIOtLsM zbYXT9wM`o=szMH5I|_h-F-A}Fl)JMxNLS4xo*pv<_hscMOf^ciUa#Gn6U7hmvl#L| z9yO#Zb$c)28g7{0a{4U&q4G#M)x~qMK@5~+B74YLp@;+vP~!aDYm;l*mhD1nrwxSX zhX(x!M{Lw18}c`;Q6^zI8{bJ(`>vgNNZ^+?H%{ZY97LIN1RQQ{?w+`)#)=JNJxtz} zAfbMXz^M%_qT3qtq2R-rrV_Z7Q*>u8ro|Ivf9;2f&@#y9E^ss!Yt(8hjAF|Eue2__ ziwu0bI|0sZ3>8&HaE5GU3Wq@E{@cxBFOWDrkE-kX@T(*MZ=zc0dQOC^fSGuOK29aM z_EldeH$cKI3Cu|%^PYmU@5FsioPvkUPVx9=3r~bU3ZY9fvtw;jM(DgFSL$<5FZ(gi zeY)`~1R{ZWh!-jK;8W;lR!Zz<6x2s=d4W;Fc%?-=Us$ARwqU2eVqm;KkJW?aTp(BS z_5x?-F5CJFbUAFZVDcqF(!>lRaFVtnF?R4bOWt-ToA;*EnW5)~GP-G)&ZNZi(>HowH8JXn*Tcm#LvCgXB<)=nwk zz+)qoBvK)(ocM{}Vq+y^SRf`)b{16C-=2p*z(NGzyo7SciVIF-CH&p^mf}qkKZ9V@ zg9u8QaGl?#-111)gE@86^d_c@iq{*HN`_dEZ#$~8`$(Aa!&BsC2=J6Oc3_xTas|bq zqDC#^mV^5o9uN_vb8KFRiO--bhL z4zP;xRa@`-Wck-Fw-u$Iq88`VN?h}XhyPeZN$hB3@3j*%c>ifvx7SWK-UiDe(p1b! zGr@-ER)J$*l$+;yg9(lN%!_b5;;D6{rrc=4hio;0aA~E$AjL6l<5X6NCs$@_PjDQ; zxg@jGN6F)+2#D_9@ZLe#tcOKm9HjQM0O)9tYMi`D5;I@X={kCnY*74mKM2wIvd6I+|Q^-32}-U5qKB>C`!&E`EbWg(?N=Y6cWd6>s|VXKtR*!#uu)Mx zFwdYQq(^TtU8`*WYKp_qRw6QRf~F70TH;~8eo)8$oy(1GUhrik1<`NHbVbIP$yR@gZAK7x z`r!D?mLkHSOuom(4PZ^jO=h8m5q|9_cXO&r5c9}Czp(`6P;k^DNT|$c+#Tq)kgnr! z>||kY5|yS1%Crd4pqWbBkj(H593#TQF{`VjYU7v18@@hH6VmCNVVfAQ9UnL}(+Y|< zLo=w@slW|I(gIk`83;JKNF`)tHatm!TC z&=DNGs|pw7ymX5-U(E(PS@nnrI$1bj9>sEZ49e&X5`%j4 z+s0B1oMzt{f^K#r*`zhJYb4_~P`DCtrsX~1$ZLKvmj1FIqJ@i5`qAu7(#c{U5y-bzK z%H!32ao1gD3cnDf&0Elw&DQ5C)&RWrK7-wBpwagfieg*ya{g&tEO6ts;OTHeN1GQ2 zqIDQv-x%g&Y%-==|BjBVDW8;3&QB+O`enzFeIgMY(tvh=r>v zF>igAzYCNR&?Nf{CZK_9qGFT|aq&KZ@Bt3hbT>J$O?dQSXHEHMU95i&Tji&>jdJc# z8Pu+A%l#68*Y&2}kKWHV3g7|F;Zo9y?%*3l*RwfF<&h%b_aNSOztZU4z5s39OnY=kmzm#sg6pAYQ7x<- zn$rRBV*D%=x|POzX$)d1yuROXHi^TiT>1KIQLVkNHh6Q;QXcmJKE>QUY)71%xbUSGLB9^>rE z0Nk>)>AMJ^B+mQ!RS45@CWp02Nmg%E1(W^B~TU`2IL_bU-j=jkbVM|OD2_NFt!CkkJ z82!R&E4#26bV&VWtS^=3QAjxnNt&1t>Wr7^=3KW=xZp%J76kO2 zDJTK^rU$@hB1TF-WU2%l&dl2W&-;!0 zC+tsGgnqz%ekeib^(a~G-iWgbcVKC63!yTO4o+4Bh!+6CvO*5siTNttD>NaT5xf{s zVsJ3o8Vkr3$RJgzKdl;bU^ySEEqaRA{7IbUWKDfb=rwdK!=T16rpFh?Rhl;vPmRp= z9o?q>_0Pc~6H)c!vpI@K=kY2G?fJgsBI4&{GKrM1yXZRrZwQ4TR?pv ziL|cE+jl$)A>6f+7ff5cONQSnc9WC0Pk&*_ynK?_To^CBCOz#JBP1?yl?=oH5mm8W zqNsY|d}CT;9Ql(&nQXuv4vm2>dw_jH>Y|SI`%&g1cCT#cW_!{~+*SsuydYqQu7yvg zozZCL2gDle%EHTv303cgdu}7J^nza|>8(jk=^H4{q9Uf-2)1NwqBAIONco>BZiTHo zdnVn)cbAzvBiM72=NfO=y1t=c{(?y$BTGqBB3xZ=coLb>Ps_7y!3r=Vd2rr8dO1My zHpD>9QC69i&ubzTRiI})9Yw(_f_&EL08l6M(UEB&9j=(STgT)*hi9d~J~=0rx*4(_mdAR)B>3zkGAXSiV{ z5oAC1&4s)=h5P>FV`&X>%fb?9Is7yU4GAtr2Ygd+Vvf24X{k3Xj5hRgPxyOa1N#s$ zzQ3%W$!MJteDSGaDwnaQrCcSgz^v|cQ}m&&o%^0wckzY=xdUGXB;nfAHBDP7S%1de zhE|w`p=)-d3dAj@-GHj3fW~Bo-}n#-Xu;H|51`(numew>N2gQmW2V9CA*F;%;7-UUxwhw{vJEMx3imgR z5covo*S03K+%Clg20OGLc#6X(PFsJ=tj^bHUC)D&Vaa@B!$L}5b1K|(4f=x*D9r!k z*#<5`CxJrDNY1b3-WH93aZ5W~*{JD|INka@QhjS>!|Iv(w?T?K6C@h{c7meV(5#ol zvfsn>^fndE3qC=RVY3F}Q)Iby zR(DC6AX&eAwC)lJXfv>gejuu|b8D#&G-#X@)*x^ED%%^ow-Cbj?e-I9?p{p# zgl%i#9bI7_Pwx0eylO;8m0wJkLtJK~Y|8isQ&*^Uk zNp?Uc;;B}Lg?!F?E$a1-m=wA+p2j9bs6&G9M&Tvv{X?g#vptt0XmB3T#8BVkz4Nh+ zFS&z}*!L4g#hv?F#&Q5W%XN^y zveWoGZ}_ap67Y_2ZTrMKSMmv-+jEUo)%50S!0AZQ;jv+4cIW;uhX+2)&(jyI$rjMY zCPF|IdEw~d+PFij{<+nHa?nwIP}v6w2f748@7SH7N;v|;-I|@ryq)YE z``F%BV^(#}Kn5qTW=buvfJT|IXMj_8NuxZ$sX1quuQ0Uj9l{~Q8~?%p{japOUwYqI zZtCtDBuS=Or#WK>H$c>)aFzfPC@cH+?$NS_X-z9=QUMdT*o*f>E(I!7L}&iElk6M2 z>{!%kgL&Mmk$C)~x&2rBwvbJYBb-oO8jMiZ2)FvZb_BT**_seV4I(`x7?sBY3!-?M z33CLga^)=mzR!bHlJIA7x(91i0|McOahupMT;t%H#0h9Vdek z$q|&;81>9#8HGu2vi(=2#?NzKo0+axTFvefC#EKA$`QAd2n-agE+iXws|qBsS;9t= ziXC*(wi+{=R1KA0Xa^J>bIY6LL!k}t|Nh1~v^30S<4&%Jv{X>Q#b7uJ@rY7*tq#ZT z&q5rapJrvHr7;t(p|7Oy7&|A8!Vq#PTSS$VIWqJU0V#RrMZ<$tnOOoaEU zz(1vRdA%U+mu)?_J5StivAjt{5tkb0z%uJJni-yIn~JZF6l1?6xRVMJM7C~kw52vWT(P?Z002GKljK*`!#qWEVtoM;+}Mq|rSL9OWs)=4{=Yzbh->_sm%+oy<7a=(8Kz&?dAYaR5fJ2?m5$ftKN#~r%qYR|v5Z^n6#9C@ z(hP7T|5JDV`OlNJnRiLB*UlC*m(CLXvyl!zv~bAaR*|t+c+tBCOrVP}tfA5klb;4k z{hv2sM^uWO{QNCbd>(wiI|t(bmrhnJWiVbkXbbJKc?o8O`7*cuY<92tGE7rLx^SGF ztS=grenknbVli{e;tOg|j%uF66dyf_UF!1TEOl4&1#CIn2w!KOr?(Iv!&qt}8Q1FR z9`01bFyLUyw2Pn#H%-up*ZWKwT8vNqEjWBzBEC$)!rVougpT=nc1Tj4R5Pw+fJjJ8M82~o~g>9x`1m`0()0zU4U~u zzyA<1jQnQ6kO0~p^1^ZxKf`YU)z-{->>Cf|t-MwYWJt$x$N_w& z<_~Z17H~x)E|P*Yo>8TQ^rm$|!VUd3BdI^WKXG-v=WEXmX=xvvkQV{y=Oc6F7y7CT zL_M)vFP0?$_ak^N#B=f95?=!@*~MEilfu65Vu2N>y3O(^?wx{~o6J>Ua*w0OxJRH+&6r0_7r>pDPme)fmT6z$WkTmDtq)DAeNxsV(w^ z5aU@hwr|%*yFL}Fd!k3dd@68!h!tn(F&@dvj-f4mc4Aeoa8#B6+o!;So#~Cx`Yy6rwZwHY=_&II^}yNE>#L z-z~Ab)#3Hy8FY48hQ+S(dFUYh=)#RJDDbu5e9#01c0{Zb-|tU_0WZ&@fjcntCxX64 ze=gN(o1o-C^!GIV_)5H(fcG;y8iLtavko)(UdM-GGr+x>s5aNoiYlHrxi5HJ`^w9d zz7hyBJ+6&R63d2Z;s@Wz!pF%yf+tcpGzvS-3e=ftrUTN)q@XF zk<(y!4G&Dw?ANjFE1o8y+w+B!yD@Wh0DD!_PJmLwZg-XtWxi0sRPHO_mW9=j>YOhH z9kJv#jvu8&(}{TqXFfOGG>T}*^#Zd(oEX4fP^Vj3e6RjueWC^e${%eJ#7cbW+oWm} zFgIFG*oMfz1gh+`3fJ+^uDe5T?+etu4Rfiz_xkcJFdb0r^^lg*&yF>?_^S2pj5L}K zUEA(d*}D)g3S*-G&vVHP_NH8$LZAyW-u9R%y&D;P$=yQV<{$!&bJBa_8%vU@s&<$3 z#M9|MO~ac()Db?SWIp_ zW<<+m8${rGy&(ilYjHh5sl1WqLKhca2{0WPiPN{d*790q(8@wIXpytfr7#UhScSGCBsZOF+m6E%V*KoP)stBapF%8Jcu)re zPcJc^eEPPv<&aGiH91ix`B8v_D&0tyF%j-^Z=;QvGaSY7D-v(O$(7}E**i!OZ>moC zpNu*PLteWk6+r4~Y~QGj@~vG6FTl$5>)T4AJ`DDPZCI>BtfAE5zGsGCFr^bFu=CoW zU^msrMYE{YHoxHv_nUh4UhBtQ4l1B(Dm}z|&DBc)0$XyeYY@$?m-N`_-aZ7gb>Vh_ zI$=IMX&cYY5?UnJI^6Qov1lwnEtv1iW}#^(xdpv@23KL#p*{n@vJbH`d&9B1hs@HV zb{Z}lfjzou^q8bpftI=^YzQ@EJq*{X{5Gh#cn6}nac$)%YfsTF#tHDn9h()Tv|~sq zq980hZGTY|F4EJV$fjGz8-Xz48R)};)K$Mt|BOr%c%QVsz05C zTqd4Jl7aY_Zh$+iszN9|5t+%GR~eDUW_?*KWuWHjFEGJxRPRfI>yh~^O9@-r?o zi^`2@Xo6DG7O6-==qQwV*MM}2C}mTg4ljWt9&uw(L`Xhu@vV+pBHXFBm~GY|l3XmN z!kLk!&Y*dLhbTzW<0@&~PegXnNSGD916Rac^f0=XTX*_h@@l`!#z6n=5^c0dUnaRW zXkNfOssbR3)SpEb#@;#NQ*kQ;5p4JQOP7^Iuf7vlo^m4yCT_CRN;uzN+q`cBAs zzpUQuW!oNw^uyYSQhTcrl)fzG!_WxTG;^#K6DF;D13K;*ysx& zH&RkM=pdD&oF9zq@TTjsloz#Vu9w)#O%o;^^{^%gF=%%jPVD|FRl2&qA4_^!SQ1-H z9_I*XZGs57IxgWY`Rk|JjyA=G0SNA7rU2-Cl9n!;wp`d5fzh!X zan?7q-WFv$x4(m${YqoIyQg^}o2Hv{dX-n^mv=p_Yistg_e1q}8U~GtNLV^QKGoJQ zT9BoyEcNLHwm5CH>Oua!E5?Wbke}J=>Csn2Jmrj_xd}V_e8`L=k=FUW4~Oo^cPh_q znbV^z+v>#rxam1RO({f!#dg97BucPJU($rirC9>^Qj7s=QrD!- zhBk46@kh*gXG+leEp{&W;`^^0aeLCzp8+MR#RhcpWnr-=^xpfqpt=_mBfh z-$1|(nn67DYz8{V%cGiadvGBidFwV7BO5c7<;O9ci%_bIwp-9leAhI^i_@Af5d?Jy zFbLJcYpUbJjz0j`(-q5*va*XoSkcFwk=O9-*32Cg;nEwPDDRXPgB6A|u_x%Z%{G1SLjBsHfY2Rb*@q=JF~gIO+i|W6H6Z#k0-`8PWaxA+!Nx@8RBwd$R>fF za+Efs>IvyB{Ey~l80Sv*^s7t?k=1fJ5(Mwmp*(&M#$DFCn(ulH%3FrEC)6Nxa)0Cv zYB%e~zMCZ8qmkquKb8pt-q;po%qpZ%FrMFL-2W1H>M4UY5$5nx zhXTgy1iB`0#;Vm-oZw)fKw^tKQiisn(Jk-+P*!hUHk)JF?ZRY zmfD_PI!nBL_~m~tg0(pH$ul1%5fV``#7Qn|yZh-Cs{0)pMv-8=N(nS;&|R&1+G|@S z#2I;uMRj8cL{(JffqN7cTZAg8e;j@(OPe5{MSr&isjNIy_qB(Q%hoCWYEa#pyb?-Z z@aSO;@)&PJhpB3$vts9Mn`kymAA;PpX7Kx+?(@4*_vM|bFAEF@irORs{V1e02 zKnWjwY^-3cxF?9{hs#n+x_3thRP|R(R!r+zj>jSu9hL9C*zd@cNKDITQCT3-ssufR z*eWZ(X?l@QRu8LbeD-qp`0C~O0H#VQM^l;%X=rXjWMfwn>R~!UT0GV!@(l5R2?KL` z>uWw$6kYe9GJnA5$CeF(rwGDXxHMa%}V;e+H=}Z++0AYh1 zg@?69?))xF`dPR-j>F}TO<`eG|K^5wNriDs+7(s<3flr7i zxD1YF7!3vJ{*J-#1)CFx(j9f%G`K$8QWz7$!~}z-BGJXxx&BLU5muYa zX3A!{>?cvmHHDjV$mrYKf{;^7Dg$1AHj1;T>t-N%hgo>LHjDi<4@^89wL{O3grysz zWb289Sge=CUnO0?Ybbd4Q7Ld#{^gLJrFbe~F5x3D`Tw6q7h~gX=k=nOoqcPTq9rQ2 z_|jPLknzz1#p8qsp}U;H%FvHH$-%F8#)hT(^|D zcQ?}sU<=k-qli&l+do|$wxJHxqBJuWU{fQQ=^3&6Qf2ySKUoG@idAy^da?JJLiFA~ zaDbynnv`rtoU!jZqG_AeEX{z-19dfzV$Y52bC|+q=qad708{Kaa2ZgZg#X*e>2&lB z;H6mPXk^MSo&{BmD6r z3+8MZdz}(1b7I&?g=0?6-CB4H*v-_=l98+>Exbe>TJ82If++Ciq}`ztpS2MUoOPDz zQW{dkZO%12@M;ESAM30SaHxq%L?CypjM({9@$0E; z|H9&=0}C-6{t#6$_83%9n~ zdu@UTiHri389Sj?B~Ad<#M|Yb_Z62~n~mj8n5r;1388`%dpQZDMB|(Hj;+|oreFi{ z@nCApWc@?qIi#35+lsO3gVO5cBK999(Ktf=DVC7){H{ zhBh`?Qe*8<*lWuI-x@$4Wo4_gbp33RZ;@|w!8CJ0=V}@3xdKi>(k2A*>BlVHX|nFB zGuG;N9DIo-nPvTUyI`p!9fmk$oDhf9=p=m^s0hA8Xx9r?Tv6H}pxnPRqp z+xD+4*XQKx$v7S4)r|F3)yD$wY_yV>z7pjK=y0#k4# zrUb1{C(F9&4`C@H`Jb06t}wr(buYU*TDKCwJ50z=ayeA@=o4tJB51g`H1g<9{K~D~-D|OPm6*ALV0bU(7Mb387kDKt2 z+I@zfI_K3_8^jO2;9}V#-sJ%lIR_?$QV_fX%G51UtRzHh5w82t@GLRrpz+~6GcrgV z>beUEP$FZgp(zJW1h%&j9a!3mj!~4C;Q6GeVbZv=QYA!9t1hJ{L`6$CyT52mwXt)v zYb)^1TmylE=&jVLvj=Bm6#?}5k=>~SW`AKUXy)8<+!r;3zeV+b%|FkP2A+>i(-@s4 zGCi;}z%ZHJ$=7=(4AE-BKf*LvUu>l;F?F*a)scrlw`7R*su|KBp~$b6RjWD-kk|sy zB=0J}<>wPrbe(HC2p~KJ>~>+``K8wR&Rh_Oe@G`(PozL7P&2Jd3>eO7@RIaoeS%qB z@5@;aD1uo09n%-EH#pDcN$rin9XFQ?CnO0Xb}dHb^$q{^k_@#?o0vZ0_LeOAgP^O} z)Blz#0u?wkc7UOBvTIbht|6mNkQrFp{#y;I&U#j}kn|4zfk^+G6BR&%n@byAsJLvY zsYO#Iyfft2ggybx9I<$?*Teiw?6c`zZmi|^CbCdq6LR$B(DV5ft(Dk~eauPFD(r2- znHm|{zMTLq*Gk1GYlf8+uV8h$2EuU@KSmkjk!NbrqEbZf3T^={6&WxGY;FKVbru#4 zm__!=z>V?r>+r+?2i}-6(J)yrKWFnR{;}$aK|)L^fA&Sva;^kG z^A8tUa@{9fCa^Anm&di%(yl;jHNJ#@Pqm`HWW_jX6lKfRA_m{?ytfg=7urZLDv_hJ` z9M9S!C_LI@#|skCBn~(^#$W@em7RLmjqz? zFHiz@Zez#%gUSzUbU48s^a|i0!Jg7r2(4f_KbaesIM6AkA_MF5AFz@kb0ygzrX{N*uk4)eta= z$wgD^tf|>qUQgSUJs(IPdfTXL7L8y1X5TI&a^J@i-&=0y zwJLADSjZ;bP&P3^Ws0U=^$_eiWJB?n>G;|Q?Jh8$TH>;*7|Q=f2_$L53VTF`@$Wbq zIWp+`fuxZ)?nNma4-zuW(N7bR>G#bsyN*--DrKD$?_87{dzF6vohoc=F*^P+;GHW8 z&9%)6GX9s)6XGXfM&AAGp%J2Z3J9AAVNm}cR}JzmT0~u=LWG<0SffrV!we>F>C(-= zYP18PJl;Rqu3gh`aY#N2J3_PZhr~=jkdMjb=Zt^c#f&=bHYEx9g*L|#g2 zZheZ|7-4zO6rKKm8^i8V(w^fv1$jP%UahF!FsweeK(+Jg2rDCPNqv>+&9D;sgLFAS(D7_s^e}I%3w*TOqGpke=0hGu&cW0z zJAVG(C=WafLpg8c%=`G|0Yxv}_#jP1>v;GY00B9o0b28w;hieSENy^L6sJ^Ok^7poq$hi>nYV8Zd_1V0jN z|4vI$IaExi)yZgwB+KVzpR`yqatj)CY;X~_`W$XbOco6+pW_V>r#1X>fuUG`l7XQ_ z^O?2}Aoq|YqTotdLK@`pp}0HE7Zg{rtqAb8l)AiJ3&rQ* zuNlS<2qlX3m@~59K^@4}rrN^t0pFE1Zjbn^$2*sW;XKOw4~ZqTfq2Q?a71YroU2}8 zMQwHyHCs{2u%ZOu{&7a$F$Dx?Bzq-qcnlcYE@s%$MOIy#f9bIrZObfO&nnlFYr>R( z2IXc@a;|8BgWs37)KGl(;kBFFvGPpjnqQ}T*nR(#4&W}s2=^seO+!Q{51(jSa}64h zKU*#_T?;ewv`G4b+D*}hgjdMbP`us-8dcip9q*r{M_2>xY^u7lBuXs1BV@Q`L*iaU zB0*)7xpMHz<=j&ZR4#p*fr5m^Ro21?5*;qc)rZZKtzM0K?DmtR*RpsLN>wTdNaJHd zmTY9jil*tU$$~2t*7IRfFIE-aKR|+&u&ub#{ZL^l&+`-EljK)bhc{U6(vr)>0{6~_ z!ilyZeSn7K^*>_71(>g~c%VacCV2-OiuF2A#U!D^IhAps?h6yqb@j;xMeI@3dq!X+w68BADr6N0um)~;^YkWeu(y+dF7@8a@ z8Q*&cfB0-t+Fk`7L(h>Frf*i}y-MWQrnc$100&pXdN*e9CRm}eKI@TyyPbCZF2}9= ziCI~@vLGguttAP(90pgC-!c|n0p)egWTkWUU_4AVciJmkTRcr%BrJtIervj4vnFfA zQ`w&gWit1YIB{?>nl7Zo!M)WPFeb4@l?D{BkjFUK$vq`8EQ(1i?6i9! zM6k;q;jr-{^OOlY0H7CNNp0N1)5@Uumd92mb&rm}1*j9e5v`r-Z=g(tgYWhZ;5vpJ zVwoMP=!q4$+%70bwll=`MI0&W0&R&|tsKy2ZV?()S`{Z17@5mZe}*r+2_petADn!f zfJ5IZ;zoStyMK^C9(=myk*B;Elj_)-8N{XhLS`^jlE~g82k{?rELnyiG&&JuW(Wy( ztzHgNNZLO~^4(5p8Ar4)MIRfmYwn?|jueI4dvqa>U%sxXzV@keuG_{mXaZN-(^bhZ z(b}{KXqL_L8|CPtYg_t@gMw%O#_`Eflm`jMyh@@$@{Fug+*ia!;?7u5H?)wzN2B`6 z57Zq}yQ|y1e;1UVYZQB*!Xw-(xNdB^YQ)62+0uPC%ef7#a}oDQJ8oP2{xJ(Q(Ea*Z z#h!sl-{cu*u#5Jpp(Eso>7yLDBdeLxP31?c&XX+y)eh$i^r{ zRtoT?vqtd}G&k zuVO4_frF?|VVa-+`c~JVELwQKv(%39zM6>12!7px5T_!gj|a@?&-yLQCN~5bmy5>X z-z7XFA8baweg-5}(2U}5)7@-Ss=7-5N>mM-oO~lJg-?b@D>Q2^w{aA)8mZOo^Vu=x zY_O0mK5oyA#-+hKBAhcH05f6rk{-Z)b7hlw$MC=o3)$T$Of9S=`K?bII5#L#eSHx$ zWkilgCrFLc-o#}i<~FAV>x9d3{iK;&zR~j&;6kOdBXhqF#qKd$to0^w#rqRP&fRlD zW+4@ozA`nl`dHlcJ^;whC=dqrrDl+zUXubR=@i}kh*dHG&qkf8LS*q)TQM$PJsh+$ z(GnTZz)TyFBwgYL_=VbbX-4=dvwTiBs30kyFNEfACnE9+ynP)0#6<{?Pz# z>$m=3qDTAc5@F2_5s+}+IN``5Vt#x~PqL$hOdqDrb=uuw;A$)~uw(^-US2bw#!5z$ zJH~4g;`r+uuXQq#X!3yAlp(}m(fDXLL-(EoUP+D@2K=lFB#|#e3@l_HJY)oJ?*usv zYo9dw41dZP9$3TJ$fKD_oL_{bDxAGf4ObR+@g2;0A{LYCAH_ABv^~>=%jOvMxI?BQ zMccuUBuHT`E;q+EKcyTnYx(Au3~&4RrOc~S+Q9dZ+MrS5oI_z-UoyW6h_-{*#exOQ zASr~&=@h#}qk1i*iZrbGhYdPdkwhp{N?Tgzg}sxu`+xRb`9qe!C9jr5#!^WW#tqY;+2IKJ z|6L4d`SER2GWoez4gv(1IpjMUC+(%b9FpSFO_!BL#}!SrRHY-s_q~>BOfnMBgJc>h zxTh8YYE8o*L&HOs&_ielFEQ3l ze5R9Sy`zh#^lUq6)<%plv)A~S`unK%0M#572=I>)Na-W8EGF%ttmd(C7y@<`xl~0u zeSYZa%0idF(1U8+4E3=R+iemj7gr6rDnw(Y!k0I2&erIX+aV^&T#e?nMHrdMvh||{ zX7Le)FGS+$%CVoDqRCx302Hd998w9&Mk?O&e0}itk{JNPzw)5WL%Tgo1E4_z>3N`w zMa@QRr{jUZ)v8Byw7LQEgE7&_pL#uS8wDEQw-cZ4us8Hg!6K}nX&AWPimp~^21r}# z9hV{4ibDn>o?_WW@X84lwbKrav;X%T5S`34!Vi4O+qpvemdL#?o`Bf9?tj5(b&YGRwg#9QGDF{3g`ST51q-KejyK+M?qAbk}YPZ#}&1OArwTK}YE^>Dr0nU04` zy&=XWE2{Ve(_E{Vt2Fx*KVNEmr~+*IV&n#JKs!F zf5m|m(H7-GIThLA$tv@W<&}U|?)H2<6QA_Mc#%;sm8~QTzN7CAs#=Sc#xnY+7A5k! zR{8yCl>L~_Vn}}c_{aB60{WvsgFc7kmtUSM$-YlP2MGMTKy(lGi*WabSDY7?tw36+ z?_tXYf{S#JQUUtN8hO{%WsM1r#Jx7BE{9S=yF6J;%|-<^EEbr6MNz)|j?EUMuzN%Y z9TRM;z9j`V>3^;GnM+iM)ipjPL7TP(F~}>$1dGP^c?xvynK8*+@8!fW4aw$9yq|3? zpQ45X1xOIvs~Q3{lth<@O`-b8#@`zdSmNscE=WOp_a~6ps(?up%>57iOs(TyDH(@B z-eXo8*fN9m?%7zz+%ss8%J>#Xp;e?YXXu6@*yH+YWTIHS#KGW-LPEnWgKH}$+Q(Ue z$K(yf$*-^d+$g@BxvRvx(a3A8{DR+v8Mgfzz|JSHBuK(cuw8+0Z8r-Z*Nh=ctgFUr z>o~!q9o4D5tK~AZwQvj|u*9dvHFHEQI4zR@ylU81rf0X?xXH;?j(1Z1QDK$6m%1v=0tGxQ2arsOT>p zeKdeS>xmRx%tz|3yKpCt@W)Pj;-#i6l^nMBVYu_BK>G}Wc~}W3^=K-1wXBE0#f@n=8tDiy{cY{tb zx70z10ni0j?8=3`5~X2X4H;$j&v9pxEnmv-lR2T)!+1va>e(p4vp&YC*c5I+ij%ii zH15W>0pO{5TJ`f8K5EVe+77Fa%SV{WXrs|`vVsR5UilAp>e4p5l*TkYJJ5+W zZ$SIBMsUus`r*yS==RK5=G7il7<1A)R9E~dKd0*9im28N-ny-u3CtYu*;(omix&#& zm_xdf^TxGdmO>g2`pxXZ=w^z0C?;)vsfFxsjDTHwj<$P>muIU3oO8abLxaMU;rwVg zJQixISr)tg)n`fgx-dflwk@m9j$#K*reJ-4rpPlb=^jFZRNZo2{~{-+XC=slIN`sZ zV*h=Fy2l^%Xw`MO%22t*x;rl=t>v$imW=GiNMkC9nNDiZ>7ze>MiDSMf^k3QnpEX| zi6)R5ax~nnvoO`!K>Juw5`^ZJCPdhxcU%MY&!37RXn` zD$ZiKg4+q~lJk+v{7hBX7$x6Dxy$Z(3?8HMj&$4IVtLHlqXn}fioQ1`los#Vs&}S_ zP{7aI5N&Dd=Swy!|2F6iS{d{!gpUejf;yK?%x$Ml-iYKGWkDbyKpUBqEptsRp20k7 z?#EpoFWd%Y^n%{(O2rK{sbkDWhK+`JP}60z&{E`vX_naY?`!P5cP&ZC`0CgO&;6TJ z8k6veN0N)=yJkY+JDiH$I^2y|0)o2nY|nP5x4WFye{`f;G~3LEJ+u=|)dd5yyD!Q+ zjlt4AWFc8mcF>;@zj=DUtp}BItD1JCrq@3ogQcNf1Pq8i0xyQq|3%$@}ponK&(nr1h)dNck#z>Xj z()m@D_a?jLyv^reHwJ60ji`h}@Lik4j+D!_aTJa$ZQkFRYb@#%(H|>R+9r7=+tHeK&*x;IJAjkQ|E+#J#oW z%8vcpA%Syv7H7W?NsL_@HJL3OgBa{vD7Y#n7M8=LgNU5fMR&&aa1y{tmhIJ(MeoX+ z6N7!{b=^G-vMD-@Urt3_jZsZk(w*F&%IgNBgH0m6IB^n2+DHtFv)oR9g!T*vSN2&B zdTs>JjS0Z26Gs0|Zpxt#IjUY%KhMAC+nT_kZ zDJL?rRspe!D^Z=Czf)1yj5uz2OE{M(*b5ZVe(>9NOyvvEY`50g!M;r^P9yud;~W(< zc1OBOQBoJ^U_*kN2X4>DBK$gw$nx-$JHBPKs+ z%Glc$awMTn(*hDm5pj0LFi=^9@*h)-Yo;yl5c)EZKW{~{%ghOd^Q||};-Gs5qn6E? z4DMsCjwN8AFUp*Qqy>%wj-&(jErF9Ay0O5;_j5icLyDOep1Nba{-!ynf=U;(*uylI zn2U|UGqyYfgZ#S0X=hX53Cq!+QQE6O-Itrq}VVN5)NVt){2$r z-1k+s3(#q`nM;c&Mft?$Z2BENN(Fa7G2keNRGGWC0Wc~YmzT7xO7w9hZxeV2CzM1( zW}J2y#jPGKkv4<^mT2R{-s&YSIaM~kmpdWF*g05oL>SacmwnTIz++|GQQTPq> z^HFy!=-R~;-W5IyXd8y#qABPP`{XhNTbA?R5yok5UJ@P*2MNqp;U&^f?AcYl^C@cp_ z6>8+eyv(aI0HY;Ey@4}4&?!xpoh;u=nPU&T{Qjqj?Rgl9CV5j5({ZgP^mP}lI;wnoJ*h&nQmbi|h}d9e)E z-fACA5GzxbglqFMT90j0#xRs?VjHjPs+GIs?yW@4KQGoGvd#o|A(&brlETpAS{gD0 zBXe_3RzX!scpv{aM(cBKP)WOSVnHwf=Za*cqxSvWu*@FOsXsX}YhD<&SNJ90Yp3#4 zuk>N3bHV$jAyiH+2d?BH;{5U~fwW0`I8t0Op+|!Q0K5je?5#9#y*$uxKTF5rH$71s za}my!G21u4SI3UuQE!j3W&tq~jCmfM6j*~j53(#0pM9*c3sWn0BGIK%k2cUw$I$dO zWW=z?Xhw0~*@R>2M{Lp;rv@fOwh-L)mpAnk6N+ObF79&pvYuAZBU3;&?&R9j6OZG) z_U-^UUTz>4290qc>>Mh4cN$x3;y`y)W&p*Be62%- zual@>3m6mm&+RA@NQf&3g+&cNmxll(iS~*{udRUH25VR18`A#;?7VsN5_Aw_5WE2m zUM5hPog`kL);O0mI=^}-l~4J+@yUy2H3HXP|C6Qy7-q|%(gOkD4`tEdG!k?-^u0~! z?Z{HNeGE)~)ch0mVglfPXNTR?e)bgku#&ng*x(?yRJ>_ses0}Q&LECJ`hu{)_F(*O zK(~oC(U#BPFP*YpNH5Ddn160Ov3EC*Mv~ax_J-<6X&`+u!QDC>nn0;<&)>muii#HC z=@lJf*!%&0(&JzMpNB92z@YZ{S#oAINUG1gYg~KwE&qpi7PN2ia7q_8bRhKoas?9t zyv6U;Qc^FB!_6EBp~Cs!p;xfa{Q|m)p2^$K@Uku;p#DjXarK&C{0WUGx)k^C%-9Dn*J#7B?1d$M!DcePBJ8Wr>9!~&Wr+#J*mTg-lI8vF??dlh zghg!d^^xhU&ZmZ~NlGQItq6xF0a&2N_P{9#F( zWl>9A(Fqzjr==^AGx~_g?Y&_;>=}7wa-0NGHHky;7|x%;@2)}f5p@&qmKwA?95|6; zwPW?_VQNtzR`2Q;MM5sbn7syTTK<0F!88HTWHkA{gdD~^Y2W;sLqS)B{$CsJBZ}Kak?{OOL1Y|2%xsXJ$^U#B&qmDN;ZyXSvR%Zl#WAA$Wu_} zzNi8HI?hl+OJUhl?Eph%h1Ko11v~`LG*l%ZZ)fj==tQ~2`45HH=xN*EC?*OV z=||-hTNz&Hs5UM$5xn)P`a(z@>%J|~`^I`vJFT3z7g3xFYi~m?>(LTz zC|KHI2gqGIYv+=Thoh{vYGP}hzoiKcvuGnZL9fk}?dZfnDEC~(TQ=`t<>cugO$y8+ zPVB_1qh}K8>QW*Z#*{;Kdvbu<+Asc<*Sq5l{%?Nh(oV7<7xsR(XnpSy+H|QHvmzOl zWpN8R7zS&0+jMO&+TS+%d3cU}c=l`)+$&4Cn^eoR7UyaJz-_{nnPEzzgVK2;KDtG6 z65vCI%&58IOR@XG5>Aa>qKSQGQB z1zvC6MmPc5(rpml7k=O^Q%+#KtazfKKP0-0?=ttvA@t#X$8;Idr@PZX@>j<1D?yD_ zNIPhDUye(w5@OHF=*g>YMF%(}CxBD4zzQhF;7=x0Zn4$d5I}+jy~(j|jpv4$p!$DU z$!Cz_R2ty6uRzLp(I2wU#9u_tujdAyS8tF+><-#||g-{GlY8K!e& z_@A24wf&3ZH)zCFbMO7ck+s}nbtCP<^xe!qy1W*EWgy5~PdI)>@G4%_tq>#rNBB#< zWsO}iC_x`UyWLl=wPkLoin|XlrPgz0AJ*w&L73Wp?psW9Xa&Tlb!cI z+&NTqtGI)OZNJDDW>MzX(M+7abgAL+Ogn?=vmRee3@WL z=`CSiE@#!*u}R1YQptd_6e>-I3mS-<7K5e(nN6Cl@c#W@r8~8u=mG>KzKJpG?3wM- zKmHlNX7%I1?#X(>x7d`_mP8c6>|xWJxgAgsQihfRQjBfyi^Bz`{sl9Q;%>>9jzHih z#sa(PUbtBeBa!a0LJ5oht4XT@R-toggSkMrPqEFIk4~h|77sRuXSgLR@0*`ol}5b> zlY(N(ww0Of*JI4g8gqV^n1r=uzmuNfgI;eQ$_8q3JpF=V#!=rmBjE>N5jNnewE4G0a=r`yy|uZ@)`&5>N-Xirk~VMsvKt0!mjSW0;?J zS4D7J+z~~&rGc++A;Awh5O5*dc7%2@jlGY<>HU>?DRj_=<!b3tdcqBEmc~&>m#4Hac{IW%K-R_?PsjF&MB&=av%8ZS#xJz7N(r%H zkv^{UugHk&Sk#583t~HI9S%x-7vHEOn&+uAGc8wLb08fHYMu;SZ<*&K8X>$E!^}c; zL>I2AVuCS&{tiezOZn;n%e7#F3{`jB)q}kA*(`djyf_AkvEb=-NOepP?{-#&sk}vP zvqgX2W(KkS_iBb+X{>@r~#?Kz063##ui`vxna^ZsKx7|Sc&q$!{Wjte=DI9I@E zShO*BPsXY{3!i8pG7)Eo8KG2L#mi}YWC_g@fg(xbSG*aaAw4E#j)9lol6NT*g zvo#vaiZBEq`hl3{=iEYs4dxf>%3Nr35Ab38^4gsX%gtI~KENF8{2cBRu%b<4%(Pz( z7fSoB9h=UI`Vo*6dlEH=7Pac4!%o&-azTodN$qTtlFw7v@3rFQXUjvguzJSaX>pYF za<=v_RU#PP4cCs(zdmFAKsBMWN+qx7BIb>xBI4Ctn&OpIM?Op=N!YotmnnxCSdATM z4j<84i!7ediH%_bThTwQH0q;2C^*we2WOkaa_U<$0_HN0cH0o7%T1;0p*ZoL0qR!` zPyH8ja0vONKHSP zs_vcnE%WM*7Rvs0Qq7MM|gtkZMFZFw-ft;k@+p zG~udc2+feuUY4#WT6FsG%tN)Me-Pu&7%dZol8_c#&egl2N_wF1((fM*QZTC*8r|GOW<^6ATAxGR0N8boIGmia~{w^4k* zbjVdV1Z7(Osw{y#DcEH5E&e~1Dd3%$eDPQZ`tyAz0N7c}+hDUyW8NY8)RH!NVQzApG-4`nHy_2V@ z_Z5eMv^x`0)F_M_u1gMmGW-McaiB4)6t*%I7dyTW2ZtdQ-tAw{A@|5;Tq@@wT`mY> zo9ZF0@G9tC?ZX`<)*;3wacGDftxJ3cIm>s#O~1yKe%*r_o4{|XApDfRRIe|`!u;Xf z=KLf9apAw|B~VTxXtmvSZlXTf$gxCAR=?Gu*AI+h#R7M%MB>4#>$D;j|4J*d)O$h)!gn)6h;4=(mU$!e?Lp^8)(!and> zQLVkT!RRH7#g>^P)J_Ct2-#rygZxh(`)l%TN0$2GH|KD8zfhMebxTwp>Y_>mH8F)g zFJ&sW^Xei0ShT1T#yQGz(dp_R3HI!Ovful-hbfut_$k2n5_1(#nn}Q6C#Ylw3W?kq zkz@l@8TycAH@Vnm7qF^(+%-h z^kVURiS2E=~4}FWn^dHZTN zq1LynN%SKy+YprEO>&?T?pfp+#m#DvF^JcZLjci{aA9=f8&``L&maRB7NsRDGv6+P zZYPKOi>J@MgITlH3It+i-qHQTfLCuh01u@JKdNUBn(K0IL?bcSWPs0S)N%q0>ts5& znT6Glc>V^e{@f1`cG0HJwCYQ28?k2mMg0Egzkiak1@J?(+Cpl8pMXw;o?Mb_)fkK z%D%DD)t<6i?UKJF71DR7F@>8BfCFyqx^0fNGtVRw!HJ30p7O>m$|baSfd+vKzwL1e zFU+(oE)~Szr6qG+hlv#y3yk1hhdRUSv7ms|2iyUqn2nVINQBrll}(K@8JAEJKN?PI zh25t|w4w7t9Gp6tES^ry(<9QlXlHbKZCV&wa^>6Q>$jHkBSI%nmK|liyVR*+SlNfW#5?wK-2&kY&uh)W=g4+D1XWmr$QEG04Pr-Q3 z*EgKlO?EB8OK zQK1`;N}G{9>bNu}Ylysy zAE=O^v;vR;uQ9;`l-HgI%-^GVa))a=Kvi^n1gUC-efL8zZL-NWXL;yU573X!x1-8kjkW$SAi*U^ zPlK=0!I8n$B6UNf;t~SOZFAzWZ*`pW1BujEIc;VNu(DZLoJ!R7sEcS;xs!yuZwvG! z-GX1cpNFhK0dCS<2F7)VwJXlmGK?Dog@q6pHn8Boie{f|=qY^Npr|)klhW3P_j}-M z^f9`AR(x7d5UItHtdgD|fpe2|;zZxU4t@3Tq5J`w&G9Z5hf6N|2*ec>@-Sp#jf5;Y zQqrZGZr8Qw9txcneK~|%t0WmQtPY6In_Z3ZWmr^Z93H?05rJbi?q40$tZZ#{K^QA+ z5ps3i$0|uF4EZNc`WTL$uTf_wz{Wt))=)_^WejzfX^L>)ni3*4tJlRz3nAxBa;r9b z_)m9^;s z_;Q@=1>I5J?aA&`2zM(g8wOYzCMSyQTC*^1o8*(Q@&^&>3oEQ5< z0xP8SpO{*)W(OE(kf8lI=S@(N)A6Xn%q4rN(D8}Y zF{GPN=QWxC-vgi`p;jrmxtmI3HqtjA6Hi?EVOai7R+lJ~;5GME8$gMh`rg4L+WE#% zic@YZRpC(^(`9b7F!K;kaL(%h3J+sV%b80Rw@Xfp8Sy-hHKyH4FMuhqNhfJ1+SXoP z#-lGmmNs`eDsRFTTTembfJ_N9U!msTUc4NU$JVFZR}rQ_$p5PJh}bFN;OM|Oph~_a zwP}L5698cTo!pkmnfbfZ-2bi!cje(u#{^UZTKano3|G(JRMP)VRH6DiV8gPj|i z3_`g4i1BcsQ+<9%h;|XuPFhwk9^-pe*AmS%V??ufklox2Z=>v5aEoV6Tk($C zXw6fx>9U^XO^8o_9h7RUQ7Q@nioUoMDv-Fr>mK7TjtWdVqEFxydDrVi0_Z)^0?Fiz z+4v*!DzT}*7=(`@x8gua!_W>osl%6FKxhGDULRrjugA=FV*Y6|ljSw~^5!iHJBVTu z;vf*li@~qyq^1H>%F16A1hY7ioz4UTgam<>IW_!#yhoH)G>iO^0;CcQK z)SH6ssYTzb`mqd{z>h>=aTPF=tXYFVBal|{i}fRjIjQ|CVSgV3a)W-Nv%tHTDfxn- z*e0WLv6arfx|71>QEhv_`o#_bv%Nt`u5M zFIy2u^Q%dfvPd`_gTKk<*kpIUjH-}gt+P@?R|gvttH${g_0v@aMXS-F0^6D+tRm`^ zOW(K+rRHzNb#2S`=K*-KI5!>aD(fheif${!zPP!UFLocU+)v+%mZ7ppUcLF4vy4nBSDEZvJ)3*X$ z0Ozo1$Wy?iVWBly5YStCIIHU#OXmWPT@w%a5<)2n{grq6^uXF5-yXqywB>s>oK@=j+JEF63W zx+gGI3i^-!=+?BKxon)l(F~wwyZPD(XjG!iqM<@Et7itJ=OsUrkjYewHsVsT4Kg!s zMsJY_Zg)f_iF;u){fCnSr&H_S44<|J_CJNw1g9pp1a(w+<49uGS$msppm!At^=g zyBFLIV)Una%?MkxYdoGi=VG%C2Q`vt(+gh%c7m-#@aG(2D8WN4Ecx{l&^YI`_OW(@ zVArtW`DLk|5#FCa!@rf^P}2SJg5D{)s7r*Fbgo;$$2F+T|1m|B&)ONBT?1YYXjUD0 z;wKYKAPKdyGS6mih}2~%pe#BHe4u_1-cM@M2-9kQ!m8i8@=)d4O_CV*!q3$C#57|X zDRg-|KCC3E1Z2I|68d~U(mBA z&fD~8s>EGw;4id6;N+?MBH75VQBzj-@MXTs{zSXTz=Zl=I_@w1g>$Obu1$ipBJNZw zp5x7R#f5e+Rub_IxyR0NW6%OOYytM~`o~n)DG|6UOAj&F60>OxXcTO$^oX@bms1mk zzRPpPLN$`Z)hE?#N$l`H2s^hDm(Jh8aECqWOdb3QGo17l&PSEx0nQ=}jr^M;~I0rjH z<2Qaa%hR~l{*P&&TaE=?7Lkip_q74XzeyxUd(&11{WEWVgM3h`bWp!*#8iDNrs}29R_`$@0CqJA!aX-4ZjCYVGKJKeSe~JF`9({vVED84L$X6@;Zn+<;b; zM*egcV2-$fd-ukLCYZ}G1Z&W@(PN$3*D8qqVn^GIe$7lj)w8#zGc-x@IT?cF}2^5!_iX*tTy=JKZ|XmJX02g22$3E_Bp8` z*C^(do8|89Y~W)CeuqiYs?r9?pAPyLS?dOm5i;thV2aUv|A}D+wGno{N|tPe5z_XS z@9$l0pzHGAUDeXNy7prel`%*-2t<@B1VDp5<9C3j92tNyV>I&@NLC1E-3Kae1ovnh z{7aKrDtGqG4NA=~#{v2^2lrZ7yd2-xmuP_i<64fseI>|8N#JyVdY7 zjcj`Re?op>2BIX~f<6%Gco1AbHoL`4vi9UwhuPCR-vL&JXqeEPao3}jn+^^Tn*T4| ziEBx;phZ(_1q40QRzqWZT@X+gx9JUY14pjjTmOeO{ZFGQx}Xy8yFG~0i8=oipY&X7 zagn6N2h*hE!R zZw4h8zvz{&lu7=-A%N;OGn;c+_WFmY~UM?tnkc;G_&TH{&UkWI<}o z|L9^+tCs|?@T(Fke^@KZ&;7Sh1pV_&CMc-l{o%AT!+j|?NUR_fx2m0e5lMLQKQuD1BFcTwN`8Tk|H zpn~g(*^S&JD|M0EjgvKv=qlFp-e-&m>I`#f^zy^cLhx*y z;{V2hmJ~@SQ%FJUonfuDM*?~;pGyQ7g$0Yeb9&!;`C;KBne$azIMiC~ZWnVmYNCh6 z#^_jV0MQq5gBph+qjeHJIvDv47pv}rijJXbU*k*m;*pw$eJUv!r`Z~>dspqS3)_39 ze-&N$Z7Z?cA2@0xwNRx`LocF&24KFXdpo@nD+}y@i3mT8QALX0qs6j)VIJDlE#i|fbr!mJH z+}8*WzZG)rKs{BJb-EHuE;WQtckZ_Dl!};xD{Oqg6|yliI9YeXP$={tQNWo43h3+`d$bF4Eu)h z;OLK(HdLcKUV_W9{853POhfmcs{jInGVvs@d%)a@L%BaY2!GC-Ps#JVX`fIgX*3@KMb z@I8Yd($Fg2PHtGB4#K{fPh^fchrdQWOOe%dEzhRis-R3IA2mQ>Fl1t5?Q4LZqoG!y zAes8_Q%>SuNB(<(FYhMWIY30GtFRb>#l0kE1t@T{R zWTq?zn$>M0iGR)4++=`R*iUW!!aTj@!U6dA;oNc>vkE}b2_4l2U#|`(%3M&0rXpNY z%gH>u7H7a|DDGoD>RTRkk)t`BU0Okx>=L&@#rV!>(F3{6`^?_=q`z$rjGLk&2Vcq9 z+=fu1d+_HCfcJA~6+?ZE^8K7;h+4B`kayg*Fh;J%Itn$%-wWOVkV`w@GcWtpb zN{nJ99kvVL&=^7&N|J~SUaTb@QC{)^w-&s98y|Ffq7R`}rD0G1GaUVQPrc}y=w@8TI}96GS>>z7s7 zwoFqDi=DTC$?G8MK|{7S?dMK~VS5Rw9Qb>xCOWWTP~GCgfUptf^>)`qFis!5qYII+b6p)iyZ9Jju-WR%e-UipD&k_4&Q8`VHwVdk~!=V zoL^KA6J9bv7X!Ar7nB=zwZ7YfnosX)W#2r|y5m58x1Hs!-=zt;vwwFA>59|!q*Nvx zGaL#`0Ex?`WNi)6(DO#e4&+_0>q*q*@<(T;SEw)w<=b~(p%8o}1xJ(A+bE#4M_#>S zo{d3L;Z1Nuro+dWXWR2sJixMj>q!K)_^Ilf+Z$eGu83(9qHV>~zu|zvrch=(=>^2N zRpWIyB?9%}xB&4@JlDqEr~dASGz(+&Vp6#vQ&*?=+6*mF9jmV9roY{b3 zi2}ngSx~a&|66z9C)+^JWXg;2mj`Sg~~~sE5{qTr1=mAv1>pl}IwkJv>q{ zrn^)O9Jko4p-sQDwidz4q|vp^0R*oA_U$}?)lgOXPMRdQXpM@!sqa&mX+G;DG7>Xl z6;6~k9w%WELgVOC+5(miLz!OZ9}2;(yH_YoA58lC=|56vXs0I)8 z-t}lH{vY<9D(qvB=>9l!OKZvKqmYX#YkJrh0x^13eQ@>ej|OD`)wgVf)Q_13_}-a} z>R~x%_0w>s6Fm&*xrj14U|ex zD@x+mH^Hc;e5!Efv`S>Nf2eFhH$zL!zAyt{`Fp zJeoOjf}e~!V}42M2oCv|g$%r8XopwY=;Q`Jy+h_O*Da5WgeV|&n{_#n!doF*|IoTQ z*_o{p);_q!n}Si0=x00R4qj7il*r+%)q)^z0e4^kI9oh45mc5*?p-U}v%NSKq*x$E z5mb-l6rIh>(YP$|+#S__p3WY3|IVhtCh(7Qvwh$p$Y0%});E8hL~O6TGKebFAzSz6 zsz^9yiONAeuLef*@XkB184r~IGTzLjM=Qx?YX33rJ1e8BZ-|P7s!Elyw=#wJ8jM5l zv0z4xZ2`b?!UergwTiHxiSsE2Q`Zqq$hLti^S=@X+}MFhL_CekCjqOe$^YX+gZ%-^K}GjKMz1Hw-X|0))X>16JaDCqPJ?fJhMcp$J8eg&?faI~ z=PK8RyhUPhcO(0E_9@p(jkrAa>);dHg@|avA&ik&Mt{nPQd^QGGG*--RsrdgtG))T5xVOM%K9yOz2BQq;}#dkQm+%(I7itZRg0 zcTmNv?$wxjq4A;sgGK1}@C-h8I-KL@NLa8YU8pL*nHS!Sw?BrQV;AIF{&%4w-54qV zwjl%RZt51ADUILk>N;lR!2GRWTBkL=D6$IiKHzCLbg#~gYnxt*o*B7YFj+#;NUB{T zV-~MbI)wn;F$t;0Jp3VB^LQH?Uo63(Ju+fTMIjOXzc9-LBEH~?d)|PjRx_r@_4cfB zWUx767bsPb3Wz;9!P!&nP;m3>44>ccUXg0;Fn9BIO*cmV`^N$DsL0aNJl4kpCtC-c z-5tY$ACG3g*XQvfYQ$lKwqPV(DUw_mh4z5(?x-KE&sZerLOX`SooOW<2EEl&!218A zjA>f&Zo-}WDZL#05tDPG|8+%V&r^_5GT7((_jLj^#}Vw)X7(+E81Iup_J#mc$SS&c z30|kAwRCr%Wxm2+iU7f07Xh{)idc>P_T2rLOg^tRe?{bp#qR5zKE%K%BTY+xy;L!T zC`?5clIVU3$?8R0fB_&bBq^nY_JaW}cD*?HD)N+m{Cz8aT`jV6X(hTCZH2GFe;K@d zGPfRGilPX;m=@yQ*%_ZYiEVub7r~zQ6>HTB;!Ud_lTmwu?+W(^H;<~l+E0Qbf%o9W zn|UQgcP+Fcm3G;66!ND%%x)!^txb%Es$iS&?FHy)C{DlaNryL6E*3omRTpvUkUd6Q zXChGPa5%uuV>Ez$F3W@H`@`kaP|Z=PvgL|!4EvM zYoAQ6%`PVo`1V<$23-u*mtgIJQ{`;lyE>=+6m(pFzl2d*aOwDhEpyVbM zfKA<0nLrpFwNB-?K%euHp}HilvD(=GYELGbeqtt6+q8CZY>npaTnyu7UZbqxF%+%m z7x?Z`c~{vZksY;pq~@3dQ<=%qDEt6mmP;*f{JITkzyDGi4DNwnVuFxk1vNl zu8zF*tW8Tj35(Y>gCk3PM1mLF+Q+iqhVn?DCYj?P7ViL27+3W@=~L8@p)Nswemx~X z#jh=&MK>RHtJ&`pnC+{2nT7j6wC#8ZW+C$L=}r0md+RZ`$lFE&cVX?+i-J*077j&` zczaLJaeR`wB)xhsmbxE>Ix4Cn8Q2er`yn}2^#^r8hwe7`7mZyED5pVS9-1iXx{2%m zjM~%fbG8IV_>g4r&HtY~cRSsqa;9E#bJ^pM8WrecdqG)-s~oEl<9)?#;Z}AH%Oavr zdd36m_Ip^0H74>bjH{Z@@UoeRAd&1yLE+Tf#CJw_BeZYJ+H_(sK|Lz?sQ#3GRtrcT zdm!0@C)x%&hUYuYVT0&Vy(=Tck6sRNpk|HFLz6z= z^!$ERMO-njoW`{AZ9F&ERU~1Ul}zt5BBe&;7 z5(k#^xxFl^!VLxaF22B*GKWHoVFs73^Qi_I3Sr%vG0AVEA@rl!h*p;dmS|n9ICJL} zsGPXYdFE{E!H@)rd@@730!8)&*Rt}(p-hBu)c`s<$?LAhzWZSscAVs2`b~3mBN_Q3 zzqBMvCIK#dax9J>7z7%mdj(!oyQ{S(?^oXra%Lv_X?-~PTnUg2ycg47Zy~8~oTRPS zMXp>+T{LI;pPE@{D|88wQg)rteGVZSAnzEjfHM>jq()6*AQ{ww3Q446lE+Nz+K z{J_xWF}RjNDJZ~lm0R3>f?ZE)!-YyK?{#`N`|=F*Y%Q_902+)+m z5hNF#<+kr*j9k;R)^SdBwU_lb{l1sH6);i$f|$w9f$?yV#fQs&48!k%>aA8HtFi<9 zx0_|@ABC+kY5$q;Y7gIg{UGx(Wo8*?ojO%fhPVdZNXXHA*3%V&ga9e|@YP@pXix;z zXIH^Xex%EmyFHmFbQc~QF`$jhbBW4YlO58fcJ*3XF*j^u-{efOR!pR|m<3lsN)_TK z;Rk9ncaTff~16n@n`AO=?421mp)_PfM``mVwdqQ@q8H&9mzCsVqODU=g5tU^GZ zPV!lWgca7YPX#*f)@Pup6LD@Qxuy1EKCyeLoRJeJ5I%PKzHWT+Z&;7Tp>qjkh3(XK z+Lcp?(h=4Og7+#zX4^gev!l{2GFq}W=N37$DY{T@Eb}Q!!m5Wd#tr^efFNzuDCI6{ z>{nRR_#);w*Kc}3j8uCYou+k)jD19goo?wM3TS^9MVn64EAH1-A1=Dd>5kc+>v`oM zHa5-3HZAyl*L2`bP`ex!wrXmFO@B(6gDTT(1AZx00a}<8RSmuvFT)kX@$}A!Ef~lx zYRnE^*~89~sxg6iyY9#g1(=f~J|17dPTYWZ=(mtmW4Sx9YUJu^I5YkW~leceor4E2{xwR(pBg z5n&%dji+|xnKDM7S-{5Pa)u8Yi7vLFxYN&4k=~MD5ta6zK;uy^i^1R^AEXv33AP`3 zt_ABrb(pN&u_R26i8UK$hHu|*BouWxc`FW}KOrF26r=xvO^E2epe2t}5ye?f&7aKS zuS@gNAHNYvo@}dBPTf)feb2;fV`NZHZ+|x@dWBu<8Nm4v&X+1Zl1p_OLyAttI@_=o z5L;5n!S3nmjxWMt@9NJoQJ(xY`?t6()DzFoRV$dRQwl02qPHrlDJ}f?Ki5*^VAh2J z1A5gOh&orCVxF!#*>|XjJ0NM#G(B11^=U>ZYvl7~TPUC%>6Xs|$&6<*?)`?nkjhzfVAaup6ZndNGTi+H}NfDfu9RtdW{sGbSSqMPqE!1ZN}Oi#2snjv#{Bhj9Ce_dE#U!2VD zs-84Pr`YR)Pa!qiY8mBU3Bp~L-b^b6Le+cW zkst%{eae=@vd1_mh2IF~;J}YtF4&C?U!&ZcSdM2qnw{>N<1=+npY3l8ZGHRUp81W{Lt77I8|qUGMQSw1hT*Uze+<;lX0vTNgyZ=dMjyUnAZlFKc>P`8BnD%&3 zm>?EPQ94CoOsIF9D80Nlb=5mKSMpMuV3+F+dUK)lswb@{F}1~Ab#%L{=TdE`mqE` z!$sN(YXw7R2j!C!y0Zo52*yC{tTdpr`!^FS5`-5rXK-VZZ64<@CTX(S;wuJNR z9KbuQ zOoFBM?l1k!-%gRodH>@7x+B;>!+UXHY)DiO|uDc(nY5+cOy`Hq7@D6?ks|ayf|sDD}BvxjaJ4XF(EGk z<$&WO@!O8PS98gk9k5oX)(pEM+q5ksi)ljl^pAe^t8}gQH~Tr&-SiMQ@JqKbD9f(jjA1|Wr5jgQgTJ0l;2UvDf)lcfrqmf(@IU)j< zkjI%gQQA1G!wZI#vZGT3e9RK65=(M(cz$pj-13z_H?~`{wS9#IL;lNi4sRD|7K=HN zuUgV+=xU3|29k?%LJ+wt0LmVhx;;!wzpz`(2}0aBO3Fh~cm@Ximd$9Z>;RIv3o{~L zdgcd4+h{tzJeRdyg3~-v{UhpQlvZAL?H`*Spkw}Z*L!|EZDAx3b+Y~LU6lq zcbOuw=JP&L{zkzpQ(Si})(M;tI6@4^_UT41D-A65BPKwg9$%>e_2-V!Y$sGi>%f#2 zfn4R_&hzdeC^CXZaV8ZL{m1LbDRHJ%+*-pi_^L;0RYIQBhn7WbNjbQo5BgC%nD3v5 ztq>QUbh>!kUXCsuBjL#$(-Ym!i=S_X$m39v{Gh&S2b<{Ak0EAXPu(Y)Vyt?LduUOO zlj8#3Ivg3RU>%Zg={@U$rv-^i{f#e$eP^)gW~}x&GZEbdUTUjgdrz+vS|qB)8P><_ zK!TNWK5y2*nxvJwnjd2`w#24x11awwg?%by&(*vqgW$L2!PJKhu;>E}|5?YM+luf{ zyrR+q{HN-;hERZe`eH5twyt*%na(>(jjbmi5Ydb*!l~Y6ju*bu!Mzi6Tt_IJXMGSitBKa-KEAOUY<3 zlS)xzK<8MN&3kt^dNZ}?TH{sXFFZ-P<6j#ol8p38$kw*`PyYa!0*4T0!f0}Wx{u!# zMJMla7?%s3Hl?r+KYF-}cjLKwu304l*cF-r=kfhF44hBD!l1vf#~30^+HBJ2LzY~2 zz!$0O-orig4A~fgvfNsB8YT7fFD99ygfzWPjy;~vXH!*|1_@EL2p+K)Df6D{8{ zo71_b-SO=K!Ip(x2ouJmY6Tc>u9TuATS6q{QqDD832qu&Yq{shnXbj&D#eC1CaatK zK)AvgE#CGz|Ew6N+pjqXShXz%hPizU)Zt#J2y2VbINFLUAo;0w=tR`yq@~)WjHM*! zUm-fh6)dCEkrMg&7$Dpf(;zu_kF@f@OGy!f?+ggNO=(V`m`mi)d<@&NCtqU9uoY&) zvnIk2yQkcZSkfuU8bQUbOTOK8$sPg{1^A*_wLA6A2eTL4Lg?c`+#xi(y%Gb+`eDrL zeFN6h_2fIOqlF4|&hJTJZTcR#b#s;rxGii}@{2%Bu1SmK9_x4zzpk?Q9@0gT_3hVd z4?yq>Fss)%2i`ZXfH|(ossV)b#{mK%hYUTBJQPgajAEB>TWZkgSzr5wyHZt@WG3K)f-UA>}UtnHz3}ntu-)k}zaizhA_8cb) z^^#`#20hsU)9<}BRuKoqpVZZOB|~z(P6}0O!$q=B|S zFmM8b+OXEg=K#~RpC2T6xnzJ04OeNvf0oO$v%^tvqnjf-C6tKTV9KlKOU+V#N{PWmVj}F)ys(fNXA>Ryc0e| zWZ*Qs4i*b(M1cK_`pQl71+aH#G0`WpU;jriBgu`^uNL{r+c;uFC(KW3@ORWsm!d@T zhPw{TgP5l4&10+b!`#DL~|MHi`&M0U}C1-Ca)R02Br=;RO_l6<^`$`bA3P&hw zuyGIh*mRHoxj((FsixAZ)X7P*m4;qVx&)p|8iD z(D8C_)p;@oO?`$2t?=G;-ecC1EjPvNAE~|MH@Ba{qJ^k0d5sg}bL`Q37?U}|z?sDU zB_ca^5XF3R2L}6&@f>H+_Lrw`qa!zh1uB24DwZ-Wk{IgnBeWl^oz}fiBRJCPp!;n|**>?Te=uErX}5n# zNVTRaRq{z0i&4#zqmZo5;W(%=k!sQ8DeQQ7q$S<`a_v2_-es1v9jhl-ai1l5R+VvT z?H+1>vWEU7w9AzSvf7*G3uELP(%HUNh>B9Y_9%dFlJqpr-qD$)Obbs@Zvg%Om{37i zmVR25fdR4sKkdCK@5P7x?-?+)?-~Cp?5s`spK>p5D{G4DdS8wz5_Vl%rQv-o&fGm{ zL*qCRYE|74rKGXd%a9_B4s=LhYy8Uk9a(o}wC=^En)|E+WK?GMzcq z{v+w`=j^l)D@K?z7zcSNTFi&F%YD)^+20vgY#@;yCcL!YRp(ysxGn?*MErb5XoPxy zE)q)CwZxd*UM$@Ck-D}$R$U~dx$M!oyLGD;D(7zxJS0XIhlhu!+EDXO@xUY_XY}#- zN=VsQ0u#DV3K+2=Tj$|^!d6EA7y|*<>AW;I`BK#MF%j_?Y*pQ0a?&6-ys$=yD3>0nQ;>N}Ji@MJJuSn&G-1kR@!LxiXH6q{ zqtqbbm1h#jkp%%ktIe)mNj-#fEvWk!con7ws zv>P}U2`%ZW>9az*)YV6|v}iG<#3bvaBsf(rX-@jFtJCUjXoju9M8cfjX*>s8s&Ieo zu@}R@VpxYkvCY4D3?D58-MAf8qD)#V%x*oH4%7W4wd<{23I$_eJKYe<_f>7MOJ%9| zmiqBMd-7t=4pR_OdwIy-@ta7*&I7>838tb&z{{!F(DB?iBnd`z=m})+;l>3byX@J`f40mKi@FgAD3Z1parP z9MHSEbJ~J(;Ti+aekf5kJiEfRRZISsa4J}+L0XJ3>F0>(iWip?B)(@6jYo<$bFyJs zgAYKS%ugM?U{<`<`P^CdC@`)f|PO|1>J9ng48L3aCBHZ7zEk~R0W zq_k%4D84s`!~Zq1SYu-HYS;y9WVgf@n^W7eNW_R?Yg8M6V=cFMC>O2n%0 zdaU=~1ONI}%w&V)T;4N(%?8H5u$RJRvvxXzX-yW#BI^|d^8YG08xGjLIZ`$f>=e|R zYZ5ac|CF0E=ic9ycwY@}S91{^JexBGqmZEf!Oqh%TV5mFHeUzqTYcl7{2Z{Y?3O^L zKip;(xEk;Zh$Z(a>Bx?m+`?^;R@3FL5Oa}I>5%}r+0N%%-CkL9`EGQ)Gon|Rv=MHw zidD^c6G{)4M%O0*X~NN`$O@`Ds^D^D?5~b2fx?|i0!7cv(sotbhtTp!HVEPXwDUK^ z@LJ^e{<2C+6lgDTu_@zJ!69BRhp3Y&4Nd@#A)CqO%|FGTv>*N$enhu7MWY5VVp_&I z$0GoKEo{mk`Ky)nam!uBfX7y?r-wBWf0|UB=jfaV^82Cazt2Ja^w)m-%gP{Dr8&@M zk%PClk7dxqI|_2D&GiDOSYlX~a?_*=hHU8etL>wTmzi2kH0&7GUDR>IVf8Uqa@{H3 zvZ7^)vmdh1OhPENpA4ClbBrx`fcjzZfpV)=m~>r*o37Z%1zb$~JMkXIZl{UHLeS=q zN28_ZWM231(~^$A7+p`?9Zd~N4dfeAJ4JHg`cx1Pc|X;bbE&!_%^K3Pdvvv(l*9XK zbV{U0BlAMn8n#hE&h;QspVd^ATPYl&*%aNDrRri%S$$H)DR4ECy*8v=ypIy6W>ST#_ zq^>%!|F&WVk~Mwz-1}y4>H6)^j|TPK+$XWWD9q4t*0(M0Z2XVDJ8Ebj(fv&Q?pi&iYR)yw1N_2|d4;l%Mt zP-ZQ}AZN`Z3^sk0!z04ck`Bf7r}+cWd~#ufm`xBIP}_Eo)1jA?DBHcS+bOT9(oM7c z+q!TSeB<+dZQO!-kp7ewFhG&JlS-eaIJN#gNpwber9num6KLx9%>3wyxb*W z>fl12u9hc2610fUFQXP|^}N=Cupc;lo7Vbrk7Wo^TkE6uq87zPTjTw)1?}P_1m6DC zsOuDBUsLgtU>ob@Guwuy@m`HDQz5g-8F6a z{+Mex$Vdxa%AHOg1x2++Fw`E8?wC6arc#&&`->CwayTmV(I51V;6BY2wr$o*aj+d-bC4Y(b3ZgGw3D>V0httzi)MbGp zoQp>B=e<9(?Vz*apYztGrTVhI`e$PJu{H?rK24vHqUYS?;~p^$F@%`cxfE_fcv%w5 zb;ZjbX8yWlV1HhDAg_xoPyf~dKk+Ritrm6x7zzd)>t*3`iYv0$&jM4KjT3KBe>hDR zM)dNAYGe`W2dD9MQ00AkjDiErQ~$emNDvyZ!yYQ53r zADBs=C}od+A8bNJyjAWyUF>qpD7LiMYh2K;J%E&!;spGTPg=4kql2c^!zJGXR?FsN zst=B47d_-sa&OYORgNhdlJ?yXE9 zIF@5Tpkr687CnrbIjH%=WlOjmGXz#r*Z^v)xJnS zk~Sfcf7xcs#K**go~pQ@)UCM#->zqlrHLm**57Kj4aVI7JhK^ku}c%TPJ(j;H9hH! z|Fa|~CGiNx;o7Y_=rZ^hIeB68y*_qlTksKrMY48&g7_5%3io=yCenS z+@jOmEiOo-IuSjxP}hk@rioz|+wugFK4+}T-@^=CR08Y&Sy7r0q9!waxx<_-(^Y9b z?d-SN>QEbr&5P{D`jr`8dTw5__s@g!<0<4TaZs|lS|pP(9}Ln7n4!PlWFiKd4Z$Dl zf=TD1(pNCT2MEqDvVNq79MihJIvxarm!(=S+!obhu~@vPxZW-x=z;f3%QK?1=|U=x<5GeeIv5 zOEZ|lPv)K>6;suL6fonUaEs<8tDJS%fZOYMXoT_fXoho7ca;b9Et$3m-b3vV860OT zgCo6)cC+mk`7K3%5PrO_;xAS}d|bQ3QswQo(!gaIjP##|BDzXJYT{~^Yd!w{8QO#`3Rny5wjQQd4J(rG+4Gtj_Vs){XFDBc zlNA?{?C1ylf}2^Lpry^U56ZkR2&Vv0P09RDGIja9N>s9)p$Orso<$+lp z)r+l}9eM&&|1;jwDreqvwlSVuivIm+q}nw2mnt3{{P!=Z^?ZV)*o{k9P>S8q}5--=M1d`wkI)Le9n9IqcX*rPMu z0NhonDd1@c7cmD<0&aPG($+(U>kSV)7IV zR005QAL5HpdKk=G|MHWaZ3kt1-ZzAtaajj<%M%Go1P*eIt^;!a=KS9got4;hkA|`z@55=Aw9G@rY+v7R{2+X4? zjJwXoKs0MEpSU$1seQgA_j~<=Zd?Ql$P*+eU{L36Z#B9uiLHiV(UxOw8aJ4-5BEQ{ zr*4IW{gI%eB1~2I8jdZ{`%V-|?wVD3X1U%* zf3Sb)a}&4<-iWy=K5gJ~ z?*C|jMvPj~B42c=0<-z@tW_2^g8BvvDueN%BzjCzt!8P7h5uJl)~e!szF%#>(Z9`< zDT&=hs1lje*O)j9{YQGEVNe`52X7BEGNBVmB6%(e2c^>FXE!dwJ(c5{IEeGP-&O90ndL0_fUs;VAvT`py{fx!O$jrBp zKd3CfQL9tb3@h%|O~P2>E1_nB>NojtD$w(UxOV4?py@g<21I6 zgY!p0Ky-;)10@Hbza5uvj>2{5zDWKtc!a}Jth9rw+Z`h1ntCZ`EH%Jfqv@xJHZeP) zg&YG&zNVY49(X)DJr3~(v( zq9I~~N-5OUzy7{}@w*m^gdpm?5?;k{qbP@CGl_5zAU>MY*RQbeeiB9p{_6Uku3SMt zdIeWa-z3r+ntveO9W7<7F!`rM;)?shGQ4geoR0n2IXM{P8ND(P7y(h}^0)%3WEr93 z$w84j6lcb)rxU?t!U4o+ZQ%*6%s#t9i@8bVUDeNMeLXYlo&8fLhNqR)#ft?m^Oh0k z4<}y1ZrtJY)84Knd$u)}K??CC zoi3A3#o)s=j3*5zq|XDbv(JsEL>QkbIeO?AcqNqFKxPPy*57Icb~ag7Ts-Ne+_X%_ zu59RCGE_WJzY7Q$Fk3M7rdlm@IRznb_(+(uVt3FtTnyKAo8pB=irEx3uyjtRxp2p3Q|Uw=!fC5Jcz5 za7IZ2;?TAFdbk!OSL}fJ&Lq#w;b#QV&Bic0vMekw5`$S4<2FnlQ@&kqc6wQUl#f$7 z1a|xu>ac=)U(v7u)L|!ph0d^UoYKhH$dG@DGhh*_z$b!mf)ITeQWO-zQ86|-843$| z@!Zf!o%EM6zRpbV_Fv^Qh9i;%Sk)3f*pZWYGL}}enb3W$bdK)_HbImKs ze9U*J3RL*JaxZ#4Jjs+_4*nDzrIBuN^1!t(7*Zv+Ug6;Gjp$!-3y|VKt8h$705C_N z_uyfT0w#q>XRm}@l`T)n19E8E{ z%(ihhtnl!wV+}u~oiTtFQX+u$(MO8Koi!Mv3%xrzQixGk!~%r}TH7~@j@Ix2fvQJ) z#v-1yd9-ScdWKV5lmRw~eAO6R*KTL>JTJ;J}W9*sGlOgsNDK2&u4%wr*Y?;;Q(j z$2jHfjM_>%6*y(|By(KsjmxG(J@Vts>|)m$oW&Pa`eFs6&3+gG*anYIz z0yX+H)ApGJS((fq0MO|5V@{e%!- z1Sp(!elP{fmRqVdqD9)3>L^?u>NUvs|8*V{QxH*vO%jE*ad1hXJZ3jw^1+Hmqx;YL zBXRy?;#!e#AUObwVmIL5{fmI-M;&2?HEaYDLGoW;F<~>X_jM7sMldY5PbTtCdy?PA z3f|Mh{QxC~4MmeCx1AYVLrAOmE7=Mq&?aRNyUvmG`YJ8fbtR zdDLnZr_p!ssZ{OV*G~zI@jzDq>AG%lt&WbG0iuDA32ymIzdpqnhO83Il~!1O4KGkV zHg-TnBS96fHMTc+8xh%cek0q=lR!2svJ$Duk!5+bQMD0JNgJD(?+>UO>B{`!`rWAy ztw7$nv`Uv?wVLPkX3w1hc0s_KVmrsVp^N!PgM^O$^jM~t%vIR^OJGvE6>Ev}SO_*= zZ8SjqJ*J7s7k_jl{u!U} z7BZCV-_?`hw(whKas-h~;Ay6b|G8A(_CX^_qNc|CD>Jl2%7dYCR&FL7r*l6O5RcTX zf1929B%1{wcWw9Pa3N8=Z7-h5wFc6RDC&7EqG#njx#v>8Y+8%Go#B=IGx=iR+?7wm~T-A=Lb30lT>+(#3wH;w;b07fq{F4 z*i}z=FZ<|ceR}OVjG93IHMv|FJ0q-_45Q2#b{)&fpgj<_VD(9I*Dl zwXL<+9Xhox7zq?n1^|P(U~72N7RTKt#1Hx^Eaa_t28%*Mb{5BFuD)PXx%9w?US$q-Gv`? zD;v_4%NM}*kVp>DWhLZ6-QCIn{04bkEyBgaS~ff3#v>DUzd`J`+0Oy%A(6Qlbj|Z< z2B<>w1Hx^D`26+?_^4~yE>K_{xaHarvj2EEu?(!Rd9&GWw@J_huBN8Q0Cz+yZFsMR z<|?Zb2O$(0TqC>FGUXvtIHziolV%(}711!s$lz>b6t-1fI6wdk?LjcLw?4RY5y}&% z?I^6>8mW)vUW7A0ozBhq4x+D#*|Miaul#FAu47VEqb`ZY)-obPOE@yeteU$=A|~_- zMK0S-ubSmUU_&e-_iJ&bF-ZrodAV|+%PDO=Gceh=9WM8Z139R^UbeN!EIES2vdof~ z*Kyyz?Wir*luQTzyiCprann{%uxzouUbE*gp`Sy8YjVExMrEVnUu8pkYE<~J`NC@$ z>&6kq)NsqR7R@Yca4*T*Ia=Lc*Wp>j2)p@C=$E*^jHjJ|hv}$*xU>UCsoxj!ifwDb7Y29?Vq$PflU@JdFE|b<%EEKM%n#j^Cv?WRA?699d$~F^hwvBi z62cKa;5YJZVmeGRG>^=JcNX&NYkX;V;T@QR7iQ13c({<){J{_olc#Trj6<$X3&v#G zxulV67**ioCv2*ykxl`%`3Nh141vd$9}Uc_9At=Yh!)tNvKPhKbPb&otp0cT^UyR+ zY{f0~n++Mt9c-l!W4l7wwtK?Ps=nda)JCcq)NIu>z7)s8A)kC!wJ7>U7cR6<{o`Ar-%a#_asdO#-TM*-QaAR)i?&y8i zt;mS7jl1JUPdX_{KNtD53yPQ?WS}UKxsSk~jm88`MtrdnGEy8@IVHzj1*T3#?iq5o z-3UfkeE&>75q%odZD&#$yQmO@SNJ+Nt#~vmxYmN=ZXm^QGFJKd<}~&D^qu7o3*w55 zn;y7z8HJcLkIB>a-%>jPAQ5W&JJK};2gYf^k(Nj{OFZ`blaj}GCpci^VH#bt1cH+nr8ySSoG-H zun3Q)r6@M>Z>d_De6LrL*~ucL-4dWPtjvedA|V1*PjO8ugk&S)>><#%331@Sek)1y>L{v`pnXM*jQz1Y2}~4C=Ck3m|ObYMCMbuqr_nKEgF=m473n+i8o50 zD#80Sx1#O(ai5oexv~KNKLEh7zFmT@N`K;WxO4da{D+?W>;*N&o+SY%rZdLR!g&*z z$&PCfZm!;-5vD0}(7P4J5x(w6$jGDBz73{MjJSt@jqFfY6xzggl@qPrf%&B#YUw|T zIaE66kb;QGk6c&R>q64YS)D6>(zdgr!s}6R=%?Gr4?ftJ&3e*U&gRa(`?zEwf`2}H z4E+@N#Xt&AJf#XRejIKIKKNjB{){NjJpjRC2!K(oS4z8WKO~8KV$5IZYP4R1Gl(F4#wL|4o?>vsA_CR7hyT{tX zhMb&upHzl-={(lHF^iWlO;Zsav92nl9Zt~~-D6sy4<6A^PCu?aGi}>=B>#`JbtN+h z*VTb|MAZyAkg5%#_bT!0S`2V)_U*o>p>4DXos>6^-^AuQwqD1Pd0YVy0Qrg+8>qu{ z^)9O0)SYw^>vVF^39TAfK_qKfk9qIz`vIx7&(1JO=c9aXIKbygmJG4tVeFQyJ7B5E z15HXr@_LgwJ@ROfua+f9x)iIu75Qq77nS_&)){F$B9R@9aA>ZItpcSY2wmc*Wj-1| zyuJ;(tfEVv?0(As43hb5u?~yz3xX)KgrvReOXtSGZOH0ilJ0vB+AY)zR<{(jrZ$Q$ z|0NDz>#dBV{QBFeRben3yU!I3km)(QerRnWkbU@z(EPYWUndq;@p8}h_Au%KGf)-^ zc|on+1V`m#f(Xx%zHQX>9E?m$ssK)HP571%iu`-B+v}}nX{jDk77N1l!cVus61d7g zMRfa;i>`T~+x<)9a^W1J`|(8rqBpf+M|oY%W#T>to&rLNjz`Mx`5to}6o@&z`}ml5 zQL|iF4xl^%I`(U``sR-3hR8%SOROh7o3S3A%+2~FK677D0Z_e)xfZxC4(l5er!!EF zrJCe6_>%j2d)BF!h)Vl#ITPdBh?5(r7B06mA^JmHHF+9yO#=VJ)mv9hOJBD~NpB}ro4MVN209m#}q zH{;jorb|BvOGV}kz7ndmH-nT^cFD`2!z-4pbQC?ITEj2O?SW0=uv<>g{V=KWDB9m4 zQF^7*Ky@U=f?BX9Lbm=X#$K*(0Kb2zp>;m*yy^9QbZ8inSD>)UghL448W9x$k&Alb z1Z&D?nnn4_%Q>^DOddSvXEgvl;rX3i3luAPik909Tb5t@fegIBU&z+ShvY97!RIX8 zv?7xzufl7eUvo&RKjjku!h6BF|r_zWLQDrwlZ+D?MwSPhYH1veVX& z2MYJ0sg?RwnPnFp|9I&dvN7He1kI>7|4Q?Ig}|C6MkySnd3}}EVIY3}t#R#d_Klks z^et?!#Oyv20LCMc3f+2mE*u1r@3zBs+wjxP82;!eXHrF)yIz6tM)q-v044<_eM*{4#mK z51r5Hff939f~f?mLs)zew1UdI#(qEKr2mGkO3;hffZ%H79>x9E8k?@?Pv|rsBUbb%gbjI0NlG%t@o2Qm4un%Hpw{h>wB={ z*l;=>Dn|{hH*d{rY!Sl`IDI$m2E-`)=35y;J1MLAIybwgdpB#=A7CQ2_tG4@n#^f$ zT_D%UycC(cRW+Kc_RKn*<*ro2xObHdrYf&4D!P3qRnp2TxUz?pl5QI+xVFBh^C9dEsm3S9YI1ZH{Mkpg2sM*xruR8;)J@m= zNrxd&kW;Bjlwc$OJ0wuQ7?P+#gbGd>#0gS%tfpX?#A;#e z;=tttN;Xgsd>U=Gi(|GN_)#@Z>3ngfJzSO=KBi~Shn4pD?_XIq(}CuAtZ}Jil_ZKE zvB$|Fa8&<~J+{w>s6rJz15Q^yml~dywIb1z%2V9$bs@AsoMYm2Ofgp^Ug~Er<5Wx@ z<-W2fc<{I&OD8Xz;jbxKEs+ zE8`DyWkEffcM3H;VEX1CE6r-gy`I|q3zm6#FT8l_=74BL;SubYs08FCtbCRsOS16( zz=~2;7=^JAgs%;NYSeORiDZM3(nC5GE}W4$$)SOn$5A!2G`zHZ*_$Jg)p2*=7t@@`0K$IF)zp9W<*I;R+^X@hb1AFj%pSJ>V5nGL*_k-aDE2-KTCa9 zWQQ&^>A+^RR}fYn0xS9kHh#7JL+-wyYe|73X;n zru>3$4|nyg(Xi}ScCK}ZD-|OK3m=sz0?m4bGExU|moX5l*(Y`URA@xy3LT-ipIR#C ztx&>L3ZNE}iO^fVHZxZ=-Z(g|TmI)W|LB-nY;jqvKrvC>q=rVtIGT>*`(h#%B|Ti!^?CkEyK#O& zxau}T>-5n&V&;ZQfOxW+wS%>4VDK)Cw&@v)0cKtVxtb!G;5}ntL-O9+NCL4%abJNG|K|Tw_u~rK1 z9BAZ7OsyVr$6-P`_OoMvSVwjB)pH>&CS{v8ZWqK^LlM115U8wEzQxmJG=*e2&VhG- zBrNqcAnIQtRC^1WQ7+mG!K~d(O#`b;gNR#5YCm7iOP&wHl&1pFaU4e}VY_N)jblEe zLoM2(^{%1-abNo=c<{hgT;v<{jULf#FY7S{_yf1k^vJy7sQCHEi*okrWyd9cc<96w zq@15OS4K|clBS-2r4|<_<9V?vG3$&BPvA zIK2cZqz(lf7}qH_$SI?F$!p)j>@s0!kyxnTD?5!bAYpm;Jb4kcjWY!`8HH^Kba~WF9v5pwJ0N5nCsfeDsMhXuN4IlK7}ZE$ z-;+(wv`SIT8ejHEg8neKJP1F1Qo(6=IPpx0 zTii^a+&b52Cp5F<)EsZe zpq7h(A;m%o?p5b4)O5nnBKk{mx^PMLDlG!zLs8fhm^53(SexNJasmY5eOKHUv z6`70{dB+&2GmW|?{%3!go?d$~8PTJv_GmQn#!!Ej~sHez8H zspcK#zr**S(@)EzM|u;*HM>gtkLc)cORA9#d6%w!7~%F?#XpeU`;5XjX%pyx$UPCf zSSF+ZhML_>Hky)^7fz$$4}uqqOj>gwg#Sr>bp6GB(F3Y_pZ#F`58-2Waqw-SEy8o5 zY-OE_=>%>s@_WE0TNMi-XZQo_AP~r>3&`)&G)|sWoN|h@f4}HiA>@59EAn&_P!j9X z;P63gh`|nIfW39o6pQHj5hzaZIsLE}2dLVSYj2ti5X*W=GuOonoHANOooN8Ckn{L=Q5d#nZ?D^5 z3ftkP(CLbgd#a;1j*j^)>lzB2_m_DagT}(gB<~(imUJZ_$er)Op}Eq3|l+jE=1`>HMXH$FvugyJVMeVfmhPSJRGD;WK;M>79r&yWm>6?p%51d z`ahwHKr0)Rf7u;0qaM`LN!G7uMHd!I7+pobll^q%`Zr8bdxK%ch2_F!oqFWsbXL$% zwD9c9wU@?9!aZ-R?4eix+Hk0&fWr}1M}aFpe^2oH-SyLOc$3 zZk!-AEUVZb9+iz7RDO<4ZT=lzTSl&43jtQ!tfI50DOD15&F~~LiH@Kqv0eIVehlQg z#{Ne&I-4LQC@Ntq>c@QVsuUeV6aXt?7c(q?uJyXnl^mhqi6JjlJD+7W`Yf3TP840R zui@+l@PizKYZQ$vR?{Ox?i7-IbHQLa-dsYTM+&@0T`G!DtK&}9GR5A=Zg?X&(F-89 zwQfkwAWo6$QzRjsDH|1rQspK_J{4?KVStx(X|yBKM~j_SWCN4t--Rh(yojTE?;219_$Lr(J#ZCjraBTVSb zDz1fd5ya0DMM#+!jtp)9n`xV$UwLLwJf)v$Dc6EjBGS3b1eo3HfGOE^7~0(Mv1ZV? zE2H)8P}Aj8385L~?bZx>PLxp2BB(nSlADMUzZ?-v%+-)` zWJ=yf`Q8^a+cw1nM^Jiqxr5p`RyMO5WvBIWfjC`e!6U<~&;;4)mhvO0;@L!m_X|o_ z6QC)5YW7T($4-`S5GI(b2a;?(1}Q1zdcyez#AEQhQWXMOx}M^atdaE|B@rJepQ6Zn8p?`ZIO> zCg1PIm?mcG(W~=nzogMm#`~^kWi1|?+cfe9)-Y3w-k~;=RFbP`PS#e?;M;GF;_sOrL^K8h|-PX6{sL~y(5>hBco40-Jlbn#NfkNpx z^DoufEtzG5Tr}P-Q^znY?!8n4&&Br*edaYv^UsT!*r6Zy+MGGx#-P{L}SC6h;m{oFxhwf72`aN=SEKW zZ>r8qtz6C}%Ma6QHS9F{m!8HA3H2UH(6N;Wnq*+u6&0jL<@ll5Odv5o>4V?SIkb)R zY9ktH*FDszpEYm3U%aG430=jc90JYiO@=&2Fk5GTqSIqe8?7N@T#0;en5u**)8pbP zEw(U|G?)fyJ@VXd@57#*=4lvbEtH5XdZD%@%iO=&W}+?W#M^GVOOh8iK)?d*AKK6M zVmjhwOZIH7`9Kq5s;QGr2c7D>*u~G-DWa3=ZvKmYV~{nSG0Ql1 zXs@X1uW zCA4zooK6WP^~{tDCbRUMM;nri&7xZ8uP~{> za<~QO(mkPT+X(`_qo{cOGn6%MPT-=DOmYsqnxUXAr!hb8k8jd9RZUAAVU`Yb^hfrP zY<;~^T%gTVyQQ+Ij0@T=Cy+0rm+4v_0dFqY3PZFQzYRMkXTj)!`EEDvU?N}V>sQ3< zIFeuZX*;NOT2`*DjuW;AsMIqRQ(G7` zqoJ-gYrNbF9EdcPEs60oOIrnA?OqOaGe3o&YT&=ap*yie1ffI5I(y|&mAHquHn&{( zianLi>XHz$PR9AjPnV&fCcL?A^!)EP4LiTEqA;{|Zxj6s6;Cj3lwkt+2?aP2&-ZRmUcR9?!AhI5~ivh3FW9$4s=cm-+@N_!wXgVNmP=A?3 z36-1Lp&F=^5}1;Riz_fV_~5B<4xi~ixi`XjGWZes#lF@LPTD+$$t2tj7?S6V&&-Io zsq0AFQh58`A0POEpSksy7i|^+H$sTcpns^hap_>7z)z##iAH$%c$AxzByptOge4Rv z@mUtIlNJkdTi4=5aR(2-qYtNuCf}`bD^Tt$(G2J+u6w!#P&F zDg*w*^J?R0XJFy`4|g2j+h3n7Dfw9>)DPd=!C3bn2vQiIlWOoh=ekbdNz#p(jc|Tr zLJg3z%;hP#);0X&Ai9JM7T7RI+{W_RSKvj#RyXASH8Xas(wm_WijNwW@me=J` z0cQMWE8*`SaYX-7g3KD#eT@hLt*j~EvEVKYteLhRt&G&<3d9N_r&!t&1~ojOgn^&J*Go9RFUwOh0;AVXpC%C2mUB8^Q-Uy+l0;q67RK5*edZbPE{8?uuElk(=pJAu@G2K z)++2#&yEr zKB?oO;lG_Fi3@|5sGK9M(;g@gWDhZlEm)pbyI7M(dL!U!%Tx`z%*b9pEA{?_Xip1+ zm9-#?<>TLh0a+Z{Nl4-a&_abuLSRlPb_&53^Kf7g+-Q)&n`az|^)%VGxQjs1LV3P^ zKa+wQSQK$w)h1)&z93Nb>H`-?HlI8YuUWhsw3fd0ny z+@$qt{u~L=N`ZA{8*`dm3Y{@&xt1!H)+fUo%HSoWvTKASeWRkW)rc)yS}HKmh8YVp-trCwuRBXQpswNtl1vLY4m zP=(jg9m!Uzajp6tbERc^RQOOT$&DP)p|Aq6t+%o+oYVpj_yZLkt@B2Tfdo;cE;cN! zOjJVtp~L6r(I#(pp7MVk&Lto?L*|FebnQh?c$FSBK(9)}&)MTt*F=0l$D#lq0Uj#ENNi=ZAhOQM;bFo zQh|9L$!Ql`*CP4g97Fh3i+*y8o-EEVR$wr5eFtbnzYZ@qAfq~y{U)^!l&}^G?1X_y z8190yq4ty&F!#0`3Q~I5g~+uF`Ju9j#m3_63BPVd`~Kejd~v3gF8xi9vC9GTddS$1 zd7o6?qF8KbUnEi}Iqky2K|``3jFCM~tF!p(meH**byXv>O z{$wf>S3l$f`AcEqKYsSiVcf{`Ahi($q2v-4GPd8FhuR~<6|g>*(b=%KwO$(`!HcHZ zXIIA^NKUNMDYNaI(Tp$h?_9Ttmaq+gmOpmIQA%E~nnvLYDFRjau111rY$<*#)bbEfVB}R5+EnW-Djt4=VY5LD^@4{v=xufN zD#6QOXvK?jkC}LOGvb%8%6WnIjxanj(15hR9`hO z8T4q^-01fk-^fyM82R6ddU5Gz_(WOH84#FI+3LxI<;{5muIQV%ks+B-=#|>u0~FP3 z_rT!Hg>ZbCL6{9LW@+2QW&N}Ns>#><(n|}i@paQYhi)|TvmRQi>eo$=oj`O6_J+_+ ztKr^jrRE$O^>W$>mw3jJEa4g1u<#lU^M+=E9<(htt8_kqOShiMYhOPFZ0RO{Ub8;- z0Pf1rPkERJWF53cJ9(fj)t_#G*McP_UYD_VwvaXXA5MIjbvKs}pYT-w?jrxd+q_K! z53qzupz~y`(Et@alLszkJBQADlKFnOLbh!>&ZaMZwS6Z&O0Fw1**Y7Wp-k11CqNT= z%=b^!;v(g~Tu}LWbK4LdJ3D)(VW#d~%7vBYju;*0*IR{@5E!^QxxtGx^e0P{;dc(T ze;VbiqN-^R%Q!7+I~IYO&n$EONqAuQ#QR&9=%kE}DRh;^fCz~9+8&m>idQ`oK#HZo zl;_kS|wxB0x zqy7=#2jK&3L-oKk9fDxlkwr%dSE#(Mwi$g=e}5Vls<#t{D-ToqZIb7sRezu?dcagR zN6{K^&23iWH9vcBGNoICiDWAU(VGTv*Syi2PF+=5VLr$`|M%yk7q#TtlLs~xYe}$@ zPI0-Kk6BY=pX-ld zE`LmR9JrxPpvt48Ip>=FMz>6P4Aw*XAKA3-Q~$(A@5V*NY}phh?XjFMw%Q}LwNS|= zvHn7Zxlm)vo5FmQ^KM7mm4Zsz365%L<}m$~t>m88UCg&wyuwqz&7{Wl6+I&uBN3ti z)%dNtFkn}uo8J66P)d9c$FhA-OLOA?LuNZlI}G-oS5_{79rqXbyaihWQtLChU&OnC z(M~udK1fK&lXJ|GLUDBe?`Iqw6(n^8lvz5}j}<90Me)9WYiQsCZeY^dV|`xQs^t`z z(hSEmchQ?ywiLWKb>B9H>ZQheSt~&Uu(%5B+CaYkxQZx&Y*U9=i0hDF5LED0=QDF6 z`&-YnDYZKEvwh4@&LoBjfnJZHL(p?czv_}HEx5^&dY(LdWkCr+YW4mG#1vAumR+6v zz5s*aO+6Uj>&Uei2g}MkJBcXk-`>*NrM?^HyG#XfphRGrwll@c#V)BKZnw;yG6AOo z9TG8n?WW^JjlI2DEkeR0He{lzz=_$nZ%v>Js~lx^+hTJ1uH9zV1*nb+L|+sWQ+Ef^+3}_qF<9m`}%Q4 zaD}a&(V#PyV$mkeY-dufQG;>Ln~vR{IG?ipUOPrhX9X+ee;~oOnBlc_KNpV;cQRu# zJn~@HO8^}mDR5#cQ*9!s--ChVGFZ>s86fwniDm1Uqh!XS61lK;1C^Eq&nmUFTTl3W zuv@85k0EZZP*s(Gwe)p1U?XYLgu$uWWoSizum@&$^>b!%wEWk3Qugv)qo67T=fK+ zU&W)!wXg5Or)v@;$g3g|v-0HxsT8%_z3TSH$*Mp%RbqZ0NloJzM>bJVHNv@Tdi=HS zXMC4)cl1|5#5OA*0aYgA$*!4+ zBvt|T>(fl;Wxl679~aHTa;fRWw1 zZ4h((+x?(olxb3tz2sHUqLSYQm8$4Gcs0k_V=ugFP>uEoy)qzi1B0inyPlY~_GRnMoJa2<)FM3gupvl*c!hAjCHM7Kv6NdWZTh~AtsB z`CerG-{0?dwlSBflLH&){!#Xmu^k9naqBOU^$PLNrhyH;XF4cz>>Q;4$IG9s>ExK0 zAP?(qVuBOhhaFb*f~0U5sIFFwbJQxYjI2eEG< zs?qyt-yuosV3!w}z|kwqkBl0w-t{40c+n!-28LqCndrwmHQz!+QueO)2%=P7K+4Y$h)fycch6NCYfvf{Lqhf^q*0>HdpGd7D z)TG6_4}VX$+q?Jrg)ZqN_*-^CV4NK@cJg?Kd$5T{1|ShSP|(nvr_@aZ;wqj0CUK5q zXb&R66*UVV%vB9sWV_d8Z1S|(*xg3#*va7`hV>HQeUEP7C&wdp&&{)LC%?*Lz;^+D zicQ}BpLCSz83;ujOdiFS@SyEL9|U6F(;ggz*L)%z@Wiu1459 z7xa?Hr*ngP&QYUbVrKv{LpPF07J&+5p8$mx+F=}>C~F^;fWL?u-l5lL{srCFA9aOp z3`&p34qmF>E$#vwh-mTqQ>?a~S6YNhye) zjNRzwaECQPA@JM|l*Xm4H?(REf(s0h#Ig#;w)`XN4jHacFNGscFe~lBPhVk?OC4wa z)+I-|nT9IWJkkM|wJtZ6Zcjop!6B802y>Qlq+3#@f?)yBA#+6p@!v~GGsK6Rc-vH~ z53F7fKBe2=SYzCjsr3fMp)Abc9c0G4JMVv_Qe%}FRFGU-*X0|gbpKE?94(q-wEM(q z;KiZ2`GU*0?t-sv%W#PuEv$kLZRQrn^{ygM)(b!e#C;2>!ae&T{JxrJ2-v+gX+MFj zFMKf;G`S?gAtJ7l{$CLfa>&d?m4*lc$^+XiueSzv*X8U2TK^iAIi#jlSmpsl0B0Hx zxhMB1M!Ab2WB+3od3+h;nGZjXaHB*TvIo`cMl*+LlKb&Mz4 z%^Kr01Z4#VZb{%)YAJ=gq6BeeDa|v$@NMDf8^N6PqmtK!%KQDkb*hSl;@g)tuS|vl zv8->PnV=!T8cZjH@p~R52Img*;&;KV%3YA-dXKom61Fn>1K{UeOL)2_y0TVG)IAB1 zk61JaUml3E;j7(bC{*kp;jCyZ5@GlL=Xi#yiVX}Uck3ZgI|WCBKeQtHd}m?ucP1|x z8(G`#kS$4*(28k=Ctv*j1r-m=#F%M1HY6yl9Z}Y)ZsulV`Iy`@BkV?xbIZeq(V{Es zTjXdlIz}U^absJCwr<%Pvs7z3SHDB$t$$b$LjEs1P+E@jdXk6ze1u<;Z|&uDd>Z(D z8XywQ3n^&xkaBkfI&5;7YI_g|>WfBD@Ng1|O@6V@Op8dYTtNs{*F-!5!8rB)7IdCm zA#25X6UVU!IrJqFgv`$cOnGU?Ie93vmm?Hku#|k2yaqRF;I~n;0oJsBCf?Y`$=Ub+ zK0w4)kE&l%l9&Rcdee{39=k_}FQ|XRUlKETmze7dfLR*yipl13itQoXUjEiN`4kW< zr#Q>uVSL?I`;A%2z~>VtdCsf`K1ZO43JI&bTpbpXv*7Yfrr{znpn*bQ1k9I=seDhu z<9Tb*V7wHAE&p%SJiUD+I(Cp9DRUamr1hWKLS8sh<(A7vUpDlMn7BGR5wY$XmUBry zYi&C|&?j7UH~mmQBVYzJnmj=`TuU-g z6_d3v5lY=0gfGCKKJu;BJPdYkIb`C=Aaa5R4Ury$+fxz{SwZ{mU3=$d5QXz~XVgb< zWxyF$F{yy$IYOKtFnHT>#dYA`lh!1`z8peB44HlGJNt zy#BJHP=L^Pe?4F|C>Gy06qw2XXm_bX*?T>6dCP8lY)SZFO@C>zFH0T8t zt6$Y+Ed2D|!G^w0K$B-B9spXKJ&J&gfb55em%n)^659pip#*t9<61)f)3FwuHiCiB zVzlO_jam`b%d!|A{f(}FrX($i7!|C&$1mUt1wOl($zp|WRgxXKIGgb?&Ha5B5JUMi zvhNTKQ(rDJHLAnI4^;%CyD-$-Zz?csPs;YMM&%{$uUBaCYt` zNz+zl%+3#0{2yT`y&&`N6*o;8`i}K*VKp0&Wu}8_zE++JF8E>MthnepDoPez0uAbI z5Giti2$$ur_K_D-GOgVw;gWkAhc8^7T&Rnp1hY40$HWdq95*;AN(WmisaLA5NX_c0 zKo$D+DD`q{T4pPTRLHZOqGVP?jY=DS`anqe_<9?lE9mEv6#vhFnr<74(UGXJ_h{NURbZh&l)9wk#POPN)@$fg5Ca0q!fjno) zwrX>)O}qNlh-%*w$Sv2H@)|0KrM_IWyQ+XjRTO9mCGTK6v_!G@VYo!kAV_31sx@|& z)b9wQBAXMHN;#7kTn4mNR*#%`939Z-I=0FE7soil(5E0EO+-;8P1G-mUKX6JIFnfs zW&O#716kz9Lnh|zze>21GyN6xrtaIPWAzmM-XTizLq!QSM-#IK!a}lWAX>LE*L{Rp z0WpO>4my5lrH{^aO49Mj&%CJ5`f=@h%rjyL;PVb4WH){^Y zWvsC2SGqn^@kCZ=hJx@Q*0@jQOGxjm7XLKWsHFE5-0E`yf+s^UfJyffkx`-MC_7AM zjVDOA4VmBJ4AVRcPxjGv_4zbC4aZ(mQ3GZH9n9S(hDw<;za!SBbc|B87^8fJI|^#0 z%`8!ZKT_~~5Xv*9%9r zu?N1d4&2jVEiZ5x?oC{NQtvQEXN~Y=b77C&_V`yH^jHc^^^M5^F}#A3f6Hp6GeXVz z4_lBB8PF$#KFG0G;S>dT5kq>b&iYqlJb_@*yuk1{3QjURWVsRez|=7Q&BVjDSh+F) zS4h1-No;RvrpY3TL{-`uFY=OLv?fU&;3~T(HBb)NCCRzeYzbB!#i1@iIbKut^Mm!t z93dmzg*IeWmZjo7@_VqglB&ljzxhB*o^#i(VN`X%iP?jAikV&`0E18t%mpmy8fGpY z_vG6KORWQePg0*3Eh7;+e9b{#^3Tqh#6aaFAgXs`F7OFV#=liUmY z1^N2nG4-}^RLo;=lgm4<>x;2A3HQ$PxW+bpgp$2DuUcn(n!nOA%(Nil z9)qGDGB<$OD`lE*%71^G>pLB?1})tjfyCrQM_%uH9TvFogL`$hCW7jbRvyghs86j48 z9N#gjV`={mvW!;LKF<%}#wJ|I3Dw!sGAE*`v6@Sb)mzY0U@IbI;{=j6fIaZxZy*>| zp^6$_Pd0d`!|K3=Sbw315v0vB?J;ZX?ap|6^v4+9*0VD~(~>QC3m65Fq&QL$Y8*%P50ubs*PGkXnlcuuea-m?Y zc9=NZR-=I@XE6`Cp031k+*v7k)0U#>17-qxH&lYxEf9O)`|FDCV}UFQ3esNpGkNVl zzytv#ua=9SFtdY(lYBa7oYa#tX^f;X%t=UccX7ltk1kytPADi zt^58712dzO@qyuO8xq&;%=Yf|dJX#LN93}(d(4G*k^ZQv3u;OHK;G(DjW#P3xozlL zb-Ztr0}ta^q@jz&FvikmfST>snT@Og+!cRld%>V^)RyEuhZL?y*{nHdFd>!1kSAjT zvwfgeJC3*p{YbX!F=(`M!h=~WUhlrjT6;dlzL@7WUGKy_C>DrUKFvZ?!P~BAK zgrP=HelXo%wPfb9c&1hS>gQxv3uvyu^tj<&#sWZpZ~Du2Ok-4&PJhXgd9o}ySHdX5 zFT5`S-0ffCY&TLgGVTy4p%(=%)j5cWmwkavm9|V^Z8v4U1Vzr z=BEUN{pzi>Ti`k>EHN@V>zjj3EjKwtIA(IHllG~<*|eGDe`dRLq@9+&zG|iTQnaX2 zmri;>ek7DtB|GQKjLE}%`VN-a>ZLUpMB&afq{XpeU2(QvH2@hD7*62ostkiP@`0c- zo|;Isv}F^i&W}Q*fQ`D-ImC4$045j)oD}y8gq!$A!OJ`VcC67Ab`fHK()7LQ%?yeO zhloVp_M-)+g$!6F&4xTJTa)}y;lVs02H`q!9y-bRQ6jb)j^4yLHbu(3Gok{@&7H$0 zaBfsG@D}Qozt1dW=Qa8jG<)udCGLo0b=Lv@c%N$zd>ytMh9tESm;HKlo^z8*RCi79f2&IC1zXBNjqSiG>~;d!XY=pIk|xrYg(K1$6TN<3u{lP3c}T);qa3l?1R33pBG>(3eV^{cthqV3lKQwe zjXC1loU?+v6%Y0Qn`i22^QRs%o#d96aYR$IHo1DyTlL&%V)Q52LGv1Zr&Bi|HoUso zcup!c{&-cf>*bi`e2f&Vg@-bK4|G&}c{f!v&>3Lxau{#OgM4lKRY7ITk8 ztLzo@oCTHaLQ@yc2|B|#Zto5tX}IgIlN!P#Jg7{eHitSWh5PNlh3{%hF4qxPvfr-d z*3Z%V+>(L`v3m+H=q_B&=_0$B{VS=VAic78cPhTN;k&?l4#sum29eF#))cgE438Z; z{dSp+5ZLbMHbIW@Qd?YLaNQ|6t*97GP))wr}*6Yk}R-e-${RctbB`Ws_dG)=3KQvWSd0phhPAdv9!-qSn zi!sM(?A=E?6nS885(}c`c=O}7Ei}aHxy5mFM054tKBq*4;-j zSONdZB8yarI?5VEmV|mv)nBRXQrvF6e;we?Jv8P|0b`<3Mv9P(L4?E}5Wgi_&=m+7 zJz0bKt_ZNU$9AP9{|rL88%KFr|LHA}@Ww}e!TUjX&(qBGhvmd2 z-jyL1m}BT8pVV_99u$tNcP%k~#r}cGvA6?iwUjoJuP~QB@AyI;OCgxj$5qzD1(&)1 zqdq?wHm)sF>clh&Z9U_dC=qc1QGbM0Idj^%9GnMt#T;cSzIFeSI zZ^0WGT-2kP^#@q%Ucjkeycn>L6hq&GW?J?i1g9WPTD_+f4HoQ_NR}n~;k@6wFG3}H zE6_NX7i3tWHU0}9x}n_7N3~GRUePPilT6H@hN1xlP)PUi((8NK>O<^2Up=LbZ(vmaIJKQl#yl!av(K6>ovq12t08EHuBu zTmKBi8X_3))U8c!1w@G@aWfw>V2b0<58Pjje_DyG;0_cQU4$(p_=^Q0TX@-Ety9B~ zzvFtS#y7<4QXg7p5%?6Zmn3s>jlwbrhF{EIay6pZL)^*oe0{O=j3mUaSMe#tUYkR} zM)1}4FZc%T9_<`9WIA#TZ$@PkLdcum?Wz2Szbq*& z=-k$V6meMP8YB_g;B?#0@0zZL7N#`luJ05b1D%OLCeD69NgsHu@;<*0xzXj)UzyrMVawZM>j$a-PxAl_5c83g$R%&;55jqtCL}{I zWLEeo*uzdYSZB#bdd<@z1S$9Rn_D=#y6;CKh@l`QMy@^nkr}I$bo1VRT>+mm`#R>n z9^Juh9Ja|Y1LPzK_wc;q*p{&vY@kkzp(alYnTtK~)(TmN@W{PuyHxIdpbrp9>hXuE zxu>*;X>AzFP}=>*mid5(s_h~0@?8M`KLEg5XfKxl->gGId!^C1@VCx*t|*o7gXP93 zRr@yQM|tI6H&__w#GCxqTv`?+6bGu*ht_jc6Bx@g4!*6LV700v=PzPYmTvPGW3~Ga zgQja-#{5(nc0`Jor8Q+}ffrgqhWf!i^Nd9Jkj+b6@k%WXl0n%v78_iN-@D4Dl~w?z z{Z#zn2>w)sVhdXu4J!#6Fx=r*aAQP-9IwFQq74FezMteZ5_gS6804N=Jl06A1D$Vx zRsqvv$1v6OL@K@!dyeA_t+kIOIl>zOS#yIvbKrZhMT)QNAqY@)1P0LR5;Y>&#ETU; zAhaUYI^b^B)bK4=JL#``0rIQy?=4?Q>?c>($|!iBp;t9ifWwh%5Ih=8u}xr1+oRTA zVCWlro5xS@*3{h4f=r|x+HG>1UXiKYjQ8R_wt3Y}Y)ok5*V}<|1G2zsHAA-C69v3L z*!M+purMbF(*xO^bw_o6PlV@;UlBGoMK!U34(r#*ZBN4oVo#nqUJx!4NrVG_N*XF9 zruhFz2e1c~bHYuDZLqVXl^j}0!;v2et7&`yX8O$>rp5TwFQcl@zg4dozvw~5m68{r z1I@_2?plKB_$2LQ(t+k_YkCJ}eW-|0+q%&-8i$sw0l%)irR1**LWb&*bu!e9F%2Jy ziqHIORY$t_A>yJbUU^&DU*d;6tz3Wmc!BTAJ)A&rk@43}O0HjKaR#35gvYnePM1y~ zV1(q&6->B4oETK&J}-tv80D+K+Tv@sY+taL!XpYndiI?nY~#24oXrjI(oo@snr0#u z(0hnBm$35W#1m#BzY;N>@$j5AGkGj(iTt2Y_5UaZ7QvTtyZQQaC`j{!ROFEdMd0yW0>?;JH9j=`?3- zNa|H$3YN}0-C%khTxhhz^oP83Dcf&{9c;$5&u0vVLU--Tt(7{q1@z0Pl@wf|;2LID z`{B7Uj@7`>_mZU2LF9G2!vBop!M)}=@E%imq(_;Si%G-?IH`$2JyH^U_P0>^9KUjs zp=nJVU`!7?4wr3aEvq^9DNFyPis|LUkM-1#Hd_~lx>C3|>VKO|83vY11;vgIxG;y3 zpw6w2<)M%+6@`r%X+)t#vV4@m0e3-jo!uYh)1n;BVFm1NtrQriS{tzon{&EK%;2!( zEZC0nR_`MoWLr%2q|4MnHUpFb#h%+|uw zTky`TZl1@~eQ@!Tjqeca4x{~q=KKbjK}kGIEe9{EuAlH!7{ISPT1v2@9x=BZt9@q$ z5|&cQKC3Ll%0uvHr94NOMRoTQ`UxYtb;0IQgfgzDR%#)i1ymWLTa!t%T;c`e3H=H^ zYOVa=zqaR!YFVv@9LX?ecArZvlgC!b!}nH=*f{d=qOsdu^B#}9{a3Gs84y$Cz69Me zcEy@)Jd#9R=oUrg+(>Prp2iJ1#t!0_R5bsPp`sG}u}c;SWcm_#+#(_(`YlU3o zr`stLGe6Px)3Lr*0?2B3y$pLuqfoOVRnmqk5BW946=Mf3R)$imj-U;|yX4Kb_YVO! zc1n+~SQlqGiy2ssT+#c5I2Vu+%i15583cJgvdIQ7!8J*0E7nO1GGa;g6lRhg>VcH<3+F(vb5vF$bE1Op`h+?aEi#t%`Zuex@vMQWv zcd_qO7ndx44kT>1Y@G~qp`IjL{&K4``@rUz0?V3Ip`^~v<=W1Z0tvLR?=FJAzejBk zD4ef?s?n|VDkwG8U0?=uA{huOEM_sA&J z=smbFcV+-38h+7ZOC59)B0O?m-NvXkxn@>J8N`@uqH8*UEF=XN$w}O)4am;Pxi}5a zIWmMRo4h{%AlM(Y&6Y^r^7>eBj9u;9k*)&NS`}+7uDT>Rw{5q>5%m| zQH1LDRm6~q4~X`QU9rcIl2|wW$-zu5deIHQA!YWbOG^pzooVXnd08g{UY|7+K&uKJ z%>O-@;+X{{8bcqf3T7Hoo@F9vGDMoMF61rtmT5x8E7g}PUa)yQ0A_tiMx&iuBG=lj zE?Ur4p|$+M?35@`il()08JF5)9meEml3ena5FwV^l)pkbE#}Xc+#3iRgMt0rZ^&B^ z2uKw};M}3lGPF*L4Jlyox*GT${$u%^qbbkD{>iFXTJWIF?=cp7KUHLBi<#gtB78k3 zEOAwb({|?_l;Pu8m-lf0e$EvCq7YxkJ=J>#_JSq0IGk=d9?BR$b~evkZtyqzKsQ}^ z6m|e3E((ADD5NtH6XzS*B7X)@TqG;@!~l;SeyH~#WES(ES7p}_X%~0S+Giirw(N^)KMgs*fVmE3n$oglL8xB`U&mXF zRorJyxZ1#LiykEP{K=ccA4pwn(xzh_Q$`e3M}7-Y$ck!v00vbJodkzMG%=~!=Z?>Q zhCoFh3$2*`1L&!VKm%a4Wfk~gX&a+NzQKZpCSefu6`#n~_ksoBNv3jhDIX-{pacyn zUe`wtvNT#;JC=~=ZUJJd;>Lw;Fg9v$nJ+z}!4!7W~+i4_5z zZtd>e3Ocu&#GA!0r8uda0W2U-9sT;#m*3_UzjFU+Yfv0lxEA|~1NZi3c(19=7yj6M zDy|uq1E(U(La|yhsH0vW~Dl zi^o$&Jf!qy(ZADzHRH`i=P>ybay@gJAZ$9VwsI33mUgR(V(ZicDIrwPtdQ(ZW(2*ZgzM;#F~=@L3;P%j!)ujXNEW3R() z)DAB0!Hqd0RaG{4pIW}yQ^VHXjW>i04bc=pzCt8%QR{t3!oFyrz9bJq;+`Z@!>v;k zjf%}Y6?}U`YaTylE!NYOuVykt-bD*pf977CGS1`MJ>qMYIx>)AvGmyeto|vKBc_`E z=f*!sN&}*MEA2iwlRW5m*x3+)=Dl}SZ>g6)Hi8vzJ7tPxR=3c0qaJSXU1bBn%$$C4 zcsJoL=NEn*FEsME8(Bem{)h;~g(%i+ySE@|>R5R!ta{X6znZsnk2WLOs6ciffuw(g zXF4b2zs8MG3-4Ta=tPl~6bnWyL_raw`|?zZBt|+wtm6Eu1-Zq5CWeh@Y>go!-mK{# zzB5n1xU?74?_1A#iiEX>4Hy4bJ5gjE`!G0WSmnz3D7|M42I$#x3!UkD7i5Rc_Y9mx zM)()1E9&A~NM~B8Lg`_~jsiwG@=q@veU|>XhUM@_jPEh`$X!wtA;9B_J>)b_*6Ec7PUc=Gw!UZMp#tjUZ=3 zFMs=5hzgVa(1~uyzI3W>=rWg0HbHq&EhOT^OLWP6kD2P$ggCFTpWs0f1RMDVMb9G97)W ziPyfn4!DLh8~znh@t~4^2ny5j6!M82ehom_DE|6#V46g&w{|}a@DI4V`T~9%3A4_A z6pS**Oh3IsyG|V=N7e2f-n9crTU((|D+MN&Vg63eF2}^%={{45HtnZakGHaqYGTn) zTJE(IyZ2Cc%3;GAwi;}ONvqQ<@Y6*YflQHi^WcG8iNEb@_#exzFp()F|0_k6?eSdLO}afGqW+w@{v@p;!nL~TwqT>XARVB{ z79z!!y|939lCJ4YZ^oP*(k9a&-7PRLwrksmP2aLeVOiRzjHoENkAn4PymD6ht{Lg+ zRVXV1zddzc7A*m1-ju&kSe@ZM$ac|K$Ltut4uVlT8T%jnUesWPsLPwSBue3%X7ZGe ztdM(AGOtJR;2M9MP|xQtg~K~=UI~YI#5jFpj*|6+(+7c<6E7-otEdwOQ*re z895bKA|GpkIkC#I(6Mt79;hVtpc)1~_>63j(5nDN7Y4v{!(Wq( z`dhi{l9i%ZWhzujbBMbK9`ZfdYSC`tRDZAC&4{(Ct%Iy2Q@#ZYl{+}th$>6F0`I+bXoFxf z^5A=IkkZqoJnU;*+vD`TEQ<4Q1|GJ`;Xn}D;A`LX$u4XtOo<7>u9ekNo05EOIv{Vf zXN1E2jy~94)c%nu_EeApiLXNF0|1+|6HO8Tq`cJYPma6cCPa+M7DSU9KO^t_)(E-D zu-?3oM~jP&AS)fhp$`O8!$J+Q5nokW?}JECQ63fp;`rhWwVz`YF2ym?@u2O1H^)!K zlLa`yU1IR_CW5C9iYc~K0X=Q%g{KFuQ3*m}lu^FJ4xHQn*@?ayLnB{s8q8JRNSed^ z%c+j)|4_ik>&^Xca?D#Qlo{|btGHnJw2>qUOE3}ej3s{r-#MiXQoo`(C<&I)t)n)G z8l!UBma3p&X_axEfn73QN5E*`d#^w5cupiJ$+shI{?3uhMY%#Xo>DYm1;-2RgdYmd zZ8dqXl3v|n4jIEcQLoYL(0v6UAD6DzE-n~KK3Z}!WJ>L;AJ_1{4_rk!DWR0p1g4?2kU%FLJ~+R4d;O|aJ>m()vPM!_I0*n>m*vjp}*&GlgGH8 zz?~YVfzJ?YE=o0j(PQy&I*|FtyOrq$>sAZXrA(KgDMubR{71~CRc^PrvcbU!oKIrU zGL7GCR9{-&xzYZ3P1Bq9yk?Pmd_cbptHSdl=q|rW^Ol)j*Ka^%zxH)!$(~+nFo}tl z`6)NkJ(wf7w|M4&P0M1qVM|j~l>A16X@8rmgxe!@YmnZqAc5P12KiiRkM*}P`Q}G&_I&(K;a|IG zK4lT*0|R(h?KQ(qmh{GQ!=zAW4IaV0!T{AJX3w`5P!e-57c!rzG1m=1i^(vkI4+3> zNwGH3A`2fG-7yRhCkf5soH;GuW@svgX(zEd^!;#V`Xts4trG~z@MmiuiWK0UI{hj$ zCs)lpPQlL>MZ!2BN#S%Hs&2He52tg#?VNtt!9@eEk}amjrh|=8tZv-qjH4UM!K7u6 z7IFRNypkd{I6z0Vri#=@{Y2JhraX*n|7l6rCUbf14DDPb^0G2Ydp>CNG}L%}DrYkM zK+Q46wGU0zN=2YRE5q6z zOrpZL`jFTgXG&~I(RTs=aD5W5?qb05Aro0IEmzTM@aEvk0>cYhRkG5^i#py#r6)|l z;dPE4Br5q|20-&P-D2K}UJk+$$358Jsy#_44!5)A0kUWn7$U1}@Eo{sB1i^dxWb?H zVc}pNWf-^rz2ui*xv3tp5~o~CKi6=aZg9Lo>Vq$7q0aPu(4as`@lXqs3Nz7%n@XB2 zf<)u8%wKxcR zZY9cfU_O84B>fgCBs#P9b(>40A<1rKo|$eMz@A6E{OUU?sL z_xSRYY{>iUbg^qjWoqe8G){HH@ae;`vQ52Z@cN znzqmQ+1b!sw`sEZ?<6RiKCk^XX}H}%3)PLtpI4_t;X(UcDla*=jj-IWq}`@T7wW*ni0VdXqR7W(${(ZW@W|ih6IO^ z6(0QM4k1b1M<$$*^mLgPLJlwSSkAI&u%u?!@pUU}5^$2;rE2%aTX}#5&73Yp<9RA4 zn@Czo(Vt%XMqG+CA&~!r5i~*kEG!*^p%a17G*wjnCfTq@35-OI{Q}2obi!su%`$uR zT}exf5XB(+)USmJ`c}4Ax=6w>mZcV5wmQMA4%T*eMtV(1A4w6X4+C)g zy4o%~Xf0FVTti>GS|j1KgHjL9p7{ZbZD|dt;wBp$z~D2tf|EA;MpX!8Hm~uAcg2fK z`_*}0Y|PpkGmgvJ)mAoRp$|R&9JTVTU*h32X`oTK9*sn+An$G)0vSn+HWC<_j zi`+=@vCf(O9S3kdNt|(!bst9|EP77_wIMVzXwi?J(aIciyKQ`;|HVSVpk@6FUCQ%t z8;Kxu&DiYTlY#32TviR)GB&_!W$LC5n!pI$4=2UIyVJT##ico)D9s20_VUw>`~IX5 zG)%72cEfl!$f6s{ItqM!RReNI^+h1US=IMN@V;oKjpJ6l?K)2!N|tL$*iwr{hvt&D ztzz((>T~OHo_vS~fh;gV%HM1ND`LU(tU_V2stv1DqRZl1l>>qaTKFFf8~&Ee{Dzrv z9J$lzjit$NLC1X;tb^w7$rRGY3q%V{h#aV-Jondz-FO3mVK2ufw-BDis{b}oDIGDq zP`TSD8p2#0RsJ$T=xq7b6}wsHAE;Hx@)I4e;5p1e&it4u-EG=CxG@>ha?lL)Vs5K{ zj3HZ;&*tE3%&oJ;iO+;sY1H-g9oigwnPkvM0J*j=p+y{>y_!p$#`qAom~LTx~` zUm=PP6v_2E3WTr5q!{k2@pVPX=`mR5gp>Yaeb1%oMn6-AQl-gxlTO?~ib@{3O$8qe z_k7-LM+L(+9N;QkHqz}P{OF6OEp11WK2Ozhs%x?Iw2jH-y~_CG5K8a5Q9LdHqNmkD zfo#9bp|$v6VXVG;f7W@W)$xq%d`v;1LuDt}EBEE1jM*-H zC#2dYO8a@8pU8jPH=*41y*Bh>hMlS+g;Iy!Yq(oDc$`?gcx2TMB6p3FEUVUu<}S%w z5O?;M>+8yizDRU`w9>osRHNJ3oMtMNVv_2FNy^X^>SE_%rWNh=#a#pXVu7b?n1Qr? z%uvzs)@drZOPG+8AfWDXmxrUN!Msv&i?G;0Q81MHA{iYeNW%IxtV+7-QoU z#ckqIx7d7f2*;Ndz)lk7P>RxRcybn7gemVByTwe0d{z0sSu@#=ZBrc_nVC_*Ej`@d zk8=`2|9245L{6N46S1V_uq8v&u!Wuzo>p6U!P4}NBcwQ3dJlP=*Dt0Ep$9HF6WS4R%}CF(m8DBwIOzww80LBTC%-&hvMh6<#ShiETA58Jg^P2R>1 z#UL(dK+bk3?M2iJwBm^h_1br&e*2dp-xA%(1RBVp`Wirfqg9JP zF@HGqtiye(i3||5*10f10)kx)Vc4;I1CVVBQz}3X&KsOaC&1~O16;haSY z6PC_RyA#TggDpr%Gx#Is6_BwgL0mLda)?ktTQns%6((yKI69Izni=&dCvdJdQ5erC zyt#Lc$>eQzl#K8?sJTqHE&Rb=(qm@%_|G@@n9m#%eR9n0!#dc4U-06^c;^8^UBtCY zqiIegW32Z3CeRK`G~1u&M&S%V@+P8j4f)4G;bY^ZkP51* zm^RLl)M{I>bp~MHKEf53JXXE!vz2R&y&5r%15w#A|M`8%*O1fCb5sf^F-Wc;;8yix{|C7JtjWFZZfTR{~2^N`3%6+wi z_M;2q5gc~5cy$ygk8$uNeiYODXS#Vy{E|;Y?wlz^1Jm|5 zj668qu?0DpTjQmTggvIG5q63)*I)gT;l4N!A80h-$jP(E1<*YX7iHAW=D6%<3@P)B-nyWRE@};KzJE z`umPgT$PU3{Q?`$o6+1X3nc7o`i=zFy2RvhuJMTT*A^uilNNzKr)`fa%tjc?(%O>o zGk2MN4?-^zBl?nX^0;pmj?1+Xlha)Hf~A-wx3^Y}JwCFGZmTA`=7(Yas0xR766raS zyj@#BHkOEVt=yb1_(CK|_?+7FB2Z^l!8XFGTi9W@pi6w)jebXJ%;c*fUeJAfI7jvN zsdmj4i)#quls_Qp!{{VO>lw5SOxUFhMBpdn)b9_Bk6hrEZanEWGZuDz9h_2-x`b|X z_0@)SGRcG-F$!Z;w@jKIch*oPR(BT!en^J>RZxZ6FRhmju~HD5>pG;uqvi8h)s8w- zv}d7+lu=q+NchF@SwHUmwwCo6+W;_nnkC?s zY|9@$(;NG#?W(OiiZ7{ll@1r5EaF8HH^iMFI80<=)ET7gwGPEcz>Oaq_2SUMElE8- z6F0^}N$JGR>tr=SPlV*xjmN`hK5L+qL$WFc_#Qf`VeN)<9SYo@KC1@ zmEGR`TbZX;r@t5?N9#41gaFe|s|@v^Rx8R`r)G637Ep?*dLk~o#~A}`HuWR`^RS1Z zC>ziLd%Jg6EWJf~^i!wC1N`{aX%~0y3&G8hxiyK|{Q&HSY54ON0 z%oE?V`5e9Wd6@x?URzv71TJAh-x1+O+!9Kl@YsC9r^O;pVoa^7k7B+IjF0Bl5A%X% zzj$m~(f}zD@wJvbr`kLo35eb5m%fx$qR;Pf_L2q_pad z53i(T5RDfq;fi2ptoc`l3X#eRRd7T2T1)3dyk`Q%5bKd^Pyq<01a;qhL7X9``=oA2n1cnq^2MQyw?z;lvl$&ccs#%hSgNio$jtqopLA_$MaA`-& z{m!-U<-<6}rSEpD-I&v`!{5?Lh}`uUfr?NhV!~WGZA-_u!UrdC!;Nu=m?<84vq zBZLK_*iT(;rqBdhc^ynaTfn0s%XmO1c?R#q9moV9AoN4`Lkk>ke{=L!(Ngp9i$Y~==6H&<(E<;o$LY1+*M%hS4fQEO*A(ARj1))M#pg_@ut4ZC zvIe10d{1uC^`eDp8g@qjOgm@wao7{to&uukr`;PfUX-2}aB|?Ex7HdE;RkGfCTIS= zUu2A+9#r@bH!~Q!@N8OgYQoXaJTb5@uK*cO`iZ-Em3FOXYX!I!pkd^gr65uOi3GF# zWQ+Keme~r#0xwPCc@Am;pJO8|WQDC};=vDrhSFjnfzfB&MGi94;|ZJzx?Hv}C#yc++VW{LoiB2R{ zaSH1R5!l_;Gd@kW#uXeNqyJ<=6bv`Tu|SOw$HaF!`hoDLjTr~Cv! zwoM>y6V7ZaQ6{On8nb|>2dPugbsl$FJURO3`hKfIYOSU#l}3s^%U%{JT=_Qnuk}u>4Hp(Q%vt>RpRKs~jc)PL8n2-? z6>y~P%cbc$e2&U+iqVCS64MR3@+qZF_*`8bAS#LDk%Q=s@8HigZ47vL0h}B|VNZyI zJ}p&ZsgH|~Wf)dt3yf0vx*5W@4Bn`DfC=^>3lo$uh;$aR`3Q6B$dPS|;`Ef87y`}( zN83#qlP#M1R%10NiiUj^6~^8Czd1hOaLoGg*H_WL>K$NIBY08GDzUcM?Zs|n#vb57&R=M}2=~_3$ma40cxcfrnr>6i;piYj zm;-z@J-wn8*nvqWl6$^zFaR&@-P!075qkp6+!HT<;TKVcRYYTC;^>?bv~D#eQCl|_ zdu3?oP$p~+(xVCPVWg5K0BOF=rW7x)nfhmBlRy%^&R;qa*ID`B^bg)Qhj3#MBt|(; zz|yoKaqOM7Lto>^8tOuR&->lA3e{E2JGlw*M8bsdQnIv({q% z(}mIiq$9+QKV_!0#7lyj{@81SHr6@dYmIAz+YhXl8a@`~3%_$<{hp5R__9=yIlvPC z(+lb0TdXscDni@eHE{mzgO>++$dkTH>R5?J__@Yh(f!&RKU!xp2xrM7%WoUdg!9^_ z^HJCx9x_~T5UOKxW_IxA)(H?xFR$Ny-YYHUjHGe#c`oaYT6fA-L;*KXZQFIBGCSHo zCuJi>R2r5?&p!cQ&aF=C8Z7mgS4n!9V27z5`B4g*K zu*P6sNRRs-aOeHymWrd6B7K|`bigwX4z`Sp{Szj3F$PO5uET~c+9p_U?+4iF(Pg`& zdlm2?0rNnfaR5(p5i}3nF#6fRXR1{-pG+^f^Cuy6&^X26>&7n`a2wEDF{JaP)0=z0 z$F+k>;KeyIepj}w=qZoqh_u?Liy{n^k8Y`k*IiEY61(&M~2)I*-G~WXzn+i zeX;vc*^MkcAph-H25od=#^Jd2>sglO(d6jYf9zULiYBS=-lW3yNqaE|%K6ql*| zpLaf=RWxGE3zjgPu;ALzlRI8{n@v5dAS$iE#nW`9mKl+`x8=4GyEraUrHc`+E0fQ zxWbJ!a`sE|R{K?(-&@!0-!^)Q8DG&KB2wUE);-&5ZeubwISc%nXhi)`S~%}iu{Va4 z@8$xOel0MlF)B-%2G5_d0}`yC!a5o{OTcS!96c+Y;ZYh``Jv`?!;5Jy8e7T$wfA>G zEwPJ|^JzY*wGNwlmU}VVz<=TLD*WYDcEai|jOZt?uV@Z&pJMw`+EKR609rtt>aR|0 zaRD>p^m3NqF3matG4L&TI&1bfte)u~Xqu$Hh+>qqDMA;-6ch?c??-+as%nC>nyj6A zDKqcJEj>bW4X#(a!DAyC!BQ5p-xq{3*FU9OCR&hXc$d|pWlo-E0RuvWg(q3vHT1gAt_|AUmI2)uy_WfR0LXGa*d_1H> zKw!{mj;4A?f*|Be?Bu#xL-<^^buf@*Db6VjRn9P?1(`~rm&h9z2D6Z7(=R4)e0)?$ zy&%MuMH26CD7cO{z@jC@xs0%}W5;H9vb)Yq$&D+E{j8GD$NJfNBZLWFV`-#J>yKC_ zZpxm?FqP?OvF^~6YRDWzuhl}&K{+_NFvt%(Ow`=V{0w9bUy>T~K%#z3_0vx%o!=Kah121bT2J0TGdfgTo)8T# zl#91pk>UX*?2d$Gfyfk-{_x0Guyh)+rgxe<-f5g8gFY-L5`BgVo?|S9AnX)g9J1}X zFW?Cg_^bQn(Uf}hrBEx5T>#pC*qc4gx9glxks1^ql6#pk(QWq~g3y;%zC6uB-YxIsPZ>W~7qy=Z-A=yH0?IN*uty63GX_3s^^{>?Ut zQYr@F+-UL<8@bjze2yi~))|nI$R0*$FdFPgNf~GG>U#yi>g)}OA$y3}a^QjhL7yw8 z)c?|4Js&54pXK|IzGN~Ey=ieIeKSv{UpiI#s(~3c5vDxmb56swe0VJ6r8JTvke}Nq zN%R}|L}#?YoA~RZhc~UpukH!AfY6?!pUiehl+siNL3X2h+>{(eBe-7mont2GMy($aAl?N*ixjJ){;Rq1<<$Wx;!k=Nn#=#CSasgV^ z%kXO(4-jTtwm`IP)veBY8V}?inManO@foVSy#FAaNpn7#m1Ac#j?6^k-crQ|*}%%Z z&Hht*yC(9f6i0Xm(jJLpwQCO^D)E-msT@toEUW))p_8j7v!2Sbdw^MEWN-s?#f%%; z#rnu$sYJz?QR^p|M8B!7weve3!^WAKL1cQI;s_2I_E~1@j)XnA&+%1%xF=Mlj`Dou zXSQj{C>mYsVgutMTlbtn;M0;OvWNvj;2>K<^h;MYV5i3(qhic;0MvEEq20wiPts-e4CQ~L@zPPvAnKsX@Tg`^ylgmB!gebpVE;y*kfHF z5g-S=Nm!z)BAznQbsVpJI!Z^ zuwfpm(8y#HwqApOIPq3RD<2fF>puO&=R|E`JrD-lfYLRQ-F<128CF>W^R4UDRnhs9 zI@}TlKa5C!(5nVh^`E5e`6UdFZ(}NA%sK9Kk>$c!4ExOtsVJp$0p{-_tH7-aOpj6cTfmTZ4WT@0;pyUfC z^IP|Bu+ukGw764}qruDhB6Eb1dW0NQBP46l1on14(?>V@PZJ18oGqIH>Tlwd&gu=x z&J1~-$tw>lQ=GN)ngA_cpnh8asmw9n7OqUopQd2n31e@uzNxSZxKKeLzKr<|>1_>F zNvZm(Y)$0)_Rh<38t-tjf|rim|K%jtDvvH1x@XGgxFFMmhAsdS@a}1iUh?CCOQ^Hj zUy^#w?3K>uJTXKMqZ0I5twCtff=3TR)qGD+!gM9N2WiOSnfL)mFoHwM-AMn6S3%!H zA3>n_Xs0ENMwgo?^MU9W2sP%CEyuvET+u8u4FuNlIrPsnpnj_oU-GlStrv&@m`9Nj zn)KPBtY{7+S<((B;GMqge9Te%wnR-Y;iO+5P#!vM zM9$O@Z3}8?;+N$xx~51Wz^fDK|05eU-E=?~J3Qq8yML*656@Cj4m%U|0nqpSG5=pG zmBTRvJ2?4IVL8Y4it-*zb}!}x1qFFtPOZ$rS0H$Fg^j(nhIIMer(#zpTe@ny$hA6` z!-$hXqveemi^C}wCj}(CjY{ruGUMyGA)vNDQP8ki<$P+N=MiU(jUQLm9*snjV7W7p z34ErwMfuWYOxhiwcXS7qIeXpnO#9Ke_2^atmYKbK1br!(Ez9Exx*aZTNtws$3=6x& z39dkQewTDvx35&b36U#Uxw<&Pm!a6U*v@*ZS19_UK9Pnl!UQ<$z5W4lVoc_8_1=>d zGi(B}?TU$D9r~mA?{&0enfOItmrJ#E=-HHTor_tJWOtXsP=+{Y(;PNG0ZH08p9BR` zFx#mtUj_;WA{W(Il%(OvHqJ1!n75EQg6cSV`9n<_Y1*BZr1qqtIs3akQF{A(*&d(} zm=)%9kt;>|u02lk1m)WT&nDdR+70?~FHF-E$X2e;8xAKwge4D!hYG29mCXx=706SO z5~+6JP%;my-W%q15oYseCMbX-YkM8L`B@K4Txwfu^@Y>19JD&2qNO#hNjJ2K?G6dN znIq{~+x1p=h^celklhCZQ;(S7rSozkHtM&1{2d4lQ+A-*m+bi3s0TKi7GtS&`_ReZ z)J$qD)dJ`iy_naMGpBz3y4zx8rVO#(EQj_^%kaDEa_Gd# zvslzmGNlOi42U-=Z-=V4e||yMf?&6s9nUG` zvxrutiPdP@g(z7xo`WeRA};HXMRUSSP)E`MJU{Js#YIJVlrLP!WFWq}8F<68x5k-wnwsbl z>r)*3=w83aMz$+_F+yQz&ZE-#DC`M1(rwc=>O{zmn2PJol|Cs|HjnB0Q z83(-wjQ|_506FNKC%9(`(&$7X#C^2==n!bxL1ODvwCea4vYo?3FLh^G#Vh2MO^**JgiTf&U0D8<`f zSorwt$9T~YVr4ZmBixTVxztMYUs!!=c}|(Q=XH0<+UU{jgh;UmZ1Rj1$zm9UdR^IY z=qn^g?a`ezG>3uND=EfS93d;7YG-jjR4VRff5cI^nLqw%$dI(}YOc{>)-%EQMvKgl zRW%D-2A>E66q^u3bAfu20%TeCljIF&G0lVQ(XrDrW+1NnAk3%E_w)LUnp;D$XI^l+ zSdN4M(~;JuWI$@WjUwNaQ-vKBa7n6gq|@803}B3tFh~|0VbYIqrnsF(YxA0L3kU4J z(5g$`x8fZAzJwh)?e&MQ=I1HB=9ZrwLV&hXYoTT^KNvNj-Pk2jYQQ8<|CkZmn$D{V zb3jbrCuTl|26U~AONcnLdr{c-r$oU6-iV_m^dU8tjg+d2rHhkh5r1Q-B?0fWteLR_ z;=gW8I{2thh@zqf^!(w3kyuE2w&M~qqBI}i*TgRlohx0F^LOdB`PUdHs@J-7@Y%ZWY~$EJ8sx#NQ5T7_)33P%{T$aIW&FX7il z*tmc%8@5!l=ne4jp3E$m4wV+1n5{8~KWS5aPLNO%$PU0WCos4U~B zd`B_!dhdE{GLV{^>4EhW863(hUdBfVPnSy}(=%SQ`Z*WyMIlVe3opzbp5}sx7*Tg? zvK|CLB7R`LT;#NZ>i@8=qWG|5)lVFgBO4Ky%z4o&dp#ciQbGrW5zOBy7FA7aDN~P7 zDWkb|Ls-S7h?TbK9v2MWNRkj$=Whc{zSAW$bbIGwA6lqiq}UW~VH*8uXglg5tOA#s z5`W}L zV3&EpW>b7nWpoPwOu){OGATBBCK6|+tK|cvDS%ddRa{P9b*<4|-vNa|m0H*g}CiExE zUMu81E0>X)GB2aQp>qcRt}Nu7UtHJ|agxmZD67*y&0f1A91bgG`z6;3%)LtnQzSV9 zb$`6_0y_V%Q(K>%oT`pKEb$8uI14{%M>Y9aTk4txNsj?T4FmWvUA$L8ry^{f5W&H7 zdN1bC=?H%}gg0heV!>?6ERSy&>ID^;tTa=X@U+2Wad#6m1zkOwA4&6aQz@U|^*Xz< zI*T&u4`RGgyPhH&dKs&|y(MM@> zq(0Mmh;l8#wZ)t4)i~E}d7dpTaw2#9KhX80Z@8V^Hr>@HtZK{6#d+Yg?(0C}Xb@;wcqZVxihBPp@m;y8z8;?o$u}eD$BqDH*NH;u->rEXH z9;w>?hW<23LsR~@*D_lK3xx1d*(;&jRq#;LdD_h$m{7y)u2lDzZdzX^pp?CK)Xxzu zM!jiz5d0rkyiLBHm5&BCo4`CQY{|=s@r$hLmK$7M4`4I+1@xeA%Zp5g&0Z2S*JVQ9 zf5>t==8vO=D#_|PZ`EL%=m+NTRloc6qcx-~w_Y;tzwK5D4 zRYpGm8%-u%kn=65A^>O!6R##4S@2&5v&?WgeD8MeO!q@Ha_!>QI*0AGw3-OcHJYgQ zhA+{XIgP_;fVeW}r~NXC_fo2ZpA?IEks~NGD{kqZ!(~62)y`-HZFKXpJ9TgxDsmvgG@tu1-6`W#VFhlpsFpyeqJQd*M_PPW zgB&$VvIfH5JX~;Z-dT(M#~^5f19ATu&RDuT<;TzL5gs;&*NZYEtr$_uNJ>RiR+oiM zJlLEzI{nWRobx%uG|u4rs?3361nx~4;YaMrG4w$EC`p^IkQ&$}%OK?2rp_#CxlNqG z0{bsFw_Nb4KEWZg@`_<_05{)3m#&`&IKz#9eZ+c*%CmKHI{f4_%}Zt%nOtY@8*{rX zB*Du79n!)SJP)vDZ3v1QiuFNt&l06Npn=)p_q0TI4$kcNwG(hZf>@V6*iEEzCi%4z zuh@EE?N#ODXe|zj^g)uQfT0}K_aO7tcNGM?V~Tgb?0H*92k`KsK^s{ya-3#xA;Wxs za`PQ0v%&ZdA%vV0#elK-47c$s+x_Gi3>zfmagjBr&S5bCKf*=3dPY79jC*JFk0|@A zCQvRTzxX;r+tQ{n)jwlroIlfa%+UkQpq7JI9P|4 zk^_3>EXuM~wV=ebIz+lzAmlq@HwDT_S?Epv7)>k`4|<@hEG&nexC;9yq-RBzZ-Vlj zR3hXWM_}C?6k)Wz?$eN`tf$Z0KO4IMzxDdnUA;cO!6KGP&pNi&8yL?J*L&ckDG@%s zXflsH$j^xM8qyQ_MQn`3qQL3sxlaZM2bq)1=XBu9P_U3eo%dM*Mq5ZP`<#oGrSpZj z)$NRag@lCMlR>?9vD{xHJ#ir#F8r;=7g8FsD|ABu_L4*)E~|9GBO&4o}b)0*~+0qQ=!?` z0-KPJX=O_wF#>JZM8T;RXPa7F=BG>hf(z#|KLjw3ir5I44ezNZ?ini0FK;;PkHG}i z{OcF*3CE~rlBz`}MqgZefPDooDG8Fk~XH&D~!AuQODzW*KXtEsdTbuXG&p? z9g=71y%$c}Ab)9C^^lA7hbi<}3?tD&8(L!MH#5RSNA&W~;!Ixn@YlEVBTb;&s|;{2 ztv2z=EvQiX=$+trA*93lNecs|Q4p5g_b3uX!+8ZQ-k34=W73@t^+Cr?CxQm43juJp zSOcObeRyKSEcRc%_`K9VU)N_Hit%zz{0YIYx~OyfFfs_a^5vBOwPYRmOkizz)LOQ) zey_Z&r+=cZ+s1D9wA8Dnl^-m8FZ=@b7g%hW`v>@J$1|W?r!+yLX_%<}>|+peu|1m+ zbqstQgFO#aS$LoeEA%5SHUl+dzGAA_?CrOp1vw?39H8XEx+7 zI!gmwbVk$sb3WAX#W`AE1bZ+4xMjVW@aId6berUwbUfLwOaFu>3+1&?LYi1A28{WS zm9R}^_UN?F#S)THl?5@_fJhqjqs)&uYD{`)8kn5%iMNRA*TV!%dLFV|O!)9No4e&Nc^j<(b{5L*N=Cm2!&uggL9U66z>t%kCs#Xrr!t z`R_-SBp*{5r-w2Z%R6*j68~?lT#X@2NuC;5TJsiGVz|rB*knWe$JJwg*|h{im@R6W zhXMm4&3lnGoX%S}JQ?Pm_bcB`XM)&ntxs!E?o92QFl6{gmPJeI5e~XIN2cu zM3u?)71)^yV=3Ume1Ip9-c|VXgv#Dn<_HDaCOP?1pJVbi%b@tnzJxk$6u*!8ewX;T zk!l0GGd=`iwRO`1KE@)xP9(w5?j>J>mfywAXJq)6gl_dW`wA~|btKpX9>~)5rf(79 zGrY{cZfF(Q z1JR={Q8FBhp4J+;T%=ambhi4knpL)$ZbO$uZaK}N#6*Fkd))esMf;%Pyz@#j_ zuKI+mLMt}>C^SDaJECqj;z69|67!c@$xbA#MQ(_XZ^4HBOcf8Md|sh(CV$9L-z%$L zX9|>le`zr}$lwb@XAup-3WbFi!Rf%*B1qYVIlsMhuiFrOqt!aEAp(HHQ~Y9`qV@X2V^-hg#XG*rj$1#{R;`dT z06Vus@17}I)Om8v3W7Mt&4QLs1y4?JBLvP

X0+0a+y~ zdgT6rgTwS<3a4iya!T!&P-LogXB4io^q=|-!jN9IxHF&skkUEpL_!_`e@8xjL=cGHnrD<%5<$?Qjg(ru8 zTV10-W$DR}psTKqlBE_4ZHJr{2JG#ORnTd2m^G8{`qdgjK!YZr4qHlS|6Z?UZX#3o zS8{ndtogtCuv0lcG}}^Myqp*S8d;5F-?Rwk&AKe`fR!pDOmdQsiWT~33{wwujHFAN zmP-L(=b2i42BPuQ#0(Rvtt6pN6Ne~=$d9t$zUy2VtNEKRp8tKWrxtI-=?P2nE7_E> zwy|9oa#;y*)e!u9NzyYA8@%vj0EW_8#frDD$$4KvC_NXMe3MA{&XAXaPLRp)5BVFf z7>{k%H+9ohf1A~173LgmpU?ruv}3X2z|E?zHRkp# zaDjL9j<1a?oLjyRIcF{Q*_~@8JK|<{b zEVuK77mSeWbiqjxTX7S1X&^1>3n}(%!F|ypbH>UOHGl~rNYBc!$(kJJH~9!2$Q%k*4v zJMM_~Qht3+j#rE=aS<-@7~tlSbN4g+h`!{&;~r;b@-qZ1YF{z)VN7>UjQ?czt;hcG zXtmL?2kSGxx|+^s=wSzD(ZIP{hO3`qu_uE%amXwvAHhx2^$>~_rVDJ68lUAMGC*N& zg7qciNT!DNysD)pkx#O*^Nhbp1O5hlgAL@O4aazy2*6xeo<5EleD!5hTfDWRT%x>6 zaMhuEfYf7%8oZR%>4=t5s~lb|b3cz)1Mr#n>D-rLe`Vm&j_v-GkB@jj2-iD`2|6uL z`?EsWQ?;lEl^8<+u08&!aT7G=8X&iNn)=OoLl)!c1fK<8)2jfeE$p z;^~|Iioua_p{Rv-6gjvFu%dh)Z*Gyua!4s+H@d(6gjfIz+Bf?UjHY8pySm)cIv?q3 zkLqsLtoL|JjKy=2hTtT^ZdWBQuYO_|p(pp&4I9=kg z0SR$+w=h=TBCB;&=7%@u5X>WOQ*5}|8Mp5S9vXAZ^g`o-Dbtm=V9s`nD%)ght>_5hk4X(H*c%d@@~+@Dr>A@c#B`+v{o zk;oLHLWik>v>kmbgxlzX90{;Bo6GNLEYq$VKyPBxgH{d!e%0A30Bk-c9I*H6HHk8s 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

_79Yzd3eUDQGP1en~Eb3%LfrUyN& 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 Bp%(xE literal 0 HcmV?d00001 diff --git a/MikroMaster/20260522/20260522070002-Config.rsc b/MikroMaster/20260522/20260522070002-Config.rsc new file mode 100644 index 0000000..0fce98b --- /dev/null +++ b/MikroMaster/20260522/20260522070002-Config.rsc @@ -0,0 +1,3445 @@ +# 2026-05-22 07:00:03 by RouterOS 7.23beta5 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add mtu=1598 name=Bridge-LAN port-cost-mode=short protocol-mode=stp +/interface ethernet +set [ find default-name=ether1 ] comment="WAN - Unet" name="ether1 - Unet" +set [ find default-name=ether2 ] comment=LAN-2 +set [ find default-name=ether3 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-3 +set [ find default-name=ether4 ] comment=LAN-4 +set [ find default-name=ether5 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-5 \ + loop-protect=on poe-out=off rx-flow-control=auto tx-flow-control=auto +/interface l2tp-server +add comment=Server disabled=yes name=l2tp-in1 user=vados +/interface l2tp-client +add comment="Starless 2 MikroSPb" connect-to=176.53.203.171 name=l2tp-EoIP \ + user=vados +add allow=mschap2 allow-fast-path=yes comment=Starless connect-to=\ + vpn.starless.ru max-mru=1280 name=l2tp-vpn use-ipsec=yes use-peer-dns=yes \ + user=vados +/interface wireless +# managed by CAPsMAN +# channel: 2442/20-Ce/gn(18dBm), SSID: vados, local forwarding +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +# managed by CAPsMAN +# channel: 5200/20-eCee/ac/P(21dBm), SSID: vados5g, local forwarding +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add listen-port=13231 mtu=1280 name=WG +/interface list +add name=WAN +add name=LAN +/interface wireless security-profiles +set [ find default=yes ] supplicant-identity=MikroTik +/ip dhcp-server option +add code=12 name=HostName +add code=119 force=yes name=domain-search-list value="0x03'WORKGROUP'0x00" +/ip dhcp-server option sets +add name=HP1505n options=HostName +add name=StartLife1 options=HostName +add name=amsterDev options=HostName +add name=MiTV options=HostName +add name=miller options=HostName +add name=amster options=HostName +add name=garage options=HostName +add name=domain-search-set options=domain-search-list +add name=VADOS-LEN options=HostName +add name=VADOS-NUC options=HostName +add name=MikroNUC options=HostName +add name=master options=HostName +add name=MikroYellow options=HostName +add name="=\"Client ID\"" options=HostName +/ip dns forwarders +add dns-servers=1.1.1.1,1.0.0.1 name=blsp.at verify-doh-cert=no +add comment=Kra dns-servers=1.0.0.1,1.1.1.1 name=slon2.to verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=slon3.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=slon3.cc verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2web.at verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2best.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=psrms.is verify-doh-cert=no +/ip ipsec proposal +set [ find default=yes ] disabled=yes +/ip pool +add name=dhcp ranges=10.30.30.83-10.30.30.254 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set interface=Bridge-LAN lease-time=10m \ + name=masterDHCP server-address=10.30.30.81 +/ip smb users +set [ find default=yes ] disabled=yes +add disabled=yes name=vados +/ipv6 dhcp-server +add address-pool=vadosV6 disabled=yes interface=Bridge-LAN name=masterIPV6 \ + prefix-pool=vados use-reconfigure=yes +/ppp profile +set *FFFFFFFE use-upnp=no +/routing bgp template +set default disabled=no output.network=bgp-networks +/routing table +add disabled=no fib name=To-VPN +/system logging action +add email-start-tls=yes email-to=vados@vados.ru name=email target=email +/system script +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.86.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.86.pub\";\ + \n\r\ + \n#:local Script AM-setup\ + \n;\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/659/af48ca83\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 18.05.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ + openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add comment=Unet interface="ether1 - Unet" list=WAN +add interface=ether2 list=LAN +add interface=ether3 list=LAN +add interface=ether4 list=LAN +add interface=ether5 list=LAN +add interface=wlan1 list=LAN +add interface=wlan2 list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0 client-allowed-address=::/0 endpoint-address=\ + 89.110.101.17 endpoint-port=29185 interface=WG name=MikroVados \ + persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +# +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2/24 interface=WG network=10.8.0.0 +/ip dhcp-client +add interface="ether1 - Unet" name=client1 +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 verify-doh-cert=yes +/ip dns static +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.33 name=oxidized.vados.ru type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" name=dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" name=dns.quad9.net \ + type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=NUC disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.21.9.225 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.161.94 comment=lostfilm.tv list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=31.13.70.36 comment=facebook.com list=RKN-dnsLookup +add address=31.13.70.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=74.125.131.91 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.136 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.93 comment=youtube.com list=RKN-dnsLookup +add address=74.125.131.190 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.163.190 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.91 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.136 comment=youtu.be list=RKN-dnsLookup +add address=64.233.163.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.222.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.104 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.222.99 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=142.251.1.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-list=WAN protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface-list=WAN protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-NTP +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + dst-address-list=Trusted-NTP dst-port=123 out-interface-list=WAN \ + protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" dst-port=123 protocol=udp \ + src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server dst-port=13231 out-interface="ether1 - Unet" \ + protocol=udp +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +/ip firewall mangle +add action=mark-connection chain=prerouting comment=\ + "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-connection-mark=no-mark passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-connection chain=prerouting comment=\ + "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-connection-mark=no-mark 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=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address-list=RKN-dnsLookup new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + dst-address-list=!Local-Net new-routing-mark=To-VPN src-address=\ + 10.30.30.0/24 +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ + VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ + out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ + 1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ + 10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="masquerade Default" \ + in-interface-list=LAN out-interface="ether1 - Unet" +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment=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=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=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ + routing-table=main scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add interface="ether1 - Unet" type=external +add disabled=yes forced-ip=89.110.101.17 interface=WG type=external +/ipv6 dhcp-client +add add-default-route=yes allow-reconfigure=yes custom-duid=\ + 00030001050000000000 custom-iana-id=0 custom-iapd-id=0 \ + default-route-tables=main:1 disabled=yes interface=WG pool-name=vados \ + pool-prefix-length=128 request=address,prefix use-interface-duid=yes \ + use-peer-dns=no +/ipv6 dhcp-server binding +add disabled=yes duid=0x000010001000000000 iaid=1 prefix-pool=vados server=\ + masterIPV6 +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ + y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ + http-codes="" test-script="" type=simple up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + port=443 test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=yes \ + down-script="" host=8.8.8.8 http-codes="" test-script="" type=simple \ + up-script="" +add comment="doh-fallback, doh-url=https://dns.google/dns-query, doh-cert=GTS \ + Root R1, notify, name=Google-DOH IPv4" disabled=yes down-script="" host=\ + 8.8.4.4 http-codes="" test-script="" type=simple up-script="" +add comment="dns, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" test-script="" type=simple up-script="" +add comment="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ + -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ + test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" test-script="" type=simple \ + up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260522/20260522070002-Diff-Config.rsc b/MikroMaster/history/20260522/20260522070002-Diff-Config.rsc new file mode 100644 index 0000000..c3987a7 --- /dev/null +++ b/MikroMaster/history/20260522/20260522070002-Diff-Config.rsc @@ -0,0 +1,6 @@ +3225,3226c3225,3226 +< dst-address-list=!Local-Net new-routing-mark=To-VPN src-address=\ +< 10.30.30.0/24 +--- +> disabled=yes dst-address-list=!Local-Net new-routing-mark=To-VPN \ +> src-address=10.30.30.0/24 -- 2.52.0