From cee37b56675ee0ff1a5747d00bcb72ea88fa5427 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Wed, 27 May 2026 11:40:38 +0300 Subject: [PATCH] Backup for MikroMaster created successfully at May 27 11:40:38. --- .../20260527/20260527114002-Binary.backup | Bin 0 -> 259512 bytes .../20260527/20260527114002-Config.rsc | 3462 +++++++++++++++++ .../20260527/20260527114002-Diff-Config.rsc | 22 + 3 files changed, 3484 insertions(+) create mode 100644 MikroMaster/20260527/20260527114002-Binary.backup create mode 100644 MikroMaster/20260527/20260527114002-Config.rsc create mode 100644 MikroMaster/history/20260527/20260527114002-Diff-Config.rsc diff --git a/MikroMaster/20260527/20260527114002-Binary.backup b/MikroMaster/20260527/20260527114002-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..d017a0da4e5923d0ba7c8872b384fd2b9d58a267 GIT binary patch literal 259512 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�VHIN z5NEje)9gOp0hb+??l@m(vZ1zqP%eY25xOg$^#Ad1RC~>nH01Y*-#+CMM56yEnOz#T zr0m`hs45g4oSfEV5gR>hhaP>3do8ASGdaGK+bCi4m$h`hQp+#~{wYi(_rB;;U11iD zz1%wdZTT9uQeR;e>$xQgT<(G7^}-1kR!DoYByFv#1|G>60ZB7NmK0tu5mdMv8@j$E z>x4LN#tQNkDx<==kWjKrJdnt^`)eRWcm%}C(vNn130oH8FY)j-KkTY9_Q?a@s*RoN z&A`?*>K(D~BLtRKLj8bfqiD1JCZ{az%kGNCX}QepRet}hU zuCsSz+4&vaW>hjCzrGFhxPxmfk*CP%lfgZ<3#p@p!;=(hF7#I~97CZt zG`He-fQP_{I;feJKE;xWoYXymP2N4_9|1;Utp==y z?A_~;%rByidD5|B9)J%W?*xwY3$0JD{6lc1E9<+l)OF&suvs29V7Z@MoX2!a(KO2` zaC{%$6-`D$1SbVX8fwNF?X*W`tfqUO5B2CUIt4GDNN8+Zet0Zn-aG}=%btKT)uqOq?S)dSLzlx+~j}MwXhD%CY z?QjuGW!;J}YDIuC&8i!;LO9UW3`X(i!hP=mwgUxEq}}lzIVc(%pA>M-kEhh6B+P}Q z<@x~hhl2>+9V=RC+Or9O#xVp45FJ0TdtNpwl_Pv&kQn%iFdp6|7L8jls{|3v*~kf1 zcy>+rGy7X{Oe8x3bRH!BYEc(f@Wwo0DF}@q=C`+tl{uoHV5DSFS)8akf<Hp*xVgqdjNaDAe=Yo48AY>q8R8C$2@iRM^3BTwjfCsL zwO!L^bQ@GFS#K_hCm`bXtr$~iDUWOU%l3=VSs^AmOn^X^L%5F~TCFuL0y?Vmun%(T zAEFiBap&OJ#gCaqsKnP!xS=hQVYkskgvaVkH<1g(m7>y=AFDzrJ1W_9a#l2hT((;f zb$fH zye*DrYi^x~@@fa|@Vi(9H9{3*$EJ;6A%71{c}!zxgfliO_{mfX$;=ohq!bcIl*|x^ zEUu^L+t8Ps7CtbWz`CjWY{yn>8nSt;;ZARyem z(7B$rL{dO9?#HNN9_#}=%jQVv5?GfJ21L>#*zXyd2WDlK5*xmJHx%qRNQ)EUFqx3T ze<7dwE76ixJ2iGkU$mfhTv@|FX<5xKi$3{+IR=c`wIWno#9C4S!CKN>SjdqVIX2zL zOErPKzDJa3C(%*UGJYW%{Ro z?ExC{Vssf|-E#y39vaO9x^=*4pgfw|Shv5jf)rxiL0{;yq5;4ErZ}&n43jtK`Mq!u z#NVV*8eVh=I)2h2P)&a+U_s|ELVSU@naV#BkAu)9oq5L~E+fi6v&mFarYql}IHjxW z?Yt4dVx%P(yNZI%#xXJP&oY5+MmJ$7B`)^U!eKk(5}c1=dgEGmUjOFqWJwde=R?3v zb2Wktf1Q*RlJw&@SGt^r+zXdw;+f8X*e-IbW1oPp6%c8iwDC-;20;gxKy!e;j5^tj zM=E$fKEFzXNJOrG><=>_xQtHLM>2aa7=k$F+vGa5Nv&Jxm2Bb>oZ@0QG8Vk^aSFy( zkaZvk(X8U2g;0mpp%@)&JJpVj>bVa#ujNXlsJ2lujUn_= z4PByE1Y8D*>eMF!K#a`^opZES&dbr@bA>hVHk}?dqnoS>G+`pm#D)Lx`?HM9?(iG! zL$pk`!ReV4DmKcyU6RO1$m^il==U`LneKT=uknu*nBjGEa`Mfp1u@n5a+(^Z_bj`E zkTddqt8w7a3od$(8Ftrgjz7aFqjET;%!d?Jr^tA5yXBvHch<*<-hRo#(H~zRPYRNZ zBPy>=;}9R5-mr_L!mss$_&?&`pIp&8U6(3mPYJ$}E86N0xDE@#O=hM(=2kBw#CTZl}vQSmXGtaL4L+F;9^d(AeC z-Xf`Eb?RHN00I(9^R7!U*Di@37BrD8=0TIm7#NhCT_+ud&MMgyw36vHK^{#W5t}#H z^s_90yS%-HnQ`B?tP)TRrPz!~ToB&@lInRfVqcQ9FsVgg596sw9qr#sdj!!{ICNoZ z?AR_HhY@s|T!Qc|!Q}K#J2~v|O{}*KwV{ofd}PFpxV(aZlxK!TP9UN zWXXljOB5%^A~kfytDu;NxDr!_f|vaswu2(FP!kTu(zH#v1?-{9zTcVV^HVH8`fkAi@If@h3Et8zwzYV~Z_W05vQ zi*+vO1YAU-iwA#W=*@k+p0z+~2i9=+QVv8og}xttnikP!VWGP0>KH=R-0HD4$W=_} zm4&D=kbYjqbNX8bY*Qe3fw*^-9}0zQC?-3K)l z&-OSP{Oz>(*|D$vnmDg}4M@g~RDIQ%fa;c{ligcua|U{TbA?S~cqxvUQ})N8^|;d{ z&aK->CR+|rY6a%UUBqQDdcnB8`IO&7jvmat}F z=Bagurr&FHj}lCHbEOUL+26R~(m%?kS4OxgSZBX5pOw9_LBS?*|e z70fhifw%@ntqeSu%P@40{(9N{^l!W1)~#VeDLdzX^g93KS{wNZBVCdN; z*{J-IcxnJ1eF$hD>h6x9q+=yV9 zBHa`;7Rig1E&^ff&pK5I^i~P_xvZPG?=$^;L?fPa>dk-)ed(cOW5W%rqLO>zgi*eo z8&Qbn{@yO>r}?(SOImGhf=uOhph;YQO!xP3tc3N3BIBYXP`s1_H4I#yJLn5gq)@u& zbjCAQLTYOPCUF%IHwgb0vp{t{M80h1mPC<`~;t}J05 zv0IBBXjTe6Cp(J>DuSZeOOO7A&OVr7MsO^~SE9v2va?G@*St9KVH%#S?2IdEZ0)3RNrJzP#PfO9@%)!zdl;sv_a(t>% z8xTnEgLVQB*X%2lZL6SE`n7<|)$~79>I=7Rt|Dtcq@vOD{s#6c2nxM(|YUm_Iin#VPG0UQ!L&+G9S6gIMghjeLIkQ2M_#3R7ey_i*FHC!U-4D>k)d=vPLZ+5F(5IOy;-6Z+ zKhqM(1=GVkq`obYIu)5yob6~cYz>izY*V+^p!D6*d79@**@0?4(JT~8xsL{~?;d`G zGZ8^X-F?{!A8NCwa$}0vW^TC!m5;4KYU=X@_Fp)*|)+R_hAFb3*)| zfL1-j)EYd!mGi!L7!ISJe7sGk5VNCdhQROUh7bXirg`dT90TGSOJ|~g;#(|Hg_Pv{ z4m)1w2S!Vq+s*%R97f~h-3xPSi9bJDokKi#2lTP_l+HDKx0de)&(tgO((@jGn8Ex^ zPjT{N6?UKNbviSYm{CPxm!hz zl+UrWqJ!H!jrmf&P$p5^Qy)b2g9G!5wyjq)uN^_0o+zje`=|pz{H`cBF&6Ntv$p8q z)+0c@uTlD~^lD@B7CXQMB|K~jVERKyL`#>={%c$`M082V5SBSUj19dQ+qMiIIw$|WJ}w|Ht|=Jc9TA*~E%zExog<-b$;NsTExK+^p^7FIR< ztce)`WM8tWPK6!X+_yWEOpFJbT&A#QL?b7EThKHrN_?Txs`U|uY=;>v%|uRLY5L+0 zFUY!Dr9(cu(J$;2*GR+PL}K)5!3vTzB}1p6Sa@Ml$#Ij9t^Uv?lO6SnXsuXxCH_Zs zM1lIavy!`zt*#8$)^82Nkb%Brp?A+L5j#lXDB8%ozakxGpVH+HQbdILBTp3#aiRUY z9>{|D77m+p*IG>lCa!}#*sxPj?4t&6Y&1`JwE3?v>s%5+gKXXdXEI+^TbAihGB0y4 zOUzdsRqHk1Tmjx_<%L<0zSuDKi^V-5&A-+#y&i&<(*Pu)=WK5>R3;|qHtswQvdOjG zqh)OI?Qo8c3zks|>OTEtWRAH1$?R2jiha54E-}4YQW-NkLmeDzDi9ghvQak-Fp+uCReT_Ups$h$E7?2Zk z4U0E|!k_o5%7##cgEv-bbIk3??UH=7fZU*#A#$W#_O%|Bekkc;RvaCYDf>7D9q#6t zR}hB=dRO-HlS{vHVV8H6QyM}Gfw=d57y_5H{`Wy>? zdZfx|K=syNbqRUj=2QcZqpJmk<=WQ}0na|U@8Ncxk1{ji2WH1eN*BK_x{>q&Q^$El z|NYM)-EjKyC=RJ$>K;%idrG76pHGp08nDT+4PsfDYJc7}LFNmT$Pb zUbG;w=}4XKhTfAAtQ=gm;LKMxt%$>sp)g=LVp8=`2NlgJqKt?jS07L0Jvi^_Bueuv zN&4C!=#n#(sWD|)umR*r?o%i^4RUdUCO+;IA@+{z$Z}{GNzZ{}N}4*(orC#f{BEGg zZpXvh?z=dd+B0&~=RzLYHnmDL9EV(Be}0$LU6v|pIqG!@K^W0+Am^^GO*EFt{+}87 z8UNYv>=<-vT``^J?TZ|M?ErHkmU96kk3t#-`hKsFl9DJH9}L=L=htmZ=eCo(0}AND zEk+I=B=7LT5mk?IN|qVOVaZtLFHF<)x#X0BU}Bj7wf_=#Jibx!IZIN7*g9c%1Xk?L zMsdwS-Lc`IPkDxKtM(8Ya(A6_*kjzzZci`(knu;(yrD(l+J&aQZ;#{Z>LPNg1TPF2 zvBW1toveiY3?8k)GQu8FIa-HbtrcQ~ubxHA&ULHm_+~mtJ<4gk6sV-$P4EMEnCJ_-cvioc1Q+f%bzxwIa`WuSf;V27 zxRYK!g>%faT4&^6)5;YlPhww<$`Ako4zPrTw@>sP_jASJ+N^rJ79*b`|Ma3F#8($p zvkU{YWCZy>&?Yh|YcPdo;@xUSKH+%so&Bt;3rL=9_}V9vwta+0lprDQ{dJ;$^iWvN zB-Pj%*U)Y8Kau5#I%2b>sr+P@d_63167@7Zd+h;DDR?ChMwfeIy}4TU<+L=6JO;oQ z`HV$mhUTAuilXx>;7X=iGMXAsj)%`-*L%mADD{BYetEfM_!=9^{gp@O1hb{flsGlX zq~Lvw!)hR4`VB~z>o4_Asm%AC4;vpdBjg|n)AcU*5a(;g>Fp=RlEn@->>zgmcH{Qg zBMp|!Uk%sb;5fbK;6D+B{c-&Ol_8r;X;WcuuR|m^-Zn(V=iy7aHEK&b;6#WZvrj|y zP$bsc`-j)VXTuPW4CI|Svuz>+Yaj4!AJjP7#U# zFb{l6K4=P>=oCROG?8=Uq|^^Y7U!@wyhoTPbOhP5xT7V=+zfnN1gg%fZmiy90+=Uf zp3+YRZHM&=Lc3#LFWja)_kV-B%(%=m=- zneo_+ALwy&*%N8~5h841(;)MNNg6q`ni9!!^`)L-0bFWX0odk#OG`w`9f>OWyy|Ut zGTJf~%+^74hk`6l`nIB^YL+>_F7X4wZ8eY5Ba%q}kcC%G2zZV#R|>eE0Vz@ZQX>>E zJw$+rORLP1W7!>A=*=w?A`b2aS|>^Fgu=)eyVX^zmCdeYa>WQvS7P|^AP0Opl$tAx z&Bpnap2h6AO>xuNaH0_DATS)P9rD>ermVtOek&rC=}Q6sa-jG~v7sGwUmjWt;`DHu zz_g(cA@s74V*vLV{RY2|YOF&Ybw0Q86w_}>kZ~?*S?lQfE!~W*a*AltWvb{-m?iv} z^<(%@X?vl3TvRujju^zwgYQ1u=fKjqPDQpMBFVRPd8g=y_;R-q8C%k)UUxFlTdjPx zE1Kem99MhZ!q1Q;bZK*d+gOt;iXb|3@a5LC@2vk!ZW*NTx=1*xo-t-DEGnjpEGvU6 zg#SQ9$Q#tszvkPP-J>&+g(3qi|22&<%k z)z0bS${dr>SJmzyAYkb4D7@*?!j#FF7H5}h{!t}F{-v*w(_}yFEiMUtE z?O&J&$KgJMie*SPe!KO`S!zy$l}@l>DDqBA44kn%zb3{xUp6CK=pMsSv`Tj_$$eQ^ zMU49XpQrBWeS{(~o{`(vs$R3Cl91sf3ZWN@<7Ls(jP8x>bkihNWx)Dg!?E zBMc&1w|BxiKY6J#+i4rCY?)l$G1KJ6GWFNJ?c)E7m7g5uRf*@340D#@7${h`d-+i} zyCz%A^a3QN!^MU0EB7gC$xh=31JZqZbaAN*4OjFD$vhw}YP_g_H3P?w8pP5h`Ed_e z?4gw{fPnE&2@{=IYBP+VVR`esqjGdYR_+@$w%nNSu&PM%Y9WFbdqEVu<uY+6&ZT zbP~dIPjibUUJ#yM=)?4y4128uahf~jdC_w%FTR^K`gz{3=3}G3zR8v)XlCl1YLI&Q ztvC-&<_%>Acu6I&P(ZD1gDkCo^B1puIy$3-8|nW&aD%FE)rzEW?*8eHwxbvpsPW+V zb|NVPADv}$y@Yh&6yS2eHxN(uLS8PbF3K&)Of_pPk?ebWCbLTp_3_%AVA zd|km$ln-;Mad}70ajR7BbE!v%>=ICDdW}$6@X~=G9@C0(sghm2H*GD`QfXc5yNIRPVi6f9m`R{zAfKsX3M?b;43C-OSucON4qKc(!jA1V z(*Qt_rxNT!;8O=OQPv!c?bK7CxRLe9q-srOgxAh$r6ao&?Uu_LB7GYxCA0U4U0p80 z6iLOX;9t3ZJfkrw6hYT*RovR;kJ=Rh8*Yrj>Rar?%1Ax5p%ZhZXRe8(>@F z@G^P%u+E47fqO*CI3Fs<9r3&|{U>%=$&t%iVXKu=k+6J$nvs-xDgjMMi7`p*3i|6d zKwP>)2wWU!peYb{1T?Y_d41kdbHau7zsRB91eh3MB<1lP7*keqpCyk7V*ce~z&(mW zMSS~wcS<#~e431DzR|fIFr0&5Wo2j~WBgqgqz|c4`xR&Go)o|aeqOq??%qBIcjSJG z@ZCQgD=-xiy1P*%IpFm0x-$&w@X$f%*s=kv7(+c$S^N5{sAZnX(LTeLq(kZ= zE1y2cF_?d!_PML_4uTpjxAmgQfhq0FKL1ULX|3HbJWB#0hFr&%XbY(FLlqCebQ4{j zKo{6S776>lhEtI%^Jn45f;7N}@I+;MGE@}Pa)rh9T(~M>Wk>2gM-y{S7-#pWACn%{ z{A+LlWNHC#F7rR7geOP~MgMqr9I}uoqY<*HdB)Km^vjv;C}OE1Gl5h=(Dwo$&lS;9 zjzSvXA?dT%t>UuZvzZbnJWo0FNSUffkaLdUT1l}~^?trrvJ;*ub5qu>F=#un;6x}q8`&=T9e6F*r&6jf}93?u7xZRkP>G8r-S#>jML64bW!P>>->}^$iJWu3@U>4kMdc`YNk~aw59%Af`nLI2< zGEy^vHOGJ~{BUr5A&MIFrU<5;1fsyAj#xd=Mpru~O#JWG0T30fff`}^SNhQ$8VAc;iEjiTk(w)P?t1Ql3z zHi?DqKIv$ve}BjIAxsh;k~sTcC@p1G_ot&_>P!X@@@6Sx5h2pyhmFr=J~qHbE1H~j ztk=acy832PE3t@+zqmpp7q6W3q9cv$V+{i$MwXwnU7{>wZN;l8S1l*UVLexyFL-kC zaN?8U=xjEEu%^(pSXOPO84fu3a`?B6n$vSqqp5DLp)V0Rq3Rjeb+DfNkGg#K6U20w zPLGPEfTZzB5#g5&G*1(%a=^NEPAys9XzowR2{=87%jlNTNNIm}Ys}&__vNd9FV=g2 z)!iMzRyt4t#MGNLM`A$FSFFD-O~<)rpfZT1IdG&+E8V{c!XB!{zo!l)6I>F9R2v&oE+ZfLmC>$qFT4@eOV>mZwJqDh=bsEBz2qYiApek9xJXql z*JMU+2^#ep0q_&0cM7-}1)O#@lC4ZcvtH}2o-b4}u;xo4JRV%VPm;mIXLvfkygM+18qO1;L5F+lpJL*EISQnZnME^`}fe zzeCUfyw%ftTg2b2AsBZOkl#;3(CbXC1Xw7UaZ*aiyzSaoKMwx@&j-vJ#fJr(cmBpA zj8y1uGDpfO&|qQbe6>31z(fwnoo9Tz4{06DF0j-oU`jaAT)G=Fr$pntx}G8L6~LSWuZgWJTAhDvv|iIsH5rLUT*n z$b9H@43l2<-$2O(I1#I3A5;XdSPk+8_bBc*LNotRGE(BnW*jRb9f5Dp$ zwDI*7L2>QNZhff4N54|liOHXWJ#d7leUm{4y$@tUkx zjiXCe742ZGNa$Z=FlWB&uq!KZ{jabKxoAWkXK>9VGQlHIG7|S+u(wqSi7y4Ihe@?u z2yazTp?kzu?q^}gtTIo!Dv8Qm#NJK`Blc0c*EA%Px(YDzr||VX6R{8@Ys^e4e78P@ zKr=99v+nC_hC~|Y2#?w3fabZe$^$1Dx4tD#!8u;&q7WezecYKK*SE!MdbD_QuD5dgbE&AETt2GqGH>zUC!}_AlieE1{OXCe=9R7kLin!r zM3*64aAZb1^C(6uN4kF`vazWa)kha-uQ4EORfpely?g-*&sw|4i(DWc^VrG{s{6WXeAYy;*0wa~cAD!~T9eLRvJ3d32bFY)9sx9uO_8UcO6(ma<5WE{s)zF!Xps zkIZuA;%g%Mg4;zq1QqW~~Ohj7#xU06Ae6AFi4PaE532VO73iHy-=AsTKB-HwidGTSMFVUbRMwuWL=%uDFGNo8go`#tL& zu~3qbG||$yqr<3;=`jdr-LY?i6ky_EKyE7ZYlHjA9pOiK4Nt4THUb7s2G7Q|i4Hek zDHg3~2ZhoCKiV`&j(?~bjojAnyCy3H8!{#B5b-)gl=a44_P^8tP)!4tFprDA>?9F+ z;V?-e$5bXEEf}x{z&&!ubp+qB1-{ z{2EVS>6{z~cu{hka}GHY$Lv_Lt!`}Ecz)+YD4P!TU}m;}?VH*AwhOLYfSU#iLq)5VyFjsEA_qdU^m-CrP?mLP=0-#oWN0u;Wn95$3(^Zg-IH+^=Il6kC z@>T8u7IQz0-*txVZ_OLar7Jz)_)`M$X4x(i7?x9!_8(|CM0M4Ar9=vTw?oB&IRFW4 zG#fwDwU3>NzUhG?;+@LfzKju!t{wLQGsRWQxWdQ~!9H0`)b^i(_&nV#rnNR+!g%oL zu1;*B=aS-MKvq1C#ibHjb5z~Z_ENnkw;|}Lpn2V16jvYYQ_H&W21vtvaOu>zHw#z7 zC-^?lrw!@9S5nsFN+Oz40zTK_;oZp=E7~XT*4HGE_##0RL`*8_dkWNi7Xz7%*1{;Ott^`O-+yS}44fRyYbGi#(#3ZZc@;&vK6DJl zs~V>e7R^}3z4G+`wnyN{UO*97ftuWz_~A!QPdDP>`_p&nZV5O(;Ovurcy*ObQAyW%>swLHw4~=0MHc+n;@(r0Gh|~1^w9*U^YXht640WX0UlOwmyS1Vzy9Eqzi_;(`|)FsTwKhvpe7Lm zVCnm*1p%Y88k6A=H3Ofxhlscln8Ev9p{vnT0Kn)`6@a_IzE2|^ofPxn5SYrl*Y8Z> zU7hJxDhI(Ld{kGvVg^|E&>#sT>y{honP*t%XN7}H(%Z&0do~F!PuR0+tW*Pdv)Us` zU_hi0#@duLfu$==%Wwx{MDyKsJxk-3rp8y9X?}3X!aMR97~OSx<7N3&%q{KUfu5vG z$Ha3Xvu0JlY{ZVxU9KZ_6jyi+{35v z_uAn_7fS&m4_L=)v3>XK) ze>pE8O}-n%lHw+mmyb%z)<{x$BkQwQfbx~4#3tV{P$?2~LTQjm*c}WO+$dYWpXwJj zQAc5)pGG^IY?P;~A+!H&#s>YOlLtl`1{nxwwJMQNT0T#Ov8K_3L{kUV&uJ~750(N! z`G6uzc>O?OH9~XBt6asEMs92bf1QNh*WtJ?Wr;(9-~MwT4)tf#1Qx^BKn*!?_^~N; zrGnDLNrsJq0#HynQDOx;T4^1=%b%!AT3h;Z^0Sxq8SH8}zBy9%`M(gF4j{^@gBHmu z$uH9Dg-3v3_G+WNZl|D6ec9+49VXCgc`Gt#CcsughJ~Rtl$w{#!I{Tj81d=O zIE?qoJ#W3`;30fgMR`NaeT<>>q^(7~vvmg|6YPO{Io<{mc^$2F#Rg@4a92-nRtWc@ zyf3Z*!0CUzX@#U`OYebUVV_(K2KBkB0^oZ{6D<+Et~&<=!|F%5mDq}{2K^A54$&T` zZby*9ec}-uNeNyW!A?2;l)oOFRdHDrsvJ4x7D#~Bz-{+6a9Pb%|T1do|b$ux)45Kax0^o|Pkn?CiqjAZNDJ zx%C~&xPEsocC;{;ynCDFj3`#Es~#ah$^+en22!r4?k;t>Z-n0S67MyycdX5;>TN(J zz3L^Qz)W^rV|d3vM4Mvf*MDm^?0v6HL5YYD&H&PGTY+vM#h#O@P?Rl$I*mEsv{Br8 zH87}x%x3%$^~xKpR(0UCp?G)YCu$vwl-2E>$q=MOxG;Z7{h${vr~U1n=p|0cpMGB} zJ$g$^YSSCnGhyctI{gIM42Yx`F}QcA7ymaY-$QG2-mF?AwrdG1_6|&CjdO{5k0nH7 zpz?*tei6Dth!~zj{u^e`TVy2oeAyZQ@5W(Zoo;2`!;L*r5BSvKlNyU%J-I>bA^u&8 zYqWrDnJkBRrvX)*aNq^X97XFxOS7;gJZ`Z-9up_|9Ds3oUvUnq7;F_GAE5g6^=?}Q zY;`as#`@_#E}CZ&arwfwBI;&2dUW^2RF{fX$SMpe_Fp{8DqO8<{;X_J>xf%^Q@N#| zgiaWOc#f_;_l(fBEJt&lpvutLX>qc?e=srGA)$&U_4T>S17Hp{W|}3mbCg1tJC;U( z{ZFKKj)c~H@$==R32_la&l%Dy>ysx9bMKr%HnA&e6}Outu~=fSt`D@NtNLJp>wr%L^@6Ww+xly>RyeRUaH{m*-^$jc*IEZp0$c_JhB46`h`mY+`YbHK zMJmS61vb3mkse0JD;5=MU0$H1TD(9RH4yVn8(*6ke zO5Q3%#$D9x57p6x?(r!mmXx+l zp4+_~pYw%9zN*#nY9$=S;2)JmKA%+a7bH!OA_5|o|@2ET*5_{EOx(H*` z&LUKzFlz9g#_E8m1C+ry!o2i8mBQI9%D1N+$PbP%97N(JI)>f81ZU}pXFz9iF&|0s zlAw-8ub{u{iWexgr_ru7K59-YJ`kBduR$+_A$gXCV|~R!qyL!?uIjFf@=>By6b1%C zIG@3uvm$!-_j2pVp#eo1#ahF^tmfW~;`#_ns#yRF4}opB{^I?yd{#!ML;7y{Kdl}| zRP`=zHjB7j#eBK|t}+>oyQm*_Ng{WCkB>wOp!Y_%HTe3soYE>k{Lb7*x(&0IM|i*O zB?WiNvL?gaL_mI#5O)VxPK3fr>j$nTb0*3iVl|yTo`9`FF(0C|N+BDj)QAmlcz(=%7-dj4K|LFEMZ=QB5QEoTUK0ISatgO#D~T9LQ6$6T40NKS zA~fGIswhfCc{Fy&FG8ut8m^+o0D=8_OgzUtJfvA*qkAEX`CH_u64y=tY>8c$W1z%i z?S~02-WG8UYe7}J>ZiPAFF!LbhLgRhP4oG?{Z?^pZ@{;rXmsMBUx_fxJ#;Jby>reB4%WFjcy?G-uS(dv5BA;Y5ZVI z|67w9mJivric2)Al%j!J?-_s*`)zy2jCe@r0T(1sT$$ajsw${ZsMD?8hU1FWJrb@$1?`ey^$BrFWi%g6IoC75?1t}`JA<0|fOl`>>QBeMA~UC^ASNmmMp|#;Hw@n@QKts`A%YTb z&m5L1G1Os)>keemB(BiU1&3`6(zHAb!^Ic}1jqO3rmNQt!X@1yXtY~u5>-r~tV40* zQhY&$8FT9qZQ&fLj-*({d!}-@P@(1Tzem5}4wIeiYc59`Bryk4V&m}kiyy#28;z!l z7;0I2CO8p6T^bTmuCsk27h?lmWqJlgmKy6}@3Qx=um95}P);j`Ymj;pxjyFD^c
    mm24LR`B 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

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