From 72ad62e7d280d8cee67fe7e6d369ec4327f74565 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Fri, 12 Jun 2026 13:20:25 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at Jun 12 13:20:25. --- .../20260612/20260612132002-Binary.backup | Bin 0 -> 271285 bytes .../20260612/20260612132002-Config.rsc | 3600 +++++++++++++++++ .../20260612/20260612132002-Diff-Config.rsc | 49 + 3 files changed, 3649 insertions(+) create mode 100644 MikroMaster/20260612/20260612132002-Binary.backup create mode 100644 MikroMaster/20260612/20260612132002-Config.rsc create mode 100644 MikroMaster/history/20260612/20260612132002-Diff-Config.rsc diff --git a/MikroMaster/20260612/20260612132002-Binary.backup b/MikroMaster/20260612/20260612132002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..f52a222dda6817fce09e2f4cb0f22a721b1b26b3 GIT binary patch literal 271285 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 z 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Μ9m@&?ZWDUrdgZ`fc>!FMcQE zu-~;8t~xVNyZ#BsCu)-cQQW5C?qCU)m_Rxz>q&F~is?P*!FrCP(=-ITDUkS|3_Tri zlO^jvz*TkN5olg}^j6jdG1X{7Je3_)5>FdeDsePv=fxfg9%KUkB+W|gtkZiS6fA)f z>@yW(D_{PR@hp{mzubknA8Oi~yOHO@rh~_n1$=oy_92Zlq9k*E^%{2Qf=omAbJn z2Xs!gx{80{DAZ#3I;uE8(LUi8HSOY~G~CZ1%4g^9rAQ4~trwW1+w#Y~*aQUhC_q{c zxg|$!9a1TLqyeBo>-3n`j2Br6VT);icIj^mb|NbSw-ojsZ~EC1DU~j;g`02mquY-s zHE36*ZcQP*6)nU&i3bKa&+B6&cp3nc&i`3Ly0$KBDq4alYwAG7w%h_tw@jYurY)Nw zzsJdA)_^(%b;~UYa*d!ai&cjfN)4a4iZG4NYwP8cZxOzRY9^;Rk-P0i9Z#_0TLw?c z#EC7!Q#U$IHP^j1ErEXU&!r7<8%T#5%$``mZ`?46Xn>4lF&L%J4lh1>1DHx7+Y$UG zNLbp}EAP`DvJNyvSEld$r2xv}g3!;{$Y>$L+ntl>>)FT~DYPP_@VkEhJw~i25MhM1 zKk;MUeXN!bJL4nswHm)Gz=KCDwmcQ1U37r;{60U(&)6m3|dkf@R zzHAM<2bq(bQJ>A26wNO|^0ZRbVCMX6xrRNVv+y=u2*!!hH5sV6Fwnj34l@=Ly4o&C zXdT5YMV7&JOH6%AR`Q2394d!iv;~2YmrIe#>|$b8`A=S!KDW1gNYb!HF9AF5|6V8j#Q`9+eHx zBmt=apM2QZ1I;G@gE~&jm~Y@5Q{OK7;ENv6&>}2<4inbne23X?34p=Xjq(WG?U1p;CTt5mc&>)(WSW}5U=fU!6GP+*s z!H>OaNRT%O-(z(d#|hzBxD5Qh)P7U#rANeg%hw?}?;qa`@<3;{!sQ84xHXMi1;DdkY7W+T;`eGB~2`x~legrp80R zw8&-yywoU~Z?9B$Tm4}b9FUv7t}!Up!ntj2pvoEVmLqR;#^0H5Llgvpg6I1uPcfP> zDL(6XKmVhhC*%bT6Xn0`Ceir!1v$e$WQh-d=2s#WH}LgGTfNuo1Txzgqn6_4fST)?A+lG&Wm{hQ-a99^&{e;naPEGf2{nK(WmI0l!+ zsa4|CjY%U--4HJu8^s`6z2Kmt(~8KRD zMl~cEi1Z)iw2HTG;(MI3jH_y$%5$Xv-ZukWy(ycGpu`jFQ6Flo_7cP4?H`cSP8L2~ zqNA`7Xnpr*ND~%@vcb#rm;AwKEE0weq8@a>h$;e0w#^yQi96!(*18Kew^VDC#CK+H zb7pd$EP|-j#8ts0$cZMaOY7Dsl7S1t9{DLDQi%qmn0tA1Am3U57@Go44vB@xV%uRk z@N#${PTC_!sxy{p#Frv39GVfnh|{S0p3_1i%gSfZ~?_b<-V1*=*)tQ@0+eN zAK*c!wg8AiqJ9xVF4m9uhGuM@0Yg7!b|;Cmmyo+Gi!DPiaUSDV>(s1 z#G`^{$$E1CoUN^elN!eVL~qx2}Tld33*m)3gDN&{9>t~=jr#@f9B)s>|qZHcBW zV6J}&5Zh!B<3a)?&;pCB5CjYJQXY`HEu9`Ly+iP)aurzN-smuLo;sB=kuTTS?n5!k zaES#di5w!PMgfT}AyRH>b89#S)~@RUkXb$@`dI1d!v7;FsnKY;jOpfe1>Bae+O73! z`d~?)q%C-&z_Ul%!SDQ{rMj3gGK2=3yePF2VHWTmPF=CFCWuNINsXBXTqjb}&6Tq% zsx01kiXlWL{jX+Q&iWE}p9nV?rY7wnbPJ+?F=$m$?!*IKUWDLoG)(ovZo8pn zP6*@cFaE~XW}e)2%^Ey3%P`0IUl3cbmy6rsUGQnVnf!r`$ zlE)1L_K_3zC%;=os&)>7HZ@AU3_i|;2H)qQhn_EokbfW)F!iOA^UyceO-8yAoxqOa zY!?)z8kNGVTk#mV|IJQTS+DS^G>dD5T0bZBo`WB2qZ%U4vcJN-hDr;hF(;Kvqp1Du zl|u^U&{#4XMS$JC0KD^8gnZKrIlpq~cXb&2!o|b@*o!In=$0~My?Eim*9@dhYJDPf ztlNK*yZoZYE;q3yhXr#`)%=z-7p^O=$jXZ5&w~jaGiOGO0+@KuEp;NFRfoZzKl}WP zyhnDsu#HjY?Q|!Iqf-wHigLN7cK!g76*wjr;}MR+~2k4ZFVWwSSh0qvx{ z0_P|SD`fsW1&aZIo0D__r^(0l=WIzEu+zSI$fnK;YH8J%;9QZvOH|ER8zm8Py~m1$791FA8)zMe`4_J70F$EfS8#Z=WST0P}kaQuv~*(r0(> z4;gN{Yavb7ygA|KmW-IQ@*56?*n(MU^0%IKqK*?vR*D-))S=<1t!Dd0_UQ# z9*-3)VdgPF(Ng~JDPVT`Fj`rj0nh^eTKfWOfbBLc2L%Cw=L#wpcV|R!zMVsYuV%uS zbM5)H8Vf10O4<>F`E9`3zO`rb;=*Lyv5`i#lNMRMVngg4{s-li4P?-N81i5yahb`u zN9T++h`hKJ@{2gY!peM1k)BcoVIDXmCDfq77Usiim@s68VVGE6MXNAiEX&IB(W&kKxG<~Pw=zb@|xXAsU7i{kU4wy!=FX5P4q4;GgNL+2oEpx%b$M8e3ke&>mEFGFJF ztV74Yh*y~9OAt&x7m4PJUrSi+R&D;;;(EclMkPs6_}=Qki8%(CjXcTJ$#3V(>HUNv^ar0;G)|em zqgr2@qSlA&+-EMTv`%n$7_YxJuLk+JY=pWN9ysR4fqJfdiUTs!G88rCmDqrl$L;{2 zG~<_o;`y%x=`>Qw-O|An8)!M-`@OG;Dd}w|>pZYfpsFe63R5AJXR=liHs|pLGS8P} zP)-8=GjpUEH956l9m6bZWk|{;cv$2zkd06_o_?h7XN1H%+>r5Gly{){G#Igr@tc{x z8Obe%PM*b{$NG8lp4yH*;<_X$U6SV;bn1$Nlw{{e5vL0X^Kro62Rv^LhOd@OD@+gt zc)zD&D9s&A{=X4Zqnt%}4miq){%E3S+`o+{H7mCL!&zHGrB#{>-@YHn&)131N~UBZ zfH4XZm2x@N*22T-Jp*1Qi|bv2APTq!|NUz`%RwMoqq1<)iETG5pm%v$e@I7qcFl;Y zg*AQ7nGBkAp8U1*t{w(>?*-A_n-2s$voVESbF`4Aj08Kx~eI37or+Z(`motv!`6^b+NXykQgvT#Y{CBv%jH+kOob+sj zuKw&w9qMwjwJduNcTc`5Q+Vn?%2(By1h;^brE5U_!8}ko)+9h__!HSx5 z691W3(Lwt4ZcQ)Yb`%>^uOcK)dXB#Wn+}$9`>Nua*HsKahUpejveHCmVS-<_`z9;^ zx>gCiZK0B_&lvteE0nGRIAb%sfe^8!jbR!-a?#!A@X|*M z>tNX=KFywM+_Fo(ruB=^Wo4T=6`XPlrmhMH*^KPT7%F$oOHPG|0SLu$bu*;sGY%p{ zcL5Y%PnUy#m!+{=0nvVX4#`8HkGTZk3&pHsX$$!@f6dE0^|#Lg$?Z==F^UbHx7Rar144A6@X zK)T?p+Ypz*E!C*pKOO6@E%JPso{a5zJ#kWrvt1OdM!68zdE5_GI@Ej4c1BvJGH-4IY4Xn6rY zhfsigIFqvJ>!g4RP1ToFifl|xv@s$m6P={PdM#Kj&SMid7eNO+0EH$LRKkP>mdk!c zbc;cWtU_T^>1*39~0G4o>PjFZHjRGK$JDA$=Z$H zkG^NV6E|tcZJq&5kZ}Ld}XxM*atKAPJEqX zH3;#onT^P6QrvZ7R0?w+C*$x6TDB;lK3C$w?ko{m}>Nv5#JK{e!<@>&8 z)PXIjS$rC#R>3h94n0*}`lx72vA?1dJw^M;7hc67kXeaVH+~GDDaip=R*?bJRGYt- zUr+%a)t(^J7D?+%yaOGWntM{9gzqy1``p&y{^3I;&P~PMN;^g&P~~_MwpV&%d5aBq zEa)reuIaUzE=gTX_oiXst6y=+k_+)zXfoLyts{RaKHlwz8%;8g)bN zL&csis-;ZEImOqg3+r0}Giv8M{`~s~Vo5}(mzm)%0|``A@B8r5mN3x&T3r>HVrN?9 z5~L3&KxeMP=-$G#fUWZhn=a0DU~!K`I%Ql^ zE7b*GNAFlfK)Zo7BxG7DIHEovcsG@`l&>sdU@dkua(#)wn!cw6jAbPai`47r|540m zt{viGlCWheIII<5DA)CxK}rDmQv9tLdM_L*1yH9WC_DX&*TR8ucPM{~&%RnE?b~21;>8%Ly$B=D=@MKtao1OcHIP9lVAcU1D^+3aUK+zF z1$q#Gm{Nfr13@NpYc3SU{>Bosacrxa3`H-h9m4Kl0nd{h8_P!oF|J>&5xZ}opED%5 zz_$xAzs>oiQqNT4YWCm@-wa>D1q2+Y0K7Z}8Ic)|#GG`!80|J+Cwt^pakp-4%kd=P zY(HoHLYceuXzQsB&{?`&eKVJMD;CZ5zV^sifzZoQ=_}NV*Ew1`GEP4_s>d@;Aaeh7o#p zz#Zv6lZF~|K850Ep|ORNPQJk7c}(lSjhay+;7$#ds(U|Oo)0LPF^R&FvN(V(`Y>8J-%+pwx~SUS_X>muh3`(c z`-AR79RV_{8gGs^CNUYf#qaH8wOZ$HFe%v7w2!TzM;Iv5eL{qUCZ{q$ykp`E0`KL2 zZRWAFdEK}iQeB=3O6CRZcAl06Zsf<2q>i{cbpTa`ibnd{g4$fYd){owM>@mu@E$|G`{v8(x= za23=Q+dqZhaS}@-FqFlbMtjD-vS6%rAp4@X68%3NH7eiCM3mvMVefLXaW`g>D+I{k z1@lwPWHuGGWHl21jTa%uN!S+=Zm)MXk32di@|s1-ZdK0h3#NPie!G9T1c$-lPBd!! zg$yOac%B%$1#;yP=)oI}OF3Oc9q#gz(`2411mOI;HYDVjK%~|21C?a(jrC`?TT4jF zh{O>XSV_{nB!GYM8aoKwuNn&xR%qn> z-K-n$E=LN*af;>;NX=bA22H4*n*yn3vd|Hr)U!iQ_Rl;FsS6ke55r&By%P)Liqbc` zftY;|@Fcm9;BIVD-Dbu0f0BynwuAbdy9MA_uP>hW0!Q$K zMk-AghKet26BQmO>6k1|!RMO;C&P9xwVY^tXr+WG1*Nav`TL19`yxQ7Jh#?0%!YlUc@QP$YyOUz8do}buQ zyFAMlBn&Q@n2o!%pHc$h3MoSyil@MyWKt}+a^{%ab{#sfyG-;G)#Y#4$|2KQ$qWYU)3qc$e7)t5{bqY@zJ?TA-fCoQVbdr_o?A+Qwbx^u z#f=OES$Q;QA=*SGn$hY`I3r3uP(WKXJPTJ`2`sA)H`a;HuGDqMmjs<4-)0bD$aAj) z96DU)3pV1Fypi(_c!TJId3ia?v+(OD)9m6_!V5jiq*;cf<#7tI-Fawbyo0mJ*jp9Q z|9(IwjGPAlaV*T0Atp2mW2%Axg3`K5Cd1GtdwHiFn5{>;cIZXPV<7;W|eISNhO^2T+XIVJuTpj#m}T<96N+v3L&Ph!d|VwaZ#27h6jhMo3w z2`mmQE-?LJFsS)bbM4!30%`uU)-|*qNv+H)ak`u)1Cm}zEhJI104|_D9?bl|xmlVn zC=a52Egh#CKiyRS(?J8153^AB=7rwpZnoWRBtR?=Hq^me8$#kSZuUV1!*UvpUHzNL z6Cdep#L~w}E!kI>2tTS(1)2k|^}dIM+lNE6j0u@;$<_r=Ho%@=UfYJnD`iVlF^ViA zh#pd2f(?uNZp2S^R0;eAs~=yfP$72dQT8n81yOwQGoeHX=JPU?*>2UHxl zR&?Fjn$V#i0Xk#hldTHYUkxIs@PIoTSUHf5&5CC3q?jhg?B(jFE^zZJwXM4g_YKOF z2M}z35&Ez{PpqwYa(97D3$?0U@|mW*?_A1_4bblng>SCcvZ!K!c28UmD-EbdDe2RD zP_iRX9?Fh8>4_S6UCZLhF{y1~DbZlbH<8B9)?Ab8QsMA19W@MP)2!~`Ov*w%G&Sm* z#6w3X5JK^G+mA4;{y<1UL>SGzSYqgqIGfTfN}Y&QRGm zA#7^oR%%O0i6-vy+SZKe7;_YfgDJyNE7wbjlE9V9`HotQJ`!mfude~6*YDNm#<7w< zITcUpp>ELj>-TZSpQ;`&C_yg$_w1IkCn6%h$N+c#9G>|v6CRK)2Z@V(<8{}=(uxmb zR1KWYpVk8XM3@|5MI5$~n(KrDao)@=(z`UTI$Z+ee=8Mc$1odYd;5KO^Rq|_(~yu= zZNbwnSe_IK)ZftW7wSLd^OW1OmK5J_IU{n{36u*~j6)B7&|aubd2Y}q`yZXwFCT(F z?0cy4FgSI}R zf0aDlg>;1$SkKJ^=ECiw2RG1L+H=mhc~@&_KhwVs^k(mUoJSfUpT%4@uB`|_7n;=4 zDD;_n@v3?!i0y{KX$|6aY{$peuJYlhBFb1WgJ{hD8bcFR_nx#pK{iN4|Q{;6wBJtDsst3(D^ zcL{cv2RHs9`Hx*PXK0W;@N?a|rj;q@WA9&P;#OQrih&~WO6mG*m;@1uptXM>_e$7h zy+R-~VJsQxTlwB zA8(|s*FFl}pFo^=j?hrXBX%PVC{+nqfCnvrX=p!jd~OeN)$2>gm=wDDY=i@5>S=(3 za`yDh*bShW&gnmNdx3I8CfPia$M8E9b7!ydBYK(hc=FEkQ7 z_w&)rS===qz^E)*zWEp z82w7MnM^D`eEKWb%8lHN`1o>JQWE&(X-ur>kpd@seq6rrs}*;G`YXj721-K5hkDi4 zlc~WptYGBt+&t$sRxy4&p?i`4;#zH#&j*)PAvq}iSW?i>AE4I(2BIQjC#VuPBGPV- zpN^00_Hl6V?FirEh&}U_F$KXA=J+DVH~1JY3REK0I#<8c0?*!G)LAS_Q{+iXhYabC zMslO8UJ6NY|3Z+o-|{(ba`rbZ72HEzR$l})VK0OR!>)Pw>!HqO4ROw{44U`+f1~p# z1Qot31=r-nhBr-7u}+{KmTWkAmAj9OuH#g6!GPKm7G8jl_Y`={&RR+-ZzvHV)Py0L z1BQY|Yf)BrSoZ|LLM)Sn)f|V^o*)>*DB%Khb5pkY5Z4o|uT|se^hRFpc$+cid;+L6 zGLZcs0-6?@ODsw+>QKONshxrFo#o;Llz@hb8Cx!6(UAe>`gQnnh3n3YJ`AK}=5i}0 z^O-?n2s{gi`W)jVe%im__DA(Sg(X5f5HWVopkzi~2{wZ-dSX1+3$~A^kWTN7c#7mN zZTE2y&TcQMj6l^UV{LIG% zD&Q4dd^=}bCCyzA!)FQ4753~S)mlpVa6qE?eJ8nUm_V{c>{aIpihs$O9gLV3Zc9}! zYqsKDC%m37(R7BFP#?LfVWjoEQq_TfwOZ zLVwF6EjAe5ME z2iO55IU#MkxB_aSa=Z?Qm>=*;zy__k6E3M;W6{Q(Y zciH@ZN_Q=Ryw8zpp=WGCZ_1NbkdtedfePT6+KmeHl(ubphE~~nFIgSjI3TecMMlRh zBnP>QdEUGQzt~)XKzufw7eiG zlxK#}K@?rqvTly}iSwdHbY6HSS|D6-RkxGkjljH~0(j>7s{!ru$j6i}Bf*V=Mg~oX zvec)!2VKs3D7~;jExh-bd}hN6V7&l}(*U#`9lVeEKXH%jn*339qd5!KwcLWX`;AZx(O)7DT|WjQo$R5O(jA;SUp`m9cC1 zo!`N`t5@o5(vkE-yW@*oUJP$@@~un1LW#4v7_tRfuY;0bosr(tCK}(!`|1pka|8s( zId-j%zYAEN_FuXQs+us0EE{C(*%)Gkas$+a_{w_R4&$rE4jRtAwnSD^)AJGF^bh1i5j5NfjLlCzaUFv_=5%9->^W1w?C4)e*6Ls7QDiYtL!}VwXymyk zJWjPl$xIUT*|7~RN^5`n#=ym-#I^UYkc?%g*R6pHlB}eppA6+pFRQGA;qC~l)yl>T z!bcqeO7=Z>d?=5z-!2hadN0EAj}z6)pyQ-y_y24XiT~HSbsPP|EKA+LE=S36T8vp-`cXVrrrsdN1QWJCKIwQj+tk2 z?(4i?=o)5}G9<82Zw(BRQZVR}45m-D%;uWgP19eEm^6zi*b!z``C{cLbuFvNKcX2-#WPeB`V^;RFz zvSm2-k<5*`HxTK6yml)VDkLSP$m-N#ege5a!fJ`?mzzgR|L4cq&kKjT)43AE z>WBbaknFkM7h&jE-22;CD06XI+8neU0=DTci{(8@ z>06Cd`HIqz9U;RQ8CEGj1d)hJ}-CIv1DQy@3Z4FYv$%;xm}_OzyU>^g4xitR&m2hx3!q@Dn>> zo64_&YYeJ4`nnEpB!0mI$G|mg(S-tm0{Eu}(`8{Y$6yv*#+q`DP*+S4S0x3|cs_qog3 z=>k3`?>cxq0~7JJ)QwSBS_Q1R-RRj4g!93m)ep=O$`>shZJ7OulA(fZbE~!DjNb7s z1=$WVhks5o4ARAhd}q;-vf*;cU0p?=l%0|TulgY+?tHiA<=_303jt~mT10#Otj#rw zV4;Odlt%l5PR&I)lX~}gcIvn+^1=@)ePQ-!-Og2ViYv4nPuXx?&V)#fUZv~N;Z-?y zMf%ds`LEh{6tHbNA{|a!3R)L`Zry9<&92v={@er-@`gbBTT3soEO_%QP`TR;EgY0J4|_FxiU<@Xu^ZJAAqUf66<72so~1 zZ_O|&MO?LBH(fpFu!rz7cU9^9%w-J2OX(O*X_8l{`RxQ}4$H3=sxdk%BS3a$<( zhpUZAXl^S4F0YuhN2UUU>Z99Q-Bco9noXXnnHaNR$LQQ9HOew&a({fESm!Hvxdo zo7P{C(sQ14eD?BoCCH1w=HvH&1&K+e_h(Qvh116luN&i9ttv0Fc%NE@BQg9_+@awP zLwkfc2^jh#Eb+cU@nj+jLQj$s5#Y1Xg8W_BW^XOa9yUxickI74Ze!ntBYt& zc2&zhjJO)A3|x%qgm!I{?61+@I0u(38-v5znyiirGuXSNTFG|qa8(q8f2)QId2nWM zLqQym2l<&@umh%2%mUGY?92ZEbRRCYb6E=w3)51 zY{yOO3GDY z0Wv^mY9X=K_}nU7Gt06}vQ5KN;$*vs*!emTjjn6>Mpfg~qf8>ej!+;OL+s!h127p4-`1uR0eIq9Wo|6eZM+rbAfpFAEkiuXph zfhN$ri*WUmSCVPaE`~C9{+WBDcnsq(wAwk0ABA7=46dx%8ZTzFo$h{%=ocLy`f2HC zg}-am90(XTUgUQ#(11-3w@wNA=2kw$!5KT#)Cm&}jj0Nn9S{7xY*gj!My@8KDAP9R zIZm$B9rXviMwP)VXJsKfQlR9kl9e&ZHakyS_}~z?kD#Xu>5CW+_v2f6k-#g+0p&mt zdd@TzJx10h6uHJq_Zsm(5-(L9J&_wLS1Jl|XJoqyaEZiz%i{0UX~TUHY&voDAU+USpg`t;_%RkASn7gRS#+aTg~bTL6va zPSseq2U8t=V$SR>2SPOxN2NC}0dtnq5`$;@70xpDi zS(7&Rj8FNLsiug!71W%a$jr&nirO0?<5KztId;&1BScxPCgKXgX9Ci3e<#tuPW9tq zvIL5~qbBkp6*Xg!)odLQj}WT&&u2k>+sT5|Z0=SFjeXk9#G~I2^dJ@4t-7>YH_Z)k z203M(nLE=cHxjKlnkQa$h+gemlY(Q-T-a@nb?QoWbrXP2lSfxHLr!VZ*xAl%UwhiQ zbv%rOmnsn9K<$Ds1?XUAS077aav)`$2`T;yu!mt5;ehX;5FNKFVGZ0X14h3v7IWUb z@fsvvRDwXzaCf0+Z6V{u5oXS5w?2t%Cmz&Th>`oOO$vKAx?yW=3O@usmG9NHc_pk^ z;w+^66z|eYJmX~U&DUsYAGUXif&gYxPnVMJ%imHPQ{(%Hz~TN21w)a_x()d&PogDk zuD8)~!oP9FCMY5-_vXd*MoJ}vA>|q!9f7sq1y-$+qt%vAHI_m&D^Tu93TuWh{oXYT z%Sjnz7x0PkuSSobW=w@bJA^f(^zN~Zlx}Ygv63!GxOAUQ0?%%gRaB(WUc?j)-=r|d#kn5Zi=)SkMxQlPIbRMaJaCryi>qg)J4n3?= zUt4wF(vs$@%#`wLAra*flTf9s6w754Pla0Pwc{?T#Y~+g^Jqs{ryBeIxIcve|33i0 z2brNrCWxRQptPt3VUIwB_OD=9!vBkt5KC?n)-Z{Ad*{c`^;TlLDmpoE% zS(yvpSbUE3I<6MOea(>Wv#jFec||B)C7*z4t#7RdzE03bTrV0Zj<11c9O+L>woWDk zjx@8&6U3|TD4YmxGk__>_^y{{&tcMWLfw}K+!_fbG`?J)C(XeyUd0PSIXg^b;SY~Z zWI=Kgi^mSMd0^0>^9aR6j5Sh$;U0#j(f9wVLx$Syyvr>M#hxCEv7=pFseD z|5d5GkP)$yZTV(H>BksW77>znoJB9NKB;lwR(K=B?>yrDR(TY4*6^n_&)yEJ5dpo# zpu=nM*-$yfXpACdqd!J8Xin@xyTyFaDbI5`b32lCCH3B*S~+WdAG$iLk?J%ne%%2{ za-sp%B z_e+2pCwMtal0{c(=z!AM&SD&cyD3Xo%9nh-E^((VX0Dru4{9q@V7k27)CMcR;3u&t zV28(LSTBZQ^Jh}3f6^Jns})HuF5>b2x6{Zxj1D}vAl7tw zyjG#QbS!(g-bZ?jOg?0`E>Ek!oy(MLkmPj>#X-dHLc5>(g@;Pp3p{QAZdaK2X~YYU5}TBL&YVH1!`*|DrU)Lm$w-Zh~uZI_+Xaqc7#)I zRrE(({~I--^Hhzu##5Be)>*YYm>pC80OZ1A#>hGbIcqR>39CI`GaZP3ZF#8J^SY?x z%NTt(_^NkKC6TacX$^7`3Yh0h#I~WZ#>Xp;yE$U1Hr+9yAO=xQ_^=aCMuTT;{|q=n z+q>5OYIdy2k)wN3VuL^T^NA$O5@B9Z=;1}S7 zG#gn*{*D8Pe#Yad?vNfAJpKuLWgwZEAM|wfGMErCsRM?8q@$0CAAsn!z~&VjB^(0p zAP05m?LlcG`KlaE7}&l3gt0f-;j+@XvQEnFs}QG?B_MFS_EdM}9KP9UrrZg-)h5 zp2D+fj>lOLOlxs8GG>C&)z|~7$y1X(zCFnqa7yUoGW^F#!HD&-NwJA{*gIl5pqb@) zpB$XwHfdTwXunl)8;-e_gi^)@wkMT045n3|OB3J=ZwjEdH>Q6~>b)Xy5BSM8Gt&tG zWVur~QoWawCGHavm9Mv>(?ZFI!KLMU!R2is;A#nm5pXi;2noAA=O@g$o;U;RQh}s0 zu3)~LXzPq@r)?!}m-14!yX!rdDCCOpVe~VE4jCJ?-Tlq!;P-%ekE#FU<(AKbqu2(H^oCB&kb6t??_& zro;OrK=6B?1owQxW(iLOE!viD&%7LUxc3;W6EDW=@$49W#t&dPG?Ym6&#i|--LUn; zJxwzh8trp`ADb9lNwTJnxgqtZ+waiho)8*TANmO8fk_Zd}hs( zq*%Zs$ry&sR>dtgz9=ALoKT?1g z*^Blql+lI_{f+(=@&|Pw}2_JwTRm~lQ zq=A@m$%se`M*h8g&E!m-DnL8(?aBJk8-$eE_Q3btdz(x0xjX-F_jgF@eI{(qHbI{N z{MRdQHC4gjcp^ z_>FdaKKslW(4Q>U5o9d09E$%`5HA@t!DIT#(lEN?hxV>k+Es-=atdGS!-B|380_F8 zdC`Gze48mdR!(%AI*GaM6w58vlaFA3I~q`Z?6qeyl^Rv%vD8vTAnC@Qi>>Ig$UDu_ z=0i0)WsKcV)-He=K;>D^)@*^R2M&2F^1?HNCdCBTfUde_Df*3AQ}O&Lzh;6>XS9uid0TFiaDEx zOONFcWgC!}O5mM2^I~9J`#3Pj&$9^@1|)kVfRHGQ>u}E*Q{mOEEg(jaXJ zj509+rn*JEm2uULW1criHt|zrV*{x5WOdRGQ6=AoSdT_VegCN+R=MwuTWiZK5`xUu z&e@Xr3j!!UFM*`a39whxg*~e| z#FvRHbf0Q{hSx53tM40pxR`aUv0pX;&ablmtS8|svIPv{PkZEYpzPtw$Cv68F!$Bl zenM99Mc<1E6y@&D6VY7=eJd(8Fq{LaAF%(b97iVUxR+Q=a_SL&61n5~58{&CkI%CW zc>FZ(rQX57ru{yC^c&@Matm&KrY_|jhm;NKR;;>@pGLMFU$Q%4lcv2f9IW^L6jF9N6wBfyGnLaYU1!F1P zO?rl4rx=#CvZ*jm9d#PEi*E&*iZGLnjZV`p~;;x+;8edTP+@wj5HuUFI8OZ+1aIGHi=^xeMwEapMxc}dU53A=9T1f7q1%4ZR-XsS zo?@3s#T#XrVoI_)f=QV3_^afMs{4mS@gnUW6-e8qJR^>_-vM@4yazSU(%TePmRtg# zyf}G^F1NtiU+)C==Ka^wa>QV()UE@${G!zEZdw!H0d<}KlcJO}LOIMtYobRP(bWA| z`un}ly?Kyt(~js&8i|N|FL2@0HR;PqS_J;K$MqKFUQezDP}YN_|C|RX^~PNXSh>AY zlp+^mR$3G7@a2Ob2!lXsp>`otCV8!-sK92$6_b(pJ=>l%z6aWKZOha}sp!h@_Vm~t zHd$55E_Ki$Lf}?Y<+7%iCxZpq7{tM$FDcVG2&xCnX4MiQWUiNC?F+(p9UM&m7Mj8j z=eNgJOZmFUK*u!C0?)!INUx|e@>`xfvN>CsJ(qB9d&{H;L8a(_BDQI>17q1)`LWW- zj}I$}_W2vNFM@v_ylOIK+_mh-iAqm;xuxTG{{2QFL}@@EB3CawDYgr$;525`)6+sR zRjFxKki&sFc4~z@(pFuoVVVozlMcdo1_Rkw%dySeV<*soQ?4D1iZxoYA;V;%2twP< zKx(}8N9NV&7_XvUULal877>@vg6(NMBK=9{Ox>W!G3M5K$9j4HpgYizGO$abp7HN6 zt@J-wI#ZbL%mUBS)mK!M02S#D)#_FD48U*{s*$=cM))%agKGrpAWWNe{j5x8jX)`>N%`U~qw$IJK~ ziepb#XWM^iVji%P?MKWSSQ(-#P5-2|lC?2V9NuSSf=JY%tIJfHzmDv&NwU#6WVQ4{@w3E7=2#^<6=^exV zn^$cX5BrQjf^$pd<;a4{P-e4rJZd)J$5JaL*GE7_!?w1WhB7AK2WmdEBqx67x|1WL ziIKZ_1vRo88$dsD*K>@+s(vrfnt8&3cwAjKGjhZxl)`s&gq=F?K#WihL1El{r?QuU zy3pmNGXvr5rYFn|uL(%F(}gTYEIUF@>AsX~=!Di_cn0kjaMS;QVy#zD^+6atUW#&w z+NK&4N`H5!sF=ZtU_k>%I}WdjInpR@3I z9LJlSWsgN#K2+-e4hxnN`%e@9+d+P)&^IyD>S54Lsr-;VdQDQcPL1reeqhwX`F4jlsH`)u9CNMen3(-1wM11oh7dm17X533zyQq$i2;z2`-*(18pO`r@av z4T1(2E@yQs5ac&<*Qt$R7mc4sDcmZd6{AcQv4yqku1@_|tBCeli@FO3cfp z$c!#uZXNmm7r&7Kw@ngJmFCs^0X&u1K)Puc-u&d8Y6GL74MU; z_cd18>#k;m?b;h!twVz)Kl>ge)xT&2WE@)#>IePN0X2L}p)%xWUL4K9i2ZZC(8aw* zt&mEcg!q6uLdnGhJT4aOH~c0+_;Z}2bOUN26ECXBoWM1{#OhAvMwtez6?F`GZV4_G+tIrkMN)dxi^Z{om(WwGk4KtfLBg z>eCDD&hFtHD35l2;GT(f(nxKBMWK})WK7zsR>8B4GrJ1FMJS1t*lLN>9jR$=tQIW! z(xXzw{O-Qbt9Dp$zU>H!%zA4%jDUc+dr3)q8*Nz0-be8I_5_*SBMw6InP62YR>*|o z8$7y8eu&OlW%s0bw%RNBK{kl&?@EwSi@tfy2>e?!op)04+)*b-L5eBty7L5AXV7DP zWRipNfT+S_rAC#A_th+E;Scim8;hS%Z8p^n>2Rzs`bd#2+w1A^A%v6jg9LAg>Xj&a zXG@5(-beN>tP`-?F)wIWWVn^A*s)0+OjAsuGhRLwcNJc-PrZ0r)Ys}#gM^S5tnU%- zADU%#b#h3-|H{O(zmg7C=ZU1&5>@Xxd6VFDjMF7ih@3?%ARNzhIzDJ+e~_q$R+W%C z4~Q=Nu2h`M1!fg+2lc=V3`iA#C3p*ZhJ)o5w1Y#iLcGa0NYKby$Q;GP4Lz+7mwPCz z2$uR4sbcQ?`Uk;IYTcPa?)5%1(G+$~28Av_cu-ajf75Y@%nA$BB@hmj$Izr>+ZZz3 z`V*+4kG+NcRJ~&!u)I@RvCeiRw0W^Bd5gvY+Y+U}x89xNN>?KA$d`fc4<-ij*`{Sh zX0B)z8($vU+0BgC$WODG7294F!jeL8{wI)DKA_5EG;tL#2XF|c@LXOl18==sEIHGdHR-nuaB{d?1>;dNac`!#XyC<1X}`2|8Nu-&niSDGb0zo zLSlDEZAPCD_%ki3WQPB(5BJ>nF@BvMv3IIxhFXtNhy$=dN_tv0<5%o~I!!!M%|uaZ z>Q8EuVnoETO~jA~;!Wb|qe_;$N4>Q{p{gW9`=gBE*xJYt+W?C-D_A?GUc^fgN-_|# zqq{w)tZOV;5$|SZB9u7vffBSs*OOSzP&ocL3}QcJ&Go7q6-tI)A87KCRizJ3ROxK1 z%`>*VHqD`U|4@-+SlQH)duo7O5pRAzfS`&~tD5~s*WuSFzMT^}&WtHwfP1YE_pa4r z6bc9agUuRhOt&T#dUj&S5C}P^pvb3p50z~dU%69GJoB*RMSmgY&qjGp5ME82(N0;> z!wq@t7>f$mX|-PZ8gU&}ouHK7=Vr+EpUTp2GSeT9fewDV75$v&77=GCtiB_-|DIhiC=)Z(9|+3^}d_O;;kWdagru)6O$Srg`CoSI!N%#goQ0-I((( z7~_s)bw{03M&;OFYZbS81YP&A>SA@q-_z8HnE6v*k-`Qe7Zc-}K}+RxhfBW7B)f~; zUYloQjlvR#8+FQnrZo;*Y%*mZC(AWisPfqXB9OAq)v?Rw>Gv&v zZ3hn8IcHtS301J3d94vJU$$#ZVxdA#+t8rzP-RT>44S{%i|M$)Oxc#0||G^)>wtEnw6sA-FM3f1>$L+VCa(p28nbQv~+3tF)UP1dRhBi zgw>9jZ64*eVieqs!coOx5{k@+FkLjv97p+>!wpQ)ck7{cTm&y^Vhb-J!01<)B0oyse>{rJ+N4dK11ro3lf5 z;HAVjI5P4*%y-i`;ob2L&6~0#po?oJ{<1XO6_sbP=dKG<7VU`=fuY>x3E@fx{-#U=Q~Y-NOvj%GTf)ATc2(S8SeQv> zZF68-|IT1>fN|5AX|vUQyd`V!pZ;?ZazHA)y8$#62i8kLn)vp)r})P1Fk(Kf#{_co zYGdg8@F7xTt?Tx-lIcEk;l>uRtK}S&o&GFLglF&rRXgvd&5mO7O5QJP zL+49>=r}puI8VjgZV*v97uE*MZilA5=F@6Dm+Y>jniH?d$zK6~IqtuFJ`9KvEn9V6 z9K3APYW~+vQgw-%sP;ynqOfsRedn{?rGvG?Pz-(%d}P~Ft@qDn=TT0NH#lAT&aI6! zAfL~Hc-Bwh?{RWrwMt5{6{10OBNFQF=@D<#gf0EqT{qlxPFkp>(TFd)oz)KGKBciY zF6U5m`o|RQ@*A5p#x-}Oz+Hh#upGw=edKwD4SzKV+|8B{496UT=}C%{n)1kgbBu_t zMmYzKCUKyV<$Ae@_~>E&gcd>E7s6mwDu7XgFVIqKf{muUlC504D|sfbb|uMEzh>^s z_M#g6u_xzdKq3w{O&~XW3$5p2n(aG(!vg92hWvPAXGZebVl)C-H#{sSH`6CqmWOLB zqxL6rszoAH$sq(sR&}-nH?}7Zrjp)LxGO>E33w5zS5GqVdoxP5CKS|~pA$*__NZN` z#b;-H0Q6ruDSl(MHk2DdfmvnBW1Q5St!U}-%Zy2 z(x8Di`WX$zn977V*ELp*!wOHV=H^hXTCUX=Z2B^wkQhQPHWN@{4o%1viFb=?zX95t zBEik0cF^Bqm+P$B4+L` z>FKH0R}2MX7vEUZ?y|g=6P)WX(^JBz+$hB8q^n9%$(f$*b5d~G=-`hKVm`?TCK1dI|H2)~s!wy9`C$oS$Gv2iDUUr$SUw6zarI+{X=LlZ0?rhFDw(q*PK?Oiy9nEWZS;vU;w3V*9f8NiQr zr-V{r_C-4Mnhw1X)TuaHHt*{9ld=qzKRV&33lpo>j9To!i; zB!7A|ZJbV`D~EFh%!Tqwi`nX6=I^_0 zksTC?j3zBO+r&`Wy@&|=c6{ihGaQ=L4=?8{93IHm)=dwtujiN}yL~uX)zl28P0}Ux zmeQfz==#-7DOUB>k?uGR)yhm?NWf2uKMe{6Q8_BR+Mo!PGx(XzPem(K$?88ri$sqi%#(x**7h5H7!vQ3LEPJ`xS z&SaN8uHS?xG$m#pk6l|2i`@zcn9&$I3{NquEWWd*?;GZss_fkdAL%(W! z@NRdnmicRv*Qkm;Bg5$BP_sR$N}pcO%_)Psz83`nt=HZ6tpI}4`cgqk<9}2~i445X zyWlm?t#2U?HIMdWKLr9(PaTfZs60GB$6Fk>Bvm-67V2{0`aCc$=rChufy^^h%d$qr zrNh?Q2xD`jr6rIUHm^({hGP%0yG_8vl*yls=5F@snj9W4vLrAk`>b>3N5K-*YcsaH zfgL$@KLw4~;$K>1kF3(9aPxtzmGhV`U$fN}jI=Xt9H0EamxUZ5DVIY{^tn1&jz!?E zyw3${2t*O-h-DO*?`K|qXrkSKi>)*vE&RFt4F|N}mI$OtfipPD`G|tMBL@7f5}3Oi zKzOtHn`_}SI{I+OryTe3JL+;Tgl6;cAn2YP8yntnE$#|1%h>_P%*k0DieO8?FuyI( zZiIg57njZDX*V5SxK>db^3>g(*Mxyy)F6bfEG%^KC$p{PVDU z{}YAQSIEJ$6s#-+Q4sEyqNCHPgKLn);NSe|&VljN7nVh11aO6n^Fu#GG(~v<9sUCf zokBMV-c#*Kr^w7dSxf<4m-ZO1yQ@%W|L)4Me8!j(PTshNBXzL;D-~JZvs)KkWAAT4 z3`uV+DFCj9Fc?P_tMbN|RLupJ(uG?b9p3SP#meBE+U$*i)(?^{oTQ4y)>+9JSc>YS zDpMqf{`xT0udAGj)K%mjeSh&8yLhANoWPjB2i+N{2hHeDVPmy#DRb;c(`xr~rnfhL zX}{F$4XP?|ub&mhNEH;c!3T39KJD`ub9uD&^-MltVsYDiwoOzR;n4f5<~4x$s~R2s|E{$Zl~am(0e2T*8-xx%^s<05Qc zJ5QzG2SpmRgH(Qtu~%iohtf%aFZlUcs92)z^xFpj9tg9~ZGxPP2|cUwO>@#a&TniW zzd3+ftr;Rs@aPp0c^k@Rwho~j@*Eo{>-XK3VN1JJ6Ae4U24Mf$O6`@AI@KDGvPC88 zNi#O63RfYj}aXJaA7B75=$@%7N|5v3+U9bDt#Ru%L%(|^P8i_-CQib8t zX>HDs4~)ZWMu?wt=RQ051i?A+#jM9?M>Hd7OuC2}4O4K4Rv_>s*3azl+_riUk;|Jf z$5&kw<`Y=id!EwQ3Xl9K@*Gv8Df}rs&&_s!>##3fRg~}8^i%DiBq^p@+*}fe78LYL zlIOcay;VXy~*ZaA3=bO8FVT(a+$hL>M)UdSS-Gyi|M1A~HiX7C+W1an) z!d9VLv63rd@{045_TO7ZUPDR763N)cT)=>2qgRL@&bo!vQ7E__PwOfIl685DLh{T%`EOf+|1*yBP}QMq@ZIaVig>Lt;k+@QGNIU@_%f&hlOyFyX5A7n@WCPjY} z)0)2Y2qA>dI05?0AQ!7aR>x~hO>N_ zP3Du0MhKr|{i3H=YEi&sq5O+xQ;_D#*eqXCP~Ez;XAO3tm`=Gjzknb}lKz$0Fwje< zHH3apavKKiE&gmcFHRK^ zMget&Mf!~erNr59Fk`g!eO!XC09Mu)N-rlxvmkR|-N z^EIgtyvwtJ&{opS(_vqGQr~|D0@JdQOK>Fd3THpf)jXLoQup2x(4U&?YW)S-mQFE+ z(*S5=VIYq>9Y%_u7Vo%rQ}_-`TGPMXRSX^w$>{MYfTGexq^D|>HEcBc>9-X^kLw00 zR@aD)$pUh{Ksw~HJIfjvVh7zmzcE%r@h4)d!`Yib66JtjTKjsDPAMSakO5D&MM83! zfp9=3)iZWqiQQAk-LrS0!tki~s&C$poSW!@Ot86(J=vLI8|IALkCF*<1?j+ai-J~2 zoT9@7)5AHj8Kff>c{iqazyW|!>JGnN4Depd-dT6}4U1FEl|b-2Ycck%;_~T(gk}ov zteF`2xsN6diCpsf?TyH_yF{}Mh~Kkp2y|e_MoKu4IFN<_PG!tdZcJv`djMd>`QG|< zGB>{~Dv+?5p?t1GnAl-XMDBpWf*dUGIeADqMi(mvyXzjE1L2GF`q0$L@^nGqq^V_z zipi^mx<6NtcHi+yJhArk?;yvDnIq$GY;vbi@TA&(56KYnV@XGz_=t%f+=}$;e^{Z3 zo*{VUB*CnyB z^8FFKyJ*ot$qisq7a`CCQu@caGQ&UuL~!vuO&77NOTJQp>iJQ2 za!9R4i_{@O6NXX9usrH;Zt6BlM$bWDm{gmM6VV$q2950n zZ+T5TwW>PG&hzdJ?2am7xPyixqJQ}?U`ZKiJT9j~dKukEP}dZbbfki5o(Q&|7eQ1% z1c;hK@Y#*0`mGXKpakiefLSx|nS}=+zOjP8?9GBHhk&LawvQ0ufJ~4{;2Ny6fP;s# z4=mxxIrW-wYtw>5!yu$QIkhN-CR zV|yG8(?3IjU$uh4(0*7!q*-$ncAFPtGP#tYf&64~Qf2DEJP3;h zY{TFg=UBU`<4J{Axr(h%e!o%8Hlv1mMIx4zKq9EzPyly1AqMh<3;P;&2+I-ey;?fQ z!y55lhoD_3SD_^h5ZdmcTMHu#`5@@pX*B2h0%o8hbUFd}RER_+%rq23)oD_|pCtpm z30w|d2qpOD$frAe4(LZE_q-wB#(=V>@fYDDpw7}D7+Q-TIiicR*}}LNa%kW9lI07x znCGa>xNpKLWiu}e63VJ;B_&gc(B<^;6GD;vkwF3(_;G^?nrk%)087&}mHhFT z4R@|m$(dWyX9cSc$4+P(}LiaQ3p{d8dhGEQq4w`A#uD=IJid|C_2qcN=j(jl&d@;|iI?*w)g(s$0A6cLC zw19^%|9-Eo^G=bf-+sJIf=Np9kV2D&u$a7h~ z!JgKW1OS5pPLnE}GLzALs*eqMINR*?HIN@6%rg6=y*yW)^WVQ(Bhj~~L#?Hl`MjmI zlIaNzT&C-MG>UimnFg+j{a$no#AM7{F8A`XUS%W%fK)capUFyMz|h-{MrkZz)x^nj zg5UO~bcbz$I}RR0`oqGDm6Q?Yj}nJ(%cqkohAyqA#oeotbrFYUQni+bmsx`p6t-P+ z;9+sEe>|Vgxw?=u~9omu2sV9iRy;~aJIH%RKV)(6H`$dk@UCU&n$)ICOj@m}L!+!< z#ls(L-+#q|!JHak=pA~*WTxl44X?2Lwnt_y@eTMzO6y}h77c!ac9z#`JR5Uh>G>^ zeqQixvs;>GJ=*tinvq>avk=xG-EG)`3X{T0?pcLbo?rrplp#cd{(K1TWcZbsU1BLeK_+SXeGnm zkuV=FD%-3AeOKUiwxT%)3&bJEo^w{ho?QI6aP9RGs)y_gOmfVaCr7h<)tVC~L2vK8 z9YUk$GQ+O3Q*|_a8r)i~b}l)rq*+8;FeDUV+>!6w=mK#1uDmRDzLVEZ9J0B@_(c8O{)ZJ(xoI3ji&g8O4-y+yc&3YwV$W#`cPydoB+!M-AZsHu z1u10fSXh0C647PoNWMQE7N?mfHP~S_9mv5kjWt$!v*>(t*RffRkLxN4yvYB)K3U(6TPXo^YciJ zBVf=_<8ooJS7X2#U{V`1le3D2B<3wW9Hc2Ctb7f14JD|?#=aY9ubE4kkf2|_vjXAg z62>mLmvbiiF$3?OVrHRwL0qe(+-3s`nL$o7xZ&3P;O8 z#`0RI$6bKpE}&oOp{TVokx#9ypPxCTP6#qxPkE8J31uCI7ER2qHBvwQ*ziv7hl;P!hrk*yocs-y0sxVae&CMAbG4mJV*%^C_l_0#o*R)W#Atr zIG3Fx9i_C$BbOgTIwl6Xloj^?pDzw;t__2*y5rHkUG*cZ(-i;Vt z%*7ai@ZSRmD3{0jghwou_^Tjn86EGCGn%WqouU@_=G1Cw%4rwoDBIu(pwwFWOm6{K z>LrT#RPf z$^^0=(L(TKt+fUASvrHQiIZ~g240`43lUeRUk5S_;CCb zsR?YlfB`ETV>t=6GGGdbe_;$FtJ`})Lwy2#qa8{_G3f|xx!!{l7R@wc5VFl&onKh0 z7~OXL%U;6cckUpIG|46O>5?Mwlfq1jgdAaw~t7?#3LIh zUvj%@D#ceZR##AXRJ;YKuJXQaHQ_`yan?^CSx^w9>{RR#kxX~wCxH*_9+vQcD`d*lxSA$lft`1WF!0*tT;STSR8S;dFc zIu-dXHvgvpn;ctEvPa6Dl+-=cXus0gbXyDqn=|PC$h)<$#&3_z_FsjKNwe-o`{>nc zu~HHLqIsu}`}#odRpspa9=DP|LzuAa+>COHzXton`a`p?*zHPeHq=E~XWy)Y;wnRZ z67wYU?+!~!xDqx}t^8|qE9Gwk=xYjK%uizU^tP*LAQlShyY((pqSaAVzNbF@AM(+| zFXcX}LU@@dUF(58xNDDy*vIRi_rbKXkXNPRnL+p~NmsH6ccdG*6cc7~hb%NPyFp0i z4wJIwiOkyzpjWnwd`f@%*VtH)MXL8b|5DKJFN~|_9g-XUavG6{*pwu02|=PTxo9Jw zh9W{&DtQCR_bC9TR!g~g>5Ge#JP4?w9Cvjz5@aQ7T!f(^+f!CMl{vhl{l~czpRaMV z1n|*+7+-l3#OrZ;_lZv4OSkj-Q9YU7lZi2M1xy$P)iq-!A`;%v@ZLm9bEkE;!zA09 zpa3Gvu5{eW5?AY0pwSN&|0Bb2^(H@qhDs~)WDSlSn?Hl9&zf?E+ub%HHOqtD5h8$B za^}hq7LlFBE{La)ue1!8sQ$UKR)h`F<(?nOrwR|VdbZX_7 zu~J6gEzQl~p=)Enh^!n~el!{Z5&xQ{#!?YJl}|m~FInaxmw(&+<25r%1Qrd2!`glG z$Tl|jaWfe>P+-?SWb-%OcC{vZQo+|^o^&ivyFh?gG;se}w*s@fmUjpm` z@a!pDnr4r#nm7(0h0&P(0Ag9_uG~`g+V?dQ{uj#lUCVNWy;Fz|>LNg=Tf;Ecfjba_nGD|(XJN60fZ1LtK@2HYd5B4)LKaNtlbZ44UJuAWZxducvs

