From c00ab0dc17cf2f39718ea7af4bfff645c2927be4 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Tue, 2 Jun 2026 17:20:18 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 02 17:20:18. --- .../20260602/20260602172002-Binary.backup | Bin 0 -> 260007 bytes .../20260602/20260602172002-Config.rsc | 3467 +++++++++++++++++ .../20260602/20260602172002-Diff-Config.rsc | 47 + 3 files changed, 3514 insertions(+) create mode 100644 MikroMaster/20260602/20260602172002-Binary.backup create mode 100644 MikroMaster/20260602/20260602172002-Config.rsc create mode 100644 MikroMaster/history/20260602/20260602172002-Diff-Config.rsc diff --git a/MikroMaster/20260602/20260602172002-Binary.backup b/MikroMaster/20260602/20260602172002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..245a9d6f1118c2d77a364fac94bf6c9a2dacbf07 GIT binary patch literal 260007 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 l#zd95WG= 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�vwT6nU_Xq#QH zSF7l1F(5KR+fVTzA%~M(_a3Bx!fq~3lP$N_ex7K4{qbhAKmSRCL1B zb~)xnb!*o;s<>|x*fQmbJ%`qs08x)63ZSwu&>*8DvA$SfLyX~$k)(`59~;2*(satA znuNQld=HNMgKEvn)-(wnBax`4oQ&XXy?;GYT$c1@Icb*fd_q5|(@Fj>$2j$hvd#|tV7g{$TC|Zi6g8-En(gS@3M21 zKcK!|g#)$w`$0R<$A;V5ZViv&6?7`z+>}p~dpcVWpd<6`6_t9Z8@Rt@?+)}^T@EKi z_=Tt2o)MQ!5tj*eW=!rN>~i`vJ4(Ay7g3ISX`JKw$Lq+i`JbgF5w=3_&wqk%qW8WH z&KaNk^z^wm$-IN#BrpOhfSCV5DY6H&7nhZ|monuoLdAI!>UF)LRKMw|KV3aS5O{dZ zhvI<|@0^CN_!fz$sviWtT&?RiKP*IR9Zq+r#WwElkx!<<#5+@c$d8}~zc534Hm)lsZdKouVGQ!MG@5=)w|a9&gU8@4be^TrCR zAkXqpmibWSY#w~%wpI-1Vwp&qW*+ebYkA}Q5p1wGtI1aN?D+c}9S&MzNZ#BVofyq; zpGnpDci{lob&~)}OIpKPaPoU%9tLb4Ctt^(B8A#x3wj5bX^&Xo`yX z3F;E^YZZ(;24|#$yJa3`WMlAd%-#un_El`vu6%afn9h?3qqqr}0X(R)8KJP8m9Sld zH{0C*bUJE#8miWBBlD^?1o?2KM~$eHedjyGmOgYR4$|%#5~#RilA?GtU#*`lJg#n2 zi>kWzk#Z(_+NBJ<+&@==tv;$-V*s;b`sCsU+|W(m_TK02O>Knhqp$lrYXZ|=8r=${;b8PMzP0M z0K&40e|Do>qxc z@O@CSJM9-Q2Adfd$7KwweTqGkw|T{}g1ZCb`)B;Fk0scRbP{jmX&QRTElru4484)O z=h@V<2MyIUI`JbgnX@8z8Rw0 zWw;vM2hj3(!VQy)CLc{{5Ex$tKMmsJAPUxw;%f!16lK+LN1mBpm?(6Y?$JIUvU)#8 zX;jI5B^EHwn+{1A^{f;FTB;Q@c)=+ePoJoVed5;OcIR2us!E2M(y&P?yy!gLYSqTI zpxkfo>6HhSinT!@`@}3;ML+XJYW6;k6})~W+sJ`XKPR^!?jI9g>hIX>zP2Pli zaIq*lg|yDwdHH#jvn^9m2n-bL(lFB$8}Pq!!fg?!6%)GY(B+#TjbdymY)eh(@+Ah06AcMh zQXx?vRLy_BuS?2*3(}XjS($;Ri8xGhN(bHGch~N{+R~Quxf~2F05-s}mb_&>9O$y5 z&JQ`Z2_f&ot-4i%E5~g93BD}H1XY|-KS!h!WWP(jfw*53vinh7m>MU2`FyMu?|}@| z1c)~`T-T{)Z&vX|8up?6Q1~10PI-zMx zqeSP)hD}8GnMr9fnIxPbr?4|>Q)3ReAN_)?jeoeLUPyV4tA_S?T`i5ONNRbh&f6TU zbAEv=C+;QMdn<1(c4%3>JdZ}^<%(`Z+m^^~uzYM37z-cUZZX{~X3ddwXKv%@p0`$! z0GIMAXUNZ3Nn2_(B@;q6E@?|^2-?pm-12>q_leGmy$`KHN0DgA|z_T#WM zxLUee0zbd4%mcnR;KWbmyV8fJ683!^rmz)F2LB%yO<@#q2WB3(ekrW1EN!s*Mw4RH$wE{6QvhM1^L)3>~p*xAxxrLu~d6;_~2NI{7^PPK!iqQwPq)K zAl2Dk5I*Xax`+BvwEVN11+gYdvk7kix z$-No=FT_Jc3n#t23S}c{=TAr=czZXITa+lg9^ViR7(oh(!<7{mr`95kseQKOXw$@wsMD6tN!5oSu5jD_&;t29!@VQ6v{ZERG;C9Lqas0}M3O@^Q64PKjk z{?>rKR>YY>g5>OIUyuD>^*j(R45J*nSY4BG{M$_4Id^}jLUiQGuEaM}w*Ue_{lCAa zW5ixRj!9Tpn8J^L%i5=!19lb15=FQsz0wh8&{hVGv{bph9xg7N4%*02#gA>@%J|Al zaQ{=Z*@!ki&Yz1zD`!Gr^Zlbq)qm-1Fv{DIm>mO9LIRyWsGHnGk?9|3&)CwbX>kmd zrPz8ocV=85GE;wi2BKT3=YE152I!|=7yQCy2%Jc@ zHij4D!ME<#NFliw&&)QS#dg)MKH$3vp zFEh))Vr!=->z<@WJOr5&sFH`%(oo?|j}L*dU*CDs6C%m-=rj+h(Dh*?`EHl>O|^_# z+?JON4*llMlLu}#Hs~V^)?m76+vAcE%#R{&st;&mjKNQSF;$}RiXwho7Q}q^!+(bv`N@(cnl@WO1x*OR(yrj7#>ZJr82aefx0iBcyGkCv_xN0xiQu8yg zQN%ge{cG1A=-8LV=xH8)k+jV&4K44~t`6Em9J}T0+=Z}>( z{7hEeV>vQ_`y{o^)S8OKFnF=#J>pYj-%kQa*^CeV&r zuXMx33qzN{fIB5Y?^62W*@fdMBpb*PE*qJ->wL$!XC`9UJ>$>l)0zyT>6$ENK5a3P zstDVA>fvrtEkMP}1Y^@0HXwn4e{)T$Mw*Wce6e261$?txKLt(#0pmvB^$qgEmmu?- z8?SEKzWkb#yqCwPz^XJClG4(lt%fzgRD0E7ZCaO~BcpDP7=nfnbGBSE=7(_D8_Ikl zJfZAN%}+x@p|TxDLuJ(dWC;@sfy>}?(mqOMaQ0FzC;~DmbLoxgg3aoJNlFWWp;Y-s zc%G;~tIuNwOqys9a0U|TeDzlM&Ke*f(VZ>Pk4!`LjNnaMH~LY)VqwN7CMZH%%{cfJ z4Rxn7n!`d?bA`aZ4!J{(-ijWsYd$CO6p?CF<{&p;5JI`z&NZ$xRFt9pjZbgLHo?|7 z#bysfd%^zIKvTGm!scuH)OS>C`*Xw-s&)e?=5PdS>$bzNk~^9g?*0tfNo0)o7rQ_k zLTHkM`9(sKZLU)+l7nO$OXp663zRBTtnDSx0_&(9SH~>ccQm8awreAn{SUID!7;mX zyV#B?v4v`?jM2JoVI?Stuk8D3jyDUkw{%ij6o>_%Nbuf!l6x-F{@E=$==Pf(Z}%s( z%3S_UOOh(C08V2gX*eC)qDf&ukk9nC9rD~v;OG?r`^T*iDnl(C0j7y%ynzTX@B!v zbr#=|sx-=|61dQmrsmPT-?%{%o00F_d^tjO7~UCyQBv)3IQcZ!j98;{hG9_b3wl06 zcGo^?!ZB6oP$=cPUdLtwen`4-=RhBiQY5f@VLm|7(z}@zS+e~OGeKL)tJi00rdYZ4 zA23^Hkh8T%x#wMC%|F|sm0nE)kPZYfxN@UalRGLUd+$0L34D^8U(|0<<$k~Bd3^V zCHwI%#tbpj+zEA`)PraSBMxsa$a{>Z@48dC{7^4;hi3ewVk3f!+}Pp)hg9%^c={^M zk_C!|!foO>@1PlEV&w`U1uO30JTXu$fx!JHnJFBu(fmp^AWR*0K~PLaqE(~xB!WPB z(7|ISK9_$J17>(+<7~S96eQ#4C`38aY~>0agEuYTt5{cq+9mb{3G**i8<$tIR?M$lR#7L!>Jk#zukuAl@-;jDo^;S5DN`Lnhdh-l%A%d8+Z}N0jAFpjfU?;rkyj!p4 z4x}q9?&}ItE@BFEJBQR@jQ2($_g}+#F*N8~Q$`rVJ*Pl&h6u>iW|+y}vDfCV`JWC| zy*dc(tIr#18rx_`k(x*c>q|{g_p${8D}akg_J@LWj_vKOp-!y*P?G>e=y?<+FA+h3 z!@$}hM#%$FcaEL!;Dsnvh8hj&nB=Hjj2$Lky1wn%VJF4-A}(6PG1};l+LzA6zOohx z-(hHDhaj>mZVWUXG&xZwOO?^MHesy5l+&;b!)66ms1U$}h84*OS8q+Ql7uqtn(eu~ z3i_K)c@k!7P3PW;72dIz2PdU5tQ`U%&XFE=pNw^K_GqxujG&3FfW2lzDw&Ts!H|s! z(a?6~Z+vu|>u6yPb{xOcIfT^zVqi&dqct_BJO}q9X@vR?!pMbp!;Vv3>{X)KgsFyq z1)Zi&B z>3>W0!k(kNf#;RaV3`D#?GugPMG@0YNw43oTY_sLI0VnnW8M3=GhMdmuB@2NLdo)A zZCI%UEZELh6xq%(H!`+u`AQr=;zw}(1`lnI1QmTVgzbY4i2=Ddy}qo>4!}9v zyy!@(N?5T;Jaf$#-GPqKFFW*CRwX}4Jc<~K*$T`J;xv$n5j@*_`81hzn5^AoVxZ8l1X{B zyAuC{6NvkxJD=2${OJa?bilh$>%Vc6iuO~fvjzvG2A*)k%#`8oMl4NFKk9<-53QSVxL;3o7e=v+}6r9Z5-L*sDC3BM07fIPXfXzWr1iFSLTdo4e& zu0#pZFIQTW68WolGNM~n3-YoDe(+9N9Wr6|BLv90AvaD5j!Ur6qBooJ>1QGu;O@MD zMJSYtp;_*bKYqLv8{2+@i3UI*IPSToDjx0Q5I20`rkmxBLxymA?oXH;h4M9Sl6Kmk zs|6jj1Eao4CvkR*HiF*)6(ZPNr<7)KqLk0EGjs+TXOC9eVb^yqT^%o-q;@ABxKB!H zpMcJ3Z$?Vl*yn7YE!Oi^QnulYL5+-}%-*K2uVI6AeC{@cK^~Z>5Hu|Dt}hnwn?)z- zVTjDncTgHhhcMe7sX;Ie)By}ex4$EsGY#<}bcyfi(y4J(ZQman80cBIh3K}T20 zyS`96>lsp==T{5`wZ*D=tPR7p1B$R*?<>OuGPtH(J#cU$A#gwvSGB#cTyvK%m+Ayx zLeN~YEnKByH@M=FTCYVJFZJbx0q+FpL-3ykb8cml$Kd6JXv5)v;c_AYKV~P=knAZg zi$Ud72BLOSMf3Dze0ynXEedhbmT_Jn8<0SkCdp}NqW_Lxs)WQXJvXeeGp=;Am-EIv z^lLaj=SGd!J7I%XY>+YU3@{oxS>t3@swu#IT>%cYQ*MtcXAn%lNz}PD>L}TMrorj- z+EzlcQduKA0MPesM%A}aBNF#EpPE5;mxb;twURMCqMx@MJ|Z=oPbmeAAz+X;-1-oNxd zk3Iz1lwHK#%>=<995P3)bmv3Xx=fdN{Nn$LK`IrX9I@-0iBm1VBG$dyst{CoRhFoG z=>4!j|Gsy{)9esL0XH`O|5Q|M^!cmI z@Hd-~Mz=^j@NF!y9)+6>T%opRDAM}UWzE00Yzacou><64=IwOqp3Y72++$T^ znn?LUGgcK27UF#h%r56TT|tUZl~UhN^yoelk<_D2upY-xZQ#iJ`ic}J`B)7GMKQo1nPvNAG%Nq9qaA7&%?)DB;kfHUST zcAY>JVwWe81kzmAW2s))R~x%1*e{bKltL&f2*jrM32NYl+M~jo3G<(f)R=hCrf`pT6FMFxcxl1~Igs48S&hK080I4E0o8ZaTPp zeZEp-*gnsQD*`0o(3I)+1_r56hy8A_Lk!QyG?2d^p9_vpI2|H7a)ue})PV=fJ|F9j zWc;aa3!uwRS)11`)LyiS`7!BWSy+9XHZ%*L`39^t7`w`CH^DgXsipLyAthqJn?Aad zj6EHhMnJGtOq}MVwV#~n50Zn7g=${FX}`yCJx+ZDzT0)vU3pVCE+SHlCUAsHX9Ds( zvvov;keJwj=nsp%=^Pldf1z4@yKJoB<$qVli+eeOui^+0mCMZd8$ffJ5gnkcC;fnw zwX~Hbv@o6PoDfS(mjGYQ$2(oZbWH3PpthEm$j^^#tjLG?%K)RPHSPU+wR`u|HLE-r z%CeJ+mv6l*rtBSabOzyuAIL`V;>4jT1^vLHpdI}1?^S0WB8-b{d}JoCF=IzQyQo~D zEfo36W+5bOH?HGoonwFhu3vccq`bnifWttd*uns2vMZNNrcY?$QeUWvv0(P7u-U82 zoGO~6fhev+Z2yEZI2^8Jk6;0tjVE$oRl*rvIX$)>524}5G4z7=i_l!Bi$})-ndgyK z4pz-YQ#&7=9`?B*-(|AOuEz+DeFE>8&-tz*tW-BSsiwr%bX~u=gfMNYFjq|oPm{*3 zvUNpZxENIFcg}c#MC(@>Zxl`{yx;D+T5r{GESRqx45zM8Aj&Fa11^Gu83Zt|<#$8u z{|D{EDoNpryR1b*_#kQss$W8N_n=0@6HeKvY zH@iBXJc;SN9A52>iPAow4e0y00JCq1`zrzWt;on413y4!D(MQ=DA;}%v2HO4JxbpE z9|+fsW@=mQL_BlOlguwD2F@xFQDF1t)ELKJta{^2|5dhji8 zvqEC8|1snCE6h|SsGu^{HGGeCDc#9eD08lZ{Cdl9jyC;XIp167WNoFe1N2w&04$W$ zvwf$68BLXvya>nR|Lf-;0qNm*F}_!atgNnSV1lKpIo*bE1VtS*pgH{1qG;D43Ci6~ zUOb<7_!Hq-2~({C!#X-4b{tP_#@QGpr?vy3breDiP}H?U<9>o3`sZgT?pi(5Nbg=C zNN(MH^EVH|h9sret5M9ROxC5gyYNZ3wN@9a)BWe>3E=vIQyv;?9u9}nQLFR2LgPAr znTNQU@V2Dmv>QO~zuH8Ka3@M$ZnAUWHQW^A?gk(~{6uq|8}-RlOMC}i9kG6O)A*IC zYIf`)0P+rdM)zR=Q1TE6yT5w^>SmUD+fOfr~*U9BO?8cy0u}pI2&e3#xf(FT=OE z{^+IcEA`hG&PlX0@6eESu>G|*zPso@XK@;dO66mW?;DqR zjdQkjl^?HRe9ur3EJA&b>zuWol}*c;o; zU2yWjHpSW(u3_2hc3+#5hPN|NB_;4v`W8-9suaD9JI(w$TRjSy?6tTO>jp$V&QF+4 znvA%eQs1*ziqCT%j>NWqTy4G}KVOLI(?33$nW>xtcK!*Jzf~~UvCUfb@wsYc?;p3= z?8Pc>e*Ddqs|xgF6e7~Tv0GU@)bR_HHX6Fbq${N9OlA_fDwD>5V%m@$Rm^rYxX~fx zJ+74<8g~I~07&Y(Do0!0$%z{3wUit-yW+|XK$M;WOUM$N3uKWt6qCwflfY5RjqgdL z63tAw+~?eQvQjO?(l^vp+ScY1d_p7c~<4S<6Y|G^z5aPaJ2BCDAHC}3_|tGsB( z@W%?7aBc+-o-ki3(K+V-R%yvlL$0d;o?L|US+HeA9$JuKB%>7~);EkN;C&Xit*M{V zgzlwt{Vf(5fVwje+qy%+nh!Y=@{6bdD%pyA&grt(K@qY1#vO*z0}iV$RvorFTLvEs zQzXJ)79Wb74HDwCKHnG?LTU3=ZV6=c_Vy!PB52%8DAfC_XtuCo!%ZfuVBgvx+xO76 zYE6kk1uvBUNASmTSfQ;HLlmK(<7%F0`Hrkx$#S0GzvDizfCFgdh>v34bdwLryHU)E zj4jPoo1{dPR)45zGi+E_lXi-rxYu2FA-iu)w-sqnzsT5n119VlN}~vWfeSM$upHXq zyB6SpXMY_0%s70=bSkX#1Ru5nVxD$PF%;AnI~pnxUvyc(gU!ec&lvqx#NEs!f2o1~ zsNi7t1B|to9+Oh8kZyuJ#$N$tKWF{k8C7I4H+m-8l`jO}V#Si@|KzpcgtcGfybdVy zb>ROeq~kshCVTEE)0A!Oe|UszZ!ja7Ve?ME9x(3r?{7xgu^kR~DVX=85i3IkO7 z(#m&mBLp;+RXDoA%0MEkKgc>|+xPj+bD8Op8tU#+F*&b{O!9J=!;H2T5FotePq?-^ zMObX-$kA8+-foWwNJp`ET6CM-O>xoj4WW7T-;~%?jSR;9^lUHGv%dd}*!#mMWm-G=XUeQMuH{U;%zsPTphNS$E;4yzlLUj zq1AMd&Vko{N4f_FO#D-_a_g&14#42J-M@)h%W)JkuXlg^`@Q@rZ7GxV=?ZT7P0;wg z3&RP=&o5OQUrV+)OLPT^y$(u&2Z0kTTr*%O1ycDaAljo1LMUsj;f#S1iIlIR&11fG zr0f%Hz>$wSd;+dKP7J2fRbRX_bKyJoT|e}dZTuaHrJm_Dc8n%F4Y~)Tg4#i6OM}Lx ziNL)}@miVb`)&A&4Z7GOS32h4+G!4yooUfc} zpAuUlA#@)0$b(Jo6hMqVHuhM0?~B8R5W^@XE**`{cW+nep?IUuD=tsSD%X}7R9S<)6fxs72LMPujC=q0%#@Nc6AGm6`bL{jO3fte zGWkt;hd!5K+TFH*5}E*udILXW68CL-t`neoje9b$s}IY|9~i1SR@2o-gku(#?PX|o ziCu`rnl)8&g!)timj3*K4NZg#rTAV-$+qS!cX$`tozsmDUB3=F0x&OH9$6fEO_jh; zuQctuh_O(nRz*y1oKC1jL9(s@q=ATX#tNRlcOUK;br5@>vPm*xiw4QZVnh4DjoIP* z>V17YwYbQrnBP+4u=wqH-yeapgq^r)w9WNs3rN?NwsNv^6l&1S=QIPCWkZ|WAKqp# z55>Ly5E7W4&1D7rce@9!(tYuQp-%KJSQC!A_!k(07S3}~2J}9+w|#@rZjN;Af;^+* zEpK&LB9IB!Cocox*v8@Cv;A0LYxiu3k?}i{u(7v1(IVqOgk&Kx5>~?# zT7O9pZ4w)?sC{?kXUmy^41D^jFwV~y#Qt8F7Z-0e%26^DWh(-W;Y1^QVMOdM!xfFE zf0m8?->q7M;SM0Ca*8-njWMJ!t`-#YJS6*PI±4OWLsG)6VEj7qjZGQK%X#tmd7B@=HRwF7p9|uX6PiVP&7!6&(1(A35yc z%J)uA2ZuDX=?jBA(Q5H^d9r3@4CcPq$Q2UA_t{nAD}`Q_(oCs(S#2$(bQu`guA!0r zWZ3~lZ>01|k&Rh2)wWnfH0$6xEATI#PbPY2t?;gN`P^Z%E<3}xGc!5T*~q8>wo_s< zu*CUR@HQ+bvj=u#yK233blye&udFtSuav8P=_y)}Wo8<)<$jZlE!$^;xvmA-4hBLAN-wnjuIj2d9Fs9oYB-Z2 zPRYzu-Mw&ce9Ri%XYyxx(Jy~DOfrj+W5YOUxfHy725HV^R>{flZcG1!r<#H$X&#`n z{`E~3yV6Cus$HGy#EAb>^Rs4{M~S5X@ZLyO*-q9$PTNfnNGVc77JH9u$m;SHRN*lL z`RFGORP6^PZb6nD1DlK=H5Q^mJ_z5`qAA78YvGMV(~mR2rU*=Z&nO-6}n6*mrd)w zkKu0;Nke^aUrI1@sp9kNkMB9;{I!}DP=JH%$pzr0RWsu=%K&L3Un;U!&Ge2ZUlNFGGqN3)`jBo8CRv8&5iU52gWa1n|4TpdP}ltMrXHmZeC`0^XY;*D`gK_^ zDbAG@t_5W^i`t45%XL{sArI-^{v1Pzp19*=?BDH#D%Jwo{&}DvP)rN9_;X0s&A*>Y z;mD9o;RfHk98qbNHmulshsUCYj(Gs=MZamE*XBTo4`>gA-ME#lp(wY79^l|ivPpDB z$S20A0dp+L@V*LW{kB!9%8lOvt&Be{27)9s?S5y>a#W4~y5mEqL}xpMZ#A=6p42(;I9`n#HRI27s8s6tVHj!`RGGJ| z2E|c&W6Mk$)M1x=V72On)I}g@0GO$_3N$ky%@a-4Ur?Qdv?I$cX(Au%_m74S-3XcM zE{GrwApX}xQSc!nZ%ARCWg)9%?_2+v&S_(S;Mv2;@h;v4#>*R#b2E8Vd+QW0yeo|G zk_ixuC>@ywme3CHvcu|l{Pm1tlRo8;k&)9j;eYn2w}5`$-1}O0*c64+GK@?hP5Pi~ z77+_meEOC=4sW38fFc?6pil;;b^HPI|KD zGBf@S^b4slK66``wAA~!MBX^0yz^uX5dIxS-y0kr2+ojumM@i8Fq9=$Gd z{di4EYQ(6pJDdiBsCXHW45=aAMS=5Uw9HyhO!xs%X~keb8l)ia0!|7^;!d2bdi4&% zz-|V@?;pxN3(vhr_xOBA2}2g1*sd#cNe1zNRSgLDQZZs?M0`;^MVrINMEVZ3N!8ci z9U#E?T#nT07);uCtq~1@6(F-#pqxsDQ)^B1_19`}yswHxqPR8cILx9)i&|?+{5e${ z3%cwuVk(C)+R&uO&r1pCs)mhK>dN1#Z=5!$SOhH2kWQ1-Y7GmlL_Yc?etCxyvAbTG zAWZ}L2=Jm(d$~w~j4M$SMhp1FQnGagx2ZpdtY6-QMWqck4MkAC7b%x%wH=zKiHEJ*n$!(d z1f`Ov=p5xsb86W~$|u^{$yTLb?wPV75~JR}!ez!cqNL{pRcK@CrNVm(pJUH%bb*12 z`X)^T#7uD=x?_?N;RzC)M8m1v$;Lu1d4lL$=_81j!he4!_VfF?r;V6eP1`ITo&=5E zN~@&=M^4_@VAyM^FR`4Ujp|Ev5w>)0L>^~fLR<%SmuqXq7;uL}-=G}wi2#%^QQXf# z-?mT0xrk>VR`Hq-mUai9;TCQ;C zdM6GyoT5#S@l^1_<625p@Wq_WZ>P!OH{_3WZufQ?C^lJ8yP9vP;6-9&u%j#wHdiD$&LeyQk0i*0M!5YU+4X4%%! zDyTHlB$jH>)83=;_8ApWStObIRAV*)fMc8pIXupejw@B#Kp)@oIY)|Cd)hdYbM_Qi z12HC?uN*#+xP=S6~XA)W9*ht6^8ytaUnjm_Do@%s0Fb7JL^1HBs(N=o?d|ZOU`$F zHYNfm>NraE=N3}b3mnLiqK?GI&?=`qU18;ge++#9NYD`q>9BbfWq5fxKjC znO2$DfnkaOrTQUcr~T&P>Y?+;q-9W~rAKatj!4%nX7+|Pq@9Ky|!s87y9akQwzE0UVM(sUoyDXcE zcb*WsF8MdJj0+Z#z-3LFlLMwOjc*r}odF8(v~jG)?=znBc03=lqyT;n_Wgz3<_H z`olR=-=U~yqpdfrj{qeXcrx-TI%*jV>^+dV(jnj-RsdeWf^KSV@g7&^kZ;PNAkSb% z#+(Yez3%<0&|{p9QA<#$WeI4S+!Phd+>vE&rOk;19T^Z9UeHzkNj7A~9W{Ccg830U zm6w-vf`&HJG{-G{jMmV(nikI{OOkBYFj2_<+`PpL$3)-Rwx^}+gJ0oWFAQYKDh>d7 z+WuF%@!YA_4ql7#BxZdZRByiZ*=;aYnOBbNPP|fuGw?#KiBu|1giHW!QYf7t+(vDv za{RPBVxYWSzVHZSPG7%ZA`TEGwjaj(5_U2WiO!;JlpX;)ox+1Gg9Yy=&xxUoD35Br zBGQjWc?|?iF!i6Y!tp??VqD|D0jn#BQL%@acj;v|9JY9Pq7=UW4_I&P%8qkA95z7F z3-W>K9Blo9^bex+8{6IeNp_4)TfGWX2rtyZlSa2-Si!@{`5~&@InI22LlW@vDNi1Y zwjSGWaEe!p?;%paTS#5i#rx4q$M)^N_$4BejYVqpO_+|qv#pA4wu-4B7tC_aV=h^W z3MQ-eWhWB5mm%@-AJ>nK2FX>{k!_QG`lKzC_0BD{>*~l{`TFzPatyy^;kB<#j&M&4 z3g-aqF4i6%c0&3@u)J}r)7BASfhkm{Kx5XSZEZzkf!rC`k$|TMwBEZK3}Z5m1qR39 z>xr(PW^EeyJ2rCjutk-^Un!oa(ijVX1u6}e0lbAPo`r4n)?#pMQUBBu;Lh<}$b>1R zE)e~dOu^b-U!iFj?UXFc0N1p;(Y>uwjyty|Wt>&0+hZBKvP;CkOpH=DQU5K{KGM~; zl%ARo*)?7O%v@|kX*bTiy*gVP#_+q*woGO7A<8C12~6EtMRZluxHf=af{oCRP*TGTl zW5SCVpWO%=riC!G_0~`X`u$|}fKc*d*E(mt$cB!L)L5xIfj6{_VI>-hh#%mZus@|e z+WYJ0e54-o~J|s64%LgSIqn4&;O?twa2&`!L(FD8jzS2%F7DDx@Qlg(Bv<(e0qX%{` z5-oq^U>e{HlQsVy2P_YRru(5I_ZEDyn^WQ6DJ5)lSNPU#H7AKT4ON#WpUZT|_7h8Q zEyK+)a;bN>aRQAyO$)o|?-3_lSn4!|l6adH;3!az6m%Q#s9+z@xk}?8;yfWST!&1u z0oW5S+>_&vRYGz3XbS99Lp{-xc9XxfB@wbjV)X+#7&97k(qijN9CMdFV9hAMT?1tV zN@rveFnG4ChW{~+M|4+Bi9)5lhIG}mzn;X9m+2WvRdH*Og`gG>+I&xr5o77?xb=ZB zhf1G5=_1spcVOFhm6$Nm)%UWeJvKpP0I*?@=!32tqOdAym3}^Tc;E3LANzt*pp3?6 zir6rFhu(iYkm8`@7e`|Xz{!2V&~BHu0tS+iE}4*$!ePsid`8f`4wDGq;E)IlV*hRb zb%HtyFOBL|*S`s{wp5JQXOK?JjFoKQ+k&UVh^VQ2qA_j*G7!G}a~R7Q-!W=(*f%@mntimF>&Y)9~X+QHKQ4wPEd3i))9TI?V^|!&6OI?TyM-zDE zVeU5KTK$EYTU=KBFLgv5{r}BT+nV9D5Nm*WhV633wj zZMe3EwH=L&DrWFAY@PPmd5^+v+u4g0?V2Z)>EsTG(Fp5}R$=|eTnV@g)Sfsx@94$* zBKR|$o-Jl#F3Z#BeNZ3EeF2B$@nHkxGs)%bZ0tH27iGpXe7Z#;LGnvg|Z7(sX=L81C$KYMEn>@vuB%oVVW2%i4CUs z6r_PSCi9TMhsq4WG%-lc6svS^1U+O1lW)v_x@e#Dx`R*_Zj)i0WFE?A73Lf6!U>gF+OA2;w`cqzZU#?x;dVEGFa3Lg4cd6Ec`R z4Z-Hk+b8#uvZ=-dF5(yo*=E>w%@&P`%OBs|ZiwhDD3fFLJ~JXf*Z`Qi2THbh_hbd>CyFFlFXubdC$yG{HM zkQJ-D&F@rWcS2?jx9Ozq)Ti}w_x8^#V@&|1tu##{b*2>8OC+LYH}ss0q)U?qNKbjg zhNtUS_0i;<@6_LID6*&6%4C~2(bEl=2u<-{)LwwB8wSW8C*u8 z!XO9S`?1i|Z90sQPe#y_fFHdMtu;KXl@D@E)ad)Vn+Ruve6J0$6`}02LbtLTWOVXE{SbTij*TYUT3=*EKG0#mPSvx)mDsiDx-X@ ztm_aFX?{n!)jekMUIb~0=gvM%Yy!+&y8k1~nMgUg+?XkBaC#&IZD%{LEgM)g7==>cfaKKFM^lM2!!rX%YJf$c!WY z;OQ@pQvYFnp3@UCPgpAY5c{&Y=s?_Vx2p7)33Ty+ANUE5qDQ)$VFIlvZx2<{WYmQ&K(Da z02knWAw+Bx$p}7xc z<#Or^ue1VsM+@`BoG?MHC09srma0|ujBFN`9D0iDjF=WzkfP4tcs#V1Yl1e){$rHQnTk8=c2=#s-%6E0W3(~)_dtl zQ3HZ()&(bzo5oP=r{D_J0pzI&4Qos|_q2zO^ZIo-(V%4bYc>me1ds)f^f9SHC8f4E zf;mKYt1+=z$5;pH&?KW$r9E7lbjgx*H<(}W?N7zkNtaUm#pHt^9c#HhQ4o>K4{CuAQ_s|h z2x?t5!qUFtw2GxF4*8oYc-RdhDUp-ZZ2XFRo-%a z)4E3uzl&sPo+X^$`8g$cBMG49GOxvg&F0`DVM((3n2ac3L5su#@80kI6W<*|$w zlOYIrYrJ)!EQD0-(9AF6k&kz_!*b_x4JsZlm&Q$*RD4DUnDJ%SxcTWJctW!)i%9Zc zRAi5bj6W|s0~#1m%P-9#W3K16r18G21dtx}`BL&f&hTbJ9d7z?9hfXoKtQ+M&Pm9P zNIfV*9S>h<^^#buLlyc~TTU1TZJgH?ey`-(WHttrl5>{S>y!8v;X4qh zgXP;$6P5ykVf=^R#0th$Yq@2*qhRL1rqkn;jGi^?1YkT9WD6|o9+Ub&nSV!?#Ec~f ze|@O7tF7xVy>*^{iw`v2U+14LDCm{D9<>O-vNtfz1}QM<9Ghxm`!<-Wa+1jEX%S&` z*ucDKp-1agv}UcxG(0=6ynKUP?i*d#Q5Nx~w3DO$jgi(U&oyd+%X3zzBVJ#4t3Hw3 zqyqDTiz~wSW!UN!S7pg_)p}bFeU>(9Y_l4Cky7>eSx-(iW2pv=t6`Oh*mh{5Bv9pU z3ab~1%p7P8zU2FK9Nv6jb)1x`P1|5 zK^!k{D%Ta0f#VY?Mp(6oAR-JYx?5X4cJXwjNcSO2P^zwh-T^5c(&M@_J_ThXy*Nlq z^^4{{p1~t$7~y*L)%Zu&0wXz9uP`ulfmDWv78;YY(#e+nZ0ZnIp~7UVdc6^X@kxBm z)Lgb29RmySo>Oo4WSL_gPer(yZo{;#0{MTsrLCJM%oN{nsES9)9Gh-jHNe_7AD@H6 zuvs|8cV^sqK1VY$Fw8v!TW}zDiRmxTPBk(wv?l*=ASz*!Di8S|_1H z&%%xHdfL%p2&uQt3f~2QZ#6Dh21j7t2;NUUN7Md;7s>emNUVK2vODn&0s`EJND?ML z>gkz>P4X^fhsSnOx=H$UBMi$eODnbz3SPu2Y+0e+K>x@dEnMVl=tzQ~F&cQ*gqrw* z&449gkFcxM8Q@GQ(2L5AH|?y0Vocz;&6HAckDto>6oQ|!d7D4gHt0T01yfQH*P`{( z;t}Www59PTE`VR{WtX8SN|7=UV=rt|uDJwq)e$;54C`E}4=hlFcooRXcow~q-vXH09QbJmi?C|84s->;h<zaIL2swwx|hnQhh)L%Y_12@ z80a2G^$W^}xK}y(bVon@W>`UEaL4NZmMT0DL*muzEA#JWD3lfSZ)BE2=Wb~DaH6;h z>e4<%wb^B%Y7<~<@4wm<$tnqMZTB`T!DVL9x(};6G#=;>> zLcGEj+s5wpq~=Zb)8~zAlNlK>%`~n&(P0qwT;DZ_^H`zj7J6d+(UkH`o@7M2B3kAr zxn|>vM|0K}t!C-?+h#GSvD9ey0CY6xJtGd2Wapa>BI2?5jEL6*!lxO?yP^TRuMFPg zvm!6~-@={%WZlc5@E(Lr@(3Wh=%!wM2ey}8_4_CSoXu=8|1@? z)5{AXgk-XYpe4-Y?FAi5^Tx4z)6WtEmes|@7E`$fM>7>0gA&uqDS9nCEkCHOwi%RM z1Z!DhtEo$ahFc0m?%lh#vK`zKoT}i9c0${~BD(TLVGAHg8Hf|8F(#>}P;Waf@pOo; z{FV3Rd_W=uZRy1pNaAz%?RKVB4uK%5o>}d}$eln(U#8}V2(Ygd*BtT4eT0GJLbg2k zjoW^to{Ggxdg~ow6Vapb+t6`*LF~tR1xKih5}oy^yz7B+B$;+w1na0jBrX<8`%jpf z+P3SH7Oif6$y$|&D4e!_&Rh5^hq;#aA*&Uj?&KHgT2T-w)JN`#8vy-#uoB@POy*cObx z1xCeX=&*Uh0;|VOa^w2S*t?O3BH$sagF8^--uSklM}khYr@v6y#aT)h{2Y$fj!uua z!6m+&alb=v+7zNM+Rb6Ziq|z+@OSb}$81EfL2;px0Rn_cVW?PMpw9%-V~eOHNY~n? z%GV)oMi(Ij{<4x$Y1RQLr2wJSoqT|EXV0xLg?M5d;r1IA&oIXM8LcA2Rk6B36gWv= zthsH~?k%tkw~SyHgv0353%3JqcuZhCY4$YUZqGwuKhKqdEDhIR_eDkDct@!X(8(*b zLPz+AE1mT~?seb_jBPeFI0xzA3DCw>7d5tebaNEA=p z!I!xM2++>IgVcC&P?uqAA0WgR`UXxNOfh)8i;U}rh$(efR7Ilx+n)udK!dK`pf?&b zCgue|0RKM#z#X!uck)UJvhg$8V$Gep0qt0tFpAM;?OD`u!Qw>w@kor7?opu3*$$(;6R9VBG^>8vxOl=2LPTs{oc;;NY@8|I#ekArvS zz<>Ot;%txm5_4mzeKud0%{`&eE31JG2?_3Ee6{?wxY{m6a3XD0yS{AQ{&)F7nVmw> z1_mEyGJSZ6ep5Z?06<&5yDgiP(L%o;NO|5L=#hMbZr1YK`$u4wF#k=eaFy^M8yGKV zZSg7O0KdAm$FeX}0w?H1>d*LHbmP(A6zNy0j;;P;y~|V-QAwfPHvHkV{5<_y$syD{ zMf*uf$=qpT(L7Up^iqQC18Aq^s8kUJ3G+=F_h_00rbLkv0sRj-U!uNOBn~kzc^)s=H)6fK79nu30lUl~>7SZ71 zs9b!bW&2zX8^7>ip6g^XTZMg~@y1g}RCR~>r$x1S-9rpOlUkiZJDxUYj*q=s)A5$^oBOwE1*R$9)(UV?-*J5 zwV?NH`U(zh#hfc#faY@0D4H#$MA!=rkyo=V^wtA8kPB)-|Ls#|atp*K=h$162C*2Y zVq4^V5!ZSAq0!RKkff=J7GsrW?I4ZD*a{RW1PQ=5oNv*ek*7aqAKwCQN2IH)Pb=QL z)h!%De>!bk9O(_rwQW~n){Qf7+l-iQ4QbivcehPH5FdCG8JvGJ}{#GazAZBRus$_JF}A?)=uE8_6V{{2cd&}QGyiZR9AIjf>I+Ug6Y=r zw6te=GNy)0rJ~^vRNQt|y2COth(;s9qUUghsX;loOGQ&(?B4S!lLJKYfk&w~h}bzsm#n`N znqXtX(3u$nu_N!I@1pZ~-f)^}5_eNx0$Jrgh|H_KexvD&3Z&gg&%il?*jJ_E8S8>l z&~>xcO;UP$4hW_hXE`Kjr5q&|mIc_e0rVdJ*QD9oG2g!ZPdML0^#2!d2In-<>VI5K z%dtVB$^WQaffU#spLJV=76zz?==RRIOYBDXIX>I4d%_~RMtX(NG1;yH8d8e1C)5dV zNj`11!4NNc-!J3rpw*FH+5jr#F|@Xf%U;sPVmYwT_VjPVU$ybTJ~>- zQZ^N~Jjv)BV}`N&c!BKVAQUU~-8&5L8zH|F-nL~6#(e6TyWOiu=F57a`3*1pw1AEJ zEpE>*XClD-q7d3@#k?TGG8K^Oj#yb?LbIOXBx3OHh%P&HOZIOo)bFD=FLzuc1d2LfyAT4UKX-bWn3*R%xy|>1AHYO>xu?Wjhd-W6r zpT4!G)AktCSSYEX6PVCK%(P58ZG4TmD=Dd#$&LSIb`{SG9QO18cQM@s(9}lO;IwDLfV50P6&iS28#mU}5}k%=`)rTH-$D8volL>s?&@ zbS+WN11_?sb+c-XazSI9g?97gjt>&c^sal;D7;Z%ls}rTt!1lU%fvFbn-82|bv?+h z<|?;%`$L~Vd37`a9J(Tf1aL6^r`L%1451w8zI8;+;Xyhp9xk2Tix6RW-Q9{zCsmVR z+1)Rg4FlS<14-5Tkux4~cH6S6{w`?caGPw{l7vJ+r!t7r==tv=143MNxCD;Z-4xaBw9;`6&Ro&p53?i0jV|q*x z69~ltrske{ie^+s-dXmu)+_vvMT_B(a7R)fEtiXPR@Cwrc9EJ+FPIWXba6^b5`3d8 zMl0kMBME_6=0-UGQ^a!Fe}t%408)xaWGKUk>Kkq&5($1Pv$YJFsJCoz)GN|$N<5&U zMT5xM;)s5}0^E)-a<1gLnQL-IGk(XM0RXW3x3Yrs_}lZaF(M1fqj?3_5C&7_bsdz* zFHAaQpYF8nZpnX=>{7e5>;sfV25M-MOZW?EHSy&Y2%&8{|I;3{FpP$W27HpG6c(^E zZe}1UL5M5KJ>ca>EW2egtmk+f0@0#N$)Nh)*@B1)n%6X&j>K*0Qm3}$ z&A8)-NSR19gN`TJ>nbW891n2XpQP@($G~93in66vHkgwX)uQ=jkax%>l7Qm<&GpSZ zM}JW|sQ4n&YwF4ST4Az904p@+J(+ar+ult_ye3*w`VtR(VJXabXsGA(mV&AG)h_s< zHzNH+^BoQ_EvV~?oltN`8VXO6-npBnb!wJS_Pu}MZwR-)AeCk?^qm+}2HE3ToYHWi zoI!!??DaJQ20WN;Iw>v0!B42_x6;L6E*Ygj0hmv(fVLXM8Wq>R9Dd(o%SK~rc*JoSHl-4bQG- zFJ#Z`TNsEyP7tUG3mLU-bpC^5L8Q-Zvq{zzP!Lz(gDog?>KR^DpTjd!eQ$2Z)ra@* zMIyC;K1;X-M#EJ(2>hg+Ll_#?eI5uRHks9aAk1(}mpLvLUUkJ{cv3@VdV0`brTxM= z(?<-&bkRN;v{I)#U5hTL7*4riFUphd_02nt@c?CaUk{Tr*$D;cNjOBN(Yl!|jTG16 zmIai-uI274Iq70?PI?oPmte0NPTwbJtP&vQ*!C&ofO}lsbZJv5LifaW_C9EzR89CPk>9qjJ96@2SdDIM*GgdD8RS)kF0Dfec8=|B#eR!^3Ey2NQ%57F z_X=dw9Y(terX=;DDuz2N7hvZW-o^N^!t~)D>*4OEuV`RlX620H@|)IkHh=9f9bZYx zUZ3aXZ|iMDU!ieF>6ndqm1Ej}hMN+MafwuJMKO43P-trS4a1$U06NG1;}rw{hd8u! z5~d*rl$*iAWQfh*Dj;#;4(QFPp`7FSdriEUi&^JHXOuug$okUgcEoaKIWc91m|Mth z^iV$Au|_oOO;M+TT{}EDh*L(l9ri?m`~-(Km3Lyt@X-HF_G4(|L>ThtaToI2oC+|x z{5rDszxwG}BPtA@tR`@fn}BhrNOK;z*BjBw6k-!M1a&}Pc&P<)$7W$@BfoR8a1lF# ziwJ+4OLjI_v7;Zfbw$_i^|R-oscI>Daj(0K<7YO6NXD}TEQIos!Va#cYnaf$r-u2^@g~`RbYOxKm;dF=7MHvBZ`nz>aMS;3 z%=fD4dSZTwh8bi=WvXU7k2G#ElSf=~SfHT0(Tf9!?|TYDZ_L_#5%+u0R~%G9xXHyP zn9(6+?42hRqV7m0dz8#)(=*e!>eMhK)+nkJo!0nG-dwI8Hij>O(O=)(nAyIroYQ6M z_XvU7<1UR)e)mhN>!ItQuyC8MPV0+KL!YA|AWoI0!t=LME}RXb07$ zA`eCfCuX9j?_fWDxe&(}Tugd}HPOp+VPVFZyl!Fk32QXqn=x;On$ok7i#MsUME`My zd&)DyURLVF8p-fA;()svMD_L9N37t})AqF_Z_7s&<8_7GsOFPcqiVPgch7^hg3ra$ z@2!Zgk^NwvRpkY>&C$UV(G|2O%gJ# zWNvD8S@9DvWx7?m$k%LORXZEXF*_y5GW{S`%QMgcG#HX#mnfq)>UY$qtIOACYNIAx za4_`*ts!QZG4!NvdbH$jyhj9RF3x;&pZaK#K>7W(8A^1we^G;A+g}Az$D>*ryxS8) z^m4vt7gj=_H6v~JO|eBAUo*7zV`i30{>Z|gzjV$!j*KE=FlJfNm*5%e68CtIRmVk~ zj52Tt?_X&uRs9^2Ivr8u-h?p2I{i+BypxDW8wTGc@MDuMYNJfVZv%hCjcpQDC4egw zG4Dt2vcxhR&^Cpk;3qU5O7hs2Fmvp2ktV06k_5?fCM8J@Sz%wf=*b3rrfj{` zNXKYBq}ARUGMP#ZFf0i-cz&!t`Q0`Sb!fe!2NK@Q%4W|oR}joTPys38^)+qTs_UjHBjRI20{sc#(T z6CgR|8RKv*4yBCTrbAPb9W-9TugBB}m zXmY?57milnyC4^+x5$sw(6aTQE$wx8rc$Q!5OD(0&JT&Z(e388plPNf)KeR@sPhC1nn%RmGIE7r zUk)+Mp<^TPo=CwMW$LZgT}U%kNsJ6`RTiGo1}V0DxCFfhB^JBfyP2`+;ce;}@$ZaY zxF6Hq4>b8`!l8E4a^7wfAny5oYcdOu%+J7j}~NjVH2iiCR+| zVaQZLR`PA3>$-ln)0RD$qt{#K37JAUdFgW4Zzq7a{~i$JYOg%D0ibwvqaO#}{uF3r z)gJF6Dy4m814#?nB^c)cAP#`xX}B|@DQ}!N+V9(60S8%SwLQ1T`ZB9*?fI%MB`jTg zSgJN4*;p{q<-gfVr|Q)#=StI|w#>VHnTJ-~tuks838gLv#lT#*N-M^W!KI_Qs5YYX1(|v@ z`vF$U&0c>K0FB3(JSat#Oi zOnYi%^1^KE)oRKI7CjNtu`efK#DAnqBe)$9Mvmcph~ih3l$k8=(*>(;zfELo!ly>- zw^Z>>;umN$w&)4JEd*{Nr=W}FqU97PP}@#GyR7u*-)PzXw9^(9z{F5#LP0@veK}NC zx3f24{R-j+neSbfDhJ94xdvGX>M|I6{rRUs2Q9xd0lm+h{V_M!49XMYPEK?g%0cM* zpK&6qU`kRiq=JAh9smqtt3x;Q=36 z?1Oiy6!F$h6)AB4yPeG_D~5zV{SE(#R#VKGD+b6r(BeZyj_VNJI_X=TMNc&{9JCk- zG2D{zoV?WO1ZDg}Hk0~m^i|h8ulrQ{rvgTWnIYWPYEz*%nM{VT%By`mPx9{^HJ>Db zUdu?s6&fD(t6euK+7JN^gPZWe@@rWP0d)weta7M5Do%s#>6SP+B9EFxsnn|;-Q&qw zYAGpBF;&3{r^bNpb#0jjP+GhcV^rfas=Fr=Pyp=G@eN5`LM9WSeUDZX16{BvBmQ>W zs#ttkzV_ag>VYo#s8My#-07v7z}JX+s!mb`U5G0xFU3s<9-TbLjl&?_1k<(}W}UED zrCE-F*IszvYKF`d?Rv-CYUr`a#Jz&i9daO{70sma-na9luA0M47+;p~G26Z9lAWJ< zE!#TmI5!032WzJPWT|YK5D`~WBU0aD)`lc3FSu<7S;%9YDneVhXZpvH*q*Xnv|3-4 zwEY&S0xLF;Ymuue$OmA}ahyTql1eS!l9F*OOprykgu47=6yT%Zc6brBJ6bVMune&{ z%Uj%iqgP$m$O_#gu+CY}^d^nm>Q{H%`)IcSzx8X30&x&pfYzBl*9E_Eh1_z=&zR8s zE5rVj4f33(No5aC49c7Pm$nXeP@a27*^drU!3bPI`V@wTs~JWF%{HX@}*o!hz%$ML(<(ldustz^zP|mtET&u z1}K=Vbcge_qrRjNAl~6$QlM7mN0K)cil>B@*}@GI&U+EYRo=)z4PRw|cCDGBkCp>3 z^vH~d$cd^gsF-ViLvG_fstyI*(-+nDqN=B!v+n_8S;!D|frTgf#{uDh7dkw`AqPG0 zz1VwB0JDym_6qy+^m)zM+VM5a6$M3=16W9Ov)lj9y{FK;MaJweMhTdooETU@Cncf? zpJ4+CtOGbjG>SUI-SBKv6 z!2x8pt12VeRpqW1G9(!8Kw>t>8x&0WCXUbqm8Y+vAfcj9b2CCmgUhsiIzCx$>~NX{ z(H2;wlSaP_7XS#k+LKtE<7rl-hLMtS+wc3jd5)$xv{?YEU><}&K9G%brzOYAULql5 zwfzpT{$$!*%457YHKO(QAV!=uV>W)2d9>yl-J=L|S>g1U03)r_>GO8S(@JBNP6heK zO+0Hh;w-sz1p}g%z8{Z-&`$PCEOtBFa}EPARjRD8G;K43T0hZUO^s}9Y1`+;(8Fvt zJX$<=zsPct2gDb^bZgQiUyaA+Yn83IouS4e8C<=6vO-?DDZtUa;d%9%V^+MN&$SH+ zR-x-^o4GFEXQns-vjP8?kuDCo?trzcz2qTz9xfu{Ze_}W#di_WsK${*m1FtH*@b?d z$-42P2BP7?pf(4tz~v2KlmO$158^O{F2&_kYTsx*^RSrRp*Y`6wq-8; zGSOhOq-5B}x;usHS4`+PqtY8aek>8AB`@zWJLv1PQj)(As5Mm;5loZvdOlG0V_t zl6N%fzs-?moP%e1KdHhAs1_#X1&w};Fdb|}6NCrihW#6AQHDy(hKFpE!hd>jn%srj zy>6r5fU*o|2E8^Kjq`Sfay#mVmQw4?zF5)SlS3f_R_tcC;&-ofg5v;XGuqWH9G*pH zVOMHbp&aQpB60-CH78Onk2$R~NNiV&l031FXp70)R4F2GUWI6LdHx=Z8U)4@zrMKA zB^2mh_dmvxZMFDvVuXA8_{3QGD8}daB>`p9jAtfRSW%dCRuhw5@VL18F>x%k!W44f z2N?RcxLUqk@FDPMezB#k4&rQPU|?zM8FtUS-Dp$cgWKQIkRqYApanhT1yGzEn^+Abcuy0TJjLVoP%p0+GlBKfR2Hg z5!`2)b~(XcKJ=wKztpW+p*4NJMWa*j2=G0pjK=K^XlM;EP;~J<&p= zUw#zj8e>@BkbiSzkhb(NXCkxHRsUp3sSgz8{H#9#((dg(qR&q=9Z-pc}#Zuhw+`QV(#)u1In zGt6tBI`^$%`=1*UnwsM&@MXM#yGR420OfbV&7_q32-?@Fp3*cEdZe~kW>v1pJ24x_ z^X}&hWYfCdggYeB+Y7MDjU3enYbMv+wYSACEg(_N8s54db${(hi<1T

