From 76d8779e34901e8b23920c20ff410fcb996e280c Mon Sep 17 00:00:00 2001 From: vados-dev Date: Sat, 6 Jun 2026 06:00:36 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 06 06:00:36. --- .../20260606/20260606060002-Binary.backup | Bin 0 -> 253572 bytes .../20260606/20260606060002-Config.rsc | 3396 +++++++++++++++++ .../20260606/20260606060002-Diff-Config.rsc | 17 + 3 files changed, 3413 insertions(+) create mode 100644 MikroMaster/20260606/20260606060002-Binary.backup create mode 100644 MikroMaster/20260606/20260606060002-Config.rsc create mode 100644 MikroMaster/history/20260606/20260606060002-Diff-Config.rsc diff --git a/MikroMaster/20260606/20260606060002-Binary.backup b/MikroMaster/20260606/20260606060002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..3b672a7fa47636c9b32a4ae7b876f51c484e0b68 GIT binary patch literal 253572 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

uZwlMd*k@XbuB8#B z_cI$rnu1|q%xiskIw?R4e1$yCte_lg)m)WSrjn1&8lCkyko3`- zPkKhs1P%`$jp6xEJk3mOiNJ!<5Sd!OTy%n4ARd=#PB`r#B_qmo zB|Ai3nmw_~gG5NchwdMitNGTO3*|ukvj#zKOB@oPG$VyKrD0&y-bRBA0d40rB9L7< z;`tQU#88%=+UK9@Q?u#Ju|(H7JVouHtoWy^-!uHHo~0C30;XeMKI%$?Zw|<*%bdUG z?2ZosEaYuJ&Y1jNF7|B3(zTcY(cH2`&l2HEZi|^wBoGjSP{BeZ zvYDxqRFgdiCHQc*E^-BR!@{@#dWEdKx#y?mSXKYv^f=g~iUQt-B0ZT~nH-z?mW1JZ zn~L-bko&!oaDFg`LP#pK8?wjUd@p+H1R)mn+WGkAl#ISn3%P5rZnhS_!vs>JgTY1} zA@InY1EsF=P;sd0-T#r0YdcY&;ir*^=)-H zRZiv;BGv2>3|`HaoX0bG zt_+jCd?HR={cws9A&zasZ;FM5N_OYCA54?Ly?sEjpfWec+=qW?v#>h1*HNzG#{APF z;4`x0VQf~DLX?3rpG>(V*o3rB(mxzMz?B>(fRq`fZpZ`cdiiotiv=M`c9>3ZS)G?{Yth&Zm`+0`HJP?Gr57?ySeY5BWFzZnVH2q_BpF_2ys+j^)| zOKM#_~-q{!K7LDk3LPNEqVMSD3>lR|d!rA~G2h%fu`r!6CRtO|a&C!H^6kT;$``=((CSo8bm$Gz3#W z+CDVUkciS$0Lo-i7P~(z@UoqPo|9=%xdOdJxBz=$wDq|Uar3DiW%O8S=l~!lvLa`C zm9K~%Pb~=e>$ir<(2Te@RJyA3fd8Yg|CH4QpXy$wv5;I6Dq{lajZm#z3PZaS;8~*V zvw-t;arsBnMOtxl#WtD42+e7R zrTS5+=jb0c7QcG3XIk88dX2dDe0=%TaB(q8RLaTg$e+;6Yq6sSkE2Uq;Eq+YuC6j~ z6F}K*48KfON#OlQy>D++H4iWV!^uNsz(;IiG;Ly90*Y&+Vi1AaWYTgX!&;xUZlmK< z6`#E6*;ptQcq<@ARP(Wg!xqjoEFE?Ckp*n9Mto2MdvIA`!$Q;SXq$6|f+x2wP0!Ie zBZuN8vJVBF;LYVT_6vN(4LkMj3N0M}8M^X9tT4hDdQw)cTiOyP z5~r7HINt;8Kt5vWok#_fN|NGH-TsoVMdd}n`zSpPk7vD2bOR}GO1;{RfAAW;{j}Uv zZ(l4CdQMKXIhD^@JapNtJ{o;u>Y=BDCiODH=IMhEpNTx~TWyHDGo>J4>A^baa6?D9 zX*>NqbM)?u8^iP6le`ZWv1FBtW2|;fz#g` zwwI7;%hv(Oz zjqB&YZmV%35R;?AxA4j z#$egN2o>YUi=zZoy|k9PPawk4Vh}%eOLe0~s1(%E#LBb6v*Z{Sz|~JtgcWQ84D=18 zDbtXx3nH$Pa>M;zT-9wWgKhXu#tm6F;kFj8O9!Bff^uUC<~}0ioq#O?uxYw6RRiJd zkaYS$i);~Z&k!J2l)2tHqKk(?_as7=y{D1%SU z3uvBmDiVb~`)k+DeV2M7o*7IyG8TAfHa}~>UXG=`=unI0PcE)z4aH+0Y8u>*o@pd_ zWH%ykxww9np@G2J1mKYn&xx?2BoAokm>7ke_)W`qgdi12lqcBDGQR}B_GIygcjzz`eM>e@#|I3YnKzI3 zE#01vk#^}Q!7_#K!ON%_w9GnSK+JQC6Q?pT?+aIuR+d2s>t>Ni^~mgSBro&Yj8yoB zvBzB2fMCxcSI?inw(Zb=w0l{{RPJG3uTr6)72I}_iGorLlJe2=R&FII-LgIP1C$q- zAwena{S$K{iZWOcvgn*$s*a-2$v1b-o*!-N1sO!@Om29mU`zpvxrR9OS0#RaAXwvx zes5Lw+?hjJ+lU zpKxORjeUG=9-b-8m=1Zy!E;hq%Q(eOn0Wi|NE=Z5Ca@w12ZeOq;YmG(+hjQ~Fiqyp zo~~=H_#OQ_Rp%ruS$5i-%x4X#(V`cnZS&FA=ZGv7E4w%1YBmKLwPuzxC zwt#VIl~&vX?r!5T5ez6@BF{=W6zF*`1^`i5`&u<)L5>rW9QVH1b<+yIVLTWVp%wOu zJ39qt*C@6hcZs2sun|#z-3dAB6^nfimWuvQsZQHCS4A5kHSKzmE2{W4cRh>-v1DHY z>rEX!PgzMRi{Z?~vB#t%PnizJioZ>QWBt_wKB*}G!TfukDg(?@?VzCw>1r2JXHL-# zW+!8bq**9F1#&~q$2Z1DDMTZaVqPRmNCOZB$!u53?Zt)alg_M^pcZT`hSfM0N581n znYf%G3XqsY>4-R&SOYPeL&V`;uVf71e$-7PE8G2pERR?xI}|I=*CW*$kOgaiL~ry6 z(%vln$^W!Z%j~eg|cts=;7*oIKH%BnwyMzxr{s zI9AQ5R3hvWPfg9YRnGQ4&~*Hb`+Y^njh^-7yS58fes&fP;~?8vYerg60ynubnQZ$V zE4{vt?I}{_g>xO$W3XcF<8!t5g8c!7{+iA0*|VM*5fwly`TCrLSAJDL@2)-j$i=)V zynA%jJII*5bga2&EawA(8gfujrMU&U6F$){?SCj7@u0H%T&aAu9yruf9s0Tefv_HM zn6|!20Fp+Qj1;A1feP%ftu}v3jSbt6{+u`b{JJBRvidUxzQY_t$ZgR79<0{^a{x5( z%|!%5H<4~etnV$}jt3)2TyRGEI{mO#C0z3*3mv<0LN(TFKQe|QfBF?k6Kn$w;{-Em zTc&|wXI>YeN-U|6%>k@fV^ht`rbt`~glM^ZD;jP> z^ZA{|I=t_jmXKT&CyRw+@tzD2|3nQL2u<7FyZEt;4irS{n8D-6L596Ym;0{A8gjSt z0~ITu1?s`Y6Ysa#bBDx2ud;)h8FTY9ZN-3epx#d3w|eZ;cP{oL>1w1}sdOA(`b{{e#u~Q1RhsE&YKV=@N3*V=rt~%`<;9K4CiJCf5Cq z{waNnopyEd8V$W>H&{QgaMBU1*uOir6CrNZH>0sEuAgfnW%{TD^#YBj=X!PjQ_tW~&9X^U7K8Z<5zu&< z-~bjd>`v1ivxN!Fm(6{F<{=fXm+@)BdA%<^BxLAJJn7iaxjLhvtjP@nN&#Rf>y7=V zRoBBP7YYLYth{FS^MHsfC&N8zqh2w8hUZgF`-6Vi#;=LBq&Fg%d?cyBCs$wPYl%)?G==qP;=CUcu_|775F20ZnDDLuwa8XPloZla87pmLir}vGlDG|#VeZj`ND_2BQ9zA$ z=x?01NQh3uX3E7bnvW2~_y8ZHq@n$REQC&7t6dlR~o@#gEXhYs-HL~fWK*&TJ-=jf6f)P5%L}Rpe zJg<>%dV-GQSazF9yCDM>LB*(r=#gz?$d5}t%%(j zcvgC=x)I#J`ac4{>KHPnN^U`)^?AG4S7}#q_T=p^HHn6h5TmFmkBI5#SQIZBv2Gim z#bF{9L>?f{yFsE76zw9{*ezA#2*Iz{m(4YI6fM^7Zwmm5OA=6-b}44tYOHH^)@d(I zg(6zHssu|@G(P<8BB%r1i0-7_gjq58CJF%r-rUKNe};bZT)~$oN$Zt895IZyvfRnM z--5=Y=@$RA>+F2@CMFz&?5y|Fi$(rjvx3mX_9Y^Q6P`^VHH5Ht zw3tt+>5<1-r~~=}Y}_h5rp6xIfNU28LazyBMYgY&H{nz)xbyhWO4seGmJ!%UF&cKU zA;xEyQ0YRB`t>3Xr&?BWHD?Fdi(Kv@njnd;0Qd(oi2ZsW(t25gE&*3h$jgkF@2&h93og8$wN#v`Z`<0HTTc98}{beO{kl@8g!&4 zSarFW8_I}(K%NwOkhJ2DFHBfcEMmODAkq7dHl;)`gb25knfYywAhpoc(G$iXCDHQT z5gU3(z7_XJShbIqj5|d6t^V@pfl^M+EAR(joe{PcavRxefqI8pHgUC9ZsJVmiDA<^ zUUjZZdPf*-`d43r6K);gKwxvS_7Ds}HN&4^nm}sCpr2 zri%}Z0*n;dB@?8@@y!Zl@m#jNyvC{e7`{AGH931)PG(HUG?~sG$2j^Gn1)+l52j3gz^*(8djL7xiPgRM~G> zk8SlZr;8?o@oMn$8#ZH`^X45+^{6`m{YKJOn&*eI!6NbbP<&tKSp&7b?w#1G!rCjS z_%@V0Vgm#?_pTav|1ccl<=Kfd?5#41p*_%rqH4uP-Ohl)D!I zk+=5?>Y`^d0% z74r&{xfVy_<+4)e<7b^k$Gw2iNUmEIZao4GD1F?q^mJ>Q6R)u4cO=@iRy&<^T)RIGtcJ{7hgPD>!BsMZUJ2=Ew2M#v_&mQ~ON-QJT%$m=$a8z*h9A<;IQ z%IPfb+q*G;yezK%5lN%u*f*2jGmbSAfb}g6P()0K(^RHASfG3>+a8wQC3=R%3LZfk zSquYj*Ixv`?Eg+yusy{0c>(L(44_=|HXtU7;^KA2ngP~4yv$jpvL>?9s=r|$&7I06KIAsU!aui)yAC7x(HR8w7@M61$_9tS^H zQ#yM+QRbiH;dzop=g_0EgdezV7Y6_~PS!K8ZA!yM>+WT&*YkE~AAS)s zy7)!U5m~(iznfVz146}NPses*L_M?H-%qv9R$w6U|9~67jnm~T1&0rG_!~|IpY&dbO1ggETCsL(q8`1>+ESvqc1%LV@FZz2RFKQIU?4Iq)A{Jotre ze=B3X9>W1g#6UWUlD@&E+MY<~i^Pa$#Wd7c`>HJ=J`(5RoRpmUFsu4lH7J=foBe9x ziU9vV0Kk}@3T%BIGvQ*vQnP4}AJt_gC6mSvbQl5PTk(M}7R@SFE~v{s!N6nUhwW)^rt8Q*U@cZ)4Jh7K zI$yiG*e$Ci1^t!u4Q80vMm^|h(QyBdFV0R-PW1E7>CqM6vU4jiw&a=OI*sGe#Q9Hz zvR}MPE;@L8vVy@W67vrbeoK!7ad`8CJ4)SNm=JUvbOV!S_)2E;s^Tlg zj(sT2Cq`3`}4F+L5ffbr8t|>(rjWzdwjG4HdnI3? zjF(3|BjkgRaEMJv6(S7&BXV82zZB(%KDl*ggOdH013PLg_In$f9i_Pr^$*X6RC zYk)5Ni(lM#DggU{gxEp}k$ewwCY#ZQmy(t?`dJmg7kRPkon!|f_=wvr&KkD~ilcHe zfuN1&`#Gdd<7D`oGao;ZBQb8@LaZE{^=cT?WL`B%Zj*7Z_@?)I+T$jn>r_^$E@hhF zg*+bp`^gOW8KGUshyk)($^YaHaY>g-u_VY5!8xw8ufvxPLKQmtkV znS}pZTLEJfAW9CSlQN4j!kdxjk^R-yr1>4e^vlAq+F~{1{-Z=W^0kB~^O=+~ET0+3 z0GY=ltFXLa6yLY{?~2-W$}wluQ2knuORk41#_S6^>9PghBnJ{h8&hX;++>7xr`BU< z9`3Z$vP<>$IF!tmJ)2`gEbvE?3tEbd2xMe23iopt!T2y`l2En@v6U1Owo|-}d9=*> zy;e`vp(n1CxQW{<+b0}m<9;t%A^LMKBVmO|Qh)htnJ%DmT(d=&JO=qT(SY2j{XI&I z*J15#E}IUMsC@UisomFT?-ujA6EwMV1Vb~s@AGwfORe|AGN1hXE&vH0#cU47PvCZL;?Cl%}A&A9$?YxRy`ZTI^K`+qr7GEh6KIe_6A z^<}J`uwQ$=lWCV3A_`%ogkU;%NrsotQfpQBxG}zp4xwd@Yl+G`4&+=fi}PE`<~RzM zxe2^ZKI!`33ml|(sQ?o|wDkVIj2m0ap679z1@H}z%^tfO)zPyRhKT=8J2-TUA5sMDmdnd&q*F+z1;n#);rDf?}jXvuxI_A<}&chH=bhb z#?}*0@)JQJh~>c7Wv?C&2B1GgcPyA(u_t{Y#^G6f z@xn}t{ZSsCSLNTEcEpXpBq1s&%eg>j+;djN^08Z2M%bM}noYF;t=vbM?LjerN%dbv zs`N%-xF-i%&-91&j;h-pOTWPRzw=W(A)A+;3@N9z6OU-q-Yu9o#Z+&)<2*dPsUw_n z@OfP1mb&!zIVC-icW7_+&4Xwd+R6zBE}Bg!s|8=_I{ftu8ce{B;uos4jXWtQo>q>b zC9z@)be6I#Iu!JMqiAVhyuN9y4(jEP=;J~nG=sU?EXIm;@+)Cuj9`!VPj)y{hLvOz z{96?V{=acq+y2BGhWN4G1fqYY_y8q@UB--Z^sU$KzJoiv0gg_nOxzY@H5TEN-dv1~ z|8ZNtb#6(Cv4d>b};PD_qMb-sW;ye z)?(SQag$&{hWsO0Yq7wcB*(;n36YsyvTE&7ZFO(OVIfa!^rzd3ek@~LnF0hnSScX? z9c9~g;;PF2ldT~7|9{$3MLEq+!hA^tmFPfR5{$PmFSg%ttDribt3R6Id7fxqum4I$ z)4V}I{9~c9-S@hWX?btW(zh&$?Mq-~r0Duzz#y24TYIzl%JvHhc*Sr3E9A09A-tcg z0zXaNwk|VG$=bh5@G5u9VZk}Sv1Hz6N39~wf!?oK(n>cub-SE(%j(Xn_~OlS>7L8WR0O^t0LG9{=+mP`jbi*A!yw~mBxyb&Xqgz}t|%1# z?)!2djC{LwKdGHR$*_?;E%GwMsQ5QEW6@m94KT#pcp^1P{{Ow>=!)~+C%7ML;SCFC zcOK923=j3Eq@zKI;; z`}$Bf?axyOpI=BI%;fe{^|4t!TaMVsckdS)W*(1U*AU^(Dl^5Ee7zBZcSlEn7h=zU zTErJzh&NG9cdxTZmt$1~7LRw87*ciGkox>Ah!u{qS_)8A+HZIU2xLC@6I5=AHP@1T z5L=xcNWXQXAO;MKn*JJexY(pb7w(7)Dp0&--;%o>lJ25fp$wd-E zWx{SI6#}?x4X(CBr21GH2!r;^E~0qZ2?@qakuCO49Qkz#+d$OjWSE;N6>^mkg2b?(1;g>k-VtT=;D_W zoRie7Kl#C?5Y%k(=YQhciIp=ad|VM;E~4gi>RVv zS2tAwah>P);sCIxso=LPQ`2>s*fL-SCK|S!`ZO_wi{*~@(`*jgyC>6T38W{l-w557 z$o=`Zvu-N?3u`ftS<^XBc2DB%m!YB>aaEev4ekvgXuHN#F|8&}OylHR;0%wxd83{q zmCFOmF19hzx!8KtQiafNGkSAy#?xjID;CJgO&pO7D*A&P$3ue3FDOfdT7w|vowv1i)`q+r2aY^NCc)q)3tMH5~$s7*nW`N)S=}cE7wCk3(ioC#~@t3NF ztU%S$%v^b4X{BDOnJSRdZYuMG%_}ikfe3T`sX<;WU~$bRnOX4mtV^)Lu%|oMn|Jxp zB;lB0wi_9E+dK4=NXy67hCO%{ertnhMCS%4*M&!NA=*wtQT(#*b{)WYV2%zW91$RF zaagHSNgJ|7Bl7^N3$EA<7lO*F(JS39x!##>;a<%9=Zf6kq?ZDE9VUaEplfy4r0~&X zwqQ(2vgUly%chLfM0|@A({=rsZAO+t)J9OK7Km}o&Z78cdu)Xc$mC}pYa=m6l{TzV z-V4GUMHR_+TI%ndSnGZHW-aTcH>&(;JI}G!t>AdbJOXRC>qAeek-OWHJl*&+(G%+q zU&$r&o^b$uv#z0Y&5a)0>;;P5+US1fMhEXlA4sBCMEwU~iH4F5sylL;CnJ429eJj@ zVeGCS<^DBHM!8~-J=%GCN~jW~sOiJm63{h452T#NeAaTX_|Ga+{wp5=+;2>PZ{ro9 zf#-U1Lc3ghb9oZXY?tN-J~~5&Uj=1uu{%0BHm(rveS3Hy@%&Xe_Hw)2 zr7!0F)Fk%Y{sff35GK2}2GIE*FMi{;)l^2yndU_8=pTsDztM4o%i@V)8```3lVEnf zU;x@Mg41$w)@r(A?6-UCg&WR91W$rkNJUNb9@+rFC$_#eORMkBkjHgERsn@0BSkL* zX|zw@;ra0MvG~8G?upP?*&L$64^ID^U!nC?eR0VBr z5w4H*0slbG8|f*uoZauN-!}Nol@x^VveI8{C!kL=W^0I9=sAPvzuc0^DK|eF>DVm+FTtX`uVDfJm**r4&E!5myC`eLuvu)$6DYm8712)w!XIvXOvS%^xS#K*2;E3S9@tLSX~kRwB}h{BR;2v~sR+ zjjL1qBz;5CV;33l@w#dzL-pvbe49?s*$|Y)H6#PYpafr{d8AXqi2K_46WuQ(yq0@| z)3&52R)y%wy*Vi|1YI7cYeI(f4e~@nt0{>87A)QoW&=6I9Gj(al%^ze6yQsp2pdXc zH+1foREH~^Z*9Q0AO;JMCIRn_GfzSZbVyvEB-SE%8vd7tQ_Q2+OvN4v65g3#?^XFb zQ~b&urB_%VqP`+=U#^~ZaleUD#EPf8nTZ8yWmyx)Wu)TR_YM&UoM)aCrt5bAzP!4A zruNbxFu>|usJwlD$|20^*#j8_^WWAhl zq7=tF4|7YsIbziU!wABQK8R(hYs06(#sFf)7!;N1qrPOjdL^tNuE2kS*$F8=lYK6u zn*p5GKLMb0S{0@u;Zl&Tr60;%zMEn}hnRn{prxo3)2DLn73_1VIVKE264QY{j6-ee zM=dd7YKSwFYb?d`3;2UyT;mJ$o`pAjREYJg|1fqES*L6I*9)_;+{6IoiWe!^Jer>=J75C7DENDCV+YRb6 z3z77F?0u4APf=O$(-9UlrGNwM0*NoZRgHqJF!bvoJ5#Nk_Gi(jxS_uP#xW`o_yAzh#ldT;HT{_(LyEK zLQPWv zTh&?t`BwqT(DVNdNyh|#XRoDwA*}vRCIh+U)&CaVBJZ#nGdIaTS4$=->!{F^?fg&4cdAN$PaT^|6HvQS1#*#YX;+8+Hldn|PTQ z`2DPd#a79`YYfSvPYgjj_(%YAbhA!=C3*%Y0WR>@Bo+=%oYC3i+j6BrlaffNlMhgw z#1DDcp_SqY;W0+qBjB6%t?HBeH8VUNz-jkf`<%7+oeIs}N(mRfYPuDmscdHT2Cz^x zatg!t+nuQ&0hC*5^e&!XSVLqS`TX!NiR&iyclK|Tek^wYHpm||f&*k9kkBa!6gmEc zAuKmM{s6`F(cH3!XpNNr}BhM@QeHPhctZhbp_dgSHW0I}rb<&~-D?jR! zDZf~A39b>Ga?^imU*uq_G62vn5k7F<44KISvx3i@ zl#ybg27Bq7G=yY>`7Ic|2}q@7y4$t4Ys{8~*2`<6#FEe;;A=w5e+U3&se689oL~BZ z;n!eSP+-05_=P~}Ct$qRSrnd6&%`n&wx0jpK(4PvT)IlJnT8X@7_xK-VV%6LDFh&4lCuF7NkxR4IdM648bN6*LwsfKi$UUm#wYR0?f;gCAhM(ndd(xpbOEe#J!?vQi;{FOCR3BEm)ACxh zAecX|tGqhzes9jU;T16;jCE%e-q+dP04svM=8=*7lw&4q5!zTG?(7If&b4fZa5(mL zk3gfiT3?Ef2(@U+?gRg1pVDoA-ELO~>!Bz*k`#kFHs6vHt;~Wi+oiWnew0hv)t|J5 z*KT!*nY;k~PUG6U?_~6Vxw*c#&b{K%AN>=Tfpa>q)Ymyl@KI?sI(pa5`FfB;>Yl&a zCkINa3FJIRfl6Rp>m>89i6sBuyD{NDXO*m!$;RlDLo|G@5m7X;u$$Q}8+v)*v>|N>&_WX1<*H}Blw>dS04TwX?T-S7AH8ZhS6aUA-HV7&i~I%kEybUra4|M?U)>3Gxq^bauSvHo{T!(dMZ%o zN`;bOemvdY2uJK+C>T=YA?vXFMBp0jAF@g>&wcN8;K$@F2}0a#?}Z@DreU-+Ae>Kj0} zS+V}}f5=tN{D-D~gu_Cw37q8nLDuQOi+;|Mj!4-o)-^JneYt2b2Wc{CBGX;`UBf{R zOyvBj1KQs{dc6+9JM|XMxF48DVYi9YXv@IXTOO{gY&&Al^=LC>^7pQ+%9J9(obT*q z9dRJ`*xPbs&Qmch%6_dsx#+wKi0%-aG0d91zv3kubO1tsB|0T`!K-UtS5bDo;k4sx zYhwJJT`2H#kNbg#s~pd1g(bP6d42p|OOQ*uyBojs_(`y|$ z=YWpG$%xvrv|*F0MZP}>JqZSAIlosKQ3e|yBmeYJj}wj4P)vD@G(Kms27LsYT0B7* zDT<;Ju5m;gZcV@-F&W~WRBf*|0Z^<5zks#dqfjvP$_$?;q~Cf(bQ`eH8bTS_ zeRK-7VpO!fE9wZwjQCkP&Sui&wF62p;v5tr_KwEYCuR7IEywI@-%(4caFj& z(;!9u=(bTIXgYzKt5D>a^>;dj@0E^9;kDs=#Snu@hcVN{Ct=&7Sn+XE7^*cs(g~78 z9?8f|*g4|k&@f@w01HeNTlSnV+j-6H+?<+e*+g_FY9pu*8+;A3}zX_;YlmTOhW zItU+<#OW9J8w|JWr|^JTjWbS^0Ciq8)xYeZ?`{wZ8OZbkk*Y!EoPv^0%GP(6;}~ip z+2K*)NSy>gP~#_*5VS6iM1JW^-8w|~=JosJmJ^uEO{Qb0+d8y96JiCh$QmEOLQI3& zk1^|P7aM2DFIy@~or(=5(h!K|)y_<0pR_bdfUP8^nebUbH}0V`jZqe2cdE|mumcPL zMUzXXE$waxmd(~BfVG$m(0fd9qP*o-Bi-t#2UmasKYrArP6__|;AhQ>M$BUYT95ig zvPf>%4e|AV`yHhbNs66(Dm?twUWvsFyFBBK$sBK?Z^${#x5+qX!XnV5J%I*2B-Fc{ zO6!K{q4n1CKapCgV>7dkJA)>gj=uXe@k|BvM~ptju67AVt%S_5D2s$kQq9AhQyT_I zFILRN(J!;~BvUOBlrB860P)`ZLx-1R%5T?am&z6BLK`1TiLiNt#`b|&5};`@Rl+st z&X!QQ3ir2_hy#!vm!95E2r>)!^eTWGEXbveb^<<8%RBQBxG(5|1aoS6x<2X}RuVe@A0^bJUMSo%=&bI55)A3$WYc z1^ssU}QlRLpVsMcT$pT@M}{qU?+bm znevev>FF)%R{@c?aXg}PkP%5=@Bn##jKOpvp}js{)?5C!r}k=`yuQ*)MKZ-vCOJw{ z)5Gqr>-6>xhZIT#hjG-+#s8Dm-Xw|@A2-#3v=|YIOG8={ zD6CxAtPoeJ@}+f>F2)tgI{t8-V4dc624kH%!a>m_(QQ=?fic?IEJZ;dcO~Q4iRh#q zLA;(=SVha&J1tTip0uWL;aq7LnY6B0;tXl->79AOXvSVOF_M-0i}lpM_+BVxyM+QZsP4?+i}`HTwR>dlbWs7%rWkET9MzbMfKlm+hW%_W^RL~N^&$|97^6iweZgyl2y+n3c08BK zB4@WJPkB8@F?0m)2hShSl*lnbu>jK;_Ar&{YY6z{04uWw%%e@F8y$;ljSV$ch1BTH znaEW{4RxE%yHQs{vGDT{g$~4jl4va5K6A| zEM8MR-KMRnxPic7zlhBp5Acp(h)*3P$Ep&HaGtugIa3G@K5e^h!uUmoixjf!j@~s01dVPxMCY!1w z@ESnGt{Hh9O+j%)0d+8~ufaxFHNw<9NSCFy!<5;%h`hz0yPXO{`>^cFn%mDClIJ3~ zA0Q_rp|x$;+G5~qf^_eMeV4(q(2p=9`~kD;?}%6LR<4QTn2QFQqN0zmlI&tjPNB$x zT@!8PG^CSm#;m4E9$*)Xe--38{L2@~U59xtEopgitZmDMzPz{{-laf%R&a@(3Wm)dJ;Uoj37^sM~89I8^0`a&a zI2EK}#ObVe+s1RR{^mvYcHOMoKZxeE6Qvw?-uXK~u}Syqn!afY;b-eFmh%-J$PbH< zR^4iL(be|2MCoAGR?R(FpB$i^vLo)EU!&iCB|0bGO8NI|Fz<`^SBk+9pf!T%x!8YgF^Y$Fvjn zv7N-uff(al*VqriZA= z$_&(V>A>5dVjfTkbb@w2c3YDis0#|U`a~C>+HmW7Ax=Q&1FPF8X8}-D8zCv>;OKHL zR7i|Q1Au1)_@k2Hi%KB-`S07QBFdTAGoHWw&wl-{05DgG|~lL59{zp zy_!dv2`dQND5!8g2EkYQOm&!*As!{p*}fY5Q%?vw<{nal+fGE^Xa_|6Piw~!7MmB* zN*N_Yh_}3H<87XYYwqHxmbNTI!;lM1O6-dZ{fKtJ8B9=jk6&5kf%+aZDDSXpdXwhZ z=xa`#Vc>d*g2pz5Hml%_5Mj;Y;g3fKNNL*TxA(?H>~eVzJCO2ZIRITk%S?y3hq~u} zgR3qJDIdRYlB>Kse26vaq#{~^7StyGMN%v0xfvY1-|)8!_uv&Mm)h;U7f`+xBZ+l) z^r@Jx&d@S%fNn5gk}<7It=W5J(-)aPSqaIWrAg8wY$B@9<}(HoF=OS@h-d$lK0*Dgc`Be2*C>a+3$fz58atrv4c% zV}dnfW9zAVK0%BCpvs4JKKp5J!!*xzzMhpxns(377sIm2qT~|Nxh#FTDwc!kbIvT(R0z z(m#Fdb)p4X4AUB|j4)`JRM#F^`KKPa!R11^E2cuzzXet=gV2|yav2?^C2(*D7aPe8;M>tQ_!A=>5XqlFOlzdUrg{o+~+NQ+0{Rk zStxoRtwM_6JW zVbHTqhKKE`tq|i*C4iJS6IDsMkGalvww(b(<^mZdq4}bwa=@`h4*}0&gm0M$tVCIB zweaA{dfq1Kc)`E^he@0FSwX42rwH*1Em;cthl-%-Q9IKC8kX2sD3)_YHvfsFF&^b$zDZI<*y|CD-A{6NogC-JBF% zN;(a^88{+fQn>Jr!o2Co*(cSSNc(K7PHQAYa4*Axbw~+r{3FG%H<=`p6XQb>2JDKH zmh&RAxr2FsFe2`S?(YTw9vtuAxgUscw}h>!o8Oe}PmEb0rrt@Aql_TQIobp%oPlxNC!jdqc z`Xw7J0^t#{7j=v=G@O}5EA?EuUD6DI*^3Jx{ok6;ROkZNZWtFlUVImuX+}R;khM}j zAOC;z@)OH^(1X5%(dZtj&t)5lw`KJRs~fgu!%3MTzdF{{?lcjXaHj&6!87xN2v%=G z>zz!~J+eajD3PBgw%FXgdqO~=8e;|>`e0j?o;cU3l+pM_ANL)r5>d=H!c@HOM;r(3 z7Uw_7I2r*0`mrQ$_EfAfiiu*fbiJ;dS_lx}OFJov@7!N-&E+e>>4jVnG4^;HQUd(8 zjYKweoO-Pv5@;qEJjlKKFo2&n!9G^fR)n^f&2wc|H+^+$@z1}qx*xR(S=(5R01Vpw z&vFgREu4mlJOSn=W(x`M-3SE9$p)5kLeE3Nm7kLKI?HPK(!HstA)Zg7C&7IX)K%ZF zwEg#c!Euwn>+!xuPE;;*8gqn{Vv@Uwz*Qo!WGupqkany>IIdn8=p7leEBNZsu`TP$> zz}IDQr5~?q_hs_9xM=OHF#)^y!MALwns=(CXVZJ_y_Z6uz^A8^{uv;{sc%EMwruTK zyutBZp$EAn0ab{8PM@dNiB&6%5~Bhnw-}5%5?$G4>uGEU!rew3kqE5pSVj5<&Z)s~ zQh4zhxCCFMX!VrcX;cRQetUjMWD=)f&0(^hVvLOl{NpwtWke&c)%Z*2<(wf9v}qQp^Bl%LWJ#C zK3U~QBP|jcz_)amE3^xrd)}$&{yf;h zrJhdT!_n_CnM6no^>570gL|di&_Y&8Fkn0rZu@Ft9w!9Gn7P;S&5coE8e4! zVh(S~O5~D_3ZiB?6aDLK3BCq_rC2b%o&Z5veR7> zpE38?e( zx2(OXh7;-`gG^ZosOv^NwgAZFgv`=d`J_-usFKMon6xUCkFEj2E;Sr-3-*>6oD?BNTx^&W_PeQFV_C&X=P`MxrI| zvJG~qC#W$d7GG>-R9c9DGU)le>V7y5*rA#3o^{#mlJk(i zhJO~5V|d>z+~=>ZeZrMDVbBYn`@2^C57(Z6RC7tQzmM8$0f4)I;(m`zx?+~3#*kVx zn@$a*hM#qe%U)V54GuVbqWG;xW71KI)#hQ%_|%=-o0bV^=#l(>w1qFP!oLNoKnDYn z`_Qd?>q!Oi_Tq=W`cvfBeDMXuPjw z-uB55IW_n&J_*Vz2^i>fCM3Ch{Mua%Zy;evI9l=>I}q_-8WDi(T}4_3aPP`0d0!sQ zWDAYVZ5Bb|dnp3HFI{bvNI+01(l>}f&jK`dHT5JA<&MgO)wlNB03h1|a$CjTESsf@x`{#@q88Fgr7-ES8Iy&7O)zxTIe(+WspOk~kpwyHQqG-x#1aseL^FB-6)m~Jahs3N1od8xQ;luH?PLk2!OEYbzE zy4YZH>BYk(wx@Cb2oKFIVvL>8^w@p=!l1an*cjMh1YwRj3Yfs0i zqA;xgBjAZ24hNOB=hZi9>ED|3q)e4xF!-ymfK~u`QOe5Tp(vwi)z~>wrN=Roz!s7V zZ|SUJOv#a0-I(a3y&LkzB|Mg>-R;)H1qEj;KJhVhg?`8vc!O@~PRTa zI}kjIE0tma2PqB#WRf@TifGWhcTX7quC_btuh`2gw5V1oCB;P&CAH#3qlxZg#0nn{}C>|@1O~0|;ug`cFr#jui)=W5M^LR!} z0fro>gc2r`A`W)o^cg{#jQ!3ExkiNT}^q97Bg$^q5r64ty(Pe5E zwW0HEegx9#_qJr1iTzPX4PJaUBiVTb;0s`>|DFFMIMa|UZWM^qifwn9mw5(7d!(oG zWQNSR*sd#_tyf_PTb49sY{^$H?46Uwna11(5(mr`f}Hf;Uxq&<&#+F%XD=!=R}Msf zakJt!&9f07aMRp3NZhVA*WK>$f#cPK^JUnmbnp4M$R(CsvDT};kQWyR$c;*FPT*jg z#QxfXr74ggZ1uBXP7fc6tv(!Ez3(?^dCwxJ@`WKbmXLocY-OH18}6W8L;(C%-M-$X zVmp~^6#!ae_iY{<&J-X1G!+%KkWxLa<}1VVM?a%{QC>+z6-sbN=!)!BDzNtOd+);G zJ<2}W=JxB7c)>^uv&h9a8NBS!o+3^k%JNstcNmU}MYZ^&qP4>O#NVb+eJ%{`rRO?d zBV5~?1B0MG&EI8K3dWI406f9|D5#n8+430{3~R*Dr>kU|0E>_&+vZX$$h7p7U!3|3 z0gm;Fuv16iNg_O%XOyTqLM=iyxyytR8D^v@|1ZKZNA}M_1l$yVf^-1JpH8wA;}5Y z3-WUzln`h!hITIV*1D(jMFu7%4N;A+&>^A3oP&8XBf3XEHsw*AuWJf}!U@@K;b5Fo zVv%VKIgi(iVsJs@)@8=tz}du{etIAYdB(t-t>C?=FVCEI9Qfzy0W-sDB0W4ci{I9? z+9FBZ!-Q&rTI-c5VtraBMp6hU*6_JhTvZ3YVsrbGBY-n|abD+XxXExA^Y7!LQ_Wv( zMKh_yW}XkVi@wA*#uICqX`SrQVYhAy#hE_@!Ix6!WBE5sqifbnBW7V(f3o}-jTlCZ z&cAmTcG!EN7V%YWii({J{vo`AKC3P*Cn64UI>R^Mcx8{uOehJ{s#?}Vg@^%m^t0Qj9uk%_D|De; zF+%3|rbNpMxT|cV0*rn6)j2$@SY+0avu&^Jnx~}ykNjv%?*vC$=0Sc&XpeoI>&dbz zpVjd6TWDQr-p#X})ZH@i2gOklV*AMe8lZ}-t|cj;^s4klk0B|?2N7`JRDJS8TKCVi zksM6SYEofP$i4fUpVS&~`-URBpePfp)0Ye@zY;v6Y!2o?OKD8`qe-*Gm?Lbn@4jA! zJ}HP`xn&H~Kl)64p@qL1B+!rtn|zDOK6j?qh-3uBPfS2mVme*6Oxexq=`hdJjMI&w zZW7KM{?a}x>fHq2r5xWNvpBxTWv!3%hc7BFcC%=8uj%2Ff$U={!Xb)H>Y7q zXVdhyBMuc#DsLf47fT}kD@y3pc5(*N5(un>LU$`RG#mHc66;*_PC2E=rCjV2?c$ z`Lzn-L0+AqRMSj-Qpg;4aCx0_&vom-eb3~XP^Y7UUV>1kgqMauB6`3sitU z_e+b6s1C|JSxhJoEhfAW7STKvkc5KIFHwFYDt9JBW$nhqy)D_^82}q7W~8v46x05) zxJuuaklsD)s--vAd4&kkT|@i(r7M5}1Cb>O-r@?G!(%UJVWQgf|MBj>zZ|N>ML#c{a@*zD*dfL@4y@nf|ITvWvh~8bWMfKtja;>|$tWfV^9)Cxtd( zqM`?v-LWidYVPl=N{Gr(BI3tb8B33Zyz@;r91EdY5e1dVVK-5s>bh-~KjI&Twj@e1 z#z4C8Z$L z-rfkgPvE}f)fO`_YsLK!UTE-ahv2GT_CHwOvaQpMABG>DeVXFBJB0> zCv9Y{Efg(qK@*y}fJNFm+sa_r6E5JhpB^(0($fAITAheeAV7P+F9q)_7Em$TEY*ba z41)eZ@$B>F^7IZW7BA8w*Mr?K0k=v@m6)}+V!pVdaTy8=>AJ{MnqG=NGueclT)``t z`m)>ut1?mG5lrz(N^6DejY$(VhI>QFWxkYWG?jkEB}9aE3F_}>P>*l-genCGw#wIW zj3yPsU(ZIt{J9-|RSCK1S{eG+Au-I5Ad-uV*=S99aX#>FZA1Bj{64&I<;OX9m!E?) z-+AaS@t^zYU6;%Zx^ie(wOOd3$g^Xs;~@8bN>Km1_VtgVH^O~@pj5(Jp*@^4i z2ToKXqsfTA<%bA5Bx%F#_JHJ@i-3+RC6Aj73v8$05v3&=9-ZfY)XcNK0!kWWL|HAp z?D*t%pAu(M@r}P5aaFq@r68ZCOsr`bZ|X6Q@D9HAqAX!i$q;%CtFVZuh}&7~q`)iB zn#ysZezx~^kCx8>Zc4~#E_2(9Eg%d}L{t?=(~4P(_7iRpGK%bDgG=MJs~c*eatR!$ zg;HDni1Zc83IP8<0KojsjB~QAGGmKt0UD+>klJZrn1#B*6h9OjTX8E#O5uD$!s(3T zhwvbiYpo1cg@GGj(XO0cRQYBx(B1i|7Aa|H*CrI{i3BgwhE!vUjG=4pPf4JT3N>=^ z&(}qP$6CzMLz2?6Ec;pkJzZbx+P2U&&1mK&#!Ti9!nz<)o`(K4`jtHPZMn|aId`Gw z!-qsKpJIaA-M6@?J2Db}?C=e(D0qlPj&6Y`J!%ly&!1bM@evp$Z!Va8-_4J0j`ql` zg9-%jOi|Lg-6%;`xWUB*md>nS?&bT{IiH1UOA~QTe@tx87y&y_qIeWcf;*z3F|%-G zIu5(wWxM$unGHv9FqRePL|4-cT_B{(eB{PpNuikouN^Y!%W%=E0)UzD;j}|ii`v|$ z4O>o4lnu-W_P$lAr|}=3$cdL#lW^SY&@ESlcPt7qdRWb5h4zZsE{Z$xlWHXgn6B5( z8X7hbUjRvDC!j;>?K{v~nAQ1m~~{;flIn3q+|Nmg>3UmL?kQEf}YAFC88H z%>xJHjI;D3rJIP6v%eX_Kj6j8&z&8-d%oSe-s#Mhjj0Y3!EoKq$-;}PA?SpC-ALF) zM>XlAzj@(K=zSf-3^fTH)dW9?ILb=iLc4T|p*9b0?xK;VXLF>Q7e- zfPf$ySO`#BXlkYqdfRusWhSQt#!as^oJNeG*TOXuQghfTH_Zs9rTBlWTXEhes}$u( zTWQ`VLoj-H#W_f&gQ1vMRE7#E&qZuHv3HAYhM0+DA$ne}^&RP~*RTQJhZz;~E@l`c zSDgzj%i)wVyUNHkyc820MO-KJ{K-?+DeQV3+X8gY6G;-6b}$6HZp~v?QEl0Z zMj~JK^h2_z8&T?#ZQ0_t#+DPQ%;yUS$mi}FjD~^vF5)GnxyrbkNp--?qWR=Kc^Z&B zoUjZ1R#JIUE76w6E=^?&olQDo(6u8mVl72u@hwW2Ztu4Rsc1&GI#%K#5!JD93P3^N zT5Jjd$#a^Q0NxH;@4VLb?L1*RjW~q~kLW@)6?I5;zC9rN$Zuh_luH4rM{*>;mJ~Qw zPl2C*qJSS0d?M(W_Xdqs3A4vP(Oas2fP6vF~pyJxNU%453B(*qw2Agky%|X%#i&FHn$5djs@% z!aT*G3zp+Mj&vVb%B!ULUaycKJA4*YXDDvLey;DZ?d)a}x?^BqP15JQNMfk4h&KzK z1>4PuZYDE?_hF{ualVA&gs>8G@2{FvPxGi8OuclKtofEob^sVc2An1LMoGbzFMS`S zM+HuQ`33y)AIoB22rpv!zay5_&Xf3UsWGdvfWn2!A4ke)>H$5e;+~&uvWTQq*^!;M zj&05pr1c}>btI}-E(|K`s13KKgc{{9MDdeCgpDpKZt09uC)M-it5g`0xg@7-$JVAh z@oefz(l2l9h8xaS8|jA>*oIv=C1vq#MRCS87AXTqqV|nEH2-PCedCu2k?jsRcLKu% zKACh{tyV1+KZ(Xa`Oeog=VppsKCkui83cDg6Xpb|AY~y6mYUJ-V z68WLf$p}a@0A(fFD?RMnr6OVB1ZVtV)w4a(>XlVp3|j$MFlw33wz?A+3nM?c_}{op z5$_gBlrs)zRXNVWo9wz%5TVWwK>UY3{hPRHUT}l|4li8%ob@$L*%;Bz3_p?p=0C` z<=Mq3oH}*{BflJH+xv7&dULdz3Lrw`8GIIHvEd{Q_g|qTU{Fy!ncBjUWA>$4P{6`= z@<|vyH;liY^LYVRBy)bA4>urhI2JKv$j>VCeV+rwl<_hQ3Zz3 zKE(Pz`GeCZ^7b*+@h21Z)#N%K{&1ltsVFtz#$$zjsxwA95fQDERn1ByfY0Dz5PPTB zNz((JgFNJ~Dd?JwvUO@_*-E=Vy~(N<&VuO?Y6&CNfkEeEbGt!i_Taa^io$>*QEn{9 z{sP@pq)%m=G()f$D}Oz0#$E3@b>`mkvM!U$BY+rnIl?rx3OuDIbb_+^-e^RgpMmU{ zYEb(6SiAn9#-35<86Dylbb5(w%qpVkc?HhBZ%QT;!Jx9yAgXhpcDSbqpY(@Fm$P4- zb&s4SPCtG55Hr2G?#CAuT)PxDZm{dDCa(r7mOF3^DM0`p`$Euqs;6#miH^V_UB{m+ z7c+CvM*uRtBD+Ds{#{re<&A?Q_sRm^YF6w`Axe7`ZvW6(Fk#D8Mh8C54emwo#av3) zM67;JBLWcYn0Suwi}O`b+3wcylN61rvqcSV(wur=Yg?b#o<5~?Na7j$?3S!+H^?H< zsB9DE|6$Qn$Bp)TE@;-HT@1hT4Fh%X#`9ieD8K~C+1g)h$ljn3D-EX$=y8BTZ95j9Hy#`i$+ff=7@ zaDtInybt=I(}K2%JyJEH)-P|QL6n9zR6>f(GjBl3aALdTim&eAFReMTo^Dn)yYD)u z`{1BaaNm3K501H%lCoPi^t7<348&T=?!6OV`?3e#?)ALVnL9X3e-vbzcHEA{s78RQ zzUuqQ%R_ZP`UO;T7C|)gCIw>;9DdFv_*O@G^$Y%kVcfR1_hZ31)5tr@XdVxe%FeGA zlzGKNKFzC3yX6xlV{CA#%$YpD4a4yibx|5tW}aMWKOK9PIf6bc@&AL9!4j0R$gNB?u_Cd4<1x^FG${ zjz-ilXshu(04bs`D4#6M;wq&otx`wO9*dJCS%)Js6sG(vszBvnYz*LoQ_;CL0f_=B zj*_^19zEM1n#M_KpLRxLZ~#rbm6vmt(?6Kx_(c{I*LjYD&42IXh55S(PWKxY_7zzi z3kGQ|@{)8qp6UKD&&Eq#6a!aPS=)PHn9S6l9bEw9(7hKe5vCuS?6Woa$fB=T1{=XB zAdw#|p3A|%cp{v-I7ib#Uz}pFv;luBJYsUJg#Vw{m#{`rI$v}8VxGz%+cbl!*nQbcqBoncU>ae_}mu*$GyVX5^#O!1F<7@fc zYAMG@T&v@7nSz|CH-&&&Q1fqUM}ibq7ej%3(R`el$3S%(Zj7~_~0qn`r( zGE26?jwhklbgr!cBuZq&_La0g#SYQUFQk!~wMt}YeW;O5uAQ{DxVDhhw)x!`Ac@Fl zk4dc^Asd`i_NyI!C--IPWX?VGqtWAITbWKQYSmz*P|z~cGH zkR~%R&oDJN&hkVU(bQAAUCUI-n%sZJrUkI!Dk?_2h}>c&y~}mM>_zHd7Od-j`I&2V zXkk)!bpIgAPZ(D?Hlx&oNCfMTY^OfScWK1J3f|!jfExihzd0m5xM6e7=xE{+<>?z4 zz^1?qUKpG|fI5pg?jzPiZ?r#N!bb{xt01Q5J)pJY+D%)*AMngi9M zIuFH$>MGmf4?_P(I0;{sZ?v{u`(%H@cdD92d5jL*mPCEJqw!l>7qvI*t_`~=@a$M zk}$cvA$)yRxtq>hTSNyUdNLr;B)_A3AjW(j-dW<~Gor?4~@ASrtnA zgja^UkUA9h`y2lI=n8N8|JZIA3o}554_#T~cMZyeA4)<9ot@dYg8M&Eet(n=b_wN= z)srTM>;leWz$2A=+n+P6#*`NOH5@C&Y;yxcc_g@!cnHJ@Agu%dUJo3Pz%6DfPbzdi;5FKjn0yi3O!IqdH~2GJGS;Cv}zS(HaC9C?2w`lHYEj2 zdLNS1iW8s4tEYS!@|(MC$=F-PFn|y7?L8(+w%uV-`(=jZxO3q+na&A5-qm(M!1NIo z2YW^ie6Y}Q3AAEVJ8zBNC78yb3dw*^NhAL>goCAK5~-`3dxOT|=v`>WTmpQYqY+3V zMqp2<0s-rdI>ktRdh4T5_@&m*n$nHsgp8mLTo@c7W zOqute3wVE1sT_KcUz&m8eNt|$tiW%ebSD4wuLFL0pS0Y%U6ua?dQxwAtBL}m|9bcf z{-5DK$f};6r$f&>EtCYZM*G8O1VK70m+Rxw){6Fq5+uPEPfav;*F44-JN3cm8bUAp zqIY)A&3duN>QfEfkIlP%XtZhsiunINcdytWkUeVIlf<-^wMAC`BfNx=&c7^KK_~Ux z%)m>u&3PN;)8}7ITs2a_3?@VqFQ9UPfRW8j^e0J*+Ue4@*q98c~)Iup=CN=hVxk*-Vfo|1*#MJY{rZ!DXiW6U)Pzx z>05wVVTNtHJlxYLS+c9C;LnS!HUI0NWNcslNHc7Z=aM2dT44WOv;v* zogxipvsj2GCl30DVh7HJvcEexH)<7_QO+n*>gDxeHGGjgdq(s$+HGk9rVh^08!FC2 z_5ykF&>kFQieN!QX6iM|P%Eo%xJ>BJK4v-LmfT7Q`cn190yT0ij^t6RjG_Y7W^N=jIEpa;<;+^xbW@LX`+XTJ9g z1buWE1kM91DQj%euN_9HxTzMWU%VE8*OJJugzrR^_j}50gR&duf8FV95byLxWJN^T z$l>87D@tcFBl=gtIT78m_K9)ObiC&dx@U(d1YllGxcL{JGW^a<9Gd}z(~r!5l(it) ze==1c{qlUbP4G;uhp@%Poql923aOdQwC~?l-#qGo0{|C3EEa&nHeD>MgE)Q&H%mr= z+5pn}b?#a(dUbKRpPHSb#_VyAmQ?QwFs!A(l>H^$-RHF?#8gXgxqG0uIO?J)kjb9l7eFS-1S9YmxTSeqra;On@%}T1!VkdSMs)2MKjl1jM}u59 zb;1a&JT~`)#YJ&Cn|L;|F<|*+_>}T?ymhDmENAtzEYBDP zhgOdc+8w_*cBXKmE`<*HfO0m3>Q$x>afC?4#3xQsJOxb%S=~pXblN0?5RIF(W3a}V z{F1^Z9`McIzpS;FXUixL+$!4^*%r4K2A)#Ts__Xb{lg0m$thLrkvC_6X2Z}4;(!-- zzUtC=eAz5>rDjYIuGNLOc1C)LD{7p|sVvp^Js3@8{I2jeo1g2bUT$3&}$T7jVq-%gejx3!oYVQZ^z z!0IiqTX6ahx)`yR?-oj>_r77z7hL!vnQ_3Iw#N$N&HWy}F{TYIL*z>}cn6}-T+X0W4%t`z)Bt=2n8b5~N(tH`X6jBaZABYz zrK^jWIjZQYJnU22|0v3uzK+w$QR4_LMYU^oS|%}C8jFH`uo_ejr`sJ#=#=_pQt z-bW4R2GdfI&)|YdbYcd+3}(`uMqwRL&om+^h#$?ME$t=NNX#~Iyct<2mAG0#3ufz- z1zNC8!C1>f)Ho+NLtUV#w+I1d%%A}JeUaJv51oN2ZSK0MN?NtRUH~}et3DZ#gyrl| z_zXPW7PeI>tDpX8U6N6oD3#HB*L9UZrLp%2!1J%77q=fR)=*OLWgWmFM#MJ3HKR&IGA;B!fh@N)*=}|ZQ z3G2(R8e?4Gr4cct7?PN4M#H&Vz6yb4*qp6$nQMPL=6WO7pY(%*8x~?0G9<2RD6AM} z0!B-6S!aJ#GSMtZ0>c$ZcXg4UX;}&I6ZV6l>VcaQ-luaMM#RcVH!=P^b)~Wh#G9Fk ztm|Yu>EZy&?>i5o&h}O8#?PqO!G&=rK;yLVE4=~$X9-8y*Ik&2GUn58^!gt~DeH4s zV`4C@ugcv-ENWNsE&Q*B#>>{c26soTu<5Y#5+^Bu5Q?fd=n@pHt(&YP_j?SWU|D`q zcOmljau>WE`uGjAao{ee!z#FxTtttC13QrN6)X{w#?$;34XnCM4Aju5^BCyB#amvI zXwS(>8Dw_7G1mSS$(|$XSL1J1t=bM)Ny&U5=Md$oEu8cuIkJ@hAPJaN3PrTWCk;##@$WoSg|+n`g`;AcjfbY({=^86kKw|RDI22;UApv>Bu2;O4TRKQun4^2 zFBmn)z=VtwqLF|UINhWI1Kd+L>^fIabXNOHGCk_EE%Pez(Xl>Ptt}IS`tIC*g(f!( zi?t0gEg?@`?fmKF!#d;{og2_7f4VN&A#eq>FV#xK_<7d3*wCVROjPCg#jG;Yj3E=y zVo=^^y@3h#gz1X0rUhkwUwP0|2yA&>4YdYJ z8{FqepvHRcRQ0{_WKH9AWS&6Xza{X)qlK=Ye~jsp-#eX4QT+ROWX!$`quH2P zidGv%S4VSO#uIb$O{Qx$VUIh0i@gJfhK+!7zuHvk2q_^~EXWBeXa@C%9`WO}-(DYS zCBM$v-A=HMlAH9K&;%E*bYEFJroHafSi0M%=`nPZe$WV3fT91I1!~Wtiy=1pc?CoL zBq`f&oBdy`nZA;HO4Hpreybvb;i)M`VQ=|~lWzP}uzyod^fcZCKPl0uv40kD)r8@Z zIAF6y9P!mnutL38dJ#28b@wgQ14^Gf2wP{39|-#fJ%4M zP@Ka~8?zw21HOR&ftzM|@**l~jjCMQe)IDM@&lUk55Cs#Ty`BM85>tIaKHE1aq1~O zqA)azN>**tu7MU*Lc9Y^($C#^hJrQQ+tFE%?t=Hc?N*o{=wAP0l2-j^0W z!y}mgLe5W>q7-Z{bPop6!dyYiH4771uTkJ_I)|Iz*V?#62$tk#6F6s!(t!=Z5sJ;6 zw}MzeT~pE~^RfFQpJ|reLT!vtSM-W(oolg5EQx9W5Gu-HSeNw)N*_R45!kLgK=De% zLM`)LSHHnG=U*cIn)vI+Tfgzka>uIT^Lf4>{IIcNh@L~~6OxR*tF%aFEJl~jeNs9H z)n5`XtxC3=*=$U*zB3=qZHThvIY%LPE1*?KM|AWp;25hMaXA zY?8R<-E?np7z{6gBP2_+M2%i&TdcB(GL9f>xiEUlBXx&tHXUA`8;}QE0=+yJ2PE%a zE(r^Z*S-FP?F^3+gk9ixb4Kq0h#%Ei`*TXE2HAU?7`HwX57l@?;mpE;$3-Z(1N$4x zW;ExS+qNd$rhQ@v9y9^E3Xk;v*}f+M^sW5k6)zVyvw!Xc03BDzN46n0L1=s%P(B~b zr&iv`mbqx0^@*y?QQV63S42i*$^;nYH_ZfB@`5+ zuXql62qj9PbOb!7FvEZ z_lvu!8cgD`uNcpW5{F@z8T;v|!j%Xscp}i>?>SiZtie<6Mn8#SZ-@ z2iztn5tUbLZB7Rlej;^d9HPRwHKHBJ^FsRJpk%6cmQvHCO(jtif519Fye83oL6moi zJz@YQsC7(^YXkkE0K}=;tqD%YNp25ys8aLCLhq2US7S|_D&rGA4lvU!bp@_^nO-?l z4_|%-&eyXsA$()DHT$xRnp?6QgkVw~w^6O>qdL6bnoOMeHGF1`2cz;wPj zW+WG2Qi>a*4>rD0JrgM39?#62=#bB~2@I9wV)*_*R5>-TP=F>LF;k38wBJ#4S^Du* z{28*_CmR)iRo1Q?;aIBY&EC~wC;T=3mw{0YMj>|=k9m)QKHB(SR;7e8*$-usU`?(4 zHUB0c6NHH0A)xR+URHZQC(bbFTlV+N zL9dL50tg`p4t~lS;VzJt<*o|A{Rjv-(MzyE(DnV5!-W@S-VJnt5eyjvJ*S}jTL00} zi$?hHHasB2gVAnYEEEP=iN`0`ITFFzSk(UM~5KVk<YIt4Fs*Gtta(@O$cN?1-zyNF?Q*^=Y15pwX2My%~oLT=GxuNwU3DvO7HJ z$+V*&#O*^(l^6S{EK=V9$3De~Y}49qC*s*P=Uw-7FFX%iOF6ffB>4c#rizPZ;t!%= z%8WlsKXI%a!hd{DH1j)L1HBTjxd9Mu`kLi!c zD`KM=+`cs~1D6L^*BqGA35L$s1LPT=m%4~5*%szD&(3}*FF`c{fxnD3fN?=kg6OsV z4ANl|g37=T!d3^xGK5fgLYSf5D?L@Q;(ExhnCz9<-ng3-7W{aG4owUMZeZa5cC0BcSPc8hE9=|8PB z0>Q5EYUMYdAGtV59`jq_^*C;;GRMNc(HAzyoARG7a1fs8GCMZjT8pwbPJoQ&>c;Yn zv4+e4#QZo=CmN)P;`Z_KfDIv>D9989Lc(zWa(-d!qw4wBpaHqGVDLT129++0W3DS( zh8eJ~YaPkk=Cw@biF=_)jhR6Nx=e*SWc_%q!v^P*+`-RYd_cNIou&4g9?I_g1uE-}~R z5IDW0gp;s%Lh!QG$E?TTodBGk5P7Y8~)v7cN_W%Cs)~_y#gX)ht=S z9H5w)TC!^hsJSi7KGd;bn&=M}KGPuu%WYjoHJ&)UL4>s_JZ}!T5OEUVNC^EO)HH`!y_xxRvmJrPc1v4BjSS`s1bVAtwEqsP$Jyq@AF#NB( zx}dzv1f!Y0)2vf@zs9tFt<5{*qW)3weZ`BSFArYf{v2dF9$HLUcY{FW)q8Qnbj8O8 zTV8=Ftj&vk@MBHv6v>zrVXkKnp)p~p2E}i~;%-5i>sjv$AZ`xm?m)gYcm;7>F-@*-!Jv!2!U#7bScFx} zD5JJ96>;`3QOPKAaaUdyO zFao>kl2lGXV$s@3ZIEncW;pTc4)?{}u+nl~3Crgafj<$52((X>Y-*qqtx^J4C`}Bk zlgqS;ANvyEHaygg$)}$QbLhw&i*H#gwZXLTNnbEx9` z&J(mYxNZ3`kL~YFh>hN?MpfG62f#?Z1wv#-)dG2;u0wJ@oT>$Vx2c26@_$(PAAn8|7D-RqD`c3Y2c6+)9P^2_%qPMu2lSMQJGqR~1<};JiPNw? zI}sE1Gd0|1ab~Y~eDF#JO`NWzKic&Ir2oj&!{v*4njQZEYevU#%k}*csbO`5=~qzb z4Bw0fMcktkrp+b15Z7J+Avj{EDz#==OX8qnZ}e?Tr4~m_?ZqwcVLxZTn8SYctT~Jj zHU^MziFf})Q*I9?-)^h`*&^|*q)0iL-?9Ly^uz%Q`Cm7?@af^L&>K#V-3i#q&o7F7 zXe!mY4}ebL@CLgdIKIE*Qsk6)tS_$VB}#hsz8iA?JE&Sp+W}Efv(^3}ZsFAoZlH|I zxQ{s?^SdO&CMHNaN%}7$D-65VwPz7;I%o64S+0aH`nM)t10AXnW#|I3HzPG46Z zoJS| zl(_<@-hsLZQ~KOmhg@JR*)$?S;w=Pdk)ck^bgtfL(K2=s(dEz&nlc&JD5-8RD{IYX zA@;H}4HToX36OD06LTIywHp)zUl5SkFkllD8tt^SX!Ok?G;QR%29PoRyqD*4(Yo2hqi z^|CcgcVGgJ+@XI>cT!g%UL28S8fN?2LcMWHZJ(zD25&jo&%Rht>4bv^VMA|iID$jL z_-bK7Cb7ehpMfJ4x!^mUm|nHff4WA?hN|{)R8P6TB9fEZ0(C6&y_1{)zdq&X$9;%W z%{Kbi9NJO_Lfh+KfmA;>qyBLT1W&3eE^TKDA6Lqn3Po=Vc4%*6wBA}wt zX&FZ?dD9C_c1&PcN(OK4IK4DPz{gJ!>iUWffCV|3cV0k0johxcu=+-$+w#&aSzmPb zidf`BU-vC2L7``W>0>+jeF4Xl?jgz;NYJEiMVsGWrzm@WQEZ%xw?i<70e{l@L{`b4d&AsrJ0H-kx z%8QOwq6j{!q@xSrTsvev{&NuA!-*HSyMu!wPF0WzyMKg-!Vky&r>pS^7Zz(1GUoXd zI)}p8+lt!vE{jh-R9N%iJgUl+C{IEXx<}aNv~Vy$Qaao-?{aeYt(>%9=gxbU-1N0f zL&8v^ujq7Vyv`!QY4Q1)FQ~8%4b8mgp*lm_FD7$~PPA`3H~${Vyrr35s!GjX`{Kr# z&h+V4$Obl)O%n}}9p8>YKW+7-OVs{gH7=TF#f9>=Cy_X}`TVsVOT8?5D_X>iFU&{2 zFa!U?<|DP9ti5{dYp7Qi(oKK=*Ih-#*p)wBs3EjTZ&u-J&MA6p9{JPoljVv4iPY-u zHn3WF!{qC-bhx9eNZ;8g=fNol1bY@R36j4K>zls647Le$D60pu(3HxV87^PAW^c2V z@Y30qF*`db55f`49eNPFUTG+h*-Q_FPat2Yed*L**=3EQF*~ifT#*U8Lzn_ww5p1> zg5lw{=2`r>@$DSYMDKNXZ*BKP93olNa|T@YLpKL~0g|(+u|^t>oYV|PdDmDYFKA5I z!iDA>n!cUY#!(Er(M+b$l>64A3{B3yq8C#|=ctO-5ZeMd7*S~%VkdO-Fy;GZubjpj z!h8MOX$xSQ94(kHXNs~N`Vg}5%7mgoVGR+D9Y<)-a%*mr56sODV0j79xXb&#unNe8@3GT!C^AWx`cCw`)wL zhLUNT8E;EbJxujkXF;UEIYNrPzxjk2Y~jh|n6LYeY40UyGS~1O4f{E}ielnu#zLqo zB}hQAY7BgquN5{HN;UxdT$qi+a_Ezk9Pe&*W@DW)vm$bgK;Qv%*sd+xDM@U^(z2ZK zS71E|kXU2=FLF=e{JoO~Y&QU$iOV+zv9=SUh1pf!WA8e-D(6N*s=_A@+Sp&=^5qvvq{Po$rGCdZw)4pd?(OvBN%$X`3YpCx6F0FliF z%*HoUm=qI?*{tRa`qF~F7G;U-IA{7Xz9!uY_;kS`vNs6Ga<@8!#S>nhqT2?l6S>dy zd&tX}s9P%USNxB?%k!YFU4_jR^(^hFp;pQ$FvEihT&rdREZ>WhlQsiI}w>vk0&fcrC50c6LDCin<}8W6kYTMi9#m?B#$Z zZPjRO%SC0DR6VS7o=Q*bxQpLyS0=oE@J zGvY$=MHlnF6CvF|ON7Z8YD5N>utovKLCurUElR93w)vd4?0$_FShQ3b`40n;?6ITp zrbtYV5mMGyCcN0`NCp>dc|`IwC61=HAtdL23n*lnOJ~dZqZm@K@9YbqXlaRVbrygR zTM(QKLmw786I;CwfGCGE)0)BOkT_^#&9Wcxaz)gtxG*FOrce^$Yt@ILz0sjH(`i<> zoXsFri}6IKq4?ksPF5l4WmZ6g%2Fr0(Ux4fC11F0^Xll1y8c`6NM0>2A1(jHI|B)` zPqQ#AmBA*-QNRO>Ney8YNWMSJZDt7OL-E-0xfwrcPp@S5ggGQ?kl3kg}X8a8FkuyHCiGn(n0_xykT&+#m{o}k(EwcX>7r{0^vlB z%h1KaoqSj&>|7v|0#sT2NC1f#3VW#io-eJU$6+!i~j1);XeaVWWl zZb