MgB^Z!#@{{NG^do;TDD5dkfG7Oj_5yaPdWB7+)CkJ26?`<3|c zNnXA6tV?GS^FvhrLprG?BM~Ct(cNN2;-IK@zO7mG1gSMV@n$NF!7eK-#wSN0| znSfvNdPOAQfj7NpCr&EzVHuz1@>}X>Y3=+K54EGBpP$SoCm(^ z?TkH+<&Y_=coy2oqFIjUNt)nHk8ZWzwUty?6_V%J-d#05C^J$s%S;oSclrd4pmBf_ zifxbUL_GJH)CVpWQ}@3$e|#q5!iBwjl|$2b6##o;W9rGvH8@z{PmXhXjWu^f&<%F% z;xV4Xhw1im?U6Q)y!|s%@m&c=Z_v^h^x&6>N7kKbC9F_m&LMTxhr5ZSSfd~z_-92D z9>9vw7{LeVRv5vu3Diy|99e6kC?WrKQPR!0mBLs(c$>P72gxT>0f1Fqp0$Z~3ebr( zakVi2TnDTn;JkXp_Q!UM6>V*AW#&uZGhwtrpq)k<)?twbTSdu}aOy3}S?ZQu%xzCw5-9vX~yhAbl!+0#$Ol#yJH$9LBQ9)@6agsw&tK-PY-*NQ*_ zZ?1=MDERR0^=6MTU@<#rRb^=Jpu&}uoH2(TV%hmEyr+}5;;}rwji6uVbANnj@)E|0 zh`vd=hUDr*-gWnR*}97N01LV^4p3mu#Er&u?KEu!#E73|WC7bqXtkxmyP7CM zYQI}zv?k&!*fPePQM^lA;$eeH5Fe{e%0rfh)^WCtDMt@ApB7ia>_Ezb3%CTf8lI;=Sbu?tL^Dr-GYbxl*-ETlgF84 ztimb1P)_0F5}BGyDn@WRJx2uz{+?Ou^~NTfJB1=)Xt~EUeVPGqAEe%XCJz&|wq)kn z*M$`p-5q#EV>x{|t-YShRcL)nPjY$fLY8e=h#XY&A|SK7W4q|g_d6U}gG=@dI*sBy zS~96I)b|}eu-Q5BZh1t{^7r;jQv7~8(dOT}JS>jjkGR|gku(x0&$8kMa&bqGlt2s1 zdDtA^esAgC^E5GDD`@S|%PFz}7rC%!s-!JR%eRNaM#u}@!g)?^G2#xMuhK6(olY<} zQfXh=GuOK0DRw&hdQK{R=@oOuqMI!Pex#>G9YR;0F5`0NJ1Vj{aMKJsW(JgeA|5E9 zxl#{smtJ4BgikDkU}+~3O*WVQc7zxV4r$99l|JN{(p@vKHem^o!6GZ4s`ErImw!^+ z3CHq$7fX7R@MA$_AL=;oLB(i;%V7c!K4e6%h4N2&V++3psT#ZpytbSl4Szz5xbX0g z2#v@#viwa`;mc&oMuXxTT!XlHyPYF)litEZzF5}x>emu>=ExcOA>0$IKm|i*V(kH? zc#eKJt@4~Qn2odL+h{VG=kXb&w_7(qSe%b;)iV9n{+zNwG2$fvrebdIf-6$FE2@Ir z-W4uN##N}2%`ztBq3RaqfaFh0ZSL9e7 zS0g9BJJBgcGL*ye5^h>_?xA@rIymq9=ZA}K$EOuUPZiln=Wu5DuXf}5v?5fr$3XxC z{gYuAt$%JrL7 zi(Nzx%S>K3V-vXBl%Yk;N|i4|m5s%#1FtsgL?*&o4kr`M+dN&}`n?R~IfCiHuqIuj zZ7hx$bi_z{x>=cu6r_JP+iX=~oHnv)Mqf;BHig+EYE2I2B^Y;On%g$+H)GPYJWIvh z!?%g88>@(L=Rj(^@jhZmPP$`~h_%y)`U3Fn!TXbWQx=@frbQ!1tf5GY1$As!;a4zD zW$HyP^5{W9*HP_PE81|_beH>l=sGxoH@MBmzEVo^FSB8r7ac*UDYksyyECwfVP!RN zMx^}lt3P8@&`zHfU=cer%vdA_MZD~w+`N+&1G*LTtV?TS8Y8c|o8>1rO{-`gr|EmO zRc9(uQC`_hY0?$qOcQkGDtpyKFs_#Sg9FMvBfDpVe}|6qG7_#Lm&IK!Q=)6Z{8BAh z*;e0Z9c&U~ts?!1oN}g=sOJy_e?IXw5d64@nvvT$hXj^dbW^sy$pdP%T`_No_PTF2 z?+abdL3O02$zjf&=CPdEVz!SKPAIh4)7EjYH;A>*o|C~-4&raPe-=LACs}utx1liL zd$+C&9vA;Thhl0CE7b0s6;*T96a2C|8T@WR=1-#iaX!r`1B}<{?MWK$Ets!Yj(G!A zsKUvi%~Q9wuJt=p$S9gV?45scf*)n=C)L`_uSl0@KrQU``VZSW;bg9;1rnH;Tf2og zIZ5awj#|t?fFTnykmcCviCwt+rgb!;G{R|e0(aQEZ6#&ZE4rADFd})C?i1L1Ns3C zfpq%RJuzvCk)IigTg(fId8!+^;-^Dt@yM3FWJEFc_^1n-2eH1m=-tW;GTN`#trids z4FtjK308X~&qMViF3UgBnuGC7nm(F$6#D4QxU^-WGFa#w_9M`w{@I2UvssaA;BBJh z^e9O~OK=gd(;(Y3$}w+r`Dz{kqc>vH2bvCX#Pd+j5hulUDwl}nSx44z3%wC8d&Oq0 zN2W2rTEOO9C*7qj-T(5}WN%Uj<5XAB(ia)`zX7pmg((bQ@B;q2{GzlqX4|mydGK42 z3t5YT@)1h&W~V@x}?N<3V8o z*@0+IROpcP$Asypf*0QSu*Fq;C0Z2-CEWSMCbs@Q&2?}Ylh<=*i(-Aqo1Xt475x`4 z`X??i@1}9?Ij|o<6{+s8U*?9W$jXLL&+BXcxwmkuVG5zR1`c+GLhyXRDUEQTm1L}f zhlbdUKhC`}DX$F3AIo&hx$-RZfk@6oR>w8d2E+E$7-8)p8$~TLpC)4OteI6NxUDzH zteOO8V3`%?8$XIrHNe;yUdcMS|5s%@{E`UU@W3K39`AEBtaq=mN#a|DHRRA%d`|SL zA|hSvqcR|cVP4&6azEK6e*_s&C@)+eDULbqq*Vrg$ck6{ruT&)51Ji^U=e9sOvjkV}Z?>)4VY&#MqxKnD)|7hq_| zXc7ki|33i0i_DAE5Uoasx5hV+y%{ zeAnFje`)uWo5s~0NWBA8^bzj1Q@4Pu9+^6)w`n}n9@BqND**e%#!CAo<)6_LQ0_<@ zol(&WHZ}|oiyZlbrnCIEndOHYS9OX8-jN#k)h+h1$ma)MLxay?p=(0ufmqKWR{X3L_~hfMT@}FyN4TT+MIt0M|ywM@3{I-bmbq2}#Wcm4xPCMQnfey19NE4^@V;J0}3W1@M zo#yl}&>#O`zAy_`BnA{*$@6Vuql>A_(srFA^RMMq6iVa#;cbk~`e#!c(kw29Gog25 z)M78omUs^pDEuUSf3~r)zoE%jEH57LUQ~@LKdRyp(4Ulv#Vmh#*D=lrO7nmRA1xHc zP)2uMxA?L~PbEE>RjKXp#CYmxP0*4PlfcZgxKY?c%%<0i6}S=tBd(`>Cyi-{w0iqpT}og0pt zagqVQ=eiDM3)k!9WHQbfa1EF6tIcU3Zcu(GvLPM4OoTQK&@x%HX0hJWP@0n!aKgPl_tIe6R49 zZoaes2~!V@e-sLL$cju(c-}3C_5=}$;O4n52l;P90ndn~;Ebg{KNCJ+dDr;3#3o}7 zhQ)Bv{W0J?B*H955nr_Bt|(q0y)&d%EDOGcOvmS4;^83w+VA)}G>%aqmHp<6ouB?A ztHt8nb+u(ikXV?!wk!Q3WrfpYFOiamJx^D;*Gzoyd(LJ^=dqUi&TN{FYpcDHeGCRy z{xYQGo_R+o+ZqR3r?nxjOgTdsyKGThR#R@zzY8E&e&l7QL~#NtmW+^-6evm`)So#_cIgbUz$OPg6h5WBJig33Rsa8C#TPEC{+h!QAP z)?Z2cdnq&|!j9lT>HiFC8```OB2so`wzM)hI#x#t$`V|XBvAEe)aB1i34~1Wy~fQe~rD>Ba$U+`*o6AzeX$(+UdSI%VjZEB9|bKK2~N#4I(8 z(-;?e+n2)X!c9kTk&>RW#5UQhM3hFu~|?%V&CYsFO}&bVll8d zr+l9oTo}Gi=o+W{+kyIsdC`GZ_F8ASGg+8YZPen`cA2ZR^cwmy(&}`(mT#x;@!7+l z(3M|nfPZ>@xnlXa^D8?`_J+`urc5Wmn<<*+L^T?D$;|e{C>7{HmM|&Yq5t!a7Dzp_ zMs+Ysvyd>(3BX%Z^|#QD$KB5VD#Xs4_)fTeDt0m~q25f7C6`{6VLNLkOO5P!&zZO8 zqYdcXe#hOdfco<=n`sepSe(L9jS5m;w8WL*H5}8ts?}bl#ix6X6!sp&38afw{LCfY zSy+j6-KY6VcM*!MoM%38-UdGp8{6_Nnak%_)Lu(+Rfy4XVMKB)$=0(@p1)NPkH%X_ ztm3ui;CR0win|51V)hkz|93`e7>#cJC%mFHAcU|EFTL1x)Tt0(ENdrDwhK5PNf2!) zrH>8B5cK6E?6Y2tM7^*v_#-v;j2wN@Yn|=d{I03iXK@Aa9b;da$FTt#uGJ}5dnQo~ ztLl!y0CIAfC8vAlN3uY{`7?|K#?g z8~OU~iE#5`C(Lkqsb?!Am1P$1Cg=)H=h#xc!r=0AJ4)_;U{{x}>51!2a%&Mj)*%Kg{|5RFK>U7>RTE-o z_1o6T?gGl(V#Clui^cxuDoK7h(XhaSz9CRyJAnCNi-l9U16s6}(hC-W{37PNnZ0>i z{C4cMxwAIPLC_a+Styy-X-Oy6caSw{RneXY)NCnFdUtgoQGW)uPSlyat@mj$B=6+l z&AIx^1Vs72@v-2qYRpa5Qc_OLF8w5DEIE}*-AwR)?E}CB9hfIEY-%r+)mKE(rzuKKxi%ejc!SGfC`bs69M`+rOgm`m$2b zPU&J$d5fNN8x{7`*YZ!u9YMy<%&J`4#BxG9s>N0Dg!g?KV0W!bO>NqhGyCKLUrz=b zO>AVv$kJwLec)0j$dTlsU2rT(#A4%~u|e&uPFv=3h@_8-C`-oCqc%TB+=PwOrTZ0t zwT$-{Q#j6<(c3F-pi&!GE+4lRY?| z&HOqCR;2{@0$Cboqi2s!j4!p((E~bj`*q)jzBX2?>MTiT&PD&d;8kt1ESHyE<~_;I z|6R}g1ELW-xTy%|c>1AuJZ)Y-nO+r^qg%5BRVZ?Iz^N$23P8__KKl|z|FibL=%;Vl zPw{?kSU?$u-xl;{)i@P?jxyEn7oNfl-79t6S-+dWd4|^jjr|9{3v^>| z7^F*uco77e9B=SNuSTXxy@*}K7;D}Btn}xbJW0x414Vkj27DmoJEHjdwI`j4j=d{Z zL#f}w;*Hcv9_KVUA?o)NeG#re6kiFQ>}cXaYFPufJ10l(GaKLgPMMEI3vAIU z(7z$)=w&9iZ1nblFm9TSr#1V+mPbSNflEEYR9gOjqGZC~*6F$&!EM;1wpKwJxkLd<;;zAf4-&wYv0UskUr!TEDqLI1)HldZp%CvaizKK zA++4>*mAd&2zo=qHtKyp@1W@byum1hZw+cJz3B^mI))fAz>! zQjhG5o8FroDZTzmf7gYq=oGvs`QA2{>-h4f=ZaXn_$7C(zvB9LE4MySatI#BUU3-? z3l5M(IrVbGZr)1C|I=aZyc61bb{VBgcuoH_d!OtaN=WZRM+Zk5XIotjL?_{>Vr=A6 z04_U#yHRR$@@Jt|LVbWta|6spj>>jv8HH2m9?1*a0r26br{#es#N~om!4Vk;o{j7H z#3=dR^Pvm2#dYx>8LP4~YPAC%mWu<1kYDK2GcA!<(7$2B+#+m+-nm;{LYe4?&jTqa zR`82anV5xh%=los(q}VRqPw*o+pC>z7(s7ctas!eT?!ki3?rP0{WugX*^ z$g*xHwTV|x6q5QLF`7WL$s?8m#P&x^Fzr*%1m{v3vvOXbBju$xpWWe2hihOJpnTm$ zc4T7GYd6lC;N|0!Pijt?%6f^KL8uh&pYqwvYKd9n7Oce=ToDq;&Q8o~%|Oo0!p9>j z_)!%rTzh^9JP|Lf*s{#NG~mAX$zc0{oIuZ|7Qk*s1GnwCqlBx`L7k;-fF@FMF)jMq zj&28}joq1^+Pz|vLoEPp;vN6eQ#Q?;V4e*9p&`5ez9nvj=i&#|UU?Cx(ar&7MBB9S z1uWS)IkW5jQH?9$>fOs1D_c{H45MomPOqVZz_37rdNI6xdpeANq9t@-=o#0*9QKr! zB;g2LD2YT=u>Fps2PVlPs8K0dGZO-B_>f+sgV6O03NJIi%?s^#P&h4PF`AD@I^U&A zXZz~)6i^q}$wd7q#+rO-M5jm9xXVJFQQMIf$r7R>97?5&UhJ@6#+3w2{uNsi5um_P zvepegYzB;J@rcMR(f^mi-ePc}*rzeftf7DuCIQz;%Cqtzdue)*of!yivx*Pm(gQ_ zFrK3QQieh)xEIiQ%*uNnOk;Y7>g(>0Fe_E^3u&P3hKx(!n5eSH#W(*JxaNp23jx1% zR}MiOj`^ygd4)8NAmx!%0iZK2n>zN?h%lY>H!BdYPeA2F-*hdtH= zPS38ElyGA@y<1*B4X^Ravt5D&CD1z?X-JJQtBWFl!~-xDh&udI@uS@+poXn3^H23c zQ6d1XMx|b6^sZl@KkdFMv5K(bpPTHj?KNiIA#o`rk^>2UT1+N+RhjeW`<$Ktp zZSZ?i7$l?fJNsK@xRht@4}s6wEmf*G0?W;Pf zKGvvm7T^3E4aQqC7Kkq>pGv$-8uq8Yt|U8`+!Q|1{sqTYtZpiZxvFvSe9&SuzoS5a zB6b0S|gS3%-en8xF%IMYVd?p3h2(eN2go>Ijkeh zddUQVQLLsk%oXzY`J7zgMS^&Ncg>6#NmHS)MQ?{zdp(z5KhB`#1HBJ19<^+y&lHr8 z6AD*Q5@s_saqo;-3$OGH;5y`$GBe~?Zf>JfNCTC4nT^qEk1)a9foB5ylTaoah;K2{ z3dPDo)Qi{f(^?Tu(REaUzw(otX>1E6?ToRhXA_oZ27$B{3Y&|FvKT`}$3#O2fC(qg z8x>5@u*p=ut_Bf3`X;M{BUq6kQN@JNS`Y#q0R^FKpX=4)<96HR9h*Re?|dG{$<`dK zOjei`9bIO;J#lP)-DjjxX)^*cTO@TUaF0hW&{$UI;MQ7>QgWsI@?MwXD+!_2USMH2 z70BOds_ShUTk7b42jyxDW_?{7SNOoJU?8BwJT*$OoRl&2aAS27`ov5vjw}&}`;%BH z`Zy`WnC0!p>?zcaB7?oIK(71sI@)U%;&T zr&711o-p!7)CoI4COG z13{ghEBSUgK2qH0(?<+UwUFfy^1^%AdjR!N`y)HUw@hIt-vRXv^Y7XH%hRnoeK=q( zY(7LSCFI?`iv3Em2B$+f^Yj8+(aSK5%hsT zRV3q-S!}83Wk*nM-kv^ef+~;@Ze#BmLfSNgpm+HJ&?d$FGo|f_&i3t&2Kv2FJAyn~w>hT4J}D>nbsqYcT#Mud4$YBTzXjnAj$^2jq(_ zJ*D!q@#<3Jq`3e4GzR<`vw6ABXdD7eDH!-Z^n4bu&|&u~qiNZY8MbFwlpD+#@J1 z8E-k6!gH{*=|OcUrMmlHKYrWWUiuhs@{!0*#g0fePrtT$_k7Q}#2D!VW5D>B);ana zCwJ(vpSOAKsN?O#9n%*=U$SsTetP>L58}$-ao1&bakgv+ZB0Y&&1?vBAHM~AS0!}sq}9Oi#`NUYfQ|*%7f=e zMg;RpCD>xvN)6psG}ASi!7E|Nbx{-1^&FVlupxj#LPjfqpNrqfOew7cK0bL9EIN%d zi|#A&e{F)U%U4;2VRH)Prz``oJ~p6!o~Swxv?=&SL(Y_3s)BjuD?t!$OoFGFik=+R zhxmNyQN0zy4AZT+Q?yL`_X=135*%H7{@%!jBU1AxxlW+>nzbg4S1n-37r5%Ohv}i` z7w&tF3XPML{G4?&(s+sJ6}B3WYdrI6dP#v`BX$N6`Euz@;P$%w;~{__)8AFj1Y5?0 zHSHypc{FMy1a*)@N)m3NyN_Xz*rAQpi>|XE=i;GJm>@gE=B? zO$;8zZu8Rqq&s z{2uY(-t8^B?$c9q2pAGz+)H_-%_6KVH_HP{(MWfLj#1c}zZjXXmZYKBd84PE(>K|q zibA;plU;;e9}=v7IF%BXk5Ro5M!?GUYvbA^)Q#764}mCOR7Boa6xcDNDs6+1>+2+7 zp!VF66WiD%4n*UQZle&%UmwoVeC4@5#i!pAdY*x7={f`jrC3GK^h}o0`CXcH;oO97 z_+%x)qc@QYY)wON)Mr7GMH3YmY#B;J-ds(@qSYTn%v~#2AI&n#s5YgQSe(s5gt{^JEZ>ISIT!auni7%w~{MDO3-JxFR3imVRD28`S8+HUnB;duAr z2=*A|rwip>64;FEIPz*we!%-T$SBYCPy?NG!7^Se7?g`5B9U2efdb-PjYP)sG%b%{ zX?u#)TYeaZ-Z6Lt_E87`;0>1ca1)n>!R%UPFx0hT%`F7%r58N?#$2Z5^^j{PL!`Rz zPnl`4Fgv6pw6CuZ`Dy(Q7eKrkTCohLXq`*THAUfUude|br4%C82blRe?ZwS|L=A;l zsN@70_kHXT@0e$pTmjKq5H&jtTTd6}pH-=CxK)#MF|M_r!?QFS9q|h?P$j+5p}nCC zeSR%;(0;pVNHp0T`wK-@Vjb3)xSl&`npbuID=2Oz;OX&d3)tRIE?4^#`bEd-SYAud>)Y=f{D%q(dY)Q z)4GzT`~9e@2LpwLq>2t{lsBfk7AD3rYc3*}CK z3w4V(yaIm3EoeR)=8%d4wFkOfKyn3mOsPczetLoiyKJNn&$g;p-1e26QGAI)O}T*= zn{&y}lO5K8plO#fBqQ9_-GWU4%#$OEDd^azddNSO3U@8k?4*JjD3XvI&B9w&e>qC| zJ-$b&sKKHn8vzR=fvfRdKA?Cja1@;Qbc1N`h{biSz^__oxMv7nPoN8!-tJgmQuWEeV@A|ktb&2Zjy~fl~L5R79`&;?(*k{1N_iV*E1h?X@DQ%?7 zM+b1&Xaen*xyTwe3LddCi*CUTU_pyqP`yD{B2WMaYv9sN;oIIxM_!`rr`N~#x&xR^ ztw%bmOeBg5&xlqTJ+(E zns?Ufn^)N|A8t5`ikvL!DaOCA2J%t2xpTtqa7YcCwnVK}(2$%EgreY&MLMajdW1yT z^0me*ZaG-3asU7KCdv?1HHJK1%fBnQa?gq#721GKm%0izj!_Jab<3ts12qgneoYo|Il7J3>#(o`yz*&PH`7bxjow0=?Vi&u zS#<81txvwY^8D(aOIAUOe3GxKaG+yFJER@Mq(wG0dgnJuibnzDg2M<`P%g~LsD{P$%JhOgKlsH=^9W(--C0A5FfuB7cH0s< zlmyzVvT8bJsl8~2GsKLe=mS^|C+11&jfkB|%vigxqt*Ar#csVp6yP8q;NBLhp0Tns zZvx$)m4l7$?>`j6-Z%rP-$KahjRTyeB2vP{Nu!Vz-4kI5kE!=+k979I27{eTr%9CP zV?H5`@U8f?mR#b6`rWQ9rpL>)`)ngTUc6h*I0Ki)PoY?@fyg?(yM72y1h>isb3N7+ z{v0I($`_qt(DvQ~dS9;gj#47#VU?j?~dtB4fMEWSgh_Hi;a{wr{qs)D%v5^Z}U6(LDtzyDRFf=c~1wcM|-KO%gL`Kr+ZPu zx0vAs=ght+gEsf-4L2d@KD^2MFAU$$(j-~qim)9Tik!ez5DL6CuDEHVug5Cf&a}f7 z`Mt?tSNpzslZd)CDh?FO(VUY9CkM9B^=c1hy6|VB0g9YzJuNN9ZczCsKz3%zA)o4(PRm zS?(a!9f{LUw?`k@J@8$J-NM*548S8V3NX2-5sMg{JgK8SwMy3iLwJ2BIM!F)Lx8g& z1p-|H_XK6tCIxkULw(>jY7G;V4`@7*v6bx#HTz}!1J@Ml!P508>$it_ISbk1W=dBI zSW(P8=@)3sLF+*^iy;C>rM*~k45$ccr)PvzdA7VWz;$Y8sP%weQh*3e=Jdbih zzWWRqUIja<5hNqWm$J0V1>Yq^dAvUjh;_R7v{z}&fO=BhDP4Wdy~V$410uY59hw;q zReASYZS=mACSf?8DhR-#i!zGT zs#2R35DFe;ka6#d&}H`)-NU^4Rfe$3e+}yhyUcb8T{=uE59Bej^c%4CARj^Q0mgMR zOvwqygyQz?L%Z$>$Iwi!<-Mo84|9emaj|?H%$pv!c%TIZO*o&WT)SWk3(P44B&5RB z?Z`vh0?;WmJCp)Ig7!faoXiePR0j+6ZQF$&DT~tHb03p97DKE@3&PK6$S?nTsf&-^ zl?>AObVvxW(OW$JO7(%ve^Ixp7(mj577ht^ZmF51s-*iNb0 z%Eq2kd27D@A8&RW(59E{=iQSyW6P{YIC;Hy=pcb3K|zY(#u{WV`BLe@cZV|v*;X`r z@W^`C-3(Z`LSJ@XGPqYNN%j%@B29IBUG6nr-0hv7u~22>yzHQDfy}IlyfotM5WuD< zW7ESFa$ID#?L%g0j;oyHze#W(rMe7S!pSrZ+G3sSSCBeasul4r)$*b1ULvY+1 zSVxO{Eb0aFaD@A5V$q`mn26zoa<;5a;i-)gbF5wOfp?(l;@p5^xtV{X5E@--y;of-tx|+x;H&VDf`HfXx%O;w3E{@t%6YZyre8k)?jR z24RLUQlf@m^CYQC4*hrA6@LL<_q$<`s09q*EJma41L*;htBpVWZRy7@k5uY%MHhDA z2K+c&8~{X@me{u9-V@#dFAa{o{%~D9qt`XiWL^4@vr{e)RIc@*iCQ^X7{C;cSHqD~>MHkX?33=T8?CmcQNnI4d~V)bWRYROdX{B^5$**?Y=30x zY91Z}W!Ezho667Dn69#vScQ4!gcZx)N%Cqd!T?Ji3)q`PYEOvvKb4T=0f}>|clh55 zZ|pG~@>?C%$ui`#$6%YzTZ}c>sPsLhKwp=TBCUbY+TCk&%99LKctip~J~817X#K6M zFsAJ_!uH}XM1u|-udd=zAX#C78|=(uwIm{`+kdDI&1AWW+`P;EUwf^nna!BfW6-26 zN&K#6XY#?j7P5Dq{Tb#C%X$ETka2QDQ#*ND6xT+tY^O^xFDX}-9hV)-Y8m!a;!|j8 zTaU@562n#gem6iE7h0_SQJ08u@ccf2PEQz}t{qmB6fW~(&-=6XM!((9!0cDADEj@h z_n3>a)XO#el-9ZxI=+r)z393qUrIoK@#;as0Rph#Wjcphi^)iFT;hu+C%fn`&v1j4 zJ;SPhd{D2bMozl;71-xd?_I>anD1U+1Stt2GS#>7(`)1P)DceSzy9uT#7`Cmmft3H zOxM0&Rk-dC|3&yT5ZpFhO=e=w2)XcqYdPiSLA&$WMvfhCNl(IP;Dc;=7F4B)GDMgz zJT$3DA2ghU&aA^QVZlXFQLfuPEc3GKVy=1QF9hoj36%?D4{9GV;pjMVW_5O0s zir<08wt4L= zwHqsdXDg=jrOr~jk20e}_@A;=uNHONIz|8JSkI=pph6zQ;9S?ZseApzY_o^ek(;^N z==ss=c)(sqqGDt2($8O{IiQYn!nWgieLf9NMek~F8{|xTSIfuhXRr8T^%!+iMGpox zsyi3YT4L~Vg%mNf?*7u{bn~)xa8OiZDwMTD_=3yNUA*^Cxq00zkt)(CO6O*6h(h)4 zDti^W1^|22cI4{Z(c-#ja9#J~c-X#2RBtEDo)!C=7#uLOM4&_))Fs38-y8y@KFUEH zk}nj`DN)CGI+S>LY-7A{nHVwy6I0qO*8IgVB6p6FXSkDs^-1Q~qh&LqSBq>V=S}^6 zrx>{QN9=2_TH|9?EfO~wyIid>3|+eqSdpb|Q5qxt6Y`(?#8I0sB%>y`pw`3s0`28Y z9_B=0`g9D}fOU@JQ)`sGf+#WmjVT`}u>uicHU_?&l;vIThfeqop;IzMtIC0N#GiGv z&(=Bl=8l?2kd={-dDzX2P?$Qa6&3Wk~J_2i+4OL?(bK&ushKMWv<+5&be5yWR!{jVnesK$CPUN&S5 zehb`-PQYEV-MlQ7xt1` z(RVR_iBvb7xF-fE*MEr;;ht078J>taiDiI^FW65Hlw*hk?YbBR==UcC<~bV+4+iF% zXQyGCn%c;t>QQVcUH$T)L>SNfnM&fmCAZ{tbWZ_%gHf@o@j-it(HYiM6&3+kK+c*C zge!OI-?d+JfqPcTaycBt9V(LP^-%6QBb8;xX6-UM&LH1xIrR~Ad0|R?sU;2Fv- zz+~H~qV3#xTAw=qz>MKF8vEOI_W!j3jz&f080Lfe*PA^zUzXMxT(ZVBGZ0 zs&z=nSf=zIzOw9uxO9spW9?)$%a-!vhHtKeZCP?mg#X$M9h-xKK&6Cw&Wo33S6$iE z6Eie7|MzsG?JCfwmB2+M6C$-4p<_Sj)K}k9!?eI?zDXylfsL?F6if2$)(G2c>@S#toj)g10nslKPnMPPv*Dtli z?n$T5SPx|f#GuX|%dMo^TVmd|*%Tb=vk*O7$ySFzzbsmJhPm>e9ntg=<7A2MsqSfE zl`WhDDE^il{e=?(AQ9$SWvDb(g86>$5+Il5h5Csto zZ==s1{7sst`{=Yru%2$(8-A=^CZw7Oow?DD$6URvc@d-DGBbZ+%VsteIVeV_ZL>mcYA(9`oBHy$ z0NY0|P&YcZ7*OW8kv($%Umdk}Rl?r=KXk~>#`g-GP7aVSNkTd|);4lchtaubOZ z8+tCJIjVprO^ydOUYR*`62cYh=E`}Hi;!9*zFHa zCLaXv0hDn>VoX@S;y-42!&Y#qz1%)yWnG_)9+;-P#OfvqB@JxwUHDD^kF z^oog~w%1|Iy+9vxl?i!3pT9?@4%(E)mfB~A&j*Zh*;S?YMiv8h@bVLtw~QI8|4&a| z!7>(aesnU#G(3XVdc`x8PtoY>nwx3`MZD}l>Yv;e+i09)Icwc?CAVDYpS5AWxz#Y& z*?AE_Ju4PzM;CgB3~do+*v&GV>csw@huE=e{2AAHKP)c7Tl8SIV?kbfG$*F zhD;K6wq^ve4BjC0EhCY{_4%m(6wuJ_jwg@j;N6swK3q(vxMAEt6dg|BW@ZFoEvE0d zQ5En&y4!!3F+HoqI`JoMtQ=FasCI&X&;#lxhG}sLAZwJizU1~`J>H1TvO$Q0@gMVZ z=P6IfF4r%g^zb9`asEji=oWt2Y2v+|iJ~fs@n$Zblj=2BRz67wxId}0mbN)vO8|BU z`I0P=}2p`3iz22D^jXk@TX*GI*4 zejYRXTM0{bH7pb|)Tf4yF}0{`)O6Jtv3!mL{{jIJ#NBs=H0X%_3DuZ`2>xVncy`81 zA3OGp;>X>dIMW@c8-&KYD4*elYQXu4D{2L>E3CfY!M!pGHfw_yvO4sO1KYW4lQw&Vag_PujNDJf zYIM$kSk^G;4c{JRXWsGoekT93dM-Q4DffZjA(5nobPV1Mpmrc4*4|rUd`9fNW^<>& zT&2vdRsXn=W+IdzUXc>Cw*}74xgWo@d{j+yXQT0x>DM-uLJTgHhw2Wf3w9sAr&4Nr zGDU&t&i+{DGhItI7E`ttcz(gQ|38M?D_P&!ZP@|KLDKz)v*u+Vv5I%MqJv86R}Inmx(&cuQ=w{WK($cI#ew11y0yQu$wG z&Mrzzw*`2(fZkL)Q1BR}_%UHVqR95rRXF6?YevYL4;J#{Y2Vu$1g*m+^Ign?r45Qm z_AkiKomUmTG56p_mEr#U?mMB3-x*A#p%#1Y?Xe`*;*KUqJ-Y&V;Z%lk)V(d#M?>IG zWtcv>J{{m!C3M^?Ovo4>RF7~FmvlF~uxWRBW>%910tcCEt&(spKEO7oYAD#9*^E5B zm>;wteoI4)rxP3vwI{Nz!3bN=ISv`)74Qnk;?3?k9YGbcJRF!)+`%Hd;;wg{B(sb#f^>F|7V288$ z`muCP$5Gul{fp8~jviN>h^N&nB4we!E)f{NI&eKKR-Ju{7TH?fn_Ca9Y!@RjR%TD)Zt1j2ti6GpA zt;or9pdAX{hv27hZL))xRZ*V2!|^o8Yj$st1#E|XiZG3Qz6%G_aJ0Bqh4#~o;6>6r zH}op-#(Wf(mM7VtPPTpbN}(=U1^18LH4PIIYp^|q#xIUGhC5Ethe^l_H6!d#xGpW=jiLhv0H#?ir6<6Z|H4NJN zN+WF2AmY%AAG}-W^DGVC`0SzoVhbBDC?Bc82`kX8+)EtT#X5%Jm(Wr1Zd(Zq+eFZWR1e6^a)U z;SbAf{P%_0wO?`A zoS|9%!n|C;;LK=L5~1_Sm@JLa#A;@xMQMv?9peBmxvQIDPO_O`P}!)Jk;trNm-muuEvI=|VK2&@>MH3%Z+qKr zhX@V!9a%RncVoGmzbGyPtbdqnWnE@SZUEQWWk8p`qw>@S$lJm4fIdVj7QZbcFT6x= z8b62DfL%c4og;q)11#nH-&^>R9mYk#$g6&>Z<4fB!uH{>Inu3}EJ?tu4Bb;#L(thT zpVzi;tJTLd#(EI^P(p;NnHjqsIeFX@7RKI2aBOj4AhyWN->MH0%_l3a)Dl}nr#7mq z6I?5YUw?PwWAAA*$2JS)NCFu-QrF zn%fcixWE-D+F7G`mJEa<`3df8;CB3SKXvy#hqbPtsVk&7)V~))2tFC3zbuIdB$0f< zWegZdVxkD%-{ik3Fx4Kvi-e_Z%tY6acnnTxg<7@_w<#^Esp}{e99!yz=`zJM@zU(p z*9-Xkp8GrOm1$YX8o9jGv%^`c1eu`##g76IW-`ARCM;ro;>|EHN5tZ+>l+QL04N0dU?2qrsues`=S3<^+!53 zEf<&{hQ{x#3>IYnhtVY6uE?lA(V#xlanf=no;Sgremcf(U4?+!Es`3I%>dzc3d0mkG+;-9>n!THl~D@799pDS@DS8U=|k9zWfEaR8oZQZ zB)^G+R_{SKAN|$4K;Ra3D0d_bwO;fB*r(i|tYN|z%6|Y$IgIk4%H173mImPx@3tL& zDC>?wt&_y#vTH|WtBQgfm&u--h%Mq1lSK3mj?!I>pcbZ>&1Skeb{z=!WQb7}(J~dn z>nmClN|O`ihx~7pw=J~P`dLgvRZ76+FD^`!VzetwOOryT7qJydCmD;PL5e_EB|Psp(|^(Xy{B&SS+?Y z&s;e+8T~iaDTyZ!a6wJc^mKlx#1%Yj1T(99Mlzs%w{=oI4sn^1Drq;+C7 zvjs7^6xZ!pH;|nN7NzxyAT3I^-kK;=N>Y@ik z39W*?f6Q+y(8Z6Zs1M_aG5JnT0o@X6RL8_v8L7}gl#KeVNfs|}QA&l(TIxoIG25~1S%4ic;DK$2 zrA%=617*L;XP;XejYMkdzkd z@mk1>-+|KvqdsA~aa$kl;A4>_2N4o@BQnbvS8w>D%mJ3#q5e1%$l^8KuI-?jbV1)l zzVJvusyt}7j%}iJ*6-bJ#fv)B#(hex$9!X2(U@z9OkZ8NnT`eMXT~Xw8y>Gj-)ma; zMz_;%kt3l(hs_LNP7n03<;yAZA9sH*qwdqNdLtrNL{|=gH3V9-mALohZj#n%UPiZL z>X)2BY!5#m$9cX0|33i0qtxu7;amM{4OvXkj%H<1v<4JsX1OreC`Zr1HQoR<{!5TP zWMcL58k0~TI&v?HsQ?GK&fq0>*u(+Xvv|HiB>`m0dDh+L;bMrH6(&M!bijkh?^%_c z_sY^Wo1|zdZIe?1DKkiN@cCS6IIsKkX-OGRr`H7bu)QrZna~9)Bsu?<1J=@_) zlh?CNf~MP|*7j70S;CtFU>w=U+666LA)d{mx&B~w4f7FzjY+gsEm47ix0@6xy*j)k zV5AJYt^aK!ra%u8ulB4Ab!AR8JE9B5MuOByssWCevFANK<#N8?4k(l7dVSWOy($X= z*Y5{IHz>jMHqC0y4TFIlu6|za`S^51Yg72XZaO;<3VBGZG>#kh!@LUL5MIGM8X&t9 zq*j)9cvR|!0rzv;!JRBg(0Oz#a(@iiqol0ej4v)sIhZoaKgH8|eU@vGtW;$1JUKCk z(rfgUzBKCKmFUn+)i4V)kohYrpSkiBk>D^le0vVjx`HEA(3vLJ$l(f#{aJfr$(v5@gT@y9MjgyeEd zAixpv`qY(hjyh$Yg5I8>-u3$j0nm)~3srH3n$0u&REsph3}cL}(zq7inexYmZDQ(N zQ3O+>Gnfjtc$5zpK_4FKzP0O5DLTzrySqNQ0kw|^0D8YnnlKpB1KE(lSAX-pwwP?o z_I7TYDC3t#Yzst}Otk#R5kCM(um6ipRTsO=P}+buKZjx=uEC?i7xYlhQ0C+5A|APa zI+((_{gV<>!+s0haaCe+F>Is)@pll2J{sca`j2ne@rsT08x`7zz&9iu%ELS3?L}bb zJvjwMggEXAaL5gHhZ^%Y`_c^EC(a;)-BijVUrnOa%*HvV3UCcxmoU#Rn&phL#5PIo zUD?)q<0n7PT3ki2p(#>G-}UfhUsIy}pc zre{T0{@>9`xVHDum1Q*b zvbz?@)}scyv3|Q23vtVVOz;PdtWO1Ne>~vhcd$=i0i>Q8GNHx>%jk)Skd^ zEY{J9HC#a}kV5x{SUgR|J^7CX)SyR)G?*PxzEKQ~FS)r$`);+elS<0!eZ7SJNHqU; zSIs7d|BeF?`Qx9mP>ueZKMAR_lcliKnfhv0E_v&Rk@D~=dEys(IDQw`d0z0EZ?4D` z9xOOs@Hgh&xpDxH11T*I6Iu~oqJt%EO@teDf3@)<*$&%~i4>Q4D$~vju1zWR#af>s z&5udZjkSKG_T8{_ZId@dpTNJIDU@%g;hj6Mv zjA&?+y%0SQ#>F+Rk5+wS3MsV7pAbeg^>3_n(#WY`)97rhLiw#m%8n>N? zdC#fLPIIN9#-cJk|I(fTs7^r?D3VIix}hP$X@c*@s&s+PH-=~-p~{r*|AvoJZ;vqo z`d}JGa$bGaX*a>a^KOa9>qzu2R3FOC2!hG;$x?)1+^D!R$Z@0hl)z|^(&v%DKIwr2 z%ZA1*oz31{^>xsPb+`5HNC{8_Q5{T^-;H;WP@*QwBk5h zmZhsanzHI%>9WW%87+ntLNUcg6^)p9IEYhHIE;bllM%Vjpoik*}su-^G3M<0A&pZ11Pp!T7{1R2+YMf5T8qTXJKv#16wT=waMf%zc#k) zj}ZYaZ@Z*3Gg4xHOP|ZY+R8(XP6iSFVI773o4pRX2Z$-|_QF6&epBw$yH#bv3#Jjb zMvFkq$GDMnz>#p3&b1;fdN?#xrra~*2xSd12G#|=FbUM*%(+~eCJEbG(noN=GA!| zqR?%=VDZXBl2dBZ*9^(HH=(tS1}9S>-%Ihz%{KtyLyqNL%V2!yYQ%$#Oj+X0LgmZV z7VrJ__l8n?v8+2pnJzfQn=e2->i%x<1JFzlwMaLokka`Ozi2kQ_wzyW*|sX`UtTs{oaolIt(8@207Li_#xjUQXFJ_2q_xxVBvjLIWF^+LqUQOEn5 z9q@a7#rN5_vr{JTcBv*EPsG*2nc@)+P#!UpR-j6Iv?yw~$1^B!W4FA2vEwULUlr&| ziM#mxF95R|IjH}@*(+u+Q)=mZVp)S;R!K1|(tU(vVSvI>&6WHVc65)ub z5P11;wG5pJOG9*2mQ-*7x^Yee*bIAph^)VFd&o(;F_x2X^~sqQ{Gjk?e?b2s@{3Pi zWk{AcZ4DU>vG<%#_&;DQ^HoostQhlC@kg0>kx3pf)46Ppca$E36+!%CabmRvE%DC& zZvmXk$2X&gn>{3!M*JqV8Ug<*X8pfg^zf$~0I-Mg48N(Vc6YW5Nhdb@9L)_p;B86h zJVY~fNujSV?n|ZnqLGJ7my%g#t#Iwe6E$IH66PHcBOtK;EFnic7#mHxqo*b~n6UI?o?4mxYAVPL*_5?_>32*D1jrD--N?w6Q3a}S7)pqvzC_c2SJeg{u6aQk<^ten z8EZ3%J%G7-^Lyny=_#4|Z7Va@DSS?CS&U!9cl?XxG1 z!=hQ`NL*^+b(&E`n0zhjGqC|&Hzpf5$?bES`d|-wS>sNGYNHA(Mg03|tvjC*^d=gj zP?n0$OFs0~ZoL6#Vu@EX0Ti>fMzXMX;@}kV#9PyNh3FDUDyMse-TZSM!1_HWx8lPQ z%{GAcMBs)&+P9kXGv^2CWjb)@P11>*6_Fx**YAw)@6j*ekv!WNU7(Y8o<1!70Zd0b|7xqETNLiav`Y}P%f>wbuYyjI}hB2HN}3-Gqn z!43Q@o$G+RKBJQTiXo8_M0$u|i_2`hLSGBJdl44m7F%U%$$zRlk%`ep`=Wv}RP+dr z4;6EQ1pfCk9_bYnq2z|?mB)LG7f6~&h%W4!n(@p}&S{iF$6*cA|GP6#r&*xV zZnV7dM(?K2x#u+Tg1>@WesVNsqBvv06HKY z=y&ymYQ&B7_0TOx8+Uig9ZsWV8!B^7n-LDjMQK>~)bexOY_l;okrdP|D8y+>(m_f| zK{**RnNe#iPPUn{N@nxslw$)OFpK3&A#39HZX>q)%PCWx7DO<{4c!OSj9?6APLQFF zue{nJfqv6bv*uxM$lTC>f*k_&hp%xDbktW^TkspK?1&^ZY4Ptc2AH3g&YY!1}pR2H#L+nd9)V3BVQ9ey5qtvaK8dVaC>qDE-?HzlJ-iW`A< z1ELb8EkdjlG*EuCTxXU$zd=&XVX=DBJ{F1V} z!}%p)GM{u^6irYv{UMyFJkrECm?la6Tb3x{Ub{gvl-g7> zEtndS1;&w;GA z&iF^cRXVE=Z$GGuWEfW}4`>(@&<4n;ZUXGq1+-WC-AFnh?T7NCYiqOXgV#Y;u(o(3 zuOXpvkJ`lAV)gkBo&{(1;Y^Tlk!+a;Qe zJ8uGj+4urD-S=DFg}U|NLr1K1tBiSLNTBh-cvO-Ci0)w^LGWQ^;Y!(Xy{m$i?B za%^i8rMH5X;bMSACkyBf+18p@4UG25y6|Q^yk<)aKOtRqcBjv4XMoFwdv&m8HTN8mKY#5?NR6(QjBJ4jx}5ErheR>xPGHN*6Qe z;g-dORTH7XZpW6GS|J2UpvZG>VUVg2X1;b-c-3WL88% zPZ!-#2|Y|i?2_r6j+noL+DWYR`;s@xlvNy~!IW7+wh=U^0o*-pn8S1hh_P%#E9#hH zJCrpNb5jaW5hl#z%bYe+5I3T}WVP9*DwpA%G5Rk2MJ4rZDaC&n4iE z_8z-+*qgE2YQe7EyO0Z!p=3+Z{d&BW^S!HIc*I>EJ=*4h96t@fRV;tGo-lL%0d(Dq zu|K4^sc?f9DA_{liUEK|fj9R+T$}mPtTttKq_S%6$&tWR;hUWG{>#Bvec=9PG;Xdf zvmwm&;Ze&WHWtcvbL=5l~E_>j__56ypPtCGcO4QudZQArx;bqc^Q z^i4b!f_DcpJX7YTW^01N)6#X9=At*C?q2B0Wqx>!M-wN?$otyeh3WeMSDLT-iKls+ zPR4X>q8JQ^syHP-m>5UEFc|6+fV0e-UX6Vp_h7@=O}0Zx>V<~5h*K4EKF2_ki#v`= zHHQ(pk)ZyvLmvTmccZzZCi?{dMWk(ZGzHSic{=6ZuRKS`b;OvzbF>i_Z1^E2u3hsN z&-V8wLd_rptJ~B%3XL_!nOY7DI95(nLyp+v{T9!0u+5b6ATciYHw4#O8S~9NMavCF zxiPNWtHfw9+O>l(CcbxXeppX)xRKXN{~YY_m*=}1&~-g|`AM)6KLB@9rZklVi$Qj? zP6pk%;CX#MrUOt3ox26tTCO+H!GL}Rl496xQw_p+d;y1|l3ZmnEeoA&>koMs61+O> zE@0P6toj9gm55haV)vKOTczvKBB>_=&Eb$>&$!)7y`)mV$rFMS{>xo%{2F#JZDo&t zkafdiw(>RfA9*22{av>TD*+_lf5#+#?M|$dyhFpe(KgFKjZmQ>MFQHTo#BnqT z+3f`(@!-~DwTLrS=iQ-9>>Bf99%@@4p%U3`_@W$N>^ z>}#zzpYYGRml~1^i+pC5e-;z?kO|76`83`M`XJX}bMO%1@djWqfeKO`;kJki9xC0H z2mOpnqUx*v0&sc2s~WjmtnCbQTWz{yL7Skum5iyEcfN5DgH|_1lSkiBE2H$I0PLH^ ziT9o+o!5&%PTOw?azG%wt^1QpkqixNE6@g~Q6Lz=Bc&cQa&88nPdT@L+H$mE_>6Pz zv3z_nWWUnz%zAjpq8z)ekBEHH78(==9n1~fX?fv5cpn_<6>}&9Pg%>n_~?!M*vCJn z6`*_F%V=l+x*C7v39DwU*?UdsE;;_Qab*-_j>&2bl$d)%qh1sjttIe*+lVO%)mQZgG^*oUg}cLz*bm=8;f$qg z#;p%2Ygv9~u}09K#Z=mB@d3DH3nroAH?{qPd8|IaPB>I#WfeuG|#XO&`b@1!F4{SpcP?xvNQN=Eq(W z<`*M({h`v1_)*h$MsWAMB;i~D*->ho z^pz?>zfup2F)C3Ds!F@rfF{BgO_kJqrf_?n#yr8*R@c~_UM?t{Ei|q^0fY+WsrOW#Cq_(fiqloWIL^$v!im>{Y{KVO3ATWBw6mVB5U?#beKI>z zomj;fXp_TVH0x8yp5g`PyqB=VlnfU%of%BzIYJXk5rUQTi@EBn$Ew5XtYMIe$X2lR z{pZkvN=8=kpv_b0Ck?j@*%8!ptz@S~eY&VCGn=#5wPE3Dk4E8hH2~ z#WhllV|Qc@4k2T;_utL(8dN#)vf@d4!xc6~;Qfd16S6x+W`~A5V#}$^2Jna6M*L_d zy@s$gl?lA(st@dOg?((P8OxkGx`*4;DTjXBCj51w;_H%G-9-4?pna@9kP*rF3M8uz`F+ZoS@dg?B z0mc6Bh`TKot5U!DzvXlAXJUGy`XN;o+K zKYL;aPIBo-wwr*9LjDOztusG~F?IMV3V*}7?i?7|2Cr5s<8eV*L~d1jG)_+CO!}t0 zL|$J0U;99D(`YLdyyv|2Y|GOr4+&QsK}IyQ)uPa*5}XnP?)~h^1AP%$UaOoei+R7Y z5vuinN1=LM$v8kmR|Mla>7rAJAbTNkik|mQV#Un$tRXtmyCA|8Z9N;c31eTzLU>uq z;xYpC6^BU}3v^s|+U{#l$OgX$julUE4Xm^V>>D}+)r|u`_8zf5b?D^>_3%fR=xzJ* zSxMI4Y5pF{a}Iy+whGC^#2jVbV9WZA8*UA`$Sa#>^wWe#xwu3&!m8Efhstw5$`p&7 z`6L!cvlZH47VUsWt<~OIMz5T_-=uh>QP_XF08TDXT3;gqEJ*#o(h?H6t7i%oT3w<1 z%vK_zkkADvi(hyhUJ||*p;#g9gOWt^*^RGea#$5}<9a@W9viQy{OPJir@F@atHJ_6 z@%cfuHu!sCF?qT_2>X3S_Yh`1tVOGh|I(BUKg2QQ2&DR|FD4{CHBw)EEbjQXxfx&N z&860ERAiX}>;6?rG1rM-({`D@B_BOyaG|~?u;aK5ZmthlfWDB#OOoHMHShGZ84DTA zw`bIqH33~-+8UZD2@y!t%l@nZ80e~Ghd$opjT3vQD777yP?hlDO>!NXAdMxz03Y!G z{T}~DF+DUiI0&FRd~E07idQ8mn^Oo~kSE62ke==%+&)%{Hcx!+<<8Rcv4>m|%;@W}m#SkNu_;cwz*oaGdMC*h|DnF6-2jsoeJbgg1mr=1JuY3y*1bWa4t&9(jt=q>#Pw)pWcInAA` z8kHp~lU*dj!k}n{^?<)3`4MW8_+KK(46Dcl9Nwa5<1}Mu89A^l;jZq8#YFo= zG@|!4O3iJ&MFUjjaEi3cDgP3)xgu2q=9LhkgTpDcg`y^5l?N5Q{Q+3{?94M}A!WXfDq zD?urZvY()2SQB*Tj&^_}4X$Z;jW-CdfL8YzYQX(G$0pX0RaH$LoSC%I5$BLXC&G-S zTSA;_dPzKeoqd;CZ69pnWBNeLIWa29X^tEk5a|ODJ-Eq6`g*3vVv#~H)*MKYvH2Rc z7-b$S>-@>no9Ks5?< zxedVKVT_;B;+&Z2V0og;uHPnvIJ2cf&f@do0)3{Aj4gn5Th>SMZGj9`*TdOh;qo1v z$h|nQ*SWH*JTjJ40kt8cOMY(AL*{?ejoHD`#}w_wK?n#pnvKlmxqFkTcjp5|!C%Lv zfUoD1%$Y$AYIyU51JEce-K%)zcl;_t`Z`4HI6YwUO_(Me&Q|gyhe=~N?xvYIrZ*qJ ziV61ZK|xj5s$b%F^1hP9Bg0H$y#*I37Vnc(4Kp%MW&nv$;>^p5H58eQrRHiZS6j9C zIXxyilWt{b^6v>7L;n6^rjD|WtWg5kPM#6J+~WUq*>QREuQ>E}^qt)l65z*gP@dix ztZ(dgVj6An+4x2a!HxD9Rk7TWhHtd%re^;tUrBL|cdc#NER##qUJ%g1a1D{@mW^@V z>Q%AMzKXh1EDAc9A<~MJS;|X;7WFbEuML=;)F(Q%T&QkIWpR8K{)w`qvJ-%_RMtGPQwuz2aWXNk2#UiUJ&O?Aane zCg^5iZ1afAJg|@7L*GIHBP0)6^v0A(o@6;0!}(xmSjnrb`$!E69)N&w_86{rQoNj> z!_Hl&&uM(Uw?!x$v%k*ipBi`O3imOIBgK?v95o7kVCXGeB40rn3!|B8SKTJ&X#w~Mv?&9`}VP>+sD~UOc zd!j`ITK3k7!OJ`jvs0CM>r5k>LP^1?PK&;foLtIKaK)l8dYjH+z_ma!raM$CB83A1 z4vv;-Of1glK11Rz_=IN%*%dj13DvyE#E)Lz#;%|9{sD7ljVJlA73ixqTrlK~Mg+!| zTKSRJqgrP1K(hc=<^_8iaee?LOt%QHm6dTWQ;AiHkXNY~_rS-rDx%;g;MMLzO*A<| zqoLhIv~C94fxTTU`rZ3D$Dlu8VwuC6EcP8Q8HQ8O`H_n(UWDwcR#4qxulg@M@B4+L zDYk&AqbGz72r>R%gxrS0f5{%C04tZA(~uq_SD2aa47`ZVq`42?PLbJCrMuM~jt*bI zGYO9Q=Lamf5dfZCoe6I3_%6Cd^wgs^fj1O*!L;e20ycDQJWVtC30-}YegrqkZWIa; zKlLiuxN=&~JERBb+$?3Cp{?j|*6n|n? z_FGl6-ma3*VkUc+M^Z(ypkEyO)HS$!NqCOW*XaVT^iuLRvgn5@eM#0VJFjm3ex7fY z_9_rb6IQ9Wzj@cAXBBdN*);t8D!`NR!`AIsU3#m<@sLCE+D7{(Fdq2~+zaWeua8i8 zciO##yJf!>V!7Fy;MfrSj0TAQh;3A^xNx zfqvc{I6~hcBh84~>(bMW=q-klGrmkZdy>dRmT(V=O_1(iLe1@Pn=3X$GMW^s!v3nivhq(SLGWB%q(Ax15AYaN z7FtZCyv9gj$fAhQ*O-kN?6C7)vobQnfB5=hinD(En04Zu+KT%z(ci#rrS&hkoeY&q zzWT~r;}!d$>nF1qAh_Z$8?1(NqBTnk^-kW_*k}H^tT^lHo7iK!%zw_7fkrpFw{f^y z+|BAMZ={P$_@BgM=g8CvnSJB`UKUACI*hNR^5Iju}67d_y5uGe{-Ql0HgLO#HMx}~V75_In9xZR_Mvi0xMDSHU@s3T^jZ9>SsA0yot>-5E$tAvi!6YqY#d0TU&~}9K;lvt)G&IUN}CDs z{#!q$y_R}VR8~Sl$YayY^ic#?GRpU6%HY^uqVua&4_;b}p{L<_a>o?C7N51#?Ueau zi?;XPI1829k`BD4BST{=6pdu!4z}k}<^`ep-wdaNGzq2jM+j|cZQy`4zR=PV1gx8p z{jo%jmi^@nYlaZRqHGiV?TJlaeKVwPJ9M@k)8T(P3*$T%V>I|`Jl^yaIq?8Ax#qeI z@O@Gb=5|5>mP1L({^KnS!L50qanJyHGp{uQ>ld$A;L$E4b~VbQkfyqWxrwkDjE&v8 zp-c&xtAQD%>^OYk-TB#TEy7rp0Dve2q&% zpQ{^Z0qQz_?T3Z?&o+Yf1AFtpR_Ve1WRYf{l=razB(eoKW{asr!j5fmsc_VcPLE-#NA<>R^Uk`6X*q;;Fj(+rFPSef9miB@*>GmJ8J8SR8m7u!l6B zS(&zs8_BSf57-_rWP$><&34QE6>lAg?+eMSRx4fp3(lN7@hU;}SZDF}GUYUvtl9}?g{wfr_Vbbb7#Lh$tm)QRP}!7CET8tSBXN^EXte+#6-^b(Yi?Vy)Lm> z3ZSbL)p}xZw{`p=I(U(GT9GA03Ys&vhS%#QwF>Hhy&P@x%s)5-FEBO);DSEJ0w>qF zVG_@E#3mzar~;C6tam{gSE$VzXgT1&EE_IKGtEnuV8GO{6O4>%TBE5V!wwZyWui4F zDg807V#ibcoTA7U1M^-R6Qa2VALZAt4l!I!!8X0va+cJ-0`kaB$U6c^Z!JT%w6UBf zyFN(2mBPe5gtkA0?1LP{>u}i zW${w*E-GB=Wu=hrPJHQ3tF>b`flGfG`G7lhT9}cme81b?k|55xOd=?)sy=p6|8`9V zS!7Jzw?rO&otmC*xLtHQ;XjqrK4So|B)44$hLWMOl2~UP~2bnEb7 zZ|dGRoHH5)Rz60t3X!T?>~Un9ovFTSsfQ}zRlC?aO{$$QCWx3#%bCK-r1VqP8op4R z5$ntea}KI%?!N8~{ru5OiwDM!V*CQWq1=QQYEi2l{LVA(ZA+yL zTGNM5!`1*`&%><<5KRBhh@LWYCx7qx zCymrP5Df9xg%M%A*Qcdk13ufbt7e9X-?ZfBqdf`RRB0ekTfqB-oxnoxO z{UV!cnrs01c@sg{V~Ijk{;rr=mVyGp4i5JfBVskbN0bLq@;%w!j69HhqN&8nP^rln zp>F~G+>dV_*;Nz0mIcPuT#h3v*xBa^32X!RBhz|hZPwg%F%CnUJnx{QaajUFkbLRg zS)t#~y|^t-3rF{8iKLt+L;ru$72_Ugu?A&$?XIu9(~bTxhA~7Pb_DZL%-dAX9Sf0K zYx#iS4^pPH=p#4b*DGxVxMlYk#wcr!q6OD81mj9 z{&qiA^heEU?(Y@bWPz;P2CygIM04}4DUEPAQSci=IC|IgHnGYlT2++o1Q1JgHhdQI zW`m#UGkLRoq6X3Ebi4*+gaYO@;otg-J{WjDiuy~g%~4^Vuw!|)aGFFv*9`Y{a%uo=pALAq3FuHRmTR1E_TwabfLY8kd89m2>x-f=mJ$Zr zPMA-@tBA}MsZ+8i8Z|j9eB}F|TJc0!E{q+p_f7V~4ZU1X%4o~aBk=$v@vp*i^@bdvNVHLNK_Jn>xT64_scLaR-&xcmV2F^W|0#epW&fkHJKLRq{t$x( zrh;Oqez=);otq0yukh*PIlYJsIiokcJ%6hSsdjgWPPCyINi zq8cJ6Tkuf@X<@Kcg~zIBz=L-I6oUk<$TXftqXQ6uD$$`c9>mM0zo^Wq<=f^N@=YQS zHrpYKCA`nVQJrAXd$w_Ur<3lOL5?$cX>yLuUmC8R+aZd!Cz8J-MyAP^;9+*W&$CP zG1qr#II>>6AUMK{JDdQ~@lO_zZ0YwWhcr`(+~OyZLjl%dh*zjDYJ~9K$oCx|>QJZ@ zXD~uQy3epLvrjv%EVBYUjJQEVEn~OdqT0U{>`h!Y z>DYQwd$O}_x$T+s?Qo=Tx{iuDart3OVlirki3Qa)sxAf-=_;D(v3dKXpmq{yJO8yrpyz+SUKHgztHW2e z&d2Zx;Kb!|PySBtXNI4b7tOx?c7+eSDB#2Uhy8NNAjR~bfpRstdCZq5A?HIAj#G^kP`V!umrhMnri<3g|iEtwm6FdrP^5p}cgKu{g#?*`3)6tJo7G(R)JO`J<}j`fBKa z=}B+}%(MmtNAMSJgXhVwZ!s!?U2xrN{nCbr{kM_Gi{*G{53N%`DDges7`imZ+ED`4 zzhSM*eq34MyM5uerr@LKkb9csKgo;tVV;k?2leP&74-Jm?%34ZAoLJa@ScxD?OG{K zNa1`ihzIu!L8+!2ks#ZpA%*C-n=_jXE8R>#=C;hSto%1sleOPBdc)r+=LEc5p{GGl zX%-YvO}X5f+*Xw{LRFZSqNkK@og}$weOO2$iArF7(OTY^c+Ds6KJ{u4$6+qFZ72T@ zXF`^I_ILvF->q3iH>3$f-*U_h64P>$ijOVIx|RRSfPw*$u>ybRLbsHKn(Yq`6zh|X zX7I^c;zC)KwFcths`DzX%D65_b$SRzmAF-O}KJCwSltRb4L z&DpdHN5?#~kMB>UbHd4LWZ{0F7ZqgH*DYCg_+@8y)A)4sixGKPw#^@eyTSYWA+vHO zqtVa9N4JoKUS;AXhX+9{-7wF*ulpc#OG_CFi%vBC92Hzo$A>^Djqt7x9@a3g%E6N9 z`)_~sePmc7YPxZLn*cWa0OD_2nTEZY0hMOb!Kz%n*9*lWYA#Q0G;A-ZVV5ytgTqhA z9&o0fJgmh8fy)&kz%fv`EIh0m$O`W+W2#66f0rVQ+da~z)|k5?-b6j|0U><6e`8-a zJGR@U8eEU#c&FjgHMaF;qMFb=m*R)UiWL3a?bwB^I1*d5XW9BG4(*mZ*r=USDd^Nt zGX5hrufne>s}3HO39`5`E(c37l7tvi@;H%W%8BDr4osjjyQRsI&m4)@t%&0F(%iM0 zZiP|tX7H7jsM)RUaS%YOkOw{kc(EBhek_ET0!sWJs8;AG^tyIIBujCNaP9b7tu4+6912Zdwi<{o4E_8= zm_JT6mOeWv__oDCYuW7!z33asJ-9{86vLMFrW2K`mBjGtu1(lg*_v39O?`OqiQZ6u zBvgiFiJ?a1efqC370=9 z)Yu(B_?6mHa&T$BY;>6vbO+r6M=*J-isSFa~57Pl>&}(>q*8a-)bh z;6%qY7;auunT8kANzUGw;O+1}EU<7CT5PMBm>?1|71o0WgeK2O4);x*guvPZG7l<` zY_^0Y>hz~By;)SKKGSE3A`T`4ys7!Q^lA3q80Tp|>7Vq&R@>z+N3G`>1!jcVd+ zG+h|J{U4oDvo))tcdNhUgpc!p$E@XUR*6`>Z$YqP1y5RIDc%GuvRj?!6jp(q_wGq3 zGH)MZ+RX&1>Hk{;j@@AkN1X)Sd811&kLZ6Am4HlNXoX&LG!rPe-JNjc!jX%61Mvp| z>tvZOl0xX4*?b@`&Mh(|tigVReW!Pv&js9hO$L!I?VoXp;Ik!*Cpsxxypug0;FE~1 zVVHw`QQY{}WE=BSU<&roabywe79)3HWbcVWHH%CfA=Bi@ggA zZEE(qtBP|7a`$5Jzsb!o6$2W+ml~=xX#cbHL5N;FoFDX$W5n!)eM3rXNSHT@Z>lM| zLpU7^ft8oxbt5#x~g1;8?CB%{rHQ`hnGB*;}MuXRGt2B}699e&6BnD0lxvEW^L=PiJkFgA`tc+Yf+h)T+qo^}?4!SO>+BrCM$K+I#+X&MTwmo;42b!HvTTdvmJhdTe=aQTm43PfF1c_keab|iF zzlmbM{qcb)i({rXK4idNs*;Cg`UZ8e@D;ltpns7_&&dJ{6tn_)XMD+*?XO&3LOQf~ zya#Z|U3bvY$)wJ6#f8WCl4PwL3kD!Gt)t@k12qR>MC_P83L9yDJ=x{xZIygYKKlM> z*=A5GgX1v*q)n8?$=B{p@M+6KY{145qxO7tVdKf(uOaP(158Ihe>WqpVNdtA*GgV* zrKyWaEQ|&XLN@hd|dAOG?auWpNZGH|Y3w`h@ z5d3D32F0!BXB@|Ks|yyv;+$ zesxPTnJQ%OP|xJPN5;>dNF8hb=aX>m?Kjp398vfOZA<#0PQd#CFec3Zt^CRtEvsO| z9LcfEkUVh0nW!AIX~oRBGU_(1Fkq2icCM{egBSm zZ3pSt52*(vpF+GMi7n+o8N}Q>#s)hQQR)WFD1ZkRz0rCM_`(Kk$7g%L8N1fG-)sLm zPSVXI18E-kJ3@;_`_hH}EW+mpgU$|Fj%mwo^gu*ysH2?2&qQkJ68IKMq&X?>

