From 3f4ea5d8c9696bd2c7c149458073382620a93b46 Mon Sep 17 00:00:00 2001 From: vados-dev Date: Sat, 27 Jun 2026 23:40:03 +0300 Subject: [PATCH] Backup for MikroNUC created successfully at Jun 27 23:40:03. --- .../20260627/20260627234001-Binary.backup | Bin 0 -> 365036 bytes MikroNUC/20260627/20260627234001-Config.rsc | 4845 +++++++++++++++++ .../20260627/20260627234001-Diff-Config.rsc | 53 + 3 files changed, 4898 insertions(+) create mode 100644 MikroNUC/20260627/20260627234001-Binary.backup create mode 100644 MikroNUC/20260627/20260627234001-Config.rsc create mode 100644 MikroNUC/history/20260627/20260627234001-Diff-Config.rsc diff --git a/MikroNUC/20260627/20260627234001-Binary.backup b/MikroNUC/20260627/20260627234001-Binary.backup new file mode 100644 index 0000000000000000000000000000000000000000..d02b6e81c539e5fdd1099715c6fa5ad8d0110d9d GIT binary patch literal 365036 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
`tDI{9UfpqQ<0E3b7c)ndqNH+zuti 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%0AKesW2U$G0L#k#3H}0SHt9YmIo-z6n9 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 (h6k7FY%Imp%(n+bSJ`ui#d9*G zyjFLNw>Vp1$xl;ALUWQ1wazgl^u}2`DYIAA@j{<=`{)B)^pS2GP^%x6ih>Brt9`k@ z)<$%z+BE{;)+@ohr9(U5!Bsw6*OSsMmv%jHGf0pbn_g^=!wdPvw$_;I z2+^uuY=lq`()Z3z8K{eJ1i_#SZEN6jXXH{xEw92L-}6VUq3a-ff;Qx|VYw4yq9tEN zD#+4SvD3{{s5C=v9uf&5NdVX#udFX)O4y;&Verc@9CgGFhwhWe@eWp+Od>w+)9=>y zgPVpvCw9J>0t zro((QjV@II59`^bL>hCoZSh>0O-7-1&gbLH>)3rP`a1ue>o@%u3Q13!V<^>n*8;fHHesMG3J-6DxAQuPQn@q> z2uUuel41J>9yK%14|jx?w)S+cGWT$xCIhTtkg6&D862YZ>vPi( zDF>Sm$vnoQ{}#wXRS8 z^?2D=$4`r`{U3(htGY1hz+uv8Xx*xDjvtlRx9eESax3bXw%y${f!)QEJ)vgYS>KUP z+HAEx+Q6yic^Ns9WqOsVS)D^*Dh;;kT5(#xLqBvp8GY9X3*AS7*t!YGVDS`D^QL0i zk{I4ym}Na^Bw3U*i6r82VQ-jA_{*u-amDI|28q~HD7_YR>LJSlJ1Vx2wlImusm2-= zEDoh*4KuXDB6~SLqf+bsq0>>mwLv^xylP;xc1~WlzJF~ykl6!@3e4J9l+V_w=(U4J zMAweQWzfD_0^T;H0JiE{9un3YV3>N!e9RIG-AvwJ`ILlf9y@lwOk4pKkT;j4wFM6& z=nOwBKu!L4VrB_7y+bUK(qXIpF3!}@Jrc)1K$r8)ri@*>G>z`A4y9~0G&QE`@w# z2DHzwS2u+0Sky}kQf+oQ0mTzl+kS#*;!Z3MAeJ9DnmBegng(>(eFzTguz_b1^q}z< zRX|dVC<&m8F5%suFOf2o((ahL?FPS&lnp*~84PTmYg2y`ROfJ8Yp27od^f|(w_-+= zhU^BKDaZ^`OqdCL{^2Ni$L0D#JmU~KN4Q&=|7dK{rx4C(}P!P4ru4vJcO{E{;GI z#lpCVP55|CI(8y3aXYtUi#x!?c~X`rh%R|@52}2gzju#^HvacA0~aaSEOaUF*7+&t ztAcIJP)}?`zgX?@beb4MTR-Ax43gQ)>V2(Q8$L`$p-{eo0J^e%8egkd5L1JX+|K+Y zh^#d6>Sja`f0?a)M60*IfvTHisOQxb;?Fu)BD)>`y)K~$?>8JDk!QzZBZevA9*0{= zUQmq@-W>Ck_<)2{D-uOA_F-I{K9MPUR{W&K?hd(g)J?&CpeY{ZDTRq7g{WN}t(WOR zZ|L?B_<$GK+OU%cisEN{(A_ zEy(7*EK)K5Xpl$Lb9a_P4C`;~$4oUYL@HrYn#PFr|3dFg~*?&L6=y|G|-|1N0V97y(IT&O|24t3@-YIN0 zE-tf6<@*Bt8AGYrH$ugap^&te#;vFp1z^DVZA8ZpKhS4@YJDG3$VeIisipaN4iFCe z_ee5(%rhdfxy8$aXm&M2{7SEFADTM}kxL?X!OobvMAR)z)sk3n#obQHa(qql}wDHz6tQk&vf(4DHZe`+p;1T`>VL9+JZW zF9Tmu$r=Oo3Md>LSFXobv>>EfgCk-On00DIrtnaos;n&;s0Ns zD0sviL6E5JfC6JROU?oxVyj{YeFar$B9ApDY6QGJbT<{H*gp@76k0?OTzDcJzeG$l z^20kJqrxHtc5S{W#wT$=^0@@OD`dCjJQe2&U z4}0s_g}v{&D>p)4!z3P|{Ns-+>F$(ZLEYIq%@_VRS345;+o=uL9&6D=nWq`Azahs+ zKnFL8AVC-3!bNt9fJ|Nh$)vb#^M*?)hfz`bueJy=h03I`!*h#g4<7|w$vbWJN@d3e zuOV$JZ>-#M`#Fkg6g)VqA_4DT-U`9-K|{=)TM0COPNza7@sE+#AkvkL-h$ZN@cgw- zfsn3gSioSt^c0CLY`7O_rn1}0{W)f5c=>{_h*6Tu#r+ob4x@P)U@$^MYTyh+Cs`iW z%ep$28ie6PyhEJz-)4Nv^A8_u^>FhzQ+r-I)s~sS^S$#9XXeMwP#zy~71GVe^d)n& z$LKwX@$tn|KJY6F)|N=D|I&(^;?)m!G*eq1mN%hd6rqp6Xy5p&z6=!_Oh z9;lCC5^2MiT2ru4Wt_XDi#v8jc@5dwZG-kX#eFvJl8(C5x~z};-u+}_^xZ!{>?vY zqvg=arAFY1@8cmog^TAwXhTKGDKEZ9e@2w2lv&~}e@rOKxi<*>z22OmYD>==t3R`a zVhhE_VTL_5v#4&!Q}ETBvGRgk!(&wlL4gW!Keafk_K?@kcZ!5m8yXVbaaAmZTIU5D9VmU5&Mis5U!VFu6 zEHg;>|63MK4;a*+tOOyax9k`ZUi4hU(LOB~Wxhslqe$?I-*J`B^XTB#lwJBzKxLA=#^BZ??|YYBLA{D!CH@+bZe9qybGgn7;Qcir?3 zhA>fsoS_W|Lk}pf!sgp2foy3K^4#4~UuVdXR?y?GBC`$CkmRzQizaJExrhpN`QJGZ zq1Tr_JSzkb6dHudTpB`*`Ei42BK4ac40fQj{~Y?^^b`cnN*RtAc}v zvm40ruPMc$4}LyN^1Egr1Qm63(MV5OS60wX<&>x__s`xRZb2s8N~oSXRB7i zdmAkd3sDk&^^^t%qZ`%|u$GPmGp5oAObf;&6g7Ez+jlHPXWyy!d6>*{n;{2N7+*YN z3Rm7fGqWCqjdHC+5`*LVyADZGN{sa0Az`hpyb8bZUR0Bh;0x$twd+MTHUHpUz}Ii( zNKDBdEu$N?9rt;&AAhdmtr@}PKNXJHll2E(y&yBE^Q7zdW>z%MJyydUpM)ThjLq## z7;Es8IY2$F%nXf-+w&)VG1LeMG9e+n_yaJv&d#AUKGO8iBNQ$*O|+>Hexq~#bb<~p zx`bol0U+}bRDmy)D+vRDDXQYBmmD4w`c!R-mZM}QyLP&E9I&3F`56;M`mJ^iTPI-C zo>t_fNkM!Rqp`~&EE<8k8v&zG6i`gMc0w`!m{QHwl^`$9nh#=fvFDvJ2j4ui#4k{@ zTHe*T@?5AtCLK>h(U<^i;7jas)&EcKBy8dRTtg#vQlN!p9s-UngTl`g8hCvaM;s~6 zT-`jQt63Ma=^`ectZ1f;j2aZ(N9PTiVCSOi$=`)9jEG1B_=t>hRPBc zD`tCwgvZE`-rKaelQ2{G@A23D_dRQKmnNDuv(g9G8#ohtRUs4qeAY2&?4_laGii^u z0%Cf|iZim`$b%Asv3It)I-#l>6xxmf1842Rd)OXk8TSVK3Or8Z^^($%r;CMGg&2pO zKFD!n@E0~9nS$*Ozmld$6=j≪`QGmih5f((AWS=^RG&<8eg6v;#qB!Ei;Hp#V4O z!tAlN>QSG@;l(CDaspHOj9UVUIBJ5|C12Jy_Q8m`uU4jU&{SxZn{&RP>HTkkHDOY! zP^cYE%Q0*0D4YEwos|61Ir*_}me~i&drEkhEEix6`m;&%@_^1@u$Auv6PYf_cZERm zYjfqrHF%IG#V9m$2-AN-{Lr3UMH91sq{aiIQn?3rZ+X3axHZ|rTcF^=iG7n}=+TMx z41%}S4)Pk=FYk?^dwn9Y&{t{3dhbjBB5J5Hgv0h;Msm!Xj$;^v^Iyaiz?3U=KV7+( zunA3pQuCriQFzBoiGObU|4rO)J#4~-oN39wT>QNtvmm~q4G)?`m*tcs=z90>+J$m1 zJaJW*S*ad=YO7fZkn2@fA9hOAne>O2vNJ#Qm}e;Y;|WOd52Du7(`#lETuRVFmX_i6 zzLU}VX`0iPw~CxNA1HCQCYaO+Tl?oT^uJMMTU(H!2u&RMsj31771wA0$#~@(K1kib zw*|1*!&LXtMyP{JIpAM9cH-0s#tBj-#PBO?<_;fxw2T^z1gr2S3h!?h>0aB<@a>EA zPqIL?CpO)~si=Jx(Gy4kw@j8Iu%WzO6hNtDK-zI|MA?ok_~}F(7>h5Y^En zmWlf$Bm^)h7gA`j;!hxo=1XFXnf)pstX3Wb>95@hS-v!SK~He2M)WTLE0<_&m0tB8 zx^&&{PcI%Kv+OD6Z{}tbGEqPu#; zw+x!%f5W?KR>Qcik)-g_Bpt;pi-(6HPywhykHJpG$q0y61P7`zU8;B4R#_W3qU>>d zFs&Y-IM{?Y&8kHe^N;-a=nf7c3AT%{C7|*kfYdIyK8TQ30EZE{#Jfl&ILocTo|2IZ z6w<)@$iWS=*;>lYA$;rtECm;bmZmA{mOq8oe|`u!d;COjC4x& zZGK$7k2&1^hw3-2nKV^w?HQTEkks|*vwekWAsXUZ^HAl)RAl;xh(rTqOKeKUo_ZM5 zM_1xzFr$~E(bJ#tJ%0ltBAN*Lo`^q8TA$!f)UNi}%iiVdD{Q&{$PwfhHzzS-8u~Qo zTy44G2Zz6qTI8tGEq(5HHKE!VOpLZ}{{(s*jG8^CFB7c*=lhc%v80e*f5EJAArCMg zUg{^;^`|kpxC6%9JJSgl%~|MEC+ch$1aB3Ywrh6Rb!#TGn%om~jUKscNJHA){Q*!b z($9D5f$um|l%-ZpO#1HNW=F(0OD_tTc)j?VyBl;^%SgIq%tJL5R2^LS9hAciD_CWK z6zvr}!4=45mSFV9IQky;y^ncCb}aqqea%q=mq-RfUCm(A5L}QWB+u?-_y{3$pkLNF zK)q@OrZrPPU50%z(e3qb@-Lz0c;IoagE&dOR80nVRPb#6^qGxP2}x-vLZ*VoqU(7* zI)jAu?MI>`Wh7BSF$w~_3iY_?;(z#bYIqAgt#{u@`Ebj&SUlWyWy0ei0{mjD@`uBH z*Vfvnj`WOt}#v_$(;x&y+<9MMB! z{4#SZ*lyPQFKXdH5(P{2e64h1Sz0xb@)5>M45Bf~Pv1#R)^4B?F*_LVQD+N727Jj@*SH=SLUrxLGlSJ(dj(!_;fEI!^AiI<&tNUwwvAO zUbNkWwx85UI?OLz*QjjD-qW8UjmExTWp zazUP&ax6Bzx1RpL8bb1?Q}xQm6Aq-q(3Z{UvL@A&@6x78Dy{+QjuITik!}~#DR&M2 zC)apK6g^X~$@HGGB5l!+@$ArRhPs#jOQYT{Sl8Sac*$w5QN4lrzTlh<JZU-V+CX9>Gd zx0E)AukSMKD2HW03cnaU!uh{0k#qe5!-wR5=Hde$JmLQ8fHJ{f!h9-f45`>JkDZZU zvI$Pt66&c|XBE8?40R~GmQa2LqDW|Wv-&p`j>sLt07%>F{oUWgJ_=|Wm zE#=)995N;CF`e*d?I{d>jHTStF@AKEZ)&WbBy44(;OP8Y>urZ5$LEVJG%Je>|D)MR zXos%8ru`8_j!=1beo{{}T9i2p8H#`z1g>Dr2@ z7i#tCedB<^*lqKMP9|^P8%!a{fc&(Af&y&-kZA%oIRw(;me-}5*jlW6S%g3HbX#Tr zVtlmYc>I+5665>9HpTJ5_dB;pl!fDr)f1Al>MSq?Da=Vbzrba#PIt}~=?ERoJ$iZ3 zp{cb+VYxG&W!ugZw*4x|z2t*_{A$Jy>0>FK1k*s&s`Eh3$H@Pet&K|`rW;qB(N0!G znk@50tWBKhfo;4EAU;P$$B7%TVc)?M@q^teFV;3NSndD$p~!)%^7_L?3eC)o5vf?# zAukKu@mL{4>jNO{b;Wx6ENLCFFDPX_tl;e2XA-}q71TzA0(h=>Qe>ffQQN4L-!}4x zGZ>ryu!}AH59&-AT;aKR4!MG6ZyPU_z`FO65%c>rnZZrxgr8e?6@{~;5zqvquo8Aj z^|jPKsyCnUkqHto2id)mpHWyBu+^D$bGBA5Dv#PotL|j^w4Sxaj^1SI$45gY2kmB2 zpVZqB)C3BY0DFx&#R_c^6C~jfAjHl;r?GDeU9Ulc$?CAsk7gvKd={tYe}LsZsuu}? zy4XS?Z(FK2TAL;gfqI)oiseN7i^UqAAgJ)P1euhKTkeR`5z|X z79+zekWibpOYRHZ@YUCL3C*RIUR^N?rOH!}1(71ahzZM!injy8wlV73&)$bHiC zBhi$lJY+QPhY}xJBjBJiTR&T|7BIixW_vb$?Z}4&lYTiSR-rbVO3NYKgPAlU#a#&uGSm9>jk~E97)WX z8LFSwxvEWFLhYW6x5XoQG;P2|qo$X}40S~T*sVVtnh_h@p5pNMFZ=9|`SunW0EADp z1qDgORQ5J}qa{lGZf%9E5uO~zjTk4$yM|WFT-#!w4Z;7PblqEFY&6vE&XgzM$rB5l zW+JM`F}MR%599oAW^X^IDCJ^kSc>jXuZY93fz0K1z|*v|rC*#XKh{k_%C63B&pumf zFQnL^g5n?5noEf+abz^va~{MV)FCus=@>@^9AcnGgv3i<^d~%6? zZ4VE4u$rWiob4%9%}U^r*uR*B8@6MO!NkWB2hJNRN(KQ*H2ukI$&%k5pQt~)F^DXQ##~ejR!`r zI+V(rvPc2{&!AlUbhW8$Sf6M-{^`Qe=e2<-VlSlUKJHmEFz~N$*?p6B&0L9CO@~!* z+3V`aO9aHtUIA)$|HK&7ehpyQ*9YBJDNruljO)gmj37evTo(B9$-G03CBT5F;YRl6 zB#M-MSun`;%#K9*E6AC18#F~3kmV*MqS>b4*sL{(x>y(hfS!<`jcdliVqS+pL%%It zQm24e8k?%>X8J_tYJ)wiRl}QU~<*Ek$49pU2-5-!UwS$MP&7wl zGic;~ZvTYM4Np0RLpO+Hv1y{`ts*%mHdA)d4CO&r;2ZYwCEG0k!q%g0SZe zv(~xYB!k~}m%;D!W zs;monoWq>3$03HxBEbNZxl|5cTius=LfNFGCW!R@y ztuSvHT>oapEOGW~>9DUC0vobo#-2{tt=vPkMLJyd70OO5uO+_BP&@GtDO>-rB9=j%$F)4eQP*|Eb9Q@cC4$J^zM_Ih z#55+ji0j<|K4zll2;Lx{rfQvRjlnFqCpIN^_X1o(bICmetSO)5QE0LPCc3*z&xW~D zkqGOW&({Hnb5uU9=bk~k%%eGth+#3ZQ3~CV^WCGnEcDA7OQEj@SoEGaJs zI);jsQg|kh%-iQij)R-8b&mey#S7rU{_FxQy{>nJ-A5OdZIAK{D#cd>ys1uI?LK0h z=c%nz3)xV(l2}2!9|}-BUX{sFxriCcKamT!@Eu8`L;Vc7XBst%W(J9+-d>`r&7Xm` zsqQnmq0Z>IFu~mMN|x|2o>m6hSljZu`AYoh$re-3|D2%5K*Jt%$>BR&!AR^a&Tt7q!t3AcUIsiFLg8p{~7tO$hbGG17FLD1*j_ZOxYIiSx@KB=rY2yVJ zjO1!q)LDP#6vB$8?XRExRZ$lXOxIgPpJMOdi6Lv1w6^)i-nhx~f4cjw{dsqh_7E?2 zZdBeN@ZTHNFjLKjJYpE;Al$J0rHO4A=}@%#^9uowk1G9wG#sO`7&V_03XnTMQSGR$fB;$%l=w&`Kg0h%zZW}(oU!8}C-E&|4q(*2y*V7=}CfM8q z@~|-n2c=%8P`lDX=7mkk$w@t3$~q;S|3h4UxJS|d|FT+qKW(@>6Fm=WfE*BeiwlYz zWFk6hiKn_eC+0zU_UnZv1 z`Jvj-4+r3Ku$|91+kqC18|stJMa_<0U1!vu#e=$fq|xaB<(8=W(Z#-I2D9Lgj55|^ zoa_a@TqWWpJk_I;Cw871y9O5s_gVe8fO!84&1Bn%dirkve?xSu7utkg+ zZR4qdY1wYwq3+W$zqUyt@#bWwgj+K`c7V3to*6=6j();u#FDSea%9xX?IQ zD4u_cmhd&8WbyN8dOvv|H@?LcAt2kr>w~cceN@My)0bg`z^M!xP@6}m?C&XDj=}9x z4l`LMe39{GPh7n-T`!5bltI2mrA{86Snih5-A&s0VO3maP zWwdmT*c@92m2Xib-W8V*osBxDf9$-HnQ0M);pO_`%gYTJJE3a2rTC8shLe!eb+Arq z==gG^^^swHceT33>nbDch03nqrs$(3>Z)i(bOWfgYzGCM{9(Me#Wga`kA20|m3_?s z?0#VX#hw>IvfwZiD@=I>F@DFD0SF_@fXhf@bBQ`b4ieUj$h3-~&f<~S7xuLhH^1|48sx-}o$%7;Nz1kei+eK50rbFvU;kIQxRl9*6(AT)4fr2A%Bk zk#tkVFZsRq2uOt7hVr3w>J91T;W{6!m_o@WNybr?Jb)UpTTS&Uc@^fY;Ssx-YE8Ma zdDEjt#{Gy?*izlXm%rScShK`>=+|0B&i%RG3iVE z0Z79-pHLU4pOQ%_P!#Wkw-OQo)msUy5K6eN_&c*J9IWd^_@+>|M-q&&^7YaYZttb$ z_$t0*Xn2+|`akXhD}cuvVE?m1+P!{FqP{jfExfswnQpkGoB@Sztt#m1qeQ&R=Ebbk z2LW=@Ms|vk3?VnIDd$~2e}6@@NCd$N9u`=i#b7Gens4ywX|}Lfz{eDi^#aY5zXTdf zMmdq);ul*n38)wVp0G4{rpdKhM^bLDlhjIH9bWSBBM;k`_qu)4*ejqM_K}NsfE~lYg#Z^;S&Ai?FeZqJIk8D>Jh#$*fwCtwWMbncmN#KF}wE z_}6hVY)LppnMj#Jj67KAG?kO~o9Q6B{a+;ZNd}kkGwf@2JC<;2rWGe1gCKZ4G{<(S z-3rAd&VEgQxz*{EuUp2=gh_x3j+QoCVRu#9%!*;V$i#i${07&3r)~CTpxZ-<+_$%6 zeT)YSGxLP~90e zVn!&bUva55{>2ueKxIBt$UHd*bX~MQr*SnS$$QDK<0SD*5Qn~L1eSf2PZnomW#WJu zr8lg_bgM(la?2Mx^$0-$@7ae|<8qB6&m}haZ-xTFNopsR_l{RY6R*F?9r}fP64JIX zwb*VKJl550hxni3(s8B%L#Ie*SfUT@PaAI-_#yCWQMkHeV`+yoT^_$ZhQah>^zy z9>lGhx`po>EGm>D9Jp8BarV6@Rp&m;)r3k**k+#2%Gy?N4=sZ_Vp7!z=*l}v3(bVG zB?`$U8=*Z8_l;FS(r|wMvw(DS9hi?8wwt0EX95YjZxtBq^pL-iw|Kr`mK(WhxmSPD zu(ud-&s6g3kEqwmAR@fAsw=G+BQt)k_`yXE(1bHysPQ%yZ)0l zb$(mYAIOYFEqzlRm#I5&Z&O0b;%*R*n#sRZ;z6C;C_@& z9q^f_>=ep31AAg_l9>jTTMgJDtOzMh_hz{Ghow3ol93PQDwn{*Nn~Q22G9>fcf%9C z5Cyv*!2LVYcAey(2!G;AqWw1jLUOZ%Sq#a<<-0MYu z6?J3vOGy&y%r7yksm9`?k>3BZ1>{fEXcIo(UdOpnJ-oZbxjqeQ;M5FdcO*YW?Bdh% zu3=^M9?rXD#6}d-Per4j3mHMw&1(mu8oOO5c?9yrpZdvztW;SbB9FyZO+0jw70w^N zaCxr7OvK+A;Nk_;hDbb5NiN=aj*9mb?)v@HhwICee1fb9tfF6=aBhHv9U* zH=UeSN=hG$e_=)HWAaBeD+p(>wo2L${u+c=Kb)uX3cJpFAqcj@YcXjpmt+OLTa)~t zrY8Lj$HzdBNOfw3V7cJ|9cE3fWv?Xr`8au3pI0ADypsD0dUxi;x)6?Fmm}(thFRX{ zy8@@7y0sZ~1$hXo?Q+d3I#`AAZD_m_;Aod{nw=ru)-UAsou;25#A-=uteDly?daa5 z+jAdT1RSVZ*Z)Ho4XL5CnZ++9LOiEQss-S=iVGY1^bk7Z97fwtP>dwjQg1A!9z2r zD7dR6b(Zaw<9G><(j(`JmVDNfF1oR`A&hoz1l=n{WNpH@U&8trB%p=PNUsE6B#<6& zhF(MB^jVL)5EU(x6Ub3W`RuFw1hG2FwPJ~)so9i{_+QfQ@L8}6ui|G$0&2;vQUl@I z1%z-cui-0p5=XVnTCc}ys*Nan08fG{UiyttP|DJJ?9CN?m;pMUf>W`w(H(S$iLQ9- z?5c?PQ!xX`%Wbwck{zN3^)^_x!R){PbY?9^{1t@CI-7CIDTm@Os}yx19hlx(y4WOy z@YzO|g)k&`!6Ioc` z`3@EJVhJ_MJf53Nea< z6||dVeng?Z*fSZs3;bwy!TBSlTC6C29K`K-UW-bW!u&g95ZG4XAREOL3D&D{ldlEh zJKn7UI&1&QqE1ZdNAM#QD+WAg)Gh|p-lcu)Xen$~p*#=vX@JI8?Pp?n=aOH$aGg6Y zfe=Hn#d5)Ez5uq`YNyV!>{`y%BX2~E5_&&>j)s%tY$hPLQ}2BQnlgL%b@S|2H! z9MSfd8$XZ=V%Eq>&gx(q9mHOMvQt^3-4qm;q$`9mf!YR+Qn))qW!V6UTUpiSz|5Mt z*3Xs~*+1!ds7_juF&YBUb`l&*?b(NScT5omaJl=B0G93MV_Wfg}ionkHFqa zw^iP7nk%YYVAaBljXhpG5@@0DS6Y5#+jT8`GLsW3?U`oBp{)U=C4{nsyD@!@R2~m7 zkV$z$g!?aXCQC!u_JID5qkRiFF*%bxkjMVm#G^GdRC z&qkv zKwr}oa02sL|4c0DUUxPz_C~DFdKOZB6W&FLlVD_@F4L&(nD6n`_>k?+zc09I1q0HPwd855<~6d)FU0G|ttFaI^nH3b(f$Y7AkHqiA7P%|-uRlQOFy0&$#l-5N?bB{DXZHoFZKOZ7&H(a+MB#wuW9 z_ouXhF|sW|vjE653>NNr-m}TpqJm2(SOsicU4yOc5wEsz`AEz%MQIi~hBv`M*sX-A zpf2M9sNq?Ys?&ZEMqVmp|DVW|^Z$A0Gla03zWPrrDTnxzrIDBLg|n|Vu2kjl!-i<&O3Th37R@i?2YeIc;B00M6lj%x<2#`ZX4LYBwMml0>U5ht|2M zTgUv{!G+7$?vG=1M8XYl=2=^9xT1N!7E;k$J8;KcTuN)Zxn^B9F7$Swn^Bn}V!{_1 z2bdBv7PZJApMPin(x*|2M{oBOH;a5C=z5U;A#fm7~<2Sy!RkEfe(!8sO4hyTJnu|#RhJq%ev=HGEH>QL>b8W>RJx#B&jpD-)8EghBC=pGf z1lU}s@EZXP9!ogf@)os9&aFMwixOb0)(RV~u?ptBYZh60@w$+n1znPKU=)VxQ zu@1yvX+9Al-0?=|Sb~}`Nq*oD#(1ASFNhg0;U%w~nWlK&%E+9oLmy)w`Ru_|7zIDV z`)RKI=cjel?gat%el+$B12+r(igY2rE1#zl(mz(%CFVLm(E>ZbkGUz-{)?5u_H;<6uH zVJEmJ3o>FSQkgzP-f~rZ^LA(w6gUrO$YP9qp+U_8LM(Y_EmB94v0C7-lW-lGEEipo z4lmb=2PG8-#wu$~U5SVk{TB6i_d7Q69dud7{Cn4~$V>Hot3>Fiy!dN|x+8ja%LO<- z`n5JlGvqJ6eKL`_5;8RBsNZySgm0!!uAQudXn=`thxN`j`z<#`x%l^9TV7xh?Vo2; ztI3cBmR-y^e@2mWm!Xw_1?As>75xBbybj=Q_}u)u#%$RX#*gyWxi#rR^jhI!MXPbs zHR4&E!is%L4GA0Ouvyk*s+1(sVuo{#ge0MsoL)Q(GP2(56KgK4=AW8CdSOSTx0lM= zeB^=wIthLW4!f2kix(v@AZ&M}e<8E}`_fBCVTkriwj*{I=3>*joOLsRsOw`Schp0}y# z>M%b6MKK|*(M_%ugC36h(m(MwjtkRfwFT>Ye76uP4-_ez!|EOu&QC+8bg9*u7Dy!! z50W6kc9R#z4T*}R4%D!>vGrlymf%yxZ1%4jHG%y(HCChu2=s^cz)d@? zZzTCaiIZqF8RIP@xuPTOo^~E}6#2E(X=f=z9{xjPu(&0Ha`}G2qxaNSt`o>_2HR&R zx(+GS-@dQMMvyLrPspI8OPIST2ZuP#zptGB^-&sdZaE0jV(fIjFe{{omwLflBZ+Yg z5}vrBtFOLHXCRe{9nKS&xBb|w_nK1{3{4?pR6yq}t~n64x-b-r3XlGneLPi&!b8r5W6dZR_(Ks}dmtC^YEqR_Nf;H*cb< zQJLWS#XJ``dtIQ<+hQN;Di{fsYrKzTG}^J~pOF9k=L6KyJUdvzBXOH3X+ zOD#CaTT~ahw?@sZXB)I6^2tdDRztrh%R2d!gA0>Iq)R%Y@HzBwU5?QSfD&&JxJqf# zf?(Rk_*<74zgw*&YVa?LzvH;`4q%PD@KM`N=j{A0(xq>5eF4A$6}YnPfK7>{SaIra z=Z~Gm5iIMP#E+0O9Km0SpRF1gGJm3qtxGhy+Pa=pkKGqcopdF1`P2wmGgIy6uoMRjGBi&feT@$mON;R#_` zz$sO>{}e!(fx*$h0|;bPC8lKWZ0c+DpP42hdvPqyE3KJEv`Nk3-p3MRO9xv2LE zV%*GdTH5%JH|K}3=R#vY2R5~HB-Kf>+=S;i_buse~|Tl{fu2QB{yGx&WQ2WUSMd*I>9(5&yo!b#Rs_xx`aRhW94_FRi;Yu}< z>bj+s_Y^1hLV7VYY>n=nP!iD`%GesDS+>f!sTUD~F3@_Kfn#2d78~*LWI? zO2W-j@?Q>C69|i$uy>VTyH}O4O>prj1>d z?E>8x&?7!qdF3tJGCC%+2Dvs!14SFB|HJGuPmIgj?B%x>2?SLwyV07<-~*G7jZni= z0|rSerxJTS_P_ZfR>MmcaTsD`z%>OPxaDnlm=u`UfTqXw@-n}4#cVqo|L-p zqHV-rz5A2+He5)Rx8?)K)fxWyRGWt~86F+m!hSCq+`3`v=cAk@HY3SmH}Yj9l=(3C zv0pXo4J0Q&VvVzKr0;X>tzL?{XkSXfE^{_Cuxw6W=V*Oe`KV=A@|cNP%?@&owEA14 z#MrqhHOlw%#w`O}eH&1-!f-yn!^b;?K#X0pAp~-8UGm(FLPoUr&gi{MIF(dQO_H%~ zSWcjy9#R3)Sol$m)U;e4LX8VkAB~~eAN*9P!ush@>R>UqzdjE}a*=9-cv>bXzinS0 zpGx){zp3V1V)ok7sP)tSR2e?W{Pv2QquFb8AV#KPoo`^`W&;Qrf6L2S-4}<&#n|qb zc!)kISDkJP)8=j==uG)!NMBz#2z{RMn?UahHq=)g@B;U)jQf(Nv-G_PK1V;@3mC(I znEi=i!mCb)V1_wb#EWTv>S*d?b zppqX-n_&q3n?1B$(VAu%M=(N>j5?T0J^&7|41p+p^cc1i0F}0@i68cOwgp&vlNN-< ztb*?5Ui6a3cLTf~XLM9uI!YGr=%+RFp@s)JU+Z}HBZ%K6a5}d@KyAngtOQi@umbz8 z{KesdG5(?uMF~c2 z{vsZ`HUL{b@K3|nkm1r^d}yuepp@!rb?D#7o{s=28{HVuVx9#RLJAW3nA^E1d{_G? z=pf68JgWccc{`m6-gHI!+uAH?^XPxcC$MGq zbi>OA(}P8L{MvrH=ytKnc3BPNN!m2M4)w7kIR>R^Z&^9dFA^~QIXgd6Gdh^QLIMV) zi^ihK4f(9-iN8tT#}Oz7PNnb#!2PVQ9&t&2;lEj=eOHSukw~5e(PhD|O+bN}LLrsL9KCi`(Zet%-&l?mOmsW! zq8o-=u@^V)6-_dcML&P3L=FC<2ML!Ozyd1s1X)PE+7OV*Fi~Gfl`JO6kY#M2_R3q~- z9$(#Si1P=5!`t)|SQAV=ihbE5b-A~Mk0#&UFZF^1V9DL|Kspe|*BSUp2i57Ujx zx$3=H^V$J%7P)ZuJpDM>7dbZ36AQ}2ST<9a^L1)#XzBxyoY7gZf$zzLH0@|5A@L@4 z6S6;~x}ea3Q@X0(Z9tpD-+Jcs7OH$F3lk$B9i*JQ2($&We@NG>d7f3%K(9pbRgC7- zC+KVuXAkIvWx2Wu#m{jIl#W5}i`Au{f7yl?Vc_->EeBTgCJ=ov=(2t;M=2iYPot-0 zgwPj(%l*Ms6$r(AHlo1my9ga{89?Qe(Qtpc)iMWg#bzzoo@UqwUQl0{TsjG7=QsJB z1}ZLyWswtO#Pft(yO?pXG-!>ClTRz(2`96ErusXa_f)Pn&pm)O<6F1I=5hoZ7(CK0g#B(!% z&FN`*36TM2N6@3*T-+m3yx4P|h8SrYKil@%W!9ptJMuHFBY5T*i=lPD`4VN}Intg9 zv%R3*vBvx`dzY1c+SKlcJ`Tc9FtHVYu-|RJAJ-tG!YB%XN&bOS-tFiIiJ#^%2Y=G? zaqvC(GI~-vu$|TbU(E0Kgwuid<{&6sWT(UkzM8?aRmsjkdvckLf~rM|n+XME=7xV7 zkX?i3eqcxU@4-09_F+C1zOR;gl3IfFUF)s&2hsA7&viW+-e`BJ=s#)CNzz+{You3# zV5V|b@puoLe-wTM|Ge;B7Nl*!wgeIt z;l8KL%Q~e1NX?)5QfrlU1TxS)NeEg{Qdx&grHlTuAHsXy3ZRV<5#25lZ0V7@BHT~z{Ju1 z6dsAh82GIh?nW72`Uvrsw>s5FF08z$w3PL=WqxwN;BYT(x586^>lRmEML{17B0%;- z*8^lIJ%3>Lfgn%|Vz(}=4O1YKquk=#=N)I?Am^ETbs3sBM8 z0evhelrd1qX5*6{q)+xpPOnQw3Rds`NtzJ`yDa3eoUj_D*o`);SSMj|z|{Ag6q1Z; zys0zJ!zE=Md6gOB`<$OvP+jc%c>3L|u6-!3{uyH}3J6nA-vSH^*<_+<`IF7`IitiC zO7i}$5G9k;5-PZ>1ogVqgbeXJp;Les!|<_T+I{wDnLf z9gl}w6s$Yafbt?4aJ2XHQQGq5<&7_{<5^|=9mOc_E5QOKm-KcOlyPG`W5|qy>lQeV z4$#)-BSb48qjkyL6+=eun82|ZcPRK^QVxvRF8y7pVNyk@yx=Fb-V7pDAK#Pc?8G$m zJF9TxBh7?G@B`fVp1MdKHBP`0dY_pV+<;{_^i_rnjo);qVPZx&y4rF?dF&3}%dmS1 zApTb?PYnF11^^AoNC zCWsZLaL?Tm7%{1Rb4Uz6PfiiAPU7mzcSn1(@K)Vb$zDN1n_ch2L76oc4eImW6@qza zwow|8B0E(QFi?Bqffv$KOZzm=*;c_rL@iEE;I0<}zuF$CwyriOCs#_Ogg+1}e#oEA zIiNw*56Qgu?)Rev0nzcmX}=W~L$+TeAkuf0hEt>d>@>1D6M2?JpI`2;Ht-~|~5LBh|BwEOJA36w+ zAhSjka1LNZsljn=IOr0Vg1?qZwX;_hLpdoIpjRcyF~&VD)9mro3$yW1qnV7((v(4h z64PcDs{tYM^N-H2bdSyi&tFEqc>7q!}<=Z?Vn7JJ` z>1{`I*8WV4xO1{GIvn?XjhlYvO-$m0V>$npga>0)Yteq0E)ZOQOeiUsPbU9Uxk(_n z0~2LDRXT%$udpNJaZx1`y(B;t_V$305d!CaV6JlSX~;i}0|*^;SSzt1(9CNRR2I-i z-&!w9p<+Nnp*QF{)nr_%Th`3udnwj%80UOtg>vI)!^?4;OgsJ1epuUn_A{U>YV3;e zjHTm|)S^h5aP|{E8!wc(RM07G#;vJei$S z7Txq+(=HgSY^E#rL5QY&(iO{25{vJl9Elt*sS-jh0@f|l{$_*F=xzg&ssRHkHLDmy zw`i1WFC9`US}WWm;?bqGoz)JFk#EA8c~gqe|7K=M^km&h;(Le{OKN@A zB7cdg-pQ)NgP(wn9eBs^YLeBQAax;65w^znTH?-EaSUIud0y;AI<|phzh+?`mm9o^ zXxM&hCs$B~Fn8|4d&CTkD}J^Y5vesc&6U+RasIGT7C}Z73qc{H5w5Hr1KBOiFJzhn z*5r3X(+wP~9n>+Ne+FI6a)XAdZxalys2yIhbUhy(g!b)zlzb7~gr=@ZZVm@#xEHkG z)z6ncC*?G3gz3@gYY$nq#oOoSWS4t~*vn+Aoon74i{G;|`o+}Xx;yE6xbBZf(2^L< zGw7(Hd!}X?)~Gc}As1w``d)JgND>tDvQ+~AD3|(xm|}~gf#|+mJw&F1n-|7HU6f0e zjL>p(P6NSe1S|gKO0+Ez`m~AN6{e#@-%UE>Xj(h}xl>``&+9!7;Yms<57eF-7nT~* zMEYu5cWQoFg(FYpgz?en8FzTp6sfgj1~|8)r+N}1<(n!PuTcZ)>v{#zQmlX_a#&>4 zI*!M;lN@@C90>%|_Xk9;BU*{vlXModP*s)5{`z3;56Jh3iV zut_78IZXBL(GW4;2nopo{iHjG%@24AifR(>`(B9Fe2_PV1>(%0bME|NP#t-T*VmN2 zD$GPJ9>Yl5P>{^gJxa!EaVZBq4@7FTewE@9a*xgW9Lqm?3*WkwBh*&DE*0XUjPAyi zUeF8@#(O9yNhu;TSB;&!$fA-g+5qq_q^=EXb>-s@U73!px$@x5oD zn!J-?e8j@WG{oySEb@ol`-w|e z^l4U}^{&pcoen}QNBZC}9pHVB*V2Y)EL`?u<_Dim8P6F%Z;v`rKEKoZWQBfsR%$#G zuFvOXxxwCbeaK$A)eAADz7|L9beJBu6WlgD!CL2jqzTE^a=u&l)AnGhtPm2bRg&(A z!dnNE7;AvGY@%!m3W!*1|Bi;OuwLKQ!C~gBI4mi(xDvQRZ(KCf4qeMuX4jeQGB~}k zw<5Y8Ne=?Jb9FbY-z|G>+77=;GAH>Mxl1rmk2)O0Mh`qPje~^x7kGxN!p~h>Mlt0L zmP@~Y*e+NR`cwXP;Etq1n{m#~(Rz9K=3F0wD^1F~F(Pdk$yO+`#@803VflIP76;-k z$}Wqim=ILhCye&r@nXhXI1$Uie~;v;K*m=qyv6kKvIxs0F;nP^gPVRqN$#|E*%wtj zYn@ramRO9>ojI)TeUfwfXQnF>E)ZF|&7g1SXgf|CjlfU&bO6s=-JlfF-KR;%qDjM* z6?>?M9Z%wu^6oMLRzjjG9;H)KFfm9ZF<|9$dRm_D87_gUh)|G-mf65Q5L|ZV#6c_S zRFc1{4A%#H&n8p_vDG>vV!;I&m@CbFYl@R>?+`zW6}2O?=asW>IKB2ej4l2 zoG;8}+<(R5LNo=-M(Y=Vxy)Z4yRgEbYq<7Zo-@G*L?v&K-7F20)Z66PF7t3jgjbB~ z2ahqW)F~!E#67`gz)aOm&P;~wE4Y+wQ=hQ+YF$gVO#ni=Q#n~6L7(V@?>R2di!f_?Wli| z&TI-!ff)S{k~K?8UAl`8w>>;{q3ORsK0EVAs#_e_`BnI7pBP~3O;~rqQP@FkikOdS zXBO^i*80W37@JN_5#i=5-?x8XY$w|_Q5O{yRAt(wY+{othgPhkO6RxBzSvvrRDqHdQPUT{_iZ5)ayfu zw*#(#?&F4@1t^xL>~?%dW)^4(6W~(tbZTURZn%)FQ?k(2*;y0R%Ihipu1cUP+Hx3* z%`Poxom?l&&M^~653p6Ei7@bNc12l<_Lz7(sHA7`Y;r~pCvW#_$dvWtBy**{bK~Vj z<`ZEO%;1&d;-M6Q?;F<_IK74Z9UKWO7(#slw>7pUV28`63hLx7Dv|Kr|M%O`Xy%xo z8=vmby&gPp<)6ThJh=;<6)k|qI8tU6&RhRbAsX?diHpaN(i#S#xl=P1#UEb{m9aBR zZQmAq7C6(?QQ8rzT>>mB2|eSjyj2HX_wkcMLXZ0RY;mD`m$K2Hbd&lPWU!l0q+xr$ zkFsQ&42EpURY7h$C&Ysuz|E4C1a8#*lR9OxDn9L{Dq#*F{KML~To(6eW9IHb2#Or~#!gD$+ghu~(c0)%|Lgg(3Yrq3?iR{TeR&%Y+*h8LB& znMu13^-!DaDrI3{#|_)qHI`?udbx$g2K0P-K z`?kMxIrOwP&Z0V*CaB;6DwA06Goxbk1ItZR)mpSB09S_Cpf>piz*=erl<-K{hup{U z^2p?6(s+GS;>cR!n){LbbmvQii@mgnaa|$uBLhW>fMBS@?%n2>%28DSg%b*Y_;XrLCju>4()zw zc-hb)H#4?2kb&v-h3i6!?HmgC7Q=^#^w5L|eeFTu54i1a@VL3ws9a`1Y%+rizu{42 zaoVe8OscwzyrDFQ8QZH123F~DfdesRkzn;2$aSYB*sk;6y+IasT|Ba1Et~tx zso~N?R6fA8`DQ2R?OdtbjMNqXbDC4;@IaK74bjm5{bE2+-g?7U^i`K=8 z{#UddF;FEeMe59#P=bsT1e!wvC#Vq(+x@uU4vxyXx83%9&9y9eOtHuw9Ac@pgqhg` z{9Fx()`a+VYyV{mNIW@C_R)$zaC18UA3%Uo`b-8~52|WM?7~4S5Mw_g?z54GL8i_i zBU0UGJq)?!6BGh~|BVWt09Dx&dEf4Vdnf=ca7|ySOfW7xs=1 zIqDQk-EF(&6j%gA(WghlX-q+;{q9e6-VyWC5?EW<=EiQtDumKembp5S2+Z+Z@ea9+ zpikj1H1UCz)$TQN9Tuq_0WMZfb%+M>#Ge-S-g?^CA=sYQ+1tA3PRkWiTw3LF^MKDG z+YuC?+{JWUI;LsdUp>8z&EiV3J%L7``B_1cMSafjqHt@9W)3g#&ObxnZZRy%_jvHZ zla_X|?}k4$SRP2;-pi*9)ReoOqt65xz})nyM)u0Up!HIwSTL?xkmX36%@qL>vB!(M zS?}2C_<4zU^Ckz*G+qmc_kRoX~ZeZk`y> zLuOqPuslGMzTfgUU^}zW#;9>LO|uRrOA;BwP$L#jSfQqtWBY%VE&zrbnKkhyW_#UL z?BnWH#q6>K(cPx7MX9zNWdT1jv0m|e3*f%zgO8vVvi7|kuMv34jhXJ zyFmIk58DtSd22l{qU$P)yenph6@`QYcUv^Kq@F=v*|Q;WwJ-nWj-?yC|8qkk7XVKi zk)rW#VxDU|p}59ZTU0S>8dcgW)h*>-qF4YKFPB`mBH=Ok6KkQK^PfhcsMJ8+L) zO$!~KY?%uP%w_#1C+%wV5=bm3kiwx)&UFWiDhfeq{~*%SMJXEngE0ODx_H5XRU&e7 zEB`IcXDKk{r#uFlakv0}z`QwMPfmD{V2f={F6-LFZRWZUrTjyjM+%@rCZE5R${WidoNqS=QCyfH zQ#b5u3T%GUmwCTR>!PJ!2(XbzqyP-h9$b?LK!%8Ks0l{`Ey4(ey)<=@4Rz>G{384IhXo*jU`O*hdp8 z)p_X?@m@a_LQK3bK7M8);+Qy(JP%Garr-CL+9z7R7IzVBA-iaVtvLKERvvS=;V9qe zcRt5@a#=UTQjK~_cUK+o4Q|TmUEvXpj#ID*z=>It)`vB|2yxZ##j)b}XU9I&E-Tml z)sv**rRQnuEB)BN3_7)t(p+4qdGqpieiT)iF@y>6umXO#{h0TUV_r{8=T_l7B_l?e zWn17LQsWL2{MEl+>$;%XZL@>`jrk>_P67cfeZgaqDpw}u0gW|7WzTeer%ozzy zQzmj#(GIb>2w`pAZSzvDdcX}>0@#nxx@}9&9Vf~bY1HB2%T1fG5x$s#u5nXO-8(h3aTPR7ditC6mxGU zQ6)@FN0#oP+hf}g*b3Z8y3bLi|P~pGC1V))K7j#Xp|pe+b`U9NkrddCR#L#puCzbabl36y0ip+yGj5ik9Hc%kTH$4D`q*4my zY=x`Yf1T-itUcw`0oF65QY2=$rPyrAv4v*Q+qd2e7TDu6%Ub*WlIku$bhjbzFih^l zl({4p1g#KvgBDEwWC+Ks^AZhxG%&s^HkIZrvaxx9cszTl=nkm%aT=>J6s*xUsv&F) z7={M3pIBzWi1cHvCQOTa`M!Su8hR8eg6%wMh0{#6keXcP9I5BXs(M*wB|)l0uomlE z?O8o9(yx(YNU9c(tIY7Ne}YaIS~r{w>_8 zJJ-P!9=KoXKFp4RgEjey=bO^H@u{y+sfeOGP@4}vHh?`@sDsY42=iTF>b(XoV#YFu!8&Apg+pp1;XSm08S0VJE&ax`7bbVqELX z3G@`wmf;N37)!NDwSwt`_28e66}12UvfSjznxrd2NrNJR{KglZ;z5@lep)#*co$^a z3(?XUY?w3?vl>UfM;6xSLmb;bV`(S%uhXaEUaQ8BaJ*MTqp|iCM;dQ-e(e&9bF6R` z?+yFKCV%>si};FKBPMU`*nGm!3=+O-5ylp=+UtYL5%gO?2!3BsS&q3a+T z?#ti4wjK;zdkCeX0*zM!e+B%*q79~9Q8A3N{CT~saj(sm{3a_g$^Ud6(sZvMRSW?L z+pA~%!?x0kKF&GRGw42UyT&kwsPrm5Qh9!B8HW=K(0aD%cphqD$oGG8Os{~bW5Uv>;f`y%&8H z+{52coXQrYly#Y8B`+`r*S}#Ws`E{5yO%VU563<##D8`r?M@JI&`n7?-j3p;3Y<{P z&s}r<+OEEbo;OTPatbg(+3KCk=Y`I+>rZh!r-U)^(J8g;WyW=}C zPL^I~t|;LElW2PPM$I<}PwEd}{WE&q;*SxLJ1^lp?w_dMgA``ccLNyB;oN$ha9DYE z3SA+toymi(l4?7j*^`OD*l~cga^peHpu62sD8sv|l@tH&N#f^?5A;h}SX7d?5UGT) z`8~+Yb=(h)VnA{GqX%wpE7}!;M0m?G6yql&qw-l~+RNbyO+wc87=M_Q zSIjmHFhIS4DeM1s6r0mL1v|Gq&CSSR0{|2z{Tf|6@1NRFtLj|gDX-6R)=WR;C0|&6w=BkK0 z`ma-D?oBFQ-6Z`#9feX+?lo5M^Wr!Vr8)s`iHZuff!wCOiHMb^HB7Y80);g?j31_M zIxH1q8iny%4@2t-@hDpR4e}B~2NCe;5mn2Iz0Op9_`tj99_PR9Prbw>uYqDCISs`2R;vu(geZ_VcW^Mbz&_)1xd`eA!uKz(DQu`Ep7DK@J`&T~e zou5if#>oh-qi$j*D=BpHY+6R->z7N;m@b&Z{H!CAM0z5eNlYf|AoIO;Seh+@)0>t& zM48^lQ$Dm!oAb=sq3m1`Wv)-rp(6ltpd`7x_L+=G-4rN7ygo=_;n-%+Wp`9PrLw#Q zJxxU=(lLx4YK!Qo@T)+=3OxUIhCplg30z2`JY6Bc6TQ&^yZyTULDNU&Fea?rjw_6d zlvOqiJRG-owq0FJo@>tv=-ehI*=_AR_~ID6nqUN0^;3*uk`9KhBvOT2K@W}Du5^xz<}2fEQuaNn_p}_; zBfiG#)Jph~ST6KnpKBZBB6>V`Sms6*+A67a?m1}32uz&;&OBt5CDO46k9DBg`Dxi1 zHU&;oPdWnEwdW2J_aQs8&NgV&_LK!PZ!6CjyM&+aP)>Bf6V^u;7X)KkoYX|6%NP=R z)rt@;m9i%!AY>!6pHclQ-u1c+wx^$5#&)(&jDOtpUoBVsD@140-)O1a_4e+&#P6!8 zU@b8&Xto^D;UVE?UpUNir8A!*FF2jY{jkVj221^ilNTW;$Os8gxv_)E zP2GZ#R_GDX%bDO{z^7aOOHRj=rV8Av1O@XZqdTXpPthno==Jt13xrvSpEraHfoQXS zAmaj4TC-W&tS8I?Fup$EA$!3UFyGa?rozo%9^2}R`T%c$#{gA!W{k_IrP&vDxzO#; z2YJdnw|Q-3N3hXsdQ6dV&6%d}XU!w3f#r6bN}ig_b0W;fd#Q}DOGYi>{|$hLZilJ} zQ(4dMW`Cx!i?7VMRLqF@CIZ~7B!5=3O5ZJ7^*)F3>Sd8?KZkhrO(hP=>HY{MM6cXC z`>@Lr@ay`Nsc&LVNfzT^F*!&<6jk^Bn;tYliPvx`7s|0)50NMVDhR(^B+DO;CZ0oFWZOR7LYtxx%-1CfA_wf8Dm2Vf-^D#CEY%)G21}Mm5gaB@pAU{ zJ5n39F$RWgtwFkRsCUNc5b;BS{t+@%!kC1K`m<}L@#(_Lg{rx{PLyCc+b? zr1UiMX8v4#o3b*fR(S=mtDWw^skMq?tAlyU2+WArp!F>qA)M=TWFETO^q|L%m1euQ z3oaqXU+&2O;-DffeqxIkiQ`!cy?AEo6FX=zC8*BvQ;?UDq&qaca5^ddUkMnu7Jl13 z*Y8da=86RF^yX3iU5c*;y3w`ar{PrBt;i-CQ4g6p&+`tFaoobC5)^O&B)GD**81}w zuanh?hI!{_yyYe}D>~SPmyLGWhWR9P$doJD>3}lp4Gj@Ol9Bdyr>| zP4!3kpJo%*haHLpy1GDO<);g@3`Mi?w=(*+&_kn`F?WkQ#_JY0)7}DQ0Wt1CE;ssg z3yF5J!Gt%cF{r0A1!QoG#<9b<-FzIn3qDB#g-ZC{pI6ZiHrLCDLBD;Bhe{tacfP2o z^c>!3=WRTk^i;K_WPSs`OZ&K3XLexH5r3!65gc`aG=vteJNIkKK@Z)aq_AXWU$fF(|pKSTA;t zV450H^NDao|A*?g1vHew$t&HB-?^3d8;P?FC~%Puj`6pI-`&fS!3?L{yAo2Io9NBC zrF(HU{D*5GPQfH?Et8We zZ$4Uwrdg0Ftcr`KOTC3om$din4mq1)wgGDE5K1z^W=t}`tJAvD9=43#M9KJRFi>IJ zRyE5hKO6&mkTV#Du11`pJ#|B#7~AmQ2?#ih*XV$zUoohX_rjb0i;lkV)f_F(qjdpR z(rNQyfoS=Dlv{;-o5R+>9m402U(U>QQBJGq83x%PW52FMIq#%QE20G5k{bN9!q3vJ z5z_cFpxiBG)Y{Nm%_g2xnBbhL?@r!X~0cV8=g z1$1(20VUhHTz<8@9@Ez5nt||@@dvNH3w!fS%^1jlMLpgs5eo5M0l4m-Qcd)5L=cfJ zT-EIqU@NHwW;G{*l3Qfv>I%Z9kFa@RqrCfsLb5mfgho-MGS z%pw^swxuuZTWEwxq!}4XQeV|0?Tb0zEV4=(ODXJdTV77u;Xh_Jk}qJPX$>J}sIKjL z?ZAZ7xj-kQXerd%M^5GFtpi-US<0%AWJq8xR8KoQVe5QM-$d1Z1u>X(Mu=rW z*nuOxnryN%q4Ok6KKDOzyo8Pn_|dwix4U6&oN_A4<|*qZKZ(zM|A74zKrWzJvcSrg zdZbh;q-sJp#*?GRROF;LEnZA$FPvqKzP2|^%SqCi1SxhS#8+)r&dbO6P@=M2(Bc~W zak4mk;daY-i)dYSeqbXDo1huM;i~7>bjo%7SW=?Arx>87AE zMPNv#v;OG&e+$3d72dG|UXxzGN|`1p1l0gued)U9GmM*NIg zUbQ_3_9>}mS5e$U3C)aauhJjlt))oE0-AXJur}37F2dU$Vv$)4BZ8{jQ}?0g3PUPM zCV0-hmK4uo7lGbW9nmKMa@IJzYMsaEq1xSvaJN3oQ%g33L^PxdJRt01`G*HTd zMQ*G=ZO<$lRkt{&23GB@ssxIA9M~ps=in5bMOX zvyi{Cpt?auMpE?5;t~sYLY?|#RB4e%&5BfF&j)Xi#t$u1*k+K4r82&}h*;MDkb?!< z418fM6!+6}G$P-!dMMI_+ps@!3??CkZX$06NMSmFJ?GLBg+VQxZS_Ix{khv%oh-jz zyx{Ab<`}4mXn^{5tJ067IA52tk)DpJ9OWS5Xt9_u#j9V{C2M3f7%h~j8MdJt9_cFUQFtqVFNhQVhG@@ zgW7_uCN|dxfMF^{`YRuX$)KgY6VKI~X565P&j)OF35+5D%)3gqNc@|d1>A9LYfFy6 zx?2uiP3&+<>(15^NYd}4F%3~i+3p9j+%lFo>3~QIZeob}UK9HZ zl=I_2eKDLz04h-qL&R21->M2d>C$K|d9m#}Ld~yWBF=bNrvkd7>IMozcRg)a}NU zC=%`@g3>IhZP8V{F6475Da)Wc$tTG%czEU0u^t-hy)-7;_lOoc zCpw+*l&{l~XavFLns|th#-K#7<&3(??p`s{EC}bPK<@q1^6T5omWd?sZP zHA&J*)5Xha>bZLErzEg#7d}mXi!A(&Z)#_YS6S?{cG3c!Z<9@TGq_YhKUmSX|LB1y zL@zh(yrZ?oTRnTPR;=f*{W!C(uyIBzFX;;*9w3XF3bXf-gVyn*xcDz7{DNR?6F$T2 zg@yW`Vcr*8(T5;i1zSAwXqD%lj8ME%>nYw2wVOpC_z1AHemb_akoRWbFDI#L@9b`!w2(22wT{U<{klfWT8n z`a9I8e(g(mNquJekgM{1UX-8p*PZ+8zy73H-ykC<4RbtA5!o|=HJNiTA9zYNOOL5p z9`MxJEa>FNDZ^`Q^+sAGMjq?)er!#iO}NCnJ(-1JlSyA9S`gc+FFjfNDe3Hg6#+p- zO*iMWLyBdaKj(=nJVa~Gc^!v9D(++>Ldh?w9CZzA#xbm*lJ&Xx?`Y^ z$Q*>-?~?MlmpL6=ZW!WZIKgO;9nHr}oRS{l1#uEdv45Jbq3jgiehI)Ruo}u!G-_ew`#a zbrnAhMdkRJJ8tf;k3>4xykubHo4Z(J@Pld}8Y~fQG1Vkb;KfucAXLou<>I1eIm+c4 z))K(v_NS7&h|_iXIp!QPtC@dHrK0bf>A|btR6; zfbIOPRNS8jI0Pu9!-7>GBABSXm}O{g<-OgM(0J7&in{lAga|5l>=^JKdxWNJ%IQWI zN+h7zB9)S)SBO$SgsR?PXx&3xb-Qe0cOB6vUgsvC7+NJOy=BeCw`7+?r%1x5Hzdx# z9@qOm_JLvf$s-sQ^!0{UzEBCxkO9HwL1O60eZuxQU;pjc$M5+Av~Z6k@s!cVO-Z2# z`a7NZ&VRpxKC2Fkik{-ph=n^h9hY%vHX4uun@pATaY>P&xo;ADd>m&Dibu`-93v4} z-x${<= z4$#{db5cj?HJwRdCbXN5vs^A9H~}0y?>)`AQ#6k!F@#h9vPe(tNJW|x>^aD=+2#-m zr)ciCRjG3XMzAah?Y8Koq;4Hk0%$0GF~Ef1h(Aoe&xuolZhN(};(!1RG+U2%gtOQ4 zl{XEx>I0L`Q>SWIs=Zz(YJy|eAd=$H+`U-lENsXDQjAenPx-3!3}bCeqdcSCvq^XC zDphc}NXyUx{RaLAAtzV~zgYcGg9?}4!#(B-8-{_Vf7uwsR1)?#jtL?ec1}|)fye6Uy!AWWXTW${6Sp~gCkG>$tn0t%HrA9>00YIw7-Db50gLOWN^s8g zAIXJQh;J1wn&bwtu9h;xw}GXE*{n|508WAB#0j(GL9N)C;K;d2 zk|15C4}{;aG%mUQp#LlR6u~28>hu-HyG;W^ys0ICWc}bSM@&&OaeS=76PuA97{HQr zT2#YZ64AhP-v?7c3=oQ?l3VZm!vj%UlNQ=P11iZ|3>3j4X8+%xyycn^fI+I`h=V6% zPEY%TKb#jiW%c%)&)o`>LtHl{rW<};$pbYxpWB!{qsHn4!HzhPFc4q*(amRlqhVck z)Bj)4v2MlKu#K-gIbltng@%@~yBq}lkqB9@g*we{^Z-sUD> zAxk{NB^|%vvTtHZ;KGcRrt!s|uJz)Q0+nt!@<%Ev19v_cMI@+J^*2&M0IRgIiylv7 z^Qo&gUPB6VP3=p)aGe!Tz4v5ZVKdDTMe*snO#ah+xOf&P?}?F?mlzi~f?_L@E_xfn z&V#hJxg-nEGVU6vOvQ`6z_!3>0#)Lf1t*{Iii4Z~!wedWA*hx^7$iMs&00UQhSvV+ zP&sqs@5%9@)z%tHDA0%$=}!bHfL>I-Mw@u1&TWHybo|ktXxq{d|mcVMveWh!n6)*lSs@!tVgDL zA!NS@=z&BX*!-WNnn{^s|H88_1njk^JMjc)LlZHp;Ci+P6#RWyMIinKO)~`3mbhFg zO&Ij2zQSoLV3BP#r!YC%f&w{>TAn`!!pUf7U3GPNWLliXt|HN^`bPOMc&m4@RP+4y zg>>9Ax`E3}ZJq^DE&+4g1r89rO?>6&;iLnXupf^~%FkGnpQZn{(&c)AmR{$9Gw&)I zr$R;uOsCV0XiIE=Ckh|?=(wSW>s-;!Yz)I3fHljRjq_M&=cePKc3P01T7dD+4K>~2 z!uN1fa6%Ck(`0C#V0-j~NE7j>b{8{zm#6s9n=xvi&_2~pW^*Pe903SmFUeuNwzNSi zF}WBW6_f^%w2t+h`XttPbeM}|$MI|5KzcFlg^MbK}r_QmXRx=0SOb*@DlRnyH(+Cvpna@?s z>oh%YvIRf86jgG=n^|wi8>*FC+A44~J1)P2dfuRvk8n z$hAK0IBqAnuwsNh`@7iun)?qL52+!Gnaqq5K%?8en+q`tPvOf2AQ#A0sqXOG8xEcc zWI}35yh7YbJras*9yg2K(_-MOSNh;{ZDlcL>eZXQq7F+S0D5aXhL6S&F3wKFy|5N` zaetz$bZ?WrN4h&%*p^0DDcEg+on47MjEK*H)9CCl$ssl-JBx)`A-gfUy5}f<_(vh8hDWcrtV)0aiJHfu(bM8* zDu|>U=0tCDL?Dsitp5pe`7?X_-RJM~6rtS#!~*PtuUj6qZ>W4X)H*S3u)OU%UN8al zcdn7|y@~s@J%iT&=TwL7fE|WDn7$*Z-eK>~v2xVIVK3*{vO(gORv#~_Uy^|T~=n}k7t?}mORV(KO$JU3? z$Ao3TPzs^>)z3lys`3Wp#JFHoTVsUb$PXBaNLc7P3b6}^BNAjXez5_VU!lt^^Zf7H z^}2Zq??bSl$Y1xDhw!^iADp-+mw$$DIDoCYZ0>J~n;o|BI=uMRx)bA>LJ3XgH<)uw}j-13k4j;}xWKcrh3mv@J3=5S{%Cr60$6n#PP!Y`kFiq1>EX zA#*7GasOh5BB&5>!TGsU!o_i47J3y)RwcBy+rneBF#JJ`6bta7eQKUxS0``r6YuOx zWci5Y@_2*g>S)9YpUZWnDG?Br?=!ib%4dJ7lWfoAV?Rk})T}g+VI9Kx<5dFva7VpZ zMp2LYpcS2Q`pjMae*2lC?+w5OXCa0D#u$=x7~?MPc|2Y1!9e7gd^gt@2c)IwpN}cK zEI?yYjg<2>0Aj(`2__1quJ8uE4bs*i@)Ij5DC{<+3YCd9!Oz`DRrz$2w;Sq~fi1MN zQu|B!*T$AmAF&_ijM=^+{fMem&n$0Q6yv29UdCRfX8}^N;*SJc843MD!O*Axh+!+z zR3iP5pTb^A8%xC|F(8?G$BU?=3iR4)j#)D(HS7(E`6IleolOhSj^GXT<@&|~A>j>wW{7`KOGpR#+eUETv2x=GacZxb-& zJ~^5yW+#z%?R5$@9tACqN&Q<94`kX4UlACIZ3cp>6`sGBKp#-kY;uE5$srqsD9ac+ zUIF$^j6maG(Is}kgh{%`Sp&26l!af+38PS170-KP64*r6ha1!{#28$NGY$bHQ9}8Ki)IAOp5y1Pu6p**PerGE5odyxiOfspAvM~b%WHu~F6&X!dQeIRZufcb* zklsm`e;Q({@=bqc=@dp&^3|&%a{Cy3YFEuG0@krpJ)37;9g47s+GU;6+jajNP&yCD z|Lbo++-Z>X=edI-GJ=W%(noc6Vp_);@W67I^ie0fV;m6Q ze!3AnX=%>9O@-~4n%iH%TnGMJCtBU5NkCnQnlyW3iEP8|L%&4AU~){2@2gQWhCHXR z&3Aq@fDd{Rj}=V1D&KhVB|~$frJiHzPdJv>-n?B-&klnC+E(W;M-{^=oC=58;ucKW z-B76(1p%h;je3s=;LkWFD1s!h7~0{A2WJbck!~N-lcU+PYo;}$XFzz-^{hKdrBdYx z?l4#a@k59FT(9DC{zWT+LTpajMCN@lSanl;@W4@Ga`_tRjo9#+eJ_LaE)yuXrQCQJj{J#<(OX_02GDpAOuZ#Hzxq9k#ozQ4a2`>fal0xZVjV?UV&dU$3v z*$#1Jo}96}!6i4NAjzyiZlkHsUgyt*W$WO2Ogpu9Uo&5|f`r=0DH6(cV--p(F(0^{ z=`xh<7Q8^VdgJ4pA+dq7E~Of7wc64^1YRGQPy$GH14>0|JR@+1^(YRi%JSfDasNJK zXzPol@0M@FJ;E}UP0%;VJ;^Z3} z?yUVjKvO8&g;k8WL!^W#kZV)!zx3onB4qlhH{bSS-lE)ao4pDV|59`7*24tR6)Z)k z&+xNZrbjyQDB84`b@ij<`9A&EWJY})54rR)irK_I`w`@&}$GRjo@^|1~E{WY8 z<%S0|`aNx->Y{_^H&W;Qcg2Wpb>=}M8p9*me<*x*N`x}M1%EyYvblt(Fo9Bd?Fk^+ z*`e%S>K|%qu{v;^n>2ZN%VgsV@xkB^2110wxc%|o)@|3EOfbV<>)0#Y^_ZAw*RMQe*o!pmMC*izYqZQ|dQ( zkL>=D@O~mkk8u&4M(7}3wbZ?<@sOx`Yl{uv?cKL4DSAP(9U)O|zXGE+#A5hHtuT8}fd8T`_qs*DIYNj45 z=uOv*1FeT3!k_cn4oB2(qAXROeBfiUGl;Y}GJEYaIDvpWd`n}72p9ISoE*{#3Mf6T z{G#~=nQ1)&?@7_kBXT4BC=z`;f$IIM*) z_UiZ7U27L+?|4yE+^BhhJ5)|&5 zU_m{u7?~OH6TC^oFOcrxFHnAyOGMjjn$c0A0K?8CFoF3@$p)oPiSIuj)!0n%S`#4J zd&N)_hDNgqsqU~BPgL%tXiW#nL{TTqYscD3pW;W92_Zj%2?`Gy6t(d2m}2&0!L?5p*&;ib54&$lYU*1Of;E{YBKeVLLkYfU zaoi|u583dCZh1+kMtSyN92U42tkmJe+i&DULX7Ee3C@yFUGnl__)%<4IMVpt0hkpS z>W*xYuYIa5G8|A|v$!S;KWxpspyz?AkXY0fm!tETRzOy?%H;^41?)^ihgrV{WM@;wB4gS*B}m`{!v? za0F}riqSgg13nV`dV70ND3?-ahS99r#E8g~g}fc&uS^FxGY+8&xujxPZJ6X_Ov7me zF#mDmD9)vcap8P5K$)p?w-wVAgtQaR7G+Flc zr?~n>#b{y`7ljleFaoV8zqVdR(w<*>`V{uSM!57i=qWV(z3gW8tI)>3X)Zx)HMd+EWVh&CgrOtN74J+R_;}AbVZ5bYIte62w1z>}I zA5qm*yZL}Tw5VTE+54E5Oa}u%@7)q4+b{FcA?ArP?X%PLioL>%4$Jf`5meb>D>%8Y z#xL3d9i3y+4Sb4@1WtYi%X6*DnpbTVPKHBQnrwffp-v-sETPRW9P=kiI~*gj$GExq zI*dZgLic^_Det2f7o>VtCgQ8^9P*7F6QWE#NWS1nyx#kk&sISg-b2g_22;E2j#JV# zlM)kZ%8d(y;L-5%^T_bK^U37i@Y-t=J{@$&uP`;as99M2o74^i=t@882v?3s{#AO6 zvN?p9rPMeh%*vb-VZSOGba6GNBIJs@sxFjUz(Bi79l8lg!c&v9WD%4AtDHK9!y5I;c18^7xsZ8NilKcj~l1sZ8 zal&3E=)C!#jOWE^cK)%@<#cKX&b%&x@&f@L6v(6UL-r)ebA6v&xEq+JA7=R%P>9b< zo-eUAx&me>m#)^0W6Cfmh%lhdHEG_EVEOeh!;d*HXV@scMXe=5fkqfww4u}J{P^cd z2f(i>q56*nqe)%_jC~2|NG+MX07(`?o(Ouoc74Lo+_PC^{LZ*W1&#KGaztRHy9Q3s3 zmomU0jF>o6gxv@5s2m&4hM(wzl^~ZqP&F6s(3I&VNbsoOs1gO=pv3XOnama_O==4N zyYKWM=w+wQzb84%MUUQ2!ImTV@T}WmM{CUAgQY+44PoD+jQ$avvOOI3GDv>NaF^aV z991X~jpG8Ra`bzJUjtG=`fPbjn(rdR_mD&&8NYbd%VbA0)l1rn0=3U-?mLT0uoG#2 zJ`qbX5nR4>bz08uEbbhsu;R9n)eGtk)K8gnJRSZIN4V6yHk$2%Hu`N6X5r`zd+pf| z;%R&}q>_3@1gNsdwjS~p!V}0!)iU~4LZ-PPdglaC+o3M?4~;1QtL+X)$K#jtdjkHV zAlv^&=Ib+rO=7$UKHJC&n%&w~RA}b1=3Djg5=C>>c2DC|?M`GrRdZJ+)Ucms@17L0 zRH3%Cbn*2f#-cbcTgVj4gP~q^8CWWio*C8+6>%&J^ubGHdgwv+~yHvG5G04TrfKQvPU<;$d0ZE)o@Rw!Msztt~ zHwd>(Sg&)u?oIH<>^}cK176bpew6ncBG@YHdGq+hFE|}anyqr z_B>k1+0}=S=p(4#&gXr5o!@mO>x*7WDtqDm&6picAHk#$g#I_FW;3|@iq@oHXgbc| z04Mk6<<&VU`~n=-c@Jo9vVkG4Bnks!{aW?qc@^X0a7o@?6on0&ir+d=auPslxcZ7v zlNTz~VdfnBSWk+*!B=uc1t4x8?D(zsHbPY`moGW9o9^B-jr$0qYX8}E0C?8%#opGw z(JpFp7k7x>@N31y3ej$@OqjKjgzv|-@1VTog$pISmKe^&^K>hK3J}>G;%%JcKfx6m zB$<=o1-}MT4OBbbm>Ezb%BOU>MULdc^IXMMt*Wq~Ho(%)(K{!iT)plNP<><_ARWLx#hJRAip^rVKp%ZpFCP{mW0t z72|!wY+Hau)8H;|zD!#G-`h1yO0Xax0XIZg8Q2XSiI2bvKpBrr7>Ne*h069W0DW*o z|7n~d1iMK$_-DbsTfsOAuEI|i?26OK#SYUqg5Qy^VJ*`M^kk=4HZY-Lnj3Zfyd672 zY{x+<5*KNJb2VO2RU&rPXulN~y)iXP%LM&qj>X$Pp|rWpR}$rV1Jp;M8KobDD~(mB zB}C2gOu`0tlvPgAx+(JjmEXMq(Yy%C?i;4fnL)HQ3l(WP-2$$}IcCS6L!sO1j~Ki# zs-Ep4S9l_iRP}&r;j#D%pzEvDr#`VsCSZtE9GZf0-xvF}BG3t5R*N8O*AZPVl9_sK zf7P9a;g>z-Z%IU$=+?zH={aYkM8#LYLU@kCnuEUT(I)rC4bI)4Lu9K!7hbiX=pdYS zJh(z#mj5tH2Km{&|ppcWAnHc})1Mpw(4P4U{{T;VM`=tA?i+V46NYfGoEV z#_{b9Q$W~rZbhYMU&P;<{CCSaEHu?M-@j$TEaB0JY1Ta|JU#5904J1OhnA_ongxUC zU7tgLH^L9?ka!}}8}Pjz>f^Q-UdLsA9Z%$INI!YEOO5 zadqK`i&so3n<&K3&nUhEhb@rhuJZchjl|?x#bp>H+U-ah)tnCYGi9xH!^rCadW}jc z%Xm5HC7bGZ9V+tCB)0B@i{x*OLtM4jV#fC`J?xhM0<*vf^7N9yZ0<}O-|?OJgk#`{ zYI(x-RkzO1NHAb_-pn86+Vt4{Tyouc^y4usOnexyOUqszH?2!X8&-StZ2|-aBFcW_ z_y=V>*M~ycEMfFph$P@~ahTUIX%Aq51s@zCy9liGX53pHx=+Q!?VSfw`(jmxzm3^8 zAyiK9?6Cj?u?uuFrpp#aD>q?if#Qa;UkyR`?;}Sxbm0@gYQu3+<@``1aV7M2A zo`U&Sn!sCn`=_kPa#^4a^QT|>Un#QWBy;g=tsX1f3|zp>FF@I*sG3#*#L1EN1)nJf zGs++crHh;V3tJ7if>@pxPulY=RZeyL4>A)M7hJ!c_J1Ga`KZP3GeJ25JnxP1H`^;E z?2lkkA9OiUV`_!UOptcC?Xb*%Oy0#4rBaZY3VKE&46Tr^HHz_;c)~OGKheLZq z@Np^uXC2KseFR;pC>qW)PKza$tcP}aMj973!o!Ke4m_F+#Bz+NDKET$Yhg=7+o8#J zF@Nbv^t`GnB{sLgGe-##p))U2BHt;dZy_A!x|qKsDJCoK`F!==bltF4ZSJN4-K?S0 zgm=EMC@t7}9lCJ*+Lkc^9kBe?SC&#)KG=dS zCtI$R!ZgfplfDg=&K;%O&uFggpQ-#UR$)8orG-!Dm&I3Q0@W^GY2^6zdotTtm1JWo\"name\") ];\r\ + \n#[/system/script get \$expScript name];\r\ + \n:delay 2s;\r\ + \n\r\ + \n:set expSrc [/system/script print where name=\$expName];\r\ + \n/system/script print where name=\$expName;\r\ + \n#[:put [/system/script get \$expScript source]];\r\ + \n:put [\$expSrc];\r\ + \n:delay 2s;\r\ + \n:set FileName \$expName;\r\ + \n:set FilePath (\$DirPath . \$FileName);\r\ + \n\r\ + \n#:log warning \"\\n----------------------\\n\\\$expSrc = \$expSrc\\n____\ + ______________________________\";\r\ + \n:log info \"\\n\\\$FileName = '\$FileName'\";\r\ + \n:log info \"\\n\\\$FilePath = \$FilePath\";\r\ + \n#:log warning {/system/script/get source=[/system/script/get \$expScript\ + \_source];};\r\ + \n\r\ + \n#\$[/system script get [/system script find name=\"\$FileName\"] source]\ + \r\ + \n\r\ + \n#:local gettingScript \"\$FileName\";\r\ + \n#:execute script=\"[[:parse \\\"[:parse { :put (\"\$[/system script get \ + [/system script find name=\$FileName] source]\"); } \\\"]]\"; \\\r\ + \n\r\ + \n#:execute script={:put \"[:parse \\\"[:parse [/system/script get [/syste\ + m/script find name=\$gettingScript] source];\\\"]]\";} \\\r\ + \n# file=(\$FilePath . \".rsc\\00\");\r\ + \n:do {\r\ + \n:local fName (\$FilePath . \".rsc\");\r\ + \n#:delay 3s;\r\ + \n#/file add name=\$fName;\r\ + \n:put [:tostr [\$expSrc]];\r\ + \n/file set \$fName contents=[:put [\$expSrc]];\r\ + \n:delay 3s;\r\ + \n\$WaitForFile \$fName;\r\ + \n(\$FilePath . \".rsc\");\r\ + \n#:delay 2s;\r\ + \n\r\ + \n} on-error={\r\ + \n:log error \"\\nERROR \\\$FilePath = \$FilePath\";\r\ + \n}\r\ + \n#\$WaitForFile (\$FilePath . \".rsc\");\r\ + \n#:execute script={ :put [/system/script get [:put \$FileName] source]; }\ + ;\r\ + \n#/system/script export \$Sscript file=\$FilePath;\r\ + \n#/system/script/export [:put [/system/script/get \$expScript source]] fi\ + le=\$FilePath;\r\ + \n#:execute script={ :put [/system/script/get \$expScript source]; } \\\r\ + \n\r\ + \n#:log warning \"\\n\\\$expScript = \$expScript\";\r\ + \n# \\\r\ + \n# file=(\$FilePath . \".rsc\\00\");\r\ + \n#script={:put [/system/script/get \$FileName source];} file=(\$FilePath\ + \_. \".rsc\\00\");\r\ + \n#/system script export \$src file=(\$FilePath . \$FileName);\r\ + \n}\r\ + \n\r\ + \n:log warning \"\\nComplete!\";\r\ + \n\r\ + \n # :execute script={ :put [ /system/script/get Amster-GlobalConfig sou\ + rce ]; } \\\r\ + \n # file=(\$FilePath . \".conf\\00\");\r\ + \n # \$WaitForFile (\$FilePath . \".conf\");\r\ + \n # :onerror Err {\r\ + \n # /tool/fetch upload=yes url=(\$BackupUploadUrl . \"/\" . \$FileName\ + \_. \".conf\") \\\r\ + \n # user=\$BackupUploadUser password=\$BackupUploadPass src-path=(\ + \$FilePath . \".conf\");\r\ + \n # :set ConfigFile [ /file/get (\$FilePath . \".conf\") ];\r\ + \n # :set (\$ConfigFile->\"name\") (\$FileName . \".conf\");\r\ + \n " +add dont-require-permissions=no name=test1 owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="\ + \r\ + \n#:local runningVer [:find [/system/resource/get version] \"(\"];\r\ + \n\r\ + \n:local runningChannel;\r\ + \n:local runningVersion;\r\ + \n:local ParseCustom;\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\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:global runningChannel [\$ParseCustom [/system/resource/get version] \"(\ + \" \")\" 1];\r\ + \n:log warning [\$runningChannel];\r\ + \n:set runningVersion [\$ParseCustom [/system/resource/get version] \" \" \ + \")\" 2];\r\ + \n:log warning [\$runningVersion];\r\ + \n\r\ + \n\r\ + \n\r\ + \n# :if ([:len \$open] = 0) do={\r\ + \n# :log error \"\$SMP Could not extract installed OS channel from vers\ + ion string: `\$runningOsAndChannel`.\";\r\ + \n# :error \"\$SMP error, check logs\";\r\ + \n# }\r\ + \n# :local rest [:pick \$runningOsAndChannel (\$open+1) [:len \$runningOs\ + AndChannel]];\r\ + \n# :local close [:find \$rest \")\"];\r\ + \n# :local channel [:pick \$rest 0 \$close];\r\ + \n# :return \$channel;\r\ + \n#}" +add dont-require-permissions=no name=01-Amster-Init-Script owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="# Amster Initial Script\r\ + \n#\r\ + \n#:global GlobalEnvRemove true; /system/script {run Amster-GlobalEnvRemov\ + e; };\r\ + \n#:delay 1s;\r\ + \n:#global ReloadGlobal true; \r\ + \n\r\ + \n:global AmScriptsUrl \"https://ros.vados.ru/\";\r\ + \n:global defOwner \"vados\";\r\ + \n:global AmFirstRun;\r\ + \n\r\ + \n:set AmFirstRun do={\r\ + \n :global AmScriptsUrl;\r\ + \n :global defOwner;\r\ + \n #:global ParseKeyValueStore;\r\ + \n #:local AmUpdCRLF true;\r\ + \n #:local IfThenElse;\r\ + \n #:set IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1\ + \_] = true) do={:return \$2}; :return \$3}\r\ + \n #/certificate/settings/set builtin-trust-store=fetch;\r\ + \n #/tool/fetch \"\$scriptsUrl/certs/Root-YE.pem\" dst-path=\"root-ye.p\ + em\";\r\ + \n #/certificate/import file-name=\"root-ye.pem\" passphrase=\"\";\r\ + \n # For basic verification we rename the certificate and print it by f\ + ingerprint. Make sure exactly this one certificate (\"Root-YE\") is shown.\ + \r\ + \n #/certificate/set name=\"Root-YE\" [ find where common-name=\"Root Y\ + E\" ];\r\ + \n #/certificate/print proplist=name,fingerprint where fingerprint=\"e1\ + 4ffcad5b0025731006caa43a121a22d8e9700f4fb9cf852f02a708aa5d5666\";\r\ + \n #:log info \"\\nAmScriptsUrl = \$AmScriptsUrl\";\r\ + \n :local Scripts {\r\ + \n \"Amster-GlobalConfig\"\r\ + \n \"Amster-GlobalFunc\";\r\ + \n# \"Amster-SFTP-backup\"\r\ + \n# \"Amster-BkpEmail-and-upd\";\r\ + \n };\r\ + \n# /system/script/set owner=(\$ScriptVal->\"name\") \\\r\ + \n# source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRLF \$S\ + ourceNew ] \$Script;\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$defOwner source=([ /too\ + l/fetch (\"\$AmScriptsUrl\" . \$Script . \".rsc\") output=user as-value ]-\ + >\"data\");\r\ + \n /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$\ + Script;\r\ + \n };\r\ + \n /system/script { run Amster-GlobalConfig; run Amster-GlobalFunc; }\r\ + \n}\r\ + \n:global AmUpdRun;\r\ + \n:set AmUpdRun do={\r\ + \n #:local UpdScript [ :tostr \$1 ];\r\ + \n #:global ParseKeyValueStore;\r\ + \n :global AmScriptsUrl;\r\ + \n :global defOwner;\r\ + \n :local Scripts {\r\ + \n# \"Amster-GlobalConfig\"\r\ + \n# \"Amster-GlobalFunc\"\r\ + \n# \"Amster-GlobalRemove\"\r\ + \n \"Amster-backup-SFTP\"\r\ + \n \"Amster-SFTP-backup\"\r\ + \n \"Amster-BkpEmail-and-upd\"\r\ + \n \"Amster-TG-Bot\"\r\ + \n \"Amster-TG-Notification\";\r\ + \n };\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :put \"updating \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$defOwner source=([ /too\ + l/fetch (\"\$AmScriptsUrl\" . \$Script . \".rsc\") output=user as-value ]-\ + >\"data\");\r\ + \n /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$\ + Script;\r\ + \n };\r\ + \n# /system/script/add name=\$Script owner=\$AmOwner source=([ /tool/fe\ + tch check-certificate=yes-without-crl (\"\$AmScriptsUrl\" . \$Script . \".\ + rsc\") output=user as-value ]->\"data\"); };\r\ + \n}\r\ + \n\r\ + \n\$AmFirstRun;\r\ + \n#\$AmUpdRun;\r\ + \n\r\ + \n#\$setUpdExist;\r\ + \n#:global setUpdExist;\r\ + \n#:global ParseKeyValueStore;\r\ + \n#:set setUpdExist do={\r\ + \n#:do {\r\ + \n#:global ParseKeyValueStore;\r\ + \n# :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vad\ + os\\r\?\\n#comment=*\" ] do={\r\ + \n# :local ScriptVal [ /system/script/get \$Script ];\r\ + \n# :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"#comment\"\ + ) ];\r\ + \n# :local scriptName (\$ScriptVal->\"name\");\r\ + \n#:log warning (\"\\n\\\$scriptName = \". \$scriptName);\r\ + \n#: log warning (\"\\n\\\$ScriptInfo = \". \$ScriptInfo);\r\ + \n# }\r\ + \n#} on-error={}\r\ + \n#}\r\ + \n#\$name;\$owner;\$policy;\$dont-require-permissions;\$last-started;\$run\ + -count;\$source;\$invalid;\$comment;\$.id;\$.nextid;\$.dead;\$.about;\r\ + \n#;(evl / (evl /docommand=;(evl / (evl /foreachcounter=\$Script;do=;(evl \ + / (evl /localname=\$ScriptVal;value=(evl (evl /system/script/getnumber=\$S\ + cript))) (evl /localname=\$ScriptInfo;value=(evl (<%% \$ParseKeyValueStore\ + \_(> \$ParseKeyValueStore);(-> \$ScriptVal comment)))) (evl /localname=\$s\ + criptName) (evl /setname=\$scriptName;value=(-> #\$ScriptVal name)) (evl /\ + log/errormessage=(. \r\ + \n# \$ ScriptInfo = \$ScriptInfo)));in=(evl (evl /system/script/findwhere\ + =\$name;\$owner;\$policy;\$dont-require-permissions;\$last-started;\$run-c\ + ount;\$source;\$invalid;\$comment;\$.id;\$.nextid;\$.dead;\$.about;(~ \$so\ + urce (. ^#!rsc by Vados \r\ + \n# \? \r\ + \n#));5))));on-error=;(evl /)))\r\ + \n" +add dont-require-permissions=no name="Download cAP's Packages" owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="# +------------------------------+\r\ + \n# | |\r\ + \n# | Mikrotik RouterOS Scripts |\r\ + \n# | _Download cAP's Packages_ |\r\ + \n# | |\r\ + \n# +------------------------------+\r\ + \n# https://github.com/sebastian13/mikrotik-routeros-scripts\r\ + \n#\r\ + \n\r\ + \n# Set a directory path providing the required space\r\ + \n# Add a microSD card https://wiki.mikrotik.com/wiki/Manual:System/Disks\ + \r\ + \n# or setup a RAM-Disk via '/disk/add type=tmpfs tmpfs-max-size=20M slot=\ + ram'\r\ + \n:local dir \"/tmpfs/capsman-packages\";\r\ + \n\r\ + \n\r\ + \n# Set Package Path if required, set policy to none if using 'upgrade-cap\ + s' script\r\ + \n/interface/wifi/capsman/set package-path=\$dir upgrade-policy=none;\r\ + \n/caps-man/manager/set package-path=\$dir upgrade-policy=none;\r\ + \n#require-same-version;\r\ + \n\r\ + \n:local installed [/system package get value-name=version [find where nam\ + e=\"routeros\"]]\r\ + \n\r\ + \n# Delete old downloads\r\ + \n# /file/remove [ find type=package name~\"capsman*\" ]\r\ + \n\r\ + \n# Starting from RouterOS version 7.13, drivers for older wireless and 60\ + GHz interfaces are\r\ + \n# part of the separate \"wireless\" package. The existing \"wifiwave2\" \ + package has been divided\r\ + \n# into distinct packages: \"wifi-qcom\" and \"wifi-qcom-ac\".\r\ + \n# RouterOS >=7.12 is required to upgrade to 7.13.\r\ + \n# https://forum.mikrotik.com/viewtopic.php\?t=202423\r\ + \n\r\ + \n:foreach architecture in={ \"arm\";\r\ + \n# \"arm64\";\r\ + \n \"x86_64\";\r\ + \n \"mipsbe\"} do={\r\ + \n :foreach package in={ \"routeros\";\r\ + \n# \"wifi-qcom-ac\";\r\ + \n# \"wifi-qcom\";\r\ + \n \"container\";\r\ + \n \"wireless\"} do={ :do {\r\ + \n :put \"\"\r\ + \n :put \"Download \$package \$installed for \$architecture\"\r\ + \n /tool fetch mode=https \\\r\ + \n url=\"https://download.mikrotik.com/routeros/\$installed/\$packa\ + ge-\$installed-\$architecture.npk\" \\\r\ + \n dst-path=\"\$dir/\$package-\$installed-\$architecture.npk\"\r\ + \n } on-error={ :put \"Error downloading the file. On a 404, note t\ + hat the package may not exist for the specified architecture!\" }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Script for setup routeros script system" \ + dont-require-permissions=no name=AM-setup owner=AM-setup policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-setup\r\ + \n# Script comment: Script for setup routeros script system\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# :local ScriptName [ :jobname ];\r\ + \n# Additional commands:\r\ + \n#\r\ + \n# For scripts:\r\ + \n#:global NewScript \"script_name\"; \r\ + \n#:global GlobalScriptsUrl \"https://ros.vados.ru/\";\r\ + \n#/system/script/add name=\$NewScript owner=\$NewScript source=([/tool/fe\ + tch check-certificate=yes-without-crl (\$GlobalScriptsUrl . \$ScriptAdd . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n#:global NewScript (a);\r\ + \n#:global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n#\r\ + \n# For run from terminal:\r\ + \n#/system/script/add name=AM-setup owner=AM-Setup source=([/tool/fetch ch\ + eck-certificate=yes-without-crl \"https://ros.vados.ru/AM-setup.rsc\" outp\ + ut=user as-value ]->\"data\");\r\ + \n#\r\ + \n\r\ + \n:global ScriptUpdatesCRLF \"LF\";\r\ + \n#:if (\$ScriptUpdatesCRLF != false) do={\r\ + \n# :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vad\ + os\" ] do={\r\ + \n# if (\$ScriptUpdatesCRLF = true) do={\r\ + \n# /system/script/set source=[ :tocrlf [ get \$Script source ] ] \$S\ + cript;\r\ + \n# } else={\r\ + \n# /system/script/set source=[ :tolf [ get \$Script source ] ] \$Scr\ + ipt;\r\ + \n# }\r\ + \n# }\r\ + \n#}\r\ + \n\r\ + \n# /import verbose=no \$ScriptName\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global SetupScript [ :jobname ];\r\ + \n:global RemoveMe true;\r\ + \n:global RunOnce (a);\r\ + \n:global InitSetup true;\r\ + \n:global tmpfs false;\r\ + \n\r\ + \n{\r\ + \n :local RmMe [:tobool \$1];\r\ + \n\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SetupScript;\r\ + \n :global RemoveMe;\r\ + \n :global InitSetup;\r\ + \n :global tmpfs;\r\ + \n\r\ + \n :local UrlSuffix \$Identity;\r\ + \n :local UrlDir \"certs/\";\r\ + \n :local CertUrl (\$GlobalScriptsUrl . \$UrlDir . \$UrlSuffix .\"/\"); \ + \r\ + \n :local CertCommonName \"Root YE\";\r\ + \n :local CertFileName \"Root-YE.pem\";\r\ + \n :local CertFingerprint \"e14ffcad5b0025731006caa43a121a22d8e9700f4fb9c\ + f852f02a708aa5d5666\";\r\ + \n\r\ + \n :if (\$SetupScript = false) do={\r\ + \n :global SetupScript \"AM-setup\";\r\ + \n }\r\ + \n :if (\$RemoveMe != false) do={\r\ + \n :set RemoveMe true;\r\ + \n }\r\ + \n\r\ + \n :log warning (\"\\n\\\$GlobalScriptsUrl = \" . \$GlobalScriptsUrl);\r\ + \n \r\ + \n\r\ + \n :if (!(((\$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=\$CertComm\ + onName ] ] > 0)) do={\r\ + \n :put \"Importing certificate...\";\r\ + \n /tool/fetch (\$CertUrl . \$CertFileName) dst-path=\$CertFileName\ + \_as-value;\r\ + \n :delay 1s;\r\ + \n /certificate/import file-name=\$CertFileName passphrase=\"\";\r\ + \n /certificate/set name=\"Root-YE\" [ find where common-name=\"Roo\ + t YE\" ];\r\ + \n :delay 1s;\r\ + \n };\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint ] \ + ] != 1) do={\r\ + \n :error \"Something is wrong with your certificates!\";\r\ + \n };\r\ + \n\r\ + \n:local MkTmpfs do={\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 (\"The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\"Try to removing directory 'tmpfs'.\");\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/remove tmpfs;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n# \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource/g\ + et total-memory ] / 3);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get tmpfs;\r\ + \n :return true;\r\ + \n } delay=222ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\"Creating disk of type tmpfs failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n}\r\ + \n:if (\$tmpfs = true) do={\r\ + \n :put \"Tmpfs variable is true. Checking for tmpfs/scripts directory...\ + \";\r\ + \n :if ([/file find name=\"tmpfs/scripts\"] != \"\") do={\r\ + \n :log info (\$0 . \"Directory tmpfs/scripts exsist.\");\r\ + \n :return \$true;\r\ + \n } else={\r\ + \n :log warning (\$0 . \"Directory tmpfs/scripts does't exsist.\");\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :log error (\$0 . \"Directory tmpfs is not created!\");\r\ + \n :return false;\r\ + \n } else={\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=/tmpfs/scripts;\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get /tmpfs/scripts;\r\ + \n :return true;\r\ + \n } delay=100ms max=10;\r\ + \n } on-error={ }\r\ + \n } do={\r\ + \n :log warning (\$0 . \"Making directory 'scripts' failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n# :return true;\r\ + \n# [ /file/get \$FileName ]\r\ + \n }\r\ + \n# :log error (\$0 . \"Directory tmpfs/scripts does not exsist. Remove\ + \_global variable tmpfs!\");\r\ + \n# :global tmpfs (a);\r\ + \n# return false;\r\ + \n }\r\ + \n}\r\ + \n :put \"Renaming AM-GlobalConfig, if exists...\";\r\ + \n :local ConfOldName (\"AM-GlobalConfig-\" . [ /system/clock/get date ] \ + . [ /system/clock/get time ] . \".rsc\");\r\ + \n /system/script/set name=\$ConfOldName [ find where name=\"AM-GlobalCon\ + fig\" ];\r\ + \n :foreach Script in={ \"AM-GlobalConfig\"; \"AM-GlobalFunc\" } do={\r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$Script source=([ /tool/fetc\ + h check-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \ + \".rsc\") output=user as-value ]->\"data\");\r\ + \n \r\ + \n /system/script run \$Script;\r\ + \n :delay 2s;\r\ + \n };\r\ + \n\r\ + \n :local Script \"mod/AM-Certs-By-Ident\";\r\ + \n \r\ + \n :put \"Installing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n /system/script/add name=\$Script owner=\$Script source=([ /tool/fetch \ + check-certificate=yes-without-crl url=(\$GlobalScriptsUrl . \$Script . \".\ + rsc\") output=user as-value ]->\"data\");\r\ + \n /system/script run \$Script;\r\ + \n :global tmpAddCerts;\r\ + \n :while ([ \$tmpAddCerts ] = true) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n :delay 1s;\r\ + \n :put \"Removing \$Script...\";\r\ + \n /system/script/remove [ find where name=\$Script ];\r\ + \n\r\ + \n :if ([ :len [ /certificate/find where fingerprint=\$CertFingerprint ] \ + ] > 0) do={\r\ + \n :put \"Renaming certificate by its common-name...\";\r\ + \n :global CertificateNameByCN;\r\ + \n \$CertificateNameByCN \$CertFingerprint;\r\ + \n };\r\ + \n\r\ + \n :if (\$RemoveMe = true) do={\r\ + \n :put \"Add Scheduler for remove this script...\";\r\ + \n :local OnEvent (\":delay 30s;\\n\" . \"/system/script/remove [ find \ + where name=\\\"\$SetupScript\\\" ];\\n\" . \\\r\ + \n \":delay 2s;\\n\" . \"/system/scheduler/remove [ find where name=\\\ + \"_RemoveSetup\\\" ];\\n\" . \\\r\ + \n \":delay 2s;\\n\" . \":global RemoveMe (a);\\n\");\r\ + \n :local Comment \"_RemoveSetup tmp scheduler for remove setup script.\ + \";\r\ + \n /system/scheduler/add name=\"_RemoveSetup\" comment=\$Comment start-\ + time=startup interval=30s on-event=\$OnEvent;\r\ + \n :log warning (\$0 . \"\\nI've done everything, and now I'm tired..\ + . I'm leaving.\\nThere will be an error below, this is normal.\");\r\ + \n }\r\ + \n :delay 1;\r\ + \n :put \"Loading configuration and functions...\";\r\ + \n :do { \r\ + \n :global ScriptInstallUpdate; \$ScriptInstallUpdate;\r\ + \n :put \"Normal removing temporary global environment variables.\";\ + \r\ + \n :global SetupScript (a);\r\ + \n :global InitSetup (a);\r\ + \n :global RemoveMe (a);\r\ + \n } on-error={\r\ + \n :local ErrorMsg \"Loading configuration and functions error!\";\r\ + \n :log error (\$0 . \$ErrorMsg . :error);\r\ + \n :error \$ErrorMsg;\r\ + \n }\r\ + \n}\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/700/f14f095d\";\r\ + \n:global CommitTAG \"unknown\";\r\ + \n:global CommitInfo \"Autocommit in repo: ros.vados.ru, generated by owne\ + r: root, in 13:30:03 22.06.2026.\";\r\ + \n\r\ + \n# The variables are received right here.\r\ + \n:global GlobalConfVersion 140;\r\ + \n\r\ + \n:global SumsDirAndFileName \"tmp/checksums.json\";\r\ + \n\r\ + \n:global Identity [/system/identity/get name];\r\ + \n:global IdentityShort [:pick \$Identity 0 18];\r\ + \n\r\ + \n:global devBoardName [/system/resource/get board-name];\r\ + \n:global devMode [/system/device-mode/get mode];\r\ + \n:global devCurArch [/system/resource/get architecture-name];\r\ + \n:global devCurVersion [/system/resource/get version];\r\ + \n\r\ + \n# Variables defined in AM-GlobalConfig.rsc\r\ + \n:global TerminalColorOutput;\r\ + \n:global CommentsInScripts;\r\ + \n:global DetectIpAddrDefault;\r\ + \n:global DetectIpAddrFallback;\r\ + \n:global updateChannel;\r\ + \n:global Domain;\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n\r\ + \n# Single functions, without nested functions.\r\ + \n:global MiniDateTimeStamp;\r\ + \n:global MicroDateTimeStamp;\r\ + \n\r\ + \n# Include globals \$PrintDebug and \$PrintDebugOverride\r\ + \n:global LogPrint;\r\ + \n\r\ + \n# DeviceInfo and Updates\r\ + \n:global IsCheckUpdates;\r\ + \n:global WaitCheckUpdates;\r\ + \n:global GetPubIp;\r\ + \n\r\ + \n:global GetArrDeviceInfo;\r\ + \n:global WaitArrDeviceInfo;\r\ + \n\r\ + \n:global devModel;\r\ + \n:global devRunningMode;\r\ + \n\r\ + \n:global devRbRevision;\r\ + \n:global devRbSerialNumber;\r\ + \n:global devRbVerAvail;\r\ + \n\r\ + \n:global runningChannelVersion;\r\ + \n:global runningChannel;\r\ + \n:global runningVersion;\r\ + \n\r\ + \n:global devBuildTime;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n:global currentUpdateChannel;\r\ + \n\r\ + \n:global ScriptInstallUpdate;\r\ + \n\r\ + \n:global DeviceInfo;\r\ + \n\r\ + \n:global OldMode;\r\ + \n\r\ + \n:global ParseKeyValueStore;\r\ + \n:global RandomDelay;\r\ + \n:global GetRandomNumber;\r\ + \n:global EscapeForRegEx;\r\ + \n:global CharacterMultiply;\r\ + \n:global CharacterReplace;\r\ + \n:global CleanFilePath;\r\ + \n:global CleanName;\r\ + \n\r\ + \n:global CommitBrief;\r\ + \n\r\ + \n:global EitherOr;\r\ + \n:global FormatLine;\r\ + \n:global GetRandom20CharAlNum;\r\ + \n:global GetRandom20CharHex;\r\ + \n:global GetRandomNumber;\r\ + \n:global Grep;\r\ + \n:global IfThenElse;\r\ + \n:global MAX;\r\ + \n:global MIN;\r\ + \n:global HumanReadableNum;\r\ + \n\r\ + \n:global IsFullyConnected;\r\ + \n:global IsDNSResolving;\r\ + \n:global IsTimeSync;\r\ + \n:global IsTimeSyncCached;\r\ + \n:global IsTimeSyncResetNtp;\r\ + \n\r\ + \n:global MkDir;\r\ + \n:global RmDir;\r\ + \n:global RmFile;\r\ + \n:global FileGet;\r\ + \n:global Unix2Dos;\r\ + \n:global UrlEncode;\r\ + \n:global WaitForFile;\r\ + \n:global ScriptLock;\r\ + \n:global SendTelegram;\r\ + \n:global NotificationFunctions;\r\ + \n:global SendNotification;\r\ + \n:global SendNotification2;\r\ + \n:global SymbolForNotification;\r\ + \n:global SymbolByUnicodeName;\r\ + \n:global ValidateSyntax;\r\ + \n:global CheckSumsVerify;\r\ + \n:global GlobalConfChanges;\r\ + \n:global GlobalConfMigration;\r\ + \n:global VersionToNum;\r\ + \n:global RequiredRouterOS;\r\ + \n:global ExitError;\r\ + \n:global ExitOnError;\r\ + \n\r\ + \n:global FetchHugeFiles;\r\ + \n:global FetchUserAgentStr;\r\ + \n:global FileExists;\r\ + \n:global CertificateAvailable;\r\ + \n:global CertificateDownload;\r\ + \n:global CertificateNameByCN;\r\ + \n:global CharacterMultiply;\r\ + \n\r\ + \n:global InspectVar;\r\ + \n:global InspectVarRet;\r\ + \n:global ParseCustom;\r\ + \n\r\ + \n:set IsCheckUpdates do={\r\ + \n :local isInfo [:tobool \$1];\r\ + \n :global updateChannel;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :log info (\$0 . \" \\\$isInfo = \" . \$isInfo); \r\ + \n :local CurrentChannel [ /system/package/update/get channel ];\r\ + \n :if ([ :len \$updateChannel ] > 0 && \$CurrentChannel != \$updateChann\ + el) do={\r\ + \n :retry command={/system/package/update set channel=\$updateChannel} \ + \_delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" Set updates channel to: \$updateChannel\");\r\ + \n }\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local Channel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set currentUpdateChannel \$Channel;\r\ + \n :log info (\$0 . \" Update Channel: \" . \$Channel . \".\");\r\ + \n :local StatusPkg \"undefined\";\r\ + \n :log info (\$0 . \" Checking for updates...\");\r\ + \n :retry command={:set \$StatusPkg ([/system/package/update/check-for-up\ + dates without-paging as-value]->\"status\")} \\\r\ + \n delay=300ms max=5 on-error={};\r\ + \n :log info (\$0 . \" \\\$StatusPkg = \" . \$StatusPkg);\r\ + \n :if (\$StatusPkg = \"New version is available\") do={ :set PkgUpdStatu\ + s true; } else={ :set PkgUpdStatus false; }\r\ + \n :set ROsVerAvail [ :tostr [ /system/package/update/get latest-version \ + ] ];\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if (\$isInfo != false || \$PkgUpdStatus = true) do={\r\ + \n :log info (\$0 . \" \\\$PkgUpdStatus = \" . \$PkgUpdStatus);\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :retry command={:set (\$arrDeviceInfo->\"devUpdates\") [ /system/pac\ + kage/update/get ]} delay=500ms max=5 on-error={:log error (\"Error\")};\r\ + \n :return true;\r\ + \n } else={\r\ + \n :return \$PkgUpdStatus;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set WaitCheckUpdates do={\r\ + \n :global IsCheckUpdates;\r\ + \n :global PkgUpdStatus;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n :global arrDeviceInfo;\r\ + \n :local Status \"\";\r\ + \n :local Update;\r\ + \n :local WaitCount 0;\r\ + \n :if ([ \$IsCheckUpdates true ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n :while ((\$Status = \"\" || \$Status = \"finding out latest version...\ + \") && \$WaitCount < 60) do={\r\ + \n :delay 1s;\r\ + \n :set WaitCount (\$WaitCount + 1);\r\ + \n :set Status [ :tostr [ /system/package/update/get status ] ];\r\ + \n }\r\ + \n :set Update [ /system/package/update/get ];\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n :if ((\$Update->\"status\") = \"New version is available\") do={\r\ + \n :set PkgUpdStatus true;\r\ + \n } else={\r\ + \n :set PkgUpdStatus false;\r\ + \n }\r\ + \n :if ([ :typeof \$arrDeviceInfo ] != \"array\") do={\r\ + \n :set arrDeviceInfo [:toarray \$arrDeviceInfo];\r\ + \n }\r\ + \n :set (\$arrDeviceInfo->\"devUpdates\") \$Update;\r\ + \n :if (\$Status = \"\" || \$Status = \"finding out latest version...\") \ + do={\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set WaitArrDeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :while ([ \$GetArrDeviceInfo ] = false) do={\r\ + \n :delay 1s;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set GetArrDeviceInfo do={\r\ + \n :global LogPrint;\r\ + \n :global arrDeviceInfo;\r\ + \n :global devBoardName;\r\ + \n :global devModel;\r\ + \n :global devRunning;\r\ + \n :global devCurArch;\r\ + \n :global devRbRevision;\r\ + \n :global devRbSerialNumber;\r\ + \n :global devBuildTime;\r\ + \n :global runningChannelVersion;\r\ + \n :global runningChannel;\r\ + \n :global runningVersion;\r\ + \n :global currentUpdateChannel;\r\ + \n :global ROsVerAvail;\r\ + \n\r\ + \n :local DeviceInfo;\r\ + \n :local Resource [/system/resource/get];\r\ + \n :local Update [ /system/package/update/get ];\r\ + \n :local VersionString [ :tostr (\$Resource->\"version\") ];\r\ + \n :local ChannelStart [ :find \$VersionString \" (\" ];\r\ + \n :local RouterBoard;\r\ + \n :local IsRouterBoard false;\r\ + \n :local RunningMode \"\";\r\ + \n\r\ + \n :set devCurArch [ :tostr (\$Resource->\"architecture-name\") ];\r\ + \n :set devBuildTime [ :tostr (\$Resource->\"build-time\") ];\r\ + \n :set runningChannelVersion \$VersionString;\r\ + \n :set runningVersion \$VersionString;\r\ + \n :set runningChannel \"\";\r\ + \n\r\ + \n :if ([ :typeof \$ChannelStart ] = \"num\" && \$ChannelStart >= 0) do=\ + {\r\ + \n :set runningVersion [ :pick \$VersionString 0 \$ChannelStart ];\r\ + \n :local ChannelRest [ :pick \$VersionString (\$ChannelStart + 2) [ :\ + len \$VersionString ] ];\r\ + \n :local ChannelEnd [ :find \$ChannelRest \")\" ];\r\ + \n :if ([ :typeof \$ChannelEnd ] = \"num\" && \$ChannelEnd >= 0) do={\ + \r\ + \n :set runningChannel [ :pick \$ChannelRest 0 \$ChannelEnd ];\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([:pick \$devBoardName 0 3] != \"CHR\" or [:pick \$devBoardName 0\ + \_3] != \"x86\") do={\r\ + \n :do {\r\ + \n :set RouterBoard [[ :parse \"/system/routerboard/get\" ]];\r\ + \n# :set RouterBoard [ /system/routerboard/get ];\r\ + \n :if ((\$RouterBoard->\"routerboard\") = true) do={\r\ + \n :set IsRouterBoard true;\r\ + \n }\r\ + \n } on-error={}\r\ + \n }\r\ + \n\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get mode ];\r\ + \n } on-error={\r\ + \n :do {\r\ + \n :set RunningMode [ /system/device-mode/get running ];\r\ + \n } on-error={\r\ + \n :set RunningMode \"\";\r\ + \n }\r\ + \n }\r\ + \n :set devRunning \$RunningMode;\r\ + \n\r\ + \n :if (\$IsRouterBoard = true) do={\r\ + \n :set devModel [ :tostr (\$RouterBoard->\"model\") ];\r\ + \n :set devRbRevision [ :tostr (\$RouterBoard->\"revision\") ];\r\ + \n :set devRbSerialNumber [ :tostr (\$RouterBoard->\"serial-number\") \ + ];\r\ + \n } else={\r\ + \n :set devModel \$devBoardName;\r\ + \n :set devRbRevision \"\";\r\ + \n :set devRbSerialNumber \"\";\r\ + \n }\r\ + \n\r\ + \n :set currentUpdateChannel [ :tostr (\$Update->\"channel\") ];\r\ + \n :set ROsVerAvail [ :tostr (\$Update->\"latest-version\") ];\r\ + \n\r\ + \n :set (\$DeviceInfo->\"board-name\") \$devBoardName;\r\ + \n :set (\$DeviceInfo->\"architecture-name\") \$devCurArch;\r\ + \n :set (\$DeviceInfo->\"model\") \$devModel;\r\ + \n :set (\$DeviceInfo->\"revision\") \$devRbRevision;\r\ + \n :set (\$DeviceInfo->\"serial-number\") \$devRbSerialNumber;\r\ + \n :set (\$DeviceInfo->\"running-mode\") \$devRunning;\r\ + \n :set (\$DeviceInfo->\"build-time\") \$devBuildTime;\r\ + \n :set (\$DeviceInfo->\"running-channel-version\") \$runningChannelVers\ + ion;\r\ + \n :set (\$DeviceInfo->\"running-version\") \$runningVersion;\r\ + \n :set (\$DeviceInfo->\"running-channel\") \$runningChannel;\r\ + \n :set (\$DeviceInfo->\"routerboard\") \$IsRouterBoard;\r\ + \n :set (\$DeviceInfo->\"current-firmware\") [ :tostr (\$RouterBoard->\"\ + current-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"upgrade-firmware\") [ :tostr (\$RouterBoard->\"\ + upgrade-firmware\") ];\r\ + \n :set (\$DeviceInfo->\"package-channel\") \$currentUpdateChannel;\r\ + \n :set (\$DeviceInfo->\"installed-version\") [ :tostr (\$Update->\"inst\ + alled-version\") ];\r\ + \n :set (\$DeviceInfo->\"latest-version\") \$ROsVerAvail;\r\ + \n :set (\$DeviceInfo->\"update-status\") [ :tostr (\$Update->\"status\"\ + ) ];\r\ + \n\r\ + \n :set arrDeviceInfo \$DeviceInfo;\r\ + \n :return \$DeviceInfo;\r\ + \n}\r\ + \n\r\ + \n:set DeviceInfo do={\r\ + \n :global GetArrDeviceInfo;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global IfThenElse;\r\ + \n :global FormatLine;\r\ + \n :global CommitBrief;\r\ + \n\r\ + \n :local License [/system/license/get];\r\ + \n :local Snmp [ /snmp/get ];\r\ + \n :local Info [ \$GetArrDeviceInfo ];\r\ + \n\r\ + \n :if ([ :typeof \$Info ] != \"array\") do={\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :return ( \\\r\ + \n [ \$FormatLine \"Hostname\" \$Identity ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"location\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Location\" (\$Snmp->\"location\") ] . \"\\n\") ]\ + \_. \\\r\ + \n [ \$IfThenElse ([ :len (\$Snmp->\"contact\") ] > 0) \\\r\ + \n ([ \$FormatLine \"Contact\" (\$Snmp->\"contact\") ] . \"\\n\") ] .\ + \_\\\r\ + \n \"Hardware:\\n\" . \\\r\ + \n [ \$FormatLine \" Board\" (\$Info->\"board-name\") ] . \"\\n\" . \ + \\\r\ + \n [ \$FormatLine \" Arch\" (\$Info->\"architecture-name\") ] . \"\\\ + n\" . \\\r\ + \n [ \$FormatLine \" Model\" (\$Info->\"model\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"revision\") ] > 0) \\\r\ + \n (\" \" . (\$Info->\"revision\")) ] . \"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"serial-number\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Serial\" (\$Info->\"serial-number\") ] . \"\ + \\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"nlevel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"nlevel\ + \")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS:\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$License->\"level\") ] > 0) \\\r\ + \n ([ \$FormatLine \" License\" (\"level \" . (\$License->\"level\ + \")) ] . \"\\n\") ] . \\\r\ + \n [ \$FormatLine \" Channel\" (\$Info->\"package-channel\") ] . \"\ + \\n\" . \\\r\ + \n [ \$FormatLine \" Installed\" (\$Info->\"installed-version\") ] .\ + \_\"\\n\" . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"running-channel\") ] > 0) \\\r\ + \n ([ \$FormatLine \" Running\" ((\$Info->\"running-version\") . \ + \" (\" . (\$Info->\"running-channel\") . \")\") ] . \"\\n\") \\\r\ + \n ([ \$FormatLine \" Running\" (\$Info->\"running-version\") ] . \ + \"\\n\") ] . \\\r\ + \n [ \$IfThenElse ([ :len (\$Info->\"latest-version\") ] > 0 && \\\r\ + \n (\$Info->\"installed-version\") != (\$Info->\"latest-version\"))\ + \_\\\r\ + \n ([ \$FormatLine \" Available\" (\$Info->\"latest-version\") ] .\ + \_\"\\n\") ] . \\\r\ + \n [ \$IfThenElse ((\$Info->\"routerboard\") = true && \\\r\ + \n (\$Info->\"current-firmware\") != (\$Info->\"upgrade-firmware\")\ + ) \\\r\ + \n ([ \$FormatLine \" Firmware\" ((\$Info->\"current-firmware\") .\ + \_\" -> \" . (\$Info->\"upgrade-firmware\")) ] . \"\\n\") ] . \\\r\ + \n \"RouterOS-Scripts:\\n\" . \\\r\ + \n [ \$FormatLine \" Commit\" [ \$CommitBrief ] ] . \"\\n\" . \\\r\ + \n [ \$FormatLine \" Version\" \$GlobalConfVersion ]);\r\ + \n}\r\ + \n\r\ + \n:if ([ :typeof \$NotificationFunctions ] != \"array\") do={:set Notifica\ + tionFunctions ({})}\r\ + \n\r\ + \n:set GetRandom20CharAlNum do={\r\ + \n :global EitherOr;\r\ + \n :return [ :rndstr length=[ \$EitherOr [ :tonum \$1 ] 20 ] from=\"ABCDE\ + FGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\" ];\r\ + \n}\r\ + \n\r\ + \n:set GetRandom20CharHex do={:global EitherOr; :return [ :rndstr length=[\ + \_\$EitherOr [ :tonum \$1 ] 20 ] from=\"0123456789abcdef\" ]; }\r\ + \n:set GetRandomNumber do={:global EitherOr; :return [ :rndnum from=0 to=[\ + \_\$EitherOr [ :tonum \$1 ] 4294967295 ] ]; }\r\ + \n\r\ + \n:global checkRunJob;\r\ + \n:set checkRunJob do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLock; \r\ + \n :if ([ \$ScriptLock \$Script ] = false) do={:return false}\r\ + \n :foreach Job in=[ /system/script/job/find where script=\$Script ] do={\ + :set Job [ /system/script/job/get \$Job ];\r\ + \n :while ([ :typeof (\$Job->\"parent\") ] = \"id\") do={:set Job [ /sy\ + stem/script/job/get [ find where .id=(\$Job->\"parent\") ] ]}\r\ + \n :if ((\$Job->\"type\") = \"login\") do={:return true};}; :return fa\ + lse; \r\ + \n}\r\ + \n\r\ + \n:set InspectVar do={\r\ + \n :global InspectVarRet;\r\ + \n :put [ :tocrlf [ \$InspectVarRet \$1 ] ];\r\ + \n}\r\ + \n\r\ + \n:set CommitBrief do={\r\ + \n :global CommitId;\r\ + \n :global CommitInfo;\r\ + \n :if (\$CommitId = \"unknown\") do={\r\ + \n :return \"unknown\";\r\ + \n }\r\ + \n :return (\$CommitInfo . \"/\" . [ :pick \$CommitId 0 8 ]);\r\ + \n}\r\ + \n\r\ + \n:set InspectVarRet do={\r\ + \n :local Input \$1;\r\ + \n :local Level (0 + [ :tonum \$2 ]);\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :global InspectVarRet;\r\ + \n :local IndentReturn do={\r\ + \n :local Prefix [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Level [ :tonum \$3 ];\r\ + \n :global CharacterMultiply;\r\ + \n :return ([ \$CharacterMultiply \" \" (\$Level * 2) ] . \"-\" . \$Pre\ + fix . \"-> \" . \$Value);\r\ + \n }\r\ + \n :local TypeOf [ :typeof \$Input ];\r\ + \n :local Len [ :len \$Input ];\r\ + \n :local Return [ \$IndentReturn \"type\" \$TypeOf \$Level ];\r\ + \n :if (\$TypeOf = \"array\") do={\r\ + \n :foreach Key,Value in=\$Input do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"key\" \$Key (\$Level + 1) ] . \"\\n\" . \\\r\ + \n [ \$InspectVarRet \$Value (\$Level + 2) ]);\r\ + \n }\r\ + \n } else={\r\ + \n :if (\$TypeOf = \"str\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"len\" \$Len \$Level ]);\r\ + \n :if ([ :typeof [ :find \$Input (\"\\r\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\r\") \"\" ];\r\ + \n }\r\ + \n :if ([ :typeof [ :find \$Input (\"\\n\") ] ] = \"num\") do={\r\ + \n :set Input [ \$CharacterReplace \$Input (\"\\n\") \" \" ];\r\ + \n }\r\ + \n }\r\ + \n :if (\$TypeOf != \"nothing\") do={\r\ + \n :set \$Return (\$Return . \"\\n\" . \\\r\ + \n [ \$IndentReturn \"value\" [ \$IfThenElse ([ :len \$Input ] > 80)\ + \_\\\r\ + \n ([ :pick \$Input 0 77 ] . \"...\") \$Input ] \$Level ]);\r\ + \n }\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set GetPubIp do={\r\ + \n :global DetectIpAddrDefault;\r\ + \n :global DetectIpAddrFallback;\r\ + \n\r\ + \n :local PubIpAddr false;\r\ + \n :local Url \$DetectIpAddrDefault;\r\ + \n :local JobName [ :jobname ];\r\ + \n\r\ + \n :do {\r\ + \n :log debug (\$0 . \" Trying to detect public IP using default serv\ + ice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=50ms max=5 on-error={:log error (\$JobName . \" Failed to \ + detect public IP using default service: \" . \$Url . \".\")}\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed to detect public IP using default serv\ + ice: \" . \$Url . \".\");\r\ + \n :set Url \$DetectIpAddrFallBack;\r\ + \n :log debug (\$0 . \" Trying to detect public IP using fallback ser\ + vice: \" . \$Url . \"...\");\r\ + \n :retry command={:set PubIpAddr ([ /tool/fetch http-method=\"get\"\ + \_check-certificate=yes-without-crl \$Url output=user as-value ]->\"data\"\ + )} \\\r\ + \n delay=200ms max=5 on-error={:log error (\$JobName . \" Failed to\ + \_detect public IP using fallback service: \" . \$Url . \".\")}\r\ + \n };\r\ + \n :local IpLen ([ :len \$PubIpAddr ] -1);\r\ + \n :if (\$PubIpAddr = false) do={:set PubIpAddr \"not-detected\"} else=\ + {:set PubIpAddr [:pick \$PubIpAddr 0 \$IpLen]}\r\ + \n :return \$PubIpAddr;\r\ + \n}\r\ + \n\r\ + \n:set FormatLine do={\r\ + \n :local Key [ :tostr \$1 ];\r\ + \n :local Value [ :tostr \$2 ];\r\ + \n :local Indent [ :tonum \$3 ];\r\ + \n :local Spaces;\r\ + \n :local Return \"\";\r\ + \n :global CharacterMultiply;\r\ + \n :global EitherOr;\r\ + \n :set Indent [ \$EitherOr \$Indent 16 ];\r\ + \n :local Spaces [ \$CharacterMultiply \" \" \$Indent ];\r\ + \n :if ([ :len \$Key ] > 0) do={ :set Return (\$Key . \":\")}\r\ + \n :if ([ :len \$Key ] > (\$Indent - 2)) do={:set Return (\$Return . \"\\\ + n\" . [ :pick \$Spaces 0 \$Indent ] . \$Value);\r\ + \n } else={:set Return (\$Return . [ :pick \$Spaces 0 (\$Indent - [ :len \ + \$Return ]) ] . \$Value)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ParseCustom do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Start [:find [ \$Str ] [:tostr \$2]];\r\ + \n :local End [ :tostr \$3 ];\r\ + \n :local Num [ :tonum \$4 ];\r\ + \n :local Return;\r\ + \n :if ([:len \$Num] = 0) do={:set Num \"0\"}\r\ + \n :local rest [:pick \$Str (\$Start+\$Num) [:len \$Str]]; \r\ + \n :if ([:len \$End ] = 0) do={:set Return [:pick \$Str \$Num \$Start]} e\ + lse={\r\ + \n :set End [:find \$rest \$End];\r\ + \n :set Return [:pick \$rest 0 \$End];\r\ + \n }\r\ + \n:return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set LogPrint do={\r\ + \n :local Severity [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Message [ :tostr \$3 ];\r\ + \n :global PrintDebug;\r\ + \n :global PrintDebugOverride;\r\ + \n :global EitherOr;\r\ + \n :local Debug [ \$EitherOr (\$PrintDebugOverride->\$Name) \$PrintDebug \ + ];\r\ + \n :local PrintSeverity do={\r\ + \n :global TerminalColorOutput;\r\ + \n :if (\$TerminalColorOutput != true) do={:return \$1}\r\ + \n :local Color { debug=96; info=97; warning=93; error=91 };\r\ + \n :return (\"\\1B[\" . \$Color->\$1 . \"m\" . \$1 . \"\\1B[0m\");\r\ + \n}\r\ + \n :local Log ([ \$EitherOr \$Name \"\" ] . \": \" . \$Message);\ + \r\ + \n :if (\$Severity ~ (\"^(custom|debug|error|info)\\\$\")) do={\r\ + \n :if (\$Severity = \"debug\") do={:log debug \$Log}\r\ + \n :if (\$Severity = \"error\") do={:log error \$Log}\r\ + \n :if (\$Severity = \"info\" ) do={:log info \$Log}\r\ + \n } else={:log warning \$Log; :set Severity \"warning\"}\r\ + \n :if (\$Severity != \"debug\" || \$Debug = true) do={:put ([ \$PrintSev\ + erity \$Severity ] . \": \" . \$Message)}\r\ + \n}\r\ + \n\r\ + \n:set CertificateAvailable do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :local UseFor [ :tostr \$2 ];\r\ + \n\r\ + \n :global CertificateDownload;\r\ + \n :global ParseKeyValueStore;\r\ + \n\r\ + \n :if ([ :len \$UseFor ] = 0) do={\r\ + \n :log warning (\$0 . \"The intended use is undefined!\");\r\ + \n :set UseFor \"undefined\";\r\ + \n }\r\ + \n :if ([ /system/resource/get free-hdd-space ] < 8388608 && \\\r\ + \n [ /certificate/settings/get crl-download ] = true && \\\r\ + \n [ /certificate/settings/get crl-store ] = \"system\") do={\r\ + \n :log warning (\$0 . \"This system has low free flash space but \" . \ + \\\r\ + \n \"is configured to download certificate CRLs to system!\");\r\ + \n }\r\ + \n :if ([ :len \$CommonName ] = 0) do={\r\ + \n :log warning (\$0 . \"No CommonName given!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if (((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" || \\\ + \r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \$UseFor || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\r\ + \n [ :len [ /certificate/builtin/find where common-name=\$CommonName\ + \_] ] > 0) do={\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n :log info (\$0 . \"Certificate with CommonName '\" . \$CommonName . \ + \"' not available.\");\r\ + \n :if ([ \$CertificateDownload \$CommonName ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] > 1\ + ) do={\r\ + \n :log info (\$0 . \"There are \" . \$CertCount . \" Certificates with\ + \_CommonName '\" . \$CommonName . \"'. Should be ok.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :local CertVal [ /certificate/get [ find where common-name=\$CommonNam\ + e ] ];\r\ + \n :while ((\$CertVal->\"akid\") != \"\" && (\$CertVal->\"akid\") != (\$C\ + ertVal->\"skid\")) do={\r\ + \n :if ([ :len [ /certificate/find where skid=(\$CertVal->\"akid\") ] ]\ + \_= 0) do={\r\ + \n :local IssuerCN ([ \$ParseKeyValueStore (\$CertVal->\"issuer\") ]-\ + >\"CN\");\r\ + \n :log info (\$0 . \"Certificate chain for '\" . \$CommonName . \"' \ + is incomplete, missing '\" . \$IssuerCN . \"'.\");\r\ + \n :if ([ \$CertificateDownload \$IssuerCN ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :set CertVal [ /certificate/get [ find where skid=(\$CertVal->\"akid\ + \") ] ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateDownload do={\r\ + \n :local CommonName [ :tostr \$1 ];\r\ + \n :global ScriptUpdatesBaseUrl;\r\ + \n :global ScriptUpdatesUrlSuffix;\r\ + \n :global CertificateNameByCN;\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :log info (\$0 . \"Downloading and importing certificate with \" . \\\ + \r\ + \n \"CommonName '\" . \$CommonName . \"'.\");\r\ + \n :local FileName ([ \$CleanName \$CommonName ] . \".pem\");\r\ + \n :do {\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-header\ + -field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n (\$ScriptUpdatesBaseUrl . \"certs/\" . \$FileName . \$ScriptUpdate\ + sUrlSuffix) \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n } on-error={\r\ + \n :log warning (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \\\r\ + \n \"' from repository! Trying fallback to mkcert.org...\");\r\ + \n :do {\r\ + \n :local CertSettings [ /certificate/settings/get ];\r\ + \n :if ([ :len [ /certificate/find where common-name=\"ISRG Root X1\"\ + \_] ] = 0 && \\\r\ + \n !(((\$CertSettings->\"builtin-trust-anchors\") = \"trusted\" \ + || \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") ~ \"fetch\" || \ + \\\r\ + \n (\$CertSettings->\"builtin-trust-store\") = \"all\") && \\\ + \r\ + \n [ :len [ /certificate/builtin/find where common-name=\"ISRG\ + \_Root X1\" ] ] > 0)) do={\r\ + \n :log error (\$0 . \" Required certificate is not available.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n /tool/fetch check-certificate=yes-without-crl mode=https http-head\ + er-field=({ [ \$FetchUserAgentStr \$0 ] }) \\\r\ + \n url=\"https://mkcert.org/generate/\" http-data=[ :serialize to=jso\ + n ({ \$CommonName }) ] \\\r\ + \n dst-path=\$FileName as-value;\r\ + \n \$WaitForFile \$FileName;\r\ + \n :if ([ /file/get \$FileName size ] = 0) do={\r\ + \n \$RmFile \$FileName;\r\ + \n :error false;\r\ + \n }\r\ + \n } on-error={\r\ + \n :log error (\$0 . \" Failed downloading certificate with CommonNam\ + e '\" . \$CommonName . \"'!\");\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n /certificate/import file-name=\$FileName passphrase=\"\" as-value;\r\ + \n :delay 1s;\r\ + \n \$RmFile \$FileName;\r\ + \n :if ([ :len [ /certificate/find where common-name=\$CommonName ] ] = 0\ + ) do={\r\ + \n /certificate/remove [ find where name~(\"^\" . \$FileName . \"_[0-9]\ + +\\\$\") ];\r\ + \n :log warning (\$0 . \" Certificate with CommonName '\" . \$CommonNam\ + e . \"' still unavailable!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :foreach Cert in=[ /certificate/find where name~(\"^\" . \$FileName . \ + \"_[0-9]+\\\$\") ] do={\r\ + \n \$CertificateNameByCN [ /certificate/get \$Cert common-name ];\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CertificateNameByCN do={\r\ + \n :local Match [ :tostr \$1 ];\r\ + \n :global CleanName;\r\ + \n :local Cert ([ /certificate/find where (common-name=\$Match or fingerp\ + rint=\$Match or name=\$Match) ]->0);\r\ + \n :if ([ :len \$Cert ] = 0) do={\r\ + \n :log warning (\$0 .\" No matching certificate found.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local CommonName [ /certificate/get \$Cert common-name ];\r\ + \n /certificate/set \$Cert name=[ \$CleanName \$CommonName ];\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FileExists do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local Type [ :tostr \$2 ];\r\ + \n :global FileGet;\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={ :return false; }\r\ + \n :if ([ :len (\$FileVal->\"size\") ] = 0) do={ :return false; }\r\ + \n :if ([ :len \$Type ] = 0 || \$FileVal->\"type\" = \$Type) do={ :return\ + \_true; }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set Grep do={\r\ + \n :local Input ([ :tostr \$1 ] . \"\\n\");\r\ + \n :local Pattern [ :tostr \$2 ];\r\ + \n :if ([ :typeof [ :find \$Input \$Pattern ] ] = \"nil\") do={:return []\ + }\r\ + \n :do {\r\ + \n :local Line [ :pick \$Input 0 [ :find \$Input \"\\n\" ] ];\r\ + \n :if ([ :typeof [ :find \$Line \$Pattern ] ] = \"num\") do={:return \ + \$Line}\r\ + \n :set Input [ :pick \$Input ([ :find \$Input \"\\n\" ] + 1) [ :len \$\ + Input ] ];\r\ + \n } while=([ :len \$Input ] > 0);\r\ + \n :return [];\r\ + \n}\r\ + \n\r\ + \n:set HumanReadableNum do={\r\ + \n :local Input [ :tonum \$1 ];\r\ + \n :local Base [ :tonum \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :local Prefix \"kMGTPE\";\r\ + \n :local Pow 1;\r\ + \n :set Base [ \$EitherOr \$Base 1024 ];\r\ + \n :local Bin [ \$IfThenElse (\$Base = 1024) \"i\" \"\" ];\r\ + \n :if (\$Input < \$Base) do={:return \$Input}\r\ + \n :for I from=0 to=[ :len \$Prefix ] do={\r\ + \n :set Pow (\$Pow * \$Base);\r\ + \n :if (\$Input / \$Base < \$Pow) do={\r\ + \n :set Prefix [ :pick \$Prefix \$I ];\r\ + \n :local Tmp1 (\$Input * 100 / \$Pow);\r\ + \n :local Tmp2 (\$Tmp1 / 100);\r\ + \n :if (\$Tmp2 >= 100) do={:return (\$Tmp2 . \$Prefix . \$Bin)}\r\ + \n :return (\$Tmp2 . \".\" . \\\r\ + \n [ :pick \$Tmp1 [ :len \$Tmp2 ] ([ :len \$Tmp1 ] - [ :len \$Tmp\ + 2 ] + 1) ] . \\\r\ + \n \$Prefix . \$Bin);\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set CleanFilePath do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CharacterReplace;\r\ + \n :while (\$Path ~ \"//\") do={ :set \$Path [ \$CharacterReplace \$Path \ + \"//\" \"/\" ]; }\r\ + \n :if ([ :pick \$Path 0 ] = \"/\") do={ :set Path [ :pick \$Path 1 [ :le\ + n \$Path ] ]; }\r\ + \n :if ([ :pick \$Path ([ :len \$Path ] - 1) ] = \"/\") do={ :set Path [ \ + :pick \$Path 0 ([ :len \$Path ] - 1) ]; }\r\ + \n :return \$Path;\r\ + \n}\r\ + \n\r\ + \n:set CleanName do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Return \"\";\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :typeof [ find \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqr\ + stuvwxyz0123456789\" \$Char ] ] = \"nil\") do={\r\ + \n :do {:if ([ :len \$Return ] = 0) do={:error true};\r\ + \n :if ([ :pick \$Return ([ :len \$Return ] - 1) ] = \"-\") do={:er\ + ror true}; :set Char \"-\"} on-error={:set Char \"\"}; \r\ + \n };\r\ + \n :set Return (\$Return . \$Char)};\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set RandomDelay do={\r\ + \n :local Time [ :tonum \$1 ];\r\ + \n :local Unit [ :tostr \$2 ];\r\ + \n :global EitherOr;\r\ + \n :global GetRandomNumber;\r\ + \n :global MAX;\r\ + \n :if (\$Time = 0) do={:return false}\r\ + \n :delay ([ \$MAX 10 [ \$GetRandomNumber ([ :tonsec [ :totime (\$Time . \ + [ \$EitherOr \$Unit \"s\" ]) ] ] / 1000000) ] ] . \"ms\");\r\ + \n}\r\ + \n\r\ + \n:set EscapeForRegEx do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"^.[]\\\$()|*+\?{}\\\\\");\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :if ([ :find \$Chars \$Char ]) do={:set Char (\"\\\\\" . \$Char)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :if (\$ExitOK = \"false\") do={\r\ + \n :log error (\$Name [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\\\$\") \ + \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with er\ + ror\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \ + \$Error) \".\" ]);\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set ExitOnError do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :local Error [ :tostr \$2 ];\r\ + \n :global IfThenElse;\r\ + \n :log error (\$Name . \" \" . [ \$IfThenElse ([ :pick \$Name 0 1 ] = \"\ + \\\$\") \\\r\ + \n \"Function\" \"Script\" ] . \" '\" . \$Name . \"' exited with erro\ + r\" . \\\r\ + \n [ \$IfThenElse (!(\$Error ~ \"^(|true|false)\\\$\")) (\": \" . \$E\ + rror) \".\" ]);\r\ + \n}\r\ + \n\r\ + \n:set MiniDateTimeStamp do={\r\ + \n :local mikro [ :tobool \$1 ];\r\ + \n /system/clock;\r\ + \n :local vdate [get date];\r\ + \n :local vtime [get time];\r\ + \n :local vdoff [:toarray \"0,4,5,7,8,10\"];\r\ + \n :local MM [:pick \$vdate (\$vdoff->2) (\$vdoff->3)];\r\ + \n :local M [:tonum \$MM];\r\ + \n :if (\$vdate ~ \".../../....\") do={\r\ + \n :set vdoff [:toarray \"7,11,1,3,4,6\"];\r\ + \n :set M ([:find \"xxanebarprayunulugepctovecANEBARPRAYUNULUGE\ + PCTOVEC\" [:pick \$vdate (\$vdoff->2) (\$vdoff->3)] -1] / 2);\r\ + \n :if (\$M>12) do={:set M (\$M - 12)}\r\ + \n :set MM [:pick (100 + \$M) 1 3];\r\ + \n }\r\ + \n :local yyyy [:pick \$vdate (\$vdoff->0) (\$vdoff->1)];\r\ + \n :local dd [:pick \$vdate (\$vdoff->4) (\$vdoff->5)];\r\ + \n :local HH [:pick \$vtime 0 2];\r\ + \n :local mm [:pick \$vtime 3 5];\r\ + \n :local ss [:pick \$vtime 6 8];\r\ + \n :local Return;\r\ + \n :if (\$mikro = true) do={\r\ + \n :set Return ([:pick \$yyyy 2 4] . [:pick \$dd 0 1] . [:pick \$HH 0\ + \_1] . [:pick \$mm 3 4] . [:pick \$ss 6 7]);\r\ + \n } else={\r\ + \n :set Return ([\$yyyy] . [\$MM] . [\$dd] . [\$HH] . [\$mm] . [\$ss]);\ + \r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set WaitForFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :local WaitTime [ :totime \$2 ];\r\ + \n :global CleanFilePath;\r\ + \n :global EitherOr;\r\ + \n :global MAX;\r\ + \n :set FileName [ \$CleanFilePath \$FileName ];\r\ + \n :local Delay ([ \$MAX [ \$EitherOr \$WaitTime 2s ] 100ms ] / 9);\r\ + \n :do {\r\ + \n :retry {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } delay=\$Delay max=10;\r\ + \n } on-error={ }\r\ + \n :while ([ :len [ /file/find where name=\$FileName ] ] > 0) do={\r\ + \n :do {\r\ + \n /file/get \$FileName;\r\ + \n :return true;\r\ + \n } on-error={ }\r\ + \n :delay \$Delay;\r\ + \n :set Delay (\$Delay * 3 / 2);\r\ + \n }\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set FileGet do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global WaitForFile;\r\ + \n :if ([ \$WaitForFile \$FileName 0s ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n :local FileVal false;\r\ + \n :do {\r\ + \n :set FileVal [ /file/get \$FileName ];\r\ + \n } on-error={ }\r\ + \n :return \$FileVal;\r\ + \n}\r\ + \n\r\ + \n:set RmDir do={\r\ + \n :local DirName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing directory: \". \$DirName);\r\ + \n :local DirVal [ \$FileGet \$DirName ];\r\ + \n :if (\$DirVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n };\r\ + \n :if (\$DirVal->\"type\" != \"directory\") do={\r\ + \n :log error (\$0 . \" Directory '\" . \$DirName . \"' is not a direct\ + ory.\");\r\ + \n :return false;\r\ + \n };\r\ + \n :onerror Err {\r\ + \n /file/remove \$DirName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing directory '\" . \$DirName . \"' failed\ + : \" . \$Err);\r\ + \n :return false;\r\ + \n };\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set RmFile do={\r\ + \n :local FileName [ :tostr \$1 ];\r\ + \n :global FileGet;\r\ + \n :log debug (\$0 . \" Removing file: \". \$FileName);\r\ + \n :local FileVal [ \$FileGet \$FileName ];\r\ + \n :if (\$FileVal = false) do={\r\ + \n :log debug (\$0 . \" ... which does not exist.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if (\$FileVal->\"type\" = \"directory\" || \$FileVal->\"type\" = \"di\ + sk\") do={\r\ + \n :log error (\$0 . \" File '\" . \$FileName . \"' is not a file.\");\ + \r\ + \n :return false;\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/remove \$FileName;\r\ + \n } do={\r\ + \n :log error (\$0 . \" Removing file '\" . \$FileName . \"' failed: \"\ + \_. \$Err); :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MkDir do={\r\ + \n :local Path [ :tostr \$1 ];\r\ + \n :global CleanFilePath;\r\ + \n :global FileGet;\r\ + \n :global RmDir;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :local MkTmpfs do={\r\ + \n :global WaitForFile;\r\ + \n :local TmpFs [ /disk/find where slot=tmpfs type=tmpfs ];\r\ + \n :if ([ :len \$TmpFs ] = 1) do={\r\ + \n :if ([ /disk/get \$TmpFs disabled ] = true) do={\r\ + \n :log info (\$0 . \" The tmpfs is disabled, enabling.\");\r\ + \n /disk/enable \$TmpFs;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :log info (\$0 . \" Creating disk of type tmpfs.\");\r\ + \n \$RmDir \"tmpfs\";\r\ + \n :onerror Err {\r\ + \n /disk/add slot=tmpfs type=tmpfs tmpfs-max-size=([ /system/resource\ + /get total-memory ] / 3);\r\ + \n \$WaitForFile \"tmpfs\";\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Creating disk of type tmpfs failed: \" . \$\ + Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n }\r\ + \n :set Path [ \$CleanFilePath \$Path ];\r\ + \n :if (\$Path = \"\") do={\r\ + \n :return true;\r\ + \n }\r\ + \n :log debug (\$0 . \" Making directory: \" . \$Path);\r\ + \n :local PathVal [ \$FileGet \$Path ];\r\ + \n :if (\$PathVal->\"type\" = \"directory\") do={\r\ + \n :log debug (\$0 . \" ... which already exists.\");\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ :pick \$Path 0 5 ] = \"tmpfs\") do={\r\ + \n :if ([ \$MkTmpfs ] = false) do={\r\ + \n :return false;\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n /file/add type=\"directory\" name=\$Path;\r\ + \n \$WaitForFile \$Path;\r\ + \n } do={\r\ + \n :log warning (\$0 . \" Making directory '\" . \$Path . \"' failed: \ + \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set MAX do={:if (\$1 > \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n:set MIN do={:if (\$1 < \$2) do={:return \$1}\r\ + \n :return \$2;\r\ + \n}\r\ + \n\r\ + \n:set CharacterMultiply do={\r\ + \n :local Str [ :tostr \$1 ];\r\ + \n :local Num [ :tonum \$2 ];\r\ + \n :if (\$Num = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :for I from=1 to=\$Num do={:set Return (\$Return . \$Str)}\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set CharacterReplace do={\r\ + \n :local String [ :tostr \$1 ];\r\ + \n :local ReplaceFrom [ :tostr \$2 ];\r\ + \n :local ReplaceWith [ :tostr \$3 ];\r\ + \n :local Return \"\";\r\ + \n :if (\$ReplaceFrom = \"\") do={:return \$String}\r\ + \n :while ([ :typeof [ :find \$String \$ReplaceFrom ] ] != \"nil\") do={\ + \r\ + \n :local Pos [ :find \$String \$ReplaceFrom ];\r\ + \n :set Return (\$Return . [ :pick \$String 0 \$Pos ] . \$ReplaceWith);\ + \r\ + \n :set String [ :pick \$String (\$Pos + [ :len \$ReplaceFrom ]) [ :len\ + \_\$String ] ];\r\ + \n }\r\ + \n :return (\$Return . \$String);\r\ + \n}\r\ + \n\r\ + \n:set IfThenElse do={\r\ + \n :if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] = true) do={:return \ + \$2};\r\ + \n :return \$3;\r\ + \n}\r\ + \n\r\ + \n:set EitherOr do={\r\ + \n :global IfThenElse;\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:return [ \$IfThenElse (\$1 != 0) \ + \$1 \$2 ]}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:return [ \$IfThenElse (\$1 > 0s)\ + \_\$1 \$2 ]}\r\ + \n# this works for boolean values, literal ones with parentheses\r\ + \n :return [ \$IfThenElse ([ :len [ :tostr \$1 ] ] > 0) \$1 \$2 ];\r\ + \n}\r\ + \n\r\ + \n:set ParseKeyValueStore do={\r\ + \n :local Source \$1;\r\ + \n :if ([ :pick \$Source 0 1 ] = \"{\") do={\r\ + \n :do {\r\ + \n :return [ :deserialize from=json \$Source ];\r\ + \n } on-error={ }\r\ + \n } \r\ + \n :if ([ :typeof \$Source ] != \"array\") do={:set Source [ :tostr \$1 ]\ + }\r\ + \n :local Result ({});\r\ + \n :foreach KeyValue in=[ :toarray \$Source ] do={\r\ + \n :if ([ :find \$KeyValue \"=\" ]) do={\r\ + \n :local Key [ :pick \$KeyValue 0 [ :find \$KeyValue \"=\" ] ];\r\ + \n :local Value [ :pick \$KeyValue ([ :find \$KeyValue \"=\" ] + 1) [\ + \_:len \$KeyValue ] ];\r\ + \n :if (\$Value=\"true\") do={:set Value true}\r\ + \n :if (\$Value=\"false\") do={:set Value false}\r\ + \n :set (\$Result->\$Key) \$Value;\r\ + \n } else={:set (\$Result->\$KeyValue) true}\r\ + \n }\r\ + \n :return \$Result;\r\ + \n}\r\ + \n:set RequiredRouterOS do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :local Required [ :tostr \$2 ];\r\ + \n :local Warn [ :tostr \$3 ];\r\ + \n :global IfThenElse;\r\ + \n :global VersionToNum;\r\ + \n :if (!(\$Required ~ \"^\\\\d+\\\\.\\\\d+((alpha|beta|rc|\\\\.)\\\\d+|)\ + \\\$\")) do={\r\ + \n :log error (\$0 . \" No valid RouterOS version: \" . \$Required);\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$VersionToNum \$Required ] > [ \$VersionToNum [ /system/packag\ + e/update/get installed-version ] ]) do={\r\ + \n :if (\$Warn = \"true\") do={\r\ + \n :log warning (\$0 . \" This \" . [ \$IfThenElse ([ :pick \$Caller \ + 0 ] = (\"\\\$\")) \"function\" \"script\" ] . \\\r\ + \n \" '\" . \$Caller . \"' (at least specific functionality) requir\ + es RouterOS \" . \$Required . \". Please update!\");\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set ValidateSyntax do={\r\ + \n :local Code [ :tostr \$1 ];\r\ + \n :global LogPrint;\r\ + \n :onerror Err {\r\ + \n [ :parse (\":local Validate do={\\n\" . \$Code . \"\\n}\") ];\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Valdation failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set VersionToNum do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :local Multi 0x1000000;\r\ + \n :local Return 0;\r\ + \n :global CharacterReplace;\r\ + \n :set Input [ \$CharacterReplace \$Input \".\" \",\" ];\r\ + \n :foreach I in={ \"zero\"; \"alpha\"; \"beta\"; \"rc\" } do={\r\ + \n :set Input [ \$CharacterReplace \$Input \$I (\",\" . \$I . \",\") ];\ + \r\ + \n }\r\ + \n :foreach Value in=([ :toarray \$Input ], 0) do={\r\ + \n :local Num [ :tonum \$Value ];\r\ + \n :if (\$Multi = 0x100) do={\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={\r\ + \n :set Return (\$Return + 0xff00);\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n } else={\r\ + \n :if (\$Value = \"zero\") do={ }\r\ + \n :if (\$Value = \"alpha\") do={ :set Return (\$Return + 0x3f00); \ + }\r\ + \n :if (\$Value = \"beta\") do={ :set Return (\$Return + 0x5f00); }\ + \r\ + \n :if (\$Value = \"rc\") do={ :set Return (\$Return + 0x7f00); }\r\ + \n }\r\ + \n }\r\ + \n :if ([ :typeof \$Num ] = \"num\") do={ :set Return (\$Return + (\$Va\ + lue * \$Multi)); }\r\ + \n :set Multi (\$Multi / 0x100);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set ScriptLock do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local WaitMax [ :totime \$2 ];\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global ScriptLockOrder;\r\ + \n :if ([ :typeof \$ScriptLockOrder ] = \"nothing\") do={\r\ + \n :set ScriptLockOrder ({});\r\ + \n }\r\ + \n :if ([ :typeof (\$ScriptLockOrder->\$Script) ] = \"nothing\") do={\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :local JobCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :return [ :len [ /system/script/job/find where script=\$Script ] ];\ + \r\ + \n }\r\ + \n :local TicketCount do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :local Count 0;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:set Count (\$Count \ + + 1)}\r\ + \n }\r\ + \n :return \$Count;\r\ + \n }\r\ + \n :local IsFirstTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Check [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if (\$Ticket = \$Check) do={:return true}\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\" && \$Ticket != \$Check) d\ + o={:return false}\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :local AddTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Add [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :while (true) do={\r\ + \n :local Pos [ :len (\$ScriptLockOrder->\$Script) ];\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Pos) \$Add;\r\ + \n :delay 10ms;\r\ + \n :if ((\$ScriptLockOrder->\$Script->\$Pos) = \$Add) do={:return tru\ + e}\r\ + \n }\r\ + \n }\r\ + \n :local RemoveTicket do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :local Remove [ :tostr \$2 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Id,Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :while ((\$ScriptLockOrder->\$Script->\$Id) = \$Remove) do={\r\ + \n :set (\$ScriptLockOrder->\$Script->\$Id);\r\ + \n :delay 10ms;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :local CleanupTickets do={\r\ + \n :local Script [ :tostr \$1 ];\r\ + \n :global ScriptLockOrder;\r\ + \n :foreach Ticket in=(\$ScriptLockOrder->\$Script) do={\r\ + \n :if ([ :typeof \$Ticket ] != \"nothing\") do={:return false}\r\ + \n }\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n }\r\ + \n :if ([ :typeof \$WaitMax ] = \"nil\" ) do={:set WaitMax 0s}\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\r\ + \n :log error (\$0 . \" A script named '\" . \$Script . \"' does not ex\ + ist!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$JobCount \$Script ] = 0) do={\r\ + \n \$LogPrint error \$0 (\"No script '\" . \$Script . \"' is running!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$TicketCount \$Script ] >= [ \$JobCount \$Script ]) do={\r\ + \n :log error (\$0 . \" More tickets than running scripts '\" . \$Scrip\ + t . \"', resetting!\");\r\ + \n :set (\$ScriptLockOrder->\$Script) ({});\r\ + \n /system/script/job/remove [ find where script=\$Script ];\r\ + \n }\r\ + \n :local MyTicket [ \$GetRandom20CharAlNum 6 ];\r\ + \n \$AddTicket \$Script \$MyTicket;\r\ + \n :local WaitInterval (\$WaitMax / 20);\r\ + \n :local WaitTime \$WaitMax;\r\ + \n :while (\$WaitTime > 0 && \\\r\ + \n ([ \$IsFirstTicket \$Script \$MyTicket ] = false || \\\r\ + \n [ \$TicketCount \$Script ] < [ \$JobCount \$Script ])) do={\r\ + \n :set WaitTime (\$WaitTime - \$WaitInterval);\r\ + \n :delay \$WaitInterval;\r\ + \n }\r\ + \n :if ([ \$IsFirstTicket \$Script \$MyTicket ] = true && \\\r\ + \n [ \$TicketCount \$Script ] = [ \$JobCount \$Script ]) do={\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$CleanupTickets \$Script;\r\ + \n :return true;\r\ + \n }\r\ + \n \$RemoveTicket \$Script \$MyTicket;\r\ + \n \$LogPrint debug \$0 (\"Script '\" . \$Script . \"' started more than \ + once\" . \\\r\ + \n [ \$IfThenElse (\$WaitTime < \$WaitMax) \" and timed out waiting for\ + \_lock\" \"\" ] . \"...\");\r\ + \n :return false;\r\ + \n}\r\ + \n\r\ + \n:set SendNotification do={ :onerror Err {\r\ + \n :global SendNotification2;\r\ + \n \$SendNotification2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3;\ + \_silent=\$4 });\r\ + \n} do={:global ExitOnError; \$ExitOnError \$0 \$Err}\r\ + \n}\r\ + \n\r\ + \n:set SendNotification2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n :foreach FunctionName,Discard in=\$NotificationFunctions do={\r\ + \n (\$NotificationFunctions->\$FunctionName) (\"\\\$NotificationFunctio\ + ns->\\\"\" . \$FunctionName . \"\\\"\") \$Notification;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n:set SymbolByUnicodeName do={\r\ + \n :local Name [ :tostr \$1 ];\r\ + \n :global EitherOr;\r\ + \n :global SymbolsExtra;\r\ + \n :local Symbols ({\r\ + \n \"abacus\"=\"\\F0\\9F\\A7\\AE\";\r\ + \n \"alarm-clock\"=\"\\E2\\8F\\B0\";\r\ + \n \"arrow-down\"=\"\\E2\\AC\\87\";\r\ + \n \"arrow-up\"=\"\\E2\\AC\\86\";\r\ + \n \"calendar\"=\"\\F0\\9F\\93\\85\";\r\ + \n \"card-file-box\"=\"\\F0\\9F\\97\\83\";\r\ + \n \"chart-decreasing\"=\"\\F0\\9F\\93\\89\";\r\ + \n \"chart-increasing\"=\"\\F0\\9F\\93\\88\";\r\ + \n \"cloud\"=\"\\E2\\98\\81\";\r\ + \n \"cross-mark\"=\"\\E2\\9D\\8C\";\r\ + \n \"earth\"=\"\\F0\\9F\\8C\\8D\";\r\ + \n \"fire\"=\"\\F0\\9F\\94\\A5\";\r\ + \n \"floppy-disk\"=\"\\F0\\9F\\92\\BE\";\r\ + \n \"gear\"=\"\\E2\\9A\\99\";\r\ + \n \"heart\"=\"\\E2\\99\\A5\";\r\ + \n \"high-voltage-sign\"=\"\\E2\\9A\\A1\";\r\ + \n \"incoming-envelope\"=\"\\F0\\9F\\93\\A8\";\r\ + \n \"information\"=\"\\E2\\84\\B9\";\r\ + \n \"large-orange-circle\"=\"\\F0\\9F\\9F\\A0\";\r\ + \n \"large-red-circle\"=\"\\F0\\9F\\94\\B4\";\r\ + \n \"link\"=\"\\F0\\9F\\94\\97\";\r\ + \n \"lock-with-ink-pen\"=\"\\F0\\9F\\94\\8F\";\r\ + \n \"memo\"=\"\\F0\\9F\\93\\9D\";\r\ + \n \"mobile-phone\"=\"\\F0\\9F\\93\\B1\";\r\ + \n \"pushpin\"=\"\\F0\\9F\\93\\8C\";\r\ + \n \"scissors\"=\"\\E2\\9C\\82\";\r\ + \n \"scroll\"=\"\\F0\\9F\\93\\9C\";\r\ + \n \"smiley-partying-face\"=\"\\F0\\9F\\A5\\B3\";\r\ + \n \"smiley-smiling-face\"=\"\\E2\\98\\BA\";\r\ + \n \"smiley-winking-face-with-tongue\"=\"\\F0\\9F\\98\\9C\";\r\ + \n \"sparkles\"=\"\\E2\\9C\\A8\";\r\ + \n \"speech-balloon\"=\"\\F0\\9F\\92\\AC\";\r\ + \n \"star\"=\"\\E2\\AD\\90\";\r\ + \n \"warning-sign\"=\"\\E2\\9A\\A0\";\r\ + \n \"white-heavy-check-mark\"=\"\\E2\\9C\\85\"\r\ + \n }, \$SymbolsExtra);\r\ + \n :local Magic [ :pick [ /system/clock/get date ] 4 10 ];\r\ + \n :local Special {\r\ + \n \"information-04-01\"=\"\\F0\\9F\\9A\\BB\";\r\ + \n \"large-orange-circle-04-01\"=\"\\F0\\9F\\8D\\8A\";\r\ + \n \"large-orange-circle-10-31\"=\"\\F0\\9F\\8E\\83\";\r\ + \n \"large-red-circle-04-01\"=\"\\F0\\9F\\8D\\92\" };\r\ + \n :if ([ :len (\$Symbols->\$Name) ] = 0) do={\r\ + \n :log warning (\$0 . \"No symbol available for name '\" . \$Name . \"\ + '!\");\r\ + \n :return \"\";\r\ + \n }\r\ + \n :return ([ \$EitherOr (\$Special->(\$Name . \$Magic)) (\$Symbols->\$Na\ + me) ] . \"\\EF\\B8\\8F\");\r\ + \n}\r\ + \n\r\ + \n:set SymbolForNotification do={\r\ + \n :global NotificationsWithSymbols;\r\ + \n :global SymbolByUnicodeName;\r\ + \n :global IfThenElse;\r\ + \n :if (\$NotificationsWithSymbols != true) do={:return [ \$IfThenElse ([\ + \_:len \$2 ] > 0) ([ :tostr \$2 ] . \" \") \"\" ]}\r\ + \n :local Return \"\";\r\ + \n :foreach Symbol in=[ :toarray \$1 ] do={:set Return (\$Return . [ \$Sy\ + mbolByUnicodeName \$Symbol ])}\r\ + \n :return (\$Return . \" \");\r\ + \n}\r\ + \n\r\ + \n:set Unix2Dos do={:return [ :tocrlf [ :tostr \$1 ] ]}\r\ + \n:set UrlEncode do={\r\ + \n :local Input [ :tostr \$1 ];\r\ + \n :if ([ :len \$Input ] = 0) do={:return \"\"}\r\ + \n :local Return \"\";\r\ + \n :local Chars (\"\\n\\r !\\\"#\\\$%&'()*+,:;<=>\?@[\\\\]^`{|}~\");\r\ + \n :local Subs { \"%0A\"; \"%0D\"; \"%20\"; \"%21\"; \"%22\"; \"%23\"; \"\ + %24\"; \"%25\"; \"%26\"; \"%27\";\r\ + \n \"%28\"; \"%29\"; \"%2A\"; \"%2B\"; \"%2C\"; \"%3A\"; \"%3B\"; \ + \"%3C\"; \"%3D\"; \"%3E\"; \"%3F\";\r\ + \n \"%40\"; \"%5B\"; \"%5C\"; \"%5D\"; \"%5E\"; \"%60\"; \"%7B\"; \ + \"%7C\"; \"%7D\"; \"%7E\" };\r\ + \n :for I from=0 to=([ :len \$Input ] - 1) do={\r\ + \n :local Char [ :pick \$Input \$I ];\r\ + \n :local Replace [ :find \$Chars \$Char ];\r\ + \n :if ([ :typeof \$Replace ] = \"num\") do={:set Char (\$Subs->\$Repla\ + ce)}\r\ + \n :set Return (\$Return . \$Char);\r\ + \n }\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set IsDNSResolving do={\r\ + \n :do {:resolve \"api.telegram.org\"} on-error={:return false}\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsFullyConnected do={\r\ + \n :global IsDNSResolving;\r\ + \n :global IsTimeSync;\r\ + \n :if ([ \$IsDNSResolving ] = false) do={:return false};\r\ + \n :if ([ \$IsTimeSync ] = false) do={:return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set IsTimeSync do={\r\ + \n :global IsTimeSyncCached;\r\ + \n :global IsTimeSyncResetNtp;\r\ + \n :if (\$IsTimeSyncCached = true) do={:return true}\r\ + \n :if ([ /system/ntp/client/get enabled ] = true) do={\r\ + \n :if ([ /system/ntp/client/get status ] = \"synchronized\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :if ([ :typeof \$IsTimeSyncResetNtp ] = \"nothing\") do={\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n }\r\ + \n :if (\$Uptime - \$IsTimeSyncResetNtp < 3m) do={:return false}\r\ + \n :log warning \"\$0 The ntp client is configured, but did not sync.\"\ + ;\r\ + \n :set IsTimeSyncResetNtp \$Uptime;\r\ + \n /system/ntp/client/set enabled=no;\r\ + \n :delay 20ms;\r\ + \n /system/ntp/client/set enabled=yes;\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ /system/license/get ]->\"level\" = \"free\" || \\\r\ + \n [ /system/resource/get ]->\"board-name\" = \"x86\") do={\r\ + \n :log debug \"\$0 No ntp client configured, relying on RTC for CHR fr\ + ee license and x86.\";\r\ + \n :return true;\r\ + \n }\r\ + \n :if ([ /ip/cloud/get update-time ] = true) do={\r\ + \n :if ([ :typeof [ /ip/cloud/get public-address ] ] = \"ip\") do={\r\ + \n :set IsTimeSyncCached true;\r\ + \n :return true;\r\ + \n }\r\ + \n :return false;\r\ + \n }\r\ + \n :log debug \"\$0 No time source configured! Returning gracefully...\";\ + \r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:set FetchHugeFiles do={\r\ + \n :local ScriptName [ :tostr \$1 ];\r\ + \n :local Url [ :tostr \$2 ];\r\ + \n :local CheckCert [ :tostr \$3 ];\r\ + \n\r\ + \n :global CleanName;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global MkDir;\r\ + \n :global RmDir;\r\ + \n :global RmFile;\r\ + \n :global WaitForFile;\r\ + \n\r\ + \n :set CheckCert [ \$IfThenElse (\$CheckCert = \"false\") \"no\" \"yes-w\ + ithout-crl\" ];\r\ + \n\r\ + \n :local DirName (\"tmpfs/\" . [ \$CleanName \$ScriptName ]);\r\ + \n :if ([ \$MkDir \$DirName ] = false) do={\r\ + \n \$LogPrint error \$0 (\"Failed creating directory!\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileName (\$DirName . \"/\" . [ \$CleanName \$0 ] . \"-\" . [ \ + \$GetRandom20CharAlNum ]);\r\ + \n :onerror Err {\r\ + \n /tool/fetch check-certificate=\$CheckCert \$Url dst-path=\$FileName \ + \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$ScriptName ] }) as-va\ + lue;\r\ + \n } do={\r\ + \n :if ([ \$WaitForFile \$FileName 500ms ] = true) do={\r\ + \n \$RmFile \$FileName;\r\ + \n }\r\ + \n \$LogPrint debug \$0 (\"Failed downloading from \" . \$Url . \" - \"\ + \_. \$Err);\r\ + \n \$RmDir \$DirName;\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$WaitForFile \$FileName 5s ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"The file downloaded from \" . \$Url . \" did\ + \_not show up.\");\r\ + \n :return false;\r\ + \n }\r\ + \n\r\ + \n :local FileSize [ /file/get \$FileName size ];\r\ + \n :local Return \"\";\r\ + \n :local VarSize 0;\r\ + \n :while (\$VarSize != \$FileSize) do={\r\ + \n :set Return (\$Return . ([ /file/read offset=\$VarSize chunk-size=32\ + 768 file=\$FileName as-value ]->\"data\"));\r\ + \n :set FileSize [ /file/get \$FileName size ];\r\ + \n :set VarSize [ :len \$Return ];\r\ + \n :if (\$VarSize > \$FileSize) do={\r\ + \n :delay 100ms;\r\ + \n }\r\ + \n }\r\ + \n \$RmDir \$DirName;\r\ + \n :return \$Return;\r\ + \n}\r\ + \n\r\ + \n:set FetchUserAgentStr do={\r\ + \n :local Caller [ :tostr \$1 ];\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global CommitBrief;\r\ + \n :global IfThenElse;\r\ + \n :local Resource [ /system/resource/get ];\r\ + \n :return (\"User-Agent: Mikrotik/\" . \$Resource->\"version\" . \" \" .\ + \_\$Resource->\"architecture-name\" . \\\r\ + \n \" \" . \$Caller . \"/Fetch (\" . \$GlobalScriptsUrl . \"; \" . [ \$\ + CommitBrief ] . \")\");\r\ + \n}\r\ + \n\r\ + \n:set ScriptInstallUpdate do={ :onerror Err {\r\ + \n :local Scripts [ :toarray \$1 ];\r\ + \n :local NewComment [ :tostr \$2 ];\r\ + \n :global InitSetup;\r\ + \n\r\ + \n :global CommitId;\r\ + \n :global ScriptUpdatesCRLF;\r\ + \n :global GlobalConfVersion;\r\ + \n :global Identity;\r\ + \n :global CertificateAvailable;\r\ + \n :global CheckSumsVerify;\r\ + \n :global GlobalScriptsUrl;\r\ + \n :global SumsDirAndFileName;\r\ + \n :global GlobalScriptsUrlSuffix;\r\ + \n :global EitherOr;\r\ + \n :global FetchUserAgentStr;\r\ + \n :global Grep;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ParseKeyValueStore;\r\ + \n :global RequiredRouterOS;\r\ + \n :global SendNotification2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global CommentsInScripts;\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Root YE\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, trying wit\ + hout.\");\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=\$Scripts do={\r\ + \n :if ([ :len [ /system/script/find where name=\$Script ] ] = 0) do={\ + \r\ + \n \$LogPrint info \$0 (\"Adding new script: \" . \$Script);\r\ + \n /system/script/add name=\$Script owner=\$Script source=\"#!rsc by \ + Vados\\n\" comment=\$NewComment;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local CommitIdBefore \$CommitId;\r\ + \n :local GlobalConfVersionBefore \$GlobalConfVersion;\r\ + \n :local ReloadGlobal false;\r\ + \n :local DeviceMode [ /system/device-mode/get ];\r\ + \n\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSums ({});\r\ + \n :do {\r\ + \n :local Url (\$GlobalScriptsUrl . \$SumsDirAndFileName . \$GlobalScr\ + iptsUrlSuffix);\r\ + \n \$LogPrint debug \$0 (\"Fetching checksums from url: \" . \$Url);\ + \r\ + \n :set CheckSums [ :deserialize from=json ([ /tool/fetch check-certi\ + ficate=yes-without-crl \\\r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url output\ + =user as-value ]->\"data\") ];\r\ + \n } on-error={ \$LogPrint warning \$0 (\"Err = \" . \$Err); }\r\ + \n }\r\ + \n\r\ + \n :foreach Script in=[ /system/script/find where source~\"^#!rsc by Vado\ + s\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :local ScriptInfo [ \$ParseKeyValueStore (\$ScriptVal->\"comment\") \ + ];\r\ + \n :local SourceNew;\r\ + \n\r\ + \n :foreach Scheduler in=[ /system/scheduler/find where on-event~(\"\\\ + \\b\" . \$ScriptVal->\"name\" . \"\\\\b\") ] do={\r\ + \n :local SchedulerVal [ /system/scheduler/get \$Scheduler ];\r\ + \n :if (\$ScriptVal->\"policy\" != \$SchedulerVal->\"policy\") do={\r\ + \n \$LogPrint warning \$0 (\"Policies differ for script '\" . \$Scr\ + iptVal->\"name\" . \"' and its scheduler '\" . \$SchedulerVal->\"name\" . \ + \"'!\");\r\ + \n }\r\ + \n }\r\ + \n :do {\r\ + \n :if (\$ScriptInfo->\"ignore\" = true) do={\r\ + \n \$LogPrint debug \$0 (\"Ignoring script '\" . \$ScriptVal->\"nam\ + e\" . \"', as requested.\");\r\ + \n :error true;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :local CheckSum (\$CheckSums->(\$ScriptVal->\"name\"));\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Scri\ + ptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :convert transform=md5 to=hex [ :tolf (\$ScriptVal->\"sou\ + rce\") ] ] = \$CheckSum) do={\r\ + \n \$LogPrint debug \$0 (\"Checksum for script '\" . \$ScriptVal-\ + >\"name\" . \"' matches, ignoring.\");\r\ + \n :error true;\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len (\$ScriptInfo->\"certificate\") ] > 0) do={\r\ + \n :if ([ \$CertificateAvailable (\$ScriptInfo->\"certificate\") \"\ + fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading certificate failed, tryi\ + ng without.\");\r\ + \n }\r\ + \n }\r\ + \n :onerror Err {\r\ + \n :local BaseUrl [ \$EitherOr (\$ScriptInfo->\"base-url\") \$Globa\ + lScriptsUrl ];\r\ + \n :local UrlSuffix [ \$EitherOr (\$ScriptInfo->\"url-suffix\") \$G\ + lobalScriptsUrlSuffix ];\r\ + \n :local Url (\$BaseUrl . \$ScriptVal->\"name\" . \".rsc\" . \$Url\ + Suffix);\r\ + \n \$LogPrint warning \$0 (\"Fetching script '\" . (\$ScriptVal->\"\ + name\") . \"' from url: \" . \$Url);\r\ + \n :local Result [ /tool/fetch check-certificate=yes-without-crl \\\ + \r\ + \n http-header-field=({ [ \$FetchUserAgentStr \$0 ] }) \$Url outp\ + ut=user as-value ];\r\ + \n :if (\$Result->\"status\" = \"finished\") do={\r\ + \n :set SourceNew [ :tolf (\$Result->\"data\") ];\r\ + \n } \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Failed fetching script '\" . \$ScriptV\ + al->\"name\" . \"': \" . \$Err);\r\ + \n :if (\$Err != \"Fetch failed with status 404\") do={\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$ScriptVal->\"source\" = \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Removing dummy. Typo on installation\ + \?\");\r\ + \n /system/script/remove \$Script;\r\ + \n :error false;\r\ + \n }\r\ + \n :if (\$CheckSumsVerify = true) do={\r\ + \n :if ([ :len (\$ScriptInfo->\"base-url\") ] = 0 && [ :len (\$Sc\ + riptInfo->\"url-suffix\") ] = 0 && \\\r\ + \n [ :len \$CheckSum ] = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Added the script manually\? Skip u\ + pdates with 'ignore=true' in comment.\");\r\ + \n }\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$SourceNew ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"No update for script '\" . (\$ScriptVal-\ + >\"name\") . \"'.\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local SourceCRLF [ :tocrlf \$SourceNew ];\r\ + \n :if (\$InitSetup != true && ((\$ScriptVal->\"name\") != \"AM-Globa\ + lConfig\" || (\$ScriptVal->\"name\") != \"AM-GlobalFunc\")) do={\r\ + \n :if (\$SourceNew = (\$ScriptVal->\"source\") || \$SourceCRLF = (\ + \$ScriptVal->\"source\")) do={\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\") \ + . \"' source did not change. End of lines set to CRLF.\");\r\ + \n if (\$ScriptUpdatesCRLF = false) do={\r\ + \n :put [ :tolf \$SourceNew ];\r\ + \n \$LogPrint debug \$0 (\"Script '\" . (\$ScriptVal->\"name\"\ + ) . \"' source update end of lines to LF.\");\r\ + \n }\r\ + \n :error false;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if ([ :pick \$SourceNew 0 14 ] != \"#!rsc by Vados\") do={\r\ + \n \$LogPrint warning \$0 (\"Looks like new script '\" . \$ScriptVa\ + l->\"name\" . \"' is not valid (missing shebang = '\$shebang') Ignoring!\"\ + );\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if (\$CommentsInScripts = true) do={\r\ + \n :local CommentLine [ \$Grep \$SourceNew (\"\\23 Script comment:\ + \_\") ];\r\ + \n :if ([ :len \$CommentLine ] = 0) do={\r\ + \n \$LogPrint debug \$0 (\"The search in new script '\" . (\$Scr\ + iptVal->\"name\") . \"' for comment in script body, is not found result Ig\ + noring!\");\r\ + \n :error false;\r\ + \n } else={\r\ + \n :if ([ :len (\$ScriptVal->\"comment\")] = 0 || [ :len (\$Scri\ + ptVal->\"comment\")] != [ :pick \$CommentLine ([ :find \$CommentLine \":\"\ + ] + 2) [ :len \$CommentLine] ]) do={\r\ + \n \$LogPrint debug \$0 (\"Exsiting comment for script '\" . (\ + \$ScriptVal->\"name\") . \"' is '\" . (\$ScriptVal->\"comment\") . \"'.\")\ + ;\r\ + \n :set (\$ScriptVal->\"comment\") [ :pick \$CommentLine ([ :f\ + ind \$CommentLine \":\"] + 2) [ :len \$CommentLine] ];\r\ + \n \$LogPrint debug \$0 (\"New comment (\" . (\$ScriptVal->\"c\ + omment\") . \") for script '\" . (\$ScriptVal->\"name\") . \"' has been ad\ + ded!\");\r\ + \n } else={\r\ + \n \$LogPrint debug \$0 (\"Comment for script '\" . (\$ScriptV\ + al->\"name\") . \"' did not change.\");\r\ + \n :error false;\r\ + \n }\r\ + \n } \r\ + \n }\r\ + \n\r\ + \n :local RequiredROS ([ \$ParseKeyValueStore [ \$Grep \$SourceNew (\ + \"\\23 requires RouterOS, \") ] ]->version);\r\ + \n :if ([ \$RequiredRouterOS \$0 [ \$EitherOr \$RequiredROS \"0.0\" ]\ + \_false ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires RouterOS \" . \\\r\ + \n \$RequiredROS . \", which is not met by your installation. I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n :local RequiredDM [ \$ParseKeyValueStore [ \$Grep \$SourceNew (\"\ + \\23 requires device-mode, \") ] ];\r\ + \n :local MissingDM ({});\r\ + \n :foreach Feature,Value in=\$RequiredDM do={\r\ + \n :if ([ :typeof (\$DeviceMode->\$Feature) ] = \"bool\" && (\$Devi\ + ceMode->\$Feature) = false) do={\r\ + \n :set MissingDM (\$MissingDM, \$Feature);\r\ + \n }\r\ + \n }\r\ + \n :if ([ :len \$MissingDM ] > 0) do={\r\ + \n \$LogPrint warning \$0 (\"The script '\" . (\$ScriptVal->\"name\ + \") . \"' requires disabled \" . \\\r\ + \n \"device-mode features (\" . [ :tostr \$MissingDM ] . \"). I\ + gnoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$ValidateSyntax \$SourceNew ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Syntax validation for script '\" . (\$\ + ScriptVal->\"name\") . \"' failed! Ignoring!\");\r\ + \n :error false;\r\ + \n }\r\ + \n \r\ + \n :log info (\"Updating script: \" . (\$ScriptVal->\"name\") . \" Sc\ + ript comment: \" . (\$ScriptVal->\"comment\"));\r\ + \n\r\ + \n /system/script/set owner=(\$ScriptVal->\"name\") comment=(\$Script\ + Val->\"comment\") \\\r\ + \n source=[ \$IfThenElse (\$ScriptUpdatesCRLF = true) \$SourceCRL\ + F \$SourceNew ] \$Script;\r\ + \n :if (\$ScriptVal->\"name\" = \"AM-GlobalConfig\" || \\\r\ + \n \$ScriptVal->\"name\" = \"AM-GlobalFunc\" || \\\r\ + \n \$ScriptVal->\"name\" ~ (\"^(AM-GlobalFunc\\\\.d|mod)/.\")) d\ + o={\r\ + \n :set ReloadGlobal true;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n :if (\$ReloadGlobal = true) do={\r\ + \n \$LogPrint info \$0 (\"Reloading global configuration and functions.\ + \");\r\ + \n :onerror Err {\r\ + \n :global InitSetup (a);\r\ + \n /system/script {run AM-GlobalConfig; run AM-GlobalFunc;};\r\ + \n } do={\$LogPrint error \$0 (\"Reloading global configuration and fun\ + ctions failed! \" . \$Err)}\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore > \$GlobalConfVersion) do={\r\ + \n \$LogPrint warning \$0 (\"The configuration version decreased from \ + \" . \\\r\ + \n \$GlobalConfVersionBefore . \" to \" . \$GlobalConfVersion . \\\r\ + \n \". Installed an older version\?\");\r\ + \n }\r\ + \n :if (\$GlobalConfVersionBefore < \$GlobalConfVersion) do={\r\ + \n :global GlobalConfChanges;\r\ + \n :global GlobalConfMigration;\r\ + \n :local ChangeLogCode;\r\ + \n :if ([ :len \$ChangeLogCode ] > 0) do={\r\ + \n :if ([ \$ValidateSyntax \$ChangeLogCode ] = true) do={\r\ + \n :onerror Err {\r\ + \n [ :parse \$ChangeLogCode ];\r\ + \n } do={\$LogPrint warning \$0 (\"The changelog failed to run: \" \ + . \$Err)}\r\ + \n } else={\$LogPrint warning \$0 (\"The changelog failed syntax vali\ + dation!\")}\r\ + \n }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Migration (\$GlobalConfMigration->[ :tostr \$I ]);\r\ + \n :do {\r\ + \n :if ([ :typeof \$Migration ] != \"str\") do={\r\ + \n \$LogPrint debug \$0 (\"Migration code for change \" . \$I .\ + \_\" is not available.\");\r\ + \n :error false;\r\ + \n }\r\ + \n :if ([ \$ValidateSyntax \$Migration ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Migration code for change \" . \$I\ + \_. \" failed syntax validation!\");\r\ + \n :error false}\r\ + \n \$LogPrint info \$0 (\"Applying migration for change \" . \$I \ + . \": \" . \$Migration);\r\ + \n :onerror Err {\r\ + \n [ :parse \$Migration ];\r\ + \n } do={\$LogPrint warning \$0 (\"Migration code for change \" .\ + \_\$I . \" failed to run: \" . \$Err)}\r\ + \n } on-error={ }\r\ + \n }\r\ + \n }\r\ + \n :local NotificationMessage (\"The configuration version on \" . \$Id\ + entity . \" increased \" . \\\r\ + \n \"to \" . \$GlobalConfVersion . \", current configuration may nee\ + d modification. \" . \\\r\ + \n \"Please review and update global-config-overlay, then re-run glo\ + bal-config.\");\r\ + \n \$LogPrint info \$0 (\$NotificationMessage);\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nChanges:\ + \");\r\ + \n :for I from=(\$GlobalConfVersionBefore + 1) to=\$GlobalConfVersion\ + \_do={\r\ + \n :local Change (\$GlobalConfChanges->[ :tostr \$I ]);\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n \" . \\\ + \r\ + \n [ \$SymbolForNotification \"pushpin\" \"*\" ] . \$Change);\r\ + \n \$LogPrint info \$0 (\"Change \" . \$I . \": \" . \$Change);\r\ + \n }\r\ + \n } else={\r\ + \n :set NotificationMessage (\$NotificationMessage . \"\\n\\nNews and\ + \_changes are not available.\");\r\ + \n\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$GlobalConfChanges ] > 0) do={ :set GlobalConfChanges; \ + } else={ :global GlobalConfChanges (a); }\r\ + \n :if ([ :len \$GlobalConfMigration ] > 0) do={ :set GlobalConfMigrati\ + on; } else={ :global GlobalConfMigration (a); }\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n\r\ + \n# load modules\r\ + \n:foreach Script in=[ /system/script/find where name ~ \"^(global-functio\ + ns\\\\.d|mod)/.\" ] do={\r\ + \n :local ScriptVal [ /system/script/get \$Script ];\r\ + \n :if ([ \$ValidateSyntax (\$ScriptVal->\"source\") ] = true) do={\r\ + \n :onerror Err {\r\ + \n /system/script/run \$Script;\r\ + \n } do={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' f\ + ailed to run: \" . \$Err);\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint error \$0 (\"Module '\" . \$ScriptVal->\"name\" . \"' fai\ + led syntax validation, skipping.\");\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n# Add and fix global scheduler\r\ + \n:put \"Add or/and fix Global scheduler...\";\r\ + \n:local OnEvent \"/system/script { run AM-GlobalConfig; run AM-GlobalFunc\ + ; }\";\r\ + \n:local Comment \"Every Day Set Global Environment Variables\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-SetGlobalEnv\" ] ] \ + = 0) do={\r\ + \n /system/scheduler/add name=\"AM-SetGlobalEnv\" comment=\$Comment on-ev\ + ent=\$OnEvent start-time=startup;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" comment ] != \$Comment)\ + \_do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" comment=\$Comment;\r\ + \n}\r\ + \n:if ([ /system/scheduler/get \"AM-SetGlobalEnv\" on-event ] != \$OnEvent\ + ) do={\r\ + \n /system/scheduler/set \"AM-SetGlobalEnv\" on-event=\$OnEvent;\r\ + \n}\r\ + \n# Add Update Script scheduler\r\ + \n:put \"Add or/and fix Update Script scheduler\";\r\ + \n:set OnEvent \":global ScriptInstallUpdate; \\\$ScriptInstallUpdate;\";\ + \r\ + \n:set Comment \"Every Day Check For Update Scripts\";\r\ + \n:if ([ :len [ /system/scheduler/find where name=\"AM-ScriptInstallUpdate\ + \" ] ] = 0) do={\r\ + \n/system/scheduler/add name=\"AM-ScriptInstallUpdate\" comment=\$Comment \ + start-time=startup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady;\r\ + \n :retry { :if (\$GlobalConfReady != true) do={ :error (\"Global configs\ + \_not ready.\"); }; } delay=100ms max=5;\r\ + \n\r\ + \n:log warning (\"This script \$ScriptName Loaded \" . \\\r\ + \n [ \$IfThenElse (\$CommitId != \"unknown\") ([ \$CommitBrief ] . \" \ + \") ] . \\\r\ + \n \"on \" . \$devBoardName . \"\\nRouterOS: \" . \$devCurVersion . \"\ + \\nArchitecture: \" . \$devCurArch . \"\\nIdentity: \" . \$Identity);\r\ + \n # signal we are ready\r\ + \n:set GlobalFuncReady true;\r\ + \n:set ExitOK true;\r\ + \n\r\ + \n:log info (\$0 . \"Global configs ready!\");\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n}\r\ + \n" +add dont-require-permissions=no name=fetchCustom owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + \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\";\r\ + \n#\r\ + \n#root.mnuc.backuper\r\ + \n\r\ + \n#/tool/fetch mode=https url=(\$GlobalScriptsUrl . \".bak/mikro_bak_rsa@1\ + 0.30.30.81.pub\") dst-path=\"/mikro_bak_rsa@10.30.30.81.pub\";\r\ + \n#:local Script AM-GlobalConfig;\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#/usb1/mikro_bak_rsa.pub\r\ + \n#:local FetchFile AM-DOHCert.rsc\r\ + \n\r\ + \n:global GlobalScriptsUrl \"https://ros.vados.ru/tmp/\";\r\ + \n:global MkDir;\r\ + \n\r\ + \n:local FetchFile Binary.backup\r\ + \n:local localDir \"[usb1]/scripts/\";\r\ + \n\r\ + \n\$MkDir \$localDir;\r\ + \n\r\ + \n/tool/fetch mode=https url=(\$GlobalScriptsUrl . \$FetchFile) dst-path=(\ + \$localDir . \$FetchFile);\r\ + \n" +add dont-require-permissions=yes name=MkTmpfs owner=vados policy=\ + ftp,read,write,policy,test,sniff,sensitive source=\ + ":global MkDir;\r\ + \n\r\ + \n\$MkDir /usb1/tmpfs;" +add dont-require-permissions=no name=CreateContainer owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + local contIF \"veth1\";\r\ + \n:local contIP \"10.10.10.10/24\";\r\ + \n:local contGW \"10.10.10.1\";\r\ + \n#/interface/veth/add name=\$contIF address=\$contIP gateway=\$contGW;\r\ + \n:local contBridgeIF \"Bridge-DOC\";\r\ + \n:local contBridgeIP \"10.10.10.1/24\";\r\ + \n/interface/bridge/add name=\$contBridgeIF;\r\ + \n/ip/address/add address=\$contBridgeIP interface=\$contBridgeIF;\r\ + \n/interface/bridge/port/add bridge=\$contBridgeIF interface=\$contIF;\r\ + \n/container/config/set ram-high=768M registry-url=https://registry-1.dock\ + er.io tmpdir=sata1/tmp\r\ + \n" +add dont-require-permissions=no name=carkeeperbot owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="/\ + container/mounts/add list=carkeeper_configs/.profile src=sata1/carkeeper/c\ + onfigs/.profile dst=/root/.ashrc;\r\ + \n/container/mounts/add list=carkeeper_configs/php.ini src=sata1/carkeeper\ + /configs/php.ini dst=/etc/php82/php.ini;\r\ + \n#/container/mounts/add list=carkeeper_configs src=sata1/carkeeper/config\ + s dst=/configs;\r\ + \n/container/mounts/add list=carkeeper_app src=sata1/carkeeper/app dst=/ap\ + p;\r\ + \n/container/mounts/add list=carkeeper_scripts src=sata1/carkeeper/scripts\ + \_dst=/scripts;\r\ + \n/container/mounts/add list=carkeeper_configs/sshd_config src=sata1/carke\ + eper/configs/sshd_config dst=/etc/ssh/sshd_config;\r\ + \n\r\ + \n/container/mounts/add list=carkeeper_tmp src=sata1/carkeeper/tmp dst=/va\ + r/tmp;\r\ + \n/container/mounts/add list=carkeeper_sync src=sata1/carkeeper/sync dst=/\ + var/sync;\r\ + \n" +add comment="Enable or disable ip addresses based on bridge port state" \ + dont-require-permissions=no name=mod/AM-IPbridge owner=mod/AM-IPbridge \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: mod/AM-IPbridge\r\ + \n# Script comment: Enable or disable ip addresses based on bridge port st\ + ate\r\ + \n# Copyright (c) 2005-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n# Add this Script scheduler\r\ + \n:if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) do\ + ={\r\ + \n:log warning (\"SystemScheduler for script: \" . \$ScriptName . \" is NO\ + T SET! Fix It Now!\");\r\ + \n:local OnEvent \"/system/script/run \$ScriptName;\";\r\ + \n:local Comment \"Every Day Check For Fake Bridges\";\r\ + \n/system/scheduler/add name=\$ScriptName comment=\$Comment start-time=sta\ + rtup interval=1d on-event=\$OnEvent;\r\ + \n}\r\ + \n\r\ + \n:foreach Bridge in=[ /interface/bridge/find ] do={\r\ + \n :local BrName [ /interface/bridge/get \$Bridge name ];\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName ] ] > \ + 0) do={\r\ + \n :if ([ :len [ /interface/bridge/port/find where bridge=\$BrName and \ + inactive=no ] ] = 0) do={\r\ + \n /ip/address/disable [ find where !dynamic interface=\$BrName ];\r\ + \n } else={\r\ + \n /ip/address/enable [ find where !dynamic interface=\$BrName ];\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n" +add comment="Use Telegram to chat with your Router and send commands" \ + dont-require-permissions=no name=mod/AM-TG-Bot owner=mod/AM-TG-Bot \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: mod/AM-TG-Bot\r\ + \n# Script comment: Use Telegram to chat with your Router and send command\ + s\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:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n :global Identity;\r\ + \n :global TelegramChatActive;\r\ + \n :global TelegramChatGroups;\r\ + \n :global TelegramChatId;\r\ + \n :global TelegramChatIdsTrusted;\r\ + \n :global TelegramChatOffset;\r\ + \n :global TelegramChatRunTime;\r\ + \n :global TelegramMessageIDs;\r\ + \n :global TelegramRandomDelay;\r\ + \n :global TelegramTokenId;\r\ + \n\r\ + \n :global CertificateAvailable;\r\ + \n :global EitherOr;\r\ + \n :global EscapeForRegEx;\r\ + \n :global FileExists;\r\ + \n :global GetRandom20CharAlNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global LogPrintVerbose;\r\ + \n :global MAX;\r\ + \n :global MIN;\r\ + \n :global MkDir;\r\ + \n :global RandomDelay;\r\ + \n :global RmDir;\r\ + \n :global ScriptLock;\r\ + \n :global SendTelegram2;\r\ + \n :global SymbolForNotification;\r\ + \n :global ValidateSyntax;\r\ + \n :global WaitForFile;\r\ + \n :global WaitFullyConnected;\r\ + \n\r\ + \n :if ([ \$ScriptLock \$ScriptName ] = false) do={\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n \$WaitFullyConnected;\r\ + \n\r\ + \n :if ([ :len [ /system/scheduler/find where name=\$ScriptName ] ] = 0) \ + do={\r\ + \n /system/scheduler/add start-time=startup interval=30s name=\$ScriptN\ + ame on-event=\"/system/script/run \$ScriptName;\" comment=\"Telegram Chat \ + Bot\";\r\ + \n }\r\ + \n :if ([ :typeof \$TelegramChatOffset ] != \"array\") do={\r\ + \n :set TelegramChatOffset { 0; 0; 0 };\r\ + \n }\r\ + \n :if ([ :typeof \$TelegramRandomDelay ] != \"num\") do={\r\ + \n :set TelegramRandomDelay 0;\r\ + \n }\r\ + \n\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority - \ + G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Downloading required certificate \ + failed.\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n \$RandomDelay \$TelegramRandomDelay;\r\ + \n\r\ + \n :local Data false;\r\ + \n :for I from=1 to=4 do={\r\ + \n :if (\$Data = false) do={\r\ + \n :onerror Err {\r\ + \n :set Data ([ /tool/fetch check-certificate=yes-without-crl outpu\ + t=user \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TelegramTokenId . \"/get\ + Updates\?offset=\" . \\\r\ + \n \$TelegramChatOffset->0 . \"&allowed_updates=%5B%22message%22%\ + 5D\") as-value ]->\"data\");\r\ + \n :set TelegramRandomDelay [ \$MAX 0 (\$TelegramRandomDelay - 1) ]\ + ;\r\ + \n } do={\r\ + \n :if (\$I < 4) do={\r\ + \n \$LogPrint debug \$ScriptName (\"Fetch failed, \" . \$I . \". \ + try: \" . \$Err);\r\ + \n :set TelegramRandomDelay [ \$MIN 15 (\$TelegramRandomDelay + 5\ + ) ];\r\ + \n :delay ((\$I * \$I) . \"s\");\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if (\$Data = false) do={\r\ + \n \$LogPrint warning \$ScriptName (\"Failed getting updates.\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local JSON [ :deserialize from=json value=\$Data ];\r\ + \n :local UpdateID 0;\r\ + \n :local Uptime [ /system/resource/get uptime ];\r\ + \n :foreach Update in=(\$JSON->\"result\") do={\r\ + \n :set UpdateID (\$Update->\"update_id\");\r\ + \n \$LogPrintVerbose debug \$ScriptName (\"Update \" . \$UpdateID . \":\ + \_\" . [ :serialize to=json \$Update ]);\r\ + \n\r\ + \n :local Message (\$Update->\"message\");\r\ + \n :local IsAnyReply ([ :typeof (\$Message->\"reply_to_message\") ] = \ + \"array\");\r\ + \n :local IsMyReply (\$TelegramMessageIDs->[ :tostr (\$Message->\"reply\ + _to_message\"->\"message_id\") ]);\r\ + \n :if ((\$IsMyReply = 1 || \$TelegramChatOffset->0 > 0 || \$Uptime > 5\ + m) && \$UpdateID >= \$TelegramChatOffset->2) do={\r\ + \n :local Trusted false;\r\ + \n :local Chat (\$Message->\"chat\");\r\ + \n :local From (\$Message->\"from\");\r\ + \n :local Command (\$Message->\"text\");\r\ + \n :local ThreadId [ \$IfThenElse (\$Message->\"is_topic_message\") (\ + \$Message->\"message_thread_id\") \"\" ];\r\ + \n\r\ + \n :foreach IdsTrusted in=(\$TelegramChatId, \$TelegramChatIdsTrusted\ + ) do={\r\ + \n :if (\$From->\"id\" = \$IdsTrusted || \\\r\ + \n \$From->\"username\" = \$IdsTrusted || \\\r\ + \n \$Chat->\"id\" = \$IdsTrusted) do={\r\ + \n :set Trusted true;\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if (\$Trusted = true) do={\r\ + \n :local Done false;\r\ + \n :if (\$Command = \"\?\") do={\r\ + \n \$LogPrint info \$ScriptName (\"Sending notice for update \" .\ + \_\$UpdateID . \".\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\"\ + ); silent=true; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \\\ + \r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \"\ + Telegram Chat\"); \\\r\ + \n message=([ \$IfThenElse ([ :len (\$From->\"first_name\") ] >\ + \_0) (\"Hello \" . (\$From->\"first_name\") . \"!\\n\\n\") ] . \\\r\ + \n \"Online\" . [ \$IfThenElse \$TelegramChatActive \" (and a\ + ctive!)\" ] . \", awaiting your commands!\") });\r\ + \n :set Done true;\r\ + \n }\r\ + \n :if (\$Done = false && [ :pick \$Command 0 1 ] = \"!\") do={\r\ + \n :if (\$Command ~ (\"^! *(\" . [ \$EscapeForRegEx \$Identity ] \ + . \"|@\" . \$TelegramChatGroups . \")\\\$\")) do={\r\ + \n :set TelegramChatActive true;\r\ + \n } else={\r\ + \n :set TelegramChatActive false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Now \" . [ \$IfThenElse \$Tele\ + gramChatActive \"active\" \"passive\" ] . \\\r\ + \n \" from update \" . \$UpdateID . \"!\");\r\ + \n :set Done true;\r\ + \n }\r\ + \n :if (\$Done = false && (\$IsMyReply = 1 || (\$IsAnyReply = false\ + \_&& \\\r\ + \n \$TelegramChatActive = true)) && [ :len \$Command ] > 0) do\ + ={\r\ + \n :if ([ \$ValidateSyntax \$Command ] = true) do={\r\ + \n :local State \"\";\r\ + \n :local File (\"tmpfs/telegram-chat/\" . [ \$GetRandom20CharA\ + lNum 6 ]);\r\ + \n :if ([ \$MkDir \"tmpfs/telegram-chat\" ] = false) do={\r\ + \n \$LogPrint error \$ScriptName (\"Failed creating directory\ + !\");\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n \$LogPrint info \$ScriptName (\"Running command from update \ + \" . \$UpdateID . \": \" . \$Command);\r\ + \n :execute script=(\":do {\\n\" . \$Command . \"\\n} on-error=\ + { /file/add name=\\\"\" . \$File . \".failed\\\" };\" . \\\r\ + \n \"/file/add name=\\\"\" . \$File . \".done\\\"\") file=(\$\ + File . \"\\00\");\r\ + \n :if ([ \$WaitForFile (\$File . \".done\") [ \$EitherOr \$Tel\ + egramChatRunTime 20s ] ] = false) do={\r\ + \n :set State ([ \$SymbolForNotification \"warning-sign\" ] .\ + \_\"The command did not finish, still running in background.\\n\\n\");\r\ + \n }\r\ + \n :if ([ \$FileExists (\$File . \".failed\") ] = true) do={\r\ + \n :set State ([ \$SymbolForNotification \"cross-mark\" ] . \ + \"The command failed with an error!\\n\\n\");\r\ + \n }\r\ + \n :local Content ([ /file/read chunk-size=32768 file=\$File as\ + -value ]->\"data\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\ + \"); silent=true; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \ + \\\r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \ + \"Telegram Chat\"); \\\r\ + \n message=([ \$SymbolForNotification \"gear\" ] . \"Command:\ + \\n\" . \$Command . \"\\n\\n\" . \\\r\ + \n \$State . [ \$IfThenElse ([ :len \$Content ] > 0) \\\r\ + \n ([ \$SymbolForNotification \"memo\" ] . \"Output:\\n\" .\ + \_\$Content) \\\r\ + \n ([ \$SymbolForNotification \"memo\" ] . \"No output.\") \ + ]) });\r\ + \n \$RmDir \"tmpfs/telegram-chat\";\r\ + \n } else={\r\ + \n \$LogPrint info \$ScriptName (\"The command from update \" .\ + \_\$UpdateID . \" failed syntax validation!\");\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\ + \"); silent=false; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \ + \\\r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \ + \"Telegram Chat\"); \\\r\ + \n message=([ \$SymbolForNotification \"gear\" ] . \"Command:\ + \\n\" . \$Command . \"\\n\\n\" . \\\r\ + \n [ \$SymbolForNotification \"cross-mark\" ] . \"The comma\ + nd failed syntax validation!\") });\r\ + \n }\r\ + \n }\r\ + \n } else={\r\ + \n :local MessageText (\"Received a message from untrusted contact \ + \" . \\\r\ + \n [ \$IfThenElse ([ :len (\$From->\"username\") ] = 0) \"without\ + \_username\" (\"'\" . \$From->\"username\" . \"'\") ] . \\\r\ + \n \" (ID \" . \$From->\"id\" . \") in update \" . \$UpdateID . \ + \"!\");\r\ + \n :if (\$Command ~ (\"^! *\" . [ \$EscapeForRegEx \$Identity ] . \ + \"\\\$\")) do={\r\ + \n \$LogPrint warning \$ScriptName \$MessageText;\r\ + \n \$SendTelegram2 ({ origin=\$ScriptName; chatid=(\$Chat->\"id\"\ + ); silent=false; \\\r\ + \n replyto=(\$Message->\"message_id\"); threadid=\$ThreadId; \\\ + \r\ + \n subject=([ \$SymbolForNotification \"speech-balloon\" ] . \"\ + Telegram Chat\"); \\\r\ + \n message=(\"You are not trusted.\") });\r\ + \n } else={\r\ + \n \$LogPrint info \$ScriptName \$MessageText;\r\ + \n }\r\ + \n }\r\ + \n } else={\r\ + \n \$LogPrint debug \$ScriptName (\"Already handled update \" . \$Upd\ + ateID . \".\");\r\ + \n }\r\ + \n }\r\ + \n :set TelegramChatOffset ([ :pick \$TelegramChatOffset 1 3 ], \\\r\ + \n [ \$IfThenElse (\$UpdateID >= \$TelegramChatOffset->2) (\$UpdateID +\ + \_1) (\$TelegramChatOffset->2) ]);\r\ + \n} do={\r\ + \n :global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err;\r\ + \n}\r\ + \n" +add comment="Script send Notifications in Telegram" dont-require-permissions=\ + no name=mod/AM-TG-Notifications owner=mod/AM-TG-Notifications policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: mod/AM-TG-Notifications\r\ + \n# Script comment: Script send Notifications in Telegram\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# requires device-mode, fetch, scheduler\r\ + \n:global FlushTelegramQueue;\r\ + \n:global GetTelegramChatId;\r\ + \n:global NotificationFunctions;\r\ + \n:global PurgeTelegramQueue;\r\ + \n:global SendTelegram;\r\ + \n:global SendTelegram2;\r\ + \n# flush telegram queue\r\ + \n:set FlushTelegramQueue do={ :onerror Err {\r\ + \n :global TelegramQueue;\r\ + \n :global TelegramMessageIDs;\r\ + \n :global CertificateAvailable;\r\ + \n :global IsFullyConnected;\r\ + \n :global LogPrint;\r\ + \n :if ([ \$IsFullyConnected ] = false) do={\r\ + \n \$LogPrint debug \$0 (\"System is not fully connected, not flushing.\ + \");\r\ + \n :return false;\r\ + \n }\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority - \ + G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\"\ + );\r\ + \n :return false;\r\ + \n }\r\ + \n :local AllDone true;\r\ + \n :local QueueLen [ :len \$TelegramQueue ];\r\ + \n :if ([ :len [ /system/scheduler/find where name=\"_FlushTelegramQueue\ + \" ] ] > 0 && \$QueueLen = 0) do={\r\ + \n \$LogPrint warning \$0 (\"Flushing Telegram messages from scheduler,\ + \_but queue is empty.\");\r\ + \n }\r\ + \n :foreach Id,Message in=\$TelegramQueue do={\r\ + \n :if ([ :typeof \$Message ] = \"array\" ) do={\r\ + \n :onerror Err {\r\ + \n :local Data ([ /tool/fetch check-certificate=yes-without-crl out\ + put=user http-method=post \\\r\ + \n (\"https://api.telegram.org/bot\" . (\$Message->\"tokenid\") .\ + \_\"/sendMessage\") \\\r\ + \n http-data=(\$Message->\"http-data\") as-value ]->\"data\");\r\ + \n :set (\$TelegramQueue->\$Id);\r\ + \n :set (\$TelegramMessageIDs->[ :tostr ([ :deserialize from=json v\ + alue=\$Data ]->\"result\"->\"message_id\") ]) 1;\r\ + \n } do={\r\ + \n \$LogPrint debug \$0 (\"Sending queued Telegram message failed: \ + \" . \$Err);\r\ + \n :set AllDone false;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :if (\$AllDone = true && \$QueueLen = [ :len \$TelegramQueue ]) do={\r\ + \n /system/scheduler/remove [ find where name=\"_FlushTelegramQueue\" ]\ + ;\r\ + \n :set TelegramQueue;\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n# get the chat id\r\ + \n:set GetTelegramChatId do={ :onerror Err {\r\ + \n :global TelegramTokenId;\r\ + \n :global CertificateAvailable;\r\ + \n :global LogPrint;\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority - \ + G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\"\ + );\r\ + \n :return false;\r\ + \n }\r\ + \n :local Data;\r\ + \n :onerror Err {\r\ + \n :set Data ([ /tool/fetch check-certificate=yes-without-crl output=us\ + er \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TelegramTokenId . \"/getUpd\ + ates\?offset=0\" . \\\r\ + \n \"&allowed_updates=%5B%22message%22%5D\") as-value ]->\"data\");\ + \r\ + \n } do={\r\ + \n \$LogPrint warning \$0 (\"Fetching data failed: \" . \$Err);\r\ + \n :return false;\r\ + \n }\r\ + \n :local JSON [ :deserialize from=json value=\$Data ];\r\ + \n :local Count [ :len (\$JSON->\"result\") ];\r\ + \n :if (\$Count = 0) do={\r\ + \n \$LogPrint info \$0 (\"No message received.\");\r\ + \n :return false;\r\ + \n }\r\ + \n :local Message (\$JSON->\"result\"->(\$Count - 1)->\"message\");\r\ + \n \$LogPrint info \$0 (\"The chat id is: \" . (\$Message->\"chat\"->\"id\ + \"));\r\ + \n :if ((\$Message->\"is_topic_message\") = true) do={\r\ + \n \$LogPrint info \$0 (\"The thread id is: \" . (\$Message->\"message_\ + thread_id\"));\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n# send notification via telegram - expects one array argument\r\ + \n:set (\$NotificationFunctions->\"telegram\") do={\r\ + \n :local Notification \$1;\r\ + \n :global Identity;\r\ + \n :global IdentityExtra;\r\ + \n :global TelegramChatId;\r\ + \n :global TelegramChatIdOverride;\r\ + \n :global TelegramMessageIDs;\r\ + \n :global TelegramQueue;\r\ + \n :global TelegramThreadId;\r\ + \n :global TelegramThreadIdOverride;\r\ + \n :global TelegramTokenId;\r\ + \n :global TelegramTokenIdOverride;\r\ + \n :global CertificateAvailable;\r\ + \n :global CharacterReplace;\r\ + \n :global EitherOr;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global ProtocolStrip;\r\ + \n :global SymbolForNotification;\r\ + \n :global UrlEncode;\r\ + \n :local EscapeMD do={\r\ + \n :local Text [ :tostr \$1 ];\r\ + \n :local Mode [ :tostr \$2 ];\r\ + \n :local Excl [ :tostr \$3 ];\r\ + \n :global CharacterReplace;\r\ + \n :global IfThenElse;\r\ + \n :local Chars {\r\ + \n \"body\"={ \"\\\\\"; \"`\" };\r\ + \n \"plain\"={ \"_\"; \"*\"; \"[\"; \"]\"; \"(\"; \")\"; \"~\"; \"`\"\ + ; \">\";\r\ + \n \"#\"; \"+\"; \"-\"; \"=\"; \"|\"; \"{\"; \"}\"; \".\"; \ + \"!\" };\r\ + \n }\r\ + \n :foreach Char in=(\$Chars->\$Mode) do={\r\ + \n :if ([ :typeof [ :find \$Excl \$Char ] ] = \"nil\") do={\r\ + \n :set Text [ \$CharacterReplace \$Text \$Char (\"\\\\\" . \$Char)\ + \_];\r\ + \n }\r\ + \n }\r\ + \n :if (\$Mode = \"body\") do={:return (\"```\\n\" . \$Text . \"\\n```\ + \")}\r\ + \n :return \$Text;\r\ + \n }\r\ + \n :local ChatId [ \$EitherOr (\$Notification->\"chatid\") \\\r\ + \n [ \$EitherOr (\$TelegramChatIdOverride->(\$Notification->\"origin\")\ + ) \$TelegramChatId ] ];\r\ + \n :local ThreadId [ \$EitherOr (\$Notification->\"threadid\") \\\r\ + \n [ \$EitherOr (\$TelegramThreadIdOverride->(\$Notification->\"origin\ + \")) \\\r\ + \n [ \$IfThenElse ([ :len (\$TelegramChatIdOverride->(\$Notification->\ + \"origin\")) ] = 0) \$TelegramThreadId ] ] ];\r\ + \n :local TokenId [ \$EitherOr (\$TelegramTokenIdOverride->(\$Notificatio\ + n->\"origin\")) \$TelegramTokenId ];\r\ + \n :if ([ :len \$TokenId ] = 0 || [ :len \$ChatId ] = 0) do={:return fals\ + e}\r\ + \n :if ([ :typeof \$TelegramMessageIDs ] = \"nothing\") do={:set Telegram\ + MessageIDs ({})}\r\ + \n :local Truncated false;\r\ + \n :local Text (\"*__\" . [ \$EscapeMD (\"[\" . \$IdentityExtra . \$Ident\ + ity . \"] \" . \\\r\ + \n (\$Notification->\"subject\")) \"plain\" ] . \"__*\\n\\n\");\r\ + \n :local LenSubject [ :len \$Text ];\r\ + \n :local LenMessage [ :len (\$Notification->\"message\") ];\r\ + \n :local LenLink ([ :len (\$Notification->\"link\") ] * 2);\r\ + \n :local LenSum (\$LenSubject + \$LenMessage + \$LenLink);\r\ + \n :if (\$LenSum > 3968) do={\r\ + \n :set Text (\$Text . [ \$EscapeMD ([ :pick (\$Notification->\"message\ + \") 0 (3840 - \$LenSubject - \$LenLink) ] . \"...\") \"body\" ]);\r\ + \n :set Truncated true;\r\ + \n } else={:set Text (\$Text . [ \$EscapeMD (\$Notification->\"message\")\ + \_\"body\" ])}\r\ + \n :if (\$LenLink > 0) do={\r\ + \n :set Text (\$Text . \"\\n\" . [ \$SymbolForNotification \"link\" ] .\ + \_\\\r\ + \n \"[\" . [ \$EscapeMD [ \$ProtocolStrip (\$Notification->\"link\") \ + ] \"plain\" ] . \"]\" . \\\r\ + \n \"(\" . [ \$EscapeMD (\$Notification->\"link\") \"plain\" ] . \")\ + \");\r\ + \n }\r\ + \n :if (\$Truncated = true) do={\r\ + \n :set Text (\$Text . \"\\n\" . [ \$SymbolForNotification \"scissors\"\ + \_] . \\\r\ + \n [ \$EscapeMD (\"The message was too long and has been truncated, c\ + ut off _\" . \\\r\ + \n ((\$LenSum - [ :len \$Text ]) * 100 / \$LenSum) . \"%_!\") \"plain\ + \" \"_\" ]);\r\ + \n }\r\ + \n :local HTTPData (\"chat_id=\" . \$ChatId . \"&disable_notification=\" \ + . (\$Notification->\"silent\") . \\\r\ + \n \"&reply_to_message_id=\" . (\$Notification->\"replyto\") . \"&mes\ + sage_thread_id=\" . \$ThreadId . \\\r\ + \n \"&disable_web_page_preview=true&parse_mode=MarkdownV2\");\r\ + \n :onerror Err {\r\ + \n :if ([ \$CertificateAvailable \"Go Daddy Root Certificate Authority \ + - G2\" \"fetch\" ] = false) do={\r\ + \n \$LogPrint warning \$0 (\"Downloading required certificate failed.\ + \");\r\ + \n :error false;\r\ + \n }\r\ + \n :local Data ([ /tool/fetch check-certificate=yes-without-crl output=\ + user http-method=post \\\r\ + \n (\"https://api.telegram.org/bot\" . \$TokenId . \"/sendMessage\") \ + \\\r\ + \n http-data=(\$HTTPData . \"&text=\" . [ \$UrlEncode \$Text ]) as-va\ + lue ]->\"data\");\r\ + \n :set (\$TelegramMessageIDs->[ :tostr ([ :deserialize from=json value\ + =\$Data ]->\"result\"->\"message_id\") ]) 1;\r\ + \n } do={\r\ + \n \$LogPrint info \$0 (\"Failed sending Telegram notification: \" . \$\ + Err . \" - Queuing...\");\r\ + \n :if ([ :typeof \$TelegramQueue ] = \"nothing\") do={:set TelegramQue\ + ue ({})}\r\ + \n :set Text (\$Text . \"\\n\" . [ \$SymbolForNotification \"alarm-cloc\ + k\" ] . \\\r\ + \n [ \$EscapeMD (\"This message was queued since _\" . [ /system/cloc\ + k/get date ] . \\\r\ + \n \" \" . [ /system/clock/get time ] . \"_ and may be obsolete.\") \ + \"plain\" \"_\" ]);\r\ + \n :set (\$TelegramQueue->[ :len \$TelegramQueue ]) { tokenid=\$TokenId\ + ;\r\ + \n http-data=(\$HTTPData . \"&text=\" . [ \$UrlEncode \$Text ]) };\r\ + \n :if ([ :len [ /system/scheduler/find where name=\"_FlushTelegramQueu\ + e\" ] ] = 0) do={\r\ + \n /system/scheduler/add name=\"_FlushTelegramQueue\" interval=1m sta\ + rt-time=startup \\\r\ + \n on-event=(\":global FlushTelegramQueue; \\\$FlushTelegramQueue;\ + \");\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n# purge the Telegram queue\r\ + \n:set PurgeTelegramQueue do={\r\ + \n :global TelegramQueue;\r\ + \n /system/scheduler/remove [ find where name=\"_FlushTelegramQueue\" ];\ + \r\ + \n :set TelegramQueue;\r\ + \n}\r\ + \n# send notification via telegram - expects at least two string arguments\ + \r\ + \n:set SendTelegram do={ :onerror Err {\r\ + \n :global SendTelegram2;\r\ + \n \$SendTelegram2 ({ origin=\$0; subject=\$1; message=\$2; link=\$3; sil\ + ent=\$4 });\r\ + \n} do={\r\ + \n :global ExitOnError; \$ExitOnError \$0 \$Err;\r\ + \n} }\r\ + \n# send notification via telegram - expects one array argument\r\ + \n:set SendTelegram2 do={\r\ + \n :local Notification \$1;\r\ + \n :global NotificationFunctions;\r\ + \n (\$NotificationFunctions->\"telegram\") (\"\\\$NotificationFunctions->\ + \\\"telegram\\\"\") \$Notification;\r\ + \n}\r\ + \n" +add dont-require-permissions=no name=testIfThenElseAndEitherOr owner=vados \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source=":local ExitOK false;\r\ + \n:local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local ExitError;\r\ + \n#:local IfThenElse;\r\ + \n#:local EitherOr;\r\ + \n\r\ + \n:local one 11;\r\ + \n:local two 8;\r\ + \n#:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n:local Test; # [ :totime \"22s\" ];\r\ + \n\r\ + \n:local IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] \ + = true) do={:return \$2}; :return \$3;}\r\ + \n:local EitherOr do={\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:if ((\$1 != 0) = true) do={:retur\ + n \$1} else={:return \$2};}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:if ((\$1 > 0s) = true) do={:retu\ + rn \$1} else={:return \$2};}\r\ + \n :if ([ :len [ :tostr \$1 ] ] > 0) do={:return \$1} else={:return \$2};\ + \r\ + \n}\r\ + \n\r\ + \n:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n\r\ + \n:set Test [ \$EitherOr \$Test \"\" ];\r\ + \n:log warning (\"\\\$ Test = \" . \$Test);\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 :local 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\r\ + \n#:log warning ([ \$IfThenElse (\$one != 0) \$one \$two ]);\r\ + \n\r\ + \n:set ExitOK true;\r\ + \n\$ExitError \$ExitOK \$ScriptName \"Err test custom\";" +add comment="Update and Backup send notification to EMail" \ + dont-require-permissions=no name=AM-Backup-UpdateEmail owner=\ + AM-Backup-UpdateEmail policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + !rsc by Vados\r\ + \n# RouterOS script: AM-Backup-UpdateEmail\r\ + \n# Script comment: Update and Backup send notification to EMail\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version>=6.43.7\r\ + \n# requires device-mode, fetch\r\ + \n#\r\ + \n# Updated: 15/04/2025\r\ + \n# Website: https://github.com/beeyev\r\ + \n# Notification e-mail (Make sure you have configured Email settings in T\ + ools -> Email)\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n:local IfThenElse do={:if ([ :tostr \$1 ] = \"true\" || [ :tobool \$1 ] \ + = true) do={:return \$2}; :return \$3;}\r\ + \n:local EitherOr do={\r\ + \n :if ([ :typeof \$1 ] = \"num\") do={:if ((\$1 != 0) = true) do={:retur\ + n \$1} else={:return \$2};}\r\ + \n :if ([ :typeof \$1 ] = \"time\") do={:if ((\$1 > 0s) = true) do={:retu\ + rn \$1} else={:return \$2};}\r\ + \n :if ([ :len [ :tostr \$1 ] ] > 0) do={:return \$1} else={:return \$2};\ + \r\ + \n}\r\ + \n:local ExitError do={\r\ + \n :local ExitOK [ :tostr \$1 ];\r\ + \n :local Name [ :tostr \$2 ];\r\ + \n :local Error [ :tostr \$3 ];\r\ + \n :if (\$ExitOK = \"false\") do={:log error (\$Name [ \$IfThenElse ([ :p\ + ick \$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:global LogPrint;\r\ + \n:global EditSchedulers;\r\ + \n:global DevInfoIncludeIP;\r\ + \n\r\ + \n:local SchedInterval \"7d\";\r\ + \n:local SchedStartTime \"03:41:27\";\r\ + \n:local SchedComment \"Every 7 Day Check For Update and Backup send notif\ + ication to EMail.\";\r\ + \n\r\ + \n# Function to add or edit schedulers for scripts, to ensure they are set\ + \_up correctly\r\ + \n# How to use:\r\ + \n# Call this function with the following parameters:\r\ + \n# 1. \$1 - Scheduler name (usually same as script name) [*]\r\ + \n# 2. \$2 - Interval (e.g. \"1d\" (default is \"1d\")) [**]\r\ + \n# 3. \$3 - Start Time (e.g. \"00:00:00\", default is current time) [**]\ + \r\ + \n# 4. \$4 - Comment (optional, default: \"Scheduler for script: \")\ + \_[**]\r\ + \n# 5. \$5 - On Event command (e.g. \"/system/script { run ; }\" (de\ + fault is \"/system/script { run \$SchedName; }\")) [**]\r\ + \n# 6. \$6 - Policy (e.g. \"ftp,reboot,read,write,policy,test,password,sni\ + ff,sensitive,romon\" (default is the same)) [**]\r\ + \n# 7. \$7 - Start Date (e.g. \"jan/01/1970\", default is current date) [*\ + *]\r\ + \n# Notes:\r\ + \n# * - Scheduler name is required, and is used to identify the scheduler\ + \_to create or edit. It is usually the same as the script name (\$ScriptNa\ + me).\r\ + \n# ** - If optional parameters are not provided, default values will be u\ + sed.\r\ + \n# This allows for quick setup with minimal parameters, while still \ + providing flexibility for customization.\r\ + \n# Example usage:\r\ + \n# :if ([ \$EditSchedulers \"my-script\" ] = false) do={:set ExitOK false\ + ; :error true;}\r\ + \n# :if ([ \$EditSchedulers \"my-script\" \"1d\" \"03:41:27\" \"My custom \ + scheduler comment\" false false \"jan/01/1970\" ] = false) do={:set ExitOK\ + \_false; :error true;}\r\ + \n\r\ + \n:set EditSchedulers do={\r\ + \n :local SchedName [ :tostr \$1 ];\r\ + \n :if ([ :len \$SchedName ] = 0) do={ :return false; }\r\ + \n :local Interval [ :tostr \$2 ];\r\ + \n :if ([ :len \$Interval ] = 0) do={ :set Interval \"1d\"; }\r\ + \n :local StartTime [ :tostr \$3 ];\r\ + \n :if ([ :len \$StartTime ] = 0) do={ :set StartTime [/system/clock/get \ + time]; }\r\ + \n :local Comment [ :tostr \$4 ];\r\ + \n :if ([ :len \$Comment ] = 0) do={ :set Comment \"Scheduler for script:\ + \_\$SchedName\"; }\r\ + \n :local OnEvent [ :tostr \$5 ];\r\ + \n :if ([ :len \$OnEvent ] = 0) do={ :set OnEvent \"/system/script { run \ + \$SchedName; }\"; }\r\ + \n :local Policy [ :tostr \$6 ];\r\ + \n :if ([ :len \$Policy ] = 0) do={ :set Policy \"ftp,reboot,read,write,p\ + olicy,test,password,sniff,sensitive,romon\"; }\r\ + \n :local StartDate [ :tostr \$7 ];\r\ + \n :if ([ :len \$StartDate ] = 0) do={ :set StartDate [/system/clock/get \ + date]; }\r\ + \n\r\ + \n :onerror Err {\r\ + \n # Check if scheduler exists, if not - create it\r\ + \n :if ([ :len [ /system/scheduler/find where name=\$SchedName ] ] = 0)\ + \_do={\r\ + \n :log warning (\$SchedName . \"System Scheduler for script: \" . \$\ + SchedName . \" is NOT SET! Fix It Now!\");\r\ + \n /system/scheduler/add comment=\$Comment interval=\$Interval name=\ + \$SchedName on-event=\$OnEvent policy=\$Policy start-date=\$StartDate star\ + t-time=\$StartTime;\r\ + \n }\r\ + \n # Check if scheduler parameters are correct, if not - fix them\r\ + \n :if ([ /system/scheduler/get \$SchedName comment ] != \$Comment) do=\ + {\r\ + \n /system/scheduler/set \$SchedName comment=\$Comment;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName interval ] != \$Interval) d\ + o={\r\ + \n /system/scheduler/set \$SchedName interval=\$Interval;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName on-event ] != \$OnEvent) do\ + ={\r\ + \n /system/scheduler/set \$SchedName on-event=\$OnEvent;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName policy ] != \$Policy) do={\ + \r\ + \n /system/scheduler/set \$SchedName policy=\$Policy;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName start-date ] != \$StartDate\ + ) do={\r\ + \n /system/scheduler/set \$SchedName start-date=\$StartDate;\r\ + \n }\r\ + \n :if ([ /system/scheduler/get \$SchedName start-time ] != \$StartTime\ + ) do={\r\ + \n /system/scheduler/set \$SchedName start-time=\$StartTime;\r\ + \n }\r\ + \n } do={:log error (\$SchedName . \"Failed to add/modify scheduler for '\ + \" . \$SchedName . \"' failed: \" . \$Err); :return false};\r\ + \n :return true;\r\ + \n}\r\ + \n\r\ + \n:if ([ \$EditSchedulers \$ScriptName \$SchedInterval \$SchedStartTime \$\ + SchedComment ] = false) do={\r\ + \n :log error (\$ScriptName . \"Failed to add/modify scheduler for \" . \ + \$ScriptName . \"!\");\r\ + \n :set ExitOK true;\r\ + \n :error true;\r\ + \n}\r\ + \n\r\ + \n# Local Function CheckOSUpdateMode\r\ + \n:local CheckOSUpdateMode;\r\ + \n:set CheckOSUpdateMode do={\r\ + \n :local NewMode [ :tostr \$1 ];\r\ + \n :if ([ :len \$NewMode ] = 0) do={\r\ + \n :log error (\$0 . \"/nFunction /\$CheckOSUpdateMode received empty v\ + alue!\");\r\ + \n :return false;\r\ + \n :error true;\r\ + \n }\r\ + \n\r\ + \n :global BackupAndUpdateMode;\r\ + \n :global OldMode [ :tostr \$BackupAndUpdateMode ];\r\ + \n :if (\$NewMode != \$BackupAndUpdateMode && \$NewMode = \"updateOnce\")\ + \_do={\r\ + \n :set BackupAndUpdateMode [ :tostr \$NewMode ];\r\ + \n :log info (\$0 . \"/nOk. /\$BackupAndUpdateMode set to: '\" . \$NewM\ + ode . \"'.\\nYou're a good boy! ))\\nI'm launching the update in 5 seconds\ + .\");\r\ + \n :delay 5;\r\ + \n /system/script { run \$ScriptName; };\r\ + \n } else={\r\ + \n :log warning (\$0 . \"/nFunction /\$CheckOSUpdateMode received value: \ + '\" . \$NewMode . \"', but is may be only \\\"updateOnce\\\"!\");\r\ + \n :return false;\r\ + \n }\r\ + \n :return true;\r\ + \n :error false;\r\ + \n}\r\ + \n\r\ + \n# :if ([ :len [ /system/scheduler/find where name=\"running-from-backup\ + -partition\" ] ] > 0) do={\r\ + \n# \$LogPrint warning \$ScriptName (\"Running from backup partition, r\ + efusing to act.\");\r\ + \n# :set ExitOK true;\r\ + \n# :error false;\r\ + \n# }\r\ + \n\r\ + \n:global EmailGeneralTo;\r\ + \n:global BackupAndUpdateMode;\r\ + \n:global forceBackup;\r\ + \n:global BackupPassword;\r\ + \n:global BackupSens;\r\ + \n:global updateChannel;\r\ + \n\r\ + \n:global DevInfoIncludeIP;\r\ + \n\r\ + \n# Installs patch updates only (BackupAndUpdateMode = \"osupdate\").\r\ + \n# Works for `stable` and `long-term` channels.\r\ + \n# Updates only if MAJOR.MINOR match (e.g. 6.43.2 > 6.43.6 allowed, 6.44.\ + 1 skipped).\r\ + \n# Sends info if a newer (non-patch) version is found.\r\ + \n:local installOnlyPatchUpdates false;\r\ + \n:local scriptVersion \"26.04.30\";\r\ + \n:local copyrightUrl \"https://www.github.com/vados-dev/\";\r\ + \n#Script messages prefix\r\ + \n:local SMP \"BkpAndUpdate:\";\r\ + \n\r\ + \n:local exitErrorMessage \"\$SMP script stopped due to an error. Please c\ + heck logs for more details.\";\r\ + \n:log info \"\\n\\n\$SMP Script \\\"Mikrotik RouterOS automatic backup & \ + update\\\" v.\$scriptVersion started.\";\r\ + \n:log info \"\$SMP Script Mode: `\$BackupAndUpdateMode`, Update channel: \ + `\$updateChannel`, Force backup: `\$forceBackup`, Install only patch updat\ + es: `\$installOnlyPatchUpdates`\";\r\ + \n\r\ + \n## vv FUNCTIONS vv ##\r\ + \n:global WaitCheckUpdates; \$WaitCheckUpdates;\r\ + \n:global MiniDateTimeStamp;\r\ + \n:local MDTSFix [\$MiniDateTimeStamp];\r\ + \n:global Identity;\r\ + \n:global IdentityShort;\r\ + \n:global devBoardName;\r\ + \n:global runningVersion;\r\ + \n:global runningChannel;\r\ + \n:global devModel;\r\ + \n:global devRbSerialNumber;\r\ + \n:global ROsVerAvail;\r\ + \n:global PkgUpdStatus;\r\ + \n\r\ + \n# Checks if two RouterOS version strings differ only by the patch versio\ + n\r\ + \n# :put [\$FuncIsPatchUpdateOnly \"6.2.1\" \"6.2.4\"] # Output: true\r\ + \n# :put [\$FuncIsPatchUpdateOnly \"6.2.1\" \"6.3.1\"] # Output: false\r\ + \n:local FuncIsPatchUpdateOnly do={\r\ + \n :local ver1 \$1;\r\ + \n :local ver2 \$2;\r\ + \n # Extract the major and minor components from a version\r\ + \n :local extractMajorMinor do={\r\ + \n :local ver \$1;\r\ + \n :local dot1 [:find \$ver \".\"];\r\ + \n :if (\$dot1 = -1) do={:return \$ver}\r\ + \n :local major [:pick \$ver 0 \$dot1];\r\ + \n :local rest [:pick \$ver (\$dot1 + 1) [:len \$ver]];\r\ + \n :local dot2 [:find \$rest \".\"];\r\ + \n :local minor \$rest;\r\ + \n :if (\$dot2 >= 0) do={:set minor [:pick \$rest 0 \$dot2]}\r\ + \n :return (\$major . \".\" . \$minor);\r\ + \n }\r\ + \n\r\ + \n# Compare the major and minor components of both version strings\r\ + \n:if ([\$extractMajorMinor \$ver1] = [\$extractMajorMinor \$ver2]) do={:r\ + eturn true}\r\ + \n :return false;\r\ + \n}\r\ + \n# Creates backups and returns array of names\r\ + \n# Possible arguments:\r\ + \n# \$1 - file name, without extension\r\ + \n# \$2 - password (optional)\r\ + \n# \$3 - sensitive data in config (optional, default: false)\r\ + \n# Example:\r\ + \n#:put [\$FuncCreateBackups \$backupName]\r\ + \n:local FuncCreateBackups do={\r\ + \n :local backupName [ :tostr \$1 ];\r\ + \n :local BackPass \$2;\r\ + \n :local BackSens \$3;\r\ + \n\r\ + \n #Script messages prefix\r\ + \n :local SMP \"BkpAndUpdate:\";\r\ + \n :local exitErrorMessage \"\$SMP script stopped due to an error. Please\ + \_check logs for more details.\";\r\ + \n :log info (\"\$SMP global function `FuncCreateBackups` started, input:\ + \_`\$backupName`\");\r\ + \n\r\ + \n # validate required parameter: backupName\r\ + \n :if ([:typeof \$backupName] != \"str\" or [:len \$backupName] = 0) do=\ + {\r\ + \n :log error \"\$SMP parameter 'backupName' is required and must be a \ + non-empty string\";\r\ + \n# :log warning \"\$SMP parameter '\\\$backupName' is required and mus\ + t be a non-empty string.\\nI set '\\\$backupName' to 'default-backup'\";\r\ + \n# :set \$backupName \"default-backup\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n\r\ + \n :local backupFileSys \"\$backupName.backup\";\r\ + \n :local backupFileConfig \"\$backupName.rsc\";\r\ + \n :local backupNames {\$backupFileSys;\$backupFileConfig};\r\ + \n\r\ + \n ## Perform system backup\r\ + \n :if ([:len \$BackPass] = 0) do={\r\ + \n :log info (\"\$SMP starting backup without password, backup name: `\ + \$backupName`\");\r\ + \n /system backup save dont-encrypt=yes name=\$backupName;\r\ + \n } else={\r\ + \n :log info (\"\$SMP starting backup with password, backup name: `\$ba\ + ckupName`\");\r\ + \n /system backup save password=\$BackPass name=\$backupName;\r\ + \n }\r\ + \n :log info (\"\$SMP system backup created: `\$backupFileSys`\");\r\ + \n ## Export config file\r\ + \n :if (\$BackSens = true) do={\r\ + \n :log info (\"\$SMP starting export config with sensitive data, backu\ + p name: `\$backupName`\");\r\ + \n # Since RouterOS v7 it needs to be explicitly set that we want to ex\ + port sensitive data\r\ + \n :if ([:pick [/system resource get version] 0 1] < 7) do={\r\ + \n :execute \"/export compact terse file=\$backupName\";\r\ + \n } else={\r\ + \n :execute \"/export compact show-sensitive terse file=\$backupName\ + \";\r\ + \n }\r\ + \n } else={\r\ + \n :log info (\"\$SMP starting export config without sensitive data, ba\ + ckup name: `\$backupName`\");\r\ + \n /export compact hide-sensitive terse file=\$backupName;\r\ + \n }\r\ + \n :log info (\"\$SMP Config export complete: `\$backupFileConfig`\");\r\ + \n :log info (\"\$SMP Waiting a little to ensure backup files are written\ + \");\r\ + \n :delay 20;\r\ + \n :if ([:len [/file find name=\$backupFileSys]] > 0) do={\r\ + \n :log info (\"\$SMP system backup file successfully saved to the file\ + \_system: `\$backupFileSys`\");\r\ + \n } else={\r\ + \n :log error (\"\$SMP system backup was not created, file does not exi\ + st: `\$backupFileSys`\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :if ([:len [/file find name=\$backupFileConfig]] > 0) do={\r\ + \n :log info (\"\$SMP config backup file successfully saved to the file\ + \_system: `\$backupFileConfig`\");\r\ + \n } else={\r\ + \n :log error (\"\$SMP config backup was not created, file does not exi\ + st: `\$backupFileConfig`\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :log info (\"\$SMP global function `FuncCreateBackups` finished. Creat\ + ed backups, system: `\$backupFileSys`, config: `\$backupFileConfig`\")\r\ + \n :return \$backupNames;\r\ + \n}\r\ + \n# Sends an email\r\ + \n# Parameters:\r\ + \n# \$1 - to (email address)\r\ + \n# \$2 - subject\r\ + \n# \$3 - body\r\ + \n# \$4 - file attachments (optional; pass \"\" if not needed)\r\ + \n#\r\ + \n# Example:\r\ + \n# \$FuncSendEmailSafe \"admin@domain.com\" \"Backup Done\" \"Backup comp\ + lete.\" \"backup1.backup\"\r\ + \n:local FuncSendEmailSafe do={\r\ + \n :global EmailGeneralTo;\r\ + \n :local emailSubject \$2;\r\ + \n :local emailBody \$3;\r\ + \n :local emailAttachments \$4;\r\ + \n :local SMP \"Bkp&Upd:\";\r\ + \n :local exitErrorMessage \"\$SMP script stopped due to an error. Please\ + \_check logs for more details.\";\r\ + \n :log info \"\$SMP Attempting to send email to `\$EmailGeneralTo`\";\r\ + \n # SAFETY: wait for any previously queued email to finish\r\ + \n :local waitTimeoutPre 60;\r\ + \n :local waitCounterPre 0;\r\ + \n :while (([/tool e-mail get last-status] = \"resolving-dns\" or [/tool \ + e-mail get last-status] = \"in-progress\")) do={\r\ + \n :if (\$waitCounterPre >= \$waitTimeoutPre) do={\r\ + \n :log error \"\$SMP Email send aborted: previous send did not compl\ + ete after \$waitTimeoutPre seconds\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n :log info \"\$SMP Waiting for previous email to finish (status: \$[/\ + tool e-mail get last-status])...\";\r\ + \n :delay 1; \r\ + \n :set waitCounterPre (\$waitCounterPre + 1);\r\ + \n }\r\ + \n # Send the email\r\ + \n :do {\r\ + \n /tool e-mail send to=\$EmailGeneralTo subject=\$emailSubject body=\$\ + emailBody file=\$emailAttachments;\r\ + \n } on-error={\r\ + \n :log error \"\$SMP Email send command failed to execute. Check logs \ + and verify email settings.\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n # Wait for send status to change from \"in-progress\" / \"resolving-dn\ + s\"\r\ + \n :local waitTimeout 60;\r\ + \n :local waitCounter 0;\r\ + \n :local emailStatus \"\";\r\ + \n :log info \"\$SMP Waiting for email to be sent, timeout in `\$waitTime\ + out` seconds...\";\r\ + \n :while (\$waitCounter < \$waitTimeout) do={\r\ + \n :set emailStatus [/tool e-mail get last-status];\r\ + \n :if (\$emailStatus != \"in-progress\" and \$emailStatus != \"resolvi\ + ng-dns\") do={\r\ + \n :log info \"\$SMP Email send status received: \$emailStatus\";\r\ + \n # exit loop\r\ + \n :set waitCounter \$waitTimeout;\r\ + \n } else={:delay 1; :set waitCounter (\$waitCounter + 1)}\r\ + \n }\r\ + \n # Final decision based on last status\r\ + \n :if (\$emailStatus = \"succeeded\") do={\r\ + \n :log info \"\$SMP Email successfully sent to `\$EmailGeneralTo`\";\ + \r\ + \n } else={\r\ + \n :log error \"\$SMP Email failed to send. Status: `\$emailStatus`. Ch\ + eck logs for more details and verify email settings.\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n}\r\ + \n# Global variable to track current update step\r\ + \n# They need to be initialized here first to be available in the script\r\ + \n:global buGlobalVarTargetOsVersion;\r\ + \n:global buGlobalVarScriptStep;\r\ + \n:local scriptStep \$buGlobalVarScriptStep;\r\ + \n:do {\r\ + \n /system/script/environment remove buGlobalVarScriptStep;\r\ + \n} on-error={}\r\ + \n:if ([:len \$scriptStep] = 0) do={\r\ + \n :set scriptStep 1;\r\ + \n}\r\ + \n## ^^ FUNCTIONS ^^ ##\r\ + \n#\r\ + \n# Initial validation\r\ + \n## Check email settings\r\ + \n:if ([:len \$EmailGeneralTo] < 3) do={\r\ + \n :log error (\"\$SMP Parameter `\\\$EmailGeneralTo` is not set, or cont\ + ains invalid value. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Values will be defined later in the script\r\ + \n:local emailServer \"\";\r\ + \n:local emailFromAddress [/tool e-mail get from];\r\ + \n:log info \"\$SMP Validating email settings...\";\r\ + \n:do {\r\ + \n :set emailServer [/tool e-mail get server];\r\ + \n} on-error={\r\ + \n # This is a workaround for the RouterOS v7.12 and older versions\r\ + \n :set emailServer [/tool e-mail get address];\r\ + \n}\r\ + \n:if (\$emailServer = \"0.0.0.0\") do={\r\ + \n :log error (\"\$SMP Email server address is not correct: `\$emailServe\ + r`, check `Tools -> Email`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n:if ([:len \$emailFromAddress] < 3) do={\r\ + \n :log error (\"\$SMP Email configuration FROM address is not correct: `\ + \$emailFromAddress`, check `Tools -> Email`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Script mode validation\r\ + \n:if (\$BackupAndUpdateMode != \"backup\" and \$BackupAndUpdateMode != \"\ + osupdate\" and \$BackupAndUpdateMode != \"updateOnce\" and \$BackupAndUpda\ + teMode != \"osnotify\") do={\r\ + \n :log error (\"\$SMP Script parameter `\\\$BackupAndUpdateMode` is not \ + set, or contains invalid value: `\$BackupAndUpdateMode`. Script stopped.\"\ + );\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Update channel validation\r\ + \n:if (\$updateChannel != \"stable\" and \$updateChannel != \"long-term\" \ + and \$updateChannel != \"testing\" and \$updateChannel != \"development\")\ + \_do={\r\ + \n :log error (\"\$SMP Script parameter `\\\$updateChannel` is not set, o\ + r contains invalid value: `\$updateChannel`. Script stopped.\");\r\ + \n :error \$exitErrorMessage;\r\ + \n}\r\ + \n# Verify if script is set to install patch updates and if the update cha\ + nnel is valid\r\ + \n:if ((\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \"\ + updateOnce\") and \$installOnlyPatchUpdates = true) do={\r\ + \n :if (\$updateChannel != \"stable\" and \$updateChannel != \"long-term\ + \") do={\r\ + \n :log error (\"\$SMP Patch-only updates enabled, but update channel `\ + \$updateChannel` is invalid. Only `stable` and `long-term` are supported. \ + Script stopped\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n \r\ + \n :if (\$runningChannel != \"stable\" and \$runningChannel != \"long-ter\ + m\") do={\r\ + \n :log error (\"\$SMP Script is set to install only patch updates, but\ + \_the installed RouterOS version is not from `stable` or `long-term` chann\ + el: `\$runningChannel`. Script stopped\");\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n}\r\ + \n#\r\ + \n\r\ + \n:local rawTime [/system clock get time];\r\ + \n:local rawDate [/system clock get date];\r\ + \n\r\ + \n:local deviceOsVerAndChannelRunning [/system/resource/get version];\r\ + \n\r\ + \n:local backupNameTemplate (\"backup_v\" . \$runningVersion . \"_\" .\ + \_\$runningChannel . \"_\" . \$MDTSFix);\r\ + \n:local backupNameBeforeUpdate (\$backupNameTemplate . \"_before_update\"\ + );\r\ + \n:local backupNameAfterUpdate (\$backupNameTemplate . \"_after_update\")\ + ;\r\ + \n\r\ + \n## Email body template\r\ + \n:local mailSubjectPrefix \"\$SMP Device - `\$IdentityShort`\";\r\ + \n:local mailBodyCopyright \"Mikrotik RouterOS automatic backup & update \ + (ver. \$scriptVersion) \\n\$copyrightUrl\";\r\ + \n:local changelogUrl \"Check RouterOS changelog: https://mikrotik.com\ + /download/changelogs/\";\r\ + \n:local mailBodyDeviceInfo \"\";\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"Device information:\")\ + ;\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\n-------------------\ + --\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nName: \$Identity\")\ + ;\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nModel: \$devModel\"\ + );\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nBoard: \$devBoardNa\ + me\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nSerial number: \$de\ + vRbSerialNumber\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nRouterOS version: v\ + \$deviceOsVerAndChannelRunning\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nBuild time: \$[/sys\ + tem/resource/get build-time]\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nRouterboard FW Avai\ + lable: \$ROsVerAvail\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nDevice date-time: \ + \$rawDate \$rawTime (\$[/system/clock/get time-zone-name ])\");\r\ + \n:set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nUptime: \$[/system/\ + resource/get uptime]\");\r\ + \n## IP address detection\r\ + \n:if ([ \$DevInfoIncludeIP ] = true) do={\r\ + \n :global GetPubIp;\r\ + \n :local PublicIpAddress [ \$GetPubIp ];\r\ + \n :set mailBodyDeviceInfo (\$mailBodyDeviceInfo . \"\\nPublic IP address\ + : \" . \$PublicIpAddress . \".\");\r\ + \n :log info \"\$SMP Public IP address detected: \$PublicIpAddress\";\r\ + \n} \r\ + \n\r\ + \n:local mailAttachments [:toarray \"\"];\r\ + \n:if (\$scriptStep = 1 or \$scriptStep = 3) do={\r\ + \n :if (\$scriptStep = 3) do={\r\ + \n :log info (\"\$SMP Waiting for one minute before continuing to the f\ + inal step.\");\r\ + \n :delay 1m;\r\ + \n }\r\ + \n}\r\ + \n\r\ + \n## STEP 1: Create backups, check for new RouterOS, and send email\r\ + \n## Steps 2\C3\A23 run only if auto-update is enabled and a new version i\ + s available\r\ + \n:if (\$scriptStep = 1) do={\r\ + \n :global BackupPassword;\r\ + \n :global BackupSens;\r\ + \n :local isNewOsUpdateAvailable false;\r\ + \n :local isLatestOsAlreadyInstalled true;\r\ + \n :local isOsNeedsToBeUpdated false;\r\ + \n :local isUpdateCheckSucceeded false;\r\ + \n :local isEmailNeedsToBeSent false;\r\ + \n :local mailSubjectPartAction \"\";\r\ + \n :local mailPtBodyAction \"\";\r\ + \n :local mailPtSubjectBackup \"\";\r\ + \n :local mailPtBodyBackup \"\";\r\ + \n # Checking for new version\r\ + \n :if (\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \ + \"osnotify\" or \$BackupAndUpdateMode = \"updateOnce\") do={\r\ + \n :log info (\"\$SMP Setting update channel to `\$updateChannel`\");\r\ + \n /system/package/update/set channel=\$updateChannel;\r\ + \n :log info (\"\$SMP Checking for new RouterOS version. Current instal\ + led version is: `\$runningVersion`\");\r\ + \n \$LogPrint debug \$ScriptName (\"Checking for updates...\");\r\ + \n \r\ + \n# /system/package/update/check-for-updates without-paging as-value;\ + \r\ + \n# /system/package/update check-for-updates;\r\ + \n :delay 5s;\r\ + \n :set PkgUpdStatus [ /system/package/update/get status ];\r\ + \n :if (\$PkgUpdStatus = \"New version is available\") do={\r\ + \n :set ROsVerAvail [/system/package/update/get latest-version];\r\ + \n }\r\ + \n\r\ + \n :if (\$PkgUpdStatus = \"New version is available\") do={\r\ + \n :log info (\"\$SMP New RouterOS version is available: `\$ROsVerAva\ + il`\");\r\ + \n :set isNewOsUpdateAvailable true;\r\ + \n :set isLatestOsAlreadyInstalled false;\r\ + \n :set isUpdateCheckSucceeded true;\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :set mailSubjectPartAction \"New RouterOS available\";\r\ + \n :set mailPtBodyAction \"New RouterOS version is available, curren\ + t version: v\$runningVersion, new version: v\$ROsVerAvail. \\n\$changelogU\ + rl\";\r\ + \n } else={\r\ + \n :if (\$PkgUpdStatus = \"System is already up to date\") do={\r\ + \n :log info (\"\$SMP No new RouterOS version is available, the lat\ + est version is already installed: `v\$runningVersion`\");\r\ + \n :set isUpdateCheckSucceeded true;\r\ + \n :set mailSubjectPartAction \"No os update available\";\r\ + \n :set mailPtBodyAction \"No new RouterOS version is available, t\ + he latest version is already installed: `v\$runningVersion`\";\r\ + \n } else={\r\ + \n :log error (\"\$SMP Failed to check for new RouterOS version. Pa\ + ckage check status: `\$PkgUpdStatus`\");\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :set mailSubjectPartAction \"Error unable to check new os versio\ + n\";\r\ + \n :set mailPtBodyAction \"An error occurred while checking for a \ + new RouterOS version.\\nStatus returned: `\$PkgUpdStatus`\\n\\nPlease revi\ + ew the logs on the device for more details and verify internet connectivit\ + y.\";\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n # Checking if the script needs to install new os version\r\ + \n :if ((\$BackupAndUpdateMode = \"osupdate\" or \$BackupAndUpdateMode = \ + \"updateOnce\") and \$isNewOsUpdateAvailable = true) do={\r\ + \n :if (\$installOnlyPatchUpdates = true) do={\r\ + \n :if ([\$FuncIsPatchUpdateOnly \$runningVersion \$ROsVerAvail] = tr\ + ue) do={\r\ + \n :log info \"\$SMP New RouterOS version is available, and it is a\ + \_patch update. Current version: v\$runningVersion, new version: v\$ROsVer\ + Avail\";\r\ + \n :set isOsNeedsToBeUpdated true;\r\ + \n } else={\r\ + \n :log info \"\$SMP The script will not install this update, becau\ + se it is not a patch update. Current version: v\$runningVersion, new versi\ + on: v\$ROsVerAvail\";\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nThis update wil\ + l not be installed, because the script is set to install only patch update\ + s.\");\r\ + \n }\r\ + \n } else={\r\ + \n :set isOsNeedsToBeUpdated true;\r\ + \n }\r\ + \n }\r\ + \n # Checking If the script needs to create a backup\r\ + \n :if (\$forceBackup = true or \$BackupAndUpdateMode = \"backup\" or \$i\ + sOsNeedsToBeUpdated = true) do={\r\ + \n :log info (\"\$SMP Starting backup process.\");\r\ + \n :set isEmailNeedsToBeSent true;\r\ + \n :local backupName \$backupNameTemplate;\r\ + \n # This means it's the first step where we create a backup before the\ + \_update process\r\ + \n :if (\$isOsNeedsToBeUpdated = true) do={\r\ + \n :set backupName \$backupNameBeforeUpdate;\r\ + \n #Email body if the purpose of the script is to update the device\r\ + \n :set mailSubjectPartAction \"Update preparation\";\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nThe update proces\ + s for device '\$Identity' is scheduled to upgrade RouterOS from version v.\ + \$runningVersion to version v.\$ROsVerAvail (Update channel: \$updateChann\ + el)\");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nPlease note: The \ + update will proceed only after a successful backup.\");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nA final report wi\ + th detailed information will be sent once the update process is completed.\ + \");\r\ + \n :set mailPtBodyAction (\$mailPtBodyAction . \"\\nIf you do not rec\ + eive a second email within the next 10 minutes, there may be an issue. Ple\ + ase check your device logs for further information.\");\r\ + \n }\r\ + \n :do {\r\ + \n :set mailAttachments [\$FuncCreateBackups \$backupName \$BackupPas\ + sword \$BackupSens];\r\ + \n :set mailPtSubjectBackup \"Backup created\";\r\ + \n :set mailPtBodyBackup \"System backups have been successfully crea\ + ted and attached to this email.\";\r\ + \n } on-error={\r\ + \n :set isOsNeedsToBeUpdated false;\r\ + \n :set mailPtSubjectBackup \"Backup failed\";\r\ + \n :set mailPtBodyBackup \"The script failed to create backups. Pleas\ + e check device logs for more details.\";\r\ + \n :log warning \"\$SMP Backup creation failed. Update process will b\ + e canceled if automatic update is enabled\";\r\ + \n }\r\ + \n }\r\ + \n :if (\$isEmailNeedsToBeSent = true) do={\r\ + \n :log info \"\$SMP Preparing to send email...\";\r\ + \n :local mailStep1Subject \$mailSubjectPrefix;\r\ + \n :local mailStep1Body \"\";\r\ + \n # subject\r\ + \n :if (\$mailSubjectPartAction != \"\") do={:set mailStep1Subject (\$\ + mailStep1Subject . \" - \" . \$mailSubjectPartAction)}\r\ + \n :if (\$mailPtSubjectBackup != \"\") do={:set mailStep1Subject (\$ma\ + ilStep1Subject . \" - \" . \$mailPtSubjectBackup)}\r\ + \n # body\r\ + \n :if (\$mailPtBodyAction != \"\") do={:set mailStep1Body (\$mailStep1\ + Body . \$mailPtBodyAction . \"\\n\\n\")}\r\ + \n :if (\$mailPtBodyBackup != \"\") do={:set mailStep1Body (\$mailStep1\ + Body . \$mailPtBodyBackup . \"\\n\\n\")}\r\ + \n :set mailStep1Body (\$mailStep1Body . \$mailBodyDeviceInfo . \"\\n__\ + ________\\n\" . \$mailBodyCopyright);\r\ + \n :set mailStep1Body (\$mailStep1Body . \"\\n[*** TEST START ***]\\n\\\ + \$DeviceInfo: \" . [ \$DeviceInfo ] . \"\\n[*** TEST END ***]\\n\");\r\ + \n # Send email with backups\r\ + \n :do {\$FuncSendEmailSafe \$EmailGeneralTo \$mailStep1Subject \$mailS\ + tep1Body \$mailAttachments} on-error={\r\ + \n :set isOsNeedsToBeUpdated false;\r\ + \n :log error \"\$SMP The script will not proceed with the update pro\ + cess, because the email was not sent.\";\r\ + \n }\r\ + \n }\r\ + \n :if ([:len \$mailAttachments] > 0) do={\r\ + \n :log info \"\$SMP Cleaning up backup files from the file system...\"\ + ;\r\ + \n /file remove \$mailAttachments;\r\ + \n :delay 2s;\r\ + \n }\r\ + \n :if (\$isOsNeedsToBeUpdated = true) do={\r\ + \n :global OldMode;\r\ + \n :log info \"\$SMP everything is ready to install new RouterOS, going\ + \_to start the update process and reboot the device.\";\r\ + \n :do {\r\ + \n :local nextStep 2;\r\ + \n :if (\$isCloudHostedRouter = true) do={\r\ + \n :log info \"\$SMP The device is a cloud hosted router, the secon\ + d step updating the Routerboard firmware will be skipped.\";\r\ + \n :set nextStep 3;\r\ + \n }\r\ + \n :local scheduledCommand (\":delay 5s; /system/scheduler remove BKP\ + UPD-NEXT-BOOT-TASK; \\\r\ + \n :global buGlobalVarScriptStep \$nextStep; :global buGlobalVarTarg\ + etOsVersion \\\"\$ROsVerAvail\\\"; \\\r\ + \n :delay 10s; /system/script { run \$ScriptName; }\");\r\ + \n /system/scheduler add name=BKPUPD-NEXT-BOOT-TASK on-event=\$schedu\ + ledCommand start-time=startup interval=0;\r\ + \n /system/package/update install;\r\ + \n } on-error={\r\ + \n # Failed to install new os version, remove the task and variables\ + \r\ + \n :do {\r\ + \n /system/scheduler remove BKPUPD-NEXT-BOOT-TASK;\r\ + \n :set BackupAndUpdateMode \$OldMode;\r\ + \n :delay 2;\r\ + \n :do {\r\ + \n :global buGlobalVarTargetOsVersion (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \"ERROR Remove\ + \_global variable \\\$buGlobalVarTargetOsVersion failed!\");\r\ + \n }\r\ + \n# :if ([ :len \$OldMode ] > 0) do={\r\ + \n# :do {\r\ + \n# :global OldMode (a);\r\ + \n# } on-error={\r\ + \n# :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Re\ + move global variable \\\$OldMode failed!\");\r\ + \n# }\r\ + \n# }\r\ + \n } on-error={\r\ + \n :log error \"\$SMP Failed to install new RouterOS version. Pleas\ + e check device logs for more details. \\\r\ + \n \\nAnd Failed to remove task and variables! Check it!\";\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Remove \ + task and global variables!\");\r\ + \n }\r\ + \n :log error \"\$SMP Failed to install new RouterOS version. Please \ + check device logs for more details.\";\r\ + \n :local mailUpdateErrorSubject (\$mailSubjectPrefix . \" - Update f\ + ailed\");\r\ + \n :local mailUpdateErrorBody \"The script was unable to install new \ + RouterOS version. Please check device logs for more details.\";\r\ + \n # Send email with error\r\ + \n \$FuncSendEmailSafe \$EmailGeneralTo \$mailUpdateErrorSubject \$ma\ + ilUpdateErrorBody \"\";\r\ + \n :error \$exitErrorMessage;\r\ + \n }\r\ + \n }\r\ + \n}\r\ + \n## STEP 2: (Post-reboot) Upgrade RouterBOARD firmware\r\ + \n## Runs only if auto-update is enabled and a new RouterOS version was fo\ + und\r\ + \n:if (\$scriptStep = 2) do={\r\ + \n :log info \"\$SMP The script is in the second step, updating Routerboa\ + rd firmware.\";\r\ + \n :log info \"\$SMP Upgrading routerboard firmware from v.\$deviceRbCurr\ + entFw to v.\$deviceRbUpgradeFw\";\r\ + \n /system routerboard upgrade;\r\ + \n :delay 2;\r\ + \n :log info \"\$SMP routerboard upgrade process was completed, going to \ + reboot in a moment!\";\r\ + \n ## Set task to send final report on the next boot\r\ + \n /system scheduler add name=BKPUPD-NEXT-BOOT-TASK on-event=\":delay 2; \ + :global buGlobalVarScriptStep 3; \\\r\ + \n :global buGlobalVarTargetOsVersion \\\"\$buGlobalVarTargetOsVersion\\\ + \"; :delay 10s; /system/script { run \$ScriptName; }; \\ \r\ + \n :delay 5s; /system/scheduler remove BKPUPD-NEXT-BOOT-TASK;\" start-ti\ + me=startup interval=0;\r\ + \n :delay 2;\r\ + \n /system reboot;\r\ + \n}\r\ + \n\r\ + \n## STEP 3: Final report (after second reboot, with delay).\r\ + \n## Runs only if auto-update is enabled and a new RouterOS version was fo\ + und.\r\ + \n:if (\$scriptStep = 3) do={\r\ + \n :log info (\"\$SMP The script is in the third step, sending final repo\ + rt.\");\r\ + \n :local targetOsVersion \$buGlobalVarTargetOsVersion;\r\ + \n :do {\r\ + \n# /system/script/environment remove [find name=\"buGlobalVarTargetOsV\ + ersion\"];\r\ + \n :global buGlobalVarTargetOsVersion (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR Remove glob\ + al variable \\\$buGlobalVarTargetOsVersion failed!\");\r\ + \n }\r\ + \n\r\ + \n :if ([ :len \$OldMode ] != 0) do={\r\ + \n :do {\r\ + \n# /system/script/environment remove [find name=\"OldMode\"];\r\ + \n :global OldMode (a);\r\ + \n } on-error={\r\ + \n :set \$mailSubjectPrefix (\$mailSubjectPrefix . \" ERROR! Remove\ + \_global variable \\\$OldMode failed!\");\r\ + \n }\r\ + \n }\r\ + \n :if ([:len \$targetOsVersion] = 0) do={\r\ + \n :log warning \"\$SMP Something is wrong, the script was unable to ge\ + t the target updated OS version from the global variable.\";\r\ + \n }\r\ + \n :local mailStep3Subject \$mailSubjectPrefix;\r\ + \n :local mailStep3Body \"\";\r\ + \n :if (\$targetOsVersion = \$runningVersion) do={\r\ + \n :log info \"\$SMP Successfully verified new RouterOS version: target\ + : `\$targetOsVersion`, current: `\$runningVersion`\";\r\ + \n :set mailStep3Subject (\$mailStep3Subject . \" - Update completed - \ + Backup created\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"RouterOS and routerboard upg\ + rade process was completed\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"\\nNew RouterOS version: v.\ + \$targetOsVersion, routerboard firmware: v.\$deviceRbCurrentFw\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"\\n\$changelogUrl\\nBackups \ + of the upgraded system are in the attachment of this email.\\n\\n\$mailBod\ + yDeviceInfo\\n\\n\$mailBodyCopyright\");\r\ + \n :set mailAttachments [\$FuncCreateBackups \$backupNameAfterUpdate \$\ + BackupPassword \$BackupSens];\r\ + \n } else={\r\ + \n :log error \"\$SMP Failed to verify new RouterOS version: target: `\ + \$targetOsVersion`, current: `\$runningVersion`\";\r\ + \n :set mailStep3Subject (\$mailStep3Subject . \" - Update failed\");\r\ + \n :set mailStep3Body (\$mailStep3Body . \"The script was unable to ver\ + ify that the new RouterOS version was installed, target version: `\$target\ + OsVersion`, current version: `\$runningVersion`\\nCheck device logs for mo\ + re details.\\n\\n\$mailBodyDeviceInfo\\n\\n\$mailBodyCopyright\");\r\ + \n }\r\ + \n \$FuncSendEmailSafe \$EmailGeneralTo \$mailStep3Subject \$mailStep3Bod\ + y \$mailAttachments;\r\ + \n :if ([:len \$mailAttachments] > 0) do={\r\ + \n :log info \"\$SMP Cleaning up backup files from the file system...\"\ + ;\r\ + \n /file remove \$mailAttachments;\r\ + \n :delay 2;\r\ + \n }\r\ + \n :log info (\"\$SMP Final report email sent successfully, and the scrip\ + t has finished.\");\r\ + \n}\r\ + \n:log info (\"\$SMP the script has finished, script step: `\$scriptStep` \ + \\n\\n\");\r\ + \n\r\ + \n} do={:global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err}\r\ + \n" +add dont-require-permissions=no name=testGetPubIP owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source=":\ + global DevInfoIncludeIP;\r\ + \n:global CharacterReplace;\r\ + \n:global EscapeForRegEx;\r\ + \n:global UrlEncode;\r\ + \n\r\ + \n:if ([ \$DevInfoIncludeIP ] = true) do={\r\ + \n :global GetPubIp;\r\ + \n :local Char (\"\\n\\r\");\r\ + \n :local PublicIpAddress [\$GetPubIp];\r\ + \n# :if ([ :pick \$PublicIpAddress ([ :len \$PublicIpAddress ] - 2) ] = \ + \"\\n\") do={:error true}; :set error falseon-error={:set PublicIpAddress \ + (\$PublicIpAddress . Char)};\r\ + \n#:if ([ :pick \$PublicIpAddress ([ :len \$PublicIpAddress ] - 1) ] = \"/\ + n\") do={\r\ + \n#:log warning \"N is = //n\"; \r\ + \n# :set PublicIpAddress [ \$CharacterReplace \$PublicIpAddress \$Char \"\ + \" ];\r\ + \n#}\r\ + \n# :set PublicIpAddress [ \$UrlEncode \$PublicIpAddress ];\r\ + \n#:local IpLen ([ :len \$PublicIpAddress ] -1);\r\ + \n#:set PublicIpAddress [:pick \$PublicIpAddress 0 \$IpLen];\r\ + \n :log warning \"Public IP address detected: \$PublicIpAddress , len = \ + \$IpLen\";\r\ + \n}\r\ + \n" +add comment="download, import and update firewall address-lists" \ + dont-require-permissions=no name=AM-FwAddrLists owner=AM-FwAddrLists \ + policy=ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + source="#!rsc by Vados\r\ + \n# RouterOS script: AM-FwAddrLists\r\ + \n# Script comment: download, import and update firewall address-lists\r\ + \n# Copyright (c) 2007-2026 Vados \r\ + \n#\r\ + \n#\r\ + \n# requires RouterOS, version=7.19\r\ + \n# https://ros.vados.ru/doc/fw-addr-lists.md\r\ + \n:local ExitOK false;\r\ + \n:onerror Err {\r\ + \n :global GlobalConfReady; :global GlobalFuncReady;\r\ + \n :retry { :if (\$GlobalConfReady != true || \$GlobalFuncReady != true) \ + \\\r\ + \n do={ :error (\"Global config and/or functions not ready.\"); }; } \ + delay=500ms max=50;\r\ + \n :local ScriptName [ :jobname ];\r\ + \n\r\ + \n :global GlobalScriptsUrl;\r\ + \n :local ListsDirName (\"fw-addr-lists.d/\" . [ /system identity get nam\ + e ] . \"/\");\r\ + \n :local ListsUrl (\$GlobalScriptsUrl . \$ListsDirName);\r\ + \n :local ListsIndex \"index.lst\";\r\ + \n :local AddrListsTimeOut 1d;\r\ + \n :local CheckCerts false;\r\ + \n\r\ + \n :global CertificateAvailable;\r\ + \n :global EitherOr;\r\ + \n :global FetchHugeFiles;\r\ + \n :global HumanReadableNum;\r\ + \n :global IfThenElse;\r\ + \n :global LogPrint;\r\ + \n :global NetMask4;\r\ + \n :global NetMask6;\r\ + \n :global ScriptLock;\r\ + \n \r\ + \n :local FindDelim do={\r\ + \n :local ValidChars \"0123456789.:/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi\ + jklmnopqrstuvwxyz-\";\r\ + \n :for I from=0 to=[ :len \$1 ] do={\r\ + \n :if ([ :typeof [ :find \$ValidChars [ :pick (\$1 . \" \") \$I ] ] \ + ] != \"num\") do={\r\ + \n :return \$I;\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :local GetBranch do={\r\ + \n :global EitherOr;\r\ + \n :return [ :pick [ :convert transform=md5 to=hex [ :pick \$1 0 [ \$Ei\ + therOr [ :find \$1 \"/\" ] [ :len \$1 ] ] ] ] 0 2 ];\r\ + \n }\r\ + \n \r\ + \n :if ([ \$ScriptLock \$ScriptName ] = false) do={\r\ + \n :set ExitOK true;\r\ + \n :error false;\r\ + \n }\r\ + \n\r\ + \n :local ListComment (\"managed by \" . \$ScriptName);\r\ + \n :local Url (\$ListsUrl . \$ListsIndex);\r\ + \n :local tmpIndex false;\r\ + \n\r\ + \n :for I from=1 to=5 do={\r\ + \n :if (\$tmpIndex = false) do={\r\ + \n :set tmpIndex [ :tolf [ \$FetchHugeFiles \$ScriptName \$Url \$Chec\ + kCerts ] ];\r\ + \n :if (\$tmpIndex = false && \$I < 5) do={\r\ + \n :log warning (\$ScriptName . \" Failed downloading address-list \ + index, \" . \$I . \". try from: \" . \$Url);\r\ + \n :delay ((\$I * \$I) . \"s\");\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n :if (\$tmpIndex = false) do={\r\ + \n :log warning (\$ScriptName . \" Failed downloading address-list inde\ + x from: \" . \$Url);\r\ + \n :set tmpIndex \"\";\r\ + \n }\r\ + \n\r\ + \n :foreach List in=[ :deserialize \$tmpIndex delimiter=\"\\n\" from=dsv \ + options=dsv.plain ] do={\r\ + \n# :set List (\$List->0);\r\ + \n :local ListName;\r\ + \n :local Delim [ \$FindDelim \$List ];\r\ + \n :if (\$Delim = 0) do={ :set List \"\"; };\r\ + \n :log warning (\$ScriptName . \" Parsing address-list index entry: \"\ + \_. \$List);\r\ + \n :if ([ :len \$List ] = 0) do={\r\ + \n :log error (\$ScriptName . \" Failed parsing address-list index en\ + try: \" . \$List);\r\ + \n } else={\r\ + \n :set ListName [ :pick \$List 0 \$Delim ];\r\ + \n }\r\ + \n :log warning (\$ScriptName . \" Parsing address-list index entry: \"\ + \_. \$ListName . \" - Ok.\");\r\ + \n :local ListUrl (\$ListsUrl . \$ListName);\r\ + \n :local CntAdd 0;\r\ + \n :local CntRenew 0;\r\ + \n :local CntRemove 0;\r\ + \n :local IPv4Addresses ({});\r\ + \n :local IPv6Addresses ({});\r\ + \n :local Failure false;\r\ + \n :local Data false;\r\ + \n :local TimeOut \$AddrListTimeOut;\r\ + \n\r\ + \n :for I from=1 to=5 do={\r\ + \n :if (\$Data = false) do={\r\ + \n :set Data [ :tolf [ \$FetchHugeFiles \$ScriptName \$ListUrl \$Ch\ + eckCerts ] ];\r\ + \n :if (\$Data = false && \$I < 5) do={\r\ + \n :log warning (\$ScriptName . \" Failed downloading for list '\ + \" . \$ListName . \"', \" . \$I . \". try from: \" . \$ListUrl);\r\ + \n :delay ((\$I * \$I) . \"s\");\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :if (\$Data = false) do={\r\ + \n :set Data \"\";\r\ + \n :set Failure true;\r\ + \n :log warning (\$ScriptName . \" Failed downloading for list '\" . \ + \$ListName . \"' from: \" . \$ListUrl);\r\ + \n } else={\r\ + \n :log warning (\$ScriptName . \" Downloaded \" . [ \$HumanReadableN\ + um [ :len \$Data ] 1024 ] . \"B for list '\" . \$ListName . \"' from: \" .\ + \_\$ListUrl);\r\ + \n }\r\ + \n\r\ + \n :foreach Line in=[ :deserialize \$Data delimiter=\"\\n\" from=dsv op\ + tions=dsv.plain ] do={\r\ + \n :set Line (\$Line->0);\r\ + \n :local Address;\r\ + \n :if ([ :pick \$Line 0 1 ] = \"{\" && [ :pick \$Line ([ :len \$Line\ + \_] - 1) ] = \"}\") do={\r\ + \n :do {\r\ + \n :set Address [ :tostr ([ :deserialize from=json \$Line ]->\"ci\ + dr\") ];\r\ + \n } on-error={ }\r\ + \n } else={\r\ + \n :set Address ([ :pick \$Line 0 [ \$FindDelim \$Line ] ] . (\$L\ + ist->\"cidr\"));\r\ + \n }\r\ + \n :do {\r\ + \n :local Branch;\r\ + \n :if (\$Address ~ \"^[0-9]{1,3}\\\\.[0-9]{1,3}\\\\.[0-9]{1,3}\\\\\ + .[0-9]{1,3}(/[0-9]{1,2})\?\\\$\") do={\r\ + \n :local Net \$Address;\r\ + \n :local CIDR 32;\r\ + \n :local Slash [ :find \$Address \"/\" ];\r\ + \n :if ([ :typeof \$Slash ] = \"num\") do={\r\ + \n :set Net [ :toip [ :pick \$Address 0 \$Slash ] ]\r\ + \n :set CIDR [ :pick \$Address (\$Slash + 1) [ :len \$Address ]\ + \_];\r\ + \n :set Address [ :tostr (([ :toip \$Net ] & [ \$NetMask4 \$CID\ + R ]) . [ \$IfThenElse (\$CIDR < 32) (\"/\" . \$CIDR) ]) ];\r\ + \n }\r\ + \n :set Branch [ \$GetBranch \$Address ];\r\ + \n :set (\$IPv4Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n }\r\ + \n :if (\$Address ~ \"^[0-9a-zA-Z]*:[0-9a-zA-Z:\\\\.]+(/[0-9]{1,3})\ + \?\\\$\") do={\r\ + \n :local Net \$Address;\r\ + \n :local CIDR 128;\r\ + \n :local Slash [ :find \$Address \"/\" ];\r\ + \n :if ([ :typeof \$Slash ] = \"num\") do={\r\ + \n :set Net [ :toip6 [ :pick \$Address 0 \$Slash ] ]\r\ + \n :set CIDR [ :pick \$Address (\$Slash + 1) [ :len \$Address ]\ + \_];\r\ + \n }\r\ + \n :set Address (([ :toip6 \$Net ] & [ \$NetMask6 \$CIDR ]) . \"/\ + \" . \$CIDR);\r\ + \n :set Branch [ \$GetBranch \$Address ];\r\ + \n :set (\$IPv6Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n }\r\ + \n :if (\$Address ~ \"^[\\\\.a-zA-Z0-9-]+\\\\.[a-zA-Z]{2,}\\\$\") d\ + o={\r\ + \n :set Branch [ \$GetBranch \$Address ];\r\ + \n :set (\$IPv4Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n :set (\$IPv6Addresses->\$Branch->\$Address) \$TimeOut;\r\ + \n }\r\ + \n } on-error={ }\r\ + \n }\r\ + \n \r\ + \n\r\ + \n :foreach Entry in=[ /ip/firewall/address-list/find where \\\r\ + \n list=\$ListName comment=\$ListComment ] do={\r\ + \n :local Address [ /ip/firewall/address-list/get \$Entry address ];\ + \r\ + \n :local Branch [ \$GetBranch \$Address ];\r\ + \n :local TimeOut (\$IPv4Addresses->\$Branch->\$Address);\r\ + \n :if ([ :typeof \$TimeOut ] = \"time\") do={\r\ + \n :log warning (\$ScriptName . \" Renewing IPv4 address \" . \$Add\ + ress . \\\r\ + \n \" in list '\" . \$ListName . \"' with \" . \$TimeOut . \".\ + \");\r\ + \n /ip/firewall/address-list/set \$Entry timeout=\$TimeOut;\r\ + \n :set (\$IPv4Addresses->\$Branch->\$Address);\r\ + \n :set CntRenew (\$CntRenew + 1);\r\ + \n } else={\r\ + \n :if (\$Failure = false) do={\r\ + \n :log warning (\$ScriptName . \" Removing IPv4 address \" . \$A\ + ddress . \\\r\ + \n \" from list '\" . \$ListName . \".\");\r\ + \n /ip/firewall/address-list/remove \$Entry;\r\ + \n :set CntRemove (\$CntRemove + 1);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :foreach Entry in=[ /ipv6/firewall/address-list/find where \\\r\ + \n list=\$ListName comment=\$ListComment ] do={\r\ + \n :local Address [ /ipv6/firewall/address-list/get \$Entry address ]\ + ;\r\ + \n :local Branch [ \$GetBranch \$Address ];\r\ + \n :local TimeOut (\$IPv6Addresses->\$Branch->\$Address);\r\ + \n :if ([ :typeof \$TimeOut ] = \"time\") do={\r\ + \n :log warning (\$ScriptName . \" Renewing IPv6 address \" . \$Add\ + ress . \\\r\ + \n \" in list '\" . \$ListName . \"' with \" . \$TimeOut . \".\ + \");\r\ + \n /ipv6/firewall/address-list/set \$Entry timeout=\$TimeOut;\r\ + \n :set (\$IPv6Addresses->\$Branch->\$Address);\r\ + \n :set CntRenew (\$CntRenew + 1);\r\ + \n } else={\r\ + \n :if (\$Failure = false) do={\r\ + \n :log warning (\$ScriptName . \" Removing IPv6 address \" . \$A\ + ddress . \\\r\ + \n \" from list '\" . \$ListName . \".\");\r\ + \n /ipv6/firewall/address-list/remove \$Entry;\r\ + \n :set CntRemove (\$CntRemove + 1);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :foreach BranchName,Branch in=\$IPv4Addresses do={\r\ + \n :log warning (\$ScriptName . \" Handling branch: \" . \$BranchName\ + );\r\ + \n :foreach Address,Timeout in=\$Branch do={\r\ + \n :log warning (\$ScriptName . \" Adding IPv4 address \" . \$Addre\ + ss . \\\r\ + \n \" to list '\" . \$ListName . \"' with \" . \$Timeout . \".\ + \");\r\ + \n :onerror Err {\r\ + \n /ip/firewall/address-list/add list=\$ListName comment=\$ListCo\ + mment \\\r\ + \n address=\$Address timeout=\$Timeout;\r\ + \n :set CntAdd (\$CntAdd + 1);\r\ + \n } do={\r\ + \n :log warning (\$ScriptName . \" Failed to add IPv4 address \" \ + . \$Address . \\\r\ + \n \" to list '\" . \$ListName . \"': \" . \$Err);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :foreach BranchName,Branch in=\$IPv6Addresses do={\r\ + \n :log warning (\$ScriptName . \" Handling branch: \" . \$BranchName\ + );\r\ + \n :foreach Address,Timeout in=\$Branch do={\r\ + \n :log warning (\$ScriptName . \" Adding IPv6 address \" . \$Addre\ + ss . \\\r\ + \n \" to list '\" . \$ListName . \"' with \" . \$Timeout . \".\ + \");\r\ + \n :onerror Err {\r\ + \n /ipv6/firewall/address-list/add list=\$ListName comment=\$List\ + Comment \\\r\ + \n address=\$Address timeout=\$Timeout;\r\ + \n :set CntAdd (\$CntAdd + 1);\r\ + \n } do={\r\ + \n :log warning (\$ScriptName . \" Failed to add IPv6 address \" \ + . \$Address . \\\r\ + \n \" to list '\" . \$ListName . \"': \" . \$Err);\r\ + \n }\r\ + \n }\r\ + \n }\r\ + \n\r\ + \n :log info (\$ScriptName . \" list: \" . \$ListName . \\\r\ + \n \" (\" . [ \$HumanReadableNum (\$CntAdd + \$CntRenew) 1000 ] . \ + \")\" . \\\r\ + \n \" -- added: \" . [ \$HumanReadableNum \$CntAdd 1000 ] . \\\r\ + \n \" - renewed: \" . [ \$HumanReadableNum \$CntRenew 1000 ] . \\\r\ + \n \" - removed: \" . [ \$HumanReadableNum \$CntRemove 1000 ]);\r\ + \n }\r\ + \n} do={\r\ + \n :global ExitError; \$ExitError \$ExitOK [ :jobname ] \$Err;\r\ + \n}\r\ + \n" +add dont-require-permissions=no name=AmneziaWG owner=vados policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\ + /routing table \ + \n#add disabled=no fib name=r_to_vpn\ + \n#/ip firewall address-list\ + \n#add address=8.8.4.4 list=to_vpn\ + \n#/ip firewall address-list\ + \n#add address=10.0.0.0/8 list=RFC1918\ + \n#add address=172.16.0.0/12 list=RFC1918\ + \n#add address=192.168.0.0/16 list=RFC1918\ + \n#/interface/list/add name=WAN\ + \n#/interface/list/member/add list=WAN interface=ether1\ + \n\ + \n/ip firewall mangle\ + \nadd action=accept chain=prerouting dst-address-list=RFC1918 in-interface\ + -list=!WAN\ + \n/ip firewall mangle\ + \nadd action=mark-connection chain=prerouting connection-mark=no-mark dst-\ + address-list=to_vpn in-interface-list=!WAN \\\ + \n new-connection-mark=to-vpn-conn passthrough=yes\ + \n/ip firewall mangle\ + \nadd action=mark-routing chain=prerouting connection-mark=to-vpn-conn in-\ + interface-list=!WAN new-routing-mark=r_to_vpn \\\ + \n passthrough=yes\ + \n/ip firewall mangle\ + \nadd action=mark-connection chain=output connection-mark=no-mark \\\ + \n dst-address-list=to_vpn new-connection-mark=to-vpn-conn-local \\\ + \n passthrough=yes\ + \nadd action=mark-routing chain=output connection-mark=to-vpn-conn-local \ + \\\ + \n new-routing-mark=r_to_vpn passthrough=yes\ + \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" +/app +set cinny firewall-redirects=8094:80:tcp:web +set goaway container-command-lines=goaway:none:docker.io/pommee/goaway:latest +set home-assistant container-command-lines=\ + home-assistant:none:lscr.io/linuxserver/homeassistant +set n8n firewall-redirects=5678:5678:tcp:web +set nextcloud container-command-lines="db:none:docker.io/postgres:17,redis:non\ + e:docker.io/valkey/valkey:/bin/sh -c 'valkey-server --port 6379 --appendon\ + ly yes --requirepass \$VALKEY_PASSWORD',server:none:docker.io/nextcloud:ap\ + ache" +set pihole environment="pihole:FTLCONF_dns_listeningMode=all,pihole:FTLCONF_we\ + bserver_api_password=password" +set redlib firewall-redirects=8087:8080:tcp:web +set solr container-command-lines=solr:none:docker.io/solr:latest +set uptime-kuma container-command-lines=\ + uptime-kuma:none:docker.io/louislam/uptime-kuma:1 +/app settings +set auto-update=yes disk=*7 lan-bridge=Bridge-LAN registry-mirrors="https://re\ + g.vados.ru:5000/:https://reg.vados.ru/,https://registry-1.docker.io" +/caps-man aaa +set called-format=ssid +/caps-man access-list +add action=reject allow-signal-out-of-range=10s disabled=no interface=all \ + signal-range=-120..-80 ssid-regexp="" +add action=accept allow-signal-out-of-range=10s disabled=no interface=all \ + signal-range=-79..120 ssid-regexp="" +/caps-man manager +set ca-certificate=CAPsMAN-CA-51B25E507D07 certificate=CAPsMAN-51B25E507D07 \ + enabled=yes require-peer-certificate=yes +/caps-man manager interface +set [ find default=yes ] forbid=yes +add disabled=no interface=Bridge-LAN +/caps-man provisioning +add action=create-dynamic-enabled hw-supported-modes=g,gn,b \ + master-configuration=2G name-format=prefix-identity name-prefix=2G +add action=create-dynamic-enabled hw-supported-modes=an,ac,a \ + master-configuration=5G name-format=prefix-identity name-prefix=5G +add action=create-dynamic-enabled disabled=yes hw-supported-modes=ac,an,a \ + master-configuration=2G name-format=prefix-identity name-prefix=5ghz-ac +add action=create-dynamic-enabled disabled=yes hw-supported-modes=an \ + master-configuration=5G name-format=prefix-identity name-prefix=5ghz-an +/certificate settings +set crl-store=system +/container config +set layer-dir=/sata1 memory-high=4096.0MiB memory-max=4096.0MiB registry-url=\ + https://registry-1.docker.io tmpdir=/tmp username=amsternl +/container mounts +add dst=/etc/amnezia/amneziawg list=awg_conf src=/wg +/interface bridge port +add bridge=Bridge-LAN interface=ether2 +add bridge=Bridge-DOC interface=*B4 +add bridge=Bridge-LAN interface=LAN +add bridge=Bridge-LAN interface=dynamic +/ipv6 settings +set disable-ipv6=yes disable-link-local-address=yes +/interface detect-internet +set detect-interface-list=all internet-interface-list=WAN lan-interface-list=\ + LAN wan-interface-list=WAN +/interface list member +add interface=Bridge-LAN list=WAN +add interface=lo list=LAN +/interface wifi capsman +set package-path=/tmpfs/capsman-packages upgrade-policy=none +/ip address +add address=10.30.30.10/24 interface=Bridge-LAN network=10.30.30.0 +add address=172.18.20.1/30 interface=docker-awg-veth network=172.18.20.0 +/ip dhcp-server +add add-arp=yes address-pool=dhcp always-broadcast=yes bootp-support=none \ + dhcp-option-set=domain-search-set disabled=yes interface=Bridge-LAN \ + lease-script=lease-script lease-time=10m name=nucDHCP server-address=\ + 10.30.30.10 +/ip dns +set allow-remote-requests=yes doh-max-concurrent-queries=100 \ + doh-max-server-connections=20 servers=10.30.30.81 verify-doh-cert=yes +/ip firewall address-list +add address=8.8.4.4 list=to_vpn +add address=10.0.0.0/8 list=RFC1918 +add address=172.16.0.0/12 list=RFC1918 +add address=192.168.0.0/16 list=RFC1918 +/ip firewall filter +add action=accept chain=input +add action=accept chain=output +add action=accept chain=forward comment="Comment of the rule" disabled=yes +/ip firewall mangle +# in/out-interface matcher not possible when interface (docker-awg-veth) is slave - use master instead (Bridge-LAN) +add action=change-mss chain=forward new-mss=1360 out-interface=\ + docker-awg-veth protocol=tcp tcp-flags=syn tcp-mss=1420-65535 +/ip firewall nat +# in/out-interface matcher not possible when interface (docker-awg-veth) is slave - use master instead (Bridge-LAN) +add action=masquerade chain=srcnat out-interface=docker-awg-veth +/ip firewall service-port +set ftp disabled=yes +set tftp disabled=yes +set sip disabled=yes +set pptp disabled=yes +set rtsp disabled=no +/ip route +add check-gateway=bfd disabled=no distance=1 dst-address=0.0.0.0/0 gateway=\ + 10.30.30.81 routing-table=main scope=30 target-scope=10 +add distance=1 dst-address=0.0.0.0/0 gateway=172.18.20.2 routing-table=\ + r_to_vpn +add distance=1 dst-address=0.0.0.0/0 gateway=172.18.20.2 routing-table=\ + r_to_vpn +/ip service +set ftp disabled=yes +set www disabled=yes +set ssh port=2222 +set www-ssl port=4443 +set api disabled=yes +set api-ssl disabled=yes +/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 password-authentication=no \ + publickey-authentication-options=verify-required strong-crypto=yes +/ip upnp +set enabled=yes +/ip upnp interfaces +add interface=Bridge-LAN type=external +add interface=Bridge-DOC type=internal +/ipv6 firewall address-list +add address=2400:cb00::/32 list=CLOUDFLARE-IP-Address +add address=2606:4700::/32 list=CLOUDFLARE-IP-Address +add address=2803:f800::/32 list=CLOUDFLARE-IP-Address +add address=2405:b500::/32 list=CLOUDFLARE-IP-Address +add address=2405:8100::/32 list=CLOUDFLARE-IP-Address +add address=2a06:98c0::/29 list=CLOUDFLARE-IP-Address +add address=2c0f:f248::/32 list=CLOUDFLARE-IP-Address +/system clock +set time-zone-autodetect=no time-zone-name=Europe/Moscow +/system gps +set set-system-time=yes +/system identity +set name=MikroNUC +/system note +set show-at-login=no +/system ntp client +set enabled=yes +/system ntp server +set enabled=yes manycast=yes multicast=yes +/system ntp client servers +add address=10.30.30.81 +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 +/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="Every Day Check For Fake Bridges" interval=1d name=\ + mod/AM-IPbridge on-event="/system/script/run mod/AM-IPbridge;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment="Telegram Chat Bot" interval=30s name=mod/AM-TG-Bot on-event=\ + "/system/script/run mod/AM-TG-Bot;" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-time=startup +add comment=\ + "Every 7 Day Check For Update and Backup send notification to EMail." \ + interval=1w name=AM-Backup-UpdateEmail on-event=\ + "/system/script { run AM-Backup-UpdateEmail; }" policy=\ + ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon \ + start-date=2026-06-25 start-time=03:41:27 +/tool e-mail +set certificate-verification=no from=MikroNUC port=587 \ + server=smtp.mail.me.com tls=starttls user=vadossio@icloud.com +/tool netwatch +add disabled=yes down-script=\ + ":local msg \"Host MikroYellow is DOWN\";\r\ + \n\$TGSendMessage \$msg;" host=10.30.30.86 http-codes="" interval=10s \ + test-script="" type=simple up-script=\ + ":global TGSendMessage;\r\ + \n\$TGSendMessage \"Host MikroYellow is UP\";" +/user aaa +set accounting=no diff --git a/MikroNUC/history/20260627/20260627234001-Diff-Config.rsc b/MikroNUC/history/20260627/20260627234001-Diff-Config.rsc new file mode 100644 index 0000000..c9d28fc --- /dev/null +++ b/MikroNUC/history/20260627/20260627234001-Diff-Config.rsc @@ -0,0 +1,53 @@ +29,31c29,30 +< add address=172.18.20.2/30 container-mac-address=44:F2:90:E8:88:95 dhcp=no \ +< gateway=172.18.20.1 gateway6="" mac-address=44:F2:90:E8:88:94 name=\ +< docker-awg-veth +--- +> add address=172.18.20.2/30 container-mac-address=00:00:00:00:00:00 dhcp=no \ +> gateway=172.18.20.1 gateway6="" name=docker-awg-veth +60,63d58 +< /container +< add hostname=amnezia interface=docker-awg-veth layer-dir=/sata1 logging=yes \ +< mountlists=awg_conf name=awg-mikrotik-amd64:latest remote-image=\ +< catesin/awg-mikrotik-amd64:latest root-dir=/amnezia start-on-boot=yes +4704c4699 +< set crl-store=system +--- +> set builtin-trust-store=fetch crl-store=system +4706,4707c4701,4708 +< set layer-dir=/sata1 memory-high=4096.0MiB memory-max=4096.0MiB registry-url=\ +< https://registry-1.docker.io tmpdir=/tmp username=amsternl +--- +> set layer-dir=/sata1 registry-url=https://reg.vados.ru tmpdir=/ramstorage \ +> username=amster-dev +> /container envs +> add key=ENV list=carkeeperbot_envs value=/root/.ashrc +> add key=PATH list=carkeeperbot_envs value=\ +> /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin +> add key=PORT list=carkeeperbot_envs value="\${SSH_PORT}" +> add key=SSH_PORT list=carkeeperbot_envs value=8222 +4709a4711,4721 +> add dst=/app list=carkeeper_app src=/sata1/carkeeper/app +> add dst=/configs list=carkeeper_configs src=/sata1/carkeeper/configs +> add dst=/root/.ashrc list=carkeeper_configs/.profile src=\ +> /sata1/carkeeper/configs/.profile +> add dst=/etc/php82/php.ini list=carkeeper_configs/php.ini src=\ +> /sata1/carkeeper/configs/php.ini +> add dst=/etc/ssh/sshd_config list=carkeeper_configs/sshd_config src=\ +> /sata1/carkeeper/configs/sshd_config +> add dst=/scripts list=carkeeper_scripts src=/sata1/carkeeper/scripts +> add dst=/var/sync list=carkeeper_sync src=/sata1/carkeeper/sync +> add dst=/var/tmp list=carkeeper_tmp src=/sata1/carkeeper/tmp +4726a4739,4742 +> add address=10.10.10.1/24 disabled=yes interface=Bridge-DOC network=\ +> 10.10.10.0 +> add address=172.18.20.5/30 disabled=yes interface=*BA network=172.18.20.4 +> add address=172.18.20.1/30 interface=*C3 network=172.18.20.0 +4746c4762 +< # in/out-interface matcher not possible when interface (docker-awg-veth) is slave - use master instead (Bridge-LAN) +--- +> # docker-awg-veth not ready +4750c4766 +< # in/out-interface matcher not possible when interface (docker-awg-veth) is slave - use master instead (Bridge-LAN) +--- +> # docker-awg-veth not ready -- 2.52.0