From 9366acae332312232165f958f910f388030b0d5e Mon Sep 17 00:00:00 2001 From: bhearn Date: Wed, 12 May 2021 19:50:56 +0000 Subject: [PATCH] update "chart" (https://github.com/anchore/anchore-charts) from "anchore-engine-1.12.7" (e41ae9622408427aed876dcf91cea86d1cddf57a) to "anchore-engine-1.12.13" (f9a34a42d694e657b5f3d493f590fc3f7a8b933e) --- .gitlab-ci.yml | 2 +- CHANGELOG.md | 5 ++ chart/Chart.lock | 7 ++- chart/Chart.yaml | 5 +- chart/Kptfile | 4 +- chart/charts/bb-test-lib-0.4.0.tgz | Bin 0 -> 2369 bytes chart/charts/postgresql-1.0.1.tgz | Bin 8687 -> 8687 bytes chart/charts/redis-12.8.3-bb.0.tgz | Bin 54158 -> 54151 bytes chart/templates/analyzer_deployment.yaml | 9 ++- chart/templates/api_deployment.yaml | 45 ++++++++++---- chart/templates/catalog_deployment.yaml | 9 ++- chart/templates/engine_configmap.yaml | 6 +- chart/templates/engine_upgrade_job.yaml | 53 +++++++++++++++-- .../templates/enterprise_feeds_configmap.yaml | 12 ++-- .../enterprise_feeds_deployment.yaml | 9 ++- chart/templates/enterprise_feeds_secret.yaml | 6 ++ .../enterprise_feeds_upgrade_job.yaml | 51 ++++++++++++++-- chart/templates/enterprise_ui_deployment.yaml | 9 ++- chart/templates/enterprise_ui_secret.yaml | 2 +- chart/templates/enterprise_upgrade_job.yaml | 51 ++++++++++++++-- chart/templates/policy_engine_deployment.yaml | 9 ++- chart/templates/simplequeue_deployment.yaml | 9 ++- chart/templates/tests/test-scripts.yaml | 3 + chart/tests/scripts/test.sh | 56 ++++++++++++++++++ chart/values.yaml | 6 +- tests/cypress.json | 8 --- .../integration/anchore-api-health.spec.js | 21 ------- tests/test-values.yml | 30 ++++++---- 28 files changed, 332 insertions(+), 95 deletions(-) create mode 100644 chart/charts/bb-test-lib-0.4.0.tgz create mode 100644 chart/templates/tests/test-scripts.yaml create mode 100644 chart/tests/scripts/test.sh delete mode 100644 tests/cypress.json delete mode 100644 tests/cypress/integration/anchore-api-health.spec.js diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 72f9205..6e9f482 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ include: - project: 'platform-one/big-bang/pipeline-templates/pipeline-templates' - ref: '1.0.1' + ref: master file: '/templates/package-tests.yml' diff --git a/CHANGELOG.md b/CHANGELOG.md index a830733..9b80ccc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). --- +## [1.12.7-bb.4] +### Changed +- Added Helm bash testing for API using approved Iron Bank image +- Bumped upstream chart version to 1.12.13 +- Bumped Anchore Enterprise UI image version to 3.0.2 from Registry1 ## [1.12.7-bb.3] ### Fixed diff --git a/chart/Chart.lock b/chart/Chart.lock index 0f8afea..f6be325 100644 --- a/chart/Chart.lock +++ b/chart/Chart.lock @@ -8,5 +8,8 @@ dependencies: - name: redis repository: file://./deps/redis version: 12.8.3-bb.0 -digest: sha256:ee26f2840524c22deb3b82377f8af573be307de5752873c9cfbfd43a592b7073 -generated: "2021-03-18T13:10:12.040027-04:00" +- name: bb-test-lib + repository: oci://registry.dso.mil/platform-one/big-bang/pipeline-templates/pipeline-templates + version: 0.4.0 +digest: sha256:cdf6e2694ba10c26845caffc96343262185f697595fdcb658c1c6e9796ddb029 +generated: "2021-05-11T11:23:19.071211-04:00" diff --git a/chart/Chart.yaml b/chart/Chart.yaml index b111f2f..f33ad55 100644 --- a/chart/Chart.yaml +++ b/chart/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: anchore-engine -version: 1.12.7-bb.3 +version: 1.12.13-bb.0 appVersion: 0.9.3 description: Anchore container analysis and policy evaluation engine service keywords: @@ -37,3 +37,6 @@ dependencies: repository: "file://./deps/redis" condition: anchore-ui-redis.enabled,anchoreEnterpriseGlobal.enabled alias: anchore-ui-redis + - name: bb-test-lib + version: "0.4.0" + repository: "oci://registry.dso.mil/platform-one/big-bang/pipeline-templates/pipeline-templates" diff --git a/chart/Kptfile b/chart/Kptfile index 6173568..f248c9f 100644 --- a/chart/Kptfile +++ b/chart/Kptfile @@ -5,7 +5,7 @@ metadata: upstream: type: git git: - commit: e41ae9622408427aed876dcf91cea86d1cddf57a + commit: f9a34a42d694e657b5f3d493f590fc3f7a8b933e repo: https://github.com/anchore/anchore-charts directory: /stable/anchore-engine - ref: anchore-engine-1.12.7 + ref: anchore-engine-1.12.13 diff --git a/chart/charts/bb-test-lib-0.4.0.tgz b/chart/charts/bb-test-lib-0.4.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..47269ecab02fec984f282a766ce13a2f7df2b98e GIT binary patch literal 2369 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 CDxmoQ diff --git a/chart/charts/redis-12.8.3-bb.0.tgz b/chart/charts/redis-12.8.3-bb.0.tgz index 39b098b7a3037acfc4a28d73cbb2930c6b616a31..2993243961019ae4eeca7f5267ea5ad69eb19dc1 100644 GIT binary patch delta 53502 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 delta 53539 zcmV)DK*7Ic=KxBcyHx-LXQ5{@Z?B|tkm ziSI|cAL4$p`{0cPUq#8XleFS_PGgb4U;qpTGlRiQjD5m-M-vqD?hH+Xe|dywcXxO9 z#leC6cXxNU_;3GU_xZo{4|ex=_g^0D?jHQhZhvp@<=(%*?qeW-Q+yJ}QT#8v4{od2 zxi92FVMsaRgobR;0q_vVV;au}aEv$_B8EFCB0uAp5gHEQcCUk?DE;}OyW8#Wb$lG* z(8r-iFdKAS2+kpKlCDRmJ^gnFfTOWQ z#s&S(O<~=dru*H0_ucm$A2Tl|5tpytMmPjUli0&Mfc#q&df0~>JacbRkYHe(#<&Zo z90&tC;y8pDk8m7gA2HshvCmv5?3=GG&I0i;S4+~ffJQRXQLykx&%8_u) zc3^_o1hX9o2;*!A80HL6=mVoM$G(7wIqP;NRE&%ngfZcNlVoUjUXM$U#~Amfh;baJ zpX5sI5KnZ~K(NOTG0{ekapc`FRk}x}WA&FSU%PvIyYKh*54uq}?%d$n9gTfCV+yt_ zIw;4gnEVCcsTm%t_cC z#c74yhmLxGr?65pD%)-tI72Bu^=@$NnhuE?gPt0LE}^|nMnHSrue<_@%+uiHCyL;~5!PV}I!SjQ`!ESf=n{S>!|N79fZY0GrqU%l?bqgW~#sez3b<|4;F3z_(=lEegk-&V(|qmj959hbSC(eSF&? zj1ww^31LEF7?E)j zOJQ?ImXr|Smc%?kffTifhlOfUa0=*D>vLg6@G0zCC&qk z7~X-9atwTexEjYh5(GeRaU2sL%V8{5-T@MNLE@8e3^sq?N#{UGya`kF#|jlC`E6`} zz)=#%IOKqC5eWqDrbG?01NG(tj|t=PObWj8&3O_8m)MIj7ai&-C}K!9@-+r9oteMS z&{RxpvA!AKC?>avV>i~tB`_h`qcJ`T5Mu(?rS&@{R6z}*cUm-s3-NaA>dm(9kKVaN zkrP7duUNrpHMF~?Gz_o>Hv3B$2FPKb|tvH{lHh+^zUNf3~5?5cOBD^ZH-02F4b zjki*XL_shEW;z!FieoebIx3N4SC51G1=ECa7-E>BFp)647z-%{NGMmBV5=-b9`07m zT}78TVmGXpu2wgqzME=XJ<$h$)h)NU9D1go8?vX?;@PNPK7!mYr4}njKN9Mf>_Ez3 zlb}l)V?CrK#5*zZ*w;I%-(3pTZzaa(3yw1Zq3KF3r z3)*VWsS zETFV=rQ{2^X8V$Qzksbs0BD#sq4u{s!Y6VQVrIuo8%J`pG!;n5I0`*1`(?^hZp9lL zaG|y&h!A5!uLqRyiKyer-4JM)Z;Eh+gHZ)Jrn)kx5%E~h)G(BlFnq4tNJqAkUtP+I zT(p&Au;nJ3S*&X?(7aZEZ_wzD|n)xETt@1E=9 zAwi+r-*w|%gI5zTUO6{jB|lDkX!B&dLDSw6ym@)<{P_Gi?RSYs8!nwmLqFn~`mV(y z#dR(*7h;b3A(lc&1lvBEVDILNOfgOP0G@XM{zzz?Oa-?C@abKDcsSxXenWzQFznIL zX9L(1+DZptgh(KGaazCswfZ3Bydc2Ak)XvO za{3I6Xq@M-7LJYVRe?#7kiVuV8mOu#lG6i?)4hiY?Z(U6IXz~wag4l)V0Z!XkZ$*M zlqpj3b6QCbxv`}Hf*6H9odWRzaWywdl)})v%}%}v1w-n8NJyY9wki&%$6}*VjR`QW zh9hn20`b%1+^%(GmJs0gJVrnxrGbea6?YOGKtOJBh?%mj#~ArU{)%EctQ_oxmu~jn zH07qvxT=}nhE-X<**0A?bL0)6kJ7v09io0+smoQGJuX6*Z^mg^-B9FQHB*mQ)al}|16-ezI zGkpRRkSXCs+L*g>d2|{jl5gwd2Pt->O{5aFY0CTtnBu9FH};;tctg^+UX%==zq>oF z#r{%Dhfz!;9CMPXELv_Hn9ZrFHlIZ}Cp^p|JTP*9^69ynAYJL);^InL@(EKf4QE$8 z=sm}=;C(zsqY?2Sl6y65NjA@{mIWhzO_BdC3WVGmZ!fl=B1t$diX?{-jKI~>d{6Dz zF4m~H0Y$z$)XhlwLgEpQT|U9C7Z4nBSIw16B6~y(h%40@BX{T_>J+6av)zbsQ5KSv z)!RLPm85oN%GqPWS_>5(4LuxjA#p2B!VNLMqwx(1$L3vcL%?(eMq(4rOA}^d4IW0M zkQ1A|H29py^j0WdD4YSxb~wv|26q$UO<;;rB%vL-;26moA?18E>5f-e7frb5l>G_~6254bI%G7ZZ3cXrT1|q| zQc7P@m5O3~@*aCfQ^7qQ$24PPTTaEi=$#RVw{VN%lFBHd=VTGh?7kC1!Fx1~0<47z z3Fsue{TanfzXEgO6Ds*~L$WJL=L2mJ%$K8lg5&FQ>F;7X9i*=SMg#}`1s>V&^xJcP z#3zI7Pcs-f?BLhmI<|!H21RNJbAzFKQK)?M#;UHQ=hk&qaaBL%0t74h^2d}W4ZC>8 z;FwMk2|>u`UCaKUUJpS3>;}|BL8qfBR&yQOm?j#zn_w}#fZ)t72W&!n9;+^7Cw!XWH2eG&Fw>ivFbepDTLI_ z=AD-Wn;~f09p7NFX^g$d)wNuIU26aiL;oGc^dH#cU0GI_&;`04ojRRPJVajYFkgIo zc$7(kZ3kIM;WWskxQj&SxSZ-@(l2R51wkriBMNJChZcs+ZZ0aO)&dt$M81z{5?K}m zaHW_NGQAtjz6NT%RQa>ZT}6F!ro9l=(mTO1FI6%u{+mV+udV6otT*u&ih_zp;Qz?morp$Do zEmhNmtM^=|zq`A;>nQVUwoyx~hUI~Zt{GJM3cu&_2rK=3Ie*CGBs^q4F&yhbH|F#j z`?COFwjAf@-_+b1Qa&k7)^?|0%S_D{{ax3apcr|wd=O1gm`rg@Jnf$cB+subJPgw+ z4QT5FHAN&+?NGjguIYzMLw7`zkqsArEiw*ijG2%TZwXCUIy~E*jkL5DSLA82>Cp|A zlA{#Zc}(yv_SLqQjkIb*ovh?R87M#EnL1*5qc#$4Nkt4s(l$pz#xe56W`V<764OvF zn_CnUK_;v)-QSTQV}t@(95ceWbTU*^8L2lC2n~`chOG?WHWB926}^#*U5RaUvF-y@4I&bn^7H#8e4Lh_iY-%5I!f5zi>c@H>8wz260E zj5T8AJ|dxMD4D5R{v3eQi<7X+CeA~&xJ?gt`4pSw8qJB;(j;McFFxJ(e{^+*< zg6?F0+x@Go{zaQVXk6Ns*HR%00R_@&fsWb*Ix^oeqhF%XTDKixKWvW{u$tkUpsbv1_WMNYRLt7XliNg@`agavY;PfNfDHP zB0rt0FK6b%66d{oQLj&X|6HfNMH0~KMh&YZ0p%N{4Y2x0KyEbg#1rNP+JS3-&y6QI zc$s_oT)k7J-->l4R|OdrhNPQUkf4{J%Wj2#om@Coht$^qY~J^*h3wqFg*v{6M_8z8xVR*JNd={u<%(MeZ}6j)~wB_VgL??a>|fBoC_ z>|bhLynrYRxmjh36TWkP_YudxzjNRtjAIjKzObJ(RgjR>#A?C;(VZ@Vv*dkj| z9#-N7KetRj&=K_UeX;N_dyIuLe-q(&fLD#aW zWhvE%d1WiBG;J=dZ)K)mSJ_X0Erl>|?X41H^wDL6^oel61UsckCj5`vF!ZL_&? zhL#JAh8WI&R>xIZA4{(mSztiahd^0ur-eMfQE4R%cbZA3Vjrd@y{TA|KrJy z_zZuO!6hy^@@}>ZK3BPat7nd@=0b7#H)8uY8ovudZ22W79KQ`cMZ1jr6A$3)?@7wb zO0$*LK&z8Y_1?G!X%SGGy^cw2 zZTmk(zO-g=p+S#lJB9=6iN2unnt(1vW1!(N4lu{oUC{1a>nl%xIE@JkWIPNm)}6iO z_J)WN&rLru%zGP&Xi@C0<~75aZQXh|sN%F$%vb`%m%5*We9zJuM=_UMmM)%-%OdkF zb`QbTnWoO>IQX~!Jx$2K-876WUFB{#p)P8um47dl?$9PO*^9bH7Dga6MkF`C^!%!$x5gMNGrjZ; zOAoiCSqc-W}t$h|c(2#XsK>kUMku}E9TkxkZn_c`$EoV*Jtu-B3E-HpS7iS zxZK%x)yeVeMNWzzc8q#ydK*uwe z$@W|?YtK6Qb76|!U*6z5W!x7Mj;Z(~o(2bU;{X&XOv&+!$Yy} z%BHNIr6aI^K2BU8CqBk;qFR@K+SA1S-Ks;o{_baco>+sLe!V_XT%Ra@h9`$8>h*~VXi8s=bWgX zC`7@G6HiCwcdgX!S+Wy+nLVZipBaPRzYsFDp~WTv1lXS9_DY&3klV%5-}vqi%}#b4Iu_P z6$O+Y>U`7R>np`9FEW=bP-Fx%nmmh>Fc&3%2ttf~efK=f%t%>~W=(S=6a+)$-K4=R zGUj1~oFoh|W9C}EhPk0mW^Pd+l(lrd+E{sqJ7!6Mfeoj%bYEUc#>yr#cN8 zM?oO}jT04^;`_=mrn`>=@B**l31|WLDW^#XGm3;qYTJ#PB4Dn1#Y}qNb4t z+tLW(Y0UwX+ZQDf4Cv5w@0fa$*=Wz;h;*m^Mw1a38-E<9Ternu+IN+NW6ZKx6`y5a zr*@yx9)odaQaoPsv&@l6+MceZ;B6e_t%^KXGW}2md|RZL~kh5o7q(*(j>cL*s+(P=v*!1 z&rabBYL><9Gd6%D8OR-mEAa|ccDe1_pxc>HGV82k!4>Aln?QTo$m!;Sp8l4z88pyAJs~`V6686hiY8BCns^g!Mb9^oBae^yZ}5;-O*zFU)z^QMx|q;G(&QNm zr*0j6{fK8Lx5Tp|JXr)*K-WYd+EP=GMSnf)Ukk0_np2K~r6&K^=hNS|;qOqM^FI6R z=6r(0HYWQm^YK0IT-&WxO}9!3s5R&SF%HjRO2UL2gR&Lus$OGje{4{2TP*q_n!V>Q z>0kI0ORf2@bDn4>;0L8cY2$rD~Vh+OJj zI8buvgx-aQ)Z{_ehz356m4Fl)Ie)e?LR>cu2iHkY+d`^@T@^pCM2TJ23_^wpP2YhO zjd|)pY4TNpgAz`i9p!;laQWh~R8qakoyvZq0NY(taj&Q^mg7_&k|hkse;bSSv!l0p z<1aXX--!=y^7}yk`#pRFFX7<&4mjYB_I_936+%+m(wHi*kx`<8gUZvc34a-JeU2x# z80LA(#BI*<1Qx_+uq6g^R{#^EDI=L;Uk4P0|DlQWGQLA;fKFv`TVSkT8FWL@&!LH- zDv(i)MAGpiS6TCqS1N*RElK2xWnTBC$bz|8g1d#FkZMKBSY4$UeKnq=Dv+V}8ikLp zZIC>C`(15y>p*-1MMB|qX@3~ZT-i2&dL`ZIX3AjyH1$w+xu`0!SO=CWa_r_;9!tsd4QxnrtY0zStO`VnhFd zGJZK@cAmw@*daDH;5=K}I$m@!&R~1zVkKZor{XlUsD3BIHWr&|2x44Dt8Iu~Wp$Sh z_23g0Cz7CGnD}GdDrRb(uXF~CneH5?ufCPwD_75ygoj2CG|tmg^!}$1*>68({?AXt>HYnt$`Z_WOGW#r&@a;`2KH>k~X5Isne5ns{dbjy@$7B;aatpz*k; z{@iecs^kd0QIu6t+|;}5ew{Ob4{}#`tN^g-ORM^j(g35-*-1YT9>^~ZafGwdVn=i= zXSI9vB@3-v(WHvMSJ7gMXBGJLon>7Rl^z<5IBRS|d>@Av#(w~gT$7IGB|F*s2yyA4 zX^*b{dY>Bzt%z5RgEe#caWEMbFSQ)eJRTL3F5hcDn0whU@pbU?sA&mKoea6s=Q0nW zFgq3H0ma^gaP09U#!g!I-WuI3M`RuLB;<@#vVi_mV{h4*ab}T*qmDuwiVtzUTE-Zkb`Nwj(R)Wqw>95?3W-?M&iAAYzh()-oMj01Qh(HE*4E5atxCwPOsJR=%VV@@ zW-68j)Xj{{D55=qQtygp!YKNvt`-#wa2-Aia5A+SEW*eXn_iHQEwfA4@aOv{XO1k_ z<27$w^G5soWAjEyeQVa(29?#a#*!(x4V(NFa=kpPNUfi&QMA`L&k81gnIwv*0XK|^ zKg#-Ul7FDf699dPrajlB=}jjj)&|272~l8Y7IWqa)cQcZ#RykzFBwT>j!7CM_?ROS zu*aFAO#4%byeir^$JLF~qN^id#K*3O;{4-d>$tcKLh0!ZzmEe_!@@_Y3yl{g*FatnI%~@qG0aoGXXcp}goTlYQPzNPx9Z z0E#&f216|G^vZxs*oUva>U2JQaAjZ-lkTbevpPjkdT=)vD9*7xavZq7H?>2`(~5Rp zHh)<{6hNU5TXv~j3RQE+ybW8`-*d@7w*}aayV|D%zZ_niot}NK9Fe|F4==@lITeHP zDnAyYgSIhOotHcElE?(zs!ec88JBS@f|=e&eK|jNPB-P$Wt^pgnLNa&30I-Y^4a(# zOzcfiNZ7QiF#oP1^UV(2$xD|s90xOC$$xl^nNIU1@MCv`s}wg*>V)Qi_5yTF@HVFl zhb)Z~KyLAltnA6)0gT#E>~YB5Ke{Ep7*7PZC?I}zIzU6q;-9%zbyq*lf?#pz8`>@Z zX-Ha3s3As^rrFSGo|H{;U_-=@Pn|zWalv?+>lD%{otSLJ#@|HeHN$=v4nfomRDYNQ z?HvO8W_LhCtYJ=&U==t_IfbUJE2`fV+D_f+6P;F5okXT~lhlbs5(B7EXHp2vkE{Cr zxU+8Nw`TS%rdB)q_xBykwME_RRxXs-hg*VF0_6`M$`A|#Ns|P^{k>6V)KxN>pYH5Z z<=&MEAH_70P~AG)Vr&2c+ z*6Dnwzx3{6!m;&f2V{!OG>>$Sr(GHf)h(IO2gG)-CgJ>1GcU}*W!Z?C7%gA*K#m+5 z(p%hBlZ^w07oW3sQ^X!LN3Pyi9z0d032D)`H0C_KX}3rv#kKaB!~aP~zkgHcs?9SB zLeLe3G3E-xbkmEIPzNMcdO2L29G_lZpC4Xc{_^(X_|@jtO)|tD4`f}PQP$0Zt3e&& zP|Q6F#T`g}!A+V%AI zR9=*k6VdO&MG^ukB#BPN4}U=pV&jmP*^~$Qpv0zmz-;~t0A_IFBwTt_3Iw6E$@FwjaxGt~&;|NHoqe_Z?9nol}#!}{t zwNkBS`T2cCIA#dEsND$k#BBFC?WvA-1@P9xGU)MXWY=5;1~+)N9Df2g@;?3Y?H?U3 z(|cV@4*pMC*2%b%nO9B$ajvsQR!*3V3hBC>&%h<^3Gg|}k??>>C6hT^lIsh0f8 znk&ut_quST8Gj~(Wq<7b==EutgI5UJ*%&p++UAa=3>WB5=1)4fQETbDdCn0OW;mVS ze7*ecBnT~Fg3${OQ)HXqx`OK!n3*VzvhteIq|M0ytra5q%EzW4V}CirlWG}CtTeP` zahJsgN=t`d$N((SKPmrzLES5wYyKh=Th=jFy`OZ{<*`c=dVd(s?6UIulLEP;SWiS{ z;%q)qHzZpqS@sUpF)=4qSfQNupekom>((e3LQxS)iBkP&!Wr?km0O#=gm9Jc8sUr$ z$|mp3#Mx;5zQ50DYiDndPp(hT3u>B-kKa-V%4=YR<0<=f_qQ(Nh$pOzd_NZYv3#e0 z+&kMP6wcpXTz?giSf+UvVXrHo%JxjgjC&^yt=W2IDHL;ya#IhM*nKurtc#of=er0q zvdqy<{s>?`?VP>6IvKzzm-qcRy1{^8gzwB<^XddD>gKapG{#ugO;1{Xk-jF<0w#$@ zF3kZv%NY)Cy_N)VH-Czs<(9zZ$;Hp7M-{7}b(<~Z6@ND?@Zp0Hd1HC4dW(cUeh+4~ z*cZFIBpi#?0=wIiR=Sd4)Koh6W)0;DH0w%1LMqH=q)k#^I_X*mJ#BcNnOxC*cSPem z6#MOFnB984ww$BR063^K4F0V=ll{GyG8;|5Fps%4FRSoJ~|{M1L->*oPa(f{Lmf`bUhtjnWdRc$o;f9xN;eEGb1|L^7Q z^R@rSQ#>C&^uB^yG95_Y$q@;#bWxa!Veuw-0AKYa1L=L$Ie8yR8>PNWZ6ZZT7m;p9 zmveRWIm0m&r*^Y%GLEK-94Fa*rfZ-netV1KSbs?6AA!e7=)sG9`6roPCZiE~500Aw z6CBM|j4F?va$1Rkgh8yM)k%c6xk?lI`th^ zf5tH*G^{}}b?P(2Ahxm@{E?tQMiT`TMH16)=NGI7K$hoX7z8d1hS-z2hZvn=J71JK z(tjd2@Ku%`8U0oT50DWdwsf!c@t06*gxJ2_?VOJCgOqOcYJlWB!qb@lDlZTd;%5>B z8rz!T%XVtFd^T=Arc-Xp)D~z(6Gj0PKQ<-ugIDdz&cZVt2L&Z3qGY({-Y$$_k)U$W zRJ)5Tgu1^K^<7||#OgQ{MNv$nm`Li1h<~A4p+snnUtQg=nAw6wAg!F6V}_@4fH6Z2zc22 zc@ui2u7>%Z)!}GdE+}4p1Wqs2C3V+q`aj@c3VYpt-#CLQADt|(kPriqj>RPJ!QY}- zX8to_XjRs}G#d;sk4AW>GfX&W;D6sp!{lDKzY9LaEPR%Fo&n)Iz$n~d8C+FnL7hf{ zjE-x9i@S0z13D&Nw{sXUDt#6`B)~}L0OPqvM(Oq$pnuLxFkC@3CcaXrGstDrW$jqw zfDTchEyqPgP<>Q`X~MghqNaGp?tA~n29o19)hUIkc zg1-DBN{?rnR#SQ!)pkMUD=f6KN>%4Bu|kdYT3fHR&uOh?3k$Z4A=%t7lHY0-BwecY zs>_vMXwemG&Rui)3hO1eUUHxNk}F(iRrga}`}%70Vk}2}Y`ZLLYA&=u>tW1Ys&!S@ zi*~(eKaWK#6JY9W4LDYI(tldB7Z2DGw(W-LjdbTI^U0Mkly!||C1iZ=tJjx;K+Qec z+@XsFBJm!&qM z7f&I~^+)7+Iw`DRv~|7Ir4Lo%vpO4fzF1d98?|^(YFOSXoReB-)Z2B?B=*%jErsjo zKb%%TYRBw*%r!meqiS`hqm~HlD<2iZg5MLyNjTQI8OzpeXI{}7E4b4Tu2kn^la4AG ze-EN&3FwjNxq+6gffOZ+?*<*sVaK>lbwfs*UX1;#StQvRpGElX2)edtL`H!Bu!=cT z6#c3q@%<+Au#Titq0G)C>zK^fA3jJ2(=IqlpvXX47Xs|kUAsti;0L`m(YSD$X2t!l zF-TUGu(@v4_c}XCwD?R^RxJ0v(BC|afBFtB4y&%~i$iKTNOPfb0*#zx9e=%^jr39{H!VKUd>k#;uW0~k~%W{4$8FBMI)foc!fA`yI zFqe=@4IObAO_5~*gktQ`=@f^)+T&C{8g&n}IJ8LY_r6Mh4LH0dF_jx}xAX5L9MLq3 zhfh7$)gz}f&YBpKy$QW@IqfB(k7F6C#?`I3q7~OFS)__KlT&*RT%4umlj`g2WSr4(t4k(ZptLV}d}e-*9p@wG>t`i_IDCTo4c@?(S4=QgS_cK=Hn1{uK? z{zLjEHdNcr)hp@`c1e}?@}2X}aY}93LR&jH6>3#uZwv`FDpl49X$rA|9M{8d9J4uq z%Hy}(C^nDfq9eLo@9iD39ngA^`>z1ZiSTAfe=0 z+8Q^-jG-~!k^IOL1xJVkwFgecJC>=@Uc+H9cm)Ary!wkuQ);~{9;xNwcUcr;@Muc+V` zE;RgSzuSM&_CCXQftpLr$<`!hgJOrcO1FJZeYm0#4d{3Vm$C@he*gqhGD1fdQj>;q zB;fC_Kp?B40}K6hN@EN{dyA*aoQ(J~=`Dy)SrXHe?R6;7l+m?qF#)25shKT5Zy1=Vb z?V~8_=DAR6`7H*K$O1^nniCvMyKK^vcU~(i=&QhKjdELJ2SH&Ky7hIYC`4oIyTe(& zmd^T7Uok>4cj-uvT1_F3P9qxPklQoUDanHN%&OtE*@j{%O@%)K34NhC9jJOA>{x*f zZJ{uvTt%Z(e`T!~16j4Hal3W{1}wtfK<1rSnUoZzNI(P7(Oxo|Q;}z7>#mGgGSJL6 zOr}E|5A3iYHZq1=O64+R(Kca=Px^HfQ%*e^4B+bMT+tuZ$-70n&R33Q&3xqbU&sG% zNz4-zn2;_H+6LzE|GnLpdj!4R*WQqXJsB-szUV^k4vikte_lX_ly%u;PMLs? z=NHn3OzAphnhhzxmNyUBwI8x;9P)U!wVft~oX$w}YI95M8S1tU+3x61WCXwd3hqC_ z+1wgqna&oeebd?e;pFi6^~vSswGNf(z(*LzI0EN?H$MoN_YQ13@Y`?y0epf(Yd^a~ zaaaK$JJ8csKY4n1e|oMi0}&?ECV+u$!Hd3fN6O%oiEs`U zN-9!lj7Z0}_~x^~slZ1^$|~E9lkkxJ#BeN6)wbpr6Ou09R#9nXBMHN?81PI1@Fw&w z1ouKGShIb-O6OqmUSQcYY>#GG3}kx!-RbL-;_#R&HrFV5|LS)SaoGG&QSJWss^QFX zVc1}DV_8Jzf6d|L)yc)OI91iIMy*hCE{4u#HHA3v>Xpd>S*9&-Lcuu&GzFWE49tH8 zcLWtTDKYnYTBsMont+<)nqE{@OXj!6zFVw4zkxij!~w&t(Ts5v5DzVjXRdmSCNfMj z3<%1XtF_R9Z02pIx1voxHw2J^SwMtF6tg&B}gnZ|7=h&ho?C z%d1yre@b$Ye%<};zN*Ig+l#B~v!C94dvZ}zvH#nB$58$ToKC0MCy3)<28au3fEV&6 zh#fk{D#54bKwUT;0paOoJGnKhumGx_I`dV~WJpj<_yor=LDIIQnx?Tjp_kbn961k3 z7-Qs3gdD6g-j2zw*!^WvhAv!9Fa+clhnO*te=hS1x>%UN$rRIs!yO_rL%)falI?w> z(Ojx|dEXcLGuf2R*rc5Gc^AH&X}A*%A->aHR}JbEyAyPaRUT7$Y=HeQfT38FwPq?$ zF^a2XEQKw#ft!@oqzyyCX4N8(Co%!FT)sP6C5q_~4TBj>F$$SpKtiY&OG+kZ5kxN+ zf4w4kKyr1^5W@^}t2MEvKW~S?XaIei04O2;_|%p>zZRy(@s`RH}wTWRqVCj72mh`Ge#N*w1oe z;P-?Vb;G=z*DUNvyF*#jX(Q;QRp$cle^|(Un3w4i4llmHe6{7c^7zpKXIH1N5byt8 ze&7K!AMMpFwwwFP!eZgOBO(~NQ_VXntKHyPRjrh%RJVodn>%c%hY~)~`GZ)Y-r-MI zKU^QZK0P_Rx~#6OMM^FM(>gQEbg7EbF2ygghCKu5Ph1sxrK%stKU|+5UL3x;f6R3! zcc4)A{wYpts&!ejR;}1IYbr{sF0z=cH}X3jSuI-p^1l4q5?Tye1vR;vT^9yX2hxe8 z6S-4VG0U^4xP>5s3X}@9s)klUiDIg5Sh-W`i)jn#1BSLn3Cx<)K59;7_?&`HW|BE& z8{`6TY?Y}nDGNa{9I1MFD60d0f6rs|U4X_ppOV6z(3+AO8F_CrGZfda4{JiIy`5ux z@*aCfQ{O_Sq0C1J&H3UY&6r%Sx{gfPT52aNBnVXW^w zautH}zZ+k@V_$845Q7BWf3GC(lYeV8?;RK+!!qtGCIb0>ZX%?GYV+B<@R_su-wyo! z?~CGOwKSoOUlSX?vVU#%9ry@Th=?ozHbH&(2 zcpExycPgiZjYmHsT-CwfYR>&O;3&W-Ot)0bRHQ*^oJeAIOV!MqO!lg((^&oj62j&d zJg6V=5xj&8CesJke}`xA3_d~iDatlxKJ8%C;*<&(EWo%Lh9@Tb z7zb!}i9H%-s*_Jc)gMJpmnjv=8jwV?g!5npxqNKm6sUgQe`$$Rlgra7>d+4(@Xzbi z>(eiQFVXtHK2oeWQdBkn3MYzYw9|G!@uA{p#C9Hfy0~UN>x0Mj!Q)~Fk5FYP&2pW= zl!k=UxP^k9aukcooZ?GsJ8&vV=#PZP$uzUDAm6{%hY6Mi&d7Rw2mbX{b;Bh}Dw!dz zUfzWCE;NU7e{)G2Hv4tC+Y6g+jSas}{oW8%OK&lZafo9i=u~26=}&53ka#NHj!z>Y ztupL`i{V-Ce+!-J`Oox+P4VYKdb*Z-wGow1BL^1M^egmFhW~(FC>z(*vBi;0t#E&D zYm;Y(Z(3OqMH_BTpFBN(l_~B<-xc7xm0GW~34<{TfA``3*|t+4Icf7yRF|4S;BS8e zHw0(%^n5A8OMlL%ywmeWwryKzv~?!M!&*uT)jX}H%2vKyg&s8Lh-y_X0=W&i;*@v3 z%Rr4l(AIaLT2ffViJ(%3SjZuumCr%0nJVXl)w>nsnr!c1kpEf56X%?uRu!`jQEM72 zA8#&Ze<646CE7sjxl_|T5|P-GY4pG&)2a(KZ(6U+&anbIU`# zrs8(vv4@j8_i%~_A4@AYE0Da4t|CR*`$KMm?*HtnjiuOpeuKNBKI$!V8H-Alt+CFa zQfb-DNx83HmA2^O0(>%)digvnKUYrP0Ol;Te-J8hP8Wis7eZwzvk;tYAyh*<)WuRF z86gr-v0F@M`fj>rQA^s{S3N>=5zX|xyu*+3-Z9tqD>owe9Iu&G1g5RIX9l0q={!8} zzSX1LwrY*n+UNL-^*R1>y@@NZe|+!V6}#=i1D#zTqK(G(0KoaW+o@u!MQvGi6%q+)$1T1Y*q9K~{ zN!-#9SEq!{!Ckxg%;`c2T2oJ|G4Tl#QsI%}q716@k=B+~b17)WHH=ti{RGFU$`B~) z*gIa`m^Q0Y@~bP;SjbEoGt7z|G~2_Rk(R~g4RjIK0^_Wzwi@QzqRWhO-HCEu&9={V zb2H)e_%u>m;*f+s>~`gU|Ktm)zcpCm)eIGUrsjKdwDf4%?LNT;x;l@hW-qOL$9;Mi zx@g34>`qA#5T@Pv+YCghfB<$VV7;+H6`M3CAFlDYU8*eu zsg(cf!}GUicAu9R*eKz(k`qltc|MEq0FD%gK0WUMc;@c`oGCxOR=Zu43MrAV7>MEI})VLE_RsK<|wV?VVhMs zdVMNS7G9P7o%9f}h=vTm+T1ccTZ`Q;gMHZS!#n*xbFDIeZvfnh3du8}jKjNP_bX0) zWTgl;^T#lpB$-k7aJKcK5aGdtDu8+aI3HK zBc4^_WDEC&+>Y6(=n*N!jZma0e{82Gf8cDIDO49B&flJW??6@H>8xOS6q?>blE-$E z(#;*FHKDJ63H?hTbokrfDn7n`dw6_$_Pt8~3xq*H1p`+X2nA3R7t;e5Q{7dh_2Q}=rBAn=pqSy5_*oa--K6B-BT)}NeE0UJv*YX2^H+U^ zR8J6K`d%QOeuf3?tPS0O$_WuLY zue<-DKbg^y1DgSmxa2{|SDXF+NMBebGjK&f3iCXqiZD-$UPb&j6MJh1PS1BFZac8K zYkH_!Ep)PQDpHVhZGZIDv#bUetpyyk7GYooNGsxF6?ggHRV>D`ze;<)_m^R1pHS9a z6Z@Kf*uM~B|77xRwI$>lg?`2IQMY8TeGOTd236+Ag_%p5`gq z|EHM8#A9w0(<$Z?oU9-L?7aN%FZW*-^S|$ZzI?g1|3AfJU0O-6qi7m1JMwn+-8Aoof z|I81(A?MP)d4p#=prY2p;MKe_Gv~LKKem7X_xG|r4JS7?mHFFo=tq=2hF;F z%}#}ISAz}-IgW2pkY0AuzuQcIvF@CEZPh?xEN7d9W6OmueKk-}Ok@y`PNy{N@+i19 z2l=6oV+XdtCmsh!=M`9>O~+GL%N*F;w%m+fJg8IZ^+maBr4NtO!E*Zxbu;f{Fh$&( zytbBP>qXgOu}N6nn`DUN5Od7Bg!VjtI*n+ELp}gUchIpJ%4Hcn$yJOKNS!m`Vs``T z_Wu>Sf6d+h_x4NvUk5J^*8BfcJT)ubQpQ*AA(pZ4&&WYwHTz}jRX&f!c2#HP8aAal z{U0<9=GABjxaGDGn7SwoDOXXfRDJ8kpbZ{2fD$qlTfB0ptKWyaqJXI_Fvov?G#7PV zQ{;b(0u*{;Pmwk8dyeA}1y?Z|jfi(n1LDmZTdk~7A;l@2r2M=XV%zmIX%#y?*TkQD z*NAyl^?AO8wn%0C`M&AznV6)u<6c&D^-g+^=H|S9YM$c$A7Xw-E~+|HH))V6cz;ETUhxH@n0i24OBGCkuo9LLI^Uwr*#P#w?L1q$Qt?s{-1xVr>*cXua1fWh6}HMo0_ z1PSi$uE8z1U4H-P%Uku{x>dVQP51Ovb$9jIvwQX0YhL--gzI0$u~!4c@ln=L@%uAo z$k5liYfa9%R-(ZLw%X#9i!xkKW{kmviSv&{Wu+_#_x&~`ZGHc;%Yu-`=dy^#=Ykkjv1GN`YCwz%z3FVr9k~fN1TZwk zKl80+S*p0Bj{gkEtl-rH~E;eHOY+Wjpj}6``WPcYF~aPi#QUOFsoxc7LPK>&47{vZ~r5piG<9Detp$;O1(5=z!-b z0jTMhd@*$q@&`vD3~VxzBKkF$5Gj<*}^};y@6u4U;9&9EhICYCi6;w51FV?OB2W!FX)@lLCa3 zW%LIV+Vn|6De|L9L+V{^YW?;DSMnXG@9Y-(0FufWH4RUU=U0Qa2k_{qmF+HAwCFQm z)y~O`uErLT51XdBj-aLfB(x6SW~?WH#b3kUDi@ea_rg`=P*dLj+V-fV0fPLHw^y=5 zuA@H_uBPVou;N_kqdUbQ>6R6569+kE)|kIYUao0nDi116#j_I)Ao_hx0lfWva(+d~ zbHAM##3X)jAz9+4++4~8ti-qov~-VMb-laD7gJ&tlEcH%tndze=ExMKz~{avsC-rP zFFEAZ8 ztJPE1TSlSX#vVxe-)Eo~Z4^>Z4IE;rhdQ4oxSqilpDDTiWR^V%HVAvl4^U^RrrqcA z>j?}O(($t9UDA0+)6nMZGC9k4M))-!xHuNhX$(2?d2-xE!-n2{$-`zYpWu`R#xinN zchu-NPzo_Ts&WQG_y$LBD-4CK2uXyy)Oyzl58rtq z?re;SwRf8V_-HE>dc=^8)Sb9tGmQt%;Sl~W^~oiVz^#r!udY_hmXi~0pUCl0dk@jk zCW%xNC*7!W4DnsZC0E@4RO)!h7PquW&OSG_xR0#?xvnyJX}tOQyW2)Zzt`9}qW1?Y z?hQVC(?hKmqjqY);Suln+t-R|h=4z9rhjZpHTr?{=;Yg_GU;%wGN-B9tu8?!y2qH2 z*iy1EO+{(R*4ihkb3B2CzXuSP>U)~0L~K$x8Vr`LD@A@tn{e^Z{U-fFCJsGoXu+c>(BQ~JJTO9{h3JNJ0m1)e4~NqZwwa#Cx|DOW7EnHZW~0G}$=HZw zc(^%OqjB{OKfFw6A2DFhSVq$5c4YNuC|GY#k%pSaQuL!!h+^zPli}E5k?%faTF@1b zA*70+yNQwp(C3Q$nm-)Nf^&Dfb_57k+|w(DMKb#*UKi9{V5{*rAGRHJWyt{hzX`gB(liZ~j7C?_T&oX1ga8^KAXLHiHSW=Z7H&Evv`NM(B= ze2a=j!A!qh50m4`#DaddFEH_vH1c3(vN;0h|AxJeE>P9rAQZfH6IeK*maJetCQf8) z?0_pW3^(gd{|~-XGr>jRBhT%tzZkkejK!6x^9JMee%0CY&70prz$BX)=_mMY&t5#? zqRO0@<0s^h-Rf4W5n5yN-9grHblk_w*H=Z*1A~g|@7-+9m*6J?UjY4eMfCppSExbW<^PQ>pv z*Djp3=UA4l#yuF5_0*4){kf_YO<5a3ewt8>oiiyeTAf??)|I!La1(&If zq)$xz?<+L@=do@5gSQ}uw5Z1$L#?1*V*@ifj(Oo34%r#kjQWM-#RWlgJx!@qmG?Eh zMj=AkTqr-32A7nArc-%5Z2im4(=7%w)!wcEXqEcZF<9cej&Chd?XT(EGYSnh+$9nC zp}C}t7qn0;vZQ&#xnP8(x)yaI`>3d5Cp|=h9~%h$IWfS{nvljJ!XcOt$7S$9=dNef zCHx+UXlyMDvDv_T?TfH{o|lJaQ|Y0%@BCiI?ThthjGb>6({z>x7Q@22OL@8Wv2~XW z=oj=u0E{6Eiyh+ZWeTpi6UtJ)olf147TYy%CY{z{!eyy9$KJs4R5xdoJDOtRY<(Xt zd;CD4Cm#5cF;6 z3na&fs|98~wN1l>MWFXY3UkCsMMa0qL&3ZH78%gOukm{cbA{$f#s?$f&a^Nkmzg7> zN#lzWIQ^Yss_|C&@Im=aJXBMWPMixt8OL$~QzD=VW6tChcT6Vt^M+Z)B(Prfb>->% zMl*9vwVzqr!M)X=tTN(G#PeZ{n~@jVLCNnrQI&Td$=+Jn2qIxB+g?f^3aC=k&Hs4BlWV+_t9^jYr_)tR{-;a<%(qehw%JJ+=aiA+9- zEYxW%@yXSviz4`QdzrD7E+(-fY%^cGAUJU?teFgDulQQ`w(;)B_P!_D-5vLFjinT- zs)HQ|+{yO5|6mie<#m1OGEBuj{BdXN=nh=x7~b6-4PBRSjO*^-R?@bc^VJFbxL@g7 zA9Xi$yI!r$?S@YFo~U~ZfiwELawiss!%*x9aI!U4ITo}9z7`s!Op9GIuxGk_0zP_# zCI85wf85AQoJm-5r5xU2tCAk&N{wfirj4}-%}cKuN_ukAh6U(EO9D@2y6>1j+JVZy zPPhBrM=!7}(N9K3zn6`MfbU6Ved^lsNQ;`x`VQ0FqCtSrb-i^Z>NJxfXjji66dK}p zstF_ZWevW3w#XJ$PNh82INsM27g}|@B$ChMvVQTWXw|T7s%FZpkoB{kF__R7sKT>< zKHkmF?lp|Zh=bKl=yeH=^JlHmZ-6FaCyHbniex%XOzZU~Jwr9*%tHM6-e4g^TLX$X zH#bsl=}u_TG;iygwS!;TIhq`tTv%{bdDpst9FH7yFoTvK7z`q;kzMuTJsNiu+fBSR zEr=H5M*oPCVEX#3QTxXXo_5fZzl5tM`9ixig51wI@dpcoulB^@iq65IMZokg-mWgb z_5_va+9`jZ+jH58(0a*WT)!Fclge;wVzeoLl3mVKp5I3P5A-@cuR4Z9FM9toyTQLK zIF~G2^Vd5IJ9pQ|uf)0x)J)8k2lIkvKMfstdToEABG6hJ&^g!-MA2zK`K^=(dBmn# z*3s1((^(qHl_Ssdp$-5V5;*!`&gb)fC(A*$egclxy_H-fSmo6S+eId$S;m57LOR$# zVI^s*AhfHM10G}wM{LtITC^b%!(jD&DGE%iveuqC5#CNYG@qi-D)e_ko$U}_5g_mu zA$_!8#h}~xd`*7uitplTwl+f4UiJJ9jqM>B$JNAdt;g7+}2 zCRo1R*_`&S8$c^iBrCKuS-g69EBIU;^N)8vt$8t|l(oGb)>vy0~wK=x6yTF`^eEkA$Z&)wUbF38Bdt zvl>W}+8Ljv-bIn~S<({Y|y+xZdR*1i~=rNh3K_Iil6fr(H$^2rv$tRT5e zlqSol?QRh}ubiI|^}t zn^gl)K?`#m$yLQLDHLg$ji#lEExYpS;o#a{2~-^Z!8CW$VF%>&Br7&qj^WjQGKSd4 z8eGjZ{`3tJVD^~1S#H-)yJ@%0oU$+p9zC+e&!{Wma@{;!XO^@4<{k3Nj5>LxDyo7w z_~0Z?oa$|OXzr6)d^&mRAlaJ!>+nvezH||=^sN|wQk8Q#?PB>fBi+q($+Qp3vIpzN zE-uSQuaqvb^M764+KLIN2ikuJSf^Slwa&}2L6M`G!xFXKA~0yYVcvJ_!dz77hN+5Q$W)I<$17f7GH^Vwb>JKL`WIZWxOkzzf!5z-Y3XY+$MO9OHhpc+pkNK{=xU|CJ)&aHBNex znfy`Qy|u;C5BUFnaCIX7c%sYeD~b;vKCNtFc#0+7TG>Q(N0UaCw3dPBi>%1jnAQu9 zg7Fg#F1ZPLU7-*ek|pE1=qs0=HA(hVLt_SieP#@|YA>a$n)bifqha~dQ#VC%LdYNo zIzbzEZ}^mqu}BQr5mVq@hkW$7NN!f60?6V0Fygf8k;nHwI$82@Z-sv?8{K|1jCF_MPiNmXgH`pQuyp14(%4HnjwwPi_T$Vsr~@QO0=QO`|O^_ zw0#N%wtL8RychW=6^9=__la3=;f~;Lj~^FfN0RR!t{+chod1Dl?o`8u_a6L!C>vzK z4owZucX80IFm`<1PsdckHE-Fc(R3!;swuhm*`7MPMIgXYD;=!T`;GMMH{;>QI;Pl; z&ztbT97V#grkbm=P22Y_M&-kR1Eop)MVkV9<5Ldhv9dsR#KW;MNX`dFk6bw0{~tSX z!4z#7hSa#h$>0a3Pu-Q%>N!N&gyJj07o6$gxhO*_r!-(!CyaG>8x<8=KJ9nFTfIz- z53las(YnTO9$vuD$NfJ7-r4iS+Fn+6R;z?Qv}76X^Uk@2-*_GGXq2wVg=5<AiQ-|c&cyke|C$>D(hmk(B3>M zLYg9TD$X0PSpm%-sd>CNi{D(CMK@uf_FP>#ug(;}%AfdUZLHJ*ym2PQ0sdM zFl8jgTr$w|SBXTZ#%r}6#rxSpXMKrW>C?I;zMt^zAAef0Ed6Oh+5d-Gj{n~yCd4;b zB*ObPFT*A0?)4r#v;VKAgdNw+_C8e8mP7^=xb1$NU0!t44gzcZ+Cv{+NoBkHmnPT3 zQ4N8MCc^fKHCYuE>{6>PHH{0VQonua4yE&?xw&{*;AV)BaNzG$y0NW|cRx9vGp#FO zL6de-uTClfVyHu_@3C8Bh*-U;v-b2T;5PyEV_G@jI??8K=+&*K)RXk?KDCkD548aJ zapkB|*m+6H9dn5J$f(zvQBwdLHn;s+;3P{RH6IIVkVkn&Df%_V(mio}RPCa7-`JKyq`DT}mb(=ojQbU*gTGGUXg`p>08nz7f>5-gw<$-X6`5e+Q zY8vFxC;&U~c*$aPZ&ZEIUFH?_S_P183Wm8qXeFGEv*Jj!z>L(EO5K)n*R2c;bW+2O z$#_Y6eWErND^v$v6xH`do9x={qhAUWA#hTjR_8yi3i~kjm{~rs)~c^K?HOP-g81y{ zP+O|?S!0&pILLIrEp%nftx;@yZ*Z}soqPMeN#h_aiESJ0(TxI{=D$)~*Z`J~KbyDy zqVN1(n_EU>fYLSN?o<5#sN0%Hzt<`}Y`*X(hxJxb8zqP#tN1V!{G*QSX+P)Rrkz$y zm9cJX+`vlGPpM3kb3n_lAv#g7H!CBHSfxPLdms7=u@)#y`cz z@)ZURnvEAS7+a?_)r%4UU+F`1X~?mi5&k8J9`{M({pRT@w2F6|@vQiGpGQ1UdZvBf z%H1~pI!GRSP1(%$+1*=zw*UIParZQpEI{ZS_ft6*&lw>KDg}3%l{`?Xk4<8@Q`Bs{ zBNzE+78(p=3|F5BPr;70$vVDem$W0iNFij5Ahr9n$4>nm_Em|sHke5ehfuKUkIxb-Y$OhUKpCZJs5Rq zAAR^F4W$)2Qf%H`J6yKL2U!QjNR&hti~UGqm#2xui)YKSgehR#Ax8VqXiSnWQ|p6e zm3Xnny?j9Z?H~7s`+aNsEq#l~_igr1@l0>8wfogwv>(v*z)51`OE%s@!?V1!ZWO+tQF36d3-I z(Vn57!m+qC;X_V}9cmvctJeA--=`k(9>z`qpyoqxqzN212;x1NYG$i$^VLe}6;awW zGsABS2;V{atSZkeR%g2wNDQ+`h#U0;h<&EMDuN zPBTwY1Hq?UVGu+_5>FA*mjW?)jEonoFUR5vVn#mZkO)>i6a?%9P4JPPAvY3cKv)^i zKEH?={xBceR|rB=|8N&=iL$ws<$$WC4;SB=%bTb@YB*@o8*`E0sLvSAqj^+D z76xw}r!y7pH1?HA2`*Srthw#FbD`@BrZXw_PaOMfcbG~A%f~X_YGUE!B{|pHiiGn? zg*}$?k0AV2?F_&m--nw=)AGszxN^ao&cq`sC=7W1)a`JI;I*Vv+4@n}5#ku^85b0S z|M6@D^z?Gr>HljTqh7Oo>cI-Nj@ff8Go#juP5ZGyj`O9?!g!@?d4S!T`#JV(y!8h> zqKzmNLf6S3I4EY@Cw8*J-ZYP1f?;@5RxHdZw!J8dOKaa^XP%e$e`g;(fDKO^n;HMj zO+eN6ddOn3Uh)Tv&Lg&5Q=#5SGMQ}-jES-9$NQn%XkXN#jOQd4ncdZZV)&9EFnfq` zw}NWY#s+$l5*iAImE%`b1uSXhs{z|-nQMOCwV1p(d;5X$qRQRDFSWO0Ay7Y~;F#PA zj#XM#_SgmmvFGW527kf}KnBg)7c4Mtj)|B9fkQj6zeI?0Sp{>}_8&<|ZIudr(Z+Nm z{J*;4I0a?KCgg9m)Y_vKtbH=9ehu7UQkxQLb;hMdT9gD(|KdXSM9Xd)Dhs)kEF^<> zD5i!crN50>9Y;}#1~uh+)}-@D+?H zWYBsOVl2?Zy#0x`lS1~u{us#fgheDJ{J~MX#5%WM+P)gxw%4$zPxX{suv}QU<$1Nk zo-wjXdU1%BAIfq@#`i3C?n36oMwV0upH4A?0zEX|;*Di%#5j-h5#u(#K|gQ2Z+3sv zZ-IE|e7kTQ3cbxI2cnLd(4RBV+~5j&Jvcbn@qI+(AmXS zXfyQ2m#-yn-|tsy!XEoM)NS?s_A+>ObITDDw`ytKOG7_EgNdz@&m1{?$EKs|kiD@( zDWm)cgDLKxtE!lS7-*{3))w><;nqMCI!@YlrJ#}D5cy<|t$;ox_RBU+1A)>C|AKtk z?YGC1Dh3R{y9F>q%t29i{f8`@)|XBq?3t7#J%0q*4Jgo|+SCyEVHB`Z>~Ma35V+*g zxOHu2XN)5{zaexwlVyi@_o@qR9>z`b@z=0cKso(Twxs zwpYh*$HE_8ZqLsLM=c3`K@xe(R+2e9Q?jlxfMfHwkM)G!r@zQbEEv?ZW$d=P&oL=-^}<0%7P0&t&B1>Ba)UlI z!CA5Y2Vi5N3QxM`lBb!Ng^!-?fovJCamm)pi=zNl%j-q^jFYBd)pkWF$*E*Q>E2s4FL1_Nng3(J`?r%2AkPKArq^zBdvm9){MY$kl; zxOw8pNoI@IhRB*<(Cym*U!9?gT}tLx^doKTolY?BedSx0Shtci;N_L42^0Y&>EWSF zZj4yXoU5nThb*T%$kStNsLpc~|19X~w$b9i7-AD}w`#r&WXlzuAW(k!{2YPlNBjV$ zNb5VN#Y{xWl0duIwVlTMNmy41>Ih-y-J;ye&F65i$VLAo7_tjNmG0|lX=!bs51=|aI?MXgq>_yE*IszU3M%V}MOn#E+?#lgKswv6w!ukrr z*Ej`aTGjkym8F%YEE?8vU069H)_V*b5t(fx?phfOisTI#6C7Ag5MjU{awQttECwBH zKTJ_W$-TZBLA}|?Fwm16lW>CU$7`r8v|Z!v7BQ>iaKX~~Jy+Uj_6Z^*AN8~Q{+Q8e zjP``5w`!{Z@fdyZ{C(HXF{{}IimrWCg^sRU(LGLR5XvcOoL=ZaTA6qW2G5-Uok2$i zyc=(PWXE{`ysMyzvno@$;&V|4g=t^YG;BD*-+zlG4@}<{REVJEoqN~kYm`wbtm~tx;qDkr=JV{|F)7quvg!oc zn@0F|w)pfTtx}SL?pK+VldxKZ$T6&(l?XWBLoW_;mkWxzDk(?yGKV}Smm=+-?vlb$ zy63szJqF$e4#&bOVf|nIv8qH&KjN?~KH#ONtlMD?urU~(0hMZq$Txmf`(xo5^~G=S zioT)mm>M$G+tSw>&r0f1@3o$MhNDyP3WF%c;ni$=R)ULr`V)1Vtj^j0`27aLQY^|>>$$%?n)-R!R9mKuaq<<*981yvQpy@ z)(q>!AVsZRpjj3lgR9f8Y0t622Y+iR8L9)wY}YWP@DZ>Qe-kolISpx)q`kwfhge z!z6#>TjxI)49Goej9TXJ->j76D*Is~Ik34MyKpN36DJngJ^`WJ#$l`X88&>&RxY{v z6y+&k4=qtQB>vcnSjM*z)a!3y85?s%Ap=5U9wMu>V09cF+In86>Snx#*Y-(J0qX8Lgx zs*_iRV|uP*{FRKJ_Y4gqAD)mWkj%64Xzd@sJe#16%Vta7ko5H-EGG?5j?S%|S)_tn zV`z{}*72za*ZMj$3hPv2abLcBB1eiLTuYHOrPv7IB|-$2 z=fns4iEz2m8UD`OxWaV7aAt)GQ;*=5I}_%QbycHBq(~L&4kr70F#Jic?(9geJ?3-^MNwu^&r7|I|dv z7saU9S%;ZxO;{eZD*(qB1F`B|naX0L$JGCp)>}qyPoZJYC%}&KVRC2(!-z&U<=%(% zO{m(tIdtsd7kUV}tAvbPoKx&IXcGs-(|(9@yhC=J5YYwdgP&!1VICUToaYOea!{O6 z<_?lqwKX}8nBgF>G0@o2T6Sib8iIUr9+9ldcCnbx|=`|z3 zCnB@pK<T1eT*}r6<#9j1)SFQr6_`Omz3`&WA?@ z72Xx*WNnFKlTh9h1-?PRdkP^zxq>^&xZLQaHqXIhZ5=?506>tajhA15am@(I-{iRK zG~WC{$g-nDdsmbFw+>BB^CG4M5@lZqLNG{>)AE-@vE-ZR3ZMBSP&NmAxB$mt<7Bjv z(1Zd~Anq@O_Ikq7KS~jbvF0d zho+Rg&2fymg1Qm7yjz)tp(fvH03l1&hhWz#vBaO#=8jzbliaGz zh(z}c4C5UtN-HAO#6{fjH6rv2)OxnSb)jlfyR_k}OqhD(iXobkBg3tfhi2!rPK7QN zgQwb<5-m!Qqz(H}hgb#&?rGm&Q`+Gk9&H9^F#iqG%=D5BR%64MM^gA&Tt+K4$DtInIfGYiHjFg_FHmHe zxTf7klhl8!z62URvN0WzGB3)EOMDmkA+zQnw!PmAJw_$nEqV(1X`ZApr6ZI*i#QAL zO7_feKAs1je;QOBe}>IB2~<@TZi%K@ms(2>TU-L3!I-M{F+uJFs?^;3>V8U4a&u$^ z0Di)9sH5Jeue2hUOKZQbVrzktq7)N{`;f(F%eCjqcgQE!fn0)z)FVeZyLXD}&~d

3nPt)=|x3Z(BF~eSY59LZwC1qq1DGGKFab};WZoPEOT*S9&*v%>P>e=zgA{)=h zEZ&7oT*YCOTI`5{W49=@tS%Z2 z`cOjs$W^G)Ix>G{Ane7gL^-G_2}1OU%9-A1Y{|*XQmE_|WXd(=zzaXmY$3qH0~LWi zD{h`d))QC;Ba(&AKh53ZVh!1y#ZZw{>C(p+w81-Z%<+1?pQRyS$@g0dS;PL#qv>TF zvGQlEnx;=;bi1Jv)SooAXZM@GKZN>>V#l>^lX1LHGz(O})Gh=}PZPr$Noze-!Ouq8 zPzUS|?r-_>A>p<20OVXDgRLt%%{9KUA%b$`F5DI0TT@2aUiX8j=D;Y0wXS733?ptD zn=3O4=2oCMvFQPOj>*o&1qXR*OWNTR(MlNk8wx;!j$&k?EeNUFhko0SO%*6trxJqI zinhzsCw7SbFFH*~e-F#S6%F{s6RL43Nb{Dq@;95jfsEztBw@MiHZ?WY@NEkn6Q|bM z5J$|^#PE56ykRQmAGi7Rg$MVDNCO%M;_Yl5N~GUm70^u{Ja?5fspZbms<$XkQ8yMe z6_&8vE#xN01bha_>KI+*=?7xQqi*f)nP+z^>|b4ZLAD6NCW5S0MB4CR)-)t4sO<8H ziJ}#jH(Zu82OzwX5E>AoZ<3@IdUsr0WS7D8OSM8%N*gzZrlZWaWJ>}JG~WhGjIz2f z(U@YUfZ#*q!8_*kX`aHt+OrZCc|+Dq|I%l`9@1~C2wCNgd`8UDn!+EIpgmzzFk@Gc zK2PoF9gXwZbgl=ZF0eCb=yL~@DbS=3pSvF3%F>TF8&0Pm_+5cpSErMQ8X zVyNZ?`7A}T`cSB$AK0xmZp4(S#{H{W*VG3rY#J1dwI(vdMczRew8ps8K>${P%$|qe`LrZrnwh--YaNv=keQ0^-u{w&5aoVo4uufd!coCw1_UQ(uCMtcu%?F!Y zY7IMV_t*Nme*}FS@^REOy4YwC9MGSdIQd+%i*8LF8=Yom)vF`NpHJ8(LV133)LeU> zr&XBH9dN+WY8zQVdx^*0c*ijS>VAwZ>CBZNL>^EX{GQBW=1kDmojo|MK2{Cwze!>? zvQkJV$oc=Pf{|flJihT*bXUn)&<&N>Y)rlE4jY&xZwNviK)^=003+fL@4peFHnO5h zrU#|rvOn=LWU7-lbR~?ex|_0u%6kHQpS3G7fZ{qIk0(UrU6iK1MhgT?S8Ne>XG3(Y zRLL4W6hq6xKP&-8|ssnB6A^K z!|J;~kL;ZGKmJ@(TciB%MSIu7W-j!6pWp!k?_Fp=-D7-mr4VsW+}?qoXIxsa4-HR) zp|-bR?oST2j_mrI8anFeSu)cdT`ET;Aa}av*7_%Z^+$6Jvb;D2=2;Me%S7_Qv?qfd9wlQBLTISu_p4eC&fsIBqk3wNs03wy4y(_&{g?Dd zq~xaLBXq%^e0;e>Q4URfY!T|Eo|!3d@W5sK<<^!|JDJzaYmiphfJwLMrZL$x*CDd zBv9%%RMTt1k@7q{H!fPS+$4e%rnDQ+%o7kmDcRUT5NsjR5)W+?tBd-m`2T)yfP+l4 zrdiE*4g_w}mM*=L6~Y-4In>$!N-?f^cx?eBlMP=TLV-0OTzr{o75@6Xrdf5gAgIgj zM0eAs?H&qHSHevBieEPe^|KkhZP6P$BssfZIGHIcfoKP~L`sC8e4_pOXj4_ESuR*P za&bP#?7Ax0eC@*5^vA8|T+-PIjsZ=x@26aVzQBe!-h3@b$7x8K6Png<*o?EU|95Y> zC+g&bi*3)7tbvEmIdr+_SD(n#3D^Hh!VQ6^5N?3hYNvlSLDdg3%lJ>hK;ii zoRx)*21RRc-r6pBq?cckj_@=%h9q`d#4o!vj*u9LEb%P&7t8Pi`ZUe2r=K1No@q-? z|7lgbrE{*KgVOXDZc*N|0WXE)X{hxpOAj^G&4;`y4v5`O>G&R4%3 zbhk6eR41!@jm7k}-;OFKBRI*?9QMhH|3uLIw!xJL;;2l4+A|;Zla&Wd;cXx1I3gVR z-56H_X(FK`Q=1&O(5f;=(z9K21-}0&v465B+%ge0<<#tih*Z5RersB>)Le4`)}Upo z`)pZ)``=gWzf{%G7q28}$1WJcME_V!FC>g_gF#L@_!D7Jp#A5>=zp%V zPTcz~BMvYY`7p%f*)d*!_uf9g2=frPY^+Nt%-_YYskzA5AITq$w=vsE3j@uSBK9YE z#|OUnxbbThZ6LHZ9+nQNs|s)t6#+jbMw;?%`nX0~%_#r0EH@ltMf(@bGL;7j&O+w9>^EK~Fi3yMM2&w@2|Ih+{#}=62-h?RG zQ$kZfs??3fguFN?aZ5L3+nDe7881RB^}4*jsEjB+<%>hhrV?HuATBhfL)fbdep|P| zPW?r8(!Fi?ew7k=UGtRx=J5O_-S39$2J7Wi0i;9-r-2^#Gz5}SXhCO|Ap4}OR;f1O z?P3MjHKxdszy+=BfixeJCQ1u=s3~r#lT0R|N#hz1V)Y1$ zPzDGj!1qt!Eis4$phf~GtB)fpwKko9sG(xD$_i1JA? zR@$ZP5y(MbTZ5D`YyXMW(txXfK(Ei@A<5~G66YooEa%PvHrnAHTZ!SQTd>!E!u@WH z1cFDbm;ajfl2$YO3pc;>^c^Z^N-@j#ozWAri$Ich3XCN|-OD)Q#*-BnJ)Jl&dMJ@} z3W{BaeT9sX>{5iF8z3T=G3RGbXu~>es9x~~<5s}y=omR9V?{m!?Fghc=0j1M2J5Ck zb?RG<`#H1&tl!n#R#{c`^RTi??Fq`1e@evlHzNs6S8oPn=w~s97{K1tw%j+B0@b_4 zaMGN`r*1!DncK}7!%0(WK%_pv$9HbjV-nb75aHLt(Wr}yzg)zO9xI6stft=)3h8Ge zXw-P19jiQ?3+9>ll*RMNI04_CrWBaMgnW_&)Js+X9p~vFDMzUcA40gqjA45HD9;(& z*VxfJ$HA(vE;r@dCtesSW3$gs-;_rA;#|!VuUq3*ph2PF#es6*!DK_FDW;0A7u<&x zAux`S_=@yrUb|MqW#qdox(=wvk@F~1!7*YAUsY1F#yZUvo-#gchv<}pjp9cHdHbnI zIg$}j3BsiEXC+|k@mEi1)!m{5W9<_sRf(yV*bgBglaQgXCW&ICL-j44OkDI8KoHMKZg)M5>VWgmQ7d2w%ul!bWIY3>^%zuCji6kJos;3%bE1`pPKz|wlolDL z8mGLEkBv`?*^-EZaO_@)+~6mz1xw!u{)B)L1cnmKAhkS{L6hWa_p>5EIF*>(*ozru z7!kzjr!lk{*bG^NgExOV+*t%cA26NccLf=!M{p&zVb&sAPXEd4B=U^7=tiFt4g#VQ z!pOTV-_eQAS8M5chwFnfztWhRrr_NXV~(2FV;m}N8o8ajWwj+tV~$_8fe7~*%b)9X z??<3fDSoth9}QKO3dY2nFW)#Xa?^J>uy(tY%XM-Xc!TsSN#J`T-shi0ZYEU<-1Ta1 z;ZDx==0JvG0}`G|X~y3af>X>@2!N3LBfbb86N=I$^jmo1G0NIU{ITn&80iX7G9!7N zjl>Y63-;p5a2Q^Rf+JxO$+isDQGe}>D`kwp5>^<3XEibeLSGak1_8Qquigy_qi3Ll zstQb}C?1A0coFsQw%@fY7UXFv6iV9)^?o^575ga&h5rIWzs$>hA%IW@$pI9`ejQ?X zrWRz!?O{3hM`1UCV~VMwH|bXuB2G_b@p*54Dpvt&C?pA;kW5PQYALV;c!ZF%ny0XE zhZXnU)l>-0=G$2bt=YU3Of01Ck$$L9ks0=i$?YMD3rj`kGo7?ckSiotjI^E_4vPN0 z){*wZV*Uy!*RUKvzMGKMX#?o;!3orU+oO8vEL&Z|!0in-e$#yKCeg`D( z9~e$xOV_$bXU-#XU3JeAWj&85eClwKP0Fw0SyX>BslHqGO>gbebD+={MO>K(;ZqSw zg!Nc?uKPsBrIM)@Sfz8ysu|lRU=~Ci-SCvZV6r0(%NXh|gNhvm&vu$T^TQD>iNR&ooat zZY-i@)I?Ww5jvB~lI(MPDaVFu&g6!x$X2}sFa*q*7&4I)bY2EfMTf7bt{g=rH#Ze!RK$FJP~w38sRbJ-nc&(qnDfgUbML%I-&B=a`+5kkj) zm8A>4iw22A(fphPWHA1N)59>~25<2-1}>w*x0Q;GSNGHzJ)GnXrxt%Wj6{-CHJjeP z9Qt^CIFbCKh!@qbceBb51-ezwu+WdZHnc={oqIB_Fft$O=fidD849O{av~{)YELyY zy^=#x;Hu%lz`%;G^}jBrc$H3#c(SQAWVI*>8RSH&l%#lgz_x@Cb6-mSJH2Yp3; z;i`s+tOa93a7(EqeJ1& z_wSqh$HY1UQ9?0%vkFs6bC^3+9E%Uh{aLDp*gvEofWdHJXMkaZj=m-&9qNy74k`lg zNN8pgL2*W0k!EO8-Q4>T>;4}ULwn-{^P~y*AW@%(HBkP6jm5CO#pZhuJ~$p_g1RhGzhdz zONm~Cu_kTX;=+4ls5UOt)Cpb-`FWM~Q!ruB-3r=@gDMNQY>zYR!F~Y0R!^!8T(J9{ zv#c0<=ZLRlL>2mu=_5???xzX}VIAsz6S;{M1M~d_NL9f}IzMq?l30o}_xV*9+(LPH zA2Zzs4u{dTFF`x?hN`Ebg~Y5qzS8P9Fk~M%{0tSI6}~Pmi=9GzWSM-)Zl)-2 zjsIy1LK#*}2a^i4GBiIh5*5gVPDriD1RdX^2`Ay7$FII0gdXrsvCO23BLph@MEZRW zoVn8ok}v?_Oh3OFT=Aq;o$6i`4=#lf^LieOwr(5yZ>9=r#**BPcGcaRev`})fTM+! z%?w9HN|{8olGc9Wbyi!$mTYZnFwdjJ&3!JUIG)&tZ!g!E??T6 z!0Y*&nI(J?+qz-0UbuCH+np0w?3H_PwjJQB^ov1OsHcxs zHIG%F?KiAndmM4GvMgitP70Z&4Sbq(VoJIiiY~Dv1siVKnT~hc-T9q0v(CFz4%q;w zEVwcqVF%Q2d%t8mI^AE%R*p;O9lze^q^I8BiPwn>fJbrJCtzEl!eV$4Sj(q(fXZci z+H@XUxQoHxEgs|*&i;P@qd;80#zvfF^ha2g>x8r5b?n=2}a7QuMezzofBxu zl>mv8vv6~YYI42x@s>HzlJV)=ABg6$5E=pRq&yBh(Xmd?0Zs-qe8@=`eYNG_O7&+M(G76OX#%UMZIJtlt^+7(Dc z#I6zVNZEAmYQK&;9eMdTxVO$EwSWFdPxTF;fTGnGznqb4mY73wOhn3KurEhG@pwEh zAXPjdTm@k&@c3AbZa7yYok|iHqt4XF9o1w{c}mq!aS|y*r|DcGbIg6>IDCJ`k|gk%c>bXE32xFhje}p%?$_><_N>=F#`jl2zz#jH>`$wB?U-A|LdCv> zu(^1w@72MQ=K{YhQYC*h-B}{Mk_`4ka1IX08-fwIX~G;e0SBji zfGG-`InSIS8wb(RaZ5SOkwIh+oyS?oyAkAabr)EZo%P%&`?*9)7JW;qV9|&tkju>Mz#lXW|3LetP7tfR zLbIO1JJqrEfpOJpOKE4wQtB3gTm;|qPrtQ;Xq+%1erxyTAA%#t{#(2MTiaUBZ|%>Y z+pX5GQV1@BK*4`inIo0iRf)=Z!cwKBfOLM^1)!x}D=fyhihjxlTWBc-u{fmjT)D@y zG|ti%x(ZS|$X+3@t0rH<3bpz-m#^)zr?3iCz=7V!z!#O1)_jo%B9~QsGd*8$ztDNg zv1lmJ3zgq6i0~cr^RY^9D_~)@b{bk5Bh+)9cXXgEvl@SUXxi9D>3_763d~+C^lj^k zV5uTjg~in=GU_0S3Je&mPxK7!Z;P<8K38*7y=y}DKH-@Zv?rXynQQ$JM1I9{jnE;_ zQZkWz7AHQVA!4ND26#kRlJG>3goS{aDJRMu>;L(`{%?WSIuIKHfFIzfrp0jy$lwc{ z+7RzU?a_Z`H+Lk}cVGYqeejM@ZSZqEPADh>!BIg;%I}nXnsQ@C{TEMiN32uz0`&^o z>q<#5hv23(>$xZHBjS8VW+zgFJ0d~kE4z#4Lm^8wp;0S{JU)$S3eLa7gwZSIF)90# z5{dkCN~4U1Q1F09+WYA}C%vBRUwM}(^}I4X9;<)p+aZbCit0%DZ$Pf8gm?-bddyeH z9uK^n2gwY8;ABz~Cu|n*OqgY(gN_Og)We`|U5!;%DY@iFh91$171x>`JfT{ikQ)md zN!(v;RnmlZvL5hAG(Qo(*9*?R3cXSw`Y;O-*0 z(Vu?;@I=wxfn_JgBQ!Y9osXNUrFiH{lt%*;Y~Mu%v*jVjL?!wZ4X3byzHL24N`sUP zly)W4%dtGPpq@mb)pkQSx;HRtKs1Z?)6IoxPr?9%>7SJ}WI0L}^Bq`GqEFne+Z$Nu zQ(EhY(Nxa0grO~m{HmPKB;SSo9&)rmyMF;Kz#IktQ&7x`^1wv^le6vh->zf(Fk;5Jqmbl3z1&NUg#dhSQ} zqxPmWa1xSS%q=s37iLIBlu-w+CouXv0Dm|hT=twTeB^O9~1w*9xP#l2ZB*3Jwp54h1GPFK-KRPLQdLJz} zY~@y+Z{9OJ=>Sz11BIUA_xld zUR8R@A^+%-Q(+e%3})=uR$W@>QZq>uK93lj&v&`Qc3-P?De*$9dGksnsXiRp+>vq< zOZdN-mn#2UL?0g2Zx8bYn@@R`bmE!kfJT4Bk|VTXMVf#MMz>1u`iS)p6o18M8s|)1I&?pXC=I zR>8{?3ao^a^J6txqI7>b?u~p#LfWU@moog0` z= z=h_ThE>&pjVbnGE6tB5e4yt06FcpSVNQGgoDrU(v5QRRJ)>6wCRH2mZe_a8&3gnVx zSCIl;eFi#^pkxux#uLRO(X@0uq5R3>$q$!Dxwm>vAP=nYSY0n>Q4;TUWtgGaRC0(W zbS19KS60gnLoqSxrli1U zf(>Y>+^h^C)UX0~QH7Le>UJM!Ss;i~mc$9u#hP>mFUX*iKw=s_XFigXn~W)c2XN#D zO2G(sFVcXRd9DBtcAmIXOM}b-}l1~`eEH;f}(V6vzETty{mz<|$LIsld zAfo<^B`J&2aNeRmuy2x|N18S#A{!zrmF6rGhhPv4{jA|<<+<#j;z|d1K6`fZ)P+z< zkk&`RM|nA}+*Ap~)Q*K5u#YK!i{NCdwe<$T)X8%*G*^r-8IB?d&FL!M3@#|~Xc*2R zglMffe%pNnvAuFPL84TfktlU9yMe*2#+A#_4b95}yR17~=J0ucVc4%$%h{c&dYN1T`^G>QFN|Rr0+nY0F48+ zC$%Ie&n3GVCKMz7X?i^Ds zh}DP8^PP~{iIbj>DSx8mbQRy+H18rXVy*ld;Ux&_P%g#%fQI;4A^c%6D$h>-m_7Pq z8jNv^I|t^UP9~TGI{YJrwCX2q^wDcbIhj3@$nvv*sgqAcu^3i=tE{Bv^I^!x9sGi!z84IDvwssOV26sxv3D06l+|X0h%IKp_OGSG^!b8wOO=#p>@p{k=B;}zq9{9QOPw9riC>Vr6 zI#)sLI>jW4yvmIeby?$J2DJhbkcp9<29f3C$B!Qiv44_Bvz;0ZB>tYuhn46LLwU5C zL>+7`HrNa+7=KPBJ@IH_%d>uF61GTwP^9HRg&O|JOu*wla|zUwFP(+8tpS~e>??&x zDoYaplAOG43Ttob9j@X+x^MH#p(4Kzgi+ElpTyL=k|Xd@W1mMAvxLnb2h%vw3T0*L zq)LSf`V}bx0vf7hJICajDK5g+xT>wm!^E`~^u6Q6dk2uRBahZlv7x0rCP z@2Toa6a`fN9%a%gN{Sg1T$Zz;et`Yuc?RZ1=T#|wg>Fd%Mf+(O@@s)7dP&@TAqxx! zYd4!oF1Rnqp*CCAsE&?u^x2$`Jfp@fwk#>KRi&*f`CqrB&^0DeB`$N<1hJOE*vlD zsLgdOg1W0Qy4`N~>Ep-n|8BQi{(rakr28Me$K6NWN6#L2yN~~)+k5=vaqmA!cUKcw z^kgEX$$xaW9;>{#zsPeyUNLYKkeCjvIhcANA%8NYv_eXGc21Hk!rXSgK(AC$RCX52 zvImjvhx%7N9bf-r&Oc~!F_LxHG+^2Jf7E+iI{!}|J$ih9{`c|Vl?FbUMwPEaM;&KM zKTaW~t@8PmOve?Q3nxsn7O^=MY-5~&K;hVei}IHGuDUVZ)0hn&bN=(}hK8xx6&+Z7 z{(ql5>h{X_|Fho7ll$|(kLTck{4?Z38j=@~Dp3iExs(l2$)LhHmXb;(w7JGsm^VJQ zT=skxv&d(W7f30gn0iO&N*Uu+0Pi4!sAB$2#$5eH!({vT=AABH069nHn~S`zQ0w5J zg}wA4kg(9APo{JI?>BVH@-M6&u$`o0`G3bhu{r)~T8We=bj;2|DunFz()zn)9NRyA z#u#9w&IGaP@cru}wKVOkeQ-b$HtLgga$CxU20C>>VistsE5KV_A)#OKds;B7l#cO( z!kjFHMY(Q)DbwT!;=rgZF*PgXYGoou9|`rTyp)ej!5A5Pr4@#?E8flLi zKRX9;!kjq6e6;vZFDtJ{&?oj#IMUlZ#g55%YT3ifi0LY5;9tfc3SI8Qxe2B&hX%Pd zyV)3DWlpXWb3b>U>ByDf;+!}MW`8tgrYu)Sul9h%>l`DA_Lpeh2j_w$4PYIH=3oTP zC<{YKhGraV4uLdj)s*ca2#Y?FN8S&9}t6`87omI$fXl)a*5-+92JEz9Gq{n7~3uyAD zRC#l{eEXEyth+*;m$NxjoquyQPc;f5dQc!7Y#i^gFm#_hX%X^g#*=K?CnqgJe109B zj#8Gq4#F@H=q%hPPgTmH5e-5~eogz{xA=qP_QH^bm-EOIebSS!c#`%pnJgY=s{mep zfQkw#9gtF}dM8$(JlKss^m(!iY^qXS@Wha0kTBZUb)XB{hS(Nq-DB+vV;Nn?XsDJG$$a#Zu_{ZMiHsVlE-&BH8$T(V_mfX4cza zW?m*zK7CaHoRnhpFYk&o$De=`s31qBOcG!TmP%Te)Asl@&VaC~T262+n;{IdsfW^k z6M{;pJ~?^v^mSm~dU4h#y>55fIQvV*G-2AceUX#3*2!DOeFP>lErl_wk z3ZzYmjrbDYm2X|0^+|qW1sllMuQ>I;r=jHAkUM;%zZ2Gs#LAbB$0Lu$spQ3wzjX2h z5Bgo_K=uhix{^p2ZyUWvJr8~5z#8+HdOjCe+Xif;mXC3sAwj6LaLVi3gfXf_>?*+} zRy@_63YBN702~`0=zq(G(dXbbv19n?zMYU$-x;bY*nqMYsE!j+UaI+@*6hzOlq^%I z9AszxM?`xd$O{g&KjdBRN>N5hDEPW>45T6VXxOSo@fQZktALfVc9biCY1&&PXV~5Q z2_vfAl>00M4~#et=Pm)S7R3g_eN>w?!sAK8JS9C>^G3k!r+*Wd==7$#2yl|x+_oSg zsGoyK={k6%CL!m0Y<&tn%g*9dXLrCW5gbdRIYAPHy&RUON_-~LAVQ`@PU6VTrDd@3 zzf`#o3XnR5Y+#k)$|)y=Oa6b7+mwJ)PU<`j-l%94e$Fyv{F+lpB-sXTXiXaY%4 zzSaaa3t7(4JA}r;KNFtC7L!jLl6&XpZwvRQz8i@HSbw78oWOb$FsspwCBt%qOt5ON zlJJy29DB^oqCAr--g>YA^5J)&Z28fPxleS(L81b#>N0wkS*MYJ^}`J>nVlqyPQ}lH zCFYI18Za|z!B?#|t*AM#2ju4nV`@{|%}o`2K&R-0X~&srPEn=!HpkyeM0&6|73o1W z8L8GHHGimHT2-}45wyD5VQq-uQL7}$8=0ing$yOs!-6dFghtsE@~*2$ouGIEt$FBU zSW$PctXf8ZgReWr8s)VNz~MO&sgq=pyzKN3eGMp+H$|m`KMckZPngL4x^$DH)&VIN zPJm9#GOpNM`LQP~O#)_I%yRJJ7^puicBOmyiGR)UBFE~hLMacZN_cMvL0RR<$V?Y` zFV}l8R3%R{i+Ms|^C|`L$YDNNjM_eGm29%|8p@RzQ>Y;1*JOQ_yNnrDZJnT~t5Ihw z@T4@%MnNPc*^6J!^6*}zEiogj7#THh?O`_LS>%K5*@}#p5G~M;ByCk#YPl))S1M?| zV1E;9<%aXZw>lAmE(dB8hqD3)YIH}sNf<;dZ&ykOZPX2z+?ljHNfxU_f@h6x;IRzoV}EEWH`%)`tXwnAOV)~^n&xuF`uZaBrhpVl z`6MDguYo2d-jJm%oEMxl6Q&Xlflf!B?MS(FA^EMd^;DJXIE4d~4c*}*M{^dAo~~YE zDUwsWc>M6{=gS{od~g4C`s!7yj5z9aS@>h+HiM&-%Rj4WjEvyLXOak%VOlG%w#E1HFcNQ33y6x%hP{7t1Js3PrV_fC8$5W~H2_+U$w& zLS;{TbmAlv7CtMye1h+kZ9NL-s(-}js00$X=xatg#l0;3oTGG|ZWNDW>cy9mQBBRE zjdO+r-qeD-*To-e0De%fZ(Y#Yqx#PD7W3IVKI68Q+qQNbOZT*!+j~GVSfOxQ1Pds z2_IDY5S7?yYTPnbzJLlGSO>cS8Y8){&H?aXYV_UqEVm>@tFE;mXUJ0OsL+laZDo^7 zHH|*`)UHYWN)r!4p6S$o`nU}$eH&6auT-^H`&gw7JEVb~L6+>s%6&AqhP52~DA3-6#uH%rusG(Q(~I16lM&QHU)& z?-NLzVvi}Zp{ZeCOrQkGy_9O!j2lG6XER%up`9||WbufRi(gO)r+@fL?U7kgI@lhZz@(CY*ss2`+9<2I%!(w5Opl2-;oRu4b7laK{y?&7keD|}=jJ#VT3P-<`(77yeOU3_;xG;lRNj4E zY7(xuKtQJ5$bY9m-Hd9mrD$Km@+4|j#5$FNEtUh+7B<2Y$gpTm{4o+|mC})<6E5U| zg$f4XB353vT!V?Uk$el5IA4WXDzAGbR_UOkL9NI$_x#g6|Fk0iWSK;iK@Ik#C?0<) zx^tZ3u2tu#>e7nxIt}!z6*bP=X<{$6MRP-eZAITe7(V5z)!jYn)~U#P-7i*q*Dy8p z`d)u`ufO{O^>;{!-?7}aY8Q5r`cc-^5AI5z_7^hSR4;L#|W9U=<-H zQ|!@Pr?RtfNWCi)h>;TxeGO(&$b`siB&e34#G27ia_{E4v3-)SCp3K^e~geg=b7@C zCucliZ!gIQi%RLz|MLF{X2KD***G<|QCXGKgfU$!O#f5^(}Ohh6MYvK2G*hi;>#|F zta<13@;UsJ4H?5Cx4-p3aCoRC;KkLG~+|2`N5W9Y*EJ? z2*TvQs4gU7f;Ntc;04lPf7dsZ90I1Qk*t=hYiRO>xR7SLM$B62OdX(Xt4Ud2Lk$Q- zVO@=KuVVh!#YU{8tNmHxtaPj26gpR0vsy9$itmq zcdzM{lqM2gk5{rEfeL|0bj*sK%QNO89Vblu85*mK<|qo0D#Rf)e`J#I!CGGM>&W~> zB+cHlP@qSp${&)*{xO`VOl-Cj4@s}vE%x78 zFx-@W++wt1$KR2^7e=mPK`k0Az=LK)*ai~hH2>Eb_A&stTESlQR zxx_rG{0hzse}&M5ovBX#Tq$_gCue#6Ies0n#5fVCh%Kd{1MM8>>OqfT!WUIwqa424 zd8>x0*ih2e(RX6P!Y~)K+r4hPB3WaKpL?0Ql02s<)~;#8=$(99Z^I~sqsdi4#9$?; zvcX(^aL~$4)#S#pMa$E-KQuPCl-&n3mJBo`-*;eae?ssTgzV4J!b@K0K&Thr+p6+o z7^aW~KTH_)=NfzE&I)-*+Zg3~iGjNEu$}3Blkc^&fUcUZ0(y}nmqI$IxqXR(KS`vp zVto%$d?i9M&cPH}SgdVvO_NA|bJW8A&h-hZoGs&U0A~EvGccA9mwmKq57vFAK!OzU zM=sLKf4RuF;MR`V1z2DqN=_xLD0qxi4%;HtE5<8!B#?CEor+6u_j%M#+3?Lvlfb2A?{ymR@~*gM%Vji$4?#o z-*pL~rS*RvJ*m|H=svoq|ND3j4oHa(9vqN!pth#;>u^ra&O2u>NXog&$q*;pV?r?D zwv^T27tB6{oj?Yl^qyLL`A^;X*B6%PfBd1myaOiOG~SdNEII#Ao^^Z0^MBIqo!p=Q zy*!^jbsmygFztg+)F=oUl)s)zuy_;JCl5QHKet-)v(`J7W=TXS5qy+_m+Pqt0wB3L zle9j4QdK_~X(L9t78*hDge!Y!lS4o7QqsO+^EPS!@b+z+wDIm~lS4?d)BgVSe_dPt z_kXpIj)?R5a|@>P>64?ZzRO0CO=2iLn=t=HmITrG5*=8BXnYR&z0~WMADNe-`w}F$ zgGRaMW{sO!OY7Mka>eF-^63+Cuh^V?{@luS@Y?(<8EWe_F0*gFAw;e!0qw7gKNowF zY@+X>)wj=fz<$q? zsR@Mn3+&;7UE5;A%wEaU-6m~39k;S`xM{eiU_{uT1Vbj(m}=$l>uOZOwK{}i0EJ!= zPuA%bTNHX#@Lm9WAbBzOHT*l^)0GD6??=r268-b|H0BYDQnMExrmk$0e{WWXz16K= z$~UHC(tmE8soHJg=09vsAahvABc_i5*uXAJ{yk;C-A@iVEJH|HB&`o&o&bj?*@q)YfvnDG(ER z$kpVv3z7TAxX0a)KQo@Pf4q~F$2{cY`A?Dt73VeKLbB&gR4tJD-Jxnu-`7Fa z_3r|w9wm2&kl)$}vNASqkBcQttm5ICShxxfF2K5-A>4khDjaDCH(=Ordc9HWJ_x`R{4(q+6E%9-lnBm;d(hY#{%o6Gl>+e~ejbR~693w3^Od z0h1(oQTBuU4hTlX{RLHzs>-8%Sjs=zeb^r^_{y<9gY#+qt*;#S%%0~@d23hqq6cW~ z**>Idl--Q5600hAhsJTj<0ODuLB?EIH%Tm?n(0 z|Iu@MkDYG2dZRX@e}H>rI)q!1wDV;2omp?lQrc@5p<4Q$#3%|GxFWd3qQ3>RVvfR>Fn4 zW<|ufhuS7k+vYeG%Y>|Ws*)k~)}S}fwgw#zn57e*1pfxte}T0?xTyK=Kza7=#i{`G z5`PW&ZI6014sx_#3v>-FSBDyw*N`id-~<0iaL`c98wmt?w$UK?}hCK(-*yMb=V(7)9zYQYt zk4Nq!c}^kDFp$!38)6YhQmmE`8SyOg+ZZC?wjMrwuZn?8`HcCP!2#l-Xi7sqejvy+ zh=OSr)$PW^hbyulSkP5ib1mSq1)27z!`X+f^Y`D6e;$7LKR*Bd@bl+y+T^eR9&$rc zuF4@R#f9t#&}R|0-L*V(|E%{ck^cdMx3T^H$8!1qbHl83=Q)y`8aYB7bBQQh^Ri3&`l29fxl1^xfKIW1*4jF#uwpu?6@SO(@@Qj9m z5B$JOe>p(6OZv|%Ib|2ZL;0>re|VUGt;*Mkys%c5M36Z(0B%H9C8F#MXdQG2hi zlqPCi9KqbvI+zTyt@WQ1*No}vpX`rye*j+X=laLIK}yG^ujCs`T(b3+^@a>(o4_9Q zjI?RDx`gKqEgG#3*1v;MsWV%nFe2^0iO%0dAFRxU&&qItWjE_4peNnUf`+STbrf>F zfG9}<;g!U!8DsvSWVKj;bXM?S3H1zn(};b&68Ne^Cpj z_ZgBpHRF-;GP4oGitjYIQ8U7G6^mPZ>(-)E@vl~4XqCU$sZJ{1(?o(1Ika6ZtZt5A zKgwX~mu6ZR7)H@mc5N@cf~Q4UJN_4ETbAAb%9^qj1F-b|e^!zIA3u3|fB)~}S;zkW zPgN0}45@b|5g#%}qjVn#C`d}ve_$9gRQb{{v>gOaFV3}QQ`n+^m4qvtQ==F;RVDaP zlCb(!{iS}p;7OYQrv56+rx%tqYV~OZQ5S9(DSgt&E((p+8C2hPYbaQuTX)W*)Fto= zD#ai2ghbhN$dV(S%R}e9BIl_|^qVF$5+TIgLq>m<*q6-dG*tP>RPAgOe|M>_rp*&M z%^*tIm{mmG7ZPx`ocn&l%+FfEZSv-*bZG&Png!s><`}-nGQjkoFR_r+S%P!lI*WJV z2{~kc7CNu986H)?YBuoU0M^bUwYO0r{~hZ>Tff83miZtnM@`h!p-LHVGlKG{oeR>& zt!!7u(0+Zj6DWAHSe*q?f7;L!VBzAvsux?8Rl7iA6lAK@rX+c|CA0K?9y0<;Dv6}Z zB*FX@PP;Z=T&P|!YtvFZtTwZ-=di|p_wCyDyNUr1GA1mx)FE*G0)~<$_rG$2y;b?Y z*Xx~BGNA`g1%HRextgLn!xX>O?5n-_6%vE?HOJF{gg&@%zS4!FSgL-vTDgB`i#rlJQIxYNV(p*B4(be zGoae;<)HQzGq3o?GT0XU)3*ihx}f?33EKU$*0Y5EBZh28{+G&s-N%p1^uO1=*Z=P2 zS%dz+{1`(49F-4De@iofJIw-vO=FyjD>SqPYNEAi^2@g~mL!4C$PG!8Eb_?HNAS;J zdYO$z!AH_|s>~Hm@(i+CsgyA=O*v=nQA1TS@Zmh4I^JQ+7N9Pas?yW>n`jpog8$Zn z$PGzY98!;w_J6iX`;YeKi=qZ_qbv;PTLZBZygU>R&_(MZy=Tb~N%J z4Od!Rtx&yG{!MkJw&FLWt>~{LYe>G@q&=ORe=bt+mb!At%fgF}@jcQBR9&kc8&)l_ zRKRE`Qb|#*G+AUE%vhw^icIL@L)_eamNT+l;EPAhe=?D%)@K)Sv~u%T6oqBZq^PwvOiB%a3SB=h-`$E!sJ2^^ zTXdAWe|;J6bH)S=rWMU|uH?k_kNtIpS*?$J$ZIa*dF4c}{}Je`g;Twfe?Py4go!>2cFtEI)0=iI*oN zVQCVu8G~Y2+Zbx!gmn65R%TRl^kiz0iQH4u1t>iBmw?2e^|D@}hay6PBP?t$}eM zf1o}mrnqlB3#FcG4g+Q|vjIgM@TvX>cJ^Jdw=!AMp1aXl*V3wxB`7}Jmu#5$Gc*ux zyX03X@5h06MMgm)(!At_athGpy09~xD((q!ND!qKy_9ptU(`y+3O9X{(8%Xg132sk zx05*Jd(J~fqheRTswC+tC)D?em`{g1e>A13mUL~+%ZdkV)GvoK9!hkXP*;o;+D|eIFWB@>C#jVxuUd>Z+XT z-uzM%qJp76^%JqUpphGL%xP?+Y?G_FUG*eR*eu|gux@d6B2DEW$xe$^_*49H8CQB|Ea8q>1ie~kUzgK; z0Qr~oEYtsEVg6h7|L*mkC|2zM_xk@mJ?qDR*)ckoh#mxLHr7&Ag+HGBAdkecio4b8 z;_T{gE0c$`B7a}pXrYP}C}_2nc5h{Wf*QE+$x%tIq;FRH8+3a9t^Hfu4nwkU`(_B5E9d|0p4`{}+RL*R{f~T>2tt)o5aND} zn~O#ocL9%`V^acsYeX`O-MlzZf~aA$zFZ zc>t-t(8y z>=&Bow13=K)|_CObnM{s=jY!XUS&h(r6B-Es{?%}CNzlaMatIwZ5x5*6|Qo)`+CXVAXkNfPXMuGBu7KA=w(TvP!f{vPKWTxl|x^(|a zu)xjJ8#0|c#vHVKM@n5;N=o^);%cIttzBnYPOmxXnQ|x-KS8VL1!8)7f7w{$^IE$_Uf88pAb|z8(Hc{_ssn`ENc`yJ<$MSnaKToNC&l zc7Kd+%n6$X>>3?2qBKa9QIwC!gTILfN{2{-i0JwQXo_!4Ym_H~${2Z04z;BvpG*-$ ztRJ51W_7AEqb!}t{mZR!*aUhc3-qRFm(?(oE2y)~5}v3pm9`R&5E%VK67k4UU$264 z&1Soj_5O;@dqq41oBg_&SQxMD^P!e6$A8a%OW2Ghg8d|4_Ma2=r~0ahW%j4#P2S9e z=+>HrjtUk%3mr-hBW{DCu1UMD4juV2_|N<2Zl5Lm|20jbAR2Ec0xZ@4b}Rbdr}y{n@GzABPw99O+i%cFegB@07o`7s$9cMl&e!&4>r83nlYc{_ znP_XL!#1%JdL60MLFMdSH)x^#A&7j^c9P$I^Z)ak8!@3LPoDPMm{sW4(|2#q-~6*r z-sP(&K1-RGGM^kumfT7l_W5&PzLDR2{(N*y6tfXY79Ufmq-f+zcr*^@Bw=!yEb=i5 zi_Uo9SD~%)PREe^8uDYZXciutOv zR|T#meU@C`Yh;X-_`e z$1j(Pa{uMhn8jR!z*c}dp?~c2580>mdNKJ=F%Y2QP$$Y-sdbzYE30YrM6AKh_OglP z3a;vJ^=^fYB@Jt^aGHf_5LeQn>warI7j0L-Qn=N!^1Y|o#~=)7GAE-fLN-aMtRb0o zFrK7Zm&TJ)K+i(jwe%#Ida2FS=nkmD(rFhoXKp@4yTD$_12^vzkAF@%ghs2gOO6JM zx?H)VU2VKNx%pDo+j~vC>NkD$&Cvahuz5%H!WO{3piGp+t--^(PL;ha+;#K{ z?)O?Sw<*155DY7z(yx8-r_Wx*l07e%Z>j*@XXpEq@W=#rHes{xyPqF}%NCXd~wj(Qn&v{d$bs;rVMox)#T;+pF$q zmQFTi`b&M)v-~viCPB)e*4ru*vOX{Ol%h;q0%f*+)?ccFD3_L)QrsY(>sP=j{B2jr08h^#2!iUYGkwO7S?%o1G`WFo&b6|MISdPz~uSkasGEmfflCiDzsd!-Gg*Fzcl|2!-awew-PZKCi6FmX zH#-*N^&-~T_kRsV_@-XA6ySBYU%2>glhbw1Sb=A|MdAGxk6U30+nh7|Mq1}!HMHBY zVn&|dHFh@VqW_Y+noobpj@neRZpZBRUwDY?I{F_Tjrs2NKfUgwiv73u>^}Z;KhH+` zABhMrzCV0-w0jkh!m%$$1(dI~Sqp@d-ck>g4|Geapnoc8*HZ|G z4GJiD{jwR&)={O{vsfaguCMn(?SnnS7pV|abnJfvg%~!l&(Jobntqn6;dE(lYssa# z+`cxhbbnoaQQA1c(iN0(In`OFhErdzfb{siBUtK~T%kMEy{U=ZYu#4mC3dHE1I}u= z6M=Dsd2gZ(P~HBuwQgz=YwY``TDOK?w$-|+ZohD?+se9`CIA zrw!CIx2g(VByaphlxB;TunqCMeO2gPD_g$6XMYX-U(7{1PMG*JTvG+OME}=&^6Y6j z{^QA``}{w9c{b7iT_7S{{?AuC*Z)~K_Qj|G^EoxE0P}CQ(*jy!-HsNp9>8lU0PM?}qjK-id8!_C&1!_|=glH? z4S(|QD9EHbi{k1Oh^(Dj3(f3p%F&^yrKlOAydevKy{_}nLhM^<2X5DqXz|LvB<03t z{Jqb-z-K14w5lM*h{^`4=DFxnt0G$_n5$Em7SiopvAM%Xj{a@Y#no692a*P zSLAvckLCSYHyHw|v8Kfu2wEOwxm~1Q=673z_H`m-@=FQ*{D4}VvW z<^sGW_8E&SEMqZgYh9!2mr)~XS8k#D5pRK#*v#r?q@>91{)Mr)c0IeJZZ@FTq;%z8 zmvpsbdS{OoZ%*=Rh1b6@x-_n73Cc8}L|i)NHa;x+?u%4Nuc7~iPd7;fwz;;m#Ibr7H z)-+uUsl?7)xbh2U2b6N*ls9l-!2Y&(+uFOw7EXNi-Q7$fRo};!(wc(#m#Buqy9rar zYvBx6zcQpjOQWv1Ta>$Y#(Okh(9PS7ZR|b!a)qR?_*p~#voEr>q`+nQU!Okemi>R8 zK6-pF|Lx=1MEq0oko*QDy?-IA3VX;x!}maF&v-QIcA>6pnZ+~Z9^h5GN!T;CZp9Kg z-L7Jh8%FExcC?-uZ50-;iL=9k7qzgdTSB$?MQIyIY|(wa%6cjH{X`WsNx8n1VAj!C zbrnR`W#!K4G%Vz~%45SC1nT^TX%wjI$F&MKcUDiZrRx7I8y`PYYkyOd@o7ryhiEp7 zufWIWw;k3BagBPUASA6@%e{ibuG#4367;z21x3^sb2*nZN1>itWu&#r;#uv>)5x`F!no}_|^2@6ATi6B#&dXpd;ACrWIG!16z+RWe6 z$Zs8xh>g*S_J0sn1j<>F{C|#I@-_f{{_sdtsdAp3~cLswkKt%vTA zUbP;&=`?OV{6AX<J8gV=O-ZPkK+EmGb}e9zX8gpZ~o)2jqLK3#CuPt6-Q&uH{UkM5}d5 zKK#hSY4P>%hq|(qyeV8UfeKTdl*fT5Iw5}gheE0Y`OOiiLdOZuVo6dE(MZV0fk%cc zy=Ic&sDFuIJGa$3I3Vv|{r4B|TCKrgAUW%n&tew&Eb;=TxOaKC_Empy&(ByQ0v`2A z*Zt^z)J_?y7+2qv#8QLUMX}Vslko%LE* zLFD&|l;DH$YZ|wvETxirmQ%(F*N99|9@rgaVSk9Oa!}V%x0=q8H6raFSr~HiD^Ehd zjgvSyAm>qP3W2p+K%|ioi4#5xd?pChFxSdGxvrQcf?Q7mZ$dm8Nfrn+!Qcl!`+wPc z`scQ7C4c8%u_JXZah^$A_M6w2EHi6=>$nagx4h+IjiDS!n)J9|L|4Jw^EHATNV zG)$R>k>xRi+WHu@Z(rFiJ_Il=G)kaB4S(nDrD|_#VfYNYAXZ8i8J9-~@bKC9=Wh-& zctKEt{j0eXyEbx04$ZqC-a?Mb@G;MsL49cXenL0t2}+x{tZDzW^PS6D0jruQA}t?4S$@# zE*UTBH}Cj)N%ky4@ejGIkQ~E;kH<(xyT-hQv=2`K`3?s0$73$I;TFzM7AUL5d4a+r z02Rc~CwPH6SDd^=*!uYdFF#i9w!Je^)n@Yx$)|Mvv+4JJz4j^j1Vb5(L;4bO~2KEcEKY5(ao%_pIVe1nNQlFL~o1q#!^({2zAyL@sTBn~A@IJrAW zNSL0pij8==r8q4S;zrW7{j*9AH;dYBMQGP&)c`S}^9aY8UEjSbA9kne>2B9W!<2tr z;-fX#TOIJwY013gc4Z7XDSX^qb{h2$T+_~jMstu^4#|d2nL)S$`dTPkt(di@$8Z5k zR#i$?iqkG`(`rGhX1h{+2Pm~+2FG=&u?yz5P{!}y9h6*9GDH`Vixgi2Wq5x#MD7Zu z8nJu{#2uh~^X%z!P^e|Ca@+;jouGfrRj~@lt)YDW=EV&Vxieq-{R?X_#h?Z#H5gT+ zm0AlfS*&DRUAA(2nw|b_Ur^FQ|57Qbc3R@^e0AT~v$M6fU9UUnnLAf8`+DvM&{zlxXGGs?>!*fy=> zypZ_?D#wHH1}9t_H3uIR`ijj^FHE3e`D^DeIK2M1lY@4K-CX-&>xY~`5Wr zpLp!;Su1CIl9sPVhqX_K`Ms4qV)+FM+Fba~hc5sNobR~|d?P?%Ip2Tny;{X0ot!*9 zKWl8UMiMltOP*th6_K*ne0MG>CS=4^&r7iF)z)GPn?INV%`NDRebMZ1Rk4B}O z9Gx5w{^RKQ-;W0WIARq~qqlX+MLI|akB_3YU@i>%*zA_&R(PFA{lG?8-lvYaM{N*O zzNC3tXHXPw4<%Z+BNu-RGL~^8HYB=IGFSn-%stQ=J;DquZ?(!Y<_;>DE#1 zR_nqh+PO0c`|q#?&MH`oOc4e2G-2blMi>S)Vq3hvM5TCv!;RGI9)Q^P&lS4$A#9}B zALsCU%}R^!!n%?K#CNWN z$JjL^%ll>L{a+sTLxuK#|R&gYhi55c{E2<}~SR$bet zGaq&9_E%&Rmb;4kh@yJf*|Q8a>#Q}6mlUnk1PBMz2K0Zq_cPdtzSW0QU(*xxu#t*Q zaDPYApGWEL?;!j0XubU%e>a?4SvyS|>szf}G@}M9_HxeKUw?VnkJ?_dpF`aAu5!hx z_GQ<7!4}+}Os_B4$clN=RAo~mt_*RZ0C{O)Rm zCY_^6BLROsm33Kw1Hq-{hG7mH2V<=8_Zo#M=i%kNzMaeBvd#J|E%U^0VpoHl49oaBowDWEi%^KSqyXL!!EX5!?LSV zt9DWN%hOm$&9HKGuDCG3gg=ZJblyBK0Cr|~_`?IeESIu5AP zFy=~|XbKi$iqB*|*Q)SSmCCpEz9AXTWRjO4q)0>ScpA$F_65!d-N}(zy=r=X)%v+j z@!Eem0t&u>bMh}(x8L`(b8OgN*V-FCpL_f-=!qAW4Vjm5?9Udt#COSb9lLC+8UUHN zO~&!iYqLY2MQeThCNr?>+n))@nWlZWc^g)77)52fD2PdWR5q1YL2X8=G=sO+nfW=c zAn?n>e#ok&c^<$9`gPOUhpXrpnp|H40?vO7D6d->=qa-XtPAR(i?S%zqsf=vg?{@f zqA=VJRbS+@iGB;2^xB_nP&P!&PS=I@5QV~3Vcj~8Hz(_|b>`trTd7-9+-TU!j!#P0 zjR3jrGxC*2=z{hvJhUChjXyZnAcaq)pUc`Ipw<{J@%LU+IMi}zx})`I1N~Or%`<=8 znSRmjOnV{WGX0|4Mm{eIqr$=WLd6aATd23$oDb|qKdN>2PhD64_3p=i9@+nIN5^IQ zxe|$=mvpZ7*geYL7WB)R)=U(Nb!fON{ho(j_Oya7)31T^Gt;nvrf~9~cc}#Zz0;pr2|6h5R|$WTTmPOZ!Np{=Prrr#ek&Jyqf@$t19-b2oQSKh zJXSI#%aV)9J2tTvfJYXvk*tl+#Puz}un8^lO;GA^_aN1z--ovq=A4zl34=PH;*9Ai z9NKo(W;`n&HT5I`F!KtZ*bcdvBmhNAt|uYXDm0HO8oA(FuA!7UGgu@5_>q6jsuG_- zL2qSTCP|dMy%PTh54}gzbI4sT{P<=-8;Lugi z)M%*r+4z+-=L$6n^T5I51CW1OfS6Kjo&a!zt_0S4NJ9muat=BGEnFuc$1V7NoGeKS z9Mut4N3H_t5(XT|A=8FdC0fKveu4HE%f$H6C_Cn@a79dbI!=_*s_q48w6bP)~<&HV!P-OM8b9 z5A%xZ8T5KSNxb0N!l|K{TZHDW0)ghzu3sI9ducC8Se~QSKgt3(f%}wN!b}$JohR4A z-5KZ&vf{ns2452aH2;6s#=+k5f8h=z{Np>GBo#B$P5qwxN^+x?kVU7brU=D4b`GrL zh~Dpz!{N0L5n>k*&K6VIN&JYZrp|%}d zF+oB(v2Pn`dspr#xRP3PN_d>RVaZaMB3F758+OSK)a^rC``6=&zE9J1b&V5`m75nh z0Uz$|6cMYc?O%U&Bz#@5-)n3NrL@%e)vv2DK?A7ac zFW+Y7qg$tPDYPu{Hbsb!kMFk(@$ujWg^0JTM7;5`iCdQ>Cfb~h?TR#(Dz}gI^R z-%U%|o_5WmtWHF?l(7<((H*k+ic7Q@TZbC8f!W+w7Nv5G3#9tC*E?Lm=C{2b@%)2@ zrd!r~TpWMkn;`1H+AbDqKwe+RGHK)vKUPv1h`Raqn}-+m2y;`?%b_kTg)Hcb<=Esr zwA=uxgx|Cj7QAnJe`I#e%OXDfvu77Lrt$ILAx#U+Wq}9DDntx!gor_mh{1jkF}MRn z3|1o|6wCT4Br5w@J_&>DI6F>~53dEhl9xCep@M(G=^>mPpBx|h-2anM_7JX^269NO zPc-I&>nRp(%GiXPX+5G6R+f={rLn#?%+xxStZogcq^kp*~`~IWJ&Vq(R&J+^MGHWLg2n)8Tu;2 zi%9tIM~{*uh4T=~?7!9y9ih6Hn=j=YbIgz;|6{aCDUBZOLZUTzMlKNr0z z9vB$g<%@|qaII_9+YjmNbuUGpPj!xhDK49`L5@&9JT!j0kf`nOVZjR0$i&>zu?3@@ zg-ed?%33@%Co>joy$xPKL7y#|5h%8J^;c603D2{2LJ#7 diff --git a/chart/templates/analyzer_deployment.yaml b/chart/templates/analyzer_deployment.yaml index 1b0ba7b..a662818 100644 --- a/chart/templates/analyzer_deployment.yaml +++ b/chart/templates/analyzer_deployment.yaml @@ -107,10 +107,15 @@ spec: {{- end }} envFrom: {{- if not .Values.inject_secrets_via_env }} + {{- if .Values.anchoreGlobal.existingSecret }} - secretRef: - name: {{ default (include "anchore-engine.fullname" .) .Values.anchoreGlobal.existingSecret }} + name: {{ .Values.anchoreGlobal.existingSecret }} + {{- else }} + - secretRef: + name: {{ include "anchore-engine.fullname" . }} - secretRef: - name: {{ default (print (include "anchore-engine.fullname" .) "-admin-pass") .Values.anchoreGlobal.existingSecret }} + name: {{ print (include "anchore-engine.fullname" .) "-admin-pass" }} + {{- end }} {{- end }} - configMapRef: name: {{ template "anchore-engine.fullname" . }}-env diff --git a/chart/templates/api_deployment.yaml b/chart/templates/api_deployment.yaml index dd52822..8174324 100644 --- a/chart/templates/api_deployment.yaml +++ b/chart/templates/api_deployment.yaml @@ -95,10 +95,15 @@ spec: {{- end }} envFrom: {{- if not .Values.inject_secrets_via_env }} + {{- if .Values.anchoreGlobal.existingSecret }} - secretRef: - name: {{ default (include "anchore-engine.fullname" .) .Values.anchoreGlobal.existingSecret }} + name: {{ .Values.anchoreGlobal.existingSecret }} + {{- else }} + - secretRef: + name: {{ include "anchore-engine.fullname" . }} - secretRef: - name: {{ default (print (include "anchore-engine.fullname" .) "-admin-pass") .Values.anchoreGlobal.existingSecret }} + name: {{ print (include "anchore-engine.fullname" .) "-admin-pass" }} + {{- end }} {{- end }} - configMapRef: name: {{ template "anchore-engine.fullname" . }}-env @@ -184,10 +189,15 @@ spec: args: ["anchore-enterprise-manager", "service", "start", "--no-auto-upgrade", "rbac_manager"] envFrom: {{- if not .Values.inject_secrets_via_env }} + {{- if .Values.anchoreGlobal.existingSecret }} + - secretRef: + name: {{ .Values.anchoreGlobal.existingSecret }} + {{- else }} - secretRef: - name: {{ default (include "anchore-engine.fullname" .) .Values.anchoreGlobal.existingSecret }} + name: {{ include "anchore-engine.fullname" . }} - secretRef: - name: {{ default (print (include "anchore-engine.fullname" .) "-admin-pass") .Values.anchoreGlobal.existingSecret }} + name: {{ print (include "anchore-engine.fullname" .) "-admin-pass" }} + {{- end }} {{- end }} - configMapRef: name: {{ template "anchore-engine.fullname" . }}-env @@ -256,10 +266,15 @@ spec: args: ["anchore-enterprise-manager", "service", "start", "--no-auto-upgrade", "rbac_authorizer"] envFrom: {{- if not .Values.inject_secrets_via_env }} + {{- if .Values.anchoreGlobal.existingSecret }} + - secretRef: + name: {{ .Values.anchoreGlobal.existingSecret }} + {{- else }} - secretRef: - name: {{ default (include "anchore-engine.fullname" .) .Values.anchoreGlobal.existingSecret }} + name: {{ include "anchore-engine.fullname" . }} - secretRef: - name: {{ default (print (include "anchore-engine.fullname" .) "-admin-pass") .Values.anchoreGlobal.existingSecret }} + name: {{ print (include "anchore-engine.fullname" .) "-admin-pass" }} + {{- end }} {{- end }} - configMapRef: name: {{ template "anchore-engine.fullname" . }}-env @@ -331,10 +346,15 @@ spec: name: reports-api envFrom: {{- if not .Values.inject_secrets_via_env }} + {{- if .Values.anchoreGlobal.existingSecret }} + - secretRef: + name: {{ .Values.anchoreGlobal.existingSecret }} + {{- else }} - secretRef: - name: {{ default (include "anchore-engine.fullname" .) .Values.anchoreGlobal.existingSecret }} + name: {{ include "anchore-engine.fullname" . }} - secretRef: - name: {{ default (print (include "anchore-engine.fullname" .) "-admin-pass") .Values.anchoreGlobal.existingSecret }} + name: {{ print (include "anchore-engine.fullname" .) "-admin-pass" }} + {{- end }} {{- end }} - configMapRef: name: {{ template "anchore-engine.fullname" . }}-env @@ -405,10 +425,15 @@ spec: name: notifi-api envFrom: {{- if not .Values.inject_secrets_via_env }} + {{- if .Values.anchoreGlobal.existingSecret }} - secretRef: - name: {{ default (include "anchore-engine.fullname" .) .Values.anchoreGlobal.existingSecret }} + name: {{ .Values.anchoreGlobal.existingSecret }} + {{- else }} + - secretRef: + name: {{ include "anchore-engine.fullname" . }} - secretRef: - name: {{ default (print (include "anchore-engine.fullname" .) "-admin-pass") .Values.anchoreGlobal.existingSecret }} + name: {{ print (include "anchore-engine.fullname" .) "-admin-pass" }} + {{- end }} {{- end }} - configMapRef: name: {{ template "anchore-engine.fullname" . }}-env diff --git a/chart/templates/catalog_deployment.yaml b/chart/templates/catalog_deployment.yaml index e4effb1..77efe1b 100644 --- a/chart/templates/catalog_deployment.yaml +++ b/chart/templates/catalog_deployment.yaml @@ -95,10 +95,15 @@ spec: {{- end }} envFrom: {{- if not .Values.inject_secrets_via_env }} + {{- if .Values.anchoreGlobal.existingSecret }} - secretRef: - name: {{ default (include "anchore-engine.fullname" .) .Values.anchoreGlobal.existingSecret }} + name: {{ .Values.anchoreGlobal.existingSecret }} + {{- else }} + - secretRef: + name: {{ include "anchore-engine.fullname" . }} - secretRef: - name: {{ default (print (include "anchore-engine.fullname" .) "-admin-pass") .Values.anchoreGlobal.existingSecret }} + name: {{ print (include "anchore-engine.fullname" .) "-admin-pass" }} + {{- end }} {{- end }} - configMapRef: name: {{ template "anchore-engine.fullname" . }}-env diff --git a/chart/templates/engine_configmap.yaml b/chart/templates/engine_configmap.yaml index 1115d60..f2a3c85 100644 --- a/chart/templates/engine_configmap.yaml +++ b/chart/templates/engine_configmap.yaml @@ -45,7 +45,9 @@ data: # If enabled only sync specific feeds instead of all that are found. enabled: true feeds: - {{- if not .Values.anchoreEnterpriseGlobal.enabled }} + {{- if .Values.anchoreEnterpriseGlobal.enabled }} + github: {{ .Values.anchoreEnterpriseFeeds.githubDriverEnabled }} + {{- else }} github: {{ default "true" .Values.anchoreGlobal.syncGithub }} {{- end }} # Vulnerabilities feed is the feed for distro cve sources (redhat, debian, ubuntu, oracle, alpine....) @@ -70,8 +72,6 @@ data: vulndb: false microsoft: false {{- end }} - # Sync github data if available for GHSA matches - github: {{ default "true" .Values.anchoreGlobal.syncGithub }} {{- if .Values.anchoreEnterpriseFeeds.url }} url: "{{- .Values.anchoreEnterpriseFeeds.url }}" ssl_verify: {{ .Values.anchoreGlobal.internalServicesSsl.verifyCerts }} diff --git a/chart/templates/engine_upgrade_job.yaml b/chart/templates/engine_upgrade_job.yaml index 681d094..dfe591d 100644 --- a/chart/templates/engine_upgrade_job.yaml +++ b/chart/templates/engine_upgrade_job.yaml @@ -41,8 +41,26 @@ spec: {{- end }} {{- end }} restartPolicy: Never + {{- if .Values.cloudsql.enabled }} + shareProcessNamespace: true + {{- end }} containers: - - name: "{{ .Release.Name }}-enterprise-upgrade" + {{- if .Values.cloudsql.enabled }} + - name: cloudsql-proxy + image: {{ .Values.cloudsql.image.repository }}:{{ .Values.cloudsql.image.tag }} + imagePullPolicy: {{ .Values.cloudsql.image.pullPolicy }} + command: ["/cloud_sql_proxy"] + args: + - "-instances={{ .Values.cloudsql.instance }}=tcp:5432" + {{- if .Values.cloudsql.useExistingServiceAcc }} + - "-credential_file=/var/{{ .Values.cloudsql.serviceAccSecretName }}/{{ .Values.cloudsql.serviceAccJsonName }}" + volumeMounts: + - mountPath: /var/{{ .Values.cloudsql.serviceAccSecretName }} + name: {{ .Values.cloudsql.serviceAccSecretName }} + readOnly: true + {{- end }} + {{- end }} + - name: "{{ .Release.Name }}-engine-upgrade" {{- if .Values.anchoreEnterpriseGlobal.enabled }} image: {{ .Values.anchoreEnterpriseGlobal.image }} imagePullPolicy: {{ .Values.anchoreEnterpriseGlobal.imagePullPolicy }} @@ -50,17 +68,33 @@ spec: image: {{ .Values.anchoreGlobal.image }} imagePullPolicy: {{ .Values.anchoreGlobal.imagePullPolicy }} {{- end }} + command: ["/bin/bash", "-c"] + args: {{- if .Values.anchoreGlobal.dbConfig.ssl }} - args: ["/bin/bash", "-c", "anchore-manager db --db-use-ssl --db-connect postgresql://${ANCHORE_DB_USER}:${ANCHORE_DB_PASSWORD}@${ANCHORE_DB_HOST}/${ANCHORE_DB_NAME}?sslmode={{ .Values.anchoreGlobal.dbConfig.sslMode }}\\&sslrootcert=/home/anchore/certs/{{ .Values.anchoreGlobal.dbConfig.sslRootCertName }} upgrade --dontask"] + - | + anchore-manager db --db-use-ssl --db-connect postgresql://${ANCHORE_DB_USER}:${ANCHORE_DB_PASSWORD}@${ANCHORE_DB_HOST}/${ANCHORE_DB_NAME}?sslmode={{ .Values.anchoreGlobal.dbConfig.sslMode }}\\&sslrootcert=/home/anchore/certs/{{ .Values.anchoreGlobal.dbConfig.sslRootCertName }} upgrade --dontask; {{- else }} - args: ["/bin/bash", "-c", "anchore-manager db --db-connect postgresql://${ANCHORE_DB_USER}:${ANCHORE_DB_PASSWORD}@${ANCHORE_DB_HOST}/${ANCHORE_DB_NAME} upgrade --dontask"] + - | + anchore-manager db --db-connect postgresql://${ANCHORE_DB_USER}:${ANCHORE_DB_PASSWORD}@${ANCHORE_DB_HOST}/${ANCHORE_DB_NAME} upgrade --dontask; + {{- end }} + {{- if .Values.cloudsql.enabled }} + sql_proxy_pid=$(pgrep cloud_sql_proxy) && kill -INT $sql_proxy_pid; + securityContext: + capabilities: + add: + - SYS_PTRACE {{- end }} envFrom: {{- if not .Values.inject_secrets_via_env }} + {{- if .Values.anchoreGlobal.existingSecret }} + - secretRef: + name: {{ .Values.anchoreGlobal.existingSecret }} + {{- else }} - secretRef: - name: {{ default (include "anchore-engine.fullname" .) .Values.anchoreGlobal.existingSecret }} + name: {{ include "anchore-engine.fullname" . }} - secretRef: - name: {{ default (print (include "anchore-engine.fullname" .) "-admin-pass") .Values.anchoreGlobal.existingSecret }} + name: {{ print (include "anchore-engine.fullname" .) "-admin-pass" }} + {{- end }} {{- end }} - configMapRef: name: {{ template "anchore-engine.fullname" . }}-env @@ -74,12 +108,19 @@ spec: mountPath: /home/anchore/certs/ readOnly: true {{- end }} - {{- with .Values.anchoreGlobal.certStoreSecretName }} + {{- if or .Values.anchoreGlobal.certStoreSecretName .Values.cloudsql.useExistingServiceAcc }} volumes: + {{- with .Values.anchoreGlobal.certStoreSecretName }} - name: certs secret: secretName: {{ . }} {{- end }} + {{- if .Values.cloudsql.useExistingServiceAcc }} + - name: {{ .Values.cloudsql.serviceAccSecretName }} + secret: + secretName: {{ .Values.cloudsql.serviceAccSecretName }} + {{- end }} + {{- end }} {{- with .Values.anchoreEngineUpgradeJob.nodeSelector }} nodeSelector: {{ toYaml . | nindent 8 }} diff --git a/chart/templates/enterprise_feeds_configmap.yaml b/chart/templates/enterprise_feeds_configmap.yaml index 705e162..6a78e53 100644 --- a/chart/templates/enterprise_feeds_configmap.yaml +++ b/chart/templates/enterprise_feeds_configmap.yaml @@ -126,16 +126,20 @@ data: enabled: {{ default "true" .Values.anchoreEnterpriseFeeds.nvdv2DriverEnabled }} vulndb: enabled: {{ default "true" .Values.anchoreEnterpriseFeeds.vulndbDriverEnabled }} + {{- if .Values.anchoreEnterpriseFeeds.msrcDriverEnabled }} msrc: - enabled: {{ .Values.anchoreEnterpriseFeeds.msrcDriverEnabled }} - api_key: {{ .Values.anchoreEnterpriseFeeds.msrcApiKey }} + enabled: true + api_key: ${ANCHORE_MSRC_KEY} {{- with .Values.anchoreEnterpriseFeeds.msrcWhitelist }} whitelist: - {{ . }} {{- end }} + {{- end }} + {{- if .Values.anchoreEnterpriseFeeds.githubDriverEnabled }} github: - enabled: {{ .Values.anchoreEnterpriseFeeds.githubDriverEnabled }} - token: {{ .Values.anchoreEnterpriseFeeds.githubDriverToken }} + enabled: true + token: ${ANCHORE_GITHUB_TOKEN} + {{- end }} {{- if .Values.anchoreGlobal.internalServicesSsl.enabled }} ssl_enable: {{ .Values.anchoreGlobal.internalServicesSsl.enabled }} ssl_cert: "/home/anchore/certs/{{- .Values.anchoreGlobal.internalServicesSsl.certSecretCertName }}" diff --git a/chart/templates/enterprise_feeds_deployment.yaml b/chart/templates/enterprise_feeds_deployment.yaml index 767e808..034430d 100644 --- a/chart/templates/enterprise_feeds_deployment.yaml +++ b/chart/templates/enterprise_feeds_deployment.yaml @@ -94,10 +94,15 @@ spec: name: feeds-api envFrom: {{- if not .Values.inject_secrets_via_env }} + {{- if .Values.anchoreEnterpriseFeeds.existingSecret }} - secretRef: - name: {{ default (include "anchore-engine.enterprise-feeds.fullname" .) .Values.anchoreEnterpriseFeeds.existingSecret }} + name: {{ .Values.anchoreEnterpriseFeeds.existingSecret }} + {{- else }} - secretRef: - name: {{ default (print (include "anchore-engine.fullname" .) "-admin-pass") .Values.anchoreGlobal.existingSecret }} + name: {{ include "anchore-engine.enterprise-feeds.fullname" . }} + - secretRef: + name: {{ print (include "anchore-engine.fullname" .) "-admin-pass" }} + {{- end }} {{- end }} - configMapRef: name: {{ template "anchore-engine.enterprise-feeds.fullname" . }}-env diff --git a/chart/templates/enterprise_feeds_secret.yaml b/chart/templates/enterprise_feeds_secret.yaml index 3060831..6addc0c 100644 --- a/chart/templates/enterprise_feeds_secret.yaml +++ b/chart/templates/enterprise_feeds_secret.yaml @@ -18,5 +18,11 @@ stringData: {{- with .Values.anchoreGlobal.saml.secret }} ANCHORE_SAML_SECRET: {{ . }} {{- end }} + {{- with .Values.anchoreEnterpriseFeeds.msrcApiKey }} + ANCHORE_MSRC_KEY: {{ . | quote }} + {{- end }} + {{- with .Values.anchoreEnterpriseFeeds.githubDriverToken }} + ANCHORE_GITHUB_TOKEN: {{ . | quote }} + {{- end }} {{- end }} {{- end }} diff --git a/chart/templates/enterprise_feeds_upgrade_job.yaml b/chart/templates/enterprise_feeds_upgrade_job.yaml index 2584938..a5cb0eb 100644 --- a/chart/templates/enterprise_feeds_upgrade_job.yaml +++ b/chart/templates/enterprise_feeds_upgrade_job.yaml @@ -34,21 +34,55 @@ spec: imagePullSecrets: - name: {{ .Values.anchoreEnterpriseGlobal.imagePullSecretName }} restartPolicy: Never + {{- if .Values.cloudsql.enabled }} + shareProcessNamespace: true + {{- end }} containers: + {{- if .Values.cloudsql.enabled }} + - name: cloudsql-proxy + image: {{ .Values.cloudsql.image.repository }}:{{ .Values.cloudsql.image.tag }} + imagePullPolicy: {{ .Values.cloudsql.image.pullPolicy }} + command: ["/cloud_sql_proxy"] + args: + - "-instances={{ .Values.cloudsql.instance }}=tcp:5432" + {{- if .Values.cloudsql.useExistingServiceAcc }} + - "-credential_file=/var/{{ .Values.cloudsql.serviceAccSecretName }}/{{ .Values.cloudsql.serviceAccJsonName }}" + volumeMounts: + - mountPath: /var/{{ .Values.cloudsql.serviceAccSecretName }} + name: {{ .Values.cloudsql.serviceAccSecretName }} + readOnly: true + {{- end }} + {{- end }} - name: "{{ .Release.Name }}-enterprise-feeds-upgrade" imagePullPolicy: {{ .Values.anchoreEnterpriseGlobal.imagePullPolicy }} image: {{ .Values.anchoreEnterpriseGlobal.image }} + command: ["/bin/bash", "-c"] + args: {{- if .Values.anchoreGlobal.dbConfig.ssl }} - args: ["/bin/bash", "-c", "anchore-enterprise-manager db --db-use-ssl --db-connect postgresql://${ANCHORE_DB_USER}:${ANCHORE_FEEDS_DB_PASSWORD}@${ANCHORE_DB_HOST}/${ANCHORE_DB_NAME}?sslmode={{ .Values.anchoreGlobal.dbConfig.sslMode }}\\&sslrootcert=/home/anchore/certs/{{ .Values.anchoreGlobal.dbConfig.sslRootCertName }} upgrade --dontask"] + - | + anchore-enterprise-manager db --db-use-ssl --db-connect postgresql://${ANCHORE_DB_USER}:${ANCHORE_FEEDS_DB_PASSWORD}@${ANCHORE_DB_HOST}/${ANCHORE_DB_NAME}?sslmode={{ .Values.anchoreGlobal.dbConfig.sslMode }}\\&sslrootcert=/home/anchore/certs/{{ .Values.anchoreGlobal.dbConfig.sslRootCertName }} upgrade --dontask; {{- else }} - args: ["/bin/bash", "-c", "anchore-enterprise-manager db --db-connect postgresql://${ANCHORE_DB_USER}:${ANCHORE_FEEDS_DB_PASSWORD}@${ANCHORE_DB_HOST}/${ANCHORE_DB_NAME} upgrade --dontask"] + - | + anchore-enterprise-manager db --db-connect postgresql://${ANCHORE_DB_USER}:${ANCHORE_FEEDS_DB_PASSWORD}@${ANCHORE_DB_HOST}/${ANCHORE_DB_NAME} upgrade --dontask; + {{- end }} + {{- if .Values.cloudsql.enabled }} + sql_proxy_pid=$(pgrep cloud_sql_proxy) && kill -INT $sql_proxy_pid; + securityContext: + capabilities: + add: + - SYS_PTRACE {{- end }} envFrom: {{- if not .Values.inject_secrets_via_env }} + {{- if .Values.anchoreEnterpriseFeeds.existingSecret }} - secretRef: - name: {{ default (include "anchore-engine.enterprise-feeds.fullname" .) .Values.anchoreEnterpriseFeeds.existingSecret }} + name: {{ .Values.anchoreEnterpriseFeeds.existingSecret }} + {{- else }} + - secretRef: + name: {{ include "anchore-engine.enterprise-feeds.fullname" . }} - secretRef: - name: {{ default (print (include "anchore-engine.fullname" .) "-admin-pass") .Values.anchoreGlobal.existingSecret }} + name: {{ print (include "anchore-engine.fullname" .) "-admin-pass" }} + {{- end }} {{- end }} - configMapRef: name: {{ template "anchore-engine.enterprise-feeds.fullname" . }}-env @@ -65,12 +99,19 @@ spec: mountPath: /home/anchore/certs/ readOnly: true {{- end }} - {{- with .Values.anchoreGlobal.certStoreSecretName }} + {{- if or .Values.anchoreGlobal.certStoreSecretName .Values.cloudsql.useExistingServiceAcc }} volumes: + {{- with .Values.anchoreGlobal.certStoreSecretName }} - name: certs secret: secretName: {{ . }} {{- end }} + {{- if .Values.cloudsql.useExistingServiceAcc }} + - name: {{ .Values.cloudsql.serviceAccSecretName }} + secret: + secretName: {{ .Values.cloudsql.serviceAccSecretName }} + {{- end }} + {{- end }} {{- with .Values.anchoreEnterpriseFeedsUpgradeJob.nodeSelector }} nodeSelector: {{ toYaml . | nindent 8 }} diff --git a/chart/templates/enterprise_ui_deployment.yaml b/chart/templates/enterprise_ui_deployment.yaml index a0aba73..d46ab6d 100644 --- a/chart/templates/enterprise_ui_deployment.yaml +++ b/chart/templates/enterprise_ui_deployment.yaml @@ -98,10 +98,15 @@ spec: {{- end }} envFrom: {{- if not .Values.inject_secrets_via_env }} + {{- if .Values.anchoreEnterpriseUi.existingSecret }} - secretRef: - name: {{ default (include "anchore-engine.enterprise-ui.fullname" .) .Values.anchoreEnterpriseUi.existingSecret }} + name: {{ .Values.anchoreEnterpriseUi.existingSecret }} + {{- else }} - secretRef: - name: {{ default (print (include "anchore-engine.fullname" .) "-admin-pass") .Values.anchoreGlobal.existingSecret }} + name: {{ include "anchore-engine.enterprise-ui.fullname" . }} + - secretRef: + name: {{ print (include "anchore-engine.fullname" .) "-admin-pass" }} + {{- end }} {{- end }} ports: - containerPort: 3000 diff --git a/chart/templates/enterprise_ui_secret.yaml b/chart/templates/enterprise_ui_secret.yaml index 60075dc..90df31c 100644 --- a/chart/templates/enterprise_ui_secret.yaml +++ b/chart/templates/enterprise_ui_secret.yaml @@ -23,7 +23,7 @@ stringData: {{- if and (index .Values "anchore-ui-redis" "externalEndpoint") (not (index .Values "anchore-ui-redis" "enabled")) }} ANCHORE_REDIS_URI: '{{ index .Values "anchore-ui-redis" "externalEndpoint" }}' {{- else }} - ANCHORE_REDIS_URI: 'redis://:{{ index .Values "anchore-ui-redis" "password" }}@{{ template "redis.fullname" . }}-master:6379' + ANCHORE_REDIS_URI: 'redis://nouser:{{ index .Values "anchore-ui-redis" "password" }}@{{ template "redis.fullname" . }}-master:6379' {{- end }} {{- end }} {{- end }} diff --git a/chart/templates/enterprise_upgrade_job.yaml b/chart/templates/enterprise_upgrade_job.yaml index c47296e..446e9e7 100644 --- a/chart/templates/enterprise_upgrade_job.yaml +++ b/chart/templates/enterprise_upgrade_job.yaml @@ -34,21 +34,55 @@ spec: imagePullSecrets: - name: {{ .Values.anchoreEnterpriseGlobal.imagePullSecretName }} restartPolicy: Never + {{- if .Values.cloudsql.enabled }} + shareProcessNamespace: true + {{- end }} containers: + {{- if .Values.cloudsql.enabled }} + - name: cloudsql-proxy + image: {{ .Values.cloudsql.image.repository }}:{{ .Values.cloudsql.image.tag }} + imagePullPolicy: {{ .Values.cloudsql.image.pullPolicy }} + command: ["/cloud_sql_proxy"] + args: + - "-instances={{ .Values.cloudsql.instance }}=tcp:5432" + {{- if .Values.cloudsql.useExistingServiceAcc }} + - "-credential_file=/var/{{ .Values.cloudsql.serviceAccSecretName }}/{{ .Values.cloudsql.serviceAccJsonName }}" + volumeMounts: + - mountPath: /var/{{ .Values.cloudsql.serviceAccSecretName }} + name: {{ .Values.cloudsql.serviceAccSecretName }} + readOnly: true + {{- end }} + {{- end }} - name: "{{ .Release.Name }}-enterprise-upgrade" imagePullPolicy: {{ .Values.anchoreEnterpriseGlobal.imagePullPolicy }} image: {{ .Values.anchoreEnterpriseGlobal.image }} + command: ["/bin/bash", "-c"] + args: {{- if .Values.anchoreGlobal.dbConfig.ssl }} - args: ["/bin/bash", "-c", "anchore-enterprise-manager db --db-use-ssl --db-connect postgresql://${ANCHORE_DB_USER}:${ANCHORE_DB_PASSWORD}@${ANCHORE_DB_HOST}/${ANCHORE_DB_NAME}?sslmode={{ .Values.anchoreGlobal.dbConfig.sslMode }}\\&sslrootcert=/home/anchore/certs/{{ .Values.anchoreGlobal.dbConfig.sslRootCertName }} upgrade --dontask"] + - | + anchore-enterprise-manager db --db-use-ssl --db-connect postgresql://${ANCHORE_DB_USER}:${ANCHORE_DB_PASSWORD}@${ANCHORE_DB_HOST}/${ANCHORE_DB_NAME}?sslmode={{ .Values.anchoreGlobal.dbConfig.sslMode }}\\&sslrootcert=/home/anchore/certs/{{ .Values.anchoreGlobal.dbConfig.sslRootCertName }} upgrade --dontask; {{- else }} - args: ["/bin/bash", "-c", "anchore-enterprise-manager db --db-connect postgresql://${ANCHORE_DB_USER}:${ANCHORE_DB_PASSWORD}@${ANCHORE_DB_HOST}/${ANCHORE_DB_NAME} upgrade --dontask"] + - | + anchore-enterprise-manager db --db-connect postgresql://${ANCHORE_DB_USER}:${ANCHORE_DB_PASSWORD}@${ANCHORE_DB_HOST}/${ANCHORE_DB_NAME} upgrade --dontask; + {{- end }} + {{- if .Values.cloudsql.enabled }} + sql_proxy_pid=$(pgrep cloud_sql_proxy) && kill -INT $sql_proxy_pid; + securityContext: + capabilities: + add: + - SYS_PTRACE {{- end }} envFrom: {{- if not .Values.inject_secrets_via_env }} + {{- if .Values.anchoreGlobal.existingSecret }} - secretRef: - name: {{ default (include "anchore-engine.fullname" .) .Values.anchoreGlobal.existingSecret }} + name: {{ .Values.anchoreGlobal.existingSecret }} + {{- else }} + - secretRef: + name: {{ include "anchore-engine.fullname" . }} - secretRef: - name: {{ default (print (include "anchore-engine.fullname" .) "-admin-pass") .Values.anchoreGlobal.existingSecret }} + name: {{ print (include "anchore-engine.fullname" .) "-admin-pass" }} + {{- end }} {{- end }} - configMapRef: name: {{ template "anchore-engine.fullname" . }}-env @@ -62,12 +96,19 @@ spec: mountPath: /home/anchore/certs/ readOnly: true {{- end }} - {{- with .Values.anchoreGlobal.certStoreSecretName }} + {{- if or .Values.anchoreGlobal.certStoreSecretName .Values.cloudsql.useExistingServiceAcc }} volumes: + {{- with .Values.anchoreGlobal.certStoreSecretName }} - name: certs secret: secretName: {{ . }} {{- end }} + {{- if .Values.cloudsql.useExistingServiceAcc }} + - name: {{ .Values.cloudsql.serviceAccSecretName }} + secret: + secretName: {{ .Values.cloudsql.serviceAccSecretName }} + {{- end }} + {{- end }} {{- with .Values.anchoreEnterpriseEngineUpgradeJob.nodeSelector }} nodeSelector: {{ toYaml . | nindent 8 }} diff --git a/chart/templates/policy_engine_deployment.yaml b/chart/templates/policy_engine_deployment.yaml index 347c221..9816fc0 100644 --- a/chart/templates/policy_engine_deployment.yaml +++ b/chart/templates/policy_engine_deployment.yaml @@ -106,10 +106,15 @@ spec: {{- end }} envFrom: {{- if not .Values.inject_secrets_via_env }} + {{- if .Values.anchoreGlobal.existingSecret }} - secretRef: - name: {{ default (include "anchore-engine.fullname" .) .Values.anchoreGlobal.existingSecret }} + name: {{ .Values.anchoreGlobal.existingSecret }} + {{- else }} + - secretRef: + name: {{ include "anchore-engine.fullname" . }} - secretRef: - name: {{ default (print (include "anchore-engine.fullname" .) "-admin-pass") .Values.anchoreGlobal.existingSecret }} + name: {{ print (include "anchore-engine.fullname" .) "-admin-pass" }} + {{- end }} {{- end }} - configMapRef: name: {{ template "anchore-engine.fullname" . }}-env diff --git a/chart/templates/simplequeue_deployment.yaml b/chart/templates/simplequeue_deployment.yaml index 03c7efa..42b4bba 100644 --- a/chart/templates/simplequeue_deployment.yaml +++ b/chart/templates/simplequeue_deployment.yaml @@ -92,10 +92,15 @@ spec: {{- end }} envFrom: {{- if not .Values.inject_secrets_via_env }} + {{- if .Values.anchoreGlobal.existingSecret }} - secretRef: - name: {{ default (include "anchore-engine.fullname" .) .Values.anchoreGlobal.existingSecret }} + name: {{ .Values.anchoreGlobal.existingSecret }} + {{- else }} + - secretRef: + name: {{ include "anchore-engine.fullname" . }} - secretRef: - name: {{ default (print (include "anchore-engine.fullname" .) "-admin-pass") .Values.anchoreGlobal.existingSecret }} + name: {{ print (include "anchore-engine.fullname" .) "-admin-pass" }} + {{- end }} {{- end }} - configMapRef: name: {{ template "anchore-engine.fullname" . }}-env diff --git a/chart/templates/tests/test-scripts.yaml b/chart/templates/tests/test-scripts.yaml new file mode 100644 index 0000000..3a723db --- /dev/null +++ b/chart/templates/tests/test-scripts.yaml @@ -0,0 +1,3 @@ +{{- include "bb-test-lib.script-configmap.base" . }} +--- +{{- include "bb-test-lib.script-runner.base" . }} \ No newline at end of file diff --git a/chart/tests/scripts/test.sh b/chart/tests/scripts/test.sh new file mode 100644 index 0000000..1f867f5 --- /dev/null +++ b/chart/tests/scripts/test.sh @@ -0,0 +1,56 @@ +#!/bin/bash + +# Wait for Anchore Engine API to go live +while [ $(curl -sw '%{http_code}' -u "admin:${ANCHORE_CLI_PASS}" "${ANCHORE_CLI_URL}/swagger.json" -o /dev/null) -ne 200 ]; do + echo "Waiting for Anchore API..." + sleep 10; +done + +echo "Retrieving system health..." +status=$(anchore-cli --debug system status 2>&1) + +# IF status code is 200 AND all services are up +if [[ ${status} =~ "httpcode from response: 200" && ${status} =~ "analyzer:8084): up" && ${status} =~ "simplequeue:8083): up" && ${status} =~ "policy:8087): up" && ${status} =~ "api:8228): up" && ${status} =~ "catalog:8082): up" ]]; then + echo "200 OK - all services up!" +else + echo ${status} + sleep 10 + exit 1 +fi + +echo "Initiating image analysis..." +add=$(anchore-cli --debug image add docker.io/library/centos:latest 2>&1) + +# IF status code is 200 +if [[ ${add} =~ "httpcode from response: 200" ]]; then + echo "200 OK - image analysis initiated!" +else + echo ${add} + sleep 10 + exit 1 +fi + +echo "Waiting for image analysis to complete..." +wait=$(anchore-cli --debug image wait docker.io/library/centos:latest 2>&1) + +# IF status code is 200 +if [[ ${wait} =~ "httpcode from response: 200" ]]; then + echo "200 OK - image analysis completed!" +else + echo ${wait} + sleep 10 + exit 1 +fi + +# List analyzed images +echo "Listing analyzed images..." +list=$(anchore-cli --debug image list 2>&1) + +# IF status code is 200 +if [[ ${list} =~ "httpcode from response: 200" ]]; then + echo "200 OK - image analysis stored!" +else + echo ${list} + sleep 10 + exit 1 +fi \ No newline at end of file diff --git a/chart/values.yaml b/chart/values.yaml index 398851e..bd8eda6 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -114,7 +114,7 @@ cloudsql: image: # set repo and image tag of gce-proxy repository: gcr.io/cloudsql-docker/gce-proxy - tag: 1.12 + tag: 1.22.0 pullPolicy: IfNotPresent # Create an ingress resource for all external anchore engine services (API & Enterprise UI). @@ -953,7 +953,7 @@ anchoreEnterpriseNotifications: anchoreEnterpriseUi: # If enabled is set to false, set anchore-ui-redis.enabled to false to ensure that helm doesn't stand up a unneccessary redis instance. enabled: true - image: registry1.dso.mil/ironbank/anchore/enterpriseui/enterpriseui:3.0.1 + image: registry1.dso.mil/ironbank/anchore/enterpriseui/enterpriseui:3.0.2 imagePullPolicy: IfNotPresent imagePullSecretName: private-registry @@ -1067,7 +1067,7 @@ anchore-ui-redis: # enabled: false # If 'enabled: false', specify an external redis endpoint - - # eg redis://:@hostname:6379 + # eg redis://nouser:@hostname:6379 externalEndpoint: Null # Pod configuration for the helm post-install-hook enterprise engine upgrade Job diff --git a/tests/cypress.json b/tests/cypress.json deleted file mode 100644 index d6a9f11..0000000 --- a/tests/cypress.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "pluginsFile": false, - "supportFile": false, - "fixturesFolder": false, - "env": { - "anchore_url": "anchore-api.bigbang.dev/v1/swagger.json" - } -} diff --git a/tests/cypress/integration/anchore-api-health.spec.js b/tests/cypress/integration/anchore-api-health.spec.js deleted file mode 100644 index 870ef72..0000000 --- a/tests/cypress/integration/anchore-api-health.spec.js +++ /dev/null @@ -1,21 +0,0 @@ -describe('Basic Anchore API', function() { - beforeEach(() => { - cy.request(Cypress.env('anchore_url')).as('anchore-api'); - }); - it('Validate the header', () => { - cy.get('@anchore-api') - .its('headers') - .its('content-type') - .should('include', 'application/json'); - }); - it('Validate the status code', () => { - cy.get('@anchore-api') - .its('status') - .should('equal', 200); - }); - it('Validate API object', () => { - cy.get('@anchore-api') - .its('body') - .should('include', { basePath: '/v1' }); - }); -}) diff --git a/tests/test-values.yml b/tests/test-values.yml index c6c38ee..33f2d27 100644 --- a/tests/test-values.yml +++ b/tests/test-values.yml @@ -1,22 +1,30 @@ istio: enabled: true +bbtests: + scripts: + image: registry1.dso.mil/ironbank/anchore/cli/cli:0.9.1 + envs: + ANCHORE_CLI_URL: "http://{{ template \"anchore-engine.api.fullname\" . }}:{{ .Values.anchoreApi.service.port }}/v1" + ANCHORE_CLI_USER: admin + secretEnvs: + - name: ANCHORE_CLI_PASS + valueFrom: + secretKeyRef: + name: "{{ template \"anchore-engine.fullname\" . }}-admin-pass" + key: ANCHORE_ADMIN_PASSWORD + postgresql: - imagePullSecrets: private-registry-mil enabled: true -anchoreGlobal: - imagePullSecretName: private-registry-mil +# anchoreGlobal: anchoreAnalyzer: replicaCount: 1 -anchoreEnterpriseGlobal: - imagePullSecretName: private-registry-mil +# anchoreEnterpriseGlobal: + +# anchore-feeds-db: -anchore-feeds-db: - imagePullSecrets: private-registry-mil -anchore-ui-redis: - global: - imagePullSecrets: - - private-registry-mil +# anchore-ui-redis: +# global: \ No newline at end of file -- GitLab