!D0O7ziPvO_Yw(xG{g<7PlvPf7XY4C>Bs-GTyG!|+tw57)Fj{s}^jFSJ7~ ztlK+iCVc73IxfpmTZ-4-J;SS-1Vx>ZvX2%;f&`@k@>us9Qfx8&y=-P~CQiCx=v!_> zxH8V>!>q}fS?L?{C?*b*)KjFYDCvJ>rxvElToh^>9IMcNg@-*}FwlbUS6qt1!HvRB zfOeyixW9x$G^-8}$s=NcvV2IOHQv1k$@D>)^MR@G@1l*_gGM%N-5t5)RU`V1&l3rS z@WTR!gy=Jm7!V(5z@eWIT)KXm?$Kb=?EzzNI!w!WB+L_zH&TOyre~tu9mm$ZWtw$t z%Xt(tM;sK7R9gi+C^#Rt4@P5jalkGX`O?^odf$<-MQ+Yja8g6(+V7&l;j{*Fa~Hv1Ladg zhd}^=wa?nsk5;@bUk*h3vOL$Os}EhTk=hu+%rn;$GwiDq>lniaX-~qmbVpZ8h2NnL zQNQn~JMk>=rr3nFu zJRSurX*j237+Y8(AA^d1Xu~2QB*Oo)zD%L@5OB zl^}^M)J3Tk#C&;}p_?Le*QfyJE{0OPiwp`x6#peCJiglr!Hak<8$xg#$M29bv^fQu3JPnlm{n=r{D<@9mctq zb@8S0s}EzCVh0WrQYi%U#BI#f06NKYXLr&-8Q7 zt;thF_TE21p8_ruGDokY9%>vLZ%7H}1BNz_+(%Vf5d_i?zlVMhyt3(Nt&ACjLi>j?0(zh_z^kRl^9vibjI+f`6>VRKuTLnbiL;J&btx#Q(P-CLr%smqzm>&#JQz_@ zm!GN&{74yl5#!w=Em3UX7jxpN^csfKR~216hyJRk>ZEX4AP;>hymEQsUBII$OpE%5 z>G2PS1>V?wDEm+yz6=X-LbR>x6*}~gG}>KSqMtY2EJ|9n|apX zBY;Z&^uHda2A1-5cv%*6yeHwIf4jN5VKTQ#L&HX_Mwd!?uXV74Lw*b(^uev?x$nOO zynFKi<8LM(i8^p05@KZ*QA#m87^zTEg%U_GTu+`042Xut*kq0)^HJx@p|e)tk2 z_&H{`PtZYPJUA|PNjw&0j#x&4*8=U_r3>+Oimoq-jr^Ql_*|D{)fwpnHyot@)`0=T zAl{lHcE&lkAVUgA92))2_}r?Nh4@muNR8eN;v5++F+W?x>+UD4o_*jLT(na(F{h{|_srg${rJ^~i5K008vqw_BA8eV_?C}?t%vy7wADYU zP04{}5E&e2zPVL#jTJ?d*J)+Ijz3s#n};&q>o8hKGZll^T|)fHJlotX#QH{j4DyUN zr-ukhLECF7)p(qSJU%|a!Wg3Wm>X^Qpd|T`A)7#w*{mluesiwk3vdopZVHieL$vVlJ*0#`Hlb- z5ZKgO2VjpXJ9cy%0XyoY!M@+9H87d9rJS6P2$20f!z`00R8Gh`2S%UWI*t6-pdXkD zI?JGBkDqv%Tdsa4z~l(_v_zQZUq-2b-+a+~Zvb+US0nwslt-0jS!nNR{VEk3VK&_! zPfM`{1(xbe#A(HS=Lq9l+hEzA&Zs++sJfcCa%s2fGZ44jY2rvbPR{}CMKa`<8w$DN zZO0IkzQP)Dz;8i4O_5KiUd?|COhe8#B7k&!B5X+kVINbp&cj`B5;b81jZ{W_zzUWI zi}4^YsE|(~I*Fh;l#F<}LFGc-EpMCFv7=Ae2I#n7BXz6!!VT!jQ3HSYwSbxtDlBR1^_ zb7_ER|DXG-5f_JcdrYdRT9=l%D_wbIDGORrvXcqAg{$V;1kfDU`^tcNz^ZcBAUz|_ z(XCaFmT!bVU#@+vk?&^M@4HX7!ykX3DLXjP7YZ)k4qj@bKBU<_6)y6U`{8f_(E)kJ zLo`zE96@`p5S;$6czR7H(tR*1`c`Lg!cAmrKfUZ#iw*y{B$x=+44EapF~f90Mb+!4 zfn;54bEqog?O`w{0m?yM!qKWLCeYT~jp2qP`lKTjdhJv3;v(>`imISj1#3p>Q^Gto z!dzi0_6vN)UWY!BBZPlj-;Z3QI_ncB^z<;BjU6A^8oejl9diA?uiIa80DB2hW zH+&zVAwCcXw3}%mp z`meFfujJ}&s4?_s@lY~d30z;gKo7O3>7-6-Lq3rh-#jV+cr9+6aV9_z6`iY7EW$8Y zU|7EC6qUjs2&~nE+jG`_E)PUbwh@O@Inp|fsYXxnFI>=6R)$oz1 zzLZB(nYBqj7FA{wNjTqh~eKh|G<=sGG)yx22SOkBj8 zX&v%SREbE8I;fnwR--o;h1PZGLZt-Owh#9XHVtf}Btzf0Pu9Y@IMr02j%nEblRPs% zbF@ZUe>$iTd*I(+xRTa(%R3*_1-~?S7(eH?qM0@B={U$qVZzH7oos}Y+7}COyhN_9 zFboKlO-Q=L14v#yxQU<%Sbmbu9i`(JP%nz26D&DutK}hd!V29CVG|v>WUsZ3F0X~W zWc{`3Cvw;BWe*7CGEyR_x0;PHsl5ti(o?pjMom*6wlQ2D6tHlc`(=}D(9*EP9B~K# zL1D24Ewoi+h0U(^7buy&YeLX>FGr>01keKaNg|Hd7V z?Xu{XtL1pDZlQ4@8DjkYL7Uj-G|!GZm8}ki*E8yDzjS;{K)w>#HY0#^gYp@aC$8>_ zSF6yvdgj7dlzEwLHm*;5wem2tWuXDkrFNeQm9R72Y#!4UF6kd}<_*?{{X^Pz2F%xQ zbg^g3A$rzcnjZRCYm{MEnc*o=D(esCrmot}plpME*?|1=86D%(_<7cb-Zh#XhkEzL zSxXgPC|0mh)gyiEQpN|hMk%uwDQzTP2%bmd21#h#Xu2Zu?p`-K8)b6;^s#<5bkQxO zbwf4$K^7$q6F(Y>e5m8vu=;W#7T}HqO~m-b{b`v_2_ptgBn9rkBHZwe$lB7hGN)By zRY4*@ZQ$F`-(UT**UbH*HV_UI8Cg_d+0h;D$Utl6C*K!skU&Z(l) z1I69@XxZZNubhh&7f{6Xv~yan*nhb8&#{UM=31&VpbFK|XkvYDGuBt~w<(W^+3?ow{-WYTr(LG~ z#mIfd0393a1`}Z??_&|RBNavyBg%S?gF67IJp!Ukovr<4Gd8(x#g;y*6BDPd83;LF z^o&aOIekKxl`9bbQQ8j+0WXnNp}}zO-$JM>j*EE}$Id8=0TNw*mYv zx2tJcedw*u@6S}YV>X)PV+T`9YiaH1a5IEovgm>XDw9)2>~e|ueGobJ5dTIp_oe!k zllSDom1b@D#Qcp;7b$F?!=)!(Vhc@$tSpVYI>-U4H&w_YjjvqIq6Klbtf~U00!N7P zHp&w0G2~K+=Ty-LO4O+B#UMuNzvFBpI`o>z{c@Qsrow5>n3u*bK@3WQkGNF=T#)+A z;!B3At1t#WeBr;6BBHlL4g||-8MB4iWycNo>{|iGUD;)r>nrNJQdeA34>UMH%L)!= z(6&mN83D#CMzU1|J`ey6<|k!s_BEO#EjvG1{x+@E={Y&QmaWJ$cx^r0M*fTvUG@ym;%znUxLGr3vGpP>bKW*GEocZN}=98q730usm+K z!tV-e4F>&o7o|g(FFEA!vsxo(N&`B<1C|D)62ityrDGW0lJ2jfaT-(zD!qKXSj1p= zfKo0sdh`jNvFI{2()!Iz|BX<4_A5vW`pm=%B|vkzEp|@(VPxifQ&4+@osast!z3kT z+3U&mOIQm%Gt>}nNe^mbw;}rAjcABCa!Xv4qx%^wk{o=WVMrH9h)0Yz>4?hHK$hzQ zU(9wB`)l~y^gvL6YOb5v{!ZmESAy&$Y`$MeJ#r!0FksTx|>E+ ztAI^no&S=Lz{1?1)T9MEyrZoFx?1}T6ax!x5dd<2Lz|?}LLu#ypgq4A!Uf_u9IA1d zX6-&ByV*Ou{x^heP~foJtX~qLC@5oJYc-__n_c5VFJ&{#H9=U!dY?H()OuE(mI{v) zQNuB2iZ;2Tq0Zu^n)4^y7lAGZx&hASM6Y}6I0CDgFzyr?pLh=Dv zmuNm#X-8HnQ!-OG#Xe=*^M8YyRm$y)SDY7Pb5{zxnat`(IQzEb)S`t=;eE8$3i#?Q-0N%Hl^SM& z_4r*8APnjl_`KRWr2cqVh#&44@gs2|8=bZK!z&|i;NyToFGR}~>seZ1S zXclDv^j=%D*hCFV1D09G!lyy*2ily%3=J3IfS1lP>14OMLXNLQTpdg;@$bwSakW+y zZxE6!K!AS@knxFY$EtyG8R_ri+#y(MP-O2HZ_3V(C^%Xoyd2cc3jWx(S<2@@5s*f{*0=eBUp8Okd}kiW~itSlTh6M@R?-adQ}AGZA$^x{LES z?13aGz3iswRgRDT`lT?j3WZYx(DBl8Tf_3C5dbL`@B1*}9W;6id=)4On2EEFzE=xM zh0ri_^96&2YH*($u~BS5chiWr**)IXwKvQvF-z=hvSV|v#l{*6k_LAEwVLfI)eREx~MVF_@Cs*di5ACD9>M#X3H=)RWwQ~a)4;EVqI)x0m=?m-Jwc0rV_EV>L>BOH% z{~k?T(gZz=@+HgJ_ja&1SHc!7pPovQ}>L_!)i!4j;n+7yHz+|EHpFsgI$> zTj|i;(*D1X`26Hy(E@5}$=AhNJ~~?Bc}O|cFHtoSRNx?B|0{@-Z_9y^)m_HR%sg@& zcYiU#1|DGpOc+J!fxgawKS8C2$*huK#=WWxziB!>YHHdtjAi}XNp3ySjh?@fY**{R zzhDQ(X@?DXnFUjH^57NYzq4BD}+I%7s<~B0Ixa z<2U{~+6g&RcgBLWBI<)oCxzO+0JMnADV29TvIQwDcCBCghM z9La{jH5r90z98E?zkk1$Lbs=XDo2{v5kTv-l>tln9h+b3h!#IbJP)Mf2BHF+kig(s z%1di#w`Xe7hr1kpBE@^K`3?Mt^_&kif@9TT<##=;bJgDNM{>NbYy(^{X%GSd+)cMF zc`|OoGllukvK60Uz$$!0PmLuZQ(Y$Vo#o<2FUQZqxj{@A zPnRIs+}+Ye+HIwBT)NlA@b6`AGo0g#$4_U*D;TGdY)*u93%Am=Lf)@!!|h&ATD)?P zrl2zG#_%G+uOlPQE~)jn-Pg0yxUU;qpCqUtk%I-qYk%&zHbN{wVQGa>4sk(DBCXgL7UQxyg(q%V$76yc<=pW^SGQ zTgBtf>`fK#&JgkOxIyYv4J)3inEu!8{VN>Ub8ehJL&lkchxecwck2wtAt2k=e7=-x z#IIfWS_m>AC1{%sOBHXP6n}`Wfx=te-zJ*Z=fd_Ujjnb6skqnc7Gt(89%kNM7ZiP@ zA0SiV{D{vD@hEOS#`o=kdNpF#N4z_%DvE^HqM+s~LDzo}6U471ju49&$(&wBYo73X zu<+tnj?5Bv@q7bif|>@(2kmQ2k)#tp^fbMcZmE^WIuBok&MVk@K4N#yy8tdVS97(} zC|W0Btk?)_4yv=7{1t>^x{m!aQy(dWtrhPXImEtizL_2Tx3{`P?|0VaR_WX@bIQ~) z6?>4J4zMlW`meGRC&>XY1Htcl(&d-EjFjtf6==gMslaHqY=-m3Eo3rf-IkGgL!O24 zeOWmKR&^iMlA(bqE-b%gFk1X@Qz7k50IY1S$Ef8UiBP z@p>l~M9+$hbIwB?V8}iCEHl7*WQc<4ELb?g_F$EUTa%)5=Q#G5iy>?a2lLxQc%F%e zLISvQDoABAk#yDQm~`U*k_5nBT4!e3q!a*yQ{nZEf|q3dWv!|SNMq1LZbW8wZnZyx z*Rx6(8{OtA0q^)a_3*HUMkLds(vsmVO2~LNZup=8T~ErL0w` zGnQsy(UTb0(&XbXIE7KQ=R9F8W}Q<~*e!oe`hVtX zzmV%txAm?6LdFM;nOsc)=UTP#Sp;QC#(d8{xt}Ot)TJkuI+Kg7|5|=sRHb!n!mSUt$(an^4KyhZ_8GPMr^>H>K-}va`AARUIHCCsM(gRk%FN7j9j#<4~52# znxnDt@nL`wWbD&;*?j;@D%sG{?s=6m@*sPIaJ|p=#w(SxHk@L#h&)LDA?HT2>^v`{ zZO!rhSjl5v`mT$`H{9_RQd|8?H-KYDF|jL>?)VCYurq;($b^Jc7Zf&pKG2qADWZ#7 z+k!hXeDfIsDpEbxNi{L>$lpJ!gc0I=OG5OiaX&ayJEgDL$%Et2%<+(>?Qim}?x7<^ z$T_(iLA>t6@2^DUwo3ly7mJ1NwV@rYYGb9!Dg|1dLyjAGfdYXa(Mv>E42Y8>XhAt< zpDrk=KX<`?avi>7FI zXf0O2lld>zq^2B;PY6E27Dafu%;LK5k$!FX#yTs}G;th#lXvQQaI-?b?K1J)yv;|3 zoWFHt!|j3Cj^-HU{94)rZ70sm8T;MI+IAF-T_vjO-`g=*y9fY4}+v(z2ms2>TT<`E0d$hUlTL z531DguS%r_w~E^e7RR?ft5IL4VzhU0DVY0;4~dtMOL5QjNwLgM6&td4@W*$WUZU6j z-ay#HWZ4`7d;QGTu=l-RG5dfsn9L(ET1*i8zKPE{<~)A(O;(s8CjRnxft#DwQe@)9 zlk|?%e>aXF_)G22uz^P)J$3DMj(MLQ=oUlKi-td2#8+SjJZjXU*AphVx{P6+xVVZ3tO@L>kT2n8VxSQefUKv_(W>WjTluqcS{;4tR(7A1=0 zTvxJ=2R#wd)w(2}P#$NhFJpHtL-dQW6^$z8CJ8m|5X!=8bw`ibVSDI?%(Tl^;r(|$?bEbi|4b+^ z`P!aydnu@qWx9W4Ws_(r!l9odP&)yEo>Fk!l5a{WNXwH;5Rnm<3)5A}F|Q`+ACc}| zQDW~;%3}QO?KgN>+4&?r)=l5ItK0+N0(RARfDCbR{{JSN4B=5whctgfM&Ed6@YG(E zXzppg!FsL3P=C$ck7G6dVz$GGEm=P^$uK$vO0NW_vpR?C=*TgL$L4zJ6wrc?V;kLJ z@kW^}8?!3uiyW5{m;oURWaBIO!(U0kt@`(oZ&~}h=+qz&25mM*yujThzUiyz{Bw|W zPA)}oXLC^bZ(m)K!QdMxj{Olf3F<1+!M6N8NOS%df%9^g_E`(qIy9q9oZ~0vRNyZE zBBsu{qi%{OS<~;M-lftKq5t*05bwoYk4@GmEB|4710tXU^?okhcTg|*u5@B%Gl%uZ8DDv;t;ZBc*RX z+uFmEk5-t-&sAlqGozI0*ij!c1X?hc#SK8VAvz*{1cVT+uNvC5t?D9%bD8^N-!^gC zpAK`&IoV%BB)yyn4&SD>aF_*ZNCu{h-6R6LA@Q>7E<|$B1kvrW^5R(^)UbSL+&u4D z5YRrPfTv<`5mJ==1s|!`C>||pjHU1j&Xg=9HB)#W|8+nFlE{5yh~87K_LNfIYJD#@ zw59L1h+8(9N!ivZ+=wGQp2=zZ?b#lL7pK~BqSfrJTKJfYAk5sLQFK=PbMJExcgQHI z8z)6*+?a6k>6>ctN--jbW{<%a@i~N#O{U zF#jo*L^}uSh%oB4tNeVH2p5YO-w(u56UBL&>{Qn|AHYYDsumyY z)fd)qZNv|k{^dB;Z@dEda;v&H_s($2A|6DaL9}d9*&;ZvV>Kg;O~C#A7^X`EQi5Oj zTA3>FxQvIGSek}=m=KyYmxN_8m1Dnp$!j#Wozr9xni4D_{-{49ZG|mp!-oiR$u(Dc z5?5A6W8iV|jb$R#u3|*S<%NfrToFMuF#A^n?3}2;=8BMn4!qFY)*%`5VY=86f~YMh z$qL_5n_hoxWDrz)Z({nxL(8T2)vTkNbQ~sx@Q*j!>@YFu{?%Ndl7<-J6tk)2N4ZBK zIYvQqB${if|E~6N;qHcfPoRozuqovfhmZ8al}+;&82eW;V;vOpjp zQfv+q%@&;RjsE>4`C@q5)21SgLSxhXp%V`9a{vTQ4tN|3o9hu2z!%lQ_xAPJ5cm6n zXXcp*uGXft9&m|MS*m*#)IZR9FtfMd%a27?kv_s!hLP14AlwFXORhW#tzWYW5iV%1;q(D z%*!g$bEgQwR;>~13fDSLM=EU27^wr!_2z4dC&onu}R8n3q1N%5L` zxTYojF;oCH*pfI}Z2)ssq<+6!`Wk-xbI%kQ1X^1+`@t_GyaYKQR50pAYt395<>O?; zbkwYj{Rw5n^if0!&(5~OI>uhO+biXB`?2ayrqj$j_3nWWlV>f%8pL~sBd&?FSJEQ1 z&7rNOxNIQ5Az*XI7)f!J070d5T_L)JE0ZXm=M5G{>tc^Bj9ZhG`oaXF&J{;c6-0N+#L0yl`5^GBWp45;O(4dH}~Da)xT}eCN4B2je@Ch#azRC$O^q! zyyErGT>Lmf*i$6)?t)+y-d?@*^c1Zt3Hs3}PU13dvt2(VCA@+wq0`Rag?*xRmL5u#c z#oySeVM_{4POCo6nt&v%eJGCEl#zmKQdv{kVc7REMT#C+;N?JWE%+A&1O6qgO?2ni z4;Sx&tpoytfXNrJD&+3=)N_%7K{e*4TwN;nYUu}-5FcBaf@&+X6hPb9Gs<*E&I9;s zA+M(Z`?jHql+=xt0y?Ws zWd?*Y6`!m1dZu{Durt7R6+oA@cl&b5K3&ko7VaHt)89*TE7__o2^LKnE|&27KrF!%05%?{4A9&LsE}0rIuc z&Az48=;T8xxt3=+y6gT!X2%j53$6S?6ZuipM_rOzoDZ3fg?zwPMC5#wDED2~6omB{ z;Tj^=4NQN|EXuY_v{|mRcF*Ozf?}LAHM!R}{cCk-O3Z|*cn0PuZ=kb=0k?~g%`(5gEt{~LJlH9xCduJ^QaL9C!ahV9aWukat(Mg8jjMh2t{p4&*s zC5t;eJ=n)N=#qOnRjPkS?6OXw?)q@cS;V#LP4{~X%#;du!V&QZ8}2xV>qLNr%t1nO zstA8ZTtF`HCxOE)8IGzE@%v&wJSca|glTn_*p)jUG+-J*L(5?>Nl1i0_ncTf?%a*N z%*B`3`wPke1=3%Hysj)S7J2LdCOJrlK4k%T=}7P|AT8%oM#v4ZugI&Op}TR>tF{J~Hn}qX?@6}WfXh|LNO7~5{5^T_zmG8P z=G@~I)@&mm%xLOzN;=KQ^7f#CuM1{eK7WZ(&Bb%;n?Me3OVYic_49|_A}&v(tme4~ z4QH*yPNT!St|;1R;gV&#C6!6-wYBulsDwitP|%wd7Y5r~FQRccp?w^XBaCGs+0%%lBve8GQ6^A{Qi_zuCGtfff=vKpVr0Fn$|YPMP=Kx-r`P3BqzJ^9vCuWKMCyW5Ay?gN z(fGAwOw<6+S7;TnENc6C0q7$MS?t|W?&PTIZ{WA*3OH4Vz80~CpiC}19qg{()=drh ziJ@i8n$;GIHAvk*P>_OHTm#SM#p!dFG{Z%13dR(!O;ctEs>;L8omG##*kI7of8}L> z`{P*e7{iZOV3?HkSndm~$K(@&4ozBs^cKsD%(selvzOTb(knD6aS?buEyJVQ^! z5zc)Wpk?~pFpJR7p9J~yu4<|RXp89a8sIzBP-krd4?+(U7VT1W$AwxJJ7>w5b8*Bd z!XPvsSBcG=o^VwWaqvAO-&ho2QzG0we!u4Ph;|+4yJM!zuq!Ou0H>#gQX!~(`MD6o z9I`S3`!jesCeN|bwxW$PL+m%!V-6D5hFj3;6no{f%S94bS>3Mro3@$Uhs;HrNl*nW z>+R4P1GE;inug#S=GB@bdSe-K=bSZhP%ST*P5ZhZ&8R&KMSDA?aGLx;x}t=>q! zdPASRXPrGl;r3%^OPrNq8}0R0l0;{`+E7I+`;wz|9P_>}K!Oe;&$&fV;?S7aL{3wC zK;uMx?EpRpR4PBNGlE^oSRTs#uYY&mm0+;jq=3AR1|C`Z6!9NJS$exv$weMab_(U& z?#WDodETNvCI>p~XAom0fiIf!hu!s*ewAo_{r{?z4}fib&j zdd_(_1(X#P3xDNR(suVu(e&tFF`tAG?YP*puH9eIQZUtmyS_)>btwXq8emt_z7+*% zQTAC`qJGZ6%G+Ko-Dk@T+53>WZbFa_aVUf*cq5udWo!4xEFIN_vWcvQBQYbt)t zyGh$5C2A`8jaDQrM6KWMi*wSEheOd%Y~-ExH||H27_;Pt^i}U`$FgAx{j}PbuW^~~ zsmg)4-J7Dr8DpZSG>*Eu%0jYohDXvtJ-ICS>C$ijiJszPX6NP)f@}bmYnSYyb9;KF z!ZO6RAyDbXR-d$tnH6&sd@K;wk<4`urxXS`z`EFI#A3^06&D#L-@nE{*j_{@q;=3g z>f=X<0HQ7k3=W!_qb_*xhXfmcQly?nW-Dx~HRSSMiG2OdD5>6FXn+*zO2d=E+ZXi8 zm~ME^po7j-_wgSkx$|sY8b;nMajx%()zPcnHyWk-fsQ_tRbEVo5r`A&ZhsS@c44@L zQsyTn!AU3{T~#@bdGwgoqj$8`1o?d~K^=M)vjgodV5H_aRqXt2nFY|Z#9JG_i7ajH zDA3ocgt769pcN^4s!D0~{~xJ$;$r0|&x_=xfhPehJVJ^BP@EF>z&~dBercDm_i8_z z`AD+)gB&Vj3>BG%H5BFweqVgo{P5NkeH&PWZF@n&DQeAP-x)Y?Vai}wS zr1o>gOjHWd#*F|iyFpS%v>zYBm2y32x(J!$_R7uLtPpI(0T2bb^0v%0HH~hb#4cju zRoa6=>&>d)^gGvLLjIkn_MVV3LUKLX zz0IL1h!ZJDyx-UN>gEh&4K4&2oc^H6-yR+)7zfV6Uc2$B-Oi${m?&QE+k0ND@Q0CJ z&6j!^;gI@>UxrD3=9hL>G93d@i6s93D{z#L=17P&>siax zyRT#@o}*}-3m$19@V@O4W7`#~f2wO?@+ZbcO!|lTWVBBQUqsqU6@OrP!}9SKt>Zm{ z$kEz2P@xc4TXVG6VIb?vnWMKQQTLO3W@!?1b&=b;la(b>d60C$wan1g%8yDnVCIt6 z!%S!j|BH97{mHbY!QP+of(f7}qu>-425*$9I$Mrux)#{J4pvCp9mtxc7XAOtw0uW< z>*h4$-cL_DoX9KyeHZ3WN`aK*L8peDEJhOs45#9kJZJ5j92fpAnqEjI1VeO90X{)y z;WldH9(guK>eoxqGm$8d1fwb=7ZwtsL^u;}QAlM-cr=)1cl+IKQc^QH#mRIq#p$87 z5N5r-G~3Y4=k+yj*2yAF3Wu*Xiq>cS-5O1NTf(yTW`{zOU8RRL=^xfK>f--5)nXRd zHKPJ8|MKAU>s>l8qy!D-UBxv5VcsQuIIsP4#~96PhU0^fq)#I*MP zgzl{)j>{Co7>9a2p2cmQ|CRySN?JIpo|~tqz7D2ymPActJQ2~o{YJ8rpmk6~J+S0Q z^9vd8i_tts2#BMsRZWwF%b)Qct-3zw$=U`gd>Wvok|3xQPKn<-fw~O?P zK|L~KU$DOd$9v8sq8>a}IEvkNX92@BE>f^kdX2{}ztFP4XP~1!SW7474@T=mOrqu~ zw({DlpdzpjVih-^pc_4Ars+=CGo=Fu!;dyNc#3LCV9JvsKZLcnv7AsNmqMD!KWb|g z1X-R7n(;3pds+%&s@|D3gj>LQ1JtLssn^+M?^uu`DLY^Kn#J5U<9D_;b)Ud_ZYD=l zKn_DZ8*_zB1PUu-n8NJvo_kN9E(Lp!! z4vJmqZvec!0iHNFtPK&h#<3VfA0H74^fm>)b(-FYkH-JLLN?^#Tm#zf0@S0`J*;y)}zYQ3NUypE3dipV;S3JOr98o<0(kZDn~&LEj=UN}nSoVEC`PVo%nPEQqbQ zII8v2fJc+%aD9c>LPQs}>hsba05!CyUb$MACB?SDK=BS>GaN%CXMh*P#-ek_S+htq z+ex?E5$!9^&AqM6O;^;e(v=A~&Ys44BTwR0izOcXKXBb$qQ*M@#YCZ`%{8H4c2uI4 zNNcn6kyvFqStf|^!DX3n_q#M6PT|S3A!LXgrkGn#S@V3w<6zA~eFJ0q-NjrXB=BiC zm2rQ#&vt?@o>(kTyn8rm_j##MB$F;FUS`>-LFVh9FFNK->7R0Sug=CvRm}QKMZKhY z+n0o%v5VYu4DSfIGe6i*0hJ;otCBi$0$d zXJ&WhVrM;t3D`WiHTSU`_ZH&wV6(VX;m>#00G!-0mwaU2(Uap$Cyy+i9-!)e?v?+p zl(+w+e>spcjkeIx5WMF1MaOi`OwJs@iy`zJ^R57!Bl4A{n(Y)?E0fWZ9K!$yJvfSP zkmt_{xzb*l9WjIGm>+X2WRd3A=J$oHH1!Wk($xS< zO8`PELP3rKxV9BoZA>RC(g$gS5SwfKKS92PwMl< z7oef^!C=go2y<-sO4H|9!M3NY_6_ngabY0Ahtchgr^W6rQoBrH%vec)fryh4+39HK zfQ`PoH+iLC_zmr;>5Nf@VC;1G6h=+265RH9px5WOTH?2>R&ybT^59Kbv>tkIl@S>3PUEqFiu3S2K z?*JSlwZ_9~fSDzwYgSxFP5vf&mrm#PXMx33l!s^lkhfg=$O6HN3y!(uC!>=B*B!kS z{4~=sVe)dbKI8rYduZ-~udz}?B9 z#hXJq-ZC!!*a@fi64@afCRgB)P8MD;$HmUJbIT5O96tuq79stl%KUns>V&1w3~D(; z%~JBtmU5E?MGDe#T|>QRt$P;HzOooaTu-b8cxt$|&1RDbIR>iH^UFk0?h_sO+2Kt~ z8T7spifD_&uH=99A-b>~)|dbetov*=%+)jF_1U?plsn?{HsOsSLjwMa?Rwo?v~UL} z0O21nXayTT*TKB>?`Uvy!=D~<60s`PaHzG4*k0^-4$=W@+Cif0``jEPtKp_rOYph! z+YTnIK;IAG^3&IuSCuamV9suf{)sZ$NNCLtCORJqCi{Q?{$|uqY_b{Uw!oRXEdX|> z__3pDTpH5c*+p|@FEK4Nk5xTPbALMaNOR%9YX?mk%kq<}C)K*xMT12s=Z9y&Gp=o}}S6S}$3~6AzM662-?Q0pXPQ z8kgnKd##1<`r9;3@ooKPnT9+pC?z^M8dd@}oJH_@y-arnNVrkPL7Xd-r`0%g%c?E@ z2Lo5>Ru1l%XH$RDU(Z)h1-;vOvhPLUzRV|IHjTXF=Q}n1zPm}2rO+!qGgSsffXPZA zh1zSKP@@iX8wdH5=>5MR;ET+zH(1UjeWG30$RyXnNfERxtf@6l0`~HKbdWyNOJB3@ zXA~YIhYTO9Dv0mUJnr|&^L;y49K3UB(Tf!vC0Yf4eRKxSP46$U?ISB%xZ`HnD3;>n zT#L{V2)g8((dW&_tdYxFT0zZ_I(VTy7~oQqNa22W^q3`zf5RghKtPfn6;(e_9Ewn5 z3|7k7k^h@=Fg$bXJGoM{CVdyPokK?!zKeB$vVV7+%AK}-%E(4*iQd-uP<3jH3`?X_ z@(xOJvknMWWJlQ1AqR+{U!m6m!5PAu(Tl=k&)3+c;;n`wQkymX6H>Nap1cfsd z-BX&{OctclW*^Pa&-5?*WvEO9E3xWv$RbbQ8}XO>OdZ)Zr?S<5UVxeg73n_2amE4& zLPXTgn}H5Ui>R4Hhw%e&56Y~5_EN_@|D1sBY$fqMuQ}Ff#3r$ONHYwWxbj(*gHs3% zXAhLEwp=6rNP`WOvbyW5)%q9%m4(yGBorqyS#Bzh2l4)PUW% zSKsL|JZ_t4GP;(2)p(#G%+?{Ex#V$O$r;YOi=#w3A3mWIzIq^_Cg?r;IpwMC2an=s z%!Ew$waXDcsG)^EWy5JonQIK9;Om!Vv{^bmP>{?SrViu;#4}#xpy43lJEsF`DG*P& zg;`JmivhGCF=~SXBU^YepwfLEIM;(b z((eY*b)tLzVR-`{0$mBS3~_|xT2DS|ci`4`KohbZ8F&E4ulHtHnJ9WD+^{CoE`Bqw z(DE@@l@}HBfZ&z8y`&3$OElq@Ux)=K%7Tr@kFUG5OB`|p5;Wf{2r`9BI1KS}Lu_!` z$=Y+w*cf@Gx1DOhxyxg3wSwq3VYDJQ7Te5_@7n+=>@GBi%9YLVXrnw{m=|%yFmBG5 ziYKxXKOn&?UgDbkL()e!-FVJVhAkXjkJ{+#-9UzhW$oEFUIe^<-;l-xxYA_@cB*y&gnc-=2y_WlXGQb zFX^kAViUZJ5{5b9L4(#E3-&jLT_eMFD&!h-i35+s2iF?eJx=h~ zj>CaKijlnd`y>qXJi7+U@LnSl?C&G^RmLIk2d&h*#?EY#64{0b3-UI<@8)525X?v9 zNY5a5?g0ln+@AFr&i5N4IGLlr^Fu`L`|m@eSZV7SXJGTNT4BNc8dLd=td|;l&aS-Q|1|*E3l83 z{&zK>rX`qbH=+dB(4{_2D1(6ArSU)e;93g106s^#nic)^E|E;PRqzz%8l02Ob7xU2 zKuEY7H1c~+3VpVRbS&Vum8mHN2yyH?4JEtnjn|%o&iM1S9E|q`SoBHH+=3ie5bRQ% z;qWOxY|SDuQ7u#}%X%gjk>(~TTt?r#pt^GME#ZdB_&j_M5c0#A9Lg3ZvkmgMX|D&V zi~xQ7h}?7*@(w@`7(2r3=PiH8Y_J)!VJpZK3Wvx=^#r%3L6&cWSRuSF?T`Bne-4uJ zm===!zR0+{WJ>1$J(bTl(=39l5*J4Taj}d*4C;RPg=9@ddOikk6+ro11v3nKh}Bu- zvdKwES%g=7?uNH2bGM1u&6xMTmx3j%C3xG>tMQ<|m@8)H2v3T+Azc@i0y_#hP9tUZ}5 z25_bPxi3!YPEm>>{o!72j;tP{i;wZ7{~p|?wnhoxSEgnsqdc$DuzIZ$95!F`B z2}&*sqtxLw0k##`MhnHDR@SuV9+t%02%VM$8HcH5bf*9}Jh=VtfZGx!-FzL}YYDY! z3zcu$a{W&b|j51HkEVL-#RM50h5uF{kvdZWqUP#KibHtXx7=HAto zqLAD@VVdw!Z+ufT#u(QBfqH7fJW8EG&SOb?9`} z)XG6f>5&Pq*M>#eB2#)Tpfr0>it-!(EUTlGy_(@lFzcK?g&!BsZzgl`-K#89n4OVv zaZTg6E=kcLo=YWMtHwH0bRv=ZVpKH(Dsy{~hLG-K8)e#71h(kMMrqkwq?z}ri{5ZI z&)^hU6SRC|+_PLG1~q0jv}$jQ!3@8~XfF}?8;n2DT08Rbv@3RE3Z9bg_x?Rg)gCtn zlhO}mDJmt+7E8(1<7LSCMzCLL?Wk^-&mxzATB!XXfETg}a{s0(Emkc6IQ~Ei1Je

jjaAS3Abz`nD0d1>v4Dyjwz&J0_MV_J|YDY21p|c)RgP=l}}pPBh$Lr7CR6I oGlcsx9q^raQY~}r;jNWUlNN^%V(vk4THi#M#ZI@uqU$|~d~R8\"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" +/certificate settings +set builtin-trust-store="ipsec,wpa-eap,capsman,fetch,sstp,ovpn,radius,userman,\ + openflow,tr069,dot1x,www,api,reverse-proxy,logging" crl-store=system +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 +add bridge=Bridge-LAN interface=ether3 +add bridge=Bridge-LAN interface=wlan2 +add bridge=Bridge-LAN interface=wlan1 +/interface bridge settings +set use-ip-firewall=yes +/ip firewall connection tracking +set udp-timeout=10s +/ip neighbor discovery-settings +set discover-interface-list=LAN +/ip settings +set max-neighbor-entries=8192 secure-redirects=no +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + forward=no max-neighbor-entries=8192 +/interface detect-internet +set detect-interface-list=all internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface=Bridge-LAN list=LAN +add comment=Unet interface="ether1 - Unet" list=WAN +add interface=ether2 list=LAN +add interface=ether3 list=LAN +add interface=ether4 list=LAN +add interface=ether5 list=LAN +add interface=wlan1 list=LAN +add interface=wlan2 list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0,::/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 discovery-interfaces=Bridge-LAN enabled=yes interfaces=\ + wlan1,wlan2 lock-to-caps-man=yes +/ip address +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +add address=10.8.0.2 disabled=yes interface=WG network=10.8.0.1 +/ip cloud +set ddns-enabled=yes +/ip cloud advanced +set use-local-address=yes +/ip dhcp-client +add add-default-route=special-classless default-route-distance=2 \ + default-route-tables=main:2 dhcp-options=clientid,clientid_duid \ + 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=91.192.189.2,8.8.4.4 \ + verify-doh-cert=yes +/ip dns static +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws 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 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 name=reg.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.33 name=oxidized.vados.ru type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" name=dns.google type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" name=dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" name=dns.quad9.net \ + type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=NUC disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=149.154.164.13 comment=telegra.ph list=RKN-dnsLookup +add address=194.85.61.76 comment=grani.ru list=RKN-dnsLookup +add address=109.70.26.37 comment=grani.ru list=RKN-dnsLookup +add address=104.16.3.81 comment=xhamster.com list=RKN-dnsLookup +add address=104.16.4.81 comment=xhamster.com list=RKN-dnsLookup +add address=188.114.96.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=188.114.97.1 comment=lostfilm.tv list=RKN-dnsLookup +add address=172.67.182.196 comment=rutracker.org list=RKN-dnsLookup +add address=104.21.32.39 comment=rutracker.org list=RKN-dnsLookup +add address=104.247.81.99 comment=lurkmore.to list=RKN-dnsLookup +add address=172.66.164.200 comment=dou.ua list=RKN-dnsLookup +add address=104.20.28.254 comment=dou.ua list=RKN-dnsLookup +add address=66.254.114.79 comment=youporn.com list=RKN-dnsLookup +add address=185.110.92.40 comment=pornolab.net list=RKN-dnsLookup +add address=185.110.92.41 comment=pornolab.net list=RKN-dnsLookup +add address=172.67.172.95 comment=crimerussia.com list=RKN-dnsLookup +add address=104.21.71.238 comment=crimerussia.com list=RKN-dnsLookup +add address=149.154.167.99 comment=telegram.org list=RKN-dnsLookup +add address=149.154.166.110 comment=api.telegram.org list=RKN-dnsLookup +add address=157.240.205.35 comment=facebook.com list=RKN-dnsLookup +add address=157.240.205.174 comment=instagram.com list=RKN-dnsLookup +add address=162.159.140.229 comment=x.com list=RKN-dnsLookup +add address=209.85.233.190 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.91 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.93 comment=youtube.com list=RKN-dnsLookup +add address=209.85.233.136 comment=youtube.com list=RKN-dnsLookup +add address=64.233.162.103 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.106 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.105 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.99 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.104 comment=googleapis.com list=RKN-dnsLookup +add address=64.233.162.147 comment=googleapis.com list=RKN-dnsLookup +add address=173.194.221.93 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.190 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.91 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.136 comment=youtu.be list=RKN-dnsLookup +add address=173.194.221.105 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.99 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.147 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.106 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.103 comment=googlevideo.com list=RKN-dnsLookup +add address=173.194.221.104 comment=googlevideo.com list=RKN-dnsLookup +add address=64.233.161.120 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.161.94 comment=gstatic.com list=RKN-dnsLookup +add address=64.233.164.132 comment=googleusercontent.com list=RKN-dnsLookup +add address=34.41.139.193 comment=nhacmp3youtube.com list=RKN-dnsLookup +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input connection-state=new dst-port=53 \ + in-interface-list=WAN protocol=tcp src-address-list=!Trusted-DNS +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment=\ + "block honeypot ssh rdp winbox" connection-state=new dst-port=\ + 22,8291,2222 in-interface-list=WAN protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface-list=WAN protocol=udp \ + src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=5d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface-list=WAN protocol=udp \ + src-address-list=!Trusted-NTP +add action=accept chain=output comment="Accept Rule for Trusted-NTP Servers" \ + disabled=yes dst-address-list=Trusted-NTP dst-port=123 \ + out-interface-list=WAN protocol=udp +add action=accept chain=input comment=\ + "accept NTP clients on local area network" disabled=yes dst-port=123 \ + protocol=udp src-address=10.30.30.0/24 +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=input disabled=yes dst-port=443 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=input comment=\ + "defconf: accept established,related,untracked" connection-state=\ + established,related,untracked +add action=drop chain=input comment="defconf: drop invalid" connection-state=\ + invalid +add action=accept chain=input comment="defconf: accept ICMP" disabled=yes \ + protocol=icmp +add action=accept chain=input comment=\ + "defconf: accept to local loopback (for CAPsMAN)" disabled=yes \ + dst-address=127.0.0.1 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=accept chain=input connection-state=established disabled=yes +add action=accept chain=input connection-state=related disabled=yes +add action=drop chain=input disabled=yes in-interface-list=!LAN +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +/ip firewall mangle +add action=mark-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" \ + 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" 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" dst-address=\ + 10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN passthrough=no \ + src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment=\ + "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" disabled=yes dst-port=53 \ + protocol=tcp src-address=10.30.30.0/24 to-ports=53 +add action=redirect chain=dstnat disabled=yes dst-port=53 protocol=udp \ + src-address=10.30.30.0/24 to-ports=53 +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" routing-mark=!To-VPN 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" dst-port=2904 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru dst-port=5000 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" dst-port=2377 \ + in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 to-ports=22 +add action=masquerade chain=srcnat comment=WG disabled=yes dst-address-list=\ + !NoVdsina out-interface=WG src-address-list=!NoWG +add action=dst-nat chain=dstnat comment="amster.vados.ru For Certbot HTTP" \ + dst-port=80 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=80 +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ + To-VPN scope=30 target-scope=10 +add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=146.120.64.209 \ + routing-table=main scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add 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 dhcp-client +add add-default-route=yes allow-reconfigure=yes custom-duid=\ + 00030001050000000000 custom-iana-id=0 custom-iapd-id=0 \ + default-route-tables=main:1 disabled=yes interface=WG pool-name=vados \ + pool-prefix-length=128 request=address,prefix use-interface-duid=yes \ + use-peer-dns=no +/ipv6 dhcp-server binding +add disabled=yes duid=0x000010001000000000 iaid=1 prefix-pool=vados server=\ + masterIPV6 +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system package update +set ip-version=ipv4 mode=http +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add comment="doh, doh-url=https://security.cloudflare-dns.com/dns-query, notif\ + y, name=CloudFlare-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 \ + http-codes="" test-script="" type=simple up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + port=443 test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=Google-DNS IPv4" disabled=yes \ + down-script="" host=8.8.8.8 http-codes="" test-script="" type=simple \ + up-script="" +add 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, notify, name=Cuad9-DOH IPv4" disabled=yes down-script="" \ + host=9.9.9.9 http-codes="" name="Cuad9-DOH IPv4" test-script="" type=\ + simple up-script="" +add comment="doh-fallback, doh-url=https://dns.quad9.net/dns-query, name=Cuad9\ + -DOH IPv4" disabled=yes down-script="" host=149.112.112.112 http-codes="" \ + test-script="" type=simple up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" interval=10s name=\ + ns1.unet.ws test-script="" type=simple up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260602/20260602172002-Diff-Config.rsc b/MikroMaster/history/20260602/20260602172002-Diff-Config.rsc new file mode 100644 index 0000000..d6d5cf4 --- /dev/null +++ b/MikroMaster/history/20260602/20260602172002-Diff-Config.rsc @@ -0,0 +1,47 @@ +27c27 +< add disabled=yes listen-port=13231 mtu=1280 name=WG +--- +> add listen-port=13231 mtu=1280 name=WG +2440c2440 +< add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 disabled=yes \ +--- +> add allowed-address=0.0.0.0/0,::/0 client-allowed-address=::/0 \ +2452c2452 +< add address=10.8.0.2 disabled=yes interface=WG network=10.8.0.1 +--- +> add address=10.8.0.2 interface=WG network=10.8.0.1 +3156,3157c3156,3157 +< "accept NTP clients on local area network" disabled=yes dst-port=123 \ +< protocol=udp src-address=10.30.30.0/24 +--- +> "accept NTP clients on local area network" dst-port=123 protocol=udp \ +> src-address=10.30.30.0/24 +3207c3207 +< "Mark Routing main for NoVdsina" disabled=yes dst-address=!10.30.30.0/24 \ +--- +> "Mark Routing main for NoVdsina" dst-address=!10.30.30.0/24 \ +3211c3211 +< "Mark Routing main for VDSina" disabled=yes dst-address=!10.30.30.0/24 \ +--- +> "Mark Routing main for VDSina" dst-address=!10.30.30.0/24 \ +3240,3242c3240 +< "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" disabled=yes dst-port=53 \ +< protocol=tcp src-address=10.30.30.0/24 to-ports=53 +< add action=redirect chain=dstnat disabled=yes dst-port=53 protocol=udp \ +--- +> "FORCE DNS TO LOCAL MIKROTIK DNS SERVER" dst-port=53 protocol=tcp \ +3243a3242,3243 +> add action=redirect chain=dstnat dst-port=53 protocol=udp src-address=\ +> 10.30.30.0/24 to-ports=53 +3263,3264c3263,3264 +< add action=masquerade chain=srcnat comment=WG disabled=yes dst-address-list=\ +< !NoVdsina out-interface=WG src-address-list=!NoWG +--- +> add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ +> out-interface=WG src-address-list=!NoWG +3360,3361c3360,3361 +< add disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=WG routing-table=\ +< To-VPN scope=30 target-scope=10 +--- +> add disabled=no dst-address=0.0.0.0/0 gateway=WG routing-table=To-VPN scope=\ +> 30 target-scope=10 -- 2.52.0

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%0D2iwhQx)9EiqiEcLneUR6f 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≫T8c|{%ch5bL3;;1sYiRl^4HoFy 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%0D83%pT_XkiB$(B5f_Y9>B; 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