~x 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 literal 0 HcmV?d00001 diff --git a/MikroMaster/20260612/20260612132002-Config.rsc b/MikroMaster/20260612/20260612132002-Config.rsc new file mode 100644 index 0000000..e69dd0b --- /dev/null +++ b/MikroMaster/20260612/20260612132002-Config.rsc @@ -0,0 +1,3600 @@ +# 2026-06-12 13:20:03 by RouterOS 7.23.1 +# software id = A8L5-07YF +# +# model = RB952Ui-5ac2nD +# serial number = D3D50CEDCD38 +/interface bridge +add dhcpv6-agent-circuit-id="\$(INTERFACE):\$(VID)" dhcpv6-agent-remote-id=\ + "\$(BRIDGEMAC)" name=Bridge-LAN port-cost-mode=short +/interface ethernet +set [ find default-name=ether1 ] comment="WAN - Unet" loop-protect=off name=\ + "ether1 - Unet" rx-flow-control=auto tx-flow-control=auto +set [ find default-name=ether2 ] comment=LAN-2 +set [ find default-name=ether3 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-3 +set [ find default-name=ether4 ] comment=LAN-4 +set [ find default-name=ether5 ] advertise="10M-baseT-half,10M-baseT-full,100M\ + -baseT-half,100M-baseT-full,1G-baseT-full,1G-baseX" comment=LAN-5 \ + loop-protect=on poe-out=off rx-flow-control=auto tx-flow-control=auto +/interface wireless +set [ find default-name=wlan1 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados wireless-protocol=802.11 +set [ find default-name=wlan2 ] country=belarus disabled=no mode=ap-bridge \ + ssid=vados5g wireless-protocol=802.11 +/interface wireguard +add disabled=yes listen-port=29185 mtu=1420 name=WG +/interface list +add name=LAN +add exclude=LAN name=WAN +add exclude=LAN include=WAN name=Internet +/interface wireless security-profiles +set [ find default=yes ] authentication-types=wpa-psk,wpa2-psk mode=\ + dynamic-keys supplicant-identity=MikroTik +/ip dhcp-server option +add code=12 name=HostName +add code=119 force=yes name=domain-search-list value="0x03'WORKGROUP'0x00" +/ip dhcp-server option sets +add name=HP1505n options=HostName +add name=StartLife1 options=HostName +add name=amsterDev options=HostName +add name=MiTV options=HostName +add name=miller options=HostName +add name=amster options=HostName +add name=garage options=HostName +add name=domain-search-set options=domain-search-list +add name=VADOS-LEN options=HostName +add name=VADOS-NUC options=HostName +add name=MikroNUC options=HostName +add name=master options=HostName +add name=MikroYellow options=HostName +add name="=\"Client ID\"" options=HostName +/ip dns forwarders +add dns-servers=1.1.1.1,1.0.0.1 name=blsp.at verify-doh-cert=no +add comment=Kra dns-servers=1.0.0.1,1.1.1.1 name=slon2.to verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=slon3.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=slon3.cc verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2web.at verify-doh-cert=no +add dns-servers=1.1.1.1,1.0.0.1 name=bs2best.at verify-doh-cert=no +add dns-servers=1.0.0.1,1.1.1.1 name=psrms.is verify-doh-cert=no +add dns-servers=10.30.30.81 name=reg.vados.ru verify-doh-cert=no +/ip ipsec proposal +set [ find default=yes ] disabled=yes +/ip pool +add name=dhcp ranges=10.30.30.83-10.30.30.254 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set interface=Bridge-LAN lease-time=10m \ + name=masterDHCP server-address=10.30.30.81 +/ip smb users +set [ find default=yes ] disabled=yes +add disabled=yes name=vados +/ipv6 dhcp-client option +add code=119 name=domain-search-list value="0x03'WORKGROUP'0x00" +add code=12 name=HostName value="\$(HOSTNAME)" +add code=61 name=DUID value=0x00030001488f5a8e1abc +add code=61 name=clientid +/ipv6 dhcp-server option +add code=119 name=domain-search-list value="0x03'WORKGROUP'0x00" +add code=12 name=HostName value="\$(HOSTNAME)" +add code=61 name=CLIENT_DUID +add code=61 name=CLIENT_MAC +/ppp profile +set *FFFFFFFE use-upnp=no +/routing bgp template +set default disabled=no output.network=bgp-networks +/routing table +add disabled=no fib name=To-VPN +/system logging action +add email-start-tls=yes email-to=vados@vados.ru name=email target=email +/system script +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.86.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.86.pub\";\ + \n\r\ + \n#:local Script AM-setup\ + \n;\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n\ + \n\r\ + \n#\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.10.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.10.pub\";\ + \n\r\ + \n#\r\ + \n\ + \n#root.mnuc.backuper\ + \n\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@10\ + .30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n\ + \n#:local Script AM-GlobalConfig;\ + \n\r\ + \n#/system/script/add name=\$Script owner=\$Script source=([ /tool/fetch c\ + heck-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".r\ + sc\") output=user as-value ]->\"data\");\r\ + \n\ + \n#/usb1/mikro_bak_rsa.pub\ + \n#:local FetchFile AM-DOHCert.rsc\ + \n\ + \n\r\ + \n\r\ + \n#\ + \n:global MkDir;\ + \n\r\ + \n\ + \n#:local FetchFile Binary.backup\ + \n:local localDir \"\";\ + \n\ + \n\r\ + \n#\$MkDir \$localDir;\r\ + \n\ + \n#\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add comment="Global Config Script" dont-require-permissions=no name=\ + AM-GlobalConfig owner=AM-GlobalConfig policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GlobalConfig\r\ + \n# Script comment: Global Config Script\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# Warning: Dont touch this line!\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global GlobalConfReady false;\r\ + \n#\r\ + \n#\r\ + \n# Global Url For Amster scripts to fetch\r\ + \n# most be defined in AM-Init-Script or AM-setup scripts\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global ScriptsUrlSuffix (a);\r\ + \n:global CheckSumsVerify true;\r\ + \n\r\ + \n:global ScriptUpdatesCRLF true;\r\ + \n:global CommentsInScripts true;\r\ + \n\r\ + \n# Debug output:\r\ + \n:global PrintDebug true; #false;\r\ + \n\r\ + \n# Debug output for specific script:\r\ + \n#:set (\$PrintDebugOverride->\"AM-GlobalFunc\") true;\r\ + \n\r\ + \n# Debug logs\r\ + \n# Other actions (disk, email, remote or support) can be used as well.\r\ + \n# I do not recommend using echo - use debug output instead (https://rsc.\ + eworm.de/main/DEBUG.html#debug-output).\r\ + \n#/system/logging/add topics=script,debug action=memory;\r\ + \n\r\ + \n:global MikrotikUpgradeUrl \"https://upgrade.mikrotik.com/routeros\";\r\ + \n:global Domain \"WORKGROUP\";\r\ + \n\r\ + \n:global EmailGeneralTo \"vados@vados.ru\";\r\ + \n#:global EmailGeneralCc \"\";\r\ + \n\r\ + \n# \$ScriptInstallUpdate mod/notification-telegram\r\ + \n:global TelegramTokenId \"8390868324:AAG3_d1hfVR2M6pGAgDK6ZvhOe4J97nyopw\ + \";\r\ + \n:global TelegramChatId \"-1003631309063\"; #\"454403445\";\r\ + \n# Use this to send notifications to a specific topic in group.\r\ + \n#:global TelegramThreadId \"30\";\r\ + \n# Using telegram-chat you have to define trusted chat ids (not group ids\ + !)\r\ + \n# or user names. Groups allow to chat with devices simultaneously.\r\ + \n:global TelegramChatIdsTrusted {\r\ + \n \"454403445\"\r\ + \n \"-1003631309063\"\r\ + \n \"-5124482807\"\r\ + \n \"1087968824\";\r\ + \n};\r\ + \n# \"-5294757340\";\r\ + \n\r\ + \n:global TelegramChatGroups \"(all)\";\r\ + \n#:global TelegramChatGroups \"(all|home|office)\";\r\ + \n\r\ + \n:global NotificationFunctions {\r\ + \n \"email\"\r\ + \n \"telegram\";\r\ + \n};\r\ + \n# Toggle this to disable symbols in notifications.\r\ + \n:global NotificationsWithSymbols true;\r\ + \n:global TerminalColorOutput true;\r\ + \n\r\ + \n:global DetectIpAddrDefault \"https://ipv4.mikrotik.ovh/\";\r\ + \n:global DetectIpAddrFallback \"https://api.ipify.org/\";\r\ + \n\r\ + \n## Update channel. Possible values: stable, long-term, testing, developm\ + ent\r\ + \n:global updateChannel \"stable\";\r\ + \n\r\ + \n:global CertRenewUrl (\$GlobalScriptsUrl . \"certs/\" . \$Identity . \"/\ + \");\r\ + \n:global CertRenewTime 2w;\r\ + \n:global CertRenewPass (a); #{\r\ + \n# \"\";\r\ + \n# \"v3ry-s3cr3t\";\r\ + \n# \"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n:global CertWarnTime 1w;\r\ + \n:global CertIssuedExportPass (a); # {\r\ + \n# \"\";\r\ + \n# \"cert1-cn\"=\"v3ry-s3cr3t\";\r\ + \n# \"cert2-cn\"=\"4n0th3r-s3cr3t\";\r\ + \n#};\r\ + \n\r\ + \n# Script BackupAndUpdate mode, possible values: backup,\r\ + \n# updateOnce - Update once as \"osnotify\" and back \"osnotify\" mode (i\ + n terminal run :set OSUpdateMode updateOnce; \$OSUpdateMode;). \r\ + \n# osupdate - Update if available and creates backups before/after update\ + \_(ignores `forceBackup`)\r\ + \n# Set `forceBackup` to true to always create backups, even\ + \_without updates\r\ + \n# osnotify - Set `forceBackup` to always create backups on every run\r\ + \n:global DevInfoIncludeIP true;\r\ + \n:global BackupAndUpdateMode \"osnotify\"\r\ + \n\r\ + \n:global forceBackup true;\r\ + \n:global BackupPassword \"Peskar55\";\r\ + \n\r\ + \n# SFTP Backup Variables\r\ + \n:global BackupRandomDelay 0;\r\ + \n:global BackupUploadUrl \"sftp://amster.vados.ru/upload/\";\r\ + \n:global BackupUploadUser \$Identity;\r\ + \n:global BackupUploadPass \"root.mnuc.backuper\";\r\ + \n\r\ + \n:global BackupSendBinary true;\r\ + \n:global BackupSendExport true;\r\ + \n:global BackupSendGlobalConfig true;\r\ + \n:global BackupSendScripts true;\r\ + \n\r\ + \n# Remove local file after uploading if no errors\r\ + \n:global BackupRmLocal true;\r\ + \n\r\ + \n# Local Backups Root Directory \r\ + \n:global BackupLocalRoot \"tmpfs\";\r\ + \n\r\ + \n# Encrypt Backup\r\ + \n:global BackupEncrypt true;\r\ + \n\r\ + \n# Sensitive information in Backups\r\ + \n:global BackupSens true;\r\ + \n\r\ + \n# User Export\r\ + \n:global BackupUser true;\r\ + \n\r\ + \n# License Export (not for CHR, will silently skip)\r\ + \n:global BackupLicense false;\r\ + \n\r\ + \n# SSH Keys\r\ + \n:global BackupSshKeys true;\r\ + \n\r\ + \n# Certificate Export\r\ + \n:global BackupCerts true;\r\ + \n\r\ + \n# Certificate Password\r\ + \n:global BackupCertsPasswd \"\";\r\ + \n\r\ + \n# User-Manager Export\r\ + \n:global BackupUserMan false;\r\ + \n\r\ + \n# The Dude Export\r\ + \n:global BackupDude false;\r\ + \n\r\ + \n# User Files to export, comma-separated string or array of strings\r\ + \n# User Files are not removed on backup\r\ + \n# Any directory paths will be removed (/ -> _) on remote file\r\ + \n# Nonpresent files are silently skipped\r\ + \n:global BackupUserList \"autosupout.rif,autosupout.old.rif\";\r\ + \n\r\ + \n# load functions and any custom scripts\r\ + \n# [ /system/script/find where name=\"global-config-ov\ + erlay\" ], \\\r\ + \n# [ /system/script/find where name~\"^global-config-o\ + verlay\\\\.d/.\" ]\r\ + \n#\r\ + \n#:foreach Script in=([ /system/script/find where name=\"Amster-TGglobalV\ + ars\" ], [ /system/script/find where name=\"Amster-TGglobalFunc\" ]) do={\ + \r\ + \n# :onerror Err {\r\ + \n# /system/script/run \$Script;\r\ + \n# } do={\r\ + \n# :log error (\"Loading configuration from configs and functions\"\ + \_. [ /system/script/get \$Script name ] . \" failed: \" . \$Err);\r\ + \n# }\r\ + \n#}\r\ + \n#:log info \"\\ndevMode = \$devMode\";\r\ + \n#:log info \"\\ndevRunning = \$devRunning\";\r\ + \n:foreach Script in=[ /system/script/find where source~\"^#!rsc by Vados \ + GlobalRUN\\r\?\\n\" ] do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n :log error (\"Run script \" . [ /system/script/get \$Script name \ + ] . \" width marker \\\" GlobalRUN\\\" failed: \" . \$Err);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# signal we are ready\r\ + \n:set GlobalConfReady true;\r\ + \n:while (\$GlobalConfReady != true) do={:delay 500ms};\r\ + \n" +add comment="Global functions" dont-require-permissions=no name=AM-GlobalFunc \ + owner=AM-GlobalFunc policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-GglobalFunc\r\ + \n# Script comment: Global functions\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n#:global checkRunJob \$SriptName;\r\ + \n#:global fixCRLF;\r\ + \n#:if (\$fixCRLF != false) do={\r\ + \n#:foreach fixScript in=([ /system/script/find where name~\"*\" ]) do={/s\ + ystem/script/set source=[ :tocrlf [ get \$fixScript source ] ] \$fixScript\ + }\r\ + \n#:if (\$fixCRLF != \"LF\") do={ /system/script/set source=[ :tocrlf [ g\ + et \$fixScript source ] ] \$fixScript};};\r\ + \n#}\r\ + \n:global GlobalFuncReady false;\r\ + \n\r\ + \n# Git commit id & info, expected configuration version\r\ + \n:global CommitId \"main/680/f2c803f5\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 21:20:03 11.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" +add dont-require-permissions=no name=IPv6-Settings owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + #############Script Settings##################\ + \n\ + \n:local \"IF-TUN\" \"6to4-tun\"\ + \n:local \"IF-LOC\" \"Bridge-LAN\"\ + \n:local \"POOL-6TO4\" \"poolV6-local\"\ + \n:local \"force-update\" false\ + \n############ use then static ip #######################\ + \n:local \"lease-address\" [/ip address get [find interface=\$\"IF-LOC\"] \ + address]\ + \n#:local \"interface\" \"ext\"\ + \n:local bound 0\ + \n\ + \n###############################################\ + \n\ + \n:local 6to4prefix do={\ + \n :global dec2hex\ + \n :local ipv4 \$1\ + \n :local ipv6 \"2002:\"\ + \n :for i from=0 to=2 step=1 do={ \ + \n :if ( \$i = 2) do={\ + \n :set ipv6 (\$ipv6.\":\")\ + \n }\ + \n :local fp [:find \$ipv4 \".\"]\ + \n :if ( \$fp > 0 ) do={\ + \n :set ipv6 (\$ipv6.[\$dec2hex [:pick \$ipv4 0 \$fp]])\ + \n :set ipv4 [:pick \$ipv4 (\$fp + 1 ) [:len \$ipv4]]\ + \n }\ + \n }\ + \n :return (\$ipv6.[\$dec2hex \$ipv4])\ + \n}\ + \n:local \"str_replace\" do={\ + \n :local \"str-pos\" [:find \$1 \$2]\ + \n :local \"str-len\" [:len \$2]\ + \n :local str \"\"\ + \n :local rest \$1\ + \n :while (\$\"str-pos\" >= 0) do={\ + \n :local t [:pick \$rest 0 \$\"str-pos\"]\ + \n :if ( \$4 > 0 ) do={\ + \n :for i from=1 to=(\$4 - [:len \$t]) step=1 do={\ + \n :set str (\$str.\$5)\ + \n }\ + \n }\ + \n :set str (\$str.\$t.\$3)\ + \n :set rest [:pick \$rest (\$\"str-pos\"+\$\"str-len\") [:len \$re\ + st]]\ + \n :set \"str-pos\" [:find \$rest \$2]\ + \n }\ + \n :return (\$str.\$rest)\ + \n}\ + \n\ + \n:if (\$bound=1) do={\ + \n :local t [:find \$\"lease-address\" \"/\"]\ + \n\ + \n :if ( \$t >= 0 ) do={\ + \n :set \"lease-address\" [:pick \$\"lease-address\" 0 \$t]\ + \n }\ + \n\ + \n :if ( [/interface 6to4 print count-only where name=\$\"IF-TUN\"] = 0\ + ) do={\ + \n /interface 6to4 add !keepalive local-address=\$\"lease-address\"\ + \_mtu=1280 name=\$\"IF-TUN\" remote-address=10.30.30.0\ + \n :set \"force-update\" true\ + \n }\ + \n\ + \n :local \"IPv4-TUN\" [/interface 6to4 get [find name=\$\"IF-TUN\"] lo\ + cal-address];\ + \n\ + \n :if ( \$\"lease-address\" != \$\"IPv4-TUN\" || \$\"force-update\" = \ + true) do={\ + \n /interface 6to4 set [find name=\$\"IF-TUN\"] local-address=\$\"l\ + ease-address\"\ + \n /ipv6 address remove [find interface=\$\"IF-TUN\"]\ + \n /ipv6 address remove [find interface=\$\"IF-LOC\"]\ + \n /ipv6 route remove [find gateway ~ \$\"IF-TUN\" and dst-address=\ + \"::/0\"]\ + \n :local \"pool-prefix\" [\$6to4prefix \$\"lease-address\"]\ + \n :if ( [/ipv6 pool print count-only where name=\$\"POOL-6TO4\"] =\ + \_0) do={ \ + \n /ipv6 pool add name=\$\"POOL-6TO4\" prefix=(\$\"pool-prefix\ + \".\":1::/64\") prefix-length=64\ + \n } else={\ + \n /ipv6 pool set [/ipv6 pool find where name=\$\"POOL-6TO4\"] \ + prefix=(\$\"pool-prefix\".\":1::/64\")\ + \n }\ + \n /ipv6 address add address=(\$\"pool-prefix\".\"::\".[\$MAC2EUI64\ + \_[/interface get [find name=\$\"interface\"] mac-address]].\"/3\") interf\ + ace=\$\"IF-TUN\" advertise=no\ + \n /ipv6 address add eui-64=yes from-pool=\$\"POOL-6TO4\" interface\ + =\$\"IF-LOC\" advertise=yes\ + \n /ipv6 route add dst-address=::/0 gateway=(\"::10.30.30.81%\".\$\ + \"IF-TUN\")\ + \n :local t [/ipv6 address get [find interface=\$\"IF-LOC\"] addres\ + s]\ + \n :set t [:pick \$t 0 [:find \$t \"/\"]]\ + \n :if ( [/ipv6 dhcp-server option print count-only where name=DNS]\ + \_= 0) do={\ + \n /ipv6 dhcp-server option add code=23 name=DNS value=(\"0x\".\ + [\$\"str_replace\" \$t \":\" \"\" 4 \"0\"])\ + \n } else={\ + \n /ipv6 dhcp-server option set [/ipv6 dhcp-server option find \ + where name=DNS] value=(\"0x\".[\$\"str_replace\" \$t \":\" \"\" 4 \"0\"])\ + \n }\ + \n :if ( [/ipv6 dhcp-server print count-only where interface=\$\"IF\ + -LOC\"] = 0) do={\ + \n /ipv6 dhcp-server add address-pool=\$\"POOL-6TO4\" dhcp-opti\ + on=DNS interface=\$\"IF-LOC\" lease-time=1d name=\$\"IF-LOC\"\ + \n }\ + \n :if ( [ipv6 nd print count-only where interface=\$\"IF-LOC\"] = \ + 0) do={\ + \n /ipv6 nd add advertise-dns=no interface=\$\"IF-LOC\" other-c\ + onfiguration=yes\ + \n }\ + \n }\ + \n}" +add dont-require-permissions=no name=IPv6-GlobalFunc owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global MAC2EUI64 do={\ + \n :local EUI64 \"\"\ + \n :local MAC \$1\ + \n :local HEX2DEC \"0123456789ABCDEF\"\ + \n :for i from=0 to=5 step=1 do={\ + \n :if ( \$i = 0 ) do={\ + \n :set EUI64 [:pick \$MAC 0]\ + \n :set EUI64 (\$EUI64.[:tostr [:pick \$\"HEX2DEC\" ([:find \$\ + \"HEX2DEC\" [:pick \$MAC 1]] ^ 2)]])\ + \n }\ + \n :if ( \$i = 1 || \$i = 3) do={\ + \n :set EUI64 (\$EUI64.\":\")\ + \n }\ + \n :if ( \$i = 2 ) do={\ + \n :set EUI64 (\$EUI64.\"FF:FE\")\ + \n }\ + \n :if ( [:find \$MAC \":\"] = 2 ) do={\ + \n :set MAC [:pick \$MAC 3 [:len \$MAC]]\ + \n :set EUI64 (\$EUI64.[:pick \$MAC 0 2])\ + \n }\ + \n }\ + \n :return (\$EUI64)\ + \n}\ + \n\ + \n:global dec2hex do={\ + \n :local hex \"\"\ + \n :local dec [:tonum \$1]\ + \n :for i from=0 to=4 step=4 do={\ + \n :set hex ([:pick \"0123456789ABCDEF\" ((\$dec>>\$i)&0xf) (((\$de\ + c>>\$i)&0xf)+1)].\$hex)\ + \n }\ + \n :return ([:tostr \$hex])\ + \n}" +/user group +add name=backup policy="telnet,ssh,ftp,read,write,policy,test,sniff,sensitive,\ + !local,!reboot,!winbox,!password,!web,!api,!romon,!rest-api" +/ip smb +set enabled=no interfaces=lo +/interface bridge port +add bridge=Bridge-LAN interface=ether5 trusted=yes trusted-dhcpv6=yes +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-LAN interface=ether4 trusted-dhcpv6=yes trusted-ra=yes +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 lldp-med=no lldp-poe-power=no protocol="" +/ip settings +set accept-redirects=yes ipv4-multipath-hash-policy=l4 max-neighbor-entries=\ + 8192 +/ipv6 settings +set allow-fast-path=no disable-ipv6=yes disable-link-local-address=yes \ + max-neighbor-entries=8192 multipath-hash-policy=l4 +/interface detect-internet +set detect-interface-list=WAN internet-interface-list=Internet \ + lan-interface-list=LAN wan-interface-list=WAN +/interface l2tp-server server +set authentication=mschap2 use-ipsec=yes +/interface list member +add interface="ether1 - Unet" list=WAN +add interface=Bridge-LAN list=LAN +/interface wireguard peers +add allowed-address=0.0.0.0/0 client-allowed-address=0.0.0.0/0 disabled=yes \ + interface=WG name=MikroVados persistent-keepalive=10s public-key=\ + "64Y25EUZQQt8EIeAJYD8qWt+te8qvGEepnswdBgmzlY=" +add allowed-address=0.0.0.0/0 client-address=10.8.0.2/24 \ + client-allowed-address=0.0.0.0/0 client-dns=8.8.8.8 client-endpoint=\ + 146.120.64.211 client-keepalive=10s client-listen-port=33821 disabled=yes \ + interface=WG name=GitHub persistent-keepalive=10s public-key=\ + "HTofQ0KtUsZij7zFn0F72r8oatxGn/el6bzLhM9El1g=" responder=yes +/interface wireless cap +set bridge=Bridge-LAN caps-man-addresses=10.30.30.10 \ + caps-man-certificate-common-names=CAPsMAN-51B25E507D07 certificate=\ + CAP-488F5A8E1ABC interfaces=wlan2,wlan1 lock-to-caps-man=yes +/ip address +add address=10.8.0.2 disabled=yes interface=WG network=10.8.0.0 +add address=10.30.30.81/24 interface=Bridge-LAN network=10.30.30.0 +/ip cloud +set update-time=no +/ip dhcp-client +add add-default-route=special-classless default-route-distance=2 \ + default-route-tables=main dhcp-options=hostname,clientid,clientid_duid \ + interface="ether1 - Unet" name=client1 use-broadcast=never use-peer-dns=\ + no use-peer-ntp=no +/ip dhcp-server config +set accounting=no +/ip dhcp-server lease +add address=10.30.30.101 client-id=1:48:8f:5a:8e:ee:a8 mac-address=\ + 48:8F:5A:8E:EE:A8 server=masterDHCP +add address=10.30.30.107 client-id=1:f0:de:f1:91:d:1e mac-address=\ + F0:DE:F1:91:0D:1E server=masterDHCP +add address=10.30.30.83 client-id=1:0:80:77:ec:43:86 mac-address=\ + 00:80:77:EC:43:86 server=masterDHCP +add address=10.30.30.70 dhcp-option=domain-search-list,HostName \ + dhcp-option-set=HP1505n mac-address=00:1E:0B:1A:88:8D server=masterDHCP +add address=10.30.30.50 client-id=1:4:7c:16:36:f5:37 mac-address=\ + 04:7C:16:36:F5:37 server=masterDHCP +add address=10.30.30.71 client-id=1:10:2d:41:2c:20:c2 mac-address=\ + 10:2D:41:2C:20:C2 server=masterDHCP +add address=10.30.30.61 client-id=1:10:8:c1:81:59:5f mac-address=\ + 10:08:C1:81:59:5F server=masterDHCP +add address=10.30.30.72 client-id=1:10:38:1f:d2:5f:13 mac-address=\ + 10:38:1F:D2:5F:13 server=masterDHCP +add address=10.30.30.99 client-id=1:10:b1:df:e9:d0:d5 mac-address=\ + 10:B1:DF:E9:D0:D5 server=masterDHCP +add address=10.30.30.111 client-id=1:fe:2:52:be:3f:16 mac-address=\ + FE:02:52:BE:3F:16 server=masterDHCP +add address=10.30.30.92 client-id=1:d4:6d:6d:fd:e5:49 mac-address=\ + D4:6D:6D:FD:E5:49 server=masterDHCP +add address=10.30.30.93 client-id=1:7e:8b:1e:cb:b8:cb mac-address=\ + CC:42:10:12:46:94 server=masterDHCP +add address=10.30.30.94 client-id=1:50:cc:f8:85:96:a mac-address=\ + 50:CC:F8:85:96:0A server=masterDHCP +add address=10.30.30.82 client-id=1:e4:18:6b:58:34:ab mac-address=\ + E4:18:6B:58:34:AB server=masterDHCP +add address=10.30.30.75 client-id=1:0:27:15:41:97:a9 mac-address=\ + 00:27:15:41:97:A9 server=masterDHCP +add address=10.30.30.77 dhcp-option=HostName dhcp-option-set=StartLife1 \ + mac-address=C4:82:E1:03:49:10 server=masterDHCP +add address=10.30.30.73 client-id=1:10:38:1f:82:81:f2 mac-address=\ + 10:38:1F:82:81:F2 server=masterDHCP +add address=10.30.30.95 client-id=1:88:ae:dd:60:39:54 dhcp-option=HostName \ + dhcp-option-set=VADOS-NUC mac-address=88:AE:DD:60:39:54 server=masterDHCP +add address=10.30.30.98 client-id=1:c8:5b:76:d8:cc:bf dhcp-option=HostName \ + dhcp-option-set=VADOS-LEN mac-address=C8:5B:76:D8:CC:BF server=masterDHCP +add address=10.30.30.96 client-id=iPhone mac-address=4A:91:ED:0E:1F:39 \ + server=masterDHCP +add address=10.30.30.74 client-id=MiTV dhcp-option=HostName dhcp-option-set=\ + MiTV mac-address=20:72:A9:D3:34:36 server=masterDHCP +add address=10.30.30.30 dhcp-option=HostName dhcp-option-set=miller \ + mac-address=F0:75:5D:1E:5F:71 server=masterDHCP +add address=10.30.30.100 client-id=iVados dhcp-option=HostName \ + dhcp-option-set="=\"Client ID\"" mac-address=DE:4D:72:F3:1A:9F server=\ + masterDHCP +/ip dhcp-server network +add address=10.30.30.0/24 caps-manager=10.30.30.10 dhcp-option=\ + domain-search-list dhcp-option-set=domain-search-set dns-server=\ + 10.30.30.81 domain=WORKGROUP gateway=10.30.30.81 netmask=24 ntp-server=\ + 10.30.30.81,10.30.30.10 wins-server=10.30.30.95,10.30.30.98 +/ip dns +set allow-remote-requests=yes cache-max-ttl=1d doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=8.8.8.8,8.8.4.4 +/ip dns adlist +add disabled=yes url=https://ros.vados.ru/dns/vados.ru.local +add disabled=yes url=https://ros.vados.ru/dns/30.30.10.in-addr.arpa +/ip dns static +add comment="Local DNS server for vados.ru" ns=10.30.30.81 regexp=*.vados.ru \ + type=NS +add comment="*.vados.ru Regexp" forward-to=10.30.30.81 regexp=\ + "\".*\\\\.vados\\\\.ru\"" type=FWD +add comment="*.30.30.10.in-addr.arpa Regexp" forward-to=10.30.30.81 regexp=\ + "\".*\\\\.30\\\\.30\\\\.10\\\\.in-addr\\\\.arpa" type=FWD +add address=10.30.30.81 comment=NS.vados.ru.local name=ns.vados.ru.local \ + type=A +add comment="DNS ns.vados.ru.local" match-subdomain=yes name=vados.ru ns=\ + ns.vados.ru.local type=NS +add address=10.30.30.33 comment=reg.vados.ru name=reg.vados.ru type=A +add address=8.8.8.8 comment="Google-dns IPv4 1" match-subdomain=yes name=\ + dns.google type=A +add address=8.8.4.4 comment="Google-dns IPv4 2" name=dns.google type=A +add address=10.30.30.33 comment=AMSTER name=amster.vados.ru type=A +add address=10.30.30.33 name=ros.vados.ru type=A +add address=10.30.30.95 name=vados-nuc type=A +add address=10.30.30.33 name=amster-nuc type=A +add address=10.30.30.33 name=amster type=A +add address=10.30.30.33 name=amster-reg type=A +add address=10.30.30.33 name=mng.vados.ru type=A +add address=10.30.30.33 name=mgr.vados.ru type=A +add address=10.30.30.33 name=prt.vados.ru type=A +add address=10.30.30.33 match-subdomain=yes name=mikrots.vados.ru type=A +add address=10.30.30.30 comment=MILLER name=miller.vados.ru type=A +add address=10.30.30.30 name=MILLER-LEN type=A +add address=10.30.30.30 name=miller type=A +add address=1.0.0.1 comment="CloudFlare-doh IPv4 2" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=1.1.1.1 comment="CloudFlare-doh IPv4 1" disabled=yes name=\ + security.cloudflare-dns.com type=A +add address=9.9.9.9 comment="Cuad9-dns IPv4 1" disabled=yes name=\ + dns.quad9.net type=A +add address=149.112.112.112 comment="Cuad9-dns IPv4 2" disabled=yes name=\ + dns.quad9.net type=A +add address=195.133.25.16 comment="DNS Comss" name=dns.comss.one type=A +add address=10.30.30.81 comment=LocalNet name=MikroVados type=A +add address=10.30.30.10 name=MikroNUC type=A +add address=10.30.30.86 name=MikroYellow type=A +add address=10.30.30.85 name=MikroMic type=A +add address=10.30.30.95 name=VADOS-NUC type=A +add address=10.30.30.98 name=VADOS-LEN type=A +add address=91.192.189.2 comment=Unet-DNS name=ns1.unet.ws type=A +add address=10.30.30.20 name=garage type=A +/ip firewall address-list +add address=91.215.120.206 list=TRUSTED +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=8.8.4.0/24 list=YouTube +add address=8.8.8.0/24 list=YouTube +add address=8.34.208.0/20 list=YouTube +add address=8.35.192.0/20 list=YouTube +add address=23.236.48.0/20 list=YouTube +add address=23.251.128.0/19 list=YouTube +add address=34.0.0.0/15 list=YouTube +add address=34.2.0.0/16 list=YouTube +add address=34.3.0.0/23 list=YouTube +add address=34.3.3.0/24 list=YouTube +add address=34.3.4.0/24 list=YouTube +add address=34.3.8.0/21 list=YouTube +add address=34.3.16.0/20 list=YouTube +add address=34.3.32.0/19 list=YouTube +add address=34.3.64.0/18 list=YouTube +add address=34.4.0.0/14 list=YouTube +add address=34.8.0.0/13 list=YouTube +add address=34.16.0.0/12 list=YouTube +add address=34.32.0.0/11 list=YouTube +add address=34.64.0.0/10 list=YouTube +add address=34.128.0.0/10 list=YouTube +add address=35.184.0.0/13 list=YouTube +add address=35.192.0.0/14 list=YouTube +add address=35.196.0.0/15 list=YouTube +add address=35.198.0.0/16 list=YouTube +add address=35.199.0.0/17 list=YouTube +add address=35.199.128.0/18 list=YouTube +add address=35.200.0.0/13 list=YouTube +add address=35.208.0.0/12 list=YouTube +add address=35.224.0.0/12 list=YouTube +add address=35.240.0.0/13 list=YouTube +add address=57.140.192.0/18 list=YouTube +add address=64.15.112.0/20 list=YouTube +add address=64.233.160.0/19 list=YouTube +add address=66.22.228.0/23 list=YouTube +add address=66.102.0.0/20 list=YouTube +add address=66.249.64.0/19 list=YouTube +add address=70.32.128.0/19 list=YouTube +add address=72.14.192.0/18 list=YouTube +add address=74.125.0.0/16 list=YouTube +add address=104.154.0.0/15 list=YouTube +add address=104.196.0.0/14 list=YouTube +add address=104.237.160.0/19 list=YouTube +add address=107.167.160.0/19 list=YouTube +add address=107.178.192.0/18 list=YouTube +add address=108.59.80.0/20 list=YouTube +add address=108.170.192.0/18 list=YouTube +add address=108.177.0.0/17 list=YouTube +add address=130.211.0.0/16 list=YouTube +add address=136.22.160.0/20 list=YouTube +add address=136.22.176.0/21 list=YouTube +add address=136.22.184.0/23 list=YouTube +add address=136.22.186.0/24 list=YouTube +add address=142.250.0.0/15 list=YouTube +add address=146.148.0.0/17 list=YouTube +add address=152.65.208.0/22 list=YouTube +add address=152.65.214.0/23 list=YouTube +add address=152.65.218.0/23 list=YouTube +add address=152.65.222.0/23 list=YouTube +add address=152.65.224.0/19 list=YouTube +add address=162.120.128.0/17 list=YouTube +add address=162.216.148.0/22 list=YouTube +add address=162.222.176.0/21 list=YouTube +add address=172.110.32.0/21 list=YouTube +add address=172.217.0.0/16 list=YouTube +add address=172.253.0.0/16 list=YouTube +add address=173.194.0.0/16 list=YouTube +add address=173.255.112.0/20 list=YouTube +add address=192.158.28.0/22 list=YouTube +add address=192.178.0.0/15 list=YouTube +add address=193.186.4.0/24 list=YouTube +add address=199.36.154.0/23 list=YouTube +add address=199.36.156.0/24 list=YouTube +add address=199.192.112.0/22 list=YouTube +add address=199.223.232.0/21 list=YouTube +add address=207.223.160.0/20 list=YouTube +add address=208.65.152.0/22 list=YouTube +add address=208.68.108.0/22 list=YouTube +add address=208.81.188.0/22 list=YouTube +add address=208.117.224.0/19 list=YouTube +add address=209.85.128.0/17 list=YouTube +add address=216.58.192.0/19 list=YouTube +add address=216.73.80.0/20 list=YouTube +add address=216.239.32.0/19 list=YouTube +add address=2ip.ru list=Test-IP +add address=89.110.101.17 comment=VDSIna list=TRUSTED +add address=10.8.0.0/24 comment="WG VDSIna" list=TRUSTED +add address=ikus.pesc.ru comment=ikus.pesc.ru list=NoVdsina +add address=love.ru comment=love.ru list=NoVdsina +add address=gosuslugi.ru comment=gosuslugi.ru list=NoVdsina +add address=pochta.ru comment=pochta.ru list=NoVdsina +add address=vdsina.com list=NoVdsina +add address=vdsina.ru list=NoVdsina +add address=youla.ru list=NoVdsina +add address=kupiprodai.ru list=NoVdsina +add address=myip.ru list=Test-IP +add address=geoip.co list=NoVdsina +add address=comp-lenta.ru list=NoVdsina +add address=128.85.102.70 comment=update.microsoft.com list=\ + windowsupdateslist +add address=wu-b-net.trafficmanager.net. comment=\ + ctldl.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=ctldl.windowsupdate.com.delivery.microsoft.com. comment=\ + ctldl.windowsupdate.com list=windowsupdateslist +add address=redir.update.msft.com.trafficmanager.net. comment=\ + update.microsoft.com list=windowsupdateslist +add address=geo.prod.do.dsp.trafficmanager.net. comment=\ + geo.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=13.74.139.29 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12437.d.akamaiedge.net. comment=\ + kv801.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=displaycatalog-rp.md.mp.microsoft.com.akadns.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=rp-consumer-prod-displaycatalog-geomap.trafficmanager.net. \ + comment=displaycatalog-rp.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=sls.update.microsoft.com. comment=slscr.update.microsoft.com \ + list=windowsupdateslist +add address=glb.sls.prod.dcat.dsp.trafficmanager.net. comment=\ + sls.update.microsoft.com list=windowsupdateslist +add address=fe3.delivery.mp.microsoft.com. comment=\ + fe3cr.delivery.mp.microsoft.com list=windowsupdateslist +add address=glb.cws.prod.dcat.dsp.trafficmanager.net. comment=\ + fe3.delivery.mp.microsoft.com list=windowsupdateslist +add address=fe2cr.update.msft.com.trafficmanager.net. comment=\ + fe2cr.update.microsoft.com list=windowsupdateslist +add address=download.windowsupdate.com.delivery.microsoft.com. comment=\ + download.windowsupdate.com list=windowsupdateslist +add address=wu-f-net.trafficmanager.net. comment=\ + download.windowsupdate.com.delivery.microsoft.com list=windowsupdateslist +add address=tsfe.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=edge.ds-c7110-microsoft.global.dns.qwilted-cds.cqloud.com. \ + comment=9.au.download.windowsupdate.com list=windowsupdateslist +add address=52.158.227.125 comment=array812.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dspw65.akamai.net. comment=\ + download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.151.58.88 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net. \ + comment=licensing.mp.microsoft.com list=windowsupdateslist +add address=licensing-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-licensing-aks2aks.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-nlu-net.trafficmanager.net. comment=\ + star.f.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.b.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-tlu-net.trafficmanager.net. comment=\ + star.b.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=storeedgefd.xbetservices.akadns.net. comment=\ + storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net. \ + comment=storeedgefd.dsx.mp.microsoft.com.edgekey.net list=\ + windowsupdateslist +add address=e16646.dscg.akamaiedge.net. comment=\ + storeedgefd.dsx.mp.microsoft.com.edgekey.net.globalredir.akadns.net list=\ + windowsupdateslist +add address=40.69.76.189 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=bg.microsoft.map.fastly.net. comment=\ + 3.au.download.windowsupdate.com list=windowsupdateslist +add list=windowsupdateslist +add address=40.69.75.33 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sf.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=cdp-f-ssl-tlu-net.trafficmanager.net. comment=\ + star.sf.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a2033.dscd.akamai.net. comment=\ + star.sb.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.138.242 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-nlu-net.trafficmanager.net. comment=\ + dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=1D.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-b-tlu-net.trafficmanager.net. comment=\ + 1d.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a122.dscg3.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=windowsupdateslist +add address=geover.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e10370.d.akamaiedge.net. comment=\ + geover.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=52.232.182.21 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.95 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=a1683.dscd.akamai.net. comment=\ + dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net. \ + comment=collections.mp.microsoft.com list=windowsupdateslist +add address=a1847.dscd.akamai.net. comment=\ + wildcard.f.tlu.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=13.74.142.6 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=au.download.windowsupdate.com.edgesuite.net. comment=\ + 2.au.download.windowsupdate.com list=windowsupdateslist +add address=a767.dscg3.akamai.net. comment=\ + au.download.windowsupdate.com.edgesuite.net list=windowsupdateslist +add address=52.156.123.84 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.78.254 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=4.au.download.windowsupdate.com.delivery.microsoft.com. comment=\ + 4.au.download.windowsupdate.com list=windowsupdateslist +add address=cl-glcb907925.gcdn.co. comment=\ + 4.au.download.windowsupdate.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.111 comment=array510.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.69.70.43 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com. \ + comment=tsfe.trafficshaping.dsp.mp.microsoft.com list=windowsupdateslist +add address=ts-frontend.trafficmanager.net. comment=\ + tsfe.trafficshaping.dsp.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=40.69.75.248 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.74.84 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=sds.trafficmanager.net. comment=software-download.microsoft.com \ + list=windowsupdateslist +add address=40.69.74.80 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.175.242.182 comment=array804.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=dlc-shim.trafficmanager.net. comment=download.microsoft.com list=\ + windowsupdateslist +add address=e12671.dscd.akamaiedge.net. comment=\ + download.microsoft.com.edgekey.net list=windowsupdateslist +add address=20.187.55.34 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.231 comment=array513.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.222.13 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=e12358.d.akamaiedge.net. comment=\ + kv601.prod.do.dsp.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. comment=\ + tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=dcat-f-tlu-net.trafficmanager.net. comment=\ + tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=a1856.dspw65.akamai.net. comment=\ + tlu.dl.delivery.mp.microsoft.com-c.edgesuite.net list=windowsupdateslist +add address=52.167.164.252 comment=array506.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=13.74.137.54 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=kv501.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + kv501.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=collections-prod-frontdoor-geomap.trafficmanager.net. comment=\ + consumer-collections-aks2eap.md.mp.microsoft.com.akadns.net list=\ + windowsupdateslist +add address=52.167.160.173 comment=array509.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.77.148 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.200.126 comment=array507.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=52.167.167.59 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.172 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=smtp.mail.me.com comment=smtp.mail.me.com list=NoVdsina +add address=40.70.76.5 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.186.119 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.177.176.186 comment=array520.prod.do.dsp.mp.microsoft.com \ + list=windowsupdateslist +add address=40.70.76.27 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.160.43 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.110 comment=array817.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.142.8 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.138.254 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.167.96 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.69.76.215 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.143.200 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.111 comment=array818.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.112 comment=array819.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=13.74.137.53 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.98 comment=array805.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.96 comment=array803.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.104 comment=array811.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.101 comment=array808.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.99 comment=array806.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.17 comment=array802.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.97 comment=array804.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.103 comment=array810.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.16 comment=array801.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=40.70.77.177 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.164.84 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.105 comment=array812.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.107 comment=array814.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.232.161.82 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.108 comment=array815.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=52.167.161.91 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.102 comment=array809.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.109 comment=array816.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.106 comment=array813.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.117 comment=array622.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.107 comment=array612.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.108 comment=array613.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.105 comment=array610.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.113 comment=array618.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.116 comment=array621.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.98 comment=array603.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.114 comment=array619.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.111 comment=array616.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.97 comment=array602.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.106 comment=array611.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.110 comment=array615.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.119 comment=array624.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.135 comment=array514.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.97 comment=array503.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.99 comment=array604.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.61 comment=array504.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.131 comment=array510.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.132 comment=array511.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.96 comment=array601.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.104 comment=array609.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.138 comment=array517.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.60 comment=array501.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.139 comment=array518.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.118 comment=array623.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.113 comment=array820.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.103 comment=array608.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.154.7.100 comment=array807.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.129 comment=array508.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.134 comment=array513.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.62 comment=array505.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.137 comment=array516.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.101 comment=array606.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.96 comment=array502.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.130 comment=array509.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.112 comment=array617.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.100 comment=array605.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.115 comment=array620.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.136 comment=array515.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=purchase.md.mp.microsoft.com.akadns.net. comment=\ + purchase.mp.microsoft.com list=windowsupdateslist +add address=e110219.a.akamaiedge.net. comment=\ + purchase.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=72.153.5.140 comment=array519.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.141 list=windowsupdateslist +add address=72.153.5.63 comment=array506.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.128 comment=array507.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.102 comment=array607.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=storesdk.xbetservices.akadns.net. comment=\ + storesdk.dsx.mp.microsoft.com list=windowsupdateslist +add address=e16646.g.akamaiedge.net. comment=\ + storesdk.dsx.mp.microsoft.com.edgekey.net list=windowsupdateslist +add address=software-download.microsoft.com.delivery.microsoft.com. comment=\ + software-download.microsoft.com list=windowsupdateslist +add address=download.prss.microsoft.com.akamaized.net. comment=\ + software-download.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=72.145.35.109 comment=array614.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=72.153.5.133 comment=array512.prod.do.dsp.mp.microsoft.com list=\ + windowsupdateslist +add address=213.180.192.0/19 comment=YandexDisk list=NoVdsina +add address=87.250.250.50 comment=YandexDisk list=NoVdsina +add address=consumer-prod-bcfd-v7-afd.trafficmanager.net. comment=\ + displaycatalog.mp.microsoft.com list=windowsupdateslist +add address=purchase-europeeap.md.mp.microsoft.com.akadns.net. comment=\ + purchase.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=ne-az-conspurchase-mp.trafficmanager.net. comment=\ + purchase-europeeap.md.mp.microsoft.com.akadns.net list=windowsupdateslist +add address=storeedgefd.dsx.mp.microsoft.com.edgekey.net. comment=\ + cdn.storeedgefd.dsx.mp.microsoft.com list=windowsupdateslist +add address=star.f.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.f.tlu.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=a1996.dscd.akamai.net. comment=\ + wildcard.f.dl.delivery.mp.microsoft.com.edgesuite.net list=\ + windowsupdateslist +add address=cp801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=glb.tas02.sls-prod.dcat.dsp.mp.microsoft.com. comment=\ + tas02.sls.update.microsoft.com list=windowsupdateslist +add address=cp601.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + cp601.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=star.sb.tlu.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedgeextensions.sb.tlu.dl.delivery.mp.microsoft.com list=\ + windowsupdateslist +add address=star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com. \ + comment=msedge.sf.dl.delivery.mp.microsoft.com list=windowsupdateslist +add address=cdp-f-ssl-nlu-net.trafficmanager.net. comment=\ + star.sf.dl.delivery.mp.microsoft.com.delivery.microsoft.com list=\ + windowsupdateslist +add address=tm-pifd-prod-gbl-weight.trafficmanager.net. comment=\ + paymentinstruments.mp.microsoft.com list=windowsupdateslist +add address=10.30.30.33 comment=amster disabled=yes list=NoWG +add address=10.30.30.10 comment=MikroNUC disabled=yes list=NoWG +add address=89.110.101.17 comment=!!!VDSINA!!!! disabled=yes list=NoWG +add address=wg.vados.ru comment=VDSina-vpn list=VDSina +add address=80.85.244.9 list=TRUSTED +add address=disc801.prod.do.dsp.mp.microsoft.com.edgekey.net. comment=\ + disc801.prod.do.dsp.mp.microsoft.com list=windowsupdateslist +add address=185.71.70.78 disabled=yes list=TRUSTED +add address=176.53.203.171 disabled=yes list=TRUSTED +add address=176.53.203.170 disabled=yes list=TRUSTED +add address=176.53.202.194 disabled=yes list=TRUSTED +add address=89.110.101.17 comment="!!!VDSina Server!!!" list=NoVdsina +add address=dns.quad9.net comment=Quad9-dns disabled=yes list=Trusted-DNS +add address=dns.google comment=Google-dns list=Trusted-DNS +add address=security.cloudflare-dns.com comment=CloudFlare-dns list=\ + Trusted-DNS +add address=time.google.com comment=Google-time list=Trusted-NTP +add address=0.ru.pool.ntp.org comment=ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=1.ru.pool.ntp.org disabled=yes list=Trusted-NTP +add address=2.ru.pool.ntp.org comment=2.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=3.ru.pool.ntp.org comment=3.ru.pool.ntp.org disabled=yes list=\ + Trusted-NTP +add address=cp.vdsina.com comment=VDSina-vpn list=VDSina +add address=vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns.vados.ru comment=VDSina-vpn list=VDSina +add address=vdsina.com comment=VDSina-vpn list=VDSina +add address=cp.vdsina.ru comment=VDSina-vpn list=VDSina +add address=ns1.vdsina.ru comment=VDSina-vpn list=VDSina +add address=10.30.30.0/24 comment="Local Network" list=Local-Net +add address=10.8.0.0/24 comment="WireGuard Network" list=Local-Net +add address=146.120.64.208/29 comment="External Net" list=Unet +add address=esia.gosuslugi.ru comment=esia.gosuslugi.ru list=NoVdsina +add address=lk.gosuslugi.ru comment=lk.gosuslugi.ru list=NoVdsina +add address=trudvsem.ru comment=trudvsem.ru list=NoVdsina +add address=10.30.30.30 comment=miller disabled=yes list=NoWG +add address=10.30.30.33 comment="Direct connet to DNS servers" list=\ + Direct-DNS +/ip firewall filter +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=12h chain=input comment="block honeypot DNS" \ + connection-state=new dst-port=53 in-interface="ether1 - Unet" protocol=\ + udp 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="ether1 - Unet" 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 \ + in-interface="ether1 - Unet" protocol=tcp src-address-list=!TRUSTED +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot asterisk" \ + connection-state=new dst-port=5060 in-interface="ether1 - Unet" protocol=\ + udp +add action=add-src-to-address-list address-list="Honeypot Hacker" \ + address-list-timeout=4w2d chain=input comment="block honeypot NTP" \ + connection-state=new dst-port=123 in-interface="ether1 - Unet" protocol=\ + udp +add action=accept chain=input disabled=yes dst-port=29185 in-interface=\ + "ether1 - Unet" protocol=tcp +add action=accept chain=input dst-port=29185 in-interface="ether1 - Unet" \ + protocol=udp +add action=accept chain=input comment="tcp Accept input DNS queries from LAN" \ + disabled=yes dst-port=53 in-interface=Bridge-LAN protocol=tcp \ + src-address=10.30.30.0/24 +add action=accept chain=input comment="udp Accept input DNS queries" \ + disabled=yes dst-port=53 in-interface=Bridge-LAN protocol=udp \ + src-address=10.30.30.0/24 +add action=fasttrack-connection chain=forward comment=\ + "FastTrack for non-VPN connections" connection-mark=!VPN_No_FastTrack \ + connection-state=established,related,new disabled=yes +add action=accept chain=output comment="accept WireGuard" disabled=yes \ + dst-address-list=VPN-Server out-interface="ether1 - Unet" protocol=udp \ + src-port=13231 +add action=accept chain=output disabled=yes dst-address-list=VPN-Server \ + dst-port=29185 out-interface="ether1 - Unet" protocol=udp +add action=fasttrack-connection chain=forward comment="defconf: fasttrack" \ + connection-state=established,related,new disabled=yes routing-mark=\ + !To-VPN +add action=accept chain=output disabled=yes protocol=tcp src-port=443 +add action=accept chain=output disabled=yes src-address=127.0.0.1 +add action=accept chain=forward comment="defconf: accept in ipsec policy" \ + disabled=yes ipsec-policy=in,ipsec +add action=accept chain=forward comment="defconf: accept out ipsec policy" \ + disabled=yes ipsec-policy=out,ipsec +add action=accept chain=forward comment=\ + "defconf: accept established,related, untracked" connection-state=\ + established,related,untracked +add action=drop chain=forward comment="defconf: drop invalid" \ + connection-state=invalid in-interface="ether1 - Unet" src-address=\ + !10.30.30.0/24 +add action=drop chain=forward comment=\ + "defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat \ + connection-state=new in-interface="ether1 - Unet" src-address-list=\ + !VDSina +add action=drop chain=forward comment=\ + "Filter Rule to block FB address LIST : )" disabled=yes dst-address-list=\ + facebook +add action=drop chain=forward comment=\ + "Filter Rule to block YOUTUBE address LIST : )" disabled=yes \ + dst-address-list=YouTube +add action=accept chain=input protocol=icmp +add action=accept chain=input connection-state=established +add action=accept chain=input connection-state=related +add action=drop chain=input in-interface-list=!LAN +/ip firewall mangle +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for NoVdsina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=NoVdsina new-routing-mark=main passthrough=no \ + src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "Mark Routing main for VDSina" disabled=yes dst-address=!10.30.30.0/24 \ + dst-address-list=VDSina new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 +add action=mark-routing chain=prerouting comment=\ + "!!!ERROR Mark Routing main for Unet!!!" disabled=yes dst-address-list=\ + Unet new-routing-mark=main passthrough=no +add action=mark-routing chain=prerouting comment="Test-IP sites" disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=Test-IP new-routing-mark=\ + To-VPN src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment=FuckRKN disabled=yes \ + dst-address=!10.30.30.0/24 dst-address-list=RKN-dnsLookup \ + new-routing-mark=To-VPN passthrough=no src-address=10.30.30.0/24 +add action=mark-routing chain=prerouting comment="Mark Routing main for NoWG" \ + disabled=yes new-routing-mark=main passthrough=no src-address=\ + 10.30.30.0/24 src-address-list=NoWG +add action=mark-routing chain=prerouting comment="VDSIna for All sites" \ + disabled=yes new-routing-mark=To-VPN src-address=10.30.30.0/24 \ + src-address-list=!NoWG +add action=mark-connection chain=prerouting comment=\ + "Mark VPN connections to exclude from FastTrack" disabled=yes \ + new-connection-mark=VPN_No_FastTrack +add action=change-mss chain=forward comment="MSS on WG" disabled=yes new-mss=\ + 1380 out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn \ + tcp-mss=1381-65535 +add action=mark-routing chain=prerouting comment="VPN Network" disabled=yes \ + dst-address=10.8.0.0/24 log-prefix=VPN-Net new-routing-mark=To-VPN \ + passthrough=no src-address=10.30.30.0/24 +/ip firewall nat +add action=redirect chain=dstnat comment="udp Redirect DNS in NAT" disabled=\ + yes dst-port=53 protocol=udp src-address=10.30.30.0/24 to-addresses=\ + 10.30.30.81 to-ports=53 +add action=redirect chain=dstnat comment="tcp Redirect DNS in NAT" disabled=\ + yes dst-port=53 protocol=tcp src-address=10.30.30.0/24 to-addresses=\ + 10.30.30.81 to-ports=53 +add action=masquerade chain=srcnat comment=WG dst-address-list=!NoVdsina \ + out-interface=WG src-address-list=!NoWG +add action=masquerade chain=srcnat comment="Default NAT" out-interface=\ + "ether1 - Unet" src-address=10.30.30.0/24 +add action=dst-nat chain=dstnat comment=amster.vados.ruhttps dst-port=443 \ + fragment=no in-interface="ether1 - Unet" protocol=tcp src-address=\ + !10.30.30.0/24 to-addresses=10.30.30.33 to-ports=443 +add action=dst-nat chain=dstnat comment="amster.vados.ru 3x-ui" disabled=yes \ + dst-port=2904 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2904 +add action=dst-nat chain=dstnat comment=reg.vados.ru disabled=yes dst-port=\ + 5000 in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=5000 +add action=dst-nat chain=dstnat comment="Docker swarm" disabled=yes dst-port=\ + 2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=10.30.30.33 \ + to-ports=2377 +add action=dst-nat chain=dstnat comment="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=npm dst-port=81 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=To-VPN to-addresses=10.30.30.33 \ + to-ports=81 +add action=dst-nat chain=dstnat comment=SSH dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp src-address-list=TRUSTED to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="portainer agent" disabled=yes \ + dst-port=2377 in-interface="ether1 - Unet" protocol=tcp to-addresses=\ + 10.30.30.33 to-ports=2377 +add action=dst-nat chain=dstnat disabled=yes dst-port=22 in-interface=\ + "ether1 - Unet" protocol=tcp routing-mark=!To-VPN to-addresses=\ + 10.30.30.33 to-ports=22 +add action=dst-nat chain=dstnat comment="Yandex.DNS Family" disabled=yes \ + dst-port=53 in-interface=Bridge-LAN protocol=udp src-address-list=KIDS \ + time=6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +add action=dst-nat chain=dstnat disabled=yes dst-port=53 in-interface=\ + Bridge-LAN protocol=tcp src-address-list=KIDS time=\ + 6h-15m,sun,mon,tue,wed,thu,fri,sat to-addresses=77.88.8.3 +/ip firewall raw +add action=drop chain=prerouting comment="Drop Honeypot Hackers" \ + in-interface="ether1 - Unet" src-address-list="Honeypot Hacker" +add action=accept chain=prerouting comment="Trusted DNS" disabled=yes \ + in-interface-list=WAN src-address-list=Trusted-DNS +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + extras.getpagespeed.com content=extras.getpagespeed.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=linux.duke.edu \ + content=linux.duke.edu disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtube.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleapis.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ggpht.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=youtu.be \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=ytimg.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googlevideo.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=gstatic.com \ + disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + googleusercontent.com disabled=yes +add action=add-dst-to-address-list address-list=FuckRKN address-list-timeout=\ + none-dynamic chain=prerouting comment="YouTube raw" content=\ + nhacmp3youtube.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=rutube.ru \ + content=rutube.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment="me.com raw" \ + content=me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "icloud.com raw" content=icloud.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com raw" content=smtp.mail.me.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "smtp.mail.me.com.akadns.net raw" content=smtp.mail.me.com.akadns.net \ + disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + "api.db-ip.com raw" content=api.db-ip.com disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=\ + esia.gosuslugi.ru content=esia.gosuslugi.ru disabled=yes +add action=add-dst-to-address-list address-list=NoVdsina \ + address-list-timeout=none-dynamic chain=prerouting comment=gosuslugi.ru \ + content=gosuslugi.ru disabled=yes +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set irc disabled=no +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip ipsec settings +set accounting=no +/ip ipsec policy +set 0 disabled=yes dst-address=0.0.0.0/0 src-address=0.0.0.0/0 +/ip ipsec profile +set [ find default=yes ] dpd-interval=2m dpd-maximum-failures=5 +/ip proxy +set cache-administrator="" max-cache-size=none port=80,443 src-address=\ + 0.0.0.0 +/ip route +add check-gateway=ping disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=\ + WG routing-table=To-VPN scope=30 target-scope=10 +/ip service +set ftp disabled=yes +set telnet disabled=yes +set reverse-proxy disabled=yes +set ssh address=10.30.30.0/24 port=2222 +set winbox address=10.30.30.0/24 +set api address=10.30.30.0/24 disabled=yes +set api-ssl address=10.30.30.0/24 disabled=yes +set www-ssl certificate=Root-YE port=18443 +set www address=10.30.30.0/24 disabled=yes port=18880 +/ip service webserver +set acme-plain=no crl-plain=no graphs-plain=no graphs-secure=no index-plain=\ + no index-secure=no rest-plain=no rest-secure=no scep-plain=no \ + webfig-plain=no webfig-secure=no +/ip ssh +set forwarding-enabled=both publickey-authentication-options=verify-required \ + strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=internal +add forced-ip=146.120.64.211 interface="ether1 - Unet" type=external +add forced-ip=89.110.101.17 interface=WG type=external +add interface=lo type=internal +/ipv6 dhcp-client +add add-default-route=yes disabled=yes interface=*F rapid-commit=no request=\ + info use-interface-duid=yes validate-server-duid=no +/ipv6 dhcp-server option sets +add name=domain-search-set options=domain-search-list +add name="=\"Client ID\"" options=HostName +/ipv6 nd +set [ find default=yes ] advertise-dns=yes disabled=yes interface=Bridge-LAN \ + managed-address-configuration=yes other-configuration=yes pref64=::/64 +/ipv6 nd prefix +add autonomous=no disabled=yes interface=Bridge-LAN on-link=no prefix=none +/ipv6 nd prefix default +set dhcp6-pd-preferred=yes +/ipv6 nd proxy +add disabled=yes interface=lo +/ipv6 nd settings +set router-advertisement-route-distance=100 +/routing settings +set single-process=no +/system clock +set time-zone-name=Europe/Moscow +/system clock manual +set time-zone=+03:00 +/system identity +set name=MikroMaster +/system logging +add action=email disabled=yes regex="* added|changed|removed *" topics=\ + system,info +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes use-local-clock=yes +/system ntp client servers +add address=0.ru.pool.ntp.org +add address=1.ru.pool.ntp.org +add address=2.ru.pool.ntp.org +add address=3.ru.pool.ntp.org +add address=time.google.com disabled=yes +/system package update +set check-certificate=yes-without-crl +/system scheduler +add comment="Every Day Set Global Environment Variables" name=AM-SetGlobalEnv \ + on-event="/system/script { run AM-GlobalConfig; run AM-GlobalFunc; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Every Day Check For Update Scripts" interval=1d name=\ + AM-ScriptInstallUpdate on-event=\ + ":global ScriptInstallUpdate; \$ScriptInstallUpdate;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Update RKN DNS Looup" disabled=yes interval=20m name=\ + AM-RKN-dnsLookup on-event="/system/script { run AM-RKN-dnsLookup; }" \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +/system watchdog +set watchdog-timer=no +/tool e-mail +set certificate-verification=no from=MikroVados port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool mac-server +set allowed-interface-list=LAN +/tool mac-server mac-winbox +set allowed-interface-list=LAN +/tool netwatch +add certificate=DigiCert-Global-Root-CA check-certificate=no comment="doh, doh\ + -url=https://security.cloudflare-dns.com/dns-query, notify, name=CloudFlar\ + e-doh IPv4 1" disabled=yes down-script="" host=1.1.1.1 http-codes="" \ + interval=10s name="CloudFlare-doh IPv4 1" port=443 test-script="" type=\ + https-get up-script="" +add check-certificate=no comment="doh-fallback, doh-url=https://security.cloud\ + flare-dns.com/dns-query, doh-cert=DigiCert Global Root CA, notify, name=Cl\ + oudFlare-doh IPv4" disabled=yes down-script="" host=1.0.0.1 http-codes="" \ + name="CloudFlare-doh IPv4" port=443 test-script="" type=https-get \ + up-script="" +add comment="dns, notify, name=Google-DNS IPv4" disabled=yes dns-server=\ + 8.8.8.8 down-script="" host=dns.google http-codes="" name=\ + "Google-DNS IPv4" test-script="" type=dns up-script="" +add certificate=GTS-Root-R4 check-certificate=yes comment="doh-fallback, doh-u\ + rl=https://dns.google/dns-query, doh-cert=GTS Root R1, notify, name=Google\ + -DOH IPv4" disabled=yes dns-server=8.8.4.4 down-script="" host=dns.google \ + http-codes="" name="Google-DOH IPv4" port=443 record-type=NS src-address=\ + "" test-script="" type=dns up-script="" +add comment="dns-fallback, notify, name=Cuad9-DOH IPv4" disabled=yes \ + dns-server=9.9.9.9 down-script="" host=dns9.quad9.net http-codes="" \ + interval=10s name="Cuad9-DOH IPv4" src-address=146.120.64.211 \ + test-script="" timeout=800ms type=dns up-script="" +add certificate=DigiCert-Assured-ID-Root-CA comment="doh-fallback, doh-url=htt\ + ps://dns.quad9.net/dns-query, name=Cuad9-DOH IPv4" disabled=yes \ + down-script="" host=149.112.112.112 http-codes="" interval=10s name=\ + "Cuad9-DOH IPv4" port=443 test-script="" type=https-get up-script="" +add comment="dns-fallback, notify, name=ns1.unet.ws" disabled=yes \ + down-script="" host=91.192.189.2 http-codes="" interval=10s name=\ + ns1.unet.ws test-script="" type=simple up-script="" +/user aaa +set accounting=no diff --git a/MikroMaster/history/20260612/20260612132002-Diff-Config.rsc b/MikroMaster/history/20260612/20260612132002-Diff-Config.rsc new file mode 100644 index 0000000..0c06bdd --- /dev/null +++ b/MikroMaster/history/20260612/20260612132002-Diff-Config.rsc @@ -0,0 +1,49 @@ +25c25 +< add disabled=yes listen-port=29185 mtu=1420 name=WG +--- +> add listen-port=29185 mtu=1420 name=WG +2598,2599c2598,2599 +< 146.120.64.211 client-keepalive=10s client-listen-port=33821 disabled=yes \ +< interface=WG name=GitHub persistent-keepalive=10s public-key=\ +--- +> 146.120.64.211 client-keepalive=10s client-listen-port=33821 interface=WG \ +> name=GitHub persistent-keepalive=10s public-key=\ +2606c2606 +< add address=10.8.0.2 disabled=yes interface=WG network=10.8.0.0 +--- +> add address=10.8.0.2 interface=WG network=10.8.0.0 +3325c3325 +< "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 \ +3329c3329 +< "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 \ +3342,3343c3342,3343 +< disabled=yes new-routing-mark=main passthrough=no src-address=\ +< 10.30.30.0/24 src-address-list=NoWG +--- +> new-routing-mark=main passthrough=no src-address=10.30.30.0/24 \ +> src-address-list=NoWG +3345,3346c3345 +< disabled=yes new-routing-mark=To-VPN src-address=10.30.30.0/24 \ +< src-address-list=!NoWG +--- +> new-routing-mark=To-VPN src-address=10.30.30.0/24 src-address-list=!NoWG +3348,3352c3347,3351 +< "Mark VPN connections to exclude from FastTrack" disabled=yes \ +< new-connection-mark=VPN_No_FastTrack +< add action=change-mss chain=forward comment="MSS on WG" disabled=yes new-mss=\ +< 1380 out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn \ +< tcp-mss=1381-65535 +--- +> "Mark VPN connections to exclude from FastTrack" new-connection-mark=\ +> VPN_No_FastTrack +> add action=change-mss chain=forward comment="MSS on WG" new-mss=1380 \ +> out-interface=WG protocol=tcp routing-mark=To-VPN tcp-flags=syn tcp-mss=\ +> 1381-65535 +3480c3479 +< add check-gateway=ping disabled=yes distance=1 dst-address=0.0.0.0/0 gateway=\ +--- +> add check-gateway=ping disabled=no distance=1 dst-address=0.0.0.0/0 gateway=\ -- 2.52.0