From f35a1a6c791943bab63989398cd1fe293c84d8fc Mon Sep 17 00:00:00 2001 From: Stavros Kois <47820033+stavros-k@users.noreply.github.com> Date: Thu, 23 Nov 2023 10:12:11 +0200 Subject: [PATCH] odoo - migrate storage sections (#1750) --- library/ix-dev/community/odoo/Chart.lock | 6 +- library/ix-dev/community/odoo/Chart.yaml | 4 +- library/ix-dev/community/odoo/README.md | 7 +- library/ix-dev/community/odoo/app-readme.md | 7 +- .../community/odoo/charts/common-1.2.2.tgz | Bin 62478 -> 0 bytes .../community/odoo/charts/common-1.2.3.tgz | Bin 0 -> 63003 bytes .../community/odoo/ci/basic-values.yaml | 12 +- .../community/odoo/ci/extra-values.yaml | 12 +- .../ix-dev/community/odoo/migrations/migrate | 51 +++ library/ix-dev/community/odoo/questions.yaml | 420 ++++++++++++++++-- .../ix-dev/community/odoo/templates/_odoo.tpl | 8 +- .../community/odoo/templates/_persistence.tpl | 45 +- library/ix-dev/community/odoo/values.yaml | 13 +- 13 files changed, 484 insertions(+), 101 deletions(-) delete mode 100644 library/ix-dev/community/odoo/charts/common-1.2.2.tgz create mode 100644 library/ix-dev/community/odoo/charts/common-1.2.3.tgz create mode 100755 library/ix-dev/community/odoo/migrations/migrate diff --git a/library/ix-dev/community/odoo/Chart.lock b/library/ix-dev/community/odoo/Chart.lock index 6e4f09c579..8c4f99b5ae 100644 --- a/library/ix-dev/community/odoo/Chart.lock +++ b/library/ix-dev/community/odoo/Chart.lock @@ -1,6 +1,6 @@ dependencies: - name: common repository: file://../../../common - version: 1.2.2 -digest: sha256:fb077cb81f6acecd5c9e6adc22a18e156f780cd78f27198cdb47810f95364b56 -generated: "2023-11-09T15:42:20.921603595+02:00" + version: 1.2.3 +digest: sha256:e6ff49b06bf5d4d159e505ae6d153f36cd46170bb519caf90462cd5caebfd0fb +generated: "2023-11-15T18:40:05.852239091+02:00" diff --git a/library/ix-dev/community/odoo/Chart.yaml b/library/ix-dev/community/odoo/Chart.yaml index 4e3edb06b2..5fa297e1d1 100644 --- a/library/ix-dev/community/odoo/Chart.yaml +++ b/library/ix-dev/community/odoo/Chart.yaml @@ -3,7 +3,7 @@ description: Odoo is a suite of web based open source business apps. annotations: title: Odoo type: application -version: 1.0.4 +version: 1.1.0 apiVersion: v2 appVersion: '16.0' kubeVersion: '>=1.16.0-0' @@ -14,7 +14,7 @@ maintainers: dependencies: - name: common repository: file://../../../common - version: 1.2.2 + version: 1.2.3 home: https://www.odoo.com/ icon: https://media.sys.truenas.net/apps/odoo/icons/icon.png sources: diff --git a/library/ix-dev/community/odoo/README.md b/library/ix-dev/community/odoo/README.md index e0c8e7edd0..a80fed1100 100644 --- a/library/ix-dev/community/odoo/README.md +++ b/library/ix-dev/community/odoo/README.md @@ -3,10 +3,9 @@ [Odoo](https://odoo.com) is a suite of web based open source business apps. > When application is installed, a container will be launched with **root** privileges. -> This is required in order to apply the correct permissions to the `odoo` directories. -> Afterward, the `odoo` container will run as a **non**-root user (`101`). -> Same applies to the `postgres` container. This will run afterwards as a **non**-root user (`999`). +> This is required in order to apply the correct permissions to the `postgres` directories. +> Afterwards `postgres` will run afterwards as a **non**-root user (`999`). > On each upgrade, a container will be launched with **root** privileges in order to apply the correct > permissions to the `postgres` **backups** directory. Container that performs the backup will run as a **non**-root user (`999`) afterwards. > Keep in mind the permissions on the backup directory will be changed to `999:999` on **every** update. -> But will only be changed once for the `odoo` and `postgres` data directories. +> But will only be changed once for the `postgres` data directories. diff --git a/library/ix-dev/community/odoo/app-readme.md b/library/ix-dev/community/odoo/app-readme.md index e0c8e7edd0..a80fed1100 100644 --- a/library/ix-dev/community/odoo/app-readme.md +++ b/library/ix-dev/community/odoo/app-readme.md @@ -3,10 +3,9 @@ [Odoo](https://odoo.com) is a suite of web based open source business apps. > When application is installed, a container will be launched with **root** privileges. -> This is required in order to apply the correct permissions to the `odoo` directories. -> Afterward, the `odoo` container will run as a **non**-root user (`101`). -> Same applies to the `postgres` container. This will run afterwards as a **non**-root user (`999`). +> This is required in order to apply the correct permissions to the `postgres` directories. +> Afterwards `postgres` will run afterwards as a **non**-root user (`999`). > On each upgrade, a container will be launched with **root** privileges in order to apply the correct > permissions to the `postgres` **backups** directory. Container that performs the backup will run as a **non**-root user (`999`) afterwards. > Keep in mind the permissions on the backup directory will be changed to `999:999` on **every** update. -> But will only be changed once for the `odoo` and `postgres` data directories. +> But will only be changed once for the `postgres` data directories. diff --git a/library/ix-dev/community/odoo/charts/common-1.2.2.tgz b/library/ix-dev/community/odoo/charts/common-1.2.2.tgz deleted file mode 100644 index 209fa894538703c44a1a96a735c35ce799f6f4e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62478 zcmV)!K#;#5iwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POvFciT9YFb?hMPAZk@EIzhV{mx|a zHiOZqIZ;`G3|w9ya7N0$LIvGY=ROhugw9FEPQc&#{r<*= zzr_KJ<7*h+JVgUIiJ2faX-2NmmDrtpCvN~iQ8vXPI?o6rA&E}_3ys&Z=vh3W3}r9Q zc?*0qQ-%`#5sg!J_Y`OR+cdmDoVc8T0gNe!J(e{NgSV(7>9Q!;KkrIVdoj5 zC}A5L*N~20_*&o}@-_~72fe-h`j%2c*)T)Y+nWBEx43)Q+pBMH3^NR)Yj1PvThUs- zchuWGsBbVs5%xoOjadT6ct@1T8$Iszd%L^!ZThE#qHvO7c6UY+hCVUgT}YI;AXn1) z+ZRtyz~Rwf#b0kpvyhAX0 zlf-wt_OCcbQXVndfpJW3&oey5F&d(0G=wpf;*X{`oLH#Ok@=RQFeKyjJR<`fBfTr6 zoN_Tq_)1rFQhW+w3a@dD8AkbzhEa3^-o00UMH$IA7bjz1fpJHI)*G9NkAuQ8ly2v7>q>?ns-X?Xvkvucf|x|h>}SbN}yvr#+qJ+>Er|) z^!xp>_;ZZLVgdbCP~{ALoFHly-E|5c_FwUmuYZ5>^u_6iv(xiSO}}9rS3#4K=uMgn zx+sCyF}jqDVgP>z z|3q;}#t1M1uCfVweR>Hl&rV-H6Q8d}Fu4JDWFpmpgfbY%I2nS^pFvM5pr?g^(G#i& zxW5OdY1-T1t%noJ$oK>VpFaae{u_>Cu-W@vNUq@io)0@O!T%T#!c5?vl5irHGH+kJ zv)%}(*a%Yq(-ed-0oMo&$RvpXWR+^<)TelJ~F; z(ilOC04D(eCIC}9L1tHl3IrLSUJR37f;74063D+vg205L2%ss-?rujYL%i)6hkSK! zT>Z}pczbnb%_3jbF@ce}HS{|n)R~2q;AK-~@v2nR5XG!rSG-mtEvJnRpGZ??5C;;ontx<_dcJrC96dkd02jj%;3+hS?CYOBAD!oyKua zzW)rSFpJ5MJ{TBNnC3xy0t zV33iqBphIjqbNqVFhd)E2Amy>ZJMD0%J`ZBe93R%PtQIvlqE2Jkua1EV2Bjyon(q7 zzkC1CeQ@eam(tN0$`~Ht5V9pT_&bRw8aQ*$3ZeIW633S)%n+l6BwV~KRSLzR$1oM8 z^S?Z_gICv*oM_2UT@-IJsf&75s*zp8P>L4UFf6wh!WfliNw(|#R2rKoW}v^QYrORL z`~3WEQTqA$Tiv$UJ{z1Vz*yA$+8V$8DEkjX<22^$Z3m|5hruKX1ry%+pmc;DOXoKX z)!Tn|503Va9sAGmasPO2|5?TJ`SZ?C-~zEpmQVn-O2}0QaEsYUsOp826Oh(H>0Go&qlbTM-T!2)GCxfFOSzNJ{hCdfg2(6wv?# z5*W^w0ubz|uOH;w00guw*h8<*AD*Ny-PM<~1jDa=s9j55Yr1bi(H@F(8b7~la&5QvKP&9t-xqp*l#9DkTz!htnA~yIPnt8h|m z$x?=SMn9&RCf{`F~Tg21KsY3Q1&<`A&mJi(Cwy>(p!>6k2hbP zUc5Mc`pbulH*c;!oS$A^{`1Yn)4(39YxS>N8KBUVKB3UYE*Xzu61hX|0y-+a>V~CP z!6acg)~l)uqcKhdhQy%n??KAh$AA1sO$o{%o6!FR5dkztCCpnKOlInes#bXkl=*NDBws4PD0xIMRNB4BG({i zs+$t2@)Q4Z@>m%jx~c>ofDxqsKzAjM5@7mPN}DF%!2`EoFE6KxDXQRh{a8$_Ri?J{ zOGeU^bD(Zc7AgTyWsRb;@Brc%1gFwuC#;a;31#3Kaq2DvziTw$BAk+|d*F(T%Uoh6 z03~#yq`O?WR^rnwj$_`6FxqhWij313G1PORMM-3hxcJ-rOZ?We!awc&q%EAh_ZxJ_ zK}rbYIsoPKjuT)bVOv@7VM4(z5n!xUr-HzFFKhMC)=({};J-j=cq3!3f3U9v$tB2)PMPOvR`Cy?cxB zaKwTW5bOq?&k^Di(@n)8LU01aOL20^&V#mCAyUPd;>GK zt2eVVw|qTASVXSc%a6hIqa~<4aU7<*TBexfVN4EFau`xq9ir&R$C*5`Rj~P43sS$m zxxBg$Oc~4gXh~V3R7jEpg{-R%{U09+X6FnuBF+l{P>W_$S1S(@w6IYL%1`K~)iq z?t0*oGecftk0X&J5e-UBDTYZm>@E}ZwJ{-?`r^2Ne9tV3i;Z%RXBmQ`OT~-G02Bj! zdU|#G%jxB_`s4a(e@kHJk3A!85MR^S6S1=ljr#t6#{=kx&8-MB z1pe=%|L#5-cOOL`9{tvR^s4*lveTm<dO8GwLy5P)DzxD@6Z4N8KbDN`t^uw;Ae-olc}@wR?LFTte9w@HOrQ2FpX>H7kuDiUC))uX{1|7Z(H=5)Xi-~&KXEoz= zn7Yl*1tUK!_;}92508YSisrZ49gM4I8Vbc{3l7_gg=rG~wHdL+c9z0?9adv7+^^4S zXBurQ_Uaq0NhBZq{HN*s&tM00p8+=be;*wm9oXl8d;O!M!}a;!Dju5$C+>M48$kvJ z_!FYm8Os9vwo<-0Jo>AWFT^iXzL4ydzp>b>fVFTXGkB?b)7cOXqHkY3m1j&a86s;O zjBGsTC7#!nXy%^Qm<(PhAm-dt{4ltug3l_PBVF^(p8dwCUe(`NAJmMU(;0cBWp_6k zlSp4n4Vm=1zqrt*LuVdjqitwhA#epyC5+}#s0qSuUO7|{B~3uQPn z-sDd1g(a%lkXGeZo{J}4aQ54qf4;U1)_9;vhhb0Zf?wbK^Yya}tE9sAjM6Wcqaw^{ zI@lQ}Y)7B*V?=j;`cG2=!vpXR{2$PbK(HC%ECBESlPf?;Nkn_cKfl)oYFM}pYy*0O zQ!bpDA{k#9I5CW%16-)v%EB?pgag8xTdq})a4MV*%ymf;@J@pD{v>c}3txv5u(`#h zOVABL@Mr=a4FfffPPzP;M0R;-6t<5Z&__i_^@;rby)f5<7Xu*PV=5gRwoASg+OTe* zx9IcHME3}~=%d&aoFm-dgZJP+{=+UhEERpOidM`}fkzG<$@u*Az@?g;Uax1)&j5e= zKzN16fmq81x@?=Rr)`|%t^X>#n5x_6G$8P<0e2fn{0i?&JOJ{o@Fn3r4)GKvHfGDX zg(ZaLZI@A|2WBoen4w0z$ zd+Nm4Gs1aUkrInc36H7nMMX7Pqtx@S$~q{AVu4UDY>>ABLzy1_iE~o!pxU?C*Id5PC2Q9sUzkPRL z>%xCtXzdSNw6Iiv;BU%lHywV!RGwgW--6B0=Wi~ro?kq>{P6bj*~LBRjzI36{5^T+ zE^S!fk{j+42IX_cn8h6<2TjO62B5ivhWYNf=UslNB99-;PnJP6u+JFsa%Ion3O`KC zjkkp_t>ef$gDY=4XWseTd1rL!{RUim%TB$m+j@71%@xBP9_PLm9mNv@wXM-EA~j?EQ;t~wjAH?k4E37~{!Sef{8 zxR{S_-yFqiOs2iFInN#M+K+lw!{T>*?`AwrZAp0jK|uxbzV}UI|Wp2hYHsD zyVOYIW2<-7;U#*7zYhPC%I$7^H{RNgZ=w#@;briuyn=q^DQ!lyA}TPY2G^C>3wl(F z6o#*J1MJ6mhj*&$7OdD`-F1`6?YN?m8V#w0J6Wa)Za z>g)QHxERmFo)Yg|<7B7Z@uMPTF$P@-g3XI(PhVUb5vjT<*!-+szPY&i@cQkmU!Gl@ zbdUCr|E3}YeF4J^rJ(x}oWFVfdHULK1KeTgRC>b%FY_>uabu>$@nT7^I2XC zQ0f?UTUK0ca4kMBl_9q<>KH?B&0S|OvI>s4%A4~RC;DEktEI(ln^uk8ILde9Z*MNI zf+cNF%kJ6&Jl|z;>wbmDc55~+GblIlXHQL5O&5s1z-~d9>ypa6uEoS96<7JH(-U`AT zElLWbd$~vh>nLH&yh^RGAsC4MZ7_=h38IAY=l%Ugx7)SzHSTWQU`|QpRKJ4h#uzae zSt#W6yJ)7Dz;<82jlpqs2vpJ z{vt9R{5KrO)@5yBm}t{xhLQ+no>izj2x8r({Lukl0L$>WBS)@cA;L0pEC&G+mIV;5)wE8vva`0F3t!hBx{r!eskNg!&W3Z*u{1}*v1i3KAtDD;c zd2mYUQpblUT-K;aguz)Yj3NL*f^I>~cVlic`NP_iEBSv$l7ErK@;>ON$^LtA=;r@C z+C5(9|6IuF|035*;r?>ntc3TAqVjLaf2Axf5@Im|BqbAd)d1V_V?BnYaAU&* zx{~_p1YEjnaSch3&K!|-$aA^b-GZoIUJ*4)w6^xw8WlL60N8ws!UM2yQVq5lJ2f4i30sf znikC&p(BzhvzTYI*b}@mVxu3E=$L?*`(}5~JuoR>^C;f8rAT_A)=;LFGuwWC+fcEk zcZ%G^Z|5YkpqPu2JRH2K1701eFP^VN^z~CB{w7@Q7PIl1=I66TkrwC0gI^UQUSPZkJ zB500e^}1lu`-18qOjBBDgN7%}S|MC3gx|SBSZtEz>4ensL?1&Ij$T?qdOd6_)MXr@ ziPn$cg{Iw|BU=*8f)V2wm^BoNQ3cHYlch8Jc0uYWljj zL~2J~e{-ag#G~ z7Exap7qA^k>igABmn7J&1RpEVJM}(tmXg|1UjY3$Aq@TTM2sr_pNDE=zms?}Mh}<& zr+;{~yIactv$xLwyOKw6^mAvjm%;MW>DT4#=fBspZ~46qkCr9Vj7%}-YABN>jTe9s zFrg@q%;VxyToujmR9BV1-C7~V;=(+GII&XV$X5y$l_X4r7Uwbo*m|nNABaFLT)n0E z-wGrAS3V9GDx>P|bKGesNAP)Fnw`9e1SCdy@;Gl#2WlF?IKGDAje?Z-A704P{`9fe zgv7SRNH%U~lGQyv_LQs+dAXUPFot+6L$q^ng`pz51A&Ao0Kroc^F7FWFsrB2@RCnR z%W;ab4#TxfVa0c+gU90bWUrW=Qsn%~3&QRyS)V5Sp-vO{y69PpKjIkRbXOF;L3jE1JMw+Sf*heZMOkkQZ_tZ`y~$n^k_JY99itr! zDv`Fu1jgIBQ>Q)=jGL7meFOm=Uw6}KH=Ty|))QfZt$aO|D@8}=rsM0g%NNVB2k*HF zY!tZ3fG!K%WI!JVT!rRuK-Fxk|DAENGN%&Qp#L50A09gT-){f-c&-1f;_>Q#VzQT` z1p1EfSE>b`HK~DT?e#!Wv_iT1{j8)<0WcNleC-8IeiOb+IEerwX8j=Ow9p05S}B7D z|5tF!H$cph(n5P+>-3tUgtb-!!w1j<3*~Nws$kK~jN0J$sLqM4z1Hdea5|m4R~}BS z`@VFqZ%X9>Vt4u#A29$Ynr4PRP7p2PX;!O_UV>9_Ct1kkR!W=bIckJQNoW@O9R+k{ zNZb449p}vaRLTF@H4K+^0iZGdSO3uU|35fbpZ~1nkwK$>IXzp3xX%~O*Om9hvaJ>P zb%{0-zb+ff83vBY+NoBcM>C&G6AMo<>sl}cN+jK%vT$>S1xi8rv%ytJrY z?+Vx@_Pf>##Z#sK$vhs*(EyvyfBL2Te@Fe@_4&_A9--=~j515m0Ohjzx;mg*y0uzh zQKpR^Sd^AIb9gavoLu_uPY9vEx6@weme0(C z5M>Mxa0pqRsk+?eV-VP0J1n;H2O3B8 zGf)$GKR>3uFk_`1ArNE~FC@9^qXU$LMeQ4O=dYb+cnTT1L3jSj^Ux+yvF8#VZ~wKO z+MZX+my5CtC&Q-}Cg;tB0%p&J^3C}tt)GW|s^x#7@2w*L%aJGl+g^Wt|92&ilK;hI zFGm3oO|32tl52HLxbCL-^XyGkp!apLE>C4H!?}&w!`n{AHJy@{(I)i%W9mm;#nf^2sZ_;qwjnI5)4pI1gGl$ZuGe z2~ri3Xj}etx3fe;*B-ej*;6@r%hwIWAV-k?1Kp`cgOS>=K}S{AFUpaG%-#K1On&8;FcMbY$FASM`l!>rWd0QOr8YNvU+V4sm zuZ>sqfN{8Twl`-iuC?{x2eux#A^j?p=L(`)<20!B4&Jyv(c-lq@WxOX>enPfg3`_d zbdpzosB1&*7KsK*aGwQ$Q42&g({^dNG4$)v_W%I{b7`kGUjD(_%F&?ztMlH)%m9t? zzYbjg&*Q`0b^h0tJeK~iW_yWtfNFn%l^zIMYq{ZI&@J2UfY7cri&-H@(L=d!y27vO z@VkmWP;=FZk5kN(>;2ay`1Z6#QEzKee zfI!}N3&5uQ0fHNJ7l6$hbk~t?mGhk%$iEx1M-=dHC`457^M>&n%wajF1`-v#g!*YT z!PI$z>%PKKCf@UZ&DNqxiulxXUNy9BYkC|C-;Uv1S2T6x0mL!b(m_$qG(td^uP&UC zL>xl@u8t(YyGQgrz=`~qWmrx@PUiU}cwsnw|$U`iBrtS%Bp+7k;l=7_A zJt@}5(1ZMx9#f!>yn4M}=`>JxY#oc`r&h8hCft`e?JrJ}^LENDF_`6t!6Y*qR85{H zkyyFn)Kd+^XwNclS2XH960r{DTs)P|%#P`ua`kuope9A-T^ zv*MuA@V_t$@Skq#ebs;INZRbkuHk{?v5FmMzANIseE~ROo^G890QSkcxH*?of?iB+ zJ76njYRI}5(RN3@%uA}*?pRB5QbA}WS*aQI%m8zO)d5?>77+8IbAT*K;;b;c>%4L0 z`$WwGiZ6f>;o0&PP9tjNKf{OS0pow~?;n@szvJVz|KCa;%l_XLUQ2q`h5OPH1iB?T zW65n@C#c!R_|~#tgR#DOD9aMvR3YheCJLyZHrenw-WfJt>o~hC{TR%r@U0t9D0_-f zdPdSaWd(5LKAq1A^g1PWuBf)_2IsQ~JffgmEHEypND}}RjVK`|$Z^o?G|Cco=M@fB zvjCx5XbXgJkHRqmw+P%Mi!cM|QySwCv-nQ5c$s_Ffefq97u#mP`=mr6>_wamQr z)0h(8euAWi778{#AQ>1>VusULSH?(Qe%J<><3BeZkpyWc#eA7h^Q^2kDsqp%D0lda ze0oyeP|358*YGS;`+JQ{Ub$}tC~gHo-I=o}slCSd%!}1U60c6xdKqZ6RO$)y2}`+! z0!(F}I00N<5}P2+5Fd-YkZJfhn=s}A)*s#5qx@9Mf0$k}lBQ@O(N8=L@?Za;@8_ zqS0Mj*80Qye3?)6{xK5Um0f2yGIE3}rno!{2g|Qi=3Hw+`5dP>~JFz90b; zJ&61swz%N(W}wjA(buqX!UFOCqk{kh3VA_C-w_Z7w5<`O=NTH{PaxTkfe*oDZ2wd+l@T&-?DTe+47IVg-GGiz250~Bl$rz z5h-MipKYQ}_u>Nc}@kF`7LGW%2)A!rL(P&7R^0&>^)n*v1;jY!dul)GwKNqQYK8U#5 zONao~r2p;jm*T(fAFuVll{}KXYb(%Tl7#X~+JIzWh!T`R#&r_06o96*hRZN>?pg|K zK4_s`39U`8utXdl8sx7hS`mTUwFOGtESn@DINDd2%q}MbVdClrWl~axaWIMFMd8$K z*jF`0t0#3Kd&*<&ImA9U!^zgH(Dk-GO?-dsE#Wu7sS1VfL-!F4ocgj*wc3&_I1x&w zK-64EtY!~sp9D18e3tQ?18lq3Hgrh|8|K7pwzx&<4z2DM5x_|%D{k#67^SQr$ zw0p1r+zezFb-Ytx&vYIUu=c>K3DxFn&c``6g!TXv0ONE7lgSumIFuL-Aw{P3_yrRd zb8TP#OZP85;ib%nBUms4V?r69fV>v%InY*eStZbAi1T}aX1RYkoKtya7(goB-LLNo z3yZuBJLA-e-`1?T>(JQg>bJVL48DL2r7;W<2>x#Xf)BxLEAML)*6-x0<^P1Og8%RK z4@&(1V6VUC|EqY~Y-N($2^+ID$QmOA#TD}2ES16uWn?^Kr2!$#=&3~Y8iu9;Eoi3j z!Pgc!xdCJ$uxVUe@4KEvZ93BftnEw|TD&ujnA*-{q596g_5xi$5Bm7&zlc*ghUqe_ ze=Y2P2YaslZ|`V*|8pge*8k*uFU$I;+grr;R~x3M=%HnV9;<>sONUXUjY-iv#w8dO zqv8nBGAWAwUct1&pvbE=m=xi9o z_y)49YhHC{-m<3vePS6r<-cu;EQ5GCQChs`-Jbi%JrNwvliB?X_&6a90sDf63Xqz& z5{p>Cz0%zdH4c~!r8B76iFjMx&#ae2)-Hrgf12n&{|=MI?tnDP|9#i~b9{KT&i}rW z$D;pgvX{sLREs|Z7s$u5WJcf%9bu+*Rg+@TRnK=nnXMt^zDBy`tBwtzRP&KF<^B$y zCi;((=|kWDJ38L)yY~O%!~He=U&Uk5|7Xc`Ib@_-rP|5wiv@x8Y3C>KCW-F^GZCgVb<2BO zh5CXS0wJXOQkXP%sf*xnz)%LpC>tWGubBluCpdl*c!GjiVB$n{=7MSg`c3#>p$X!XhPt=b|pBM^zzGDWp?aH0&1>|&VJ3v_{5yH3=OF1l&!6R z|3G&aXdu$Wgc)M_p975Ii2w9xq{43zfvp%NU~6*`#`+ffdU`SrK_EBFEi zIHRm1LFtqyt0v}XZl*-Z^oer802vx^>M(*+1VreEfpFm{xitQZ-~wobsh3!FADzACNoZU;xLGW77mtoiD0>~rjH}xbanK~-)?1QHa@dDu7pt}ZW@|R|A z+MY~Ao9{~($;w$vi}(_UUcynLMJjO`uO%1Qn>-(ici84KeB7#DJ)X_>y!~N@#xmYs zk&Rb7@aToBubaAkIM-)<5sG976|vt$#mCkik-}N3R9vqb>m+98MS~MXcDVeJhw+KP zBdWq33t1%(d9)S6F^YvRm>P-Webz7yYNP`)Njz~l%`zncBq|*{mGFT+a_(QbkDTs3 z(IU&Rw;q$84%zn7=Yx+&U-zk)n|$0$nk2Q&w;X4reATIH;ON84_|^=rG@^_MZ$-){~jD3l;Zy!uH%2N<|*m_e72Wn1mKPR zD24zzmL(elD%C4fjyHvPgMllUJT?UJx@+s`BB89HzIsdNjdz?6CJ+txXseVh-p&(% z5|tL%)wMj@Rdb|AVdO3W?+1ICP{((EHSwCT(d+|JlgE`%5jK#|zYVN$$gAg)7xSud zeBOMT)?A8>z@njRc{}w6L*6WsFAAMDje$pZv8&Xo!4>LF8x_S?Z0c)N4yab4F-GhJ zVYNyWXGPfl$_- z3A{^D#S2@LuApF9 zPHFZpr`ecyAs5VI_}6|9|C^y*w`vy>@;G4p0ncsVrdUCvZ9? zI06ZdK}vAKQ07MRvjX9ngfWN7A%MOtmPTneZAdBH!xTptp23v*G8<$_(qr0t{riij zFHS$4ot|Gh{){Fg%PELkJO|h4?{V9z9=J88B81XsA15%jS{AMaZxj5{d|MwF$!jL^ z!Suwo7EKcTae{I;mTI>G4O5fOZo#9uXsV#1Q2L1oKz|{m9AfG*SO4QmfjI)N{>My6=WNNV|1n#6 z`|9-aAC(Qsuhngp#+_qC)-(rl{#M2=^>!pa&eM;m*fj}YZoBq)Z&h{O>3}WtkGHF1&%3`8beerwFCO%v~yQ*qN8Wvma#Dd`r)5%;4L?+~$ zUxW#nWfRotfPnvNYd`HqrYPCdix2nz(84N zTfEDVScU*4Q&%Vvdy-_vCM&3IFPkK%^esi1*kIK~#Omf{I$&#vR3ZPyY=t9URjoML z%Iry?^r(=2sf(YYM$qMS(tf3<6QIoNmnwQEh^1^S`{M$L?j$Ix|Z}YKfvX ztB-srk9}zmO0~QqavNiV)+`@U`-ol#pl-Ar<&gF=loE;=F*0z@?om^~W3=~VPKX#B zE(a6_hqJ-3RXQs%ftuZb=D?yhrfl3b0TpW_j~`@pJ_`oZNgSV(7>9RN#?pMD21VHb z1TO}!2|LdaMG313u(X--3K*HDI=gCcDl&(0T@FoA7C8E_ZFlp*op-Si){6$8G#lZJ z88FOo1spy&>ui}hj=yHo`}LDQP4Zui2PnJ?WAt$OzxMmb$FBUhySKjoy^_b0|MJOR zj?kAk_d^JL#%Pu;?2QPyG1*3%p-aX!=pZGOT{4(4i&<>ST-QYf^a+Il2u6&h>K|%V zD2ar{Oq+~E*(^9X+wvbJqvcsXOP-bm!{Wu&Q0BX%o5S=3{LGta!JSN=qCp`|g*SjRyK;}~TD2#Vd@QFl>|Ajo^}FqJEGOZmU|_t*KqSMpf$pP1|=Mt>9S z{Sd;R8p*?W|5B7qafn{SG1|`mDkQJ6=Y%L=TQO1+NedtH-2T_6bGjy`044A`Mp3WV zb9{OS4g@__(w1Iidon-|rT~K6Oi&KH zD$a*ky_TKzT-}SgCTPVE30&+%Y-V@VrHh#ZfVX zil6Yw@-M(Lte(A_7dq$d@O@L7eeuQcp)(4I&daU(?l#yR`OxJQc?`D1bqD)xamTLQ zZPhJ57N+MJVI(B6X|G^mT4k=Vs;8>1zEr$rVL*SZb}}5mIKGDA%~Sb3=baj+PD5~| zT;a?6vPa~_WnT8N8mJ##j@yN%rqWBo!n`bCPlhO^dr~bF_?VqPK@psi$s~?v-(+=6$f;oai|qUat|poAW8*NqM(mbkH-IGD05cE@=QWyx z2jGN}F=Uu)#CO7Fjj7t00lqK*84L>dqzsM86!DEe?tx3hnC?e3hCZb+4l#>`?=l}a zxW#d7)e@t*%HtMN#tRtH3-iXX*<-XV@@=9|aGb_yo3Fe(GLatT5L}&|3((&_J(na$ zOe3dGl&=@@Dw&M0QPxwD6i2z8hyT=lQUR`j@EYl!d*F(T_MC=KkZ@xsw<4gTKoSKb zn5HNZM{`@32!Wf)HOdmiHO1oRpLhF*N4xz_51hu7@PQ#YTL2B`$x|C&+gIT+W%)IkD31$Wfc4ZDGryH21={X?kbw+ z5`|y^Gb!!mUR!JE4O)Kg@|s|VVT}K+ulrce{Ub=V?&j#^`tviTp17)yX#6<=WNO(h zP-0&WQ<_*JwXi~1buJWeRW3zg&v3Uj)IBNfT9U5Tno6bt(=XLktlTjf;<;%zC@DrB z9l`W5*Um;ooj}zHI$&$FG~FGKH2*8aF>kQY_u>q}=nlZV_o8{PL~l%GS)41M5xvn- zgNkNVcw*fj7tlB-iV2MTvFf^|kU0hrKIFCz6sH&11^PI_naC&{BS@KmxP*{xITd&A zsxT(WoOT&YssPpFt74(*)a+b$QJ_s{J+8xBrNH>Lsq44@H1mIQy=W5Pdj7xL-#sej z|2jB4So8l?JeK|cTuk<|SUzv-$1wh@p)A|&L$v!^WW+B_BQc($1W_7*fU_v9ev4%C zlhk$t5e-~9z95!WMVnfNSsDiF@H))*sf`?rRETm3GHT?Hbm?^oxonCO^ecoKq{oIK3_ zia#3S7j9xxXtfNmpS=;uMZ;C%A~vMOijtKF6h&P}3M%%6@A#}_6D&$Q?I?4ZfXeF| zWOP*FKVM`2@~;HZn6a_v^8Qh4fj2e#f>7NSf7Cer6pQ!%UN8^G{l_;rudmE%on<6` z3O^Y|;Aijz5@$8}kjiG>Sx3Oa^pb=(UvmtSMJzH1*}~U?f5l#93&8K81#JbYD?CPI z;&rO11vB5Mfko*nU~OQ7j=JRvkU#^uL_xA<+~27@S&V2|Vx=opiZaDtrsT==3{@o4 zsA7`3nky~%BmdA8g&>b7_hyQ++YB=#`KmrLX4YcKIcxq}-pzi6vLPy3C_el8tGIe1 zvh@^lGM1*hrznPZmnbAj#KmRKT_+j38fA!%NE~s|dlH6-QuCGSzNnU>43kLz?FqZ1 zMP31f<+&q|Zt~nZ#mLM=8$N*{zY--|=;(nBVglLGLBNN|f>KJN_M-9=@N*$7Lv_Yf zx*){C%t2@^Lpz77YK@k4AXo1xP@%&`XoU6LdFp`OMTYJ+rxCFWNFsv+i=siJ=xj+% zo>eDLZ}VYzO7M#A!gOl6pLrE`1WpzAGp}MVY^Q?#kr%g?y;Iuy2G*CnzRjn}{#OLw zd8qqeyLT}{uXE;mQ2Xz z9@4i?)8xRGQYgYkI|

BNRroK0)O*d>4x#cih5GM$SliQ%lV^UZ*kx_Z0Ak5G zw82^0yh*;2%^tmbpva_S@AbSh9Z9B?0bInWWaLu#%!@aH*Cl;6itz;eEZoAXSGim* zPf5an3W`j_5sD@;0)5WOsMj57$dvJ8+5vri7$dG<%XE{ArWyx7?-oVs>?0Bs!#Z%sb zQEltpv-7Lxum15K|NRRRul{f6@0+%R1j;g!y`sZv&-eD3Zebvz_yutDWaNuXg^S`+Ck> zc1q!$bG&nfcb?;&S9s?iI4_HNVH;$efa^QHg;bgT-T^Q4>{Ch-E=Q}^`v>T#W4nRm z%gFU6k*HB)=y(LP5Hd6*nVFAXD_gR>TvGo;!T}P-lmHk-Adm`70HjCe0Nf&Q3lk>g zTIrT3JojCxsPGIi6jlwy9JX$QY8QL$5q%Q)TJ>^Ig$S1W8(669x=yY60BT0D=?2?a zbU4n4${n=e1$C}G?#$=&+wmJA&dgQg;-Tb?V=C!+P3H);?JPKe{H}8a*-)HSBB~70 z?>cReI_DBsa3n96+)E4iwuiXWTz<53!D;C$QBlLhiK_y{kWsAuJN~?bZB9Jgb>b#$ z<(zFm;+Wj>ZU-bALq`3<;>1~yjEExhmumW}pm$*Q$X9ij$I5SJIH>;GhSqQNX|n&j zX&UA^1!%DU?;e!m|L*Ru?f9j1D!u*DRQ^7n0|<3fzp_kdN^QTG0L-u z1jCqI!#DsW6|PH`F#Zi?z2S3a#NLz=4P{B$~R23AbyC<|oOSpTg%Z|F3Y{{q*)A%rQs#xZ6XiPMw9yc8B| zswmRqx`1c{M$w5YQa4rtpj!apKpwwyX7Sm&v(7sJ@7{Y-SJXooWh9j?@L#QAEUL`{ zr0AjyW!YSErZ?uwsdg<*`0nYqIl3hu^X9hBmWi+|6{wxvv9ZnS%NdJvn%aZw`cY~K z-b_)J;Yhg%=4JjuechLWnmT>hnx_G)|NPr1(5pdGahsTm&;+*#jPY>9c)>|3ff6AO zl(q*43}qss0`lD4wbkc>8w4WFpO>QqATZgcx+hd-U#{vswKZL1xL$?Z3jMCGa!g&V zt*wgb&VJ!m_>MR2D3XF2a4uzPl@k2i=W*&Ny>r?tv{a#yDkO(xV6Nn(sc^SEAI%z^ z;)JaNrJA5sN(pT#SZOSFGo|}l)jqyTEHN#Z7n6kHF;bq)fhGC`Z{RJKcMgzq4i4$fNAbqFq&5~p5llTS{=?0xu0!X4(d=BaRR!38n<1od$ zxmUK?Nc(l|C0;P%Y=TRSF2TZFd-2dKdkD>BpT;;ufoyLXB+3$y4SL1L<2NQ2X+Jm! z?F{i^^nSCu8yc-QmyMlwK>2oTJwVxC{SbR4E-;flUL9^PB^zVO_}-LDZ}xp)Hj|@C z_{+SPG8DpWgfj3h2YwqAK)x3VTNnZF`m=0mlXb82kBFzq{>xA{#>u>qpXAdN|7myk z(Dna5>>sY}zpHrc{BOl%FUNFXH26ap3#{=h**vgmVqg0!fMAR$g+p`>*(d-(P`uFT zsq9nvl2UB8+I1a@dq(T7<5!Uv%WT4iXUo3y-oT&jE{jxL*42Ia`sA^{?NU)Y-xk+? z0}%YGZZBSumt;uaB+s&pWP!_G%NOt~vuw>G^q3UW8tbgGe34@-wbE*N@!M|F)SA&F zt(Ywz=QNvJv(6vqY2yD=5>LkH6`3USr-5jS|8%rp;{W`gHUD41WAT4uvX__z!f5q} z5CW|6EL#Yel2~pw-(3jz3VVt&iYY@$h`hdem6y)-m4TwZj$>53DXv@iA_N%LgPi|V z93kl7+-3JCYs6NjTQ5t?O9qLGWMRYKrl!n%ZeFdgDLm%?C`qS`nqL0dh(I2c#0+oC zbaGwYuKGB8tNI|o-)x?dzi3w|+^w3HW6ekkhgzJk#7I%fGX!h341m!_b!G=`hA4OF zOYe}!?>8=*oW`+?;ID4MQNZb0N+P;r+;-tz%Ia?2JVf{y-XK6xLXimBJq`UC0L0~u zGPrKDW&byW0NA%Jiuc8=bW4FwpQ+0uzT^xgIQ31F20)#gLdM+HC27e~;k$}sWn=Lz zB&Yu`fRix4i({Ul)+JbttybS3^7Z4|5XUeL+|J82eR{(qYAXyDR6R4~#yd_B%UVJR z$0!aVMT!bnqgIg zf@wY?B4nch{se-Zzz1UeiJQYj3dqDALI!o75XdRZEzBZ7V@OBf-Ol^@Vc$#(oVz!L zUXug`Aoz_?c13d2SO9`waD+1?V(h`V9LNcpJE=UgTegj^W(l~kHF#Bc5m+?Q##&c} zMfXhJ2CHTeEtih#mZO`~68=mB*Oe@f90ZeDhMT*PlpraO$jN(@S4r~ZNBLTIN)(${ z6w`e;rE)dLLV>i4mxz)mqyBKy9{H)a(@<#{8Y3v));In6D~7Lcu>XnBX5BoGa94%O z-1&e$p|Gtzu;Kh~cmKeR|FnP9-&@=NR`FQ&KR&5IPVsU~e+`jUD{X&8T-8naZ|CzUZ7UDxfOml7eG zWYxk;zRfC8m6j7L=wN*&HOn(E{U2uO^63BJeu@6?uJeDa6#NXJoD0jm2#mK3uvJK`~740{`bLtzrUvct9UH>uO{_DSU`1-jvt5t zYpHwwHBGgDVE;zN*q}!s8 zrvs4Yw!yS8;t3$twRH)wl?UAq5M$|Y2u3KQ3a;Ws>87{JvYOupbnJQgS%VG-RQ4Qg z+;}orU_Ofq5-WP3g&Y7(Q)*#B<&S79$FUjPP~Jq$aqb2S{C13!>*v9rdF8)cqiZ1n zHtPS!uKoAmXm2h5t>m%qf9OeF8v*8*0gYk)Se5`5E=>x2C__Mw`?WQo<>RIQ=o3R( z0^=76L)id^Xy-!_eRlR+01fp2U~m7(jsJFhyuSapl1F(C$@vEPgd1T_7GVOVh2#sk zTzR&`w`l_fSIr^mP^XA76=YoZ4RAgv5$j<%$$0-HQRKazzSoanR`-67H=5&WLV}&n0-CfZGvDEVN>IP2rs^ z_P%~;qK^%Oaeei?YqcA~+KfRJYM_Iq9n>8pIa@;@HKAv&ML@g)i~ z#CAS}8G;N+o!(*NpC+MS+Jpkf zpMMT>&jt`Wf~+F61y$6At&I{;H=bFII8}xqBb5rKEW49kS(jpU2+Gq58*!d@eRP15 zkVHt{iea2B@*&=iNQ?lL4cO((=$&vP&)^Eb@RLVWU$rn;B*$KFLOGupBV%U#1ye}r zEy*II;1>mfcbv|(UoVr63LLt%^EfFQKpm9C18|^W(`CxAI(MJ!CqQF}V_jMNVYbfk z8A!C&8ODkWFV0kp28>*(>T6IG?3l}71Ar^OC+Ubx;s|7jPGZK{GbLlhMmQOQ7~deV zan)It8lCFsB!2-wkoRG|1_oYFK(Lwrv27N~(aMYDe^^B%=JTiC0dOYTnpbq1hXKxFs1p^>iyOcI#gnYN#4g|RV`DJ3dF z_r^#qqymHa8?03^CVv=Iac$bgy&W}mW)#@RYk?;S>uS|vFZ~}Q2KiujKEOCWEjG}c z0iYV_fB$gzz>WWOe6Y^{vyw+D6b6kH2PrT^07j8K8t2qs?gF|9Q_zd5XRoOMY=Zmy z7ANhM_4Q`qKuxj?B`m&EMpaH#MB2e90vyC_TWoHGa$TtYj#A#I%z|KbE8M@ndr`4@ z|GyM0ckbY?E#$wwBWM5b9v>a9_y0;Bv2ElOuV(AZzUJEXx+>pmBNUH&bhINZKf=qS z#uZ6ehqxF(aFP;3DdN9Gr2}tf*7JbOm=eD%XWQB zL8Rwz3n!GpBt$kGua!$@x%?Dm1=wezm(w);UB0acdkhmeL{azp&hG3IWm6pLN^>GL zla2X@F%z}b)7@LU?mXPnK>thb5A#Tajs8FVe(C<_{@VX@C67uc<~awf7Yb7nU8X2p z3RfsCvU3tyqL#;9)QkouyavtSV8xLEz|tA0^3cGrHSn^^y+}C{;bbTySQ<8gltihOM0Ju3USeAnmkE=dgk2$w(K8o%LsP8_vIwAzkR^;Lyr)tc z@0w7E^H>hCnvV}tfQ@#^K)y#* zTl+ZU*fv+8IGppvPR&!Ni6k|mnU1rz%I+-Y>hUZ}`Job7-eCGAe-*w*=JIOFUA)T6 zt-RWvv`%Ov=inB}Z0*H3x8+eVj3lB>3pgX1iGdKtv0RJ>%Qlb5_?9z}cYnWe^H(bP zT!MRH5)On4gxD>~Zm5v=4Uav$q7D37mj8C12Km2a_j-WyzyAI~`TTExe=Yy7;<4|4 zjS!GCZV`@vXCVBb?!Bwf`410XOddJ=g!Q zzrVje|6j>dwg1&Y`^;P4w9zhQ*T>olXm5D=dcD^deH!+EYFR5D==^uzJ^$J3A0Mv$ ze^>IfIR9OysV{Y`U$dS9x%H)Ya2%_1m<%S-X`GJW>&X}#nx`OZ65)TE_y2>R|MvG? z`~UjL5gUzXXYGH;axZ&R`ZoC!;UNB54A+S=W|;1c0o$f~fNRnq?TaF-Lucf+d4=ITXznCHhCD~0(;7oozF7Pe*x#iV!b(bQ;tLLhS|6&x% zy$OszHQ6nkGelj3>S1oeyxrh{$oMu7#Y2A^+=&+@KkmK@!?u2oI{i^%4So&Ge^|D*n{d;WWL zyuY^ptmLuie-RLVL1G^k>A$~I%5IEc*<@Tqh5#tr#ofvgF4tp6&3B`e~_gayDI_1*d6%7mkON3Ofg+in6d~brQ+hPze0ZI)C#|g=fv&EZc7p=3H+_V)q)graB3bXjv{MRIG0s;}7fOH7xxO5JreNvc=Y+K+Pm{HdM(f0@GD zh0Fj={-4K(<@;a#wf?`7N5_AaQ@xO*hov^FMf3gZ|M@_cYzAm22#N?Czn70uXWLR z&=l3>4c{jRf;P3C;7Q)dH7(mYmq-iRM2@Ly<4Wd~G_5XXdMsu6mvVPhoNe%J>d5=s za@Swq0WDRU5k{(k2w@yfIEjmXy?maLN$Ni^C>3+p)Z9i<|1QpJc*MPa3xC}f0$w%$ zkLJGb={^no|L~yi#{WD#JXrJpl{}XH|LN;Xpv+t_iBwqlMMZ+BB7)oZAO%Fp9Il>C z_Wx93_~bDN&f*DWDEk#>)J_*HosYcPUuHb!^~Sw2&S9g3swuY)JQa||#fQop6tzvO zC1f?N##YmG>vP^xrWj4B7ao{BY^&WZlbJR~_tTPne^_|wjRWJG%!5z1c6 zm`eatpyVtS@o7R4FqhOnF&q6RD_DK1M(U+0zW$Bg<`zA3af@VNOQd5g<$PA%bifw+ zSU?xBY=VML$El^x^Yc2zFaJ~r6&R^YoGB_}D|e>7RjV5fp30-200gf|g6gwu>e<%) z)u-0Xvnc4rJ!2Nlq8HV1rEA{KPvDaXE?;C-9-C zy%H{m3~a?H0lf~`Z;wGRCYi{;oPc-x?@dG+ojoaK_>dj>P$*s)bx%C$I7OMRzBbph z?jW?95D#v0Jk}xRXgoj_8_Kd(L(c@P+|{=XgCkjcfUNcO^^{+YfA5?lY1LAV@=#Iu+vGUa z^q;F$r!j^UEoujBI{)h*?U&=ftm*$s9*h2SB^IbTUzGA2%jdf#`PLYgew#z#xfH-< z`8Gad9L}`{_3}Y&af|exTMD430j2);uzL>EtnK6UiPSX!Nx;trgim^bKOJMKS6(Uc zqz7p3oYxeQ-c_vp77z$;X`B|C5l$V&DhKDpF|rtdHmQgUog}TF@A0YU|H}6Ju>61b zV80aqZSDWFqNmLN_36SA_>&5Q)k4I>~(WjdJ z=XYl>QJ5k2aPhzPJn_H!2kZO~D|syX|AJ3B;ByY-q=T1vlEC?yfwPdlTb@uF$Ff-i z9uJG=>yo!7(rsUr_hoN&V0B!hCULAoO>Q|}?RB>cYu)QR60Ag@WXBAgDo_o`joP* znpzkMJ|_!j))K->Ge2RL0#XuHA+G)!!IFmMwd>Xf3)eYc?Y8Y07M^?m z-@cer!~YY^&X#fquz~*{9UYePKkn|YY$?j6i`&mL!bdc9IHNM4e7dj}gX!E9) z9eCZQyM~I5mb}a>?j-8hQjO04+;mcNMyyV#niRUBWtFAr*es!3%RLom|-Z z5R}({64Wtekl(M64e1c-Vw!y5G+gy83lyzUt8iq{^Lq*%xRn ziGN|C-@#@1GV1#7>zsFAO`>yw#$<}*tqYN+AtI8}q-lHyNCG(Z1fj#ioBB7xOc{}8 z8emqziAoiAegaoIi#!sWg92GtmX%yK0%(d7K?)VYX#uHxqewLpNV->A z@^x)x2u65Wjd3B8P14$?zKhGu7N?UM6(h<|WneC_Yp9Zhi1q3M#-&9^o)MRH9422+ z0FB|*){}%#>wiwy<|S$$6Rb3pyQwN(&=*qrv6^vZp30%-vQz02)5BdFUvRu{rHnV{ zcwGtcTN>{yvxb@DkM-aK_`Jdp^40o3rxP|odZ7Cs$GgX+{7*;g`~RzXEc^dCiGZGS zpeB7$V?c96zVE{hP#VXQO#nI`jbq4ny5*o)#7HV!eB%6SR!uukDsMo~?trvOQK%Qp ziL}QSib=~MRk{w%6;U98byFk(lkb6 zlrR{BAs3^l=q^H293l#~4!6N>e;e%a{|-7}>rE2hf!h&E@*ckH6xTEc?6=fq5&D)Ad)x5W4Q`*nNUj@d3VmyMOj_1KLOdQZt06qk;=M!fepV^ z#j=pt!%UblP^r|bk!n@X8fd$Nj9QpliEDXfYk?OMv$2u`bCC*BpX)p!NkV89?3K$Y z``^I<*zF(JrSjQKNyaY3vT7Mie1zf@Wo2?OMC@F*wP=iUonR;jt{0PAuoWW?7<1lt zz;2&!(eC|yz6fBk3&AZ+7!|w(ClP=mU@`dlv8ctl5Fb0=lanOP@D#^rh@ua?&d>=<@Ee`7iLq{x+|iJUyo`1>*>GYt7(+?FR4?rO9S_H;v z^E7a=-sK^#0m%>2nFA@Zv$Qw0WRaLCzpl_A(&X+{4 zz-z(D;+?)Az?z@=)%o%me4<3T)R|bNp2#>Y2W-}_9=tz*%4vKH?`QymH^~Jd>=mYC z$ih*5fRu(Ivzoe8(`lD|ruXw!TE2rq0xS)Wzg*!fH6-HzZ_Lg=^+ZA-X(C z-@Ze{AMB~N|71uoZ%Ho}x&YAR|9RYZ^FJLQ?XB~_uH>=oKNoV!bqvS_EkD)*`flw$ z&M21c_+bQt)B;kY8Ac@+qQNY8z^!pO{-8QkUb}k)risQpzmnX8Zga+_5Bu6!Y?cR^ zU+{d5rYH+60rXdh<4N`)!TIdbl*G!Vgy-`(=sZPfOzyaduAb+ zE)la1_?_(Qy~umw8FsnD*+=|e~lgdoOUgLVz<0o7-v#zM3GgROkdB7(x0ER6c@|2U&co&-n6j&h*MY5mvRHU8@J9 z==Bsw7+x6gyRL8Q#HHzs#pt{@Oecjc`W3uEfKD<5Fyo^FP-3~)>zU3s*4ctSRB|H> zm<4qp-fgfs6{}PAYIzT9bW96)&PYNr-$%yLReZ-wNuvR#LYfNt0U#M)&<>DZKuc#c z{u7$=+l?};X1k_EpJN+S07Eu`aeP<6Ujp#66QE!W(*QKwx^d8&lE`&}79vdb0a&Sf z^s(w5kZRl-o!)`ob2tz7i%r#TttX|0Ub-<ab?~uE zSi&}+;MdDYxaOXAIdE0E#^n8%Z>SgFHqDSD93If2bdEACt^|-Ink^!DgZ#I9bm-cD_m0>1|5x)^^50c44H)-I{< zRxE57)v_hTVbMohTk-sn!)wQ8i;N~*4;oMWL10n|`dAuQ#V5_<2pEla>bev6)Xi5d zj<3z)D`9Un^q<5igK8N(Wc=rY<0Ci!>+$~n{+j-;;<4#}G35)B`l6}tm#~{-ST-3q z8ec^U2(vp|(>Fe}B-;f%DT%6q@saKYp~#IK{)P%VE>9rsD;Jw2<#mX>?aQh2Rxf|` z1t@cixC>yXU(FlP=_+Mi{#UDN@=UMp1|WF$aROuaBDCu$>=Ozn42jITm*EISlbHW;o}mHCj8~;q zD(--(owH>xS@l-;=bzbz^(yPmc!xxHsDHIwssj4*y{BTUcRJ1xMd>#Kt4tBriv=JU z#00XVgP=3l=u2cpBLaeCGQLJxX#tpkxPulU74=$@H(ByUY!sCohErhi@&>6}FZmn) z0jaE}=3Km&zh!0feO-McXK8U^qT(7$*9Ki$9K)K+ucD9`OE zV%s1bq40)xSmVfLojX;*b$cnrRP1Sb(nnDU0O=1Of54)cgmb`IHSL70nXRsb_q znFbbum{z4-SU$WVNd|Z*9Ay^**=T14PzyEpDb5xIx@cwvFw5XU3qq_Ld0==8jw66o zx(*#*chhM%orVDjk^wFLz@NJR7Ju_U`2W2ur_~5W8xJ+Sa(v#Fz8K$-(?X^Gr-b00 z5BXl4TN7+L|JmPn=S+JOi8GkIav?;2 zwj=YGGk(gNZ~VhH+kM=on&17+Y{qI{Et)(OtRpSw*fX)?JrL0?)!9-jX0PZ(oObBj zb2zbQlM#SEVakGPSX>jNIi<@@`&5R&x1u66cts*l+CwfN2m`$_p-N*B6>O7t?uFqm z?M4x6h4i2QKla{jyNw)46y4AK3T)cFO7uu1b?@Ps_H32xs?xMAYgwx5-R<_VpiGcN zE1AejBq_72>b%X{{)E{-H(zoVZkYfQdE?EJi+HfbOk^Ms03rf`K!gTB8LvNxhVmwS zWxXwGznBEMQ&GK_#!x9**q!kCuovd2ZFjsE`vl}ZqJ+JXN>urBChLX zs?`W4!QY} zYiJL~o4g8Pyso7~*xM2XVWCZl`dDm91SO02BUYDOo00ULeeX z3u}i8h|tJVO(UCIImOPPfPBkPGQZQ`K0QUGTK+4u_S)h<9lGK_9c|-3ZloCUUk&wY z#eT`T$Ws&iSyxsq`X|W8(@9R~Kd1Pgc~u~{@04E~YJhxJBV1AeP~Nlwl0Rt_f9bge zr1t_`3enn^Hp%tH7dIVrr7J zZYM<9l!p%j#79eQ_3>;Qwx*wDO+T7FK#rmH#DP-cL>bXI=T7%6~>viWYZC z)4ms4fTC!n7NEE6Pz3bXCAxs^)TNrI3-u=bnrGsYF$e1P%B9?xmcJpHhGofHvHy7& zJP%1c;ZY*|A2dkyx+$Ye>!jPcgA}=-cJo@3fu}RAYSz0ymBMUfX5zyr8r36TKOit7 zfXw9b&U(x=od*Pb5+-0MGI#RCgS%pw%@7fi7G_8e(|@O$wl*x0YFK5|OdktcI|%DC z3Dxw#(w7%Ehbd1%V_MReymLbL;@wo?$^FcTX3t@Bo@i>C>QI^Q+v-&DY#MPTP6Q*- zdsa_DufIaK3i?(-|9VTc{vXY}^~V1?IPB-*e;pj2Z1w+56hr^N`ssYNs=xdC)l<{@ zc`sJ2@JBOG>9VVL#y9zEr|guMYX>+Sod*zGC&&uLMkl_7>D8q8G;aE7cK|z%qvpY% z@(0pQt~1ZP>)aXk7}9YTZ^0zJh%e5YG1^5jQ!7o{!Z?5V!`P6J3B+MeAd1-}f%RYe6o_x{d@gY3Q;@FslI3#`#mT!07#$2n$L5JycSbjfa=J?T6i}?TJBQs~-t56St)?o%1Oy0jzXoJYPAes07l=IY zyyleRa0EU$*3ZrzApwG6XE!(3`N>7+V~OoVvQPU%zRO_iU|?lUY-!PHB_#Y?R`yU%BhW_`Sjri&mK0blA zdY(;>^&60RLp7MFw%^VWd|A!sN}Ey!02tx#V=|3wzqkgdWH4U3lit{E#)y(>?B#s% znzWh1sM+QW#dpiJ$GWppB`?{e>YN0`;Q#)7213x#H|+KAjygqfxK{5 zP3apE$wGEw^z#(Q$gdVtDIZ_}UbX@Mzf-`1(rwM6jW7VL5n)DgH=-omQVl5}tTFX> zQG;LaNk9qz=egy0+OhTe|L&h2*!jOs4-U8SA2(72|7UCFN*arPN{4-E?l0|68AQhR z*}CC?Yw$`3fIWAPTr=UTa&lCCa@?X~uU|_uvYjF-ZxQFhkg;BA|K`6nJD0Ev@~4;r zWuCT!7;!L$@mjOUY4{YRj5-Vbw26Y;N6Lj{4C$ZwQ7Eh4mX+Hbu=8A}Yc9c0?*;gd zDXy4{v>0(SZxAEs&jC!^v@Mlc|1^>p9sNrF{4NaU+#<(;c`#(6TH#q`hs_VLi(<`; zkz5VpLd3K!>Yd&d^qt!Stouc1!zf&LGAv!UoFqBU^d=Q_PMXP-CJx%vQ0;3KC;u0Y z4l9!YmHPkDq0RqK_P6@~Mv4f@CjCBF!uh4Y@J!>`Qui;^_u0JF6!{ha0lY&26)L^> zTj~80JktWhkR&1rt*EFy$k+DMEdt*gSnq2HBuBqiV5;*~6_YK<5h=bzU1p_Imo3!^ zoXE#zHCpD3m2X|NnI`sSTaH zQ~2K!e!KA=NrZ9ojSP3$b|Ut5DfuO(fdBK2aPLz@;`Q5qjt&p{HvjMUxA}iJQY8Nu zhL1gP#Rhyi?$1GW`OK-Edd(IFtFZp09G)XokHZ_dui6bK@uI7kB*Y_uexE$?qBdxc zlSKVT4VGjj4JL7-Wee8N`uWIN2NYWUqHRYcQF3|tEAKwe zD&~DzM4$cycDUa)|B-nMxt%BSALB5Qe-|LBb-NC#S#<}(8Z7B8u063l#7j^&!0--O zW8>&XIu><0p(;DNkiwB2NPpKyUjxCBcTW@Lt*y^jZFN{PLA`O_sI_;~sRLB{naM&N zUOid^g0Iwb*s;9f!|ZA%iDk@LKKH~k*@k?sTKpAEqX@;KPBze@mNxL({apz&pA4E+ z+)e8xq;LtMpY!*O+m~{n+D^YRu1FeV>9SH}649lAtIzrUD%D(ie4yX6sxo0raCoV) zB|gzCCOitr9Spj9O_#e|pm$4$>vE5?b>&=VwJr*se~d?CetH5!uIbx)ztNMDm6;x9 zsw#5IsZR@6W#g00ZK+er_5alvfXem%{r>*JLGJ$V$yWd0NHO&PRT+SU8oitasO}a3 z0DBXl_^^0h)3%dGdG&5u_Kid#?5_D)GKp(kN;E$xy-(-j>E`E)+)6A!z+uyQPG{bY z6*=oXn9>Br7gueEkS?N;Bl4B~I&G^tMcgs3Ndi<;)lOd0S5w~sr}m_*!oi_(=?WnKJaXw$m1t{vU<&1ByGGlo zu57OhVF8%>g?514fER8t^h_yitz?_d>>KT_ih#fjwM8{IN!_0 z-dYwe<9n`~YK5gbzPyQS9u+cvR;8e}42iqiL-*8xwZyr535+ju^sY#*oxZC_xdV9h zqU;P_b#SR;c&(wDC-LeF<1pSLwms+T9mgxki=N15(>*^&Ry129d1+#jIH-bX`x6;{BKa9tU_fBUVK{unqedaa4+HeLVdbAsX!1{YWL{emjj z|M7vn{*Mo~{{I^(*810mcNH8!1NYQ;fPwmo&jK7lxHGcr3Y!Y;#t-NVctV+`S;R91gK}MFQ;2D>y-=|M#K2{*RAOw*KE6DFy4_7~WNK0t4_<`AC|KsR8IKe>`%Qs2||35fB?%Vob|8N`sXCuYp|7v(w!SWTXr^e+o zyw|Pvsg@*5H@Ni>POi$>dRCJr(7V^U`ZW$m0lH?7+n{|Fqali4O<|y(NV{Y9C>Ms@ zObGSe2#a zW2As3t~ic{9la}>a;$F|$*?1)kLii|oYyRyiba$0;%au(=Kr0z{29!dCR%aKvc+lI zbdGTdE^iM0fbYU2nk(3SefiQ<{zuch0Mqd$N!}yq&(C~6MwFJv39Q=x?dR-2CkNa3 zKbt9*{4W~bl^hWlzSU z`s>~mS`C`)8mgxi#y(lkHuqr^Cer^tL{q`#Y1#c< z3BasvL06Y|*|+# z%8JI>PF%GwcI74#@-{++5h)*`JWE^ zN89}G8!49lmtN5WY`|Bd{YA)ox}IP*_N&_AC-VpmGHSPq_S&4;Z`ic*D@bBI$qeRP zpDD?Rv?^yG(QZdSyS=#54AWikD+qDuqc8ynd3%1%izO@Bjz|(^`1C;o43=9B%eB4K zp`5$vt&;GBOGEju;&e0$2T>*e4-c&Pp9cr0TmR3^6ifc6AzW4}{?)8`lF~mzezn41 zk$Nlpx3d4q%Ko}dug?8*tAnhxl*xaYtZ?ZtP?h`tQ~Ug9|FFM3|KCV4V@$`l2x^w1mkeiISc7x>X|B8j&kpNsu+0eY2b1TD#2xS*RYl;#pYZv*0ao z8^vWWgr{SWk8`1#cslpO70PS8AD+>xG$e(h-S(dNQ!H-zpO6@iQ127;JVfbR;xCm5 zxJv%_?fkz7{r>4z{%@p+{C7X`95j5e0UzyUry4u8f3_;+dnO8@>$YH)JR}Wdq zgF%3}FJD*wsXNbUE!(mG^jD?>V9qnZu9`|I{e|)f(I1v4=-_grChW>E@_9HeXF|T~ zI5UYNod@0{=>H|g33?ZLs4adoq5c+z^S1Wd{>`di5kI@kM)*B8qs zfT{BTKRmYcf1RA3Y|sBUQn-k}{O%f@UtcV>$rn?mD`rgNbia!T`xXFxjAtkoAMvaO zva)#IZ2`VZQ8mQh0168^e>;XTk}uhxjKi|;8A14iG)r)qQNrr_ijE09iuEos#;oVm z;*T>f&BiQ7FhKxA!-BjXp{^SS# zA#XC1O@E-z{y^K7J0z#4@rYAVf08AW5WvrpB*u5sL|r*k10J=*UA5TYZCxu z8hd7Iz1|;Yy+6#_GJJWlNa#3f7&4%fC7ZcU;0TGdknhn@w4LQVaw04$&Nj=y+8{UVkA0K5VJUPGf21monnh{7|TU)Guc3=|TmK=UVP0+``5Rtrgp?_wk z@w6MO%%y5!AkKcTVsZ!Xf;pH{G@P>O49+hA^-u_7OsMG;P)W4%MxW<-k&!o`^_maA zSlT4i*9>p-9?ii7!H|NG7z?WPmoW|yfOiyyNy%qZiiEl@7n1?wTjW7jVT^(aph=7) zw$ygP0|FsJK2z1%YsPO90%8=!h&P8aq+9wDWMksx)`7MH_u6`e-+pV^lWU+jSUS$m zN=#8S;FO>Ge_6G$T>q1fUl5bm`w zz4pK*NdTQj5s8_qp_xr8{i7I7gnyK;9SDmtYJ)Z>zbk<{PS8Z;I9Ff04sb^(F^I}P zD?hf)I+dN>{$ZxBil0NEplkjgW_j*kfyjf*#*!n9uI!N}T_@;cm(2_d8Z&@FyPT zEfs7Mr{tE`Cw^nyaarjsAznQUlpgtjFL{dPODZ9iIOf;ddinX ziV&-cLjy1Bm`<*i^*tk}I)f!$7g99pc`)#r>7Xq|)qE_zeE#U1$AW0p98r_V+U$B9 zy3|uFP4vI(x8JTs|2sah@Bi=bZ}0zarkMKQ$`68mU;5t?$3|a|{&)TM+amo>O|P}< zf1o|3C=R)?wjDuAA4u$PR4dH7x_YfpR|sv5P|Q__Q-6xjE9~=LA&wXLH}OecF)Yyx zb67ak(q=fUTsQsqC#amd=FAsWP8|q6J>|55s=ssPw3hz2=*3T2s{DUWPL6W-Kep$; zng!+n=vggS>GVU~F zhnsEC&W<+Q=FwnV{L9(wE6g;WF`>y7Ovb$8Pu#_Z=|SAlr48C14=TtdP}@f{?3vcF z9BZ|Y9tECdxefH$qcd6dVZ&&jvMn2l@~bI!`i2C?Ba~dD0C@?CtrQMY6c^PlP2y14 zQ3HhP@&`86^SyPXawtGyBR40V{QrT(_W^-^?~@mk@E_#vIzry!5}<1Te~|P4=^t$U z|2I;d_o<@EwWou)hmP4Bn$CfF9}s zbok&`n2A)@}N$DHZykkD`Fg(FBFb;yPf3 z{&#SCe4IP~+3J6rDO}Ne#YdS9^6FGTKZW@Pw7?ie0rnuZ6(RM!%j?WA#Uw0KoJinv z-41*38YP;(#QuWZ^c)l6VkuOn7$#^m7hp09q%V}yqHtJbDkDIjG3ClqM0_d?-ywQn z8)jPP6seHjt5#f84{XgvJ=a9;d*tz}NT$t1lAZzBHx(OoIHe)hR@F^Y0RBJ$zj6k} z#3Fs1-#M>LebSol=ar{y#_@YXsxE)ynrD_kcU8(O2Xb~Xm6(SR{-7EaUac63h24uQ@>Cyh-R{n3Ia4El1+s~J=`!EqqhC`zk{E#rjPHeY0#k0D z5F0+zlyD+!Ka(gxnxBY|D0dQYnO1^%W?bR2Tv*Rx4pa;r{qY$^{25o0MhI_F$y62 zRJpqF9q0|7Adrk)cT`G4dUlQe=Lp_qS< z!vu{`+!cW`6KN9K&Fo4PglLB144M!8slZX>N8;wAB#<3F8zw0JP7cxl+}ylzy#N85 zM1m9n9wKh0B0~WAI^o?NLz)dX`i#6Or`Ha`$r#1pT+AB;NX!FWBEQoW7v(Vf4h23# zouXv72sr@RFOC9hRJKKT0Tv-b13bb^DoJO6X+kD2!5(C@&_}FozYG2{Mqvs9v-!`a zy?o6;QQkjq?ga>prZ9$Kf)E8es5|PiHhJvSn0CbVx;q5MBqT8do$Jgr6y1@nJ&^F5 zqy#k=F<58*iDHsLxkDbApj>w)6o4la9GoG7$uveLi+D?XG*Ck?e=GMBM8TLmfGgtbJOyyq zu^4*yoFr-Z(c4QBUW7jSjQm@$BXz(In@qRraigulx{R3`&#I}_YhPH3y$;JtL#w@6 zqk3;5;Lz|*31jJN`b$l3KNbc|bBg4wm&T0I_EFh1Xq#~I20?vR<&1!aY+)bjef{mX zRw0A58Y$vcnq~B$Z{-d!qZm4b5364wm45j}rJ;ZHZZuD}ROtT^@t2MMQ>p(SANFni z|Ky~<)&DnAg#QomSEv6+#Bc2Cy^7clLN}OFaWyzbp)VDvE8;g2m%Ib3@b=*uKJ|d; z>HXjm$0_1>^B*m=nPQBUXpndNNBeYDVU!@pd1$>QcV{%lzL{SKyzT zUkR!5|JXmy<^Mi8*zW%}QVjp!)!hBC9Vvfmc>iOu10dVV#y+-8Yw~k-7sPSCqnpuk zwR1-_x*5%?-Q3;OPGZ*Zf^WG$q+#jIzqWij+}~@aQuYuVmshy2b3604Y)g;mcBlLz zU%sgndikwBHD&dC7&%}Sw@>V=eOb$SyxjNv%G0H|TwL?FVjVrvLhq>$UzS~kRUo9Y zLje@WVv=1vA91NK|1$@(rYb;{{O=#x z_kWHKkGApOH&Sf>&lRfxu1T{_Ex`1^OkLh`vfOkplWpj}T8qnbcbAtG>1j{Q8y!_n znWo&9kFk|XOF3)i`~piQciM&qwp?Uuv&@J~CIK}R)_SWcG7Y749mhw001yN}MmCZ2 zALzv5mr~`2t{bT0Rc9fJ87;pw0zzOC!g!veo4RzGYqf+-Te1CnDD~z4VtfDpQA7S8 z9QG~we{g!ZjsLollKOwHSnzN6{WZL@R=Vdmx@>Lujd!`-e(uY%{klJX`ylJ2rp zA=~nscO9~=3`n56AZs9}9azW}3c0jv=;vIAvaaOZ`|T~gK4-GZ`p&+%i)qjyiW2ZJ zMq$4HnNOtZ{6`xpD;s$Mo_YVdDm=9>R*GkpUbfXZHec$?fAz4r5>O@o4^Qp*???Up zZTzQ=6fWlfB8L`y3n}(itqMdjp1^pn3%lohjW_Yh%EQnNpcf%dF!xqhmQ6jnACFYX zzh|<~j;z35zvdn+zWG`K|DFIcLorau=&)sQzz|N*E_j~SU}9UwL`a`$(uZL@%-~@v zz0G|yy$2KVDFsvwi{aOn+^UY*`Q8hDpTo>06vPPna{yDg_Czt8&}O3!To=e1 zP2YvVoRcsGDlZAh#@e~zv1pWE11>7n7t)dp??t>+027X#-Su5z1DV?sTepsA1IH~S z8jh}*_6AW<3OJ=pdV9zu%vQrFEqVD*ppW9-Cm00Fdwz>jA^-b_{e8>-`}pYacq{)m zQTSqh3vmcgn8fpl;4tAanZ)h4yEtW(#e$m8m@W*0wy{BVYX+h+4sp^3-P-kG6b1A2 zgY7b2St(xsjN+@|0G0N?qg?*y{=s(rZ=~?`|As)HDKY_|!ljVbT=HU7>UzOjc#i;` zid(--KZp@mGMO&$*R!{80E%N0(`v5+p~tHTtf;LNYD){@w>-{yjMKL;+M%6l$g+=J zEi$U^XxMkQfZ_xXu?G{>tc~ou8m)-y0gW0^ab7E7UrgW#fvaf{$YyAxc5*i&YIKI* z2LSTYNVDe5D=;-$d;jg(d7~EMJLuJb`}%W&;t&SlB1}*`gkH1pNAmOZ>l#g7{nV@{ zJR)!C4o|o8e-p(ppTW$2 zrXRV1s;KF@PH!j!C>|*o5-!{MC*s6yLPGh@S7A!(Y6ZsjVaq3$D7p17S#$4`rn)T2 z2deb{lhY$R{?p;fstzE07o7<@e z1ElxIKJ?W;bQ{&VLp5UGLg0}o^&Zq)v`oj=kv+Glzd|TFXP@gWc5>!x@ukWPujOLj z`vYy4UAq$A5R4kMJDdiAxbOMABPe8A&P9%oA&Dm-JJO>$19+{r9O*n{(^*$?Ck@4r zwb5vrD5MVj2}+<36W9PaXp4mPZP3;xQoECzC08+u*#4G>AFyYHFXzHACX@f5BrF|D zjR+$oF=`M(!6wJ^PpoBXWi4y_;zM8aBuV>njYJSHe)5x$(#h_IE|UGXU8^_Oik_FR zc}uzJRLfiIE#s%LzTXKv>d5Ii9B?y0w2`1k3yyh$7kgHvtFN1{ajEAz&4v$dKD+{ti%sYiv;pBL-B1>C(k6vnR%c@GT{Lh)L7uEwR&;Jf=|G)n6 z(f0grBZYI3{2|B66amKpNF#;7@qJz~z#L`U3h>(g)V$DEC`s}Yze=R=_6w5~_FjNX z@&FzX7{gh158LPAjd=rfSC3aGKueKrbu{$R=Uw){>XO!J{5jWSD&(4q=WJdFG}Rd1 zt&BiLT2aVZ!k_n;5;bds=iT=x zK#-y?uOtZ8G5b}j9<4(;YL%)IQc@>Gry;LUhk|a!qSahMs8SC?5m@dlNuW2LpfGvG zmMw0c*?+4aJf>1C|E&}MC9D8d^8eKK|2gO%Y~#Ofrik;uoNow_vBj1Z|2emjM#4Y$ zb)iiFPexfiLnxXc^40<4%Z*qFj21U+C3pg60-NtVK4U>{x#VtEq}KoX-4vp^vFSfI zsxlq{&*R}bmstL2AlLn72Lwfnx>QNxAAyLqNt?9!1ne$f_Nbs({ztPV(>|r8T>kIx zAD$fA{y(Svt^I!^MM#35&R4eK=iZ2oq&)wkP_jo_(tS;?>yL9XU3=L~qU%r_$#m_* zyhJZ!hh~ap#$mPe%Br(NC~{1ybWVEjZ_;aWF4;apA&OzJn2guS=n#~(Io0|l@>Pau z-hiK8gu8?j9FBMbawb_q5Y0R;)#xCt!yXBCP66Z#gNMK6;#3aHbwXk|65;5<&W{xF zyy_$d=NEv)AVDIZCka77JjlevlqM+dq;25Od;c8Ly?j$LFOiQTBwS%h2=M<_u5&nK zJr{YVMg|rcXgayui)J~{95QQRhbKj%31;GJjJ$i1u{~`>+|cBSk@$80cp8SRGdKj- z=VxzTXDx-i2kURin614R;zA^69lRNyT0Xl!%UXxwT<9uf2-=*v*3TYEu7qp<&##lY&6Srs+o_*Ft+9haD}w-$pqris+Y$kzjXAs zd4R5#b9bg~C1D!kpQm#ACh%S`s)PV2E~v=Vah$F2?(G^V11?0!G~wFRF7U=M90?gA zR|BD`=QXDM!c;^kBQ)?W9Z7(ltI6lxyCqH_bhXRjA9~E z8FRr*CwEy3Dl%hD_S@jgO zBS`53iT$<}t4KVpYR$EVbLr;F_(wKnvSIA{V&?JB)a?TEJ2USySmEwIL&LGyvZ=}Q zS^ZRB&jDH#swR!VM#(n^Fp z`KnHQ#l8AQ24L}t?k}Z6Rb}Fy8;_KghkZc1^)grRX2=O0;+H-6yckM*_Fu4% zz&)A+pCF+ea(m}4fRs)rNXAjjTV8p@L04{gX(nfI+YW1KfdirTkrCOkY#Ocb@K&&{ zC+sg@EdS}UZeMAsy#KYI%m00Nx{d$7ks^5wH+Ze;2$(M7>qVC5n-l{OXkHE7Fi81NuFwNR{$mhG1Pr4XBj=hq?RT{gdte zuZ!mmu^x~H@m)k6NI!0_6(|l>_oTp@@C#`Pih_A%LA@!`8C0_yR2^iKTMgoC z*C5owu5J4Gx+Q$dQ+`i^zMvG#|11&HvIc+(`G0uYKeqS(r-xhlzma0*e_N5@&%(wx z68YI@4TOCa282Wp=BRw5>>(yV8bL%X0Nqp0$6^?|w;Usq^=WhQ7GmUzOPZ zy-IzxoNJ2v!s*aB;*4s9iFDBf;~Qg<127rGM6Q1ykT44`zYC^RJfbK-UZSOkSyp#Y z-HnKU9U%`;0&v1T7Q$~5kynm{AjARSiLVsr%gte@!-53ra8}4AtkZJqijQ7$*NKD( zr-{nMz6+>91JzFa=XOg+VaqIjYAnickpP zkg3&-@8EExq{}cS69B`M=Zn1o_IW!p6skw!7yrmztoq0e9f6K{<8 zQ$A@PVC-j6aJ8LPdM7phm3?;UFT20`bO%w=XM5jT*^b$E6yVi${=xJ96 z;P2tzL-2>0`2QLy62Ln$Q}-gf`nWg)06%ttD*6AxVgIPx@9y`yY<1&NNMf|IHY)gk z|M<|h{~jK1{l7O;o`EZvBq$C!^AH0s0`lBVap1Eh5kc=Bju7p(o(V2br%^=WgaSH7 zK>$Vpxf6>QhofB(qW~s&##nPQ)}F)AZ#@Gc8VMWjP86dd{)~LVrT%B9D?zX{$TJNss?4&~J6`{u%f9zv{tw)MNjs zpL7=XGC+6GyPrm2hyz4hFS_(0YQ5;*!TZ*WZZctilNgU$FaE#QGw>6PF_}_u@#-~g zb)%RtS=8!cAHkle9+Q8xx-;q#AN3yPg13sj{y9tS&f#Pwng2zp^8eUB=-cc6@OZob z-$;QG{t3ktlW+iL2Q9X9AIMFA%SY6Uag^|vXX#E}*aBoQuXn>C_Am^C7Q#$)jwv3oH^wtWThAD$yF);jG?6dbe53b{0v<8IM_?+#yG;`u z-~=PeupUlBPaG8tNvx$w_0bFkBtmf)+>Fuun;4}k7l5o?n1*)q_^A)f_meTEsT@OeJMnJGT=g0%#?V#E9t5fHW)=I28>IKKgFa$%JiNPFeE`h9>6u4z%ap{s>s0XjFTjy zgItHTx}YWTt&@ zJuB(Gn6C={`L9Io4>wz(P}B~3BiXSP%tr@|Cq92whisl zanC0n?Ik3_9_>j9^hpS{-ZNIG(*+mFHxxwEIAZb=3!yxU$uwe&SK90YGQu9XL&*a| zf}7p{k^ZkSnMfH!yP(y&#-YcwjDT<}fs~z+ZF0vrILS6A+^(c_q6bL%hKZX^V&qRf z1SSxN2?`+t>Jge4%`0)w6c=em;et4x1L%!0nlVI11O^NfAwyoh|7*9^diD%lgh@>N zDc1xfL4}}{N()uJRss`@Q4pb+f`>8o#!69|O2e5{TR?~&6k43Oivh|FNk?f|U;;xp zLUDJ?^q+3A`G0m0pe_Kwr7r+f*?*2s?fZYHhlgAH&qfLlkSz@%mfvsQ_O1N&jENzP z-o`$1zjcp8f1vIaNPpXw@@g8i01z8Z-54){3wJ8hQ&+h7biuFS=P5}L;AU1{F@l}| zW90qfkImX5R_4HT;ZPn|{9RXhAH9*WHd%Wi7J;~rzSh&x;`Ps6S~NbeI0LA%{~R6I z=YOY1``h)uk;2#ijebNX!bVa6nT~cBOc6hA;aU~sDPIJW5a)1GgJBy^;gaUJ9&j?o zq3%2)m85PVLy=R>yaLP*(Prrhnmls5)~?=)D4ya$&S}+PCz)?(H~kV1f%58;t#H@I z>*;WaKN}}`dK3Dsl$i)jslS$>x*4R7Y|wDAcur^D%{&s}N98A0@`rXcUv)E710S9D zwQ??O2LH1ep6)uMaFh{;)5Aj`k2S6LPB5(hE|_}EVa=OGg!3(`qdgc{xHx)YA)x=F z5%LBZQadCDJLudL`tEB*2d z3jK_Dny+Gt+9mPP6^WC!js~9rvWEG2`b)T{^3#?SX}nEJ^aXhg(z)f3SAZ z;9B#`THalLc$7LxN@Uww$7a%bNiEC{_!T5Eo@gU`AevJ$yJ~V*2zO1ke?6kTR;e%l zKk;E(L<^|0|MZVe?EAkbhuip{8!24=zZV`i!dnIbak$GfuSr%-yw7ys7XDJ8p-D*b!0_pOu0P{{56t^J+$U1j;+6JzHL+)4e<=x(z<7j` ztMpy=TNldXB#GMUlPD$$@kk(n$zOW)oAax*b}FDnsOKV}N)Yi3HH_VN^ZZ^Wn~~zE z8_MS$C6EA6k7R?2uV;eWVA$m`lYeI%@%L4V`G0`#dR)x+K55$48u)*I|MW1I|9>0* zc{4?~|D+eewDB%v?nV+3#x7zK1d_wWF!axYXbdl>6L72>V!lEP%F`~j*1rcMcqjc3 z7GMBX`rpApZvCHZ&;K@4r2dyoMKvqohIF~1jl_F5vp6jgI1*mL4nahR%3KAhj;kR~wn z%D#_9cP}$AtZI6El3sA-*M+Vvj74o}jZxjv!>BmEk{@MpKn6hMO_Q~{_h_#D;^rZc zow8VeZLJt3r567e(_mfazejoh|I>q$?fLIU3g=a?KS%1mzkYRJdgK?eD4n@D4s3VS zeR(U9XjV5=84}cc$)WklrD6}P(z_XoW9%b-3^WZraB?V5gv1#uXz#Td~r}0;0czV?%X+X=Wfo&@zv!utIKoWN671RTNgthnYsXy-rN*^gd%iL zcFA@sFK$APyu`MAT4X2gi%bnIT7v?V&H-7a@O{Y~N#%h&4mD6wk zO*{nIYzLSEii*7^9lctRHP&0L)*`hSMQ*WXRLYX5W$V@a+Oe#+#+#>ED)fIL;809^ zpHMi%F$uYmwAogmLjOPP@7wX;_m5AGxBCAkithiRjWC$O7{j{&6&roisnONG`$>ML z@ir9B)Kk9g&p4UI_Ng~UlQiTd`ZJnmPGYG?m=3M&jgfaR>jjvqn42AgTk4+(Q^9vJ znOtYN^c%Doc_h<-{te4x_y|JqoI=bdGa|i(3XKT zzgbIBDFLpp3o)%)_eLX`k7d7HBdZ(-wvwY5QB-m-MMDh+!RtpqDw>CI;Siv3=DxI2 zIsX)5y3cIc7<_3-v@Ktv)Yt#;1dbNF1XSh!b#i!W`+pqnZ}q>86y*~T^DD=EjAd4t zX`BVyPv=1$-phfUa~PZDw=s$c#R-Y$ZO~5Os14fDGzhLpfW1`j;@Ay9Tf2FYeFuK~ ztzeHG5t^tC_MY~wd@etfymX*dNZ<(k_FG%DdzGSNT>Z$f+_;Zi{q-M_c)?4+Rph6~MTZ5t=alWEE z>*pbfQoZc=kzL;&rX;}Iur*_nnb}&Xfh8gYAB!&qZ&3g)5 zoqmcZpJ;?UdFMfb=wo zv32`xTFTddj3}AL9-_TZ9$GN^L$&?qq@P>=2m9OnFB>VQ3X{ZB)Ehz>Y=#Xv9%Al~ ziYb6Ihy#ACheLorpJ#82Pf61W)Mdav$rHRan1#D8E06e|A^I*78l86fW?Fca&TaM! z?4;3oY*4&Ie@1iV%}K747>A=yk+)f3N6AM)!RL|$+;44hLglRO z1!IvmXSB~6AEBh_w|aD@9LCY~F2G(^U3}ivM=tLeAuB~Op1}m&qns`OQ5xN9^MCGK zzE}*1%JaX|od4I+R{z^f;k*d|0N%@?2HHR?W>n0JvdWtJw?pFWb{Efpt$@E_)oJ>2 z6ip2kl3O@Z;7sY`@aaHlhh;#eYm*mEg`TOBHbzrkLA{@#35n-Ml?j@pRdNbx0jl{J zc!f1{CWOqMAETeAh$b?I9Y=k?KQZt;?!U#(i*2hJ|MK-ODJq&aGQpJMaKs)n_`D;Q1Dulh>T?|h^t0WLib>W59UzoqXImm?>sb`Bg=xI$ zmdbslhUj0Y=VqR}x1t94gUpFBTKq{<$dLfdxHk)M5BKcc*>21r(ic%lcz2?I- z_Va{ccLkHNc)?($k940B{)SHPvgh(g_MP!I@0G&q#0dI4u&`8b#jgy8`M$_GrOIU` zy}-vOBKMVHi1Fy8YFLVGQpFRNZg_$gC_`z~>w>vzPe|RDzhDl#re!uO3ulk`lEk9= zBueJ5a15TOe@e26%Ie_&{9?qN7Iz8ND5c@L#gyr)=dT4aX>3(B_1G2($HEiEe^_3y%NzNF>+teC}lF;+LtmcBBWwKl0&ff1&ET0WP>-YgFfOxQzAK3 zhx$bO(mK^sDmC?g#$_3g_(||GOu`2HfC~Np@btv?|2{bCZ|{F>q;U2kM-`U7A ze>b=K&Eq`K`Lt9GJPzof6I+@SYm-b!$}k%+T|fL>@Fxn8~PdSaBusx!~Kq+eFy9W z3D{AOe+2;wJK)d+rND9PkwzA~IhC}epuPOaTDZDUImp+pgH8>U_8CfvfA>j5>iaY! zfdjQhjiq7r^9b?FS<@=Mp&1*fRw<(B2W!zIYsqKJ zEw#*=tNA%=>5~e_Ar~7l-q2aau$2#i6L@|&Hb#22>&Q{P+Pt9JbrZY@+oHkh*81AL z4D-hjnf$M*|KZP)66?tSaC~H+|M!niw(;LLQcT~ZOz-38O!#xU0PY|~J|H2GwuN$M zrFvEa%br!qV4iD+3$;=8smlDvFs#Kuvh%*@hNVQoN;knZVL9^UJe}RBT>tAx`<|A{ z^Z%1mJOBIE|9eB_8IZxhWgd2(VEj@93%&NnXo6a;Ju8v#fTz*Aitz--^8vVh{@pYP z*wVS>FWx0%6jS~A-t+5RB*EL(9(e!l+4%y%*k=la1iUy(3eXkt=>kx$h_4`|wklrb zTtBgquZMW_7Dgt3^l{cBFGh)ttBT~rYj`j~K=W_3Afni+`ucN%;t&SlB1}*`JaVS^J1Ua@`^2Mb69VP@|M27_m;d45^mKdvzmbyif4;84E8+Mk*2B(twW1H1N4aBSa$n^c@e!8;+03I==27LWoN zIRDIw`OsOVQM;{QGZ$4prYc)=Q|jOP*h_8&b-{oC-~S^X|M!3WC)jxxijaJOgu%Qc zYTW+v+pYZcEKMg0WTFR=Jv@qnIh!^x2-3XbPWoFN(9=S1x&vog+x2?k=)eSrY0l*) z9l#;OUv}WX{u8Lbfz~5c8QlJBzu&(Vzuw{yPo@)|=^5~5&xEnDR?AukhA;^3pm(o$ zLN|)Z9g^#^ssp!_UjezT+ktVCM6v^FIrHZDHG1$cMj_`uViU^KREzBM>aa9GGZa*H zK*puMQc+%3*a2{xcyE$^!w%f0S;B7}9Vi_G9r?-*L@1`1 zCMc}zMAHr^*OXgh3T4fecS5gNV-4U5B2yO!Gdf^#p^7PVjS#p)0eNt&0o9&7RVZ8q zbw)t%K=%Xx`SHnjpo>GCU>LkY0i0hWkAyyL%toCZZ~?CD#R46OP>hMMTF6FV=?<8H z>kYsn9gt&e^k5|&umG=Z3JoC+rZKu1$B2$e;IFI$Ily(gus{ds)bkLftM5P#aJ>$+ z_V)H#EjK3^v|6{fw{tiNT1IEYjj$OC5tUb_91Cy&_WQ!8O`qH8Q**)$z%hSnkAiw` zcWwaorC%%ll1Lo10ATypWEwR_;n<16K>-FQ{X#n2-rmYld@a2Wv~d#(?jVcW!@=;V z<6Oa3Ka(gB!8p^LBV>ZojBaf!V9&xpG(~#=m_FQUvA!A$he1!Z*a2WlCnK||77jq- zX^%zKR6l9~U@0+!)GaoJu1#ipI+qV*(QGQ3PsKB;XkzE4_LoFROi5#!H$>;S0GoqC zY)<+m^vNcCW*3pU549a22|+}Bs>M!iwa(a4imOlmFIR0 zlthUi{BhNtn~s0H*ljTkXo7=4K;fx_dB`cg-6iTaLNZ2^61;YqB=8_b94BchTFfY< znSe|ikZA$>RkQvqY5dXJUcd~b*=|a#J_C2PC5xde-2AOJh0_g|OEt*!f?qYI;8(zS z+doMt&jYYb(1m6wo^u~IG1)yH?V^IlSqMFO9lRRlbVt$z<@a^rSG4XzSzM1VhWvO@ z?t0O*0Of@y#wJh}H|C!P%Ie~O(MOMPVkndgrp9BYa>3Mij3{6Jbn)uq?9=(#)wS~@ z0B!?Jn@$WJ>JGnur?d`k^WviZ`>P)r$BrPS$nR9591&lJ%c<(;Vslvm&)e3ShO`is zGnD1kH|YZK28Z|5MEUlPkO0BZX&IC}+_LogXcRayifype&;yx=~(;W0V737G*Z=&H@anlZh^fayigtQBFvJ z;=;4W1yL>sx-81^G-Ny9^8ixe*=V7>*z&W1?g%@JhzU4`adJ+=1bvp-qhas>=M*IH zo=1}LkdHzSb&61i(}ZweYtv!uhTNlYVJ24&bXh8kB(i)EzmK7Zt_+hpKff%tu@+8@ zQlJe`ZvET;+}i^;?_RwdfQv~K6CTq$-3e2$xA)St#p+hPo4*afk2mM;m|Q@GtUBuV zt)NwZ{2n)mZUuDxL{#2mlD?HunLW*m*MSJjBX5^WIhH*%B*g%n@u}DXKnqAKEqCAH zm?q*)7H}3Q4;N*7Qg`G-pCmNB)F5*Zwh!7856OcD;KRoj(3iM;Vy~b9XmdMf$t=zK zR5~#R;IQwsQe7i&8slURZBxrRA+6UAWiUu8XPgoS^(eQrUen5rD+JbyMl+i&{NA{Dl8mqFE9YdCx7I> zxavIs?S7wIHn`m)Rh|btieUDbDXrP3nWCsYb82TAoFe@wvwZ-NDJl9>Q@SZ@jYzTg zUKm>>orNJvQFMEn+D{|eAUn?jBS zKLGDIx!+>Sll@6wJZt6A6m>c4`ESDxbTNS=L`zK@zZTr9YG$`6Gf>pJ`&4OtFqXbZ zSZ*!sV!!mFb$wxj$v2{B2`|5XP~OP<42+|Z1dg(vEZ)dX2FB5dmTr8RMy{qo02G`h z4b37eJGa>?@<_920!Q+%NK2l6F}x(nm559)X8K>HSy9>#VRloC!=_-$L#QWX1crpM z8urU0;S7bG%VfAbkoX?O7fWMw!#$ob4ZleM4Cl$1wa7!MF{DCiwPbV>Vb#FSZ3rib zH+%YVCm!jQjzC{>L5lS9USE!z!dw>*G%P zr&UFI=YHIge^{?IAKi~T+K+rgLp++mh&Lqu%v$hbl&}Wa|LSR)FaryqChCl-d% z$e$uAf2&&Y9rQl#uz%CugWgk8A(@BjOMZovdW<@Avr0RT+-jRF;$ z$d~p1>pzR@r*(IQY|W-Pz#&Z#^Z^+H2*xn>J>nx@e3~6kP?P}7Pb6-O9LsOJLU9Rw zR+Arh-iZ{$&_h1Bn`6Y-#I#&Uqti@+p`y5DyeMF_?eU?KKX!I#!n zdsG>6iigZcqHZoo(nJPH0z0vYNW}ZK$D@nLKlOT@;@fFyy+KQuK{Psv-MO5}ntejQ z$CkT3{ZaY9(z{=zk}Nx%_`er$^iPe;X;!GP`oCbw=rQg2a6-#tfvvXACKTAd1lt ze`f6dR&C6?>1JI@n27k-5%O*uI#Jd3nQEd*Hgc6}>KRo_iB$4f+T^>L<-(!3H98L~ z(jVmkfm9zeI+P$`=xmKn`)es|5~C_4xS8Y{1;|TCTzR&YY9_yeTmI#3N(s@hFmQ1i zB!nBl>QEvQfghKl#5GFnu0slRz*R`l#K)mFCu}5)jfESDhcRLb0PDIKTp)mwn43{* zAdw_9g=D23l1y{qfAu8(Eqq2|4@cG7?0@39rmw!qB#kF+|hoh_W>Rv zZ|()?<4*c#Y8#Eo9ikt1#Q&)wQaONs+{x~$Wu{R5z>?cUjq_Mp4~4VuVlw%-BmYp( zhxjw{Ux%}gJL)g(3tn6M{RY#7KVyGrW=MyUuVxL?ZjBjKqzXrBl(Q#drYZe6n{e6b zpgFn&E#*MI0a5bJh+^=-f%vJt=4&|jQIaS?{LJCmGjI{&M3d?Db@ds$g+v}4L^C$%c@N`-ip(9$JmrT8|HTnMiuolmtTx|3cUj)~6>`?;&^ z<-0)I$~#Q1yadg32D;tu)-+MSxcC23nOIR975o2#{o{Ua|9`m6|F)6x44lOyy1K1@ zsZws41qAcI(R`)XsdUsWhH_HuoU{%Vq>-w^)~KQz_hsyvo;>Cr%@D93J{kfR#-knD z>4J-)@Hr7z@^;lmLJi=~3ZQN0-xiqvIA6#5LkVZyeXV+3v) zX>PmVM~a5ifbXxS6vbIb7&=@X`2NR>wQfVZ9FwnSi^94yVE^hc)CdoZbZdL*i>)|* z#KkTDGYi8i+NjF^b8>WO$^YY{gRT7END=uTVCa7d72pdf0Gf3F0aK>go8z=3l?58d8W}q{PB;G-HrG|PQNjOD zPYw_4{ohG{d;YtT@(jEVXJ2OfSIw&ny$mfU!xQ`cEuz?Bg|h|}E%j5> zJn|fdSQO57Xov5ooOuDNY0CJ@hkG=4=ajHeEwUI(SGiy=9Fc^dT)UmK88f=vqj^tw zO*JV7s@>G>@Xu)e9t~ZnE<@EBj4?kS92sQnG0?FC8!sxZPo zp_u0MpggLjRJBkof?5~V)=Q>v;+TXJ6ej7|P(5ADEedD1>3u5d!H~URYKK4N;o}qG zIn#Ox?ojf8P$)c}<#f|7GEugZ=}B*qo^mhY=betMv;ebRG#KL0rvQfYZtEqu)fd#Q zIQO;W0YfzzgIjyG-SRtR2~n#^#>1pMJ?2bi=lA*Dwbn~<8`MjtFiRc?V{Hc?`dO?y zeu;F5kjdBAfQZZ>r1 zzi3+2DQQ<$up0&Z5W`$QdUy#Nxnmmv#d7nArQ%`$CMbbEOkmfEU&dAkV79-(6O%&w zkMz)6MH?0NpCk4zXa7Il+J81txcvvP!G3&3pv^fXTJ6@g{%p=U(QWo&!&Xg0E6`D) z@3za{!&_L);G^LvcO~`rq|KZu%b_>Magoiac~G;Ct*C|L0$V%7Pk${NJC0+jZPc`t zHNNCh0=+IBbtsLEWR+uWS!h;)V^fpUD#to!aB96|kVF6*$Ib&&+2n2-7K874*hVhp zBPdL$x;kv{Ia)6ro4pNe^}fzc6q`(6*G7u<$Ub{bIb);U&2757(KZja4fhv&22(29 zom6a$iZ&qY-U$@y|MGs#D%z;>|2;m=`~MssZT0_66rumK!Txgkf8EG~4b=Rc3g0mH zU>!|eNoz*DtS3s_u2i;d_tv7rRjn1Ns?-nKS9mU(S4{L~#EEIHnG)Bef@bnZuUvb$ zl?~mdDMD4Zug}lkyykAX>`7aTdZJs6e^OTCc3pF_XzekWl-Dclc|X4@Vb6MG3wt3^ zQwypkOl3kIw^h~t_`v;fJ&UUi?63e>`|-L!yXC)j5qAY`RK@@3@7wo(j*pM~Tlv3< z@(g^(#`;lsfz^&c>?mnaVnaXhE8uZ_$YOlH<|Lr{OwK5TM+nN!a8@YPK)#aPN4P5JWM-ol!I(Puz(3%fC z?;n_kK8iKMbXt2V-9gh8wS1dwC2hFf>yuCKU!T4D^zQP_Uq8Kn_l~u{e=D78dHT0o zce;jKKw@yKCxXz-y$mv2W4p#0tJ}47g)h-FrjhG?P?;$-w0Xh=fpq_tA^bhV^ZWPj ze!Susf6p+!A;PvjRMi<4YDq@K2RpB^Fr;hCSH9LVVhZ=;JQn@(jFDWBtYV|G?0w^=rYbqy~ZX+47<07b;cmK{Yn~D+*D+P~rHe3%rp2 zsh5VfRklLMyPw)#8(C9}ZH(q2bpqq$$@bvGn2`IA zTHaHET;@m9xChpW5`!-yn(d&^$lC?uB#Feov;%g2q~ex4l%YPEw#(k_&<_8Kc53!O zUCtM1*cbFwlzxT+huZpnkf|CXbr^^sj%nk*tu?4c7Wwh(*?y*d zGWU>DOxPPskx7&BpWMX~M;r{G2fZ-CD>3J8fDN_vf^nMx_+$T%ed`5V!~+lz4+iW{ z`!jyyqR0NTzsn|G9&0U$#_wiJ?B4&S!Jk*sM*044|LFMe)ZYIc_P6`Ljg)8LijVc9 z+5FkXy%`k6+!AK*9UH?srR)qjkJgvlVCHvpjZT;=HlM31>)*r*E>)MPpg@TcMOV9k zRl%*Om6no|@H}GaCXIJzWxHfKlO!(>@C=2BR*>uQQ;Cr#?F;W)O$a5hGb+Uh`nZxz zPlHNXUsggUjY>RjxSjFefy`5&lIqK9rjkx2kxIjvWye4UXjggGOeJ*{s8&y8UI0L1 z;ES{XV)wZMLKRU-w;x%^6l|hJ(J7IAAm2Gn0%hfv?GkEJN$1{07OGv4c+oBx#gW&* zSXD$N-9}|0h9Fnv7sBD(QAG3mH&g6l3GlOT4J3k4A}sY+Y1x z8rlrx_&>CP#ix);ML}may5f|Xt4^sjh0$JW+-zzME25Haud$V_%+R*q7t@%LDn+zWhctvS!607YAV9 z#uk{8!CAxPiq0xFOK?`QS46H-YWiqCM2T1X5bCQTm*gAGiM7y~V17zEW8{OUPT?nU zhUh;3({sEo-$s@HXaD%bI{!QAA8h0QZ=^f}@6}j8jw8TjE`jn=eTvuc?5^}UZcTSS zm-v|Dn=W7%ea$PL#la(Fab7qvE=Z>8YWBM96w5%c8>646h$eI)1l^ZmQjiKs>s&;> zEyU4{VAqSL0$Ba<8>Q%RfDVPd%R0Hf7;t~YQ(9=fPg<$aj7a%C<-3Y-_{In5vB3L-U z>eear#?q3Rj9~(>$e^r6U*Q+&(spmYydO@3SL#fw-9kQXm@!5#A8lp+q1OcQ{UU2s3WLve@_#O<6S?e(qb`z?S}VJ~5J z!C%JM8}pNj070K^MY;Fr9TS?^OBlW~GTxkRLOhN-jx(4f<^)1B6!Oy_e;Od4W3Fm& zyh$X&-Y~r7xrhut*Pe#FCi2_hZqA-2I2?(S6iy-vc5c0BDr1$40le+-XlH#UeBYxH z`V8K}#2fRC|A+IdAAxu{VGlp<@LlSl*NfT1{r-N}Ba>d-dv){!nO^kvc`E)UAFR{h zkPZLWV{=IRWSbq>1jz;Wj-~@(Z>hwn55WHS*xDD1nd}DApA>*O?!U!PV>`1g4U2pK zXJ6A^ZWmbL|9Nn9XvhCKJ=ov+e{Q5a1J`n_fgJ3|u?@7!uSO_vt+-u4Yi|}oZMV-g zI(#puPU$vw0FF=on1980b&hw=U5*2O(H6j!e=<{% zU2o0B?vAkVrYK&5{D`|8_7c*Q54!)LBsA*kv(|0{`u+fX_-H+4v)bhhcJ}5CKTP#!A`(^WF7sP0SCU+v4m0F%S^n$66!0q|j)u&r&s_eGDBQZc?9`A~Gm#=R= zoxOT{ahaxgxN1s-5k`F{?M_HF;K!^5rr*G9@SaFdPo z<1qc#^#EHg*54|q%SYmIeOMYs!2U7FR~%wszbc;8_awtqbX0P!CQtDFsRg` zpS{vQuy6Dns2^(}Xm}NuAov3be46D*6{Z+mp1ZLc!CXX@d`9GQ1XUJa73YKk5`$MF z&8%?(_D(stBoKGLy~Z5Ojn1X4zv)iQu;t* ze^m&k@K%K&nm`<+jAMBO1-yz$SQEhn#v_zmqX2oySrAlZhA)g8Wu%7}d0zBX|LkE9 z2#|eiBW(c6`>LK zcxrs{C(hUI6z`v{+JjaL0DDpvZKZ{DRohrC9&q{~i2_GaE(;29ah2_> zm24P*pQmu%#Uy>BnDPKj=AYP)^o`<%{0;k&zTs?$KW2aYFKHw1dPH3WuvU$vR11jY zaC>#hTHFi0`;+;nRP^bYcC(&YwWq=ZvF+%oRg=9iYRaBl)i_tqs+lV&Lx0b-%j_4u zICugE41NC}l4Ny3pS4nL|39+!|A+g>Tl@b;$}_-^-g0~X+SjmC@A)Mh3`C#=#(-&4rOq_k00-yEg;}zXUGH5x3q;1*jp}O z$axKREptWKHz-?5>y?3|GrSCa;3mLv98uBF%Uck`2*(L$4$fwrL_{A1H_O|U!KF0~ zLBu#U!2F5a5FkR9P*#~*^$pyaLQ8h+4*?5hrYVP-ojiDY z1;ew}^B63Jr)5khS(k%gH=2|m_AiSip>96usUqKCQt7bdz;dqcaj;y#5~EC`n(fN- z6~W?09v!DDGfxM_3RZc_{W>+>3WEbi0oeHoPco`<=Wtr2Pf|Z?Fx+{~hSQ5&oX7!XpDg(Gdpg93?m9iT{ zK$vQ)=O-C)rL{y`ZZeYxTz0(c*!Ax^5-dAe)%-2#*V9Ol98 z5G>p@er^*?smpj!ZZ3?l&*0GK78c-iQ<{L~Tt(Qg&8}_|EJ~9P+*u+b(I{^EY=d&L ztyWrsRd5%6Szx6u(rRvXfml~y6kO;{OV*Olni@I1vV21P;D?)y%&QK;DzIcNS%;~a)3bbr8CGkpXf^aI zD()}3R}tN~`Q^`iQN?*yrW?N_5&v94mgZSyAS{C_eMWMwj%J9H@Ds^AktAMv$ufpc zBiE#I`cl`VG9u+8irB69=CQ(b!Ym1#Edw6@{)Cs{!R0maUCsq$?oy~r22Tt4*?JGY zQXcjJ5jbR3iQv*DfyGW6S&sy>GY`-VdFCeUrb_J_uIGrQDgP^+uyRjI2dwwta*hdP zf()M@ivw)^|EPR%YD2Um&rGYuw0^+GMr!H{Wix+{xl;q==b-fB(>e+;n&%N>O^t1d*tX zyV}*MlRa5ga|aMF30+Z`FMVF!xH8B_jM6@&udX&223%JK^|>v%?Mj*bUtc>{ZKJ~f z?_mF3G5&wt`~PjEY^UauhSvYuCjHgo^o#8_vb;Anr*~x~uMny5%|D>WJlPeR_02-2 zh!Qo5auE;RntGWEBkE)1hW^)-+y(-jJZ(G^S;8v>1K0QEE;3sN0VCHXBFDr|u21Z) zolvnAea3!SYO*Fd1Jb>XRXAWLD&D{}Py;d5#llVK&iQ8V-Me>hcIqLD61d1Hs4L=O zvWXsYp)fq0gwnvP6@phbY{@%!TE!=2yj{`gRl`jAETDmT2cNomP zlH6*bv#Z+oG7(<{yUs>Oa#tfB33CUZ##+<{WwhwOhNoUbSjDR;W&EEKYCCA7 zg8v&+o-gPBdEB4>u$i(AKCqE)!2ETWpQ%18*Ih!UioHZCdGh;6n{6apSFL6luB#+F z(wgOUZEd{=Q~otiRd&xPhDq`S7E69W6(EB9n#y;l4!E52NPpm?*$l>PYeK?p0nLD0 ztX1fknVuK2XoJMPgTU3219&VdatH!+2UVUwvW%htvMn!Q2^C2}+pHpAhk#&!cr3#* zK>_-g;P-c%~xkTSZij!D(5`9*cf(&X3I0J)izK9TQL~D1n?g#0lb8@oYF*@+v>GkO-Rs) zHU5BNW($1!8lT3{O>u9wg*5_901m!nfR5T!Kp``D9I0PPArP$(0!_um2o42C=CtKH_TK|I{>#W{lDgu!*R$#~0 zbvKH7txxBrZ2iv!maN!D#rps5-BCgRe{j_6e>PIKwX`=a(!ceJpn7{&)y7q|XW7du z(+FvU+N*|4sv(W)UPolo5ouKS$|94pNb7E|H8N?9vh(3jq&~6&1mpWcz63Ks6^GuG z6-$aS9iT72T!0G`F>5as0L|$qTcG-x0Aj=pJ}*fEC=)BvK~3LIcUpJ9y3|Pa_ch9H zWBh}WAx^bFF>?_SP-WCffOzr-9Ho00{m@P?&Q|MvjZz<=t7{Qm)$I(b2apKH(s9}l zOpO5IyiLnR+FWV^B)F<)fT*p;<~bDZn)C?PsBl+-Va*lqd{di%#nXuYbQVuOUbrZ9 z0_?c~e~7N76Y!QkM1Q8a2*gy(1+axPau4J5Bqc`n1iU$P#&2>@;sAShFV+N5rvK?g z@gqu={%3rU*Z&-i4~~2N&nC(?Xs-C_l|JQ4kY3?arts;NJr-q8ujsKTdU_>~Mak1E zcv5iqADOHw9m)+AlyvyX2 z8Hs$d^_~fVZ$@v}FD|?$%Qz%V$u|TKbL7pz0=gjqG5qHe@{y;j1=Hl=Wy1aQL`@&5 ze4DL`HH%|(i|A%9$(ibOP8sp^UAi>WO%2Kur?t+=S5as`q9yavj~~+^-Oe~6h`b`T z#WOevrhCE!XrI?e>kpCh&^r0IC1>O*zzRk$4XXSdd;^dEf2>*jJKZ*|ZX&>c-HPSu`%vKxpb>@7m zNnmX%`-G2Ls&XLJpSoQDgUP*JFsFKcK&ZX-rp<4{~R3j@jn|W z+u9MRz5lnh^#0$r())i`mEQlmqV)dXz5jRb|Gn1oO8mbsKL6bNf19Yw0AwO&?Zpnz zlEAp2e|j!}zMF_yd$9u)xr996*w0b@JOG`Wh*^8-BM2%=A3;!2`UrxG@|q$DH2nj3 z{SgG200Oxivdi)hc1Lal?2i1SD(Ju%ad6=5T0#QRj4v@>9k z;1foe?aW01vc{!72ai8xG(QXn*{SLLY^Z5tq|6a zu0+SK=CIkS(0oFa5NxyxbVYDp%ioY{Gr>V{0pok*!4uD;{9PKR(r8Mgzcddbeh3(F zgMjhm$YXkD-U^OEh!c5mn4Bp)+UzhBOia{*O7|SYvX=AF;Vv&3DhFgo>qaS^c7)?) z08MLpk>ILz*g)`<)jm~1YKFd+Q-W3LxDgU(yLC&js&~pw1d{T4J*h*ma|OdBe!8ym zGAh*{(2XOBl^>K&a^qqlSlXJpMp)I`HNvXm&Jor~?h@g97~d4v;nfjl^|nH{4#5gt zPC_>b3zAzE^E$j_-e!fBZRK@%Dr@Fg+E?5b1Uq*q^fLrEMA+nzIHi?xC0$BB8^+ZU zc5*h6ZV0B8u8Ux~V0KEdth61`EGX=^ISj$H$ns19BEkoH$gKG&2=rZ_GB6r@aFXE; zO4)+Jlo*;pw;_&s5b>{}E zGg)m^JK)p}!Q8!vsXd>zi6C(*sAOmQ8S#@+OpZc9hP+E>l2BEjL=kjj0#G>F+8TkW zwA|B2rczh#F4$qT-W)Cy+Bb769rKDO0RRk_L4}lhm}USzSBVF;igD3rQ4Az#Gli zf#3xcCY2vQ-jpfiTUS;1lr(DDmX@l-6&IzenMdHw8}+B+0&-8-X`qGeZrQhPh1+z4 zTIgdBZsPHi%;XBADfLmv4FL3qdW#zjYE&-)U{$yg8r{;rwzdGkRA3raPLtecml7s! zjD*;t1srxX1QGU06R_!m)d{SNr?fK`4F5bf30?nBJU4)+Fiy}6d2Z6t>Hn4Se@A6Cp%UG`i74lazG%>iudWBr zQ#H6u!@Rs0GM-?knyB1qah+;n%Yx1-iOL<-*1fjXKv^YG$k*por4*E#Q&I{#`yj=5 zeeh5S(4*EcQABOM2PcwT$@{b673WQXeahbvE`snwPw3;cs}nFy0^)daG6inv^S|!k z)6}Wp%=0jmbLl#tO<$Wl9 zr-y8-ZRnvQv?TD5)&jPH#0xJ_!UWwR_aoOrc7+!US>CAAgG;?m-qL32w3Iv~e<*Wx z8{n8nHQMVcjeZm}KNs4l+NeOAM9`xH`ikIIIO;t&`wl(e_%6V12M$Epq2y(|IHX`8 z`^19{5sXtJc1-i2#Yk@ghOMn_@H0;4d@{w5P(BNVz~!$%AIwky z=buLk`tz28{P*!OfpO>tXJG>4nd@~R1y;y^$H&J9`S{<%!#@6ZBSp%8 za@c_y_ZHE>vSfuqttk00`}CTV#^`M|j^VY7l_h2UDP}U1NwJ~u?baEotaVK*y7-Vj z4ytmK(Cr1v*@Pq|gl@65V)!y+Rk9@IJe3XI%89m(yOj#Ny8nsqbNfvi>dDQsh#0!e z-UtG<$CF0g!iLbdE=TJ(mVGd#&DgyLzJr!-%`r)AQ?ek*>fO>TdA4qqoPw#E9fE-j z~t+eLliI0fT9F z6R+W;VR*srqA^T;G$QQh9Wx9R)^fryl9BhpF!w&E9IT_-EleVdf)_oG{_>5hbGe!q zg+6?of&qFQWz@WTRZ87LtCKANMp;f_BJJ07_DIzW*QqJPwm#P<;OaVaIkyg{4;Uis zQgy6ZKQzi}h`LwF6y*P3&%bva16G;;b)2{V9vmL;_45BFij@C4y00`S*r+N#4a^3+_U;)+wtLDsz+xiKUV;Tjv&$-I#=QCWk!4zv|WG*vm_$vA`l-)*4Yd3PhWroy3 znHx7cmlr=|oFxMamc`#X`{5i<}JSZ$$s4k&}WsAUn!BEzv2)&Cunl z5#y4boJF2Rv#`Afye{a|8-Eq%xm%b3H;Q2BL(T&+Pcbk(JQSAg@!mU@L}5ynQ4~Oy zIw25o9uBwjA;~M^2M}YN1dx!lm;5G6S)lq@gOmF8{QI%qZZZ~xgy*#;N&^Z&PV_N&G4)nW2ldG^&~?D+m#m7u(_8=p~u zE1Jo>@TC+uS6V*q>k0}goWAnW_M&lPynPu3op=pe!sk=mODR~%MX-sFU?~MF`2#j_ z2rQ*Q*U49$a!^d^`89I?xn%aN(04km7S9Lxql)oi zkJj@E(O@+iBnrx-{_HEG>TxG=3=GD`s^JT`}&|xstp+ZS&bhl8&ABy2) zI!6$oFpaxN;A0{h>AAn>ELr}Kh5fu0VSH!j9kGH{@gGOyeEz4SgZ}*Q&6I7RMtcQ^ zpWOcOOou~>)?2&ywBa__<=G=PVfI1NU6=>tWzz1Po!1aY68E?GMA1O{j4_lHApc7A`{#Norz5dsN8I6Rp# zIj3rFtva1T7$5CKu4dp-(uUjl$BY zRn-wu9g|077Yx1I8~t>AxVKmAmZc-oZgF;AXWEuJc;vl1suD zXn7MLGXH{;Z_xFhPJBOxgg{bE#c*~$0poZ3&iL5b-*fg44(h(2-Nq(B+s5?!NDtJf z%c}_ZQS&RkJKl5l_b3f}&cUI`43JrLCTcA(-Q`P?tWK^>slGqEL`?u&I!tB*l~9;N zf#Wo)pZ<|EBNT_jJS3)uas~+XGLDl8_-Rk84JX*c!34~cB+6BHE}s5r?-k3iCi(9R z_95-uhT{K^_x6kN|Ko8l|81gd13B8g_?HvFdhxFp|9bJS7yo+k?*)i|4Ze{sq`UQr zXm!4k4kfS}9l4C@$a)p4@T%X4>QBO(1CdyV#U?WZpRnf!rJstWBTQ0ou9S>$?Sz7- zF?S^YjWk=eXx&Uw$R zF-#-}^q(cI${X@4nSg`6*Db~NrEM|E|7uz3s13XPKR!4-%G-Yr5BCpx`F|5-8;FFf ztBC*2`~pqIdi?tfIQzX&R!}pvb7QPqUcy=Mg`#tB&7p4Wb!jS=)6dOEcCv6HB&SOJsHq#UaiPjBj^*aV%DgP_uP8~U`Git=+cH&E{T+U}!Ry;uM%J0>Z8 zx3L4PsaR)NnXB$|!DR)kGGoeS0V{eIKMQIWz%2Pi#Jde0oQq|u9NUbT85ez?e?+}F zR1$BqG$e(#EV_#lL0Jc))xlXADC}#K0OBD{bW}=}IAv?y#Wr)Q!dYv~oI1N-`6=p| znG<0aTNJ7XhLN$<<*zt7%H{tB?tTSz zVzEDK=dW^rF;;ZdF0WP^>0hI)?zKYYTE{J^g17=;M&0bq(*|cC%j#CBL zG(Q%FiI%ncu*NxVgD;qcVf*|;9a1?cQ8|ilAYI4&TrjrMPcr%wtc5gpWX?0pFrn*I z{b?8vrNzU{+#tAdy*r_UAo57abJ@g?A5+5&Qxpv5NfHg2&Xo*7;zdKS^rIaI3{C=q zIbdSurSblJ8FWLR)^h_1f1h1o6#+M9kKe;M5hpBp5#6F=2to*b=vyt)l_rtZ`KzkY zG}}y`wKM{3j!DuCuo{cLjktX7LfZHckU3rkKK=4`cinr8eCY4)4#6^H$pdzGPkz4m z`sw@S$4~#gy9+|-K|)#`@N1^2`5LA;v&{mQ$)q8;F+{|g_IXJXiXaZbGW21rI5+wr z^nrVW?<krl^XEM0pi z`5s)(F@bDx~W;a2VQd3ApGXKdNAs~|70 zJYUmkTNWCvTWgbt<4Vs-!J_M3>&!WD zv!R3K7aNr>{rwmMDrNFYPVn%1Ckuc`;FeE4(>@*97%iaIe9i&6^%E_Y#3B}31(>O z!v9T_THk_MRncN`vtrQXsI+IrAg>Q;280!ZN?*PVO$`q%w-t+zR$7C$FGx#J=F1p- zfKh;-7BEbP;55eJf8m=U_%D2uw+GtS11=EO#Nc`M1*zv)!CSiy2DR3OXZ;q=u@62q zSiEvo)xn_7y0Cc+Xva_59PU`Csul(oJl^^M7ZYl|RQ$K!8!GP_X zI~;?*5>SV>E-;v5l6-*)y<1*UONDX?7J8F<*R>ir26brb0t3!33ZOrs@Xj#tT47KE zfT6tt4ibYpv~__&3`yd~i8aQ)rAt-`3fUGJ04KqN`;@xmNenViI`Xk0_yX@?JOp3E zUtAO{WBVa`HNOR>W4D3XrCVAp{viDps%WdKstyJTj2Gev#$RLCgXb_t*q7-$(q1)j z{w$dQ_NLf`81L`xq!`qptqTk&)+YgSi6wzeV=LB*MV|-2tst(Vs)iUiC@Q0A%`TdS z_Sht1;=vR}Eb|1VlQajUF$VJct32m*?epMoiV}XbH*AYVdkmZ_`cr9~Ha`!p*hIMI zGeMCxZH`DS4E&H(W&mr4LCMOPHpo^%;Q;sxiiwKzlIy{TFBjlEo2Z68Hw5}$zoBIQ zH_lBBrP5ktesXGKz;l;aF<3#TS`LM1_eVi~&@rea&R&{f;IQci<9islSPvTT2i)_) zN_Y{25%{8!H~8#6f`dA~!|gH9euH{Cl(q0kB^cD`dRq(#bYpLBT3TMjJh+hLu}M%j zbzMsgoGbq8TBGR&%ma==y`Hzm07qr|ip|@Z3>bVZCC^$_D-4{Xl=33x0mlF|l%ZN; z!1ZEw3^pS-nlLC*w>kz14q#kEpV*F9E|Va&Mj5Acb-iQ2;Iam79b@3&i2f|be|P#V z)FE8!{a*=~O1h?C@bRBZHyDDCkBB67;vgGia9852k;CBs{onudmUntnAl$*HsgpW> z;4pXs56nk0h39{PDFbM_A_!$4+p~kf2x|vJV-VnMW;{81^O9p015Ve}8GOMXAECEQ zAeD+PygBrj0hC#n(EZQelyv>(I6a44fHZXOHJG z=@fk4Stl{b))WRUm#bTrBnY?usaf3#gV)Ux&V1PoDoL1oQY#3yS zYlTB5qx{y^doWcN4iz}X9A4Z6d2SFqu^6Zl1IARyD4KVO7RCqOgK3_toATH;9-If< z@JVPuShJz8GM}l?wc7ySxPgNnPv>r&$d5C;M?P}D&DKX;b9Oq|?MH zX@JlOT&3Q!*8^YumZ?*O|Lpa^i*fi5d?T;3Yx3_VlyMVugH3KK^1H|j*8|5%Q|P3T zZH%lled#TGa+@yD>iSN3RHvkEvIRhf&W@rwtAjNK9P)0qHbZEqp+?hF7GKHC$raj` zF#*imPTVMZ*=6rb7lR2PcmYT9PjT1kmox$6y*;fO;Y^WsX9Q40A9CdX((^CUhPCJU zJBuf7+;jr$xk2tGNpS4m!rZ+=L*sf4v4~bnYd5ZUw~R>Up4#6h89#*dZuTG)05of| zPQeI_9rj=D+MctgU6Urr?3*DOJLKMz$I*>^yl_$Ih%a|5+eya{i7;h4WI3CmNA-X( z>f|bCvmx|xLNai$c{u@Z_TLyDhki)p=xVA#eJ)7N>qO|~wOY8casrgDQoC1B;!VK8 zv6@Nw-Cs;&ae3s?>su1aj6{->Ce#BHaCH1r{-UlknB;T?=^zzk>nx&ry+RH$LawnN zY{qfEgKg@jkr?moAA;kfql2S97W*|8WBhlzdw0@C)%mac2jl$tuLpbm`L7!(+cM^< zZTR;eX|%WXuvb|MG2LwgxLZbR8w0Y-k994S*74SMRRs|yFeAcBLuF7fhZgW(IIKl-=~;ogVde6F7gOz88fiqVheK}}$1wB?$IaF!R-yX~j&G1Z zHRD@sYH$(+_+bdX!6jx-=n)SF1$@!);B$qeU zh-42_4x28QpYx|oR?OuB$X1x@7(APq#;4W9 zI4YkQmZn;wTo|FQCx)e|MkGgW>;?f05Lt9VvTen%G}VaYBniZ4a57_JY>3F5CzohJ z@^rkvSGw<6nrcL{>m}$O8b9K$Cx)e|BFVLml~pQFcCM_7g3lc+tNLy~TDAj?7e825 z@}TsJWKXgg$EZk><{A@BK`|-WrDPZ6qlL|Q0@!BEZko5f3E1a^l(Oq8KS_yfApG!%@w2kpHb|u-bRJ|fAH@3C@23P?;RZX^8Y5vHb^Zx?K8kNRRZY6 zmgKFYH=)-TCBfPBtUs`v|++(oO?=pk|jYHF^1r)^72+)MO&?&J5+ zy?0SSx7!B%rS*WLT&)GAOZI-fPBk4hO2ox7zJ=PT)n=WmddDjkPPzH6v71dgCA-!k zgPq!;ovp3+BJf^+yx$|^KqB}xj67w^dXTwx9YupT^-eXXx7SZf)4M7Cc!yEp2_y zE2Erku9j`3kZq>HQhM0t8rW94*OvOV=E~MqYSxC>jZN6q(yO-8s5WD;lp?jc3bmE; zw2P6gr7eBcdQz!IdyRTUmQJoK9!vt!YYqF-m%j9+W%>UB00960gkAP(01^lQQN{_p diff --git a/library/ix-dev/community/odoo/charts/common-1.2.3.tgz b/library/ix-dev/community/odoo/charts/common-1.2.3.tgz new file mode 100644 index 0000000000000000000000000000000000000000..d1d4036f5c9067963f1a70613be85e27fdc89037 GIT binary patch literal 63003 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 literal 0 HcmV?d00001 diff --git a/library/ix-dev/community/odoo/ci/basic-values.yaml b/library/ix-dev/community/odoo/ci/basic-values.yaml index 44c171ce34..b8237e4249 100644 --- a/library/ix-dev/community/odoo/ci/basic-values.yaml +++ b/library/ix-dev/community/odoo/ci/basic-values.yaml @@ -3,14 +3,10 @@ odooNetwork: odooStorage: data: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/data + type: pvc addons: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/addons + type: pvc pgData: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/pgData + type: pvc pgBackup: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/pgBackup + type: emptyDir diff --git a/library/ix-dev/community/odoo/ci/extra-values.yaml b/library/ix-dev/community/odoo/ci/extra-values.yaml index c1259b052f..b9b03c3dca 100644 --- a/library/ix-dev/community/odoo/ci/extra-values.yaml +++ b/library/ix-dev/community/odoo/ci/extra-values.yaml @@ -10,14 +10,10 @@ odooConfig: odooStorage: data: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/data + type: pvc addons: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/addons + type: pvc pgData: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/pgData + type: pvc pgBackup: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/pgBackup + type: emptyDir diff --git a/library/ix-dev/community/odoo/migrations/migrate b/library/ix-dev/community/odoo/migrations/migrate new file mode 100755 index 0000000000..ceb9dcafe1 --- /dev/null +++ b/library/ix-dev/community/odoo/migrations/migrate @@ -0,0 +1,51 @@ +#!/usr/bin/python3 +import json +import os +import sys + + +def storage_migrate(storage): + delete_keys = [] + if storage['type'] == 'hostPath': + # Check if the key exists, if not we have already migrated + if not storage.get('hostPath'): + return storage + + storage['hostPathConfig'] = {'hostPath': storage['hostPath']} + delete_keys.append('hostPath') + + elif storage['type'] == 'ixVolume': + # Check if the key exists, if not we have already migrated + if not storage.get('datasetName'): + return storage + + storage['ixVolumeConfig'] = {'datasetName': storage['datasetName']} + delete_keys.append('datasetName') + + for key in delete_keys: + storage.pop(key, None) + + return storage + + +def migrate(values): + storage_key = 'odooStorage' + storages = ['data', 'addons', 'pgData', 'pgBackup'] + + for storage in storages: + check_val = values.get(storage_key, {}).get(storage, {}) + if not isinstance(check_val, dict) or not check_val: + raise Exception(f'Storage section {storage} is malformed') + + values[storage_key][storage] = storage_migrate(check_val) + + return values + + +if __name__ == '__main__': + if len(sys.argv) != 2: + exit(1) + + if os.path.exists(sys.argv[1]): + with open(sys.argv[1], 'r') as f: + print(json.dumps(migrate(json.loads(f.read())))) diff --git a/library/ix-dev/community/odoo/questions.yaml b/library/ix-dev/community/odoo/questions.yaml index 003545fb64..879009f692 100644 --- a/library/ix-dev/community/odoo/questions.yaml +++ b/library/ix-dev/community/odoo/questions.yaml @@ -124,24 +124,65 @@ questions: description: Host Path (Path that already exists on the system) - value: ixVolume description: ixVolume (Dataset created automatically by the system) - - variable: datasetName - label: Dataset Name + - variable: ixVolumeConfig + label: ixVolume Configuration + description: The configuration for the ixVolume dataset. schema: - type: string + type: dict show_if: [["type", "=", "ixVolume"]] - required: true - hidden: true - immutable: true - default: data $ref: - "normalize/ixVolume" - - variable: hostPath - label: Host Path + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: datasetName + label: Dataset Name + description: The name of the dataset to use for storage. + schema: + type: string + required: true + immutable: true + hidden: true + default: "data" + - variable: aclEntries + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + - variable: hostPathConfig + label: hostPathConfig schema: - type: hostpath + type: dict show_if: [["type", "=", "hostPath"]] - immutable: true - required: true + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: acl + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + $ref: + - "normalize/acl" + - variable: hostPath + label: Host Path + description: The host path to use for storage. + schema: + type: hostpath + show_if: [["aclEnable", "=", false]] + immutable: true + required: true + - variable: addons label: Odoo Addons Storage description: The path to store Odoo addons storage. @@ -163,24 +204,65 @@ questions: description: Host Path (Path that already exists on the system) - value: ixVolume description: ixVolume (Dataset created automatically by the system) - - variable: datasetName - label: Dataset Name + - variable: ixVolumeConfig + label: ixVolume Configuration + description: The configuration for the ixVolume dataset. schema: - type: string + type: dict show_if: [["type", "=", "ixVolume"]] - required: true - hidden: true - immutable: true - default: addons $ref: - "normalize/ixVolume" - - variable: hostPath - label: Host Path + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: datasetName + label: Dataset Name + description: The name of the dataset to use for storage. + schema: + type: string + required: true + immutable: true + hidden: true + default: "addons" + - variable: aclEntries + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + - variable: hostPathConfig + label: hostPathConfig schema: - type: hostpath + type: dict show_if: [["type", "=", "hostPath"]] - immutable: true - required: true + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: acl + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + $ref: + - "normalize/acl" + - variable: hostPath + label: Host Path + description: The host path to use for storage. + schema: + type: hostpath + show_if: [["aclEnable", "=", false]] + immutable: true + required: true + - variable: pgData label: Odoo Postgres Data Storage description: The path to store Odoo Postgres Data. @@ -202,24 +284,73 @@ questions: description: Host Path (Path that already exists on the system) - value: ixVolume description: ixVolume (Dataset created automatically by the system) - - variable: datasetName - label: Dataset Name + - variable: ixVolumeConfig + label: ixVolume Configuration + description: The configuration for the ixVolume dataset. schema: - type: string - show_if: [["type", "=", "ixVolume"]] - required: true + type: dict + # Nothing to show for the user hidden: true - immutable: true - default: pgData + show_if: [["type", "=", "ixVolume"]] $ref: - "normalize/ixVolume" - - variable: hostPath - label: Host Path + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + # Postgres does a CHMOD at startup + # Which fails with ACL + hidden: true + default: false + - variable: datasetName + label: Dataset Name + description: The name of the dataset to use for storage. + schema: + type: string + required: true + immutable: true + hidden: true + default: "pgData" + - variable: aclEntries + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + - variable: hostPathConfig + label: hostPathConfig schema: - type: hostpath + type: dict show_if: [["type", "=", "hostPath"]] - immutable: true - required: true + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + # Postgres does a CHMOD at startup + # Which fails with ACL + hidden: true + default: false + - variable: acl + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + $ref: + - "normalize/acl" + - variable: hostPath + label: Host Path + description: The host path to use for storage. + schema: + type: hostpath + show_if: [["aclEnable", "=", false]] + immutable: true + required: true + - variable: pgBackup label: Odoo Postgres Backup Storage description: The path to store Odoo Postgres Backup. @@ -241,24 +372,217 @@ questions: description: Host Path (Path that already exists on the system) - value: ixVolume description: ixVolume (Dataset created automatically by the system) - - variable: datasetName - label: Dataset Name + - variable: ixVolumeConfig + label: ixVolume Configuration + description: The configuration for the ixVolume dataset. schema: - type: string - show_if: [["type", "=", "ixVolume"]] - required: true + type: dict + # Nothing to show for the user hidden: true - immutable: true - default: pgBackup + show_if: [["type", "=", "ixVolume"]] $ref: - "normalize/ixVolume" - - variable: hostPath - label: Host Path + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + # Postgres does a CHMOD at startup + # Which fails with ACL + hidden: true + default: false + - variable: datasetName + label: Dataset Name + description: The name of the dataset to use for storage. + schema: + type: string + required: true + immutable: true + hidden: true + default: "pgBackup" + - variable: aclEntries + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + - variable: hostPathConfig + label: hostPathConfig schema: - type: hostpath + type: dict show_if: [["type", "=", "hostPath"]] - immutable: true - required: true + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + # Postgres does a CHMOD at startup + # Which fails with ACL + hidden: true + default: false + - variable: acl + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + $ref: + - "normalize/acl" + - variable: hostPath + label: Host Path + description: The host path to use for storage. + schema: + type: hostpath + show_if: [["aclEnable", "=", false]] + immutable: true + required: true + + - variable: additionalStorages + label: Additional Storage + description: Additional storage for Odoo. + schema: + type: list + default: [] + items: + - variable: storageEntry + label: Storage Entry + schema: + type: dict + attrs: + - variable: type + label: Type + description: | + ixVolume: Is dataset created automatically by the system.
+ Host Path: Is a path that already exists on the system.
+ SMB Share: Is a SMB share that is mounted to a persistent volume claim. + schema: + type: string + required: true + default: "ixVolume" + immutable: true + enum: + - value: "hostPath" + description: Host Path (Path that already exists on the system) + - value: "ixVolume" + description: ixVolume (Dataset created automatically by the system) + - value: "smb-pv-pvc" + description: SMB Share (Mounts a persistent volume claim to a SMB share) + - variable: readOnly + label: Read Only + description: Mount the volume as read only. + schema: + type: boolean + default: false + - variable: mountPath + label: Mount Path + description: The path inside the container to mount the storage. + schema: + type: path + required: true + - variable: hostPathConfig + label: hostPathConfig + schema: + type: dict + show_if: [["type", "=", "hostPath"]] + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: acl + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + $ref: + - "normalize/acl" + - variable: hostPath + label: Host Path + description: The host path to use for storage. + schema: + type: hostpath + show_if: [["aclEnable", "=", false]] + immutable: true + required: true + - variable: ixVolumeConfig + label: ixVolume Configuration + description: The configuration for the ixVolume dataset. + schema: + type: dict + show_if: [["type", "=", "ixVolume"]] + $ref: + - "normalize/ixVolume" + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: datasetName + label: Dataset Name + description: The name of the dataset to use for storage. + schema: + type: string + required: true + immutable: true + default: "storage_entry" + - variable: aclEntries + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + - variable: smbConfig + label: SMB Share Configuration + description: The configuration for the SMB Share. + schema: + type: dict + show_if: [["type", "=", "smb-pv-pvc"]] + attrs: + - variable: server + label: Server + description: The server for the SMB share. + schema: + type: string + required: true + - variable: share + label: Share + description: The share name for the SMB share. + schema: + type: string + required: true + - variable: domain + label: Domain (Optional) + description: The domain for the SMB share. + schema: + type: string + - variable: username + label: Username + description: The username for the SMB share. + schema: + type: string + required: true + - variable: password + label: Password + description: The password for the SMB share. + schema: + type: string + required: true + private: true + - variable: size + label: Size (in Gi) + description: The size of the volume quota. + schema: + type: int + required: true + min: 1 + default: 1 - variable: resources label: "" diff --git a/library/ix-dev/community/odoo/templates/_odoo.tpl b/library/ix-dev/community/odoo/templates/_odoo.tpl index 1086ad69bc..9e9a5f76d5 100644 --- a/library/ix-dev/community/odoo/templates/_odoo.tpl +++ b/library/ix-dev/community/odoo/templates/_odoo.tpl @@ -40,14 +40,10 @@ workload: path: /web/health port: {{ .Values.odooNetwork.webPort }} initContainers: - {{- include "ix.v1.common.app.permissions" (dict "containerName" "01-permissions" - "UID" 101 - "GID" 101 - "type" "install") | nindent 8 }} - {{- include "ix.v1.common.app.postgresWait" (dict "name" "02-postgres-wait" + {{- include "ix.v1.common.app.postgresWait" (dict "name" "01-postgres-wait" "secretName" "postgres-creds") | nindent 8 }} {{- if .Release.IsInstall }} {{/* If we use type: install it will run before the postgres wait and fail */}} - 03-db-init: + 02-db-init: enabled: true type: init imageSelector: image diff --git a/library/ix-dev/community/odoo/templates/_persistence.tpl b/library/ix-dev/community/odoo/templates/_persistence.tpl index eeea0e552e..1fcc1933b2 100644 --- a/library/ix-dev/community/odoo/templates/_persistence.tpl +++ b/library/ix-dev/community/odoo/templates/_persistence.tpl @@ -2,29 +2,23 @@ persistence: data: enabled: true - type: {{ .Values.odooStorage.data.type }} - datasetName: {{ .Values.odooStorage.data.datasetName | default "" }} - hostPath: {{ .Values.odooStorage.data.hostPath | default "" }} + {{- include "odoo.storage.ci.migration" (dict "storage" .Values.odooStorage.data) }} + {{- include "ix.v1.common.app.storageOptions" (dict "storage" .Values.odooStorage.data) | nindent 4 }} targetSelector: odoo: odoo: mountPath: /var/lib/odoo - 01-permissions: - mountPath: /mnt/directories/odoo_data - 03-db-init: + 02-db-init: mountPath: /var/lib/odoo addons: enabled: true - type: {{ .Values.odooStorage.addons.type }} - datasetName: {{ .Values.odooStorage.addons.datasetName | default "" }} - hostPath: {{ .Values.odooStorage.addons.hostPath | default "" }} + {{- include "odoo.storage.ci.migration" (dict "storage" .Values.odooStorage.addons) }} + {{- include "ix.v1.common.app.storageOptions" (dict "storage" .Values.odooStorage.addons) | nindent 4 }} targetSelector: odoo: odoo: mountPath: /mnt/extra-addons - 01-permissions: - mountPath: /mnt/directories/odoo_addons - 03-db-init: + 02-db-init: mountPath: /mnt/extra-addons tmp: enabled: true @@ -33,7 +27,7 @@ persistence: odoo: odoo: mountPath: /tmp - 03-db-init: + 02-db-init: mountPath: /tmp config: @@ -46,13 +40,36 @@ persistence: mountPath: /etc/odoo/odoo.conf readOnly: true subPath: odoo.conf - 03-db-init: + 02-db-init: mountPath: /etc/odoo/odoo.conf readOnly: true subPath: odoo.conf + {{- range $idx, $storage := .Values.odooStorage.additionalStorages }} + {{ printf "odoo-%v:" (int $idx) }} + enabled: true + {{- include "ix.v1.common.app.storageOptions" (dict "storage" $storage) | nindent 4 }} + targetSelector: + odoo: + odoo: + mountPath: {{ $storage.mountPath }} + {{- end }} + + {{- include "odoo.storage.ci.migration" (dict "storage" .Values.odooStorage.pgData) }} + {{- include "odoo.storage.ci.migration" (dict "storage" .Values.odooStorage.pgBackup) }} {{- include "ix.v1.common.app.postgresPersistence" (dict "pgData" .Values.odooStorage.pgData "pgBackup" .Values.odooStorage.pgBackup ) | nindent 2 }} {{- end -}} + + +{{/* TODO: Remove on the next version bump, eg 1.1.0+ */}} +{{- define "odoo.storage.ci.migration" -}} + {{- $storage := .storage -}} + + {{- if $storage.hostPath -}} + {{- $_ := set $storage "hostPathConfig" dict -}} + {{- $_ := set $storage.hostPathConfig "hostPath" $storage.hostPath -}} + {{- end -}} +{{- end -}} diff --git a/library/ix-dev/community/odoo/values.yaml b/library/ix-dev/community/odoo/values.yaml index 405f1937b0..94df63a11b 100644 --- a/library/ix-dev/community/odoo/values.yaml +++ b/library/ix-dev/community/odoo/values.yaml @@ -19,16 +19,21 @@ odooNetwork: odooStorage: data: type: ixVolume - datasetName: data + ixVolumeConfig: + datasetName: data addons: type: ixVolume - datasetName: addons + ixVolumeConfig: + datasetName: addons pgData: type: ixVolume - datasetName: pgData + ixVolumeConfig: + datasetName: pgData pgBackup: type: ixVolume - datasetName: pgBackup + ixVolumeConfig: + datasetName: pgBackup + additionalStorages: [] notes: custom: |