From af5b9057b4b2b24dc99153adb63bbe5123a84bab Mon Sep 17 00:00:00 2001 From: Yevhen Fastiuk Date: Sun, 28 Apr 2024 01:10:54 +0300 Subject: [PATCH 1/5] Added logrotate feature HLD Signed-off-by: Yevhen Fastiuk --- .../images/logrotate_config_diagram.png | Bin 0 -> 77210 bytes .../images/logrotate_init_diagram.png | Bin 0 -> 40518 bytes .../images/logrotate_show_diagram.png | Bin 0 -> 42710 bytes .../images/logrotate_system_chart_diagram.png | Bin 0 -> 41920 bytes doc/logrotate/logrotate_hld.md | 239 ++++++++++++++++++ 5 files changed, 239 insertions(+) create mode 100755 doc/logrotate/images/logrotate_config_diagram.png create mode 100755 doc/logrotate/images/logrotate_init_diagram.png create mode 100755 doc/logrotate/images/logrotate_show_diagram.png create mode 100755 doc/logrotate/images/logrotate_system_chart_diagram.png create mode 100644 doc/logrotate/logrotate_hld.md diff --git a/doc/logrotate/images/logrotate_config_diagram.png b/doc/logrotate/images/logrotate_config_diagram.png new file mode 100755 index 0000000000000000000000000000000000000000..b443178a82098e447b6d3cbb27af66480514dffa GIT binary patch literal 77210 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 Knb6jFg#8QuS&}3G literal 0 HcmV?d00001 diff --git a/doc/logrotate/images/logrotate_init_diagram.png b/doc/logrotate/images/logrotate_init_diagram.png new file mode 100755 index 0000000000000000000000000000000000000000..47bbf90565ec0ad639f756915da521ebf53e305a GIT binary patch literal 40518 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 literal 0 HcmV?d00001 diff --git a/doc/logrotate/images/logrotate_show_diagram.png b/doc/logrotate/images/logrotate_show_diagram.png new file mode 100755 index 0000000000000000000000000000000000000000..6756afe6ed41e5de7e415eddc085b65cf27d6612 GIT binary patch literal 42710 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 XR0l_@29|ixz#n6M%#OTmhXel?&&47X literal 0 HcmV?d00001 diff --git a/doc/logrotate/images/logrotate_system_chart_diagram.png b/doc/logrotate/images/logrotate_system_chart_diagram.png new file mode 100755 index 0000000000000000000000000000000000000000..7472bb110194136fc53455887e496f8e1e9676ad GIT binary patch literal 41920 zcmeFZ1z42rx;6|5f*?|YN(%xC5<{1CNh&EV%}_%O-HHezAxMLu64FRYBhoEHry`vq zpwj<6gz~;C|NVda+iR_VAIE#(%suyW=N0F5Uf1&m-cgjs#U{l@K|#U2EhC|ff`W!X zK|!6wItyAD`9)H|Kd27M(qbsNo#gW}=*R2RI#v z1RXoOfvqizG1S1!-oV;{#l{2Co>y6GaH908y_8qD1;OF zhmD1k52AI{-@weo=6FB_m>bl}%7Bhtii?E}40T-tYGVv@b^sq0Rly(d92*^n82AK! z;07ZhKe}*p-T?oI+S*!~XqXtvLBTqtxHx!NIJiOcbvYST1$jDlaq!s+YH0%gkv1{1 zgdrahH@AmbgBB?WJA?%ceK@CzfvJH#^wbc@J(<7_%#QYR_nxad%vH%s-ay{UhF#K> zgU8YBXdg}{_6|^(&GEK5z;KYGAKPuwTLYjK91_kzzCfEf+}a9!L;h@R z;9&l%@A23s_HdIE**m$R-&;D|<=;Qo-=`~W0`wnl?+Q-%ctmzCuA?!JWtkJ%87a%o zza<00dECeRv{Y~&cQiPbMzddIBOm`~ZVdD}zVN@lexxn_lU)4O%YYo;xWn(mH!%j1 zfBY3@4>yOI!E6kyB!9Px{k|TgrTyJU9tHz@DbV7cUK%O&lLq7as11*_{8jm~H?cB+L!JJ((0?6S zIo|#$#YMV#BU3ZuqjNbeLsnM6GJ}o$Bjr7M61c_xMt$Wy);gp_fcexgB!q2m;p*Mg_^NAnAo4fnx{O#zmoQHoOsv&0QEh-lm8j@{q10piiku`|BSQ! zA5-7sfZ-oH+e4i7pQpYc2L3ZD{=W#!PSDq($^NH-*}uH39EKkMd9rdWDu371oByRa z{VQ2{t`h)uY~?vlzMqb%PTKypLE3TPcj`9ep*D^#|6b?Mb>emZ{m%cGSUPq7_9n(q z2WBMN0o2)_tt#MS4yiXIS1Ujyn%HyvA4U8-SwgRMuk|P`pgN)#i z4%Xp_$ATau+oOs9dm|loUUp!E4|jO1N1P`-#HoAaJC1)&tICO!?LSrw|19|&f97-leZ}xELCfE>wl*-Ni~A$22d#Y-Qh5sb-WtjfsW??U75+h3*R{|J?i)a}0)tDcDV zv8eyDt*5XKJM!3(8$a!3{sme2<0SAu>BIlmcphEqiA_751pQ|~$!}=#Ct&&~iQ+!_ zelpR2zw!KwDgS+q=U>ax|4$oFITL%E!@83HHJ`uS^s)K;#h?8fn$N!$=^u&Ov0MJ_ z_fFjDpWH2k^KZCYd8h;2#0Gc}3E+#_jLZ#eKoQa3a=ZV~#r_eW9^3KLVD`A_-`o{* zp19ppvIId|-Tw(!d>C^7jY6oC;Qe>W*=hfA`0GhQ+|dum4DxSQ4CDu03};L%U2Jshxr(ih-dNp9AD6XHGy9*qXj_E zqMh#8bIm74k%&B9^!T~MAs`)>kza;6o4re;@yjdiF4S)OvW_Ctlp6V>^02 z0NQwZT=f4vBwv|;c~gDP2x3ePnR%Mj=>{#yO#Ntm>#a!g{k8m2&F_ku zUR&Qd?f!Us`wA$K4)gzlNQo>pY|!f8qKVk&o4@H18Kf5FY+1upEZfVEX*s#(N+Dph zdVVYKV6~>b>_GFg@bqh1s+R57iya3CI|qBE@Qgt^eP_P4iIp=8k(mrI-L)tk)eV~U zMVOK&Q>k@%M{mY*S6eItMTukB7=v?s&8%6CfYWG(a1F1+UPT2}=NjI@hJkDOHUesQ z+u^DGZ;8ZW_PrN0U+I_iC8H7@>ea-6-BT%HE=t35mwJ{DF@JcL#8ww>`0lXIEp%v9ifhTS;booml^u+-XROTdKu%KUd})jf1<`y zCq2(DOAP+C#;e5fV@)I^3@>H|PcMqsckl_6PCrJblPTdfbtqrmP*rO}c1*w9x|?V> zvhQqhqM!yTxZPg{|xHP_~Ckv=t zn(#8*iBB{w%=$p3*nkmH@jI;-?zHU9zE5kVT~Y|&anLpL6Zr9rpD{r znDK1YtIa>Kzj3K(GCrDT%rTud4X2GFQNJDTMcd}-Ves~|mh@zsKgQeJbhC~IN@!vN z9H+$XnkY59q1H}ZlKIW+eL8wHmC4WT0|lsO9If~bhu75D1=#6x18VGtn0idKqd6*W z&h$-4aEFZLQMhz0p=jO{Cf^AkLw%cHWs6$ zj>1?5Sm>*@)QZybn4*c?zfQll3>b5g5bXM*M~WYePdo|@u;Ph4j6t_!zZk)^s zeiO!`PTNbCCp-1zGvE+IQncqU{&qh;RA9+ochYcwKj|w2JehP)4jlW}hDB=efOi$X zjyU`KNs(*71<}r{^JDz>UY{^g>x-zKL(lwvk~$nr@C?qB_~6&U;(vXJVmOS~T7>%h zN&MTuGs=`lDxPxIKSfa>%a|s^zcmK`Kla#Y(@K{|u8;iiv{Q8FV$@;bBeqCdcMmzZ zMEG+z=*$=2wNLxu_XXJ~FXQPbl?mBN!wIS zt~hvgtsRJ=C3)K+9~spre2Uo!##p>DAe|e!vg-RLWr@*&$>05-}9C18JYFwmV31#o$g|@XsFm%i|QF(KUX|Xm-KDqeJ zu;EFpQXnB+ifV?kaycAY_UQpmiq%koa;^?v+1EOp=~qE4;j)p8u}YDQYVGM-#TLqC z_S0dAIzcSIAe40;o&8!;r1B2|>(hC*@8W{$+X{mZXNQWQ5guy|mkLbUNQTNCv#dr+ z6iQ$dEYoe#JYppleVJ12{4^REdD!~IwTymh_*rb~zS&}BE^Cv@Mdo*DlM`QAC-OVW zDkkt6pqFC9h(9sbtA%B;Y53-fjS(y}o^@Iog`)56@9m^Y1(SwHM9^|s_CE)UYnhJL zXVK8Hd(@kuGMinZEK>UtKR*g(eL!o#fEOu^UBIs064!K*EH9{ZTGrC6@v8FJU2FQ* z!jRNFo8-+>Y&pRFK=n}uwkmNZ<2|)^nQRy2?xNb)NII zL}Va3$R`q!H~aL`bLV>txIg2DC&V+aUtVFvkLR|wK!4rHrqW5D3>kKNz4mQ=lW=b$v$pr5Hw-XzeAm_K98yhqsDZ;}v`#kquz#RW{yM2b3DO5NejgGc@hg zPzSR$Im*6-2n66MK1-#{wR@9SvtNEwzj|~uW)9n{Es8nSaj}1=cgW;p%& zfOcFjh@l2$f&28E5g=d=Q)W!)c{Od>2LXYBfrB~-oz>9yq*FGh_~w{Dou zKDwkAwlY>B2Q)s_ZF50SRe^$p=>GojXTg~~3a>g@5GZn?y}g8p=Yd595;3%{cL~G% zG(#zGxjbVlhFom^xIH-u)T0Bpd+)~tYnA(ts5X|0oA}!1oV;Ljp9al(*w=Z8+!An5 zvHXHXtQs~3^u3vl8lOTSWuDs`&!j0`uc=nx`dcUa^-+#RuFa<>MV%v}k9oI%dgg31 zU9=9Ny2INxTC{fkP?57bxa&OkF}nrPsXv|b9SnqyWxxjW4NSSp^=rJOJcyap+lgXS z3CVpU7?k4TU%xeKic?#-D(){~Xx8#6z`xLB2FAM=o}t!0A%D(Z2pGO=zV`y>x7KId zKD~c9y;8BtEzG2rdGVV2a3`AYE%)!uUq64Cj?~bD2#=J)k{+qQVaGz=*PERYAU^uz zML>L9#HmR@bP>heQ{(N;=khiA>1D_R=Ip8~0xxqVOZ~loF-QgW?^~~m(rqAAV%DsU z(@H*DWHle(?*=Dz%|peD*0D3w>>-`UdW#==4f2ZazGV8~*XN zbo>(4#R{NT%ip30`hl9#%X$J$;Kq_rmtUQznJ}K=wf*EHAIBLek2iGrR#b1s6)H-v zp9VKHauZrml&d{l`o^tH0$Da&5Y-SqCF2oN>ncdHNIgNcMz2m4;5=lj@sT(>rpuNoMxfv+fAM`2jpnw z4Qs#%nfn!w+up5{1e;^=_Uj;>fei{ixCLaI5Cj%pz#>i;59kqjE+*j$UjDR2(B0G+ zH~l5IVkP{g_+vE2Ye1i_+DSBbfC)!MV=#R$69znu=~vL$$nhRCEjMlnhrsD{6(7}t zOKmS%i<=hb@qCFc2PV7eJ)&i{KRg3jdL&YGPC`uHGU`HyQu+P&56sm1RXX zV_M~oi>6S#I!o?#p33ULCnoI^Z(PE?L~1F~)C1=~JjRpjh~qNZ`ZnE@EPBTMx>1H2 zdVj7i6KIUc(Jqyp?@7%mxYgds?)_mYac;12H#mfK{v5j1)%%e#{bLK?mq(-(?`um% zH#k|We8DDW3|MKEUh@ZjmMo-KnHRXg&rf;L(D1*8_;49+&wYHYoGMGKS!$E0<2Ii< zPLNEGH6{9~jkV_a_U2++u5JYqeXzBLfpZb}Nq9jBo|k>cdl?PCISf4S*82QLfoTUR zFs_RJx-)RBYtqRo>54sX?$XW=6`I*I*s4|oVLX4K<{Y?7dPR5q09I7X`l7U2_sKwp z_D0f+SU*KYc+T`d(r=Vrj|Fbiv@x_$g`sv=A@PbCz%KIy`C{^mv;tL^z1KT<<~PF& zsl(`fgIKEv1E69-J?PhI+9x)K>`YC;EU{}}tbl>#LsJi!2McP=RLi2Fn0yIIjpL~> zY6^K_B~fViMXE59-}RgEI*qQE$iVLRj4LD?XgU>6%PB*R zx8;@MxfMA3`U|^+;yIJvQSf^0x_so*N|TQjtXS#W-Bfu;KcZgHWa1#7A`n^#Rk^od zy6@jWG>GbJP6Uo;!sSaayVKI(o$MlGOI}_>t$&4ZwP(j_qU-KVJgl|u5l)xjXZwNF zrq#i>v|Vb3W+o#U&R;*h$M9M;uhNRu1DHpIrlG%X3K!e?PzJ9=y^p+~-y>xLo$zR)J1?4h<)(p#q{%f664e_&I+#sba$<0XKXda{NpS8h29&qR%5S*v$hsV5FzG$H?O*# zS-?`DsMrcNTJ{|eTi|1yB>$K=P&r)fxf8qf+ByTvdnVSbJvg;9xMp{n)$~PqsDs42 z;pEMVS*YR9=OsC1VTti-(jE)<9IW6!+G4X@J%xMU-2KwN>(u#Ch>xeqB6Qt-)}!>+ z%ANCj73)QtGzgnb*c6k7#r$?#KweN9%0&IVl=dqPmm zNP@)YXBxXj0!0$6l`BE+2FnaYq03ia)MoPAP5NmCbkqaHuHN_g=i zTDbmAyUEo=FFvL4Z`)qYO7dA9flt3Z(PwFn+TD&A)Nr1Q9^qjuFYdVeTB@bi_e_^7 zLw(sxJM@Zy&o=G)WYxFw3DCYH^=Xk-)AK3$bhrzFT@Z@yn4Ny_H?2N<%02#28KOth zdaUQmM^xW`AtA*mrt;^#E8O%TL|AqK{RuG>ea-%6UPsUey>|T{@3gBuwqpAXbWI%h zzcw_I1sW+jZA$6nssb~bYy zsghmN+jRP2Ir`3SMxfU9$y5oKFr>iEwArs+b?G9m7MW#XgCRIX-8?{_<%Q_q@-B?J6gU_ad| zpZQ4#2kYL|v@b>Mi31Jnc9HE>4`#eB#wA_0eeCh>3y)?ji-&(fff_IEt-31qoC6JC zuKTqpz_W#(Q^9U)g-;T_*nRQy-K>sYR(>Zo>{W~+w}WIk6Cxu3x-8Dlgs{P@s39Wk za;A!o-edgEq>+0QKwqJC$yBJ}K7H2{+Cp*a3qig^SIsnXfI{XO zvV2&Id!U|%^CY&Pn8}RzdQA*;xipuMFH5X*L1PkwrRJWB*>sz0eRdN82gS_CsXS}N z_M#Aj(f}tti4BW=Hv*1jlCG9U`HF_3^?hGLmYb$pv$0QxD)o95Dz7@tjC=kV)41Ob zXEfv=ih<5jVDEX^nw`D}~IqK97% zsdM`CtEURr$>kC6bQ)q7w|maa?wXJvjOeeZIqz9B zRwS6NY})qL?&3bCnzX_&*LH0*dNKQpmj%H!wRCX$o``iwA2h4$~G`H+Af>`PW zNCg=jkAq0ty^HfHmlkar7fAu&Sqf~%_$kXC+g+1vr^i)zqhC|KG+f-4;{MuL3QTiF zxKlA0pd>Cm^2A$!16q2EtJ2XQ0DZ&_pSx3th>8ejl&5}6r-cruJ*Tjf4(+}^j(>mO z?ZY!IYyfwd69}Y#iUUdlZ#G%`t*ktikjJ3aomblDcz}yBcPgT~iv}P>q-jT7OMi}b zDtx|&U^(?*%y56ZOE83)-TTYj=GX66AQXBNF3?ytLoI<^GMt;51rh+c&d^~lJgB{b z))CJW4W5lxHM|G|d#swiZ9NM@5_ZNq3BWPa!;HH~7VC>%nGY4DPR-23jTK$T{~GSI za-r0IS{BI+ME5C216nEia~LxS+^n9Zj>CZhAn42nTmeJ|rs?(xvc9nn9(~}GR$DRq z!o5AJ4d8!0)!P)VV884)3q-+T;b!*6-T*v#8u~Ktge)Y-{20}9^7$~SXPaYMXP;+A zV){6;LU28|0lOh)X{LJKXkV%!;`1ElIuE&5?Gpzu{TB#hHZfx1MfwXjSx!ie*LD16 zKOdX3DM^5TGE>H#O%nmLq20W|3;=92Dxo^Kn0&WJ?FtZdJb4A1sD2e1e2H0WiusB~ z5Uy{D^+;TPh~1aQhO{n&`RnUEH(%rrT$stLst$TM9Wc-9qFL_-$+784c;)_m=@|wN zN&N@QjUEoP<>BH8ARo^vMmb((Xw)BK*IndMJp+LNn9#kMYzHK7h#P1_1!=TPte#!c za}kw|x;c+aVG(%K7hqE)m%vnP(HEYcK7GJAiBJ- zuags8f#h^{k1goAFLT8Tdspi?4Vm2iis#vk<_oS@Zs+^*G>8J(D=d`jz%i3u5cV6x z2C?HUKTjkr>GJfkOd!;8=;;*>o(2uVq1uJD(Bk0+hUizKX0(@P_%4-E- z=ykw_J!jD^zvfAaxeWroMLaWYZG-*cg|eT+!7(9^S7{m2`mB**uh_gVCM8>492zQJ zGMd}>rJ))BtlJUvBIj;^fI)_WC||RE!iPd+9ZCRl>5n?fBWP}<_2KONSdFH<<<{(b z2Gh7F<+h*aJs!>~j(b!%!nW^2nX53%`5MT4Xg-L3=KGT^0#{+2~ zwV^NZH6hFIV8cbwZ-Yjmv1+$FNJRoK`2sFAKAq^bbZ8WSf=yZL1ar*mJZOsT$vEv3 z=Ret5TnAL6_-FrYG6FyspmVi7wrRBc`bqQ(#L$n^qWAjZeJJ%kG|T?%XMm5@X^mpG zBX6WZFrKGQqrV-`Mh=yT*-W>@cwn6J`sQv zk_G76xYh?%Is4vQ7Z-uLDnZw8Dd5Va8bc_UkdzQ0VPu}sNYadcad8UXB2%d0@P0k7 z;YRl$CZy?lKw^y3==SD-KG|Ba?PoEhrykl!l?WtU`|9TB=DPdSu5iB9?;O!o_09?h zk94$-{cS%t8I5l=wY$NM@9ytQeF)v4@jeum5Rd?Es@hI_m#Zv%u)E$f_ngRrU z?Q3;I)o8J0bW1zLr1fGMU{E_OILS8eEp>A$nC+*XWBG)LsX-O+nen6ri7#BoWZVWl zd4UbU+cD9$bGrN3aOAjV0;-n$jf45F4jN#>t6PY2Mj9=hE>xjr>Q(W-F$9*|vIzxA zoiSu@gaGp`5M_{i4wCpO5va?Rx7-dh@;7wLi{J~rxB207)Bt;X#q3>%j)ai&(X7vO zMDRJxG=Ki^IMrdcbH+3sP#(`#coO9jfq`~39TIxD6>nYFOJxf7$>!c9FoKW3$oE*x zDK%ahEu+sZ2gZz^KAO3;ip=9tUy3#+(~e{i$(8RE0#46IY$|f{5kCdc&jZ2EKjVw! zOtkPob_~wD8)nUfkGPG$zrV9;^8Nva)L;$>!L&+km;qT8jts@@xF4s8-3NTYw;nmx z7QhXp=vBE%Nt9X+D6+i!^guQ9^F6GDtAJ94v4L>eNI}jCWCTY(r_1L^$fwKLHib|~ z%`xkis|x-6bcXg#JeMWC^QavrD@$6lGTy+YXL{ayj+)gTWpj^yZZGCV1KS@*76k&R z)Vs9lBGlf1_Jc`d0~s___{ai>D|$Zw()9O-)T9sb@~>VO5)| zO?4s%1-^KnM!`J2Dy?y^9cxWMVI%pSmCAL+^^ar`fL`!9k5&x~ds;~Bp{otx0Y@RY z8yfSyyQ>@{7rS09Oa03Gd!;tIWuN`Y+P_biPihsKD&T1szRm<}MjWw+$vTpKXGroe zwBd~7gc{li4i1l95N>=gJF{A*XS&~LFokHc0+~y*2pg9LDS5Mxm*URKVx;J$sNGr6 zUdAQm3`0^CfDmIE&~XUX@!aftHkhI0oVK%6*foVv5{?AQbq{zx2H-)tH1BLkiAffY z-wU&03px{$d5f-g*JR&~Kl#ngD1e04Yy}L5rG+g$USi982HwR;&+YNr->e z`dq5+c1L4wHu~b)dXV4ej8p^eGkY@C9_u&@UCw##MI2Eq?;Eto^52)Ga{GP9bwqfRl~s0_M>KFyF6OZI%J`iRD4O&G=L8 z=OV7pI2Pcc83>t{Q1LM1N}mGyi2bnv3%UnAQ0OZzA{|%L&Y&e(6*8KtH7{hwc#%KL zdZ6(r5BolG9bHAHjkbTG=X z9i@vFTMN8YyR%}_0ol_6sB&Z=a1~z?i05^;%~7GNX|yY|AlA7JB+&TVREshoMFM_A ztsEzl>i}e;pwu@;5Z1%F=lzpcfEX#ia9g-BKT%V2o`Rnfoy6d{a*Uc1TrXs89au!A zrq@|(i>bM?mgfHcUgk27h3rio`MtjQP>Lf9zeLzT&-b=JD%8}|_UKoP+{+n}LF(PR zIW*fJrKwCDho$#9k8AQTDYSWXt*Kz35H(-9q}+=0OD6s^s;JC<3O1m{ogo=lxRc zn~ZOqRg`ZLAJ+wL9Sv#=9O&aVs-Xh^$a$-0xcPd)5tN+fVMzY~Nb1iVu4!EHO@nWZ zkmMG<7x2eN>3@;$z~dD*am#bjrhS+SzByE9+(~#Z^AX5cf@Ii55uZhvpg*P||5-0n z_NLkvIKg3_UrZXb&*_8{Kg369z9-F}(}~@0tM(-3LbP!HQ9Z~jh1x29-AvURLsjlPZ+i%w z_zd~$IvvaXV?ul*=4lQO&hLp&uA)*bd&81UwgA4$D>)#Jx)U$vubf^kBU(BCSe6EB zte`7~?50ciuu^)0}JPgkr~ zM*zCJ`Tax8>7CV@Xh09QfgHy4&$Tc1NCn$kYocl>+qcN9JV_TzhzrX`voK%MvGsk< ztgX)JIS#T?*DvY9pWV($PhwQdj8OteGX+HdSJR1MpxzSlRru6$!w6A{D}W&iQ;6qo zxuoxL6$w~@rEUf2*cbpzWCDcN7+^k&`fOTzwXd09)ljp=?qR&eHX?3jd>(X(l?6CU zuClbFJaOw(y!!i`I&F-1*mlHIjO}X4S$CWzDxPd53OJLB)_5Oy0W<24bUT3GPF2s* zvIntX8?lDYRU`$OmGhk1HlG3L*M1o45kxUEsCnw)OK%=yZgV z(6cV#109QjTx;|UY!%`+jH+t+nYL;Ms+$a}$Q-d&q*p|X1wSh&Xy$vM<%XBw2g97^0L4&NUW-ul2#-2$1KV2`iw zG3}?C3250C2l8O(vs?o@v>-9)cugJd*tY{%+z2J%z24F5+1jO@qr3^;`&;&Vn*(wn zH!1td?Pf*IE`GL8{lli`?56R)wGDi7_R{* z_rziJN$&l{V84QoWH`FPH6SgT3cz)Ee7xo0ol4|-{f*vOipoD8zI7S%P~mS74uT}x zP3;nS_3V2FLZopo(cS{eM~cnjJjb*Z8tLmC9#UA%UP;+nci1z)_aZ#vcwj8VjH)P_ zM`g2x^PKfX3gdO^hpGZN?7x{IHflB}-vU{1mbPeC9v=Gg2NMM*a?r8zV%N3sa6teD zzGY|MB7|7yEV7X!%|`Y)^O7JCJ2e9mx1;SL;|6f2CVrd^+Gvb#^xfv^96r2ag^Yvj zPEW3`Ktzt8G8-7^c`=kH@G8p{KF(H_guG}QnQVIc^&B|*G)<*DdZYhnn6a+3>`#Bf+HuJ_0b=n?(| z0h2Mvg|J%>bC&%WcMrZt8yp|)SCt`$z+LF*#9^(Z9;i<%%K0ZG@jnI4FoE*B$br~WUl*0QO3Lv_IfIu zVP#7NZ9Un{r0G}FUVm;vbNBsil;p5HfV8ojwqGWS7)e*6a-Di6Emk~|On3PVkBYMi zvVy?`kWuuxZXn38Z=s7ux6!~qOP%&GdBq_<0Gi~BAV0Ki3F0Eo3&0S>Xa=tgKTvEUm*-kq*Jj2W|~+liZUpsq}MJ67ioBD&}X`mSRZ2I zMFA5wvYQRkND^*RJmhG|*cl-6Hc+Nv=mn6I5VtL`LAG4KFIY_G{$C`4#ph`A6nd81 zsJwUWZfKWe3vTwRC}*iN=fz{`dLj*ey*qGH;~c3{hi7>`#>aHlW$A5`@l^A(9$EA3;0<%uBu{!&wD zrF@a)3P0R@ZdsvUq#j<7a#QF6#QN&m&USa78p0@G*l*^BNuRL zw<62a6oMn7uV1W(U#z?*Lv`vrP*6L1UT!_Qbn_m*$Ra0{!`EqfIM(A!+~$Yx4`NEj z9^M`djZs7+e0+omWYM?3FEfE!jR@cYQsI=C;iY6`w#JYGVoP!dQ zNX`&)glDF(=1j?9m23W6cc{b8`2t|7yYV`HXAtN|i5m+>1p(ql?c|-KI}NLyYzQ*> zRO|Zd;shRLpu zSG_!gs&r01f%mRDFwvk;WV1+5m{A+?6z}oO< z@p~o$;!$M9Ob_s)Y;nhi2K zW^mv^>FoJLkVI5LMI_k6cR)kdn*kKi46@KuAPf!W!!1v;M$`A&O6|?l*9R9&mns|C z>g4dE7X)$WM(>z_V;K>?hjc8|?dSl1(;$fv5MTQZ$y){C`yxwffNM)J>w2NSfeo>K z6wl5<2uTEds6TQ-GqgCgRe;gh$Sm(rgEG>w^D<2dY3+qCsne{#D*JQOq;a4(&m-Ne zp{xj1Sys$G$nY7;`q*GfewqwozL`KwC zDH&5{Iun`Vym?3776N?4GbB4)3e!*i5q^s$UR=azkgKaSjnQN7<>RTOgWYsjh^qc@ zTguNCfhz)By{~~I?E$XD_yXR><$8GX&pjwPU}4R)kVlKpg$A;wTp3@>omW@f2X-$y zw>+6L4sD~q*^$Y9l>0MoL>snFPpXXg%mHlwM^)D@p&cvs$Cz&C4f*fv?sJ9!Fu{?7 z)Q$I{~1A63NYb)Kmce^EH)?I4!in zh;<+R47(~WFA%b~qGk$An$4)Wp?_N>lbL#QVohI$O4DGeVFUKv3aL;^<}OeG5gQ3@ zve_G1>gZJK|J|d^C z6adKTmltxc*28U=pjUvQ@##S4v{92x+25#m*8n8^ODADV+_Wf$4N%zNcdG9}kO{h0ZT?#voE@PBmD`KIpj^B_bh|CntX-+eff(uflT!wF^cCOc5`#; zT(dJ7rof&=>FLHIe$T8`#8%UDaPS$=J8WYAd#Tw_o;O0xz)bDdTYbi~L}D}CLK!Lf zMOJ1lxiSR(T z(vNitnm5)+Ba(DRCix;i?N&yww8Aq%qAe0yn#eep7)F3gbh~m(Ce3?@v^ZPdEa>KD znk1+lB;i*4<_pL^%w|qh-}6|5lpuxo_$Y~Vd}JX;{tFpVSTUBbdGP`Ca=KI0=9sAY!nD&wFRNYI^V>dOA@lV6hDX|*Tj1?Ze!j`Z^jbT#L z%xWoZFeI3;`?1B()tol~fmbXkJOS_+-{%{OE`g@#A194T&S}SB4ha@;Wo7U%0}i7o z-!2>vL@z=jY3HzvMW~wv5%V$2dZ>!CyKfS{c*VZW4>qqGHv1<3xQ_!;j02%iY0~bt zt}nt+tgF9Agk_IeZ(J+zk_?0yJdZC$EdoB=`c`ArLawK+UR+VJ@RE;t)+~($k0Jl7 zkYJHgd<20ljcx#^FKf+iPd$$1E+Yn-7h$)HXO-x?jUKr@EAE_<=9yTqPzL%d%ybhSZMm^+(WjO4FCpF+z4~Kio zbpbk^N4@8{MOt8$cbGHsVTs5m&D4#GQIz z^>`85Xh`ip_!)W-1`3H8F+UQ;(J{1 z)!9Dslqm%b>l%KyrRZXRj=~f1cz`bGVX082!?z8ihz|)2AZsldD(T4blCUNBbZ1ctf_~92J0x&Qg503_%Qib{x9qL#yh}a_w;Pc9?S(~XW^+l{P53SK56o7sf zjt49Rh#WOHQqw@E7LZP9N8Nta0?0khNYh#o>Uwk#ywl^7aX*jN_Zpf?N)xHYLAvD^ z?kf=O_p?(|E_YM&9I4Yh8z|(B0_N|(Ls;yi!`0-R)m03ZFRG_rf#ByqJON+ynEC7Q zmJ4lf*`K0+Um3HsX$N)Qbk@T~=UxXs8up7}x%g}klR9nrhe5B~C%r^dHGYfnRAD>n zub^x*&?fsO6*fBi)#P~8`E>7t{a96^xw3$Hk+mHJui-FNXHhsQ>W>A^te%XwU(B)m zd_@4Rk^CS8>IpBNb;y4&h6bp4E&~d{trm7~d&fVGDH--`xdK3F2$A%boQOuc_ckJ_ z6W7EUWq%JwMvYT|2Z%%#v;%H=S-WD$3Ja2` zP<}Oo3_?LDonqiWW6-ZEs_(s5%n9wOpBnECR^+@X79=3}VB&x&RWFPjNh3tOl$elR z1p((IGli+296Ge50 zL;hXGe(R!xuaAXex_z>8%Ncji8W~8Tm)MM1^oRh;N|xVgDdw(j!g=3(f^G^0_l-FN zZex%!AT*#da0mcUq2A8{3VxDy`LzhO1v((@=|gXQkI{_m&8B+pLJ%Y9THwkL0ny?-U?V~4 zT}()k`#~RHJ^W|FZkPAI3K9l^0_>`dr6CTFvxd)L=I*9EjpL2Stvz$9KM43*0^HY1rUNd;?bsw&l-4cY|Xt6Z3W4Ln;;K}ljwQ* zA~`Ar**5QUG~YJ_-8ZQ~B+bqGX+g=;+lP=DEe_@Z2;Oh4OnEU$U?3JS&>5vdb_yW| zR*)akDzUmE^dbK`8ye}imzu(yxnXF&*9p6ya+mwC*-c8U8`~V`7q2^Use6KY$Y1%z z^1@|+8&g1j@vR}CwtYeTg$$0LqWcPYZp(mVamVYs*yyihK}?hNQ|q1W%ej~V1$}^( z2>Mo}O7xpTsd(aZOIAW*h5%h~~SC^(L&p zk3xOvGVNW4+cKN|+Z6N##k{vR+T7kVykrn?52V*H^t%CjIUuPvO7 zvkKl1u$3ATnglgy0KJ=WFE?|WFFZy;&!$a|SIb~SEK!wr6wPFSs^hngdjaL|k5h~| z;&F-MFrQ3~JjzWQhCbnXxN^*r5D3RB4>nBBkHwgPQn~kJ4>8p7@A$rd)QYWPkRpu^ zNLkbRVZa6{wB8wms5-0`mOYd9LA;UTi3aWfNfSwPMrN^K&vz(-xDWA$xjdaZ?e*da z$1T7+tr{ylN}o;_-h+N^ye~R;ZqDUnQ2)Vh*MSUx!{RX3vtqTDXt1iysP;sGfqJ!4 z>yiHYsRGHef#>UaN~Qbi-@!`{>`RUg86ff4A$;bh0NQh=?=x1b&hJ zy_?|>peb)R=Xf)j|6mCw>f^b!Ng&GYw53eOmB#qioJFp5th{XyRFZmh+KrVva=?h9 z8Pyn5@8*L-URPv57i;$78L&R-@Z1SZT9B>TU;Vy;qpu>utXIj)OKXmdM?~te-kiOQ z`VPc9>qsVIbW{gAT$C~DwwOad6KBtj8te+Pu*H>o-$y`6oa|7Eb^NI7Y~svo9{OWK zw1))IQZoBEM)BgVV!WH#G?oRZJo26<>2#%twyMELw1hwTVF%*AY^%Zi_fwx!j@S?< ztT~c?MtqGNEfaJju=r`f{j!ZjFFvsZOm`u|Ho#KNIt7Qnbq3Ua0PcFLe$*W4Fh*VS ziz}Qv<+SA)Kv1C(z|}8hlwi^O#y~w4{0|dsZuawtIdY8-q_0V650q zyMa&&zMc#=*h19JX~RgZCX<=mn|<+bCSjv?K@zszxdGHs+yqx10p8(?yLmk`Rh4tm z8EgJ*1eI_G<$Pd_Q+*=soa(#GLBv58$Cv?Sh)m^lly>LRNN$tGM>S*V$`UA|ad(2C zfs{UcKxh>s&>%-+Rcf-2$cK6RDY&6Mbnwd(tR8{WfPR=v2UGiNY5}50u9I(9wgKvLSCn}Y{}H%5 zm#7$)_W6MMI;=Hk02*t-x^C=kZ*t6MTnC|eDLPzI(n+@mspXUTl?#Pl(0u)V8L zyUBd{9Ty}FAB}0RZfnOg7?vA+@HczpFh!jEsnREA0_UNkxeRv$+_1f!e zzO6StPPsKFFI$36;J7}-g z>%IW)y35sKzL@I+I zNu1{?B-b=4)&Tb+d$lq5@k>HJhBGOz^Jo##w@)el4(iHWGa5nQuo5HZE3M!?U-|Cz zj1|#AxLzP0*Dc8lDzOH{Red06#(3mvzUv_Rln^mPOv2M)tY~Io8$yMym?Wei=z29d zw#MtJ#ITQu6L>MG@B^1saY3TXpkO$LdrZ5gk8GqF*4)U<_RJ3Qowx~)^pHDo_;^ zWPf9wVe^i)!q1NewGVm|sfHl^i%fB}8DHqMi)&ML@E+FN=z!yDd<;hAHLO~q!$&B8?R_&3J#z(Q*0b@IBYL;`IM7PQdya6PskEK^)6>Hv@2vWs|b)glT zEJK2?cnSZX_P#qB>&EY&E3y)@itM74y+>Tg$ljxj>^-t6D~W8W%w$KDj8sNsWnIV> zLe^d6A|oT4=lxOl{r!HQ=Q+P~e*gZ??{-dq+(%v4XT8U3eQIDNL-(LdgD;6cJIM5HgqrAswjphh1s8AhZ&b1XVFh1njH zZd<)z$eF&a7vXb~6x_PzjYo;|!4#gsEH>H$V9QLo@DE$Tr}&sWy{1HrLbJG1>`6A* z=aXTqZa4EAo7P#%HNgNS#tv5S6p&rELr20q3rdV|VV3KE>Pie6<9TL@d&@nYSkYyheg98 z0@LY&1y%~VU5-cZ!5~-wKuCYCB3Wgp>Xj#rc?mMy4E8T9S;5n+uuXe|6M%3jl$_ZS zDB2u>+1sox(~8B(HR_>ELoT(R8tJ6O=J>?<-4#fyw?6eN9XxwBhFU(fBD2O5FDq3C z-oXf~0=vI0To${h$_=EeLwx;JNAQ;r<+43P8%QTC*P=g&3Zz{+%JA15xD1_rcW(mU zC+|{FUwCPM^Q#@>Dmc(~21#bh+>0EEQCT1^3XB(iKnu(Xj?O*KO7Lcv(8H14?wOox z4)bjnEP~bzxH%zp<&fa?)i4E19LN&#J?yq4?_)TEd^1VHvPnGl$VZOsR{=AENCf!P z!kd@4b^yfbgk8{fdky#ANBk&{ABYm+h>+#^`msPYdN#Z;b>htc^7aB$dL7Hupl5^DC0mAnD!mhT3S@xxc)gGG z(z@RVboRP113ms4#OG=gtHzxd2UASrcV3J6cVigRnlV*bA0IK0Ek*L zlq;@NBukKKD;Oidi0yb?0BFI&D6i5pC3|yq9A}bje{f#!7LI0hh`w7G6;=w0K089^ zS#Cx3$ey#~j4d|5vK&u3-vZ~UE!evI%dM3w0&F_u5QQy}C!JuW-~yEvM)!ifQP=J| zp->!}^|xM^p+*%^x!l`03Rl`b-6byAZdF^L9%x_CFUtfJCi`fUey9g@a;89GjQFX1 z1nIkbjuipp!G!NFhC%RiX$HezV~4-Urx8i(8nzL7mZeG!7dC~gnQuB>r~E+ z$cS*FWVYoHX!>o|=MYvGiuSQg)6jOTu>~zQJwm>99jXB>1*_w)6;Lz^{bf>_Ta@ZH z@NB?DWQ(UTt-(?9K9-dd1rkC^@%Kd32()~>hJ@3rk9qm&Ueje{z~BPM_9IZaWo%9m zG5eztp?Sg$Huq^zg$V-ek|tn%clH(zCeGa%v4#%pT$A|CF@ryL#eJ|~Zhw$$e?*Cu z>)$AL<*d}oUUg_&a$$Cox8!TXbRjv9KGEH@c0?$KdwR*A2B^qnD)W^Y^{;z(pGJ1W5BNfcnooIFexjT@Na z+R<0cT6|O_uiK1<%6=Bq?DVv5vd|2tVO-KGYi5(3M+R!x1oc4D!UotV@bl@ZjQ1?| z=8Wu&nr&2{WhNIVTLTO4fLwV>joZEm8yWdTu;PA4Ce^!G&0onuob2vE3MpORhbH?7 z#@}?A32&?haBS9Z_qXS#?PYh;Xn3v)bI=7pxdqm|t(}PjUY1+SVRcAI1V9=L)Sg~m z)AS9S5pQo48JAmi+SxWqOt*>SLuNsG=#wG55;+q$X{!-WB2H_WWQkL%!xEhBF3f3b z4gl(Kl10tv?}N+G7Gz7F>jOq=$X58Q0!hjMDB8YXzwJA-%q?SpzPQ2r zaN^Yt%fV)(gFnXpNf0NpYt6r??fEtiMc>Jy$aIhnE9|Tw+=>Y7|e#=Qx ziu8-`o2=J^$W()l>XMS;25dciXH_30A_}vIZcG_h*9uh3t_=Fdv&ix)$DgL6?SLgr z&_o3AM5&JhtAOoA-Fs_?uO9Nbp@t zYcRi=xXn7rflVar8dANmGF5!*Huapn9*}XR zDrBg#0M^)|V+WJAHD7Ym@fa!#Trh#rLRAmh3KixVmX5(w@P z+`rce_arXwLrhjsG12rFrw%fb<>5yRes>te|ggvQJ)PR^nf z2?Cd&Nj9_!4@Ufx6Q_KY`| zF@`PPpQO{3LsGlnOAKrMijof5J!T&wjs=tujnqvV|KSm$ma6AjYVX}Ry+~h5%RF#l zWE)@wq^w`s&&a?$N6OWg%uK(uA#SK0mHOWnPVIH<-(Z?KqQG!38 z`DWj)r|&KUC05k`yaHod_bJrHZ)>nqcOk5c4#VOU-GFV^BasV3!88quSu8=M){Gv< z^Ne1Spr+0=u8U;`{~Y0NsT#VhU~B=CF@id=Rb8y%1Q)h?Fi`4UP+x(^^AfU>v^riO zMcK{{@;ADvyG2ed-cgxh=Y3Cjl&L#YK(jxK@KDJ3h~yrCEUKK3N#Wbp?cojA(T-e0VbIz z*OL?vDe!IEVm`JxRc}i6k@wTD+bi2OveM_o?0MV3c-+Z4c>x~TvNuPZ0pC3t$PkYT zYg$oH#&D3D%hXaFp0>;G$3Et5B7L)Y2pmY8Y34`a`QX!qn;5Nf#GS4utQPMG>veKu z)EPwI%g%|y5lcSgjff0=Vv&#BOvnG%o2l9D0x?3G*sQ*6((7QvAK zQ}C%?vSmchv;*Px`o~0r1tP~-s#}c*!BO9?8;pf_Gxs&cvOiV;Y>A}aAl7`az1tZ+ zr8X**-Ja!m3%m*DXL_9cK~~D=L9bQGp7QhML9RPFk<5bYbBfR8!jF1lM23*@8naaO z7?Il$8N3{g|{*BHdyGFMbB;xI*Y7MF|Y$jAC}4~%}ol&r;3h1l-yI0JKv(YnN|qdqSI5kn8Tvi#)_<+Ly8 zl$RyPzW`VZi7FR*zpgl2^ct|qg87GI@s%rA)#ZaiF+8VhkPD@L(3jPz0+5#$<%X={0jQ09TFIWUp{$Me+hgo^HLXIha#657cKqAKOXw5-G@x)`x3XV zfqIEb77#Edj)M=az8`3Id*`P1^lIF*8sVuRbFwfhd=fBoisRGchfaG9bgy|dFZ!AL z)*L*V<5x}bdbZ#J$j^0IS%c5Ehc!h{X9-o~Vt9Bo)UQmyU zl)BY|yIdc*-aS`Soz@X^|L}e{=Km-_h1x=HcxwmnCr;T1o;rfUMc37}R7veN#r4#m zFiTAJwFec00R6Y4-`{}$Et7U%M|)>m?7Q^d280>;YHli9*-`m9s7RV9_fKaoQhu|_ zGzJk7I?67^56yFKu{X`QWR_LSvoSF8@74?SAzhe4x6o|h1 zadmT)8C<7*4Zyg?&OMareD6G=>g)EwQVz|i$TpMFYC#xPJ_iT&{UnAnq}+J#iZ{N% zV}dis5kzTsmwo+atFReo^%Eld(MwT#l*@AHBpsH8x{H$i1|pez zQ|cFxR4=&9I+M1}AY7~tJYM^p^}2#6#Rc@;c9p}%Cjaf0dKfwy{(hw^OQbQg%MHvbC=*Ed!yblvn3@PC^Oz_W=DQzR=fi6?!A>}gQ z0z+JV_+mhTLWU2ED@xR6HL9AZZt3xa6|{@-okRvU@W&#J3!d2yPz`*Wie#ZvR@X`w zzOucs#0RwOePxy);cFN@cQkw_{II9P{*=pJ22Jis^b{1(*2O;ztgbPlBB;f^XA{Bm zgSaEuVV_6=8-U8cStL@KjJsfI^H)4=NedzugT*G}Q80P9t{PAMVlO1KZ=s@$5()$6 zvI`Ip#fVq6(mz|M1-)nc#PjaCOi*Eye0Z41j^INJeor<&GI_Y3yxz|fCAP^3jh+Q~ zCxg5oGdII>IsqxhzII~8AT~mX#Yu^ZCMPJTL zora!sH`IW@+o#5;%v=z1U91Y8ub9rYu@@fZo2kG|ZY3!uHuM=0PvkFrZTv*iDB)w5 ziI2}nGD{ZzzXtU6zRxDZV}-V+|0v1FE-$oL+_@Yb~F4`Tm`<(r96QuPParFow5VhrSWRtBg8Lp@k# z!3SGf0^ZwY-<)f&-E;wTM1~eVrTds>*uqaJptya-Tt2hH25_J6-KIP;t;6p<1PMe3 z4Aljz=1Z5oYlGKW}jXTlcoO3V^64KI5v6>$d?A~@oqh!)> z>N(0Z;ti=M?F@IHL6KChS?g}kW2w08iH48{pgt8mJw5Y5go+5O-|nt-O-EmNkqFC4 z=78Zbvs3;lRM^9AJxLx01_yma3j?UhLor%iwJZYQRC$rD%=yLJHhTGBnX%;p1waz; zh-W)jfT6?OZbmquZJ92xYW`nG`PGExiS5AR!(TE2u~1N$kSBjR0u5SYB$v^X3ceGD+p73N#Za$aGB4=*;54omN{YekEeRuDRD6fU1Fgdoi*i#~;ZAAXjz@LuV1( zHa0LtWDEa>wf&4GI+WR))p#e#?%}lhA-RvjDW4Q{c+@Bu7KEk@p|SI`kYlvNK36&F zahw#nn}$%H9|sxZK<+jA#owVlYP@t_S%CmF!*~_Kh@~G%A6L1HrnI`c(9hTXZ$L>$ zYNx;!r9UL&OoQg+A#9_ArupXq(d8#tQ>;Ulf7o6z(Iuql`nUDJ0|cATGAO^`6Q4)L zj{j$Ppy~=#zmCekREYD{8v)X~*M=LNfDk)@gbk(m)8~N&DbuZ%?cus;UT2J`CRU65 z!L=}h*=L3Gc{^J(!;&p~m=~F}$mn^6`6!f_o=wL%ebkQQRm=J3r&5#mariB3k$65Q@$u59=nb`zL~M zz14}+ z(7dQ1s(@l{&+nkNSGViUa{a5@plNQ#_zM?V#kc-j!N@>6S0HaE@;@= zK{$`dnnbMPgxw-^Ru7ia-L&0(&HbkcPuj&a;^8qQAnynO9ZW5VUG#*PWE2SmFy}(i zbR>5I40J4Hbl8e5S<^LDttk!O>;XL>#(45_xx-u|;5FDf@4TO3>FlcRXN0pd$&csG z-q@zGL;Z*JP8tH#Z^*cd@C! ziTI9*dTo8B-;#N<`5XvvDzBvFPZwsm36>~q-`(g9{v}j->4k>k>%~35ZQRDUhiD%H zP&$-ahN}$z8Do*k7zuTIUa}#Lp3_o?@ ze=IVaeV&`?V7!DNIT|*UoZV_W!B-@=>IZY7)IQGbYR$D&w>usK21Zw41nzD-TSFz^ zw`D34uO-ISXJG$obeKdvL=={RAH>CC1nCbI7OI~oVwy!0EZu_%gsYrD68&$vi^r}% zq80~Y@~s4ely9j?0kfcu%8#a_RM%7*b`?}a54AIMUftgH^<)hnhg(BFG z4pq_@P9QK&fcmv!-LsW*H>V=#(=W0I#zwmZB^5yqzzpiyg|QmXGDVB%PY-Qem5rp< z3h4hQf|IHoi*RVObAx~5H-ZVLfF?LZZ-%*zBSL6+KUGVQEnA=Nzgth>{WTBNi(O-W z6RyE?egqJ6vbGcOk3#9jh%hXO&&$=_Stq5!fFNejDf!D#aS`^VxY+@wPJM!slZNk0 z{@R4{t#q-(!SHA41%s<=)5^3%+`$Gep!w*Ga;Kf*ZZmi=zi1kW{{r055H&k)&;sg; zfeo3RVUWUUjZ{sG;MY$rg7p`;>Aw6~8#3oIlE^Zdv3I7}XrSZ`5od7aXR38r?`k4( z7TE*{#-q(DoFxcjP=0JIwY)sK(o6c+XKOp`ISsKZ_vrC8S|t&o|E0jHj(w_W_=^>O zxNDOH#s` z2-)FO-z!J_!moC4(gaq@XsnB5hCJ@s8A6mQ`iZ7EqqU=Ie-X5nPtvL(@`~u!*9UlR zoTpSt37u&kJUvN6eCKhf+icF?ULjw5!s}1|hgT^19cVL>*t7YZtDT2>etc31L#L7; z*+IFrB~F9!Z`>!T>|_aDGwudCJfawL^quX?k<0jMvJ>UltF23gcv0L*9QIv;!qmiG zXQNq53B0kin30@O^^}Vyf~9s=Mk>Vr(=(*PBCj^N@OnZNH|p(0O-i79HhZhiAlo7R zJSjnw3cAwUfx8>{oI4+-T}TD+gXRixnj-U&3t&#EB`TNw1WMDNh_45H@pZVC;Q%r|eCIAYPf1LMPd@MP`DM=R zrau1Vuuyt}wYDFiv`qqrq5V$KXXq5w0mp6vDP&AJ3-KI4Hk(1QV~W}Dzam9kB1NWaF0%*))QWsXObZ(>67ScxfmV_ zarPjt=+oHkYAHgLC2RJCb^5BQ*oj;;D~gz?Em81a{-jLL?-K8gQ0cXGK=kC+ zI*sTWr&YJ=eRjMQ)&SXQo?qj{u1-)$CYqrTn?*nejK1k(cZ--%S5EZ3%=_b7A~sOF ze=4#->%XT|;*7q1O^b45vBV-V_+ht+XOm-2oK;Pw(Sc_tq7il_Wd0Mh@5y|bdWVUM zs}DS%j-XhFj)slSVlRB|L9L{8uMuJLz@)h{Icl1z=m9)YZUPoAFEzeK z*hUMrR%)CG*vP_>v>|Ivy_sQn#6|r{7&#QL1H&c=DQU@SUhRo&Npp;kK~N0x^}o$c zxdQ@$)PX3ZN>gD)ZQjePM+S>qUZ;V<1<6m{9SYe?`2z5{&JXq=)%%TL9PG~PhFP97 z;Ao^=qbw>t_XZ4_ecikHMo!W3cs25M2MDkX zh&=NH@eb*Hy>poK*G zsBGG$2!i9`i34ZpOZpaXB)zDd)dS*rRyTn>krhrjw*HY0It(b4&oGQrZ_vJT2oTw> z|Mkr2{vH@kwyQNr3>daGPa!=-YKPCE_ZWAPG zI%MvHrrKVyPR2?ygCh)XS9W~bYl{nc>jFba7(=mneNBf{H@!XWRz~aE{?Ut%wdj~oe z%vwHQ!H2!`p#7VG3U~Jt)l3@z9Nds225`T!kVn&LFAJ<>P*KebD1L zEtb17RfKR?2`wyW_ouflUKag55LO zKerj?Zr}=1wufD=x+Y;bcw90exE(qvWfT!UXgxpNgp|1tdChBr9w@}CddiEt(DhuD zBV*m2xWj+|ys%JWxSon&%0qQ+4pLn5&tgyo5WF}i+x7_ zvcVi_x?IUj)z_B`l?O@OEgfE`7g$JI{rkNnlm@8u17k7zk5%pvkerN$D3tEw_dzjg zBbxEE%B`j9sd(|9SM*R`LLm}&iKG-h3trflqs)nLI_HQ>&1wxH-rmmBJ%!gyl1B8b zHG!4nDb>?Q{v4#l-_{i*t5|?bZlh8$8=%qt8Xsq1LatS(x2x7i;YzO;=pG&b#K!;K zrwRaP{5XI566u3RNba!x?NI4QFQ`1d(c&%nNt_7!3EVc63Mj-D3^zw7L<_sDXo01L z5bCHOcn{kF4m)!g5r=bTigL8Lfj#->K667sn#3dERnkv40zXn!3(;WW{}~I1dd{(Ab)SBoVFnCWLc4A7l_6|mCD?dMbb}9aA2(j%up1x7CJ5!?Ynlj1&%P10BX1pAuID7#rVs@D*ievY} z?o5TTK}dh@WH{|Tw0!HyDM8uLvjWEjxb+fq3h9MIP49{xi}0M9X-FR{b^C=oB|iP* zRqw_bt~Tsq{lR?YFNwW{R!Qd!M<$r8G5$PSdU%%Gj%%Ok@Chi9Ly(O5mIQ~<x^ga~BLVUk@K9;geYFD+`eOmf!ECU1cbKxBmiUCC=QT}y zJszmWsh-LjXoM+}CdTUEu8f2oehm63VP|J2LjNN#k4O{0VRiJvRG%dc5;oDDDWQj0 zqbuz&q}KP&4_!{xOp7O{LgOLF(nwcSRKzdm2zd*f#;a&Fp)lHgtj1vNc1eEz8P9Wf zaP2k4!mDLLcBg%bXCDeR;Ub%dEljO*fHXj|!V)E1nk=n1UKzj2GrXNH%u|uCu z6H*ptC_D^eKRgeK((3od&oO1c-gizsWnlHl>a2 z_g|2}H=9;)Z`0A!;{c!}5jYTo`nC z_K0na(MDUw6*l)CJbILVFt^<#oqINWK8_DYCd3rAUsB?0(-qGDnCFs))bEqfp4|vk zHS&ZVMwWob-v-JjydWd_eYCi@B*EO=oDIw!hjH3qE4cXE$B`CqCRIt%R3&7lnDhIS z-|#I1l9sx>js#8ZZmnW8EFk{wYjAT#DdEP_gqWBalID##_-6hp0#mk0q4tDnleeL- zRGiZ9GhB(P=?{P zg1u|;`%2=4&764Sjk`}`SF;^CZg+L4m|4K;vKLeQUg5cAcxgd~Pwsm4&l<@{b38bh z3$68v&O%MzRolsfzi-va!`qU?`AP70F<{Yh$P^23$3xgMrG~T4(FAQQnhn1Ts=WoN zTb|#0m_Ui|*WIcK)g!O3uIg17|6@^A-#dqQBcy{%uzV+}vwo#b`0gbSnI}DO5fH|k5k^HGsQoa{0Ox1I= z)?)5Jk$(h+py;DG&{20FNgBMyforo#P0W>k)b`D5Q|Zksfz$Jz-#;>8Z}J{>e4fGo zxZYjnYCLk{64M*k=Z7@#q=8=uprfPfL_pJm6!ZI#XO<>0B+WoJoB16Hr3CPX1KBB_ zJ>xzF^kTqV#FgM+8JqK@;-?B1@a8-dIn|%~4_2J|T~Ho{jyGLBVx_1UK@y9^egMXr z4t9sAd1&w{KIUNIsXg`HC4;lbOYe_1?3mdpQN>RxXRoOyDKp!go=D;goWoL2)oEdC!`vS`S(nw>?>AQI`3vP z^2G*Nn6IsFHCt-4Rvq~s84~pQTq2QAZ+c$6FDz?VI{5XXa(`<9}cOvJ;PkaJSlb>`(gzS4%ATl!l%^PDRenU}F(T?ES z(^%wX1^RxrpK8g?>-;~eWBRDRcXp~ugzVR4O8IH_WL>%d`T_pDpMg2q7R;Z>h}=R~ zfAj>~H+fTD$>k_CCyu2xUEpV`(znEQ4bzW>y;dn-LCX=Dtk)J&!lSRYnyW6I za9#R9Ryj8xXETaFyQi$ z@Zu`vjR%&(6VM5F+2!z`kOkIVgQ>ZCMMEP_-^i#7q+`>7ig_-Kh^*EHu0I3J++-~# z1u1d(7UA!X29xgx;%C#Nz@d=PLVUAkXTxN%7stQAg13zmdhp|?-d(OImlzhAu(A;?S)zG{Qtpc`sjAlQ zOB5LMn18Gl> z&cZU&4y>WZXG}+jfEM`|hB}c@XUZY;i}$8SYL5EwRn50o$cXegr+%k0$N%0`b+oLa zN$`BV_6YyMknCP|u_K|ck^g8b<5_YBs=+-1!l{gd+F=JxztR^8VpdF5W_7r8zoeH7 zQDuu#h8eecRqBRrD`kHroH7;}U5F70k*afNGALt%YV zzxo}=rOzF)>N^TA56)Bv>5^c7&e(_UzHD1h#(b-!nNs6_N^j(%hg=OH{gpwG8&W6(gZc&STK0wwr)y~a3RhG1f{BZ8U zC(xzx5LI`!whp?%Z=SfOP#~l}|8C(dZntZBE8+2vc5iJiBFxq=3zyG&mbYirEpB;~ zPgVc$oz?K|sT#~ZaGD(3zT~i@uc==x_xBMsots4JtBmXSfeU0ZcR5b6XNxuCwTqWKfx?M1qB5G?FbjysMuC*tz_VbfH#C}ya=!T0bxOT@&e zeOdRj^Z}3NjBHxr-LR3$5sUhXFIAjbkB1hs-+q+y;Szi*t?o|e^v|*GqH-v(-X>0{ zjvhv>g>x>4Hz6|a*u2KGl+4}JN{x5;00NQ2r;?KRA^cDMv7~oa#8_OVjn<#97mB`! z-{gI{mmL0(dSv%|Tna@O5fEc@=8i}I^I?=8S3>z0blr6>{5d +## Abbreviations +| Term | Meaning | +|:------|:------------------------------------------| +| SONiC | Software for Open Networking in the Cloud | +| DB | Database | +| CLI | Сommand-line Interface | +| YANG | Yet Another Next Generation | + + +## List of figures +- [Figure 1: Log rotate system chart diagram](#figure-1-logrotate-system-chart-diagram) +- [Figure 2: Log rotate init flow](#figure-2-logrotate-init-flow) +- [Figure 3: Log rotate config flow](#figure-3-logrotate-config-flow) +- [Figure 4: Log rotate show configuration](#figure-4-logrotate-show-configuration) + +# 1 Introduction + +## 1.1 Feature overview +This feature performs log rotation separately for syslog and debug files. +The SONiC log rotate feature mantain several configuration parameter: +| Param | Description | +| :---------------: | :----------------------------------------------------------: | +| disc-presentage | Rotate logs when they surpass a specified percentage of disk | +| frequency | Log files rotation frequency | +| max-number | Max number of log files to keep | +| size | Rotate logs if they grow bigger then size in Mebibytes | + + +## 1.2 Requirements + +**This feature will support the following functionality:** +1. Show log rotate configuration +2. Configure log rotate + 1. Disc-persentage + 2. Frequency + 3. Max-number + 4. Size + +Configuration commands supports separate configuration for syslog and debug files. + +# 2 Design + +## 2.1 Overview +Here is the representation of SONiC platform using logrotate feature: + +![Log rotate system chart diagram](images/logrotate_system_chart_diagram.png "Figure 1: Log rotate system chart diagram") + +###### Figure 1: Log rotate system chart diagram + +This feature require access to SONiC DB. All log rotate related configuration (disc persentage, frequency and size, etc...) saved into the SONiC config database. +Hostcfgd will listen for the configuration changes in corresponding tables and restart logrotate-config service. Log rotate config service - it is simple SystemD service. +It reads log rotate configuration from database and apply it to log rotate config files. + + +**The log rotate config files will be used:** +1. /etc/logrotate.d/rsyslog - generic log files +2. /etc/logrotate.d/debug - debug log files +3. /etc/logrotate.d/syslog - syslog files + +## 2.2 Flows + +### 2.2.1 Log rotate init flow +![Log rotate init flow](images/logrotate_init_diagram.png "Figure 2: Log rotate init flow") + +###### Figure 2: Log rotate init flow + + +### 2.2.2 Log rotate config flow +![Log rotate config flow](images/logrotate_config_diagram.png "Figure 3: Log rotate flow") + +###### Figure 3: Log rotate config flow + + +### 2.2.3 Log rotate show configuration +![Log rotate show configuration](images/logrotate_show_diagram.png "Figure 4: Log rotate configuration") + +###### Figure 4: Log rotate show configuration + + +## 2.3 CLI + + +### 2.3.1 Command structure + +**User interface**: +``` +config +\-- logrotate + |-- disk-percentage + |-- frequency + |-- max-number + |-- size + +show +\-- logrotate +``` + +**Options:** + +General: +1. `` - Rotate logs when they surpass a specified percentage of disk: `float` +2. `` - Log files rotation frequency: `(enum:daily, weekly, monthly, yearly | string)` +3. `` - Max number of log files to keep: `integer` +4. `` - Rotate logs if they grow bigger then size in Mebibytes: `float` + + +#### 2.3.1 Config command group +**The following command set log rotate disc persentage:** +```bash +config logrotate disk-percentage +``` + +**The following command set log rotate frequency:** +```bash +config logrotate frequency +``` + +**The following command set log rotate max-number:** +```bash +config logrotate max-number +``` + +**The following command set log rotate size:** +```bash +config logrotate size +``` + +#### 2.3.2 Show command +**The following command display log rotate configuration:** +```bash +root@sonic:/home/admin# show logrotate +file disk-percentage frequency max-number size +------ ----------------- ----------- ------------ ------ +syslog 10.2 daily 10 20.0 +debug 50.5 weekly 20 10.0 +``` + +## 2.4 YANG model +New YANG model `sonic-logging.yang` will be added to provide support for log rotate configuration. + +**Skeleton code:** +``` + module sonic-logging { + + yang-version 1.1; + + namespace "http://github.com/Azure/sonic-logging"; + prefix logging; + + description "LOGGING YANG Module for SONiC-based OS"; + + revision 2024-02-02 { + description "First Revision"; + } + + container sonic-logging { + + container LOGGING { + + description "LOGGING part of config_db.json"; + + list LOGGING_LIST { + + key "name"; + + leaf name { + type string { + length 1..255; + } + } + + leaf disk_percentage { + type decimal64 { + fraction-digits 3; + range 0.001..100.0; + } + } + + leaf frequency { + type string { + pattern "daily|weekly|monthly|yearly"; + } + } + + leaf max_number { + type int32 { + range "0..999999"; + } + } + + leaf size { + type decimal64 { + fraction-digits 3; + range 0.001..3500.0; + } + } + } /* end of list LOG_FILES_LIST */ + } /* end of container LOGGING */ + } /* end of top level container */ +} /* end of module sonic-logging */ +``` From d9c74cbddea332a796801b89b2c2409f86b937cd Mon Sep 17 00:00:00 2001 From: Yevhen Fastiuk Date: Tue, 21 May 2024 00:17:33 +0300 Subject: [PATCH 2/5] Logrotate: Fix HLD typos Signed-off-by: Yevhen Fastiuk --- doc/logrotate/logrotate_hld.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/doc/logrotate/logrotate_hld.md b/doc/logrotate/logrotate_hld.md index 1d4086b0cf..0dd379d1e6 100644 --- a/doc/logrotate/logrotate_hld.md +++ b/doc/logrotate/logrotate_hld.md @@ -22,11 +22,11 @@ # Revision | Rev | Date | Author | Description | |:---:|:----------:|:-------------------:|:----------------| -| 0.1 | 02/01/2024 | Yevhen Fastiuk | Initial version | +| 0.1 | 02/01/2024 | Yevhen Fastiuk 🇺🇦 | Initial version | # About this manual -This document provides a high-level information for the SONiC log rotate feature and log rotate CLI. +This document provides high-level information for the SONiC log rotate feature and log rotate CLI. It describes high-level behavior, internal definition, design of the commands, syntax, and output definition. # Scope @@ -55,13 +55,13 @@ The document covers the next CLI: ## 1.1 Feature overview This feature performs log rotation separately for syslog and debug files. -The SONiC log rotate feature mantain several configuration parameter: +The SONiC log rotate feature maintain several configuration parameters: | Param | Description | | :---------------: | :----------------------------------------------------------: | -| disc-presentage | Rotate logs when they surpass a specified percentage of disk | +| disk-percentage | Rotate logs when they surpass a specified percentage of disk | | frequency | Log files rotation frequency | | max-number | Max number of log files to keep | -| size | Rotate logs if they grow bigger then size in Mebibytes | +| size | Rotate logs if they grow bigger than size in Mebibytes | ## 1.2 Requirements @@ -69,7 +69,7 @@ The SONiC log rotate feature mantain several configuration parameter: **This feature will support the following functionality:** 1. Show log rotate configuration 2. Configure log rotate - 1. Disc-persentage + 1. Disk-percentage 2. Frequency 3. Max-number 4. Size @@ -85,7 +85,7 @@ Here is the representation of SONiC platform using logrotate feature: ###### Figure 1: Log rotate system chart diagram -This feature require access to SONiC DB. All log rotate related configuration (disc persentage, frequency and size, etc...) saved into the SONiC config database. +This feature requires access to SONiC DB. All log rotate related configuration (disk percentage, frequency and size, etc...) saved into the SONiC config database. Hostcfgd will listen for the configuration changes in corresponding tables and restart logrotate-config service. Log rotate config service - it is simple SystemD service. It reads log rotate configuration from database and apply it to log rotate config files. @@ -124,7 +124,7 @@ It reads log rotate configuration from database and apply it to log rotate confi ``` config \-- logrotate - |-- disk-percentage + |-- disk-percentage |-- frequency |-- max-number |-- size @@ -136,16 +136,16 @@ show **Options:** General: -1. `` - Rotate logs when they surpass a specified percentage of disk: `float` +1. `` - Rotate logs when they surpass a specified percentage of disk: `float` 2. `` - Log files rotation frequency: `(enum:daily, weekly, monthly, yearly | string)` 3. `` - Max number of log files to keep: `integer` -4. `` - Rotate logs if they grow bigger then size in Mebibytes: `float` +4. `` - Rotate logs if they grow bigger than size in Mebibytes: `float` #### 2.3.1 Config command group -**The following command set log rotate disc persentage:** +**The following command set log rotate disc percentage:** ```bash -config logrotate disk-percentage +config logrotate disk-percentage ``` **The following command set log rotate frequency:** From 0a8a9ad631a252b9d22007f26984e33d7396e5be Mon Sep 17 00:00:00 2001 From: Yevhen Fastiuk Date: Tue, 21 May 2024 00:18:16 +0300 Subject: [PATCH 3/5] Logrotate: Fix YANG model acoording to comments in PR Signed-off-by: Yevhen Fastiuk --- doc/logrotate/logrotate_hld.md | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/doc/logrotate/logrotate_hld.md b/doc/logrotate/logrotate_hld.md index 0dd379d1e6..c385b7cb4f 100644 --- a/doc/logrotate/logrotate_hld.md +++ b/doc/logrotate/logrotate_hld.md @@ -178,7 +178,7 @@ New YANG model `sonic-logging.yang` will be added to provide support for log rot **Skeleton code:** ``` - module sonic-logging { +module sonic-logging { yang-version 1.1; @@ -187,7 +187,7 @@ New YANG model `sonic-logging.yang` will be added to provide support for log rot description "LOGGING YANG Module for SONiC-based OS"; - revision 2024-02-02 { + revision 2022-08-27 { description "First Revision"; } @@ -203,27 +203,32 @@ New YANG model `sonic-logging.yang` will be added to provide support for log rot leaf name { type string { - length 1..255; + pattern "debug|syslog"; } + description "Log file to set logrotate configuration for"; } leaf disk_percentage { type decimal64 { fraction-digits 3; - range 0.001..100.0; + range 0.001..100; } + description "Rotate logs when they surpass a specified + percentage of disk"; } leaf frequency { type string { pattern "daily|weekly|monthly|yearly"; } + description "Log files rotation frequency"; } leaf max_number { type int32 { range "0..999999"; } + description "Max number of log files to keep"; } leaf size { @@ -231,9 +236,15 @@ New YANG model `sonic-logging.yang` will be added to provide support for log rot fraction-digits 3; range 0.001..3500.0; } + description "Rotate logs if they grow bigger than size in + Mebibytes"; } - } /* end of list LOG_FILES_LIST */ - } /* end of container LOGGING */ - } /* end of top level container */ -} /* end of module sonic-logging */ + } + /* end of list LOG_FILES_LIST */ + } + /* end of container LOGGING */ + } + /* end of top level container */ +} +/* end of module sonic-logging */ ``` From 5ff7810e3e6743467abd5d5ad89327d97b147e46 Mon Sep 17 00:00:00 2001 From: Yevhen Fastiuk Date: Tue, 21 May 2024 04:07:33 +0300 Subject: [PATCH 4/5] Logrotate: Align CLI tree to support defaults Signed-off-by: Yevhen Fastiuk --- doc/logrotate/logrotate_hld.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/doc/logrotate/logrotate_hld.md b/doc/logrotate/logrotate_hld.md index c385b7cb4f..a3362d5ea7 100644 --- a/doc/logrotate/logrotate_hld.md +++ b/doc/logrotate/logrotate_hld.md @@ -124,10 +124,11 @@ It reads log rotate configuration from database and apply it to log rotate confi ``` config \-- logrotate - |-- disk-percentage - |-- frequency - |-- max-number - |-- size + \-- + |-- disk-percentage + |-- frequency + |-- max-number + |-- size show \-- logrotate @@ -145,22 +146,22 @@ General: #### 2.3.1 Config command group **The following command set log rotate disc percentage:** ```bash -config logrotate disk-percentage +config logrotate disk-percentage ``` **The following command set log rotate frequency:** ```bash -config logrotate frequency +config logrotate frequency ``` **The following command set log rotate max-number:** ```bash -config logrotate max-number +config logrotate max-number ``` **The following command set log rotate size:** ```bash -config logrotate size +config logrotate size ``` #### 2.3.2 Show command From b81d5b9c57c2896f3fcfccb584d4ce28ccbfb629 Mon Sep 17 00:00:00 2001 From: Yevhen Fastiuk Date: Mon, 12 Aug 2024 02:58:52 +0300 Subject: [PATCH 5/5] Logrotate: Specify size unit Signed-off-by: Yevhen Fastiuk --- doc/logrotate/logrotate_hld.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/logrotate/logrotate_hld.md b/doc/logrotate/logrotate_hld.md index a3362d5ea7..b6181590cf 100644 --- a/doc/logrotate/logrotate_hld.md +++ b/doc/logrotate/logrotate_hld.md @@ -168,10 +168,10 @@ config logrotate size **The following command display log rotate configuration:** ```bash root@sonic:/home/admin# show logrotate -file disk-percentage frequency max-number size ------- ----------------- ----------- ------------ ------ -syslog 10.2 daily 10 20.0 -debug 50.5 weekly 20 10.0 +file disk-percentage frequency max-number size (MiB) +------ ----------------- ----------- ------------ ---------- +syslog 10.2 daily 10 20.0 +debug 50.5 weekly 20 10.0 ``` ## 2.4 YANG model