78K5>2%Tabj45RC*>L^8$xVt#n$pp*4nJA1;K(dgnKfCs#Z1M!NMu>~8xy|< z(rIrtbg@KRFnb3eZQL|G(d~PnX62lvqHz+-&q1MZl|M{}2~dz15nkz$T)D#FgTjWo z9*_^>3=-WF5tvRS&T^5jK}Kw4z$~1JFu>`J27H#v4Lt>7be?Z;E2sONa-utIWHL#d z$e;lNJ22D-)5JX1W)CN@mvUiuc)&H}0BIpaR((dQNF$G)g*i}k^SzK0Cu6>fC5@M9 zDIS5Z8mwaNM%_%Ffk!Yj2<%6qbvjEw19190`qiOs7HnZUJ#426&SG)k8hmvKgD$)F znI)++#-1~I671dWsb}UAbRUNV9QMl&t>*G3A)ki;X++!C<}yXbF8-fK`-3=~mNz^1 z8_PVFt7R_Llu#-;zC;mCxic?WiYCTW=U2b2);M~^o7ma%RpYBi+<2s8+Mu(*o@E*V zB~dR3yjr2@U%RThW&1L>Q$k`ZOfX@HN7k3}Xb^0unL-#J@c$LvK%tt_K>Hw%&RYbGO zUEm(>=h3{(8?O{8(3C*Cao$0PhvA7ExeUTTxhC17`a@&$~F45$##WC?dj0 zPvraai=5G$ra07f0820|oeOC!GBWie_Y7~*;w1!BJ*ngfl_1mo&wnvDnUPAUR_5nE zc2y7JLWa*T0Ll_f75;)1+~N{+`DRf?>Pv8;x}kD+E3@_w&y=`K$S|CtqcH#=Kofq2 zVM-qyk;V9F>E0fPGJ9~2*z^qwne}c&I~907YP4YkD`f^ygMjqoNj|o{jEj%hIV)BG zyLG5PGo9AUE4;(Z)}gA>)gAcQ454_tC{I5ZGb&{X-2E@aka#%oP~QA)@bYXQZ}LIn zTl{%AP_fCYG4=2!llmNH0o$b{*8`XZRC@n2g!V-0y_cpJsmB5HQxnVqB5qo?Sckvv31={dS5@cf@RZZc)+c*+}>-Mbo1wr(E-xBCG0m(m7n=ucO# zr^2W;BL=L^<*!o=R2Hw^m1J7})Df#?al81PQmJomq^!^9(U=Z&Y@&tk^|I(mIBV4L zHO@4ADOm(y^vj}Qd$D98=kfB^(g+09I{?X?Qg!|Rra501-K$~m`6(JMm90Twch#eW zY<3MiTcW}>`1*i(I_4HfREdY=)g3(!Af_6w(0-!$7J`##eNAwSab%;7?Uj;02Is;GMqJO4TX6v#4w10nc1I7*b#x;@C9ePnYQFm|db zMT#mjYbHYcf6?@$-$RxAq_l%_r?1e3*m{(3a$=?#{p79(=mk)4^?rExmy6AIAx!?P zIRn>7YC^<+mf+%+xP)8z$UCp2AZ&|ARg|mc9zK8|I>EGJ+WT4NS6I{pJJp40U9r>% zu;z49UvphjBN};R8Rm%0S9EFsBn5OmDL8S!<>1VVy}Ow(^S3~(D--aqY$lPOej{cB z!hwS+B%4jg$ZhKHeuVcGlir~ZJTTh6spZRBi$`CI_C{WRW>Kk@k-L+lheqe# z`7m3fL5uYrcq6Vwk&d<~?=8K3Ov6qxp;Qi~@eJk8&B9k03&L& z6^rgN#cZZ2IeO_Ma#yw5|9EI(*VO5U4Dv4g-?;NNp`nHbtqp||r}H9GO(KhE>C*Rc z1iHL45*{G2Iu$Y`a3wG!v|@RIKQ{n3%K(7u&{f}ki!hAFmTqNu$B(ThRl=N#TZy#G zIN02~9^AJQB>RgIkRkC3dQVztRE2*pLT&}lz~-?zmJEp5z-RFg3>?APWe9es+@}JW zB#E`wJuY!RzjlyDyY@zc#4}UY&pnCc!SN}r5!ug>j(zG-jE-P*K+_V2!pfSeLJF#p!;R_VSiu47Le)hd7EL!?Wy;+JU{we>5F5j?;_AKFd=iv$8;oHb? zJXhGUKaMloNC4mhUAE_4ilVRUWs28fp&4#`ST-Ekxii*2FFC5iJkJS>#joK>Q%M^Q zmIj?Cy{$n%i8CmhoF&o_t)=N7fxmp9N|;AJ6fW+~F9hLf-Wfa>>R{xzwvW+kyf7nH<1$@KL&@;vQ!3fxAoRY;+@A zN<)bJ`U|0d8^swlJY5p8ZQj}xT>+U{3E|zTH+G03$XdrV%g5+uGuzeZ;SQ@$C`MBD0c79y#bmklk)B4(4wRNXu+L z6z-X}S1Q=#Km<}|cy)XpR9$J5Jd_vfA#e(x=X3*MHQgtpD;-nKr;Vb zU`nHm?03gZ0lm*u?E;*0kJLT71^uJg-$CU*RQ)D}RE zj9X(>Ix>T#a4hv5Z%dVQO=CnnO`r{;OvrMLDrO>sV?fW9(f2JAz5jt!RPCzmAx6%I z7dui~8+oZ(D|J_(Su2v@R9U7()zPO4K z5Ot>#AMa+`92xfjdL`*BO_SIi5_% zv{6H9;bTu>!dj`B>XrH<%lhVemoVI(1p{^YcKig9?IQP=c%&)d{qs^3JI4ARf%x4P zAK`KXb}7$l-8kTXjX;h6;IX9yXNmhDmM{kkXCRTvw&gMN#u)Ykz~V}nu%FOc-rS#} zVg1f|^f5fn`?dZ<*01_0* za=TUP^d?y6$jC$+oNmNLY%`V|wlK155O^yCtPV^mr!^VJ91tX1f)>cW3;70o#getde$A(qx^PIe-@gAu|1`P=%670Xuw8x?*K;H#)(AJC(l|1pGLd>TF80r z%B={HmR5+l<*NEr$M+9+!UHs@L-`~sW9ZqE6G%iqHt?H>sk0eky&I!2BYvBPYTOxs z^%>>!t(3_^Ecf7yw3BEvu_P$&H;i>Hcn%0d0uZO=1 z_)o2vKkaDR9KGH+t{F#~l7XJmL~i(X-@S|xPDIa-u~@E#f(Lx&kp$dM*AqDwR6 zb_;dOC0CJrh`lK+K#BhC_C$rSS`hx+4SxEZW5rU?QE<1g`zB;qtR%Kg2o>b61)#e%LX*OOG@GGZ=T!Z*?? zT&a1gs9W|{vNfY~pH$vyTyWZtYA$F~C2ght*|zUE8U>Tuzdq&)H7d8l6iy33aLgPm zb4yPw|Bong)-?v0NHMsgdc?4PFT~>+#NF4$(gTe)4Ub@GUOf$#ukkq3l}0Y_;f{qVstUoRx@QN9 zl9rh{74zqXU?5vochXJD@*@|r5}aEpSn&<-xynBnY|hf4sG;OD=696pB|`4^W~#z< zwYI+@Kiz*-LJ%lSt2*`L9wyV4mhejcf_7gaePfsmBnpvkOymeVzenIfBqsa7qoPAc z%i9NF3-zM^Dq{+}#pAwk;+}`OpfXjXI!^9f-7h*liIM2%AWPgdspO#tjN-3-b0Bk8 zEx%CPJ=WVhy{PSlXmVlv0XAO}YieR&X8P>;uzOIjo_y%7$xN>XjSA9ij+2O?fp9^R zsoiyFhDjTpToI9xL0HL4sVzY#2A;op4H!Y?#Tte{O@*`(1L5BNcL4^shL{A0@;kCK zUpw0kHGrJi^fse1pp>sq8u)vG+#;PZKikKXJGUj?8Zi~qai*avGssA7@>wbDTg+6b z_hDo)5}OF(Gnl?WL6HxYi;!Il?{>vO=E+_%gi|_#b2~qcA3&>|0g2eA=)R$l;q@;P zxMTC@#1Q9!Iq|`aMbUNY63`oqG1ksnwhfBvx9m=nR51J<7FW%xHYoDf2}__uD{r|N zVll!c=&7F`v~@~jQLjvr!kzJYQNNAz=@pqS-YFi}Xe8A9l9YQ#iHXhN6ISnVn_>}Y z(WTt%40~3&c_Ny83atQ6?dP$Uzk{2|VJo2o(c)3Sj6@i$l&hs>>&q5x&Z7N_Ney;0 z?k{2(yZtnm7$K94MVZKB=r%H{TRfL4;$L>P^Ryd*B%VH|%Z<>dd{@iIN3^e76Dy0P zB5iWS9i4JgnV1ks!oDxF^UokQxn(#yG~TX+sYZbsOS4*f9ERPDy?e(_&|=?#Ns|WR zeuou0gH?-G<~Hj9?0wP$l&c=v0^j_Z$^uQjI>uPxX2InfoBrVJu!VG@p@e*@ zZ1NQXG=(q-!SqbZ*7d^?t#rKbOu6wWsadBzL;F8H^wY6I3WKt#PxN}gj}xee^*&rr zPO^@#c5O$GvB+AO5G~aOOxTs;@953KGA#KL0v@z~MRq?r+G=brcfsMXhVMla*UKv4 zNvZ{KxBQhyh(XXdUv`HEwm2cu74`p9k&ZfI*;S+a9%OX{T3j`Ug*jN|brSaV9EpJr zb{`7<^vaE@??2CuK)pA~XGE_per-_0Cl}umTb!1b`VD|=H-`NzI9X-0CcSJ`ib&?N zdFB{tbdyzsrY%)Hz)nqA<+rJVW?V_0MF?Jee@9e_Q*L@{j^J=*oz*mh&NMZp#Xze*~ungrzVG_iZthW#w zFeMAnhRQ=KN3yH_OIx#9< zkyUr0Y+Pdg<&o9b>(Aqo{jr5?ke)0PD{EAq@tY3RKFp-=zGA}$w>IV~ScU@y-rEbO zr=acp8cPf3PKEp7!IY=2e_Cq18r1P3-*e&o4JsMivdSdJpZ(OJn#4YLFS;#0Y9)TA zoG%VOI!2@bT`1yhRSvU10Oh9)2=jmM_d_`qfWk0NK-<|2=#V~f#9OeOMs2-#T$x8Q zw8`J0$VAOeUkvE|+`*~Ah!@O)k>STe^GrJQYPc!DR(SjdPWUy@Mis%h&wErw#o22Z zN>WkYqD2q^%E}G9_XqtJqG)a~TN`ol0Op0&MW|#aT5q%3mnA6WuPQ5ifTbGC!C*z z7jWZ?nj38J&l633NHByxSd*3#+FojiJT)b7WKEjHp!*j4w7*+`>$BTXTP9Y#w0UV7 z5eDf_K`SGn+oe|$z~>;mlm@Qf*m_QwY@hZDg4yRpy-uI}r11FQ%;M{sod?#X)ChDh z;>9YcD;8QAl~#@x24>NIQ76q-y~7ug6a65e~ORN_{oSH}{!n0Z27sX!H*K9dU|UH?0A4;B8(GbJkm)kNRZld53QY;lb`H+Wbs6){|8+< zmos&xl~cXtEq102-ICqZ%(=(fw|NfCe@9`}>Z)cr3)r};!bR@32G0Xw$8uzHP*3n) z7deYd$O*R)X*s3wKXUe!MGkeNG5_Ngr*G@iB}fCgHX0*eIkbXH8WpOXTuUuv>rby0 z#=jz#eYF2$PB@%K!HF5SMTlZYuN2V-ppQhj*-@^`&_s*?s_Fc$Tn6_TQ-NTXeCo(G zMwQ4+AFAG=p5D8yR>916t7Em<$j16Ncl>93x`qW*{Bx3i(LE3Vy;5zm(oAJw8Zq?W z?GDkLF0MDO-qZ>*r219z!Q!)sgCs)3kce^)+RRmDWu556TA}4`O(ui_<{r0bytD zOI{5XL4VVjmwrqP5YrMC69QSQ4F^;cAZ6h}z~HdI52uj$ag+tVmqu|C>guf_OCN&ZP*9Wb=8F~N08!p?vcGRSCfLhy%EFYTb1df zi}+%xOK11tb6|Zo^MtLuC%(MjSfTcuANEL>ron)%9$M~X-B&v<-cAr({#I$Gh05g3 zJg-hKD8-v=MONuDx=N7lB%p{CV+Up=3c*|wGZHY^4mo(b{sE1~ z2diL%AAt=8RLkK)TW@{iI)(t2>9@8SbBZbEK^Srx51o84(^$dFeY#AO#rd9$g;Buf zxd&Y*yLsZhx0TS7?AE8YsKVqyoc z)E&Gkzb>s~&8Q7A?*@1rCC2Ly!*%8E zlxm$DqpLlghuB<0qRc%TQ=)?ZT_f%P*U(M)jBN77+K4QZk(f}C4GR?dQMkQH=-soV|M5>cJx?7c}%YnhKT2cLGK zcE#JVQpr-@z^h$CD?0%&(NBd7QWPIJ+C;b#xi%s%T2-Ac%bv2|8od-hU23u;B(SV+ z&Bg|;^YD$Tc~Z9d#Ew=6rqTQ9larQ2BAkAd;}mJTW=$?%(o;f%<5tPyN1~UahQB?z z$X@|mqKwQ`Zn$L%p{h3bJG=JfC*_jkWH1;_Ry|hXzyuECd%7@v>Wf0t+6XYifN09W zRjt@FH08~l_?eRwM)m~M-?3^y)Ron>t`9}ahW1Q$?4qS=oOqZet`RQbD^d8Ga4&+K zCF|!y0OO+grO$H!mY@`xX4}^4{)B3UwSQz1=Q;2?GRf`Vh0ZvL&Px^h{Qq;I?!lB} zOwB+qN7jo0#_pgT=f6s$qt5)fn6l>lf}pcfF=m_a9H#SR1eAAn zMGM=R)0o#u9c|c|deI91^h!CAf0OCZowIVDG+DHa7jyTAN$>riOEf&TXE3PDE6G#c zP!2Acai!JfQc>g#cC{A@V5>uwo@wkTCUd{wNghmx?E;iuE(xrtZL(@)Gj)bQdh9eb zuC1&-s0pWq?IztW9(5Fvc!B>Rd@g zqubSrugSpLI>b!gDh01Gt{3y@N>?a?6rbFPjDC1uke*9sB!u18j8>PkailS}W?Zj) zGe%PD2p`elz({K7?U_-hdGgNlzTxgQ+o(IfHt~<#Ar1NjzhO#3`&{PNqrNVxts9=~5d`E@s2x z5p60Qa$UWZv_>oJL>GG%NoJF`AX96xNLakV@1*-ma=VWE(8>g9O5u&t5Hq{I1^D&v zbF9XJ*bXVaJjX)i9zt0-UEMQECcNK+vhb=A`=?SbZ_!cSdT-x`o(lQ1A!yw2D{;Zv}Hcf#&!<}D`=ob~(X8%Q6Dr8q;PpzJkJEV@y^K`KayoJFaB_uud{7laa2?kPG z?%mFs0Cuk^F;FbVTnz_T_I4E59w3mOQfs3Dd0+Q_La**LJf)mn)8k-AY-v3Vq1I*}FA*Kyix2EhGXyc%G@dGvVh&|l|B(KsF6B2Y^*JgUqYoG59vW{Pl$lY)yFnvd9brtvocas2OPM`ht9;JsKlI`z8c=a(o5IGu z6b=}%HCbl}_9F&v?ddEwir8DtkhMlxMA%(uD))b ze&6ZXCVdKLZs4MH<|HjDiK9YN#G}{6}2ey zxJl8J4+rg?-i)XqF%2Qru@){T-;WogI+YWN%PF!!6Dy_=5pA@>Wovk8LJ@To9H)R@ zxcS&i4D!@&z!wX|#c+T45dm|mUW!tC>y!g{tQ3F%KmyI4!a}6co;~q_FLdLaw}V5r zCI~cA#<0DKAj_PmhJ&$vRp0^cxGT@nX{y8Te}Bkj#*ZyN?MHIY0r{Yvja9*b@|~h{ ze_95!k>0h(EW{-kr7err){wp=bB0({WL#40C@-AQ7Vqpoh7O}6~tSOr@PQuHXJZ;ISO zd`)YhnMJ#F-}iOUhQG)t@xDBXp;6>*tfhWC!`&jdmwc4Kg|kFj`gnC>f~A~WD;u6! z*HhqOk!;i2Q9cjy*Kt{m4Qvi}PKC8jht|pc6mk>w^ZD>2-@zAx4f+yHi>P3q@<;-$ zVxs8Bgdd`3lgrTLnX#HI@}Fz-diYxHGCTFza z4MuKqc|+gUzLqU=5QghD%Jkf6YR@!VZdS~-kA;^=+1Bsq{^4!f_RWO`C4fXzvn;R_ zlr1l7+}y|#mW6RJ7hh~QC@;nSHo3wemk4@)=sb0p7%h_+~SJCLV<`DV#G%> ziDAo{(|&D*WBwFyB{i78)e`5Pi}Q|5`*+a3o2E1j)F(U<2fR#uiMEso*hkDA7@e2r zxgb8wBNDN6jYM~%G_m>knOXPBlK!3F%%R7Rjw37qu3Sk>@?(5BoO>ZDJ0*`#!ec%;#IFB%%IkG^iBf^ybB>ngDP|XMUdgfs{5f}PeN)mUc~eLrat08pmxVH`qNO&a zeiP)RU|v71DOG4bx?sS3OVQESB#N14vLPi|fn+J?aU_z^UcYY}eTs0x+n}V`>tW*R z^2DiE4O zdjve$1!nF~KZlr^ucl;MYRxd_HX&o6%tg^;JWa$RD*p<()ocJOkSEPq} zN@G%2CeXU!`T{8sIK_8q84@sl+P@<_o`KR14gBus`irHbVdQRA`_uDJ_jGuqAuhl; z$~v)pU&XJL87*{3t~3;d<*;0MZf;H47#$wU+;!K0^fpQT9VesPXMTyjV=!a>IbC_3 zLo#>QI|a?FVmh!?BB9kLeMlD+_UZpMBbIqkxbQU`ce_yO$zu+JCZum1O1-&qiJM;A z#cM-=X9wiNv{Q%yRSDpUFr8JMsv=qDbLwnSfR`uCh~JHNp*E?Wd!YxNB)pJ!mJD6` zl`<&nA=6>W>~8@cg+q)*J=UJ&)IN8K!*2>@LzH9t$*?P>tVWDABCWmHO5 zUcf~APag<>&|Z{dIK|x37ltsbLn7e820r!7)9o(0?V-T4kVNH(J(dc9s)3F8)&K|TQ39-Sx3fnVJ3eTCRC+q`$x&%@v z4sov>b0PP3U1e92{7jb<7*(MkFYmiKwt!rx3sXe4T-Fq4@2}Vqqqwj&{iiTzJu!Wa zZ_X+6gTnA`;ABp{jKqe$l|4Q78F`&V$^o^!Mg=7rVeg6{PQcjyRl7BVg*Q=XsbUs+1`Jn*)~&I z_0yBxt_=JGbNf(d_;YXZ5;q$-sHx81hF(eD)~RUN^SuV8ohz<2gfoR-ONeMvM}lD{%+|VNgxx-JEuCvMy{Ij zv{%Rs*?W;qq^FVX0{F@Kwb{sbgKB5<#^R?u)ue7ovbY%QCYt7J-(rp*etepCzb}U=@~yMofbV>rFIm7e;u*q#ZcVZL^+ZP=mzccePsbQGIUW_I zHWZ8(f((c)lkN6Vu342Mi9HW#0cmxOTJx;nUm?kqmAXOLVDQ5b)-pHNRP=B+p8vYp zf~RaeNfP5LPB);97u>C_j6TfU>WJDJM0`L4ztQLvd>~VgJ|eh6KX0qGcYW3bZgj~F z5quK$k69B@ljzU)CCGv~>-rUA;6>si6?p}f00YSCcZZdVa0^?CkM0v@h0rnGIRD#& z%k!5vd9R!JR)<{Yu-JlG1Jj$A1#|K$>1I#;*=;{bm2J`s_h8O~l}gfA3#;=!1{n|@ z6)28M?MXRrAmn9~AN#t6VJJ@T^4}xic?6mO(n%&qEAHhkQ^^`&;ob($^$QhF_cxU0 z;CnJ_JADV->yJ2@V%mJpEcl2&HJAWrN8FAk2}lU93JADVspZ`He0Bk zv7{A$CMcJY6(Tp%S?A|H zC7BqaXebbj$WMyPRa_}sl$kjM5T?M$@eo*1C-t?+?JaM`lg)0v0)W{z0bDMCUedEl11D!aJ%D&BLMS+EJ|RS)DoR5@%ITNO zqTQ;X+(6G!Cdb{?>C;M04LZJQ8e_hCm*VKQK|hj|4G7*!Ph=*VFo_{+=+{#m2T0ZT zWLu8Qg6Eq6Fsc~JMSzl*8xN<;xQvRqbSjcu1$iuM@Xsw-29pxqEsmY+JmY6sVJ<(B z>;56^r~|$w>n5t>#l}xhJZAE}L7e~GH~K;UE>avvHPfnTQu)WnOB}q#I>T`G8WetaNXcGL$H<3(#FDJod3aMR7BhLtW^Kc3C%FVy=m9&nqzEgo3%C&Pnt zA@6A*7OnMZuOIjf&_--@4?YLdRF0Ns-D0H3Jvmxy)d6$a0@S5SBHVWNV+%X~QFpG! z0fW&hsZxJQ3DgY1e$5>=-b2Kj%ADp&fIJa%uQ1HFWmDBE$KU~l z7jWB=j9%4Gg6^tJd(ToU&CvutD=TK>Bbkl$Q9%T(hmh-LWGYQAJGVZ12JN%XJQ^ew9MQlJDHdPu%`cTa`A}Bl`}v|GPO< zzeQ$Gvy9214kPMvIe8&cgZoToJ%`LgQ&Qz#?f4dYlO*qFIIn}0d)<&ICoAEF^pJF5 ziN@a{|L&MMyqmKAUiZ$Y>UOC!Eas@0a24Kj_uZiKbMTE@{77APzqgEc?+y_%XtW0x z_h&;zDdyhXat>kj>aDy6&)AS>c!&SATvaG4&&@pR@2Z0O?4)lX>J!SQkeMKe(wtM) zzHa#t`XHrHOot89-y&F^ze!g^FbTFD$6&U+dUwY4@9r@ zM11Ic@}n)3V64?^=h@}B#wAcxU9MHkg@DW?PY{`@3OHkARB#I|50PCVTzZVm^|`V7VuS1=1-8?0PJvXGM89ym zdWXent+b`6`9Eu?4%l0DqgDdc;<|c%6puXbaUd(|UW@)EgS^Pd1h`o!*xsB4wgT|l za+166gq4*WG@N@Hbz>fmE8zM(-ZJ(C7Y+EUJgbu9_M#%|oMclS{p0>2fW!((ppfer z(NY00k)q?Xn$v=#pHd5^0ve2GO~SIzR)u;xWZ7Ly+@F;4ejeWOR=;1J)fyKQb4))@ zSgNJ*+e>e{xu4YQc0S!o5cRHNmG`HMgZ3+?S$>FUg!KHoNO^T72$X&*ldJI?`Zj{( zfqun*S3J%Kejs0(dYWf3nAg&!8IZr;P)B>sY6(Vd`$_9d6CCshw5>^^nomdb0Y?Ya zf$q(7DlkXTYII9u+Z%_1Fb62O5kL|=cm+3A`A`}!jo(_5jVdUI`xS<;;fT?&(#K_3 z8hvIzD&{L=M+=)ewZ{Idlqz1C;DMtkppW?qdA@)PqisUb-~M64ELC#u=iisAeUgkN za!y-GDveej8*aL)BPC~g>Pq1thTqWX*|kI|BzIzqS=jn_l9hSTnP`1RGV8_il#d3x zw-zgMmfc?cUtw!8iDo0-ZWI&Wlx*4t7{L|(_&YLwD?y&-`_vmT7rtkt{T`uSQs0=N zJyW@IFI3K5;Biw#XX^E2_8k1!W|V}ONH;yVLHl^|2ajFICB=Eb1Wt;s&w}6xTD79$ zFWtDsvAu$ZzGF9DTV3e)^@{F70c%aB@N#W^yzTf@>jKljJj11sW}nXR3o;%E6kSZA zX^2t?c%Fp%k&5`bn|fH@c9*#rxCY`@J|keOlap#fDKbA7u;fl@ABa{PeQld)N$W+JETl+BnxsZg zT2e@yOGXB{H<#*1MPt9JYm0D9+651J;&1u_wMa9{D<8bx9Dz7NsD|{h>+9NfCjcs{y&w8gOn7JTr~?JvQ=qiJ88Lo3Qpkbb`4?c< zrqvqRXQ(3XlLkl;)|v(4vFuF8_XJ3viHeys+j5?efwiYP!vZbM#O@NRt?jC1aX@oX zFND#n$Fa^$D{}~N+8N9Fn{2x0p(X!URR1fi)boc{O0x6E=t% zF7;xa$BvBTR8?Kv1Wauv9KrofDJh%Qg3QgGcSsNmHFT0-vEtBMFUd0+EN5^0Kp)>; z_G+W>euN4Y@w!t>b}CRE%(QQyYva(EoMG7)z>7MMzf0Wuc{HV^jn7zX$Y;mDqD$d!BBPf+N5Y`cUnSEjBP&Z>lT4G6vD#!(`qI0=E5Lze-EV@21;JqyLp(_vU~_heUp?!P+%0d1x?pyz#SYdQ`k+&~`qVxEN+1s~3=mGfFOT%yK!s?Q&9U%>x-;I&A>)smAZ|;gbmIzw+2HpS#360%Gfk6qk%U(tm!Q1o0m^!G`OU9GibFl z9n~t)+;f_R3GpN@^NX%7thzs<+nM3sKMSqZ13!4T2W^+Yj%!ttpaEpWV{)|uz?Bf> znJfn{pu~)oO9fe|kv21%>mIxxZGj7VEl;mIpq>~CqxTIyP zW)ri}1n)MnGA+^ZgSa5fP9D?#waf7DmM9n;^2cpPj@H-+OvLO8tN%x+W0)H zf#ID%@a%?NfBZ$i%P!5CqzRqc!)*?xyXveR#`L$eYLfU4p15#boc8qM@KWu4L!he= zrA-|4o`YV=LyEjel2xZprB?moD5%tOf1EBrIGGko?RQ@54f|nII=N}CC#afoamV-< z_)I+KUb0{71LFqX9PAM-N0X1Phw<2ccRe2fkc3G?cVJsUVmAX_uta<3%YK^3Oo972 z4{o|(EU6NcG)YqciE)9C@ufy5|XbzfUlg=QzU>G$zAVSH;FB zD)h}H_5NpToCB0LD%IZPQZLh{$ojU(v2}qr%rPi6y1)Ub#(4+7z!FOW88Tn$J&{J5c6|LBm&12q!A5GTq}lw1lHMU*fpNV z6sFono6?A9Vykx#Js=vOfPp2oQ*hQ25SHB}86nsa#l-`Geg&u4NLvPHwZiee+%}z$ z==j}M|1G0xmaRMuhnmL+_rg8FbliJe)>2`%`ZtIqg_aI)vWf4MwQXwS3yn;n41<8GBHJ_%O3NC3#7T3pY@*MdqyV1Ba$}7lyoL=O4+2iOC*Ab^*4Xoy?){f3R4ab7M zdc_$AVIh$5KzudBP%zfvv2~kVI@^$RokOTrx8W&{pQ$+1&za72E= zQJf0A+`imS`t_Hld$J{Db@Eol654J_e!EvJ?hzTIe;q?h{0mCV8!_%WTps$4n0~v3 z)OPuioj}FRw1%5-|1Qj&+a7>~C}aDe zMK)8Dq-AxayNAW-^h&OJv`Uy)^J1TYk_DHfnd6~s$ZAh@Rb*P?bjMotiY=x*&mRQQ zoI8~tCb<&Bm%7I+Cl855^dv$Lcs(Riw+Z!&OV5oNtZTBwbO5_-SN#Fn6#)$Y9juGQ zeXQ1YE=9pkXx@|P6tn^MC(TLK5~cQgM@Kt{5=!VyYUp&u+(VWh`jqSLAq$&dS^bw6 z;NZ5E-B5UN3McN;|Ep8o2?F(gjh5^sI#IY!({P$`98wc^QfbGQtJjW!48Zj^2I$bx zLwsXN2?3`HW5ij{`<`f~ZH2p_IW-!-C58uz?I4ZZf?4C{SE;eq%`rMCN{B2Gho;~r z?WEy>$wnQg6OzJX=f4Xi2K^q+V7s)T1nxzb!yWE`{lOx!dZYR{WEbg{wxzF;yb&sy zIdknl9Ra>cal&L+FGGyUc{oku>(D86ZoL4+7)=J^?j|#TJkd;xkzSBA&TV;HIq&zq zItGbTZl|1P&dOZ)TK_-?174^xxPmRf-s#eUv0immkx)b+>O(o6qxb0-I(%$MNW8iY zo}Ks_DVto52p4?HlqX{ubc25~>_GFA#qEM5a$+e{_&_2Q)vtLd@!q}C!2GU;co&h) zYE!U@?QvsN?BEGX8GPdqLfafuGz}%emj0^SZ))5m3(E0_kD(R!UYwUfa4LFrBF7Wv zPtJ6`rL*-Gn4l+}i@PfCTkKyN04IC@`J$o@Q*FcYz0k>h>0Ca+afzQX>%?OP3h-nj zqi3Y(voOx;eAk)k+K46?GT=M6d%;Zr;Krf45v3;)7;N&RMA~#XjMmkH4+g^(i}DXI zg0^*SC3U?at6kMknKR9oeN|BH_@SKaZnj>dv35T{WXRM%#*3ZRB7O_+51jJ)>DR6- z`0mc{^k1&toAv(eQSN|py`3?AgCeoLrb~L5WvZPZz2z^hj;oNd|DrLcm#C3-nEe*0 z$p-K@$xqKejG$apL*0LFZn%#(?hBx2fuT#~8W><5ApQ;&|5TL=ndCk?eLT!VrjA9< zBf-z3^$N1D48i}M`eP(-)Qw z`{)oENfb*F?+72ciP0fwyZIK_)8wqw?E=S9D$nz)icpCv)P43)!DM$tTQ5;d%mzvi zE~|R4$c1kvMuK303@R2VkpPiw@5t_bGwSct4+f^A_il_~Vd4sDP3nyKjq}rz_rgfx z3+2qA>diomb6jW08?Ihr69|9SnLY~$D5IyMJc;RuJ%l6`!A=zNZkFrSo@{5K36o0_ zg5Eij2{qd>_^$#>Nxn_)LCE*_q=`wxz2x)J$tA(e08P%m;VU;dA<2nt_aI`U>OE*Z z;lS1SgVW8?KDJQq1Zcy^hw_1tldqsD*QbIrlz#8_fZ+JY(B@a|);~vMTS^{B2x`mB zBq1cRY-4n1!=TOj79jcrVKWY3dyE9K_&c6>76YFS1v!T1Q}h@>=_@4yCd*hhfLQ=n zB@RX_)>86sPsK*ghc6aYKv5G#RkF1M%%f_~0(W{yHpzw0_D_nzt#!k4@$mrZmCtdg zP~|U5Z<(KXoC9c%(uXddhPcjl*O8B3Ako*EX;GP=o6Tp0HsD24*#P3#b(1|1#4f&b z{+Hjpv(!IUiih_~=rW<+#_7+RnJ9O?_2e{x7ooOmJEMr!0(;lrX1iL+Vc{HFNRGeP z*2riMQ9p23C+tN95N6h&5SBuLtSY>Oc^H8_NEe+xJK`fAt-pDUM=;!q zjR>DeJ9&+(th`fnbDdhKxF&~1(?hra=t-RjI*K}56D$8NO>~Wf>j+ZvzHJB@qZxUq#cBg_$2>Y2{Zm7u| zFzu+BA*x&l0K^x~gy3dLy@yOE{SfKbz&|!5#rT*mpB^Zs%80 zWkK^LYf|;bk#qe~#fd1l62f3MV78^`oZ=ckLykJeRtk z)Xbu^O#=t-Im*EWN9Z*tge+68pb~fGZz)S?uaPG_&_n$`2Lb{kIt?{;ZJjuQ0 zQ_r}@P>&%oM!=b~xh-dx6cg>1SmASNdGqKc7*y!;KnQ(h-0NJd{9C&a7MU!QcNz`_ zQB3>x$`VB_(JgYW6(X3Pq$UPp=f=Kw0mt*f0r3td$p`+Gn$p?PFKJxg>aIF|p5iNF zDSMP5Sq%zmOs}k_j^}LPI_^rM*-oOcPjX;5=v&)@`bbEBVq*X_QsX(1%3vqTR%yYQ zsNpHZw{YaIfz_`G!TQ_tk0uEEW(6(lmsxkXbphXt<){ub!D?ZdSbsZM8HNgd&J5@h ze?4ZrLUQ0d!o6)Wv-5H}MpX6R5H3x_9?$-V1`9~r%bD*~g`R=N`!7P-<18G(ayH*+ zX?~2jvf+;c5(ak5*5Dcf#^qq)A!GUk;A7*)I868QeLY{$$+$H$d(U(Ry;I#M;72y< zhpRc`_lgIF{z@7ki{~&OpY6!=3?AM`$ILbLM~Ih?Tu%(QLpCHKDe!YP7plU%kA;`j3JFU+gV@D zoqUV&#D;m4y?LCHx@QKTd_l<`ie3&vUqbBQQwFxI%v+Q26ytMkI0Du;1 z*0(f=?Bl?`s|lgjPgP>P_Us0?Qd$hz_7a@}{r|a036@)ILXexWaB#fDZ`N z9wB#gES)TLu7hv65ULAWl5bD|qAv|+Akg4q8Nt@S^q2>Kd~VHL;HxMv-o$WsfN?&o z{vI`(a(-L1&{Y~k`?jI_u>f|0^=`JAW>a4K@bFlZOC!o28hp$j0FOg&u1b~yB7?<7-0gT`*M7QCU>`-S-OhwHP$3jgYegt1CiWi zfqkMrD<9&ik}i5R@{6M+^9e(F(I-s6g%!lOSZK zR#OTpqgBnu0D|D5cLT-SJB}?1>>FB3IK4kX0DjftA8g(kI(cV0W1|sr-tRvYL96DG z_=945HS59qwy)_W>BJ2`-S;HOqLVlmOJ((xeC7rD_&eW}cGLjWJxey3%L!!dD}1~s zd3i{N`=*j5HWDm^bTsXQ^=dng;RRp6_ToL&3r7>*Q6-lKdObZg7^ghYCItW4A0c@Bc@2Su%*XCJ_f=6Dk)P2z8uK%jU&?nuX!0?gEg`mK8)RL+5613!R-_&7;zpn}&C4GXK zT2{?BL(K{UY^kqp5Xr79;)Sr{nE_VlF%A*gFk#1J@iQC6q}8>9MP9uK8Z|3Q&l87tueOXK&2Hgn>3@*C`E zJ(*k^(q@qk7?kWC4{KJxE{5kVKk3pm;N?@mKP(XLdy1MbY*BC!RATl7xxn*UdR#!p4jvv&542Lq9o-rxPQ42L zI95hDli1E>42aT4M;KEB?QKHsz$<_-z*uR85YCz2u1hG4mGq^jQb7DJUCm-WT%yT~ zR)a`HS#>O3RqJBv^mHFfuWasen5iyA&5FoVl?@mh*57{$YKO4g}y!CBkxI@CZ+ z=eUo$h;x|6LO6q_7<_)I5Y2^LH{Ig$uBy3Lr9R}73IL1%`pzw(XceiJe6r3+HpU{+ zB(`Hx?B(o?Zyc_Sge9w@u|U5%x2jS3UEw;q1f;SjZ7R-+7D?J`L}r8w`-QtoMe@(e zeKtmVjwPmxi9m)TdnYqBQDf#pc1xP?j41c|971Ryv@FT?31mS)UmV*=0$`YY(CU`b zAHX2HYN)|9!35^V(}7MhmI!&KBGJtkh!s5{b*&O_HdA(eC2RT3U(I=XeQo2OI%`CY zTN%BakU&A58omzQLON_e%0d~s;x$mMFQP?PWi+zBet8-iA!`w0G+6$9m z>^Dy11@=yzM`6DIBo>}eD!GBFj7k2)iZ7Ho`Ijtl7msyB5<86_f~}ka z-VhD!)H#5AWH`|Eqj9Q?f+Uz`W+jr7b+pkOVL`IhsvidJ%A||+L%&tj!I>X>tiVif z>tnsS0EFX(Uqp|F6Edm!gMnjZ(DPSz*~Z9Fd7pB>t1KJ?}SGTLiQl65Wu)a zE@d(+1Elw8qC~<^y-_{PC49wl8jFNv|8><|?ygUf{2Rx$u)=y0@Ys`Q$rk}{YqJa6 z-)#Hkp;6XjYe1O}8NO8-{zakzLG{l^ZwJ(YIuGAda|TlI|8A*h#k>3etDQ=%Ut9J% zO%6X~ifY~-Xm##?Q*VAeF%k&jb^)SreA2Yc1Q25)l%@2T?1MmG{SB)`(qdgkcc_%o zZLAjqA!=&(iS`J%w5MTwx4ba(q3rGwAOQbA0Klmq6Fu4SD#U`Qrm?wr$7a*{j8d7@ z!HLBvsQUUfmuYuGu*misByJlPeWjuOOi}!kUrx}$f9=!619Zb;wG`~SG2|FzwdL)V zg8-WEh3R>vltByKrT+%!V6XS{HNuWV?RV1{Mt55x-#Y&Rsm(zr&37be3m1mzFp`9X zuP2Hhif21B>f!|xx{uNs(FG;H952RHF2WIZz!`bvS0W8iS>?wUPA+H_p;_IIJMNj| zBpN{P`UczKy%P>z6QlXYuAeoZGwF4O2d5Bx8tv3}H76IKwq^yks0PyhJ$S4RO>!Sj z>v!=JGE=(Kednva4ULe~td-LXht6GiVu)>t|1x8Mah81>Gpu|;Ey7v@)qgSA=bzFO>!IYbmN zF_D@nn}e9k*E7pZf4Ifhy4?P^U*Y3_IEISNawgi_!fb1uMHG*A-`ioG+=?t+eHeb#{H!91Bjt+bWZYpeO@gGy zl`T#5kOl~C$=>ahQ;tIFqKXciL29=vzzy7t!5_lYV31@+%6z@K4mt zpf05q<*;g{-sv)CDHeG21kqrywL9cQc9Khk<1k=25)#56I%v1d!*wK-F?c-?s5hG{ z?M{Bc!g)o86!gT`lWo9u^*BnD;S@F6fad0N&9th*C5tj$5!z9QcaNy-B-{%Bpu{jw z=XnP=bGE`xGxi6M!9yM_Y!lN#WnT^`Mby!j9nRc0VEDo#t$C<4Xl#IZ%SBZgI?b?J zn(NGPCPl)Bs&&nHP5fr09!0OJCG_^&rJaM3Z$FPe#A) zlJG7RQ9sT#k{+|c$12qa2u*dCD$9n<7&A55_;!O0VEj=d$%4$F(M54uaNY4@7nfX* zbz=Ub93AA`NMK9OoFLZbXBBQvW#^8EV_Gx>Wf-}hrPA@6B=-(vj=hDrPcvIeWcLzp zfV{I2!P(N0)T0rn*H+gt)4Q42-lWM&097+~x0PzU zNajf@=A9lDzbIO3q2Fs56now&mC+avoO?v@7a`F`EpTbnJzcn|`Z?o~8EEI#I+L`FyQ`a<5sP@UyvWL+wkeH|HULph8Xhj8*3 zBtL+&*x0>DDEKUiWgPxAAQm9D?xS4_*p&(q?;3gSYM;ueLg;T1zCPL_u_hw)oZ)Np zhr4&o?sd0DOB&jVa)%&tcLg-^c%=@Md(fg?#hUxj1#IXqgqeg4Xas<*JrTwXuJ1Fb zn6!Zg$Q$I{_~R~j91a_q<=iA!uD4awy0Byc^=3ih6FN;Rg;*@&5xSJf$C~d>Je3W~ zwS&B|4WzD^>776dH!bO~SCwm!{{T?;f~m;Y~oaxC~I!(#9{S|#BnFK zhlb>HqfVxS2JRF}*-ZY4lUUG5)nZblQ4 z^pseK{B*W5Gd?)_F2DiCmOrAE)5M_cJ4)_YTOPgZaUa@~0l~pDlTjQ3p$m#L)CY1v z()896)bSTD} z1E6{4H-bCBJ98#U$g;G3TnlRa{R4A$H36aEMirxv{qkPFOr?-lTA zGJ47R$2x&$Eu`LVerA@e3n)|lrK?c>KIbh^MO%fQb{$|+r>Wdk48O2$V}=gWP00#i zcwCIM?UJ4SQhsuYWBXPJ$U$6<*Ab~-G3AQf_G$?h{mUTQ;3RxZp{MzKa$|5LME=dn zt}`zs%(NM*u2<|lYjhM{eA34fr049Q9xU&sFkF+Y4TDPCymzx4miVXp9@K7UVS6Mi znv#hQ$!{iV_qo6Ul}I3|0gJe|uuwdCoxoXTYRp%QG%D_BD1?|a=$hFNt0mpl5VK7r zH+oeI0T(bOU#X1(pFy7LJ%etRql_2Vfs(<=d1f;=^OwCOs)#sUh6}Lf%d@Z3LDbg> zV3k6V!Jo`f5<1iBD_HZ2kuK$Gb`p!{TV*_Q&xeG$Iv%j_mC~OEfJ&AQ$UpG|1JT_u zHu`$edmlCTfRx~B-A{7n>5j?n6oqyKE|Gnmk&KKcD&c)-u1Au{A|X3jp$t;Q>C`^G zqShrXRHW1$B^HT^*Cqd`Rwkj!Ll82$gqS5U%3Dr5 zC}O70Dme)$GIu@fYq%w<+%>I)dEIK}o0~8z`oZxXhDgswiYI|35dOkfHEkikJEl%0 zCFv<9@B)?-ey`{dJJ)4{9!GFY(&2PP(|viO1JyE>s?~zd`DwDyabiyLa5FozLdX{^ zg`1(5SV~oN%%rp6?RA9v$L{QzJ=A94NAEtQEF!eE0#hPlH>W&z34SQ% zqk7``ydS}m{wjSEl*MI!EGEZ8X-%*RYD_cW`0@+MudEqqg%>=wd$p&5a=+5}Y^jECV7&zrO| zBI0K^=p0jTML$lP_ejBq73ks7^%^s4->z=_gHALi^DGnVKf`jg&)Kx6D%-&aFlNdN z3aw*G86wCH_WPL|$YfZ1alAUQ<<)7?XUY;ZZZf%qXc?eu_mdgTei|5Z8MIduB)=)v zfQl}*u{<$o(V*opgxkAF>WwR!NKb^*WF6Wlmand1y_DYEkm#tL1 zFq=(Z-~N3Tfc|OvTz^oS(0c>zV1@Ht^Wj(BC)!3`B)Jn4(v4`l|3Y$!H7`B)d6T%I==Q{&yXk7glLdTrASiXli$5) z5e7XOVWTuO>fD5j;%(?MX3*gS>l0#L-Ru-e)ug6KxE zdQ2%(YMl=lP=GTSyI;6rbrby* zpIGVyn8qHb`G&641E%mGxr{e7%ZWn#N|9VTaMN#!ps49Re9i; zDk8TeM_d%Y_-jwrQ)E~hEjBdJ4ECbWdngp)M8*Eu4$m+CD7lpm1g;1cd1F2@4(Nw< zN>}r|%hku8`_B?^PS<+vXTW?6(k5vWClg=t_QRT`hW^XsB z=}c+Pu({mNjQHGaI-KwKh^jEKtw-!?ZYhm7(J#hu562&}uMq#c`I%btF1D(p^(2~o zYPX*zQRMl0@fsUN%hVD`XPSMLkVL0E4sPq5`cN{yN5@-y#OQVj^Tr_)W8JR@-`6Rg zHpZqQ7+2$wagWK=c#43zpc!#I0%4B>db03q*HY~iWO-cF_vB_Y@pmI26xKVZ?p!(Xxaic zQZ%rwn(c0+Mp)3g(o*J0d6URR>Flwp)oFPsQxy5Hk`yJMd{Wfa;j$RfNDO_NZ8Rbp znRc~PD+qrCxTpV`l_L0}_hJ3bE^%sqAdb%dm*{_=q;Eg#`u*O(2rVFPR?*MRf{LJ% z9;(}fzQj|RPIOxfac(N6fY7eqdL`9Ipb@oeFcC6Hj;q4s0PNuAM+Q!)O2F6qhQW#O z(fji=?Z}=c>IyQbez5zCd-7Xz*uGTssrMcKXl+@S>`T9%C^^)ZS?_nXFOi(4Yt?tD zDFuv7$=XTmcpyhkA8W?rX1-(oSbq^WQ)mToa(Kafv3Qt<$KR7*im{hKnX$&G{n9B~ za!VK|ULN?HjczGfvU6}>098JQE+|D>m9i_HmTX$*P4v?H^e)}5P8lGR)(1Orvt|)I znQfzFO7?8(45|NuCiDleL!T?jSMXr7!6!g`T6T1dIS!Vu;Jy28+0=&7birYaZSBW> z^5T3gDytjyyqnhf(ONzdhE&HN)J3gVDO=L&J43ax;Dd%6o7a`f6CF_kL^nY_y>FB- zWY7Uhc(yb=vS&fPkL?J)>CkhXfJEhz8H;uX&w0iL!{Pu2fRVESgcQBAPygEc-NyMQ zP_Ucu;gvv=_EgCVfR@U|XY3H9)L3`n0aGfw&BsTFb5NM00~et<|#AqyvAEiBi zs35EdUwo^*iX)?uE5kOnH1g7TW69H@c#Bmau4Ph+t?FHvz`QgO+%YfTUNcYv-@6$; z3`fe{C{GH6`1L19Z>WTP(Ck!7D+{YtIn71@(3vRre**=WR>u5k8975EUmUEm=dia_ zn(!Z^Roh|*oEePd<-v=Av%qUE6jUb2)b#H~8>S%5O`eie@%5km%EqEjhAm4xM%FGh z1sa1Lx^`y8JX*pZ4CK zJ+^gCt*sXEGlg4+kFvkxekM8D>G2D0GA^LL_PL&S4jNZL8^G_riF0`VkoYxzFFsn( z3G-U8h+DCmhLrXzCkNJrcWP)C`su6hSl60t7n}~*8e-t#?}K#9@`eQ_lYi;KQvb*DP& zvZRRK)*IgIg*~PSiZZ>YKe}EqGmTf6ZOB=fRDN|t&v8%qz$tPl2w5A7z$HYpOA*un z6#XlEvD)98nJab{7~cXq_YKBCcRlmh)x{$o3qSx_>EBjNW8USS2hV9*m%3D{vsGUg z-j*Q}d3MU@>^dUF?-!)m`&r6SQD{{~b`PMEMtRsTJ8MP1!n2SElF&-^MVcqs0md6H zT*y2+WM(qCW}m<}58l5B*`2R;s;hz!nBC8Uf*OsqwxcoGG#&CPFgTk;^%CjpiuLL= zWJqO9V%m72ape)4t?D;Yx|L?7j|+arg#KVT3h0*QLKV^7bx8$Uft|&S)w0`CK6ul8 z?d3q5EN%Xy%yGJ;JVBc+Wld^Nq1nshcl~=}J5L|$*FFYKDxVpC&=BF^m3a9!-4(U0 zQ<8&PZH~-THnEb3iRy9fxKmN4esBkRq)Q}w`A;J-MDT>V{gB{T4L=Y`d~Th08ohB< zhCWx`l>j1{41;ofj5GYgq8XM^und1CjNtXC;^r&Qv87h_#i{x{nfa%$^z`FA`}qeC zd+hj*lcoVngo4J#2@rTH<1pKNb?r1-Z(me!6nQXAEo&(&ud|u)!>BvSqw>sZLf5n| z?f#V>b6`4J>a-!n250V$E2E>AcIdeUM!UTIXcU@rEX=-LFGAtdqY&&mm3@K#jK&%L zr+h0K6nMvTN2pwuwove}R|n|Q{f7DSJYvi5;KAtvW@phQ@d;sRo!}m)&}0)lWq~I( z=87p77GloGKTcS6be`AI!$rRyvzpms|PO_~rLX9eV zabwrSKawMpxa%C`=-10SaA?SkVaYPr9E3R}iugHq#wK={BP4`^Fd&q!-mraFWfym^ z{pxDP7mD>wl^shsh}))cOp{TelC%1hCJV-6Sp{Bz-1ViV-jNfqSq&D@*WLy5@wOsR zri=vOiGh|Kx^p71js?x@ofcvxcxWXC=O1k9V>27LpJKjKnmB&|p~3kbH_O~qlYX|+ zP0&Nd{X?==lub7_yVxA{wPP|c=!oCI>>{O!gl|dQ8*EY*cwFo|GGv0u? zP89=D2?HHw!+&w+*yMsavOP9O_Ce`DzO(9bP!6A{<9R=z<-C$L zu7?!Ax{rUD0|>*(G?>aXYlGn1YG)l3F1U=`yV_rr47UO0No2SLxdr5(Vq3#-3Adc4 znAL=4TaPjh&F{Ze>sn}gV5lPKjPfSHfcGqUY5&op$t5VMWqFu8-hN6EBMg zyq|uTMF4Ge&6Fhb`MlR5qI%~ClUSUS9k0Xg5o$JLiJj$Q!|{xk_BcuEb;)EUX@XFh zvLi2A?}ip#oW1gZbXGqdDNW5vImQU?4k;l$m;>$}}*Ykv+|A@dQKdaosqug<<}X zZi$Bu9Ue6#yntV|0uRBOfP@Uhl}~lq8+wWG+6C(~_b}TaLU|jDz{%tfCi0=ymY*95 z;2z(iN0zv@l#dQRgiPCUUXONRKx|yaK#KqKfzNh_?jLk!v`dRjb`p;e@YL^p3!Q9P zq=kKOea!hB6^z2|v`gPg6jNzJBgZ3EtvcW)&LKKvT;b^m9Tj5`oe@bwj_{~Fcp0P6 zw2`hPuV`;N_JTO;o~W#{atnjL zG*do68y{ufIV>#KC#xY5z6ay>BUtn$JsISPEvLt3DE?&`XAK=8G<}ItHb|i;me$*>+IbH*?Rv?TK#dMVz zH^1E&1aP@)Dkmc3nNdR-3_(5$Q6|6@r9g%XN0&|;a4Av z*TA<$&ebhD8VqM{jlM{FErde`Zbq+qJx24xE+KT8%lK`?lpT3k#7p|zXtr~ZK|i9LbMd|cB{K9aB1qRi;tx1J%n78n@eX;7k_ugd>L_3hJ1TQrAC}0d8i~A+i*gqc-p970P3O?nC?9 z)944^>6$A#JcvFrji%uk)&?z}4%}buBneeD#DPYwDk5mjm0522~wDvA=c8>Zibxr0;d+yHas*%7peS7A_egY)B z_fNHvA&12tw^$8I`k*Yr=`h&$xfNk|$tf#2R!sIy_`b0pJt+&;=9K=QS8aFZJRKlx?ND7@1KVUPWycIqA0kp}V%W8xqyZl_7mG zp%IhPUjH=uDTSJ0LPNX>ygR!X6xED3jP3t5jEu})nd;XTQXy?<(s{C6G=^7@1S)aw#zd%k@7`5m0xI%e6e0rP?DEtaIjM=-W-Fel#4SVx}KyHS25}H z`rxqO5LiCrZ*Ka?!XvjF+UJH$?oV+4v1fcAznFiXEq##d?$CI}8FJx|?Eu)m*yvGh zYa_rYV>dC$N;tSEA~>LgzrD42Raz+8PIyS-fkbRM*mNODQYF}fiHNY)=;a))r}E^f5`mfyOTh|f@Rbs$Baz2c@uQq zy|;*F`{GKFJS~|XPq$wHEhVsQSBraxgq5m=W~yu;8Ec>8*b1^-Z1J$Vq}0$z&JI$*zwoFci4`+}Cp` z+Yf}%yvnhDRXCrrT+e&d$=`}>L_^M3yWIy_2Hke@iVj8HW|)0gcta<14n7RUEy6m%Lgoo))~VLf&4$M3nb8uQ)H@hm6Qfh^EnQ z7~rY3oEY&Q@=WkOS&?iu9IMPk7~z}`m@qh%lR%1bPQ_ZfS{aqp)=Utpn14SpjGGU%>in%J4;) zbv1M_7o%us7)Buuu5Oh{7I%FFZz^t1eRTs5;aYEvpRkszQcQMX$ ztl5xvIi6rO%8*Qh4CY{++Ct!R=@#&Xho&6Ng{pm(^H}>UUPEaD2gbRK1SNzkWm&G69e%*4T;C{I32Pc!i%yMu~ds^EjVpPD%W*HU$fs zqk8I@U$a?-mz*u~y=k>t(_DUDwut}_!_~?;WyCf3WM6avMJA=_uH!@viiqcKI25zB z3Cg}!2?)6n2dEZ<@qBCc%RPZl!Datk-x|^1v#h?@e1*&wpy8CL0^ zJi1gaf9y_@hcO_;YqfW^(;N)ZH|ku;u2_p5pO)c|j};4hu{Q{dGbB@qNjATE)qt4s zk^yGOC4n_ST$m;z6k*>ZGu#-1p^Iw@F<5n&8&a`XfAxe-56+&W7BcixK0C=QQCOBj zj?SM1EU*hc|1w?b2E|IE>|(jlJT#X)WKFp@lH{bUS*_Z6hHDHZ-+M46YQF~2;kysh zmPjsoY0V!n=3KoJEz71KzuH4b>0VcftJ!|lVYC(@^_|#hl+kvWsF&TP|46GfqS>uY zm11r;#o{*m@j5U{8=M8}6?fo>Nozi1CUiW(?P2s|PfI#}oCf5pGhh?aRq?A>!-nf5 z!ILzrsMDu8e}}FGbtcnr!gt6pO?lczJ*CQ>WV99KzLS>DE2P%96rzu9Mg?45=Z!3X zV%B0ir7{+!mLb) zdpG@k*FM4F7B@DKotcJ5B^bKrc+yrYo47YnwvCigE{@q%a<_gYzdp4KQale_J@x8BwL=BYp7z93CUmbm9;I@iyBrR)JBJSz$ z27;euH_Cn#mcKj-l$X^ee&?_bH#OeN197#WPntw&5czbu&sTsFQ&TGE;ehkx7x4pO zG1dG=CpFlN$Th9ShV&%gYnJCq2`*gIF%vz>eP=DqV}&>o)lE#Md*jT2x$BZ2tmBFR z*aqT1_cxf0J6ea-4*~^6p-U58}yv&UvvpO zshsj+#!Sn1MZbPIPMnfT>=KUKB(IW^q2)eS&YC-QW5!kW!@@ zON_V#k`A?B=Gu$6;k|rDr`O{oZDaOmHMJN=N>eMxIPq$Kw^Hn{2ld7ZXx|5-=JB9r zx+L|`vt-fk0%n^g?eIG6gdOM&-wRH^(kKHoLy*Uw8$W)>(BpgH45`GA17+g|OUM6y zz|9WjnUSmujLy!x6Ld=K`kRJ@9qG54RMOR*8aB=VQ;2WME<>?bysX7g2r|qU&K>1b zfT-o}U^e7Sg70|Jr|#o_6!;2Q8uj$SQ@`=1>xAv6%HfYZ(A(n;*kG zIpO?`X&%(ovM@!QC#s9s-0H%6saOEy_F;vr6YKzUUe*1)pI6n~vOiYhE0REhQ6=`5 zyD7{mEz{K7C6Y}dwsmU3ven&XV&?=_+bul}jEd*^(u)-?T^OfH32im!m0X8D(W!j` zvWGp!>^^@L9V=VbRD-?@80d&QB-o~nXfknlQyX!|2~8CL{gPYi82x!Q8U)}J#zEH$ zzxe@;+x2CjdnR1Scd)65i%Vgk1s)Wyw?*T7^@rNgB;c63_}WuxiVzwSX!cU4E99xukmTFY@aVoul>l6lGY5Snfzs z@%Pl!mF6T(KLu4}ToCuTk4z?VuA!P?t1pP_Xc={@o^WUaK+FJ)L+CxIAtqX%^TJ#x zw474VrGk8P@Z5wZN9fFtjaafC?0Pa+a(zPvFjdD71)IVNR&BSo-@L5hUrUT}fS7;R z*?_-y769*NHVl)^bEARP+&5ug4KHQ%SUQftd!40=U>y4K)~4=GERt2)k1o7m1A(=w zLO7?eJ;#M|(Yi}n^3}<#H|S|fHT3&ODvG0HRhv2NO{?bc2b*iNVqm(Ps#38eKmmU? z8EJL+Pcm*Z|C}*9MU_6oYDYCd4yh@aBf^YTHSGvj6R~`$3*>-yPd*jt?a3uOJjiAG z?O2{GhggPtyp&K+siN`*2sk?nlpw6<&)H1@g5n}}W$7Zzaz^0!% zJ`6FUPipJ$B34C~hPW{nl=vgsU%x&S*udhdnV~gJyne&Q;Yn9Ix50O{Yy`D%D4GOT zwPITVUX^tG=&Pxd{g%=a=5rknz)HvtgalYR8I?T>otfV^L7yndq^m7AUJgUF|5YvLl(3fwtY2m1ypmgo$NidnaP;CvHyNTiZ1ty$_vy(^67p zC=wO2bF)^ffE8~9)T@<26t-20KHVR|rgA+CKQo~3lHLHj(TTPCcoRU1e$COr= zkKclg_oH$moqD}10o4YiI4xEF)zRznLPiAF^LaL;LSh%54JR5wxt~JmL!e$WK+gnr zoG4y_srmU_en{dg#|a6lJ2*rqX{(n{+q(*FY83}DKQM<@Ug1?<53>Q#AI&j@n4^=L zpxcg}|8)yco|h1`nn_Zd4khfCgnN#A3pM2&FdxI*P6H3Pj5RL$rWxav{Ya_GNbW7W zw?1{!8qF&ahXoKat#;_r3kXd@8TO3S!@kF&mulobyG>|tGJuxf3Z+%CL4Hc+wDj~X zsj7AEDsdxRGS6}ORJcMTPoO5HwtcL7vW@{2{70Wme;h`A9+EcX=QgdA6@p<$pjk^TILH9w^zrbD4e|N zXLM7hVfq@I{7j#dY2OVgBGwjI3LhQxnQD3uIAbjLt|<}ImMmiP(KGHX#QHI&n-8*d z_5!Rii>UVCp~5Xf0laxO<5?am!L2X-Xsy1V&&V1RuQ0KG?9Prm2nKFPR>{HHMS%Al z(OyMd>kTCF;J48NRbtihBnQV59XrVjv~*ovY)?E>g+iJM%&~Rr_iPc_wg>n?BCx!r z2BaKU>ziR^=<_%$k{2O2V^)%;Jdtc$`7y!I`S$XMb3?T+UfrZ>o(dtN@Xxcu!7M#pzhKpY%FKnjbPVZXGDYKF_9-B?9-!rzEl*5eZJ7QTXlYtEaI` zjZWJ&9|)Cx-96%3j-sn~j#3hw5VdEF%!^UEzPH^9FK!Rb@PNUG3i)DerKaVvf2GS6 z`i2a!9R7XLzYoTv>hlM4tFEY*ZZ)wbIX;< zz|p$Mv&PamB02R|Xke3!gB(?YF{7KsusM?=#W}{i`uD`N{7Yo8EDTgWJ&7u{@lYO3 zDwB4%aC(vXu61`!7R#-cQ|lK4{70Lc~9KqdL{tNFZ0ig>ivemSKQJUt3E>?`cb}+-yryTOf7xfO8#AEQ81$wI<=# zn*}-dhI$sqc*5!<5SVoLkKHKs_nvIl?A5ZSLGSf6V4WvI%8d>lQD^)+wsaiR48K@s?ZqtiVVEwL#rR;)pl<>`g?+$;$R>E^Bj z2aj9AOx#00^#jXW|4T*`SP#wD?S^9^7Yo2$9MKhb#HU02R4mM-#Bvi4G3lu21 zM21mBTN<9%{Pw{vF+@v{hx1#|-p zHAPZD9-1TjBrXy*e>eb!Yz?^M;#J#MV*Z2LO_XQ#Kun~)%&hxGgzD-<;80P*&Bz4EKU$LOpXc=0=n11;Xb1YcOBvj{fV z`fKQN`KW(mgeK+!%<>N9iKvip!f#%o=J+NJ_ofz`rr!EdXrX9CyQKyr2@Hl2QqJOL zk+TGIXKw>Xz_H@nHb6Ts9LRL%Hw+O*5hWS;P|-jE=#kLa0xkqg;-P4(^&f{=pwxcw zE2}8nmnCF|qYWO|o|Bod!DslFT*ylhBir|GB3BY@*JJPED-(MCHDCnBj}hb@zg00K zOhE6eX%Qe@xo#_#Ox+_XEr$<{jH+tJkD1EWA3apU&#fMf5PzH@r_wg5(@`6}+@wAM z$jf4pCzs{dH$MFp*(|3j^x?_>yr$6CmGT9Hb&6%dH8qV5mtEv@6L`oBW&xm6_Yrdv z!!Z^%UK{Bs=8)ekj{_?QM4Hz&|8!DZ`>Zo}ld#>I$kCT`u9%_!^Ad$5O|y33o{r&w z((_SL*4C$EW9t7Ny=Pv`pa3HHX40*?Rl>{!fjqf6-vSLBM1O;_LpJzTtN&VMqRCec z^5DM&KBUh^D9a<&w;d)UE&zd>iNcuZrb__T3JBMR!0T5C&NhC(h0S#T+U9w+Ux}{g zCSM<+x58FMV*oFs`x2k!nDZ=277FsXV3nPgLGN74V-7c4t) zfXwXol!11-2Ksk9m>6XOx@gKUvyS1!OD7ZIv@1Mg0O*jveOP3f0)_>ac0ERfxQ(QQ znxsLR@qVsXwG`UnL-9{AI)9z;^t|+NjE{Z^;yD^?Ul6|}J|OhN)mVqjFexXvd#)FF zu^Tx5pJiK66hZSsCVUoCa?t^yla7K12fSfHCnNmxQyqsLNfw$cx(Xbc`q$%TbnOCU z;OjtH6l1MFWR2XS)9q_m43-Fv6Dv5LkLka9r#~CYpUpBmt>9XRJj@S;&3Y}+l353t z8r}`SZ+nbuQqgm7GiWHxdV3Bawttl~3P4BHZR%|7Jfv()BXY!N9MN`nCtZvU&WvH# z2kutPi2A^Ffj9+i`jLfZ+3k{V{k`2T21P)qxB53rMpK%lnT6-n1n5S{7011}0N}%C zYNYmfBT>=1X2pNIWc#nQ^G=Z;3zQFh!lpX*)4QreGVrEK96}49xu|Fa(l*EWH`tCF*@2h3(SboE5!1va{=&f z51Nl{3!^?U|8Q;QO)9WV%ly#F#F`0Gpe`BW4)sS%Zwx1$%F z2?a8>RgvcJ<#SQco}B|$V_+CF9kVV(TnjD_XFM#jbOpc5N8;kZMinbj)%4IQyGBh* zcdRT%@vbuext^dqIqvKqtZ;>No(~7l#B)xbj@q4SpROP|388dA;wTTai8v!BH$7yp z-5IzV_w_f-E*V5b(!#L4x-7|l-@y*Y;Ufx50by=VTX54fQ7@ehXvVN#Wdt!d&=E<0 zbCjBjp%#xdHS~#)&oGCT5Y`FE6dKY~Iy!=pRx#G{Q(bSRmHgQ@xj;aL9;*jDAH!1E zEyDi4YqsazzuJp%0RjK{?+CJ1CAuB&k;$p#4}z6UW_Mx)c(KK+BH*YviK*+`c}l&$zsLF(J8UK z2@M$(Z0VMOI8t=&9ivt^ysJuU-(HIV;Y{*&PIe)m%u+r`O9uT}|0IX$wwz5Z^60_s zYcENHUDpQ-Z&o@+$i!08LT%Ah@5-c%VFqP4;e6(=D$Wx+P*itvdeocQXiyGid$vNd z0I%E(3mBpz*w6mS7jDy{Wv5+deYDASXz?oz?WgilBG5xe(9wq2uYI2@3_GO0Q_#=u z4xx8%geZ3m_OacUCeF>xIlBie+9&{@i$J*%rc$9Y5t-fPBfQBaoZ9{+_yOE4&v1Tv zsX)M%29)LpBt2&2hE@s`3|SK193+6wqdlyQ*|Dq#_OoZ)Klplb;{+fPd;Pf(a=8`e z77NrN_wRO;O;ApkPO~^&s&M=XsMqUF(-!#pC1YqvtI7L-WkDbk?XUwMZ4Lx+?bGuN zpTil%X3EV-T3*{02Ue6^SQO75cSBd2iNb<78 z)?&c*l)o}YNE9V=;#-(3uyFW4G9d3CsyV!<3^HBwUw&IW%}UCV8Fu#N7BT zPdYrY(Mj|o#!j7RY~GJd!39O>*&|Uv_~Y&3QU27oviaQ2a6Q(YolFZ*AawQ*c7i*P z4z+PuuWH5+Ku_`yiwB;joH1sdH^&V?jbV#d;MxlJ@22QJxDUz-o7z=3-)aCMq#coI zM=VSY!yfdldN%n6L*!IBFwn#`3X2es141f~X1i1j(-l=hZs=OuSb4Bh`SxJ+Z$MT6 z7asJD{r$z&3~p_kxj$Z%h0ZR5*i;d=C>;yezN%(Cw2(d>`p;M`g;bavyN{q>RhxgL zAQWe`Ke-NQjR?HGl8-kpl=;QNld+o6YOh&#(XlQ03a{nvB5+`x&o8pN$Jh}71*270 zt;rL0c-rumZ&deR#$vMoz{ke*`{Fpj1QB7#m=hupsn&XDjjaHLW$|_iKA($#F6Kdy> zDhP))b$3Dago@t*_aQjK+e~#qTEsW68J1rBLnU{>an|b&<{~>njWrybd&q8m#(8-9 zo5^)~p9yEIRMbz?p>{=c_U_wVmGujaS4({N+hib|4vjbLM$!z`+^9%Tcbb{0mEXEX5$x?MsR|`M%5T^xQZ#%iH!8))!Z9$h)i!h|RF#!KR0KkCfRcEO6t^9^rA5rKM zLRlFj>`zy;VYGc)jHTYpBunD?=7fJdlX>zP&D<8q#c`l{jP-U$XmASM3{t|*Lh-bI z25}cdHVGI#T%3QxIyqkDiIGbMMk0cU@2wNZ31hI>uk_V$^$xBZF+e_;|`90d`GhuwU0zjXM^_bGilcPX7sf$~R9cAmr z*+sZ7{w;Pye2w~$ni^&qqYTT3f_!r$vVByz613@vOLQY){Jm8-CWxhGN~zdJeCzN- z+tOo;pCOy$LC?TU@U}kOZ9v9%ipM&pfQ`bu4<3T4tya#szQ*`58wu|u=z6@02eF?R z5!H~YT;sY`{wVgSvaO^GWT?Uq6804_S@Br~_SP1E{K}lj` z1JW7#@VSpZ9QbqR;;x?;2+)Un`B@;#U^|!e&OcPB;wEJPi+N<+&wlUp9D3;g0!$cn z#oW zi^r16Y8jl2JoVViGtLoFR>Pq@yVn9Hbs|*}iHz+lK_j&~W#J?UeI4trz6%@efFjpU zlx-Gbfc|iicBylT6~u2^fjYSErTfMZ*OX$eZSMzfiXFEeR)cgX<+$})B~NTq6ESS* z<5Atk6!D79@>LqS5V!cbUakWea_hgZS-+l~@TZ?*HC`}R+^Bj-(xn? z6;|QxcY$^IJSpmB^Is+ipRYw%VNGIVn~@jh(ECv2!QBm9BsBpt%q2e*NSTaUOqW7d z<$VQa9y8doLPL3-B`!f#<11K(XC*IbhtDGQ%h&!#aRwi=6)=md`qb0~(132s5&|tg zhVcn&v&f`{#ajGE{Mia%kaGVbVX#Jf1FbLTT0GakiB#CHBv#r*Sf#1PPwQhKFj`dw z|KSQiJACz9oP6V@IDDQuE?p15kz`8T9Ra2mkv!N%mcPhpU@gqjS|iPkOoKe*dw@sS z*JqttXeNaHVOK7Bd>w1!PDX68%N3}`>(B9v-w&@wBX%@1R@uga*PT@tRW|yVKBxmb zA}FR$v}K<31%QinI>Gq%3hYKsaGd@Oote*Ea2}zAe#Nj1z{* z|CWwu!{&J~+Jlc_0^b3n%^WD5>4@CH2bp4jV%1faMv<1a1I0IF&|h@j)O$oi*IwSM zqHQH%fB#^^7FX76aVJ(JPO4KRJMOR~pJ*uXT%muGo`vHL=+KNk#<^`~%!=b#u@0IR zFpH%_SbnO6(wde8=#(*Nt0glKaVVzYu_vMQ^>MoIaO7T9;5u?tDZC}DwVhR+efT|l zrMNFJs2wz2S_MsNzoiZ!G~cY& z6_i#Lh?&nGtq3-Ed7|fkn$z4YPFVc0Qzv-zcOjz!9eySV)5}ZLpD4+H6V%-N>CQeH zxX`@fx9B48HjJT1nQ%X)XBwn`p+ zhx%CwpgC;srfCG29f@mt+LPW1bCQj$DXC&PWdcLnnX{T;{^z?3SD<-C^YP+i@JbiY zI?O9Nfw>ENWsU=#KWt#kjKIA?kSMQb44!U1|8m z4B=swY3X#kd4The^SS&q7HkV+hS?vcDWnxP#aOTZxCdf+VryP_wZ~tl=~r&zT%%#h zlR$1o=mn_K4YHZu~obCeqvjf_2I^I1T-ENjfxr^!cjFtM7Sf1 zQyY8*>ysDjA(7K@ZO24*j2fskt!8^h1*)1#IW(xkVZKgd`kN+}ar*mvgZ(0&aQ8 z9N~zSfbWQmvDt2dQSViIqKE&(=S?-PMaSHZCfgmuU92HL#nBc@dN!mD#|PZ#ZPfv) zS$Ks$Y0{aOD;lM&{RM;r81V^HasD_bodklOPBf+@rerg?i7+lw^OJ=}O9aT4sE8uC zHy#)&0xN#h7MAsb@To2_Cp*&$lEk2T8)+QullxH?Spv(I?v;4r%=xezPU<|Mi`gdQ z30eg=n@B7s4ho8CNr|F$IMr;WFix9xxU0=jzuu_-PZOl=PKVU_;f)=?2+;6ZYLy9B zJw4bJKp@U0f|cD=X%xV>GTF%tCE+l(0Pa+tY3W!i^`lJ zK>W$R56O!N`VAi>K?8hC{8{5tBgP1xW)Q#WkSHKLO|!vUQJPsxOO(z1^)vGzZ`Xt; z7PTIDlGgrGG;ivi32<{}wLv7mx_e_)q?7xZFjcbw8HTit@k15PU=Hu$kWfa zRymKnoR9zIMnNKK6F5MvJL{l8v)IXtrmQ#E|7XcGuqy&>))IZ;3&o%Z-y_zS6zLla z>mhP!H}hst#Ik7m=y?z0``bd%(BXapXrolC&`Mq!MI; z-z&M3>dr03sM98^!y|xrwVj8qTtoBV>+dDl#Ydk@cwhPQaaa- zzb6av_+h=Fjsk?aARh_JA0tDn^CUU83;v4l@EygE@8Yar_a(cZh|MLy^oWPYA0^un zn~=Jp;oBILklf-VC~Qnh?Wl|P@e9xCoCS0?Zkr3i>5 zuG089CPVSTjkgeC@45|M4mA`2aOHd^Kr$8TyO|GWSw0GB$Owp_3sen{`7S8FPcF3w zO-%bjY9H&J`2VAnbaPr4p3n!-twlnnFs66E^H&L{U!v3Mjx zF4@RDO_0Dx^uPJPzsGPSo1|Aum5y_-^XpZmr8r}($g$4`G+JK!umq9OQ@{yV zU1{KFaW3Oj&1F?>)KW`%SI1nz42_-RC=}3X;civCHVHeC-%R-9km^CuXTE*8OdzSm z4niZ40HxG~U++%3#Y~0^EmQHPnWa(wsv86A^PGJCWyuy(kF798OhwY*nueqBnfviX z9@yhnsBxU4cUTWy3_Mx{&dK!B@Cc=TDO}j${~V8&a`RmMovU;8w4m74CzHztA9~J% zw9I6ole;_2+<(DzJ$qF61mEyUPuyX-DoB(5dTUe~wwqUIpFFWN z#@wi7oN@xINxeMz(DBSoCId`Eef*z*t0oLP7|tx{e(CaO7*b72?whf?gd1lud_?9% zbIrceRsQkR#8cQ+UdN_*Iful(kR@{iWm`fb*^c2zr1{t&b}C}v0D8cf^~!tQlRKv# zmuNi9t#zTre3IOFpSo!ct{a5kCozr9RP8QQ+3z26(JCb~Z`bxqfwH`NWpTU+*0KUt zO_8@IvF&&Lu%MqrIk(tZvyX#AA!)0@_jr?;M{B=9Ebj=GB^o0srK$+4QjYYP*_z@{ zdtS!JG`B=&C@5(6i_KP!KdPSkvy&mWQLS$q{42Eob3>=yt>MVBZacwTt++vZyf~(v zFg+^QG5V?|3A5I>yg4_!FY{_$!qraDenYmj%IC1cNUK>a3uj8C9z;qNeu7J`~ zq&!aIRw`-*_FRD%wzi@8oh9s0FuUkCuR}oBhzGXcR&8@{4Xywn93<{-p4REgW*au7 z=tTh5j46YDY4{=tM2HhD$+Y~BV0OAD zE`I_#nnjVMGN#g}>=-|hq}XdC5Ryn4NAaVz;w-qaKXbMzqS&Jy*Tfu0g;myRn8e`l zsderPvCm?~lu`29r`1-Rrh4wVZ^%oa)BbI2gNdt;t055c=?+iqPM5w8>@jc_bRx1p zd9L8)oc_ekCM~YT>BWV~l*Iq+cTCIHsJN*Q%FzIG&3JVj_pZ;Y1S#a?$Pb%hi1{oO ze4Vd z>CIDMQTBJ{xqzC&r6deuo1|NP_ea>j>DZxCl znC5TUh5&~PG<3p54+oUB@(6Ihi`F)U1-&pO2e58^f7mmPh9%%CH^WgkfqKp(d1NDH zGad*E0F@tNXqqxwYG8UZP~``8b*xz0)Yo{Dh!-%IQhfB``brEx>b(#&-ZRo-vevs9 zF&>#0gcLu3o%oNtBO_#WF~_7Gpm1vjm9?h@CM0TL2LZ4@72RuDO$@jQhoq~}z9Lz< z70z84yQf0n6xCirNp{fU9&6E9|C548UtGEtC@A5_iIB||6(^nhR$@Y2ZKmp?5>*Cf zrOdSPKdjk|4xSIn)wvw(V=m-nwWa7!=t5rqz)#C0&(aJ5)I{z__d z8{9pXnvR_frY1>tEff{_?qjnc_EXaH_SdJ+(ceibf#R05^HWGGp<$uHjik@CoP0)S zz=ByaXi8vMjvaQ>Lx0z+=h9=+9xSGB$jm^AE`n z=;+{P-L+c)hW!yXzUKg~wlKJ}8lA2#S2K7zQ1ammi0IHdSTJwKoZki%G|-!2=KweR z)sL5cNv{_Uw(u_r56|6HhU>~G&8>OMG==#6s@j>0Ct0dE>N3Q@g8Cm->Y;Z8c zk8~g*eeV)f(tL>k3b0jNcCx8SB`(|6dBEpwGoXicFV2^#xcXT=ROHy3%Ddalo^4{?qo5+?!WX{FB<+#~nk)*Djle&9 zDj9i18{oNvh+AU;8P%VSzrh0hdIAMOJ*{q|i2;3`ZM5lyVx!I?eP?+s*x6P$RCKHJ z2BU?GroSAt@pYtp-%EqK`3VTpf$pS{{mdIprVrtxq&pS=f}@$k1?T59R3jcqZJuS7 z=bIE_s2PC79Me_koH>fxZYfds?%UE9sPllu!gsRNhl|4cvjad6@R3qFTlXW|fmtxyK7g!Uh zb|6UpB&1RXYQBAUlL1sLbBU$UX^o@;dB{0Z+t7kISeSLd$qQ29*93lP+Uw8=UH#uo zGN+ats7=tp-B0)H^aN;Ouz%c+8#lxaFaJ870vY6sH~BMf3mld@PhiPbJ^XYU_)kVc z7{tW;N9W*mn7%@0Q6~AEYzE1uPG)Bhp7`8AP@Prx%J)rV*2+=!ddk`|#d=A{hY`88 zpVZ=|qT}IV+1Wm)bJ4?_CVIFLc0j&v7^f|ei^rP6=oW}bama4ylqw;+>N1r$c)?1hmj2I;}V@saEkLeGvTTxlFkZ%2(tBGEy_CUa8tE*sfVf zAjh}bDR&f%qGd|qzI~k-qA0FBCD5JUud8jVs4;V!_|pjEH?EXZbzjh+(Z>E3q!{xa zg%=p3>rka#NN`VrrPxotwGWKJtluG=^puAoLZ^-x_94rcgh0&EZ-ZSV1~qF~9YHa@ z3;?A;Szbkhqshz6dXQQ0?Z0!q)~NAJ{4^Tnt1=6*BTm(0v%l}D|2`~^(Co&h#mNl0 zY+PnLkoX6)$3p#m3u3zSCoy3%42g*i)&w$ci|dybmF!<`N~zbHEw$WXPikjghQO;L z4j@@JD?DXmZhkI{6Pso+0fpO^TyXB!5r3G^uky-&yC@YuB`$SF`lgxma>NgbVVin? zTYaICf+_uidsPd$iq8$K`XZ<@#t1*4+V3vDxTv@nak$~)15xzTR{FD9D-cdUUurot z)k-S$Nac32=xk(p>0J>W`7`60!1)cibzaPEHi?5Hgo?g(VjZKx zd@NKqolF(cZ1qWci7yP&Xiiz`{uUU#_2AUcd#`lRvG)Xf?|()-D~I9S(QYe04F0H!QnL( z!k>O+u=?yh9J-08rhedp9Amf%YNp@c1yW$l>ugfBHEr*3@@FVQ>Kv8xGxdMHBd_-np#u+&og1`9$=dpSXj-u0q3`Ul)1Kkboy+!SuUlcwNuK+iidQ z@;2HB=|gRh^4W1>vPgluB>5txMfkB^Uf=>wN*7#Xr@88#yL(|-B{nZino2NQ6b#AfapyTJ@OEwU3B@1Mg*K~yC?CLt2{Q&!mzbm>1{!c`kGw4dWYiz)QRx^*S=2hNHWzYqP_jJ zBJnPkV2hE40=3i790MmLBGd2JvPKADQNMZU^>lsUEj+VVCU87h5TaU_NoZTxFBvyrInT{zd8Lctrk2nSbAmSVF+P~6J&9oG}s z3F3n$=YN^(AxZ$VlTO$S)2{u^1Y*3q^I5s6eZtwLM`AKzUF_I!!g`d(9L>hv1@q`* z6+Wyqhp9ft%J^oa?mIC-;~d8jn6wCn+!i*rcxcA@)#M;GzU?nf8pO_ZX$KDIi^itDS*GQ&!hmKsj~0BWc!!lM8Z;sl%_NF~Gl*bUi=2TvHB)48~Y%J5%$}(1B(&ABOLB~T`k#CZf zAEWyKqZM=#&RHy2>zdNO|6QfLk%`@moUh2Wkq?jGuP(8(T(o=l z$=Gao8TNjl*nEDZUrg+?6neR!t=;`AVuze63S{rNwkfsY#lh zu1&hSh8f%Dq~UOIz$0PR;xG=Mv*gk}44ZF^qS4Q)Ot?b_5ZQ@)?|cWaHIveS^?Hvs z7q?%Fj~;r*o^uc4xs<}E<#&_}Qy3MjZZfw^UQ~Ap8j;~I00kj#l?jE#7$a-y32764 z6{DYL_^p|-vJu;hf{3h~UrNh;7sM|k)EbY{C!z)(^as1G>S0ld+?91{sBm{PLD5}s zK?Md(J$V22BJrRDro5*2Yt%>?_1{^gNQLO=1pJ{jj^e7z#9{iDW->S_R4CMy&+RYg z2r_K4BP#UUMPD01sPC;$ga@^9BUHQNE|vUX*LNk}zY?yK;Z*badHS<3d`Qg^?Cfzq zTMwQXn*_9x&Jbh-r@-Pg121l(7>R?SF#3RpyTAv}R2D|&fO(V#Ez?_io ziKawjH?UQ1fdR%mSd}(8V~<1Xi0oF3c4vZ*>pcC~JC%9r*GPvod_>q>K7f>o)(V%% zyMf!{^f%Ok+9maajd5%mRhMwV#f%wUI^c)&>{`^3toBtl&)%@(kCRB#H@Qbb&as`w zi&Wd;%Xp7kVp_`aeo-r=$A+R|sm0In&SX9O(iqVI1(_ms1N!KiUG@QLFE9dJ-Hk$P zgli1Xt@3~|Q8;baid>#=U6;Tz1Hhe$8mV;knLI0I%N++G z*`D}l!{HNz5QhopRCjQJxolU$~A$HxaWZmn9xsEO2L*-RHsGv zR}C&;TeChH7NX{JK=8%))v4-~ghnjJDFY9M{bfg;XcSyA^T4G?GCjE__NKw(&n{Y0 zmh?tv!M?ivff2L(d)`w~pC2CGzsP7v+7%di;27B3KkbV(*QMCz!Y#=1t%$<-22lpy zn;9|{RNRDwW~_Cpb02~^jKRz7?a1#X!pZl!Ochi-qjjfde2KHvw}`~PLu*?s0l(fayB_1>H;CYvOGCW?WWh-+iB!KDVCpPzD5> z(GS2%GI$IIMK9J*#+}dO$Y9ADF9+wRm%S!6_+SHI)r!}O^J};hNxXg<%9$oaY}6X0 z2{ks6{LnmnG<(E>8iHKy4u@W8bW#I}hd&rEk&nG>w-PhVIU(NjG5POj-y(s7^n^zk zUQ_xYS(oC%o&@(Utw90U(lbR}dg5O$R*fz`G;)X1V={_{;JZ#~1Tnj6TIPTM2eqHs zvPf0evIgEr8C;21bBvxm#>$&Ucj-202r`#Btd$E`qKu%HIz<{rIWk67P?Sn56Hb(D z%Nt=JZ535gZ)kB3F9v8)E%ER>7qO$v*4Ace!q;@}8hQ3WLBepypy67?f}W_O=}{;-$E@Xm;FgLea}* z%i0qOBZd>D2+av<0E!J5Q~nL}`M+TPHZDEKN^B5!R~aLyI;S&!QvgJFj|!lcwysh# zv^M({SanX(CF@^N&A}2gmB1(fE=xs0BEmtSvO#Y{E_Dp=7W|-UruvBqtADn8S#n*$ za<+1-vQvk?M3GsC4Szu?!7&TH{Z*AOf~^u29u&EIx}b;E&6b@Ib+OA&g?^@|yH%H- zC)!2D^Gq88=#qI)S+oI=-8~bPOFi2}2QU*vmqr|or;ge5Xv0fX`Go#PUQ*oyTNo=t z^Gz96WJx;!&iJlUz9rdXQB+PQH`5Ybp$eX2ReOfcJ9LZHmz*ruqg(n@7;QShcg#*NVBw z@#M#pXn(7zys<}ro$d5P5$8*Zx{w1it$K^K)prI#lKLe-xX|!Mr zy{qv*W>AbTFBEBw;GHjF@B6xH#Gnzv5r(j?vUQ99kA4@2cL;;GoLO#RlD(KS*y3Mr z@B%N-ubd2Ia0PDaDys_bSjEgeDZsLp@dJ0SQCd|Z*?Ayj%@mV$utdlt>A_BWCjUBn zSL@spZmsq*hi+5kr|}l}pYDHNT32*e44}omTh1qq9&I}&g~zRGQzh?YOEpSppnH^{ z^&*DX6p1Rj@L##&hihaeI@aA+kf+B{GM=D9=M3^ z!gA_Z*V@+*=UX(`PiJT=R@M~gswnsqoUO^mn~L>tuvlh8&!YMO80884&eYPnKM3Do z-xAfVuRxDc*O2s$WFdJ76P$*Ps)uk7BI^n|vM94hvwd~cSux@oiNqU3JP{^sJ#I!Z z>a1z|(D4Ct&$_M9dY!k#(Qf*AnlERmB+aDd+<-M>1N+^jYHti(9O}x`sf3ZgtQy{l zrhafjhz%PMvaJ)Sb5A*YeGCQ&pLu23#D8vA7^5-2zKw_Xwhj%!P=JHydU3m<0=hvD z*N3tjRT>jZB44%~Td8EZXpq!`#%;J+P7(xukB zE3lR_dPu`6I-pS!cA$$eT&7JcXx0JwZHvddIN}P&JL|-(nC6Dod>YV!8uwLI+A(|u zOS)HWR?7Y{8zahJZDXjc z@~sAq;#kxLzS?UPTKx`lN0svi__vf*gfccIkVK-DL>Yr!`wGYrb^p6)KfpIE;$^t! z=0RtN@fWbLMt! zvKl*yIVqcz{v9R%3y;fAuH!b^WK(j6>=}+c2DQIi|KF7KRlsk(tiwrkFb{8zKZ@#U zi6l2Rsx(WJOEPPZ!(Yzj8L%aWUrsU4xg5*Dz00Y=+uA+bL?Qiv^6gJvP}Juaq{p#U zEtgW)feio=a(_zB30x3a)%VJbz~7tF&Q=P$MQdA;P&;oYc)C=YelAS7hPO!9z+Ou` z-|+8BQ^(MTTrCor5;pFE7SJGJtXQ49SX)A~UW+##?+O|zPra1fJqy|ycc0)Ojs3v6 zOYf)n^q`qSK{S`D9j6%uv$9!P{P8LWUUQo7zQTRnuV-?Y@o8~_8^;a=%WmGA>FTJ%R1z%T#=wwl8 zda#x%(rEI_BYdQi%M&E;aPSQMK3BYHE?SpDE!^Yo>byL9iK5`ZVeH6^0ADskuH{5q z8#y+KW@dQrED!!7eKZyhHRRMIy*RgVMOm3$cd>JjcFFg_8NZuz-$EMH3HMfK-~`4@ zt-%c9=J@E#-2-QMuPW{;?GT{1GC$|w#8c>jS|g;h1fS4d`mut-+SS;F2Mv3UYM!fj%_xM%NggUm#cHI z;syn_?Jp#Ka&@A2=dXvpje}@7@C1gi68#Ds#5dhqk%vX3N?3EKXJENp9X{v@r%%(x zb_~U1fNL2~5S~Dh7O^zC3AdYQ?CAN$1C_QQ8SGYD1yr$S-RIX-HWMI(JHsylKlph* zReC)-DC4vzwDj@y661rN;>M-*+MIggw_jD2cC8!;6)PmwKa+1WpwLNTD<WDy zD$PO|DYqeFf)5Xv2LUDlEu_An8IQ=5H$$2g@+W;6RRtht;*=?3^9-`=1B+lTEt8Brl~`)%xV6*1^GlApk#%i z*n~D0So|*jZ)j3RnW@u`-)y8uBylr@CyvIzg#2dARY`%+_l>G7<2L^ZM9k3(jLN1$Yhc+jW zfHOs)>QzIjSry+aba+gd2Q=<`6_Doo+DlRr{+w;QLJ4(zFy&?%Sq@RbL`IH)IZoQE zpQQz|P+kZWQenR+lRcTezv{ekoli*W0Gwz=pSeUiEy3^A1G`G3+f| zyN7PA{&5jO5fnDvHyM(z#Wd}R!?{cx&5y)97+kLsa_1l^wxrbH*1Q$@MB#Q6{PC9G z0w-bU0p)0#7DhW&zOpg`Te*GE#eJ;&bPj0DtbbJsEq4{&_=u)ibD!wma?{R)Vxp?t zk+*+RL?3i)@|y8+zJ&uufkFCWbjNp7F4rUYo$Zn1j1~PxmW?bwS@?tc=mwMR@#zn5 z)Y0KJox9jqDJ&C!vC0(9fpQLhAgf4k-Oc6X z9!?txuc3(~HNonWpm4_*?sGeF`p{Ms3|lxCoQbNMRYk9nr=Slw!etlN%M&rOBUT** zwsxPp_COB!D#ihSFkmWLa!0Y!s$^DaT0BJY3fb!kWd=Y6R82DOrbozA z7*$&4T_SZ1=#m=J1A0Uw_<>wr)j6|~FUtV@RT(0lQSDU-jiPf-0>J7WQ!0(wYKe2? z16gC!Pj6w?$$POvdJQ(Ip<0x*%* zQS}Q9xgCuW0f+IDITK?95Sd&B9od&s5uDUH04h&4hefww+2fNAPVwxs;7$+whInG$Uw0Q*2KXpV=UO;`J zFyqcU#(8?#U|JpdD#AMIobfJ}s&Jd!8*k7PnKT_CV71lomyiTq(2@=E{m%nq3Yp6D zNVhVgGle2)qvdn1{_|P4TGsA3)tz&@cVnSaJ^jUEBC{S6@$R7lqtlPtpuCuX)EGJT zsitw5_f_pbCH`I_a~7LBcSuMgl^>>9wS6*B7b%=@619&oE+@p9zfLJwo9PmD!Y7Si z)f@?}>PT;Ka%K`3d`TZHYblksRHrRh5=sT_n0vPc&?_z^bnlcUBn_@+esGc_^GP%anay3PdB& zU(ls6w@Gi}ktSE+zubn_!s7zzzTQn@wn6dJFL%Ii4#30Jg@zBc8Y zcQSgBB^RtW@~!rdDXM`6m4o6hwu4m*qHt7g!?Eo`4Zl9@c`Jvt-ptQ-mT018BE&o* z$$&|XM=0WSWeuJV;E;4(eGf&f)D7M*$_SCE7YB{j z4k&R(1WMS?IG_CWahK;`j)nM=(Bt(v&8P6EjT&MCnl*t+5-cnQs)ecv_}+G`L3!8H z6Xb?4!`^!B0zj_6Och2%zL6{jSh?g1R_9+AM4zqc8d1~RKz{9#I5I}YdzI%+;TpSn zr~$Q14i_TE+giy0m%Yz(1ytdkv91{2B}0txUCclPu{05>y@kDyLN4J*wIlQKwLgX? z9dV4Zr3g38Xg1=Mpk7&HOfqW%eHu#aVKUApbh{$;Hcp9V+PLk6B?Q zLlvuwd7X=9s;lS`Aw!Qda)Ix(ual;)2+jGo8i)4NeN&M~@#`$4Ix0p(goo0D*8 zlLPkw=)Vp?2Vkbt!VpizSmf(hd<%N^=w;0vaFp_bBFtpV{vt~n=0Q3MRhmW zY38HJ3#2?ANcG-L{a7)6S^8JW?D6$$l<3!X6XFisb`Cd%6P{$8k`~wMdPjJ;WtccH z5o141qL*BdNcsIZ)0_IZibo>HIEb6#cO@7G6iTF`&G71A!f`18j2SOax9cq;0sFi> z6esRVvhYinBC}$pBpvQqYL-qmp|H<8M0QquS_*l64d{J0fBnP}M9P`{ud2)SC(nt#?VFZA`NzqrociqXR5zwW@kX{)NFp<8x z*|^<-Owe_DZj~>4>Z6aP9u`d!7ZA`m18Q4H>}AN6={N%PD{Gl6dH(RK(FakTz=*Ri zr(r?r55B1xAH{VJ8^3(#p~aZHeQtcMUSp4{_reGs7pye3$r6*XPeSQ5Qtf+KcYy#) zFk+OWGN3ix&O{mi!Mj;_r@v}&>K}0B9(rG|36_Bb-~|&8+%WM5gNPRHiQxlinJ7ophoay7K`Ow{1|OHMHT`(D zK^e-@>ATfskhNfzB+W{BVpL}L7G&1(^&SL}^XOEIcgXI^l{)L#1}?@#A*;OtP7OmlN9dZO7r5}KVf zPG1{PckDL0!h~X|o|)iMOo{^d%Q`VV*VW9Mw)rGDi0+jD)`u5e-shpfe!%YloU;m< z6ym!hL_JNUwD$`>GrEwMDo6L=2%W?;fY4a{zGZFhU{I$3gvg6sf>%#3dSB0Q&`MVs zuZY!|CP;bYPc0A>8DNru6xdsmOS0VIJxgpba5LpxQE@EX?gU_m>ow9X(Kqd>l`L)k zikWOB>LfF?N;+R9kf%1kIKalC*iM{)Wd2dJ!&crypIWC1lGg^Nl;%Zbt@O(Ew2oBm z8gM;vW$b|#HN={P%v`%%7xqQe?8qZo;H(-FWn{>tAzZcDFk)UKS9t8pea3olB8wj4 z+Byd=gqm;+p3tCbF*$!F4K1JRc9+T^S=&K`E=2!1-hmPMT|CfsJZ zJn?N=8M|{xG2(teY3%pr7UQe8w1#wP^v{_qYGUrv1*+Px26mxwg6UbNThH1)|58`= z$nZ#I!wmj5;h|zTnisnTs#{+V1u)u?Zhht@go zQY%D5MozlsnMg%LO(4g$*UlE5VIB!Phbem_Ji}E3^T1>0D;4Y-7KF|>)UgEsnA&fW z=W_$ZfN9{XPqeWNyxGW6lN;sSX1xFFG0T=CB~d$wQI+?Dt96=Z+xXW4Ia2C^DDB#a z+i+5yibcX1;#Deck=tpnW6TatqZHhRZbMi57p(1hHop`;o$)6$V1&T9_#@@7W2H`* zvQ>_~LZF^cbGbmNMLkB}t1$8;SE9SkqfUPIYDMTj?!6V%CVur(`6dTo|y^g~% zuI2%I^FIYOypyPAJu1FwO8y?4)X42Fh?L8h4vYLjWn+nWY}~(xkgZb z&a>Pg;$(BwmN|GEPAg^3qa$1R#v|hrlhxRV=7+S2^sebw=g)lgt{}-VGi9FI23&4@ zO!ldq%Etbgz=AlNdiIok1jQs0dt!5~2Mx!Tg6pJ?!UY==O8BNHWyI)b3#OPEVhR`n zQt6#BasThMjfz`*a(%HizlH^kWN+JclU;QwSi&M|r2qCfML4y^{s8|!0Kl#8^2zo6 zS~HI=MDypu6~{KK2^d(25ApD7Li30D3KG!AaJht`UM-<&Toj)*4Y``s_LH#RZa>OoB=~ zp^JGl>j5zCmn$nSI@lgXiFk228AMWI0@bO$LXU#2m32l1wmMu2i42b;rjgE_u(wv= z7djb={$3?dW;$`UoZ~V)--h;4Z*G+G{qZ}3B8xpFbFX*G8iG~RW%|0YHAkOk%B;oo zz+a6f0T)o_M6LVXH3lDSFA6{kEu3)E(2gk^MrL-m%BLZ>rT;h?5(JBU_S8T>?)&At za8BONA}+LcqQnRMP)2`Z`^t=Dg?|dNLd16PdNOovVaW98Kph*?a=@H%Xg*~ldrbdry#U3(o4)Sv>;)ON3ZU2hQqZUM!uE@=i% zFP?>wa3KvdPAHX0BN3>-iv*XV$Ataq224NyYPuZ-g7Y-xm;fF;k;Qbo$FY<0IdFo8 zUBP51cNe=!tJdtgJI^`=O#&U(($+58uEk56KtFUKsmwci+;!^97HNU-h+FI(`OBGM z9?JN5QwWzqjPsa`@kt>}gIvygYj)F+oQV|+TB!fj`yVSIfcR_vx0L9h{21QyHo1~k z)_2@kK6#bkzzVfreKyQ|5g#4-VV5CDEdkm$a0*}MDG=`JqPFtSI-G3@M_PieQCE3zm*L?SL3pkyCc1C zh&fp_A^NYYHt9ZW==)Hr_^+xvTKQ3PNwX5pHOZKXz-(eIcU3MkZav;Lm2Y` zpe!5Vp5L(l3%%tI$(^Nl?GQUaT|a%4w;OcuOAgyF0Y9O9z>xT|o8zoxi%Y8xs$cdt zJWUIr4-O7^Rc{48Km>{}KgFBpyb^(i{N%9E(+9~KwpwXs{tp`6V8Z)T5T z=cx>PL9aQpuzfISgG(=8tZ-TiEFDE(K*@`Uz5N}stE^>(D!ZG2PZo<-OEE4yX9{+Z zO?QQiP%=OlnjGzrW{6+yHjhG6P;!B3Rmm#TX&LU{A_~WhyM3^Jpw3QmWBkMP{V9ZN zhAx;TZegs;Xhg9}HMilBbl{mK25}R4{MOSuY3`OU(R<_7-W*)7o_;UwA-QfUQbZ@G zn#iVD9>C?+A?)x;z5?wDnN(PoMv%bGI+|b5MRJ$(`%%GBhZwf)Hg-EeuK62S<@1?R z8aEs>;R7uQvhP{}NbW zYm6MVa$|TOplr3OAbD9Hco>myKE{(pjug26T#<|{u&vjj$z}q7(VY#0FQOLsx6XbI zOe0DaX0e`bEGz;0K-2UfXDzQ-cm?^;HB+g$IXBJ>w0)Aci6k=qmW2zO8IZjxQ`rF1VD^!F z%N6u;m;2v%YY)2e>Do-Rl+(`Ta@8E%0RcO|@}#XfSix%Q+W%>HwTScTw{V@g4eKb7ZX0VdY|2d@n;c0fhMPk1!3Y<%N zTQ|d*^(mr>jd8|@j+R!@OWi+gzd81uKUN!&3T&4ce?9n6)bG#cG6)X&R={p!<6@f< z;7)lC)pKb+&lJGEcQ}apw4wlSNESe5MC)kNn&mqqF_p1S@2v~bZ?xWdd zbT6DzS+9%S(}J<{B%_`pT9NCtelM!Y;O;60D-btmrU+8YtnWc1Q4aH=M_gRk|a+v6Xr>jszSXU zh3i~57WhixL5ig@CP%!q*#b`!FsDPRflI>0x+h$far_v;;}<$BfgK6~55RhK*;QTY zuR;0Kx$PORqeL}{L|f(}8bU}*WN7yWZ!~8?SI7-5CTnymL~yOgt}5#b@fUoHx@#L< zx4L?Gnycs({xeOVXcCufhj6`3W;q@>ds&XeLP`> zvR{@S)S+ch-^Fx;58(ah+owkdv?-ORo}ml1&6GgX1q}-Mt2~54CWHJq3Wo)K8Gp-^ zh(LGwP$panl3b(K;#=i7WFW49mISkE)H>O`YLC6z^}C5tLTeem!d-AykEEJ*ZoAeq zJLeGJNe7#*>9-#Wi^J*P~9xsw(82ZFm4C_`Q$&&o~<&z)cr0?i{hTU(!g8^Q3p1jQPUhz zu;x{}zZ%Op6zrotTD;-P^v(QcV52wYUHBTUEMe-jMeE5PXv}i3D`x0}>ml10%rKud*fK>3T4OFNuF3u4CsrsD-&dj( z?kzdYmX9lVTjQYS>biqoPc5v{wgxyd*7#J15vh4ux7m{EGA*+gQ%X?k|Gv=}B8oi@ zpfxG8`e%*%MuRl?)4?B}V<6n?jf$YfQ#$@j#CN7HTxei-UC=S-MsQ}ZvXUa86c;o# z&~&3#6be%+0fusTIkuhi6ej`Obc+#D`%aF&vbNGRRJB{-ftwceVaI9s9NdGz5MQgi z)4tKmb&)3GvW11s?_9!N=EKw*RHwjR`|Vhks8rMK?dX&3gC9*vJFKY)(mA7by+LtB zNo#?d-tx?A=Am`Cn(R23eHT#!rfUpZgg^8pPxKtFTsyz{y?2U%I^xb9R6Sz}R14%5 zmms>U0Gc-$#>@I{yDD3)7|Ws(fU}-MyNL=}^GyV-XEvIZ8azAa-O{n3#6i->=FcZ` z+57%MYvt=a?S6`aQy0+&g_t}7zWeQeX3|X7V-BC_PuTn8loArHRqoe)SVFt64>uH9 zJ6T6WxjldRy<_@|yD9bgpKB^-FT+W@Te%ONRNTIgh`||Z#(XFH`7K`ir@MedLi|8X zIc6ExH+G&HF8q8hgrmW>YBl7wGNn5zV(nm9i9kAu7jZOCP-?B^eRcee{iOt;a<4t0 z5gDP%6kgIAqVH?It3YASBq7?nRFP=nw#GPC4LlRpmwn+4Ah3IoAiAM(kWEc+S=EOw z(HQ;k01{`~X_dU`Sj(jq`LeFp8HMVwFdUyrY=S2Bg%{im4wFb%xe|WX z9r$S50#i2?r#P5~S|F|UGE3s1!y(i0W{6W!ciOt87^zf!Q%SyS34HRl1xG}bWjD?2 zAmKZUX>bT~SM^71*v#D{W}C}!%s!R0siTgKbuv>O<|sipA?H^Z4+Z=IV3rOx(x7<6 z9^Ij4xxO7Cs|S_*^ig2h#$N#2*NTqkAoT2lVX2GbN@v~;3LSKP0!_d`4T|8c!OB^FwA>|p5(v>vwZVryW*MQeB&=sge=dfWwCd9Ff2anI4f42vaYm-013K9rqXQZBA3E70?y^}Im3ACvmQA44*R_ceYKk4xOK_3 z3aQRsQdbnepclBpst}Pp8k39(wVzzuv&r#rDryT^k!x*X8}CZl%H)s~#sNJEL;Ag) ztBzkHS@D)&-7dMi&~C^!uVuEz9dyfJ+JQY)DZ%}r`|o0r^hkQRab3n&oeY#(?3?X( zIFJHKM}A!-HNZ_pRDhqYavop~Ku^d=|{dWp3@2VbEt>JUQYrVxsR^koNdbKGbUXOLIfbNLL zfHYg#!Mpn*SdA|wDPc1x{7{m2g7{VrEtqSf)=ppKAa+&5{iS33hTPK0 zz7{(W4P_$|&HF{bAZ`$(Pkj%H&99K8!gKg3+M67XG*&5W(JKpI$%_d+2GipAonWWlw7Esi0bbAIo1SYqUK z?n!3$B6E<5v_akm59$|FFw|%G$()aA>05Cz@bgXM0TJTU!ng7)-rh6Z74032GgijY}p-yx*Udt^WsiJpZ~}T1f#yt?L29ebjVO-O9;r9N(rw*!$zMM+Npt^W3s?Ewl>}( z$^BQ*Fc!FJxV4_vJY3pN!;4smXyxe^<8t)@X?J*Wfp{J}}`yQS_`TflHJpTM?4j zs)iV*8xo@q!~l{0(`j}my9tm%N}cth^6LtLU@m4+(kJ3b*W$kG`LNDjbp7XI5`Ljt zZiR4W1Fhk1zt8IJX#Gj&$fk2f>e-Z1{zU>Tk&9{*< z_O_|2O5P5;4Sk14+5O>U$l*nDn-3;m3xTV-ni@WlwMOjAYTO??JmOWq#>>9~XdH-X z5i6%~N9(A{X$4?~s=yv>xHUAAz-^pS!WA8oB%`+pNL)-T`) zK`O?$Pyut?9TWV*MBw0%93A5v#kQeE1W`&KF|#Nw9R>z;`#ZzL8=B1#_$6XP)J)Gg zM3Fg9rg~Dn=~|9;Z2>(b*p4gsy&uiT4DkqVl`d&9CC@+U?&QNz!!3UoxA}$eDqUAs z92-^LbNwFV@;^=IU2iB`1mnaPT-jWhgt-NbcoD8A-Ixf-cig@cQd)IYY@qUAN_ zweER^`+<)`==dJ>oB@yIzc{xgpJ6Sr|36{QJh|KiW2<>7^^wSH@- zZ>s)0opcR$Q1{qub13P7$@3n zzPih?bQ3NPNd8be*ayX)m5U~lE5A+ilLalcX!M@#{6Bn$|GHBoN=CKJ?&*TtMFl_6 zLnHIO`h<(0%D5_d<;E(wo{_phYhU9#bp*E&SF4bX1Cz#&m`> zHK@|ig)oPC$2%FS-?W^kEe1lBG16upR)O&K6!h+nNtqu;3A1C!ueZ2eJk1Qn!)n>r zZq{u(Bbqwu{6k0ac1%{DvXXgi9<+BvDUK|mV61Z>k>G*I313xAr0=ekKa5dlprUg~ z$qV95FMVPIe}Ia?C|b9=ds;;AWcKsXQns&64n!`BlqHnyoL@a4(s9D1nO{l(6AcMw zSA_L!+kSPxfsVR`3lx6{{5f2dj~B+?i3+-+fW%Ot2c`KLB9TXl7gs!cJMi-(%U%AZ@z92|BrXLw8=A~DItK0tc7Ze?dTUDd??&9(1U*v32Dz_^1@?Qp_ZiCpKf3NUUj9 z!l0Jq(vAPG_oEK~--MpF+JTo97wgO*Pw~hKm>-UdL#^PQp<%M@fH;>>ykd5t;?(sO?Wlt2qnF`zgP}O>fL4n z*psY8a!h4ylh2YN6>Yb3$V#lG;24Sl6kq2*0vL+nv|GBkO!Gvm6;u#=0gcs|OXp`f z5Ec7;3!m80>~OK&(B7(!E|TfJ^0kMVw~KqN0=1iEr%CDuHB`BD%l;? zFQ_vKl1u@uWwT}n4Uqxn=@xm*V|ocgyBNEUu!iLVKDocoX6c)*BH%AujH&nX*(fwm z(-{FhpSjJW?gBEifm)0pz{;UDhEmht?t@J)6}Hf1pR+rm>RNYCW%@a)B0W(eo2`Cs zS|4j2dl*c#Mm1{fR8}tlh1M`39@xz46x-y9BS>`nqJj+)QFF zKd46E5CTCsg1#Beg%`j#gU?(KRPB%aImZPLWJ*_d;dCeqWQgupR2#!6)Ib{$31qn4 z;kP>suU~`qd&7P65mu)em-sY8D>RC#(G;A5n_#GWr^?A2cyK}m;DU-L({J{O>c5mj z{UD6PJN1Gyjv5ESr&;9V|Dd333)OAoOlAwW(4?nxjo&UYz&CD>*#ai}&s5a~Ei+ZM z-Z+U-GJE63wIPHZgMNbtCy`y1Xo;r4*=I5mw+r@%TXJT{!Hjb2iH3bTGuDBU?QsjB zP&?U6X}ORxnL&mQ#nH(jVYdNDlSr#dNP##Z63SD6_V*~mPKF9K(YFpm`gqtv_Z$8j68 zc(j^%x+i*|y9dhF3XKLAuu4-$vslh)VZauy=q*rtb2*VmCV0Kik}JUrOrosKU8Fa5 za4mb`S5pF&IFzu>8hA^jW=>cy9+r~!N|K5il^*>)s5lX79>|>jK?a{*>do=8DZQ7F z$jwe(<{eMcIGnYcbgW?PLdcTLan|43=@m#Ztmz|oU3()K$;&I(4Cr%n5*7!|R{TsP< z&}9BTgwn7Q?yFBTBVJr$ewLH1vpJPpQq`&Ou>5uY>3S4Vx=45oV)p4JJbhTB{jhM( zIeMt|9>#u7E5N7o6b$6n2-IKQ&9n1RAW(fIts1Az&R%#1(4x^SPVG@6?=6Ly z&@OLoXxQ;s7iSntL+2OY3B?UUDNIlm^V@q#)M|J7^_^2`6=UAGcspiPW=`IXNH!)o z(b!d*0)_$(HEasZ%WsC*xdJda(jl5Lf=Y*Mx=3v>Q@|dg&@%I!81;`0!zSsIBIr-XP4KEfvjP&uD zw&qrVOREDX^(o0;4P@JecO?ENRZ*iNo?VYYb!te&>`!vBtT1MP#}J1**N`$Hk!^b* zvI>W~k4SU_mLAdy8e^fy9w!y87H20gV{bh@y-{>mEp<*R5*Mj!KGFq>36!A!_T;;Y)7ED<0L2&IqUK|i^hJ)ru zXLHFz?lrISSFX}tZG*crX~CzK`0njYQM=hJd-5_Ve7A@k1xdK%hV_4tuX2Z6`t$zd zy72XR*UuzU`6v$o@VB>E7D$({SqT@c@tBOg#D9qwt%idSOdAyOqnpkDi^@UoUe+MR zmt05c)m(p*iL>VGI;=@2pikP`Z%$)b&v&eT)utSS*5A~X)Lw}8i|>7MXwo*eJQI~U zP!*)6c`mjicH_wvRbS_`m>Wiq9ccRIC=3_$)D>PGW&8xTQyDk!P%ev9;CJVbscn9I zuQow2Du9E~z#gp;o za|Qt9bQj8wIC;y)q8+F3v{}rBpWo)5HV=M4fbV zeggQsFGuK^o>o$GP;Las9JF6vB)y6??o)4Cv3=;y*Inx0R>+tfV?EyJTxaw;B;1+p z=+5n7NMi_&Mz>e7K1T~6PZy|E=CZ#F*t|d=8K}#I>>+rHUwkjZotmE}y;Upl^`EDf0AQ`d_GxoFX_li`Uob^3A!W0NI$rB<+;tU)+N4{H{U zAg20UL4oUKJcQ{5XmkLMHN(5MYI6hx$V{MS?7ys!19kK=W@ij)A$n2o1yXmG5JB#AfaYO5Ku`U*AM-CYO}B;Sn~Tuvo>S?_aznF z@n0Qv%RG)Ih9n#6QrxYb3(SmJDv24hd4Z}(WcU9HSlbjRc8{*4%sL7im{&BzB{9nE ziqzR@CAtI*ooHOwh^h(YN-i1X5L~G2N0!!2q~b4I)XqKIe0DKjiTfu8mG**YC6e(0 zNFs!U3(;#X%@Sn>$kEuak4&1vEphqGJr?gjOZf=>)CA}57-_kJLg(AY9*&nyhhRFl zHzp1_(ZV40n~G1++R+~98P6!!%qUE{U-*xTyRW7J&w)%wijAW3sKmJFQ z$I3873?RSAR4%|{{i!ss0x?yCqF^>Sb3$m?{gMd-axIQ^ix0A zU^s+dg6xdI75(+7A(D=s8j>&ZRUj@EhB~?Jh{cXni(R0$(nccJ=G3c+cJY~knf4TU z>fwZIG$?iBVz^u&oTsH|$K#X-5R&F_r&DOi7bFzN3(Fsu9I^1=jI53BD}ZC`YKVjJ zZt+_*$#)nkBSQbWQ2l@Y(0q@sJ6orh{*DEKzCOmGw= zO)tmht#K(2^*IPPOUfQ?<1y5u>p}HSKz63lENE%u;sBd-`-i>xK=mmyfdWsFHdyqf z&uTNF5tcSJ98bYtUbeyCOhs}hiqY3Q8(3(nx{q8o zF7rDQ8#MRJEIz3PK)$IKbLMwj!&i?3HAG2Td?+5Y3a+E9TO%t#1{N6$QHxE*p&d7^ z-Lpw5tNr)OUTK$B*sM}6MHqs{6TIe)<}izU8rZ2=ztLOA zkg1A{R&k}jh>OiBW>@m?^bBvz$(=o(V`o9>7ER#4wdUde1$u=1>Q z;sC2y4+PgF#<&f@bO!*8jirP6lE z;a>;HoxSC|l<-<1`c8XXe+BB}-4d{tfdrs3oE{#51dulR?=9OvR{T9Lr+(xQz$=dV zN%Bc+NK0-UhcW7_zu@-b3#ftX*OF&fZhqRv zSMXCH6TK8Y1hw{G#;ko@3RLybe7H`+j=E`JCt+&K32l1Mdn97rx)s!EBH@D$wi^zU zOU>m?b7VWyzHp9>#B5%FB9^mcUxGD{o3!`_5!7GmXJE2!;6jEWkD)8k2HV3IZ(jvq zldFBcoF3kwEuHW}eBvM`|K)Kp?e1mf;q?)n9%Ci}LZt-NbROxFA`BiSCKUKssqeqT zA7}ZUw(qGu5O4)>wGdT4ogYTow`h-3ZD(}oA>h_8V-tpSz&|FozYkkthX7rtp$3FW zb{QZ_D46Jre|@@b1R-D7K~feS%KLKOhKX^n(NW9I^aT(_I^<4r{}KK{!(w% zc|`x{l#D;mcUD3z>?ms-f>wcuyc4JwbdK-ST>2i|zQ#V+j;K76lWp?k!H)~LX|)sO z2cz$Q4ykq-T>R_BkRPL*Wd>s=C4V>WH{j(>T02@CFh8p#NgZ4Xe3Zioj?leC#=EE& z2qs9i97~P?9pv6$*=mxh#;N_!=z?Zx5$NNdd8>&A&%t9ob3@L9fAdHFHt6VF8-sDh zbZ%U20mk+J$GPU>6wZF1dzlYWObhbs-8=t+#TeJX@dbzVl-xYH>D^WRBw~9#VG#1$ z3b`gX5@n+^o+QVb>x@qSwK`b>m2)ST)KFJ;lg1A_QB)Rl_Et+H8BQd{cN?T%-R@fn zj=rg(i6?3PUi131o&dEXDp9hO%}G=BB}wDDuhj&*Dd?=Kl;!q_Zi>9PjrWdK4}P1& z+{xkVW(~=DW|T7(EP!pFpn)1&#hJTu{B}d0-K17lQ!jc0cnYV;{xkw`{B072tx5vC z>aCab0L_`j3mFlk`j)U;yK$`%1V7(5My8Zn2Pjp`eGhsULAxH8xfK_o!v@|TI-+eD z*Jx!}nG;}WHYP2Q%V8rCxK(c+Abayu%Nj25M+v9l9FJ(wd~XOn-kb^ z!dM0v#Sr`;mMa&Wt!+UN8lBJyyC3icC?6wU@h4wyUUC8O;lh<;YH;~; zXJJa1Qi74EyT0as1{@_`8lhKC*!U`k*vX*^z-uYe zX*_DM9w5}pVz2PYptkbf>x68e^8MifpAJL@C*7MuR~H*F^eQhG8hSd$>p@xVw15_k zLMx|uadPs#(0Tf8rGy9hlnfdT4&)jCXuI%R|H>JWtWjtm4-)SJ_ww~jPGT}cgx`(B zEC{M=06;wC3NQX`Y_^;A=xgy@9-HD#l>hewVs=A1{3ya?Y)KL|OR)3R!-kWrBdAuX@QI1b^y-W=Gu}MY{Zb;9t2y zaAZ9~NLOmek-KIMlt>geK-Sk;VQezPsqA+o4ZQr5|2KO5Mw{L?v}m+nZK{>%N{Lej zAivYX$&Nn@(x`6zKgbmqX6~)^S0Rhb@(RwB$GH)5w#FwaVdNu84~!q_zZ;Wt_DeO7 zwvsZbhsbuc4u`eg;2+L@a8V2icRwKq?y_+x{S9F-sRsS^%`9}i|M{J0e&h~vQT=_Y z$;?#QUl&_ViEiW{hwActlfHYo7qlDq$Hc6flF)E1mPOX*2gY?-i4Vv$PesFo9i z3jo2t^re)3#&5DODdK?uctn&G-2A{yAY(~@np$+%A49d#1C3yx+APA17(pGt9oB$x zm{Z%3oQ{dPt;a${5nY+qFA|7CkA3ipz-mDPbwuhLZ@mWb-O|?(N8}QzqGJP9oVo$Z z>Q-8Th=E*{r9*Z9fDds@OI@(Icm*=E_L+J=Rbxt~a1wqRG~nI9Rd-xF@eUiL&C&#a zYe6i8TQ`f}t(zbP6sx-Qu1E^Qb3;8|1H2mU2wg_+M`vqO>LfAVVec?j~CN+}~@X!nb^x;bxj8!$p$O%yu!|o6P7S z*xrdDBQMX_Cd}?tAc<`>L0i<8E}oL~oBT4V8ma2u&?s+sjy0yoxXfsjrvk2D0-WM? zf4*Wn{lE^LMM?dYQZqxW5XeGjSqwNXH11Qoc`h5DO5%f3%VElJYGs0OpT4H4NP0B9 zv|XJ>`c$*XMT|FAS&C>ds@V9q#fCye-vy-8I^M6%zjqd2CnFl^#JW*sP$i>JFJ(d> z7TVOKg6*ZJ^k>|aEx@TquR~iuo)ydkH`!j6)zZI& z9GS&fAFukDiV;$OSEuc5H_k&WOPcTFRmOIkK=VN%kg;a%(?T?}4pS1gmrOj69)LZL z*+Ur*epg#WQ)0vv@2`qToZYpxZw7grO_hj;?TrG|h;gO0C=GQCq21=+*Fe88vC`I7 zWR)w9F%Z~#V^fEm!TbUM6b|XtWfH@}`q%odkl}Im%nR^%)-zhh|01~{_T_SkFsmak zO4z7^Gx)(0+8YOJ8pFaAl6;UJJwL6dw6-J6QX7D15udgdsNaU$C^e$Lr;L>{1#q9k zk{{SPl7FRFMzgWrJKq1Ipy4!dX9OG?yEr6O!n(>BY7!`rh|?U4i^_3sp#!>tRCSw|4t0#&9$A&6ejVw2K>&hOiw)? z=b?)#8x)509OlqE^D;0ehwPVm$(3X6ylZ@68c25)y0go@=tgh7u(^aavqa2lI#Pi6 zQ901JVbgQ3l6X+@SBOk_d6;=5X^j??hX;ZaHG6;$Unsg<56Jiy<1LS;%UJfa(LSPFM*6Wt%efilyvUS2Ji?3BEk_aUNR3N^U3r6_ z6ombvDutHx6G!HCH+8L~o!kFVbZG;WLd~?MYU3{xWOn2$BwA$5Hl%FSq%Vh|ym=Cg zqGt!JI{(11YYHDfZpbcqod#uW-@E}O#_7UTZ`|fQain()3BkiZW!J5K+~z~jD^?uuXlHD#WPjX^`)Vcb+Ds5fw!Ve z)&2e{8+Wl))4oI=#H@4EOXqbr_nZ6F#hfD|h1QhdS;Bjk@UCVkCLy+QFj5z^aS6Ta!0Q@w&2m&x3hrfPVVuq0; zO_;%f5av3cK@Y!S34&g_i2gl6kpniCvckx(t}k%`<`otZyv1?xtl$S)2}44w#capO z^wgYhzT*0sNBsqv04@I01E!VoJ)R?}6CK3?iQmqRq!>!OOPM;9T!lDul^?XkjFN5K z{Bn2w9Ww7)xwEj)UnyoVP=r{CNFe9}_kwSXkWFD&0nsa@DnH7xPETH+ z@7dKOiaM^c4bu|pcnQ$za%j?1D28dCtb|U;*A>4t*atr_l7m%xn^O(3zV;+cjs!p= z+6^hjI6kc=x`un2-nu1!5O{+WBQ0~D-~vMQ$WS4i5dse|M%s$cu_s;j<-X&cto^!8 z3VM&8pNz_KJ74Dn;-jSZ`N8X>h{7@`Ux6rnqf{4P8<$4Fh#n#FN}>yR4$U572e0ri zSVHHVP~|(ay1N~Ez{MW%*bG2CL}Q-sIrhws2yH}}oeAc(c-v}I-AT7}VNDz;3^8NP z@^=Uqh5*Ki%UF--C zs5ZkzRqn&{*FE}Xr@t`45UOv^et2$cRkj50`MTL_3(K7>0+Z!#-A-yc_EiU982xcA8ESxX{D6u3rP0x#i$=KFi2rf!KR~s2x`E~Tr zc~cX@pF}NIYRwZe;Js2TQ!%rwW~HJ-_<3(PLnT_7yPrT%-g+mO@FTqXi}I~MmZhtN zpWPdUDR0b%AZ=n0{w!1Vnh&f&H7+q|P|k@18@1LGzynb9b>WNL=J2TgJWBp*XWT<< zp@aHJT<=^;@=(Qix=lZ7Q8r0nh3|a;>&G>WA{6@+~`0GO|E2v)oY-8%w`V$=z9Kda0_E%Oro(8+ze(0WW7Z z3zaKbht5xR9TSE;vVU?)B4Cl8APlP74NO6;tuXYTNq;9y)!sMVgGUXy(qay6`mK2r zkdVDg69>Xc4nQ3g{FjEJjZFo|(FoTLPE84|R=~4(z^4UM|977m-`bSmqNznh0aQOj zbQvZ>^W8}CB!50Ah>$(5F&mpg++c_O4_$suV~@l>BVJchz_n@&KfYOC_1#xy-nsO! zMbxY7tfrELs|`<4XwQ?fFn}_t2Hh;|;I6Cwb9KM_OHCTKN6TASCCo7DV6X5#CY@?Oe`kUn2u25 zSJhgCZXFHz5ySvM^C&i?#6j{}3j9-4ylXuE!o9&g8ZnA<0P*YZ{fzR{7!BOJCdHwM;!J)d4#QVPO`xN&QNPlt*_aYt?#l7wzF~<7%2k-TsBUau zU&^3t%!f8RiA6|(ij`+y&FsRkvEIhQh;t%V1<^;Gw!_(0JoXqhxnbp1ARYn%Pf&Fd}9rD+1wW`!XQd1-o+wcdQALlq?3lZxs%^@o2S{reiljs8-A$2%suJ%N3ik7LW zJRfuVSiq;+^m)mVGh&56`~i!a1a3nwiG!SK%hI9kd>03kL;>2dd2-i~?Ige)KnCt0 z#5vGCqO?8KS`MNI?t8e5w`yN3-`$W(5#u9cfdE5$;rSdC>hY0rQpX`u2vpeew9Il9 zf^>iO7q#w=c|Ml7JY6N^5Op!2oVbuvo_r1++AV}FR7kifw?FHn0R85NITK|;DCUH> zt1`7I6Mc5jEtD_Hi2pz0w%X3AJJdTki_$8BkwV>N8K-5w>A!u7$X{Ft9FX3q__>xRr`p=3kn>kxA_ogCX!yHDgr#RTB zKnLU!f`D&6sfK3*n+B1Hz#^Q*+|STVv`4d)>~3Q=HKEoTT=rjDpKd9N2f`e~h~774 zcGWEWA2O6WtirACBT+h&Nwm*;0)^- zs^ok2k#h9Fo}5mux29nY4t}$PTMx%7{ZF`z;WVf9zCe76Pw35GMr({8(6NdKaMrYS zn`swi%OPn^*_1z6tubPVGgZ~Ob^&E;w}aae@&)MBi{y98l?lyusMhZz!(iuPZp<6M z9l1;z1Qyk(AmteKDmI2`mGaxFxcIdqf`sv;=T9x@h|dGs1IkLmhIfK#i<}BZX*etJ zi6NVPf_05%$x54C@O7#U4QLw6cYzx|6cf?6aYs3*pG2~n z7zS9=yq3eT2Y)D4VDq`{OFBW{;&vqam*-%x2`1dq{Rl6XLy>iLCbzdTqPR&gD*n@a z0I3V$gj-E#A0#rzgMrTe?23?6d(z(fQJ{dID#F7GsUbMOI2|o+OEd1W4fe(iD|LOI zRV{F=A~$;V85oO^b2o<{KO3kV4skm68qbdGN~ zD}(grC%JCClS>xkx&uaDce|cKY0P$RVKt>zNA;P!+iS_Cd@Tc0!dmnpfA~w3u19Al zeR=-Z)b&c7JJ1vq6k3UeAP?+gKLB*A)cfF(rc#s{R&o#Wn|l2fGjt0=-@8&+ldf& z(w+pXcD3nWsNbeS|I%wDS%;1$x@`~Yn2^b64S>+^tn|~o42LC+WRHpjYIOlUA7yuQB_*=)8A|MbD-kK4y+KgvY z+wDxrgf7@2m;KPAPbiY}>Jqs-vWespzq9$G4DRamuKlp#E!(?JkkOdls80XgfNLar zWkZkRn@kH*oOm%2w#9e@-l|M2DlBBXN3 za+Ta>adagP1`gg&$FxQ&_l9 z4jGV?KN^k<6u1y6_GyJ|btv2E59_*0S%zToZhOMeSD0UF6UNZ#T&J_0$A-be=c87n zgRVCOuU$Cg&S>Y1jfTa_^|%msg#AAO^9I5P0Aa=cE(Z?Po)PyoAuPrdCcqI)Tm+## zX|fx;L@rg%d$?NjWLs31<9ry|Rr+1^nQc~*XQ!PxK+M)|H41cmE+*7QgQAU~lnYGe z3Sy0g1&n9wew3)J+iZW7e?i0Gw>A|Bmm(Y*SliJhudpp@_{fsq%Cvic_y+`IDiv?^ zvpM!oh(h=_fFZEEEzZ!5(|eA>Jz!U?n)6h&VYe$UQ1;gWj!)EyMFnvCxOG*Jt**88 z@DBZ7EjTekW{ypjZGdd5+-jK}(EuzfkZxvZUUnw__;>7j%uRe64!{nL1aUU09vwG9 zV9eV24=Q8CRz(AXAu)>j2o>L5t01+Bm%9VT$M$_=R|de`8rn&LEND}TxwangAp))9 z!~``QQq(V{Y5KlYur@s2DlX4OjChRBZ*nh@_RBcz>)xu16#3|&1zyCVIzuy+0=Mn_ zIE0seOHtsFG&2=nWbf*E&-&MMrTWrpHxyt#t=w%oPuVMnV{ybu7I9&_3MT|YIJJK4 z@uv~kJ0-Xo<%^66MaN=l$Y^R*B&bPUsP{q4AW$z%nj;Y;lhK(YqV-v<6(Ap|+DNL3 ziv%P@U1V^MU7a5|M)?Q=i@>6&Hs5oz3-T5Uzqg(duo@J9V8TM-|c>d5#{TL^lcEXxT}7CfrSORbNuyTl9pxiyiSyIcfZsyeT7 z|InAt7H_M@RNa=-a+0t$$TQh{4egm}@9gZ2>AY>z<|9ZtC)y2>q4Kyfz9;)?e*DMB z#69U9*GF1^WKQgz$Yqauqhq@kKtuxuC9~Dt|AgEJ^o~HB8#*!PS_B;^n!yv5knQbC zI4u3B^)gL7VY;l`SWn8&xZh}v#HU^30ZICKcrVq?E@Kg$c)zqjx&H4Y3?|({fqQam z3X&$H{-EkfQtY=pg?lO^xY&nZtuK`K{A39=C|P63Xvd-e%CE2AN#qeLH0%2RW&^FX z)6YJRn05oc{BWK31`eIsZ=MRU&mtZ#Bc=boCw|_kikM}>v(4)>PmRwGWaW^;*;dW& z-TOjRQ^0chS;L0`3l)m9ofPH+iKf1Swm-|>(4|+=dW7jb=?B&U`%Utncs@xD*Be@8 zFBIqj+Mxcg{ckTqnxFY=h(&aX-y!W`y?@SV>VkdA5pKOQP)u(k4}OrZON~CJ`45$z z-8wzjOj$-?z!Bs{+teg11Y2<;HdWz7w>9tB!S#jBS8-2^*tGAusU=TK=f79N|Ef3( zrK7A+?~3>&q7zHnmi;k2K2GFWa8~F|M&4&ECmb!k$*3piv^s@{LkbS8TqR|%rQ2C- z4uYF$fr6P5dfC6y4UMf~f4Z`7C&QCXoT4y)QQhEa_=Nl7QN7A*z0)XT^rxH#3Y;ao zaYJ)?9leBstUdikFf1=10daDJE6RW7GO4+05@}6!Z%u(LH4T-&L=x_j|2$z1; zI9V87z>wzS%xAk!4}VAXdS-(NMJucBoZPPuab-%L!@(?1R#}U)`$uL~WDy?8zSt8O zmN=AB5)A zxM2_Sw7mkio#Ev-d%};n8BqI(cDck;B+u!4CVA|a;Z6Vvt-njV1vNP9KksK&$DNZ6 zZv{soaz1n<%GfDVQ>6Tb?>TKxVH#%=(V0NO(7s9w>F}Nwaf94KL0Pr`d-%#e@8l1A z8Y<&!7*-er@65&^(HLwkHV{yfqn)O^-rYP_^UnQk{n;Y+zgH-;PT+ol>qyUq!)uJc z1R!YPjdM0sLdakRw;TwMy7j`khZ=00+@5WJ20~dj*YG1&^&7#kQwofc58H2@5=&z* zt64a0V)x_G91+yeq_i5HbVN@?8#I&&~}W)JXgEomH9O#!;0M&7vGnw$)m^Re(mIv6y`P%lpDQCH0_>jO~m zpd0F}B^mtXkl>#Ha+S^zM|ssEpAe>}4rkoL&l&7=JfDgbsuCO^|9|qPp07;97gn2HXO#vMrxj~W0?cUe>*mK~7 z9??u%J&zz-&rUYoKw=BZurz$xVo_0K!ka4-16~M97ifToVcB+F|0G}kvhm+ttaJAS z^^g#lpJE==O;!ruaQrN8OIzO9`7PfzHKOAIy?A-Z#!+z%Csn{ek*Mc|eo_VRME=82 zX4}O>^Vyy58gr-Wu*7JSH7nPD+qXP~gm49NN0rRK=prWc`I`z)b{dTUpNP?=~8<0Zw5zDhJ{$OI!K`Au4# z)8sDGeAUwM?68Pojcwp>^eoyC8)cpOFcddZcwbY)%eP$3NPmx$16orZc;C1xkIT9( z(C5da<9t@~GqNJV_$+ReJ;I3Uo|}t73*cwWnE1F_FDXR7dRbDHDdiV-pbnyZ5gM-em0**iE~E3%XU+OVSvOL? z+uPvOd!dnXZzY}sUJOaq#$IMC2MQA$#e;;Nv@GZ=a9M632+7qK1Lf`*5Q9wFssHG; zXsUP)tBjwH`8BKcNPc-pZ-*FK&0#Mc%#!C-!n!tGnJ>9#gsCVkJ;#M%z0Sv#-{jwI z{lVqlJ}3V|5Ad{5Kj|Ft`(mA2#eI{iXhIyvy?WzR94iP7t2$_6lKp~w$M#3U<}PCu zwV?j#A311EpT~GJH#*@j18nA6Ns=5jBJC-J;=Y`%m#(eN7|p#(VgO>Q2xBfOee*Au z;W}SDayMZcwSi5G5Sgm}@lWCB0s~!#w7t9x%HmcDD7~4`M zPXwev0?kc=hzsJnGQ-2`Y9#^J@4j;5&bQRCqkUQIMC;2vpCfCnFRf_vf#?V|yetTy zGSc|Hms|jTvp8NEUCin3DxaSZ#-|hmm23U|;mKBfZ$sWX%A(`gIB1x$!nTd?pW#GM z80wHnY=-hRP!6$OIgRRv+SH=IWL>8s7I!Kk<*)$2OLMSqv)6UCA# z6Dqa&Zt722QI%1y9T2*Vc*MkLcL82Ek$5Au(s1}msL-+Y8)dPBCZ#R&ioyEkQbo7+Kz&eNzH{6bJEmhkMj4aquJ5YL~f?7?ys)?x@BDeIg<8I})I-P%3OASGU=7_Ln z0F((e7auEkHv?3TbY4{I?L~nad`42;%Z!mLQt98G?J`U^7wO=v%hgC&lEiXe@aZCj zcWV@XNTie|YnK$3|CH%WFf9Z$CxJ6hAhv20++yD-g#L`qhrR~2-!oB{^=!@KIuk0 z{}T`^jFjO7eI|k`c8{!m3j0-vv=4uw%}_>De#j;{6>Er3Q#W&kD`)!B#KtKMRdt8W z4a{X-$21|8Rtt_O2%oJ65%*zNqVFi{;KMga~Ps_Te z0izHNBca>o+hb=kK!cBuPJ^>x_PRLH>D@GdKP<;ON!zH0)#=gD9?@?rS;sYP;6gLs zB}(~1=fT||X*H-nbWY|CMZRuB@&R5Ym7&ebel~AL*udfLljFu^O4L%aTb-~VTf^1L z%pNHP=Z)WUwe413fzfnwwPj2m=zlvB=iF&{C~tXaj*H})j396cnXU;G63mX93Hpl9 zfmn9ij)pOVKfi%7OPkyl%RM}2PA*xi7wIH!vLO2#@*VO*{^I}>jkgcWHsvgV@pjh8 zT)m+a)xb)#z@?kGKX-`gxJdkMu0n8e9B;{Rf z(G*|me5oq`)HmSe#m%a6Wo1n&2WCnAf2{8Cdx$~F9S8k zhb>^owCf`?=-y!Yw=%2Nt$H%-A1DLAZLyBdEAN0UBgm)L=-OM$7m0m{+AZVObb<_` ziWQUbAB+%?q{)xp)C=s@lA~hE?6r@M@NM%;aeh}wkFs6$7Z~ne6eCW+P;N0lu~=Hu z{FAl&&1rIV88wQR`0NJrC70iV{U}OTa`Kv;X*Rj8BeAaLxy#XAb@S8jhr%EqVr>jX zpaB-tK}9vxg>VC~qIBoHUYNU9Qs86`2%ucOZCh+JkmO_% z*U~wO=6Cdx4G}35>I4}}-k8e`R3WC11Oa%t4GcYu>=B#WW|rP96oou?rglG5h#bJ1 z8?a3i6boK%QewFJoELi(wg~8WnT}B`v$EfbvEn0MAixKW&tin{;7nHn2fd6O%L}C) ze7KyF?^32W7>4ZeBatIf$nLz!8#NRTTTRBq5pv5F=vcAt0iQ)d(lMHO8HIQh2uV&4 zuqIASWra1LRTNW}%H!|3uLGw3@tf^E43!9PV)uqOV0}tf$pia-y7ef3zL6?6(8QO1F1;&I~Zm5j~-A#UtiM6H2w<8 zIK86?g&gAq+te1+Je4%&t+6)VR5=4=?l(!|HScJEiJkU@lY^wHCpW&)ml-J+T7JPA zeqdYNQ`uV{57E4S6>u2P8pz|I|37B?w$!zJu|~#Eouu%EHwBd+(c{)2#Fg;3k_W67 zaFX-g%qG>zgVQ=@cL=2V?9X-IqPBq~+TcGp{#4)k@HV2-4Gw&q9* z@bVb@MrE(zWYQdqJtJBVWEbR9y6f7Dge}ZVn4mVFC!#Yx(u%)&K=lC)i?^&xASxn` zY~8v=>7;;sq?Fx$^7_@KiZgkf5pvJ0>0mTMmXlfY5ofK~J){!@ zdQu6P!n{DXt}#O_HKJ{tgmJG{&n%ITvTgVtckiL5rJiJ-?U13`2zJW6MR4FaE5ii8 ziMgF^Jqx)6%=T1~4o2tqu1Acz=!PEgmM+4JQ0Fv6r^suA%Amop}|D0 zTJf!f!D5Zhui}iW-jmZ5Y%F3-SS%nf;CP*P6c{QB6&ww%R2CKL?h7%1&k$s>RUPNY zB=?J5(;1B7bl#c)DEW1;bUk+QYjiEnr1fdDiK5kh@E~I?Qs$9wkTeou3o~S*`NtGc>bfU=YROSBZX@7wOrNE2) zs#*)ia3{65TR;^w9b*IE{0%U|&f|m17w1TmDDC&#Q;2Z9-sN9&*l{n_H|Wj~TRvCR zb`1AX2j3tW|L80aAe+&n4gre52ZvVS`&+e6JaO+(3dE)I5=q*P7=z6wS#mE%`>|;x zIW8C{7u*LBv2vZYt-!cNHyB)xtxi=}@2$bl{~r#@g@=PxsAX5;f!PuX_VGx7TMY!} z*R`Wwck4V~(YulC>EGY|MQVGz#aWei(Jlj46y>2b1HG_FgT9_oOIQf*^btzOcnZ8} zNS!4%!gkdFb!ZH7w(ApRg5^WI5Fg`A4eh?;(f-cVn~XzE$KA>G^Eo){?$Hz)At>br zWK^V*Ud9|E@4*pB>NTH`B36^SdWG1 zKg5$VKbn{CUXm13pwaVwjEV6(7U>1Fs1k1V5_V(B$S-IjvHFI@FcZD-f z`jaTCDgupU^=oUv=|>awnUI+w`g=7F^QsGE5KiJ%o-7Ltf%zOYnxU3QA)L)a^OrAr z1D#Yjo+e{QNu^QKjI}XwdP{Gs4LM#VE%LAc_+nCvii{6kIyX9uxt>P&+^=e@b>9}D zeXaRND~mMK9x|lS>XKEYd|HSv2T^X34_-)>nbW@n9ct`>h)-D#@2Go>(K9ztl6)UZ zQ>lK$NG17`7f6*xSK?FZb{>isw{$@;vh@*BtfYlDQb2_;*hm~cD-?1T4$3AN_EX;w z_ma{erv?4ro~y&cn3bJe~>8OdK5W z`jYW$c+ITBB|nEX)_CNk3DaTkcq}!q?K^W2DO1Pl8(bAVO6O9aw`PvxN)xhIf@!>T zV*PGO5=krCf1Od`k};xqyrdJVC_DTXNA9H-u|Fg*)i+bAr^;#A%oa2HHTWrGF+w9& zrJKSpMXZHmEvkX!b#&>PvLDg?qD(Qr?A#*LRRn307@L?phC*rSPNN(6uID;ifpS^A z0s3-n4Jak$nDdgkJxuE`r3+&=q6@r+DZ|N!kOG-$BO;zgMZ&>0jF%E~LJoGN3=Xb* zZlmVb1FoDsG1-5^vhT?%DBa9-J96y~IQpyw7+#ZCqN=Az6z{k*#<|npBJ16WcLC@) z@>5irw_zb9JcNHUE^?m2Y`cMl#AaOt1-6&xa+;k4_}mJ=y2Mcj=!i2 zG^TDMOjI_E?yr5%!3;*on8cGi%3KDIA;7p6KcKHHFe$)@qR$uO>iSAVkwx9@yTj;6MU*5;|bO z%#n4W_&M7eSiPsniBbr)8`bd!ybB~VfIl^*@kTZ__R@X#xU-On1O!Mjr2IWImuA-Y z>OkQnNZ?60cTo^l4Xb9v=R%Jv9H5N?K+$ZwNuK~0b;_4e_**l?RSiaq**SEsRGnGbtS^~3^Asf`SmyCXD1*8={ zQ?m|b#wujmA~Ns7WU9EY+`eOeBEsnNnxiGmHU!XNu{%G!fN!KmwoLKFoXee3z2Hm! zpX=_Ao=-BI$dScwy6OvYlOB2S^r&7TyI6GNy-dXfO*3gz0Ekj_>;wqIPx|*_^76?I zF;40hH@tiBB2^`nPMx9u zCuMSf%wZHx-amK-&7FL`#phgd0ig=dBOB*#*|L^`1mh)?H4vjHA92?-%{QuS)o7*$ z2;FbaK`x(=V7Yu0|LiY@EsSQEB04o~lY}fO$1dcVX*GVnK7|h+@jFNnn7D7U$*@44 zGiBmQl}$jJ*LZv?wfx*hYtgIU_Hy%4?eJ>+pY$oz401lcY@RB?Fxqajj)50ZXA{DG zY>6h2vm(-;={dp9Q6ol?gtQNbKHcpcdkKA=Hw)Wm#edkq400 z3glw>yy7olsMtIr@qcF-MuU@bbx1%tp#kC=bzM;Lnb5L1cBE<8hM&$T3&cWyG3LQu z>Wf$@-1h|_DAEtKWw+XSp`G0%48t3~PZysuW4ps}`l)L4@+e~F!^UxSLd}vr#_oft zalRCCbcJ&M;kfX|yyMOMXt~)>h}LzWYC1F|=`&(ScKY6CBJ|ur=GFsW8+x0AyFshD zkkEbYm4(%z9(&DYi`XR{6Y+JFAgpOb>q~sB62IL9;9lE8?z?4VQ^b_70K+oJZJ;ZO*8~pqT1gA%R6GlPc61=KWSdgBQW5*)t|7SO;wI&PZq- z2r<~VX+lvUBCe5Ms9-u>tF7jouyWY6z_C(dvF0uwP+8rJs;fDE9jSCqDI7n>c1ju? zvN`Y-RDY1vZgH-Dg4qeh64}oEuzUJpa5RzCv?0eqJH>s6pryL1<-b(P`2$pqi(8Ny zsx=*>qL`mCSD!{1S%l~JQ(`wG_Mm|JL%m?LP@rjAq3lSA!Nys>qoQI7^^y7W-to4v;B`N8ld`4oY`Y5CheVEnq|}FztFEpQ(B6 zb}&%D`e!!_{_vCmTp#J*G+v6~ z+Em3upV*Rr*ZL{+%li=DZXe2W3J$f_p8?BBa~Ooa1tXC zy!XFpkKyToj1%AFgn3vn>|z5L>l#I9f!%@gaz5qrQ-!DN2$BwE&*LhXLWt*yaF6Zm zA0e`fU{px4iAsq%XLwDcpqL z#m4i$@63h0m)*vmhP(6#nLz?1E&m7Qe zGO0*d3~Jt047f8I2zZ3aGu6C^+!T%WbV3(wEB~hAkx%f#3cqE$XcEJx5?(GXiu?W4 z!XZVgk5t#JT2&`bSQoj+%9`bh#eZUo_~v1air- zao@7S*T|TeYUA8vJApLjgGit+|Jn=UXXpE2B)Kd9*PT2J6~vz$2_%5x@>b(Q5lPqY zuD|>qea1i-Cw#u5DMSOk?Yc5t%_0S~KHFz@YNj1zb8CWxb(lH8pn(KYdIrcQ|Ath` z4?^4WY{4U{W_{?clGL!bnt`-{8l~#O3PFI;Q-(x*e`ZT%* zGYq*QiXvAEdT*QgIN2kbl`tZ0IsekE0&OXq>S~?h$1M=jZP%bW>3DWGfAud1#*sJ}| z1SJ@k+W#bcTO0y)+aExEoc$dF4&Xx5Nq|#ETaR!H^u=xfS=8idDXqOiT)rkO7GPl9 zkiqHzk*_`R{)Y@!y7@)})5}J+q~+7UwDb^EWJc=LPFvL*OnPK4>rpF$5f4uCD!l&a z3`iI$HS8l}hUAk0QSVPTqj-PkK@)`qaq%v=X6PBPO6oAcE03Aykk1XX zO&*=Q%f_FeQuD*aXObgY4+TSNnPCHUyPH67)p60D;DwZRsc#z`Qg)#hVHgGRojMo* z=QTc(>QvMFI^izj0QWC~1-_kIZmr}1d?L$t1PbXRj5}vTgX9@<*NI6NrR+ zv#=R77Y@}A8o3ejngZ;Rsm&Q|a9JNjD-FOD%zYHuYm$CCLqkspYno*mfPO@ym?}E| zE9MK@;Be@J$w#>JgSuZ7A-o-Hl8>L^rrFUN&{HtOYF0X_6_1~=Fb8H+cvSdC-qK5a z+bEEnNKudlYn#{p(u}f-X^BFO0er_|oez$*&%IWs4}RTmNmAH2$mmMB2lrTk+W2ZF z!5IE5@%HUHRXgiDD}AfpQy`7hwz(I%sq-@Ww4A0o-dnxh(E0f*LV^;H*D8|8Qaq2o z6QjRRYlA~^v8wCSlgir##S+wG?c_V|>(tI*W;>GMhNy!#eod{Bx-iv`gB$(qM>~_U zmHjjZ=~-x=-=kup@EgBpc8t00oCwKMVixnSXp0O|ZbUdDDVRP=4iA5r=1z`Z=NG3fLu?_sz96&qQA%HO(wtUr^exc-}ff`ZUzn2j}sPX8q77Ps;53%>rVd zqIG(E_!=PNh!K(?6Q7IY#abiuKzYO{ql|+EYBqv^>?p_}HtAia5Dsd!C4YBU{JE(` z_WQRKkX`w==aPz3On+zT;6(;E*cs%<4EmmhqY+!po^>gvTW|Z z#gfY-i?%td{|!L7s=dOSJDs6Cm8V~%Zp6{=JQhC41`UU&wTKOj%79K4L$wf*h85?C zkGNHO9h`4A;HU#ZdP6P}@TKwD7W-&;dCDamu=Rfw)pQWOl34-QeM1~nJiBwimWRhYp0%&0H{q+Zd5W>6#wn=?BfIQ9279M6z<`z)zjZ&oHoVC|-RjzD; zk%4UTpKVDZ(ZPtqLzAW7mTMTxb%PxB2@cFKo0?k{E4E(P*E6aTxk3OZft6FytM@VN zOBu28qlUI?U`Ks0hvB{@l<$&&N%NTtybrzl@3bMa+)vF@i!f4X*8eIFiLNf=^DtFj zW_G4o_z&guHhpZMKV|sP?OYW66e?W%{LUb4HFO`-Q;^F&UgTtD_W1vs*wLjJD6LY? zq#|)`3AyHXrO|rgfmI{d6)0(nC83+80XJSmF3qy@YJ4jG4ay1B?efo3hX7VJFn~l~ zU@GGdh*J`FUtGH#ei_5SVC(aR+CRXo)|hvt%Ha;&xNZcd{*I@1kf2#;QSrHgVXd!N z`WderxvxMm%mP0J2eY#u18slPPZ8BzNFz+YvJRy^@JX{Y)#kE7Ji=0q9$C7=`c298 zCzmZyLltF8OMJs}L)F-kK=qFz9-K0Tg{#GYFSo|j|?a`tdE+Ys}c%L`jlpGHMg-7=hZxu)w;0S!~~jzbXwS)J-I zf1ILq`NyVj5rDl^hpwo9>k7-9>~KDp#OPuW*nfN|!+NioS8h?itx%C|UDZ zCpEXc3`$NTJ?BFMeF<|qEtGVYba_%}r?{(vtbL-f7SbmShG5k@K?cCu!CloW(H+^J4mqA#=;0@^`PX4Tn69f*Hwg`04+mZ|Rj@#yfNCbvy8A-Z= z+rjTW`>FIv!$N{Usu(q97_hrM36OnSB6hO1?!>>V0$5#Q;-jc7)XlXzW-U>ufoKXC zRG5D{34*-WHJSPBu7fyAHdz`jvzcH> zy}Tv>8$W51Vp;nxmYm%`Pr{l3$|#l3zEU^sXL*&eL`WV~_2+KdF7>U~WS(^L#Pd^H z?R)T{qLLl7Q=sOJSGPPHtp$`Z;*5jUTyf1sfJR&LGpz$-5;{8{izr?29K z(_Xe2F%`K?*zDCxfmm^Gs;|_zUA80|NAM0%flOVD6PT=Zolm@^cd61(m)L2XP|Cjmcgy zPF)vpkSTcX@bpIKMf4}3Y?IpTGg?5WJhbH=n=Lf$v-{HhfMX?*!k{OimU}2coMxT2Gku9UIW>@qtFmVY4zjVSP1m!E`3o!ElkLO~)Z{ zn9r!)s?c^10pIli8=7lc_UApQ^>c}e&OQiZ@PwVnNme{*34|geY;*Y{;!l7|kzIq< z0xwJ6?faR-n4ps(Yo45XDbV|n^@I{!shT07yS(Q@9q9?|e6z@=?T^&BHm`Dvtl^4} zU?=|HhQF@q8U{w}Sjvo4toVSVS*3X1R{Xd_muZfxkfmetX?2I1XL1(0Fb{ z%)nz@bcrXVc?{TxNLDa6J6UQvyIONlsY^RMwOvS%CdLv#D6JN?(r}F@=3QMPNZv5;K-a*9^{n`@vW{s_H+lIM9Hh`E?*tQttf1RtErSED}*s4zLQiWfCh zx9Tdb50KN9X}`!nraCCwT8MJZzkJ|`pE1Mcivq<@_&+6oY&X#e+Dc@=E*glqZ@IHL z{T{IrCMWDUVkkB8ZVhCJrTNN*^(cRi|3VbYg@v7HNc^Z-El!VeO@yn7xwKqsE-dkp{H*WZq#;8`ShV}c&_QaW|%Vx7iSdFS`WRp%e*e-Nx zywHuRZs?|b7wp<)CBtY%yEc)$DiehPZ;gE({$T8In9Is>Io3vGp{q*PWNZsfS^Nz3 z|7WTug#8nCe3mo}X{5r89pXC;(5QL@)v-AQcjq`R`8iDwTPzj7h^w3VEiIeMYO!y5 z7+0RcW@F;ZeAEWE=y_+jj10F80uLiTOT*}A@h2dz`q;iuua1=l!S+N@K1!_odH{a; z3ZrX@_}L&HbDVvQyL1#Hvo&AKz7R^T*+&rWu%GK?eiaP@H{x8GgeqChfRIP!Nl1W} z7n@9e%xS2IyE^3X34&z0VcFj}#HM?=RJN~yv}4O%^1L0_^wdBqAuN^IGj~czD;28# z_)CTk!K7fr?R(9Nhpj9dV@qAyh^u)40G6Q6*D;T=>NLIWzJ?Q^kiho_a#Wlx z{#xNCffzJ{LI%F!-XnK z5z(d!i7nTLsIYo2Ut=!%#uEf{#d-3L;Mixc@{cGU&!!ME2!uUX zoAW9I)SWyoJ$t6~5LxlExP8cZI;av2mnjfEgxqKLN_jQq*X2@kAGZ8YgT)^6r?~eW zpeh5j1%OJpLA6okZHba&sxo5)wX6aepo!T*ALZ146KIpkikW@i2XVqY%Pa`Mu0bWLp&%r=@gyK_-*dVBJ$5tb1B*B;zno zybauoN8-HD8GUM0GEKsrH_HW+He!MroCV{%J6mq%Hw@?*O=;4Z=RKso>x}4GGz$hj`RE=q!owo7H(woWFWUy>&Wo%Y zZE<2|PwR;$geUTur+Tv^%MH00!_=ArRNj-yn z{&@0w^kb5MM-WzGRo*F^B?^r=UEyb>!KX`8xe^cY{Ue%g)jJzbl;$2m9oVMscgi2dc-mw2@ zo_hj6z}VbHK{gT%l;Yu5*=km2X`O2MPvpaTFF4Sz0s_*M8kr&e*ZeZF)8hUDyFZv{ z9Ta9mi`s0&a{yRd?3dxvJ3Xs=g{_pm3LKGg(`WeX48pU^TeEsQ>3hg!`qS9`T_^7C zS~besdPNQ8VQ+9s^^dV03UgM?ZhM|qS{sPyggB@4(3;T_rH8w)Q$s2Y+&8C!Xo2u$ z5$ogeKu4I^7Yg$h7; zGy}_nY$A80M2M^@~O$oT6@KG)6KY9 zW~=NP)#Z{EWy@<+<+A^=`{PQt%O{6r=L5sLLFOqApVvA0hjJvYY$i%($=^JpOe`b{046T(xX1v zRFV!Jw(sW`_XU{?Y>4(x(GWr}8UB2^Lv?U$DrnzuTRKcnjO*(e7fCE$u%K#Yt22pA zWVDt<`_(a}BpH`PKjV}%3eDSF*;v^@&4AU6hhF^L%a-Y8504Zm@5|Jaa5sM}bB^Pfi;`ju_h3j|UZu2n_q`+_Rq`{q zgyg50O5*-0FO^+{09;KkU#m9r?uRr|`{wD{56%JBAO6zQn-DQmUOAX zD}0!Cte@iLC(~-ze0^OE@!oOE+OI11?$^x2A;7Flg%$cU)kz73tHj&w`deey*9r%@ z2S-vbT>yYu0dt3B#NXdZ+*at4qEYYE%zVeW&C19z+GgljHuF5f4eGOp&FqWWsmngM>km4uPt+Y zKI23sDu+Pv_eyI$MRW~W3xbVxcY`Ualo3s|t|EOnDZr(W;2ECX6MppskP~o;C3;kK z2D=EX(2FJ$3Q-?PIR#=a;Sx)0>2Hte=3J`+6SW<_IC7Iafsq`p6nU1Si*jo1s&en= zs~qE9W|6&exU*#1A4Mb4W`D}VVbP;j%<Y-^5lncv|>8IVVcSd!4ujm3jYBw zDO2_~{CLtyt!jn)$tV?Ov*;1_i9IOj{^unVHuu~F<#YSQ=zo>bCO9&#jcGxMSv*v+ z%xN%!{6yt&3HN{>B0sCq0Z2kKPoeeXT?K)})tm_B7y1Pv2R4Hyy+kIKx*FGsD*i$_ zpV7Q8q>&8Zbk(%hJA0bXXj!A`K%|YN11gg03Hpt$M~Z<(Fc6q#7E9N`Ie|{BV}#=N#eKi61xNG=gyfB z75LFADIGGxKt*n5)xW>_#)s1|0hR3Tro#wV2we}3>K`j^PI-R<1SvHBMM>{kkTcXI z;YGcWU7=yFPo^P){2xkgc({zV`8WqUH5E91R`)LKhmJecl0sB`pjIX)$tB z?Qxx+^Ha2kJTUM&IFWyWVXDtsw@FyR{8T9A?iT7AC4Y44H{U%B$~d(Dz_8wxJ#?v@ zxFz{oYEC%ATYc9u6_lf*f_r`1G|T^73K0$Hl=-DZ!DYei9e%tuj~GIHH+|o9ogJjmperHVe@kh*$0q7 zRE@}OOGfZ4`M>P4YGk#8d4Y6ma0fSRFqjaJMr$cz2Hm{zc6Tl{p6W}NUF!|Kl0HNh z*3!Nl1%TDyx9LJ|+Ta$fz~~9!;FHnY;jhtp9eG=U86~N#-1LG<_|4Usk6O`bf&6EZ zVIPBpL0nNzt?=}pAMEG(4K0+#KQN!T>eIHP{DO;aWwVZ)YsksJk}2aA5+w zI;bTTjPYn=Rm%L?JX@dWr{v!vhp?2<5QHN;6-h+?c5;y!hPxbuiY%!;PV9T|@N)vk z)L+UsQ`7*z8qVf5Q}nDbve}K+8i7Dl={1SkM7~VF{kdi95{2~TCnN(%cfv5k8#=7_ z>Pw_tJN%xev?CX;WSUB!MMJI@Jsrig1Jpzk)7Lb?ds{762D-wlUFU7RXoh>Efk;TG zwie!qTX7nU^Bq7>K$w@Duo6kt-w^1VDi&O-Fj;-%8H%kjKf=ys~V2+~?I!SE`$ zVfX%bs8fr9#s_+oVXc#P1vj1(iL`#ea<$`QvpE5o!fcJ=nJW}v89JN=+L39cA5!bE zyy#t(aM%)#O9e56=`#ZlT-p9N=G2pMwR$*&^cHG(0pYPfDpfiIM+1!?R0;$6{OB?%|i5eq9cFIO@pu0O?6S>n)?seegfrMoYv)}Gw*Z68pC*$|r=<+O9Q#4*J% ze3kSK%voCUu-B8+is;J~rBJ{KgT9Bi$3}9Z1q$ z?BP}qYxA|ve8Y@VQ$P;Y0F~V14vAxsm;I!$K09at(&IxR`+B^2A0DmNfq6n(7VsBnSm*(U)^|I3dpgFtqO zAv2?@^#K1r0Kh$Mn?2Xjj-tr$_iiqZOY<$})*I&95CfzbR0at|wdF%;iKB5K%@r39 zF5<1xTf{cMH<@mP=Is;}f$$8?;8f;Oz4sCwGT?6bX}U1Q zG=1Q~9Xz2*$qcf(R^3a*86sQzg|O4VSP2#TB=vm?A(D8zk7V-g&}>yyJTrxgb3U>h zqyu=gM)br>OFXhCRJ17M?-cC}K-HyP^ef;&Uqe%1%tJ;!ng4xdH$QH5QgoDTZy<=u z^JgHRnBM#F4x*O)0j z*n;4iuQQ)N#&33y#KR;A+F71Ygdvgfqav&R&n$_Z>sh*dkQd!Rdc@laO7G&Vq)?X5 zp31Ltr>Q}bu*=@MNhR!_{Q8Y0cLSTIL2G*->;&Zl;c*^J4U2Vf3n()h z!%+!R_h9ETVe7TnNj`)_DSehXZt3#=X|yMtxVl2oY$(Bt65;7T6^y=5&ZxDhs`IXS z|0Z|@8Ynp9v7s%D&ns~1^V2#+K)rz-s0a?_a#W1Gr?i z6rBzJ;P31!&aw7-qBBnA_w7LpIBiuVMn{%+owo3<9=jj<}04(1i&&o8}SqSMU_Y_l+g9xZVN=WyqbqDnGtlJMM0~O`c zbLz?QBfLL=m5RYUJ9~WOnY1QKGd$-h#AyCPzTOuVzRR`mpnBYax=gOO0|Y1{{lp@f zBC}XKLq4h3a)@T{EH^@*h9O2_{J;n$dZV!HkMXWK*f4J;Q~iPEbbKlvXL0Z>!dQtB z@`3xA;ZU-O#v=-lvYrb<_4EMQ{w=mvDYEsXz1|OI7!W&jOhj6rWtG)xtLybo{`Qq|(FgKgM3?;qrO@qTgzAdqu-%<^c>Q z>68e6XLX3Ng&(>G`dUTCuro0?Mh|PM%uX!(d~rYZNw2)J@2r*#^np8AZJ#x~k5=nC z?wA)??R1Pm1JDbN;kekP9h4F5a2wQ7rV5FA02bd_FpHPZ^fz)bS~^khV6sH|Ml1r- z^-g5H$QfUVAU1$Fmi|?-IGd06pe!&=jQ(E7`fvT4heF=}t~nqu+vX;izt@ndJ(VN0 zUBy3xz4a&jEWFPc6^OH$`%tGrG8+Y&-LHzDe+1bxtttd}JqjGmlx#j2elU%Rab8}e zXa1y~am|03(9K!X(dLpu1P%*-*O`+)9WDa_gc2fanpN0;C^DI&EE@ROgyeFJ(T=M$ zh~Z=*J}Acv0ZAMP=`b0bXr6Kio!WHunrQBs^;;3cSN2I_8XxWd;ZLQqIB&Ql-2VmQ zXmYN7mZ{`CLcB`abtO(tXKZ)C|2~l6NKF`$uHAprewN z-o_XNwO}+=mE@(R?($cc;%d3yZmg^chRCEWJS+o{UnDt%ypaA>@z|SzJ@Bp!%)Lz3 z&C-_qP33vtd`M;&O8fGw1o26#0#SnAZI(Sb!r zA5mGDc>+{ZXza{@=03hzL0P7r)6rH7rKPF=Lwyv(BARM1jmo?N4$V>VVFNb7{!N^I zZ$-C7bSvCH2;&xuIG*832#3oMBTAFpfH&n}3) zwYNy#oiqIwM&}XAD|J<6cGleBzltvBvg6uQvlw8wl9*ly@4Q_ zPEb=Rl(vd&?cyU{v#OR&`C!b+uO|FULwNSUibIN|M20pn;!MeSLMZ)8Hm?UZ!jZ`X zJlF1GvPdH;a_jSFCCUdycaTP1kwzubd*xSU-=|cboR#c|uY8Xq???5fE#yWc5Oso< zyhEA`4;8>m?NU>)jxdL-7d`{%BhCXv+w@MEX3CY|F_zAB-w)gj@&8=U5hfnxFU~e8 zQy)JHLxr$fR|Ztx7Rk!7`Sqs+buzHysm5IC@OBe!{G>&l!yQ&Xh(>KUCac8fH8; zFdk%t{fp9!sY>Wp5%77DSzcG`g@%SU{G>0E!*~=Yflb=IBqzw)XPaf12}Wot9rlk6 zXC;@jXQ&G3!9IG^JX?Ts#JbnrcWx#?vBFjpJwH4qcSjr{l0ImB-n2Ao1BGE6bFhIt zf|jW7G83Bw`JabPMHeC1@#l}Gvd>vEq}h%EHy#vvDoV4`F}?d;M0!Z+-bgd7zk(qKSb0jYOk5^78&1+#EUDEx+-+J7@8p0CqkZ>v{# zs_`p1v^gNbJ|EdkdmF9oK-Vc96OI%2mO+vBK&-W_99vWmntwD-aT6fJnh*)0tWz=U zl~bY#8~hbTy?LaFl)=}b&)sohF;Qo?2 zLmd*hv3SyhHr&z*ne(19Sh~7F8}P#e5J^l$&5Os4z@*CL=F>0H*3H`KwDycc;+UGm za-sM4jMbIe^bkSLyT8Ow779exy2t0^l{(`K(`=eGb3N_am@9nvbZW!Fp`a|27cGp0 z^oUe)779{H{W1z0#DEZ~$m28N-!)7?JiHlcOtloehnAaxmMk?Afcd6Z_|g(+v8O`! zju28+?UTJ!t8uuDvslPj_cW>pz2B?Y7V*ezzw{WP!z%#dd9Nc5J zw&5ffd{8SP3#f37fzK+WFGQ?lbPQOm02X8)O%BLA9rLs+#DfLSz9s>E>1pd)tx z{Uxp;)8`F!(gPaYyKh`LceQf{I#1!&T`0mHnS1!d$Aw5iy2>zNfTZX=xTjgW4=8@B z8Ggt#yKZNk4+XbVpA}!spiTANi1!ad$*Qba^BTHtUbIt#In=u?wZQ3B6 zqs`8rIsm!sG*NfTRq+@w5LgqL^vPUh{hP480Dvqb5+o|2CPNA4v>8wDJ1^pqboY2V zgG77>6s&1i=#R1HhV_@)KmoYWcq|KiS3a}&&*hO+$Q18z3OB2{7fnAAOkP*>3v)e&VOWz7bKl- z(=c$v%QeYp1xomkCRNurza6m-@=C_ouOrf{w)N-PHtO{|TvA^7mg{G^I}Ho%yzoMz zZL~!Y7$;Bg-lb5c@zCQUB#_r)Bv%lD)AKRmIGWuF?Glg0b!Xe`oO7^l$uxI=u#_q| zb1yF?EjDW)K>NdPWk6WihtI+KXkOt-a0*4Mqkx=)9`&Eal$CWhisX!A6aCe*haFOt z|L%ckHYADgTn8sJAGs>^@(z{U7CU)NUXgk?7C+a_#Zl+!qU8i7xE{b55G!qU-pNE& zE9_U9kCGz3Q}f}8G)IT&@o!j%HGp}a`6yF(Xv0fh>@#TCo?jt}B8{#W?u9OI!cy+J z=UHvJ8n==K;i?>=<9%6>Jxz|f=sWGpowZ)>)6pmb4{yTY?_ae6I;D>Mhwoaav*R00 zi;^`=!XCtTQw6Xu>vo5#%6m%WCZU;*l}l!i+4_n(uJF4i*UoT+iY}+4S1}r68sl;$ zF9T*XBh-mvIhNv8)p_Az(@B7?w;N2>E8WU(3U#wR>Z!0{2}W3Sb%?31ha$8jyr8P9pVAzsdo(`5*f>X5Ns7Php`ug1g!GWqeDVcH|U5$PtE*r;yY(Z z7xiLvSu$WaQlK@i^(3i)*1cZq67?LF>_oJ)K9iYiHkCgfEme~}h}R^=rdJs%gC&-R z;MrZ^(T7n%3(L;qr615@=v9k%p@R}?*$seszctkeWyMjBHM$aCz1_)r#J;&x1(9iZ zf(8-F>`>6tH|9HKGqpphL-E|X9`h)jwCPV0yx~rn8yK23yf*5)_ct2Z(|F-7k||^7 z`_^-&l8bh%^=}rK)&b1raCPBGPv`zx4^5IxUluo%_kef2EW@pVewZ18yP)KfYV`3H zJ{eSj0SqaR-jj=2UOB{392;URlbLm?CG8}bX@x;pTMJYk9Qk#+MjwYyjVBeOgqI@) z!c+JBm;R1u8GG{%IIfD*xj!&7z^0iI*v`kmmlK31kLdaQjT$Q!0_G^F7Yk(Ftv=ZU z;EmG8Y_~lM?3l|Gv{r~!(b0=VKWzVB3D~0IkNd_JJ+k@9SVCj5$R88zJH_Ltjn|}t zS*jeh`uQbEp_D;u*$Z4cE_}&+z`wvbV2;O*3 zse@|XcPHPbV1ZHj*j<)t!#6xmd=m#3IyC1C+EVE}&$K8eTw{qTyTOTx(Bt6%%`o+H zj~OEgZ8xVc%;a?CY}hM5?{1O#QJCJCWzYSNmj@FEqaGk)laVMF-xvuK4tu+e0TnAG z63_1=yA9d>z9UlhlfX(W^gv`vB~7}+QKrHll@-H5UD}d}^mmu%TF@`5Q>D*ZDb=b+ zpU{%4wr&H)fIU}5LGG~oaxaWj+P63Fz)=gc1*=7(ez#7P4taL@)JV;e+sg7)(#*A$ ze4J6pV|Cbo@@#H%A|>{s;s^H9rG(YmFFFZf!2=}IjOy<)6Chlq|Ddc+N;+N+?Xzt= z#0d{?4P{Gjh5NNgR4X@nSL|@|_KQX-|t5=UA?V=wP(_thu zvTrr)BXNk~SqGyy!|gNWw%R5NXS&YVKn>m$T8Itu9t)m2T+JV?K*V58)bnb>KOHwsGa);HSyTf4k`%_IA-bsibpMD zB8a(t`Bl_o|Bgq;gO@p%++wG@N17-?bqSwwl~br9%#Y>XRBTJ| z1k`nt=fTUgI%{%ZI9xH+!aq)U)94+sF|-Q%#Nc3^t(9o1x9by z+!wV<-lXt_4{{7%$p|f8h4Ck{sD2z(RBBCNO=ePBY8^5QbG3`cXTfc4-K6!n?c8M@Zx8!hCSsJP$ zWtW!TKdlFBA1(;G?*&34AYrT>&#=)va&52~^8Xgd`tfGMkfx7XSrotL9O#c$T2{)V zMCQyBygV4b%*WTfM5lSaglE292ourk*ZdpWKP%SM8Yf+t`%@YO($t$Q#tGg2XM^u*$5 z;-A2J_z1xJErPdlpBl%V6PBpijB*5u8ymjL_g3jE9Sy*f=)dk$|8+<9G&J(}<$0;O zhyD87gHDS}AU~!RP6ZiicSh?}w==z2(EewzT}prRF^(TACll&ax=(6t!z#taUJZ-L zgfyr65-WXu-h|+=>%{!~RDlPq_F~WN$kf3zARzrY)UnNcu}^CO*s$v9J2=XT_!3$X#L7*bl!-MW`OwE2oC-(>F3&*FbvP0idnm|q1X~51 zxeTl5^1&9|`M3m~u9J!&`2VPa-}-46wv%qb4^>Fe#J(Azb1P;Z%?bvF``Zun@&!OR zp?%a+tw0PmHWi?AHxh=8?BB+g?pkE|N83)&h^{AMD7&_rA}z)U>jZ*Ueh*ATSzWQ; zDYQ+!&_yesOcdySF~J;s;`6m6TEE8#q12GPI6_Sz>j-MdaK7iC#}4RKXK=|x&McO- znepzwTPC?>>E`j>;M$x+FASE7W4i(2qPbZ#=?|s+<)_kx2FBE?N+_1okodB~npKKs!z~VaRLK6N$ha zfNW#rZ2v|eHT;NPol80pfn6J!jNi58IIu5*wKCS$he8;+nW~{x2KbIUR?D< zdG-tJAoIR>%>rEBD2+8b9jLNuL|SjHsp#Fs5<8n31c?etf%3sd!dTe?1O2v1t?X# zz`y8ax0dgg6@aOHSEOu__hnOnzJ^b*0DZw|H5^Ol9dZJz`2C_3t~98OhP59ibny}u z_=71|V#~@Yec%T-hmqZ>x;ULkZ747@eiknZm_g|TE>bvbp^M-kF}9iTu9*+#P$G}f z+)lkfIRh1=*jGo(Pdkqkz=_mHYqVLECpVMD35{$zFtR84aIhSkojYBfFFZ!ROyD5a z+&k)MOYoP=yQ!+GyK6=O1U5DbQNMAanyeVr)88Ts@y#0BF<9BIa#!UPQQV${wcHCl zpdm5)+?t=U~BnpjR7~ z(gUT?Ty*9O;9lhep7Iqz*8mPj3H_;V8jOM&qvDtl01YrJ&b;*@FMp4e#j{GTLNR+^ z_DQg``emN^d--XI0RCHItQ;yP=&=Vi*D70(m^9vyQ`(OF8`_E@UaqEkZUd2QWGhsc zX*kJMu>GE+U>NJHN%q4Bfo*)!kM+rD_moH@R#YrA4mH)|uqkw4H^;2$VX4qw?aZ_M zhyrkFb?r{!I=1X}L+;dptZ6(5nv?t3QuT;rx#Axyx4^%#+zo`hU1#YZPdXF#pdyn- z2qnNgaU6Nm)YOwlCzcry!!5J6L{4h}Cnl-%jPCuJAwSGsa@-=sUyzq-?7NL=&&G2mWtvh@nKr&7FQwg9L#h(AMAu<4WV z)r)GKab#{TDyLTlbtu=m|LQ1C79JK+5gqOJ7%S_~E}ZRUTSa|~`FL{AcORQW=1&aG znS9&U$4K=r9SX%y_8ye&xAm3hGt?aI6H9D>F@~xeft0(eH|-i57yd@{YOuZj0L7aSA)cl3MBBX>2+m^!F5d81ZJ7krR#oAEVibe<-hCfNDe5I@ z+%W6kZFxJ~t<%R-O_1Z6mcnJL6T`ytTqd#tUmF`UYohm>?ptInP;-oA5~V%XYXYDJ zNUY!0n%h28_1boqgA{p7^MV%8a5kjoXkLX^8a@nlTzyLm@65ASOPs0-tyhjoD8^WNG2I=N{iV7uSU|AQ9xlJz2K03}qw;y6TYuH;~@0)o(( zeqT$e52y~l|59MI*WjP`ZSxT?hNCY$qm_k=@o_yT_T@m+1&_3jfBM>GNyKkg2r z7AVifXCenUso)KRUETtU)JNOVv61%xejK`(D;B^!L!G$8)F~uxsgmK{4#+OaiKcEb z7w}H$mxF)L-oGt4Ug)LVN)-b8^(0-g?h=Q*Q$dap_qouhg?sAQ?ITMP9T_xw*oCd?+1tI8O%JkXJ%rIDx6GrEj>}Y(u^s z!KiFJDMxV%i^Z7Rgm4v=D=!W_+xFOf-Ph)gzph44T(4PjuZ&szGTEon<@G{h=k!xE zc&%&+{jqoWxbpXw$Gob**|BDHm@upWdq)4JvgC;z1hV5o2&I7l!mYQkiq2)@hjOyswucKvE{3G`Q9p5bcakwFPggD zi8)Dko+yMN7YROJ;J`txUMC1o!>QrW=fj|Y=RfWKaMkfol~)f25Ms6cxYT*IQlb0dO+*>gE<^AgNye^xr-@#lq~o2sumns)^dhI@oE{ zdG)teP&3a3MoT1CH^wI)VQs%o#stAO#9 zPK4m$->_Or${>&7-8Ii-VnKoXTvgnR7I!Cww);y7g;{9ssC zLYv8s9=7||ub%YwQ(am{c{}P&q%cWbaP$;m?dSf_mUP(4Dqe#neNf zME;g;9GyO{uSc4~!*kuM#z1$lz094=ov8n1LRagORM3i4j6zxpa?{q8x<>!43Ec2I zHd}jhCnQ1w-1u5`iiDBuj~$UMTKPp{`OkMuFEX!*HMn{(hWEeCz>lfJl77F#9 zcXFYbO$5Tn%M(D;iWOvd-DNW{>Z_0OjSEh%Zl0zhS5_}`aUG^V{j%IfaVU7&TTxWAHD&?UktJL>gpQer!-`>{u3 z@fo}Qky9RP=lH5o0(}daIL7jX^$s*E{+t;p=`uF8gNO#IjIt9XZs`D^J?mi_6b07SPOhSX!PO z^N@l}c_deIzvw~23GU$QLIf?ffb^3Q#dZ^>uSt8D(j?YPR9030MtZyUXHft3q<{jM zkvgwd&6f>eSl8Us#Ba{gFX3>FMzIJIo`%orpo8-%oL`_J-I077=r|S zLmxpEP00AGb8rs>3(XQ$mzktJdqMQ9FqGKoQ+Xgmy(HfTjJ$MR$SJhKNZ9y{vlRsc z{l@tHP}vaERlAEnAwvI84mRkj|Drmey4xR)4V)W`-TDk4J)N8bg5ZIAI`52oV9(53 zv?XlKfnnL#9kC0UZwlVMlF>oHS98){jeB7 zW4%lkPI2m!g=!$~18T%UO%1h^)`$^@AjGv?gJun+D>P8d#s_hZlw-1Rp&JU#5M1+D z+ZbYS{?V%f)ojra z1V!L2f;)nCbGNf|{B!1wyhY9E<oheC+QiF7L~xoAu-GiMuqme6@r_YgN+ccUJ1G4Lkrcm5zwOXws2Eu8Sk0pz>a&q6 zh=D3QcK*_KZGf4yZ>AhqP;xd#JMmaKuMQ|ip_IIZam|7FJnO6z#O#6GM1)F_9Y%&e z_SuH+F@fs@VNr&SOG zN&Zg$KKY;#8=*^#X1D@lob*P|Qpn!gwu<51?R zawa92%56<_pIO(rV&I$hoyGLYQ*%CjZ*iQ~r@>9zE(e<IN_M3cUnn!lCi9(+Og%?_4IGPd$jb%-3gkQXdP3lSQOrVIYf z;4+x({}Z~fMYVH7DRmVL;2SGN@`QT^ku!i-416wX12Z237R#Y0R}{8$Z~~SsP;T*ax2B_n3wO;1F}2cI-#Uj$zXsITF5fIun`U z2H(t&OBL8677Mv)19n~5ye=Jl(40-Da2x)D`!x-bc4TT>i2Bvqxbo! zA#6W-%iO*ta-r_O`4Ku!bbY9Nl`%L*a(mG$x?BvqMF(t8Xwy16TaTi0!3FU?>C5fh zAu^6FoYfq+JZbF=$hP2Oyusf6dPdfFeww4ttCmZ%y92wY0?=^W;b{qrN z6VkE_WW#Ftg`I6EZ=;~Rfw#Jbkjv4; z5gYiHNZKNFs=r}~rQXm|R0L8ft+v=A$5f)`QgQ|t)VN>l$Kr}3_nSB2)KOy1rk?Eg z0B_;LLBXQ$kqYym{BOHY{V8kQXGes?X{_96!%Fc76 zCbpvfAK?Y7#KZJk(KK)I5kLpm-kgU_Ay+He zN$Z7^`3y7by4@k7k;G1EYo+oDyj;`0s5Gl;HZlf;9MEPLLI23H^Qx8ez7n)c9Vpk~ zDkQ>3Cb=4^h&cX5*7q|R3_TN9g!IkUQ2FLQ+6rU$5x|&-IbLCB>(Q1c8)~jBhh2Oy zA<>;Uuh#k$Z=ocZS&fy+qEVpD z;{r3jb-&Yx1YZ?`$iBckTYp;s=O>ydozinnGQ3vH?rmH<(G9={G6RH7yr7uWnA?)r#ZvOWAgbkUp~B={3UX_$!%w=KU9%v&zBb zj|W}-Jc-zY6OxDJUZPYyI8r^*(UrFH;}6X_*%9+SJXeOX*4xbe>dsBS-Rl!Tq4qQ- zXdy8iiRKBT46tHM@F33!a8qlw)HgWBADriA86k#Qm(TfA%gamQ@dN#JbHp{1l{PxA zz0I`MxeD@3aD*13k3$}k!HVaSnX!GSA+#bzDNjiH(%QskaZ4ptl}uxg3j#iD&J_KH>&s& zkKBs(ko^hP0Oi34@g&GM`aAL-qf>&C|GFx=oc~4Hq`o4Pr!xNpP6tYxk8m@xEV~AsP?9`9x<{^V}ucZXJJ#64~7WeUZ8)@06RO@vTM+gKzGI{@63p?szmG zQdk5qD$4!5M^yG1R#Ww85pW6yIyrY*XBiPG=@Q{|Y?;2NW|a;n zY@>8D$V6+;cnubDm0GmGS)Ies{B#h%-1VW`-bIDHo6V~!C0Xz>`Wq&wde>sRo5N9) z`Fl599~&ZOqSAs(_wAqfuVw+L2KQiWpI+f_lRLI0{~$K%ZH?>PBSF2Ldyj0(CtI#Zpk#dIYB z>u!S87mLcR#AG1di)lNcH^ktZri50J7oyXQwqWMKU#PidrYDH}(&-T=g9cU7G>tis z&2cq|%de%&hb%=q$V0F!QtA^16i>{^dD>R+k3lv_Q3`pw!|OxK=|WW`tRW4ufGWK7xwM%aU61BF1_fRmY~i_y z0VA&8OfNi*DLOc1FSMmnxz`XLA0xsTFsGCyO2{ClyB+2@PKm>ku4WYdtUS(r67~K% z%3<5Qj7Z0~ip_4C=e4y0VLAZ+`N`Az2;;FnJfG94DFZsY22lla#6mvUYB?8O>AYSI z>uRSQLndHsFLNuMY3h2vHD*{;*(gkA&GC%6;arhW2GKB=c${8}b1XA4neL9U(IBcv z)jglG%tZ(WDWB-S!)V_BgYMylFQ73)QA*3ACt@yI)Ro&S5I;>H)MOII^7CfuRjz08 z1p8c@Ldf-hnHPTPM$@R3eUcI?t?id%)Zm6SaMagWwI-h)Yl;gsrAa+dz8kx{h&m2v zKH3FeV2+#ePR-$^IwVQbiC*W)_igb}Y&#Sjl(++?S56SFRzO;@z}mPvvOQ=x6}Y=^ z`7=4r*_G3f*SzjtXFQ_OBF4^^y`dv`#(I!I?qt7#w@4Kp2h@1C{6zRY3OqmT;T z1mzCPXK5b+x*M*!@6M}lUn)FODZyw$&meV6<_(@U+psK+$!_sI zG`SvNv$#@6YnFV_@^Uba7y;LF2fCLE5Ed*9wEcOV22-JIT^hEx@rUect>d}S>BE3G z>k17ur94WfS1x}_^4%U>(ON%BdM>NG2BrJ^0RD)6bsg}TRq;oaa=hEDDCsuS)8|TB ztZmeowVg$oI6va9PWR{eZM zeR!nD*ohpQ-E~`$nF=p7*1{XzuVt~7HimsR^N?fNV3(>kK=RgQJp{_RUqu^}@ILVG z@GG*uO5P7>Xw+M>K+iQG+3fYS^hHB?GIT2Bh5;-*q{A*)Ju0QWhnSdA5#MVnllf?K z&#b~%(%4!snLjm=x63e3w_sh+HWpo0A97Y)lwdIWO|_WHNe;Jp7TVZ1pFAv`!%G`E z%S4>V3WzSN*>1I2OC_|d_O82-rK$zag2=*|8xGP?U)OITfs+!9L4{$Q@gKti5tHwh zOGqtn(<7P;0~6av#m?9<$hQ85B|I3$DOnoF0nqapg)fxm&+dDqnK9*mWQJ$^`6t#C zPSN$wLoM5P1UyI?J8<;Lx)`^(4yNsi;Nd5Pdu(+=FdSmP7FqoLHrl8bv7u|bm^_E@ zi2yJFj0VU7gt_B(>~_la)|ub)BpDJ{)Z6hR&xC$uC$rD!3nN2_0`Sh4AXruL7lP_& zcAadrooDuYp~^P0`$@b3k=9ZZERXsCxs5e>XcNCb|!M z<_UBkh%kxFMHD*hW@_IBzaBd;Dl(`qgdP2%_zO+o^+sH@r~diXbEVJBiJ(OBn`rrV z0FV`~T$nxuRdVK;OwF`shqv^WK%`PF{I3>_zLd~gm4Jn5-rWxWGK~5a6yX?Vq>7L% z=JBm=+mB*&vBhfu!6B{JQH$s}2f>;{kGAjSb`ES^Ec8Qw5d+9u2^t=maoGXK~Z#Kd2v)# z>I!8U7M|sIQhf6>NLhegE{8dHnS-g_w;-X5+VeBHR5Lx+KH7m-vh0&oNuOlRw(i>C zL5BI=YZE>a;2}7rRTUdz9e^f<(;6i;+gLgN*I}{-K}Se-XwV>^{|xSUkEd9>EF1@b z*dJtl8c8MPQm6##%TW%)>JVD@l`U*y5$}$2Ma`)uX$Jes`Yt85x>FrM#53AJ9?{8w z&*-ZSd%X`tSzW?+x0*oTakx<&uJ=yeC}}xRX+}LU(LV#0Xo|Akd~VL6$Y3AZDohNc zHBLbTI+|yUB^hC&-OU{VX1xTvG!Bfa|3NVWCc(Aj5O4o6%Di>&|2+d7EDMveagC`->0Jq8VZ074Lh6ooE z>M{U#QA{bU4xWZFg|(2pp{=5I6HOX~H}SO+I&&S=LZKK=Y{A6o&@nz)J`lr-c~3VS zn;M7a*1>a1v_?CVGfAdo{RI9tvZx;UMH2rZ?(!Y3tEbE++=ST903*XD*<=+XN$30eQsRA zhl102(G0VWbMecGJi$^W)@sm8r&KM`dXf;GZ@T0JAY)rj@_D-GJ_2RBq0DAU6YjND zD~bkBcW!$s)DiFGI#zQ_2L2TM!5Ddg{v&xJVg=3z1&k080U8*>9H|Cc=O_UVOZiOLCK0KGUeR)Hl4?^(^vefcwz6`D z6~;9=v(-pt+9$4U9@Bu$Z;0yj2}(^Ni1%+!8VZ|oY*yon2i`B(#1nb8Ryk1l?VpZTNrmgpw@i>94qt`9#H^4l_TTO z_A9#b&$Z99BDj7{c5lgA+3QiJ96?o69_>-+-qeL}4^s!OLW}(2e>JnR`NQq5@BX=O zu)lz!wuIA3H=U)kGNU+vk^A0wqYpdK?z5PR&K#L7+~0n&s-cJWsII1>PBB>dHsV{Y znAo&~8m|$>*NNq#L!#pb!W@9}{g}d<%TE?YV<<#pMRYLdIXT zEW?f);jaiKEU*sKdL;ck3@kTR+f*z!21HB0U7<(ts1U6&o01_Drg9s4apR$nbZulg ztd+^akeE*l&6HNn!df{OjaUQe+RjRY+KUxhgHpnmbBhZIM}B4Gsy;7q9i*>fG?L1% z3*1q>P~ld$#(h7~YO3h?xVmLNa`TCvXp*dhR!Y(uc`La?fFq(91BGXq1X#5gw9!nc z|L?G1;`e~P-|GJ9RIy>UXR>|GaD~5lf|@B_Fcdq*I|B>T~TDl zkp@7_5h|t-qarCqVSG|Mm5|}py-pEhl>||C5nhI5}rNu;j>n&s^_I0@9tY3poS{! zId{&?$K(<~R9c0;LxCZBmIY4-dnvd`iG?C!JLr4Mo;@|l)=g3cD2CcmDpko=>hZ!Neja7^a?fL#oh7}^4YFQCm|8u)FNH7o{(5dDrLSw z3OTSRwIkbxa7iJCYP0oT(-WNcI@q zd7{&7&DwhcA%zKOMbp@f-svQ<40CEmpf=kRB7O01UsX-&=r0w?cNPi zT`rcyj5b$fd)IdPz0@IVtG!J6W;pr_?K7|Ye&DCQggqpSwL4)eul z!l)mQ%dltDGT<-qC;T>9TYtB68pR+?uC+84^qSdYV5pW}OgWODz4^*4L(O(R^LrVP zMExI>p`-~M>P(SDjKh{}GQ;c(D48rK8kkE2s8iWgRK*ac+w?lbXrPT`hACC z!^(2=Hi{QWhiaA>)Ay|<(-UoyI^y5iptXHU z2AVS<<yJwOt6S*tq%M{PwBB|#Itp4ajgMM$1*H7~=HTub$`6gAi zpFb|yP5Mv=_D*Y30|ees0%href|G&UZR{RUVOwT~Qi=8%22GQ+dv?oMz2&jGOlPYv z?-KecNC+XHb>zOdh`0^6oim{BWV`-vw=*-2fElDt^gj+%KHJ;HGTb%sLJ(Sccag~2 zszPRfe_7@`;*`{6FhT=R0^S-%W79oV@*{{`Gg%=@Zx_;n*fESel*uczv=sV0pu@q5 z1oAf;>v9%2(#?o*3l>S4WWi*Lw(%Vrw5`|;To<;6dO`)K+lC*nHqH3ew# zpwhXxWg%!Rt@(tPa9w(G`Wk@2(>g-I_7kI`#p!$t3Ev&L8U~W{lMQpP06)5715m> zdFFaT*Kq}YP5%J?cVb}RnH`7`1my*Kp&!HT*y$(T2pKYmM^KbbN|90Ou$6XGZx#rS z;wuB;o@OsVELMEZDYzKzCPwy>N%|*NoM6AE9+gO}J5|WKK-HscUDbP>RaUnsuRil7 zJTT{|dVuzBEg`;2;pa#8z42TNge*J>r|%(&wUxqyW1dg+I3dZxxRZ)`)L?vwfA}kw z>fqfJpiFVZCa$HisPE4~>dyfr@gurUcRL*0VY&NiSiq2{l3l9D4G+I^cl6%fHb-%l$A zL^2yD7O968welHA*by%2;=y8-@+j>s^7G1JdgKlwW_SI$%u0m0S(&KokB;S=INHJq z5(L08fmtno$|=T3ADo&vFi_Tl+#E4Et&baM_Tkn%W9(Vlj{6xFRWzIuRLLhN0rv-> zT;Wq>whsHwu!W{*>@(+QQH6#uvPgh1gDP5$I?N!Ia43pKdXLohs%#fU#)i_OPXYzR z1!=m&f~Xw90n<6}hEEwg|Kzrxr5RXol6}AMDe+Djt|%_BhOFARNWF(%3?tHQXl#qv z;K4VX&vXot{GHC(twzeAY_AD2woS%SO}vskwy?{3@%UY1z>3}E4fPE|v8G&Dc)fqP zJK}A%od6>er|A`=+8ya98j$FK8T~cbD`MFkI?`Ur9l2K5tKaGJfPyc&?|5AXGj7}I zCNgLAB?CtlP7JS9ixl`{{EPLJp|dNMWnZ4GG~O0V`_tp~I_R1*@@uCKkf-uDdI0aA zV6{Zivn=mYGy{{6Xb4M=S|$Ppz_byVQateY5g^)!Zp83#E5^e@4K4n2NG-Jp0xoIn z<66UXc|bcB!+d}I>rYTo`g@}VI@L{f^+#cIE?6YdpE-I>X(kBJ=o50iW<8HgICww= zz#TFmOam;)_&bODArP4PPhGyROdQZrQd&y!i;+ToPxgd}-7uMr;uk8c2B=K7vhCBs znZJq|;5Vw3jjhnegMNoSlDkEnsgUCvmem#x;HaCRi(iMujE@mmejf9r4@iNoGj@K+ zCriR6OZFz_c<=9mM&A+JAwK2}iP-$*puY!7(q) z13Pda=5HHl8}Oi_Jvsf^i#@9adc3Tl7?l9c+C#Eo<(>)*F5Vq#h|_s6hHVciHV|Bv zz!V0~Bh#$;$c=o*16YuDDpG>b-PSjT71w}&&yRJ0jZ(=B`7V7hNQy-fd~(qt4u(S$ zc&;l#eIJpBu3J?ynb~*c28OBLrhH;n1@~r-vUO&R;H}w(0KkdXSi95ZvAuX*M8KPz z4Uxr}DAz9&YMDE`H5M`+W+~`64fh?o4lHmt7_z5a92ywp=!s{Ep|1_VBiO~NTB0Gu zxy^hGq<2?V>>rUQ_wY2Pf}&W|HR9y47%K3qwA<^-+Y|0Jy)@V8girpo5Po_<%9f@x zB^k$uLlQm0ceaeHqW7w?PAd@+Ys?N>WCOOPY<BdSMV;AQC15f|mCyB|EEGl25N2G>|n&YQHmC$A6$zvBB@h zw{03rJ=@M{lXZUs5Em9fT>9u9tL!_FkHH^K8!Hrt`<1-!_5agf zr_ZO4m%e@^U+N~QaThv)fpgpsQm!}7kOpLc@tt>>vG0zU90who=#O!1!BmkNk?o`< zb9Yo&s=8DrF+@YrhM)~9aAQRD_aTr$1+sOBAcBfHwx$~pw;ZgooE#k%c(;}T0I%H0 zpbqMAD$_ji8xGBgYY)w#yXSAk2o9Oc)u@lPX*7fSCE%K6W~ia9Q0eAA2ohp>SL4}5 z#TFEY^tS-Hz~LxtZOvfLw>r5lcEzWVv}hZf`3>JSW8{mi*Vv{^;T10`ZVL8tCI@ns zJ-@^bdR@(lF>cRGaJdsM)-Jp6r(y9S4tuN&r6I8jXg>b<+j~U9Y%uvCAtC`XPS&@t zDWS_ml1i-g%ImMw zXqEUx)oF0?$ywmzaAxGpboVqBqafGFZ-}JYt^@NrF}l(&91swZ`J{@8z|>&ei%p*3 zC}L&c{4_%4p%eM>kLm|<=EbYz2e`=|5v{bfcYkw9WVA>h)GjV;1)=u$)O}{l%hgnSnK0Y>h0OoaBMA8Pa};55@o(iR`Q@BubRVYbiG1x_+bzPES5u_n!! z$VQds-Ae%4?f{I1OzsYBU81zrt6-9UDEQ$;Whja0McGC^bLxg*Xg;DTz6}Q4H~YQc z?BrU%v4RdSrVA9&X7CD%aHBRr9n}f%v@URzSu%34im-{T_i!89q$~56_v8U z{LA}Lv}(i%i4~E7t|6!poILdKLG1~`FH*dgZ+8TM8E#@pb@J+iun$?yfpY$(vU_1F z96-M6#LL5?%q|Luo!jw`Pylh4lOd9Oln0JG%qXOFg^;ajj>#c(#*F^0eT)D}3TOg^ zoH;eb?w49Nn-K(5?9rjr(Adn!Ow*t@R{cKaix0VxKFLguKFMkO`5isUL;Mb#MRDq- zDQqUL>my*+oxdDXacb%IQy}La^FJpP!h+dEE`$Z!9fvmaq+}A#6#`_Ab9Fg~0@3wa zyA^|(c9}8Kf#2S(A}7&%GZkOCcQ)vfB(vElJ?upB)(Ut6COJ49$`hGFF1n5zmt|7( zyt{Hk|Ny}2f z^Jo)=|983vu|NC~U!;MRK!``y)zJw($1}^sT*!;PL=8%nwOT1WKd5GY?WFBfZo)KL zBDrH@OO&OAB-4+ufY zpYF6Z;@P6wK(S?IL$Jc<+|T66Wg(u3pme$SNI#ROyJ#*cFxesxTC11M9HSnrt7{JA zW7+!|VOwe%&_yxx)^dAF@SQl0IU&7|kN?avXK;r;v(ZJA>oBYlZl3wFY~j!JWYk9pELVjgwK)GPooHuy+1Owq>p6$;{{ z-R_K#)yV6y^mAL!kOlihyQ$I5;vV)`2yzF%k5-)9AsG6c3oWfuO@W(0`J?l{yo5Aj z?={M}AV&g%5Wqd;K*HNwu@B`dBiK+3#k$`{A_f~ z3IxT&1xa2?#f?-&MKGrO1IMR~c4RaPeYqg&YBvvkQ;oq%lFO$M1e5 zybOa^81y;ocl3cUmWW|nG$wO?DC+WMIqhE}YLAA92dkBP+oqd#V|;Ba{1#>FTJW-k zJ9yOYc^V;*bol=sKEFrT-wo|@8eW%ShiKOy;HGKzO!M%K;I-#lkEm@64O&d68W}h; z`w5>;#khhyM()}RM77m)ptIoKDsaJ(CIEuv(^-D~9ryGMABJ*TqY@{y5#f#Lz@v28*{E zg>qy8quDwGIWD_j!QB>ef1g4Ybl6FZj5FWi-jFAepGMpSbrVkz$S`%UL%AeQpAn?L zVwOpZkS&Z(SB%t>XKi8PY892g&!z+rkBtR_U2cikjojDpO}Hi@b=Oq!fa|T!6~zG- z{6}M#gW)(Wa8N1oG^9k9A@}IXgau`0B~&PCSk|x3F1_~UG!5gnjy0kKYWX}@TgtzY zrRnrGupyDFM8{I>=}Cio+z&B4p2Xlj#kpzuv|~+E1vUMbF?Y6#)1vp4m7y$E-$Tg; z1Ad@;_Dsuy=CaY6Ih+vFQ;LlYGa_R+p7;g%bS*!KlC@`5V=s>f0c#advy699T8#^6 zW*+@1|L*1E&!dG(f3iTza?VlSK-o_f@6_H@@>b4bpMCOdgE|dhMpOR+XqcgF`^l_6 zu=Li`JYpG9lq>W|C*d^;#ufRtJZe~sA3KmiLhaEz%;p7dZ?m^g@t_QhmmNb|3gG~SsDs}0bQHm~JIj!Axx z^87Y;_BPw)nM3-ZzhJREQA?my?WmagSnYl|iE(ck8K%NFT;IDLFg|{)nuN5qqYeEF z?`R+hvf?s+iH%afw&d!jv9Q^L_c62l6fAzvAi{G3;lwz z&J;o{bLwPC4*vo_%3gB*aYsDc$B-cN-0EX9(a}TZ2N-Z&;&8;kh`(t~BUCa|IS3%v z-10Bb-S5MWSt)4@to|y~{0q-DHrv1i+qmgPw%Br(4Fk8-2M&l4wo*)kCQ};mLUrf0 z8yBypA3Z*%DdCqrdzFN~2D9hPFXCU#*i;pg(^-0SQ%SrLg!?J&tvM+mq^FY1-;(m2 z<$bVf1@nx247jMQdU$cQTZZV4{euAD+HMViuYEkL=l3ERM`&P`-m6{?Vs06+@n{=V z?Kj}b4ydW>U&T!--^fAD)Rf-Xc!?jfzGx=#az{>WmZk`q8G*KN*SwVQr(2+EZJ0b>mB1l;^x$nwJ5%9D0(v%chL1wwkV*qSJVUOE!tZ$k z%EP@;A^rxuny1qkn)(`--b??rLUF(qPPxod=GmYPT6m4%G+5oQ)*_VrW^k;*pSQKv zs)%gz)7DWs!J$ai0@!Le(hCb){*vN_qX^p*8GvKW^cagP(9C6!op68$!ykxif6;|} zg-7FgT!bj|>x2F+lrkxZ=u7d^`*g5X7Ezu5MV1TBS*0b5+0xwIbLuoP&Fsy%7bc!2 z)g)dkL;WUzuRP}@C{seU7)NK~DY|2Gi^acfqcp2j_i}xOFXWbk)}J^i?lh0|RQ~>C z95N`nER#b`U%F}8nBF4;$0Es)i9b{f^=)_QHC~5J1QW9MMPF+fk~S!D@OiojxEFq?W#8ns!OEyIcaQ&A?9#7!r8l|9=F(IH~=PDfd@bvWdG#p28WCHfp#E z)14g+lv!l^HvoV)?10q0{k&3i@MdvDCNYid1~5CtG`3Y?k;|oyNvT~32xwE82d?q@ zhP72YNJ2Ae=kl6|-y?VYB{}?XrQ40EF-kxX#bd=wzxk5lZGC9k6Oy>*wZvdG5$gMZ-NmgdAxNay=gv zak}s{&Dj%Qyio`0BSX4Zb^w`SY&W?mp72fKD$oCeCA(_i0S4~ZdLsWf*I@OBP&BD! zYVbSx@uMQn4v)n0OwG6!xlb@*5vX;DLz+!ev0}cmMMWzB7T|@AzPVL{?&j6u4=dO- zAU6)?x}Rk54sCFIAT(A~Fl)<0H>GJgHrx3$34TQ*w7(4lHXhU}<@1Jk8V$46P7;dB z(J!74bk%;0-0zUDgwnDdfwK#*xK#Yrweluy_1C9?>pknxw2IOv2b9w_vhor#kh|Sv`Ze z_aH>|%un#)^`g5Gf~#Dejo`MjQCRn0VnjW5L!~}0j_%&3P8!W;v;QBEAuJPLVZy=l z8Of#R9-WxN&c=kObWDH0wIk-I&wwgAejw4_3u{i3IuFoA%9jrDlhGSXWf$HU?b^QB z-4o$-&w39lONe}A>4d?fcHNxJ@{L_%5*ajCMxJ~3IV%;iW=bPWO5)Taw}+s8RDEr8 zCTf;(Q%c-=8fOx=mn$hkIg_h9DvJ8du7dXga8Szz%!UONRIp{AC@>lvRK@j~xKtgC z1_6P`VX6QTX%gX+hEbJ%ZK>W8>D7W94ITWpWO^AyiZaIupobQZkhA^tEu@DR>%k!^ z7Uxs}5s!*Sg|FM=Sw@Q8A1X+C9x{B^p~!xDFKUfLMB$TG5w~>+|26;+DUr!Z*JY{} z(@6#V6ND(!xn_2o5z3}$%4-8u)@i)rmhm@b+dtvncEvH&Q3(x?WJlBsa4k4X=ssh`ShlPO4ZJVtmVtHmjm99YkJ`nJ`&M3Ml@llz7@r4?Wg5gjIYKfI zPMlfNhJ%rJb%J$}e9f$&>cX^Ad)`V7HZ4)JnJl@g^vekwg5Rw8ar+pen=rR_u@Z7c z^;#c*>jMroN(Ycwj{?x{1U{dgYQ#VS_|(bz1Q5d66e3ZXkcp*S0Y#3!j#G{W7kLaKC6@c6uP_b1c1Cvxe$Dh&%2jfQ? z+^Q9%YRtbUiK-5F_9&upL_Q6KX&w66^UVQWhUKAM*5)xhB>K+Ch@rn6n{oP0{U&qe z;nDA?{G1KMC#bhgs?9S?kam@ew;B2z=e zBOFt4EVMaF`-tQ9&{eXD;6KG`?Gk3J68E4T#%(4q?Xf zp;T;p{g2zmr+ZWHu`@ig)XYLDg;7jSS#N;!H_up>Om143M7;hsR9G)nG{}}Jf_Yga zSz8GK^b##$QLv(kjYV^OfR*kWU4`G`n}5K~XaK{{=xOqzQsO!KFLc@4nX~>1s(dL) z1~_6fFo2d#=mZk7aGm=59|@D~V}ty>!=9H~&k~#fr5>0<<$I%lP%vAX#9}?at0nR# zQHfgu2s1)Yp3}SY((cGlGgT#KMwckH>5n|B%U}mo&KXpc2)9EK%gZ|62l$%H{Owo5 z8o^RpD~`y?$FY0&C7ux(zIr`eb~YhrQ;t|sQ>?tyBcag*H}Qn!@BIv8O-9%3AeSpD z{H;yee|n`@T@CO?H%ljetkFzBV%-p=CNN2+4Xu||aVEfqLgT|j5~o@x@a@aY`+As2 zh7D^FGHh7x7lFCbdjP74xp2LS4>O;5L)&4Jtv!Trt(z3LxrGEWyfY$_>Et#0tsFCgFsdlyIPNoHj(I*oEeM; zcBS1~a<=!Tx#^nPI4ZlZ3ri^2%?+VV^MG5YlsR>eXQS7myFy$(yF+^u*x(^bI&Tr) zB|9*buQ!hLyoKRl0YO)=R}f#>j3r(fk;90K_*B@^*ACU9XqdcnaG121OaRSs%+#1nQR@$<( zsK-+cUg@vclHo;hTj*7HTbu}rJT+)QlJh-?XI_`qPr=L^_yBX6( z#z4RNV5V@J$rEUxP%$>1Nr6xH$49x0Kt+e$nz|W*-D!#70|dEKs#!$E0rtu6Rz*K( zw_~gfoc&XQP<`ZU?$_=Bjq}!YavKP^Ar@k(Mi@-IaizB(sfvrl{0&&I=O9*8{=15Oky5VDS?ZvBCmq6dbFQ4#Xw`9NN+zI-)b=Ujy&@&dg{}qBR%T~8HIiPDD&zOTp z#Ggpa*!Q5nb);kGe^{tF_u~IOS0-9h%%#XT+q^xQGra_Im$6C)W&A?}MG!nPCUgCI z_$_aB{4=RWs(q8=S2I5M{uhTmvRB(G4I$TF(-ehzu)pl}F16D#$Lxn|(3hh1)D=jX zlg2HQEWcsgGGF7#_R}bDNFt79{Ed^$=JvYzh0_8zW-LKk zuGHi@wN~KF;II&e%TL-wg1K;~N)U)MHJ(jrc>GI>Q9KpL?@oQu!#8+s%_ZN`gkO7k zAZ<_W^Wj|cvCOH8DF?j|I{)h2l>&kmN)S0?9C|oFngd2Wvd*+x_KwSvjVp4$m(uSD zrlyl1&S-`^D(r;T>MSeZDSjQdPM&x`Z*FJQ=ca2D{0NwSo-Mg0tGT0y5}-G9!7Zf0DfUZ8y&qM ztw%W8+i(WE3mtpn8{HOcOoo`g_q9Y6;!j%?Fe-_p^jI9J2Go+n@GCc3gziMMJX zLRL?hNJ0`?JjVckM?w!#`vrOsLPVau&&!%At&_~sJ$b+Fh+rAIOoJddf*`!Uo2J0T zLHt0^1O|QH>UAp|5!(+zX8Si$BrJ>D2e3rF`XTs+LZ+H9r@@OVlI+T1f zYajwriKpw2qxn8WUZF*iA{X1d|H^lmXv5>LcX{w1HFP=o^}}MIJgotDjMG8){DYTH z%DezDi&`ar)wy7L=97%`%dH9=#e)p;L)@ipW)B4N6mDmQOk1`3N>P>{SNQ`zf~;BZ zkl3)UlUSPpNG08?`K*ZkUeM1|j>5R`GYk9>TY9!$>tX5vwA}$ zS|!2~pdPa4-=QVUNPN*5?9YW)FTX;E#!E$5*TI_fvrS%={Y?Ge2(EL20kXY4_`ZaE zXrBocw;4NCVB8skhE|)>R1tS=YFwHB`X1wPPiC9v4>|+++PgDY>TMBhf(aU+K?a+B zu^%MyxssQn5BXYV(Yvy3_R^FxpG$f`khi!C9&FztsGiXN4{4*HW_7>P?w2NZBHWXSPr^jDQygTRjy`ZvK1Y=nTyB8w3GefEYQoa`S z6GRi_F=IpZZyYnYN?GWBMAXyS+uo)!ZBRpaL?mlS=|tTTQ8KUBMmzHnk!B*XIu~>B zJ z1bJ}CPuaQJJ+=fvUFl!Zz7mO))TTJ=oTYW$3B85g#keTD)rKX*20xaBh9i%-Z80Bi zB1z5gYo+V*u>ielft-#q?qKxcx#@OYW(&}$nw9Y!|bluuQvm9?eON)i>wNVQUd!bCA-)y{|oYsgRK@yQd8 zcTeGKWkxhv4*Sy#1Leh-hkCAtKca^lHu1a%ZoG&%5rB2%HHR(b;BfM zlJUUITpD($7v9WE7WrqV197GFIQS~a(VUDO&t-}`l)SCO8}keQygw9Q#XnVq&%5T{ z;NRzZyhaXAKa;=qJ*dNSHKP92nY^WHkJ^Z1UG)A3t78CSsb4cZ66B$`^Da*rjTGDDT1Yyh)QuY;Lj^L+IyaWyk9; zQ!8~n+O|vTOHglD9;)%_R7UGegfGvle{#Kzt>7~0@o0@24Dp&k?p7|Wt{x1((ic5)>RlJa&TkjnOpd6k9!gWjlk%0B~v-y+j2hF8a)>)q}9 zl*4>Oux|gf+!&asbf6Gq_I*#dfeRC4EUkKRBb)erz+ey|9QwEt`ekE}vH zNuH2H(BQuL5#4=|r0*3E2vy;o)~9pNvl?XtyExf%!+zkxl?j0Cn;#Hc^#(m|Op;CXOzTnj8(t?ifW*Y5`N8{O0cwSEV?9qs?TLFsN7r z{W73t+1V*mCKiv^VWydt-?(Mb-im@Tl8?8N3PGcw&+-=1Jpsky3zYjG*L0&rPbC#h z74=fZgPA#cO8i3joi%1Q|6g)Pv2Fd_{>|E}hsSe{#i8Fm|4oevic9&}>;2fA?uWOI z1bF7sk6D3KGBc?LolG5fKyVshwzU~JIQutB2(7|^RFx#(I_`z)Nt0FWV9OHbB3vh- z!t8TQl1{gmPVqa1F&`1^`IW6N*!UpWQ2`zXRx5kC59^VyQ;Wp|Kk-|%cu_`bpE*db zpJ*ImA)fRY9Z03h$f_Kx`wA@9`P81Xk1*wbOaj2D99Nv>m}N(;iM zfv)-m?{eDA(1kN82DvPQo6{E6=5nG6dQyC4ZDL#IPa5B4afiel4v_H_O5uL&Z?AN= z#{X>QGf^DWp)84Yxn!s(r@EaQm{ZS&_mzTrWd0IjTgmK=`U=Mtqe9^DtXXATT`qOC{rcO8Xtf zb_Y#ENr5u$QqsbRgI_Fj)|6>>o<@E7J`R4g{~a`LdKeIh_mHsj6`i&chGhgpH~@@F z{2WWj-!+BY-K(^kc#xfsV}>TgR$E|B_iSO=!-rwGe6LA$YSfEy}FGW{?P*Ocy+YDSR<3nP(gDsbo~d2(sn z4H9tb>Q*a>85aq_3fTgMlE#6VfA;v}6i_#XkQ^Q>tNrM11w3CpP8atUE_eHLWBmM)z#QGIZi8qn z{lc+Lto+N^h`&_`xQ?5E%I|Qn->R7S;X*aU+??zten}j6w-(25kU7mU=YkVyfs8UY zfr1uKX@M#r3nDEN98E@QE(hyDEwTE$u6(}8@7J26Ju>M_QBp_0Y$QnU`8@wkjeg|8 zEbb{l`JUy zD7=CV^YR)L>)kDBvd?~)nsSLq3(~B9N2~;s&E1mIJySe zR9r(y7L9#kSO11j9X4;e87pIE%s_PWO=x#tf~n7J$+r7>2s zS#3P^f!w2p#aD-WLF9agiw6UC#lhKzZl|OQJ6>tl`!>#uvD=9Zr~c;HJGkhdMcAiL zI9rN=Gjgf8+pO1ULU7X&;G`IZW}U}K?~RU_0c!p)F$WWb=FeKRAW#BQesC~cT79IebB!j;&1Y^IGPpvFm(})T=TNoQ? z?IirC|5}Avd3=pc#Vt?+SgX0=nv1cQSi;Pc)MuQEWhxyYy>Fsvnn7v5)39<1u>6r$ zl!!9cq^r|@LtWFK=U4xyEXQ5#2%$1NE0Ya1LDRztA3Kd1U<16&L2mkmjl7Wc1ILjJ zRNwC_>}SN(GP7CA80e(G0q4E%%@SF<9t@DchPC&%31NU~xtn+UbCqYty0)nOY~E{N zGb@&1KkX{EUwKe~l$ty;4p948$btG*4PnaGM!S3QqEqjlgbBD8^MM&t7o~T>%@)H5 zS5(sM{$BnWb%Yy&Lsrl_I&U#KAgx&ZI-&oRTFPl2)Z|h8Cmn%O~PrjSUaywLH zJTL(vEz1*6K#52@CC^N=iwMxb8TGCYh0Xxj!MhVk)&exZdvzK9U?7aBDY%>~yRI@7 ztzGORZp*ALJ5OLo;|kh$Mv3nJvtz(89^|ADch>FP6&;0!HcsCX4wn7Y@^*{VwH(X`Df_;upfgl57ugO$e@%+YLhBt&(DL z6c@a_R}vOlw*D>5MV_%p73w+=YU13SarOO*+O}GQEn7~?-ZvGOqI^`EHY;T z^vMgpkF_$iB}J{!KFF$WHA2+IQ-V|VN>t1r&?-EAMowyPWpAa$NViWC4SVuf^gb42 zXh*S1jhX8Ter^A*W_R2~6$kL*?r6=c$)Dn9;L7wUgxJEYF2d=6^#b0%MsFe6o|#5d zu#E<(;wL%XXIet1F3aWP)Kfvw7YHCUEwW-$7|d?A4Z2m87#}Ve+5GY^&Ou)LdN`q) zJ`Ta%flJ8f5%#!Blt_L-py-1W^fl+PhGui|h}d3@9gw_yZ$@p15S+6cX2KZ9yc(-9 z)nbTWQ7@o1|2}V%0NrQla!VI-L&r;)F(ArDFBIH;oauD)t37pmfx26`%qJsk?J(*Q zd7^cCxX(XqpaWR@)0%adwHZfjVhX!t)#k3wk_v&6#l`Z*Osa`}wjj=su{3yNmkU$a zwi$JhFhgq^VcbhBt0m4>p}FL{|3h;@cFM)JqEtNRx~&IX=p_@zZewxLqi-CjD=fNS zr$uLw0S6Y3*MDRUQmwaHkUg;#Wsw|~z6tJIkC%+nXvgS6op%~QTqg=Qp-wNavfVnB z<|#-(IGhCP^eKhWHT+vq-zv}AG(5&US9vU(3=yhJeP3=;u)-$*a}1DdcCqZYplK#~ zMhN}?7765*+uo(e`e!ltmTdCa2D!bNV_cEp6GzW2=TN_LYY<;Zp?QgudrqltwLj=1 z1(}WyLaMgP&AOgR8(0Wu0{v3aN^Jr|japCNOQyxM<;bo#c%Su!G!G)BF#`E~v|p6M zsxsY~$9E8|@S{w7MTNi;U4Z9f0ZQdCEqm<@ZS|{c({fhW=v+4=({6h4u7dv@-4qY;AM2G(Ypviup>7YtfkQ*k?GIk{Uu&xZ4A)FDB?O6XamTj{EI71 z0h66uEM8yuQggB>18+L%w|2TZ3o6B<>3WypT4~BVxL_}ao!MP^S;X*ASINJP zyZZHBZ@3*sQxhG1h~S2IyQTtiqcwI~o}1C`82yLHbqU7C1`0rnpTv}TT$-xSap9g| z0D~f`M*6ZtzBZx!%$kT}xKX)H`Jg4i5!7)l`jZ5mOe3q2!-TXhi)FMb)0-m5hF*hn zWV~%3Zi_6hT3br>2CNc6u5VzNbe-!MMBx2=9K#jmxkk>Csbh&x8FEU9TsC*w5(9wN zPoMx$mdH7JD>$ZRzPv}wsLn$YGC?PZ4GoLGpG#>#{{NYdoY-m1*TG~*7YViWhrtQ= zhcCKJ=6VbeiKzXX0wKytBSfRxPE>_-`EZCru*n%QrWJ~&yki|L1xIR*GHTn?^<&|! z@v!XUqpj~syTYPqbN>veyd{WRr6)UMx5W91zYzA^tHz?FuS@)JZJ_Q&7*8wrTxwG; z`~jx(qWB}Sj43gbh!YH}>9vX4kpoalB;?mQPOGIAhXMn2Uu~wkM>(+`wkU6p!3O`a zUo4;=Qi;Hl+cEmqnSE}B+kT}K`#Y@7_I1N!)H_TDXG z@VhNT_O2puyFlWea>IbiKj@R&jw;F`CXDZxy+kd0z@*N{?j_JpBK`~!Zh*OO8$1xX#?-xsi zwW4+9P>%%;u4Fol7@(&MWT3*;SE@8TXc-?>R?IL{X2ri+i#h*hZ|Cm$V8CVI=-_-4 zPiw<&=4iZXQcja>hvBg1mU^PwtGsDgZiYb@2)n(k9RZSi#?!Ze{j5Fhxfqd zOQ`J{*_|Lpb~ReVub0zi2~XU4&f_Np{Rciu;je()2k>i$gRk{t_Z(?|Izt)mzzX<) zmnv#ATPaIme(am6(14_)zrt_YuNSD=)-0Fxt57xHJ6~P@RqM7p(G?}iW_7(t6Gw<` zgz3a;+psD6#C==D<3M}t^4+*3K1}cN<2zQ@dW$}i7;yADHA74OJck44uXj)%zw;z& zn_$I&^a)*_e_8t`l|%BO09BdyD0kX3!5Pyiw?j}CAc|di=S1HB*wVOH`w>WfjY9WjR+S_bA}~$gKen zPtSXuutyBoLM_UOG)}lKt|5{?1|8r*nI#eN2>i3}>5l)XxPDUM+3XZ6r$!ul5e^vq zs1Dcqp{imQ16Fwqb9a`uXbVicBpcyfW_D5 zgjsHBOPo)9n!}Gk15mHI%{r-ADn{$UXG0_=hIdjmbbW~qC4;u%_4QQ{q|p9R@Y2|z zg?_*lJYH5zkzxsrentRjOZ5@ZyhUn{!M9ao?y~#C^w|X7S zv*?e7w!6O5=QV;_nQJD{J0^L+6{;2&y;? zZSOJ3pMhFtj<$6vDu!a;J`Ix&-Wo}p8K)TS7pWK)gbSa`%MO3e!iHB5C&)3M?p|E;sAUcW%Qmg`Bs~KQcZ)=LiC%o zFBdOv=B5PYUEw}eL;?WwA^v`51>F?#Gm!s5`RX%2oNha8%!{|?@}QyspVOnY4Z$VZ z=+_~UO#l9tKYq9@rt&{B)-U_(fEC3#(w6w(^6p&E>ekzgc3obc;~#*G^RgG6e>lUv zbFjUBcml5-C{+yvynnvgZB1IEb!ZF=jtGBFx4+)tA>`lb84P1gLr0-*2dw$B$1!pW&t?2c%GkcJE1q7T_q*uJZ>qI^V zi1mWiQMdvq$5Cg!nrD2}27(MId+8o@Ak0A5!37!*R@g0;-4C3k2*42;-ERQ!+iu z@t{;DHaGb1<&2v}!&eey=Up5O>B)`^-4g@5gfpXm9kVv+T4j6)D;kv|vN*qzT^3nj ztsVx6eXjaqYH;4v0Cz=|V0-0%QJZ0T5uA8X3@qZv(NWORVRmm1P$s#qVC~uS_R5i# z1UhwK){V`45k@CBGHMof$)ZeJJ}9>3NM=+(60MtSy>aEN$7G!h`zW>nLL?=;S2y>b z;dDDBB7-Y3ffWB6=OsnIfA(;P@&S+@Z{dVDxDE4kf(~M}zM9~C3vC)l&v4-m7wPb~ z8|>|0LVz$axCqS$;uYvNoYyY~eZff>rw{L~j#DFk^<_0_VFiTHhMpHCH&CuJVp2Kb zuo=?uaf(XQ;3IMlEe-(;o}owx(TrtTrgU{NW`V(9;_ZvWN2~l*w`yj&n2xQ4BhcQ{ z+rW$GgHGWEha3?{-I7h?=*b zw-24;UQtwBiAxM{0QKL>8sc%%L7IdhC7WQKwqnAlhik6H>##Zk(Kz+P5{K5Fftzh% zS@Fz37-j>N#~#Uc4UHu#8alUVAXcnTOt`jbqj>z-x*KjBuRLye4o&F3sp9LmZ4p`N zGJGxYIXJQb6TCry69H}eRI*<8aIINTU%~GQgOz$+1K-!!+oRarT1$^rp~gdwLDUDk z=>b9)Ut(T#50qAukzRSe#$?*BfeW11C7pZYkLVMOw|baSvJ`|bOHzVT<823jJ-w>L zDpJ&3Z&_nxq^di`So0fSB_UB?xcZ5C#e;FvKJl8hmyaM#U}y@$Hbo)TPUX+q6(hP} zM02emUAk`y#=u;j{!PP_0Kj>Y9n8CKX(1p`gQqar z@;{vH!0g{L2u(0BuIV8)g88y#n{}zng_MDAeWcba4(nRCw@}xTwdcYtHTlt%r4s%- z>qR|G{pPRIfS%LchRgEg-1p(|NwMd0NfXJ6vYd750)nqkqWcUp$VmjfuarmpbRugD zsvlv9rtvG93m9Ojlb{H*5IZPV^!o%krH<}@aU7nKIhV!T4|`qv+gBL1h96st^obh= z)$b^Qj~O@B2CG&tOxz{t?+^LbNMt{`O(d9(^V&Me)_CU$z#N1T+2c3&e}df`g~rL& z)b)_wiL|8$Nm*ypj^q(Oe_S7Sz5@%_a!!;W*wD8&r4 z_qC}fFt91nae>Z`x=btC&}Tq8;ws6I8^u^}WA37C+hW&-tws zF;h$gS0=w1KL*7;VaQ4}-XX6_f3+!E8nX#b=Nlu9Tz2}m5g2G$p2 z>TIw)Y_`+A`Xp9Pu%{T-c}~h%X@l7W5|=B%PKgDwFAhOI84^@jTX10}>b?eZ@dkY{ zTcaup_@fMuryF4;zyYgdaPxx3qA1ff=3Hn|KR>+VIx^OfTtVyz@Szx85KbJED+?E=x18LOAF{Php+;H?&5LHLgUh zr07tew+_=a>e9C{#AuoOJ%UsFu&E^vLi842T8{qeXM!qL&$2bat=$DoTQRFh;6Kqy zJF1!=bP=i2iSq+CN%Ut)jf~2cV10m@Hfv*F35&w7qjVdZh+xXX4p*epv1h(}drVJL zHdB6RZ5rqshO!&Jh%w;%_@^98Yg=SOS7AzL>A?yPURVC+UkZ(J28V=M&PAHb2^ zC_b(-k7?GhXMoY0{}Ml?vpT`+J+R4VOr{+Adb(@bh`2G`DwAR^QHT9}=41{}&Pi&I zq)sZ2)Z+I3mDKyCoX3qcS9nDVaFdXNjOpMp%WDly)Rdc|Qwve;x`l?ngUj6@+`!of zb4VK2x$L7-%cuaa>jfZi4_3j{ zIS(QEAJGmyz6i;4=q*&@g@BEESZ(K&Vlq%*fpC(B;!?-!d%*f~u7qivrnALwM`l|P zAL7b)&SJL6+*@4)@K2WP5KE7G!Lj$`&hS3>MH&yyY=PgGhA3|z+LY+8w(ipUVL~Hj zb5HX6f5YXv!At1`6cSb(-sUv2S&V|i*#^&cdvwrS)dJPK#+mG9I0>0Ccel-Uih1`U9$w*iVznH zl)PZ;jttnGdWSsn8{x?^`I|s?`r*Nr@!TNWrLt? zCa4(=`#f^=V5je2QnBFxTw!M`Kz1#~l#2`hCKRcP;_SnNHRfmS%Q_S2E&*ihMv0uD zV0B2YVC-FFwmx2d!-ZYQrH+b1B$Ue`JX3hlozX;}PLK>*V(;sf7UUq$rxlg-&p_>V zaMAf<52VB21W?$b4p7FpZ{E5<$!D>C9lT&w)9W?U4ut+T&R_hvs-N1!etGs3REGR) zF>bxx=RG^f=gEilUSXQLsFN~|_~9&orIz0GIxh;_|K=A8I`4GB-%MGc&eHrL9d$K| zSisUAUjRDr9cugVIw+N1pNHK#eut z0iBj0Ya~Wcc55AmVHsKTPdvC-(z%$JN4|p*(ddi%69+z65&%XA@qaaVg+Rx8@rR!i zmAM6}4*(tU)~g%cm#50+$mKmnLDNYkNyN=cG4lN!FPpw2Gs`8^S0*mm6=rf$x0rWb zJukvCS2O2GUE7yef9h`v{nFOwGdCvpm?6%-lu60xiP+xis_#WUy(ZlJR%vvWQRogV zB}F~8h41{!m`4<*6@BJ8S2Ka-qPFU!9a(`_W)oS+EgLk zq3oeg5M-Iz{LdoU>b*^e9J-lkcevYzDVzEIC@41P|xI#7L$cC5(B?3JJpt z>yYx$B+@zBJy^c??z)g{#~hA6E0@S?veXWJNn3`5+&zBN+X`}cRzEAk*ouzsb<10z z!Od`Ycd~wD!VBB>;w@^Rzz;S1P%6EG%OQiLYa;<1b z)ZCh)NO{ozH7ak!5rY=+_K3v>(svHiJ2C3s)ChQot}1b1Bxh?g zp$!IC9WnCwGqm%jgM}|K4>n@;ZG<1KP34s#y}e0&`7X>yl#-3JV~jfO+PwaxEmJJp z(!#1zfRy@2W)L#L_T;WaD8mAdTPmkD5Sz?BIT~opfbq|T44){#Z}k=YW#LcHNURAU zHJ2M(sM^ChojV>4EV+~``of#Z6F}AtI>7h%e?pbAofeHUU-m^>iuF)`hB9%uj~qVn zRr0Lw=HSM2B*g&@%}+g;{qx|lKN%>x@VEm!G%Ok&mf#!^Qf zpJyKK<+?NA>YBTw(gS|E2zLG$Qypmcpd|7!^jBCc$=M)5`2bYE%bX~zzV|F@owP}V z1WWbIpo=R%9G^|ywvPvfq>zK~f-zsPl3oI@yw+rGxlYXE{3>nFP zadW-j$L6?V24b8=D4?k^<-eQ8+dug}Om=dCbvve$W{Z?xng{)m`pNK*3}AC)llXD~ z-zt`5*fD#lONC&@FcGvbw|F=S&?I-VCazSb{bwY^JL;Cr-!h+uc4^{-Z72*LZm@uc zs31zK&^3B3eW`8&ybjk|j*z`954)Q&Y>R-spAvAHmQ)ZZrgrA+U)|sFOCSGD#;OIY za6HzDIwVF*dVtE05x)@(05D*#=?7!K_x34<#7?G$f7qCvVY@Iz%jJ8csr(1Ko*!=S zz8|+$eQ{>@+Hv)NzNhYMBZRZh2C7%b`$MCWy2E4U9Swi{c%lM=s`>eE@-o77%2)mg z+GfAl92d6LVVy?GcV4rUHcbBguoVB1%HDP@`6)|%ly;II(Rq$=PY@h^+q)Xy&= z5pbku#&BR&^pD30b^EH{Pls=Ffqb2tMGO?Bz8dknBkr?_$g6jRC`@cMNt~RCU>-bBMu|$-hY#AR|di4_;eGBMuyYTPn@~9$|ME@9X^q2JhyFm-Ad7TSJ;5R=iX- z9+;u7)A$)37O4mNy5qZ1SNBrD(*klJFdYyL!xX3hXU!DHa@SD{Ykhp!XbsPR7tnHc zyha)gzRIrTO{F3j5Y_rN!j*^7#{9469kZsYT77psnE5*6q0^)Vr~nr&RZBPPOpZ4g zDBr(6T9HopRDSOE>p@XRF4FqCj;$cbuHzZF*0y#6ZI?ZvurZbSY1jza1NXLZu1aS# zk`NDa0dvSJOssYLDEliQrOCV*MC(x2#7fTl(VILhD|Wp_7N9t`{NhE(&g3TKsOq30 zybYzscC9kUuZWm&`OI=6km-4_wPKF#nJ@w#hJ5`mi{9DE`mxRpDJichIcwoFuo zk=UkZ;wZ_@IfSt6GjTT zi7Sw~UO&pX`g~^W+F~FQnNJ+3)f19(fPa@a#Obc0v8 z*cn>zFghY6vwq4mLC^vPV_VjP3(lV-;%Vlh~9{4p>xSHpNhv_;cU9uSEl6la&n!dPW}gE=I9J$jB!gm8&N&o<|H271J;FM3b77(LbM(r@25 z1!#S9`XH976YCl3rJx44Q3s4;M!l;Zi14r%R zj4`OvB`s@OW+pILuJqL0<^jVJke4H$L;6Z)5@? z4H|n*zHm)nSb#*ytlG@6$*KsfpPn znD?LlH|k7{EP$?7*pUDdyd}nZD}}x#!noFidI};=G~V_>Ubod}#Y^c$hOm??LbhYK z(!t2Wy{@Y(!7c7_uumh|s2C)%{ylEWpAWaM+wp!viJPt*oE)%I3}d9-j7qMbh2;6Lr)ZV-`JfC?#tVn8 zu#Lx-44Wq(_-DbYOgIp4l^(9xr=3MGbzU@B=eSZNEKAZ9h%2KyuU~=j!0$=dD-1wr zH9ZlBmx7rNUSW9g==Rp-9BRJy@IA`2wteK$l_@7D^BxT5fG*UUdKa$84zcY^wicG{ z%lJOuUXu1NeR5<`MQzvXflYj7-B$S_nB$be=7oN{%-^{@NMg6Zs&K>(^mJd@gBN~p z(r#2~2e=eN@ZbMx(MUOt_(CsLP&m=!bHz(jZ$c}g<+a72g+odCw`gILK<@47{7WYi zfa2Ng8Tbdg2s&91UGmNV@Q~#r-zlt!=XM3BZsGUm$j9#uAO8tFkPVZz6(Q!e428?N zo!+9eJ%HwCtY#x5N;zvmjde{bcQ0^pXH|Q zHD4BE62cSk#miz^UO9cyDTN6U@}iJqV#_TbY#ywG`!_8 zfRC#ISoMSn8PE&f^+4g0$i0TqtVVekWQRE*QI28X7XX{(v4zS=vrEx1wS-D}&x%wy z?214~1mk8-N--$h*1LOES0*9I1OA_;kmf}fAb|AtJphj^a$Lcin$48TVT>B;{Ke%S z-$!??f=bfn9uW$Xp;PEu(OjIz;m{~9FUTEs@BC>(=5Nmf`cuCknFPX|dsLq(2{QQ} z(kN#at&uSP2N1>uVae$+r(znq7TlNylS5^hG!vB*uli52YV@lWiQ$6bh5C*UuZhT>{YCD7y%6!^y8jwPNgy9!LXq^%5}r#yi#d7N?0>V zzXGb1-N07MtlIGDO@;JLO*jm{8`^R?Y#65utWcibST9fp>3}qLEXW|Re`(wYWyo$> z+U4;EhWQ&yu^DJRgVTnF8i}jo#KMoxrXcYKxqt z=*rtoJB&WCt~v(3ELWmPAJPB8tVqxy1;jTH;6W5OZ{>E`=YePd`%Kcov!+yr^#JLX z&edoTrRx}%r9i_L)N+rLyutnl3#dUJAIZKMjX70R-co~}Z8c5p;yAc3kv{{2v_B&> zOCR7%nZmN>y=)@_5iMPS>g$3A*+ekxiY%zuB0f2n|9-DY_j4AMvs z0_Im$a;B5*0 z$4{kBY=FDsXwxI@5nS*;i&sANiwwm41F<_MvxP>nV{l2`(-m_@reqGxTVx$lKXsrE z{}asSCUMHFw=j1oWvXVcM<9GTr37HIG{39$V{h z$pFUJWG*{44bo-?h>*JoN;PYnX1lp<;;%Q~k(opK{!K+QGdWENFJQxtpdO~VL7tEw zpW|~7maz|+g5-IciKEP@reHM!Y7nBjj+LKy`=ei)r%_9pVGGe*kAAvEDp7A5At3b? zOoVR|yhS70#-JgXPv;l&iBJw9EcSU&Hf?ubZ^1Xlm(Rg?LLvTFJbcUFc%InU2hEo* zOlu{3N+WFb{{{PaI7-_Bbu-C7vhu#+ClN%g?vx zVh=)swU4NZ{SBU8e{beuJ;8&W^1ziCL#Il;{8qn{ajyAOal_Ppy<`i7+_Ci*im;w|410C_yai+J%5(%@;es>sOizHD^85BJ6Gq6uEZ{)JEKgj<{ty`>tQbG<`~ z+#L^kE3J>SwJS)CmDei@GD7x;2J#sVdMqNYq~v0sX8eqO1hrgCouc4N+$Srimv5Oz z9H=0auxOSyZ_Q2~_{5dx-us@==zMG)rQ8qYsQ&^iex~!wm}PXW8}f%4%dEB3rs9PI zqL^8&C#-@o?Ch8v)TSpEG&8xM30WKT8yUm34^^HF0aiWiCG(eSzYB?anFYk$!w|%v zQ{!nLF>MOe`*gcmaeho?Me>O!F>^3GXVs3tvjWXl!Eq;|2)O7(s{SPCtX&`<(B4R} zR;(!M1#JOkgksxY>SwzmKg4l-^BVk-VF6}1d(sst\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/670/7de640a1\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 01.06.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add comment=\ + "Lookup IP addresses for RKN list and add them to firewall address-list" \ + dont-require-permissions=no name=AM-RKN-dnsLookup owner=AM-RKN-dnsLookup \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-RKN-dnsLookup\r\ + \n# Script comment: Lookup IP addresses for RKN list and add them to firew\ + all address-list\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Script description: This script is intended to be run periodically, e.\ + g. once a day, to update the IP addresses in the firewall address-list bas\ + ed on the RKN list.\r\ + \n# It resolves the domain names in the RKN list and a\ + dds the corresponding IP addresses to the specified firewall address-list.\ + \r\ + \n# The script also handles CNAME records by following\ + \_them until it finds A records.\r\ + \n# Usage:\r\ + \n# /system/script { run AM-RKN-dnsLookup; }\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:global dnsLookupReady false;\r\ + \n:if ([:typeof \$dnsLookupReady] != \"boolean\") do={ :set dnsLookupReady\ + \_true; }\r\ + \nwhile (!\$dnsLookupReady) do={ :nothing; }\r\ + \n:set dnsLookupReady false;\r\ + \n\r\ + \n:local arrRKN {\r\ + \n \"telegra.ph\"\r\ + \n \"grani.ru\"\r\ + \n \"xhamster.com\"\r\ + \n \"lostfilm.tv\"\r\ + \n \"rutracker.org\"\r\ + \n \"lurkmore.to\"\r\ + \n \"dou.ua\"\r\ + \n \"youporn.com\"\r\ + \n \"pornolab.net\"\r\ + \n \"crimerussia.com\"\r\ + \n \"telegram.org\"\r\ + \n \"api.telegram.org\"\r\ + \n \"facebook.com\"\r\ + \n \"instagram.com\"\r\ + \n \"x.com\"\r\ + \n \"twitter.com\"\r\ + \n \"youtube.com\"\r\ + \n \"googleapis.com\"\r\ + \n \"youtu.be\"\r\ + \n \"googlevideo.com\"\r\ + \n \"gstatic.com\"\r\ + \n \"googleusercontent.com\"\r\ + \n \"nhacmp3youtube.com\"\r\ + \n \"telegram.me\"\r\ + \n \"t.me\";}\r\ + \n\r\ + \n:local ListRKN \"RKN-dnsLookup\";\r\ + \n:local ListComment (\"ListRKN managed by \" . \$ScriptName);\r\ + \n:foreach aListItem in=[/ip/firewall/address-list find list=\$ListRKN] do\ + ={\r\ + \n /ip firewall address-list remove \$aListItem;\r\ + \n}\r\ + \n:foreach aItem in=\$arrRKN do={\r\ + \n# :do {\r\ + \n :retry delay=500ms max=5 on-error={:log error \"dns resolve fail\ + ure [ \$aItem - resolve ip ]\"} command={:resolve \$aItem}\r\ + \n# } on-error={\r\ + \n# :log error \"dns resolve failure [ \$arItem - resolve ip ]\";\r\ + \n# }\r\ + \n :foreach dnsRecord in=[/ip dns cache all find where (name=\$aItem)] \ + do={\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"A\") do={\r\ + \n :local newAddress [/ip dns cache all get \$dnsRecord data];\ + \r\ + \n :do {\r\ + \n /ip firewall address-list add list=\$ListRKN address=\$newA\ + ddress comment=\$aItem;\r\ + \n :log warning \"Successfully adding ip to list A record: \ + \$dnsRecord, address: \$newAddress domain: \$aItem\";\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list A record: \$dn\ + sRecord, address: \$newAddress domain: \$aItem\";\r\ + \n }\r\ + \n }\r\ + \n :if ([/ip dns cache all get \$dnsRecord type]=\"CNAME\") do={\r\ + \n :local cname;\r\ + \n :local nextCname;\r\ + \n :local cnameAddress;\r\ + \n :set cname [/ip dns cache all find where (name=\$aItem && ty\ + pe=\"CNAME\")];\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip dns \ + cache all get \$cname data] && type=\"CNAME\")];\r\ + \n :while (\$nextCname != \"\") do={\r\ + \n :set cname \$nextCname;\r\ + \n :set nextCname [/ip dns cache all find where (name=[/ip \ + dns cache all get \$cname data] && type=\"CNAME\")];\r\ + \n }\r\ + \n :foreach aRecord in=[/ip dns cache all find where (name=[/ip\ + \_dns cache all get \$cname data] && type=\"A\")] do={\r\ + \n :do {\r\ + \n :set cnameAddress [/ip dns cache all get \$aRecord d\ + ata];\r\ + \n /ip firewall address-list add list=\$ListRKN address\ + =\$cnameAddress comment=\$aItem;\r\ + \n :log warning \"Succesfully adding ip to list CNAME r\ + ecord: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \ + \$aItem.\";\r\ + \n# /ip firewall raw add action=add-dst-to-address-list\ + \_address-list=\$ListRKN address-list-timeout=none-dynamic chain=preroutin\ + g comment=\$aItem content=\$aItem;\r\ + \n } on-error={\r\ + \n :log error \"error when adding ip to list CNAME reco\ + rd: \$cname, A record: \$aRecord, address: \$newAddress, from domain: \$aI\ + tem.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n :log error (\$ScriptName . \"System Scheduler for script: \" . \$Scri\ + ptName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add name=\$ScriptName on-event=\"/system/script { \ + run \$ScriptName; }\" comment=\"Update RKN DNS Looup\" interval=00:30:00 p\ + olicy=\"ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon\"\ + \_start-time=startup;\r\ + \n }\r\ + \n:set dnsLookupReady true;\r\ + \ndelay 2s; \r\ + \n:global dnsLookupReady (a);\r\ + \n" +add dont-require-permissions=no name="renameLists " owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local oldName \"Test\";\ + \n:local newName \"Test-IP\";\ + \n/ip firewall address-list\ + \n:foreach i in=[find list=\$oldName] do={\ + \nset \$i list=\$newName;\ + \n}\ + \n" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/ip smb +set enabled=no interfaces=lo +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set use-ip-firewall=yes +/ip firewall connection tracking +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set udp-timeout=10s +/ip neighbor discovery-settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set discover-interface-list=LAN +/ip settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +# ipv6 neighbor configuration has changed, please restart the device in order to apply the new settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 multipath-hash-policy=l4 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=Internet \ + lan-interface-list=LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface="ether1 - Unet" list=WAN +add interface=Bridge-LAN list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 disabled=yes \ + endpoint-address=89.110.101.17 endpoint-port=29185 interface=WG name=\ + MikroVados persistent-keepalive=25s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +/interface wireless cap +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC interfaces=wlan2,wlan1 lock-to-caps-man=yes +/ip address +add address=10.8.0.2 disabled=yes interface=WG network=10.8.0.0 +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +/ip cloud +set update-time=no +/ip dhcp-client +add default-route-tables=main interface="ether1 - Unet" name=client1 \ + use-peer-dns=no use-peer-ntp=no +/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.4.4,8.8.8.8 +/ip dns static +add address=8.8.8.8 comment="Google-dns IPv4 1" match-subdomain=yes name=\ + dns.google type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" disabled=yes name=\ + dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" disabled=yes name=\ + dns.quad9.net type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=amster disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=10.30.30.30 comment=miller disabled=yes list=NoWG +/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="ether1 - Unet" protocol=\ + udp +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="ether1 - Unet" protocol=tcp +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 \ + in-interface="ether1 - Unet" 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="ether1 - Unet" protocol=\ + udp +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface="ether1 - Unet" protocol=\ + udp +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +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=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +add action=accept chain=input protocol=icmp +add action=accept chain=input connection-state=established +add action=accept chain=input connection-state=related +add action=drop chain=input in-interface-list=!LAN +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes new-routing-mark=To-VPN src-address=10.30.30.0/24 \ + src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" disabled=yes \ + new-connection-mark=VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" disabled=yes new-mss=\ + 1380 out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn \ + tcp-mss=1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ + src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ + 10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ + !10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" disabled=yes \ + dst-port=2904 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru disabled=yes dst-port=\ + 5000 in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" disabled=yes dst-port=\ + 2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp src-address-list=TRUSTED to-addresses=\ + 10.30.30.33 to-ports=22 +add action=masquerade chain=srcnat comment=WG disabled=yes dst-address-list=\ + !NoVdsina out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + disabled=yes dst-port=80 in-interface="ether1 - Unet" protocol=tcp \ + to-addresses=10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=accept chain=prerouting comment="Trusted DNS" in-interface-list=\ + WAN src-address-list=Trusted-DNS +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=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add check-gateway=ping disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=\ + WG routing-table=To-VPN scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add forced-ip=146.120.64.211 interface="ether1 - Unet" type=external +add forced-ip=89.110.101.17 interface=WG type=external +add interface=lo type=internal +/ipv6 nd +set [ find default=yes ] disabled=yes +/ipv6 nd settings +set router-advertisement-route-distance=100 +/routing settings +set single-process=no +/system clock +set time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system package update +set check-certificate=yes-without-crl +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add certificate=DigiCert-Global-Root-CA check-certificate=no comment="doh, doh\ + -url=https://security.cloudflare-dns.com/dns-query, notify, name=CloudFlar\ + e-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 http-codes="" \ + interval=10s name="CloudFlare-doh IPv4 1" port=443 test-script="" type=\ + https-get up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + name="CloudFlare-doh IPv4" port=443 test-script="" type=https-get \ + up-script="" +add comment="dns, notify, name=Google-DNS IPv4" disabled=yes dns-server=\ + 8.8.8.8 down-script="" host=dns.google http-codes="" name=\ + "Google-DNS IPv4" test-script="" type=dns up-script="" +add certificate=GTS-Root-R4 check-certificate=yes comment="doh-fallback, doh-u\ + rl=https://dns.google/dns-query, doh-cert=GTS Root R1, notify, name=Google\ + -DOH IPv4" disabled=yes dns-server=8.8.4.4 down-script="" host=dns.google \ + http-codes="" name="Google-DOH IPv4" port=443 record-type=NS src-address=\ + "" test-script="" type=dns up-script="" +add comment="dns-fallback, notify, name=Cuad9-DOH IPv4" disabled=yes \ + dns-server=9.9.9.9 down-script="" host=dns9.quad9.net http-codes="" \ + interval=10s name="Cuad9-DOH IPv4" src-address=146.120.64.211 \ + test-script="" timeout=800ms type=dns up-script="" +add certificate=DigiCert-Assured-ID-Root-CA comment="doh-fallback, doh-url=htt\ + ps://dns.quad9.net/dns-query, name=Cuad9-DOH IPv4" disabled=yes \ + down-script="" host=149.112.112.112 http-codes="" interval=10s name=\ + "Cuad9-DOH IPv4" port=443 test-script="" type=https-get up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" interval=10s name=\ + ns1.unet.ws test-script="" type=simple up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260606/20260606060002-Diff-Config.rsc b/MikroMaster/history/20260606/20260606060002-Diff-Config.rsc new file mode 100644 index 0000000..f38879c --- /dev/null +++ b/MikroMaster/history/20260606/20260606060002-Diff-Config.rsc @@ -0,0 +1,17 @@ +2424,2425c2424 +< set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ +< forward=no max-neighbor-entries=8192 multipath-hash-policy=l4 +--- +> set max-neighbor-entries=8192 multipath-hash-policy=l4 +2508c2507 +< doh-max-server-connections=20 servers=8.8.4.4,8.8.8.8 +--- +> doh-max-server-connections=20 servers=8.8.8.8,9.9.9.9 +2527c2526 +< add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" disabled=yes name=\ +--- +> add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" name=\ +2529c2528 +< add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" disabled=yes name=\ +--- +> add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ -- 2.52.0