From ec21eedd566fb596fb0fd07efd6bed61414c708a Mon Sep 17 00:00:00 2001 From: Daniel Holbach Date: Tue, 27 Apr 2021 17:26:38 +0200 Subject: [PATCH] remove content which has moved to f/website Signed-off-by: Daniel Holbach --- docs/_files/cluster-dashboard.png | Bin 237067 -> 0 bytes docs/_files/commit-status-flow.png | Bin 39347 -> 0 bytes docs/_files/commit-status-github-failure.png | Bin 18152 -> 0 bytes docs/_files/commit-status-github-overview.png | Bin 16958 -> 0 bytes docs/_files/commit-status-github-success.png | Bin 19124 -> 0 bytes docs/_files/commit-status-gitlab-failure.png | Bin 17343 -> 0 bytes docs/_files/commit-status-gitlab-success.png | Bin 17936 -> 0 bytes docs/_files/cp-dashboard-p1.png | Bin 147097 -> 0 bytes docs/_files/cp-dashboard-p2.png | Bin 148959 -> 0 bytes docs/_files/flux-icon.svg | 22 - docs/_files/flux-icon@2x.png | Bin 6764 -> 0 bytes docs/_files/helm-controller-alerts.png | Bin 23624 -> 0 bytes docs/_files/helm-controller.png | Bin 55686 -> 0 bytes docs/_files/image-update-automation.png | Bin 26039 -> 0 bytes docs/_files/kustomize-controller.png | Bin 54403 -> 0 bytes docs/_files/notification-controller.png | Bin 44094 -> 0 bytes docs/_files/slack-error-alert.png | Bin 34485 -> 0 bytes docs/_files/slack-info-alert.png | Bin 68549 -> 0 bytes docs/_files/source-controller.png | Bin 45175 -> 0 bytes docs/_files/toolkit-icon.png | Bin 57217 -> 0 bytes docs/_static/custom.css | 122 -- docs/components/helm/controller.md | 28 - docs/components/image/controller.md | 18 - docs/components/index.md | 30 - docs/components/kustomize/controller.md | 23 - docs/components/notification/controller.md | 17 - docs/components/source/controller.md | 24 - docs/contributing/index.md | 1 - docs/core-concepts/index.md | 52 - docs/dev-guides/debugging.md | 42 - docs/dev-guides/source-watcher.md | 230 --- docs/faq/index.md | 273 ---- docs/get-started/index.md | 299 ---- docs/guides/faq-migration.md | 92 -- docs/guides/flux-v1-automation-migration.md | 751 ---------- docs/guides/flux-v1-migration.md | 330 ----- docs/guides/helm-operator-migration.md | 861 ----------- docs/guides/helmreleases.md | 493 ------- docs/guides/image-update.md | 949 ------------ docs/guides/installation.md | 570 -------- docs/guides/monitoring.md | 112 -- docs/guides/mozilla-sops.md | 393 ----- docs/guides/notifications.md | 295 ---- docs/guides/sealed-secrets.md | 179 --- docs/guides/sortable-image-tags.md | 192 --- docs/guides/webhook-receivers.md | 138 -- docs/migration/timetable.md | 38 - docs/proposals/go-git-providers.md | 510 ------- docs/roadmap/index.md | 148 -- docs/use-cases/azure.md | 233 --- .../gh-actions-manifest-generation.md | 1279 ----------------- docs/use-cases/helm.md | 208 --- mkdocs.yml | 216 --- mkdocs/main.html | 32 - 54 files changed, 9200 deletions(-) delete mode 100644 docs/_files/cluster-dashboard.png delete mode 100644 docs/_files/commit-status-flow.png delete mode 100644 docs/_files/commit-status-github-failure.png delete mode 100644 docs/_files/commit-status-github-overview.png delete mode 100644 docs/_files/commit-status-github-success.png delete mode 100644 docs/_files/commit-status-gitlab-failure.png delete mode 100644 docs/_files/commit-status-gitlab-success.png delete mode 100644 docs/_files/cp-dashboard-p1.png delete mode 100644 docs/_files/cp-dashboard-p2.png delete mode 100644 docs/_files/flux-icon.svg delete mode 100644 docs/_files/flux-icon@2x.png delete mode 100644 docs/_files/helm-controller-alerts.png delete mode 100644 docs/_files/helm-controller.png delete mode 100644 docs/_files/image-update-automation.png delete mode 100644 docs/_files/kustomize-controller.png delete mode 100644 docs/_files/notification-controller.png delete mode 100644 docs/_files/slack-error-alert.png delete mode 100644 docs/_files/slack-info-alert.png delete mode 100644 docs/_files/source-controller.png delete mode 100644 docs/_files/toolkit-icon.png delete mode 100644 docs/_static/custom.css delete mode 100644 docs/components/helm/controller.md delete mode 100644 docs/components/image/controller.md delete mode 100644 docs/components/index.md delete mode 100644 docs/components/kustomize/controller.md delete mode 100644 docs/components/notification/controller.md delete mode 100644 docs/components/source/controller.md delete mode 120000 docs/contributing/index.md delete mode 100644 docs/core-concepts/index.md delete mode 100644 docs/dev-guides/debugging.md delete mode 100644 docs/dev-guides/source-watcher.md delete mode 100644 docs/faq/index.md delete mode 100644 docs/get-started/index.md delete mode 100644 docs/guides/faq-migration.md delete mode 100644 docs/guides/flux-v1-automation-migration.md delete mode 100644 docs/guides/flux-v1-migration.md delete mode 100644 docs/guides/helm-operator-migration.md delete mode 100644 docs/guides/helmreleases.md delete mode 100644 docs/guides/image-update.md delete mode 100644 docs/guides/installation.md delete mode 100644 docs/guides/monitoring.md delete mode 100644 docs/guides/mozilla-sops.md delete mode 100644 docs/guides/notifications.md delete mode 100644 docs/guides/sealed-secrets.md delete mode 100644 docs/guides/sortable-image-tags.md delete mode 100644 docs/guides/webhook-receivers.md delete mode 100644 docs/migration/timetable.md delete mode 100644 docs/proposals/go-git-providers.md delete mode 100644 docs/roadmap/index.md delete mode 100644 docs/use-cases/azure.md delete mode 100644 docs/use-cases/gh-actions-manifest-generation.md delete mode 100644 docs/use-cases/helm.md delete mode 100644 mkdocs.yml delete mode 100644 mkdocs/main.html diff --git a/docs/_files/cluster-dashboard.png b/docs/_files/cluster-dashboard.png deleted file mode 100644 index c7c4ba0e80f2e884b02d92b500fed95dd05f40c6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 237067 zcmY&_EN@Y6D&*Avv%7ww3q3tEKAj_5hOTHSc$#0N7N43F zTcYLW`P#Qkf7My8qI1-?Wdx?K?UiA<@X6lL%o>NuSSkx2mzKPQ1eFq>s>ThLdzm}%aV%GFAvs2jD1%nd-7Oi#O(n#yFUaGuB-|z^3RTF zlJ>Gky0C&ag|@XVE9M>}BmJ!LVGa)ieU`@QLrbR1Eku6AU%h1fEg?qvk1jg*`bOBO z9d41z&Sz}m*@%jii5;NgVH3o8GHi>-eTSVJB*i zo>aS2t%X$1Ab)T%AG<)S)|xG2dmX7b(lMxCbLig4U+2bZ`D+GdMfIFxC*9<&8^Gpp zOvzD)Zs}&V2PVK7d!Qnlx9fc3Uoh$t#b#h($GlKh%SZaWz{^=d0cfuD%3pJvk<14t z2$bs_iYwHtqY#ZhF?ixTO1%Dh6fy(OG@~ce5ag!EvH3u;LX_r{m%UrP1hZJFcvD%4be>eT&sV7Psl{dVsWPh;k;z_MRgwhx z$Y(COmmO}$-I15)ie{t_NwHD64K3Rh`?7j4aIN(tVmbzoI=zLRzSzciMH29dN_l?Z zbDr*t)7Q&l5BRA;%xD{TXT7(Yv6qxSn;E4mc?U3i^k_x%k6bu zNagKzQJApztq1ah;k#2DRVK5E(^0IZ-84J*jTMh7rVRvRRjDNP0}Wh>{z>|quS;`V zhjk5oDlTA65C69DkmusYuNQ+k;g<8QCB|6-` z(b3bS(YQfA&@kWtR zXVbXQSCTGKMl+elpRtpzG^VvVKMLFglmfXU`*ZILv}&q&>w?a$;PuQa`YruE*IJVi z0-5K%R6&1unk$BKP{n5CAmXa9wAL)9pv|swJnWyX z3FsNL*Lr59t$yh^b6M*JcKAoVZE}^(?pZ|1&8w=%XIfg-*A7J)rlMkh36Aw z>OHGx;N<24!f;@ms6Do!O)WFdtG3~`86>vQE^C25-a;4b+B);w_?Fv3*H$yF$+FO7 z-?wg#b$f&-?%PnX)xvBgG_OqB<0&YMKOHa^OFi_!OIF-_sJo6WeTA>@^qUJe;a~(A`Ds9T)gFwr}6!cWr|R&z}_&x)-PM3;${5hf%Cf z)|QfCw)M{JO6UN4$lIjU0h7TC1hbghs2Z6{Cm{VDoFx*dsnt{HRU%~%q;eYC}&=u@)ZGH@po=$FsGF{( z9X%87BH%BEH6s;R6xS2k(Os;n+ZW&^Iqo1jGdUJ&)Aej6%Qhda3^J(6<#jXFu8>?g z)3z?JeCI613f8Aq&?hkxI(ARg7RYP=j8af|Z@i8>KZd+9N5Q0`ucCEFcntX_irMy@ znnKZ6@^k5{2}V3IVyV(k-3(ae=%L?(k->U$t0DlmoC3SL-HzIs z>sU*fw#wdKe4;sZWj#PCJ~&uJHzHtf6lu3$ka?@|BRc_81aNqtpwW;L)=B5ph9I`*0MwsT=4B+zyH)_Ymkzim!(D zxNy*{CZ7Eft&+{S`?;^Jwpp4j^UEWrQl|H*8Uw~fVNQ*ky6r4-aCH;=$98^HXJECC zx2;~KW0L4ablKCMbWEnn?U|_z#37qF&7(Q>i7P{mBU9t8w4D!LY3=Lx;mfzKC61Ju zxi1Yi8yXb5QmtNb%=kt{j?f!=$xG2^b+uN}lv`Rhj8?shI?{SQV5x%oVc@o@ z^Q6ng3aFr+!4`E(pHTB5wb%aP_i~f*nEETX8{@n~8|kyA$X}GDHdV}BaH5xbspd(& zs25+6uQ%cfx3;P;VU2?lVz>@#Q-^vnP_Z${{JO*gu~PFFdF@YELdRa@ zkAE}SA0DZIPRiCvgK^0^ZUE-i<7|;D!F#6=H)%0oE5ru*#=`oMfTP+{1!wObH#Y#Kc zkR9lPo4{1pNP_6=5R0_u52r(Y8203M$)m=*VqacuT^;LTLA;@fKf0Wf!s}6YXy#L;C2TXbzPf%r`{}pPw$yoQrj21OA>D7P&p)DUM^cLe-d)qT z_$n6vo2jhIF@*24YW2ZFD}AV66>;hP%|D7XA4PWL?;nm^dZf`0osY%89DpJpauzq9 zbB-ZYxEdcxJYW5Ypv#O?1xFL#XgLGTcUesAVihMDlOuJFpF|f6vYsna%V9Q*__?lF zEy9jD8&`*3OL!_OBv=J)WqHnpT%h9tW>j1rZ>fHjzjC7@E189nTU%1M>nWFSXatAd zkNd0?`*M{~JMB(KVbSFwQ;9{7H#J%xp<^b->pg4_l<#o1ni$6PH=t8xJr=%23Seic z!~3vVD1N@cJNUWpoF@q!AE3tG*cqlby_p<9c@+H{8Oz@6Sv4A!85pC!xj-ybS1-OQ z+xWce>l@F@ZA0TNk5j;dEkkO(KO!?RPlwU-$-!#Aflo>l6v}_3DshmxE01{T!B-bc zA)sR6(9#GjfU;_Y^(cSDbk;RwL2k*IblICkVWl{s(S~;5)01ZBC?UQiGDB~wkIF~> zE3ny;J{w0JRh_z0^*;HNA3J)6)b({v2^E+a#U4~4J?6v20U{m>wLmTXVvVL&>QPfJ>ELA-?43_ zS-9xl^p()xW-8b8LVVXtB$_PX6aYffK!1x9D)!%$?qyiss3TuiUjw6D zn4iDuU`X+gQlcF?+5fv~<=4EZ0#_cx(hhC6EukjI@!S@6CgJOLS;NaR3CHBmBGd&) zT*CDx3(=jx1=utbGrka_{HW(-Mzuka^Y@`I9FDW~?Jx@;-#!C=Cz+6SrgU9xr-2Vq z0eW_{XDCjtRelS9^Wu2!-(C|q*zr(9i|%imh$H*YOXc`%Pw#V&r{{RS zh103m1cgWWg}I6|oM!wJSx7f>!%U=7~nParGy~RN=R#WJi+2-}~iU|2Bkp?)*u- zhB{n=kbeuE8YcSfFu|Hz^VJ+WGylXE`b2U9tp*#?a7aApfllOm?UnhlqWw!R>z(gd zcQEA{H;vm8gYbG=qfe4{Mdi&kJSO_+?{!v$qiikdFZ zx6KH~6rIvEIDJ)NTm$_&`EnAY_m^LqE77?5m+0$kUvg7=)wV{6R)uq8Rn6NbU1gPxwSNKnW3BI zH^I3JdV&={TC_yZ{e5i|)qkNe=8dAsrWtl={ly$s6>a&F{1ddG08p7c&+F61ek-;+ z0sMe3jC`XVy=hhv{RAMP``TiE*ESm(28xWob<5yWL+_mJN3#07M0c+Vw#l&k9*Mq^ zJAA}_P$t@w#d|_)@0?mHNPC6;3v2SYs2J8!7Tv-$wb_phL@2&MzizQqKu28H#~wD( z7}rX6#r9ogkgQt5eIsB-uW0g2<$C~ANv<#JtFsiT(a@UJ(1)MMAUw*&xDVP6OrM}F zVaocc(3h_t@S>|`*K}oGw2Cxecuu40#t|D?Ee)S;=Ucjswwz~?!KXV=TP7;CKU01+ zFFb8{1NUR+gOG@!QD%-Dkggl=XY9aq^0hP@EiCq-NQgWhlM)@A29>kb`3f=TBiR$Xd=j%5+l^rMiq+P*;gN+OkyU_YR3&v4b9q^x5NcEY8?J}`U4@+rgIPe1K_fU|juLsB{Zt8vutKE{3qLCAKA9e5H7|Gmpd3s*&V#}hEM@5YOA#M{LC zmp^$sNsn8YFO>QmdeD7xvZ9rU_i}w6yMO>5mDRaXO6}ItQe8`#aDvy%cc09f;Akrs zx^$;o%>VI)$S9hHoK0>~xcI>hYB>2^LlDSwEw-DKrSμZ%zsz_=8;Xy01jvmQOJ zI-6!y(Wfdp-lRqcCr)!P=osGSbDwB=BeQ zxbUu4z$IQrgl_VMfE5I=KbiQ;XXE_kEYZic*A#i7GYiU)Pf|c}%qHd@GY*s1=zpU@!Fud7G}QF{#bNkD*FaRjg-1-K%p^oTsfHIq z13=^#aPC7hKD^(SSRG|^E&b^&aTAEQ;OI8Tm|CJjx%2pdy3qN6yew$ar~Fyl1?(`E zPc_SGap&fZfj4XW_4G~CHiEutN*`$gV#4xxB3_mBLl#0M1vC7j;R0LWlfefc>%h-F zeELXw+P$iNz5r$opq&OERMTA}aO3nHX8Ec6Xf@y&U{=+avx+6$&}O?fVfqPL1m_Oy zxO|CF=@SdSABJl-T5gH(c{cXf^sB%7ECP%DC}U>b%ZoRYV&E>cQ9l{~~fR8`1e$O=c(3H0Mo*t1` zN3XFi94+)B{XobG!BdPZl~ZVk)pFytz#S_r3nG?Jo(CNewl3i`3U~eZ-~mIKqr;{^ zU(1e{pks`eYj9(LZux4cQen$|b;%BQVBnSPdJ)xgFh=&-+0QL0u5POQLvl*1RQjDi zOjFX@F}mEzEpPk`64Rl^dRdF;AryQX4{=Qbn}0Y+eSsFuRei2kxBt-2UoSd7gB~YP z%AeN&k^8=^ee_R&EnBo7J#3y@s}c9EAF}}Sq7L4zc(I1ub1LQ)(A_i}Bk19BlxOLx zyi66#qGyHPmpKOY(=o4NzV8YigMLna0XBI`96zC`hH3*k)MZ?o62!< zPkH*_!ss{NJlL2%X0xLJ&dw!qu({xVC05VaW7ahRq;knjC15x+yiTjU`~=lq(I*1+ z9;c@_pp`>8?;Go`Bp86mbO{rbC0C=AQQr=|9XV`qN7VK$OuA_^;N7SvotC@?;5__U z+E8bZ?3>Cm&X5-_v(XmLehW@cmk!ws2x>C96UeG3@nQnnw{=c#hmzEtS>F_c5Q*nN zO)?l{*12tWvFFq(7FPPK_t}FXU7Xf%NI;HuxbOZ`k#j~A2?Ys((@ZrVx?&z$4y!0T znc6nG&KrY}m3|1_>?@4>7wLIv!yp7kQN8`K-1);(n;2pAiNRY_)Si|o?ys-q4MUPQ zz{Kh*XZ^g$-k+v$RF-a@9rqe?icjVG(Wf!`YVSw1P4dr-@bBSqM5*{d4zlk?gdezlIc*r6vwmS6OSl_jeD0R48sq>Fbf;=;r>Xn8aYWOlYU5$u;EFtnZ*u z)9@6u=rc!Q^!YFHA8|BlPu-Pd*gl3;TR6&Fe!cmH_SA)p(A0A%+V&XUl($`>O_Qnq zKg`-ZAZU;KRBh%BRbyq(pIo_>H!>^6yZ2g(Fcvdu3D-wgN(0Xv69mQ!Oe>Xum$zRC zCgvlez-={#rO%dU-?$a~CS=xm$SypoA5Jx8JbgX0`Tcy(@_W6|e*ICCTj=WuY>{ks zz~YI8pE>PDTym;_Ru(Fa@LkCFJ@kb8yNcBk8NlY`OXqeQhbxGiLfm(kA~-Wzw)@@h zWYo#091l(6%p2g(z@QCvi=EHxKcct$Hsxz3(A^WGOyn8kztCqhc0}ebSryp$A`g7HF6yD;sSpZl?DVINSmK zu&ZaTdKoUXX!f585Dq*TV;zcjoNxG;dpAlE)16`6k-K0Q;@i&+u_o;O)j zXolf-b_gDNCl7$<0~4cA%CA_Z+Y^T>gZIW;xeB^DkJl#JKs1!;Y6f~ez6!>D6{B@+ z7(SdIs`N0=OWr5y;fvG`!0=A_%$iDL;9f-A9TS#17mo{W8u}Y&4az5u%pE2=et+Tb zqdVtQ+&qF8#(WDpjdBzIY&{3HPn6_?cNi{h@Drt@|@ccrst`05%!%W-K#2h7qx?UTgF;geV~Tsy3zL zXLnpcWbOz7XQQj)6x69-CKZzi`m60{KNmg)s4T@)nqT9)(|lt`D~4*ZQt+Pq?N8bB zp~d3`hY9Sp-T3>gjNNPMa=3vC%8STRimzvLD(R@G4G1%g=V$otBXz!pNZC^t=O)Vh zn-DJW;xVSXc_2AUNrb6lif^s++~!^9+-JHfgCkCr-a%L1RG4uO82hk4LTPI&$k{)T z_a6f#PaB+A>mAGDY+!^>CqAuvbW^NnBz5hZ|NGG`s>r8ar36eI;J6A)0XHS+CGCIq zC%rDzz*y{C>ruV9El(cN4AS9!TFQeZsGW8sFr3bd>qUD^Vl zRJ}ufF?ZWup2wEgdCy#8HU5I4T-gaVXRHBmW4ZCA^VGVJ#^T3VJI~hUX4df8>aS1w zT7QdmxcbnwzAX8;oES=8QsSVM)b;mkdtnBFkY7!3xyj2cRf~f~C!gB+JX&8wL**P3C|K7ad}6lWu3XzsK_eDn zqai=Y&Pm36c+a})|KaPm$V@?+i$_PR{ZP;AAI=vFNSfrP3sBJ`>?OFyZC1S^Wz;?z zif6pK?2~nxCM~?t@>?<@=W~-8ljy=;R14(-;zE?U{sCi!_b0eF9@&f$8-KZc;8cXj z&l^mVB^e4W%1j@?>~p z1vHJ`cmWK5?|R|aD?C3vPFA++Bb*{B*+MCUs$8oJ)b-xu-^YOE;i%%xj^y%H)_`SB zeJ6a*QZcZMnPePuneNUe6yT+}$+k-l1R9Ymm%c1P)^G>Y-TD(BO~X9}4}S1>N}^fU zaD@WAd*D`r6VHwX;$05HDLzqHZ(t+e!#6GOOX#5tAF1IWC|Mm-CdlI;t^sHO zR~ONYyo;G|a+>2YJLqZTUvX$VNXANLL8*t5~~27oe)e5`u@2 z`Ic*t)MP=4LRFNbY>4NyIzlQb}16dRK*FAn! z*}^iftGKrjYtDhv9zC^j+}M`mi0+E}euJdex{_FX(RTp7yNzpLqy&V%4sLATYinhipYx2GvNCt$P80`0d9;r6n@mlH?rP;~ftr~H>|I4S;xq{H0 zUv+R~?Nh>0i`>*i&2wb*HzLsk#N$Xdor9T@8c+5K;ufBo6=%lRmVz8kGBW9p#N8g_ zQ^e!DZ}_O*$TEU_195xvhRbvGMdDequlqFC!ZD$qc&ULI*ln?VUZ++|{PMY9Svk86 zI)JAjeir@$@k>4NN5EYy^dxaJj5fpDQ3sv#3tS^=yAcL8tPsIkSP+fCx%a}96=g~G zSS`;8`Vmq0ox`J{dwq?>y+!Hv;TB7m9gGE01)Ejxa|swRz9jxhM~4J^;t6TPHDGrk zw1&iPX1fZz0#unw+#((rvppj^=WUhXOQexy0v;h8bVd;D#B3p3!yspVY7(=L5 z#>g@QRUp!9m}l`U(M{s~Dvu{#4I1u380QdG(0ZWe5kNw>c2n8oGTn$%AB`d!O`d@*3EhuTdj+c_d%kVG0kh^}Kh}b(Q5s!npY0ooF z&gD<%`QI;ar&6`tZOhs#_Hc{3)t{ckLi97r)lo;UhS4B7#(&zbG^`$P`J6)A20HYx zhLlZI^Xcz|vEkRhEQUhoRcp?g7EO2)dkt9-59se&Qs*tM%jQ28LcNyGLq7`BjOm~u z-r@$C`3BR4hB&SO@F}7vvZj5A;_y6p6wB3IkolOqLSuF9?b1)gYcYvOV)!g?%O*GkwGN zBe4~p?0=XHQD@U!fL#P0oFld`-|eYT@E9BSa|7s$M9v8Xr2(|s@ke4Yq!HT~(M)j# zl*b{6EV;cvaN-F$PM74tf)%V;pC_FU>TIBl&)$b$N19UT8IS8kbn7+}Gyvh)UD)Ot zN81L0ot(O_~ZgmNk7w2P+(Wli#DR9tdNGPmgQ@Fty z;?u?SlpwL`dN<(~O3dzU(&Zwe`sQ($%oY}~ZRGtB;yOV#)w2Z(4yJ!a9(?t5f`VU0 zM#|l)ZHLW*O)8)eDPyD=kaB>#HJI;l57bad-`!0kWp!O|-HNJL-W-YSGvb#_k5XRzdpgx|2n4~LmT;U%IG7( z2km!6%})VmgP9H_*m2E&@K->o9~SA2*zTpD=gAgs@UOYv>xJsPd)|d+&cIU2oiGvZ znd!Bmhnn|;K^*gz(L?whGbr_ktE4Qno1Q6IrIhh;6=g@3s%zpuxD02v?A|Q;9lm$S zRBF@j0!U&K`$o#Yr;l6q-b5azQ2`z{t1ut!;dGU|ZNx_R(&^6FPf|;AVC2jYnlu|T z3qY==x3FLjOco4#m5}BEH|a3$8=|(DAsVMMKki9Pq;)D}hlhV*fsW_gJ=yvDFeTg- z2$Spf%tGA`S=yZ`;TRfy3auiQPrRk$FkDz{dBj~HlupFDPiYO8(&8OgJWysI;NC0Y zDTL72WK)>Khk@20w34a)TBe+|!+=s5w2N#DDO>8$&bxMbTkA`cjVs$jB%MoWCD zd+});OH$ zGw=w&4yKH(f_e>P=DPt~#qU}*T_jMcEYmQCXQ~q8h~5kQVsZ(Fg5Q@%;CENhmU#+D ze+RmbA6`ISr+*o#`iSDIMYV$L9|qlI9!Tnz2#6 zk|Tja`8W3t{0Qhw5Q~gF*L=!i67CA<~*-iE~~@$$OL0*T?(nE9S4$!s>gsc8n1~2kw-HoCDELoG^lv zZDsCJWqzr}F0R!GC(A2ldeNS17c-h>3|PjokK2AMQMZ)RAhueQ#*p>m4L9Y~z7PQ; zCBpBvX!_z)k%(z*%DMB9!q*7Qxu#*ls2RFx% zH<6*rz36UI1DPXgDiUm6IVM%Yv{=UP{o(gOovpWdU5bWo5!Fift(hexrvFiM5we1a z`r2Z%5$aAdN!q!i3fj_D8_WsL@S#Ltq#n{dg)JeNErB!FO;(Y1MO>iG!lp|KXRhBg z(V)*EP<28&FrN4&)pOk4>72=QalXM%vvYqIwNXTI2j=@pnBAFK!H!6VuU9>uzG11r1dYI2L=4$FBw^;D`MP@}};2BHYpqYaG0L zE1~a56JuQTa=)cE^g-^<=|8hu34vq&F=-%@wMb(ABIWiiBDR^iByD}pq{K0x10E$@fYuc5 zkW3Q=H|Ncmk_HsW3)uAT-nv50O{qb(e-Oe*08M@o&}*}AtYfMYYq&odNjKI(G}?)t zNK~)F&X{hU@QjGQ&XX%nV)(}3?nh#2uZCLQ_WJ%xd#98xi^$;{^4jfN+z^Pw6VJcT zcq@_(daM7&)1Ugw6BrV|Ox)%}pZ)&ge4e%r-1GS{ORWL_F9blG(hPVCHhn`*Tp{mn zMBbwc&|d_7zn&&(3wi*4F&#l`n^!?!%@gl)QyPUqO%W~$=zrfohZFPnFZK4VHO!3Q zUs1I;!S`cGTp4sR)hq2oUC*(@vJ6C23{=J-e~BELklIy+1WFzWlHby(wR9r*@2_^D zPbkuSV^HO%bwM#!Lzg>v~Q;j4jXlS%|nsukZYnP8A!TfRq(TDN@{B zXC^4@K1fAe-XRF?FYg*^t3}kSftKNG;e^DJ*?z3RcOR~0>zAm)O_U1C(p&dK=vw-2 zy?d`*M26JzQgZ?$*!dxNkh{)!0qb0Iey=rY) zk)~HWecUZOt~?0ZuZ>cOWtj>(v|Yn^0X0&o4_KP$vi4$f>WBEc?D)7FCx2Jbl|3aY z-49I=-CTGpQ=@IX>mJ3-s?F=V;V3Fz=|gux&gqi&J194<(7pHO)YlJ(IV&)ypW|Ml zX7m8YycjJ2n#f#d!A;KL%!fu_9wqQ8m)ksmXz)uh00Ggz+?Q!r+gu4q& zHyH<9=_W#Ikc93@LX5jcn7CC8Xv?GQS$DyyYc+ayt}&h%z=*q&F+kG2sA_P z*JQZogS_mi)VxlwbsLcvR{)Ln1L9Lg-u}`dWG#IaWbRODTM_+K{iuCaH!z{|nSs}$ zSp|w$Ovh8BUFF40^jmY0hCrG79MqCpU3IjN{;?MTyENX z0`0dE{61ewe4#@Q9hN38crM~bA;B>D^O>{P^{&qz9o6T57yd~(EGBlqQe|8+TxkjU zG%p(GSD5;wXU{Eq9hYZi2;^ON?{>Rm1_#*zS&xbL(v>F+Z&odm|t zh?AMsgH>05=8rUsY?8atik(Oty}_;f%l72O1D%?_kWhYIN4NPk!}9NFs26#Boeab6 zo6tB|*{Qia8(XEzxMFd>Kv4w*rQ$|9lK@6b?fiwkF6K|UsXMeCVU(k~ZM?E(GMk)j z5EcaS_(gl=cX9sL6XF^kP8TsPDo(y5_fN<0ecCoP^18P8>hdNG{220Xx$Y%p#Kpy$ z22q9p)`ndWUb@RV*36^wTA6p^?p27}QN%0ulZ(|?1SEi1Xar}cG_IiUq#=b#1t&-0 z!>WGNhlq>&S^J;b$eL@Eb;{m7^bd4&Bu>WhixHn%yzQf)XZ@a^E4kzRsQ5|{RPaXB z#R_tcdhnT3=O)JRp1rz=xz+nrecNEZ^CVzqCE)Q{=Sr9Vso?UGVPOeWZ`@a0>Y; zQl%v~o*OssQH;{Q+OSMPV~S~OnQ^NA)Ho3s*pyEx>v&^^&De^dmQ|d&{!mRk?*D6t#(g7bKgD*jf z4&PS3j&Q#@RobIc&F1nsRfW5==y-ktncc5(MU?TZ6gS}BQxZYIy-ro?N(rs&^qm)f zm79~RFny1?;`^7Nu)4Q=p|MpKkxe81HGcE0F4t)uASIl+(hNt8GjUJns#_IIQ?~9Q zt^MjSaSRyiu_rDqukZ~4p^U~k?`L7J`=c%PrIMSG81$%!bvcV*foUbnnX6 zy;9#njG?&wc>aSTsqk}rlylbf^A0Y^Mn#$NU-F*oLJMScS!y#UOqHhxZH$874bopr zWN`3fL0lTsAzWecRi%nivFVB9$DA|1sgvAw(oCcEhzKQ1A6LvX=771*k5F2KUlZ6j zYAJv7$8Y|R&=-7w-HoIIzuZ=2gIm>aGNH1*E!C|GE&Kb4eg{GOho$>RKartX2W?;B zO~8eaCZU^lZxM@O4r8RIcBloGB$=@&QQvElS_5yh8OZY80`3>if+=a+E)g@g%ac$s zBNW|2#x(4)OWhwU&t8+8d`KS!^{GZ#iZ!~Hic%l2-Z8|*h1W5~okIvYCEUMI|GGNv zBfBvFCEBiEet{Qalk#h@%Ag76YxXmXaIOdh9#VTwtLkHgsnb-6mCn>R1KWZDY8tis zS`vlYqC zdEj@6CWdvRoUU8iITkqW2PZ-JbexfcQLZ{1Ed5Mo8R)B5(mX<%#4$42ryD){t#to#r)>}_ML zgj7=da#V+?2jjwyoqZ18p1#LY@$R=4(s%r)xUJK5ib|*W;l6dsC?CmlaaB_%Y=^#{ zGzfo^D)q)HxbiJS2~38wL|AJv?1#NDZ%;OyO+lmIiU9Ju!c z^?rR?`KnIU(u2Oguzrba^&xo9*?c-oMOo_iW}*}joqXf>mihNSX7{$;=G7j)QmGN1 z-ad8@^WfT+A`-PTH54TeLWEBxgx8%Tg82xvR}f;V;7_Exe*srrHJmMD(xYl?-Zl>o0~a*%rOp4aP!;DY8w*}tRQuBl6@fDI?H+MsR zyg8P0FOxju*E+|$UV9T#OWrZ|aC-V)Wfn`&04st~!39jGPlrD7wsk!1v>3QJ3+r=H z^w{vP{D{03Nw2e0Jqx=#A9J05n9z1z;z>#a-)uBA{e18F^umSpaL~=ReLF8Gd1E%UkJIzC7kEj<5CO9Mh;77J?h`r+fQ&rMNX{d$aK_Q51$G3duz|rC^2Is=9~csR>+@3 zwF=D2)NN3uCX~e-Smh$>UL7{9nCFo2iEl<0QC;o89wehG;U308hZ-LB_cIQP86#x1 zt;mKZv^x2?fOF4^TN49VH^%%Gc}h$DE%9_U*k7$bCZ;Zwm$b03?D11;yL-Z)Q{=5^ z)Y4cq?UEWQWEO_^O(!&fi55oZ_^#A)GY+0Up~YJm3(aJY-Q+~STDim%UeyA@&7IlX z9)$?EcRrq2%TwqyTt$#7%1=arJB0p%d?Y=xH|F78&e~XuPx(m*V4?|TRGMS^`R?~q zHP3Nip9vR+~;IFjSIi3O{pp3ZU8YC`A{^SAEOCOucRZ6sskNT>1os6v{~ZB# z)Nq27CQomm`HVfLqm*_O_MfWU&#)bPlyqb8rc;7Z-jhV@>=PUSt!ufh{W%EzV?00W z>&K#e3|mC}!oq9{|>|#HIh9g6G*a96>%tMeW zoa>je#MPIBLrLf`wn5&stU*9zgSp9f+Jl{SoK5Dbs}Hs@K^i;H?w^Qpvdq(K@93c% z>Tzm=KoU?~W&TAOLX7d4i&aHiHWyU!y3E^aJ zj@T5)EO8KzZI~e)aEt)VE5}yohMdlh7q4w!k zsVRlcuTAz?aWvl8IptKPG$X3ZOMFFi;c}%3u{DOizZ;`lHv_x&D9x8Ocdp09{r*X} zI*o7g&6cDgCtKmHRohF|kMLRa>*)~z#;Cpy{n{-n%X`!(nXAFb-!}1Hy*=eTL8A9l z3SkN(r)TLPP|~#e5h|HwZ0|jV?q(L2^(jMH7D8d83=x#O9IV6xYT{2uX<#4B*(i2< z2ThU*@G-j8&`!NK$ZE8!Po`T$EL`)a-QDk>Lh6dbZEv30-KQiyns5NJxRT#89`&(T z0@iUii*Ib7dS}l29H0dj-ad%2gsu#y2%6jN7nwjY45INNWRE4Ac4CBoNRh@omE;a=6(617)J`T=gcB;QMoSGl<)qm-g5kruQ};^ zc%(MLPuPm8pHGQTT&<7|5XF6nqPr8y!qJ(wM2PmWaj4bY>LZB4y^el)1SKSGEU_OM zuiEKC%84f)4|-m|(GYv}o9*QFS2XRM2S>GoKjChP@25E&%e3BkS0^bu?6=pbgm(i{*JDdwB*_bu;wnfLEJ0M#6m<(pDW4yc>%R z`X7%kDO7;_5OnP5!V6Poh4#jLxHnv3>33cS%v!Q3r&fCVvDL)al@eTGn;RM0MkSi|^KlhJt z+IprL4j1?!?5kNgLfXQywbNo^V@t@Xv>0=R*hK zZ@M?s#Vw)7{KZel0=`Q{(-@z{bCm0ly-#KpGEGiC+V}A2@Vs;cY?R5H7>>Is!>9@N|o_|G`CMeNYnaWqc^p9p?kfyXVag#NRHcyn$AcBHRDjN!5BAN|O+ z|DmqKKnraeh!um1lDe#Gi0oRRyw8h~-eiKc`X` zL#v^GfU0}6fGrTk{wKwm_Hnk+iUq>0Dj{!#J%KW1Yf`HLmD~_ z7f$>qvh4p8`G4ZSfF;P@)|t(}865NyNWfZVOcSg7ZyL_P1uUUo|5+gY6E0vw%*rNG ztsJMJe>OAfj11U$+-s^3yL<8QeUll1V-R_`0%NKj zRR5PxzIYCRMY-+&%fRe}UgUG`7h`4?{~RG!+QO!@PAg9U<)37DGYE0}ADFzIbOt2i zIQ}`+3>QcQ-|Hj(YXc4ND7RHSPt-pdiCO%&;N zk{B&2>OU9}i*{#bA+)jUFQz}?Q9?8srrF)S|HXp{WB>eoNuOOn8L?mf>t?$IkXZ$I z`kyZ(P;{8UMN229zdflK+|2lw9$iNh$}FV*+Pwe+?E>uDLVJ-rK0JH%ht@}}p5I8e zl!ty9GL?OqfUbz`8KDTRMQc#$`=I@r0@&3ks})?yJ~Q zR|9W&8b~tqrDgP1HFl3q4o#Ht0;sBnreROM5zGkW%ZFOyF~pjgtYYmvV7(6mc2an~aRYOgSM3?X4%@#LF%!Y@KP8GQM6L@(e zHZAo0Drj`MhjSP$CbS8CqBK9Vl4UWOFeG*|1ovt zfl#&IpOg}!NElHmTT#}FkW!=!l~g1WVX|CXV#bmb*~`w@m9fjd&7g!VV;lQ&?fbrr zefiz-_P*cWf6RTJ^PJ^#&agT%X)sUO z(@05l7OwpeeF`vtAQK+kkNBAgGjuo&mIn2`su}*I4pQhsLDS?Xu&B>02^<#ch!gRPMpiC`R~WZ=XIbK_$?c7; zPN)cD2uC2R7Dgt9e>8+F*N)3$N1rEG|5NXKY!zdG5{1*B(@5L(YBTvWT3{bR6z(UB zu32#x!VOjoAM~FXhY

A}f9HEj+QmZw;S|<`remfJTu7!5|V=aiqHcK*6YbFyMi%ERcLPxW2%*WSfeV2!xnIyD^9Sng%)`zZE)S_Pd`ty`N&#+l ztiH`ZwP<>YTh>oIJ<<9bs~2fMv}4B!0MQ4$;t{iNvdrlDSFwG4meZ9AH{|nTTI*E! zMVWswp3Iy{8@6)Ko=M>;1rmA%WjWom)6PPXBaxo24X3=^z8rM9?T2oBhvYK- zbH_rN^DD6d_rAxS07ZAbgcI}YS*WRv2 ztRg#mS-|U_{Pe zT*mD;Leu;ilcH!*w~^4q@llZ^Sga3ANk!|`I!*jefv1`xynq9>+~eziz|dUmU<(I_ z&hqo$k_7svYwZrIeodZ!qchLt_v-x_KcKRbgy_ds3%-DlMEu}>|H_KD_#MDXV15iF)SYBXP8QgG=7gI!BbNn2erU~LQ>gLC3pu{ZltdVLD3|)(w!A!;|P9OR!*=0 z1j`nZ?htA-ot5q)ALg{%4$&M?N4)k)1UyX@sH+CA`tBn#I%3mWOh-@OtXMJzWGt8? zqSzkct<$T~R^o{P>r7g4;U_djrHG8C-aqrzIu`03-NtIBZ)nkpLtK2gIThT=NAACe z8E1aFJ5Ba_uzq+|QXl6u;Wrh<>ORAs1x=Vd%QO{iaL^2oDuAv2NNKeS(c!LQge5Sg z9I3Jk%fma4z?^3qtcqTJEj;*<9dzNtoy`Z2rKDUvh3%|GFW%*O#OOVBWq0}Kq2g({ z-mHa)*b^Z37Hb9cC3H^Guy`c03-hc}7|L?4e%zEKsY5VXE|q{Ex_ z8NORX-6!GKFya>42EQ~JL>|=OTP>CoJu3+p4~)DF+ma@2^L405@~6|_i69c+$@7xx z-R;z7;4`Mo@!3j^*YV+*k6ZxaEe-FR&K)bV>?DpSctJJw>k{BGRXp_!isKT~jnf{l zO74AgR1z(6FKn1tMj}RtRxc@MRys&;_-0;vjU+QxEryZ&Vw7zkF}x|Q$BSI9Iu0LZ zIqn|+ZWjjS=i4ykib9r5s&X~P;@S6J*)vuRX6@yqp9RNb1`e}QEP5i0bWHH@wpV*B zIWB4au>~(PD3DaCb(Me}-|>C*AWWQgC3{cTIdi~IgI*Sz<;O9iJ@bK&ZEZ&*LZUK? zWh>AR0`9NKYJGksd+!Mv$are48)wPtekgJIG(Z^OJ<4~S?E!w%5kvA>bBFy%uoXo} zqZwf&5NT2t_8&=ixSzehI_cwnkOw?sP+6>Dd9aO#cz8glz%Q_Nwv)JY4*!u(Xo~UtkyD_Dewpo> z<UV*6@I}8RY7cXDR66@Nb}GQtZ>A7_Pbu`Noss;^l4~iDl<2Dx zwr(#XUq&YhF+gRd081F@kT*~%r`L92@3^$y&=2k<<1mYkpdeL1=(cEoy5l2xHrZ4& zv4OK(s5Vy)> z_j#cQ40R*OJ^lr+7c6n%BHQ=xm{d>ZT^m6f*hID*^4r#M!a3xI8#|8~$@k~Sj+I!M zQ4IE2o$YQ=nmk|3IOO<9Z6aA*>ZKrbm;+qv#}Z$<(Vdq>fNbmTumxb z%w58A?ID?DOAAEsrN_@`<0G1hN+#HldH{LCjQgg#ns;m$l#30S(AlZ?li@pxxeR}E$2MkGi zlaOJ;H}He|Gr;O@z7*$_n8)gVAx-v77p0IxuRU1y!LJtOcdB0=x?=3#@hkv7VD^CF zo#O+1cS8tm)ysh5X18i=;jXz`ZM>t>UB7F0xveC7TB!d)ALaCT2kSC>5pxY zgQ1+ne+0GVPMDaoy06$9Ua@pJ14%$4@oZrF%&KtKQM)0!IqMQ zQhsm#aNX1R9!8^{P?WBMr!-pH);k>$!jMorDb@p9cWJ2-aUJ~N1GvwP63FG!N}lgEI;fAgJu{>KH@eIjV08N@^!&r+murW?w_W+44L!eEJ^^+ zViX*W*Z(Yc7blC=SBJQY)Dg-I4pi^z4_LpwmEwYDSz-4!kjP9ra+VVE3;Gct7^Ap_ zd4jYl-ija`{wLO58Sz;%wvVqFXmVhvii@gMEzuTKeYs?OT}GHQJZepD3;S8ql+e~y zFQX31gwenVP!v7u4*)y~OYGiL_9Zghk;ZRy9G1qL3EfAzZlMpgT-)WSi6GD1Nto_M zeGSavhR@l@voDPYOpOl|i49zogS)r%AKyKJp&IOvi&$PQO2c2;T|%SPn!uy~2k@YW zBN|*IJTtIw=#6$T`%5KJ>H6BclW>jm)z}v$Q>QI)CtGbN_Ys}@7Gq1gQcsY75u#e% zzLaFVq^SZU)7B|U4$mQ|>ab+Izn0_x_Q58k?8P zgfxBa4AT{VP>LFtc9339N;x;CCQ2@O{4E+(H;>fA@SC{S84A$iqS9BQvO+F4IEc%Y zMH$=ZV7RVOs8WKO?n!X?^1WEdrIL}Ax1ZucivbydiG** zQ)NTym1dYH?{SMBg1dMI_ zt;W>Lhv))^L=}^{;Sr{|7d*Z_i@LL&gp*4@$_)O-A~?5CbBm9O%F!N^I>1Q}piGZ{ zvR%z@-hoy=_Ni&aE80O}7%9EPN5IywM^_ul)?{H(_fDnOu&zO@G0=~gf-lAFL^!;C z2BgO=m-xiXJ!)RYT86eFeTIoY7T5U1WHMd^4{&`Zvc06>loy(W`dIG?$yJ}^44C4q zC%uh1R)Sf1(glw*^~QZg9&&YzY*FpQJtG#27V%n&lB1m<5$~xU@&`WEqU8IrYhQif zL2e0bkvATJtCrln&?5U3?fG|<;nOpXnLoeb0ck&cFM(+qlD;(}x-q_cvENBZb+RA( zVq1AV>C?9)`yB2`m|cel>+lT_2ZpkZFP1%BgzhA)>Tk4;iY_PUn{OZwH{j<$s+~u= z6grRssu0}n`cuXk7k|PKT(jwE8Af!FIL}<>F{2Ee;pUWK-?hZP@-1V$pYTr4XBjQP2Ij= zJom++*NV8mk1_K)-XS6IBALq}Cc2@@(pV%l2)#abed7Ae_N%1+kKzOwsk9^NReZM6 z7B|V&ShEBbwiI|Wie5>4`2aL(=wTV_wT&s?z55{zOE_an3YaP*|Z?~7i9|nnOhBPL&T&3BRBw)cErfnKC%C! zG(kp3nEA)ARpr%}@X|%|+(jBPALr&m4!cgZDG-fbnP^%V+IKi*qE5or_ajKy#Yg5K zniqWyZgjF|RiU~Vu^F_W&oHO0!IA6ay4N}JZef2ACl!Padd6_phS2S}{+IIUcFjxf zXkJ4GP&xaVg%pXh+D6vW@QJTX_{-Y7mL`#0SPYkG!=6+F$KhpoB5Gm^X^hTI<~=t3 zucU8}>hbhWx4%d|6}iU|&S-PMRaoKUl>3^Vs+>wao^i0^ZUCn1$$+w9|gJE&q~zBi?T5_KU23Q0(I~FmR?c1}>Nk7_uZU!+`0#@JbrBI;(lahHIw#1N!tuy zt{gk%uZok=lCmP$&fu;Xw!t=W)Br``-RY;` z?WQy`zsAV`8P{eW`J+Ch+f9-D(w*fGz$b44eIim;n#7c&`u6V#koizdxc=k*laA!D zd{n0Mi6~?}?~T_jG}A;KElsB#PHC)h?t5Q1Z4J=B{~b&g7i7|q-{iI<#Kpxd9|xtc zceWh{#DNpX{;(g*fw-D*q@H*1s)kE|YNm4%P0I*uENZfG)z*r^`t0a;S2};s#McZB zPH5Zpd8DS*?WTHoiT><50Ar%&nVfIhDk@f2q~n0FCBODV3lg;r z<%_S8tMAd31Lp5;5TwPg;jPKa)fGE9V4@NgVIn_ZI@qJOyW;xkyHvu_Htbu(#^)z; zE7a!K7mrx9`D++4;0e&hrT%FNED5r+jN7-<*&FrD?+cTJrDYuPyxJ5cjM(@Py8VIA z@SN`yvJ^nB;z#-vmwqvsdH&*wqj0w|K5*4Bl*Y5yzAUbmJ=~Unnum0ma1l@gufz1J z$v&Qdf}2K+U@OaGPu)FU6Z@LsqdZ~CQk_M9;UrUgkSE5X08Vi#L1~d7<*xtJ!|;Nz z)6F1JW-CH5L_l@k@`(uu0PUH$*ZWRnoOW=T;irgF#VM#;Ep-0L07b` zbB8#2o``Ta5s+U-PX?SjYYBM3NNPiPFo{lREr?G33_^JTVzlFWU{5I!QHioW9;5V- z?80-|bH7%}z=0R7NI1{IIWSrp(`0I$kMIxwqw%C#k&1-P8bYqW&}dl+)qh!e=~7mG zx$#}yiKCSW3flp4;j0V#YaAI@Zu|PWHP0Yhxzv4lNm!s)j{TPt(yDdNl@BOY*$=X3iMM+3AB)u(qglRd+x0UDqoEaq`M!Yi@=mb)1ok1n>elT- znI%ttn7N^yJG0hCvuQcnqQSvh*7u@SvPYZLt1J3uh)YhgbE~d#!X7aL#csBN64*9x zXBW%s8hO|{;sKjY)eX{X$6-(!z-x2Fi8jw#`IUH@Yi3DYvpwBUdg0>U1x0#XwyohmfH(4^0Ygqvwo7HG6e= z4bOc%ST{EYCM-v+bSid}tR@Z$n8B;O8xQN)kC~wjMeP=MlNM|ED0(PGTA(6*-L%@V zqw|!tbe;#O14HW>dy|{hlWN(InW9Os84??(BwAL+U4pJh9MscF=o#kZph-&sYF6Mg z3ppG;Z`_y!>1z&TX;=+c)QjkcRfIyb3?u;&lbc;vb9r2}>n}f5xC0Bj>Z-i`b32CH zH&m3lYjwO!9eji(DO}oZq0Yax`kDIy=s+~d>xm8XbvuUx;Ef_4wlgP^yePki5N~il zu)T(?Rx~B^6`OmM1;eqaDaF1l?cj6w)vQ~;|FA!+UmbUn7B;H^5+=l3Q>{b}oI5S} zt;j1QhAVieZ-B5gPsCO6(yPDF5j;mxgf>L>+zVCA-cxTpxN7m zJ_<|hPp#gJ!4S)tA(H2jCb{n?Hm*YFN1-!-B4Gdl;(c{o_k@sZOf z)XFk;z3WP#bxTfxX`!#zDY)I+{HCaNM*e*6)dmYAhL5_S>^m^0Z9FgH?78IWpy9Qz z83Nu}`w40;QwK12N#3~^ksxBpv2t2ei(|7EmabxTyv=g>Pbpx#EB{ol2t{!>gJ}&^ z=a;3L3x+QR$$VZG>h$MaTr3)0RVeVFzeUSILmvs>m&KA~7tr3^lmH9I-oa^N_DUwa z{!UQ=H3yA>2AGK@iTT9eglo}=(f*2obOGF3k%7RFumC+Bxb#O=-=;OW{@lM$dyGHxPK*}?u6G^ zpUPXP)BJ5B2XZRK80J&`!+~NE3Ernt{71S_F#?KBspes%GQ8XNk33fl(YA>HNlP_@ zv{|3`BclFNzaI{L`>*Wb=b$BQxkh7H8j4-Nh%zs)CSkUfSKt3b?C>*6bW8&NR`v;p zZvXes`A+P7DG)Q?zm8o}F4f7yh0;ZRxd7~x+^@`U2+QRDNBe?P~O#~l=+ z?e!Su`v0Hmmd3Q3BLUn1w#!JZ|!C;qE$XLOKW4e+0i zDER35uR)(k$S90}O8KvJHf1}rrxNbj{^DhFikQ;>`{DNN|0rfdy7SQODT{1a7k?YE zN87^t=>N}7gVV@~c_aqTTlH6AA7u$L1B9t`54L~#r0&3uZlzB+isx0L&aM1%Q2h5S zz(2?zQV0FvVc@tG=U){!AE>ya3}YxN@gH`urSHJVa-V;lff)zXG_Jy%xfHlAx~|Rt z$ba~nn&wCHgKL{sH@uGBls>k%@9NOb@m8YXM?Y~bd_~SmrWDCyVL4KoHRAh+y=Z5W znD?Usj!yp|Mz;uJT`G&w7Tf$!5?#AhzP=9I=d%ARlnI&Jf|lR6|3!zc%PL>`m6xl3 zon)|;oOJ9AZfyL&@6M}9bcujrcDBu5=_=mNAagT?t$JzyGj+u!6|f_ObSq!*&R-B# zNX{VP8 z&OZRRBDP?iI0&Nu#)rY4M1UxVHXQpmK)mB1Xw(0Xd1HcL;5NFt1)C~xujY*OQ*Z8# zjLEN}=L`qi6M^jhbX#ya!TP_zDVr4er-sp?yVyZ74 zoKk!n@+FKHyoh-+28l=qnc$pWRq)d~y&9ajA$lhWXj&&k(5ur@Wt}&qa_};K@%-ft z%1y+FN(1M_++?5Ptd!mlbLfTq$Qc+pGMwS#*2#Y(>P*Lf&+YeyV^DHSpPoZ=B z)|Ct4(jt1`@FY?ygCRO3lk!f2h)@H8V+J|j3g-|QY=!Bk)5BLNbqNsb&~P611BDJA z-sxl~c+o3eT|PwRqUpk|AV&MX(@0J8cP}*BZTXrSJVWLBtNRW$bec*pShTblcpWH* z+@z)||8DL*oDPo`sPuwF4aV{|%VG*GrjdFQ&^0O-{S~LV_rBDFS{%9k>&9mZf)gxe zjcL@2M}wPi9YzdPS#{w>HahI3swR*_A=L&;8}z9q$@?7pPlK;cF}?uEkwY%!``CexHASui zTSe{tyzAFLqG<-`KCdk$*RO9yRA1vLTfr~409(((7tyitJiMNL{x!uUt8a=yr^BJ0OPdvoFUD|$w40s42$Gx=&?Uz zJ`y_fx_)G&TSYqyf#v3gvuN%zkCjx(nOpUFIoAAwe4Anw^e2YIEN*mQ$+b&NEB9Hg zTMF$EngmqR88tnr?xkGdNE_m=nWEaK8vCINl7ZcJrQO~Ab*4nD{KWF_Qxs$ ztvL(dc}H)!p>sc}oiui`U;3l(dB3y7Vb*!IHj$KFJl|T6s}y*ki+g#@RgJ-8p-m>+C%<{;&j$?;ZCd5^ zUux$%He|&U^SC-rKDsyZqYWFXh9J)_OPJ zC)9eZVmxtlHv)Fe`k6E}dUq=|G=y&blE{wlOAEm7+pN98nhzC2JK*Nc^TVEZh5 z2vU*Y*0yN(0OC>ZmC&4?YncyM?X{MRF15LvTC?{o*63mE*`{|@8R^|!9`YIGa+yyn zE&XDe)?Ety=8GZocu6DAv*1pLRW_QGZbsji9#tLCj#bc0klZcg*&3764&QeS;Qul1 zKF6%ir&WLQh6r-;q{u}*W1n#iSfTok=y^>79hNhczXmOS#Vh#J*HD*tQCZ`rh>|X) zSIojUo@^{H*5+7gNk??LJ_5b-q1l3mZ&w03k$_+qL1o6DXMh!Uu;K=WxsJQ)ClYIx z0<6y6FnUCI-8!^u zSAh8CKWawcC^);Iuy%c3L1 z1>cXnB4`6F8i2y^!1H(K2Ls8*t^-&&U;r~jXZ8ZyM>9(bT=qV8@5^2U)Ycca*AJ9h zF>A#3ot;6(>dHuc%qsAF!O;;_UvSAZ=i2cc{|38$d(1?tvs}{EC!*dZWcBO2J&7It zGVGy8ND8qSmP~tTbHnE{7Nwuh_b-i593pBRE1fdxz;2;YedE{hx~7P>OLtyfe;2~n zZZoT=$7kG7W2hE1$1BD?iEFwYWgY}hEcT3=LNV>w@A+4nGH?@Gl?6D`G6YjkP? z2Oq)R2b?aXUhFb%>D>$x?Pr5vv*947WGgF6a)->k4tLq*-y1qtCTt@k^gI8ZLj*kN>iXvcPIn#luT11;9PRz=jJ4F#2itB zw(VOo%yC20Xp{%O5EET?V3$Yi3)o8<*MGD34(SixH++=QBvLpN>bYiQPPoz|CBpP2 z>Qa4Bk+gg|sK4VhkF+lEGbD7=qJ9DC=R2xy(Vj^K4CaZC!SP}slx@&t8oB4X)@T9P zvoa>KJrnX;zN3Ghp6>je(49R{xDYq^^`P{(qCwy4JT8`Q<}mF1zA2R*nwV1( za&K7QbT6=pI-1l~hbc+W={Snuaf7_7coONufNh!{YFz0j8CTPR6dTS@@k9Kp#*)?PW9P6Fw%(pEmzef1 zF-_pSyzK|GR+XQk#bb=YNA0-+Y#~s10(k$V>dK?A-0p>(eGRQITQ+OP4)6$gmZ*jJ z1m&Go0jUVo8()SR8YgaE_f?46Hx)w(8&=8ROHDsB6e5w_tNciZ%pA{yla`(G6IdNz zqEyrdz4@(A5ZvbBGC+6Jyhdq?j^0n|?=@kB*5GzLwoqQ;c3s zazUFk=3d4ou|HLl_|Er4*rVu`0eI&O=5Y{&zlI?d{G4Ts1E{igY$d80HWwULio3CV zL66eIRaDy>GiT+0%vsCS1p9}KF!PzOm8SEVRslpP&qDW#y6srudq}YfJ#ra$){GQR zaEooh+8uYxj5QgH*PWMaToz9yI}CR)3_FGzg`zE2jZL{m;3LqzlgP~?^{MY_VMRAr zinfGHR6hr{^)f9GB90SOa{-(b_dFq+d`fLa?bzUZLY=o2!MLY{h_s$V4N!%~q+gWx zy$A)NS%>YrV|mM0HwAZw_VG47#6R?el*<#oxH^>CWcZa8l!!)$T8OpNEdkrqe9eSM zew<-s;}dfkRkOqtKURsSAtdDkrf}g~iYN@H@@tvdf)yV4XG=qukKdt`s8Emb{P5$C zmSlRK-O+F`Sr)}erq?@o{h6|E-_}I%q(pf@idpEOCIW|mFcqB3xzMV_SKlii(}<2@ zVXg!2^T;TL%btv{+wZMnh4Vo%N7uu5@21V&Gx+ach(Ed%g>aqsTjr-L($ygaXNqko zDeO+g@Hy(l*sDh0NJ@$#y{!<*%|czEi~n zCp~JP$tJNYtL(o%t>0K*E+U4i_u5_AVMs#?AsS0X_e7z=_3e$3H?5B**!9hX^vBOA z@dRw!ea>R1aerYEk1*J*%>HiT+zR`LsDcIqH?NY)2(>)yA{l_#JfYY&oqy*G)UX%e zz;k^l*oejAd~}5QG;eTk`Kag4yz`$-ay8F(l!(F~O0~gE zF_cc_H9ZBqP+*-pd7_bLLu%~S>nS*?%RZC7;My;j|D|^<-44g1kCj4*B@voh}m>9YXEtKT##k*uG`!rHqVq zRO8r<85@$64DxQeL5AMrp|3AW3X(swh1I_%)M{n+O5Jw4UwrSvyQpr2B1jdpja*u+ zW!fNa=qp&F)9ziqQTJ_{c}zB?r@C6M>&)xpx>~&}Y!`Tahmh3BUh_#ia$=q*0qp$| zKha{S{H{)al@{HO)f|&ZIJzh7?H76>^dkL;S^6#BUE5^oK+n`&7rnB6MUJa_ee5ys zgbQD3juSgmwddySzXL80dpmNNqIP+)8u^fh+e+Bey1~-I#wjhYnW;r~PM0Oh@3LlpLF(9ec^z39R17>a{MW&wM~3`95j%k8wyT zr1&4Haw%f+XXY$yZ;62<)gZkQ@8ISB=N39^1&(qBv3dQ{@ zU>2(*O}QrMU5DDP1!f7Et!m|QG_n7fTG}W5K!)J6t*EnkP6+RHR0<8?iojo4@#@>>H#HP-`Qzm zlnMAO3SK{$glF)pX@JWDF$q|=c?&o9&u?}(xDV73625jy9?ptH$!8US4!Vr%7ZiqR z98^jN!rsPval>EWyh(942oV82haQ5`9V}E-&F})mRE?Uf?WO+svizAF*BYLtXt3go1eD5?L1!J%z4qu}}f zKTStZBQ<6GDCtNKB+Wu=K2e8X_V~+m2J|?D^#7H0XDkmR^uOA>Q^ZNCDAm;z+j<@??Id)DER59SMQR3Zyo0p&V8^DYNkn!UGmVqtOK1=*VNrHBu zT|>fGJ#fCN0|75){G+*t;79!^wtMu~{;gt{3fSsJ+nfBS+h^cGnm>x_c1{sgLrDMq z3kPqkT|!W zoI^X3RFQR*YA^u4l0uB)4yN1nV&ByD-1rVRqeqeK_XG2?V$N+GO7*-r(rh~ioe9j0 zYDX!v?Zm!WGyc2+=r?2KudQyQ#U&j- z!G?|lN*hO`q<`J^{AS(w7@cdNKOH~@!lOw$HdItDiO?VTVV?c#7{ffN>KC*uFt!&9 z$;!gd>%z4s`)&L;IcB~w#Y%d7aUoS_l1QGY1>Qc<8{hQXFT$C>0;c_v*>HaP?bzN@ zwD|8r}Rog;u3RVEc56cVuAi^G8oTGK7P|be}F9rg|R(PXu2{ z&7KrLyB9x!ZQkaTBuuCsKYv=U{H(#qRoNVsNHMlNL0+XQ%fl(cz{#|?p2JTL-E7o^1N#|Zi$O+jC!{`a7KFCM{l1&Ss^UkpT*i4V(T9-M zhFrCs1U_~n9tJai=JAEEhW4RZR6YopcXxcTUjD)K$B+||7-AB2cV*voV7Tnb+d?GE zDYi-(X@)QluaCFKR#IdMOMO_K-1?WwcO{`u)7S*=$&4@q$HjCeFd z5TPZ}CFh+(kk?NrR);pJM-zchd3&;c?EWXSS2N}Vx4uuG)Tg`2d^m##oR)!4vq7WL z(^~bc#imzl+G6|?&YBe`m&zX3(Tb|8M2N4Fk^wFT6ULnNxC^+ob1>&`2mRF5?|)`n zTr!r>-=bA%oAt{O%(-P`oPj}!(0k}S`LmU^kg%MiE=hB~xP2eKzxcS6E4^In~)rKN0aM#$T>#QO6wzl~-KcVX6ZC;49X8sBC%!<4HE8!;;MF{1FBzVANxi-;jeqDM)}^VxJm02qZB26NPu&x4wH16SnWPOmLOj6oBD|Y-`GEEa{ISnl+d;<4q8K zd%wq51k9G_FKqS2Bj&g82DNbNSL56kUf@aQqd%{CQR;{}*LcJB)mfy4iG!?86&Ivt zC|3{+L+j?uPwXv8+!UM!x`50zt0#p;24Zp_hH9|gjuFHU2{$Hkr#);rl&~QF!UZj% zq{Mt!o*gp3+q@r$N%XLk+EbQ+6GL#!(VEffm6VBtS9ZD)PyHW9U+6a-$>VAK%*1>k zf?*%xD3IbndX7uF%3=(PX}&1&^MTThTBeA4ho?th$g@eIg*D+fqps^zo_Kx$`Lp21 zT81yzvBHBy<75_1=>>3+xJ=%8bz_XQ5$WX|Kp zKggFRi4W z#JUe}tgfG?3&~F@RMxzIG~2os71HNiaaDx@)J=swjXCcEzV`JsyG@-KYtXo@jq|zC zp2OSuPg+{1?-U7Toz32$R~L}V{j1TaxNi|Z^A{6Ew}0D1%Ep>_Erg+ zdi>yCmRz(;fNp1E!sp#HXYKtxU^DPQ5_$!S_JWX8nvjz*4ACZcAXem*%s|TE@&%U5 zK=)z_@Co+ay{GtiyOk}Dbz0bXANF|g-MU_Yj}T@xi4rnTfp}-|JwS=Qq!DDiEyXBt z?L)|sIgI8Z5Uvo%UxO9Qw5|Ba4;R^5R3<{-W-&Armss}#BAE5@NJVJKGcQv3)DeWf&0{n{jZ-pkvn$EJO*a{rl(`C<&rD6ajEZ6mYQm-m{Xh9!FVo2= z3-m1W*6msn?n&dZN%kpyeRXz2YOXCnX7ba(YtNlc^sZymy*BpA>xKaq=*hvmCNgie39tZ4xE0tIH^Ty%5sREhpIPy7gMW zu-SrLi7qCb23%XdM`h^i8ha0|x zqGleLDOI4DqHJ|OT({n@e$epKGyMK%k0AI_-b!FxaJ-lOhryT12TA?ga->svD3%HH zTU}m_{j&~1I!1>)y8w*w!0gKbxto5fZDw!nYXkHb7T{%k2@G#yyeI|6qf=07%|bc9 z#pZ*(wXBYXm2%5VE*kY!&O?mSWA}0l=KTn+Q4xgme11n|o*xH#f6q&xCk88#dH4Ma zQnc5r#X)~hyUrv(YxVmvN$+^y+gg38oWI60@#UAaut^kQ0LykZ)vMKSV&>W}8L)qr zz4w{TlKTW;J(ESBPVTN+i*&{^0dL78Pij%{2Kw#D14~YN z?i81|YF_q_ulDO6~eqk*ys>{NTf4hm#5QdO);~uqbl29n_|o zup#~G#wNZSak!aB_rpojie>jqUL zSNCs*vjLzfeUCy^MR6TLkQf`LL4Gu1jWN?RGQ=U5zfldj2T$OdnXR3{>uimj(md(A|t?s9{1Kcd?6 z3a*$0`%&dajsnzf3U={l$BN~!AWi(ck(Qyye}ziYN@rET(eM<87jLVG=oz z)RX7n_TnWpJKVuY`1!mw9K%wt(W^f>Ptt*p!Us=b6~a2^dV=FRGnIrefSB zE^$d)$=!@YI(mMe;2B5|oNDlsf}aPwx>wroT|y1Xv5ggVNLv>LIn=4`+a`k;N!WZ-3Iuzu%8--F>_HfiqXZTGP195y?xuEQ)dI z|3zq7L*BFPq0hATGt<4XN`4`A!l=V(C<7(w9z7r)jk1%)^-zINkP<4cT^>UWwxIEK z5}tz#TrNeYBjz&)hMnC)Qs2a0_+1sPHA`NU3k4F{>EcxN9uN$#YpYV6y9q#F6obktBPR zLt@Nct-(aE38;4;am9*HhYEQa9(8@4Pw}?<`JNaGM0$OiLbMYKEG+k)(}0#yQi_I0 z3i1GpGEqOQj9zkulnh^Fmy8@^PigiwE0!XlMk2?{e6~A>HD5{=!*cU1R+QOt((!J# z<*%1+0&RH~@RRoIn1Mf{;?ie+GLCT4UfZrH_38qgiacbcsVA>xcDq`xjeo!Gr+ou* z!e2d9&(xH;x$y*VJ@2Q^Ccx5%Z9S|z$k|y`O-|HH3-TJ14~ZGiT7VuepXdf|LIFDB z!yUZ9e)c=dQj3*)tZPral)qZq+>{QzOOLm1=2_gnF<_ZaW8$IY?fpXKtH&``tc=7R zpXU2!#KPNP<`~*J1VNFsXbZe(E1BBR(=Z<>vRdT}it5Nd8*@yA zxfA$uzS-GetD5=D(dSassQ1>Erk_j(Au78_;^1+K2jhwcGJCP=yri?0Byr_qznbh@>^8cn-c1PS{xi>i#rl*z<5b1@c}8UXQnSQob)P1vOU)*dqsEf+ z57Or?#-kE&b0jrSV^ta;-xH1gdaqLV7Vy-LE4XFH+>6f!nIxT|{RljK+`v;wN=GsD zigu0^VS4Gwu(y9qf#)&BJGRpLjhWvsjI)1FioOk*XKi>`gD)lg9Hipk(j=h1{zOFo zRHsom5h}qzCmVP3=)9jhuk^~M1p5PbF^}5Bs)|F0srvh=HQbAHE86H5n;BkI*tT40 zk(A_9l?59+#$+vdm^(ytm7c(S0=1Wp}{8NtZg zqQSPgov<|BF`-V27e{TH>>4w#L?(HEqh~oSIw2vhGfL#U!c~nQ@~~vTTw~oO5sezO z%82>4$EQ74TMTTno#4V}mu=8urC8+^YY$1|3T}_EZ#7rQvxvoO7f^{>96R50MN_hm z5nOqa2Ir?&kR$dBB^d&gcMe0z(aW{3YXkEu z^Mz88JV=b7DYx*qL@m*NTSTi2>jkjjo7tgt4-(+CzvL>yP6cUyKMg`~Hq607HlUZ+?|%b`_7k zFHW2H?h(nOM>6{mSMXh>HO4pFPR&Bw5m+0~tJgr1^!2X*K6+)L`H;&RABjNy!?L(e zE7PVQdK>-I&3c?~3YuhRFPSZ$ZiCP_$(sVp#w;xoIO=1ZGu%|_Bk|4Dnu`3hoY8>O zNL+$y32-fy%^DQoK||HqXH(Z0>J%($bbzh`)o|d&DeU-lIYuK!_M~nW#)0Oa2s_a> zf_Ag3k^s%iL%5qu64Q`Xdra~KZ3)0MN&XE4{|TDozBV>}>QGY%u%K}PclNPyhDq_# zzJpCjn(jMi;iDzQ4Ij%(M{D4X_4=@2jAnFVcisqcJ&&7^#AN;P=hU18r{c7o+(YrZ zyXecep>&OT>074;cR588lf3fcR{&X!u0a%6-$DcfP6n1fT0NKf+)ECgql2v%MkOx1 zeSaSwE$JsDM^G{P(V((Z5I(e4S02eo(O+S{%N4H1n?w6{prHsb%5wZ%z+nQ`O&u9m zWa~{Xm@-63w#i-(0lZqUTjcyQP3S#@t^A;)p`Bw?+q0u{x?MRSS6p;GNtSW=)9V|t zS$3a}NXP2C%0_LwMAc8|8KRuf>Mnr$N(QvzR3C1NxUAZ zlmVQDA0;~`<2O$FjLAKA+%NG>UJnc7(BV4Tf_}TaH9nKQ>W`d!lXyB0%k=z{!I3{5 zs0|q+Dz$Ss;g#^?+`m061tf*J%5I*URBR8w{s-07(zRDR%rmbE-8KVVTqTh2&lgn^ zILzeRx!83W)y^OAzWm6nB)3C_lzIj}NuAlyUe$h5yDh|;*M3VDK6lUZf;}R5(G?D% znmrr*;i1ZsNSkHjH{{z@fMW*m=a0dAng?yacM(zdl=@>V^}3(^`aE96*omeY2Op`q zWwj3;{wi_py?a-)lbT;H$Sg=--Y*DDZ#N5h@;)Fz%%{C5r(Z8jo?AsU; zBX_n5PgLUKX1w&U-l^`+DA9Y|ip$FK5dolP@2P2q7u^U{!ioaTZh3Sw@+#xvlWQO6 zi8d^r2z-18^6>-}i8dc|we89{pH$Z0!X5u?py&bjHG}dFwP^FI`Q4} zRjUZ93)NC;T(PR9l!{SGtJ-SKSV8QdbQrCuQ8PhNiLHn&M(q(Rs2Mx<-qrHE-k;C+ z^LYFokNlCFd++O<*XwoGy?LHZ&p%pW{fZ|9H{@=#*HL*tzqJ8NT#d$_{})-k3PiNxK^MIWfs_e)CKSvLFlX;S3KI zZ9%4$BYOyqqx0WTQt^Q3WwGyy)2TH+N9H$&BKU_Q5|b;YKf#ogP3lsd%i!oYG08XZ z#DCs)BX8!9O&VsSTtMw)3;h0*+<17EeibsctB_YJt<{_@R^S znqbXt6&N0zvEKj@a*@T2gZ@`NIEbKOdC*G$lpSt(%Pi^Bn z_5P%;xeqOvwQq7^TKr}dm2sgnu(T=0>jPDka*Lk~acqd+4c*;?wao2`v8-c1eUpCf z1nOpR%;7#*!D1U>QqovPUS+l~7vcmUR%e1PR~I}c+k}vs*1dzm$yFJW;Y>lSg6V@fQPYT|{)wMM!q8k};BvuPbm3f0P4=IPDxQAQ{n_^^7k3aK>o@G8o>=p5 zQdfi?vfp9eW5oA;4z7ZBzro&hLa3i|WjGFZcXe@;EH1g{l(n4vdWOVFXB);X*HaD| zM5bN24r_kaUBsw!dd|V@DtdXH2)vx2)Xs@#x{BOkTj?+wtM$U@H@g-LV8o@cvYHT~ zLdM5RQJK;bKJ>TwI9aJbpxxi6t?pWhJQ9;d)&J<5T1A(W>u$DYw~18~4DJ8IlUGS7 zI>`E*th0gG-w$LW!1+uNz#7$K60afVh14JakMvwFo^F+8DF3j(qM_b@jlSt}W;2}{ zd!wlA=H-m|_KU&s-NeaRl0@XRN#>5Jxi;Gu$Ux=&Em=xk$_Kd%a^cNExDRsr<@EuK z-+w)~9X{92=q2m-6+^rqOv|m^eur2$FTF+yN z;`*K%*vulh7nlHijU(RY>aXd!ri=-th995REj9~(t*W<(NqFXS< zG$}77{OA>&9#qhD;v^raOC6zgjJ@f!5_EqYSQ~bqB1pe;vp6UGc;i_ZJ3m>vuY)#1 znvxNpTqU`kc{T&)CEdFUH>aR2wRtP0Qy4$NK2VT!r&IcQu{!mLK#QJ^YlCpb8!(6E z9ZNw6p@X73UQvcXRPolrWZzyZ=JkiF%+nRMIjA%nEn@h6KF|d@h$~90`W{B4m~S>U za@)zLMwn;?yjrAGRbj=echzl`jP(~aOYZBTT~Ujt#2hZjgMkrdX?xkG*;<2atKUEa zX2vUu6K;$paeeH+9mt~BN3&`7S0Vga{Vq)C9vg|`v`X6Nl5zaC0eSp4VVRLn)H&Q- zHO4^vUS(xUkht9eFx@1UV`4e{w4R?#VpyhA(`MkX=UU_X9I}>7SSQ75mT;0T_ zZ>k5W%4_af{W0lZy#5{xPPb_3JLh`%1ge=M-~~@~(MyUcEzi&E()*#2itO@_aIgwS z=hT|Oi}U`k>#s1(pJV@YX5E<}&cezcPR{tD`J+d~&fkU`6P!VcJXKW)7tsYD%jv58 zX|LOiuEGV*>(p<_mTJflLtcd;CT6LkUpd3+)-P)WX*mfy=x$n_yOZDAbs+WccSg-^ zgifhzLjDex8FW}JDzi5!=o5=SGc_^pH120%dVZDkdNPIMW-ht~19W4jpVQy@GKLxX zGcFls1BNh#wF%~)-B$#>dCPiyE;#56x|VGOo=;Itq)!hu&xD6vnC$3gSdTK>wc;%a zQR{ou1B)F)ng6m+NO27a7p*-Hr}v;+hq9j%%XKcAZm^ejLl z$QQPTZu~buwiku$hyao=*F0JynQX$vlOBDUV36*W zq!0s6$pn81Ye{4en{YjqJ^*d`s1r`+yZQrq9XU!@L9=V;AM|0I^Qr1HTLRdSIlx>{ zeE1_e>9$qvIZk1bwT@3`uKQvc-}c#%*jx|~wzsx}A7Q8*XYi+}P3v~gNR~B=PX&bM zpSooH)_Rq_qCsI@q=G4={g*vm_Q$je97+*2d`T?6D_Mq#<@2uh22ExkrJbc%`sLD%t>o-&Y=bv2E-Ar1lxo^ zB)5-3Qa$9`V8{?BUOF~83yLdC1l@&mV?CXa0pk5~X`AVpG;-V`1VK^jM^6^B-C)^w zP~W*;-c2ikE`!4MGnlOq@1OJCb_h;4uU14E;5)V#+~xC8M$Xvnz|eb73~5gT7oIAn z)4f~x*Mj+)#1nqRP7b2#%xzDCd)h-z{wuWn%@X~OJS zXp&;VEq83awwypViV@LjFbuyTu&KfkDuH{_3I&dj&%R=f#G!B+mzx+{t#hxJ@GuD# zeA%_~Sc^Gy%+h+fPD@{*L<+rh?g;IQc>jHVWDN4#WTD)p?}Kq4eWp|~UE1ZWsDCzI z$WN~X7OKmty#6dH^!$Nz`n4%=_caY9VvPWNIjx=2$Qn+OWeaR_OVv!87j7AA7{dr< zdeyAc%jVK=Y2zRv%vpYwUFi8W@`4RP0bt+L@rZ-(^mJj1VbLR9rDk96il&YUWJ zG7wR?Up+liz(g@KTjt#aDFU#xh zk>GQGx|A&cpCM&$*>RH>isk{=NRYK5A27&_WXSS&=@+fv6LNkjXCR+T2+p{ z@MKIec6P6HoRoi8OJM)jYOYUB6?_yU1SPS(T*@>oZuznvDLwa*Q%5d-JtQk#N5=4Q zjsUL&{BCvP*rZ=D(@r%zR6p!FHEA_}G=%wLHoVN0ef#1Y|0*vPqzMEoRN3>xA!^(4 z{kXowcDGP*8mmqe9o{Yif9BHw@0_&uAm5ZLE&rA89S|~+xlzY%JakR7XcQ}|gg`Ql zklCH-hwlsFpSMxF)10=;U{85qwpZ_n4Wl@l&KO2~&s28W6|z^lHT&lIh=O>3!fv-q z>R8+oYlI!$Bz8H!X#dwHwQ^ql7UyffG~bm>n<=tm5;1cO0{n!+W^uFPitaqZSf^jD z+qy2+FSEaN6UHFdfZ?0wb2qvlCSA@hScQp1_z5C#>F!UmmD6iO4tuX|H96ULUOFD^ zBx-t&eEJ>MN^-x#KjK(22bsfDz;d33W-H^D-U$Ka-F0Ym}qMSN_ zpT5YP`>-p+b6#{_lT)A0mJ8or5dl$}4eXN8Tlt4V^dVhVr}CuVMah5g;+?(jQx$kR zJ#U8s`!~nZjuGw&+w~2uVwUbEFRG400JB~7-~lI%Q#7@#5c2Z-zLEglQR4H9s2kAT zPhmXgFbc@bk4I(mNvD^I`W^)@uONha)7^(f4sqAGGRw8U7J(p z$Qvl#!`ZC8T{CLIFl&!zxB++(F%!1&Q(%XsEh{OXUG+>}4lK?Zk>eTQSum$bWnt1s zE;>7~@7n6NXM;A*LfrM|w9ufR)NOu~7OWQTfp8?5Jq3wee^1r>goB;SkoDeIZ^K$= zB9|91dBh|KjLF5dogA=06jm~OszZ}$WkwN)y^aG&<=a)AIvH!3e?MHQo{Z zdHS&KxR;9urKV$75$Y8{>Wy5@_Y&2S%2(clx-)620gK0|$u+qyJM!HbB;#b3R zN<;teGc`)rf&0i9ELq{OU~H{${)!+%pyEhf6B|YGAQz8G1&6RNV?6%I+OENREA>@@ z2owlAf;Q};ZSEUnJEaam#9SIiNj-QxdeDm;%keVAi58iSH$@?BAl>ZKF{9irO>@ep z>E?!Zx&MVHcB@(!d-gv7B&Lk89r?5>qa92O?=@=Z5wwN z7UsJ2-{sov;&S?7`6zO93@+aVR2ODpPUQ{V7nc9tth&~iC?{9XBgnosEf|ytU-X$3 zV70E{|2bZ+E={9GnE6m1%YBS%pClg&G40>RIXh-16cITEoqaOToXZo z>596hQsAy_YIR02k?wo?!x)}^Sl>tQk|^S|sSSH4a<&%d}YU>gJM=zZelMv2LJiGAJg9EQG&# zOx@i9EEU_PE~?y2ZhWaYy;a2{-cCoLVFo3=14Q1cLTbL zW({0@y#$w0r3Nl{7FSdMThva?q}wl@IZ|CmRVjZTWclcQ8E$&SIdAGiW`f+YlchI= zao_wd#%DP`e}I`erz7P<=DcZ!k-eYeZ#tdX0co#ho+9T=Vy^INc*(gSth;{*8Jx~Z zPr6EH^69}@llgcGYKw0PJLjp4H>cuysj!{R}99nO5uR4)8JC|pdjPN~o^kW&U2mRPLLoyja8Gr?pr^mO2@#R&OvuO)rw?9-r z1g*x$sOH2Un4SkqxRniY5q=Nw^+h+ZW+*4zPUJ~QaF3*-ZH!q`8UMUz2y@A|ChX(t ze=>V`^9In-6G-=k?zcA)@`%6!F{$}uKvb{P=GTs3*-(hWCHdk#^&~b~L=sVh6GkDl zBV1EeE(+l_eL2B@U%0kOyQIAaPc0E-TVBkRuDF2TuO{98Q!zT`n;8?Orix9YPTu0i z`sT{5#LN|p;~uqn#DHoPs2uDQe79THavR+OuC&u;OVpqK!n=N6-8mKT`Sc(6 zXDX8G=%w$Zx+)X5pl^a5m-c?^)~8Xx0hF_ z<&Ro5;iy0N%X;p;NeM}5@`{)Z|Z3s!WunhagLiH~-7e0NFyKN$$Z&WL|`?{M{2 zb9xR$^z0@hjdH|8g~VRP=W{)Sj|D=`DqT5vK6@RxS;P~gKfszaH}E0)PPSjcFgXPGS>gd>N8IARH1uQV&fFfr+y!2jONI*U#wUO6HC-+4Q) zv^|QP7Kj5E1aZJ-Nt?JtVr$(0jcr09titU6{};p)Z$3ZiCj8%2N~_>eWUf4m6Lj-` z1HSM=CK5B#7)%ZW|8KsDRpk``qKEGHB;=$!^M7-)x`l|ThNA!Pnxd-Kyt?jm^EGe< z{$r(c(`v4WLF@l!9Xg9P23Y>@uxgg{M1w`||1CN=ZG|<;ZQkSmAJtAuUm8$$f~P*| z@_f*S0Wpx~|HrDG*Ywzb4Aol9!eTD|eN9KBl3!IWgl8KLHRQjAZp8xxBd+u3T`;x1N*duU_HNA=|Em%xPF-b&VX=lykZB^1eQ=f_Y z;oRT(^a$^xzIh0Zf4(qcm=`%9y0lX>+5fP#>cGQyc5ey2XrXqW4s46vh8Z9(Bog6| zyD$|CWbXX@!^yLDc7}!ivA=)g-uD2fY1WgY0K_V(S8=svy*+~1{O*gH#>I!-RORZB04(u8Opyajn()$QW{H3Ghx?)*)sT79MiW-Di^R= z+43z=y!8H441oAYZZ8Rxo?S4#N3rcZ9#Z&CX>gV}qoG4s;8xzI-#n$t#A_+c4?jL$ zd*SnLMb2zk95%FdP7oN?5`)Tn-C6ysYxlR-+lhmvH}&&Nc4^zuFA2`Vc6y*nJc}iU zjFPBU+qhllL_ur-7zqdTK*bu zEBxq-sQW?0;-Ex1#5YP`1yqEk0w4uB9QY9t^8?S~GO4y@!4?Xw4~r=R_<3{(H{KINf^H-I<#zNF(Qsn37Q~Tee@im*Y5LkHbfjGhld3ZeQK9pi;(a$Mn<%*}#AC!J)#sojXv|APlhi~JX)QNh zT+;7iI=4*fE>7H)^~Jk=$M32q))Fjv6#k|33}W=1RtvNHDZ{L{N!Ev1xui!rBb%Z^ z#ig0gEpPc;F9f+U`?O09>x56sYAZ}%_lKa&ixLkk#1Ha{aOm+Z{mTN6I{jhXgLkLC znIO}02Bx)*W=fE#C{|QYYzXEx{MTh38k%Z6F-6EBxCeC*jU|K}duGKg8 zYga_i<{F=M)3^;zc4u6O-Lsr|SKY)|YVj+tK2Iy5FVx~&yyVjdb$!1JN@kySw4=el z?PhSaG_|}d=zQYMxIHU{yOY*LO$GeWa7VyUR8S1%s+3kl5m1vsEcgVt_unl77JmK& zP3HQk-KN|>(gie`M4pW8b13p_pC0bbp$9Bz#{3RC6F*!R`ur%O{i#a1t zI0jsnr6N$I6Yk0ZsX#{t&6j18nG7xxhek7b8=%I2U0Pv7Q~FZ&;_u26FT8CV#EA27 zo!H}~PKwCGIGkqV20lg5+n^ZBqVPE~TvJN>Iuvb(;#6$A6Kgc4E1oMBM(KO(lJDm{ug_A5<=IFRJMYul5yS=6-|zAgV$oC!OtJkM%1wWT^qvTRFbOlqIEnXD)arko zI8X8rM$|DdzK=4q3|m^VQNzlpN0E75^eTKlc7HQ7LPf+?PXAA6_be@rB#1YZe|cA|44HC zI|sT@W>4cm3h5t08hvx8+=I^N#u z!3g%(Ji2<;3b$jJbp;)z|KLVtUg=I^vGP0+o%%>9NCZr|dfPymw{mEKfhkKnLztE^ z`#cXFWUth`7fEgYF**KbqNYJ-UEV>I>F#rT#E&9?-XR+2cMgs+ztLD6V|0e=EXzsu zRF^g4SGr%8mL0;U1CPHe>3FS&=``#T+{4pCCp^Y5bQn^e-iieGY2Yp5!5o2&dE7Ks z;Dz6{;;Y+6=A!(~LpnI^sPYjLdx?LtBRRw?JrIErh(g6THTa1U{dAIjCR_+qUyHBo z+j_nNE4D%KV#uZ#D;pF3rWG5R#(!EfX6>Y}lAMsTdDyGQ3?lqL3C|_~`g798-civ> ztlB?gP)fF#_Wh%0!h`lJ%FnjT)m;_k|5Dz7_8C<5+ub2;aP3nyJNG-iUXB#G+6CaO zwrya*3nLGo-KhL*?ms8GX|e+2k0e*sm8+hFGycbI6rVHZ!K`C%!W|{-OZncJf|8y_ zEJ!3TR{^iDfw^lmW(WaWgmR!(%+f|F1C9U1VF(#2)`23|o`hHa#B%j?JCE=ypsd&t z0MI~9%c}w>It|_z10T&fi4~2k5!!Ro7puKA>_Ap&%yxFw+jL8=KE1acJO-+X{0b~? zPu(q0eFYrE-?|7$KAQlhgVlasfss-N;PWRbiZmyhTkBB_G>oa7F#aF${p#JOzLWGG zHBcS?_otFwD+<&>-+RXEv{BQL;@DkO*`;D1I^iwF*~{)dU1wdSb%}8r&&XeY`mmqg za(ztY;QIIX`Yv^WYis>htj4qLEzbRaMl!4ydJVhL%|j5I(3-->K96broBY2HLX1(I z!w;;}@d4{O?cH%2GmhuKa#DUZtvc3o4)K(_?Jmu=3=g8?mu}vb4v7!B^wz24JjEJ^ zAM81`H}&clwPQ3qTD5ck+i-kKby@7-;5md8O4FySa-SvA<@C9*(;zu**YvgZetH^S zdSx!6Gud0VeT$;vHSorvs&1n)V<m z%-_JIQ6!SBZG#&{j}E!Bx4%eBgQi_822ysdkTOu1io?K!LuX~nZ;NX{(K;-cvhUwX znjqaYNoGK#zTEmt*lHaXSaj{Y!2_3dk77jrZI?ukUoUC)#PkZXhYW{@!}xkzE%1$X zd}|(`-^*ow2^mH2Ngev~)-sC+C2^t>T__zew%et#EG_(=!Nh>3>yLaM7nlWr3qC-R zc74@VzCF=2>}}c!Rdec$r|FE|#DwC@`D@}IB3-Hj8J(6*^!KTrT2r#l>w(^Uwr}2- zmggT)!GWsjnqKH}^*bjek=P6NUL^1*&*r_UV}eliXTLpAZ!N)Hn_3PS_cku%JxW z!c6>CuR?EZV9phW7|#_0SD<3ca+jz$eqwpZdjP&oy@0{2n+!WnggYw)X|D@?rdW)T zdJ-^^ix^)C;Lyx**V)K~iK143@!AfoNZNz)d61d@cHK=I7k~G6$$Pi?IO^}@*go6GA$#z-9_*JS`a=6>QiBD4Wb z&M0_pFMe*hBVssVei5H(4Sfr_s=iQ-)S1&E23C*t;I%^JMhcPm#o^Qps_jBTOM6Q=FjESffspd9qN~?oSj+NIiroLAcP5DO9eq8b3kmOrZP#fT` z(|$WM-Ro;U1!d9uFHXjPk<& z0_8Sr(n}P(CS>3hwSaZE)ahy&nz2Q2p)yyZ9zYfyb~nx>{zgI-#3X?r4>bhq9nY7Z zzF9K_-*}>A5D+os^?`V>IV0@@+4yX1)1k_ONF989Ir{fZX!kAVl}8C_Z@8T`=s@b@uas%1S6~;#r1Wcp=AC+u91+ zLg55iapbztLmf_Ugr_{476d~I4xGZJFv)0XN4it;}*y2Bs7N`olks zbmvF?hcJrHs&epALP!x{Ixl!=bxzKzWcX%~t4U@hA$k1s5q|r^Ce@q_xjQ{X*!GPE z?y2gKjnh^umY~$UcJoTB)6!td^L~p=NLv3M0TEdQ)K!+-K-lnN*V3rZbA==2^k!LI z0?8@(7YIHiLc+Axpi0Fjw)uUaHmy^={Nh;fF6;-(3~YoZiN;FxYbB7{UEnj^M0Fy^ z{Yvqn4-B0J88 zQkI!)1kr*tF}mNRYTR4jxgqw{>$+Lq;sZv^hon1nK19iReE>cX?gKU};EPX1W*jVn zAxF?D#~&6o1rKIZV&aQ^d@=m9($EAtT2v|JwbW=yVN*m4oK1YIA&f1Fcm>fxj4#z< za_HGvo+OC2f6dgnEc{XH@OY3;6k!!f)0?inp8FI#e$J+<6W+q8N$sy&7| zeV-*~Cpxoo)jORN%y-+O=S2w zEL_?>fr-t|0f$29VekR1(jUlhEA=(>AAqMPz&ef?FN`?Ks`6s;O1lFlZEo`+f4kM* z4v>{Wk$*KGwCK@aUHB(#jrillD^d+ASq2hF8iM}Xhh+^RRq*|O!=-im(nD1N95M|s z`cc{+_J0lY@epZteIV17cV)NZ44!8{DFHB^A%}X3%#KQf4WnX(wI zSrUIe{7+loOAn>yQLlX*`yZU#TW#r{JIy~5c%p!je}~n_p^bi}_++9d>h-t?f)1J+ zOia?!c|jwWE0hZi)@#a)f3MUV;v<{V&b?6~dFeJeDC*+a(qs=jX$O{C7ai3{Au2lU zHhXI5B#~^cF-*kAgbB)^{M3qN&3C+kPh7$1jDp<&S=SgxfTUk3O0iIjeO%`QmNMGg z{?}~Tr&6F-cppQO$KIKH8IcOF@O?q3gbo+4ORHS+M>s)76D}B;MPdfJDUg{lGZRAa zWAilNi7d$!iXy*MTD&4&;c+kGt=vMDtsI*oOqO#|2o?@whuT-XL=Z~tZ)4&BzDZ_!)-n}_xdzj z!F;gAW#%fixt|{}O0i7se$LoZ@ukonT8cBgZqv@D>l+|Q9 zjxv~Ud;^u$3$WS#5=p+w{l~xwq4RI$on7`O6*Y@~%iy};9rjdwj*l}E-u(S#$<#U6 zx`%|E8ER&enz)4HI`c#6U#+C_+Ytfwpne}O`aW1nanhFvsD7tKH~BiRYsFrZBzl_h zhN@XN1nWMl9Adq2SRB_jPBv`(kw8#j2pWPN#@u zu(Wiwc@c0SCa{*iv>d3gh&HIsLa9Enotc<>xMiRJ_m?Pw+J>RS@3{SbxtG4$=+Y@! ze2TfYX7~5Us3s|g!-OG)I^xiM0O|@HAzHaAT5u-P@#aC$ORK zE)KzG&Z^@4LHcVNR7THh`b|0ha--_mdZ4zP<05+xw1wC@aX;#n?u93+!%d&B6wgxz zvn|-p;2&a5=sDxq`bMkGcK!t#eDN=h>U=lDy(kA{0C)E2H+olm1@^$(i`?e4%AGF=7@5 zL{5*quu}>e!t7|F5HSJTUrZR&d(Ur3C+U2t!0j3kfs8eEo0^nHVB${1UFAz>(8Xan z4(e8jWjO`d{LU#YM%l>;MP7j#+EW2cx{&x^Z)|J^Jyb&>{=vBOr-jKKD@8y8jI$oT zKJakADx>P)8jgI_^aKlfCyz9SKCAxpr4TyW#=D)8V$tGN-;q0?z?dkv$ZllUw?E{% zs6TED(_)`JG9~M^Rbu2a{5~8G4>u9Eh}=o)A<|M|N|qC>g;sGz9HWq5!HnriejUX; zuA%gK=;_-wS;$j9!_h>5aTxfqCnWREoNd@FSC~sCij)NA6rLYI*U?H#c$vL{oZ+dODa0_#3WIKz;MF`mPt%^T<^iQ+HW>V1Hg|-N6&nBD zHAj^Q+!f>{QNB|!nm=g-s_TjYwO)xl|NE`dKP>NtccY&zwf@6=>%CGWE0W@#i#Fie zu6VM?CG}#Aa#=Kasb$@vdGF!70_?w_O)wv2VY(0Nr`v{kM>mJ`y!uoWQLTU-ppPA> zSjszmyBAp@`_(6Gqc7*prWHo~aM}0@`&?)R@PSKoSb5qg-?|;6G{0j=sGa&{D{xaF zd5VQKiOtoaunoaS%1pFm<0GW_*yu9T|MR_PIdM*2`l4K`53d_y^g8#jV2b%UU9_iM zXrdLXLrsA}MW6)vQND1GG`A3q3`}dN!(`n!=as;!IBw@2+DU+J4tFU6$Z3_jfe_!G z_YYGBpF#Y*(wJplRwOkQ-Mr)!_U5@XwVyy|uae5z_s*&eh~3G~{-a2dLm{u=pPmVP zRlAH1;*kmXu6_+(cGOgl;p_)gKUrIkFzMNRd-Uaq?H98}$M`c4>3{o;>er*X3NW#l z!u@uFTP*}PfVRAC^G!RAAPu%tn%+foyin3#V=HiYyE3=FC*)!h(PCf6k1I`@X8O}9 z)i;)11{mf)vZ4L%q)gbOf|;(}QpI2tH5OZSi3Qp$QAAbQ(Gg?lI#sg0+O<;ze3bh4 zE}UGuj&8%8PO767OH!K(1-<-$4ChT54TO9S(yUH+f@R{Bu8PhU)X?UZG|EJ{lj85n z3t}*GCL#0F+@=BbyvmuMRG~dkA)Vgb1sNSfDf4-0$H0uHbQI$t*+LLmaF?aJgw0ZDXsm;?5QXE!m(b_ty z4#{j8TWap?x_H_>M(cj+9_4~Gje%3KLGWAaI*q2g_b&2ldAoQOK^-Kd%)YFh8I=}6 z$clocDo{nMFS>r8i0#$*ZhnQ_29<_p#paLYu}LpV&U}!l3HCz96*>yOkVoxWoj!Yp z`2BYzxpNo&KIQU@E;DZvR|GB;qNSrcPgq|SfdcFoQH46XExcxoI$-9SL-N5R8x?Nu z?A;$kfIUH8oF1#*$R?yJ+M z^K3$0aDXip_Ji@1NNt|d_A?r0C5Z(}&i&<;d%LTS9_!=bi52SS0<}h?KdfPN?Jxh zo;MmNq^1GoE2a^)sf1QvM;ZJH{q!YSG_#}GZRXiP{`{O}EUt6I5HGq-arWH$I_$t% zqo3MCdoSoaz9LLFZI8;)2oGZxtgZB{wTeBTvzq6*TWS3__l zI7OnG7ntpDgDI+ZO2|;R213BAPS^-~>$~M4?B`#r!biDFPgil|Xn5Vdy93PB2SFdm ze-?V+MsO1acD`U2;LWa;*BXp(wB_C9**skt6P3I@Q|`fF4*29p+VX}i&ry8S{TD-+ zX*+p@&Je`fTD*ztg7va-=Rve#mZ)S*Th~{=@kY3=XmDm4prxp%^6rpxl0?*CX#p0( z{ch(YEIYB#{9_-lPNN`(NxN!u9sSrS(U7FLjl-1$!%=A^=*ov9uX{CeRUA=d z@m3HjkyH5~_tFAHQcCQ30!|(Oa0oMIzldA1v`n~2Zn+)SM%n(NfKWSz{hTP`KXiVQ zmQra6;vmT+NhYUd=k6v`8;-Gz#-zta-s)1PQkkqf78`D2HdLRd?Dp!|R{**l_u-0!}_daC+!d zW}=!=<65@na>MhVdpK-6%~&65OSmeNe+a{hW1c^P5cit~QEBbH?zY~;j&~at-X{X0 zZ4pXx)LzW1j`v3Y*3E)9~(|vbihxsAsklvED~{_s&xkf5?$cnMB4%uu$ZyIcSE2n|#~z4gRgk zps$jC(i;;2cNS7kRbD;~Jl&B6p}CunmB{xx3ztcHSZW+LMl+P0-Aj0dsMZXzhg-nEB%E>&t!pOb7!-#Z7nyX1*R2d93?W+Fbgl`joHk_MDc8m`3SC zClWgA(H9Lhu>0w@{rvQi8%C*F7GnI&_h#O=cRlysIr7|4b@6)W5Squ?)tmaG^8iIG zDo%3O5@vm}h<{yEqYM+X&rYuP^UXr+Lzxh-cqrfQ8^`b8G9blE&Fv&j$zdAV|8T@B0oUGQh@&V@ znaSW_b=YIn8#-ZDd)LTo&-2rhHD@=p-gr#*EwoA3aLNF6o)h^P8{(OT8x_!aG`#$Ud9z0Pxi6%|T``yUT=y7#N7q0Ms8pLH$%(=otDY-f zuK41OF!VPU+ha{|=v5{EO6gABQ~xAOMj)4PjgJNd1&u5 z+|yQw5&vg3*Ac%Zj|9Z$+afNzG>^(u!Osx;$w}DVPwiIx9~jis(v)>NVFs#X_a-VP zbCV!$|EmCxO9x-IL6qE@(Vf$TkR8Ch8FtA6!L>WiSMM5@!0fP1;XclQ(z95fQM(29 zYYRK$79{xl(tNpVfs<=4_7~g-8 z&p)&E>f+G1hh?cDQr4YIio)WCFD+~NorBhe=82kNToXORymR=Sx+%!DlA(vHWW$%k zj($RfuXY{LKoJpOnPVX|Q841zJA&qX$H%F+b6><2aHO3|r9dPvSI9g8uBO7tD}dFa z6~eEb;#eE6MX3@k7fG^PRUP_t|Sd%gLOnaDDh@RA*EYF^bySp!ewV)*}B&?4)S3>XON)`XuJZ zQhNz`rKj=n@fb53ll(J%e?FlQQz>*t0SQp3!+}Ycxtwurme!X6O3NE~Zm2C6JJ;Z8 zC^l`int2ltg=Ao=_VFH)fV_7{q5(|NPv-!8v zqe7s|FjT0WEy@$o*rjN*>9XvO2e-m2T`OVvdtenV^xxN`9@E*qfBGH;Y-`WU4!*ng zi_gx&L>iilv8#b*b*q2FwT8ge+i(}3+8p(Dx{q>`fWxvaD{&-fuhc?@S^jEWFpqB4 zx2?D~yLs&P&Ffu}apz?o45MrQ1A@Go&({zcyy7#IA;|N!>dwoN$2StZ9-nx+x#iDJ zmG7%;+iY5djT^>_0A*kES4u6fFD7M???o$_R-NgJzGt+HH$FODRpoL}&|j0a-F5!o zx2K!2Pg}JGk^>>2=n# zT}NR!wjVQ{{L5j#aO3AXqq*oUZ)C;Y1FNUyS|BSmW92%(GoLSc*{#MY1OhKW6Ntq! zP9zSNh2)pq_fBKI#=!BkOr+BjW1M$6Mm!_$mPLj^5F3k*Lz(mDR)etf);UVm(7W_E z3mIFwA$9`cNNQCH@{N%F_G8QL<5vEyxMlQXU9c^X|2iYh&&~CwJxbr(LK@?<|NRjD z+EWV5)7WGCf5&e;rFJRdAQs{r2puS7N4T!B4S_(@Nj4fm@;Zq1k2gKRdV+^$W0PnQ zI!hXN+M%Ig0{`6S2?Rz8b^<{}$_b@#q^Ci~l(aW^;v+!guU(I!nkKpnu#!${<(`Z- zw{A60g#N~r!+c@?H^$H>;5S&S(%gmje+F^$l+w}JN+Xwnc!HB*6zd_9(3OPh%#s() z$y_uOJEpEXPR%qlt8UGpT#5P`*h7xWXlU|(+kaW7PKMFaj4p-o2;*Ce0eo9PptT*1 zzp)E?!wjv!NaIwaK$VBCe5>Nvfxn=kIeJfO`V2B#*3K`bt%ICfg*@ebx!%k`$W;x6nwEj?laS}82nf0Xp|~>lpbkuqOim}4&Oj*kK~sbT8W0prqe7j8^{@_M+RbcE z&b1g65p#$)Wkdg)WjGkxoRFe%kZ#24xdE^1`yaKx(d$+UT=@R>n(;Z^-go$x#zdWvC&ihFlcn^p;iOzZCu7~~ zodS+K^+|6IXV?F^dJBPwVh|+PlyE#$SwCPDApY{H+^N6E$Lmk6`y@4W z$%LWY!&jG~G4vp)_`}Q(Ed&0!m}f7WQ=sWbGY z4#_e;7%7m99m(36);TDVoHw1)_^PYD!uVi#viDB_NTka|9`Bo5TvK9AjTqtIWGSCg)loSSJB8UHF0{`Tb&g=LdRd|)9$8W)iC1>NTrU{Lcqv`lU zhtdrkY@|(cV%rZa^IVI3J4eWh!&B_9>G;O4UCOS6Myow7AJrSc=_e|1;NnhO9C0E3 zl>dKheFaoh-_|%KAs{Gs z4MTT}{4f6Ad*AoH^er?;^_S6cnfjQU)7ERQPQCWm6Cc|o?|IDsGcG)O0rb zHt2$GX2svxCl<7f>Ah>f7!FxvToxd^jx&BQJTtvU+PLjxe7K(}ELTP*cMAc2O*%_uTV6yWI*Vd}^I@MCicC z44DwEW|yvgngH}sLm?`QtX_4bBRcP>eoYkpC|#~NDHJ70zV=?dy&uo;IhD;My85wd zIf=aiI5z~rYp<)aW3CGr^qi98Hq_uG=lsVH!THMaTb<#vaX=M7OZ^#pFtrYR^!y*O zi07gQS6bgkm)b?2Cub+^uNLqhS~L{beuk6}>QR3HNJuGjQx*5CEL-(;jd9=;H=Oir zQhBZ5H1tN)6v#T{5XQBfRR3m;_3ic>?RAheC4gDicD3@s6g`D;t)xBKV+&%7<97v* zWd%PZ)W{CLhjsT)*$>w&j}pB?pQ^(Bm;upL^lQNbM`+GBpa~o2nLJTIMBDDqPni(e zdd{W+2;jBmASi^uOmeIOoB*iLXHvRnnF8eVmIJ(mN#|G{M6HqfKbc>53QBr>*%{< z5WF9D$j-CQxd8lkad#C%wznd}cU|(YOj&tVC}J2;4PSkQ>$*L7z>HI-R_>hm3YcF4 zX2jJRZ!7@i1O+R<0IfHN#k^Q102tztkY&s5h>+`hU`$`~@QOLh9B{v((oGc++xQij zGy)nYT~vo@078D1{u1S>R;9YW$q<$a8I?Fwxc2SjIFLCrI$;F8XUuZe0T_K$&MkUd3FQqGv~OPH{)K zQpZMs3Wu-EhU%{$I@#1g&=c2K!XW)OaZ2;~nSd~0FC0oZ&M!k`X!0 zM;MUYfe@adX~dO5;sPwo2`|3!`3!iamjY*j97jAH0@M8|a>0Is9(W@MXgt$_@YzNS zcmS{VFk^7anmvFzH2J{0IqjgoDgorkUVq&o4|f6T4g%m(_kfy;-E_H}k~kp{oK1er zH-5}rB7i~H|A_;|NLMP?zlf@36Ps4GEvXd|}qCpDd z#1fw0j~`%Katq2=lKkPYiTaW!FK$XOz{ds=cIy#CZCpQ~-k<8<@a^T$el9npsA6i8 zDmziO9W*7%C2t4$X`%D|VE^jn!-DxX)juGXyGJMQulJ3j6H%~pv0KXE{0oKX-91uG z*gS7SpZLLe9tZQ?Z-$0Ic9qa|+-$4+y$Wx)?}yd>c*MDjzh|im(Y3Y@G7PB&> z_Fz?0k`Df9+-O#sT&J8nN0$5~a{123)3`=soiJ1oRyB8SoMeyi4{r{F_mAn8`!eF9 z7seGS2>`QyU z&{5KVvP>+DW|yLdS`Psw9gqE_-_tI%$CtkQ zsU&~qWLQ6>g{6Kurgfvel9bor^UlSOm)^rDN;tJ_V2%zaUxp2xeM)_0X=QTmUK}}A zA##Mw2rhM~H;Z)(3mqltxaa(p{3SZhpmy)*6exXOSv3aQxRq52IQ)~Z* zfi`!4n|D%0#;&IlZE8uUfA?|7x4R?ph&sr|2*8y%Yt`P_OjP;qo@!t`?fTh{&4CD% zVTk931>JrEocmGzCi}YIspWJ%S;4AWmb-PuV~A9^&VsCaPxa@ig`zZNufmn@$I{kA zppxPnyl3K{FW#R~wtYV-yNp6xHC~3O-Kt#&6a8jn3U(nJFE0fzRakC#sILj`SBQ*N zyKL)?67L0HAv~zY3b%-KuFmdwhm4Q$O2xS)@l7BWDxTk;khRm)5r}Tn#EG1U#QgG=Y$*La2s*u;yT)M#4t2?x{I-V*!6OjB2-#}->bzOe zZb$6OSAKNW!nmYF=)kJhCJ!IVeCVFo3(GFAZfqMa@A`v_Mr) z;+Vl2)Qx;3&fQp3$A?*H`}D~S7f|rh8Zo}b&`;<0_fSK}i&5P$2Pt0+oO*?AY4!Px z(TUXkzK1scl~wn-mw8A0e`w--9>bVd-6&)9AZ71|I!iu1e}wsUHiY7K1Gk#%eBiYN zv6o*}PwpHIdzh8Zy`br94I1hc_7xgTk7e_z=HNqlYf56`D~(*YV;q^#l#$f#(~MQf zj&A%ZIq|}V6?z>;~ z&ot4&i(qcspT@?1hz&G|*B?=sj92tu=qE|MjYmO9Y!iL2Oy}h*n3NKe&ff3kRQZIN zuAIpkgDBy1TBplbVUnAAx>{EP819O5i|F1-`3~+r#Yd-e_a>PT{eu{#&Ft|uk41`G z?--67Ma#dn=6>3Xop>CJ=b>UTi%@JaJtV|{;D?2KmbQLVWMEo&?31cq&MUoRx(>dK zIaTe2#Uc?%?&RrqE%TA{De|?M#{SY8Gp6rAqI;IpmX)jRCym z%oBy~;(U4?JElvex=kHm`roHQ!_h59kCMQVMf%y`U^)E zxmRV*SSz2geB8fATG%rc*iWZYyO*V}u!&Jkj2UBRE~KG{!FsR5WeT#tL-F#bnqHkm-D%Iljgdy|L~3xJ)BaHGVe zu``l(RCYKed<5!54R?S+vqD&>t~7BWCqWOr`(U91DUuA!v*bW)|7+lAB`dQ9E+Y*<7IKj4~$f9{2)#H^P_E<{jkl^kMx-po#M zv(|`k3~wzCBGUd8aw+&e5iPF#rn5jEif3sX!qNEHjV?1@(*Er<(&ZO*KKM9_n zdO$U`t%THt>)wcG+kkIG5hds$`8{tIMq*SJ2xEXMd!3@Hk>1qsPeidXW9CGQRD6k- z5A`%uIQ+xD(@+4Dy%Y&#UtQ-)54pB~k1hMmLo>S)suSk?Vn*r{L}Pnvcc>K$g>hQ# z5h~+KD1>89e+;Oo2GxAI7i<)3ArcO$hg&t@3pmxTyJ^Gddk4M{sO4$0pVl^r*ki?5 z>-=uESCPd0-o`@rT6&;(*u>@KlIjW9s*bQn<5lsPh3W_dS5goyEiwzS`!^t4`Di++YYMRpKcg0+Nf)S>G{!>}3u@?%tf)nvidvZL|<*!S?Q`Ds+h5h^G`oIh%1M_~ct1?gF_FVe)QLhs{ywxy~4-l7cB@ zC37P#^-~q(ILT=XJzt%|%gL?Al^YWaC`Z}d7PCz(8aswLt;Y+;wCH;c#ond&xr%(G zNGn#ba@TC7@=%~OX-sV$hE&Ra+@MPnu#;c-N|lQ6{rg-5h> z*{y>`q&Ldom(-Sx;M$R@?-_L)l~9e71venIKhT9>goAfNQ^6mN9t$KtQOt1CnTP`C zcUe!>k*%C{=QjqZ?X1l2&mArQExXScp*N?58-Y8h<8zf6*#h6u%d{NuiM4dVHmlx| zhCxGF^yH?yorC4Y!J>y*O;JMC%ydf@4}LJ~mSeO))lbHz>KwiAM&AvQx>HRRS~uyg zK$X6e`Dl(hw|w@z3Zi3g?q4%RKmNcfQn8JUZdIJp$|lY~@_oXBW~)ux!vL*k`az$g zT4if^c_}5L(PQ>_*Skrm;#WO)f?DdsVXXT}lG`eG#>@Wtlez~Hy?vZtLOc%oG`Bha zsvi56_W`kpvEv%~82)Ue!FKJj5_A>W6*jdwfnK-w$&IUuWwRf#OX&bLuMEzpejr8B z39uWo+Y#|peB_Fv+SZJK*o(C%+qP>D!nCk&BZfV+Bz9SOo7+=)V|a2ZM19!}%?CU5 zT?*x(zuM^lVz0#N4<6T_E*Og+?PPreHc<3e_@i+vi@NRI!`t-vQ}4{9r+7|0bgxI4HtVl6(46H`j7Q z*y|45OSeP|Gv4zy+JD+2QWvxArzgte^>fjw;f+YmtL8g^)q>??7^9n0y>t+#!Zpb` zVKwoXnI6>}fM1JDGdwu&%09PBURker}_@3!TQ&&U|EgoRn9nQ#IPZ-b0>`(3nbcMbGXHAKtgV{5|n3d?> zV>%A&d#kl-S~IH|x{p{kIUPXf)0*GAVZfBJ>vNd10jwbelj%@B^|}O*2!tuWnK$X#qpWRUDH&Hlli0&rC6dc9`P#Q`!Flqkg5hO_ z|2n|DI4ABKQj(aiD#%OKpynUWp(E$6N>{OZtw7 z#a@*4a5ynCyG5}R;j{(lD-N)63XqoHY{JKpz7N!9hJ;_ArR@>Uc`uNIjPZW^AiKvf ze>bc^yPZ!EE;#NSUpr`d0m?-Pczi%eIj+&e^{B0l?j~Rh3hcj5 zonQM?>_QgM)>gUpnGm1~$u&OU$k+wxXbYdllG|P%;CKLc?|+7rIO&aRijw18@6B-D z?s-Hjz~8jAdi|@xcsS&-c5n`G%zeFy#F-n~W6we;^r^P}yFpwS#BnPk2@wn&t^)(W z!6~^9Uzh~d6mxt4Ql0%pG9CeWoSLMt3~ZMHvT<5oEkeangCO?nv?}kbwGyN!kg-gob-s)(|0_HWTpaUGpXSoTmheP?C~*+{7p`iV4vtX>NyMC zeY{F?0J0eHQTrOHbb$%UhPHoZV}{EZWsCxM_~+;b$P13BL-&h|u|9(@L*uqOzauYR+j2WMI7P8FxbeOC^VQM2tfQ35 z7FW{RjMJ=m!l%vr=!GE}+=T2MKQXE$9!*p6{ba?fG1$sMeJ%e@sgAh2lG$OndbR^3 zNN}Rgdu{8%rOo}Kgz3qeQtVUx?ov&@ojCjPSF_gj{YdldlAHgb z1WFU_4*$HBID^1iS5~2?*&+r7*^;{d3{v@zPo)!Gk3g_4DY40OtM)Z~wh%6KQapFW zb@X`#L=(gm_;)ZIv{dZ5bz6wD8N?sjQF+4rj^`yZYFdqA;}72(ZZb)xyO=e>`@klBPIQ_ins&WOSZ9yfw0ghQQ3EZ#bN!0rH?;R28a9dREDMzxCYR z+Sgm}KH6`4kW$j`Jn+o0NAjZu64&b;18LhRJA_bNUui4d(wf(ds^u@Az;$LnskdHd zEn-4KFVpJP8g*+7sBrfgv|#H-jhZ_5b6aVC6Nf*2LWq(;(+qk$-<^US^(CU0$~k37 zn>z2Nbde2YCeCIyvSugzI0a)J+m#Z8Eq+u$D`R+@3Zv0hFWjq)go1!sI&>Hq9_@uYJfZ;Z2dc?gK$oc+>SAXm{-w-bRn)+#W*K+!>=N9&rW4 z0U{VQyV%3myy0}7+vp_|Y$1&l-(a-=UC1G-%fpU2y5y@$w|=_fS#tLm-LQ`;idnyE zZDE(5)Fc|MX)oarIzU&k!kP}DAG(tV(=TEyRHzs{hI7IvpH#RJ`*YWu;aTf=UyZg{QoM%4IODhE3ij$IoK&Mufr(g2OgPX+K~8(17&a=H3?;G6BT{AJq#x7m-SO1}$B z)5-uohO)u|!LPc?{4@ZsWFy1+>@AfCPiR{;$r{UHhtMhn*|nW1ALap>6br3QLZ8=v zvX9R1(<77GZ2$VPm&?@x08IH;Z|z!WfQJpzv|hI)9a4@wtaD`|jk=1e9D=M%dcmW<7z=T5w zVOxg@1ZOg9ih{PqpW;H;koUZN<}Du4W97W9#8Y(zQS}s=<i#3ggYer85Ko86yI#+N?P(>46RN1K_G7W#L4xmSYuCHa`Vw!k ze0^7T4eR0Hz?-3OiKm~85i@dzmAgy6H;!K3Le4x!Ub`1&8ho=9D-~>GXa`KN0RnXq za=RnxSrCCMc}3&(@=;l3ou9eLsO1-3QvU&u%}3YPGoH?oQfsM*-TN6SXlr=9BsyrB zOMk)sKN=175KKt|$LT6(4<7aDB}EJvJpCyh%m{BJ;mjegt9BEspjNZlVA8(^cAqoZ zF<#T`O<_AvBd=Q38iRY$nNo@bwH#u62h;LzZ(>J@X~!TWsJ-YU^M&d^Gx|H_m!@X& zo*T2z?{+Uz3P)Gv%IAtzM z|D13^TYE+t>%WZ6Zv7O_rFIWLPlb%}+}rZW+jZUMrg{-_)STj93s`}nLNJI$7sts5 zxl+$yhjNxs7=)k%VSlknfo)Adl6aXbPxz0&T}rGuRJ{=Mdi$u8?d7 z7=vW#)HA`o=djs#Y0o}GVX3bK!T04ZL?MBaZRyF!tugg9z!(Ss%?;#7@Ux#_D)$Z4 zin(-{lA&HX=Yo$jt$^yZ{z#$Y-QexzFHqTw;C>Ufd0U^4cNDTB9CE{NTw4XpXj3CQG)HUWbt^9}o}!T* zGWagt>FuH$Q!-a#X4)qh=J(!Df!{(@W@$0Zzlnc<2c-MsB}9uuKfuz6=8Y(;1Bv03 zegvi<>$rI+rtx+sCV=s8mxsuwr?=nRr%47w#8Ngq?VeKnXk@m-zx^*LDQyUv8Tv^H zI=VyVY0@8H%6al1k-+a;yvV&qpnf*01AI64!T=Mo^0z|oiFhWft#iAkWLIXi>`G}`v-b09`-<6S9HvBX8HgjtQ(*KJY zj8t0195z4{|EtH;E=o<+_Mk2W2p6xt|K6VY2k1Q$z?4ZVk7!_J_1||rJu=(Ov6Rzg z-v1Zz_%3@gka~Lx@?U&&pN9fL7IhHf6M#H9kDy%^fZ7IfII0nn^j{!`ciE3IA>DZY z1tD@iBE&)O^O4;Dq0Zie#S8wKCwiFje>3J7gvr7nR@9S#P_@0;&Ux9opBK$5JIlq# zst(?@N6p1kagi8-_ojUb0d(;{OqVYU!zUd_A_7sE%`!tQ{^7UbO-JPcQox+pPu|+oqIQ`AzYa?4yA6P5+cv6e3wj)9k z-?1jJlXEw^ncOQ6*qhUD8*lI-4x0142f0j}w{0ge7RA`6@4T0AHg-m2_zes7U5y*0km$S{So3FT-0q=ux~HJkfO;u_-bqw)V=sOGqS!-oK>W$ezgVN z{$Ci_)l?4}A%L|E1o^$T+*01PgtED?Rm2|H7~AgKaDLU^wS1obu!g#vMGz*C>82Z$ z9HU$1eB`L1M42GenWolCPm=VZXi_wLu)ofF?zd=0WF7-E@}HH|fp0iT^ziu>V&261 zy$r>9A-0aJ+3=2sT)+J{or|bS5FU@4i8S)8-l)_vEH#8Nt4Dv%$ zdJ5&U%(uyQFgiDrnGX}5eA~BKEWkds+>&_yJ)(dJ@Ew0w2tG_^ayt>yW6`YxfCN&b zbsN4J^9fXFkC1)ytWrr0>&lObv@)TZ6z^CRbN=*u686QIOJ7Dur6{4ND7hbh{Ur@+ zh+y!~d{smr?bjDv+x>3-J>D^T)@StdY|F)z>woH!d1YzRy zZvdCr9BvNy6n7V9M+Jt_J2-a>56J%MS_q7ijT`l>%HY*|%fULXS=CZYc`npnTAVO+ zrtAHUlz7Pp@xYKEkWjbEYn9`F(1a%?QG?+kCxn5Fhc$!FoLCm7-cax;axyzg_d-uc z^o!Nx-6OoPRf?tjuCiq*OX>ZRH|g&>!kE4<_qN|bk4~QtDLk@ zC*TpZx3ILAH?rsLW-lP=DZn1QEkKve930N6AXHKfWS+c1i&SVAKNRsF@;;FEUY(`m zyY=2t!?bmZmHE-bkTR~*xSgx55!l)nBjkPL3@T^Aae`$)%swLha#v}XGBPENdYVqWeZbs>5v5Bx! zMhe)@c^W+f-bk(N$WALCqbcdu09ef4Zjpx$TT^;j`;d4wdawd-zp{ibE4OW!)xvo;5=b?zpN)6@-U) zM4rO&YO;O=N;g`|KM3uz&i%oaK4y_=6r&}e=+&k$;d?h`OJtx0Vk}J6{{{`(9gIFvf z=Cm-?w;vgnN96K?saN*{2clab>r3NxRivj$RJqIP_<^hHv5)E8Dq3}g|Az~3^YH1$ z!HD$Uj1tm+F@mY9$hFIhd2^IRlmLbwCe=`TE|_~PXu-DC-S$obr2NYJQ;`u^Vy1~I zpYYB(?nnBfPq+4A;mspcIUhWQ)4rk_MZZ2u3~~TV+@XB?zc87RVHzE$AVRGJ%!dP~ z%wE-e_>s>~OAKu@hU>B0(_sNO+-!}gBEC``mESfk?9Zz}D>}kR z#)6HPvY&e~u+XPxsZB0Y{FJFWXqxVSG-t;wd?U%y7oO)#NB)c=0%A3$DP_yhRS-H{ zl&B-SdPX7BjYHL?otS)Da%09G`C7){y!a_pXi2^3Q?+XvZjgx@h?;GL#=k0?oPwU@ zP0wzNGTl-Ayv~0~_f8drX(LHHaxs@Z+mC*&LKzFlYC_Oeq?Z5_G zrz4kXHx-lWg2PZ0LfttsFT;Q~I$+tg!PaJy_XhP73D~CpO!VA3^Qq>kqE7pl`uxTZ z->ZUL1@`0J_9|#{k3=*vWi*tm?VOx#R@0yV8PxH8#rWH&an|;H_l_4}fs`(Dvak0N z)aBdOf0h}q5)IkL3vlwmUN42R;xF90!pcxF)G2Yij&_UguZ(t(9Tv_Cvz$79c_r{o zU-?Bwpmjja1^L^dadti=tjCegyEDXw?im?p$X#QnhFC4N)QQ=?crSVclBF}0nyH=U zO&{Eh>{nypC{S0hVtOY<^yGqW)-5t@*RpACBt@CcM%`{$D(-wq}nji5MpNU~y@ zijD{j?E(a!24@~>Sn}jE%qdmLXoJz5#4>wUlhDM*m8!AxsGsD0YYPKm%p>wU#&nWf zPfz-bb}a=$;)U&cE=@xo__XJu{J@EQeu8Gl!ip)Z=E&E`zeeH5Y^J`2-rGi7csSR2 zFSa2L1MgyflN^R`hz&4(9f*!mmpv0KrQW@I`o6rt`gtNRS2p$1u*ovVx((H*3|iHk zK!xOoosJPi)daP5-JkNq8>X-hf!I-5Hk*ja9vJ>0)E&S6`yy!Le&5n9(_41eeS3? zWSz0QqLyYgrhJp`eM+QD)oq=UAv{qkgMp9oO$2#59FI;V+*l}U+t5{Lz4y$&(hej_ zsYm^DUPuWxxV~Y6rA2HXlb%hd{QUSk?LK#YsKe9FesEXO9>qt9Kz+h_Jw4mQyAC;? za?z+iK^jlxP>@vB=)(i^v1%$`H-9q^!9K5OI0+axQ$s~?Yw*;VK<}KT&gC z4fXvn?t4Jz%qBT&WYO}}&GVougG0O2aXDFrK#^fNZ)q63hJD}Jwzi%s;W>wxt3qTZ zBlx$vXv?6PL$vL9Le=5VuUB+G*MCj0H)a`HLemwSzjxk^@f(q3LhO3smP@7}I8;u2 z9C9|DH^7&4Q>A}w=h5qJ;TZFlr6L>-^2l_|YL|rEv22*W)|oC_3gV`y=slAH&R!+$ z{clhgmj}kvt9d9i^n-+S1Tf>(-*Ms@#QwHnwBNkw(Zqm{>4HD*|cc5b`%<{41+ZfXssP04Agw$tNRv0TM-m0fMSA|8j&qL^PX5z3p6ut#_3}pp#>J+1_~2M8ih#YV_*p!*ED@HhsIv1ezpRUMbK(Mvy?pJu zj}aD$ClQ95_W7}$Pkd<_pjcUm0-xWkce`i1zH9N4<0$ODGiiMGi+oz)5}hgOzpEjC zV5f3I7&>f}*O*`ulbheD>$}Bq&QAtc=}g2h5VwJT^LBzSH-d7rd4vsN_^bBw(8e?; z6Zg+ zbz!DlwHIs4Nv1Wle`Y8|sFgCVhlsjWIgpxmkRbda<+4GG98UPyGH+ypa0OF6BYjBm zA#qZwiyVF@aW#532h30OuB%NAT$l(=yvL6^snN~cUAfI*uVk)I*>#mHZm~B@g{kGL zNIRCZs#JOpS!*-(sAw7O#L?3oc=Z5S9{ACjnQukdlNp-3sya77oJweVU&IaxL7vD? zuR0FsM!C|TkE)PMA!!enShB~4pQz+KA9)Ws&2l1_I9WFTHuk|wuP%4r`_*UTA%%~q z&HrP#We4vb}meG`{+$n8^nIlo;tQxSy%CsW16ZM!fKoebMpLZu88}A zkaIS=hY3(>Gs~l`5+RqBL(^%M3S349_GiEr?$~H8`xSl3#7I!cQZW>dbsPwF6IGC8 zYoC8<=0xhE3LxH`LG^NNTkpU%3LhXx%$eVOW1^*e5^`_y8pSFV^HGDy)ka0MJY<2j z+;2Hl{3IwFS{Qb<&DH}g%W(ZJyK`n<+$!l+_N!wu z7yR*g^j)rIy5_!3$5?xz1G3=f@Dpzi=zERaHIT5jDd5&4 z6A%h8NYBf!On3$MOVr5}b<%sU@RK1?xK-(+<4Y?+z0Hrs9LX#B8t|glsCbn4fLR>l z_fwnwd(9E$cgnt6EyfWyPJ9G8Fu#m&hdal@5 z^zsifm!}T$3GnX-By*DAFtmTnL-S}0VRQ?=4y>>)bfRy;ElF;NvQ+4hJy@uB2kWU- zPtq%89u0tz`6tfp^Uwus_h4zW=?8EGuu(Q^`(}w(f4b%-k6>G|tx8&OK zA`;btm6UWQZzwg7Y6VC*%KrRUsOBY{6mBq#ezVC{#`;8=%ANN9eT;;|BcDNcm5eH! z%i=3muZJju^^9a9+#z|hb(hXQQyei)_qDcZx-t1M`jy{5F%u_w#ey0VY|lNvm25rM ze0Z1h6T$P}9Vb^_6nh(ezf_Z&TAXNSF+2k@To#b#zSBNYf&Op7Iba#ZFB>KE%&=#P z_gsZkby;cyi-l?G+;oi$C^N@9(y-+tLDF&Bq?r^B{S~Ci;5N2B?`1R%YFozBImfU% zKjOii61wQA7Y_5zJgWNjkBg_^!OP^5V(J~!t7Fqno-^C%5O)CCR0cUGeE(yr5`0YN zk$I(I9nuu_#0(S3|4S4NpS}Btsj;{+84q2hs;Z2#0ys4^u#8(=G=>$_P^=nGlA zFX4ANN@i=+9F)Rxi~k4V9Uf+4pg8d}?}Hae@3v)hX9maUYiCWorP(z}yAa;`&XQzr zG217>IIcs_yXY#nvvh|#V74-MBkm1yQmExo%dCJ&X8WCV5HcxqHbGs(nM^0y*=}d^ zDN+LmvYCorhtGNVYES*9QuZzT;~@B)@RhrAKei*9F3EWWbbj<%PQKZVxTlVhQ~bEU zlE!B=E$8j&DY&q283cAYVfXex)OwyRAHVfD38rle_tZiWtO`~7Rx~3;;c<}6I)>x6 z`^EzjT!xs}xvETN_PL}-is}2o@`I&Mf0EP)$+q?Saj?3zi0Wz;}WLi#r;6qznUpCPZSxJM6WpwN2C7rH7 z;B)Iw*kh7faGl#HVM1^@el0TebIS8?tuaBl&BNPhBotAL?50nNO?gk%-vH^OvFrm0 zu#4ngasy%i%V_L)&o(-|2PDaEZJcsB6`6(%WGa9TK0Yl+che-O1b_VVi|T5wnLzU1 zWFxGVC-64dsvYKWV!1Q}Qc$B-EGy0NN>m(>oxn*~X|5<|FS|7)%T+EvB7+`!|X5t5^Ceb-o>*a-39|*tIOVS-)gHPkp&`b5$>V& za?7HBT?I1Vm#@)Li;~lEvK5ouPZGlHI7v_nElC~%AGtU?9M&T9_ZuMRPOb~eLt!+- zD{gSGwX7R_|Lx>-Ba)Exn)H%f%+_O8D(MxXA?|i=^1vpPTocg#GxNi_HB}}hnS^L;!Gn$d zCe{cU6J4R9XQd*O#QP#Hqa&7zt=R{K@o`M}~IHNL$2OfR%z z;G^W9{6JwsNn!b)`{$xVJ zUIyL*ZDGhtTI*hbzI#VY``8`_cfkG;AR!kpa)4C9>`0Qe}Fm%zTYN-BbTOZmXeO&r1vQ)-)HEB%j4jQVRGwzd|&Pg{KHF$!_t7y@8#*9!Kh8 zyakMg$IJs1;YJ@)229RLz=2r+fRkB+<5XsS)+RXJlln#TPcae)yX6e@4dg{qOq-~IEvp? zkwg1tZfL!`-`m?qCRc!Uh=15UldE=$7#75s-F&~kaY0D3#a~drRyYMnqhG@)%aO^) zLP=+^YHx45;!^x{hUg9mLH7 z=W`USIz0uTUxJL~KS7rJm`kYSn~pG;5@coF~B- z>1QZif?MLOs&qG<}`6DtDN+i386)B7NI z3@(QK$*M>sOxNJt^qGHR0zp1`dNOmUan=Srt*$Tflvz9OSSA+?racG_$8CT}7sDsZ z?M_ge`5tlo@1{X>vV!`*XfjvLOvwKXEZ)FZ9)g?0W%edc})Zgc#{OKCR>^ zZDNv=x=-dXmiu`KeUV`fUbqy6j*bRA*sxOOeK`L_kLo8`YjK@7Ie%&4W5=|w27k4IwJG| zP6gytmZ_az=|)gYYjtzq4XbK|up-F3#T!z}1-Fy8Q8TmsSr9sdPcC33B{(U5&wE=1 zwejxGfy-L5ljlKxvhX*F05RLvR;rB~UN0Epd1eanbcNi?l@3Q2>eL=ZxbeyS$-5_6 z$r=mJLsN50R@7tPyQHZI21tm14Z!*7cidFLe&4ZW=pmKDy3dGI5|A{!+#NE-*%!Wi zi5*~xRXa`I&&h{YIW_7sR5W;nYj`d)h&+&sEkuPl;ptTz_&fW@L}(yBQ;OCP3n(aN z?g#TdpLIO3Oa{;U9^5~72))H5(5M?$o!ASqBokaAr=?07zV#}kQ7N6HZnEBi^mEUj z?)(z4)Zw05D-8eR{76PF(Vql=m?u^0dnzgU(xlT ztcgWO_1}IzH=$OQ{fTGH{L-!iL}cRq@MCk^S-LTpGt_mV9#6q5tJ2qvk~W zCC2@Sq<+1l`wf=?cX5vTW~Aqr1$A52%84-4O*s{Er#y|C4Px9O_ELd4VP_Ygqr|do zj?!E~c5jw)1<)>3y_gAOdBt;2N%|kb5}Ezjgt{K0@Rpa+Or^(s^sO7>X{$fgL{rx& zc8WL$41@Ryp0YDqa%ZV$|MHzQ`7@;&1}j8_b_Z7dFEX4I+CD3%TBDCcF4zruf4 zI}y^=p!F!KRN;VFE=h^`rXYz^y|qTx2Wo-!qR{UW?{1xpJ?kYC@hCYQCG+p&d(N(s z*Wa7r@6v3H`3;1k-Tb~5h8C5Mthj-G5 zc;gqPpRvc@kAomnLQ=YV34eO8RAdG6>dC*HRAHe^D`mf{LC$(WoRO|3wwJ#zO2EiJ zk~tj2ky=Ceg{pzO%c1_@j;zF>Xq* z)xXx?OBypP_~CYhTd<`g9Um{;qY+Qik@sn$_+w4-&EaRHb`JO;Tit#2^#NkMs)}rd z_d|&Kz=2m(1fmaL#2Ec#k>UQdB4q}xw9P*oSF$39W$Zu?7N;BYkfP`V>AYu?Y<2Oz zH>AGs+v`Uj9D(<`t*%%1U-^5t(Mmg*-{$||lw^{;={DRo?kXwdgl#Wn6J^D+JUwGs z_);YjDHAXo^Csypo41E|GAc3hMNIH0#RS}CV z4vZJZW4U7`3wUZk`K&Gdr(p{CxxzqtzWRuM(5KawqyUD{DLcdl=Q25; zB^hu5$`ak*$Zvdx*A_O|wxNsFc+Zp9oTDvf`&yjxaFC1pPPYN<_8!N?E7_nFrP6-v zJ*BEaUVW%Tj#6*D?8C9Aa8@dp=OFSCycABS;#|T}g38QlGe^(1Fxu-Y+>_BP&6!T0 zbob5St{1P@%Y_G_Y-uW*&p8GP!!x1AX_3?=RV$|~U1rwyL1|R#na7-&Y`09g)F~+C zg+gMf14ZA+3*#i(F!OavI=%>Nqdu6Ay##5NWi&`Nl&zZg5A<>6D!0Fzb(lJ znZQga<;|{JlM`J8wyc2a#`6PLU;NGwnvJAtyV;i}r@?$rkTjCWl%SN_@*HF_ITra< z0x$QG`Z{Evxa^(GoZZ@Us^aiBGIQLpSsg74YOv#eVoNB2Cad!pL65fbQpr7&+^}$Q zT)(nh@)uFThE-S`Affrc5y87@8obTkNCvsm8Jl?UdwEEbO5P+PyeVeO2|+N*)>9Unc=VojTBq0ic6$?eNZggz*jzWoB}qkQcuel8RdJZO?QRV+mHeSfPqTv4 ze*|%66pmW~k&aCA{wwHitVX<;5nhDWxV14*ou-x( zK|ITYBw{w{sqDR%Vl4J9icdz^Du{Q#SvlZUUI34hCx@SZC(t0(rz6QLc%^Kw8%ueI zc`x+p>ST*V{5Kzs*Jc#6r; z;L{ntGn-7Pyt2T()5V+K_DS>?WWqW?%1`i-A((dQ)H5~W?YMz4OQ7Khr-HOHndX!o zVQH=e(V2SoQ$2@mZb-4~laR%KMFK3-2%<4|x8Qvk=7At;_c51<%94lA$!Zcr%s3xB zIX+YpZ!FXLn4xSxWV0{m!cJ(pKx2ij3e8N+O2+;C;B$i=fy-_ac!Rb#t5K&dMTrSu z-9JGjC6WA{g^-5fQAAs7Fd7B~GRO}`n{;N~xS34wJuX-r`;A7*85SEWQ6 zSv<|Qbw`>fp75PbbY<3;f;Z09_Ql`AkLzvFhqq6?{94#-?IuemzwC`6F)%IXQS;u! zzULIFB>zNTl)mYk_I6Hc)J;|sNh1OxBSx`<6IQT{5B$ohqSVQbV<-m%4{Tap0UeJsu_eemIBrPJ8A(v_`0s-OSO z`!N2(X7BVXqsCD0VHpZMNox`-p1U?>)x>o~&FS~$D7452(RS`rU$lCU~26d)MIq4t&Kq1GG+xEba=*b`o9^cq7lwPL;EWOh40 z55b$vhz-Lxf_)%y-|zXueZH1X{g`74j~}pqwC4{ADr5pN8jJw}kwTi-LBZ5&r{eff z?dVi9>{^stcaLfu?-p4{qVRlXs69AcT$FhTZ_GHFxWKJ6^iS0>81Z1ER6f%F|55eV zaZSJ9|2R&I5(-ET5Cp+iU@*E{21-hcPU-J_ zK3~tz`}g~Qx5sr|=enQ!IeR?r=bT+O?9|H}q@Uf>5|_gN5Av?{FjoUgKTw+EPgscb zZG$d-3YQH5?lik#MKg7UnB>@IuOUSMV=J+G$%eL>4Ip;x*P7#6(qZ8C{Vo@!T5BX; z?rt|*JZu$?-Yn7|&VOA2!lmd%Pg@=?{0AVBjxIE0V}nYT-1vKrvCGxljJfC?DWmJX z9Oy#{ypHg%qSCZA3F11n;N{Bo{I5>%4(wjg73NwRZ)I8Xj;Fr$H6kA{LWSm%a4bOH ziNJ5gb?Nwzzkej?;M~{q3|$itdGIiHwI=s~vwH+)DO2Mh#vwj3}A6TCY2UPFQl&Fi3L)Po}$J3V!>} zzYI?(m>Ab;lj!s+7L?iIR8e$*J9U>X5Qh7{ON#;LFUidlPf zCko=mAUv%%-{wDn#S%?7GXzv_6tBFAcb^r;{#%lvAI*osRbZ@aYDC~o%6Qg#;xrcA zPcE3uvm9X5cw>AOEhb%RD~C8=r9a^;=%YcS!hT-G%7KW)#V)Rca~-P`^R6KyqrufJOG|xw@x%9htM$J+u`Wf3dv?6khnB(?|0; zA1hk@_;NDYLg?2cCyBG2;Vx>D@Sm4F7wYC3CY7y0`_hcn| zOX5G8VzB4~`f#;C?A7HmZy1N87=}&BMM0TbL*`xfE3B1GW5F7tXX{0!32A?#stkTw zd;@!vXz#VJK$hx>25zJZS{6-;402OBRSoSU#4*~0{~@E759f7c1u|{mObwI1UCVyR zeQu|?k`J$J5XyNu@*InWq*WG`;@Zag-=&bJMo@*;m*R{!((q+I_3a%I$r{dx&8;Gy zoN(3WwcCZ3dTwXje9iw|-eQzUKQ@&yZ`NVrpNEqjhH6%(_>OlI{$jeB#z&>h$TF5{ zs}&Eo{UlB!nIKIh#};Q3$$`S*Qa><|(EbV*VSZ;19M6qjR?}2?2d)A#vN4W*5g3BF z1pXgC(OE;ch5oUM-(3l4MpLmsQqVw$31a4tb*r9h)hkg0yOnzBk{1SIc3Gu%&rqGX zzV!VPb&<=0^RZg7akmgRPQJmRhsAMU4#xlgfxWZ>(51kKw30Uc-pUeqchPFnAKM&{ zv5u>DZ){(pXvRPfu%}d{Qvjyep zyJ1GTo;g&!1!wwIW>sK#0H69X|33jC2bA}h2M6ghdGlK;y)(cXbTU|dfT1@bs$G$X zOm#bDVko&nNpDZf_H(}{t+vY$k>c~C5hIQJQ;1OM@WO;SNW2jJpwGYA1J00%3zS#< zPi(2BwMKtYvD;1hOcYN&XfjQjyk-P<+j9tuj(C+3L?;?Dv|p!Jq9n*h1tj^(0iqH@{5D7z~c={@SJOOO+-y}-h+u(QjPb8- z_8b^D!T&(2neYRnzrgdx~u z8DTpj(Qkf2$wqEWa#N~<(@O6Q$AY^lmJM%?9Ofkv3uc6GSoL@7xhAIx6(GjGMtb;Z zWrVQoA6_P}bpc3IR#&ZI&_PdrtA@E!+nCbh+cCERjlb~aYZtfvW;k_TEh>X3tmEo= z_4L+r@3C3Oot=Aj8ojd~=M~1#anOfO)14jf*;AFZ8t)05#;yDRoPbA+;`+65vRy>`L1`KE61a zjZmx5K#F}sd7P~-+}vG2L#jdN;g=p(ZD(fIe20wp3pKoJai&>=O+NMB^-ZRF{$Qah0k&~0sbM(owA)@XuggBKO=JG3U?(|g>-y7= zu5>+XLWu)Ig4tr0xR=!6opfi{qW7g7OdHxrH@leMs$ zsr59@Yq~t5!a5pGL6ta6zFVc;GeD4Tf6DKJQ8yM?54G~)#pwYLY(y>bFq3%5Up6M- zdJ_$Q*LLPxFJkh0wyANuZx1J6^m(1$_VVo0(mo~{RMQK>_i&_`B*a%d`BRxk>p?y8 zMv1~h(8iBa$J~!_S$jPPWqwoJ_e}O}7QGHy2T^`~68Ah}G8XEx?`;=-sIV>W)bGXT z3uQTmD5?94JB4knOa8ETJ{^NsFXSa3SO6Pj zx15dqC-!(^*oy@JZky3O8U^yGmcI0IJ>M<_ou6VUIuZ9`*zNfT4}Mt+z5fb+jc{0; zW*X_U)-j)(&wJ%D^+jyl2r^nz-}X!ln89xjg!dTY)5K@>T@f&%(J zDyg9+vN*j#52`!uP3@M_Fge32*)+NBx!O5kp1J3R`gA&e4EgVjSsJ)((IM3*9CgkCQvA=<^t2lWa56?Glg_+Lp@eQRY}<`)-m3& zDni*U*OZK)moeV{1`GHui*4ihsfBYC(6KvKZbHOWaot56VQgh7B$V!)N(>xCk#POs zk4MtXLv2N(r21Jsng~_)y2nF9W!er;5+C;tH)(d6p5`&fe+v)J5VZ?ph4l=Ff*iA} z3#smN-RU4VZ%pAE6WOA&BP{m``I`Ak!2??LAlGzZbm5c6Q<~66`aXWvzMwnMt(RxEDo_1c@YDH#?CuBDCnnXL2Pt8?e_!pv}#kyNuM)s{M+f?LQ;3>Me9}r`qc7@8l{-FX|kb^ z&E)Dk1cSi=2Z=X$hSNzcx?X7X{g7~)O{aow6b@-3%*%Hq*sym&ElH#dw=Lf%{i2_K z_$jNUhWho#q;^G=DyB#bDH-8Q)=$|_A>D_Uq zyl+ngjaPV1L)P{Ve!l)qKEUMp6j;9}P@_x@9*jp9e%PrSi8!aJ&<7v(rVr~YxKXAW zfrv_C9raCv&!X5dLA8stu?=>>`y^nF=bmeH)kGgY7(?tb!6vl7*Vfm`ErU>O@bR-cvXa3Ntra$lflY9+o(vr&u zZT;1Iko}a5$W49+9oK#ZdL<#}!(TR=|w}m$*UgLAr6@ zDigj~U6^F_IZa#XCQ*LBl;)E93&6*?RuW=)X7Eo}A`xaw;3byTHpdm2##^TxzHOVe z7=QTrIJpuQY?RVnN?$3W7i)m9@9C4pMTD>r=Wo^jIIYHi)vw1lw1$-yY{E3sFsd1i z<2U6+SMj+$IWh9&tBC2|3ZG1LHA7caN1+a<9It0<#(Onys zU;d242m8*O=AnFZJ^0tOWObmX+n&(1ADXN>)X%u|Wo5JSiz_B|kvet~B|`0smE^Y; zf?jF54PnQw^`9LtZ>SvQ)7R5fS1A6FKfMc^@t_pfU-$c@k+o3x=d`TV&#bJwMO9II z5Vd1V_fUS{_I3}W!S<=idxuiCAPpqVcH8d4?L7J+nd{UzMWw^;6E0A7c2&da#MW5)E|r;UpN0Ss3MSzPIm&mlwY9A&OMRYlip#~9(!OE9RPx* z2gtpY-nZ-Yt`tHT+QmpX`~+JUvCS_AH8|Q8A>0suCM&}EgOHNbVku+ZifOrA*b$}4 zN}t0^_9HIx7Q%o&oK6Unu$BCfM+G3jinL{Ic+?v!hc9Z@zSj2=2)%!c7OUo*04}_H zKTCx0xqzA8oVAYQ)JNhkwa5jqxae!ro$x2!ZN4ddUOqG!E@7X}1uD6iCXl}0_`vpy ziO62gD4LFo*B$jcskj91s;u~J?4Mo5PP}Z*zkh?!S>@AnTNYh90YXdo>#$&#*W$1J zNnl|D3-H;71xdR5PrvjT2vsvA`mrCqePu|Sicubab87vvav>#1`*zxd+ZbfJl8e*L zt>e2)jV%XsR3D=_O!FbySZs$TxTW=YizaSW#(Lr-VajQu*zDi|#UMub5a=1p*e5x6 ztd8$R5)LxHi;WWb7&;4h8zTFuuUO@!KeJdssagxd!tH0lb3(<>^5?$z25F&5?3c|kWDYVDShW8+8>n&+~H2^E@FdZ>njC!p>ZEXYrR)Y zUB3eeAx?%PBqtlgcMq$E z-z?}%$mPxuHTnPZ)M*fO2TOS+Jkh|c??r4Ge7rK$bSc{cfW3LC@MHq)bX)x)nQ~aT zzx|7VKlfx}&T?h}E~`$&kZjiAbZ%5fC9$u33u{<%r~V_ij!~X%rQPglmKVqN1JCBJ;tQ*p}*=4AKPQjzQELc`RN%HhJ_{w=MD_W>tli)kjIYEt*>3us~W zbv|;AJlyp(e-n~KK97?QMLheYVtl<0ZkI4{hrf@WodPua5Igo0Hvp);lU}*JDgFFF z#NYiHaM=_#sect$2b%pog?M?Yp!}_ya}83XZ=L%|vae{R-}HUH`p8h$f;=y>h!>Bk>#oY5+dJ6&hxI{c$wXV~+J7ZeIgIWpzz`92GzIg~#Iro25kN{@SdwwHbH7cx%$=tvNa&{< z@_w*@e;Q{N!-pn zi^$M6oPEZ|yO9mMCLOA`0Cy$F1JD-gE3rBc4FSD-+PgvSQMWCYw_u}d7xGy6S6?`@ zmiH=9HD*4wD*YCe$W`}ECBLP*=coM@2IUr3uz zx`Nn!nmwOvBdy*b#nhbJcFp|Gjn`ife?KRgnF#Zq7~y>;YECwLBBrXLcY~4iYnq1p zWTqBJL?-%>&Ye_aT9#!9(_+1FRU%Av>yKWMV}aKe+|*n=3^tOeaA)1f46lIld`@UJ zkj6AGrp-gtY;2R3u4W9N4YGhGvQ%==#)X^C#K`0RU6aI;Rg-I7Gp+lr-mS=$^M__W0b){VnwwuC^?AAWCBWm)mUG?2It?`w0 z2A|*fJSpffg?Q~$hRVp?WIMVyf4h6haW>DK`nTe{CJt0sas|=JHM&+DJtzPp`qq5J zuhWAZ$Q(5g)VPz#VcCay3v#+&|BFfX_JlQiD!-f;iZUddiG@a%^*)0YA2l!y2VAM^MP(&GbLd0=xLef@ETnNB*D&K*|U z?2w03s5N@`pNfHAp4gCg99s{m8gi+O(@nlux{*BFa}F;bG+khQBw(sF+nl@`1~V&( zEv{Yw?}!qUP#Qm_VUp(=Hl(^rTq&6VmvY`3AJb-YH!6JdcP*xg9SwqNR`Xb+Wwy& z9oRHp`XTi8s~g`5_lqI-u}(wMe(HQqG2f*jNc1ts>sURz%;XA{xY391je)nV51L7@ z)@{Y?ihlT-u)=Kn&<*#nMo;SFjCBjmJrwBWXt7>5)Nj$CCMb(E0$b9qM=u{wD}qfQ zxWF4 zKE!OheX7B~t=$L)Y&S^xiqag&WIR`L((6K;RDays4xwEJw3?yLUB$rn6Ytqni#bnK zu9CP2$M=qLq!xR5oK+pZQiKt`>O~w>dmFxs*>V*7%^NGXPEQ(W-pn@_XnwX_aqtIu z_n8xj)p3{d9o0Trvz@sog%(iEfNni)_yw4oLBjf1M5CZ}QJ|;*3KKCV*e(b>FnWgc z5antT*opAyxg)`a;mJo2a6GwncUqoOgYq(GCm?p2{zZC&fG_daecXkAKoXj$^~IHt z($g~v_D`nRtEG%98JV7(6*N3Rt$Bccp2?{Xw8}K*r}2zz<>)muo$!H+CsA@z`pQa$*N zN;j&oc}_zkAoTYNn%7C{#^ek6%pxN!0e&G$;SM!*^C5^&7l2@&?ClrWazft6ax+h{ zNu@i_hSF9(Y$MOfz1~{~Br!}{*`8oT*xafk~(#q6QKRB3Py>+w4wp zj7#9PGd4yX%A4ew7jX>?dldq!RTu}x?WFlbAHC`9kl7F!dbfz%8%(d04n0)Nuq2g*

ak&lUh=lsXk_r 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

;pZ#d|rWwdyU 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 Nf{gN;a%q#`{{w&5cNqWx diff --git a/docs/_files/commit-status-flow.png b/docs/_files/commit-status-flow.png deleted file mode 100644 index e30fc6fc80028fd8261af44708c3aa79307a0fe5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39347 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 diff --git a/docs/_files/commit-status-github-failure.png b/docs/_files/commit-status-github-failure.png deleted file mode 100644 index 09e92464ae957ea4cac4b462116c3fc70ecf9909..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18152 zcmeIYWmH{T(kQwK0TKw1Ai;tMcXtTEgS+cy<7}Lb6D+s~w*-PifZ!h7Em&|3?hstw zf^)k2oOk{%aTm)>^ZwX3d)Aa|SEONuVO*BZEL7R4GYOB@pNlCh+X^1QGaq z5)FO_0zD0KQ_*l#GK7)X+S{0zTR})1U2P#G5EpY35Xfb^IMLD>OoQQnS01AIXh=o_ zEy{Lq#~@xv|J}DfHC5R&$Lf+|I#OuNDmj@g_ua)A>fJJxW&dZ+T~<*tA*ZouDjPSC z+x{-gkl%-w*9t~n;a&vj(|YKT56EXn*FS&#UhF#G_L29Ch3$rZZqnB;+Sd=e{I;<0 zOyDNCL*VG_l$BlY!#gjpXg$O=2W>_1$r5dibyshJyJzs;E&3LBd#CalaT}W8w3uTW zq8w%W9(kmYyKDtY8;p`*sU087c(q>eD!B0Rs=8f>egpEp=7q;ueB2N3w2x#%cs@S+ zEgy%jn7WkR3B2*1MLze|b#0#iwZG!jaoCg=+3a2%=sx5CD@P`co6HfcI(O-656C}q zk*WFE-0AMA<5!4O0E@K`;e8 zHs32dr83MYJGNie4JGShG~q-8#vebEUtUUKvgTj5n*IFxS4NGO<%S;9#Yg_cY$2ln z{i)FBT>K8Vz4RC{dlH0|67Pk+o)HgOlKSnwSQ|t%)se?6%vQG!kYI7oM8PCDGcBR0 zOn`gaK8tlIE?w+i9h%_$U|(z2JFf z5*?)Wg*qP(5>tp=swkwz$HA^`URg;gt8J4dOQVz>92DZWFqWyB5>nty$m_mYSc(m~7^kl3R7oMNt`8oNz1XRni7&1X6gaK0>iGT? zQ+b=yD&3JfTUnmZ{^W#hu;Jr0L-oA#udQ9!>_t)~R=WAk=H;=bG_hu1q|AlrO+S8Q zfmfm=8r6Vy-JGG>o9@}_ zh5)TQwfQ57HQ(I5jBcHSu^UPUq4ixHO*YdMLTMM{?wMgfe3V_7=B`4WIq$C9hWKEc z+>D!bbv+)_Srz{tk7v4tW%Z*`qBtqv^AJkVE^ zFzSI4DJIgNbSLgpdxSp|zrFivJ>k5oHVqAIQCerSZflOVLKo z+IQ=c%XHm!gzAF7@VZx)S5`3*Y$bduOYxAmypq{1XS&W6b9r5%lb^>TL)tIJMU|CgsEWT8qA6BrJ6L;rtH$aHB_o#cgo|HpnKXWoi=;=3^CoEAabKxQ4VH9`93*1a!#?^oHSBwz`T6 zzOS>~aCc&sBU2Q#LFDgw&^o21@ju$mjCp)OX8Z0SgdsWW=C9_Lqhe#(L;n1WmLR9e zJ2?(_iMB}H`Oak4~ zNEP9hdSV!h=lZy&;84klS^8*xu3lUGNpFCd+^*&%Nv8^<;(N7_x?ae-wt_5j-N6A~ zHGvBng9g0irtN`z)JKMrO9gUTdXqx%4*hViJlYP18h3x=?nm=dmY4}Lq)>R2s?FRS zC);8)zvXw#pAzEuw%6<`G)_5v5-kRG`?DQ*P^?-**8+1FW<_rNo)W{LNV0@WNdCG` zdvcFcv<4s@(~o|9H=?r~tx@&P}z2Nd_YN$UGhzb}2&&8pp%djd4dvm+r1IjNDCZRM2uLcH7j}Dk2vQ63!XH z&(@7Ptn1N&?c}0Ojj-F`ePY^;3cDOt_wU{IdaZ=$z?7J89$;@tI7h(6OLwrinJl?x zcj5Gs_QOdQ?0pbDGj84@azPrr*w=vB?h}4rUwhJXn-ME_w}m#^)WYvOq>d@iV}BOn z=4SsQBZi7{yf}hx6#I?wMvU1L;1~HaRzs=q`eZGjRH7k!Si<541Q1agrikU~Y4@>X zS>Fnl$)6)yQEo9T2u9`5o1wm8h(p9kj>kmS-$T&s z5hVBw-EqTx4+AjaGgk^R=F2>0SQ5k4?>8iN1NcZe^E{7UvUP^9^|^NjVYNMD=i znc9AvRrvANY2^2d8(c!c{)yh-6KBhNzX9yNWe+*SvJXp9#bg4YkJb zN#Q&Qb2E^~T)h$D?_ZL6p<9DC&Hmc4Lkd2C&uo#TU*WbtI-|oV#cm9qQ z7k;{cTuNF?D3jtG!RR;7-(%-tkH4kzgyDDg8$b1pPw$4GL=*-E?n#XLz452(&eQD* z8K<>C^KGY$c_GL1N`MArO#Gu(`{3^RruL>tcIo%L_1D6wqu`T0gR_r((3JrMPt+Pstl|4b0m?aA=#^y z&j;!ms}-SYIr$z@E85J1kfr9bXHHw}2D4BQ2rj@}L_|SKMC2bi8IXykdPWOKwkco* z$SaGDg!mzdy<%0NLNOA1Rf#N?_uL{tjZjAK5=j<61`9``rE+m`$Y{K!LsK0|UHJJm zoSlP%l4CT+zBDp}QNw`?@%o&D%f8^7yo4kZCmB#OG$mhDr{7q;!^j`~SroZ!fLgC<|UE=X_WE+I}8_fw)&w|^Es0-WI+gB)cqt2tZ zL%M8IQ5aG9*{pJukJ}B6%7#1N5tL`LAp}b>l#|F_VwGEzy*p3k0&H) zyFxtbJ6Sx5u)ig)WYIX>E%`Du9 z^k-8ab!jA}yVrfr*e-MEnQc){id-Em(^pR5Bu9&4xW2cLGOK;sams+fs)u$L($}uN zK&=V(T?d~Q#6TeQP;($j){vFq1>0CN8XDUeK^R@EZGj{j1mYKRu{8u+LL5nqAg1O} z0kZx2W-=0UV*xUC4q0YdTM>wvxulytMA=PF1?*-C<}oG{5=7>A;ROg-LmUlBT&%62 z4!kY`WDj(Cf#>_rOk^YvAdZ#-WE!#xBqBEU5E6Dqc1C6fF&A@ZRx&|k5`KGQ6J8}z z@jpobZvtdyj*hmxOiVBsj1k7hXk%~6#KObF!^F(W#LCJ5KrlGCLLCiV7@!X1_ay$H zAqsH-+nd`un%h80?r9nt**G~0kdXo7B!3bIM!{k(z{fu)xPN~j@8D?6Bn7;%1M2|* zm{^&axfz&Q8CZFk{)!Kb%F6x|8|v_<6ajfMxft3qu`n_-SzG@N!@*I^`Cs$>TMP#k zpjKg0f;iYX*@Gcs&Jd_0`CliswQ_R!>zqywko!*$d|MftFabAXX4-fDs3PGRxoK9nDStwLyPd&;7{%!U!r~65zL>P$X z3_M_VZU%042n!dB5gUZtgy%1$q@WIthEOo%o)kcw(Hx+|%Eb-lGG;bn;N~%bFtD>3 zff=~Dz`!dPs}UD77pD=sG59YeI09!@X=GnktT;KqcF z!3f}kftkgGm6LGJUjr)U z)(~Y!!+W8zaI!G7GxM(3rG!O?*J(IJxvy7M%F(@jKRF(07XMU+03mC zO(9ISP}2vL`)%O`76S;@@ZL56$`9XxweX7ALkt~l>{V=RtOUsJc_q0g`Cw8c{C^q? zuZ#`&0r3GCVtj9Je_GsILsO=QSAM4d3HX1Zq-Rx`oEL>NAmrzxc)1y|40J=5%7Pt>%Zdq zk0kIP0smLK{(ln}^1mu<2oy;4VE6U&W3Nr1_C_?4mJkKq-T!`S%#8)UJhhe7bO3=+ zfMYHcOgK<-DlYI5$x%vH4Cxmf3J%AMvazXX5QqdMB`U1qGQB$obHo~-`F^->CAtk$a9s>i_)hwdXtiNNh2hi(-qbuk8&XMt6DCViYu3DJ2F(VsL3%2NH&&(Wb1? z2`QmdR?(g$0Ll}-G`Y}`7Pu@u^a2YM8I@t5kOEqbB3ez&B(qAbhFM)ZTjqC#PXX$! zj9griV<$34_6~N=&fF&gb z@maW;#HXsPnD?J+1PTf=qfG#kr0r=@{r9v<`TccvQO|$QOmD}#c zl9088?vN)ejW%J?J93a-UE#4;OYQD1(R82{upd}svo_Nwt5qgGNc%RZo{7!SeMt0T zjZ$gC`t86_wKpfl>zF3@=8CGCi?ZVx%1l!ax%m!hYJ7&y0#aNN-!F!M`1RA06^0cD zlY%Yh(kO~GLbYeqek?A3_!f~?dZ+8z$<9wya~I#o{PEj{P<$B&T4b zx4hx{CpYUU;iK=_nz%XVqDPE+WDxLUReL>=l?{cxnW&d#X>=%Fl-nCDMM;_)`~tRU z)^EnE^(EF$4aWo}*)q_)A^7dP0rlrQl zna4+82Ctdyij+goT~VYozNO9{-u)!uExj8Xp1KNT}q@r0LM93Gg_&hV&Sw2{BIU2LPj)bv4mH?Get zozX0sf*YhqUYE?d%<-E}YHq)zp_%GQ2;K08D#445sCZtqVOSq&{&&|~%lB)q1ak8lr#v%-eT(*V6p5i%~o6%%+8ce(dFJ(Tt4OY@D{>2Pni_ z!uu54LNA@68~{@1{nX5~4#B^UH&Vb8;@DQr-2D2i7kYRwv}pr_l<_2aGifQ{JPT^xn? zV?oxZu570}>tjnoAnnU0h0CvvHM67sV*_Hxh|QP$j03G8+dRFv_tEmY4mZ&&`Yp*R zp)A}{yh8mg&v6Yh)P6SGgoLj52d&!{s3Qg9kK0<$W35wut{&r5U2w&0EJ2TOvas9q z8&Wtv>W&O9mxo!~q33HmM^zZ1=J<=M#6DH_FjD;V(zRtGo@md-znbb-wd@!1o$tv> z0Tfh$VV+gry9%{U+2ta{uHY4(AsRKOOYBS@TUjT>n+!pXZ!U1YGNjB++&bG#Ca+c! zbn`j`8c@f85*MSDIru^Q6}cVV6(2Z~VdG69#d-FjS!$ZC}$%unVT+|io73ez|`Dt#$vm{kBcrP~j>Q~|#qYjcVB+Eh_F zDse(vQsdFo3az!8^-irM4JU*LhN!?pw**ylyF1$}o*$x!3EgkHxw+2b`xuUIt2B02 zcuw@vfrajjh6~62;wSU3+1~7>U^1+XX)tNL0RwKJeMn!0cTuCPYS#B@TDAI!?&efC zD?`@Eb|{ik_C}+?t~b}UH4R`t`qf3t$7`wK?HU}bIomMnseVpGG9x}kCfS^6B%3Lu zbMrZ!{Q7gg`&f5%Zf>777+c|iS{uDydvqgzj_O(=6DdX8QC&vziJEbH2z>gcHDA%w zV(=0q@(ZLiVY4=y_%xgCk+s(6v$HlV9QhvwP8vT(ckvQip@`wJG=m( z85e!|cfhk4NR{hytClDA`$=$fol>|jF29&>GMk49l7Sb5fr(brL&;8$OG-4ofM~lo z|5;Yppz;HX@_f0xbm&jH>3Bk1+KZ(N18z9-j8;HnJY|BVe*J(>q^4#*Q@W|crA2yQ z5dQ>GTHFBN1G&@c%l@?V1hMxN+e-@H2sCSJoXJ%zBf%?-ajPm*1|Wf11A^21AF9Zg7YVU@&I zNbs#KWtqOGX>$-_6Z2ZcZ!*X$nQ$0sSEvWOJ#5}nw`a! z7J<*UuzqqU9^-nBj^U-_J292?=_$B}`-IQVp{bfFvS6AC>ZVVex;06YkhV8lD#&ZY z)GyWZnqE`xHqPa!q&*gPyNo*h%h0I#dSbrOM=f-SoB}BTQT~<0S_?T4q=S=wbCfx( zeRhDgef;hR9xV=KqsWmBK@YE6|GZ%Jw%RFd@#oSP>xJ;-gsuRo z{pWn^d@{j3_Ag(&ebT!$qF^bRq5N!GWj}@%d`$ zd-?+TpP9g{q9d=P;Cv0tDsaB?iYjHIS7?f0?9%IKvx|Y*qg+?zQ@18^ddDWe z)`zjY#!Xn04c*(|tDxbCns}~~gh+?8eAeuPTlg5BHok~{rkhcM`TOVvbZK7%{x96JmCS+z|(72ztxuvBP+qarz_IW_gn z!yZejhsM4FnbiMW{YRX-FiHaB`k7FK9S>!^o0G-iWxE|$>RoGgpQzPLPZ4_V($0?K z=uxE>gZ#6-$dr^mj$D{`DW;DP+&75;pqRQVY4LB)AdWmO?zt6_kfd%aq3NW0y|lTc znDge*o2-%HY~{dhIUCKLz`T2j9NsY})-=y~f?o02g*=A7lChdCks-ZtJ50M+Gsc+we;FFvrPDmB#onkJvxY}$SCd0Qab(xHzhkJr|-eQ*Ah zVZ`5uC98cGp$V>cu|uxT?Fz}9P*Is3?D-orN}|2JikjS~(TX^Uw})2Z{2c!A1FfYR z#i^nE`UPmFgJOq=MLf?oMq^K{wR%SA?n}fa{om{oE`gjib#o%5F~hp$cmgEBq=4^(KS=peo`oelUqO=EYY;|?@QB+i7cSj!!|6MQEm1Fsoe@2OX%gJl}u|m(bUCmk(0YDa?6#eS# z#{iRyGFaBS*Hw;f&U;H!K`TXgPV99`k@u^aQ63!~BR1mWIU~#F@5LXzg(lpEs#UAb&_^_fX@#UBjrW zp=hBUzCFgR1qFEpA;5nt&IH$sq9Uu*wA8#+)A}nR?P2g1HK8Z_}<}(EKYE?%sDtacRIAwjEyF@n8!{lu%=l?|r^*F0%%{O}Jfqv>zcO4 z3z!XOCFAL}2hW2eoLZ3&s&8FzX0Phz^-PJLb zG)Wb)auaEK+_PhY%V$K*n?0lom3 zmWRK81RMXqf&U%w=|kJA3-qF^z3Nec7M^8L|`*C^E;58SQJU-CkIyPvX?2^_J zd15E~m2vRLlea-i7#Oi|e}*T*nEyRje@^!AxPl?g%~h0XBB4jsS<}@fFl8xXg=sNd zVPH+W!~aHjwGUBVL&xSLQ)C;fG9ZMFwwxHIyc+RkupMy{NekX zN8;h)D;uvR!T{kZl900C5i?cSlP3n&uwdDU z`MKR8nJV#~)J!}>jZg!*jZAv~a<=qTDTS}DcJ;wgZbm67>5Ilp0|sg;Cf?*Czbl)% zrtUoIw{6KU@F&9P?Cy&7jnWQ|==?u$fR8@r-{m{0enBPRx*s%Q(3)zlZ&o%1fXm!| zPixcCZC$&jyKI?jRal6aX|S1i30@J;RY}>%o1V@4VXNK#fD|Sk?_M_-qXl~3#U|*L zB(5;f@uhqw?~G1ORa%3b?g_PrmdKg(A2S_a5lh(c-p!1fmRhe9fn+E#MI^#j-g&fI zPhN~m?b{v!>;XFkVU*AW4#r-Tp5mf9& zc%$=adQ021j64(plxGzNH<#hwS51ZbB}C!)9POihEAjDHW}UgO1U>wdIV_o%0@lqY za|U!BGJ6LGz#Bn!uPG_!IA*R_GP9p~dXSWxG)TmDhC_Mp{L=PvO~MQ8RWa{^kcr=$ zheS{a81c=EAnG`{{Xh@3gA#oZnVZJ`cH3I?_`O;o1p`k~0V=`r@@jj!ZvDaWS*}*4 zg+{R&mKZ4u%L^(A2@4K$nWL$4l?gLuO?qneI43TAHjCF_@$hT;BFpV6>x~L6t?Jr+ z8=I~nQ!h8|J~1&dxC7frqGuZm>VtZBhCogRsIxK;$*2B4_IfHAe7S3wUvLq8U{H#n zUutabljKvAVDkih_s|M#%LDJtT4WSTOaBrjyRwA|q#cqP3xS<;nB z>6}`E+c?0($Lq{wE`embH_Kx(cpH-?aYsf+7aO%`aQS;%Izz(k^N5*7jTy_n+}-=dPb8OT z+ikFgp)R9JX5#|`UZ<_@)#~}R_TbpD0@c|3SRnZe$A4eEZ3yi2$=+|~SgOXBVZ$Ln z)0UKG_?J4?@mO7+OMB~f`XUIuASRZVgEFS46IDRRLvZw6h=4#tv^kUEuucZ2aea*O z@~+`AIt*52GpA#r3z~uL8ShmuH~@UIhkVfDuw?Z(XVzk`7O*}(j>&Gg8FYWFhW5oY zGEk$^4K+VMzXIw&tUT|5Nkt{$PDsva^K0IHzoTQScFewTvWS8~Al%t{=Ac&^)6U5W zp~k%a(av;vARe3GQfr4aI~r=X?DmhA-kUVu*pDCk`IHwj-Or$q0vKSBS4X4so{{GJ zOzfcj9k_UAs>_DdnGak*G{G+JvP9yRVIA&|+egfisv)iR!@$rk5(>Rx>SI3!E_-8S>?&ozL*tLB$hQ z-k2Denl;8e(b0-#6*h?k{8Pg+M>d}?aw`~mL-Y}Tpk)#>KIqA+~Eay{odla9e~6je~r&$n;hP_*(n zzh-3($+u~4%Vjgwb@~yqmfInuTy7%!#-pCKs1(}q-d*|vaI%o5tb3F zxvDfIq9#ufgwS|B2La5^NVvu9^)BX{U9KIU_JJ+i%J7uxZ_aHd>91IWrZQyK!xQvB zy;F$tbhCfQ3RplA=ceks$1j8kBB7o=Pb4eN!3O@Ep+qrB1;~5`XA(_Gv#5>^zjQ+J zw>j?BHCE3~dXL6N7t`KtkJF|4lihLn@TyhwQ=L`U`I`f_Issfg+9=Qy z@~HuEYOqD{##>SAZ_efT8P9bE4I2iH@PwzpGHmPc1o5iY3M%5w~0!P zdFS!gSBJEtnTieW`N`mG&=0kuGH-QUNi4ZSN#sw8SVs&m9km!p;ov?MJVrpm#KrQT zy3furpFe*O@E2o@C=8!5KL$&pL))zkl0 zi?VN0Lczy}1fnuEee3J@G#{h2JWFDx&*i$T<+=*mSS)RDBH6$%U=6b+_LPy6Lu(Nh z?!Vj9W=DW|5PM$J2r=mNZy4z!0jV=_Q%Yz?2JtShe{6ERc;8Eg^9{dEtJ#Vq9Lk3F zGH_Rkc9&1&blq37tV~?qe&;ie>rF$)J*&QtVT5eRStDjc!;cYEO^!ZRPnDZ8f#d}) z9!sFz$vMif%OJa3l=&f`cx8IdWb)CZ$#vnB zn=b#_l+v=mZ)VhQ(eDba0_U4XqSJsk&YB$MXwbz7l3N&YnS!tzfW$Sob2B) zYZW6(NFcSoC3xX<`^b9Vvgb3o#E3=3$<|2mqRYrAaBAYge@usn9+$5f0^AcQzP}5w z(Y8eHojGELJ6xS`BmP-!VC$66`@NsU?PB%s6x`F*=Rj5IAU!jcsj0{%{=QiV;Ct=7 zhmGG>Rl#F`WQ+33Xg%E%sLN59m}XqRc<-n0{H#>}8nwKDEu%yC>Ae0?aO<--hFnO% zxuR8oUP+e~XV$32h(#stGejU0Kv$!alatGvnxZygqeh+;he;T#V1;BJnBCoGKMF2P zVpzk-xca@@=HrLNYG0<*~D~1F00M4Gl}k~10%_Jc#=pXQB6+rUWma& zUT7y>?N+BY+rq`>n_b1k#Msm_pi~#yYFkll;oob{&%*TN!{guONa}-(j8%*DbcGwf z7%y4`3=L0RkzL)~7MFLd`1C?iufyu?vt@SiwVCCM@i}&ORZF0AtTrnHTb{YQN@kni zRCoAXYWjb>SuZ=d)YR)bB3g9FBJfS;lVwb6 zKZWDtqr<{g_v8K|w-wLN1+@A3=I57}KXdWI#b-;(hXT$e{DOT8FDvi98dwO6w=8Z* z4(`phb683KqLh83+A}mnMI%6%H4@Zf)()g^@g1dFOFt-{A^I`U*%4dbSkVJ$|E(x{zSJo`1T-OGogBUsL2s-T`QSrZ4oi(Om~-u&C~^K2oD7lI~^y1ko=Y zB_T73b@#^71cV)~1a+#5iL#wz!RA`t{S^>djiXG}Xg{ziIIp)e8|z#7G}$f2qCWiIhOZJl?NOem z_)*aGt+L*!fu-3Z&#qduzQNeF>n0qa((eAeCidWAY~nWhSH(nS5ELM)0BQDciOr@RrU)YX@;KML@kOtyu?Ymsn)I{E zlMfV$N~E#IyFXu_P_$#k>r9=7U!_&d&vIg(%#H@>i!TNNE~RU3u2^Pwy1YxoL&!!j zT2Zm#vNJ{H=~Kh`24dQiQpOVJ{3n20UP-{VJUsmU`JL@^%GjjtTDx9wSJ%u{)%IAK2!YyHO?jZPHeT={DmqC_$sT#U z;PHavRF3Rh%_<89I<-6Tb-A+@1NNBI)Yj|`++=^wFXpidUYcde6wP11bcyIPZ=i~% zHNUa7RgCW&7>G;I!|e-8(r1OuKl&gjc>ZB7E#TeCybXe4I~CFDCZpzm&< z-E1=Rv_avtntpfV<}|$RXfEGq_iypqobeZfFdZA!O_^O*5h88;& zrj|?2LlX?x61@rA?d|O;3s(Ns=~Cvnk?KcnB09xchn3Elw6uZcj09GXG2EtGdrm_` zSzMlLJfI-*2dcS|y5F9FU`ClPO@SKW@ zDlp?EBQ5fCTBPBkDFKmx@3t+}g%x&u9=R~_UmL+$ndqd0FeNz=qe7wc+K%FvwfS_{Y zcD7o7fdcr_b)Se`*BbXp?XSuSa%Vu+lgPI(5fiIy>ui@JQOyWJrhG+6=(2gi0vrW| zs8h+33o#MP%fqy)Eu>1S3^dMcN&w>HI!*%$v(G%ZTWj>n*GwYF|6wu29;XYo*)D`vEO(Z-HOL| zA3KabgL4_5xmrDMOUJjkYdRR|2Wt9>A}vN#3g8~z$Ed`x%z}-E##t#DsghFc+JNe= zm}u7l1JaE&Dej3vKZoNSZ}9n-PwJ}uWp?ekxhqg+14rBM2F#xdXv>~HHQt#Eg~tky zQ&8nGx`kI#9(8ei<4v?Rt%@%Kv_ONa6Wlvs4rV&KHi=Go8!#DMc=*tH9Zlw+J;s&G z1R8iS35l4M6-De0&gbt`?VO$3rp(&E6qq4*zQ$sbz7`T(Y;45kS;jL5nsn5rb$6GD zb(LmPt>5%_@eoxNhiQ1XdQ9u1+9d6Uqbf z#?v#-`_^oDyU!7qVCIFqt@X@T6>(u3_L##-{ngc9ewm8~?90HC%-9os8v11vutKWC zSeT!$n=q^f0SBz4A&OWC19QyyBnD#}neSUI#KyN-C@C>&-LNmJ;z8jb_(KEo!U+_! zG8MwaulDVMRX)Y#(2BqXT8qoHw4aP2>v_RF=Gdp~UCmMxEjM4FGvazO&+t_#W~{`Y zT801@fI_BZ*7B99bLCfznGG18kO6Ijgs_LRNYtmnJ?Ad9S${T9VPX%x2OMDBjcx;tW9+wj-}~ z@TB5^^>av2TCeq7~Z7YH(sHoIc;jrVzDrA5@0dOHSk3^Rkn9siy=>>9Ba=K54 zQA^t#0zx)PV)uY5iZ_w6s_Ky}_79Mwn-$!A_&`HUOaKp=y0+Gp7O16Y zJidukioK+`W$ah{*sYdV752eXJlm|!*XZgBzmYQL@P1XajD8B2t(I3!2g$|MAvblp tE(45Sjg0gnWuDZ@j^hgf@{ZTU-;>64Ny}4(fP1|lDKRXK?1>oLxA8Og1aWTyF&=>K?jGR!GpUFZWG)g1b250?(VvM@7>zn zs`tmM_iBd*db)eMx_|P0=R4>0geb~Opdu3@0|0<3CHYwy0N_%=b!()T;9n~j77y^> zD>D%}5df%&LU}NR2j9Opl2n!h0C#Et@C^WfJ8+Zl4gffR1c1FS0Kl6B0C?Zh8kP9L z9SC1#Bt8Sr|NLaN6vTpCFpLc4T>tS7IzLEeGoyVa0*E4!1z?CW;o^Mq#rS7kn|;t6^Pd&Pfgl2=fA?C> zeT0hrcNmdr^}j2HCLQ6p|9lXs#`;1$fq{{po{@GVUgJwIVF(=^8SFhXGfi-|FjBS< zV#aW1ihIVN(Z??Uvsb;N;Dw8|EqPG+>6^JmsP#Qsor~2k%Dnbdb1`xyX=(a+aTP_y zpI=#7>LWTgPtVTJkucl;nkyB};znYKwh?3u7h62IA%D8|f5Etc6V=lAzLh($Jtj+P z^x2Ml@=XBFOA(8PjMA%JGM&xj%F8%wZm68JbV7V=Y#AeQ3EjUB2JvtOS;nvJ~|2E|AvYru7#-x$IxTE zW=Xf9#}qjcds)mbkj;I&hM4It&G~Z-7Y~n)miEhy&w-`}*m|9c?*m5d0t%`c*0etXy}vC(S>9`V8+D6%tn!r1$Z;_r%yqj&as1z z5aIAsQ<2`h8Amq~e&m|^ODywmcL`y-aNfYPbpEeCOBy5pr}MHCP!YxMp;VN42eTfu zd^9jf)CVI8G)x5{ufLY7Rf&uiMGb8Ed%NGfjWH`uL-?*p7iui1{GVjdgFMjTgo1qZ zKRTYlqW(FwfLWJ`VO>4Fu%siI*YE%x0qdXP(bhF$36+zTPj7Oanw4T3)^AjIzMGSo z$sg9{hMX36ZcG|f1rFQrEna)gib6&rTY{yf2i_gp9Npd_3VKM%zwx{}%Yd~t6xmBz z%z=CNV1Li1_PcRw!KFOCas976uh-w=a!#{v&w^^tm6eXuw#&&s zKjES1^w_rClL)%YQWig=P4mdi1bK)5_N54Djgq9)Znc!#cOho7ekbUC$L@Y`^N5HR zTa`bOQswfP|2&xBax}evb;!q2KtoNfHOp;mY|Kf=&2-mn5LL1D*pqVotS7TF>M~59 zXyN1F>8)P1c=RYCJ9bIi6|r%%U9~UmbaAy2u|ThBN>ljeYNHQXzt3p5@!?r>{fyIc+TxILMIv z-v4;+?ilIsug5j*{)AAkkv`ksK5R7+2_9Uo$zG6=FdrHkTHzxX`tVLHPdR?>ptCdA zhVMEz&#Y9d;Xnw3AV5)$g@r{TD%10vnwD88YRHs`fDnzCwa{u?KH^#M;bwQ@SG1A7 z07_hJtj&1NBizeJlDkYkXI(Y5_^ue+nc=S9(O+Hg-{!;TqB8jf9L#;1I6n+&9{Nyl z%jGbX+%9EuD37L_b971#Nz02;L)o{DY%f9-W}wJ#pJYyNwFqqFZ8QAShkko|EeCt| z4)>AK#4saVLYnONZ9BIM!2!XL$ZXNjRG@J^eEs;+&+k)SZW6KH!cQ!|#@dGc{Wjw% zgi2w(%*}In$1UcZG4sQP8n3$tu}7595V?Bqdl7Y)$o!!BLbAtdo|KckPk%ZqC_G8{ z`}>A6IW5B9$jmSFaIx^jkKh%S6kR~}Z7q$3r$2hN7ytEN{3ImaNkdtsIS#kj$TzDU zT?LLPyBq!=p%Hi?pHucMDS|K7&5L8J^xIGx&VRR6$61+v<#yNfv7n=KxGVTUn~C^j zL7?SO$%v@KaILS`CyyER(%_Y#kD8(;BUKms_)Pi+PfmkqSwV+ZgR8B-)S>gSPIM*| zSe>ls_)wM(Iau~MIceKw)+gbb{$!v~XW56dU#FpZ5|!2r0F|tzawT|qCdSh^EeDIu z=ZSXRRFr)K1E}Bjy)U;~Uf2qx5!?9eQBwpEUL14{?6PfZCZ#ebap_1%G}YI$bAGs5 z{R@33C+Fx`mDzHUyJ3tLY-FsOT=>Xla+XN~Bdn~fGHCT)=jmSGyCfP)9eYCbJ0GYo zTsYdTK2Wh8%&(J(4V&1cG->*#Jpy^KI)kb`=M6o8-FaP3{73?i5F8*S#llxzBHP7V zZFRo-cO6GRwf7~e`q>9=*TMP_nkeGAdJ`Q_Prrzosp%o2w^*^9*2^hrY2*E4-s`-~ zR8&;JiPz0eXWv9cg}oE+((ac?;D3R7e`=f`;!F+5+LOBf9 z=5mRQg|#l^cI_HTsIA`Zb@ni23NxYaw|2-0W%a0Sud%gGM|nA+LTl4EGGzGhD94Dj}NVaMA2rz??7l4*H&%1{+yrob{lT z38DV_%P7IIs1OOii|tfSawzhdv6R6x4OUO&=wI_zR5U*4rx40k7Ru=hD)75TZl8rBh`q9yxasOc64&-Ykx>^F)j2NXT!Y6-OyGGG zsX$yxO0CE7_x@vI{oBq{AH4?Gqnoi$Z)4uFZ4Z`|SgjXLm_@!@yk4{LZAjkrqheZ> zt_ZDs3;dYSdYgQznKYFg+2(ne>SXSskR21-q42cKUHu+C%0z7$lEmTb|*6D0kje!kru9_cj&FsuH z_TA-ES!g&ooS!p@XP6BRCW{^e`kr(1^B!NnphQ}0yk>%23#OzH)=p2?c^>^J7)fdR zl_UD?baB^4hm%Cejk+z%H!VIsUBG6`dRskmd4^dbgWLOj`mkntF}%IO^YZTJUuemr zUaR}#2oIX`COZ*Nh5GOwC%tm0grI&or$AdX5)hYkhS*dpO)E|84LLg7ZsK)J!{e2I zk1|+EI-y@O)m)G&;Du-POO?;k>v8O|Zm2h#x`ne%fcNC;0xo-dn=kx0f8weRagSzs zxxBO#30QMV_?-WB%T&&sAf3xBNToy__-Gs66SK*{oWW;eWP=JoB_g<;?-;f6VIHLR zx2RS#+%*=YL_}uR)~Yf#Rc1v+#V>t(cA^tu`U8D^YEPV64_m@*4rN=00@l4*hMy3h z*B;po=bJ6BxAx7gY8(n5gH5#vAnj`=yu9-z>WntVk9Upp8z@q*Uq|M66CV<27 zh9hy{ymkMY<-yTVi6t3{kigR>NmWG+vn|1}A~aOy#d|7_B}Id}>F?O8adWb!n~vta z)4FHQ%F^1Z*3GcziQ+(%uuvPuAx}~PtqR+wyyTFEqU^GG9{*Ell;PZg+M|ZtRKmQR zRf76Glah_^HnqTJbNP;mvB|(dAAPUJldigkN_1S@dxPh2IdLQoWznzX06w9r{!C;@ z2*JnP%7u}KhN|ueV#nPxH8=QM4u-^uT_*~PjzE;H5rcZytJ2-IgkJ6V#KcSih~e#c zmtK?8OW(XOyk>7Ar>n(4s<17e9_d!E>ksUV2Xk0H1h^;wb;R@jZ51BmXgQVN{*N8{ zYHFQGU|=9IUp1nyx7U(+JreHyK$dgY5Fz(GBj*t%vCFS-|F}2#+!^#}gBGB%sv0=D0n} zr!Pu!oRXgjVes{$p~oQ851XJ8R9ys|%|NZw)9ZyHTn4ov)mV z8B=LOsD&dt@j)q(fq#SBrkIWijtTIQ>;6n#i-(I#;X$m*@w#>N7rNW+?M7U6c(^v3 zwwIUJSzt^IIk2%coj4YgY&Dg8RhL@@e6h9Ey(F&>Wo?T0XOhuwoc`l>>z1sg<;2?} zcmDxQc}gz;@GWQL2OZAx{VAx<<3Mpj?ihgqdd$Ew1O#l)$vfG9Ol2fLx{&gcwO$|q zlXj^ry}4x>X;Jb8AqFb6*!EI>?}JdkmDC70-2NfRgnp&S`D(X(dERi`Ws-%ne?#|f^23L zW6klQ%08rQ(gG;dalKy*IKk%jH29VO3qZibNvF=< z(R>zBhiHGco?8tE$9`KF1;x=`BVx8*lZeRbR1bo7F3Bl9_+qA~ zL9fnWe@^1I6nsk6o&$(oP?@E$+L$hI+I+|mD$6exhbkRvH=Hos)J%&*y(Y$T%7J?F1~*Jba&Iip zKOu-0KnnbG5zfdIfxyaR6S);ObA0nsWWA?pYRfzzP+~e|Y}|rf#t{o#Ks1h9I*U)7 zDqQXoTdK?7V>L015X@2NmW~PV*4KL6(7xxR*`C_x0%5q_N`r*F-SK>Rt$&1g#?@X_ zMq`S!p_09bA?BQHYIL%mzS3ATh@0-v+#4GK3?jV!FLvm_+qZ9xKfNyNr$yvwqqTh8 zGe059kIpQXqI^q7Ps{JK_FNzaD=eIyImXN!X>&MibX9}tU)R=DAoyA)rtYZ8W2l+2 z>e}L=erIOck=h1xFZ0TfSl;@Nw46RMt>=oh#Q;`JQcD>jr-0O)8t$S(dl$ zTHBS44i{azP59to>BU8Oh>x2?bv6DQcPA&=8rdVn=(bsJ4c^q)R73;u153)t1a&9Z z!W+BJUt~a5ela02$=-6om2HjS^&`{>i?zyOSpO`4%)D%`*L+Goe~4-Nx+$fjE;(r>sYThcq0yh*Y$FD`4$AgdHaHNVAV9&aNO~S*<ZwNH0AtBQi1?1(K+m*e#!Ee@udYgKH$KPEq-AL z7YpZ0VC1!mE}t`v9SV`4)35KX`a|w<@z@klqp(n!Ug0Sm0W1nHRE{YXyz;y}GwOo; z%r^H}`GQ!px~+NRfKiC~;i9xwve(W@o3ox3E9=KMDEIGMRWCnq2T14b?d_>Ei07M# zDw(j@*hIea$9(sY;VFah`I}^6c6R%9SuThsyhYmYfBqC=auzp8?-oqLEy}8 zsDJbNScsNkosbaU*wh3E7dM(}Vtiain%*OwfDm6?tm_9uNND73w6nSLw_dDAQrCAe zQZ`?e=)=gmzDjb?rNjHy5s*5#-o};&tEI{>6X0qjSwpR*^Hfd!uZnR+MdLK%5|m@K z$kvD$JOz>>TAL%8Ww%~4@Y<)PHj;s1S~u+SUTT-|VKSVPi;J|C(pU&5btoY=mdZ|) znU-;}-edvtJX>}yOv-x$24FDKz4p9925@2Xqq(`YMF{oIZLW`3cZc^?j^|Iwt7LR! zN>≀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 K=W@|6e*XiNk9-jT diff --git a/docs/_files/commit-status-github-success.png b/docs/_files/commit-status-github-success.png deleted file mode 100644 index 17cf5fd10f177b5619cafb8444c634364ec0fc1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19124 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

=H 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 E2VB+(W&i*H diff --git a/docs/_files/commit-status-gitlab-failure.png b/docs/_files/commit-status-gitlab-failure.png deleted file mode 100644 index a0ba2f99613373543a4a0816292f5a81a556c126..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17343 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 TB)0*q2uJnlb47%LY0!TFOf^a{ diff --git a/docs/_files/cp-dashboard-p2.png b/docs/_files/cp-dashboard-p2.png deleted file mode 100644 index ddb63b908ff2526329f86fe4b26d815eb4fa33f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 148959 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

h2lPD$rtpkB^8FK}b_ z^af!xNt=!~o{FT?+)MPxnEu=^o5oOcPJ&aJhsJ)=sccTPBH0^pCh3$SXkY>v2{3He zLMVVHld7)Pi)3%8$=-}<;@W{NRhLOLK_uHYNMPN6Ta%;{lj}_CHp$?by>Mv1D(yt##YnBe#Ali?6Q)G*Ve(4)Vc|UDV5@-@7ey;WY$jI zy~N5mhjROuHPx#q3*Ice82xf(k@CostVaJLs0ng+2fc0C#}9DPjQ3vu*zrX036a=? z-xTKx);r=~8Y}758J9O+d5$5ai!`tN-8i;BTeqL^S=W`2AGA<$um@IIv+>txPJ%_p zkNpnPJ*0Ci;lD}j95l$&l>TlC@&5B^GE@JqEg-OX3CF}bhSxsWkFyYH<&ZiBp2 z!K4X#`RMbSnV?mt|JKO8)bdR3wzXC-S5G}>zp?6z1x0(M)W#K>Kf7x6G8%z>xZa@7 zV(6@C%`yuoVkdYOnVtAl9XR;}wzH)(qS8qwpW_wTd&Kj5k>idgNao{tf81I)EhA#&U?siXasA?PDJ-pbq4EmnVbO$&ia3*KTT0xnK5v@^I_d zlT7iR&gX3f&?y`75~%p$QHEQMlbf>mk*Dg=K^Oj;n~F#~jrHRt-p(!$;c17dqL%($ z@fI7MrbGeN(zZxNOXR1|>{WpLrI1`*?|$#_6HQHAdUg}la;rE!X5E3ye*&L&&@rQZ z()6>8v#gy>A0$PVe3^mb=ZSvFg{zOAxE!j-h{m~OeXhU%HYuPkH8_RNm8h5c$*N|5 z$=~Et2CW(ST?>W?S`!_g*5M^Xy4<4y9aqnBF6(tWqEJc;f#J1((;b+(bNMV%VPIN$ zJ5gU;u_HpZkFl3CL*csrmgDun;)6S%I$xIfTj(S;G+LH@<%TqQEE%*r+i$%gc?sH8 z5hX~~*V7Ml*6lw-DhA0g&t&G@r+~xR?Kt#>NN@r)ks8cUTRx=l=nT17pZ5o3G%1V?5$iV$qBcKXqE92 zV_{7mbdKf7(lduaotg-xa3!P%?Xs$_xgDNJMJfR9{Yeh%$3=VFTN`5MO(RC`+~$lyxC$M3G2j;0tqa2m}zRnNEWrHgi?yb%X%WSq{t zg;TNt_|l(v!EhU)z=9-YzamMbS~5+$Y6EIS3Zh?JdXy-|tD$y>D7~|{bI;h+fLnQ^ z8(&|ew0Z?_YK;TIicYlYllfPObhMvff4CYeX=35jPrTexy`a;lg3-W}@!vgV-5eWs zYY&eH-&Vtr^TB(w{(3gZax2#)vSXZ!!hA(B6lDN^nO26uWI9r~zUlOOl{>4Ao6DdL z_?=-0_XbKlB+CVcYr~@*5aCeMvdZu;4e}u4kQB%cB(=4|%_*e0i38GRa2(Ty6LGm+ zLDn%Pe}B%tfO%o!)7;ZQir1a9Gx>;Dp~^TI^7^GWuyZMGPn;hH(@<#=2vg6@qkDp6 zF_aG$lyA1?Km2Cm&hw!->hszOA~Is_t(nXXQI;)Xjdpsu>@PyjycO|g<9tM>U*Z~| z@pa-b4VkVna`YB;L-=R|V4xa#!R`icO9rWP@j0QAmD0SZdGbfzDeOn0fM1k7 zuN4uhM(!kA3JsUA!;pSG?_NhDsbS)GNvO%hG=kM=J)dj3ELw9SM(o*-cE18>N#^3r z&M26%;O=Rfa67E&hlI@%6aokEG%zUkqDIqPi#!JyW--@?Crr)z7!eBze zn>Ln9JV?jfh=hZ}Bb{+CFN>hbD2eRbUe~7w7{wU5_*Izqb3(3bhZPO@^BwJ=lag}q zhHiOin7(-5#hyAZhTk^nJtT(~n0y1|FB_TK5^C7`cSAF(_o>L#fLSUzjXSdf&j(WL=nfMOh-@^;)Ouw>_`Y@SMBz=^jXhM8omzMDffPSes6$I>=GHUR zqvT78m;GB`ApvyT#&rLv4z%_n;1^+|i5+hTf7n?fuVGpo%0S_=sHF2Ei zoSfqX_;=0NXCjw>e8)r89e@*_e%zVL5nHuS7n~8spvIbaj5%PY+OIu>@Y-59Dh%mM z(9__azCn@B333c?1Zrg_iQzgY!OaGl-FU*TgC5h?8UOlMcTE9w>j4V~#i18wG64T= z0g?bF>)>ge5F=f(`ki!Z0v4J7=)VEVDO6v%o%~oDLwr{=*bUw0DixGK4E7+wj?Z6XoG~?!&*#D z^z8eBv@rP&NL`t$~7Hd;*1L@-Meeeu}R87@$LShx@=GkK%SddTVGR3ymW``>tWTGIbBM-J<)nPmG)`wV54Q(up+&+IE5S^ z^J%!TrtX3Hw)ZU?<}8zKmwg3UXYJ|>U};f~eK{|YW_9aP?WA|2W-eCup!#Fg%%P_c zFqP1ADDnLYm|8o4jsn5!m~RG%zr$f$B<=n2wq6SmMyy5HmvmKC}hsIR!p52u7T zKj{m~m^fHj2zl++GeLaydp`m(u`o$E5iEl#=@Y{s460c%8b}i2GJj1 zRn%Wzcs|oRV*ixSx(ho^w;8Bl5Fp4at>30d*L7E0>*SR_;+E4mG6Wa*X&l(dp2T;d z0y}*#>m6zlws+3%(7bt6*6CU2K;w_TT`wTa(aj5X?CI~~J!(w&_OML5 zsc^8at>{p%?xnUM?3Dgi4umkdol(>O%`fv6V~=peA;N^PW7pcrtPPWe3ipr>tmlRJ z1cK)7%4ci(d7`X#-+7-0wn>GrU%supvI*{{*gT25mAkca-0)xrcJvnLxDy&_R398~ zHHkSLX7eSbQ+(0MXN^9gQ39V$Jo==l-mPvA1WLejLZwGTGj?n)>7VreLXxI<#%p|z z5u>jVvO>;p_HAOd?Aa&!&5yE0*lL}V>kUq)KGTHQx>Q>IL{Sv{V%3(P144-|;aWz; zkp1h;0psefCA@}Gn(Qq>1Eyi}#NsOXZ!GLn_uiZbIb!;0!uR468|jnVTz_0yXG_TA zb}!v0e-{nRF<{2@`wkNmZARN5dVJSkfYus_nHS|UvN07083pAn4!t&FG0xj~j}k|i zW~GU7-l5KQZQji;=bO$vo>qNEYRDVxrYW>N_({gEof#?0N=1ns4@}%&*Mho#s=NynyIJPstS7~Se zKFO~wMb`xV=I-;hy3HDTo{bCH8bdjK39b;lJ)p5RI_#0iiXl!TLi1WAm~Zl12Wz;q zd33vtM`?Vf>ciESda@ZISJnaDX?ss9JwmjF=0s)P38OEb-8{QYkqLf-vSNtO)Pw-i z(W|1s2CenW1WuXbuW*XnAjKYHe^?E4&Vq!1hlVIanXvjJ_c-`dErRO~yb^qCEsw?a z=2ag<*5*JvYgP>D?K_?P8V`NW@MT`BuLgn%mVpWyEW^(-YLp>$4zQ30YxW;!r9tZ{ zSTTbwf~)cwkR;IxJ^|Lp_|-}_2%y+yK!RnV|CyV}XqDIxHWq#fqI(^Z8k-h!cZrXIGHxQ9FN5df1+Sj)ekNKZagqBk zo=cwN(F&Wo9s7$E4Q3%Ukoff6GtI909>bGLql~BLX zECX~9wK%_gnIE+5>RMHFFbhgdS-osKu%Dn1!mJn{N#a|&_#&m7ht3*Vwv2oAvY|;o z3*h+0K`=j_i)7p1uRJISa1uV)SvrJd@1p-6Y%_8_3$zxjSo};)4IPdui3R510`9Hi zLXsHBQR$_jzxwgyRC6pF3ijhs06(h{j4}s3h^pzCX<_4W4c4ocHS!@f`Du(FPRB_a zx|dkp97&q6hVfKu7A*lq_6E~M4#OiDBiJ~VA4Cg$(YitY%(NG@BKFMA22 z=eHtSGNZ{U3EQGo@hiR(t@3MoM?Qs$YczO;?7zM2>OB!^>`@VFgjoL}T9zF9vO8*I zu!r&63fl zu>7bK86B0GsTm%3&b=kF&VG3(e|~z|5R;p<4l<1GGT6h=VRmcx5+A;4I;iI&Pk7kE zz-IV1u>m_BBls8l$$3of`O>Y8{+xKjz2Uh=jIYc_zNgDx@l((}+GD8=RfVBF2NErh zq1s=XRxYDSVV1S; zSu)zv52F#GHWdN=FEa*#$br)J@&w{Bn=Q04ZAkITaSotrQ>Q_s2=i0`)O|VmT%kgb zEx{&MLZPrrX`DW-v2NK=D7TdRd$< zH)&@1u(12C@9&K`My+PAIMX3Jq848&q%!1pFY2^9DeisQ=@Q0i@6n-p3&LDzf8MwA z#xK%$2aR1oish&t{mV_;)XciC^j;R^(`xVyo`F%7S(`}t!84D2r{uiq{d8Si+m$IA zoNc+G_LD3~Dmt@PLkEt!vBiPI;$dFqmpB^M-+22D>uW0m{6J1g(6H8Vm#j$sJ%;h zPb~U4?nIAprbm^W(*h-Z?@fZI2F&X#ZIX7e8NvcCAZZtyz8*ZhPasx$wqARSL4!>O zuZzipH~sGrPdc=pWd7CzMt9ZN?X}j`&=;s3cra$iuX$6ztG2_s#A=44%w{K=|D?*r z_4k+(7^Tug{;i7V{EXNJgPAiQ%ENxt{gKNm*H72cLG56{=%bc99)kixxAipVQ|QGJ z(uOZ=d6DD&4EyPV{=h6>}Vx4areY-?$d<ub zZW6n*4FTCaYW2<~L`B7G+K__*sR{!h)_+&R8m*-1J1pKs4x3Ez2?_WD69p*0Fs;uh z@TM3S$Si&&+Z=03;r{i0(=IH)3f0B!2|x!^WZ8kyD#wSpN%rwXF!PknYta2bN6I61 zn!GrmirPt2C9uCbD(?*L*9U6F2LoqabP0e;PJjkJS@3>3FvMoxi#ZuqGX(C$Ow(9g zx0k_m@QA~uL1qB^NYMR??*MQz{QkTR#`cn?cB{(ZCN}ezr2APA78Q==CK)j>`r`GE zxc;8=HWYRVyjr|mnfJHk&YgZdX%WOF^Kk!B$hpifH0DXYALY*=0;2S+rSOo)=)cv^J4<2v z0>%rNlIzH0|67teKe?vO@S?$+SO3F?fq3WMqE|UY{wN>FO?sY}k26B^rR2Yb+k!lX zt0nM(dH*>uNY}VInr{4Uy${^rM=OgWu>E~y8J^e|*?}MVTeV%-4RET~lFEkL&EL&l z{oM=j_rzPl#5h!%kNrcMZAhUeB*KoPCGGIv$dbi?-}FWROhr@wxEWylo27E{H<#&9_p?Bv_*CK{#F-QT+!KR$>MwdB{yir z#4-DCUsBJwxGoy!+duri3tKhw-<|1tKXM7on*SR5VpBPe@O%G2YyebWA46L*6!|`V zB%eF6YigInY~N+q{f_yUXa5?VD`_ctH+*jTxYdvopNGKwWd4F&k%gRx84YxEEkwCK z%28DC&~zR@zVprjM6*Ba$%QzjU1fFAnIE0o;znwM-U(gEXbcG|RaV>BEZJ8cc~|MK z_oF8QQ;zv_%^L)!sM;p8c|VT`xZYF(XRnlT?5NJ&^z-Nr6H%&luPV_IhmN1$NG3Py ztNi<^@Fqj=*?iyWlCp4VQ>od>4(34H%oFB(W%`-(oZox6W+z*ojO^S|5+u`ktmAu6 zW4mtLw(pV$b{RWZy|jm-i#|{Jo*sG_XUZv^sa^PS)~COW752jFsZd&UruknvDr)5G zFWC=_n2uI~*L~%NH``mApK$h+I}pcr^*_IvUTMoKJ(l@oNB#Vcd!kgnoNC4*kpQy| z!e~&hp|kl;QKnson-ff_7;vzP^pd{!&Wu8aQKiv3m5JPpnOv_^3(xc@Q@MvQ!Yi9g zO^rX*fpdhh*_vBbWmON;FpoJ01Jt7BNo+hlBT3Xe6>H=|yq<}gPian68=&bApJ3Z) z$#ekGC8OSyWJ+@{K)FP}Dc_!T=q4W`M?dS>`$LvQ&7jUeH4o4S5qi zF7mS2E^rRg;AczZStp8J41x@5xMQE^Dn+0!Gi{CCeDmJv^w1_(X{OdhnGs{8#BanW zaMo5IIqr3SsEfZKFcq3nL*J>~GW$3T0+2ry`X)*Z5i_9e4M$I6hXi^BH--%eB8py_ zdneL`(&_eXKZCO%r2t5&t2`Ad`WO-?j^$H$|0DrrO8qvZCt)CrIl+4r6}#oWVCU8C zPdlKG(8F_1y=^ZlJC3}daT+s5l-xV9Hpw&!BDms#BG;;gg=d>+{v|_C{coFn7%8Z6 zl#2>;u=1rZ($Mxeno16n5e%kcm zXwbB-XRvm9*E=p&-uRJ)JQ|5%Kgy^N%ZFb{7ZY^(^@Hg=loxmC^_ostqr5$nAtTv#K`DJYtBFz(&n^><2k9@y_@ zy`9|{y$!3S$Gj|tU&D3*(4Z96-Q#@9F0R$3U9hYhr_9MCX#A*p?axi_`DtbmH)%N| z?=D}{JELN6^_Ldi+DFPvknr4FcQ7WntIHq+W)o(#vLjtxEIy?DEYf*KkFx&5n>3&Tq#a zOusg_zBT&cN>aoXUx)eDb-rvU}F{=WOpL+M%M^X}6!V z_IDR1rj9S5=IMo>M|y>-;`ndBoYvE~h7j+$6B@bmm5;p&QYoiXY!jc)2P(xC2^jR6 z7fq;{EKI}wAB2vb-6JlPb1Jc0(oUy5HMF3oLBcYI>Y!7;*1Y1${_k_t??&YZcFNEG z+)AB~nSC%T`RqD$*8v%6X}>Q*RcIVH;3Rv>HLdz`dt#k@rH{3`p?u->N`68-u{0an zPDKL7%NM5C7flp3upUzOXr{It^Ui56H_^(IMmXWm%2)$+1@HJ?TVDPT&Ipxr$ zvst2npKAR@V`js!=kj~+a2SnYn+vibdv2C5fA3Fw3Z1oEZ=-lHG51_Hl>YO%F`>!< zIjZ;e9W1MF@gUgB5;<4}PrV3siMW*m<=Xz_x*T8El48}mo)_uZ@YpinE<08>VN14^ zYw)p`gwAnQ2fO7A8X;aj;PX}JCaBxZ6h)~E`%9f2jE4LDq<$cej8Tip32`#BJ6u4Z zU^kaj1{K4nau1T}mPC?5f7c$zj-I#+lV$mr!e#tw)<5K1N%Xx((Fvd_o|-T3l*1Nx#=Z>tDV2Lt9IbV8TgG@g@AeM&oCdNl9VC$<(tyWwPshVJaY4+kS+5B^x z%~yi+yA12Q9yA39@MvgzNAB(+CV5(l9-RYa11BhKqxg$4?49Ecb(5^_CTV}|qV16_ zp~~4@HOnLO^{U7R_ONlR;Ny?=q)lX=(E%e z4y0Kkl5xg_q)HR0-N%P)j0yo7Iv-#oMKc;vG?H(Ne)~eG#d5Q6XyClN;V;pj^_Idp zH=(=UO?47i&YRheo7dvJAq;vl%d;VQLWVcRUzUN{ou9fxZkBk-RhK^Vipu57v40HP z=T)$su0ly6fXBBkh-%&rZqI=%k!`}vQYq?ofr7Y<19C!-BJoz|v{FQC81?Qj zV*G?VaTx*}LMTfj5?N$Q$`fIBGJOpe4A&cFLkDbq8P^%Dg2*R`IhHn~ zZFTRWIwBQV@?Lho>lQcziE|KPL2UD0@T8~iiQX9<5@(cr^{gL(a6q`HH&$0rzyeT&*BP)k^_+MF&BJ>4;((1 z4YfeBFk1Ec_M*ZTW3e(^@HTwb&`#i3yBm-kc&>VNHh>5Kg{d*hM_J4}wA+g&?CMIq z20q%$=YTkWXD6;EmL9^y%!6#&7v~(-?q2;b;cgrv0yc}_0uwJ629%S1UjjGF*B^&EAb%W+O0mnkJ;2MACHqq+ zYgtw3VW^EDrDN!+3JV@01L{5{b{I?m(e5E|tn{eQrB4f^* z9-I2(LAR zpQlyPucm10H3nu@BVvYLmjdhoh|h5C@|7g{DnQz;OE{o!g_k3lFQd&wfTd%IGr84| zgckx%Im}8Q zh?h)X4}1mGc?Va^fSE?PN{9HoI>12n`_^5-OE27G_?qMtUm}TYo6YK50b=V8>LWw( zFT_>39lC=dvJpH0TDSt|ynV_95OxjcOo7%BT%=Gb`uX^)_&h(Q&x*(WMW(Yt$)?}C zd>K5iz_F-+Qa|97T5;snVKz`55k`(AwqUdBe7@PU;nHU#L4d-YrLt#`d5?(Q4#;}y zT`BrL3P@#mLR8qd?hmIda-A{CF!`Xx4YI@O7VIl-xalRs{bGdZZL1DSKGRuD-uC%0?{LRjg5>Z&G3Prt=LPQ2%gFlg97F)nFjy8BY2*((wr@Xqzr6z- zSTr_r0|c54H^?fHFMdZ)**@@Vc`16g2Fwop5poM$R)fQR?b_uX*hR=c{dZje>N~rC zY68xEn8R_y3F2)rxoK@&AsB81S(<{S1Sr2LcVX)z1Rv?ML|}^2gl!(e)G<6*&Y`=F z33h%KU)O2G;`GRkmEU31sJ4OGpWOgn1nQd-Dgg)-Pl5lF%(C;VIf$gIgMS$lOwnEc z=@<|@NAYAU`_10jAAH-9b`+1&UBuG+2^E;B3QFmf5cdNPS#;@Tu64f)69;64GEkHF zFG8?H#x(CrF?lK0(^8ewLEeVWC3>7h^N%w8OI6j|fBOn_N}b>;wXCdP4TP7KxV5$kOT>u0X6M6PelC&+5eE4#1Cj^MB-8tTXRGse2pMNlptjEh z;3ZQK$crxQ@T)nfkzlh{JkcN}QEQDj>E*&|63AYRzSs56+qfmTXu9ZQtYLmfbT-eY~r3 z9Vv3My|wS-kh0pe(9DyD`jov_kiw@j?EW-Wzw1PjFvTt(x;R!NrQi+|^a-!8(Jjns z6r8uc#3D(<4asv?cH2`mNVG<+iEn@PmXiJh%`c#s4Qg3Q?P zb33~vz4f^c5}>(NhK?l+V;5mG_Haj-Q_kRA54Y8PY+8X8>n&Mn<{H&2?UJo|&Qa|T zE0Y>&vv%|E#Tiusl2jieeDL4GCKN)C_zNDF^lnlmyVbD7PE4q|^8Sh+VeNrs+}i>-_vS#C%7P)17vpwDBv-@fTP$7gvp zx0R2z+si-g6P&LZFYUZr2yLJdhQ+w-#Mb!c-^X?*LmMQiJ)Vf8>o`f2okpmf$!X1p zO2vWCxY6A-RN61YR)$kBlqktuB{=gvLk`iXU5M|laNYg%U=-5ReaE(-r|k4JUmPvg zo##-2VqE{jx=s@PVco;H&%?vrl+MpvtyAi$+Y)|KY#>hQ(A?DAsQl{tx?0Ul9`>$T!^sT|h!TsQ7{f0;T*C0$4^yin`G9!Hm;vvFLLvKq0%W?36bK|au zzGY;rM$R-&n#|=!R$P3LzJro7Q~BP;ZHEqWJWC`WvOOP4k!cZoI+nP4Gr)Hn%%)S$ zvDTkv!ji3*ynO+!Z@pA9goCvVOre`i=c!}p znvvJKR6O#w?qlf2EKFlZf7sa6&m7>{fbs22tb42M3C+!a8#Fs&Jb5r8qmA*_+i-kDo(elszxiDkNB z%B(2#UdA!lVqq@l>>ty-=Aw9Az_>$Ea3dVm->H`kzR)^~9H3UV0rWm8BdmY&7xY~KMJVvuz{ zbe_`v_GEd>dD;E^YJ29jDO)I^Q)YSHabvdQ37Df}r0o#qcSbgmSW3h^bjlqgId#gr zw^N0iSS0>}*wMZ+@jT%Wt45thbElrEiYuQLvhzyhju7Fd=%tY_YvZwg<(MXEMT_C=x>1)cUe?VY?*V1Y(ypPC+W7B1B0=YP5X z4wrf36r6CXw|l)1ZI$~Pf%b|Yw#P&jrEjcVBi(IYa;-qpR;K7w^I5Ny1d~&)_X572 z4=&!-$AL_9yzw@Uaq~fFw8)yWor)Ry5J{_Ls3&=SDKeszie`rH zaV)Z&F>>c@^V(;PYaQ%;!-R!vgs{g+C+`WQhvqrJ=xHg6^-n)+e~FE=+Y3Lr+g}f0 z>ePm{*txJi`Q`$lm647+XFX2@Od4&()>*|*@pv?o^N)4R{g_r{;56+72x{iuI#gq^q4LN8#!=Qizao`pwr%R=b@BeYgEy^99uJaLF$D_(}) zdS?bR+D;wDgHqcsqne>?PVi9^DUIu{Qeif=N zfE0W;hILt))`+?JDxLJ$qOvV$=V(v1HNkeIxqzLZ^;lGE|6?l2+$a4{6|GNJHhr4ujKw)yL$NK}ui~rXEU$ zywQxYRweaVRx=?mZamN zK0dmFTg^hJJQ-Tft{^~>U@~ghM*9|?S`7$z-!19wUBk;-Nl~~8(dEkq7}tp`1~+h? zm!GbO%Tzg@QC0|3hnrZU;%*?)B`Dp34VCE~^;L%NAH4qJ1eNlKXO=wAbyY>#dEsk7 zWqOq|EK9bQ(ehm>Nd0#77z}^7B6N>!o#Zj&3vkMbH`^vsu zzedfKV1CaLQJfVQ0@>WcRq57mUdhNiNJFK#0hpEpySnaT`$%M!sxvjmm;hNiSY)OQ zbLLwxvTxV}xF0VE*ns&6Z6IPpg)r#lP%Stok;%~5-m1QyeG4z?uyC0gx&j;#lpw== zi5q$w7wIk$P%%CJ(`}&chzh}qOLrA7X^jDT_R0^^8A8(gsw z`1n5^K8=apfC7n$3@>Yq)gW^RL`D}xpTd*(c#HmaK+aT2KV>Wu_bvpis=EXeee?#G z)rV~ZJlUBE*MY%7zRw4cc&{o0FHJ-@1YfwKOqj;^rb<@u7!; zyFl3HNWia)mve$^*Kq;UF~#n0*7#8f1{A^B*ql=TtolM_=yPr0ClOZ%e^12gbVMfS z!|UT%=xX4h3ZDO>(ISMUFEvdb159O+-`>YsACDPD?)F65Nw04dyJ6vK&8+smm0+54%xi_v+kf~8J)+L7 zkLGVG7{XR5qnzwfl=Nl3(Hk*BJN~Ua{98H*A5dikYXJZca_{0W0vb(iN{&>;O>l6p!okUjU(q z5jxnG<9PS#C6VL$#iA9mBf+#dPGNItLyI;I)9JNX$@Xh^T1X)@y`4LOGk;4Q~yZzz`kl{6P{`udb2NrU674MjE03#O|t3JEEj~4{&sA3OhH_;a#N*=yH>jWzp%_V|f_M+#p*qS*NT=wM28SyOS_ zv6aW&kcbaYEnjKUP^$fl$Tj(U)m>h9Pd%o77%$n~y77BKj-Nq|rs13C_9ttN=d?9A zyh<_-T!v+s7yZZl2(a{(k&6|=N}mmcmORuj<%o1c9V9v zu|VYoRbLp#98Zy@Q=NX2kk_6b93gf&%>+WZkDaYi5lXPkr7y25qTr@OfHW*1us#B*wM=7zd zJ(Gxe*xw|seVmhhDDIRB4E&}KAXANtqk~ZO5$73d>Ah|ZG;@zE zEMqs^5^es50@EDA&HGP0tCSm$3C@DGsJUU1r41+_oLETRUjW{YD zm%sbza@d>a-YJVi^s=o2(4Y$t#xDE+U*NHL%-{TL19 z{O~k~E+Q~%m<&?imK1=E)>Qm2oRk4WRx@gNpH*wxvw#>HaJ9`CdkUtna0QXl+zOH- zi{F6I5-Kf8?U1An(+C=1s|A$ENm$?Y7d8~w)kSH-iAK1<%j(UCXt)u3L9w%%m!!Z8 zXj&ZPcd8Nii+Rfr)NFNnCg1|RD2zR`8vi31Vx@vtg(|Q_p$v#YeU!%lUHkH&KW*Xc z;6;=Gp0vq+;w1Gjd-K96HLkw$t72lpO50pszR21VqfQ`;cY4tzs5)f2G`*(pYl*uA z^TDxODwmOH$FWo?U9bygiVpgmzf8dIfI(o-)trv+r;^ygeNPfqVU+a%(jh=hcYb^1 zKKSb%iHa!6L{^UWuBcsad3f(U zyf`5Ti8?B&MGYyU^K`#VFT2}v+~`2L(fJ#zKvRuuJhZkGOFn7|u@gvp>2kwidldl} z@7zfSb1%ocZo06>(h5^TlgyJFrf4Ti;b>4LYj9Vr8QJjL+AaIt*h~rb2%or|K*7d4 z<@1{8jr~9(eBNwaX?ibD;vMQH*F;0toLLv6cRd63hi=|tr0u-r9_8_nm(})jpc6uG5`C9tp?_sE>E zMmT1=VNC!7w-AMbDAuYRZ*x~ll-ZxqZ*HY-SR^=jJN)s2S?$4F_U)dXvZzG*S{aUI zZ#zoQ;%*iLE&+x*Ll=37t)c>9{iCqm2gZkJKsXB@O#kLeQDUhGtRYQIG;bhP2bF#L z*eiKRw@BU{oUpF+F-^wk?SayA?ekG@H=BASft%ytd##b+Zb_xCKX_CQfQv@%LBeWq zyA}7LLK4N5$wlgwVD1@wOHB~EFcHz?URX13P%&i3oUymetu2TX4$E@)VN?M%*TNd# zVcD)O5&#+c)r@eU;)E6vIO9zRc4z$^AU)w4BZGlmkwS8fInqVKK5BU1V-L!2zMM*3 zQ|gsF+Aul#weG;7?~0;3i)?ET$h%LrU3)LM(AQGm78g{~H(bR(H>VpuHa4Q^NuQ{z zx?QZ~eQ=6=Rp5O4PTRXrAdTluMneO)sz>eHf>jHSr`W;-_-TO}#nDOXYq)f~O@Q`Gebg_dKsCysVX?DJcGmWx;fl@M-< zChDIA(DXGWfPYuhF$8n0>=K=kYB>KePHs!I-$Q-OF^-4Tl0mUP9$3OhMQ?RP#dx&d z(NwD1Tg6K|zu8XE-rr*8jn~#EzC4Nk_+@AA`tq=@`p=$Dl74@hijGmi=wO;3D>Z?G z?*PQnRp>mP0RPMsQ}j&#_7T_F+QCPC9HH9X0N8u$%6?$rw?|lf?HiYJ{7gZqvdNf z9yk;;^td?hq#qCNeK-i*fBAYJO3DH_hUuZ9413RTp;D1UDGR2k;qp+=!2Mx7%>nAA zt6?^X=x7510x%*E zcz_>3|6$}}1T!~FV6V%FvkpOt z%p4ub*<(wV`#L;Y@WgicEJuInD_kPDLp9?M)rP1xrrG`A*d;8?WMk< zzjFRBJ*Dr&qMirayY;;9b$>8{1u<_KzVzfNGl zTk3q_kb$GUP9)2hCaHGC6b&{*8&1B;hSYK(vI8>EYDuOKL>@n%19`jKZ9R;1L`@1F ziwLSLyqPLisdNCb{^&TylMM-HL)Ub`t?C$XDkiwo`A7>X)CKLsM)h2)54MCSrJE!j zh@huvMPfB8t)4oSG| z`dR;neUH*?DwVEnAm^A7H*m1|U7{(3+|^amINROnN*k=HvcD2xf37xj&WTjpH7)w? z!gNm5Tz)wF&q>)IPgccDT{U!wjqpm_w!z41=*1e-CmVEKIAuz=d{$cXnCDgEt}E$! zCj^ITzT52f`5<^evE+mg5>sQs?esIK?!>*CRCjmk;k^wdxwR%%uY!KQc9%hJ=wrJZ zyvub(6DILI70+Y!kiny_mcIBZk%t5*&_H|jz|6OzwR)95Ece9%|8DiIy_Y3g6s>)t z|4?e@nzMaBUz3<8w)b|VXbqfub^G-Xr?sZtu?6WHj2=>C4~22sP;JAZpMh0R2F@C> zk`5(a3WweoSD8!|=&i`85KQ~h^K=&qWsM762Vk~oUrak}IZ)Alx7(SNfmr((Dw;IG za*|+j=RiAbo=pVOlFr{8NWEiekAx0%u{@}Gmk|%?G5dz@N5*nE#3d)*-*kK-)mu!7#BA_#_$wqb)~j&FFxKnRL~s75i(>V4{Jfvk zr6QpEapm*{y=!V)6#1!XX$i{f6Qv%sduK(~bksU@9p4U1e5wY`S>hy41-#zqoGn7ntp$NF|BR)HJ?ZK2q25mg4*~=}7>^WkPAM zb5V=>#c(K5Id|4Ya;UjDT{*Mr!M^Tzoe^Q=(I!w-0P4h}Uz5N>1qvEbh+T7Xr!NmY z(fWJ`jO^2p*!uxF6vH{^HqAS(W3>O-OH-_i&m^(HLen8Gxz9_JOg*{Dc-lsK{rOA$ zqQ+6>F2G=B&%dU=5YMRMftfH8(74q$hQMy>?PbPpN?1v^(0mV`D8H>6+gAZA6fm#@ zf0+^(gi;MMbvK#GO-MBRx{LF{m+GC-jH;KXCFldBZ;5l81Yu*hS}$Ic7F{$el06Pf z*0R(jSjo62WAV^WFM7tquNgTXHBWRV(lA1hFyYE%UVdumnQTM4tG_N@KH1@Q56P8|eZ9Mpj_nFPCqcJ&Z1a98B@`5@Vo;-X?Nv?6o4SSZNKkvp z>VdD{TC60j)&eRqp44S~1zY!-s+Pgey0A|cFBz@p9~e%OnaejBPdXu~m$r5JV~xB! zMhs3(tW`#s_0)8;TM;Kd#4LC^EsdoxYy}KiH8>|q;us4)J zYB1=(&rUcYq)GTjhb44~{gvUcI{lz$~BPpek=yE4yu<6-HoiaLp~e(13rlA zmIHxi91$YvAh_}5ue*`JN~f~fKOhoF26P^K(6YPa-q(vJSqBJEk5I%>u!ESmAre?9 zbU%2X?G$z9GN^oC!^1}r{j_*+49ohh!u<+rrSQ~nc(fLoYAR5mFPY>y!~l!FYSu5d?EazVlM=y~5pUl7L%S*?Dmi1vWT^ zux|^Q{t9M`0qE&W&IT4hZlGk=ruO_)$PEXeW0rXRPpJ!eOhv$LWjk|;tw)Fc@M5h)_DLRpo88wLyu~y z0>!~ItQY?ad1xir2;-UZbwuGD%95ARRB^qICF5MDIs zy=p31ij|BTN+3eoF(U}6sr=g*N7}JWe4HOx`L|!d!#Roi={KSskn1!YqPyS}m%f$) zAbaT=fQxzv7)KX_B_OW#s<^jKsSPP+1dv9jDSSEf%!s zm;}=rhtR&HMF$>60wk#8#$BIp;^TrD-MMOhtu%uf83=Gp0`-65i~~gYEs#(L-@;%jX&6xX1IoLzVIHMXyLOPk~N1hD8*11srstCIeAdk*Q%nuzh&E z;xOvd1_r$k4er`R12IKdNuqjy_;&)R7zS;diy^wSM7j^n=%FPzT%H{TUy&kPLR8me zQ*;Lf=OBFVZY2}IT#L_B| z0KwzSK!{yNz85WVkgO5*$&3^lY3;s0(c-f%>5zuPy_w(#@rM3*;+)n6l@^uzD4E(e zstRZ)Sb~~$>gG$lD%nJ^s=_xz+Onbk6oH7c?lHHZ&RW+CJn@^$VKzXeWcq6!QY@e< ze04k7i8}#j>BC5&$C8H#b3CMbnww6U7#gPS-gIqn^`k_P8b4c3{a=D)4YjE}8ZK*MUS zJwA1``iyE{gX7~P->J&jBUC`363iOS5QZ)Q$0Ggw4(dYbAphuqv4oho%7t;C7(oNW zys@{`8lsp}(?(YL2(bZ*$j}A0K8Hd% z>Pj6vq&dAVTT!L%!p8!yHTK%9((GJY|3+K#+S@K2Lexz10fcZ{Rox^Fu|vFOseynZ zfe$k{avTS-NsvE_!LMMxcH_DKFnCUo#^P2Y{TWXp?{?-Rib4?;z37!XP(H%|(4xKdp1CfxTfxmAO|tb}=3z5lT7ey2@Zfk=o4(=b$0E&~lrxTojK51ngc! zW-?4sO;^wl?{xDt6OQU(I7~6HcfM*3-Yur#>*;f|KlZXo3CU3vh0;TuI@7CNI!Cq1 z-b%DxwJ}8zk1o@^J?47*w|mS8$vE*A&edpsF4pvK_UcZ26SA&TPSn^&~LI~^Bm3PP!)|Hu_JAwB=l7;~D&F56}*<+7Y3i4S6$ z$clnpzi*o8y(u2JQ-n0<#arz?qu-V&WgdT`@ae){rMo0*fli&ZzDiP(_k*-Bqf89CLV(O`(eXH-Pff>PWsP$Wm)AzY5 zgHiXl2@H`BLodzGRf|W(4uv{7>RVtLYh6f;_d8@9+OX3cl~O_PEol z(Vxc+G0S2nqaAu!*Sn{DaP{V=1o)ZkNyA-zO;;TZR~}Du zZ{ZMG-pu>OvAgn}UKO1&691NLx96k*k!9j6qK0m*H4B?fYTmsERN1b7)`;W=e&q$pli&{&hjA6>Sk4=JMRM=Vf<_H|_F# z*>Yx*@ojVFh|m7ty#T(t8?xRTrC(76YW_lk|V}fXYqm1y#SKpSbb5J!S)Df&I zuNEXhAXf_CXkR61dgvN^-l_Nt-D~%rH+}y!gOQPa&5L~cIDXg!kaVJ5hTSX!eTC<c-trJ@!O)zb)8oJ5vE+F@k(nay-vP)KPZ->Iks8>#Zv+2(O? zgE_taOXqv{Bvr&|ULe3D5tlsha!(F^mQ}48f<@!JBu#HMiX>i|g5N)z(cjku`nz?| z>9QZk@}Qds+%CmKw;Yi#XEqb9MB#d?n|8=Wr!gKS{f<;I&4q5QsDuhfxqVRg1rObr zh>~NGWw3;WJ+e)gP}V(?4GlnaFc}H1Q1X~c7m}X3(pgExHyihXOeiZ`f@i8(fr5k} zrPEf+#G@LD{vTcM0oByf{efb?2!e!2k)}uq2tlv_f?y$(fZ(A@SENes9qf_>P#|;> z3?N8VdJCwCNN7@}qd@4rcitSl-}n9Bdh4ybE?zI^%0tA97!-EDTIL#dOmEi z0UVd{5hWu_QAdr5A6=kJ`xcy6aYG%N92pF$y1iq~Q~bC#?UjJ&lsVDu8~|Y;Ib+&LFo0dq#N9nF*QP_NAw_cT?$24`6WJ z81X#tChYt^CdEjP0~D_bAmzVCKb$}UVRfpqeB9E!-Q_FkjxSuy!*yH35|?R>LUPbm zZuJ|$#tmQdNH7Aclp_*I

B2yT>@{zF!_9#iXFVl%Nz<;jsFD5x{E#VjpQe<;U`s zqRcMf0Rvyda{G_!UXDELZd%;H`2JGPQdcWC-eufvgN&k}yNB<907gx;n|Er6$yHa@6D(_dTfSmCq7UJnv`uG zOVkK736!pKAM2oOq{_(WzG3a((2;7cab1W>tU5k6HoKkYgyznTf6a5q@TwlyM=$NG zhju;CGQT%`GUXG+iXZ;jwsHDAbf)IPuLGu)4H?<&SBg^DKR!MX=<8U|u&xue+)U?q zV!<1T=EBd|KeElQFi>2ia2)vXrP$6H>eD2qJ_jfYM2nJ2QNm?@x*=N?M;|R7Q-8q_ z7S2y;72Iy!Xr(r`ruhrMF^!hnsER~=m{)oGkcf%|cb6XGTsqn3i(R`91fGY!+2)SD zI8fgJ^kFum*Njio2t9{kYvqX&2ItSJ{P>1PiF6h!qHhen8RJnp7G2Bpt5Eghd+X&^8py`^!vdbt*_LMPFi-Y{c+KK9>a`E@qW;gF#BjP=fPyo?| zsqsSU=~JvVIY5n|v0hwcG&P5d>}G_Nm+|2eXQfUl<}U0FHDaXKdaD2$^-Zm>pIq!T zMs^(7>TH?HCj3fp^L`cOHhl=>x)g!LF4}@Gs9{w2vxN@uo=|cFCf0o2e4MIt+miB= ztolhIY+}J&RN?CpOxVPlc}8+{p%F3742^H1&%A>aJ8fhidp|enN!@|?0LD3qYJsah z-U$HU=YsTUR2N`k;Qe32gvBz$@RYa5i0Jdf#;#{ScvvRy;7TSbLlRegj;KK(?_x1R zLOOdcQ%I*j(&AlS0#&gNJ}!k{bYhi2QoYdFlqNNO`0FIft&aBhgy z=L{`db)8RtL@@h|@g5=_?rKrBghL1=r~%Jq10NxPGF_mXjTrq@lw(y!zMSN4yRMdD zu8$WnI*}hc8UgUIvjP-4M&d*RzbW-Ikiru3Mli?)!VXl;b9#)>t4Km?R$u{N;;S}0 zSs=m!JKI|lzFUV_E!;tF0(PzNOYB$vz_c9n`2SZ11*NFdJfat+!laT=hF4~{)PU4j zn7#OmBRTLcU9f}8S-tPwrUre%*u04ZtH69l0|x}2gmN0_EZWDUA9euje!+w#|Lf5J zwQ~=LP=VnytAz~s%_r{~2Cxhm8e=(N84ZQQc7Fww=_|F^zaYiFyi`Ftg+P+F=z_a8jW8K_qhCkF(*q= zF0e8C`wt5+vvA~5+-XUF;RuF2I$i; z!cZas(1X1TzD>daC+=Gqfp>NZ4%1wRK)m{I%oskke=Utd6oJIkKTd&zu+6^HXxM2r zx_$)qPZ?%m=QI-qHsd*AND>oPs(8ZptS=A+;CWOU5sMQ{KmY-G8P8kzUu)r|0x`hB zJK_U4+XW(bNvIQO3OADaYlX8Eh2cZvC;xk_X($N}zzN_ZU=$t{y4-iLVTwU0QP4pW zynGOL$l;Ja;3EE#P!NcS62c4q4PPN|jFF^59Ar}nnnLsgzO2+x0!bc3tT5(i3NtJJ zNr2)2vR^7l7qY@ROE_B)FPZ2JZIi$u=am3N z@Dga|DR3D3awK`@0KCt?_cdIRQL;hbSJOWvudsc_QH9-UuD>ocl{AtQ&oE3ntPWWF z)HQ8bZWYwv{Q&VLw!aZ8-gP%`EATNNCah#|wh)Lj_QwAaqc{9lfcE=M^3s6JM-PKp zQ~x<@TnR@U@)G`4ig1+o@P5ePUsWUpBt68$Fn0|7t_+p2)a7#<-00c@gO4>o#H1Poqdh9kug5V}gh?WK=GF^!N$4q-MjHUGwc{_5bzq-StG zb=w8t(@*f$?B#pDp9-10e$t}!jND893v+up(fxVDN8+;$uU?ZMvL8ZyWom?UEZ&Zg z)C`DNZopSHNtl)om<3^0>W}6N21HTRaRZ{H0WpG;tn2Vc9?T<(x5MX+aOwavP{-iD zY>*7p`#9AEO}SkGt~=lt*)d=C4FXvEI0opHn%_Wk+#uwsx}7UU9fOc#1#s+d2L7oW z^G6i^(>evEdd24*X2XoGD%t>fpcJ*qNd^s;y5Qoh;N2%If0afOMtWz+)n|6&BoZUA zKaE-Y7)cu_Jq73uXfHv+EEs`PqC~J95yc0}Vwfmjzi|uo!R>`q+ zYiPBD^v@4W%hzR( zyg?wXU4KDZPsT|5C$kzLlkXDpzQg0+APl`{p@OCw{K!-vC)A`XtcBmQV3g5#G|WU- z>>wiw=EMJMC%pauV!_o6ctmp(Du^+**xr8s^@u3t@vpAtpClu{Hd2;cO6m!(ssFFn{{KU@GlM08)yg;cBQw3G5U7i^tqP@A`s)i_-l|d6(0C;S+05#?S7Hakr zOviNS6#PfGDmrkG^bI1K7t04+rf4l5$fIA2Yp-Nx%uV-fBaOQ*Z;o=F5~WoBM?BEo z??O#%3t($$)Cjl$7@&W}j z=7N+DZK*jOChQjE1kwU*JEf>|SSS+gJ@tp}wABcpNcxa4XDneTiv?hRj3`!`-KVDW z+{VX4S?r%xB!8CKg6mIpKQtCm!XT!*@Fc_ph)~zpxl|U+bu?a1Nvz;sNwW)vMa)m} zKYUA^Gax1CP)nlOlXoU3iD7yb&nWmc)h$WZfzEZwzWK%`g7bw~0)B?bK? znM?U(C!^Sr7D}R&pYL81T<9^*>V!qYUlCP;<+K>duX>O!p-b!^nLG)1{shSdzcl}a z?UD3hMvr9Th*(X%G!@|xM6rR%?qbsmJ09e%R4Uzouzz4mB#-)DW|*J!PU+^M z((DUzqv!PfvyL{D06zcc^1Eheo8ECVW8toNP*GYm^*uIPap`~6B#Tvi# zWYh>zaP7Ql!Wprm}*3s9Pj=A2~NHjvA6h0xXzL&f*XV;FsjY7-ksm#4M$ zXvK(N`!9>_|coVx*m8$?gxI1K#SGDQ4sR4QAF zqRS~Jbi&pE*kVyiGT;-+5=$!EX2?SdrnGVe8L7z_w=uOO142??-YJ)D$1k02rLx{3 zk_|v6q&OKsjXe>W*Ujyu;2m0n|Cx#D9@6p{>y5s&+T!7?gAFBV6)0}6G>mtC%Xz7{K#0W|Mo3vY!r(vtwKCEWVNu`s9G9du zBnQ%l)NywwG#I)&)TDU;5B%IhRGAB;YYjacAypU{d=2n)s?-9y1=zrU4Fy$$5boGX ziuomq_Y4I>pM>&Z1c{VUJz)Ia%bFN0w&x5h1vZT6XaTl?An zTCal`CKaf{9e({HhAEuz1Q_|6^d^jVc}pg@VZ;ZWiK^Zt^@(%Ei>p(wkG<*g#BX)o zD?q(40!qJ}8%Tp1yweyYzsW}!bBh(t`+k7OA=SfwjTFUamZCZcsj0DsMC;xB0o>S< z#3WV7d+@cJ&}TpncNuZ_)EzL^J_`UNtwI>8fDKrH^$Q@TCVRvD?qoeXB(KtAlG>w6aH;!&k)A!hRSXOWaD7E7leY|d9u@D>XSR^G zZxKk(NZO2L7QmM~rw6L)oBxi1wTXhCSEO*h1^%Us(W5 z+)vbFyp!{rZ~Pmo0ENUrK6FZAVw~jgr|52Qsw@^;huHB$2`p4*VERGpK6SCZ0~qPD z@P>RWgEv8;Ner~v`s@-o@{MqyJQhAZ)w^hHC`*lU9V|}(&&Y~Wx=T^IB9vAmqT3>( z5;RQeUlr3A1=p;Q7?^Dgh!5bTpf&U+31u}#>Z$|f@}kV{yw%n%+eW=$^byMy_m`XM zFSmwJc#<{bc8B=zODj5&6f=DXMsDU>MEaH{UZR;v>+<`KLRU-4zKp;fYCaNK$ivJ^+IDx7dK#f#i?5KyfYgyE6JsDe9OV zmvR2^l63}=pJp~{U8}^Uv#W!XDfJ<*;{5!I z9L?e`l{-QR10NuBH#{^6S&)o?r4f(sh{4ByF31z8@vhnhD6s)bh!KoSRT)R7{Y3FQgBuq;*%nZpew1h|6S0LsiB<(RV(S2elkM~#T0(rpx1FV|z z;z)K$n0Nb!#tAO&Qpfp4SS{*s;6mOgmz~66(kPGpI2X9*7{ULg9a7IZ9C^ z;rXrL&r5$~^i_WUq8B`HQH{X+grrRu<*|XRF@Jg0$KR)JwPhRl3so$zM7AE1mNA8q zHc%jk)W6hQ${vk)kJ}6kDZF_JLUv5Fjpx8q_IJN@TdnIvRh>V3F3&}ywTRO` z7pqsj$T5FXigq8CidQ#jA;-YQ;C&HrLGNS9p%*Nvh!zr`cYn?x)$8&3(^F+#zlP8K zi5NR&V&Z>sD9MrX9amSIMyK(8s+wM}ab0<~mVPkwS0=kUSM2?06eVADd(#CvYy*(B z^skmFrEFN&dmA9nmZBt3*sECs!)821Q(mT}D}E6I8ztL&{wAhmcIR+IQT-_Q;_z8v zyWh25{xN@6r;D;Sodr!A=4ZUF#r&Bq!*ac+uIs7p(aT`|KMHxg8S~*;0cvK^WNgVS zkftpu54@wrU zd|}GrzTSt>vb2w=-0S*97yb3H zK9zl6?u!x9In-p;jK^J~y(~Tkls0jwR|se$86|pBmq#7G?dUw&>y}|1)ph3zjx(Qb z>^pS--q*doOxCK;d<7|@d;wYRmg*eJp3q?oPhN_&InU_)sOB?rs+Sk7e*L`DNmBIi zA4<*|rKb9m3i9+>j4Uhl7-QnOyF5#6J`;y{F`U01zG;({AisSPhS>4MKqemqjtbdR#x6o>|3>Jz`K)-YX*h%!si$T1)+eF zXY$#K%3;4qb~U&9onP4vF3)dl-m9Z!Ow>rn{80d2vnhis#A`h6o|#i^VN%$C%@X2X zwVFTdQB9K0Jd;m%ud2A1jj>nPT_69G%U5+_zV$r=E?kj?zgbb4Cj)~!Ls+bOz$2Fy z0Y(!bgo8Tom$=BCl3NDKYj-sru*9^Tx|fo@EYx^R_a`tA-Qd%rlZ=GaF$Z>T2Sa)3 zBRIHHW^pDKl!?&`eu?M%FsG-Ls7CGs9P3UPNXOc$PE6kBB(zJC_us6bZ;Y7~Lyn`W69>9d5zqlr$u zT7<>iU~pdtz3hTYl<}S(U#XCfm>>N@@{{qI=`zH>+}hA#=bla6j@`Lzw8eRWi#*gw zs&KJ=)%!@@(&ESU-r#@^q5?E)W*~FqeuBDTIQ|)eAsd9J;EkThCvNhgVnd zc1qoQyJ-#CitZxi(MzmUrB#-pKLdit=oXyrInr{!Epn?jj3L0AxD{#=E`q%cP_2f! z3h+Ka?4OMvPcYx~?k_Xty8klCep=%i7{)r(qpxcPy;9en+hh3RrQ>56)p;jtFxKh@ zQYK4+m2oTvvmw^4s7%`dE)TR!fhMOs)8jQbHBm~H(J1NJRE3%0xO?pEgyvM3$t%Ow zSG+5B2c(M+9bdCz8nC-tK@t8@H{aBL+7r`d`0Qox&$5HE6?w(~FlrbYoaN{Rn22%g zEvBxLskNNDo5c`LT`X&u=b@O0^-8j3pB9;qw#zEL^E8aB-SK`V$-$D_8C>A7mVMG! zb$;IBM&$25g=Bs&uYp!`w-bQSQi0xogz}sb-X6}Uk^;Om= zdi2l4oTCGGlNe#qG>?lMz?}TO^qKrnsL4blMkO~{@1~&38!oa-Jb|R}4DMr0gIg>W z!LD+VV+fkxjfm4SJ`f>%!-%-92)7VIP|5m4J>BH|XH~m~qS!b3MCOMOZwyS9C}q$V z+V38uO!Ue_bxYnfLj$5G-u@5;{d(F-3j5ufm5FPXkV()>HbLh_1Sl-$#A^j<*BBAc z@!|1#6Bj^g9u$qc18R9aXO1mJ)mTD@VWNItL}0!}V7#fF+;fOs$tyQ0`79QIcpq1& zb!vQN64zHbrl1b~hovi2=3so`6=*5+NQ)2a$( zm{M_Np2`2*1)!lB!y>z_ujPfGi;Vx%T^ojx9tsmxUEfQ+3c}9@#D8E?fq1QfC?XbV zk%uB+Z-D+opZ_2*`j_*-TM+wXy^b(@7hv?YXC ze~9L@KBDGh6e>GHAVNDVz)-U5$o)+@K{V^u!#jTnQ@RK0!&KMX!1l$nMH&!&s-B#i zDMh{c5hxqB_nHAj@|h5zxEp8@MT=`SJt_tf2d|8;+>7ui)mDr&dQrp`%=t;oLGisB zhuD|qH({{kAPPYYe+VetRCO~nw$=#r$Xb7-@FDn&c%R*_g7GpsK`Lz2zb#-5d_Pdf zXWNsUkIGe3yhj_DFl9u1Y76tx;ydQjYkLZz_t04JLR2DL)a?ijjT}FeldljKpp{v# z{jB4>!PkN%!T`(1pqHcfs{Gft+dl6uF(&TKvl;KEuwdHLME+FmTqW=hClGk$6EQ-Q z3OR#ryonJQ+=N2qTUTBl6r>=bSI4`Z$(o0%y51>~!KfLq;9v2hc>5nd58hw=Z+ zM!bv(3?d9E1V+3MjLwOe^RKHbz<6@ZHiX7=J#US9VXB+^8nnAYDUuor!PjvIX&x0T z6FVnEC`~xiaFl?GL~|%BtA2;m88W8Ulgfi%+%o^+g!jZ ziY-exmUNnf2k;T7`$ESNU;*lY`CFY#D}=*3v^=rUhGgt%V#bnV>Kp^jb#X)uSSC!N zdNfMx!g;26sT(mgG)NS5@G-dj3HYNx;lm+Z>*B^i8l*6sl%%0KnwpUqdPGi#bgASp zO_DYap<54AM4`$tg(!qoJJs;h&|t90LT)rH<)~Rr1m9*#gcN-6>J{h?2|YJ=SZMc4?GHr-8Haxi0;=n zwy_Yb?4hm&HTg4f$g^6pq%PH#m42ER!K2nUhcwi#C_~{^sh^8WvEY82H%$=Fj$0r; z9bJ~KC^ z;!n;Jm)At_B`0zSpEzF-HXQG+7Wstx=T`P5z8PQd>?zaTsgcQOeb1;;tl`_=v+Tb` z&L%rs>I7Ncvdyo0Xu-1`Litkci?Fy>!UQ&eiP!(S|61#}XI+tPOlw;U2n&Wk7CU^< ztU9Sr&+xscNBy55FFx#L9$bk$k9&#ulnCB#b0Rb#U#yJqpmb-=L3O2O_ZvEv3*1glS|PkA8fKqo>`>(c)C0FZs5%u2m1MY;{;F{Z(LI3U)aBNQ&J*<6BLqT;bU{ zD-|MUE7*jTZjU29@jQyK2)+QmA2E7pL^!onB|IjA&s%f#+{%3~Q~r*2l@WUdea34b zkwvDHBJlcwdv;aCW^5MfOHYA+xz!YMc;M=TPa>belozWWu4oY}H6_<1h1~}$QPAOJ zjss_WaIN|`hID;!79EkVJN_VQwlkUp*skQEhNU`ZZ9NlTjXCh+UBvnr|Jm4RZsx{q zyy-J2-IyPlymzq)be!6*jCI@#39%8-I943ElUf)yy|nvnc1@;J{XXaDYNlAVG)V;H~-=fhoKx@8wp!)Oj3{ zroKEh`(O4K-BhFW9*RJlZNcueZ?|GCJC{T`dh?ut6!a?0Ua4% zI{WTAhgUe7h5-Zf+yyY>#@w&Gx3)$S9J{f5U{8)N7}y0TdxfJCB2W*!?irLlqX>Kr zHQDtl^VW&;7J7QwCf0K~&T(&ach=xr_gGXwGtRs@y9wm*+e4BCv;uIugL^xG=T z&ai2?wU#M#_eVcC5x{&?`sG1Je&y$(Q5crcoD_7ODGg1$U1@g8mC(kA<=UQls6`5X ztiWELgwg$mz-05`|H0e1BoYvPyJBS*3V-EHqoXrT6k4+QD0%WP?~Q#iNLCw5@{f6% zpn9Nl^mp%^z45_c2w9G26Gw~+b?w%=*F8*0&s30n$7#ORmLQXQuZFdFG_8oQfo0~L zqYLomvV_`06;#d>hVTz5K&f|1u`)L*Gaq^eI}$7R#_9}sCSgb7)pd_ru%_|{Q`_z2 zf11(KFAnDPm}ExXuo&*;!rc@-PNVRO?oBPV{$cfkK9VY|PDHn_Um*ra;aaU!(w?ANyM-_bhwu^OqG<^icqR|Q=TT=wjHf_(jfABXP`&K4@hj$HRBgU zuC+agoSxLn#!LwQbjVxBZK4hk)PVDgRU-$ zVAq`+j~R+yyg)}Gl_=Uib&Oj=K>#UoP1_kp*s@ssT}9@6f;C}2>+a_4XkbTCcH$e& zAO-z2=ruSKt}jVUe@x;W6+RB%#Uaq5bd`Zkqz2=lm9zHd(04WkPzsUh^pK>-AFI2d z%Bge0udX$GQz~sD1t}{^qLn0$>e|~?uo5w!{_BoB1*aWn1l*Ck z@lPGAiVG7>BY$`A*1ggGJZ#=)vmaET@7Z9dAi zc>t1YCv_zf%sxcRBdqFBPeL9aoWh2o;Bpc1Tso1UT!hnhlBTB2-d--Z_o;S1UrPjY zL}A8kKQqQI{ONpG|CuzE?9pr}4mEeXTRL#4t|`E_eQcVrsFc0)Y;e`mFm2@IHr}+z zdM0hHXCp`-|55BX&1YY0WMc8G2m5lw)P^H{bB92U@U`_&ta9=F6g;ACr)|#J`Z$Mq z)Wuz*3pIs9!8~|Q0`u-yxTy2{33csb{n42>t4FA>jy=}G5~XruU68)`=zn@iGjHUV z%&n>}d(SdUnn;cfq-_@O6QOHZJ7l%JZCYdp6EUJe%b^qS-O(4^|CIze1RAHJT7%Hc zvWm3FLpvf6<_ZzBg{q-uvy^kn_Ly=<|^4;Aw_IjJA+WV}B^Fte1 z3s#u}dO7U5C?5XXVuppQ!@e_q<|i{4>ks*X@l8qp93<2HCO+Gq<9vN&PQ2jFb<&T5 zu}4ki!fFf3RdRv5bxrEFp1MxzDb-e_bk``VtPZ+UjV-cDY>(oUYIfsDL^{8TX*h92HKli>Cz zjtBP9p8!PBM!ohqJbAU#|Oc!ZvT#k{y)EPdV z16i(5ppD^a@L)(-7`4t!SD>oN45n1ph~$SwW98|PwuxfUX+5jgs9SA63{wHlJFt8C z<^$?zdZo^98U@FAn%g<>qwloD8ki)}P-C6b_>K{ZZxMgL< zZ2+ntd%aLt(26|+Z6+9QGJitSAhl*oU-i`8PN7r!{9CYd^Wo!L+`(GnD~$BJAxd!z z8VeCRN^z01Jp~hOypZ<#UEynDDsk&HSG)d_d4uHl0^Dw6I->C!g@FKBo zU6ba{?b4U(A3lv|IKSuOr>H-^^_CFn$=kR#V;50mB8uCHm=DGMxt_n-ow6a+s`zTU zT}{sMXZpHM_dr&aF;!Hz)-V|6CM#v4i|fX@7cB1AI*g3AipyL|^=+Q^B5LexGad5t zrsFO{q-{#@l#Z~(?4S6LpJaMShE2?l-GaD0y?bq@dOM2SzEm0>7tY4KWYrMOolipO3YW@ThM#8{@W@(ZMiPZ+v9-8C}Qf!pYg1G4q}44p}lr09ik&d+AOf6{(kfL~uMI zm$!^&SVj05`BgwrLy!0|pYD^B360id_NIfTle&>QGBk2Lr>Nz^WvQ(hS}LUJQ_4H; zh}~yg#`o@y8zm?BZPxfvJo6VExuS38o_Z8MmMe@Y<;|_^ZwnYSkgqejk|Z{J*Qz; z+0$01zw%`BVMPo&qi)K6efgopiecNKvt|-R?1@}j`0PgJx0yP+Gc@Z*&4OD61TOkQ ztH)E`4w>q8N${NWM9J8nE8M+#QahRh`tj6;iEdJ=T%q9XfPVl!{R+A(b&QeJNbu*s zOe!1kmG0SR7xMs1?sL#$UbPav=u(Wd%C${zKT$|vOxr2oh0}NJ#TOO&tmgJ^PLGMv zwmhNN)^C27+N+nXF6D=&yQVU(MBne>7&~n9po7%BW~Vp-?$eqP6mX7#Ry$^fjxX*s z1-Hap`crCR(arG4krc8q=q>yfaNdEj8(i*_LIcqswgh~RkLINKmyx;LZ1oDa7cwJk z^h&yJRw7?;TSNzT2LI8x!zkc)>xNoEreG#JfmP_3!9Ei= zg}F^(9ErvBg^DvhnHeFmsj>aDtgM3Zmg^u@Du@G7Lw)7&(DkUbry8d8%ZY z$MPt(H|ccQI-*d|`VGVLIt_}f5nO$*%ZS2auY{6?rK8T(eK|jWP*9)g4 z;yzjZ>3^tiH-*8CYYIJ|a?sWc>1b;){b zQWuv20w1r{cqI8yjU|vp2g9S>`#qJUTz;(a8P7i-loxs??tG}G%$*HL`WdKaALqlhyNyWb5dvbKuv8#-kKmI z?E0^*gKiHJO;d9(SXQR4=QfG>p3y_38u`AD%OCls9{7`JhRoK_`>pMJy9cTPM-T# zqp&Z_SK@BC1M8m2SKNhO&%NWnCaf1^f{0%c&bZDQ&WiMxK2YdDSjq#_Q>>Xd0^Gg z&ImGUmj8*!ESH0Cma)Y9sP@669~vzA%E$!SX7OJ$cL`xA8mEKWad-CkY=+XhBqoCr z6Khq8vd{JU6-nC)xJ50lSk<^1&ILIH#!~fLbLZsZ?^~`=hH|bTqo`)Qy8GAfex9-X z*a6OW_Lx<}ADvZ0S`^2t?v$outd9~7y*+}6>mmKsd75nSbs)p=gg z5jceoM1vqORr$K;qk!lFeknh#p8RA|A}-6Rapp}iA7a=XJgUC z>lwp4x3#WbxBIjm)nnRHZyC{PLgdhi0y>nT$Fh9*o}Le&ceBfMtArs^K7m<+TM+6r zK^EhbP1#z;>UNwxM8hnN1O9nl8-k9OZ+QNadf&C61^_21oPzj`*WZ-IJ}DT}^7Ejf z?QAut3)5Z@I$D)=FD}up85rQJ0YR)mlFB9wQR{O;-zgSL+7{EpE>MA##Ls$1)gjjR z;sJhkGSZiAOo_i^Kc4No<(@5;IyA~RF>|ldZ=OllGDCMOVS5+l@7hSzLs+c zm)P)~oL?;P@Fvy(N~`)GIrpCMI%HQmKDHuU??K~tB!`FnR1E(XGVxM9#moJ%rttFF zp}I}~8^O1^R-F+R3*hr5qhrP*3z(-}P5;}z9 z8M_roT@P>O>gkD&hDSfkWi`_9rPRElreB%0o@(nb$~lpEjb$U~lo&QL-s_4cgHU;8 zxwE(S%YJW2^M%d3(M#=y@(p=qCurubi|b%k4LqK+rd~ZW6?aKbQSRQX2^F*8aXI=S z=!oW0Jh?eFbDE9=|J7xd@|7YGjn(QeOMsR4=ecp=`r*=??tG@LZOLd*cT&u3*hj|` zL?du6q9>RqG=<}to5oMge6rDw+sYt_+wAQ$JvM2Y3X2<^T|z!ordGuo$v0Qh{Vd^f zb@klzl26u451KpbGod{bRXQ<{o8D((J6c(uSwN_64K^W9?L-FN3$Plt^&NibZ%n^p z(ww)+MKdP=X~#Xgc`Xvvv2@kc(o}i8+~L^}?HMByg>#O5=6F68I<`EL!FXcS$i= zQaW#pipFd5#+z1&DHUAceNQG@4pY^_Ul{gfPKf7frU7mGQ1%$yZv3^FY6P0{4&dG_Rnqhm~< z*{@afkw>MyMK6sbzo*;%z@#-EOMf5&Z@1X*xI;hv-~8xke#6n*7q5zx56vp^0pi$j z3_3ZZW*}BJt#*c|SL)T|_%t3>)%&%olxaMOmiqyNnC*i%t2g2X zGfwpSLTW)$;)wKxb^@YW<7#%vDg0YAlDmz7hewCmhE2qYKT;7RpajF6+AL{XjXJqJ!g-qdvv_~nCR z$M-bw&lR=TC*{)3YKsu5oCdmnm20FF{h*qZQ(}}AdS3p!Bnl5gvS*Ro;WQy{4ZQeB z>|!IcM?%YAn(>bqnX3k7yH@eiFN{tl>VbX~i(z`kzEHbLltV+55y7-DZ=uTm0hC1% zexC8y6Piy$SuTgORMm;@O%eF8R=N5JD(-o_uNXEie=Wn&4BGZiW1BoBN?SFOfe(3p zFrR~A8UG0t^`F;SFXIV@(K<(shkd*mBZApDYK86nFxjW|FG#4d&dHTsX0X41D`F(L zHHMoP8zU+41Cns9Y%Nye1)3GK0b z1xLGqrBn{uf1SGuX1QIN6F;7~wx2teP5A3>KC1roOG4pD(>VxVL)HJ+!JC(});U~Q z{ece@(cE_@KgXMKB$v<$5>XjO?EhIjjZ>0>kQu}V2ijrBRmy;rBKh(Q!?MS(YL9-irw z2{Q7ikN*Fjh(Z-|9QnTwAovwXAJJg=-yqZRsG1*t-`yJ~^$+~li{4OsS~Yb-=`hV_ z!v1=qRpAvbw1&jHeg9xN9%9m+-?jFevwJB#;6@vpkJ3JE`0CYLz88Hy$B0U-cHezq zgQubK(m zo$eaMbW66L$&HIMxfiyTAH)&WEFRn+p%V$9!%2vCv{60Uwy!tRH%7Ze*+mJzeE-j9 zjSD+J2jzTnxSfp;-2Tq(7;UGX`Yv2^BgiDWM?~vXbCI``pl9(qa*A{pLb=YJ7Cbxg z-6rab3h{C=VKCo5`nM*tXds4!Iu{-2g4{{tYh|$^jt*K}q2|k%+u!O+@v-5ZT;d2Y zpA?G~j|{&*HBOhMcXyisftekW4b&uw?CD-c9JyzD_QJ;3Y!S1Y*Cfz9y?I`;J?LMB zRd&nS+joTLMBdCcP>zZo8E|Xk*Xpb57Y#T~F!RJ?^fMmSp-*LaT>h}vZ2PRXGQ2>^ ze%WAmX{g#8YDmyi5-S(n^MDMu9BBq3>Mrj^?JY7}d=+RxEgEgMF0--)oO$>`!4JD; ze?Q36#V59A?hF*=+nHrcSSd3dh}xr5Mn3YtqnUGCvz_`P-}%G@!55J^v~aIHT;amP z)ANxlZ`W*(7Ylp{x4V<(|J-mgYe;?8VWIjiF-c>Z0W`Y_x>SZlp*vGLS_q^>Z|Dj$ zs&xXz6&#TC%f;K>^?p?~&vTCF3O%163zNlj0t173Q~sG|eJ7!6*yAfYHZac25peXW zw(}Y(;+I!+or|EDZf^g>3RL1y9_b7>7D=tW<(HSwf;;$8CBk>SfV*Bvr)WYQE8jmc zCoOGi7JZ&GS@uq=#Rw;}jIdxodNrnL8M1$eww2r_iy?#WCWS9dzdLYy{}XIuIzikWzAPJi;kEQY6*= zV}j36%~Wos+jPR+Wo2Q;l(s?nEs0evY}*BzEIc{=rjGVXV~%}aOskW7g|W@+H!GfE zJt!{G)`Yg)!O28JKM7o(b-~L7n^$sE$I^O5pzna_(t2}W zHiR7gCl2WpH(T`AX|nQ6R!dL~JyfFVo{Ary8tq*iN%c^X*LCl(dmR+1GFTe6l+f2Z zH2eT+|2^9@ZN#d@CY@anJ0|A~`A8akDcfGEkYlms$;%NUODdOcdN24aYDPGU zl{aPIIdfNDQ)NKum-y?W0;v+!KZX;9|8p1Ms%btwgRx7DlF*IO7Ws&LG48BY%$Iu7 zcWm_v?X+;2Z&nk-DbIKgK}eVoadAA2B~gWBEvf7ij@QMS7uVFjPQUL`Rl_x^Xz&v1 z3Rv!S@+~v}O>z2w_y6J;HTi`Wmntys$cN`3NO4p>C^egEicOxiPW74hF4>;VqebwW zGSgJfj~t`EtFLV>|0m_u`R4DEy61AXU1fwkEk$3TBiY><}Q4f>5Y+mDvdZeWK(JJ&Lfnw3=O zJ#vZSQ4mb#(7uX3QO)9$P57)C8(ZH13O1czU?WJZj}uQmdRQ&U5vutrzd>-~cCv-n z!lo7)Im09E{o(8 zR=_jkny$MO^FsN$-^;y^2^#7;tTc=23WlSu?mqhNz8*{B4yh7YHr#wtE@e?BeJ$aF z@(yRw(X;RRI`bOuw9$kXj^2<^TRZZ7 znx|eBO*gArbz;UP6#p)lpK^!(dheH<5$;%r69&S4CZeZuauU!R>a+F>N>iltU%3QQ z%F8;D!Vlp-)mS}Ep36_xA}=lW+KU~yn#0Q#?@`7lhL1+Ixo91mICQb;9q;f*F*3WK zWnP`dnI}pE?@e4{{5+mcq$N4!vDO%yp!<5h2r-{~Ivj$#IeI_J;qbZ(RrPo>Zn$o} z-gI};qpyzeM6zgWW+M4~iwpACJKkVfCx-f`8+(ENpZI#i?enxVl*{TfgyKH3 zJr@$wtM6#4WQfz^dUw<%oW|{o-tZ^d){Y3iSFIv%eW4O2Zzph}=ZtF~pHhG;P025Z zWvlO*8RsZRdy4D>cUYkDrDt5l%hKfH_d0VWXA(<&c{N=-S{Atyh4{4XLV7CSnU!wdm^JhN$oG6kz1U;D{ zqF+lLmG8dOb-7n}ZDUZ4;;d4Ck14BDTFnJ1d5t@fQzDh~bOB zs+m`I-7+;W|0gNweaWJLm7B6nsneYZx4uMWk`Ni?*hcqc;uh*C;wJ5Bhv(m?s{&LW z?2gr*rEEK5GCtk;Dt@Tx-E$P#&uMGmom&0J8P`i0tvZ_?D(slC-*O7E--iABn>1Wex&4XWzb8SSzPORXQsgqyo19HzU!;OA0H)V4b8RGKV{a= zbyecpJi?ikK`(9dQIq!aD_bMk-KS@ce_C^7o)W>Ior?$a5TxZ1)^^yy&BY zGG$I$MA7A0Yy1Z`T`5`~bLI%Ub)wRgxxIjkoyo$WBm&L$6Ta&(eiF3$gDE;U>992MR@gwe4oa6n>_dtx91)7gz=cq3EPavc4zRTZ(|E?xN2N{ak2R2B@I$~ z=`rZ$($qCE3RjTX+wK&V2&=Hqmj0}U!Dh!tX$$4PE3e$f3R8h zcAIQtLdmsn1hZ&5xwSB{c$s@QMFWBqK)<4o^CSf%p7Jk=e|Uh5dm z%c$dWWAir5E}C)dbe zwN`Gw&0d%>BCZ@!6f7$r#MgNEQfjBjW0Q;chnljbqnNONn8K}h zsvYp^4ElO((X|4RzxvvNTRfEa0en_1Nt@%kXzzy2S|kNO3^_{Q18d5*D>vOHno3gL zF6F#DXmdEJ0cY}3u>)t!3{Ny-c-f(DLrnXI-}Vh+^_A8>4~4@M_+S%hZ{i2u~P z^x~1)+t!jZC$~ftbDOe%Ngwm5^PC&X;QM`Q+V^fXXZK2I72heYTfXJ4>KJQ$dVO^7-!5Z*GTrCv5)B|<<$$}sIs^Oe&_zaH$du;6&`Zey4p|LfiLcdVl)pGV%A zpEyiT`Nm96R(mI;<20S&xM&yRI7<4=Iz>8saA)B+AKL@Yn@>=oQ@rNECSTtkG1kc1 z&2PxjM<36(g>L(>&NHwYdI$}^ohS~kzcpTbVd&H_hABwmSWupl7$ro2T4yX0Eb&68 z##+LO$eOxSkT|#;!O|N($W`x6GimZGHMFQ^KIOt;XY&*PS-ABf2B1%F>e)u^pQCPW2*QbO4?2qNE%Ila&5K|gCb zh3tP0pbL@aP;xJcw*20551u)e)gt`&w48d67Q??vvSj)Bnz*@TZghdU$wm5${|{Sl z9tidK{g12H>s8UB25AvthOw85NE9>7jHDq+wh~HNLiVj!CB|6C*s|5w5)qP}O2|mE z@B5bQ`_At^XNF$y&-eEq&*zw_nh?6;anSKiF*Aki{7%$8O6Roy zewJ@hufm=l4Hp_XyMAXJ!pI$QYU#*~m)`m#wpU1XAF%x#a_sd}z5Zr69F{Q~q%CtP6bkR&s!) z|IU|*cda}Pa!Pvge(t#}!mU$$wNbU~do3^Lr`=PLa6ReO*Bt@FXKfO-Pt@IuscR`@ z>NQ;B@>c8){f$gJtFVAtld!{^X5O!h`>oqEZDz&e=e0I`||v=oDkfd z5Ig)~iqkd0g|BuvJACdG)xhe-kQF`W7W)tKUO7Tai{lAni^@%VaPJjPFMsAAw&0PK zTB`)t4;~Ao)PJu7nkn-Nf zAH9KZIT(CSChJV7vvlL2Qd9nB$;D*wH60>Mq->Qcl>2<2iTt{RXM*|K+-u^^N6Mzxo|oSisom)w z%2}3tY%=-nG&;7nEa2WpYXik-NjH}@whnU9qatJU0C9H;n{IZ#tKlEji25uU?e%{$ zVIfCh<&o1# z8O0;tPA%Qk688O2t7`q^;$?Ebz@goxzy1lyN1mMIyC-R}YO$H#q44(Xk^Ccz3b*@r z>a4i!e>73QW@c+Pz{Dxu^Zvcqhf`dq@A;XXRw#bI-^`fZ{uqaP=ZbmJB_p%Ee}qmv z-9r0X2gcJ3pO}3Qt93r#xM^n+%BKIY79r zBrD*~irT?Z$}Du*Qeq6IkRJAa*pm4*%Ja+ZyqUkK(oUJ>i#GU}X-fDE&p)-|$nMJf z;NkRJZsY6Mg%_3nmTxW!3I1tT+qc3YBP9Rs)|b0(pHZ(;*6hTU(fj6hEXm8m<|pz| zPq-R-Jrs}gZ74am;e)^0*sgQGBH4V}Wpa{YI@~+UpLlETvD<|%|4ohx#E;WaTI53= zWv)p)xemEMwPd^flsro8uZ`Q!Qh_7}tmk*lc9;nohdYtZ|bnH@|r8iIW<6S@V z+Q!d+vMU$5bnSurDZyT6KC<5DrS)L9%sAcYS4RuyX-v0a)vSM0M>BnQ(G4-}^o%e` z6VHA7mg=38?=AiF#^sqonI=A<)B4TZ!b;n7#SuhUCZ2nq@?5I|d0p!X`gGs-XOcr- z&+c-3gLZ%NPv-ecF2x^7-@HqA_Iwt-$9XpJeJfw!9N~t_tVN32%SrrweB40g+sk)% z^tMggud&J>V2N(n_@#AEXwTG~Mn}`&o)c$KPNvJ?9rS-f7u(zL+%lG`T)a%z9~3Dh zbGqtq_J{rxJRa5`?zrn@K!dYJ|7q2xO{Disw$P!`)ul(X{(eDDvX+HO&8Q0LZ1W{R zR&soIuX^pexe;Zsbg!^dHxD^lYQRoJXXZ)noq4}o)#w=8)!R2V0}~!yIvsFN=befE zqUZ>_59^I~$#*AySDTuBT8Z>;d-k+!=U;E%P@j8d_m3~dx)wfX=Gdo^@P;}g{_6SO zgL#tFOZAkyA=9BZxr^PnsJA~#-kKFE5&6C~&{W9^FKWXhPf3(}z{v-+YQlZIiv72m3@l z#;+<>{r!FR_i&>=^qCY+Z>mNx$GqBawVkHRQ*HXj|6coC^VdymnpH*nw8C2M2=>~| zbCM4)yJrsc{&eAJ_i#IEsMhAi@++BZ_qp)Po!lh9{Q)DMA$r-n?NWpIjV|9eIBIz2 z{d7kpxyJhT=6MO~h4}WrBCDoeaVCIdzn|r-_l$`I%iq#eemgu<)vb|b5?^fXUM~ER zu~$gmou1<`#puCXG42U(T+V&k`Ih&-y-bMiHCqcCgBVdVpYCnnGF8<^ieL2Ov+7;g8NWZ{$zx+qta#gIoWdDz2jVo=&PyOx-=Wte3c{iF@Dj0DW zE1(y~C*E-II0bt$CtoI~q*f`5ig_J0b+Fjq5?{Gn z^^IxE+{!6GR$Kgs!(daSC{ z260T6IFNZ)wFfn(HhEl5!ap{2x_Ix!eE)unwe;2Vuh!JAf`sD71ZJ7l_{#V<$3J^* zeyBcvH2Y!gFZWloeO2pdpX4?-jnSsfwt1U9fu?a`Yt{36l`o>5-15HG^-?B0zM6mJ zPF7b!6vszl;B~hwo;|{CoLCt zAJu)mIV$zr;5#WZgW?ok8*hNRc=&C|N?d!6@5|sjohyd9#a%K<`o5=Ej|C0a5ZCu* z-DnT6VO41B$ZFZ?)fy%2YxCjMXnR{ipTh6I(!@e4)OngiFWI{)x-1>3uzv7+m^`)x+AcbklpO>1QjZ~{oyPp;|vg__+EW2)ZxZB0wF~&koei!l1 zb7psk3qmcPoy9dy+@D}k&QaxZJ8cm*eWJQ2`@`(fYJqolqaO7u-v%dY)zH`^VpYoG z%rTFnPxRgc}gYOf#rt#&v+F>Ol7#at9?%Kx!~7qz2DUmaiGR5zNGgdAm7{7%Zf4vXS% zuBaH?g@~2;dMxHE!p(f3eS^!&{PItky>2DiJ~CDK@{XC3iY9Iu8@9$n?a|7qM<<7C zj<1FZU%uk9Q2%)Md&~9on>C9gc_9reiur}YqdI2qI4;Nv9nn8iywNcbb)|8>@d1yy zCPz*+CSv6NxqOL^bK|Owwkj9P9;kl~qAq+EjtmogF`-)+=se6$lq#=jlb@Z7j@ zxE_5)<(yNP;nRcvJXze2FXyNqtbg>;T^84H;^+Ba2)UQh6|Lq|jXPMpm|N{M?LRKE z@=MP=AT_H9&5pMpJnQl7(QQ(IzV!w~?zMHe4!4zXcgw8}uyd-dEu) z`!i>4!a>Z`cIi}@264R|ojjz@W>giXC#|V0f5h^|S?98E3j?B0zf4cwjwzB5sSc#6)9v^30x|#w^A1HPoNF5K> ztf2U{Ua$2(haGtJ;A5iAKm|{FdsYySS$uVkJ5!|HXijc%Y&fdfd-CMs+eAmdiOn!| z;<|fYVr1FaXz%aWHMOrwKO9y$A=boc9lzETCj?i$@#}ttrsX8XYfwnFJ4@iyQ8Tam zp*z<#zUAD@uq$d=bg<-QVVZRIu`vOD(o_LX)he_O7)_tGi?DM zekeFpK99CtE*sNHM5LSb98AS*^S7an?^>vpZAA<}=QAz;3D2`Bc{Tunf!f z8%-5WnWG)11z5i;i=R$MzJ8Z+m_VSmqQu&D{{8rv$y&B&o$E+Kkm^;ZSvNLr_ zqw-9}agR$CY<4Z)7w>8>lQh+KJQmhFik~={FB_P_@yXCf&DPICZ$cWk;NYi(+u3^4 z>P^$#pkMjCNew~I)(CZa_s?=!XUt(rW{l84wz}Yo(c)QEKVoa8AQyRIb*;GW!_sfzHf84)JWRd$O!WQsMTWvYnFhCd|iX;hxGIQ5snIc43$F{Z~S?(M-x-uJui!lPF1aF*?`O8vZT ze3O1MLOac=Tl$LX-B_8IksoXK$+VY7|H_X-UpU$O>Y((bxNgqI z)t-%ibUS*g#qUXV+)d>Yge3L)a>TC7+`azUkZ-H+klLQT34cbhU1gCXjKFeNclqGnaUaJa7EEs>jDI&9y#hsYls0 z@nvnT{|)ZhSA&zar}D^NH!@4^o)zjEAMmU_LHv$5Et=3X{I2s@M#Jy!*pMASM&8jg zUj6)?n<{C{#5(R2U%6z7c*{D>xN+@?ouZRy>mwxJs7q3#$fS=`qBfu1>kmwwVtMJ* zWU=w#m-D~p`VkN7{|#5W+!1Qgv?!pOl&3OlozrrKj#8_1v`&hyE%Ar!Z{rWyQ}|&P zU%i_KquMV=J=AK_vX~#N{wQ|4=AiY%TJ?gO`%r~kzD+N(Uz3`JKsP z*UsGwwhL4~nrw6SJkoAQ)ehHVS}iC3MYTUXkE=7O##*cxqGb0H;&y$#YZ2LaF(mKl z(Ar;Nr;(kP67lNF3xBWhv+SRET-~ln z{POr*BMg#Jju*1Ifx`3zG*aNAh-M?z#l@KR;F*@D4webAFad~I3ZZnostP_ZodnJK zmB`@xUKCE~hP*7w=^Yw;$&Lxc5$QvesP+SlR=X6*yo}2*N>p07I4jhCEBMfHS1)UO^93%1KVrl$LYg9XUG(~Q6 z@v+0q^&L}E4h~6~^MkTGKS}7R6jvaUG7!$y7gi0K3M=cATi0w(?C8->;}5f0es}C2 zrmn<-Ovf8cOCh5e?A*#mQWDFPob!Ggb$t=ER!*l_mJU#-p`u}?8 zh2-M^f0Qb*CxNF2K8blECA^S*;L(Sk(qypn&t&QS0zBdHNzD^Ee3u;$9uIi*7q3qb zc&js)L(mKQ#rQSo`Gt<_-hD^FlLxs82hoq9|DhM3m_F^t|Nq|fu@&<<1zImTre`Cc zLW2n?k_886pkH_*zp#M|H=+#u@m%rXNek)QG(nb@4wl`7nuaQ}Vep%`=GlAU(6Fn|C1U20tFtV=~0gIg`O3$^nza2h34V$HmyAzZxvuWz5YX78b);=%X4d7`wByETvz5o{%yC6>eSZ=s zt2-EWs@u*@jLO4|pHR>*bj|a?u?M4eF)?j|PNPQVKe}uv*!b8in$6EUkp~pkR+CbK zzX1_T1W;v!%Qh30^Dt$(&TbD~=aq%mUc&)$ZtiO{jwK!ytB8T6>CM>5*iF~m5)Y^F z?v3^S0EtsG6%#zggZrtoWB=&^Fla#g=sq ze2`$~VU@=1I9Y%|SMNd{_ps~bVyF+QL*AhezP(?QPBr8II-oFLZR`j94cwfmx#fnqApJ}=29UKXL zTYgbt-}Du3eB!sdr1M#4*4H{j`=XWsm3Ccju^4t)k7vMe5E&3D*14+Vuu&5p<9~{9d7{c(8JG% zqaxSw%1$pW>G3E)#_8d9y(x43~L{nQxE#{;SRM~68(p_o&~t93}CBnoi9OsDa_4A zt(=(2>3se^f9VFQ(rce}yx0r#=q0a1CO^(ULwkYg^T#_GRD_VHI(n_S@a3X>Xi6o{f8V90#$tY?ZCxwuctyDvc$Z*fKNavswo-tKPbv9O-q{63P<{|Vk2 zu2zQ7Z+X~;gngcXfUT!^t5)?2_(|G9d}a|)4O164{xS51mUhrMk?#$d+N5a=C-`x) zH;m;Bc$ps>CH&fT4e;0E-nK!2gVCQ*wAT}+#7p{+p}$U2_6P#GwEjjzfm?Qt0(uGa zK~j<6VhEoPlqmE(p*i#@Zr%F`1?x1BY1p74hyrQpTztj)S6l;Nj+ZA!(Nq9{~ z<}xswPXR9zt)k~C1198aySha|+lt1;DeF2SDP6{uRkBzcG^rV7twL56BbVhQxDoo{X-9r6B9m*B?c3ZFCCb z!dE7TWvMws&I#T#S`G4UPZY!{>;ld^^tyFWBat6}hk0eJ;h&!xerj5I^tHv8J18BS zODoepSFx5{0;)!qKs)alV?UToKcA|CnYGMydi zVl^0vYwsi;Dd>Nf{*|zMDc76ijK4CsGdD9>7!*B5A9!1|Hccb(g|Rn-h%<+R_AnhxRlAl{!ZtwG~pymEF*VWupX#- z9G>v{PD+JuRp~Qtm=(3+f)BEDV}2t)de@Wg6L@D`>79Dr)*L4Ohx^xTi&7{ZHHq0D z%G;%4AM)T|oL~R_DBL7!(ER9`Z|75m;%^?PaBQ)v>4Ygo+hu>1F-baPBJFxn`^JQq zg%7fEVdpGU&KPk{n)6cynq0_%M(xOb^T_3((${NAZ-TV&ny7;arw?MBk2=j>69oH^5BS_zN<;8f-+f(L$wX@BthBZ&_6wY z@l!2z*})$#hlHs&Ltn4etZyc8CUl@fopUJ7+M-6^r33CAGBNNQH4g7=bwR#qKW%j_ zplI&yg?|W^Id|QhYk-z6jH3za5;0yid^na1=SGT&bIOFKO4SYBM( z*fdNpJpNQb{>PK9>_kg7Be}qL^~3ooW-ISRaJjb(&^ub*cn;1i$D`TThnHfrkP0HW znBn!`0eii$f&oM0gSUGxexUXoHW)NQGvCAKpA!hXhd1>ye1o)TB_v6&2w!J^l9Pg5 zK<{v5R&|(rkf=aa)(Qn}>S8$(ir>GDJdyV}e7ZI(SO2*O)yHw^B1N;+fjs0@8tm2W zBzkycF!Df-dMuCo4Se}HeAZsJT$JV0>J9c)3RB?=PaoJh)*Qh% zE^+Qe`HH-6X9JSVW-U&yUaUK7HTfn)THA15{e*88GHF83WU0WD)47^eAqBbo{_tQ{ zv_Brt)RjkRs7H#=?QF>{bHl$-yIdzH&t>@%oy;?#9Vg0Tnj6>5`{S8Hqs8J)I}S?p z{Qbk!vwnQ*T+%K)_we@Xb!#;nuNut{o7gWEf0?T}Vufom@J$3lI-m(1wR>-`h6>}( zu-a_6To5iD2`>3T*{6BD%8O8N3qP4&H|}clo2o1`vEq2_xM~prccW1^bMCj`xX*bB zFNCnuY9YnRSe^*uDmE;Td>oY7SzywlfCdWf_96L=4(k8<=e<5L3)y*WRyZP6XmeB) zx7s*TcPIbcl-8rz^xGF*T#moDcUac-}gSCC)XpcE9V#Epjy_FttceWa389Tu~ym{VvDgKzk`~I69e{>LDtd?KhaEUnTkC zC69b8=%zL%{o?iCiKR?d`uH(%)~RD(B2D~$c-SU!#wfT4iC>g+DzCd!clP3@N5zr_ z7iTa(M?p{0d`@eCVbAbs*48<*k%ZEU0@3L5AHQc4v<>$&8I*u?$r6ylEKJ(CI#nL- zC(Un=rcf%h&?37}Dm#F0@-RtV!+&W66JcU{Z;Gx=Y<5b9a^_2pgmC?l1c+9o+#rAR zgqDS-!nnhEaUk`+kMNPyl}KmYtbE|a0dnfiEQ&FBF#$lAiRqy>dD`88Hq!p|sje?P>t&@L5G!WoUeR1a!FGFAJ) zQqk7nOBzh??a?F6lw6uZ2tJY>_BUxmT*LEmLT~aPPew-21RcLlzHLY!p@ee9@)u31 zBHCm@^Ufnqc3>v=u9MB}6Pm|45Y;Jg>{~h4)YP}}%PJ0_6U$^|S*fmcC^lsucS?Q* z=}XlCPyx`uXa36ATXc2UhIFFOR)~3HU^zpRe?AjX%AD(DBO9gkb`f02_4$$+_%ata zkz_nP50=jpZ;`C}zd{xo;e~Y~swDG`ulhP#CKLKVKkms$RRLXBNQg)Yu!sl;!iB2l6}h*l{HjK}dh#lUYa>@S`t1nC8NBa-&U;_5whm&Saq!G^ zYxmEGH-l_|7oBO;Z~}#ZCl5JH@^5ea@X_!LM&d6LGl^9_`DvL&z1mT_%B+B-rXy?n zIh{kYbR83_L;Yg0b?E^$zx_0?W}TaB<(L+C**i&6g2}*xPzSK^(>QpL@o(TMsS)U- zx>S&l_D!Cb^C?HnnRTRvcCTks#`+eQYR2?!FnnHc(l=fLT$unTt*LN;4;gB7=;N=3 z-T17|-3=bcpYybq|IiZIw^8NSk>f@{U#sVvCTR&ck1Bd+(N-$e}PO( zb_%9=z*&8+h)B&LXsQ5xVg~|I=)43Mll7Y~`$$GihF`OfMWcMbjW%tT#w$ZE|l+ zX_=-ezVPBM-~W;JF0kuUz3MJ5dCb$Uqj5K;F)ZkG zkCk6vjEWt&>v1JE8h&v?;Y;w?;%a~WvpK=#2kIInwh&0Z5+Jez%Rx4>C!-CXY4(aj&WuD-)Z)HT#Ih!7IwX*r%+Z$WgtSuU?+h)*Q`y@k4B%NByF=ZcVM2^ztlrLcU_k zS(vr9W$2R?%H9<@{_>u{@S-kS+m;=|MLq9{>@%0WmjI2Q~}`5uJy z6XNCVJsAXTcF7p~pn6aCdMn_cqAE|~pEB;)h9u!JdohLPPZt&+ITq2Ze}kaU>0~ulA(qHaonh~!~vK;3hsxhRNR_>`@BB8Hki?Q zjljPNeE2KO%*?y7Lj)UpQTpWdB{AeHummZZkT8=6oC$W2>`D|2JHe<6TNoA?hzdkD zhPgQrzFhut$c^$hf%LEOFBVNj#V?on@B$9_Tca~{?QTs9{sJ7a>&piXN>L{(QjGs- zoznrIT4f7t1s{Rq1PCyiI0RG%@yq4D><|@7127UzyCh#WlMh5%A7JJY68K$=0n^4Q zH^YWc_F^t+fcO95mnngPj{-5|lmcWL)3L7s18}h8;2yX&8V0`f!#5xbr{ftCrz(G$RFU^bQ|?@=4$NZwiMsl%JLwSF=KZTNUD^_ ziO*>!hT!n^p(+JKz7J{X@84q%Xr$VOEPZlhY;9^dh+3|O!v-h1IDJHe*CUyY$VFhFrFk!EwUQ#xfIW0HFE z+rR|=fri0Z0CWhbJR5PJ<3(Un3=jG0!pvORElAh1KN4~aDZNa?}9Lwe&*PNzoA5i^EePuJiSDu-6??p|w_!&&L!;-r~*B@kaX;(RC6p&!P#sBj5I@$vmA|g@AYLKsh2^WfcY}Wd% zzwKVnG>&=a>P1k2#zk&lDmEpJrLLDPANm}Qx zt#|**-fZWpsJKTFRTr6yY3TJ#?~tQhcGdVeHeY0FyVFjstxll%gdcE3u98 zKNkqDxI!8aHlx{3BXsQ+f6*4j6U zJ3Ks^haT%TPY90MG>fM}z9h#7qS{qLT?9QpNM;c0x?IF@C9?8e4!X!uw~u2v{S~}f z9-@8_D8Y+fs#_4ZQ77*P)gT157f#MxSsGc|NPjR}EBX+UV){uu87YHhxL?H0Fa$LEiNSHZQe!Bltlp4KH4B;PE2cC_tGOLf(;0<4EMeg zMXZw_6sF$?zBW@@@sopb&$Wa&(~^gb;r>hM%jrn?wkI0!;tyNS0YhU@lG_(E)ycnm z*Q?@G7)UuPq{6MdTDnBp-+o5Ffk zD3GI~ksyt!Y(<@j7PMI>6u*K{6n6QR0v~#4kW?q*UoFwbXh8rU$8JR)$!uaDElQCv z>^x($LF|k$ePx`I3&lGA9au5E9-5Jx1#x!nxrI_mv6a;*rGI0 zzMO8u>HGn#!AZPw0g{FV&<#l14zNiO#yw(@!(lXbqVj>n_dEDFf;t|c$jCFvw)g`P zbXpMd#|b$x>;;g5E1{qyj+bRXA&O23(u@O+*d-mITwHc92dog3VWO9yLTFZLs`cy0q?{JWWPcU?2R8thwF%w=yk5&6ouvRm3#Dr;oIy3BQOv;1VaVt|(r@{t z6JpC_Cg_CATMo~{GlpPDLO|)z{pcUSR&1`2+Zbvg79g7j0cwrZfx2vi$&60u03sn_ z2)@egC_^XJYQPb<<`;sp7Kd033yE(AP+qFr{~{b>aeY|wZ3g50DvlF@Ow-3e6A7#) z3IhC>-ic%Z##CBrDEsIGO!_NzVn~B2lV-VB}pBW#A z2tWXsEUdLWb;JZP;d+{RK#E20?RVOL%lAwnu*(QWXVAZYa2V>(p%r*TX@`Fn#uJ z8gp}_WNrtxcFw;8Rd0G_M!8y%}vumnj4b+hC&nTiji zt)?{VRLLl|trRdbCGKNIo0Kg6>0TEGqXV-VHD7sV(5jNdQ&?-Szp<=tI=6oxZArsw zSW$47VF}-~D)saE86DY9F&_K6MrUSIq*g$dxtoSc)@u<&KAz6qdKO^YO5ZnLHLo=A zm7*$V?KhW&{UAmcE`n#_Twri=VE4p#Rp|$0G7GR|(VAxgP=5R_YzD`XNL!IAqkd3u zoRYfOI-LfbsmaNGG3j_)+Cv8#H61}&-(lpkN<0AhksN<3AbRwq z78;CfovR zrb4H5vcxdO)gmTUd@_}`aIht40G~UHcV=WI?s3W$=bxjqDFvC2ECchay^^Y|nvxvs zX_gTJks22AH;u0I;kl!Uk|W294%pdjG!OorW>Z9!YOb&j@p5=TBXy5~Gdpn7mx-bX z{EI4NjR3VXWp4V&5t#onJOPE(+U7EuM9KBb5D1Ufj-w%X zEiK-Ab3hqH$nO`JcQaSY5oWT9BrJni7zA!F5#xrz@&-yQM!>5paSS$dQ~?}IkCmXU z@#Esdw%7uY>_-7IdpBdf=cKmHX5?DX)3mb1Awe7nW9Afd#&YRsJL3jm1%--r+cAcJ zE4svnYBEqX@63jlO&MOzKnU?EY%fl1H?H133jU1CwDPgXE0jV zLMn^R1gkb$m68Uyt#Tg3T51`~6HuG`;^{^u;pp_79UO84*iZ;il9?(CBZxsP{L8c{ zfQ|e#%4}<5-E@8g6(C_{g~3ZYii$J8X+^v*hjIYx&O-( zgm3W_8u%E5Zi}Ma1)+w^Yi&Z&z|?Y!F9JK z2Tk2(88qsOMqy|4&G7PO4IGL+ivo0E;v)(^iv;3qqfN9X~>^w$j&I%UFt@B}H!iRkLtS zd*>;9({Q&vn`PV)P~VFErVXi^v7*qqPT9vflQ_XGK;4KE@VdUd;uE?sCwEhuRtt&69{aCa*PS>A3p9o> zWT{DUg3Yp${90!FWWi?ltIdk8BBY>Y){Y~)s*G-*%s9R1kv`9S$_pMJh<;TOy&S1l zHzB85qF+)XYCMO<6!LkYtnY44kR~kJx0Y`mM2(Ab_#yOZ1=qLXVqqCaN{m3u^Ohkf zP$}Q?LYqM~ug%*Wh$uL2vDcN2MlRCfA_OB2It4HeLn^(#o>iiU9_f1NxSDa^gSohP z=+5-v<^tg9F@ntVmg~o~_l!#CZ4|}3h0ttSS%uvY#ZSnC%#9-S=5itqB*{qiHldhj zXpCAc`Kz&H^wDvl$nS^qL@$sYb%>Z*8C(Ph$dc-w89-YP z+;jOeubTUB;QJiKacgohL=7!#$C)a7Cs2|!#NL1*0=7$|GM(ZczGRhDil|Rt+^UQ1 z9@6>Z_NmG{{xm+ctMcj=RUv6pt}IaGdM>B8E}Z#zS+dZhd12|M_F{zESX-GefJ%iG z8zMKu!-K#`7GQhE>DvWow|!cYV}7v<-!{&abwE5B!%nI~5f~l;b=jv!-l$A#b%f#c z9$)Aujt{U#m3_1d^`jxif|A|AG*Z@211ZtMaVO>vbHHDH-o`G;8`dcx8^&v z%VanX?5S)mfo#BgKfQEn6+|{hY%O*x!ROhEkRh~0P9l>fY;EFDdHuhy{yNK8Q`t!1 z5L;p1XB$TuoMjhiyIn%e+ooNEndIvlK;b(c(Td$#Mo6lX%SL)!X}QIi4k^!-u>()^7OA&>~h+F=a)(h3Ay zscQ{n8Im4lY?0CeQMn*WylXU6Uy3GVGB&RUb2&}M*jyl;X#@l3Q>XmRn1R0wUVuoi zjtKo(%Yqu*0!?Y6tyr)T)G1=Y;8$e^?5vQEp&}a`w5M;#QNcmOP~WgC zC>dW_q+H+f+av^)QCwrELtC9(=jW!pt!J551|%9l`JYj@gqNT)XoP7HWUE-eco*9( zPx!I$r{{avE&Wz7Y)c}iLX}lo0CEzb&Vd~RXlDNLuE`L&jn-zMoBAIQp)FS+ZW|Mg zTrEO&(W>h*mA5D$P;QmDD;NYTC?>u=>W}kqv6&1(u=R%{E)Yl|TT!LofKIM}Ly;~~ zPz)cw%BWE#BXE!I#%fVg8TnVHcx37h15ro_QD;bFzw79nn4Pv@i;o6gxE-88RBR2V zZ9noK{Zo3ZJcSpgH;zOCP~x^o2Cf-Fj9|oQ)V9Zk5;URntJ!e-9EP^|H~BtbGV z#&^boBAQ_cekU56=GF^fgBu01qx}3gS?iUB-ToqNA8!0v? z?8mk4JsRJbXr4|gLK-UkI@f)mif6rFulWa>5DPr}DjQ;f0843=EZ;yn)3!~6;ajy# zjo?(OWJe>SAgkne1?P`6_qCeobhg2%n9}Z|xMo+qLuPDuo5YBZyEVtv!#0mNC*;K- zONFV!Q(QOC#h|Sq(71dR(inSpGk7gvG**y0VoDxmb++>oFSo2TZeQ`CB!^}t8Y+w|gnthc ztm1EmC0In6W<=?rL9WTw&kP3pO|-a(xv9ZjV4O2aGLiBKU0X#(tS`N4?tQf6E;ev? zZOL{eq?C^e*z~!vFxsYi4z@4l1X$vN%8@YWO`I98 z^{aBK-(5cS+iIn4>4+uY;p$dhJN?TlaA z+_W25XKMS~7ZDlvGi_9=BkSf3OL$prqZ2PaMv92~_ixyF_TcAvw#tW1x`;E)Y(<$h zHTV~`Zpqm$g~0xy_Y;h277aj6^WudI z|At|De&S$nlt`k~51b~QO@6ui(pZ_fUSlW^Lsck_r{FB`z)!D3;SHwx7_x~3m6@<} zH~i6k-i&Ez3XD;%^mXY{_OLs@bE0sHKO0rrsdA09XS6U7DG$f_hh5sq%q5FeL@ZWP zuDIZlb5H+*oj)5iaHwg!gLqYq=lQlTP!W^hBjNvo+jD{8dxDV|@^H1*VF^e_*GYf7 zz~ns*W(~;VA@nxvf!Av-e4e5%Q+g%?KLwq_9v010KWy>~9gzs+dUR>0mmJo&dIrNT z0ZaHqQ<)$9^KT&3T?t&uHE@8}0Wft%*xf8SSQ!y@+L0NWXb}8nG$(BsHXZi!C;wI2 zPwxZHvT=Z!tCD2gOIkI?hptji;(MO_ec%KfO$Ns&`mhrEreGM*oEQ7aD;In{y9jCC zxd$lf*GX#(SsHN~!w%g=U~^?9Sc(pB-9_?N#+d^(pTti&V0thi@Y~UxI_wK*NCl5c zsFz@Fa#rBW*33ZTaOON6PMAp(QL#Xd3rGr{Z_sPu$J2-1kNpI7Ty8+V8Vg>ggDiA1 zBj`U0#=<^qgo{#t5+$(=(alIV85Z)SS?D)L5o-U7Hu!bY*F10xZ5fdl4`Iy{&O2I& zoXh`>e*JSVP}{XjMn-C&ABOp{umzc5npOg7zh)2oyGX|qg$KKfG=N=GhAlK5g_#sf z-~=`4ra@v;BmZ=OgYJ78%uzn=VCGuEP%MB>mQHEw(BX-OEj1n8Qp;QrsvUrrVRSgQ z=P(u=cFE~!?*v&Z>T9{~uqSGo56`mo+gvnBF&!@`P_U9OZB~)u=>3Flvg6oaD!u%8(;_6h^JgF(3+BpK$l_t5KBY8JX~ENk zy%Bt#1|O2sj~6hnw&e^|_n( zU;fLa9x)PzY$ib^C`v$6h=C88I)VO!f{=j#!%_r|gQ_T&B6;xY9i(|hm@NcYFCDsL z`oJ9lWXMhuxNbkXTYSa%ynzghVP87|J5S$9Xcos{|0d;L`*m)P@>84@pc4tu*$mL;8m>fv!h(eAP~L)sZWrg z(L);<1`FB=j+-YMuxHX@0-QiB1lsSzQjXBEsmQ1C#22NrCD|U**J23y>U&TO$xtkT zLUR;)xKM(*LE6_mT-HnL{Qyh^7XFO_j}9`8XHE?C#=3Letv>k`cE0aq<=^$I?9K$M&YO2csvErwvyKvP zvWG?%4F6n=I+!IK0{IxRwHj8Izo#f(r#WN1_WgeE5P#cTnHd;cKW~t$?_M2pF{jCm z5sqt=fzD&q)~k-oI4hgOr^i>m7FC`DQj;oM+Tpl~|BtaZ52vbo|Hm~yY1Zkekiy9} z972+zL^h%5h|I^6DYMKRQ?@3roAkFR^JweQ_ta!T|W!*UvB?dv}OHLj@W$dmj0L8xJ(^HP}B{fU(W z3d&rcr9ZTdZ~B%MXD4seR;T=G?>g1Uk=$v;()oI-xwl>5ev8DEwUVD_nqpCw?`Sr^ z(k$-$Rl!qyq=n>AKHX9P91djWj4;=3fDlDt_9(ifKIQxBiAwla9_ zYI^K=8+YBWJp)||Lk>zGJ#!lRg0G>v_od`7wMAmPK=3g)#jC&WUnq?6^KZA*w6nFV zaF9Cc=I?Kab`t`>ENF}khGtzG+70$GpQ1!^G$v~j^>VH~mMf;?_6k1YQVYF0-xCn| zCQ>e^`G7xC+IqmB$+UpJ+EXJ!(K?%{PrE#=xxIOoGhyJBlVXuKRkaKZz zB4S9lav_cx;6HH%8A3iVf8tf1zZQeba^)I2UH$0+*O-L-&xFf5YHE(dSd%{e7$UXM zAmH6P`-9*5mEFMbFtveTMe}fRWA`Dl-=Ic{ z|JDs_n5~MZCiXb~L(rOlguCBvK+x_Ree5C2o<_(8e=`)q7=beTvY9OlHieQAx|jLoMCx^(T**_N9nlP~7`S;UAW_oH02^@2sZbkN5}XMN&Wr|~KC zU1}^jrZU+c=OOIQa_A~!IZfZv_t4fDdqHOfi{x)9>?@iR>H7~hA0y#HZE9%1??P;) zumA6I2iKURkLz6)gnBA}zcJAIt*l#Ev}CE~?meCnrq{{ivIZ&<5QUqZtTyyk#dIO{ zw|YUo1Ks^M4H1dZb6o7U{FicFm*j0cFcYx2X8LNuD*~CnH(o8{*CgL9%{~(ns2}=}z#8;xU+h8q1EX1=1-Ev`_KE|0;mMkolZ}MH!6vKe*HT(t677_st9tsx>v{G;`)Z$P3DPD{fzJ$J zl={>1daYZvDrY|ESoP*CJ)^T!tVxK}b*+7VDXF=#T4a_gLtF~|-byPdb(T8AB$ULJ zab=f@x2z6fLs`C4)cf=6jvEI3j{IxnlmZ45wW0YG2WGyq6u;&{`n$hiVIC#3Mkc-0 zs4%^&v=7R(v5Gt8(eD;QS8KvnEY>?~-*)GSy3KVu@XhKMr>d2%*E^+XPFOjo{Iqc1 zU~?Z2aVfi}bW>eHcp%IM8`Yq1n=ACUkHMn_%{}nTcPy$cSklIH^QX-5{+3qr`8z+n zo5y2+96Az~sdIx6R%Tz6iz&BoSCCMg!YocOPW;>h% zFtQKe{2hwwTp>Rw_Gh?gHtU^m2&=&0<-)-&o}dWZQ`^952Z*I8FbS@avuFAai(e@e zR1zcviufDq*oBJnglA?>JH*I;KvS;60NL*XQ179fw7+_M*Bx!@bh2D(Wq5dLe?=SL zQbNVeRsZcg?<~P)4;m|Lm~Lo2N;%&lAWg=^YE#E_V?X6q9CrGmS?qdtuHsUucX;=2 z(JMsZPGhR>tS!6uVAq*Xs;0BTPTofIImZXy7&vDJj}FwN85F(+ZvdITuW>)*LqRNnPx)ojh+I>e4_d|Aq4_kPc^vfS)je|(K5 zvND{SFI7FHIyD?Eh4q{jP`5wkH{m6g)0E;O-LNG1ezR(L7K<>`M@yNL8jw7&Yca2X zevQxn@x7D3K*64w=Xds1T?lY7p&TjuYjZ1T#_-@*W9FMoRR_y6m1Y`}+b55UMD74J zXs*RC3{vc?j+d`1w9Gx{F(Eiz4>MF^*k^<2dEqO|z51`rz2h8y%d2QnL)+xun!9UL zxXGp@|FV2%jrG%lvekff&8r!(_;@)qr-AAHUC*GNo^p5>c(*eSUM<1WnQa!+>ZdrZ z7oAsK@wBNz()!!`tl(b;4;wMOjQ;J95wqp*O!c6&<_Wh0mu=d4|h9C};m#a8c8LW|%Xhmn(!gdp{4Fq_Aw2 zz}Xthzx~DHGuS@}OX;r|r*3pH?{qQT=b%36^5uMLHS_a2E+5;1;bU#Z);RIxp~=rd ze%~ylqtU(;cXzF+1Qr~LRj*3l_?zj|Qq1`_z1b-)!>Ntihd<@6Mc4Ev54>I>Nxy?% zb|LE<=`8wcyTCT!neORi97|F+pzEd@VHP=3HrA=L7JN{{@LW!eb z;0V1{s`QAi+I_v_fkl`u_g8X`<*{E8OhkFfoakA7(Icv&GwD_rrH0<~UG2u(ay#?a zKZqPu>X#4XO0CO&BiGF5uK4QS>6e$@TAX<)?-c0OhtuRx^<-1xDC!B?9vyFp&a9+3 z`N2ST)GuAN|1s`#F8iqsv+y^s`)5KETlE2zOc$*cwu8|?z%h)qE z6;t&?JjuMLEN+Z~*X+e5Li*RmLN6K}<(n@VQDL&=t#rQ-zwo{KoL7pt@9WK&&11*( zW)#ApjAh3uCOy!3%(=&N%UOSA{4!Eh?{b$o{|c3`O*uO)-p$!%qbSDIO66jgd#Idq zdF&VDrX@i@SD^A>&|qj!ag@~y+grVzx7TH7p{AC$!;%lH_7B{)50k3b&+-3pzB8=m zg(9UL_m14oT9Bq^reQ(n9sSbJrd#pt7)iBWj#O?tu60-~ zQPbUvX=dpRcbopK1Jm46j3h_T{pIZP?>`8$=ZkGPiUwND3BwdfvjFNyI8eu4d1##T z1?P>at>8gqdi2e>@1?J5E==AF54M8cUzu<=sIQn)+Hcqrob3amzfHaGR(y(f095I8 zSjseMut6v`f=ZlORs7tw7Aogn-lCY;<^IbLitR5Q(yDY3d$Wx5Unfb&!^MtxTFH}X zmW64s6Xg3t*XePMzKQ(sYUzSRyhO2bOpXGV)Gk$yLZ~K)}!61&$#M!BR`oCPt z{c=jN^zSU?w5n%2vSttaeJWZDMMpSMrCGi%$>|b$P=Q~6cz|}i0z91^g_2VOc_oay6_JX8ajx%Eo+=#W0}c*mvHepd(xBfjl0oRl zOjMeS!l0-eZ9<&g_7i1%{ZglDOA&Suu^Ny3QU0z&|49|s&^<5t4~Cxv71vd?26aG( z=bn7yW*Q6fo3?0CMT!T)xbC7tJUO#CQ&(47&Qi(MY^sRg$QI@8? zekDdy@$^=0aAHS9qF&`({1V?D-7n$+-xPY!C>bVcx^G7Q;|vBrhV-2|_m6jQDSSKe zcKM?JPg2XLc#<=FOxoSA7J9!kOMu|#r#7OoNk`{f?}_M7IxXZDr%Y9bC!<~7S%`UB z&gJQ9U$TDRt4vX?PLn;^w_B{lVX<+BDS!T0o5RPP2stMZX`Xhi$p=nc<>0RPl|<0eQWqM>G8G3jsT7FBeVW`wbPXvPUoTkN>xwOc~7xvP*|*HzN?pfxl$VX1!A zUhu04_o>RG8w1lVitXI@G?1yQV!qF=zvw#_;{7o+O3vZm{=N)7z8d>aOk2e10)n1-!=*V)+d=cX+9C3t+h`U%6?cvw*|q4m!n1u%~msA~%F z-wjF?TJ(g0;js?Y4A1xn`Ah+XRSV^TiY%ZWn>B&a2Cdk_a5fRPD?@9uF+7aM`k)n0 z7#QU8p)#}*9mB&!tk3dxeA()tEHEQ%aKtGY2T zh;LV3VYsGF5jK#IS4Mj{8wbaWZy)&lUpG~mY!53`2lEP4G-Y5=%i6|<56^CwbYVD~ z1`jRGqkn)Q?h!+)u`nF1T1|&8{$W*QCnBd$7GYp8UU@*Gxb0^68RnMwoJ5`5Wr}6E zmf>>zz`|dkq~F5FBE73_NQ6)Zw1eTRsGh*8MD~RsP%T9`sAd*ErWMX(s_kW=xM$cUpp0wt~u;TI6K| zqZ|CAjo+odtkF7)8>zk;mCORPPEevf$$>z-E10x$YX_+Br-Stw1RU}pDoD5qFt!8f zqm^2V`jJRr!jJR7z|fJ~6hPw4CNetU6qT{<--H)F&q2wahX5l#T+W8XHNF1x=dupf zLx7P5McL@R%evH&VrU&z81xjtafyKcwEH6;ibk)ZeY!GJn3`dp`bJLl+renVEOoXx5qopa_eZNY>%C?^W*+%w zpo__sB%U#U#PSr;+z93N{vvku>909gy;i0#w*Br-&XcwGDkf8Y#7dEK3dX~BXki|z z#%tm(sGT~k`IdA+e}fvdAjQi@EXp6zmyVdE=$twAPISG}chHdV5q`Ax^6Bk~C3lxH zV`7w`$0hbtU3#M>mzxT+dXiSx`)}ErpP>0xVc`!t(>7chFmEcgEV{g~6%?h3<0ucwa<@XlhE~CF_mdE7@2dh_SD!(htdF4jX{T!dD|g{cA6v{k}Lrz&N!b0r%SY z!haJXbt;DKJtm)&L93jtBAW$c)^9ag` z<}7A@n(HTo->cR#D%kU4ZJ!0VItAAtR_O*7fQ*0!iKF?m%$|NsfZ1O$gzE0%)C6;waV;; zCMqU=R?NJ@n%w;T`Lt=*tDUQ>boEO0bMI}LSM`F5g?aQXZato;I(xTJvi7;&fQZkK zM%g7xB#*1m%q7aQIEUerN9AU$WXU%+zfYeV=xnr)J;1!bNqe=jhiR>YcM zML$i3&6}(2Ruyfo7Ib!#9(UF6zdGe>hCj7zZ>c@_Ba+B2Q9H3#%!H*pe(*js3$j{# z92HUe3R@fAt=S0CI$v>**9*`S2PQ;g59L}eNqj52RGfI)4sYql5>lOi$=RuMCb5o9 zP$@{PP~zo-`&VYY;ye^h2#2M)fk*h}|MnuDrkAXpp9?+LE^>WsMR0sMYZS!urjsNR zfi0hZbvO9feePL&=w9kypEztTpBY~>N>QX4Devb)=>dxWAwH|^fQ=F9a}k8Qdq4dg z0$Eyq)i5cQDed9mqA+cKw{3pbonI1ngn0i&tAzXszXG%J8@^^+OtH3UFH-7G&Ml{# zdggISSj5^mz8VqpidbNx=#(tJ&xf@Q1b+C4)B#8Fvr9-)+pUJ4V*QG(I)I;F$pL$K zvHtec19Nt4g3~U?%h>O$m8(q7OUz0Ye7R|36x}~qe1L8IWLM$!ggXHhv3&8aJD=|I zDuacTJzY85cMeweeaV6(Y_|?&!Wdlrmk1eDe8YMH9=$2mex2qq)VE3YPB} zWg{@Q&3qOlPmw{b`j}O>`41GYmig?kz z5B~0|LN4AP%3%N<^&TELxu}``*lMF)M_ub|$E3VO^S3D48;zZHN?9e2-CAR70#dW_ z9ibW08ddXqh91V+5}wMOW8Pzf+#{69pUjQKA8OMeQ12ZT$r9JW6uT8(X{vDg!ess1 zjx0QsdsMTwjn6J{P~cLn=htlIV_Wg0XfEwl@p?4|d1qR^?I+qvr&Ch3sGrYiW4109bVa=#WfbH!I9b`4S#9`gIx&Ix z_1CV*C$P-rZ(>?hA2RX5f_;R`4ke!4&4l3`^(4H`GwC#cH}QPP=+#P4^|Y>o_={F+ ze@PGP*qcu;s;2gI@iQj*DK!l3UvNmvI#@7E4IFG&WOc$S_`*AYReDoTR5InK(zZIi zgXjtc?;DyCR@0#its<0A0oK=j$^5J;SDA4Z0Z}zQosr5elRb#*t?8iGhKn2M2iw0z zXj9eOKop5GOKc1Zf5C6Q@Z|(WI56SXyP12x-kFYDsqMH|sr>avu5lf0_o331tbACJ zk>JuUzBX6n1t84jHC}9|JBcm?jT12D1n1rgU}T-A+x!qe%bO;IWEn`Oq63qU z{GcYxM&KE%c1ZUiCwWO9`tx{6skb#OtF_nEFeZ|bS4`i<9?Z2}Dh^7R4COboHjNmq zOHu22>Rr?J;|ka&M%7Odnmr)-cF-JwKuBE4%xO=X&@lCiHFL$nZQ*bmvNzjV-~=01 zq>|D7NyHCO!mOmB^9-Dx3n|&%(%_D&$B}n>S0ST%)RRgwI^WjJwW!T4Z+jKg*LDZ4 zk}$YiKYQ0^?m54s+{8B(RI|J|Y5%giw&dwV_&b~FW_!YD&|Qh{K37rl<95^oNC0)n zZE}i8Ua%xk)#vRJ1W$qYT-0|9FIieI&dBzPb2Zxm)lD z`=Jy0sO&k&I|0MJIr#7twY23lJC~C62dCk=+!E=>VtPVsPoY!fBsTC#oYn6#rXRUK z=(L;ElZmA&o^HJSjO!;T?F~-|!Ppfq9c*pAjQYm|1VIJDv&qQ|PL|B9%5OZSUWC>Z zl=WHASqi^2vyX)EE^Qj)0(UC6Od|3A^kq0D)e-Oz5RjQ-LQt2mw3{~&kS9n;$MRh{ z$#MneBzABfj4^$)X*|Q-kNm;4CQxt-h~!eGf@XdVGB`Qs{@ET#x;z zwBYE*XKLyx#B4J0yFLS9#Qzna?etR=I9@V@vCce@sFg53N{ zo)3Wca%s(hp3v$(RDeBsjq8W6YkloGlFOopJy-CAzh(HfTw84M=~gFt9VKknjSi!w zim+p)VR!-tg%jepD52@1zdx?jLP~U*G1@s+K9Y5#4hPv#tv@`wJ#zhiy@t-h*Z!36 z7s*7=>gwsxwAzY(UXsC-QHv>^aAAc{>InUF7H>%SzZG}&_aPTHI3 zgLm@J2oTCc4k_E#v{KX>hdO&>VS9TsI>98BkkAeA%S}2lD89gqlnU3;VK?d z2iyx=BbRE~0-|U5czAVk7KfW*J=*&ZwU8` z%Q-ylk8;yIX9hbfvaX`CyU!9Mh>g83bcEj5w6%Lh7mK4K!JrDKQy$300LoUm9Ak9k zXCYoG5DBL21SSqR-)BttD|?rO8XfUF3()yL7yl*zZIF-^V0!lC zAkj{P?00KFEy#4u8+0MOBIJ^ZOUv|Hy+zQFx95 z{eh3j0|Af^{0-*IzrEvEI-CF~{0E=!qO@m&&t;$heCz(K)k(eT_zTlUsn$=Dwzet- zLh|lCHB0^GHuhtnQ`D5`ev~B{vqTcGd3wv52TqW zr2iHIqAcOBf3g1+JUI>KIfbUfXmarLJ#sQ1diw7OHnB;C{EYGcWCK~buuwXE|9>A< zl6Vur{qOLc^PrOd+0PSrGUdPhc;c0=6@%pjbinVAQ)JP!c>9=>V)z+3`Y+*Yy4208 z|Mp*j#r+)zN_777RA^4gzfG|Jk0$siRVDxAFATB#j8p$I*&`cz`)}6s^CJ?O58?hZ zltMTjmBThi!eFc>0iyK7#NzgFh=?qceB*e6e0(i+*NRvY}gD+w8z&rAQz7% zy2sTT0eMCiLgo9*<*zFv@BGEv`JN+=MMh`SN_a=d64TUH1uhIywRJ9fFC09?@XZj5 z3qquOX?ni?{Ghz)^CQJxVJ@~+X&HRqXLm4UfU3$7HaDN%2-j#ZU>W)KNUQQ-k~*E| z-LCz}8+Xl=v8WZ>TR^v?2N88^i3;|MvKrCtKLj14-!LuQ+C0n$QcgBX=wW%%ty@^0 zruLPBtFSK?K2G3ms|&kb68ffjL8m9=$E|amD!D?Z72gA0D#nu!p8g^kkoc)r5A$hj z*QvixUvIDT*Q=a7Z;?8BCi*_87q3li_nfTDi`ak`NBOg}VaL)h`omn4kJa7`a`Ad| zG+BXlJH2Y;py{KxrS%%wtjhc)E4P&-5nlFc0q;=tn{4|T9*9yx_vY>@A7~q8<9d9F z!sHun&++mgN56WgTd6@D)4~j^K&BXP({9u5E8D}%JBR!=(&O5hBr9|FiLXk>_&eJ+ z+s_AUg*tLUXP*!%VEB1{B~ia){%;@f4;VeopZlwqEuSw0_v`nq_|T;%hSbFaRhP?; zzJd8H2&JMd+SK!=T;K0SkTSx*yG<`RhdJZSSp*lON)BMnrPo{6ZU+!`PS%bGaw_j7 zX^f->eG@fH|D3r~#EyeAAOxO#`SL{7EmmS`6oP&C2A(0{$sC<^T*pfI36cKCPstSI zLS5fIHPvq(NMNoV&xTa!^TpPuGrE3tc^J%}`r24>*_cpqu3UZSibWe)=kpoIxUQ+E zWoon81(2JrVC7kgtb5$a^1KUVRq0kfr%1;l_nt2a5{K7_e;qPz%hQ>0ElBHD>*l=};F4eL|X z8vHrG=q#3SUDf0{kpsPf@j3)|6AGd>C81`VX}EIj+3xtal<2#AD6&W71j%h+`J`Pi zve4(nZ~E=WX}5Ftk0(Vlslic+udR!yx!1A%YLF}`syQKozCFaKXqr6g zu=+Dye^G4uh3tNM*jwIeq;*#t#czlMeC77_Uoe zV?Lui1$6Isy6qYpLi>x8LwJ+zUs~)ap)`J4Z&H&k<_eoK&l5^2z?L%v!8C-ug4lTDn0Ib1NdX#mj=b4@kUBK=pQ5Is^**Qh{5=><9*Ez(g%_Qd#Upx)!x53lcx% ztAi4#h2dwsa&fk| zSFG|(!;bdn9PUM!k>zG;#)Z!Hg1~jxi?272 z9f_*!Zr?byDe;VVqgNR>d$@P%$uf8ri%59XY#YJp-&EM-=>K<|D@zT`$dt3E8=NyiWwKV8tZB@@d@;v#W!1C*) z%2r3`;pt-!l*+W`tCMS*^s5D^vE;4M>y~&lHd9M=sl%OZF;7cL{V}Xd^Owp#e;#uV z3D+vOv0U_-BTfGd`Y^OK6%P}lW{*qLxHNl5{Mk(gx=;D4DjYV@IxNWV%l?aXB(a;i zXp1w^nFoleD*+2$bsTcuZ$=o9=P#k+jdr;;hHw>T{sl8!VBT3OlR#z8+|-|50uK zOU=mL{G#dK#Tg1~+TwFBubk&U<-JE`wR4|Rj?-aESGl=)^WyZc--61DA1J^ z25UnVj>UJoez)ofQkblS6S_2q#)h2l-!ILsY<{gT<$d2}aH9FgRnPk_E`H~d;bUM8 zpsx+N{Ipk8s)m_u)s?tb(P~-0KECSQJ~Uoe&qmI<=^2mDU(lU=kiU2A2kc%?ZREUs6WGMo>0L#e^8mIRMuWl``s zN=^{Gzl>#qzVdUGVZ^Ath5c$N>*i%`s_S`*Agrq~Da)B3InhIn3WZ7k)drMOH=Hy~E`2p+5xOJCUB?cP5k4(xCKb$Vhcou7P` zBCJLk?zjf_#u^j6BH-c~uwH}p;ioZbQ+w-)lK0}e%yXd143r>e^SUoN5ZFqe1A$#i z?_(8xQ{jd;ur^4hbtpOBSh`0(q+EU}9}3i_M)Q+(Ol#9qKfakMcU&B91v9knRCKxv@Ds@0$jT4+aps&_Coer{_gT zA@HgvN@HZ(R9yfu0*nptBnL`qM0RIBBI2fyX^;DbGI*L(7u;H2t}9ZSl;N%bqBM~i)quB@93zEaxmddQujYJRg1$eJ z#db{IHu&85)>cb^x(Xz9PLs7Q@f*dE%z~I2;-D2pJtkqE*15*1<~nL)!r|a+AWOD*$f4O@+y!Pq`x$ zD5144D323BU~codDWDXIwqnm(ZcMTm+YWuK)rP7D~a51J6MJBS0wMJ0=)7b=a4YiEZO-i$h3Q2? zR|Cf6U2q#>JPI1o?h^?-xmeZKCj0d^{)@9!A!~K!C_Iplu99-UW7| z)gUMf00B>s(QG>M4fLUHL#R8t2T$%5k+dh=CHY-oD_3a-O~?w6aqv0jTJX8hYZUM) zoN%YGkI$-ZDLeq}pl%YcCGRZs{a^G8Cqei{*gvjAQc(C{w z;U`dKP__)OH3jMcd9@;b{G$wc&<}3xo;w)kC&b&B28<6Nm3*807;7TIjFX`t!C-85 z{6IF3vAF6szF?G5Uodcg9CIM?Fg7{?_9r8Y>xpVZ6FyjaLdnxnFcu#y?061%E5Hav zAWzNYuWicwFhO*}2S|bnlG9?q6DP&P`&9uWz=JF*wt5G_`P?lqrk)#wR>Uk0G9x7CL&NsqO8a$`9jDO7 zQtn`mC;TCIk3yz3CE_KjTNsmUSn)B-A_p^$lesn}fw>qOG6$=4tA?$719}*+j)>WV zG8luqj50xqq81OB4~BjKCA)2#)$u?oOnYG=z+kSiKe9`N6a^zPFJ49|T^L??^+z?4 z1E=uh3K^hE9(Mr44dZ}dZh3^>riNf~m}047aGLr6kOHK>j~wdRZ~2d|CH`sk5mIJJ zNZXAk>)^@3|42;0*q%`3xF|~r4HFQgAa72CLqI3^c8ob8EpBi5gGJhdMW*RLYAgO4 zl}3W*vjol0|KTex_2M=|7lw0v^{7wwmVZPCcoXbH^oKuSYHQ<|F|aVWw1><=1;T&X ziY!{7R@MQ2~ty}gHB`gkV#M89!f&+j}G{yVQf%&M^UPn`g%?v~I zFhM@7$ynH1fYuY&6$)6Bc{4j9LJP226a9#b4mDMe`cw~NPY?!-G9$zRr*SzB+IN%x z+2A&J3CXZOo*5_}MB{)JNdZ74bDpNmwy5(kBgioe109h7oNusO4220dfU@p{-8zr} zAu`whFK;2-i9F?q;ARH8|6i*B-P4kwOFF=Ew~a#S0cH;#C?v$FL)|rQ)C&BON(x{B zs`xk?g-ljJ9$A7MTBc1>bOAzP8mk=_#VctA61neC^JV2Jp&_WC>{>1xwjNLr1h4rh zWIjjz%puS&Ef1Rn)BtcKV&Ap~4nIU#FJzze+E!U`=MG=;XV7CDM8PW=icN%TU2!}Q zv=HHD#_=m;hB*K`2&Nb+0!7Z2D(3+w0)k=Nmbiy391m-UHbxbD-1mgcgm%3k3)UHZ| zSjKcpOHUSA@`Q3L7GDP2;!!7z@)0m%6$ASvboHBqfk#-75gU|O`wld>A#yN*-=6S2 zwq%ueef{8UZGNdiX$^E3^~fIT5&tod(F^&|5P>>ekB7Bc7IoSI6T*3%7nzg^>W8*v z1x&>-jAHn^)A(ZN(pU4eAFsYn7$+5VE$im)cBnLnN-*}gP4DU*sjQ{#j0alZ01{@v zd8ymfS#E4g0@Pr1#LbqFmNR&Me$h*;Wg~w22<_L|@~)*T{g=3aMn6l4xIqrBm;d8( z)u<8Jq*s;%@^DW+Z?(Io^Sg!wjZ-RqX(iz)n3=nu&wS~c`(Q$N4_Fx_ipmlMv~7RX z7EGC+Pz^1_CUsowG%tObw^q|1aD>)XVCYR60UCrS+X8Lrk_SS7(Lj@3Ns@ zgPmowA&8Amlv)nUn^f}pp7S=!Iq^!7sATiVhuF4QH%p%fi{ux`8~a6JRIEUW#~u=U zohbHh&ZkGP^xv#&yf#5ww|dTHx#y}2ka|+LEySNfS%6R z#%cat3?+vM1bS~y{j&d(^b#k~vk`C66QZ&jS+HKyr_fbzmGQm@^#!QkiGw~6fD2;D zhcf#Ue|I2y&#<+NN5Wgiacq&Qv1G9GrUh6Nlg` z6FkWhw76PR!Dr6(YvaSaCrj*xR7>xv!KaNAo3kTcTk`sYwj28vXYIUKUS0ihgnhAo zVPDM3oaU#p_1Ou!U_u1@mWG3%ca(Mmt#M1&b=7{DF0CnC@%*l6VQ6ZEAoE?}h53=S zk?;W9+6j6+-=uEH)|utCj;zLsIq-Gjo8{})_i!VUIwq!bBQ|vOYgB|r{C%L>VoSU_iAHzj0x#l#?n=@U$8GX`mgDy zCPw(Uj11Oq6brV`)@-!6xECB9Q}X=2s$46oxy*jR>zyltd4ZK$7TwB+^1raxB-MgX zODa=p1vlP)>KDLL3^r<4`ioYo4Cj*Q!<6Tg%BJe3CIn@`LJ=~WYD@x` zX++=;@6MV)k<#Mu%a?Qc3S+yI>SMY$bk;}1MeZLNxg&T4PaChdotxL?eJ&fA9IR?V z*py5PK4L+TSop0;G2F{zB!sqUuSc<0)Eqbzg~h#IxgZjC=e1+K_U}SG4VN#OtuNv9 zQvZP&Ug?xBMNR%Ia?{KAh%NY{4%>sSq&>Y@lNm`X2W9Ju^bD^&)&gkc!D=@)Y5gp_ zH(UAM%FMCTU;pkklp#p9)Q{%S=Rwfv$L`gl9n!(v^u>eq3+8$0V?NXOTlu8lJFb9j z!5!R5UVSlJlb0S2F>0=UZnTYqI(4X5?A-{(kig#Z$4&5l>()lrcV~_OK-u@$;axFw z{}4&>3&MYp^l~^M{X+jJ@z}+J#JmbQXyW?S@wg$StjT{I@ z^dPKBciU9E&X=IUtiaIE8>SsP14oW5g|6gW=T*2(9el|qpOFypTyK*j6u}IsVYcj7 z^JN7RAY(`=Ly{R+oZNNsR%~-{wO6kwpJFZ!^IABG@MSg;Iz`A+vUG6cRxd=&D-LyP!RuliK$Izl0wEL}Hh;Zk zg(n{q0dTrOY7F5&MEW9l&7eTf_{JVD8LFw}shp9pAyo|6;Si*QQMF^z&4>0KB(YHi zg0QgW-qZxy!`CPr=kzyo;Zw<#uP9s9$#$Qvp9I+XMly7e6$kPah-NH6``+1Z%e!$ZSaECJ zGAxg;KbcRl{rmBG!2wo15BY6`VGE*NQe&(fi2omXQ82#`Gk*@4iD__R|E^n_YDo=E z3!h$eutYh!X#^5^dB`O)g6(v+LMRPII!#fBkC5CbSX^PZht31Tf(`RL2%zuyMv!jB z!3|UZ;gktuE)$2NJ#z1(Im)pM6HbXE^D{5+aEEL|Gi@tS+nYsfAXMyCrCn+Fy{AvN zvw(5r>3s>0&_9V+0Jc_j8w==Q2DdW@Osx=#pdW#G^Y+GjlpMEGk=s;&pZ5GW)E>|l zKvO7D@H55m^eMpO@Od~@uK-HUDBKch14$DKk+&0#FiK7(tT@%PimCyiJ_n+mQ4kD4 z@s+>uGh`7@6BRdZol0jx(~3iXU@*0VhrIua{$?<^_zKM*+xG$F{1}-|h8ip!N4in0 zuWhxRdW2AzVz2-i);}Toe8-~jIFMMejf=8DD8#~6C<;A3cn_j|ctRZP136<91)=>( z7sl^kRs)Id0+vH)4k=5hU_*fj+RQ+zM1F0KdChb8%PSPvn4a=fLdz-Swe{$;G zA}BTmS&|_1I7d7l?R1L zk`$ZJ6LL-;!u8=0Ddc}<>DxKA?2BIHE1LI(4^1RBw($X9uY^7dX7hO6oOsY6j^;&= zkdGbUCc0}Yn)uE!oIv?-4V@+kXGCx3e%(FU0MBK@c0$=V1jvH`G9$KsfDWj-2a+YU zA@5th$K3!A$T4~tpwOehu?#;#JPbafK>P$3+$}PJ3r8Zqw$trE>->d~weNNUR~w7{ zKY_CL<(K_wfGWVjp$R&gDT&T0$`UZ!8EitA7ujɽamh*%^N$_HZrIraCw<$;ci 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 LBv~e5{N?`v9s)S( diff --git a/docs/_files/flux-icon.svg b/docs/_files/flux-icon.svg deleted file mode 100644 index 36ad500e..00000000 --- a/docs/_files/flux-icon.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - flux-icon - Created with Sketch. - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/_files/flux-icon@2x.png b/docs/_files/flux-icon@2x.png deleted file mode 100644 index c6293d3013a1adfe8deacabc6544782f22564929..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6764 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 O0000G8YRBDFq6u}v~JJ0C% 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 H?fd@&J#pR> diff --git a/docs/_files/helm-controller.png b/docs/_files/helm-controller.png deleted file mode 100644 index 5777ef4e2bffd421a304bade2ce1efbc566e2d3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55686 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 diff --git a/docs/_files/kustomize-controller.png b/docs/_files/kustomize-controller.png deleted file mode 100644 index 1ac9cc70b8263cd6c3f0aebfb94e0fdd5b937e21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54403 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

{;TdXzj}g!&K&fl zwq=S2o+*6JIy9WM6hCD$^Br5=fp<5s`|&ar?LFRV_>oVz-#(Gh@wW2a^xSa6$!0U9 z#b`vyHR(|VK4G)(0efCy6T4T%B5x7N^%b1lB?6se2Cr^Az6Y^Yg=Haacf8V<{Au9`}94}pJZNxWMUo~@6h!Oi6Q&0y)r zR19{UnorveRhCOSsGR!_(QJ_q@&r-5oylXaRymKcre`36`Yb!1Icp-OG_gvFw=0 zdT))>Uy=UmAjM$B=qA*A(L!(bs?KBjFL{aHY`8bt+Bi4Nq6;I%UkGdk@(GE?8K4SA z6d`|+CUVvcP}8oZ)sI9lhlBhA_!dHBC5J)`gJoZ!V}6(sfkzFoS!o2Fi4eFp`?mBa zL^q)F*t+_iRd}#?&uwu2jVb|e;&j7?_S$u1w3t!e-D8Ovhw|xlHg%3^&-VKT53p=u zn47g<=Nj$Qv>Vfni9Q}>MnkI${?%D1;);WR4lSi=$q4kTotOG;|kQH>omxD8rXsLC*S zg~8K($2+Mf(zmTK@-plx67w0myzCFn8u_YEC?J|dYb~a&;HzZ# z?e!f5X3`}FT!cx#M+O~bc~Kq94n7yf5`w%tTsAwV-4p(yeuhriRU7vCE3>bf@9g;pT~N|Ovb zBww*BQW<*teH-)HO0-%fy7#e>6Q5+WBPA0;&MaDD-akA*IB;3xK?D8p%2~ezyfyZv z!MQh{Xm}Vx|00&H8c+ZDVKL;b7VX8@@~^+1w^85TClqH!hpqJ8qYyr!xY`wMrdmwvfqc_i>g$ku>BJvQ2YQUJq0>94?-xyzM_|0(0zNAdkMo^r zPh>ej(tbp*#n;3$plLTUmLOCNaQP_Sok%iBc$r#7yIX`R3{;Ys|K&CJxrVy>bS*c3 zaLwSBRvZGxu2S<&aQ=<1>^)iDg5?NNdCw{j;BUZI>D)&Mtt#4Pt7uVl7Sy@(NGf`S z2{-KB;F6Fi%X=CQ`MxQNft>O#2fIQ^2I-NPFA1C_Y3$)EeR&>?3=N`Aw_3ij<2XTC zJ&lnreEP@%;ev2jk?5HgU@i>P6l@5@_K?nOy%;2;iokrS!oTolNw9w+LHH`vd-(ZI zT?vqKM-3AQXAaw!A+N-nu8{B8)}OnK;U}|cIAkKwjbve%4c?YV58|D=4d)9K&foLA zpG^wBk6Q7f7FxBiCOm5LVlMr*hr8T25M&C<(U@C@GvP zMR&|kw@Is<$*Vkz^~cj-)KqY;7KZ}6JC{H}Fn{^H;>Ra(*CGJ^kXeEJhK&NNrn})b zuu2=FB_~KvFV7`r>uSA>A0v1C5UGEdPzp%Qkun*+Z_cIe>F(GwsLf($b$dd3Fa6bJ zZqcOG=2Tx8VU)rY!>1~`a|5D3cvgVN&3fEw*|4)?+E$&d^=oan$A=Xu%ZChgg90xS z@M56vYwFO+^>`coAQ>$06=1lt3Llsh6cZMpN#Fiv0^+Uv0^Jib*{eS%-QDKv3{a0> zME6gQB5bBqh320;pd>+Gp0Vpv+1kVV&_uwvyO7WJa}S=nXH`|vfiMz{&XTJhHLOju&bt#o@fvV}J%tyW0f zitwwm-0j)(LA1jLXSi-v3Eizzj9lsSY1wj9tNSd`lNsa1fHjcFTd(*S?s6*`7srq+UtboR87?3g+;(V`CpTZCegXocp1aTV7S@OpT;gU-GM}$ zfj?h;WsNCRCYyam>y~J=r!2Ys!N9GW>M{p;(i6NGMFeb`t>k-m{=nG{k(FntlRWe} znEW#&CHy-1d`sL_=y=&9*PnbCT6Pg0HPzN>Bk;S*pLNV9o0SSK9-3$vc85ef{}(Gk zR8LdJhSA978TGQmBZZ1+0H4gpS$?xxUwkO_;XK!b{gz6e;8ag!$W3Qa)6z(ZdD*EE z5`LJt4!b--sET)%6xD=fqUzoCmD#FsN-(}uw-*iWzcl0Pc{shU7@|0os>sX36=eG% zHj#eGqdR1!PiElEc=3R(zUXVbwBaDBhcJ{_$H1mXfrH-GH>U0Y(IV6uTHj# z^}e?6yqC3JZN~I{lif0SK>Yybt~5|&oeG8}y4lIOJB>d=?Vb23?J4Blc60lT+c3Rn zsBc?{*N=<*qY>Y}@UpvjH7(4+BM9Q;bjOY!!p)DJrt%>7; zJr;Sp-gtI?9`EY4PN%uaqZ-v~k^S7B-nPM${lu)F`kTe~ZAQ=-2geoUieAG0dG3eZ>E*TYg_emGdWG?IvzPn6Nu2VS~ zS!@&+zNn_cDq<<6e6cue^>oR5P|?!3=UJ2QAM^91KE9(PN||0to!CS3IRu$o)yy@n zxvHNDc%J)RE+}ly!^WT6TVKVd``#qK(x*_JTHi;)W`I$RRN$uT9FGU%&-zDJcxMYV zD=YdahKAFpna3v^_4}^&j%dmz;|wrBcoOMMGDm(yI==1)!k8Oue@RCb)&~H1x-``N zJp94Of!6Pfr&idFyRWHhfF)Z(M_sT|7xvI<4iPxSO4krQ01VEZgGWbgcc_bNBAa)r zhweSje$w<%Lp?^KZ~bQVexK$Dmunn*-~Bpp>6rT*w()COF8!i$&QA=`jv|tHj7PtO z=ODEnv?qUdO2GOB(EiNN|9QmdXBP=}KhO0LRomMrTE((S;Jx=gMQ}vt4!p!2#e*^AByg;Y zksO(Q#i!DcTR043RVA=Uwx&lrcpE>vRPEj9pP*b1ZMhodLp0 z$X{ttjIZ~DFjBY6F!&k{kGfwOD}Np=R4mUfv3YLP>Vxv`ecMKt>*)CQa$UyBpmrho0UaN#a#v@eVL+2f76{P{cJFOonbm6({8p00b|2$IOZ`5WEu1p-x{$V zb;^_Kb#a~hIo=;A%iFSm24YYTDQQCE8f5((gs}M-)!}W`RkFch+P+?`=OMKdD9Ib& z(~whri%Xf}ytqT*OY4$JW^{ZGKYpXFNPsvuQ+YsIy#m?X3z6FxgJnukahoh1$y2X7BZ;ellQ|(`Xhn`%y&$n zjYaoSuzwsZti3}6lKWf+>>`RL_Jw1--z>1$fo;eiE|N}s3z{c}ufP1E8C7p^N6b)Fa^rgO2_x3-bDbvyrUNB`gQx`9G4tq^adKO%z2*xmOVHgRs66RmzvxjNgmIG@gkz*xTE!)-6Lf7qzD^yqX zUn8~M@{l_$5eX5bbLOKL9Vay8XbU}qF3u@q`o@_UyWrFrIn)*zhI!26PDYK6vX@<< zk03m+k+*m~yvQ$8nD&Ay^Ixx?xh_r+Rb(9$c4-Q6zW>1z2F~)^CB2)auUio~lW|Gq zYMKloHsI6{x8=$>ZTSY|e3D#+uhOWOq6c)rk)TW` zew@keNHKrw5`8z1e`0kSQhkJmwmk-zBP)@jc;7(&Bp=SocPUV(NMHlyx0-*4W4y8p zxG^dKUH$E+b;UYwJ>);ORNRxTD8Am9KUK#2&V1GbtTAuW_*i?zkP_?MB|ex&klEJE zMnKnJp8<4XLqU~v4RW1SMq;7&^k;Nqy=_}1E)xbiKR#d6d*5GeFRbk?jj560Jl4D^ zsmB%;i_b09u!XrTr01lP-A#Vp4y!+rU$gjjKNLt(h1DrzaIQv|auygxe=n-S+;WG! zu!H|^s(NTD5=L3!dl{EyR>pW_TffS2--vb706)8I)bH8J;{k`Bkl!h#CQA$Q*|n6Q z$fvx5kffXcjRp8vZ}H>Gt!rPi`lHmK&u2B~L9>~o2C1@M^CXlbSgOujrW6HjcV|Ez zij-4EE|PO_!DvHqe;+#c)aB{lmABMk&SS$aIuqd$DcI!CLBOWCYnh`U;ksM7Zxpa! zFo`bZn4BXMUa0}LR8&gSsaH7yHys{_GhIk=-w2rICEhr8B2j7B%05J?F0YGfeX+OE z|LCUKn?^HZxs%^3s+r_%V6n$*n^2Kchf5rS={zV36i0m+LySl*pUqEQVAL`;HyydC zYJ2tO>d(|QU0O?w0JT?V=aJyU8wktDK!2KCXaiP;QFPh=Nra%%xwY;D3B1r>}osKQX+s=T-TH57j94pQxx?(T97yk}@)bz7t z_uBVV5y`I4)v_|snODZ3>bSI(812B{+-PVLr~O8V3*DBn#Z)PenSfM3BhT%L(Hb_= zvc<_NMQfFqib#Plu@gI+)VIvbifK7$%UjLSL!%}>Fzd{#aEnyVr2$sC0ZhC^}D@u*nof2mk=R%!$CxpVMK zqa>2ay3eF9d@xa0vZ=Ff31M2WOZ;7lX(+s+!uD2_%w4c44XdQ~5ZX z^;etw;rnwdgfJ%~dls~@$@8=}_&Bw`L|wTa;#Id3gx@H6h{r59-8pzWD9jm#D>tUt zxZ_kyw}CevKAa*WVB?aXF5T`Xb#++Fu;tL`3>l=D->U2p!n|+c5g*~n3HK;WdBphc zlOyVv1Wn7MHG}`IG<>Sdz1ar$dGUibU! z)-uH;k!RytwEfeyuNdn7XC1k84QB~GYM6Fwzw(y|NW~hWlSZ6o-*b%06H8{iWp7Rjb$DMOa?XR%E#Rp@-b;rlPrd^DnMJv zO3hPqiup63wHn6$9&9|f(61$TS)(`l@x8peXJ2NJ(~SSOT^vucJxOonS*Kd)a|e_? z>)A_=JRQSwE6&A6Hbbjsu6H(d=l+KYD-lF54v;?{<#ka~O|k@Vx+~4sVnkU23>onJ zcO_POLF8)d{nTr+$$SSBs~XJ@+c0nr>vB4Qpw{6$LrmiEcl~*AAsG5pZ-9MSldrOT+#Q7dG*K@&7hN0JaGHIp0nMw%W9GXFEv zd}#rwmN}Ex9MVG(N}%Uy|ATqasrAK`L2wHXie{#aj?sCUqyN z2945jF99BqrC7p)4}=os`yrzL*s1&8xWiZ>Zdvf;;?o^NY5tgo>Pv`oJp>eY92ziDM< z9U7n&Kmgb%vc4q! zp5OCNBH(73xRmP$VmI-qV3@PllE$Tc)z9t`@;CVQ1)BqnCN`ud+p$_lOsiW48S`1V z*`-1xxAHXyki(#ZyT@LHYF-oLo{#@7^zG@N1vzK0Z{yt*o=tNvxE9vDA5A&@@y+|` zLpT@*{?nm%^Sm31%-PGRm7DwJ?#-lM)rp}%k&gCvM`xq$5%=G2*RI`bb#MUdPSQrE z5Cl=nn;r?XRPWbIuxy0&pV^O+@e=BmN==@dYab8HFk99H?+c%z@B~d*)tts{HmIb^ zv{EC__us~=*OKwsD^R+ICF`%Bu|wa-qiQ{_ftz8@51>(>EhxPWLO}&y6f%L+O3Y~% zRK-PU`{90W_}-W~#`xMRDOWzQ!;L$V2uN$g(}3Gbt)44a?GwDiew|`<_LoD9t+TFg z59OI-0=p#d*FvRHwtl>1g=QZq#4o_b=l5@HL+0xh7-_t}C)ILcf0d?Wb8Y+8gb#t^ z>F<v4+U8?!_H0s-QnXIK%^2|BhO)bLYiS z@A1`vnEpR=$lE|Sk4Mm9+`_gwW^ae@_~@xN+~q$|2#~9l?xj;EUV zIp)GSKTX^x=Y%Bu%6FL+SpM)|(e#^o6KVHymNrrwY5DzjfBZot?axJC=EdLYKBriW z$jY?yKe`dJ7hvaejIxoX!Y*M^}4IHMjBRy z@Mg!%34;F3WspUZ(Qc~G98#Ymn`MW6=h_fTLrPn;*AygCt?Llc)c;J8xrBz?4afw< zHPikYv}xhfF60AgO&F2Ec)-qKbav7d4ncLaX`=iWQ?LS3$dzDb*! zuU-CuD7Z98J&%$CX&URaUZ3vWK)&&WSnc+YM3BHObTQ)B!Zn`Y7tNvKCBDZOAm(id zb`hY1jLQRb0-y;)Ow!JiVr-3^Yv+RX&NZgt7Pc* zhLk*-w0{rZFD!K6``)kne`e&;+&g!T#lc;kcUO#+%-F6}A& zlI)8+m2`da+{6I_$)-M=nFKzkjrmYHHc^y09GCs4_^KwpBFgs;lPcK#is z{YQ5Jv^IqP<5fLI{!br2|9kR(ZFOZHEy}rQ!`^s)IsPaBR?WF5{cY=(luzw@yv-#| z4XMT(&#M#uZDhX3c;Xsg)mMI7nAq~D8x6Hpiy5JxYRIR=5D`lyK6vH+AgGESQmlyU zS9ca61628E>hIa1MW-iu?J-P+zyoU5QxO-T9z9q+pAIaadLxmjz@8>Fb&#T{z0WHm z4)qc1IeUlL_$@RH?@s3wjQ|)Azx4f*E4_SoeG5N5wqQw8PJc?c-RmURDmzH6ex*q=^&ofi%ZW!YDdoA4r3U z_Q?ZI^+0{kIup(De~T6>(FNkMk>3(OPJxDyP-O*$7VS0W7@HPKkf=E1|U{6f~UojIwvc*)E zrYpG>MpHSH=(`j^SQIhoa5a>quUs}Z2vl@k46EVp+!)s*bhOC1hGJKoPdo7E+P6lr zRw>Lk8Jp^~?m}7qi4cBfk@Fb8XC&`1NINdzdfbQ!i~C7DBEIgY>->x-U8Z4ShXX(u46x zkm`=X`@+p8QpVnYk8hQdQOzGz8aSzD)Bg$8G((hmmgXQ+24y7g3AF)}^7} zn*WrDp;wgLEv89W05{b44pK?tzHr?^!h>nuppF^A9{M-h-N;l} zc+KZ!5Z917Kjhu+z*nPQEy2E@_8=1nqO4>D!=O2KTiYB_P^k^kyW*k@hi_VM%EkYy|w?aR$iV5 zUWBW6K{?8a>Ex>f>xAZ+dfOHvT(3j9;ftyBy9wc#E~egh|9isU^EMoovRb#>5Du#t z``as?$(6+|wzB45*6X?oL$Icjq7U)O<@hDSA5} z*r|D-TLn-eeN2VNgQA&@P+4hGxnn-m|aM!wqe?xp%58w-m!;cR=HKgnuehS=|pDYFJEPH z1GHVN73RrtXQ52$xM2Qh>xM_w-9m#m^ZvsyJfK^ z7xzZyT@y-QjS}t@NzS{j)3z3+KlF9}_)Ra4KJ7O5W!ZRfp$;}d{tV8voJKLoQ0ei3 zB^GOt<_z|kwuxePKV3&|l)dx0I|QYjeRsaH7pk<-l5=L{mgXgsKH+(xU6X;D1j*L- zx@`DoA2{Uuov8&;)uqRQ2LGX8D_%AnHd~##i6t*6Pq~2?i|n&VArsXL?+1#hpT&m2 znUp~ri~CG&`8jCAzT~AbSu?R=H)DTPDB;X&2t8%OX9_5=>k1}27HoT9bRnfM6--kc?;&P>Wqq*0#Y%+50Ke`dG zM0}-Rcw(IrYEn$Cd{=1kHU#ONs$vgmICgC9=ca#WDO5M1Dw=RzfdUfX)e5D~aLoO6 zk$5TmPx8cnGPn(+xHkX!5mfkSZwVuD+;hG_?V-qj2>VTcjuJjKGIv z%^|zm<}Env5Hu^`gyMD~k@&e9|0#1mV?v;8PvL_kq)2rd)(s_30BQbNp*qjndQIpO zGI+)`7TnWwlgDlJ2vqvtf_S?W_>Mtr9NQ=L_*|9F5Gp2jZ|}0C3kgp{26m>U4^zXaSTRmWX>HKv)-!uLLPLLRs zS?5lmTb0GsEi?uzh(h44Z2PN)>x*n9vk=x6y+9aI|DWG&JzCI)+X z9IW4#^U9OahLmvQKcf$&nKXJ(q z2jfBOTO@>I8b4`d_R(|Gl+PC*3l;6dERt%eiw?zGw@qJj?WOHx(VXWqgng4Ugj7Qr zrAFi~zazE_{Zl(1D4&Nu)&-Bt>#Ysdpwhc1vwv`F@0Pu7nsU+`jALI6oIE}Ak|1F$Joq>qy&68`!%qbSqdy)j zJ-yr5G?`9=+jAnWeNq>RSo4TwvABiN57|Z$8Y^_YUSn#bIpYUsW`M3Fpk6ifN>95Y(K>Awu0u@`s-tW%|jQB6)0aZFd zl<*&hS6T3vxpwLM^I6K!-dvI?vNJ!t!tt=JRh->hx_QW4N8(<5>O!V{TH8qfa=2P{+w-Pw>c4(#RsPK4{wZg2m{1AXtyGkRb!ecz!C&dr2 zdBbwaV#*Zrtd>1vi%A$_;0fN`H1CypLarOsO{x0P;(^QfHHGsWhsH%ym)$1&a)Ee( zx3)|h-qBW_(hRuZz}$WA8VQ`|ATFvP6xtVNzUJKuH{|DsCpS^MkTjpr&1OvYk(b~J zYR6PABsaQbL^Z0B7oi=^1ceF;zi0?cuzb#n3$_!!-%H*900Db+XtNqaTsv;?mF>Y$ zsf39V6KGgX=H1KD`03;0PxSTXG#~`^kEEG~lNX4fu!&8@`;ml>APLVtI>&q2yPWq1 z@T-wEdkSI(u$fB)6FhECb~i5>bSXl{dF>cH+Z@6>d|n@Y(0(pv}*e#mlO*eU{U%?}Onx>O>=%`J#Sv13>wGDx&Qe6`FH8$*BE2YAIC!1NcZ znaM<vZ-Nf0b(jJ__}Y6Ze&FSeA(WEB<^}>9!A#MH`5PQ=n}I z?!t&A^}d1K{edD=1mQah&1PvrMnuM$Jf{UAB0+v+MFLY*?6|bd|nhtPBmu z%pKO*$rx7{>fq>=50vg5^K<0E(64gRe|@-PL~nx=*q2oHaJW@Ee81|ch_~X~BPv|* zLA($6LjNvsFO$G=)A=v9{!}*aL9BRk3W%U>e-flR(H&8`%u@X`_X^S41A^5F-xeZ) zen*QUihu0hytAmhGorz2t<`kT^Qgh1sp(GkXes(tW-YYUA}E@G{vudj6Lgi4eXfc& zqXIJWs@rbEry1-rd<$}%S7d_VohGnr7K)z;YMzHSq&tS@(L@#E&93;Rt=V2#6EKI{Q4|4qk|HPJW9IOv& zrN^ytFh8*2<~!!ma_|9bDhIon#O?Yw-21GF^8Nbfg|B2l4?N&Q#dEmZYJPaxFAaA- zNP|#?fL9Zc;Ak6^DUI2Z9pitIH23l8@9THA6K`@}?N`~>uYwAg;DTk1t$RPy-`fp! z*+w7(mv&c;S{u}33Cg*{n*#hwDNZIa}ec3U`(1T7NXGIH>KIHxN(|v}ywUy+t z*hTSsHKc9B7uKZ<+-L>t1d5{A%pc(!>Q%zCtezhc;_uk&PfrEond+VW^ywc@N0jqn zys;|xAYT)Sy>T{cUG$hh7ArH8@wL1W+1_h(oAtbc_wB@JjA0JNX|=ZIV4NoMt2@j73)ipo#ru)9m`fZlNL z%zdd_pjrD5E7nnRk^BPb{4933l5?$%hKNOf+XXPzv0I=$RL+p^x6zagmVQ{A5?9@` zj?ZzR=q?|t9FY;MFaa_V-!p_bE-n(uZw<|C~E=tjv2%wP!QEd}EDnJhwLUz}*! zVJbAH$mN9yqM5wk=NlTW=M35opt92!NY=h6Jg|hKojW$yR$d1Dbx zc?*u+Fzm+3G?O_I`|TJ&9JQZe!O@_Aq!`+M&_1|X47sBJ;`7FHylqS4L`vleUfxzE z4~muI%0aI(5`55mCVKe{#$pqR41oi`%*Jo`^P|@o@9OtF_=>oTHCTV={E8T(_g&(% z`(N)b1kz=v{gDrysUPO@;64kUWBx7^h4)>5<~;*$SAUvnVjUQN=5Z`wKfa#%ykxX* z3n4QJ1p)0uEwZ>bvr77n=IZkcU=1eJt`|-WhYWpv{mUX#;~L$xiN>xwJu$%L7pF3% zd%ISvT|=c`!0mbCZysOQ@-~ak1jYbcBn0IGtb*$Y#IvH;$REK=d;w-lA5Y%n=zpJi zE(FC?-4iL8(qjR2SCS4Kv-CFk`8jo z-|;&JqP(pV6?;rA1_U!bd<7wwvhhX8In0?T=(+mCexliVDg;rjeN)&r{`{G7CC=l8 z9m$t-cD7Mk{R42x`{5J^$ zHe8N=N;h46{)Ig(Y89df-blT|i{W&2;=fNne+)CG0G;mQ_A)*9NkQLgRF?{+=#~JK z;CERloVqAp9=c|$7TTMBoeTV>hTRBREnbv1cK8>#6Bu3Ev$0ekmxrAEej(!=Hu$1q zt=Z<)Z^I3b8hDc&nbyC2OFf;H)_4X?7{qYll&x0%RblijcMjj+&rKulL^OY_l8@sL zCI&4m`<)S+n0g1yCCya1pPmo_+e=IO&A?$hOftRRlw!}AgP!%g?}aTe5ra0sU@L$Y9ZAS~Zu1s6LjV5bsX&6F7>13IDkkhq&Aj%SPVv{Col1|OUEvsI zcMq?_8D`A;c1lZ_6~|Y?J0)Jo$>{Qj% zC%M!mnPM0@LVUuuU|!>g>(uoMNZLvC=aMp)_g7tRGeM_$nn|hY!WTn1N6~MbmPWl4 zo}c|2rP10kg)){vy*YOqCpIWY*-Vbi(t8O zwvftGI^$CXo&?M5{hRM^*vV+uons~Yc;oN0#d!VA-ql^0NGRa_7`PQTj6!bzi~^1= z0MFQ&m6%lR&i?+?C~~W;&|s>qk4+=83=9<-$kU79jul4SW$uonaMItPfxwrq2tU>? z&gIj@L*ncY>hF-cK4L)(>nNXVw8_ z{Her&)HpL#Km;3XGskpcjz0(4R80k`=!W1>nPj7EAPed@IWO^b+Xh#L-P~7N1Zbzh zP|55>l4KC^21yDhwfk!_?Ice4FM%ny3wzwTub!F$jHBf80O8{RLH8x>8ItAS5W@|J z#)p3IgAza6OZBeovWx5o@#;*GzfEWP%SbS&y`}jLi|8p4z7J{kmM~c&RAvI=sr_AD zW8eUG<5eMad5ytc;C8NjRnIpR?6V)GpPiFmT}fRnUQGDbFdUUi%raXrapua4WE|Vq zO6am$V4B(CxvxFn3@j?3Uz828@laGXdC2Ry1mv|>H9Z^e&>!uazZ37osRxb@R}Ou4 zh4>*=alNopcQqrFuvwHF3mdm<|3Lk5Q_CX3a>+^Xu_CN_UaPd z-QdDWCV%#cR|`+@P6_rAiJ@$&gqwG&sE?rVO03>xXC3YCh__5$g=aqfpmF&{UTh!+ z&eT08=1{#j`+BYx$Zv(R$)tR{$_gJK_RzkWIrEG&sUq#Nr55|bmPV_?j@V6DFMx$+ zI0MEgW!EL(vkig>KPlj1GtfziBE&TMnjSOAQs zwRkST&#Edu?fMM<;X(5U^cFe6`)r=1q&UTTo86|7cse5eCZ!{OKvdV3(-CEvfVX+^ zf31CYRFlotFE%VR6%a83B1rFOsKSd#69UqU6afhY2uSZBN>h3-p-2n8C-kDAASLt~ znt+5RU7ED}1oVA9=R4n7_pWvS39M&k_Uzf^HsT`=y~ z))Kh%0HK9lB(zmYjFO7AsU&LYRCrCt+f(iGH zwH`jZDIVR+MQUy+{C=>T54bGL^w90j*5Vlskdxe@`VHED>K!$L)|1aFAupwFyAG9?&x>x zQ1KaQwtPVnlBC)jbx#Ezs$aFedjsBoD>K3HvHF9b{JF(ee1<8j>n^g1QjjP{|#i8^ODEL!iw;yWx-jg9+?B0}%x>AiyZ=>`> zI2X*E`ZkuhCnE5gMUc?Kdr~JcGI8p`DoK#=^5X@D4F2F-e)WJE&em|#<*FNSom?q! z1*SgOe3yv#GQ#4#KNRYs%Zj4xS@ER+XFU@1_;fLTf7XN3c1>Nt+dPz{(UPeWF z#sfu))v=ajE%km`*uU62K_2`*D{luFkSg( zZC@dk{OC{{W9R0NewV23zYTb08kA)h3clN%eA(_xk_CBk;!g&@+99B@&Uue2nB>oy ze!1D&lXVAayny#pD42E*_hv7-=f4i5L?Az{Bh|HJqOHYqNzH5D>a3xkIF_}!abD3@ zbTTu3+vp|&b(5b+#jpxixdv2`%>$wC-`JinUj4 zDBQI$9%&B#RI7XN)b~pbHC>h9Ceuxp2P#TdGk!9R##E2z7rJ-MB>rSfxRZ z$uPPT-QMYa+x4I{{tI$-Vww7p;p_y_-DCLQLPUTOI%UUhxJ*9(d7a4m*uMZGfW`b$G7s! zbv59$N(d;Atevp1LlSs^4+xPW)N1g+AhQv+{Oc{>tfIl~qHeVD=*tEM>8j~m{wej2 zL$Tj$guxDWCDYpv6-L0HcVG1neCSwsIbaM^CC!4abYktjbZ*{Elr$M6j2m`qN5fRncZmA8@D_L=?~#tH=u5Hxprm<)=)VTC&2(-jn*}v%)W$9 zW0)QKYu^uvO;tYjLSTz9JxX@FMHaLy`JukYA2wGF@uD@JE* z9qOysl2EKa1!|rkJjHYRw&V8QMvY?*ITJ=n?qje7b}Wlb&o-h~w>z@Uk)cvpS%h!$ z12RA%OO-F}92}-T`tDh6K;3n7#e>iY&kmoAw zEs$wvu@n?7?5MyS$4vW8E*3m%0%oooGm8Shv1N_ihuIzV9mV=rbpnA?=X4RSCb&_j z@P5d{$7bhj0;?`+Q%T3YsTw1d7FkTXPS=hE15lK z%tIg(c&#FgR*J*H{K#OhJobhW$;Ha1Srhq=r6p1WX=}e4X_^*)bg(w)tFJm@MRd)z zu=w)8ltZLpOHUmcbac;>R*}j7w=vM=b>p*1k%7N?k zZ~GOTa5Rt}gN+%B|j+$9D;fRmdTHdvQ)>;MSM&9m*5LgI0<*#%TP^B~Jx_a)709 zXgC~4M;im~g{~hQFXv-+T=;L&is{v9jRFd1igk!3_Vj4Pb;|}0`r&mmQoC&;Xy5n1 zsr-{DTqIMi14|Go^N4bgTi<&(Oa`I{zj64iW+nr3H#q@a#qU-IvV7}Oe<_4K9q7pK zX;GcCxHwXUXhLuu>P24YAFonc$m#Hg5oVNT(*%EDXU(Q!vMZVBHETe1v8rnA+We&E+BzvLpGFbUCaMLx!_>hUbf+2vq&i;TUG zZSk2fa4)W4yCjS}CF8AP*jXTo0_Wlz9n)1BntX&0%&5IvX1OT`{wR4J2#-K$wlU#c zr|r0gOd~Jg!&LO$i$AL-l?lRi0;&Kb*{AHHk~n}zy}ubi>@SSF`0B! z_khG>_IjWYsJsGxMySg-bwj zHy{%r%naagF92oJ@?l>4+av*gvJ4V{)suj@6CVG<5}d3r4EzdM%N_WM9AM}EL))*R zKnNCIf~VsYBEY=T_z0gc@bP2pr_!4Ace*FjVhmEiv%;*1n+PMCG<@8WETTaK-sa$; zQ+HVoAG$-(i?dcl*gpIcZ$y)MLi3;wM&4xs_85J!EW6$Xi&PuvbNbG1O@t@jiv!9A z`YJD|jZAswc|Aeg)idcjnkuU0#4{s{5YNO2H^j4cZd&Rc#eo-yV3AJ%B>?Nh=)%hA z$c8@UdPq1NPTM5wYUoF-uB<{T_u29QW#GqB_aTpPS3HN>!J5_$p$lxy(`$K_lg-Mp zYz~&yWqC$)TzYhw`)Lgx>h=N(e!tj({zS1hj5yJ=PdmZvvLo#W3hVlpxqI!^Y4wLQ zcpV$$Yj6wtcDqIMR&@KI=5HJ2c)>EjnUoMW2d6x--~7eiI`u)xbM4hB5e^Q{`*(%L zav{+NPdQwa?=LK_#mH5^`z#zaZViTa_NVGqvJPccTsTn*zYF%;q`qe*CV86A(EX6~ zr%SwK>8En#2*>B99%c#E`+=G3eC)N>UVVzoFUFTOfQ{i)5SB3Vp^?yi4^6p)DdHU9 z_gqMV6*i?>M8w)U@x{1BM4=scylec}&QzBEgjJ|Kf=|vXCQ3XXtG2*qt;4J5>o|yX z(;J@@%vn6>mdf)SU|K!yTwV-O|22aGjKA6$;%YkC0o;(e*q6OF)nF6_o?Uowm0o3@Gu|19e*DWv_({({Y%+}kwlla&yG;^;5bF!XZe01o!m^z^Axl& z4AG2&Q9jqaaq~oOnvTT23Y`5fj56L1;lMc z(ID2R%mO}bRgdH>YAMdIqE-Tqpt`&Z9Xbf-xFx(TTA#4c)JFk_-x(9ln@_yp3 zfYYDC!>QBbaqq+*fY>}doc`ywQ%^qy0(`70UP)GppySTde+k^K$%2m0{~N~4yeB?& zVMGG)7@JVHHz4R=T`;$Lo0V@L4F`S)(E5J`C46T*sGjooi--TjJ|16BCHI@YM=w(* zBY-xqP*a?}&|5K~#E~aKlzy>Fh}3t+2o*Z+huX6&q(FZlwILq0(CBzv2EQbSUq7sg zJqxnQYN~SSlmUG~c=O`s6$Hi4(u`emtdHUDdh938UkcvigEy}4!v|V&-}ObK7B-N3 z3v{0Czudn531D)@@0c|7YL-Kgwu-$>lVM=(Uq%j`tc)FO>36MQ>pM_*V`fp5aPnc; zZ?|RWLoRgcuZ(LfXQJX&CNlb?Cvy~*736b+V4$`eFe4~eAz-p%!Xe)3(%02ciDBhjoy~NK3GJAyo?VCSe4z0B4X{VBKEHII zy^Q074_zsyH2$^J)z!Cf2CI)EW3u9~Ra)4>Q5;0X>*F`bV(u{aYX3dcW-TVGpNqx6 zFnB);V(@^pKI11aH;CM>qDB8e;1Nb~*=jeu2hJ zFSPo;iJfz4ZjG(4nq5E?ywhRNYL5@rK1Z1_%V4;WD7*|#@v_vT_dRhW7hUWpocTz{ z#ntVNd`y_Ya=EMvdAkl`)_7)R^Gee&GEtyL8{xQ9!C58({q5CH5NeR2KAbTYHxq%bo=o zE;v)!uPs9z3DHjuW7AZQ<_;}nx3Cn;gkZUA<4b=lt*jSW&`VMV=CwvHGCU7~!ecCu zjzh0B8%*K(zvlv=jfzV4us&sSeU92`^8viG={o;x>8kjD#F|z}r5L;~x#5xdQCWN2 zl%Q7%(w16HFR2jCD!{DRUa%iBi2eR+i?CZojbvOcLPM@#M)t8Bkq>8Cb6BmxLZP!u zGrz&cmJPrV9y7)06c#NjQ;;8+^u-f>Z<`EaW|ICK*?VnTMHDzx5&0ZT{ z2xPlme!2z5kA5_*Oio<6Hl?V~-#Uz#blVzDwZ= zoub&k@!BjweS)zh&$-Y3&z1a3D}Js2>EuM(_6I)x8~NWjX7iNrWbC=&K>Vrk-%##f zTJhrjzw7nq(e4){2EXAu#nBJ?08sy$2KpJskMbBmc8(TU!=0K|UQi73Tsg(WJroRE zZ>0jl_B+?C!=I#DWvwu$Ln${xCvMau*K9$ zU_XI|Ott4kY_q@Nm&2fuRP?^u8#C4}Ln z9@RT!y&;pgeJ5D*pHtuk2-_ru^<};&{c5O6$SRe-#`kMzg)G9gxPHdlbf6G?g`5A^ z8i0dC9r@%Nr98MPg}%`Vfr-0t?0w1)?dMz7s~^(hP%ifMd*qwM@v8E+2G zfvB9Mt>iV!0A*+2(%Z)O23ennFVi&n$^`IJj;ruS+OL z@r|<99t++j)K+bLqoin+ltI1^oV)eU1FJ7fLsiXsvN=rI?-fwyLrf_KPe-qYf#K#> zhh)WlivssGS2wJG>5=4k8I`koe{Rj7>VDR8aATVceuoFPM4YK6&Cpg$E6P!)u8EB- z{dvL3sX2+XZA(ch$KhaW_509~n3-aplD>s8MLzJ=E*K>=vzl^cBt@mE$m@8|V7;rz zdG}s&`Cv1Pmc^#mb|Jh~{Wf7l1oh1izO1tA$6nRL8`1KY80oX1H9IDcUI|fRdTDa* zogpBAor7)OP(e$Dy;bpgs3tSGd1j-w+2Re$2a9tAz&Di)478(*Qlj7bd}ejbGVT1M z`VW6Lf=P?tLnvRs8?(hszfN8hTR=-t02etC5cC4&gwG^%`wp95EKoMrxhm25)lMJu z_>4XXuqpT*IG}k;r}f7I_)C>UDs|WzED_52hOHhnc!X}y8Hb7c)na4MPu$*Qr{mJyEE_S)g_ zx-1>n*XXH@zy4Wc64|Uw=G9H+98-F)gn_EnYM8PD5N_m+Pwytp$ETMG_2TMLvB{|g9xzwO2n zOD6kZ$x$aL$I_{@JO2v#lFOe0@uzJ=WL|}LzppE)*w4tlbomX{pW|!gu=A^Xs1)Mi zneoZ;^Evfj|J2a1O>J$~AT6>a(PSWq*zCjB%K%cbsEQ}_Qo>4^>G_FT z>NeD$tWq_Q0y6OrrI_BnchNK@Djoi5-ub$HChAYNfR}S4?#FKxq}l zt7xoYb!mN@=1u;JmX7QZuro;|;|h6uupJqw)A-wiFJ?kYN~4w6Q)J9oHEdizR4`No z##g${OnWi~O=ZgJAEwlSW2L8fti*XYuur1DWy|(s-jijzng(klPm$~rp9szGQsf#dZWx;6l zwIETSr>5|YU9&H}_sjlzW)eA68nNSEh`%ZB6kz%#UFs-G%cFbTmsTt5;wHB;7TfOh zqb;_>>MlqhL?0eym4Qub!9&th3WHDuBKf)j?oM#uH@TdWqxjjm7q^`bSAzd0#?Xt@ zN)T1ESftG@%g5#xatb;^;IWo*V%_T6$OuHh9|@pO1-4fSM!F>mkpdl-}>V zaJNU;B_f+z+#upL;PH3hua3P@tmU^aZ@%_J%12%)vbfk%XYFXe}1m2Qy_#qvA#HzO)N ziyrx##s%+6%Mi+ush5K0%fQk6@$V))3X0glFM|&5i60GG8_X$Ie-U-8Xj`~Ay+5A8 zt(38o;ygmzYNE^cmJ8M#88Sq!j|fa(Ga78Z9LZ>*+T1HWpW;8iJeqG{t`IDE3YVJ# z84$-3ls2bte(<|K?Xwk*32n0tqxGh}SC)A%=0QacO~kVpK~FLJmgh~Kh|P~xDJ^M; zg;v>C3Q+4=FC#mrkF>qytskX&`*WwRJtM_YDLTWsLK;D(;4M*$zQ-=qeD$}k(9s;~ z>bn57lkl=$%7nxZV8rR+HzxNSBHkmM?(7qL-QPa0#59E&W-C_a2eYb>*k0`{{zy$e zr5=3KdZIlXp#k!g*BOrpwY|Aao#@%xA{-j6;_5Z+Nn;l*#~kO>TvK`Y={Q5AV)J(U zXd>WWw|%L~!05xTFe`?_yZnkxbo4GTAzgN$D)1Qq;J*@SBaE){+iYGaf|N`fVD74* z2f`w-AvLyX!BWk*lG5AHm9Q_83E|-P>*M@yOeCk&-nM?ZRBG;@4>x}49>3{5CL)>< z4NeycE1GC$NsYJet9+(hKVilew*Z z7K_&lB0DrVf4Whh3%ifAlGi}7UyHNXpMQmYCsZ-K z;+a*3BHgp++6Q6FgTjN14r3N}4ix&y(h4Kk`$ncqg-JIl6k`UJyHCv>$1M+Z zbCEPxHU!W zF#@Ia5{tsWBNk>BUgkwdy*%CzGKZ9v)-5D)3s`c!u=}iw$V-38W>H4L+pIWd@dX}X)#&k{{a!!+Q7u^0GWJmyIjJ_nhTp<2kF&YDe07V9 zonfdH9JpU3hY+sLn_ZJQ;20G31d1uRQ0OOGsE*#r>J8sSZ7e*-wx?F_T1z?M?BViJ7h(pO9lL@91HU}o<=&!bqqG&U zunQF+zf8}6-Kb-F@HVws)aI4;eKLu*o6)LL8<{C*d6TlOmsf3$vxjgSEVaOu6PR&~ zxdfYj<=5&}NdH|M%q;|Y?N6OYsFBI3~#$e{$8QSuLCd^kndS{TV(ZK9-f}ORm^iYz#tDiR= zQy$AK+b5qiFRt0>ghh&VQvvVD25Urq?%lU)Xq?FpZrxU!=)9#=U%~*(NC{f<+bNhx z>ARn9&05g_C7!W!?dtTuq9RiV9+H_N5y|jlw2+L>Azbu464vus;AmlDNt?1lrx4vj z{(@1FUR*D3l`>W)Jj{GZN5C9`yXKtzE~y~xdZ9_kfaVd?i~S(f6qI=m-Rf_M%B!E1 zgsH9zl{$)K5ZXC(DNcVx_$}4Ed<1nleuwys@ne}f;xzgit(-2x)AqzX$8P_-?x_%% z0y{ol{?;osvklRvcPkU27Hi-jKUI7EU3ekQNW}}`NN%kkB%|92TuiMI6h&q~T+VOu zEyYkF+FDh6kxsX%ZrFvsb}OQjML1u=2&P1{yEmxU4!XG<&odSVJw|+JdX#Igy_*G` zJbds2gB51{PQ13IH#gE-{nEoVtXVb6bWU!y@pMALb;TX%+?kDY|44bXJ2@38cn zLK0tKk&*VA69aZ&|H++%!<|iCKY4|9SJ#pr^qFjuiBvGRrzmt2-h%PkG)TJZq{UR} z%46)}Qf?ms=At4N;^4BZcbdFNrfm%#m)R%+Yj1m)++M<1RqTsBq?~dt#2kUF@&;EM zCfu#_ULHcWCx5sKrM5ZNSdP|E@O{%oxMc8DS*eY3jMn1b5>uzmp>FKpRcAjn z+quxApIXsBc+>+^TLXyAWYlP^_Bdhl| zhr}fpwZK}|>GQl4o0r^zXf_Pb_So?x=^P=T&~r##59sqEoriixhrt9J?d{jfjY ze%i|D8x&o{>n*=R4(SsI(``w=uzpY5dcV$k7`$)8vg(TRCo!KrfXP`?m^F}XvFOYQ} zpV!>aZjT z>_zrSm&js@6DWZHDHx)e2#fG zWHoSOoHuNuE>MsWR>?u}{g_5-|5#zwJtsJ9N)PmlA>@vf5S;EDiBza)E}1&(rs(a~ z%~F<)Y(w_PE?cdC&(*h?=I+J*P5&+WQdTIXsiM??*A3#3i!-;fmF(de?=8-~!ahZ; z_ajR_=_qy8mUOMV!Bbf<{aOET(-3I8#3Gn~Gm55ZvoPYe zCI{1SZ;8s=T}VP;E(xb? zV95$q7(g;}m3Q?&rDHIS2ID1zeN-o z)DKiWp>S0gxGSJ4^UurBk= zknlHmcw(z3VWbNU>9>k#BMahy{~a%y0GilGHpYa1-ioeB|E z_EvytV)Pm9F9XA9QJFlWw=;A3twduW3$@nm%mACL;R-8|{D=L@oec?aVwxcOGL5Ey zCZEM)(ou6Rq_*t&+Szh#M&GKezu*MsZyJCNJ)wp839U+;#eg3cuQ3iqcm#@X9cjR& zC1-f%gxYg`b8?az7VB|mQ4fy?6MsBbg*Sx-Zn(}>R<@4hXB5Ap05ZSfJY^&~dhYB3 zq54sM&le#zx>w~4=}!nfMQG|<1<_uLk+Axy z8zmXB!naS)P!_CNH=(8yCwVe4T_M;GS2HB#q9>kaV&fowdoH@SSs8BGhZ$cUe2=PgqcBwE$;?_~bqrw81@SWLI1Aek*TCdMef% z=KPh?2W4hoFN&SZ;Gx6IZcPJC?Y=1hq@F(obtuC9Xh$x-0;EI8uZHj@(;+xf8g(wF zyT$k{ehnXi(qm2xV6HX-Jo3ckg9pHsEa&idDeSSElUM!vSHyfKjTpF)0MIVM8rRuu z68ua6kl`%_kB!Yz)BrI6Qf-t8@l8OZGZm0bj~71h_*d`$P6W>l9{ez7RI_ZOjM}x^ zuG`TCDXt=|hO|QXiJteEm$iWx*gDfV^j#kAVLvM;EDtu>MmBNSo~)#C0GgCPtw*6j z-*_oMt(Y!PZeai6J%5*PCu{c2gM680$yI1n)|PRTUxzSYN|@7-y!DS>2`=2j zMBz;;e=m$C&$-qJD2Lf}_w>>905orE{cLV$INR?9e$Ioa2tAp-z!@q_O4N$?2*N;3 z(B{g6d%%OhFDDO(G!f=m(?FS-b!k$f(?@}th~Vu-3+Y8*Qm>!UINnA3 z1A)l&kSv>NPPF8gBORjGs&)~(h&M|PeYl^nT!Mbg6_r3j277q&RYcy^j5W(sinZ8` zCR6iUvo6{(E`lT)#+zt8gzBZKtB+_^Y|~G7D+v(&0xZCkmIy%cZW^A(^TbJbFQ z0dL1Cg<#lfe02(9YDfXixz$#PsWR@n+Bl?b<#V!6x@Tj5j9iifm8W@P2FzY@FF5~b zopQI(nP3DzI^DT3P3Cq9IrQ8s9sRDe$YL`d*buIT%lFqVi|g1AfOw>@AI7`pxMkoL z8TAl-Waa!mMeQVecmmnMbRS!CFp^EHwU@%2g8KW?ygM-zdI-1KDI7(o-vWwW4-d^{ z{kZVpus*}1scR)w9qP9HRzvvYW4!-S%fPvwDF@Ra(l}O^1LE>#9N^fBv~BwPUV@eM z219_xJkO^f!Fv0Yu}ueoBJ$^yD|e_JLQAT_b15@*lnBvxZMeFRDtKz>k6Aeo?8A$_ zFDu5CeHd9+R|7;h8oJl#f70t&L2CBjDE1y$0Y%QEPELW!=6&_oYApRAi zX<(B_JPyD{cFsJKk!C`LBGrQXg}5`^PqYV}6P+7# zA+?s`dksMf15`Yy?SuV&$WgfxbZi+AKUN7JZw+w z;I^+i`1+CdCH0|-0`fcM-h+gM=dd4+2(gJ+y-&RZ&U$H(`4MHNvXAqjG6T$Lun_Z8 zBWdD|KDpPJFmlJuw-RGNL|32I$& zn7iY?!9oDLi{dPGwf3YC-Z1dmrSk@7IZ{y{Q+@JR_Xpp8{J9czNCM((_c21=#^%55 zTkeLUkBm`Zp~r?*+gb_1ztDn3*MX#Rddh_YwjLu)4Q2frTJr62wqT1N6uxRRF@Oaw5>6u^?rGNWc=rz zYP$Z)#rGt{geY$hQLJcb4NKco?eXyO158x{y=FLHMJy7Y50&=&k!Zi$Ss01noSC%{zT7-y_947 z!rYzX!Pd#!Q6Fg<;^~A(igtUy2ZkL;I<#*IjZmP#JirA9+e^sq{z5y;rRmHb% zycw;1r0A{NfZ{2+eSQuyh#XH34lYv1zEH2Lqd#CR2>$$8vYvv(;yO2`Q=82Ci$YH` zO=!gV`P8NfD#gNZvp(I3XNUmF3soJZre@zW7q$F**`2+!S9*&rIZ6-`)g())$GsxJVXUt9joGuhh zw#t>Z&MJI{rsf%TtvAiNX7uKR#K7FS{q&zjK;;mV&7G*2B1_@49|9F(57(PeV1xC0 zA|D+eQ{SupC|Oh2n&D0>0}?Z#++ZW3b930*`oO0jzk6p~f_;!5lloFCf~9JMEKpYU z?QQIQxcR!-%*NxRDhcV^2L^4|BZrI(n*&e&xf}aU?NgMKT+&NB#qP^Y;p81&Srkej zl=khUAKEBtDX+u%9wbH9>MW01_^mqqx#=91G!j#Ip%5yEv>R#G#=O7%>v&=i3f_CI zX5|#lcr!lpn)dDW*DiB@3TXI{ex+jxa3A}&S>Giz`xdL$o1opx1sG0-Sz7y*lx1&n zNB;eK79y)|+^y^k%aNFJctk#gxeRrZUf9EYcmn7&L6=%@?R$TI%$1zB|=)CPY7`)t) zFXQuHwvXys4;U4*9l9OG(-;(ckXfqA`_n1i*dPh5T2|Q$sX^>g7cRai1$%U3E!|(z z!Ea}wV$*vW@u)~_wrSdf^B$LKKHApvZvgqK=zyA@@r~p=514VX-2=a7YZdtUS$LZ7 z&~d^Pp78yP*#7vy;gNp1RB!)5848^9&bfQ)ZW5P};jqxh?}_hy$X8Z2p7b=&q<^h1 zj{x-i&->}BgyT)GE%;c!#O!GutQQqy%TsQYNSeO^ zuSCYiA6x4&(~=Yb+xt1-LV)2pvLH0|(dgra%WPSB6w>PI8(!$+4;bZ4+o*M8ul%YsB_IpCZp)f2Zg}M>Pq8YcL zP0J7gUR?^i3$b_}t$2RUggkH5$B=8FH{*@<*uYNLcQ-|gND*1L#$*~fDa%#cSMj^h zikAQ#GWnyL1G zZKEk6U>VHhKJ1fNgl%Q;Uo&S}FFtc>@$@V7n)+PHqX-{87SGIp>c^P;3^DxFg+aHT zMTR&?w8h0gjh`OfDzwp6U?@xxUT}eB`6vmyZO7ZVU{IFsrJ`KD<)n2Dduh}%X*nf& zgLE)=G~KJy!;DCe-;Kxd?#-`^m>qZ6~SkrzW(zcWf`jNaid7IdUzhA(s5mpB5Rs+YR` z-0E2O_encVoJuUpatuUD{l&=f;d$W{dw%Y=#3V_?LVoYg5q2AVB*KV|5(6{uCeG-U`>~4MS?9;x8k3}^=fH4>C zJttm`Bp!`6RJ!7Nh;4jItf@LI25|?^i{Vj~l`cb?DVsp^mo=3%PeSu7S)WI2Nve}=HF^Lisjv3Ey95T?KxI(MvgPR)QIcD1b zoHoN8xgqXV?}eSn2O>wEC9%M<&TL~g-K0O=b5VKFKtOlE`i1DBICH3;8lor~QI!P+ z@`0y^b+=uvy_>P%%Ucb+%88hnUmxA)%c#KTVUXlxL6*+tY=_F}S@kAzN2j`6vEAb9 zKwO(1nJjZLAH?m}z^h!g*FCOnw1<`-6vKe62Oqqhl|^sTEs6-WrGBw`7RgD3L;<(jP4$naYlG3j#@;oQNa zFM2{5hR9N^3d^MfF2>KPM30PXVY9a1-Nq0VX%p-qq+{p`Wl>pPdyv5 zpx9QR)&&R}1EvupAKMOTzL-0uuXBG#8}WUj;`*eC&oI8Z;q^!+WxSOX5pkO`v z?IG1ieu)!)^sx5McO2$|iFUYht*D3vEjD$Zvw`qU;oxy5puXzlLyJgs!}fG%694If z%j6MOeLNVdydP$u6hT_&L0s(>j~i3FRxcZz@%9m?jrHlI@}Z5SRrjEFq@=MOWZKq7 zxAZBB-3Bfy$Otz0IM$0CJ(rU_1Gb_H;<2!!tys7fmwXwxb^xClw5yPt?=HC5fWhiw zkyw^rtQ1&Gm`c-sGtqvyo5c~05d`e0d;xU{nFJ*M_Ck|keTN%V2`OIh_jsuWc%g8v zz^C>)=ey1W>G!=*KUm+McmI$H`kV=WTYfO!K!Lz+{ufyLy8NG7omyq!I*pIq<9M&a z#epBv>G+W9ink!pLWL60Yk2z7*xk_mNnQ&e)ft~{QRDhBZ2Gthd!qhcTyodvtfleu zP|^Hf?S`Z#WRH-%Gln#$gNY--7Me8z!(4VtVU5E0IP;8T@Sf4C>keVwXRI(|@rf@k zOrl3t$GM!}j4yt~>1g@O<>PZ4BsXA@ppCds0Wwe;CLweDHTPkSAiqU>r4mP z7r!ATDU>EuytaDyng8QKe8@Td9!h)FLwjsqEOwAS+yNhBFDnLrclTSN%ghAFmwd@b zza5X`;T7sV-Y;#!jHnY%8t%Z4s#k)|>V|dveSXto9i-pPWHZ(-lpNyzfF|wJI>Eqi zeMpw_WZ$42ij0=>(%(;k7#=?@8E3)>lYKEIiTtMfe-qib`&~2HkJz$8YkN#>(D2r8 z7AQVfdrHi7Zian?ia3sb-+cQ~eTgUdZ>Ed6V*J||ZA&)hX2oloW`9_RKP*fCgRan* ziczCFtv&t^Deg6%u9$*9rhNC6O6>BWAsZffuPcE*aGk}cALA21ey4}{|4!5R_a;0r z;k7Rqb(*+C;0Pq$osL>l!HRaJ0@-%>gcrPQU$VT>1M&rKw>_si(@W^jH!SrEWy5j~ zKjL4WeM}{Gy!Ll@f4=8b-l%_l_AlN43yIrpuk?VtlGCaF6N%U~`p z>@);}ojh^+IAzB+S>O)k7_R{rj5U^~tH}jY6TB z`+SO@9!I~5-gV|zRo6g&$kU4^Nwuv`Up4dc^0t50z15w#82pBVTkQ%Ab`_>}|DL}0 z=;8#~d93hr#-f!>)ob*nN6f5Qz$Q9)Q8JssH2U|0wf6iT>|p{;RtGRpx&+`Tvml z-@^J=CTLIzar)Z#gRRG-QhstR=g*43l9h}Y0V}!t{#ENDX7MWvaM-PA0y}UGs$*WN zy|&@c5x%Vd%D;)DR`KI*?Wv$kD5Zths6TZYE~R@|Il?mR$6&)R0TUO^5ue+YYXS1-5ZCgydMYy(YGsJ8)V?xBpW>3{81XzK|_3~ zA&Sx{)WpwGbeZASmAC5vtR9t=q2w5i`qN*!JNll9vS9+%Zwr{{LGDsZ>O(_vFyUqa z6E!HL5i9dBBhCJl3rjp@LDA1tOY|x0IQb9? zc+1_h8upO7%ucBve{m-GnEX z71;a}=3*XD;l=tKrn%zaW$Ey7`Ov>NdM_KO8-0Mo3Y_3&b_V=_|046%0yvD1BF_uf zhDHc2Qe{fp_P@`@n4ZsIhlyhgZ2Q04<-;lO_`9>aB2ky?LVesysDsr1`V)uy^l6$_ zOYFEd1>%GLGWOzDi2`Ib>_eVUclO48>@gKbFMLp43e|@ob#@pRZ_sQ-NTaKKBuNJ9Y>9vedkPd5ShdbdYH1>5Xc6ea=nX z0AUZ~uYwLyC~9H-sH#hdcZ;s?t^}Pl-meJhN>w_ej15jYW2TPsJRBfwDVj-@A@|xg zXpUR*7F1^=t;+1al6-h{@IEUo-n+BU8uvEjH>-=NVP^mXZ1!w6@y&f;V#Hx)<71@L z$c%+8j8NT&59yJNIee<%w#itESP9(o-V{shJ(7LFT`OQZqd2>>Pa1)9LS3!CQN$UI8ycGr=cz13_<@?+RgLjT$MuQZ5AaQa3(YL= zz)mGZ3|@Ar2a~NEHh<+5hbZjbwJ~X|q(uqp)>9PQU>POa`A^I9OijJmPsl}~eZ0CL z(L5Ua&)sG88E5zGKe7Py97KDf?223miU)*!>JziDn3ocO*ha*&k*IBwD@uH2%K(54 z2oK@sT~gOcQsocUx7=P39Rn8t{iXpuF7WX@hXcxUvmz$`pw#%0=vTc3Sb{UkxQrAV z>&&i%b+=yl-IHt;SomAOgb)0A!`F1_Mw1tq3!Xw0AJ@JM{w&Kz&aaYqf#`RUC@CYp zR+XyC&-$@vXsLJv$67;@vXSE|h~#BQ|Dw$&56Qf;(ae!3?bWb z&j5Fdp;s9P@zY*{e+9&?t4E!B#PU&uKg_TVL8t{&1l1EC{d@bfLp$`VqpRXKbeCMH zv~}AFvgTeh_vSQ_pgJ~NDI3E-E*qjEpv^{K7;R5ML3e#H-PBK!HWkp$DhKnA2-)$(!bFDBWn38#=q79h|9>;$MnELp0cQ^mCUfnu! z522oM#~jlUcv*NzyWXw(Ej>HT=9ljZp^0N2l#}X^or^|2FC*b|xVvAY3cK#?EskvV zW{8bJkt%Y2yIbSECiAYmVzAH<291+`X=8_;>rhUc zfeXMYnIA~Wm;}+Jnk}6=3J{m4F{G5L0Woj9G%Qq>K~#m_KAonAoPvta>5flC<+zq2}h>rlsfuab-V0uL=Y?jtIv9X>X=I~qb}2R0`C$G?C% zM4}BUeqPEKblh8+uJ-wkowvV_K=nr%J*vI9ejhtll+%6J9X3$jN7455{W69%CG}5r zIN0y@;Ix}(l@NfF;|7KHMVE?(Vs?kAwB=7X)%KMYqCO^~TtBCY`E-F|Y0kb+3r40u zPYAMa|6G?S2>vW0R>_u~lc)0P&CYo3>bw5RdfN)ky$|>w>`wV=6b%dPE|O~2btP8~XK}n9V(*Tt|BI9!FF(rNDLs z`;W^j^}DI8`=!m-{DBB_el$E$sAz@xbvE*j7=9;I)ortCyyNU&0QC0}+ZhdI(@)t3 zkMTskaiTE~n}03tVAOkfm?CVS+L96ZwI#^Ecd@AaL8`6d54ib{$rr!J8Y3zd(1Fc{gtZQQIjq% zCsnac_udoNJuOCxbo+_4 z#QVTM2jsxlcl%}DS3tvFs@QfR&Rp4RZWmy%$(~2R0P2e-Vm6hu)0lGCPI7n5bO7?z zJCXQA8Jt5Swe)`exrlyX*s;oN30H|X3XN&vehb3@1 z$TekEdKm0U()<-Wgk7u$MQx3NMI+L8*(ON^cY~IklK1>b;LDmm!pN6z%XYy>5|INx z;Ho93O{bu+=ZR7g(01b6w0JnX5m?>?_4%EF!79}^WXrifU0wglULt4yLTAuAyi0#e zWj6&Cc&~RR#?{7O7^lcVc~lq{8g#>>F5=u=lP`^~6JuEpBKGSpW93}aRepIQ7uMRU z`C5G5D)kqkiREZ0EsipHw@VDJ=Kzkm#35^2`+;9xfrs}GqhEuv4~7fnL0Jbz+pB=I z%0o67>~W@B>wc99_&yJ{)3(A(cmX--#qFr6+2&HiV4vTingVaABF?eh2XCq`2&xGK zx7*Y@6;8rFRc#EoC$#w}>*R8mLfbYix8I@|k0S3=f-#@XU#PtYdh!Fi?6@0ZxSTgf zfSdpcVAhxyIB@G?r1xg`LrLwuf{GGQQV${ro{7tYX%d>0r=eVA&VB5oOH4}C`pe^4 zdUM)RH34Xk8{s-7{#wJYH=gK}Ym)m#gk4TTlke^Px^A9?$%B(`DFXzSg`EFuf3Ov3 zne+4gH9iC%tmF_rjYs{x<4v*(xQVl2CsViiy2SWT^Sb7?ol>QbXM(}VBUk(JMsO_8XwUlDbmBWQSq3o#GD~As#tL-P zkd9;#0KZd@e^B{}2DvQoG!)68 z>jXV44@hrpP2A~$^m9H=of8xGLdEIR<7V96N{J7Oy&;uS*???+Ve=}1?`;*p08v2H zO0iR{->nor)uLChR@ zfx?~p0{=q5Q^h9%dVEiUHROEYABPgH?;Yia<>7+8<$CeQ8cl2w^ubI0s9RJ(-tR6a z%MCDE0(g#}aW{aYn!v?#jW8O34!PWzX&fTA%`3d?t}jE=4M55>OPup=A;gvsOLQ`Ndhuh0nEoOvt3DIzU@<V4)lM-h4khKc z7k1Xgg4}UjnxHi?iyQ4+XL?V^*Y=9?$a@vAKfToGfnrMKPC?~4ZyCncz{vg0dcdX< zeet=ETW6aoZRLm)y>}24vk?L67VH$&o5U~=IJ^6jS4+5fbFRyHn%FJkzR4~y{!3rT zkN4f_c{x?fCc>gXl8V7zr|)QxZBDo}en!SDM<2WLx^Sph%=dx6O?I2X-x}hkna1IH zxQXk=X}XBi=jk%^g#{i<0wu)?3EWmp6Mr_}ZRo#pEg-gmr#RFa%JX+aczl>QdOyR( zC>8uHVq@S=)HyMMkF?uRE^&=<-9Dwy=*_JtXJO!H9czA@Ju9F!qd7JHma})p(aPA6 ze2+r@xl&Y=BjF)-VRHdFSf7}nqtCgW{@`H&vi$2{1$@=MO5*p;Be~4v4e{)t0ab)& zGrH}RSbgR|b~HHrD=g;}gG^GDmXKZ3_xXeIxD_ga zqqao8hGzsL&ysy?LTBiN8a~Yu_6sFXa)B%t{>kJO&DiHlO9+GfWO#yTR9+lvG}QSS zP^3aok3Hvs3R9zn1wpwjPv4Mts^5`z4#sLD2=Qy_8rOh7vo~kO^|Eh01f71&F;mE( z$Z=Nllo{nAA9@*I1G1WD&5d~nK!~4MdK5<{E@18;1ujw4z$Q52CQhc|<+g7wQsHRx zq4eM&>mrPSEZP2@20}Hqcrn}Vtr&1EMGELQ`8I!x>~mQ^nBuU!)q;KffncmAR;4fw zwIu3>r>kf&@dZwo0J+3B*J&l)o%#Mc6>kW3Z>FFmSa=07TKm9oiod|{|uZ)TrrT?~-J;-qIB*`AR^dh(IJFoVKUa>mU2Nwgq`2Cq4 zR5o0+Fv*_^_!fhc1RA~Q(HYdA>5dL5&X1S}xyM2s66R}MLd*9wpxk)W#kbP#m-!K+ z&y275`Tiyt&h;L}hs_Rnoj7m*Wd1(3<&;rf@O?xr|3YDbo$&mpyEpFfJCFWbarD_6 z*^-E-&i)x&WD`W4N$K;5><&@jlA8JYsZ$QvDDl{?8s($W=-H=@@~A-%{SI^AUfkF> z@E15*X;N2{sKjKz8@N+j5R=M>m}KWU%AeyUm^ZXc1@kJty`rM5LzPpVGo35)I+f72 zBbINrqwexixduT`9>8_<6J;&#j+SZptS#3b)e+lsKu{H2i^wkcJ^dL>S#1YZ{)wF` zqC-c#7#iqR^5%Ht9ZO)as!q;@!Bi2>l15R`uhjr_B0SQ4y0V+v*C$6B>8usE zeGK_qYfnz=l=G1D&s;9q*MP24J_MvTM?_{TsUiN{SvLE_2_8AyT!OjZpPkFSwMv;~ z{#FlVgECw^HtD^kMg@z5=VJDG3NC*%y8O2sf;SegM%i8iDxUbw#QZh#i%zHfCb^@w z7xwqm=wQjVvr0kveH<4#x*atx2Hfv|o69{kua5hx5Vd$MikTBgTJ5|g!5wO5sB+ZB z8c_^N(Qi@e&)Eb`|G97fuarlC(K4+YoYH)L^c^`!@#cykWfioMzyqEpcR1C*`UhnZ zQcg#lpPbK`1E~E4s>gg}7W3Kg@_)()X(DdVwEi7kqPn2-N*Zrbg=m(|Ye!=eK`)!M zjK<{SGz!EB|KMC}zZqqci`G5QTXTyWla=zKAE$T zj)L~^h+cJsV23p3A1`o+^by&dY6u&KiCSw)5zDV0c~PW^h%z~@#c~96(F))^;$tk< zsD?ZFUnq7RIK834cig2VHYd*>(YpEhAA-QI#H&> z1Rj$FXn@eUw=!`A!7}L|sSA6PWe?F)BMSeblzD^7pptoPD*hj2-XhnWO|EzORAfbg z`2{tkmu;tmbDP~=R(3i6{7O+2CDyRIM}N}?YxCu?iw0pZCgEs|vZUZ&RtEVTt=Sd4 z*8BPV84Ao!c7Aj)sB z=WwL1d7{!)oHmn|banB({6uYK)RDagmva`M48xx0jDb|8w}I zDJ6t8Z5UI~!5rDytN*qJw%L0vG|xm`os&fu_UmXbYfx@`|A{E-9Qm#*e_@*8ohwHd z0w@=z<@R>`1W|_98}RBHT4X=JOEHJ?r^A?FKD9IE?skFwYkv9jYf(#Xml_26Q!QBN zcwuYqZFQu+j`!xYq(V;GwwElma+5kB>{q_I`y(`Wz;8JvMcN?Qis(&!P@A&Ns~&sp zq&zAcx=gW|j|;wbG7iH7P!>K>|INZ$m5w(^R*5W<3v1UyQy*zG0B_~O)|ieKR}nh@ z&EhNtBNMtU?$}jCBK&BfPyQNrtX(gGvN+QDe_s5xmH_`xYyX)3@2&j<>aR5&@IS5n zWBR|h_AibjYyXp@R}r)SA6TL~BJ(I*1(2mG6@_g2Fs382|8I-`KQZ|?bVt^raMr36 z)BkU+{R`?S1O811zW-|m{Fg-eYwf=}iZD<(EtL_F)HbrSbuFCYZyd(6-&q|YDX0@w z*7dw$*PjxZcD*_~JeoU1+^hd`SF&y=XJew9ItDGXWpKp$#H!G!Gg+<4myGN_+@4+R zjXU;fOLk)RXjiJlfNvJxmFTt-Tblrf`8Zr!DuhC0Gg@1>L(#hpPgea@k*ZX~NYpZT ziQUAsP&_8d1B}pU7}vOy3tQwxY&Aw#8h~@n6f8ij|+{NaFhjQ=r zLD;YLv>R<|K(HJA zkDeJc(S2p!*KlD!X30sFiX?$p$`(vSU2b$Kt(9K7hg#joAo1UT3F)=2l+#7xD_4 zn^;{;2~`5ha74+J53pyeGA|b8Ql!m<$~%NcwaGNB<97n<%-T4T|4MBRA4yGDe$?HS zPc2p1bEN{G2gr#jbr40Q+Dm7HfUmf5dak;+2Im< zk)bf<&XMr7-?!Mc3YUhS20Vz*kUqL-bEy~u{bJ)^KYy0D!T{BL?Ob^C{-Y-6P5$qS zd;!}DsL{V5t=Kedx-O2^_7p+Tly{z_CjQp17p$E=?d$HGaxc^ogNsMJ&o~$i>9Fpd zO~T->aVNdXpH0RGi{&S#7`>Z{H>2lf3J0m5Na$&;&fXha&z6B0_uoAg3Z(s6&I|I zqSIoM=%kuIE$qsIV2`a1Bhe(`^pM2TXg)y3*E|-77sgidNiVL3XpnV4mPsY*!asP{e^3KlhpF2J*8M=4>w0hp5uTDTY z0z5IBMYnw#(U86YIKLu$aVgt03H8vBW0ma;wq|9&L^kQCTXHH^A_`#$ z4ln0&KO!d+7l-6bu%kG)-$5GWd=&w@1Qh7m-=l$@PXg{faOvu0#V2>}uEP~O4aGhO zBnc&1qkO{wqnb{$1WM4dL+nCvWne|vp|h-TZ0*|U3`J0x8Yo177VPWwY@19yt!Vge zJN^SCt`8D`q0Sj@7Oci<3a)e1T6LtQe3O;ukAJtDGaw}X(YJB7kS772j_Egd@4_(> z1dQ78(;5WAkxFiWKi22Z2U+LMA{#;iO8o>HgT|Hp3{{`z$H+E0Vhh5}zQ%p-cvUhl z>$T#Es@as~6Ydh;*e=xv3$za$X%@zm?g#)~kA!X|KpUNI1%S21I2aRXrr5dk03S86 zvzpWCR@=AusVyD;z8BAB(XTfmR67j`m3+8%Fxx>`C(DJ$s`n?n+x$8Ih?3b5OCx`b z&+=iXRqUmWK6lh@&py3Yp;~jYv58Lj8nnOKR-Wg2yCDEEok}R%F2ZbXiBi54<=Zih z@nPGn#w#xPj1J#Ju-B11(MU6hxx=b`#b5p4q1W7&a0dC2(cAy{EkL8+b+g8}>pdCB z!~u8$i70RuN8WGWyLicF5nC#Hida$(A)?6JL5jvLO!28ybkRrNAPRuDC=6A=E@=2 z*FE``l+(bZIO~;5hC{ks?8eYxMpk`&)s9p;DuB*vr0S#GeMOTD42N8R=Yeqb4=uzF zBoe!VwmZ)Wi3feLV;7E?6TP*+8IlS#e0`azIWs=!FUwZ~gnsg??q zehq9*cIoAEL-iIpu_e+Mfb<$Q-`;%M*!Ot7OY-zC@54}!WwMZ~g3)!G43!yQP(4%G zBuTF`ujecc)pg6)=s%RIbi{a7D}GJ0#e6u_1=6rQ|Ow+c}!7t&API3L@LVm`b*KXMA>xj{d-&Vxo?5vb92O2IV8=57pJ z&bSU_5z(ePTG;x;^-Y2U$+&$}st5H5g?Ez%n)pzYtIXydvSb2~4&Dxkc0LKT#zh(5 zZnM-0KAjrjQi`cd1-D~Vie0#MwUVzgaSJHVn^u>ZI?I_`w*>t;AF zvR+mbZ5i@S@)eEs@l(w!H&bqwYZWNzcmDFduHG#Yl(8PQ-sM}WoFS%lfal9Jm;5R2 z8xx0*k7$(vBG!M0tld&L#VAGUn?L3%El*FAku`lU_ShAg&zernA|_5B%$%B2-u_^Z zT+;4S%$TgY=m+1LTH*$)D=DCl1G9R3*HTKd3?ym4iqJ3D54yRSU}Ly>#?^D{9TvIz zy5R#Ygbys6(irysNeMQe6)nq>2$Ptu6I*XL&AMNT zYK=8?sR+r}E4qYwaVlhPfZ%FYWC>G9ef zqN#10PpK9~4C%ku%Sxm#dX4lyy>GJ4<-}EK;mEQDjVsdkWQ8Z+2z#U|`?dGj%R(KR zPqSC#9IK<7`PiPeo}hJl_@R=1iV^J+tGsP=&(Jl%hjn}iqp9NU8ha>uh0e~Mp{K+R z{QkHjD_olN)!#4Ko)+-%+e~L+xW^nx$28k%!dnT`Z+uXGyp;Vk81RK;e~l~;`!;iL z$+^z=<+le@*{SmM{0-(2T-}O&=64Z`Q=+CSHHK7z{E?a0u?tQPL8R8POcrAg4qv&Hv3U9al>$6k! z`S&l5HTkse%r-RIGznoabpqeIk*qhLNn!Y8owX2L?|d*Sa_bJ>?uiDp7j47)xT4-X zYAs?ZSWt~qdR#Y;CY&VSGGE~|!hF>JujnzFpXb13PzqDIbn>UKDi_b1ofNFt(G*f-dCaIN$Opl&|O{q*aLQs;i@cWD{D7RHwa4T%%;ed~%;H=q5~x zgLBYLQ#S0h0^jSjmj#ytxNED}PLmnUTwZuIdIW!b&U<_C13BO8;mUWWuTCwC3+Kmc ze5nSe*{}JrF_&(bjAaS*f*7H52>mqk$%QHjDWLkmGe7e8w(y*2UGN=S+D6~SQ5;FF zMRWz~%Vc_LIsaYda>GgS0yUeP?V_dq?c9H4iWpMg*>WHTY!>C6s9&Op!sp+-HjHiZ z_(Ct*;11&o3gA zs#^Wc`>Qr4J~P7hnyNs!xlj6rKYf$g7hMp#97}2Q}RemTdU46UR=>Dsb-|4VP1}?6g1^w2M*@ghqcs#yX z1pMt#NL;%NeRyFq`9h8}{LxNP{){$K^1B&NKR10Jqi0cBm@;~wkcQF}Sl5c}a4IYk zwxIUEyb8(Z#He^XLkW>fQEH4?MBh@KFZYbbL@JM$9$1m?O`P^}cJ13mD+RoXGQH(9 zF2_bWdKT+K-}cWteIw?t*6--eRB}F=Fe(Sbf~`!-Gn+!e+v-m!*`PieDKmeQd6XoL zZ%{gZxuZy;aQ_rbYUAv~*u9~BILrtfxp2qgevrdGwo|^{LQlprbE4XksyZ^ZtuWkA zL}mxFuX^{Bb-}|lBTu4! zIL@Th>RbKr?%?D28>I$&=f|uviQHV)jpnwmP(O&7n={AHW5<3spXBJ7mx4hzBSf>p zSPrc1UidVgTD14)D@(cZG3>yGA){}-omr(~b2L-~>0hjQ#`!yW8ZY>r|MIajr_#qB zP_GGy?%8qth~j^?dlvda5TYkvFmB~(sHdys{soy`{p}~`bkLs$KLZ@Fkh0Djb&E7N z(Y4v^zfC$yrRSvruO`9t#He&;~07B1zftkKZnKewRm zuclS6yo2z~E*y6rNarCJnr*k-xgo#8v2Pt^R?KDDjDh_34-azifz8u4@{O+ zOOA@~8vE6Fx4hF%+N{C1^=v3JIB64!XRIto7WI*Lmewhpcci1F^O)TT%~BrT*C0yy zX3%{w(iOOeedy$H46M8~rjtqCWJwbhxh$B}x^Lx&y5qP#E=0k*7bTEt0b>E8x^H3S zL{c^lXEt#bMfl@!ZBM2+#n|83pjO=bcEhe0*OZHBas|yycn>!W#%595#57cf|6n~e z>3(~*I`-$Mlx0O7x2iz_$~UF;r^FwLRM!hyxEERwyn@nJg73~U?tgB4F%LEl&NKMac6H>p1%t9(S)&AyP zcQP$yKM4j{+A1tT<8$?JdZ73?dl0~pe zDsj3=);i3Risz@@D1Qh`*%D_FK@eFAZfT00Z|QZt~rvFLQiu*IpIO!g(R$dtaHdlemZL-r(b$FARjq zqVdq-m}3BX!MT`*!(E9hW0hTQ!X4r`Rvln ze_bLD*?fUV%S!Q`!Fh}e0J}0=Hj~P^nf-Rh6HioXt&BRl>J;A%M|mq0fBVeTs42M+ zD~xM(WI2yy3ct6HT<>FaETze?`}}ipt+M*#f}3fc@!a}4uJS3{rvQ88yP|4YBn|C@ zYhmv1FF=+E{`Zyy1^NTwG`!`bw5fr!P#+h(Sr*c_8p;_c8<7Q49?C*3DbKo#IwVtq zz5;7mC%@{xF1Uh0z8<~~C7WdjR19mU5&QgX8qbunp8#p6vOSq+XM2d8V_%JDR!wCU zVtcI5nVU7+Z^P$Dehb!8K}QEu*htY)yf+Bm$>eWIKa zTzV@bvHDTYlc8N7N}Hwm`aYMd#TvvbB9;)hBEGRbYiBZH=rX@%WG?;MakRn1Bc6!8 z7n>hS9(ip1@Ep%a$-4R>m-?%wC$UJLz*F(ayQxIALgyqKHJ6)=Gki#{`Nd50qqR67r%YL|){PIeY4=M0K{k!?U5CHH8?j~#dlFRNL+{jsyu z?O|mb`*vi(G(4@m5xe%T;6(mqm+@zaJkzJ7doT0lcHHr&j+6T7Z{g_&b2$n=T86S3 zODDYhrKx@AnXBKLT92mkx_iaA`5Vb13!lIbP#NY1LN>rxW}8%`kk{dqzON=T_oPfM zhXo9ABv@yK=RbEJdZB$^W|1d_+N^(c-piFx)Bie{*EW#lDOxlrH&9xJq~mBVAG}*X zVtNB9(wEaKF;5`e*Ga_+w=ENx0~1s#TXuK~Pg%cI(rokp=`b>Z&O|C zRXI>?=y?LU7dKm+5^Wl}jB;xF7EPUXE$!89FLpl_LdCBwGAn+$b55b#VTX$Wqe zXB34|cN|Uw$VdIH-8iPeQ^2=khy0#f6&r`$jOlcvA*L5HA80#95gps^&9~9_kgv!@ zzkm;6vJMCRzDRA8DpL+`#mBQI1$f%GyOMmqj`$t;^1ULgXP415x!zD)T5)KCH9&;rF>n%wCUAgJ6LdPsdBRRHXEb!Nmhw>8=lJWYLpGpQ7 z&n{+8-idliBl?iqTC;^OIrIZ$R*<{}L2${;)nu#kpBlyV^R314ws(&>W1 zKj2zqo6CyJgYIQ{#T*}*P3uG3ls3g!h4Xb+Im>HjCNF=Rp$~&vR!kvku3= z7dS>)lAKqSN#Wg!OM&kP{ZqGqt6{yzN;qnjxL7v&H!^ImEglym=k%;2Hr$Y1lKijQ zk~{J~N}C==rB05txTY;dC&G;$-;D#MpKZt=tZtaT@+H0Dv`}6UQB+yNT~fd*`<{W$ z7rlIidL=%jO(q}aGcxqZHa^kte7pF9yJKasclp`R+MfA)B&jqbxkf?L)n}|PLeI>8 zdfmS2x%@Ktx#nVuA$U7qFIGNwH_IbV=c@sy+k_q(6Sgj3rvBg!;c(~rr+&jz^y(FP z`gMbXN{@ajx`8OAp*NSFU_4g&QfC=PWRWtT*`-jn8i^>XefQFqxn6$2ghbUH-@zFB zOH`ig8NULyMXfVU%_vh1TYW{0_j|kE&;d<2!AD>Xx+@&XUDGk|AqahvCudXnWH0}Glyl~vlBd7$vaDC%+k@^>R~C}erXDF`i}KVh33d|B zn#qw16|irtOIa9|oV&wBz9f~`jJyU4Zb;KjQUW}qt^SkWLL88C0h}`~o**DfTSDZ2_=I6l8{PZ#;P3 zV5rY0qt5g;va8nVAYftnAPMfvf`&fTo0&F-_N~()GwdH$`VL&G9X=HlpBmO3yujll z41KT#62o2{V}5`ZHgrK><*s?_VS2V*QcoQ#uP18KpQlcLi6l2gcABCEK5_YHbFP1> zu8i}^Wx95Ab30Wm1l6W|<~EX{a0PdRD~nrCiCxr#X!6LuN#mDArheY)L%ce|tt&nY zHcFczetls+=Qoa2f=0j+_STj3LX@+t)87;W8P8&SiI!p)0qujzEX?C z(LC8(x74DS9`kC!JJCR25{rlLwzr%ITiowlGT^?~nr$n5cojc7W`~&iCvr1Y zKCsQbWI+?}dwA^L@>hAwdvTyc+5y?2#qqRYAh&Y%L>Bc@M5QE#`@FBy24PN*8?H$2 z)t6%`UYC-E9F~3to>g)%Wtq>l+vw}W>L7AV^UXP02$LaFfZbF!bgNO5Eb(Xf;mdC>wF4o1B2p5Z1NKQjBmRjBrc8(p!zy5)ri4U{AM~`GnXIc`BU|j9@ zuqEoAO+amR$X7om z8CH4FZJw~c9tDm&gk$U(BlQzuT2Y&*^KB2GJuoN^J)hMAKMlAf_$c=&0^YyNTs}4L z`_C4~_syseJXO}7_Jza^7p^=-uhL7qeXhX;O97{WJ*5!NzT-$2&d?2|)}1$%9B z$1M!?Qt(eQ&-Ee$P@tgQYTQ^#r>w+O)QkQDk$QhYJp}b2lNz$l6H9=byss_3+2NM@ zxrmo%UyLz>Z$di+UVbBOSZ(COshUJ7z*#7Cp*^iB#YcfPA?mat`eJbV*Ko#)?2i_) z&ySDU@#jsRaOvKdDgK@3aOMxHDylK8uk6wNhdI!ffRG()l1K~w$UkeNK zB~goFSI^4jQJR_32|i|d1o0t;l@CawR*&VVa8}B=>Ds@a~0K{DwF=a!!^fV*c*VZhHR9^|uYXk-~@?#DODUVo>!s$KA!db5<-A|#ESK7UF6$R`|vMGg#6}eKed*`mqJPZ3b zfkV}?s!JUlzaV)uhBbh7UN+r={P;8wm<5U7_$l?s@iywa5O-`RbC1_p&W?pbRvW>y zXUv?JWi;dR7^O!()yt=*dy0wZD>0sYUkn8e3U2hw=pl7|e;Mh6e_-GfMHOaUtjFW> z=x)b%bjb-gy>Gd24NC3UwUs**roqc8KK*u!tTesikC>Vuh8_sbU~ zA63^63hINkk#9FR8tOR@b8uo$yWTT?S0{LQDMZL_Bm#cU1vSLRP+V|d@aA`be0#Mzc6PQhW9@H?UEaq_9KUv^gREXd`b&kAH4knwWy{tr}w>iw|H)( zjFC_F_i16My_c2ZP`Gq4o@%+=RV!BYc?*0IAG~>QRXpM}#j4;C600dveZ^IQKE1B1PpyB_%fyIISD66Mvj4Nb?xqp4*C4QdI3mM3tL$-^ zHuXKkU>1!01{3@J2kW!ixro2K8DOR%P#cCC-j!Lungf@Cgh?-CpEJSJhf;|C83h`=2bg->LfEP?Hd6 zXY4>xo~2$j|Ga>Ry|V_L11C>-emMWQ)p>Aht7>1?zn~8vyn1OFV_!(pQpZXz;E(50 zQY(PQq?C!Y`WkU5ty}4TaZ!>AK350L8@27HX z8^pxRo>y6CQ3I5EA}WpY?PlV{96Qg-0(oW!$eBgK5Y!_IK8I;)bd~8HE5tpUcN+YF zEFDbQ24}3`y!a@?*H8f~rA`lm=fO!1${z-*zK25Z z5`C0yqO?9vN-tHlD`pg{%9yuEr6fsjB!_itPBtiE5>fX_tFu-H4A7^jpGr}#13vz_ z4hzpa6vXHaN^Fg>8>2tgaecuQUQqaKNqut79p8n=Ht+*vFwSk14}?Ans97tXW(`;v zu*PU>4(stOs_DOp`#JL;zXbqke*%j3#KnuOqBkHvJJ}!Pe2K|~J~qX&=-5lAGLp1h zrYpkw+#dh71_0~0Uo8IM!p{(tAPR*y>~HoM&2>AuZh9sU{@A>mJ!!o8S4)4wP_Nq; z{nNnZk5^(ZC%-OY6u-eF@e95)T=q45P0NG`^L@a&7FI*|QsXmYk-ek@>w6k&$xHL4 z_N*UIEyo(vG}Y!p+7=QQ*QYviGy?=AwCNhsc$+L zav6YfSex2zGTME{k}#Nj`OpJ-a39bw!13(5 zX{{+1(QxnR5ntArDw#=)B$9c99aix8;5&l_J;!a^DhoH-lL}bOcR~&0vv#|=_l&sD zMOo3|1RH{!Ser+v?DO=yRa%Mmf>GOMM$UJnZj^<=ZBA!vu`)b*|I(IROqi<}fRB^a z>839JqL}Yn@9!(qZ;%MnBM1{Z1P+tV0mS0$a7FqD1(nAwX6mEP%6LMCoTcHN%%RWE zweA|7o1d0>NvY=SH$TZDw-hVlsRwL3tV}Zz2FYNLt@1B zvygl5B)&J3SP=O6>uhtxtrHh{fgeA<$-2&#*-?V99kFLmDgI;(w~#5vagMUDs5dvD z@z|D{YncVIo*PV|&phFL8Vy{F_J)V2P9e>15}dC=mTaH}<4w3}x<%4K`dfF?KJ-^= z7C+RD&GIOBv+U@vbWu9V%I^xN4yA+Pb3yIPd9aAyOlr97man)>6VKmdzmi{Q$G2MU zhQMAna52BS{VGMCG_vIWA}dFf<|4nJGxSb;OY{6daVYAgp}gYtqhe!O0D#X-6P4F< z^Mo2=!?h%>%bdHV*G%_LDohyX+Zx&)de$myWD})JMd6(Jdc!#~5cGVa>1Fv8A zT@-|VP|AFrGNS7R5gqeE$223CgIAZP3c{~J`?Rd~oopK(vp&@RohN5ss$X)O_1!2M zN>{r|sZ7gy=bHvkrBp;OqVeuQxnfU0T8$7|fNw^%TYJ%fSURWOjcqi$tmPO3R8B=a zae|2tV90J9H48MWxUXNl@H~QYXnECSg*Dr#n;1W8Wj$^eZ1E* zLLQ5N`Xe}UICmx!@TJOVjXxc<)(ty`;`UAeNSuVKJy3Sp}40MVa`s zyxq3*DI8*3Tj6wEv&75ixxPWK@c=vh2Iq2XF9U!~wdd(_uV6+v{O%OiEBQl6H2u{OOgGZn2sZe`kDAf?gt?=RoRg^ng~s5dhSg2c*)C-0EGDT8>3X z-7Ih{;Vqcb$4QftOxu{AD{AW8vZ=l+Egw^>!G-R*f~rlOe{mbAe}wjznETdGnunOI zqsv|`Yw$#VLMS|^O)4|*esJ~xiV}U{HMw$G1|9VE8VtrP6RP3vAzlCSdM}ET%hV+t z8#cyX24qswM_J|MQe5c2vTBxw3X<`uUurMZ+Ztl%r;&%zo|cJNMC4e$QC2-A2axvq#Tux+LXfZAjq!gSvOXy;n|8^1Rb*QavaNjpA6n2Am{uM z2Uffb(f0ZqQ7Lb??7EQ8w=&o&@oi9N!`Bz!;FnWLwR5+tJFb^_n~4X!4L#vLpVA_O z&3~K4ar9t@>5gXD-19h;qDClT!N(ZN!6cpu>530541I0Kg@@!q9^93wreo^5eYV=y zc=d@36uA8uyzk;+C-(eNR~*FqO<%Gf5=BX#i9MXv@6JYix&(WP)tIilxSPm1KXVvUhN24K8%pJKc47 z>mv$y;vrlI4-ZG3zQG^l=^-r}U*%ASi(3A`#Z73y{SU2t`?Iib7T!aQ@83Spv`U0f z-%tX_&`qTst@4Bcq3~APU7_R?-^d3bU&WVKAS!I=%ZuVp3;;P?*IxOo=yKmu7*jM& z@}&Z#(>s8957k3XR)C}cOYl*9hXhdnu#o;!qz0`7_+x_=w}g?ce$}4mK_Tu!cT=S* z7DNzhq3Crs7Q#1uN)|Kcn+3nnkTj;2PVuMVi}ye2d(eC1cI(IB(7{Pg{(I+=#>PHF zy)VFZmy+0gp*K7M3X$FyAw%c4ge!R%B-{ znwo2p8g z9Ll;pKF5Wh?saI;zU0oe?B$DiTQ>7-Q5yH@-u^Y!)o)C{=s*`?xC%XMv%`aptk${AsOYw@j6 z2qX8`sB*9Ecpiy$#=x*^8+um+ExQ2NcS}$EACiy2nQW%HSbmWCBgBH+?|8le_JZMO z-c@dv)n*<(rMR#_JB<6r&5=Fwp3JoN4C+`5Q~$3BmBk zTSIBY%QKT@vUWuK#+|A3_Ajz2V=Er8)o|v5dol z^DRqF@eTBHF>?NW&u}XIr#eo9PLVMKl^Dqx>n19Q_Rj+cX+@K){M8fPWqc20fKx2b zSXO>V_6f=^N`v2t8YW@s(!kI+p|3x**1kYdrO5SDK;^k7{($oGvzOZ{LUHCogbl_X zaDL(O>ZTj~DL*y6_10CU8q=V#dI5%5b^@5;xd@pEBt*jYBh%|qRjjx-1IM~!^TT_Q z&reINu3nRkD8gBqi$+BApepCF$-m zGG5ai@Ju%Vs(VH{?xTO5&(4uI_VyR0m@XxQ(031)>Vv#SLyFzpAczA1*_I#{xjp?UPHOK^rciH3b%h9Y&)Wn(5q?YE&W1M2NpT} zDnTxd*bVf|x`XaLRqS{R-h;+7rbiZjZ2=(!)K0zhw)>95OndAur$~d4^0eV!p)6d# zEC2y$W7?MgNFw3&j;qxdR9wG%D}u9h562Q-Ug%o)5DgKVhI-Z?9c~<1(0YO(s@G7m zCA9PsR_IwklEne=Pc(4bz76o+bgJ{hzM;i(XX~T|5rsQKgn&*|;z5F#<}cSm;LWk( zRYjmPKeBMUv03r=p@BU0Dl(<1qIrpT%!mpD^f>5eLG4xo=&!$Y9Q44>wAWrw2!mU9 zCP4;T(ifSwZnq*1@t3w-n-qb{pRv92weI&OOYH{srWPfcwo}nB3<;UOkAI56AHo`n zpco;Ti}7TeQ((rB-sSDA4>o80j(WCQzDxM5qw+grgpc47Vw400xQHyv+0)pUnt#yC= zS$jVvkd4w76vjLLK2f;`E-ZfaT9SDwGYph%Hca>pMSOLklwh0_H@%Daq7guEa3S|Y z^COcWz}u}TE^&qh=)YXA8F5=}{{UL-C=+l}Ht=?cyT^ zZ`Y6V@ZKS>Yn9D4YH*1ZyRamf$ri!Dx%2DP56dV7AUMA?_iKP7H}14#7lTHMLJ$O^dO&KKaTkF5IJwo+!7)~)$fNw8Jq@VXLal= z$j0h^vX47@2kFNMephs2!u$Sy%xEnK@9>`E|NC*P!0B9#OC*IVRT;)&CAhLlsd8!% zvFgE+o;w{y1r7Z1P5d)p%UPqJuv~6TXShqMy6y4UT_Z(dlm zonP2@`VdK&9-b)GbB*Sv1-amJ?CXIy9f;?Eo_pQ<1&os4eA}^#N2DG#FM8!fhWmBg z0E$on{NTb@rWexan*sEuHkLft8*gcEy%^5#mA8sUcrj%S_Sa|FuQ@|(b)S(w1WBN; zG?t+ncTekoG2mweJC5GGX5fc-_7Fv!Ln-0P*3)TFurL~tIc=<|bw!aaV6{mHFR=6p zp_Lh`!vS54WpK!T5u6VL#CT^Fk4vVBNfS3%f{FPqH z#_k4S(U^PTO`s9uy$tjF(5Y*-1LRZp^wTVsZ|Dl>!$tC3uRR+csjYj zyYuaW*KN0z>za@T;BojBDNwrmAxtv7jwTcJAytIMpPm)?s79s4SgZ_RM1dQyhyd8VnJa}%>ysz~NoQ>ik zZP~QUm^EXu7Ce0JGfSeSGF!IvL$ZEyuIx$YzLFu*s$qNGK*tt49$vn}>m;u}GGn%k zt2~F5l0CzLrW~Ko^QsE?w{IGG@16I&lP$FzCsgN14Q8^28yJ=kC1e&XbJnmJ5$ok_ z8yzob`VdcSW0+m~N}@y>sBobiOLyLmiAhee0qWw}r2MZvf(N=B4zXsRz>}?@>R&zT zC+{bZlLfQO3dm4JLOyy?_20-Q374fuL(XtNrosC@_903=%mjBq%08J*DMR&F`hsR2 zQ$KnB3A}Hl%t9pOAsDMaJx>r(ibo3W|M(wyMN+UMFr`1&PHb!Sld}bMumO>vum3&k z5s@de+e2hX)=4b=j{OVjsU!#Rzrwu~U zR0rJuS^fT(;2x(KEPGO6{@-dX|9U$vo)y$TEm8TuN?XX$$b&47C)yn63@Efe$$wh> z+)r&)yyM-)*DGc9@K%!2E##4RK@TD>;}Wh$^7<)VnheUfPo#VxXVj=Z*`EL|G@d+3 zlzO9iCY~JU`-9;^2BjL6GR(6I2r4Z1Iz>I1$-dy|@yCZ;AGu5fzu|tchh4`c=nYpE@25h0s#J;| zU?<-8%t>?q&=4kmsLlumv%rcW|HOMiKH?PcdDjr!8p%-`FUSz%2*z|j@1Kjbe2|3h}EdF#$EJsIW4?e{n3x(Txg?=G1MDZQnwSXiSp3Mo zV6*;>DAlV$g2x8JllibexMu04AoL%oyzUSAJvF)*x<7&G&mTY zve#)PA&nvtZcTNJh$Ydsd9~!r(^LOgHSR+kTitAU#678AH~<#vQ*kf`>^7BLUyUFz zmdE_9N(uPu(a|2P66>?@0kxOs{+k7+?HeJYrvOXEw=pswnr@IP<|C9c6v+%<=K9y5 zImw`NM*Ed&A*27`J@DB3v*K|*mv=*ELVxqytJefF$br*?Te*adO*}C4K};)gbZIs_ zhfLiKr@M_^O@fGp&kff;xUtZPnildLyLSROFF=cY^`N)1b?PVY`B(S29dnx3{hpm+ zGoAw+rjHctXPrIKQFwtz?Vg_GLyz)-->EY$VK)N&o{S1-P--~VYB)09D%mMZ)+B(S z_l$5?4-Q4pKUz)!waf0&Dzq8csKV}z4N(#@Zk&cfzUOv=Z;Xr&OSrI^y+;oBx`D}x#FG)3cD+KlsKC8Q?LkS=OvFW0htbgrrrP|WQ z{^Ef=pTY&@aVPVTFM(|wS2b2x5`>OAoo+8Tk7SN{f6O#D!dPn)g_HP)a||1Qz0eNy zdVZH_U**FWdXCCFQnZO!9}VK%w)G#(VbDjcy248~d)~I^pQ%OQmCVvA%4NQyt%aEy zn357XO|P{{wJS#n0r;}I25n!jRC)^2lxF>&sfNU<48g}~7UD4##H1|Yc5P2sB0j06 zyUb?tB+z`WdZ}L(aYajO>LH}>ap}TI&GX|u!kfE#BZ)Sc=GfBE(!%~1g29G-`w#0+ z0^`XgGRFHxvWiMg5=P@GtA^ZkmMhUSx;#loWYzOvf5;~tF*<3l{G^lj>OK6s1x=|X z%8;8bndUuTZuH&7DP7c@XK&*wY&EO)e0%4MDdP>T`&s(U(cGFSeV(@vZi4p2y9}&X zt~qXawaj{wfjIJ+{f3pYbH{yRm_rLcVnfKw^ep^yP;*I+W}W`R38h{KBQ0=etlvw~ zTFI|rlHVS8w55*-^^y^*mi~Y#cVFip?z$G>gK*hZJR@SC5ge7-eqQ47`_>;ry>t>) zf?q22bK4V=s}aAvTP@x8$~M}od`sSVUWajW%hkWt(0YzY>QFfaY*r@G6b|ipBq4fl zwIndkmLI<)a{KhfaCL4!Y$-GCl_e3= z4Us@9wai~!&u8kc9r$5jwpSZCEw%u{Rh35b4{O!yYh6-<>+4;k zQ8zP`M(2nMxc1EHv&q$2=At^EX5m$$oah;%hOy_S15QP~Gku+(8vOLKgTk#ryAE0+ zn>6dv7GRQ#N@!O7b-Q5dv4P8Z;8tbyodG3LOGi$OY<{Bpg!j$Q`H!z<@bn6ar|;aM zf6!+#bHe*26X*3M5x&7*i!L6+k1qE4`A?r1Ce+0~8(|xzza?0U`m+MJ1B}NU*t|n) zYwbI!EeDr}jHF?&A15^^Cfqa-!Ng=L&eO2Gvz+CVQ=$PJdGyRy)uj#Y3y&(~JJ&J&LIl$)DAIF9 z(Fmwj`{!AJpm+97HVz#cYntFaW*q^u?^5=Ra0Ta^7dviY=yF4qnVDeLv<>=?0wo8ve%RwPy@RD6mEBFz zl-EjT{@kpPi>jg%vC46}N<5dtsm%bl>Be7V>`7r>PcN6E?Y!Doa8ekuxJ&laO!ZC? zx^h%p^yOIjRB7BZx^Ml%K8Vvzv(*|^%W}~sZ|8zFh^@VtkRRDtdK0l;=t+QZOHg}i z3Yp-PEn=Dm(Nkj1Hb1hvr4&*q42@D~|16jBIM7%JF~V#7jToyEp_eIF45Cmm*zmlI ziNUj93YrUJrzUbaBP=3`_VJ748KWl)oj=lr;T!7iC`9FQomJMd>AYK0;e!aw#KwIf zqz|*~rze=F`^opMooS-Lkr5jef02y?CxQ3`(ZSl<$6oSoOl^ThHNA8D?^R~<>923q zbX|kre+e%c7nOmLoa0I}usWCsg|8eu8pnlXI_<#mOM&^um zRLHgu!fy&@QV|mVfdWe5Vf+a|1wqKb;8vPd#k9B~EK`C{S`7**T~TwE0zbWSIX6_> zvvKzYyWu%e=ZqKaDF9dZ!el(2r?~UU%N{A#mLB36QIul&6lS@vV3P{|`H^Xr`IqjQ z;u1^Bh4!u|(_iYh>vows7%o zIG^x=t9Rd_T;MJ|yCnvHHYR@0IMJ>_*&EN4UXP$?6K|;q7Y9tt zNWO`wh-li5-WOMH6-Gv1ACVXBy)j%T)jchCr?lwFYK9CZC&af|(08!o1U$JV{ZKeW zA^<8diK%9hmpl!;=YU_+Eu!ot1g0p{=-TaX4)+ShGJV{ioUgK+e6uAn+@uo07nOhA zLGCA(>yvf~;XG!ctJMHz3g;;{V4kX{0Nl2G?mev5yR1oc6BIBgDLV-a{Bk>Mu2&)d zJ$uQyOhmJ1@^I;egiEoCrz^EfRAA$*xdzcOmAGy*{)vOr z32x!!%Kc{L!@~T|R~}QI-YnV4@|jmRjGuW|TqcM`aXy6&I~HJHBq3~33llBg-YwG@ z@1x%il&V`N;8V}@_EvuqjeB@f2$JsD`tdxP0F5Ul^t8c06qF9Kl&6jaC_i`msFtxA zcI+>9EoA%5e%&^n6mw~46Zx&~rTqd!6{CA?vMrCv%UF0GZ=s#-9WoRu(h@wqn7sV` zB=GL{Z^#tp#oih`pf&^}8M=Oex;RyEU4Vfl@k8>H-&L8|0S{M6?4>k0OdWQ~168A> z4-clQI2it%btn?Q5x+Z(w8$`@ONlX_=oac5tvt(Hf0^j-tsBv~z}EVXyWv6aV3uAs zW$dLd=*IshFzmQC(@l`Nr>Y7<$09g4@j zqEF#F*Qo$ZD}7Qg-yB1Qr>zg9-l$+l6$-eQ6xWWoeBHGNOuT#$%*7!aW1C9fgg%iF z^Ehu?ob_xl&#FFV9fi^KxnDbB$^%zr1yxLgFR*ms0kg|LX>{ z-rV>-ox)G$E6i>6uDY7dbV;e5i$K<*Z%0YXVVj>&hyD8sm7B#3kGvQQ*(XBO%n<5J zqy7w&%*6STOG`x>vjPh?AS%e3@U0(Crk$mQNy_F+dDwL~Y|Qh;*UyD1h+G7^D2nyR zkouP!HjlgNfs6hM>tbKOj^nMx@ANu!j_SB1b@QDt8zcT_`CTYf3eKKd?dW+F zq#L7!dM^=LBHY{hsxcFb;*SYAT6GLO0bKv(dpp(*Ia;N)q(=^qc7XELGhEB$K^n|( zODij1#+S!(dV8hMrJH;1ZEby#qV2^5K#a6gybs;a_XN8U)p&XOx%89ZIYuTn9|O zdpDKu&G@=i6)>cwxJgK`*Gcl$f4=33I01;%__x*0zqll54Kz~_Uz0_ROhrgsE2vCV zyk3nIOuOp#HqYFNxBevY+r})PT|R@lZ%#@>E4aPeW$x$h=EA|+<;asoI1A%N?o8~B zOYW6OUMaLcMrQqd&8}jez6)iupMNT(ZM)~yg~I3B#l|1DG&&z7iHjSnp-0?PF})EpTSAvuJqoR@`tin z0E&KyH;WoBbOs)2B1oqlqu=67&ngwWn1;yie}s;yy;;`#Tz!YPo)af9r$yH5kYX>^ z>o+oW_55?~6*_poSoYl@$`3RYfZ(q)R2&8)v)89Bwf9G68K;*%yyK^3rUK0WWih<57#9|f zpl$eN2rTRO1!O9!`5^df3?VUVG{w_nueHqn5R}m(5#dpcv*>Y9Fvy2?r)$)+@YdfW zc3qzQ8LF<@a2+T8dOhrPIgcnA@ZEq3u*hY+<8^NVyCi;zsKTYY4u)B~d66g6Heqzu z;A|*;d6Uq!wgO#w+k1w9YR(0u_x&f^6&=QE?t4(9!_Cemy}^(*@J`tsi3KfRk<~R% z`r^vb8)h`iC&+;2aKt%lHBJi$BGitHHZsT03vzU_grUXrz!#y&VgSi%Ab&VMDMc#- z{`0;HSF=C$Gp|1-MzQiGk5G>Iskl3r8Fe$-H}+h&m&o9s%S=5y3Rxz9O5e($`~zwv z3&qJiw~#Mu$OpY3{u_Fy!$Gd!nPrjYRE`w7u?u67w_@PyR6AMh3-R}X_-_kGcrXKg zy)jfy9djn)8~3ivfQ_X|vfgf6w^1Vh6#RCyeNQX`4Bp`N3Yuf9>`xrOH{Ir~m;;{)`Q-Ub^(Hu)gBWO+Ev#E7CIi&MyCl-S`CXbeHqu@P1Ch z!_7<5_F}Mt9F^6Nb1c(fBju+CJ{6x05UF>nyU9MGO3ySs_6qh-`XnVHpvAbSt2&4t zp+E__(||rIr;sx_)5}Vpx1J81)IO*Qa~KL%av=wTSJV1fb-q9{&AIC1!oQr-`{uYM z*OYBmx?h|n6#;F}L?BX_4Q%Ezu!0L~O~jXGe~NB@obYWpr1=eT_iluv+14)SR?#c@ z1b+wv4G@kS`nIbxTW>%PoFN0wtiFWgU(Ga6%~E{#xjpMa3Bt=b0_L&I+UpQ)_v5=k zNp@=EXwMnI&?RWlmh2xm*ANg%-utorLOtQ{;spi+3fuJ?*0id;=y7LlFgMm}$LDl@ z*$}@SUEk@ncR4%)zjL+yTW7ANL^6 z0{@+b#;s-EGOtkikUuT9@j86gHJKp}gEUYcXv`v9;?K-+u337w-G_L?*y{klPMq)s zdl(w9<#xL{{$6<=k&tuAUh`U|<(C@epoj-?;uP@3w~#1l^zce=3_##5;}-g-@Ld}U zv4l!Lz`+TBbq2?shzhnm%O@YznR+F&*m(KR+8Q?+iWK1aVi`>@ONwGnA?h=jprt^> zz~Yz&AQ>^F{kZT4Wb~bFHMk)~N9|B0@_`RRYXNuGVe8zUTl43oTAzRVXQd}FU%!ELk0**!>&%&i|2EmfG<&={!-hMK2Cp~;Ut|d zXA6vT6PBl5^NPQg$AhWc*u zWl;K_4LeN+gf7FkDv-}#I~MX2cszj5D@{yzo`kw@OXat=mMR$D-@yqa+%X0jE66%0;!B7rgKI-S*4?NyVb2WZ^cn%E> z^nsir-o55uv*u85X~MhIgU1i4i45lybUYKacT!&D{-pRIS#S=YbQVsiRC*;7VG~r_{~du~D8_|nU@y-uxm_IZ zU|C|Gu3+*Ay^#3v)dhHH7D^hC1O@QaI1BT&Y_pWlzap|z2If}rU?Z_%hRcc7o8}-+ z-~@gFhnsvl>?i52oR@iY53Vx5377)Rqse7TFNX%BmVV1Ejtyt=#ThWkK8sNyX5)ss z^*%3rfij!Jq`YPR>aDvFtD@R5A@vz3@6&Qd6(yYxg9aSSP7nvZsx=(u#`aS=#sI|b z%6R~FkRWdq?e-x9JEQj8=Flm~?GH7n_rJ|q$-}ZTQJ=F4HtqW&>ul6UB%B8{n&Wt& z05gaAkpfV`9AbY{C}Nv9Kr1L?=3o0q(-&Ht$K*Mdr-I>9O{pA6AJA%giHy9t-ndO#GGVD7WuOUyAqYV{mm45%V;%6}H% zIR{77brpYz<@hW@1s|iy`a!NZSNRgpcGtI$wW`dcI1h*s*H&A+XeNo!QR)1)#GS#J z{ALOlqT@Iky;as)8`~UI2M-LN;K`At(L=Eb9VdnN8#<)f2g3F^)UE4lr}YZAT5eu* ztS%w(3x5%=qL*$Utv4HCpyj?m3ruztvx?F7`uRW<{CX{WAR^+;gRXEn9u-O0mdW^> z*7mB>a&tiUMTWpyPGyE(q3cBYci`=?b_fiI=adT)phc;(W(4)I5-Gv$r^YmyC1F>; z@Z8X&*f>*6=->LuV2xM9CG=M!879vXg?kVwyq`r7ZaiWUG|wS%sdPik$9PkMAnqQW z5A&id+`hhIZs?DPnx&<~`r7JVd&1evX?b}>f4hkneCS{u=7mM%&=IUHUoC&nlcGIV z9!EhGVP>sAu}`w~Q<%>L*!Ada^R8=NxvD2YL6A#3kudd+Ve%p|@8GE*!3t*~pmmqf zn?p$kgq_Ybl0tvisNz2_8}DM=Q>VCNHB`xnsaoqWbo0D@6}ZZ<+7`lp4iMC#yBQ|D zI6Uye9PvX|!S_##)`>?kI3dLKuX}4i?p@5W0EdYFpVal=?f7X?xM3TmjP_g~Ol@j= zgmb?68Tfrl*aYhCKRn<6S%oZ_t3^JR=x(|6Rovj}kC!IFKj%0rydP`pjX4ssMQ7hZ zX{S!Yp>*yxLsTV4E0g0kDau!TG02NCA< zGvjkm7It}|p+=4t*)Cj`hkeqQSr-LR+A=mV0jj%h%lmH}MPNc(-~E^CbFqUsarc+# z!KJ#gK7vTAD2%z$?_}SLYr0=k`-Gg)YdytQ-9l?KD{5BfRUJ4&5zS$4ecHs@^{J(U zebbpA42D624t(%MX!U|yS1<(g(H>zaUpT9y1^NkZ8*^9yPKx1b042Z0t|L=0>xMGB)H)LX< zZn^F~f)#G&`Vy_Tm6|@DJToxl{Gw-+kCcP7G{hqVfYac9H@PpyaIb<}OJCkw65JaX z-7*R?;Z^eMEI~LT=-6f`6`J3mHHNb`+-orPXmhQ0jGOj_F`VJ|Z=Bm!W*2IZ;I#31 z>(O<P;bp?1kudGhGA*1;hHVz$0)(81o`s(JAuK;pTgkFdf6 z->=w`jHo{nO9$$zn{nLcVTk&}Lx}>!94?7KW!CM76F4vTw1ekp5q#!g!vZkxuH2h;5r6S=?*ki12es{%|9(Ix95T{nvHm-* zg+iDfX?~bi7qm9Jf4>;92eTeDTK-}{g7UeK@QY`Ey?HBzvv92Sv&9_>*um$?C4nL& z^+bil`d)E*!v`897CS$bimHJoT_9E0SgdvxPshx>*%lVkj_GocM$Z<$D*tvdMQ>9J zKy?e5|8%9G0ITn>zwwcwtlAzqtlh}^5~+7mA!X}$^2rs7De#v1JH8hq7K?s z4?P(gpYkBWL}CK#cF4YXMyHQGZO#cRFn+KE%Iksk(In8OKx#*kW?NykZzezN{hCn} zUT<-2c6+WXUkTa_0KgI#g9#keZV1Q{6HjYSE{#4`bU0#PSj^;24pMSC%XhS1qe6_e zHfS-gG-m|nMA5&xZydwDqGBi?T2aRUtu>ak(^S9=jSMQlrh~++x5N4f@z#((8N3A0 zJ?TR-K}Py5Y_@uKou1^@hwwYX3sV3>RJG!?0_@RUxhLe0>l#Y^p_SAgjai(9q?xyq0b2<;06(9IA7;B+x? zF;kK73tCoZ5rluz^|d18@;gYW$zn07wxkpWwc;99EFeJV;5pf-LmnPDo)J1%+PuIT z?_JK3g>oOZUPe;N(Y~||)UM)ceM2xVQQbI~*=5FHB(R-PZUuIFGJoT@Ljq7z? zmBwu=UynNs1&3l}LsRPW*Xb=G$h>8qT5ZQsT>hnCNCb|Q3-+yW?W$duS>6_qx_!#v zCbzeW$DK!CMaV4%pq%B-aS`MppgJ0T4z>m*Tkm8*H8~hf;j0aTkIkfO3+LnVXB!sO2&7IEUq-?h zmqh{c^_0O#o+#%GKFoOxzkst)TNsJUuMh4~+CTop;@G3KOm+Kv z>CB{T)}=uTUn%zq=~ym9ZysM3KEUO7F5D2QYGN$B0s1-{@{(ay9z7TIdM0bo>Ucby z+&DJb2`Sz5&x<$*w$co^y`elcWfujhK7Cg7T6wO$AU>XaZmUMnBeAV%&Y;Q-?{Lm+ zSo2UPbr|z{@|ZEa-mD&Z<{utz82~zc{z&XjL;`Q(#ba*wc=X%${o-2OIEHq0$y^FZ zXhx4CAG~Ai4cTwL<0(V3m8vTr6N2a_J4k!-Rj1hc7-GxHF+}ZYm-UwQo_5mE`YoD7 zB7T3zICKF49!?s0r|^|#U*&_R%N~5!zMbkL*Xh#+GvVX3{y=wa^kg4-l6i!-a1QS3 z`=k2G7S@*zWfPSYNXnmJC_Hdc%GYa{Xl-scDdI={iguo4O=7I4Rb9d6-t^gqyj^R&T`r`?6Gq81|nL{d?0iX*LI97B!bus9gX z$ATw)?4#)(wJkcf5pwRC%Cf^X4XX|I1V&}fYVe41+7hG_0@U4?Uj7r5FNJ? zWPsm!Fy9}q1%oXymrRb9RF1(AsauJsF91F&ch7^zs3$$W2Kod`6Figsj!( z9_$WEg4F;@f*r;GBxwN(fF%f?_8xf_Nl6kSJO1&nlRv8enUg=Nf9!*2$b;@l2L9Lh zq)9^m+n)ZraQpPuL^|3QAgpB#K3c-N%2C58YVyp@eT zk|O`b(E7vW#Kf#n01>Gk~4bM!ghBhJ%PdfE@FQP_?{{QYBd5_JX?F>VEU9 z_OfaHAiHaU7UxVn#;fL(#|I^U3gvG5mk*AE=pWMJ#i_fs?K%Ckkc$m3x=K4RExC`T zX}c}FBK)=Om$=vH#b_rJk{=^z6KH2Ry}k}0%C8bdLFW2p;XUsV%gKv83$MRQK0;g6 z#NY=IfumZVpYv6|bW}w!aq?nOD9lK@m^VM*mh`H*z8&1e>WdB-92j~Kk%<#Nd+G_p znsTyjcrRaRibaY?FrB7+LJlg6I8a$1D?g#XQ`zdlF|5^75tr9Kn(Ot$TxB&1Pevm2 zAzGr+!F>eIcL~q;otS!%ST~(8sL1E!;b!R)Y zgEMDJI&VSEN+{;n;N#l|?JsCwcya-#53(M8uO($$sI*hIU%9x~+N~Ge4*g(pkFPxh zn^y+^tvMfQq^ka2 z6|vY6|K5#0+L=!uL6c*yuVQLwGEl;)a`bg_SRjcWRvjy~GpMf|dxy@lH7A!dB_5>} z;5bSo(4ewJkE_(}1)f`$Aw0)?JGA_l6g>Cf8H740bWh#-iHimH{jOmw;@1Gf>WYMu zHafR|@QXzPZT&;o<@m0?UoH8(&+p&Lw(W>?GVLPEIqx(qw&xMeZnUcHAFCE3j%*I4 zyfP%S$bk`(^yFErSx~Jpye0a6QsZw}rNpq#+vxT&huc63@^#_zV=FV$e0U9`C(N_d zl_L4Eh{+xUqGzoE%3Q*w2Js@~NU3Llx#~|{fbC0h3z}fL_=XE;)o1lcHVbsD9t=uC z5GRXWyMiQ)_=cbj-=gt)PqvdNawX++Z{7K9CiUHE$R5cL5gS*lPJQ{r!ch-}N|)yq zxQ#LXJvwYN2A=XunT@s1!L}ZR8fyaS!^G6&6cx0SDy*X=m9Yyy*QPskhdT`;fzd*k zr0;M8F{KvSxmGT5Vyn3@?(Z?yN;!#m{7&IdLqPzu-8x@Bm_lUw3%EfUwwF&#y<^xS z@zGT;ms45Z*vJ&VG${yh=V%&co9oZtvcf#?Mv>$5=k&7n!&a4tj0FL^)}LwHl)OU<{#~+Nd~6wqP5chbF$?*qQhlLRcrYJx|^i0mkbkJKdh(#VyH6-6X;# z4uQw0pj}h(@6aWt5A5s~Q<4!l>2XhmP&T*T58%FTrhSNo{ld)(;?K$Zz!x1}=9clx zhwrL8^`i5to^9t9s=##lyF%h)R!gQVhaJpiiD}yK@V^urZqcgzo73G;jZCe1jl%=paRhGav`S^EM zf{LH=U{+V{E6w!!e|EIOO?6ag;ym4)9&B0R@$sgVovwUO^j*a#r;$n)X?YT|W0Bg! zNr>#{o2IQ>Azghd{j1}!LA`&YvCcuA^{zs6GA!?8)f=p@-u>cqqE-dgSYufpTsGx| zGz7mO1b(n+a@Q$ed9cF&dRhq$PuW_KZ%v$X=}fy>vW=JxEKEkkDs>D~xH|I+-hq|w zjPeY3EcpHHJ52EJI_}0}W?JmLgF>>zGQ{xtHWk1JLGi^!8F+O#4ee)K0;5z&w<+2DU~ zi62=hPHfU=Q~ob4oYQO}KQ;wg^l?=tSp-e>lY^#67XK@zB0x+eF#o?;_(Xo%Vz^e@ z0PbHDAZcZ}esXXwu<9 zKFztx-N$@jme>H6`LnZ%xli{9ENQU49|I)E+^UMMUd`llk2#Jdg1&FUrXT0;Jm=qOy%leMOT0)zhjkB^PE ze}RSJXTk?q^9f7DANr0ShoPv)0(%lo;-oUPzG69|=Q4DIhn3{n-2Ug){{0=HSQ4=F zIVeKyVyo6l#KFLETz&dRwOdbR4hD{m@&mbwh^Xh@1C*#K_k}5pFZ%nC6D$lY)7{Db z7Xb<8H>o=)jrNL2B+ss7e=jyydE*2N{c~N2(ouSI^XfLG=j$aBU~nzVFtef^E0xQ0 zms?M-{%U>ukTlKR4OG3GO_%a$d*ES~66ZLkRj)vzAbiz(MBDxb&TTl927IWHwYe1I zHi{*Lb^rYZDZIs6Tg$xup)7Cgntsn>7s zTN39@_4Nq?->ts<@t4h8x%uD<5S+Bfb>f-WZq=_hpq(@>>g!!gzx{H|g>Y_Ke>Kw( z4#f}_MVBdA#Xo=TU39a?fY};I`3?Q^OMfn>n7J= zm-E>clD(LE{Z0^1z%_}(O22o1|88Q%mQdteo%b>UipR<8SM!WneiE$VXSm(DSvY)S zH=oka@tw+`?2Q5c9{BUg7xHd|_LEOh8H!T1zXux9kA`Hwgk$c0K=KVpvEN(3VIe=bubpMLN`X03O%ZOQW-Akl;ztsEHj zM^TbO@VGaXeA94#BE}V-F+S`HZ!<;C+j6sVK!GzLZJYq{!t&zTl+#@4lsiPJTH8%x zq&b}8p6k?8$?#pGKB12I_@+cEb^0= zAq-ZezCA!b*)xx4yXi&!Ihz7TdlKYd>E0B3xhQS&>7Z@mZ3bnWGY^dR9j5T4?nCi+ zmk|&W9Rz;j?OTSzBectSy}@FC8|()0wxmY0_D>v*;!~Hb&N7PcL?R%#Z9W8~ zLb9& zGd+t>vLzVu-?jLwe@PbY(eOiKxH5(g6q&{E#n`<01R24|%FXMf$Y)a4@ciYo@xfHc z)?jCSNhcpOJ8~%*nZf+v$!s@r=XYfN*{{00A@5%MQGeal8$4Kc1iz>M8%?%9VzCNcP@SV*bU zO4Dn`LsUXF!T56R^|arHjPB&el-Uh{#qc83`|)a6&cwO%+lz}704;H44nL|W#sU{6 zG!iEtVuWWCdmT=|U<08gn<9t&qgUbcWNTV~tIH&Vvw0V*c_(*bUi`_H+s(NmO`-$B z7|oABq&X5Y6a`>}u^sl`inLTfgFF0TQMV9NYVO`v`R4W`&bR-RD9cv^>g#@qs4j_F zgQ=X?Wz?nqHL?H@p(PYLwIjPEDuXsj!~!_B)FWCbKy5(7<-y_9bW?Pc4jz7Y>Yvn} z10K0I;sQTC?^t!Pks)N8Fj6kfm_I|T0zhH?`3lp%ZfSHn$&7duGKGROBfoX)x8fU&(d)s@EkkLzQ{DO%6jHp{z?YumiPaIq(b-T$r$-unfELwfvS z2=b7cuT%d`?GCXBuVaqsmVteQB5uvGP!zuGe8;Uq-WI<8?J&)*UMRS=ASAz*k}Ykh z&Ex60Xv4uY09fcBW!tB@so|%?zoh2_ahmyl3LeYf^g}_rPiGt`|JyK)0}*jy%Mf8k zh=P_3y4!tFIL>_Q>i^N$b4E4QElZJ(B1HwkAPQnA(gdW0-X)+^1*C{bk96@+q)Jf; zN^hYG3Iq_4P!;J)3%vytDM_dz0Yr-LpnTuGZ{6>{_3|exE3>EXJ+t?jJqM>CJ7|!M zbluJ-Eg6H~n4pT_m3W*;54w6lG2@O+PXNff|IH)FGH+^4T^)1vsfp=r?%TtPwwns%8^)KZOq%E ztA1`eL8Co4?{p+1sk1$7-+ZvBZbJda@O0VVKSto7^G%Q-1&sbyeUYG0QYqlEZjM>?N*>Zzavk1iil|?lNR8d`EY#$?1!bhZ6Tz(w*JfmL zPcN-sTPKw)YMeIr;wDHbArV#Od<6G3=``ca=i|@|B_^T%PE1+7&Ar){>l;<~8sEN@ zLKn&T0l7=x+S8FjzNs4-Lb195(6E9)6Xzf%Q)|Qw|_jQ{iC9jSXQ})*CduJ zQ4ps%sTr0Bu{OdoJ-4=BEu`$|=`S@!*1xpI^)-mk#^WKopu<)VE$*mcW@IfB)l69; zAQ0La$9ZUTjEm{+ZAAK`qDTd0CQQINlnL0Sf(T7s=xROK8vAxFWzz75=i83m3OYI1 zV*lLqHP>p7&A)t=`vEayH*$xr(_p_c`*dyd6E$r` znR+jOpAhhw>2-R>q{J>A&;U!0Gz+oIDKwq?DG^w;0k%ku>bak-S+i>3WL!Bvoorh= zE|H1=Cs?&`Dn6%>9sUsgjsr$ujvuD&$xvnb?VNAqNZnFn+{xD+>#67GJs!Du56EJs zPe^|JG9549&-Al06C&fR&OV*fs@Bfm7tlL>;c4CRt_%@7VCpJKi}{*yR)@LMoK}bA zJjx_<8-4bD0?T#LZ4Sas$}WM3BARP{PrJ#N&)dPKLy$ca@^!l-ZVQ1N1P)&5(W$EM z@&xy;+O(J)nxi-rv2N1fXwA87u3KI3#n87aaId3J>MPNaA04toGh(6bn^lR)<(#w| zhNlg8ero5*#oCUVo;t^rT}XSASj6D6WVqsA7!j+KeruRAqw$pYmi*OsmermcLhPw+ zbIlUmKj0}@QHQy6CIsTr84s$^7s%~F(URs|H(IkJ zAO)0L5t6fW5&0<;ZW*nO?=1SDzWbr!!!(8Csw8NnKHVcy)9& z%=$q1oShh)X~iA0*FC9ZIF3HospwKRv9c<};aOx?Rg*c5}X0cKR%fR*GlVQ~TbqNnmoXh!yh+`XZ6? zEJDZ9`TEQ;pavFdkdjw}J6$o`{?KZHnCiSWH`Egffq7Rrzm*-`bJWasR}ie9VR2vJ zD(v(|4-SUgTk@Jpny&^F&v2wvbuXedw`RUy$IjmK!OwaBUMM43RrRwx)j7E1z5pT*K^7VS7_U2zZguzB-@(R-@QkT2F?>tbs& zd1WS!_v(^A^$>%Vxv^j$bynwQn%ENULjKnXa?&fr_OX+EG09KhzcY*0@th91Zt-s z3x=`Jl^^FkhNE&i8gGw<*cLx%+1MY`w%~d8#CT&Zwj>H+cX}%SVQd%%F;xydm3ex0 z^;L(3ubsvffAtbIauTg(-Ou>8!7b5`#_)OKb5`>C-P6uA9iC*Qhbikd6`6In%Z^c#tY9pju}_}@rY<%Bgy`KXaPl_m!xFVPwd86Yfoihgvow5 zzakC&Q4(d3wdGv4?8sIyN|U>l?;b9C)}&|q-0f)v7}gamVnS^Gpa|Tug$}G|Q0bZ{=u(bkJ27eOu-W5b;jO!RWS(T ziqEyBj@fcjgC{<$f{j#Nuj$vryOqj>NEQRKkpjMZb`t%Ne2n#<2QV_mJnpiMKTh=> z0th*t8)8^5?7532H61=hh@1XYLLXIQ@1sMzO>@N{YzSsTSB~X|vKTPYvkik&3YwsWA*xh#l-~zIRH) z<+$%y6B=J%=lfuDtA1nUK}t&SRD=#57x&YlegC9N?Jr?R&ZSny2b+0}##*CoN=T+? z$wB^Wh=e3f6|iE$zOn!Z6>V&bcok#R;V(o<5y%=^K=WHwIzS}YQZ0WgEzt|xkfq18 zo5y9W#W*1G0j*@ycLmG94=Y*78;)Y#fgbzR{o{yoRNV9h9KK@Z(GY(B;PDl=o(9)~ z+xL=TGh28pgWdzDk4E7Ldppn*W&Y2oqK5b*Q2ra0U>H!B5wl?rk#+pV*@d46aim-%4%_lDm{^< zem|u76vBDv=VxV+^NnqW32$lmIH(ei{mrC45UW|X7y+qu|5_Q`^x=XjupV?NX%KesWKq9?lr#Z5x2@B$ei^QI;%nX1ffyr`y{C1iUyqu9 z6bu2oIVysb6)jL)8$wJWz{EQ93Sx5x6y_>4YgM@uU;0P#a;IT zYpxDNKDUE*>iVfnjI8#DT5ta4BG==p>XN6rTIgxyCR#Xbda2K%=ci`xJ%g9htoU#S z6sFcr?P}Le5p89gN<-I|5ejQnlc!>@B~9)Z72uB}c*PL6`&rYAcONkm&^iyIAYm-h z0?%CnE=#UQ4HUVF6d$Rs@9e-uT!{h8tGoion1Vp|GEVz<$|4q@SK1rD8e1uHBQ@l- zE(Oeco_q)?+ebbK+Q!Ed27eK;ecb68l5~nu(=_`mMCANaaG$nAi;0ve)g>73g)X@{ zpEz57;ZVGZeo;epKaJx#!3N(aXpi~)i*gZZM2)_S@|f=a{mERqGC2+Uvp8dai`Msk z__X>-%A1Jo-ULmA1=P--a-p*05@Nfc(X|X$@B8(tTK5+3husQl>F=kdSx#X}2QH-bvPNyy0l*-v*S-kLYZQVPqZBQFKfb#i%Gc zvQ>Pq;^1lOh2i1v4E9D+$!grEuFjzjvhGsAtTHgu7R|89pW1{AJgj zYsxBS7wI{S3AibCV*l%aQr%_PHHW6qdD#}XYm9q8zi_E$4Xl`n&3OYO%OvMZ$ep4P zy;mpmGrRGlDT_%Wj(`wiMFn?@5m%Ahv0U&8Gwlo|1SCy=WmTsV%FU^6u@-~_R}<=d z4Kn0aXqN;3mb*_&Us#RD!_?>nIfjSUlU~!zZ;WxH)`zM1l7gY%c)eGBo&B z3O{nk9==*0RnhLR(CSrhH9)$B^O_$a%q}D$WV|GG%K2FVdHE(bK)P1{Oz^aQeuT_j zh%AKvrMdX1e8hL}O1{T|e+w+y$Tx6tGoQl2>lDwBNq5?q+-Jj3ie*ziHn&pv(C(!M zp}}yz=AK^Msy=cDfsuLSQ^rDqUk}-~V@9lq<8(7Cn}k(1flDNa0^naPOxcJWFb^Sq z6OBEwn^JnqBz|5=d*zHN>)1K8!qFPe{Tw2Rt@WnBYrelXrKKW2aWRB?DIk&g)Yww5 zaA6`Mxxu?Wxi@SW57OISt)FtH!0htD`@*k$h-q&Z76ep*fl4Yk^4Z!Rr=mI;8H1{} znzGSQY}joTqJ~F?fPCoAPwT#aDYlI$Tr^;YHl;4EwD2+zac-t-$3J-%e9*HpK_<7e zUh?P%QOwHt+xIsSAIzfPDD6msu9MdmbEP>ZYzFijJ%Ee!!~koKn$9gv(WLQ30(S@5`M6NE3p?p3Ae8hOh5@jWin#CTm7 zzjX?ewpzg$SnyX%O+Vy1Yu7_MgIp?w$F} z%)%{r^C9iBtZ`rL->&&GzeAX_KhZoM7}rUTzqX>vl~u0*_mJ34EeU!%`c>oo4P(*A zF7I3g_=}gax<*O9^9p9odvu5o=u`>tGMk3mbtAXC_Gyq4Ix9Umk9x*2S=bqyS`)i! z555<>w*!u{gVTkW{3o@13M@%~;Z`dFN0#8k8>*^}hJy!& zN|r2j)!^J87LOwI203xvzf?Fmk@J;efJ#3E4?Rr)FH(-;ZEFN>zN~@Nb!_D0rTeC? z{3_vyob|yY;lNLE$#V`VdNcy2gA#2qH8qVKx0_C#mx|(u2F=&HT(HnTRa%Exdv_I< zR=GIg>DT&gg2`W%_6|QKIRy%dsV1K%;!Tmd*SALd|vTPYGPn7ZV9S3{zH=!CZ)II(aMPZ&G=rBtd%jLTBbh{VX@kxNlya;K)?n^t)IR5|4fJIlw}3 zckewCY{*fwX?$UKU|G1d|K`;p&O(HH-da9hY&#u16<7_o)YMT~+v{him)k<58Tz!E zr9s-*-@GgQn~ds!A+w?M1$&vvXWFozr<5vO!U`sWK2?eIOnWQ^OwalpLrjj6e$XKE zr1kcvSd0v9$+-T?5QxIaEkelcJeLuU_=&BcwuPMlc%Oca@oDLJPIAQL2#LMZg*iBU z;C`LP9drjxiNu$q9MxWu_&U;*;_64Q*YxKL>T<-EGtIH2v1cPHxTZ%^MMSY1;`SK; z9Gco4E{0AG;yog`NfhRk`qEDVqsi7pL<-`LIBTqIP;enZ-glljyjzD0u>oLSjN5G$#uCfQv6)Es(t))Cl$nFi;eqGLcF4}cM z5q1Wqzev^9*klQ5 zfbE&?RnzNZuy=!4j<8Y;v@oS4=$U<<4XX8qBO}b)g3N2vAeM;;e55F}Q1w0eQ3P-t zF!xuAcMK@g@U-2=H57DwF(JoPNWwhIlOz<6v)n%d`>2H!ij!>N7cjG36H*zxxL`nr zfjI#A2e{N0|qBsRw={VF{?ipa=#=<+IOjJ2;{YExgEEcg5D!ywWi{_vYJ64bNvU(2e&FNA0s3_o8Eb5ZGO6bZle(7 zYph+nFLl!``lBk<9f8(h%a4RiRY~vie6kR*5Uy!U6OdIK!xTfwfO?HJE@eZST}8Yj zi0{yIMpk^>p3b+^2U(6kMFs7X2+NJ`p~c=o32mXGNv ziNUTJq;hiTi+nwd<1N|FLt;^ke7E|fz?#rQPt1G)A*c*Y#2L^sfJ4`~qz+D0hk>tz zJYWOyP6EKwOhGQGcy)RT@bdhFH3HoPKpq5*j~A-^tu!e;;N+FdGIA6odQGMesC*mL z4CkMbQp8$O-zhbG_uM#hwy6}5Mmj$hPtm0Ctm?OrK4*!~QD*|Bf67#Lh09|FIbc5T zf@(A{Gi|LFnBe&C;}gY_o$B!ry32Owo=wtUy>zb7w(iG4WE=3KYmyx zSZxdXu{ykEx9_XfxA(za%DwhmWtnnX$Jw9cT=pe%t?JzGOY3wN34fEx(Mjb*+Res# z>#uF<1vah+ZJJ)O>f5ejD+X`4;J9F$nlD~iWxk6Q@z`AQYmB#A>q4>5%sT%N_Y8%p zlgb~F$Sktwt&Wcw_JO%jmyDF~zbSLb>IWZL#%-UZgritVw@}7{s;w`UuxQLHz^yShhp*?)hYg zO#Z?34^aQkC-4!Q{~hN4;x8!b%=E5+o>Wd>1R40zR@YN2Rk05FAM^=h Ae*gdg diff --git a/docs/_files/slack-error-alert.png b/docs/_files/slack-error-alert.png deleted file mode 100644 index 71bde57ec4293f2f3c71f119719ac43048348959..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34485 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%0Dylxu-L2K{ag6wf{g+z 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 diff --git a/docs/_files/source-controller.png b/docs/_files/source-controller.png deleted file mode 100644 index 554c005403e01d12cee25bc10f5db17107e50aad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45175 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 diff --git a/docs/_files/toolkit-icon.png b/docs/_files/toolkit-icon.png deleted file mode 100644 index 1c68f06046b548e31d54d573c48007159eeae267..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57217 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≠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 z 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 TrQ(wnd>CP4VP{@x=9Bbqz$aVY diff --git a/docs/_static/custom.css b/docs/_static/custom.css deleted file mode 100644 index e17c215b..00000000 --- a/docs/_static/custom.css +++ /dev/null @@ -1,122 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Montserrat&display=swap"); - -body { - font-family: "Montserrat", sans-serif; -} - -.md-logo { - width: 40px; - height: 40px; - padding-bottom: 2px; - padding-top: 2px; -} -.md-logo img { - width: 40px; - height: 40px; -} - -.md-header, .md-footer-nav { - background-image: linear-gradient(45deg, rgb(0, 150, 225) 0%, rgb(27, 141, 226) 24%, rgb(42, 125, 227) 53%, rgb(53, 112, 227) 78%, rgb(53, 112, 227) 100%); -} - -.md-header-nav__title { - font-size: .85rem; -} - -.check-bullet { - color:#07bfa5; - background-color: white; - margin-left:-22px; -} - -/* Progress bar styling */ - -.progress-label { - position: absolute; - text-align: center; - font-weight: 700; - width: 100%; - /* remove original styling for thin styling - margin: 0 ! important; */ - margin-top: -0.4rem ! important; - line-height: 1.2rem; - white-space: nowrap; - overflow: hidden; - } - - .progress-bar { - /*remove original styling for thin styling - height: 1.2rem; */ - height: 0.4rem; - float: left; - background: repeating-linear-gradient( - 45deg, - rgba(255, 255, 255, 0.2), - rgba(255, 255, 255, 0.2) 10px, - rgba(255, 255, 255, 0.3) 10px, - rgba(255, 255, 255, 0.3) 20px - ) #2979ff; - border-radius: 2px; - } - - .progress { - display: block; - width: 100%; - /* remove original styling for thin styling - margin: 0.5rem 0; - height: 1.2rem; */ - margin-top: 0.9rem; - height: 0.4rem; - background-color: #eeeeee; - position: relative; - border-radius: 2px; - } - - .progress-100plus .progress-bar { - background-color: #00c853; - } - - .progress-80plus .progress-bar { - background-color: #64dd17; - } - - .progress-60plus .progress-bar { - background-color: #fbc02d; - } - - .progress-40plus .progress-bar { - background-color: #ff9100; - } - - .progress-20plus .progress-bar { - background-color: #ff5252; - } - - .progress-0plus .progress-bar { - background-color: #ff1744; - } - -/* Custom admonitions */ -/* See https://squidfunk.github.io/mkdocs-material/reference/admonitions */ -:root { - --md-admonition-icon--heart: url('data:image/svg+xml;charset=utf-8,') -} -.md-typeset .admonition.heart, -.md-typeset details.heart { - border-color: rgb(233, 30, 99); -} -.md-typeset .heart > .admonition-title, -.md-typeset .heart > summary { - background-color: rgba(233, 30, 99, 0.1); -} -.md-typeset .heart > .admonition-title::before, -.md-typeset .heart > summary::before { - background-color: rgb(233, 30, 99); - -webkit-mask-image: var(--md-admonition-icon--heart); - mask-image: var(--md-admonition-icon--heart); -} - -.timetable-explicit-col-widths th:nth-child(1) { width: 4%; } -.timetable-explicit-col-widths th:nth-child(2) { width: 32%; } -.timetable-explicit-col-widths th:nth-child(3) { width: 32%; } -.timetable-explicit-col-widths th:nth-child(4) { width: 32%; } diff --git a/docs/components/helm/controller.md b/docs/components/helm/controller.md deleted file mode 100644 index e35b7a5e..00000000 --- a/docs/components/helm/controller.md +++ /dev/null @@ -1,28 +0,0 @@ -# Helm Controller - -The Helm Controller is a Kubernetes operator, allowing one to declaratively manage Helm chart -releases with Kubernetes manifests. - -![](../../_files/helm-controller.png) - -The desired state of a Helm release is described through a Kubernetes Custom Resource named `HelmRelease`. -Based on the creation, mutation or removal of a `HelmRelease` resource in the cluster, -Helm actions are performed by the controller. - -Features: - -- Watches for `HelmRelease` objects and generates `HelmChart` objects -- Supports `HelmChart` artifacts produced from `HelmRepository` and `GitRepository` sources -- Fetches artifacts produced by [source-controller](../source/controller.md) from `HelmChart` objects -- Watches `HelmChart` objects for revision changes (including semver ranges for charts from `HelmRepository` sources) -- Performs automated Helm actions, including Helm tests, rollbacks and uninstalls -- Offers extensive configuration options for automated remediation (rollback, uninstall, retry) on failed Helm install, upgrade or test actions -- Runs Helm install/upgrade in a specific order, taking into account the depends-on relationship defined in a set of `HelmRelease` objects -- Prunes Helm releases removed from cluster (garbage collection) -- Reports Helm releases statuses (alerting provided by [notification-controller](../notification/controller.md)) -- Built-in Kustomize compatible Helm post renderer, providing support for strategic merge, JSON 6902 and images patches - -Links: - -- Source code [fluxcd/helm-controller](https://github.com/fluxcd/helm-controller) -- Specification [docs](https://github.com/fluxcd/helm-controller/tree/main/docs/spec) diff --git a/docs/components/image/controller.md b/docs/components/image/controller.md deleted file mode 100644 index 8829afad..00000000 --- a/docs/components/image/controller.md +++ /dev/null @@ -1,18 +0,0 @@ -# Image reflector and automation controllers - -The image-reflector-controller and image-automation-controller work together to update a Git -repository when new container images are available. - -- The image-reflector-controller scans image repositories and reflects the image metadata in - Kubernetes resources. -- The image-automation-controller updates YAML files based on the latest images scanned, and commits - the changes to a given Git repository. - -![](../../_files/image-update-automation.png) - -Links: - -- Source code [fluxcd/image-reflector-controller](https://github.com/fluxcd/image-reflector-controller) -- Reflector [specification docs](https://github.com/fluxcd/image-reflector-controller/tree/main/docs/spec) -- Source code [fluxcd/image-automation-controller](https://github.com/fluxcd/image-automation-controller) -- Automation [specification docs](https://github.com/fluxcd/image-automation-controller/tree/main/docs/spec) diff --git a/docs/components/index.md b/docs/components/index.md deleted file mode 100644 index ba58e794..00000000 --- a/docs/components/index.md +++ /dev/null @@ -1,30 +0,0 @@ -# GitOps Toolkit components - -The GitOps Toolkit is the set of APIs and controllers that make up the -runtime for Flux v2. The APIs comprise Kubernetes custom resources, -which can be created and updated by a cluster user, or by other -automation tooling. - -You can use the toolkit to extend Flux, and to build your own systems -for continuous delivery. The [the source-watcher -guide](../dev-guides/source-watcher/) is a good place to start. - -A reference for each component and API type is linked below. - -- [Source Controller](source/controller.md) - - [GitRepository CRD](source/gitrepositories.md) - - [HelmRepository CRD](source/helmrepositories.md) - - [HelmChart CRD](source/helmcharts.md) - - [Bucket CRD](source/buckets.md) -- [Kustomize Controller](kustomize/controller.md) - - [Kustomization CRD](kustomize/kustomization.md) -- [Helm Controller](helm/controller.md) - - [HelmRelease CRD](helm/helmreleases.md) -- [Notification Controller](notification/controller.md) - - [Provider CRD](notification/provider.md) - - [Alert CRD](notification/alert.md) - - [Receiver CRD](notification/receiver.md) -- [Image automation controllers](image/controller.md) - - [ImageRepository CRD](image/imagerepositories.md) - - [ImagePolicy CRD](image/imagepolicies.md) - - [ImageUpdateAutomation CRD](image/imageupdateautomations.md) diff --git a/docs/components/kustomize/controller.md b/docs/components/kustomize/controller.md deleted file mode 100644 index 3d0bafb9..00000000 --- a/docs/components/kustomize/controller.md +++ /dev/null @@ -1,23 +0,0 @@ -# Kustomize Controller - -The kustomize-controller is a Kubernetes operator, -specialized in running continuous delivery pipelines for infrastructure and -workloads defined with Kubernetes manifests and assembled with Kustomize. - -![](../../_files/kustomize-controller.png) - -Features: - -- Reconciles the cluster state from multiple sources (provided by source-controller) -- Generates manifests with Kustomize (from plain Kubernetes yamls or Kustomize overlays) -- Validates manifests against Kubernetes API -- Impersonates service accounts (multi-tenancy RBAC) -- Health assessment of the deployed workloads -- Runs pipelines in a specific order (depends-on relationship) -- Prunes objects removed from source (garbage collection) -- Reports cluster state changes (alerting provided by notification-controller) - -Links: - -- Source code [fluxcd/kustomize-controller](https://github.com/fluxcd/kustomize-controller) -- Specification [docs](https://github.com/fluxcd/kustomize-controller/tree/main/docs/spec) diff --git a/docs/components/notification/controller.md b/docs/components/notification/controller.md deleted file mode 100644 index e3bc97f6..00000000 --- a/docs/components/notification/controller.md +++ /dev/null @@ -1,17 +0,0 @@ -# Notification Controller - -The Notification Controller is a Kubernetes operator, specialized in handling inbound and outbound events. - -![](../../_files/notification-controller.png) - -The controller handles events coming from external systems (GitHub, GitLab, Bitbucket, Harbor, Jenkins, etc) -and notifies the GitOps toolkit controllers about source changes. - -The controller handles events emitted by the GitOps toolkit controllers (source, kustomize, helm) -and dispatches them to external systems (Slack, Microsoft Teams, Discord, Rocker) -based on event severity and involved objects. - -Links: - -- Source code [fluxcd/notification-controller](https://github.com/fluxcd/notification-controller) -- Specification [docs](https://github.com/fluxcd/notification-controller/tree/main/docs/spec) diff --git a/docs/components/source/controller.md b/docs/components/source/controller.md deleted file mode 100644 index a590e454..00000000 --- a/docs/components/source/controller.md +++ /dev/null @@ -1,24 +0,0 @@ -# Source Controller - -The main role of the source management component is to provide a common interface for artifacts acquisition. -The source API defines a set of Kubernetes objects that cluster admins and various automated operators can -interact with to offload the Git and Helm repositories operations to a dedicated controller. - -![](../../_files/source-controller.png) - -Features: - -- Validate source definitions -- Authenticate to sources (SSH, user/password, API token) -- Validate source authenticity (PGP) -- Detect source changes based on update policies (semver) -- Fetch resources on-demand and on-a-schedule -- Package the fetched resources into a well-known format (tar.gz, yaml) -- Make the artifacts addressable by their source identifier (sha, version, ts) -- Make the artifacts available in-cluster to interested 3rd parties -- Notify interested 3rd parties of source changes and availability (status conditions, events, hooks) - -Links: - -- Source code [fluxcd/source-controller](https://github.com/fluxcd/source-controller) -- Specification [docs](https://github.com/fluxcd/source-controller/tree/main/docs/spec) \ No newline at end of file diff --git a/docs/contributing/index.md b/docs/contributing/index.md deleted file mode 120000 index f939e75f..00000000 --- a/docs/contributing/index.md +++ /dev/null @@ -1 +0,0 @@ -../../CONTRIBUTING.md \ No newline at end of file diff --git a/docs/core-concepts/index.md b/docs/core-concepts/index.md deleted file mode 100644 index eae7e56a..00000000 --- a/docs/core-concepts/index.md +++ /dev/null @@ -1,52 +0,0 @@ -# Core Concepts - -!!! note "Work in progress" - This document is a work in progress. - -These are some core concepts in Flux. - -## GitOps - -GitOps is a way of managing your infrastructure and applications so that whole system is described declaratively and version controlled (most likely in a Git repository), and having an automated process that ensures that the deployed environment matches the state specified in a repository. - -For more information, take a look at ["What is GitOps?"](https://www.gitops.tech/#what-is-gitops). - -## Sources - -A *Source* defines the origin of a source and the requirements to obtain -it (e.g. credentials, version selectors). For example, the latest `1.x` tag -available from a Git repository over SSH. - -Sources produce an artifact that is consumed by other Flux elements to perform -actions, like applying the contents of the artifact on the cluster. A source -may be shared by multiple consumers to deduplicate configuration and/or storage. - -The origin of the source is checked for changes on a defined interval, if -there is a newer version available that matches the criteria, a new artifact -is produced. - -All sources are specified as Custom Resources in a Kubernetes cluster, examples -of sources are `GitRepository`, `HelmRepository` and `Bucket` resources. - -For more information, take a look at [the source controller documentation](../components/source/controller.md). - -## Reconciliation - -Reconciliation refers to ensuring that a given state (e.g application running in the cluster, infrastructure) matches a desired state declaratively defined somewhere (e.g a git repository). There are various examples of these in flux e.g: - -- HelmRelease reconciliation: ensures the state of the Helm release matches what is defined in the resource, performs a release if this is not the case (including revision changes of a HelmChart resource). -- Bucket reconciliation: downloads and archives the contents of the declared bucket on a given interval and stores this as an artifact, records the observed revision of the artifact and the artifact itself in the status of resource. -- [Kustomization](#kustomization) reconciliation: ensures the state of the application deployed on a cluster matches resources contained in a git repository. - -## Kustomization - -The kustomization represents a local set of Kubernetes resources that Flux is supposed to reconcile in the cluster. The reconciliation runs every one minute by default but this can be specified in the kustomization. If you make any changes to the cluster using `kubectl edit` or `kubectl patch`, it will be promptly reverted. You either suspend the reconciliation or push your changes to a Git repository. - -For more information, take a look at [this documentation](../components/kustomize/kustomization.md). - -## Bootstrap - -The process of installing the Flux components in a complete GitOps way is called a bootstrap. The manifests are applied to the cluster, a `GitRepository` and `Kustomization` are created for the Flux components, and the manifests are pushed to an existing Git repository (or a new one is created). Flux can manage itself just as it manages other resources. -The bootstrap is done using the `flux` CLI `flux bootstrap`. - -For more information, take a look at [the documentation for the bootstrap command](../cmd/flux_bootstrap.md). diff --git a/docs/dev-guides/debugging.md b/docs/dev-guides/debugging.md deleted file mode 100644 index b0b125cc..00000000 --- a/docs/dev-guides/debugging.md +++ /dev/null @@ -1,42 +0,0 @@ -# Advanced debugging - -This guide covers more advanced debugging topics such as collecting -runtime profiling data from GitOps Toolkit components. - -As a user, this page normally should be a last resort, but you may -be asked by a maintainer to share a [collected profile](#collecting-a-profile) -to debug e.g. performance issues. - -## Pprof - -The [GitOps Toolkit components](../components/index.md) serve [`pprof`](https://golang.org/pkg/net/http/pprof/) -runtime profiling data on their metrics HTTP server (default `:8080`). - -### Endpoints - -| Endpoint | Path | -|-------------|------------------------| -| Index | `/debug/pprof/` | -| CPU profile | `/debug/pprof/profile` | -| Symbol | `/debug/pprof/symbol` | -| Trace | `/debug/pprof/trace` | - -### Collecting a profile - -To collect a profile, port-forward to the component's metrics endpoint -and collect the data from the [endpoint](#endpoints) of choice: - -```console -$ kubectl port-forward -n deploy/ 8080 -$ curl -Sk -v http://localhost:8080/debug/pprof/heap > heap.out -``` - -The collected profile [can be analyzed using `go`](https://blog.golang.org/pprof), -or shared with one of the maintainers. - -## Resource usage - -As `kubectl top` gives a limited (and at times inaccurate) overview of -resource usage, it is often better to make use of the Grafana metrics -to gather insights. See [monitoring](../guides/monitoring.md) for a -guide on how to visualize this data with a Grafana dashboard. diff --git a/docs/dev-guides/source-watcher.md b/docs/dev-guides/source-watcher.md deleted file mode 100644 index 4353d444..00000000 --- a/docs/dev-guides/source-watcher.md +++ /dev/null @@ -1,230 +0,0 @@ -# Watching for source changes - -In this guide you'll be developing a Kubernetes controller with -[Kubebuilder](https://github.com/kubernetes-sigs/kubebuilder) -that subscribes to [GitRepository](../components/source/gitrepositories.md) -events and reacts to revision changes by downloading the artifact produced by -[source-controller](../components/source/controller.md). - -## Prerequisites - -On your dev machine install the following tools: - -* go >= 1.15 -* kubebuilder >= 2.3 -* kind >= 0.8 -* kubectl >= 1.18 -* kustomize >= 3.5 -* docker >= 19.03 - -## Install Flux - -Create a cluster for testing: - -```sh -kind create cluster --name dev -``` - -Install the Flux CLI: - -```sh -curl -s https://fluxcd.io/install.sh | sudo bash -``` - -Verify that your dev machine satisfies the prerequisites with: - -```sh -flux check --pre -``` - -Install source-controller on the dev cluster: - -```sh -flux install \ ---namespace=flux-system \ ---network-policy=false \ ---components=source-controller -``` - -## Clone the sample controller - -You'll be using [fluxcd/source-watcher](https://github.com/fluxcd/source-watcher) as -a template for developing your own controller. The source-watcher was scaffolded with `kubebuilder init`. - -Clone the source-watcher repository: - -```sh -git clone https://github.com/fluxcd/source-watcher -cd source-watcher -``` - -Build the controller: - -```sh -make -``` - -## Run the controller - -Port forward to source-controller artifacts server: - -```sh -kubectl -n flux-system port-forward svc/source-controller 8181:80 -``` - -Export the local address as `SOURCE_HOST`: - -```sh -export SOURCE_HOST=localhost:8181 -``` - -Run source-watcher locally: - -```sh -make run -``` - -Create a Git source: - -```sh -flux create source git test \ ---url=https://github.com/stefanprodan/podinfo \ ---tag=4.0.0 -``` - -The source-watcher should log the revision: - -```console -New revision detected {"gitrepository": "flux-system/test", "revision": "4.0.0/ab953493ee14c3c9800bda0251e0c507f9741408"} -Extracted tarball into /var/folders/77/3y6x_p2j2g9fspdkzjbm5_s40000gn/T/test292235827: 123 files, 29 dirs (32.603415ms) -Processing files... -``` - -Change the Git tag: - -```sh -flux create source git test \ ---url=https://github.com/stefanprodan/podinfo \ ---tag=4.0.1 -``` - -The source-watcher should log the new revision: - -```console -New revision detected {"gitrepository": "flux-system/test", "revision": "4.0.1/113360052b3153e439a0cf8de76b8e3d2a7bdf27"} -``` - -The source-controller reports the revision under `GitRepository.Status.Artifact.Revision` in the format: `/`. - -## How it works - -The [GitRepositoryWatcher](https://github.com/fluxcd/source-watcher/blob/main/controllers/gitrepository_watcher.go) -controller does the following: - -* subscribes to `GitRepository` events -* detects when the Git revision changes -* downloads and extracts the source artifact -* write to stdout the extracted file names - -```go -// GitRepositoryWatcher watches GitRepository objects for revision changes -type GitRepositoryWatcher struct { - client.Client - Scheme *runtime.Scheme -} - -// +kubebuilder:rbac:groups=source.toolkit.fluxcd.io,resources=gitrepositories,verbs=get;list;watch -// +kubebuilder:rbac:groups=source.toolkit.fluxcd.io,resources=gitrepositories/status,verbs=get -func (r *GitRepositoryWatcher) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { - log := logr.FromContext(ctx) - - // get source object - var repository sourcev1.GitRepository - if err := r.Get(ctx, req.NamespacedName, &repository); err != nil { - return ctrl.Result{}, client.IgnoreNotFound(err) - } - - log.Info("New revision detected", "revision", repository.Status.Artifact.Revision) - - // create tmp dir - tmpDir, err := ioutil.TempDir("", repository.Name) - if err != nil { - return ctrl.Result{}, fmt.Errorf("failed to create temp dir, error: %w", err) - } - defer os.RemoveAll(tmpDir) - - // download and extract artifact - summary, err := r.fetchArtifact(ctx, repository, tmpDir) - if err != nil { - log.Error(err, "unable to fetch artifact") - return ctrl.Result{}, err - } - log.Info(summary) - - // list artifact content - files, err := ioutil.ReadDir(tmpDir) - if err != nil { - return ctrl.Result{}, fmt.Errorf("failed to list files, error: %w", err) - } - - // do something with the artifact content - for _, f := range files { - log.Info("Processing " + f.Name()) - } - - return ctrl.Result{}, nil -} - -func (r *GitRepositoryWatcher) SetupWithManager(mgr ctrl.Manager) error { - return ctrl.NewControllerManagedBy(mgr). - For(&sourcev1.GitRepository{}, builder.WithPredicates(GitRepositoryRevisionChangePredicate{})). - Complete(r) -} -``` - -To add the watcher to an existing project, copy the controller and the revision change predicate to your `controllers` dir: - -* [gitrepository_watcher.go](https://github.com/fluxcd/source-watcher/blob/main/controllers/gitrepository_watcher.go) -* [gitrepository_predicate.go](https://github.com/fluxcd/source-watcher/blob/main/controllers/gitrepository_predicate.go) - -In your `main.go` init function, register the Source API schema: - -```go -import sourcev1 "github.com/fluxcd/source-controller/api/v1beta1" - -func init() { - _ = clientgoscheme.AddToScheme(scheme) - _ = sourcev1.AddToScheme(scheme) - - // +kubebuilder:scaffold:scheme -} -``` - -Start the controller in the main function: - -```go -func main() { - - if err = (&controllers.GitRepositoryWatcher{ - Client: mgr.GetClient(), - Scheme: mgr.GetScheme(), - }).SetupWithManager(mgr); err != nil { - setupLog.Error(err, "unable to create controller", "controller", "GitRepositoryWatcher") - os.Exit(1) - } - -} -``` - -Note that the watcher controller depends on Kubernetes client-go >= 1.20. -Your `go.mod` should require controller-runtime v0.8 or newer: - -```go -require ( - k8s.io/apimachinery v0.20.2 - k8s.io/client-go v0.20.2 - sigs.k8s.io/controller-runtime v0.8.3 -) -``` - -That's it! Happy hacking! diff --git a/docs/faq/index.md b/docs/faq/index.md deleted file mode 100644 index e4384476..00000000 --- a/docs/faq/index.md +++ /dev/null @@ -1,273 +0,0 @@ -# Frequently asked questions - -## Kustomize questions - -### Are there two Kustomization types? - -Yes, the `kustomization.kustomize.toolkit.fluxcd.io` is a Kubernetes -[custom resource](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) -while `kustomization.kustomize.config.k8s.io` is the type used to configure a -[Kustomize overlay](https://kubectl.docs.kubernetes.io/references/kustomize/). - -The `kustomization.kustomize.toolkit.fluxcd.io` object refers to a `kustomization.yaml` -file path inside a Git repository or Bucket source. - -### How do I use them together? - -Assuming an app repository with `./deploy/prod/kustomization.yaml`: - -```yaml -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: - - deployment.yaml - - service.yaml - - ingress.yaml -``` - -Define a source of type `gitrepository.source.toolkit.fluxcd.io` -that pulls changes from the app repository every 5 minutes inside the cluster: - -```yaml -apiVersion: source.toolkit.fluxcd.io/v1beta1 -kind: GitRepository -metadata: - name: my-app - namespace: default -spec: - interval: 5m - url: https://github.com/my-org/my-app - ref: - branch: main -``` - -Then define a `kustomization.kustomize.toolkit.fluxcd.io` that uses the `kustomization.yaml` -from `./deploy/prod` to determine which resources to create, update or delete: - -```yaml -apiVersion: kustomize.toolkit.fluxcd.io/v1beta1 -kind: Kustomization -metadata: - name: my-app - namespace: default -spec: - interval: 15m - path: "./deploy/prod" - prune: true - sourceRef: - kind: GitRepository - name: my-app -``` - -### What is a Kustomization reconciliation? - -In the above example, we pull changes from Git every 5 minutes, -and a new commit will trigger a reconciliation of -all the `Kustomization` objects using that source. - -Depending on your configuration, a reconciliation can mean: - -* generating a kustomization.yaml file in the specified path -* building the kustomize overlay -* decrypting secrets -* validating the manifests with client or server-side dry-run -* applying changes on the cluster -* health checking of deployed workloads -* garbage collection of resources removed from Git -* issuing events about the reconciliation result -* recoding metrics about the reconciliation process - -The 15 minutes reconciliation interval, is the interval at which you want to undo manual changes -.e.g. `kubectl set image deployment/my-app` by reapplying the latest commit on the cluster. - -Note that a reconciliation will override all fields of a Kubernetes object, that diverge from Git. -For example, you'll have to omit the `spec.replicas` field from your `Deployments` YAMLs if you -are using a `HorizontalPodAutoscaler` that changes the replicas in-cluster. - -### Can I use repositories with plain YAMLs? - -Yes, you can specify the path where the Kubernetes manifests are, -and kustomize-controller will generate a `kustomization.yaml` if one doesn't exist. - -Assuming an app repository with the following structure: - -``` -├── deploy -│   └── prod -│   ├── .yamllint.yaml -│   ├── deployment.yaml -│   ├── service.yaml -│   └── ingress.yaml -└── src -``` - -Create a `GitRepository` definition and exclude all the files that are not Kubernetes manifests: - -```yaml -apiVersion: source.toolkit.fluxcd.io/v1beta1 -kind: GitRepository -metadata: - name: my-app - namespace: default -spec: - interval: 5m - url: https://github.com/my-org/my-app - ref: - branch: main - ignore: | - # exclude all - /* - # include deploy dir - !/deploy - # exclude non-Kubernetes YAMLs - /deploy/**/.yamllint.yaml -``` - -Then create a `Kustomization` definition to reconcile the `./deploy/prod` dir: - -```yaml -apiVersion: kustomize.toolkit.fluxcd.io/v1beta1 -kind: Kustomization -metadata: - name: my-app - namespace: default -spec: - interval: 15m - path: "./deploy/prod" - prune: true - sourceRef: - kind: GitRepository - name: my-app -``` - -With the above configuration, source-controller will pull the Kubernetes manifests -from the app repository and kustomize-controller will generate a -`kustomization.yaml` including all the resources found with `./deploy/prod/**/*.yaml`. - -The kustomize-controller creates `kustomization.yaml` files similar to: - -```sh -cd ./deploy/prod && kustomize create --autodetect --recursive -``` - -### What is the behavior of Kustomize used by Flux - -We referred to the Kustomization CLI flags here, so that you can replicate the same behavior using the CLI. -The behavior of Kustomize used by the controller is currently configured as following: - -- `--allow_id_changes` is set to false, so it does not change any resource IDs. -- `--enable_kyaml` is disabled by default, so it currently used `k8sdeps` to process YAMLs. -- `--enable_alpha_plugins` is disabled by default, so it uses only the built-in plugins. -- `--load_restrictor` is set to `LoadRestrictionsNone`, so it allows loading files outside the dir containing `kustomization.yaml`. -- `--reorder` resources is done in the `legacy` mode, so the output will have namespaces and cluster roles/role bindings first, CRDs before CRs, and webhooks last. - -!!! hint "`kustomization.yaml` validation" - To validate changes before committing and/or merging, [a validation - utility script is available](https://github.com/fluxcd/flux2-kustomize-helm-example/blob/main/scripts/validate.sh), - it runs `kustomize` locally or in CI with the same set of flags as - the controller and validates the output using `kubeval`. - -## Helm questions - -### How to debug "not ready" errors? - -Misconfiguring the `HelmRelease.spec.chart`, like a typo in the chart name, version or chart source URL -would result in a "HelmChart is not ready" error displayed by: - -```console -$ flux get helmreleases --all-namespaces -NAMESPACE NAME READY MESSAGE -default podinfo False HelmChart 'default/default-podinfo' is not ready -``` - -In order to get to the root cause, first make sure the source e.g. the `HelmRepository` -is configured properly and has access to the remote `index.yaml`: - -```console -$ flux get sources helm --all-namespaces -NAMESPACE NAME READY MESSAGE -default podinfo False failed to fetch https://stefanprodan.github.io/podinfo2/index.yaml : 404 Not Found -``` - -If the source is `Ready`, then the error must be caused by the chart, -for example due to an invalid chart name or non-existing version: - -```console -$ flux get sources chart --all-namespaces -NAMESPACE NAME READY MESSAGE -default default-podinfo False no chart version found for podinfo-9.0.0 -``` - -### Can I use Flux HelmReleases without GitOps? - -Yes, you can install the Flux components directly on a cluster -and manage Helm releases with `kubectl`. - -Install the controllers needed for Helm operations with `flux`: - -```sh -flux install \ ---namespace=flux-system \ ---network-policy=false \ ---components=source-controller,helm-controller -``` - -Create a Helm release with `kubectl`: - -```sh -cat << EOF | kubectl apply -f - ---- -apiVersion: source.toolkit.fluxcd.io/v1beta1 -kind: HelmRepository -metadata: - name: bitnami - namespace: flux-system -spec: - interval: 30m - url: https://charts.bitnami.com/bitnami ---- -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: metrics-server - namespace: kube-system -spec: - interval: 60m - releaseName: metrics-server - chart: - spec: - chart: metrics-server - version: "^5.x" - sourceRef: - kind: HelmRepository - name: bitnami - namespace: flux-system - values: - apiService: - create: true -EOF -``` - -Based on the above definition, Flux will upgrade the release automatically -when Bitnami publishes a new version of the metrics-server chart. - -## Flux v1 vs v2 questions - -### What are the differences between v1 and v2? - -Flux v1 is a monolithic do-it-all operator; -Flux v2 separates the functionalities into specialized controllers, collectively called the GitOps Toolkit. - -You can find a detailed comparison of Flux v1 and v2 features in the [migration FAQ](../guides/faq-migration.md). - -### How can I migrate from v1 to v2? - -The Flux community has created guides and example repositories -to help you migrate to Flux v2: - -- [Migrate from Flux v1](https://toolkit.fluxcd.io/guides/flux-v1-migration/) -- [Migrate from `.flux.yaml` and kustomize](https://toolkit.fluxcd.io/guides/flux-v1-migration/#flux-with-kustomize) -- [Migrate from Flux v1 automated container image updates](https://toolkit.fluxcd.io/guides/flux-v1-automation-migration/) -- [How to manage multi-tenant clusters with Flux v2](https://github.com/fluxcd/flux2-multi-tenancy) -- [Migrate from Helm Operator to Flux v2](https://toolkit.fluxcd.io/guides/helm-operator-migration/) -- [How to structure your HelmReleases](https://github.com/fluxcd/flux2-kustomize-helm-example) diff --git a/docs/get-started/index.md b/docs/get-started/index.md deleted file mode 100644 index 64826125..00000000 --- a/docs/get-started/index.md +++ /dev/null @@ -1,299 +0,0 @@ -# Get started with Flux v2 - -!!! note "Basic knowledge" - This guide assumes you have some understanding of the core concepts and have read the introduction to Flux. - The core concepts used in this guide are [GitOps](../core-concepts/index.md#gitops), - [Sources](../core-concepts/index.md#sources), [Kustomization](../core-concepts/index.md#kustomization). - -In this tutorial, you will deploy an application to a kubernetes cluster with Flux -and manage the cluster in a complete GitOps manner. -You'll be using a dedicated Git repository e.g. `fleet-infra` to manage your Kubernetes clusters. - -## Prerequisites - -In order to follow the guide, you will need a Kubernetes cluster version 1.16 or newer and kubectl version 1.18. -For a quick local test, you can use [Kubernetes kind](https://kind.sigs.k8s.io/docs/user/quick-start/). -Any other Kubernetes setup will work as well though. - -Flux is installed in a GitOps way and its manifest will be pushed to the repository, -so you will also need a GitHub account and a -[personal access token](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line) -that can create repositories (check all permissions under `repo`) to enable Flux do this. - -Export your GitHub personal access token and username: - -```sh -export GITHUB_TOKEN= -export GITHUB_USER= -``` - -## Install the Flux CLI - -To install the latest `flux` release on MacOS and Linux using -[Homebrew](https://brew.sh/) run: - -```sh -brew install fluxcd/tap/flux -``` - -Or install `flux` by downloading precompiled binaries using a Bash script: - -```sh -curl -s https://fluxcd.io/install.sh | sudo bash -``` - -The install script downloads the flux binary to `/usr/local/bin`. - -If using Arch Linux, install the latest stable version from **AUR** using -either [flux-bin](https://aur.archlinux.org/packages/flux-bin) (pre-built -binary) or [flux-go](https://aur.archlinux.org/packages/flux-go) (locally built -binary). - -Binaries for **macOS**, **Windows** and **Linux** AMD64/ARM are available for download on the -[release page](https://github.com/fluxcd/flux2/releases). - -To configure your shell to load `flux` [bash completions](../cmd/flux_completion_bash.md) add to your profile: - -```sh -# ~/.bashrc or ~/.bash_profile -. <(flux completion bash) -``` - -[`zsh`](../cmd/flux_completion_zsh.md), [`fish`](../cmd/flux_completion_fish.md), and [`powershell`](../cmd/flux_completion_powershell.md) are also supported with their own sub-commands. - -## Install Flux components - -Create the cluster using Kubernetes kind or set the kubectl context to an existing cluster: - -```sh -kind create cluster -kubectl cluster-info -``` - -Verify that your staging cluster satisfies the prerequisites with: - -```console -$ flux check --pre -► checking prerequisites -✔ kubectl 1.18.3 >=1.18.0 -✔ kubernetes 1.18.2 >=1.16.0 -✔ prerequisites checks passed -``` - -Run the bootstrap command: - -```sh -flux bootstrap github \ - --owner=$GITHUB_USER \ - --repository=fleet-infra \ - --branch=main \ - --path=./clusters/my-cluster \ - --personal -``` - -!!! hint "Multi-arch images" - The component images are published as [multi-arch container images](https://docs.docker.com/docker-for-mac/multi-arch/) - with support for Linux `amd64`, `arm64` and `armv7` (e.g. 32bit Raspberry Pi) - architectures. - -The bootstrap command creates a repository if one doesn't exist, -commits the manifests for the Flux components to the default branch at the specified path, -and installs the Flux components. -Then it configures the target cluster to synchronize with the specified path inside the repository. - -If you wish to create the repository under a GitHub organization: - -```sh -flux bootstrap github \ - --owner= \ - --repository= \ - --branch= \ - --team= \ - --team= \ - --path=./clusters/my-cluster -``` - -Example output: - -```console -$ flux bootstrap github --owner=gitopsrun --team=devs --repository=fleet-infra --path=./clusters/my-cluster -► connecting to github.com -✔ repository created -✔ devs team access granted -✔ repository cloned -✚ generating manifests -✔ components manifests pushed -► installing components in flux-system namespace -deployment "source-controller" successfully rolled out -deployment "kustomize-controller" successfully rolled out -deployment "helm-controller" successfully rolled out -deployment "notification-controller" successfully rolled out -✔ install completed -► configuring deploy key -✔ deploy key configured -► generating sync manifests -✔ sync manifests pushed -► applying sync manifests -◎ waiting for cluster sync -✔ bootstrap finished -``` - -If you prefer GitLab, export `GITLAB_TOKEN` env var and -use the command [flux bootstrap gitlab](../guides/installation.md#gitlab-and-gitlab-enterprise). - -!!! hint "Idempotency" - It is safe to run the bootstrap command as many times as you want. - If the Flux components are present on the cluster, - the bootstrap command will perform an upgrade if needed. - You can target a specific Flux [version](https://github.com/fluxcd/flux2/releases) - with `flux bootstrap --version=`. - -## Clone the git repository - -We are going to drive app deployments in a GitOps manner, -using the Git repository as the desired state for our cluster. -Instead of applying the manifests directly to the cluster, -Flux will apply it for us instead. - -Therefore, we need to clone the repository to our local machine: - -```sh -git clone https://github.com/$GITHUB_USER/fleet-infra -cd fleet-infra -``` - -## Add podinfo repository to Flux - -We will be using a public repository [github.com/stefanprodan/podinfo](https://github.com/stefanprodan/podinfo), -podinfo is a tiny web application made with Go. - -Create a [GitRepository](../components/source/gitrepositories/) -manifest pointing to podinfo repository's master branch: - -```sh -flux create source git podinfo \ - --url=https://github.com/stefanprodan/podinfo \ - --branch=master \ - --interval=30s \ - --export > ./clusters/my-cluster/podinfo-source.yaml -``` - -The above command generates the following manifest: - -```yaml -apiVersion: source.toolkit.fluxcd.io/v1beta1 -kind: GitRepository -metadata: - name: podinfo - namespace: flux-system -spec: - interval: 30s - ref: - branch: master - url: https://github.com/stefanprodan/podinfo -``` - -Commit and push it to the `fleet-infra` repository: - -```sh -git add -A && git commit -m "Add podinfo GitRepository" -git push -``` - -## Deploy podinfo application - -We will create a Flux [Kustomization](../components/kustomize/kustomization/) manifest for podinfo. -This configures Flux to build and apply the [kustomize](https://github.com/stefanprodan/podinfo/tree/master/kustomize) -directory located in the podinfo repository. - -```sh -flux create kustomization podinfo \ - --source=podinfo \ - --path="./kustomize" \ - --prune=true \ - --validation=client \ - --interval=5m \ - --export > ./clusters/my-cluster/podinfo-kustomization.yaml -``` - -The above command generates the following manifest: - -```yaml -apiVersion: kustomize.toolkit.fluxcd.io/v1beta1 -kind: Kustomization -metadata: - name: podinfo - namespace: flux-system -spec: - interval: 5m0s - path: ./kustomize - prune: true - sourceRef: - kind: GitRepository - name: podinfo - validation: client -``` - -Commit and push the `Kustomization` manifest to the repository: - -```sh -git add -A && git commit -m "Add podinfo Kustomization" -git push -``` - -The structure of your repository should look like this: - -``` -fleet-infra -└── clusters/ - └── my-cluster/ - ├── flux-system/ - │ ├── gotk-components.yaml - │ ├── gotk-sync.yaml - │ └── kustomization.yaml - ├── podinfo-kustomization.yaml - └── podinfo-source.yaml -``` - -## Watch Flux sync the application - -In about 30s the synchronization should start: - -```console -$ watch flux get kustomizations -NAME READY MESSAGE -flux-system True Applied revision: main/fc07af652d3168be329539b30a4c3943a7d12dd8 -podinfo True Applied revision: master/855f7724be13f6146f61a893851522837ad5b634 -``` - -When the synchronization finishes you can check that podinfo has been deployed on your cluster: - -```console -$ kubectl -n default get deployments,services -NAME READY UP-TO-DATE AVAILABLE AGE -deployment.apps/podinfo 2/2 2 2 108s - -NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE -service/podinfo ClusterIP 10.100.149.126 9898/TCP,9999/TCP 108s -``` - -!!! tip - From this moment forward, any changes made to the podinfo - Kubernetes manifests in the master branch will be synchronised with your cluster. - -If a Kubernetes manifest is removed from the podinfo repository, Flux will remove it from your cluster. -If you delete a `Kustomization` from the fleet-infra repository, Flux will remove all Kubernetes objects that -were previously applied from that `Kustomization`. - -If you alter the podinfo deployment using `kubectl edit`, the changes will be reverted to match -the state described in Git. When dealing with an incident, you can pause the reconciliation of a -kustomization with `flux suspend kustomization `. Once the debugging session -is over, you can re-enable the reconciliation with `flux resume kustomization `. - -## Multi-cluster Setup - -To use Flux to manage more than one cluster or promote deployments from staging to production, take a look at the -two approaches in the repositories listed below. - -1. [https://github.com/fluxcd/flux2-kustomize-helm-example](https://github.com/fluxcd/flux2-kustomize-helm-example) -2. [https://github.com/fluxcd/flux2-multi-tenancy](https://github.com/fluxcd/flux2-multi-tenancy) \ No newline at end of file diff --git a/docs/guides/faq-migration.md b/docs/guides/faq-migration.md deleted file mode 100644 index 2570be5f..00000000 --- a/docs/guides/faq-migration.md +++ /dev/null @@ -1,92 +0,0 @@ -## Flux v1 vs v2 questions - -### What does Flux v2 mean for Flux? - -Flux v1 is a monolithic do-it-all operator; Flux v2 separates the functionalities into specialized controllers, collectively called the GitOps Toolkit. - -You can install and operate Flux v2 simply using the `flux` command. You can easily pick and choose the functionality you need and extend it to serve your own purposes. - -The timeline we are looking at right now is: - -1. Put Flux v1 into maintenance mode (no new features being added; bugfixes and CVEs patched only). -1. Continue work on the [Flux v2 roadmap](https://toolkit.fluxcd.io/roadmap/). -1. We will provide transition guides for specific user groups, e.g. users of Flux v1 in read-only mode, or of Helm Operator v1, etc. once the functionality is integrated into Flux v2 and it's deemed "ready". -1. Once the use-cases of Flux v1 are covered, we will continue supporting Flux v1 for 6 months. This will be the transition period before it's considered unsupported. - -### Why did you rewrite Flux? - -Flux v2 implements its functionality in individual controllers, which allowed us to address long-standing feature requests much more easily. - -By basing these controllers on modern Kubernetes tooling (`controller-runtime` libraries), they can be dynamically configured with Kubernetes custom resources either by cluster admins or by other automated tools -- and you get greatly increased observability. - -This gave us the opportunity to build Flux v2 with the top Flux v1 feature requests in mind: - -- Supporting multiple source Git repositories -- Operational insight through health checks, events and alerts -- Multi-tenancy capabilities, like applying each source repository with its own set of permissions - -On top of that, testing the individual components and understanding the codebase becomes a lot easier. - -### What are significant new differences between Flux v1 and Flux v2? - -#### Reconciliation - -Flux v1 | Flux v2 ----------------------------------- | ---------------------------------- -Limited to a single Git repository | Multiple Git repositories -Declarative config via arguments in the Flux deployment | `GitRepository` custom resource, which produces an artifact which can be reconciled by other controllers -Follow `HEAD` of Git branches | Supports Git branches, pinning on commits and tags, follow SemVer tag ranges -Suspending of reconciliation by downscaling Flux deployment | Reconciliation can be paused per resource by suspending the `GitRepository` -Credentials config via Arguments and/or Secret volume mounts in the Flux pod | Credentials config per `GitRepository` resource: SSH private key, HTTP/S username/password/token, OpenPGP public keys - -#### `kustomize` support - -Flux v1 | Flux v2 ----------------------------------- | ---------------------------------- -Declarative config through `.flux.yaml` files in the Git repository | Declarative config through a `Kustomization` custom resource, consuming the artifact from the GitRepository -Manifests are generated via shell exec and then reconciled by `fluxd` | Generation, server-side validation, and reconciliation is handled by a specialised `kustomize-controller` -Reconciliation using the service account of the Flux deployment | Support for service account impersonation -Garbage collection needs cluster role binding for Flux to query the Kubernetes discovery API | Garbage collection needs no cluster role binding or access to Kubernetes discovery API -Support for custom commands and generators executed by fluxd in a POSIX shell | No support for custom commands - -#### Helm integration - -Flux v1 | Flux v2 ----------------------------------- | ---------------------------------- -Declarative config in a single Helm custom resource | Declarative config through `HelmRepository`, `GitRepository`, `Bucket`, `HelmChart` and `HelmRelease` custom resources -Chart synchronisation embedded in the operator | Extensive release configuration options, and a reconciliation interval per source -Support for fixed SemVer versions from Helm repositories | Support for SemVer ranges for `HelmChart` resources -Git repository synchronisation on a global interval | Planned support for charts from GitRepository sources -Limited observability via the status object of the HelmRelease resource | Better observability via the HelmRelease status object, Kubernetes events, and notifications -Resource heavy, relatively slow | Better performance -Chart changes from Git sources are determined from Git metadata | Chart changes must be accompanied by a version bump in `Chart.yaml` to produce a new artifact - -#### Notifications, webhooks, observability - -Flux v1 | Flux v2 ----------------------------------- | ---------------------------------- -Emits "custom Flux events" to a webhook endpoint | Emits Kubernetes events for included custom resources -RPC endpoint can be configured to a 3rd party solution like FluxCloud to be forwarded as notifications to e.g. Slack | Flux v2 components can be configured to POST the events to a `notification-controller` endpoint. Selective forwarding of POSTed events as notifications using `Provider` and `Alert` custom resources. -Webhook receiver is a side-project | Webhook receiver, handling a wide range of platforms, is included -Unstructured logging | Structured logging for all components -Custom Prometheus metrics | Generic / common `controller-runtime` Prometheus metrics - -### Are there any breaking changes? - -- In Flux v1 Kustomize support was implemented through `.flux.yaml` files in the Git repository. As indicated in the comparison table above, while this approach worked, we found it to be error-prone and hard to debug. The new [Kustomization CR](https://github.com/fluxcd/kustomize-controller/blob/master/docs/spec/v1alpha1/kustomization.md) should make troubleshooting much easier. Unfortunately we needed to drop the support for custom commands as running arbitrary shell scripts in-cluster poses serious security concerns. -- Helm users: we redesigned the `HelmRelease` API and the automation will work quite differently, so upgrading to `HelmRelease` v2 will require a little work from you, but you will gain more flexibility, better observability and performance. - -### Is the GitOps Toolkit related to the GitOps Engine? - -In an announcement in August 2019, the expectation was set that the Flux project would integrate the GitOps Engine, then being factored out of ArgoCD. Since the result would be backward-incompatible, it would require a major version bump: Flux v2. - -After experimentation and considerable thought, we (the maintainers) have found a path to Flux v2 that we think better serves our vision of GitOps: the GitOps Toolkit. In consequence, we do not now plan to integrate GitOps Engine into Flux. - -### How can I get involved? - -There are a variety of ways and we look forward to having you on board building the future of GitOps together: - -- [Discuss the direction](https://github.com/fluxcd/flux2/discussions) of Flux v2 with us -- Join us in #flux-dev on the [CNCF Slack](https://slack.cncf.io) -- Check out our [contributor docs](https://toolkit.fluxcd.io/contributing/) -- Take a look at the [roadmap for Flux v2](https://toolkit.fluxcd.io/roadmap/) diff --git a/docs/guides/flux-v1-automation-migration.md b/docs/guides/flux-v1-automation-migration.md deleted file mode 100644 index 7a8d6200..00000000 --- a/docs/guides/flux-v1-automation-migration.md +++ /dev/null @@ -1,751 +0,0 @@ - -# Migrating image update automation to Flux v2 - -"Image Update Automation" is a process in which Flux makes commits to your Git repository when it -detects that there is a new image to be used in a workload (e.g., a Deployment). In Flux v2 this -works quite differently to how it worked in Flux v1. This guide explains the differences and how to -port your cluster configuration from v1 to v2. There is also a [tutorial for using image update -automation with a new cluster][image-update-tute]. - -## Overview of changes between v1 and v2 - -In Flux v1, image update automation (from here, just "automation") was built into the Flux daemon, -which scanned everything it found in the cluster and updated the Git repository it was syncing. - -In Flux v2, - - - automation is controlled with custom resources, not annotations - - ordering images by build time is not supported (there is [a section - below](#how-to-migrate-annotations-to-image-policies) explaining what to do instead) - - the fields to update in files are marked explicitly, rather than inferred from annotations. - -#### Automation is now controlled by custom resources - -Flux v2 breaks down the functions in Flux v1's daemon into controllers, with each having a specific -area of concern. Automation is now done by two controllers: one which scans image repositories to -find the latest images, and one which uses that information to commit changes to git -repositories. These are in turn separate to the syncing controllers. - -This means that automation in Flux v2 is governed by custom resources. In Flux v1 the daemon scanned -everything, and looked at annotations on the resources to determine what to update. Automation in v2 -is more explicit than in v1 -- you have to mention exactly which images you want to be scanned, and -which fields you want to be updated. - -A consequence of using custom resources is that with Flux v2 you can have an arbitrary number of -automations, targeting different Git repositories if you wish, and updating different sets of -images. If you run a multitenant cluster, the tenants can define automation in their own namespaces, -for their own Git repositories. - -#### Selecting an image is more flexible - -The ways in which you choose to select an image have changed. In Flux v1, you generally supply a -filter pattern, and the latest image is the image with the most recent build time out of those -filtered. In Flux v2, you choose an ordering, and separately specify a filter for the tags to -consider. These are dealt with in detail below. - -Selecting an image by build time is no longer supported. This is the implicit default in Flux v1. In -Flux v2, you will need to tag images so that they sort in the order you would like -- [see -below](#how-to-use-sortable-image-tags) for how to do this conveniently. - -#### Fields to update are explicitly marked - -Lastly, in Flux v2 the fields to update in files are marked explicitly. In Flux v1 they are inferred -from the type of the resource, along with the annotations given. The approach in Flux v1 was limited -to the types that had been programmed in, whereas Flux v2 can update any Kubernetes object (and some -files that aren't Kubernetes objects, like `kustomization.yaml`). - -## Preparing for migration - -It is best to complete migration of your system to _Flux v2 syncing_ first, using the [Flux v1 -migration guide][flux-v1-migration]. This will remove Flux v1 from the system, along with its image -automation. You can then reintroduce automation with Flux v2 by following the instructions in this -guide. - -It is safe to leave the annotations for Flux v1 in files while you reintroduce automation, because -Flux v2 will ignore them. - -To migrate to Flux v2 automation, you will need to do three things: - - - make sure you are running the automation controllers; then, - - declare the automation with an `ImageUpdateAutomation` object; and, - - migrate each manifest by translate Flux v1 annotations to Flux v2 `ImageRepository` and - `ImagePolicy` objects, and putting update markers in the manifest file. - -### Where to keep `ImageRepository`, `ImagePolicy` and `ImageUpdateAutomation` manifests - -This guide assumes you want to manage automation itself via Flux. In the following sections, -manifests for the objects controlling automation are saved in files, committed to Git, and applied -in the cluster with Flux. - -A Flux v2 installation will typically have a Git repository structured like this: - -``` -<...>/flux-system/ - gotk-components.yaml - gotk-sync.yaml -<...>/app/ - # deployments etc. -``` - -The `<...>` is the path to a particular cluster's definitions -- this may be simply `.`, or -something like `clusters/my-cluster`. To get the files in the right place, set a variable for this -path: - -```bash -$ CLUSTER_PATH=<...> # e.g., "." or "clusters/my-cluster", or ... -$ AUTO_PATH=$CLUSTER_PATH/automation -$ mkdir ./$AUTO_PATH -``` - -The file `$CLUSTER_PATH/flux-system/gotk-components.yaml` has definitions of all the Flux v2 -controllers and custom resource definitions. The file `gotk-sync.yaml` defines a `GitRepository` and -a `Kustomization` which will sync manifests under `$CLUSTER_PATH/`. - -To these will be added definitions for automation objects. This guide puts manifest files for -automation in `$CLUSTER_PATH/automation/`, but there is no particular structure required -by Flux. The automation objects do not have to be in the same namespace as the objects to be -updated. - -#### Migration on a branch - -This guide assumes you will commit changes to the branch that is synced by Flux, as this is the -simplest way to understand. - -It may be less disruptive to put migration changes on a branch, then merging when you have completed -the migration. You would need to either change the `GitRepository` to point at the migration branch, -or have separate `GitRepository` and `Kustomization` objects for the migrated parts of your Git -repository. The main thing to avoid is syncing the same objects in two different places; e.g., avoid -having Kustomizations that sync both the unmigrated and migrated application configuration. - -### Installing the command-line tool `flux` - -The command-line tool `flux` will be used below; see [these instructions][install-cli] for how to -install it. - -## Running the automation controllers - -The first thing to do is to deploy the automation controllers to your cluster. The best way to -proceed will depend on the approach you took when following the [Flux read-only migration -guide][flux-v1-migration]. - - - If you used `flux bootstrap` to create a new Git repository, then ported your cluster - configuration to that repository, use [After `flux bootstrap`](#after-flux-bootstrap); - - If you used `flux install` to install the controllers directly, use [After migrating Flux v1 in - place](#after-migrating-flux-v1-in-place); - - If you used `flux install` and exported the configuration to a file, use [After committing Flux - v2 configuration to Git](#after-committing-a-flux-v2-configuration-to-git). - -### After `flux bootstrap` - -When starting from scratch, you are likely to have used `flux bootstrap`. Rerun the command, and -include the image automation controllers in your starting configuration with the flag -`--components-extra`, [as shown in the installation guide][flux-bootstrap]. - -This will commit changes to your Git repository and sync them in the cluster. - -```bash -flux check --components-extra=image-reflector-controller,image-automation-controller -``` - -Now jump to the section [Migrating each manifest to Flux v2](#migrating-each-manifest-to-flux-v2). - -### After migrating Flux v1 in place - -If you followed the [Flux v1 migration guide][flux-v1-migration], you will already be running some -Flux v2 controllers. The automation controllers are currently considered an optional extra to those, -but are installed and run in much the same way. You may or may not have committed the Flux v2 -configuration to your Git repository. If you did, go to the section [After committing Flux v2 -configuration to Git](#after-committing-flux-v2-configuration-to-git). - -If _not_, you will be installing directly to the cluster: - -```bash -$ flux install --components-extra=image-reflector-controller,image-automation-controller -``` - -It is safe to repeat the installation command, or to run it after using `flux bootstrap`, so long as -you repeat any arguments you supplied the first time. - -Now jump ahead to [Migrating each manifest to Flux v2](#migrating-each-manifest-to-flux-v2). - -#### After committing a Flux v2 configuration to Git - -If you added the Flux v2 configuration to your git repository, assuming it's in the file -`$CLUSTER_PATH/flux-system/gotk-components.yaml` as used in the guide, use `flux install` and write -it back to that file: - -```bash -$ flux install \ - --components-extra=image-reflector-controller,image-automation-controller \ - --export > "$CLUSTER_PATH/flux-system/gotk-components.yaml" -``` - -Commit changes to the `$CLUSTER_PATH/flux-system/gotk-components.yaml` file and sync the cluster: - -```bash -$ git add $CLUSTER_PATH/flux-system/gotk-components.yaml -$ git commit -s -m "Add image automation controllers to Flux config" -$ git push -$ flux reconcile kustomization --with-source flux-system -``` - -## Controlling automation with an `ImageUpdateAutomation` object - -In Flux v1, automation was run by default. With Flux v2, you have to explicitly tell the controller -which Git repository to update and how to do so. These are defined in an `ImageUpdateAutomation` -object; but first, you need a `GitRepository` with write access, for the automation to use. - -If you followed the [Flux v1 read-only migration guide][flux-v1-migration], you will have a -`GitRepository` defined in the namespace `flux-system`, for syncing to use. This `GitRepository` -will have _read_ access to the Git repository by default, and automation needs _write_ access to -push commits. - -To give it write access, you can replace the secret it refers to. How to do this will depend on what -kind of authentication you used to install Flux v2. - -### Replacing the Git credentials secret - -The secret with Git credentials will be named in the `.spec.secretRef.name` field of the -`GitRepository` object. Say your `GitRepository` is in the _namespace_ `flux-system` and _named_ -`flux-system` (these are the defaults if you used `flux bootstrap`); you can retrieve the secret -name and Git URL with: - -```bash -$ FLUX_NS=flux-system -$ GIT_NAME=flux-system -$ SECRET_NAME=$(kubectl -n $FLUX_NS get gitrepository $GIT_NAME -o jsonpath={.spec.secretRef.name}) -$ GIT_URL=$(kubectl -n $FLUX_NS get gitrepository $GIT_NAME -o jsonpath='{.spec.url}') -$ echo $SECRET_NAME $GIT_URL # make sure they have values -``` - -If you're not sure which kind of credentials you're using, look at the secret: - -```bash -$ kubectl -n $FLUX_NS describe secret $SECRET_NAME -``` - -An entry at `.data.identity` indicates that you are using an SSH key (the [first -section](#replacing-an-ssh-key-secret) below); an entry at `.data.username` indicates you are using -a username and password or token (the [second section](#replacing-a-usernamepassword-secret) -below). - -#### Replacing an SSH key secret - -When using an SSH (deploy) key, create a new key: - -```bash -$ flux create secret git -n $FLUX_NS $SECRET_NAME --url=$GIT_URL -``` - -You will need to copy the public key that's printed out, and install that as a deploy key for your -Git repo **making sure to check the 'All write access' box** (or otherwise give the key write -permissions). Remove the old deploy key. - -#### Replacing a username/password secret - -When you're using a username and password to authenticate, you may be able to change the permissions -associated with that account. - -If not, you will need to create a new access token (e.g., ["Personal Access Token"][github-pat] in -GitHub). In this case, once you have the new token you can replace the secret with the following: - -```bash -$ flux create secret git -n $FLUX_NS $SECRET_NAME \ - --username --password --url $GIT_URL -``` - -#### Checking the new credentials - -To check if your replaced credentials still work, try syncing the `GitRepository` object: - -```bash -$ flux reconcile source git -n $FLUX_NS $GIT_NAME -► annotating GitRepository flux-system in flux-system namespace -✔ GitRepository annotated -◎ waiting for GitRepository reconciliation -✔ GitRepository reconciliation completed -✔ fetched revision main/d537304e8f5f41f1584ca1e807df5b5752b2577e -``` - -When this is successful, it tells you the new credentials have at least read access. - -### Making an automation object - -To set automation running, you create an [`ImageUpdateAutomation`][auto-ref] object. Each object -will update a Git repository, according to the image policies in the namespace. - -Here is an `ImageUpdateAutomation` manifest for the example (note: you will have to supply your own -value for at least the host part of the email address): - -```yaml -$ # the environment variables $AUTO_PATH and $GIT_NAME are set above -$ FLUXBOT_EMAIL=fluxbot@example.com # supply your own host or address here -$ flux create image update my-app-auto \ - --author-name FluxBot --author-email "$FLUXBOT_EMAIL" \ - --git-repo-ref $GIT_NAME --branch main \ - --interval 5m \ - --export > ./$AUTO_PATH/my-app-auto.yaml -$ cat my-app-auto.yaml ---- -apiVersion: image.toolkit.fluxcd.io/v1alpha2 -kind: ImageUpdateAutomation -metadata: - name: my-app-auto - namespace: flux-system -spec: - interval: 5m0s - sourceRef: - kind: GitRepository - name: flux-system - git: - checkout: - ref: - branch: main - commit: - author: - email: fluxbot@example.com - name: FluxBot -``` - -#### Commit and check that the automation object works - -Commit the manifeat file and push: - -```bash -$ git add ./$AUTO_PATH/my-app-auto.yaml -$ git commit -s -m "Add image update automation" -$ git push -# ... -``` - -Then sync and check the object status: - -```bash -$ flux reconcile kustomization --with-source flux-system -► annotating GitRepository flux-system in flux-system namespace -✔ GitRepository annotated -◎ waiting for GitRepository reconciliation -✔ GitRepository reconciliation completed -✔ fetched revision main/401dd3b550f82581c7d12bb79ade389089c6422f -► annotating Kustomization flux-system in flux-system namespace -✔ Kustomization annotated -◎ waiting for Kustomization reconciliation -✔ Kustomization reconciliation completed -✔ reconciled revision main/401dd3b550f82581c7d12bb79ade389089c6422f -$ flux get image update -NAME READY MESSAGE LAST RUN SUSPENDED -my-app-auto True no updates made 2021-02-08T14:53:43Z False -``` - -Read on to the next section to see how to change each manifest file to work with Flux v2. - -## Migrating each manifest to Flux v2 - -In Flux v1, the annotation - - fluxcd.io/automated: "true" - -switches automation on for a manifest (a description of a Kubernetes object). For each manifest that -has that annotation, you will need to create custom resources to scan for the latest image, and to -replace the annotations with field markers. - -The following sections explain these steps, using this example Deployment manifest which is -initially annotated to work with Flux v1: - -```yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: my-app - namespace: default - annotations: - fluxcd.io/automated: "true" - fluxcd.io/tag.app: semver:^5.0 -spec: - template: - spec: - containers: - - name: app - image: ghcr.io/stefanprodan/podinfo:5.0.0 -``` - -!!! warning - A YAML file may have more than one manifest in it, separated with - `---`. Be careful to account for each manifest in a file. - -You may wish to try migrating the automation of just one file or manifest and follow it through to -the end of the guide, before returning here to do the remainder. - -### How to migrate annotations to image policies - -For each image repository that is the subject of automation you will need to create an -`ImageRepository` object, so that the image repository is scanned for tags. The image repository in -the example deployment is `ghcr.io/stefanprodan/podinfo`, which is the image reference minus its -tag: - -```yaml -$ cat $CLUSTER_PATH/app/my-app.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: my-app - namespace: default - annotations: - fluxcd.io/automated: "true" - fluxcd.io/tag.app: semver:^5.0 -spec: - template: - spec: - containers: - - name: app - image: ghcr.io/stefanprodan/podinfo:5.0.0 # <-- image reference -``` - -The command-line tool `flux` will help create a manifest for you. Note that the output is redirected -to a file under `$AUTO_PATH`, so it can be added to the Git repository and synced to the cluster. - -```bash -$ # the environment variable $AUTO_PATH was set earlier -$ flux create image repository podinfo-image \ - --image ghcr.io/stefanprodan/podinfo \ - --interval 5m \ - --export > ./$AUTO_PATH/podinfo-image.yaml -$ cat ./$AUTO_PATH/podinfo-image.yaml ---- -apiVersion: image.toolkit.fluxcd.io/v1alpha2 -kind: ImageRepository -metadata: - name: podinfo-image - namespace: flux-system -spec: - image: ghcr.io/stefanprodan/podinfo - interval: 5m0s -``` - -!!! hint - If you are using the same image repository in several manifests, you only need one - `ImageRepository` object for it. - -##### Using image registry credentials for scanning - -When your image repositories are private, you supply Kubernetes with "image pull secrets" with -credentials for accessing the image registry (e.g., DockerHub). The image reflector controller needs -the same kind of credentials to scan image repositories. - -There are several ways that image pull secrets can be made available for the image reflector -controller. The [image update tutorial][image-update-tute-creds] describes how to create or arrange -secrets for scanning to use. Also see later in the tutorial for [instructions specific to some cloud -platforms][image-update-tute-clouds]. - -##### Committing and checking the ImageRepository - -Add the `ImageRepository` manifest to the Git index and commit it: - -```bash -$ git add ./$AUTO_PATH/podinfo-image.yaml -$ git commit -s -m "Add image repository object for podinfo" -$ git push -# ... -``` - -Now you can sync the new commit, and check that the object is working: - -```bash -$ flux reconcile kustomization --with-source flux-system -► annotating GitRepository flux-system in flux-system namespace -✔ GitRepository annotated -◎ waiting for GitRepository reconciliation -✔ GitRepository reconciliation completed -✔ fetched revision main/fd2fe8a61d4537bcfa349e4d1dbc480ea699ba8a -► annotating Kustomization flux-system in flux-system namespace -✔ Kustomization annotated -◎ waiting for Kustomization reconciliation -✔ Kustomization reconciliation completed -✔ reconciled revision main/fd2fe8a61d4537bcfa349e4d1dbc480ea699ba8a -$ flux get image repository podinfo-image -NAME READY MESSAGE LAST SCAN SUSPENDED -podinfo-image True successful scan, found 16 tags 2021-02-08T14:31:38Z False -``` - -#### Replacing automation annotations - -For each _field_ that's being updated by automation, you'll need an `ImagePolicy` object to describe -how to select an image for the field value. In the example, the field `.image` in the container -named `"app"` is the field being updated. - -In Flux v1, annotations describe how to select the image to update to, using a prefix. In the -example, the prefix is `semver:`: - -```yaml - annotations: - fluxcd.io/automated: "true" - fluxcd.io/tag.app: semver:^5.0 -``` - -These are the prefixes supported in Flux v1, and what to use in Flux v2: - -| Flux v1 prefix | Meaning | Flux v2 equivalent | -|----------------|---------|--------------------| -| `glob:` | Filter for tags matching the glob pattern, then select the newest by build time | [Use sortable tags](#how-to-use-sortable-image-tags) | -| `regex:` | Filter for tags matching the regular expression, then select the newest by build time |[Use sortable tags](#how-to-use-sortable-image-tags) | -| `semver:` | Filter for tags that represent versions, and select the highest version in the given range | [Use semver ordering](#how-to-use-semver-image-tags) | - -#### How to use sortable image tags - -To give image tags a useful ordering, you can use a timestamp or serial number as part of each -image's tag, then sort either alphabetically or numerically. - -This is a change from Flux v1, in which the build time was fetched from each image's config, and -didn't need to be included in the image tag. Therefore, this is likely to require a change to your -build process. - -The guide [How to make sortable image tags][image-tags-guide] explains how to change your build -process to tag images with a timestamp. This will mean Flux v2 can sort the tags to find the most -recently built image. - -##### Filtering the tags in an `ImagePolicy` - -The recommended format for image tags using a timestamp is: - - -- - -The timestamp (or serial number) is the part of the tag that you want to order on. The SHA1 is there -so you can trace an image back to the commit from which it was built. You don't need the branch for -sorting, but you may want to include only builds from a specific branch. - -Say you want to filter for only images that are from `main` branch, and pick the most recent. Your -`ImagePolicy` would look like this: - -```yaml -apiVersion: image.toolkit.fluxcd.io/v1alpha2 -kind: ImagePolicy -metadata: - name: my-app-policy - namespace: flux-system -spec: - imageRepositoryRef: - name: podinfo-image - filterTags: - pattern: '^main-[a-f0-9]+-(?P[0-9]+)' - extract: '$ts' - policy: - numerical: - order: asc -``` - -The `.spec.filterTags.pattern` field gives a regular expression that a tag must match to be included. The -`.spec.filterTags.extract` field gives a replacement pattern that can refer back to capture groups in the -filter pattern. The extracted values are sorted to find the selected image tag. In this case, the -timestamp part of the tag will be extracted and sorted numerically in ascending order. See [the -reference docs][imagepolicy-ref] for more examples. - -Once you have made sure you have image tags and an `ImagePolicy`, jump ahead to [Checking -the ImagePolicy works](#checking-that-the-image-policy-works). - -### How to use SemVer image tags - -The other kind of sorting is by [SemVer][semver], picking the highest version from among those -included by the filter. A semver range will also filter for tags that fit in the range. For example, - -```yaml - semver: - range: ^5.0 -``` - -includes only tags that have a major version of `5`, and selects whichever is the highest. - -This can be combined with a regular expression pattern, to filter on other parts of the tags. For -example, you might put a target environment as well as the version in your image tags, like -`dev-v1.0.3`. - -Then you would use an `ImagePolicy` similar to this one: - -```yaml -apiVersion: image.toolkit.fluxcd.io/v1alpha2 -kind: ImagePolicy -metadata: - name: my-app-policy - namespace: flux-system -spec: - imageRepositoryRef: - name: podinfo-image - filterTags: - pattern: '^dev-v(?P.*)' - extract: '$version' - policy: - semver: - range: '^1.0' -``` - -Continue on to the next sections to see an example, and how to check that your `ImagePolicy` works. - -#### An `ImagePolicy` for the example - -The example Deployment has annotations using `semver:` as a prefix, so the policy object also uses -semver: - -```bash -$ # the environment variable $AUTO_PATH was set earlier -$ flux create image policy my-app-policy \ - --image-ref podinfo-image \ - --semver '^5.0' \ - --export > ./$AUTO_PATH/my-app-policy.yaml -$ cat ./$AUTO_PATH/my-app-policy.yaml ---- -apiVersion: image.toolkit.fluxcd.io/v1alpha2 -kind: ImagePolicy -metadata: - name: my-app-policy - namespace: flux-system -spec: - imageRepositoryRef: - name: podinfo-image - policy: - semver: - range: ^5.0 -``` - -#### Checking that the `ImagePolicy` works - -Commit the manifest file, and push: - -```bash -$ git add ./$AUTO_PATH/my-app-policy.yaml -$ git commit -s -m "Add image policy for my-app" -$ git push -# ... -``` - -Then you can reconcile and check that the image policy works: - -```bash -$ flux reconcile kustomization --with-source flux-system -► annotating GitRepository flux-system in flux-system namespace -✔ GitRepository annotated -◎ waiting for GitRepository reconciliation -✔ GitRepository reconciliation completed -✔ fetched revision main/7dcf50222499be8c97e22cd37e26bbcda8f70b95 -► annotating Kustomization flux-system in flux-system namespace -✔ Kustomization annotated -◎ waiting for Kustomization reconciliation -✔ Kustomization reconciliation completed -✔ reconciled revision main/7dcf50222499be8c97e22cd37e26bbcda8f70b95 -$ flux get image policy flux-system -NAME READY MESSAGE LATEST IMAGE -my-app-policy True Latest image tag for 'ghcr.io/stefanprodan/podinfo' resolved to: 5.1.4 ghcr.io/stefanprodan/podinfo:5.1.4 -``` - -### How to mark up files for update - -The last thing to do in each manifest is to mark the fields that you want to be updated. - -In Flux v1, the annotations in a manifest determines the fields to be updated. In the example, the -annotations target the image used by the container `app`: - -```yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: my-app - namespace: default - annotations: - fluxcd.io/automated: "true" - fluxcd.io/tag.app: semver:^5.0 # <-- `.app` here -spec: - template: - spec: - containers: - - name: app # <-- targets `app` here - image: ghcr.io/stefanprodan/podinfo:5.0.0 -``` - -This works straight-forwardly for Deployment manifests, but when it comes to `HelmRelease` -manifests, it [gets complicated][helm-auto], and it doesn't work at all for many kinds of resources. - -For Flux v2, you mark the field you want to be updated directly, with the namespaced name of the -image policy to apply. This is the example Deployment, marked up for Flux v2: - -```yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - namespace: default - name: my-app -spec: - template: - spec: - containers: - - name: app - image: ghcr.io/stefanprodan/podinfo:5.0.0 # {"$imagepolicy": "flux-system:my-app-policy"} -``` - -The value `flux-system:my-app-policy` names the policy that selects the desired image. - -This works in the same way for `DaemonSet` and `CronJob` manifests. For `HelmRelease` manifests, put -the marker alongside the part of the `values` that has the image tag. If the image tag is a separate -field, you can put `:tag` on the end of the name, to replace the value with just the selected -image's tag. The [image automation guide][image-update-tute-custom] has examples for `HelmRelease` -and other custom resources. - -### Committing the marker change and checking that automation works - -Referring to the image policy created earlier, you can see the example Deployment does not use the -most recent image. When you commit the manifest file with the update marker added, you would expect -automation to update the file. - -Commit the change that adds an update marker: - -```bash -$ git add app/my-app.yaml # the filename of the example -$ git commit -s -m "Add update marker to my-app manifest" -$ git push -# ... -``` - -Now to check that the automation makes a change: - -```bash -$ flux reconcile image update my-app-auto -► annotating ImageUpdateAutomation my-app-auto in flux-system namespace -✔ ImageUpdateAutomation annotated -◎ waiting for ImageUpdateAutomation reconciliation -✔ ImageUpdateAutomation reconciliation completed -✔ committed and pushed a92a4b654f520c00cb6c46b2d5e4fb4861aa58fc -``` - -## Troubleshooting - -If a change was not pushed by the image automation, there's several things you can check: - - - it's possible it made a change that is not reported in the latest status -- pull from the origin - and check the commit log - - check that the name used in the marker corresponds to the namespace and name of an `ImagePolicy` - - check that the `ImageUpdateAutomation` is in the same namespace as the `ImagePolicy` objects - named in markers - - check that the image policy and the image repository are both reported as `Ready` - - check that the credentials referenced by the `GitRepository` object have write permission, and - create new credentials if necessary. - -As a fallback, you can scan the logs of the automation controller to see if it logged errors: - -```bash -$ kubectl logs -n flux-system deploy/image-automation-controller -``` - -Once you are satisfied that it is working, you can migrate the rest of the manifests using the steps -from ["Migrating each manifest to Flux v2"](#migrating-each-manifest-to-flux-v2) above. - -[image-update-tute]: https://toolkit.fluxcd.io/guides/image-update/ -[imagepolicy-ref]: https://toolkit.fluxcd.io/components/image/imagepolicies/ -[helm-auto]: https://docs.fluxcd.io/en/1.21.1/references/helm-operator-integration/#automated-image-detection -[image-update-tute-custom]: https://toolkit.fluxcd.io/guides/image-update/#configure-image-update-for-custom-resources -[flux-v1-migration]: https://toolkit.fluxcd.io/guides/flux-v1-migration/ -[install-cli]: https://toolkit.fluxcd.io/get-started/#install-the-flux-cli -[flux-bootstrap]: https://toolkit.fluxcd.io/guides/installation/#bootstrap -[github-pat]: https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token -[auto-object-ref]: https://toolkit.fluxcd.io/components/image/imageupdateautomations/ -[image-update-tute-creds]: https://toolkit.fluxcd.io/guides/image-update/#configure-image-scanning -[image-update-tute-clouds]: https://toolkit.fluxcd.io/guides/image-update/#imagerepository-cloud-providers-authentication -[image-tags-guide]: https://toolkit.fluxcd.io/guides/sortable-image-tags/ -[auto-ref]: https://toolkit.fluxcd.io/components/image/imageupdateautomations/ -[semver]: https://semver.org diff --git a/docs/guides/flux-v1-migration.md b/docs/guides/flux-v1-migration.md deleted file mode 100644 index 470c94ed..00000000 --- a/docs/guides/flux-v1-migration.md +++ /dev/null @@ -1,330 +0,0 @@ -# Migrate from Flux v1 to v2 - -This guide walks you through migrating from Flux v1 to v2. -Read the [FAQ](faq-migration.md) to find out what differences are between v1 and v2. - -!!! info "Automated image updates" - The image automation feature is under development in Flux v2. - Please consult the [roadmap](../roadmap/index.md) for more details. - -!!! info "Feature parity" - "Feature parity" does not mean Flux v2 works exactly the same as v1 (or is - backward-compatible); it means you can accomplish the same results, while - accounting for the fact that it's a system with a substantially different - design. - This may at times mean that you have to make adjustments to the way your - current cluster configuration is structured. If you are in this situation - and need help, please refer to the [support page](https://fluxcd.io/support/). - -## Prerequisites - -You will need a Kubernetes cluster version **1.16** or newer -and kubectl version **1.18** or newer. - -### Install Flux v2 CLI - -With Homebrew: - -```sh -brew install fluxcd/tap/flux -``` - -With Bash: - -```sh -curl -s https://fluxcd.io/install.sh | sudo bash - -# enable completions in ~/.bash_profile -. <(flux completion bash) -``` - -Command-line completion for `zsh`, `fish`, and `powershell` -are also supported with their own sub-commands. - -Binaries for macOS, Windows and Linux AMD64/ARM are available for download on the -[release page](https://github.com/fluxcd/flux2/releases). - -Verify that your cluster satisfies the prerequisites with: - -```sh -flux check --pre -``` - -## GitOps migration - -Flux v2 offers an installation procedure that is declarative first -and disaster resilient. - -Using the `flux bootstrap` command you can install Flux on a -Kubernetes cluster and configure it to manage itself from a Git -repository. The Git repository created during bootstrap can be used -to define the state of your fleet of Kubernetes clusters. - -For a detailed walk-through of the bootstrap procedure please see the [installation guide](installation.md). - -!!! warning "`flux bootstrap` target" - `flux bootstrap` should not be run against a Git branch or path - that is already being synchronized by Flux v1, as this will make - them fight over the resources. Instead, bootstrap to a **new Git - repository, branch or path**, and continue with moving the - manifests. - -After you've installed Flux v2 on your cluster using bootstrap, -you can delete the Flux v1 from your clusters and move the manifests from the -Flux v1 repository to the bootstrap one. - -## In-place migration - -!!! warning - For production use we recommend using the **bootstrap** procedure (see the [Gitops migration](#gitops-migration) section above), - but if you wish to install Flux v2 in the - same way as Flux v1 then follow along. - -### Flux read-only mode - -Assuming you've installed Flux v1 to sync a directory with plain YAMLs from a private Git repo: - -```sh -# create namespace -kubectl create ns flux - -# deploy Flux v1 -fluxctl install \ ---git-url=git@github.com:org/app \ ---git-branch=main \ ---git-path=./deploy \ ---git-readonly \ ---namespace=flux | kubectl apply -f - - -# print deploy key -fluxctl identity --k8s-fwd-ns flux - -# trigger sync -fluxctl sync --k8s-fwd-ns flux -``` - -!!! hint "Uninstall Flux v1" - Before you proceed, scale the Flux v1 deployment to zero - or delete its namespace and RBAC. - -If there are YAML files in your `deploy` dir that are not meant to be -applied on the cluster, you can exclude them by placing a `.sourceignore` in your repo root: - -```console -$ cat .sourceignore -# exclude all -/* -# include deploy dir -!/deploy -# exclude files from deploy dir -/deploy/**/eksctl.yaml -/deploy/**/charts -``` - -Install Flux v2 in the `flux-system` namespace: - -```console -$ flux install \ - --network-policy=true \ - --watch-all-namespaces=true \ - --namespace=flux-system -✚ generating manifests -✔ manifests build completed -► installing components in flux-system namespace -✔ install completed -◎ verifying installation -✔ source-controller ready -✔ kustomize-controller ready -✔ helm-controller ready -✔ notification-controller ready -✔ install finished -``` - -Register your Git repository and add the deploy key with read-only access: - -```console -$ flux create source git app \ - --url=ssh://git@github.com/org/app \ - --branch=main \ - --interval=1m -► generating deploy key pair -ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCp2x9ghVmv1zD... -Have you added the deploy key to your repository: y -► collecting preferred public key from SSH server -✔ collected public key from SSH server: -github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A... -► applying secret with keys -✔ authentication configured -✚ generating GitRepository source -► applying GitRepository source -✔ GitRepository source created -◎ waiting for GitRepository source reconciliation -✔ GitRepository source reconciliation completed -✔ fetched revision: main/5302d04c2ab8f0579500747efa0fe7abc72c8f9b -``` - -Configure the reconciliation of the `deploy` dir on your cluster: - -```console -$ flux create kustomization app \ - --source=app \ - --path="./deploy" \ - --prune=true \ - --interval=10m -✚ generating Kustomization -► applying Kustomization -✔ Kustomization created -◎ waiting for Kustomization reconciliation -✔ Kustomization app is ready -✔ applied revision main/5302d04c2ab8f0579500747efa0fe7abc72c8f9b -``` - -If your repository contains secrets encrypted with Mozilla SOPS, please read this [guide](mozilla-sops.md). - -Pull changes from Git and apply them immediately: - -```sh -flux reconcile kustomization app --with-source -``` - -List all Kubernetes objects reconciled by `app`: - -```sh -kubectl get all --all-namespaces \ --l=kustomize.toolkit.fluxcd.io/name=app \ --l=kustomize.toolkit.fluxcd.io/namespace=flux-system -``` - -### Flux with Kustomize - -Assuming you've installed Flux v1 to sync a Kustomize overlay from an HTTPS Git repository: - -```sh -fluxctl install \ ---git-url=https://github.com/org/app \ ---git-branch=main \ ---manifest-generation \ ---namespace=flux | kubectl apply -f - -``` - -With the following `.flux.yaml` in the root dir: - -```yaml -version: 1 -patchUpdated: - generators: - - command: kustomize build ./overlays/prod - patchFile: flux-patch.yaml -``` - -!!! hint "Uninstall Flux v1" - Before you proceed, delete the Flux v1 namespace - and remove the `.flux.yaml` from your repo. - -Install Flux v2 in the `flux-system` namespace: - -```sh -flux install -``` - -Register the Git repository using a personal access token: - -```sh -flux create source git app \ - --url=https://github.com/org/app \ - --branch=main \ - --username=git \ - --password=token \ - --interval=1m -``` - -Configure the reconciliation of the `prod` overlay on your cluster: - -```sh -flux create kustomization app \ - --source=GitRepository/app \ - --path="./overlays/prod" \ - --prune=true \ - --interval=10m -``` - -Check the status of the Kustomization reconciliation: - -```console -$ flux get kustomizations app -NAME REVISION SUSPENDED READY -app main/5302d04c2ab8f0579500747efa0fe7abc72c8f9b False True -``` - -### Flux with Slack notifications - -Assuming you've configured Flux v1 to send notifications to Slack with FluxCloud. - -With Flux v2, create an alert provider for a Slack channel: - -```sh -flux create alert-provider slack \ - --type=slack \ - --channel=general \ - --address=https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK -``` - -And configure notifications for the `app` reconciliation events: - -```sh -flux create alert app \ - --provider-ref=slack \ - --event-severity=info \ - --event-source=GitRepository/app \ - --event-source=Kustomization/app -``` - -For more details, read the guides on how to configure -[notifications](notifications.md) and [webhooks](webhook-receivers.md). - -### Flux debugging - -Check the status of Git operations: - -```console -$ kubectl -n flux-system get gitrepositories -NAME READY MESSAGE -app True Fetched revision: main/5302d04c2ab8f0579500747efa0fe7abc72c8f9b -test False SSH handshake failed: unable to authenticate, attempted methods [none publickey] -``` - -Check the status of the cluster reconciliation with kubectl: - -```console -$ kubectl -n flux-system get kustomizations -NAME READY STATUS -app True Applied revision: main/5302d04c2ab8f0579500747efa0fe7abc72c8f9 -test False The Service 'backend' is invalid: spec.type: Unsupported value: 'Ingress' -``` - -Suspend a reconciliation: - -```console -$ flux suspend kustomization app -► suspending kustomization app in flux-system namespace -✔ kustomization suspended -``` - -Check the status with kubectl: - -```console -$ kubectl -n flux-system get kustomization app -NAME READY STATUS -app False Kustomization is suspended, skipping reconciliation -``` - -Resume a reconciliation: - -```console -$ flux resume kustomization app -► resuming Kustomization app in flux-system namespace -✔ Kustomization resumed -◎ waiting for Kustomization reconciliation -✔ Kustomization reconciliation completed -✔ applied revision main/5302d04c2ab8f0579500747efa0fe7abc72c8f9b -``` diff --git a/docs/guides/helm-operator-migration.md b/docs/guides/helm-operator-migration.md deleted file mode 100644 index 253f0e2c..00000000 --- a/docs/guides/helm-operator-migration.md +++ /dev/null @@ -1,861 +0,0 @@ -# Migrate to the Helm Controller - -This guide will learn you everything you need to know to be able to migrate from the [Helm Operator](https://github.com/fluxcd/helm-operator) to the [Helm Controller](https://github.com/fluxcd/helm-controller). - -## Overview of changes - -### Support for Helm v2 dropped - -The Helm Operator offered support for both Helm v2 and v3, due to Kubernetes client incompatibility issues between the versions. This has blocked the Helm Operator from being able to upgrade to a newer v3 version since the release of `3.2.0`. - -In combination with the fact that [Helm v2 reaches end of life after November 13, 2020](https://helm.sh/blog/helm-v2-deprecation-timeline/), support for Helm v2 has been dropped. - -### Helm and Git repositories, and even Helm charts are now Custom Resources - -When working with the Helm Operator, you had to mount various files to either make it recognize new (private) Helm repositories or make it gain access to Helm and/or Git repositories. While this approach was declarative, it did not provide a great user experience and was at times hard to set up. - -By moving this configuration to [`HelmRepository`](../components/source/helmrepositories.md), [`GitRepository`](../components/source/gitrepositories.md), [`Bucket`](../components/source/buckets.md) and [`HelmChart`](../components/source/helmcharts.md) Custom Resources, they can now be declaratively described (including their credentials using references to `Secret` resources), and applied to the cluster. - -The reconciliation of these resources has been offloaded to a dedicated [Source Controller](../components/source/controller.md), specialized in the acquisition of artifacts from external sources. - -The result of this all is an easier and more flexible configuration, with much better observability. Failures are traceable to the level of the resource that lead to a failure, and are easier to resolve. As polling intervals can now be configured per resource, you can customize your repository and/or chart configuration to a much finer grain. - -From a technical perspective, this also means less overhead, as the resources managed by the Source Controller can be shared between multiple `HelmRelease` resources, or even reused by other controllers like the [Kustomize Controller](../components/kustomize/controller.md). - -### The `HelmRelease` Custom Resource group domain changed - -Due to the Helm Controller becoming part of the extensive set of controller components Flux now has, the Custom Resource group domain has changed from `helm.fluxcd.io` to `helm.toolkit.fluxcd.io`. - -Together with the new API version (`v2beta1` at time of writing), the full `apiVersion` you use in your YAML document becomes `helm.toolkit.fluxcd.io/v2beta1`. - -### The API specification changed (quite a lot), for the better - -While developing the Helm Controller, we were given the chance to rethink what a declarative API for driving automated Helm releases would look like. This has, in short, resulted in the following changes: - -- Extensive configuration options per Helm action (install, upgrade, test, rollback); this includes things like timeouts, disabling hooks, and ignoring failures for tests. -- Strategy-based remediation on failures. This makes it possible, for example, to uninstall a release instead of rolling it back after a failed upgrade. The number of retries or keeping the last failed state when the retries are exhausted is now a configurable option. -- Better observability. The `Status` field in the `HelmRelease` provides a much better view of the current state of the release, including dedicated `Ready`, `Released`, `TestSuccess`, and `Remediated` conditions. - -For a comprehensive overview, see the [API spec changes](#api-spec-changes). - -### Helm storage drift detection no longer relies on dry-runs - -The Helm Controller no longer uses dry-runs as a way to detect mutations to the Helm storage. Instead, it uses a simpler model of bookkeeping based on the observed state and revisions. This has resulted in much better performance, a lower memory and CPU footprint, and more reliable drift detection. - -### No longer supports [Helm downloader plugins](https://helm.sh/docs/topics/plugins/#downloader-plugins) - -We have reduced our usage of Helm packages to a bare minimum (that being: as much as we need to be able to work with chart repositories and charts), and are avoiding shell outs as much as we can. - -Given the latter, and the fact that Helm (downloader) plugins work based on shelling out to another command and/or binary, support for this had to be dropped. - -We are aware some of our users are using this functionality to be able to retrieve charts from S3 or GCS. The Source Controller already has support for S3 storage compatible buckets ([this includes GCS](https://cloud.google.com/storage/docs/interoperability)), and we hope to extend this support in the foreseeable future to be on par with the plugins that offered support for these Helm repository types. - -### Values from `ConfigMap` and `Secret` resources in other namespaces are no longer supported - -Support for values references to `ConfigMap` and `Secret` resources in other namespaces than the namespace of the `HelmRelease` has been dropped, as this allowed information from other namespaces to leak into the composed values for the Helm release. - -### Values from external source references (URLs) are no longer supported - -We initially introduced this feature to support alternative (production focused) `values.yaml` files that sometimes come with charts. It was also used by users to use generic and/or dynamic `values.yaml` files in their `HelmRelease` resources. - -The former can now be achieved by defining a [`ValuesFiles` overwrite in the `HelmChartTemplateSpec`](#chart-file-references), which will make the Source Controller look for the referenced file in the chart, and overwrite the default values with the contents from that file. - -Support for the latter use has been dropped, as it goes against the principles of GitOps and declarative configuration. You can not reliably restore the cluster state from a Git repository if the configuration of a service relies on some URL being available. - -Getting similar behaviour is still possible [using a workaround that makes use of a `CronJob` to download the contents of the external URL on an interval](#external-source-references). - -### You can now merge single values at a given path - -There was a long outstanding request for the Helm Operator to support merging single values at a given path. - -With the Helm Controller this now possible by defining a [`targetPath` in the `ValuesReference`](../components/helm/api.md#helm.toolkit.fluxcd.io/v2beta1.ValuesReference), which supports the same formatting as you would supply as an argument to the `helm` binary using `--set [path]=[value]`. In addition to this, the referred value can contain the same value formats (e.g. `{a,b,c}` for a list). You can read more about the available formats and limitations in the [Helm documentation](https://helm.sh/docs/intro/using_helm/#the-format-and-limitations-of---set). - -### Support added for depends-on relationships - -We have added support for depends-on relationships to install `HelmRelease` resources in a given order; for example, because a chart relies on the presence of a Custom Resource Definition installed by another `HelmRelease` resource. - -Entries defined in the `spec.dependsOn` list of the `HelmRelease` must be in a `Ready` state before the Helm Controller proceeds with installation and/or upgrade actions. - -Note that this does not account for upgrade ordering. Kubernetes only allows applying one resource (`HelmRelease` in this case) at a time, so there is no way for the controller to know when a dependency `HelmRelease` may be updated. - -Also, circular dependencies between `HelmRelease` resources must be avoided, otherwise the interdependent `HelmRelease` resources will never be reconciled. - -### You can now suspend a HelmRelease - -There is a new `spec.suspend` field, that if set to `true` causes the Helm Controller to skip reconciliation for the resource. This can be utilized to e.g. temporarily ignore chart changes, and prevent a Helm release from getting upgraded. - -### Helm releases can target another cluster - -We have added support for making Helm releases to other clusters. If the `spec.kubeConfig` field in the `HelmRelease` is set, Helm actions will run against the default cluster specified in that KubeConfig instead of the local cluster that is responsible for the reconciliation of the `HelmRelease`. - -The Helm storage is stored on the remote cluster in a namespace that equals to the namespace of the `HelmRelease`, or the configured `spec.storageNamespace`. The release itself is made in a namespace that equals to the namespace of the `HelmRelease`, or the configured `spec.targetNamespace`. The namespaces are expected to exist, and can for example be created using the [Kustomize Controller](https://toolkit.fluxcd.io/components/kustomize/controller/) which has the same cross-cluster support. -Other references to Kubernetes resources in the `HelmRelease`, like `ValuesReference` resources, are expected to exist on the reconciling cluster. - -### Added support for notifications and webhooks - -Sending notifications and/or alerts to Slack, Microsoft Teams, Discord, or Rocker is now possible using the [Notification Controller](../components/notification/controller.md), [`Provider` Custom Resources](../components/notification/provider.md) and [`Alert` Custom Resources](../components/notification/alert.md). - -It does not stop there, using [`Receiver` Custom Resources](../components/notification/receiver.md) you can trigger **push based** reconciliations from Harbor, GitHub, GitLab, BitBucket or your CI system by making use of the webhook endpoint the resource creates. - -### Introduction of the `flux` CLI to create and/or generate Custom Resources - -With the new [`flux` CLI](../cmd/flux.md) it is now possible to create and/or generate the Custom Resources mentioned earlier. To generate the YAML for a `HelmRepository` and `HelmRelease` resource, you can for example run: - -```console -$ flux create source helm podinfo \ - --url=https://stefanprodan.github.io/podinfo \ - --interval=10m \ - --export ---- -apiVersion: source.toolkit.fluxcd.io/v1beta1 -kind: HelmRepository -metadata: - name: podinfo - namespace: flux-system -spec: - interval: 10m0s - url: https://stefanprodan.github.io/podinfo - -$ flux create helmrelease podinfo \ - --interval=10m \ - --source=HelmRepository/podinfo \ - --chart=podinfo \ - --chart-version=">4.0.0" \ - --export ---- -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: podinfo - namespace: flux-system -spec: - chart: - spec: - chart: podinfo - sourceRef: - kind: HelmRepository - name: podinfo - version: '>4.0.0' - interval: 10m0s - -``` - -## API spec changes - -The following is an overview of changes to the API spec, including behavioral changes compared to how the Helm Operator performs actions. For a full overview of the new API spec, consult the [API spec documentation](../components/helm/helmreleases.md#specification). - -### Defining the Helm chart - -#### Helm repository - -For the Helm Operator, you used to configure a chart from a Helm repository as follows: - -```yaml ---- -apiVersion: helm.fluxcd.io/v1 -kind: HelmRelease -metadata: - name: my-release - namespace: default -spec: - chart: - # The repository URL - repository: https://charts.example.com - # The name of the chart (without an alias) - name: my-chart - # The SemVer version of the chart - version: 1.2.3 -``` - -With the Helm Controller, you now create a `HelmRepository` resource in addition to the `HelmRelease` you would normally create (for all available fields, consult the [Source API reference](../components/source/api.md#source.toolkit.fluxcd.io/v1beta1.HelmRepository)): - -```yaml ---- -apiVersion: source.toolkit.fluxcd.io/v1beta1 -kind: HelmRepository -metadata: - name: my-repository - namespace: default -spec: - # The interval at wich to check the upstream for updates - interval: 10m - # The repository URL, a valid URL contains at least a protocol and host - url: https://chart.example.com -``` - -If you make use of a private Helm repository, instead of configuring the credentials by mounting a `repositories.yaml` file, you can now configure the HTTP/S basic auth and/or TLS credentials by referring to a `Secret` in the same namespace as the `HelmRepository`: - -```yaml ---- -apiVersion: v1 -kind: Secret -metadata: - name: my-repository-creds - namespace: default -data: - # HTTP/S basic auth credentials - username: - password: - # TLS credentials (certFile and keyFile, and/or caCert) - certFile: - keyFile: - caCert: ---- -apiVersion: source.toolkit.fluxcd.io/v1beta1 -kind: HelmRepository -metadata: - name: my-repository - namespace: default -spec: - # ...omitted for brevity - secretRef: - name: my-repository-creds -``` - -In the `HelmRelease`, you then use a reference to the `HelmRepository` resource in the `spec.chart.spec` (for all available fields, consult the [Helm API reference](../components/helm/api.md#helm.toolkit.fluxcd.io/v2beta1.HelmChartTemplate)): - -```yaml ---- -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: my-release - namespace: default -spec: - # The interval at which to reconcile the Helm release - interval: 10m - chart: - spec: - # The name of the chart as made available by the HelmRepository - # (without any aliases) - chart: my-chart - # A fixed SemVer, or any SemVer range - # (i.e. >=4.0.0 <5.0.0) - version: 1.2.3 - # The reference to the HelmRepository - sourceRef: - kind: HelmRepository - name: my-repository - # Optional, defaults to the namespace of the HelmRelease - namespace: default -``` - -The `spec.chart.spec` values are used by the Helm Controller as a template to create a new `HelmChart` resource in the same namespace as the `sourceRef`, to be reconciled by the Source Controller. The Helm Controller watches `HelmChart` resources for (revision) changes, and performs an installation or upgrade when it notices a change. - -#### Git repository - -For the Helm Operator, you used to configure a chart from a Git repository as follows: - -```yaml ---- -apiVersion: helm.fluxcd.io/v1 -kind: HelmRelease -metadata: - name: my-release - namespace: default -spec: - chart: - # The URL of the Git repository - git: https://example.com/org/repo - # The Git branch (or other Git reference) - ref: master - # The path of the chart relative to the repository root - path: ./charts/my-chart -``` - -With the Helm Controller, you create a `GitRepository` resource in addition to the `HelmRelease` you would normally create (for all available fields, consult the [Source API reference](../components/source/api.md#source.toolkit.fluxcd.io/v1beta1.GitRepository): - -```yaml ---- -apiVersion: source.toolkit.fluxcd.io/v1beta1 -kind: GitRepository -metadata: - name: my-repository - namespace: default -spec: - # The interval at which to check the upstream for updates - interval: 10m - # The repository URL, can be a HTTP/S or SSH address - url: https://example.com/org/repo - # The Git reference to checkout and monitor for changes - # (defaults to master) - # For all available options, see: - # https://toolkit.fluxcd.io/components/source/api/#source.toolkit.fluxcd.io/v1beta1.GitRepositoryRef - ref: - branch: master -``` - -If you make use of a private Git repository, instead of configuring the credentials by mounting a private key and making changes to the `known_hosts` file, you can now configure the credentials for both HTTP/S and SSH by referring to a `Secret` in the same namespace as the `GitRepository`: - -```yaml ---- -apiVersion: v1 -kind: Secret -metadata: - name: my-repository-creds - namespace: default -data: - # HTTP/S basic auth credentials - username: - password: - # SSH credentials - identity: - identity.pub: - known_hosts: ---- -apiVersion: source.toolkit.fluxcd.io/v1beta1 -kind: GitRepository -metadata: - name: my-repository - namespace: default -spec: - # ...omitted for brevity - secretRef: - name: my-repository-creds -``` - -In the `HelmRelease`, you then use a reference to the `GitRepository` resource in the `spec.chart.spec` (for all available fields, consult the [Helm API reference](../components/helm/api.md#helm.toolkit.fluxcd.io/v2beta1.HelmChartTemplate)): - -```yaml ---- -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: my-release - namespace: default -spec: - # The interval at which to reconcile the Helm release - interval: 10m - chart: - spec: - # The path of the chart relative to the repository root - chart: ./charts/my-chart - # The reference to the GitRepository - sourceRef: - kind: GitRepository - name: my-repository - # Optional, defaults to the namespace of the HelmRelease - namespace: default -``` - -The `spec.chart.spec` values are used by the Helm Controller as a template to create a new `HelmChart` resource in the same namespace as the `sourceRef`, to be reconciled by the Source Controller. The Helm Controller watches `HelmChart` resources for (revision) changes, and performs an installation or upgrade when it notices a change. - -### Defining values - -#### Inlined values - -Inlined values (defined in the `spec.values` of the `HelmRelease`) still work as with the Helm operator. It represents a YAML map as you would put in a file and supply to `helm` with `-f values.yaml`, but inlined into the `HelmRelease` manifest: - -```yaml ---- -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: my-release - namespace: default -spec: - # ...omitted for brevity - values: - foo: value1 - bar: - baz: value2 - oof: - - item1 - - item2 -``` - -#### Values from sources - -As described in the [overview of changes](#overview-of-changes), there have been multiple changes to the way you can refer to values from sources (like `ConfigMap` and `Secret` references), including the [drop of support for external source (URL) references](#values-from-external-source-references-urls-are-no-longer-supported) and [added support for merging single values at a specific path](#you-can-now-merge-single-values-at-a-given-path). - -Values are still merged in the order given, with later values overwriting earlier. The values from sources always have a lower priority than the values inlined in the `HelmRelease` via the `spec.values` key. - -##### `ConfigMap` and `Secret` references - -`ConfigMap` and `Secret` references used to be defined as follows: - -```yaml ---- -apiVersion: helm.fluxcd.io/v1 -kind: HelmRelease -metadata: - name: my-release - namespace: default -spec: - # ...omitted for brevity - valuesFrom: - - configMapKeyRef: - name: my-config-values - namespace: my-ns - key: values.yaml - optional: false - - secretKeyRef: - name: my-secret-values - namespace: my-ns - key: values.yaml - optional: true -``` - -In the new API spec the individual `configMapKeyRef` and `secretKeyRef` objects are bundled into a single [`ValuesReference`](../components/helm/api.md#helm.toolkit.fluxcd.io/v2beta1.ValuesReference) which [does no longer allow refering to resources in other namespaces](#values-from-external-source-references-urls-are-no-longer-supported): - -```yaml ---- -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: my-release - namespace: default -spec: - # ...omitted for brevity - valuesFrom: - - kind: ConfigMap - name: my-config-values - valuesKey: values.yaml - optional: false - - kind: Secret - name: my-secret-values - valuesKey: values.yaml - optional: true -``` - -Another thing to take note of is that the behavior for values references marked as `optional` has changed. When set, a "not found" error for the values reference is ignored, but any `valuesKey`, `targetPath` or transient error will still result in a reconciliation failure. - -##### Chart file references - -With the Helm Operator it was possible to refer to an alternative values file (for e.g. production usage) in the directory of a chart from a Git repository: - -```yaml ---- -apiVersion: helm.fluxcd.io/v1 -kind: HelmRelease -metadata: - name: my-release - namespace: default -spec: - # ...omitted for brevity - valuesFrom: - # Values file to merge in, - # expected to be a relative path in the chart directory - - chartFileRef: - path: values-prod.yaml -``` - -With the Helm Controller, this declaration has moved to the `spec.chart.spec`, and the feature is no longer limited to charts from a Git repository: - -```yaml ---- -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: my-release - namespace: default -spec: - # ...omitted for brevity - chart: - spec: - chart: my-chart - version: 1.2.3 - # Alternative values file to use as the default values, - # expected to be a relative path in the sourceRef - valuesFiles: - - values.yaml - - values-prod.yaml - sourceRef: - kind: HelmRepository - name: my-repository -``` - -When `valuesFiles` is defined, the chart will be (re)packaged with the values from the referenced files as the default values, merged in the order they appear. Note that this behavior is different from the Helm Operator as the default values (values.yaml) are not merged by default and must be explicitly added to the list. - -##### External source references - -While [the support for external source references has been dropped](#values-from-external-source-references-urls-are-no-longer-supported), it is possible to work around this limitation by creating a `CronJob` that periodically fetches the values from an external URL and saves them to a `ConfigMap` or `Secret` resource. - -First, create a `ServiceAccount`, `Role` and `RoleBinding` capable of updating a limited set of `ConfigMap` resources: - -```yaml ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: values-fetcher - namespace: default ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: Role -metadata: - name: configmap-updater - namespace: default -rules: -- apiGroups: [""] - resources: ["configmaps"] - # ResourceNames limits the access of the role to - # a defined set of ConfigMap resources - resourceNames: ["my-external-values"] - verbs: ["patch", "get"] ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: update-values-configmaps - namespace: default -subjects: -- kind: ServiceAccount - name: values-fetcher - namespace: default -roleRef: - kind: Role - name: configmap-updater - apiGroup: rbac.authorization.k8s.io -``` - -As `resourceNames` scoping in the `Role` [does not allow restricting `create` requests](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#referring-to-resources), we need to create empty placeholder(s) for the `ConfigMap` resource(s) that will hold the fetched values: - -```yaml ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: my-external-values - namespace: default -data: {} -``` - -Lastly, create a `CronJob` that uses the `ServiceAccount` defined above, fetches the external values on an interval, and applies them to the `ConfigMap`: - -```yaml ---- -apiVersion: batch/v1beta1 -kind: CronJob -metadata: - name: fetch-external-values -spec: - concurrencyPolicy: Forbid - schedule: "*/5 * * * *" - successfulJobsHistoryLimit: 3 - failedJobsHistoryLimit: 3 - jobTemplate: - spec: - template: - spec: - serviceAccountName: values-fetcher - containers: - - name: kubectl - image: bitnami/kubectl:1.19 - volumeMounts: - - mountPath: /tmp - name: tmp-volume - command: - - sh - - -c - args: - - >- - curl -f -# https://example.com/path/to/values.yaml -o /tmp/values.yaml && - kubectl create configmap my-external-values --from-file=/tmp/values.yaml -oyaml --dry-run=client | - kubectl apply -f - - volumes: - - name: tmp-volume - emptyDir: - medium: Memory - restartPolicy: OnFailure -``` - -You can now refer to the `my-external-values` `ConfigMap` resource in your `HelmRelease`: - -```yaml ---- -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: my-release - namespace: default -spec: - # ...omitted for brevity - valuesFrom: - - kind: ConfigMap - name: my-external-values -``` - -### Defining release options - -With the Helm Operator the release options used to be configured in the `spec` of the `HelmRelease` and applied to both Helm install and upgrade actions. - -This has changed for the Helm Controller, where some defaults can be defined in the [`spec`](../components/helm/api.md#helm.toolkit.fluxcd.io/v2beta1.HelmReleaseSpec), but specific action configurations and overwrites for the defaults can be defined in the [`spec.install`](../components/helm/api.md#helm.toolkit.fluxcd.io/v2beta1.Install), [`spec.upgrade`](../components/helm/api.md#helm.toolkit.fluxcd.io/v2beta1.Upgrade) and [`spec.test`](../components/helm/api.md#helm.toolkit.fluxcd.io/v2beta1.Test) sections of the `HelmRelease`. - -### Defining a rollback / uninstall configuration - -With the Helm Operator, uninstalling a release after an installation failure was done automatically, and rolling back from a faulty upgrade and configuring options like retries was done as follows: - -```yaml ---- -apiVersion: helm.fluxcd.io/v1 -kind: HelmRelease -metadata: - name: my-release - namespace: default -spec: - # ...omitted for brevity - rollback: - enable: true - retries: true - maxRetries: 5 - disableHooks: false - force: false - recreate: false - timeout: 300 -``` - -The Helm Controller offers an extensive set of configuration options to remediate when a Helm release fails, using [`spec.install.remediate`](../components/helm/api.md#helm.toolkit.fluxcd.io/v2beta1.InstallRemediation), [`spec.upgrade.remediate`](../components/helm/api.md#helm.toolkit.fluxcd.io/v2beta1.UpgradeRemediation), [`spec.rollback`](../components/helm/api.md#helm.toolkit.fluxcd.io/v2beta1.Rollback) and [`spec.uninstall`](../components/helm/api.md#helm.toolkit.fluxcd.io/v2beta1.Uninstall). Some of the new features include the option to remediate with an uninstall after an upgrade failure, and the option to keep a failed release for debugging purposes when it has run out of retries. - -#### Automated uninstalls - -The configuration below mimics the uninstall behavior of the Helm Operator (for all available fields, consult the [`InstallRemediation`](../components/helm/api.md#helm.toolkit.fluxcd.io/v2beta1.InstallRemediation) and [`Uninstall`](../components/helm/api.md#helm.toolkit.fluxcd.io/v2beta1.Uninstall) API references): - -```yaml -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: my-release - namespace: default -spec: - # ...omitted for brevity - install: - # Remediation configuration for when the Helm install - # (or sequent Helm test) action fails - remediation: - # Number of retries that should be attempted on failures before - # bailing, a negative integer equals to unlimited retries - retries: -1 - # Configuration options for the Helm uninstall action - uninstall: - timeout: 5m - disableHooks: false - keepHistory: false -``` - -#### Automated rollbacks - -The configuration below shows an automated rollback configuration that equals [the configuration for the Helm Operator showed above](#defining-a-rollback-uninstall-configuration) (for all available fields, consult the [`UpgradeRemediation`](../components/helm/api.md#helm.toolkit.fluxcd.io/v2beta1.UpgradeRemediation) and [`Rollback`](../components/helm/api.md#helm.toolkit.fluxcd.io/v2beta1.Rollback) API references): - -```yaml -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: my-release - namespace: default -spec: - # ...omitted for brevity - upgrade: - # Remediaton configuration for when an Helm upgrade action fails - remediation: - # Amount of retries to attempt after a failure, - # setting this to 0 means no remedation will be - # attempted - retries: 5 - # Configuration options for the Helm rollback action - rollback: - timeout: 5m - disableWait: false - disableHooks: false - recreate: false - force: false - cleanupOnFail: false -``` - -## Migration strategy - -Due to the high number of changes to the API spec, there are no detailed instructions available to provide a simple migration path. But there is a [simple procedure to follow](#steps), which combined with the detailed list of [API spec changes](#api-spec-changes) should make the migration path relatively easy. - -Here are some things to know: - -* The Helm Controller will ignore the old custom resources (and the Helm Operator will ignore the new resources). -* Deleting a resource while the corresponding controller is running will result in the Helm release also being deleted. -* Deleting a `CustomResourceDefinition` will also delete all custom resources of that kind. -* If both the Helm Controller and Helm Operator are running, and both a new and old custom resources define a release, they will fight over the release. -* The Helm Controller will always perform an upgrade the first time it encounters a new `HelmRelease` for an existing release; this is [due to the changes to release mechanics and bookkeeping](#helm-storage-drift-detection-no-longer-relies-on-dry-runs). - -The safest way to upgrade is to avoid deletions and fights by stopping the Helm Operator. Once the operator is not running, it is safe to deploy the Helm Controller (e.g., by following the [Get Started guide](../get-started/index.md), [utilizing `flux install`](../cmd/flux_install.md), or using the manifests from the [release page](https://github.com/fluxcd/helm-controller/releases)), and start replacing the old resources with new resources. You can keep the old resources around during this process, since the Helm Controller will ignore them. - -### Steps - -The recommended migration steps for a single `HelmRelease` are as follows: - -1. Ensure the Helm Operator is not running, as otherwise the Helm Controller and Helm Operator will fight over the release. -1. Create a [`GitRepository` or `HelmRepository` resource for the `HelmRelease`](#defining-the-helm-chart), including any `Secret` that may be required to access the source. Note that it is possible for multiple `HelmRelease` resources to share a `GitRepository` or `HelmRepository` resource. -1. Create a new `HelmRelease` resource ([with the `helm.toolkit.fluxcd.io` group domain](#the-helmrelease-custom-resource-group-domain-changed)), define the `spec.releaseName` (plus the `spec.targetNamespace` and `spec.storageNamespace` if applicable) to match that of the existing release, and rewrite the configuration to adhere to the [API spec changes](#api-spec-changes). -1. Confirm the Helm Controller successfully upgrades the release. - -### Example - -As a full example, this is an old resource: - -```yaml ---- -apiVersion: helm.fluxcd.io/v1 -kind: HelmRelease -metadata: - name: podinfo - namespace: default -spec: - chart: - repository: https://stefanprodan.github.io/podinfo - name: podinfo - version: 5.0.3 - values: - replicaCount: 1 -``` - -The custom resources for the Helm Controller would be: - -```yaml ---- -apiVersion: source.toolkit.fluxcd.io/v1beta1 -kind: HelmRepository -metadata: - name: podinfo - namespace: default -spec: - interval: 10m - url: https://stefanprodan.github.io/podinfo ---- -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: podinfo - namespace: default -spec: - interval: 5m - releaseName: default-podinfo - chart: - spec: - chart: podinfo - version: 5.0.3 - sourceRef: - kind: HelmRepository - name: podinfo - interval: 10m - values: - replicaCount: 1 -``` - -### Migrating gradually - -Gradually migrating to the Helm Controller is possible by scaling down the Helm Operator while you move over resources, and scaling it up again once you have migrated some of the releases to the Helm Controller. - -While doing this, make sure that once you scale up the Helm Operator again, there are no old and new `HelmRelease` resources pointing towards the same release, as they will fight over the release. - -Alternatively, you can gradually migrate per namespace without ever needing to shut the Helm Operator down, enabling no continuous delivery interruption on most namespaces. To do so, you can customize the Helm Operator roles associated to its `ServiceAccount` to prevent it from interfering with the Helm Controller in namespaces you are migrating. First, create a new `ClusterRole` for the Helm Operator to operate in "read-only" mode cluster-wide: - -```yaml ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: helm-operator-ro -rules: - - apiGroups: ['*'] - resources: ['*'] - verbs: - - get - - watch - - list - - nonResourceURLs: ['*'] - verbs: ['*'] -``` - -By default, [the `helm-operator` `ServiceAccount` is bound to a `ClusterRole` that allows it to create, patch and delete resources in all namespaces](https://github.com/fluxcd/helm-operator/blob/1baacd6dee865b57da80e0e767286ed68d578246/deploy/rbac.yaml#L9-L36). Bind the `ServiceAccount` to the new `helm-operator-ro` `ClusterRole`: - -```diff ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: helm-operator -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole -- name: helm-operator -+ name: helm-operator-ro -subjects: - - kind: ServiceAccount - name: helm-operator - namespace: flux -``` - -Finally, create `RoleBindings` for each namespace, but the one you are currently migrating: - -```yaml -# Create a `RoleBinding` for each namespace the Helm Operator is allowed to process `HelmReleases` in ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: helm-operator - namespace: helm-operator-watched-namespace -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: helm-operator -subjects: - - name: helm-operator - namespace: flux - kind: ServiceAccount -# Do not create the following to prevent the Helm Operator from watching `HelmReleases` in `helm-controller-watched-namespace` -# --- -# apiVersion: rbac.authorization.k8s.io/v1 -# kind: RoleBinding -# metadata: -# name: helm-operator -# namespace: helm-controller-watched-namespace -# roleRef: -# apiGroup: rbac.authorization.k8s.io -# kind: ClusterRole -# name: helm-operator -# subjects: -# - name: helm-operator -# namespace: flux -# kind: ServiceAccount -``` - -If you are using [the Helm Operator chart](https://github.com/fluxcd/helm-operator/tree/master/chart/helm-operator), make sure to set `rbac.create` to `false` in order to take over `ClusterRoleBindings` and `RoleBindings` as you wish. - -### Deleting old resources - -Once you have migrated all your `HelmRelease` resources to the Helm Controller. You can remove all of the old resources by removing the old Custom Resource Definition. - -```sh -kubectl delete crd helmreleases.helm.fluxcd.io -``` - -## Frequently Asked Questions - -### Are automated image updates supported? - -Not yet, but the feature is under active development. See the [image update feature parity section on the roadmap](https://toolkit.fluxcd.io/roadmap/#flux-image-update-feature-parity) for updates on this topic. - -### How do I automatically apply my `HelmRelease` resources to the cluster? - -If you are currently a Flux v1 user, you can commit the `HelmRelease` resources to Git, and Flux will automatically apply them to the cluster like any other resource. It does however not support automated image updates for Helm Controller resources. - -If you are not a Flux v1 user or want to fully migrate to Flux v2, the [Kustomize Controller](https://toolkit.fluxcd.io/components/kustomize/controller/) will serve your needs. - -### I am still running Helm v2, what is the right upgrade path for me? - -Migrate your Helm v2 releases to v3 using [the Helm Operator's migration feature](https://docs.fluxcd.io/projects/helm-operator/en/stable/helmrelease-guide/release-configuration/#migrating-from-helm-v2-to-v3), or make use of the [`helm-2to3`](https://github.com/helm/helm-2to3) plugin directly, before continuing following the [migration steps](#steps). - -### Is the Helm Controller ready for production? - -Probably, but with some side notes: - -1. It is still under active development, and while our focus has been to stabilize the API as much as we can during the first development phase, we do not guarantee there will not be any breaking changes before we reach General Availability. We are however committed to provide [conversion webhooks](https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definition-versioning/#webhook-conversion) for upcoming API versions. -1. There may be (internal) behavioral changes in upcoming releases, but they should be aimed at further stabilizing the Helm Controller itself, solving edge case issues, providing better logging, observability, and/or other improvements. - -### Can I use Helm Controller standalone? - -Helm Controller depends on [Source Controller](../components/source/controller.md), you can install both controllers -and manager Helm releases in a declarative way without GitOps. -For more details please see this [answer](../faq/index.md#can-i-use-flux-helmreleases-without-gitops). - -### I have another question - -Given the amount of changes, it is quite possible that this document did not provide you with a clear answer for you specific setup. If this applies to you, do not hesitate to ask for help in the [GitHub Discussions](https://github.com/fluxcd/flux2/discussions/new?category_id=31999889) or on the [`#flux` CNCF Slack channel](https://slack.cncf.io)! diff --git a/docs/guides/helmreleases.md b/docs/guides/helmreleases.md deleted file mode 100644 index 96e8a0f2..00000000 --- a/docs/guides/helmreleases.md +++ /dev/null @@ -1,493 +0,0 @@ -# Manage Helm Releases - -The [helm-controller](../components/helm/controller.md) allows you to -declaratively manage Helm chart releases with Kubernetes manifests. -It makes use of the artifacts produced by the -[source-controller](../components/source/controller.md) from -`HelmRepository`, `GitRepository`, `Bucket` and `HelmChart` resources. -The helm-controller is part of the default toolkit installation. - -## Prerequisites - -To follow this guide you'll need a Kubernetes cluster with the GitOps -toolkit controllers installed on it. -Please see the [get started guide](../get-started/index.md) -or the [installation guide](installation.md). - -## Define a chart source - -To be able to release a Helm chart, the source that contains the chart -(either a `HelmRepository`, `GitRepository`, or `Bucket`) has to be known -first to the source-controller, so that the `HelmRelease` can reference -to it. - -### Helm repository - -Helm repositories are the recommended source to retrieve Helm charts -from, as they are lightweight in processing and make it possible to -configure a semantic version selector for the chart version that should -be released. - -They can be declared by creating a `HelmRepository` resource, the -source-controller will fetch the Helm repository index for this -resource on an interval and expose it as an artifact: - -```yaml -apiVersion: source.toolkit.fluxcd.io/v1beta1 -kind: HelmRepository -metadata: - name: podinfo - namespace: flux-system -spec: - interval: 1m - url: https://stefanprodan.github.io/podinfo -``` - -The `interval` defines at which interval the Helm repository index -is fetched, and should be at least `1m`. Setting this to a higher -value means newer chart versions will be detected at a slower pace, -a push-based fetch can be introduced using [webhook receivers](webhook-receivers.md) - -The `url` can be any HTTP/S Helm repository URL. - -!!! hint "Authentication" - HTTP/S basic and TLS authentication can be configured for private - Helm repositories. See the [`HelmRepository` CRD docs](../components/source/helmrepositories.md) - for more details. - -### Git repository - -Charts from Git repositories can be released by declaring a -`GitRepository`, the source-controller will fetch the contents of the -repository on an interval and expose it as an artifact. - -The source-controller can build and expose Helm charts as artifacts -from the contents of the `GitRepository` artifact (more about this -later on in the guide). - -**There is one caveat you should be aware of:** to make the -source-controller produce a new chart artifact, the `version` in the -`Chart.yaml` of the chart must be bumped. - -An example `GitRepository`: - -```yaml -apiVersion: source.toolkit.fluxcd.io/v1beta1 -kind: GitRepository -metadata: - name: podinfo - namespace: flux-system -spec: - interval: 1m - url: https://github.com/stefanprodan/podinfo - ref: - branch: master - ignore: | - # exclude all - /* - # include charts directory - !/charts/ -``` - -The `interval` defines at which interval the Git repository contents -are fetched, and should be at least `1m`. Setting this to a higher -value means newer chart versions will be detected at a slower pace, -a push-based fetch can be introduced using [webhook receivers](webhook-receivers.md) - -The `url` can be any HTTP/S or SSH address (the latter requiring -authentication). - -The `ref` defines the checkout strategy, and is set to follow the -`master` branch in the above example. For other strategies like -tags or commits, see the [`GitRepository` CRD docs](../components/source/gitrepositories.md). - -The `ignore` defines file and folder exclusion for the -artifact produced, and follows the [`.gitignore` pattern -format](https://git-scm.com/docs/gitignore#_pattern_format). -The above example only includes the `charts` directory of the -repository and omits all other files. - -!!! hint "Authentication" - HTTP/S basic and SSH authentication can be configured for private - Git repositories. See the [`GitRepository` CRD docs](../components/source/gitrepositories.md) - for more details. - -### Cloud Storage - -It is inadvisable while still possible to use a `Bucket` as a source for a `HelmRelease`, -as the whole storage bucket will be downloaded by source controller at each sync. The -bucket can easily become very large if there are frequent releases of multiple charts -that are stored in the same bucket. - -A better option is to use [Chartmuseum](https://github.com/helm/chartmuseum) and run a cluster -local Helm repository that can be used by source controller. Chartmuseum has support -for multiple different cloud storage solutions such as S3, GCS, and Azure Blob Storage, -meaning that you are not limited to only using storage providers that support the S3 protocol. - -You can deploy a Chartmuseum instance with a `HelmRelease` that exposes a Helm repository stored -in a S3 bucket. Please refer to [Chartmuseums how to run documentation](https://chartmuseum.com/docs/#how-to-run) -for details about how to use other storage backends. - -```yaml -apiVersion: source.toolkit.fluxcd.io/v1beta1 -kind: HelmRepository -metadata: - name: chartmuseum - namespace: flux-system -spec: - url: https://chartmuseum.github.io/charts - interval: 10m ---- -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: chartmuseum - namespace: flux-system -spec: - interval: 5m - chart: - spec: - chart: chartmuseum - version: "2.14.2" - sourceRef: - kind: HelmRepository - name: chartmuseum - namespace: flux-system - interval: 1m - values: - env: - open: - AWS_SDK_LOAD_CONFIG: true - STORAGE: amazon - STORAGE_AMAZON_BUCKET: "bucket-name" - STORAGE_AMAZON_PREFIX: "" - STORAGE_AMAZON_REGION: "region-name" - serviceAccount: - create: true - annotations: - eks.amazonaws.com/role-arn: "role-arn" - securityContext: - enabled: true - fsGroup: 65534 -``` - -After Chartmuseum is up and running it should be possible to use the accompanying -service as the url for the `HelmRepository`. - -```yaml -apiVersion: source.toolkit.fluxcd.io/v1beta1 -kind: HelmRepository -metadata: - name: helm-charts - namespace: flux-system -spec: - interval: 1m - url: http://chartmuseum-chartmuseum:8080 -``` - -## Define a Helm release - -With the chart source created, define a new `HelmRelease` to release -the Helm chart: - -```yaml -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: podinfo - namespace: default -spec: - interval: 5m - chart: - spec: - chart: - version: '4.0.x' - sourceRef: - kind: - name: podinfo - namespace: flux-system - interval: 1m - values: - replicaCount: 2 -``` - -The `chart.spec` values are used by the helm-controller as a template -to create a new `HelmChart` resource in the same namespace as the -`sourceRef`. The source-controller will then lookup the chart in the -artifact of the referenced source, and either fetch the chart for a -`HelmRepository`, or build it from a `GitRepository` or `Bucket`. -It will then make it available as a `HelmChart` artifact to be used by -the helm-controller. - -The `chart.spec.chart` can either contain: - -* The name of the chart as made available by the `HelmRepository` - (without any aliases), for example: `podinfo` -* The relative path the chart can be found at in the `GitRepository` - or `Bucket`, for example: `./charts/podinfo` -* The relative path the chart package can be found at in the - `GitRepository` or `Bucket`, for example: `./charts/podinfo-1.2.3.tgz` - -The `chart.spec.version` can be a fixed semver, or any semver range -(i.e. `>=4.0.0 <5.0.0`). It is only taken into account for `HelmRelease` -resources that reference a `HelmRepository` source. - -!!! hint "Advanced configuration" - The `HelmRelease` offers an extensive set of configurable flags - for finer grain control over how Helm actions are performed. - See the [`HelmRelease` CRD docs](../components/helm/helmreleases.md) - for more details. - -## Refer to values in `ConfigMap` and `Secret` resources - -It is possible to define a list of `ConfigMap` and `Secret` resources -from which to take values. The values are merged in the order given, -with the later values overwriting earlier. These values always have a -lower priority than the values inlined in the `HelmRelease` via the -`spec.values` parameter. - -```yaml -spec: - valuesFrom: - - kind: ConfigMap - name: prod-env-values - valuesKey: values-prod.yaml - - kind: Secret - name: prod-tls-values - valuesKey: crt - targetPath: tls.crt -``` - -The definition of the listed keys is as follows: - -- `kind`: Kind of the values referent (`ConfigMap` or `Secret`). -- `name`: Name of the values referent, in the same namespace as the - `HelmRelease`. -- `valuesKey` _(Optional)_: The data key where the values.yaml or a - specific value can be found. Defaults to `values.yaml` when omitted. -- `targetPath` _(Optional)_: The YAML dot notation path at which the - value should be merged. When set, the `valuesKey` is expected to be - a single flat value. Defaults to `None` when omitted, which results - in the values getting merged at the root. - -!!! hint "Note" - The `targetPath` supports the same formatting as you would supply - as an argument to the `helm` binary using `--set [path]=[value]`. - In addition to this, the referred value can contain the same - value formats (e.g. `{a,b,c}` for a list). - You can read more about the available formats and limitations in - the [Helm documentation](https://helm.sh/docs/intro/using_helm/#the-format-and-limitations-of---set). - -!!! warning "`TargetPath` and JSON values" - When using `TargetPath` in combination with a JSON string, the - [limitations are the same as while using `helm`](https://github.com/helm/helm/issues/5618), - and require you to escape the full JSON string (including `=`, `[`, `,`, `.`). - -## Refer to values in `ConfigMaps` generated with Kustomize - -It is possible to use Kustomize [ConfigMap generator](https://kubectl.docs.kubernetes.io/references/kustomize/configmapgenerator/) -to trigger a Helm release upgrade every time the encoded values change. - -First create a `kustomizeconfig.yaml` for Kustomize to be able to patch -`ConfigMaps` referenced in `HelmRelease` manifests: - -```yaml -nameReference: -- kind: ConfigMap - version: v1 - fieldSpecs: - - path: spec/valuesFrom/name - kind: HelmRelease -``` - -Create a `HelmRelease` definition that references a `ConfigMap`: - -```yaml -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: podinfo - namespace: podinfo -spec: - interval: 5m - releaseName: podinfo - chart: - spec: - chart: podinfo - sourceRef: - kind: HelmRepository - name: podinfo - valuesFrom: - - kind: ConfigMap - name: podinfo-values -``` - -Create a `kustomization.yaml` that generates the `ConfigMap` using our kustomize config: - -```yaml -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -namespace: podinfo -resources: - - namespace.yaml - - repository.yaml - - release.yaml -configMapGenerator: - - name: podinfo-values - files: - - values.yaml=my-values.yaml -configurations: - - kustomizeconfig.yaml -``` - -When [kustomize-controller](../components/kustomize/controller.md) reconciles the above manifests, it will generate -a unique name of the `ConfigMap` every time `my-values.yaml` content is updated in Git: - -```yaml -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: podinfo - namespace: podinfo -spec: - valuesFrom: - - kind: ConfigMap - name: podinfo-values-2mh2t8m94h -``` - -!!! hint "Note" - Stale `ConfigMaps`, previously generated by Kustomize, will be - removed from the cluster by kustomize-controller if - [pruning](../components/kustomize/kustomization/#garbage-collection) is enabled. - -## Refer to values inside the chart - -It is possible to replace the `values.yaml` with a different file present inside the Helm chart. - -```yaml -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: mongodb - namespace: mongodb -spec: - interval: 5m - chart: - spec: - chart: mongodb - sourceRef: - kind: HelmRepository - name: bitnami - valuesFiles: - - values.yaml - - values-production.yaml - values: - replicaCount: 5 -``` - -If the `spec.chart.spec.valuesFiles` doesn't exists inside the chart, helm-controller will not be able to -fetch the chart. To determine why the `HelmChart` fails to produce an artifact, you can inspect the status with: - -```console -$ kubectl get helmcharts --all-namespaces -NAME READY STATUS -mongodb False failed to locate override values file: values-prod.yaml -``` - -## Configure notifications - -The default toolkit installation configures the helm-controller to -broadcast events to the [notification-controller](../components/notification/controller.md). - -To receive the events as notifications, a `Provider` needs to be setup -first as described in the [notifications guide](notifications.md#define-a-provider). -Once you have set up the `Provider`, create a new `Alert` resource in -the `flux-system` to start receiving notifications about the Helm -release: - -```yaml -apiVersion: notification.toolkit.fluxcd.io/v1beta1 - kind: Alert - metadata: - generation: 2 - name: helm-podinfo - namespace: flux-system - spec: - providerRef: - name: slack - eventSeverity: info - eventSources: - - kind: HelmRepository - name: podinfo - - kind: HelmChart - name: default-podinfo - - kind: HelmRelease - name: podinfo - namespace: default -``` - -![helm-controller alerts](../_files/helm-controller-alerts.png) - -## Configure webhook receivers - -When using semver ranges for Helm releases, you may want to trigger an update -as soon as a new chart version is published to your Helm repository. -In order to notify source-controller about a chart update, -you can [setup webhook receivers](webhook-receivers.md). - -First generate a random string and create a secret with a `token` field: - -```sh -TOKEN=$(head -c 12 /dev/urandom | shasum | cut -d ' ' -f1) -echo $TOKEN - -kubectl -n flux-system create secret generic webhook-token \ ---from-literal=token=$TOKEN -``` - -When using [Harbor](https://goharbor.io/) as your Helm repository, you can define a receiver with: - -```yaml -apiVersion: notification.toolkit.fluxcd.io/v1beta1 -kind: Receiver -metadata: - name: helm-podinfo - namespace: flux-system -spec: - type: harbor - secretRef: - name: webhook-token - resources: - - kind: HelmRepository - name: podinfo -``` - -The notification-controller generates a unique URL using the provided token and the receiver name/namespace. - -Find the URL with: - -```console -$ kubectl -n flux-system get receiver/helm-podinfo - -NAME READY STATUS -helm-podinfo True Receiver initialised with URL: /hook/bed6d00b5555b1603e1f59b94d7fdbca58089cb5663633fb83f2815dc626d92b -``` - -Log in to the Harbor interface, go to Projects, select a project, and select Webhooks. -Fill the form with: - -* Endpoint URL: compose the address using the receiver LB and the generated URL `http:///` -* Auth Header: use the `token` string - -With the above settings, when you upload a chart, the following happens: - -* Harbor sends the chart push event to the receiver address -* Notification controller validates the authenticity of the payload using the auth header -* Source controller is notified about the changes -* Source controller pulls the changes into the cluster and updates the `HelmChart` version -* Helm controller is notified about the version change and upgrades the release - -!!! hint "Note" - Besides Harbor, you can define receivers for **GitHub**, **GitLab**, **Bitbucket** - and any other system that supports webhooks e.g. Jenkins, CircleCI, etc. - See the [Receiver CRD docs](../components/notification/receiver.md) for more details. diff --git a/docs/guides/image-update.md b/docs/guides/image-update.md deleted file mode 100644 index 6cc399ef..00000000 --- a/docs/guides/image-update.md +++ /dev/null @@ -1,949 +0,0 @@ -# Automate image updates to Git - -This guide walks you through configuring container image scanning and deployment rollouts with Flux. - -For a container image you can configure Flux to: - -- scan the container registry and fetch the image tags -- select the latest tag based on the defined policy (semver, calver, regex) -- replace the tag in Kubernetes manifests (YAML format) -- checkout a branch, commit and push the changes to the remote Git repository -- apply the changes in-cluster and rollout the container image - -!!! warning "Alpha version" - Note that the image update feature is currently alpha, - see the [roadmap](../roadmap/index.md) for more details. - -For production environments, this feature allows you to automatically deploy application patches -(CVEs and bug fixes), and keep a record of all deployments in Git history. - -**Production CI/CD workflow** - -* DEV: push a bug fix to the app repository -* DEV: bump the patch version and release e.g. `v1.0.1` -* CI: build and push a container image tagged as `registry.domain/org/app:v1.0.1` -* CD: pull the latest image metadata from the app registry (Flux image scanning) -* CD: update the image tag in the app manifest to `v1.0.1` (Flux cluster to Git reconciliation) -* CD: deploy `v1.0.1` to production clusters (Flux Git to cluster reconciliation) - -For staging environments, this features allow you to deploy the latest build of a branch, -without having to manually edit the app deployment manifest in Git. - -**Staging CI/CD workflow** - -* DEV: push code changes to the app repository `main` branch -* CI: build and push a container image tagged as `${GIT_BRANCH}-${GIT_SHA:0:7}-$(date +%s)` -* CD: pull the latest image metadata from the app registry (Flux image scanning) -* CD: update the image tag in the app manifest to `main-2d3fcbd-1611906956` (Flux cluster to Git reconciliation) -* CD: deploy `main-2d3fcbd-1611906956` to staging clusters (Flux Git to cluster reconciliation) - -## Prerequisites - -You will need a Kubernetes cluster version 1.16 or newer and kubectl version 1.18. -For a quick local test, you can use [Kubernetes kind](https://kind.sigs.k8s.io/docs/user/quick-start/). -Any other Kubernetes setup will work as well. - -In order to follow the guide you'll need a GitHub account and a -[personal access token](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line) -that can create repositories (check all permissions under `repo`). - -Export your GitHub personal access token and username: - -```sh -export GITHUB_TOKEN= -export GITHUB_USER= -``` - -## Install Flux - -!!! hint "Enable image automation components" - If you bootstrapped Flux before without the `--components-extra=` argument, you need to add - `--components-extra=image-reflector-controller,image-automation-controller` to your - bootstrapping routine as image automation components are not installed by default. - -Install Flux with the image automation components: - -```sh -flux bootstrap github \ - --components-extra=image-reflector-controller,image-automation-controller \ - --owner=$GITHUB_USER \ - --repository=flux-image-updates \ - --branch=main \ - --path=clusters/my-cluster \ - --token-auth \ - --personal -``` - -The bootstrap command creates a repository if one doesn't exist, and commits the manifests for the -Flux components to the default branch at the specified path. It then configures the target cluster to -synchronize with the specified path inside the repository. - -!!! hint "GitLab and other Git platforms" - You can install Flux and bootstrap repositories hosted on GitLab, BitBucket, Azure DevOps and - any other Git provider that support SSH or token-based authentication. - When using SSH, make sure the deploy key is configured with write access. - Please see the [installation guide](installation.md) for more details. - -## Deploy a demo app - -We'll be using a tiny webapp called [podinfo](https://github.com/stefanprodan/podinfo) to -showcase the image update feature. - -Clone your repository with: - -```sh -git clone https://github.com/$GITHUB_USER/flux-image-updates -cd flux-image-updates -``` - -Add the podinfo Kubernetes deployment file inside `cluster/my-cluster`: - -```sh -curl -sL https://raw.githubusercontent.com/stefanprodan/podinfo/5.0.0/kustomize/deployment.yaml \ -> ./clusters/my-cluster/podinfo-deployment.yaml -``` - -Commit and push changes to main branch: - -```sh -git add -A && \ -git commit -m "add podinfo deployment" && \ -git push origin main -``` - -Tell Flux to pull and apply the changes or wait one minute for Flux to detect the changes on its own: - -```sh -flux reconcile kustomization flux-system --with-source -``` - -Print the podinfo image deployed on your cluster: - -```console -$ kubectl get deployment/podinfo -oyaml | grep 'image:' -image: ghcr.io/stefanprodan/podinfo:5.0.0 -``` - -## Configure image scanning - -Create an `ImageRepository` to tell Flux which container registry to scan for new tags: - -```sh -flux create image repository podinfo \ ---image=ghcr.io/stefanprodan/podinfo \ ---interval=1m \ ---export > ./clusters/my-cluster/podinfo-registry.yaml -``` - -The above command generates the following manifest: - -```yaml -apiVersion: image.toolkit.fluxcd.io/v1alpha2 -kind: ImageRepository -metadata: - name: podinfo - namespace: flux-system -spec: - image: ghcr.io/stefanprodan/podinfo - interval: 1m0s -``` - -For private images, you can create a Kubernetes secret -in the same namespace as the `ImageRepository` with -`kubectl create secret docker-registry`. Then you can configure -Flux to use the credentials by referencing the Kubernetes secret -in the `ImageRepository`: - -```yaml -kind: ImageRepository -spec: - secretRef: - name: regcred -``` - -!!! hint "Storing secrets in Git" - Note that if you want to store the image pull secret in Git, you can encrypt - the manifest with [Mozilla SOPS](mozilla-sops.md) or [Sealed Secrets](sealed-secrets.md). - -Create an `ImagePolicy` to tell Flux which semver range to use when filtering tags: - -```sh -flux create image policy podinfo \ ---image-ref=podinfo \ ---select-semver=5.0.x \ ---export > ./clusters/my-cluster/podinfo-policy.yaml -``` - -The above command generates the following manifest: - -```yaml -apiVersion: image.toolkit.fluxcd.io/v1alpha2 -kind: ImagePolicy -metadata: - name: podinfo - namespace: flux-system -spec: - imageRepositoryRef: - name: podinfo - policy: - semver: - range: 5.0.x -``` - -!!! hint "semver ranges" - A semver range that includes stable releases can be defined with - `1.0.x` (patch versions only) or `>=1.0.0 <2.0.0` (minor and patch versions). - If you want to include pre-release e.g. `1.0.0-rc.1`, - you can define a range like: `^1.x-0` or `>1.0.0-rc <2.0.0-rc`. - -!!! hint "Other policy examples" - For policies that make use of CalVer, build IDs or alphabetical sorting, - have a look at [the examples](../components/image/imagepolicies.md#examples). - -Commit and push changes to main branch: - -```sh -git add -A && \ -git commit -m "add podinfo image scan" && \ -git push origin main -``` - -Tell Flux to pull and apply changes: - -```sh -flux reconcile kustomization flux-system --with-source -``` - -Wait for Flux to fetch the image tag list from GitHub container registry: - -```console -$ flux get image repository podinfo -NAME READY MESSAGE LAST SCAN -podinfo True successful scan, found 13 tags 2020-12-13T17:51:48+02:00 -``` - -Find which image tag matches the policy semver range with: - -```console -$ flux get image policy podinfo -NAME READY MESSAGE -podinfo True Latest image tag for 'ghcr.io/stefanprodan/podinfo' resolved to: 5.0.3 -``` - -## Configure image updates - -Edit the `podinfo-deployment.yaml` and add a marker to tell Flux which policy to use when updating the container image: - -```yaml -spec: - containers: - - name: podinfod - image: ghcr.io/stefanprodan/podinfo:5.0.0 # {"$imagepolicy": "flux-system:podinfo"} -``` - -Create an `ImageUpdateAutomation` to tell Flux which Git repository to write image updates to: - -```sh -flux create image update flux-system \ ---git-repo-ref=flux-system \ ---git-repo-path="./clusters/my-cluster" \ ---checkout-branch=main \ ---push-branch=main \ ---author-name=fluxcdbot \ ---author-email=fluxcdbot@users.noreply.github.com \ ---commit-template="{{range .Updated.Images}}{{println .}}{{end}}" \ ---export > ./clusters/my-cluster/flux-system-automation.yaml -``` - -The above command generates the following manifest: - -```yaml -apiVersion: image.toolkit.fluxcd.io/v1alpha2 -kind: ImageUpdateAutomation -metadata: - name: flux-system - namespace: flux-system -spec: - interval: 1m0s - sourceRef: - kind: GitRepository - name: flux-system - git: - checkout: - ref: - branch: main - commit: - author: - email: fluxcdbot@users.noreply.github.com - name: fluxcdbot - messageTemplate: '{{range .Updated.Images}}{{println .}}{{end}}' - push: - branch: main - update: - path: ./clusters/my-cluster - strategy: Setters -``` - -Commit and push changes to main branch: - -```sh -git add -A && \ -git commit -m "add image updates automation" && \ -git push origin main -``` - -Note that the `ImageUpdateAutomation` runs all the policies found in its namespace at the specified interval. - -Tell Flux to pull and apply changes: - -```sh -flux reconcile kustomization flux-system --with-source -``` - -In a couple of seconds, Flux will push a commit to your repository with -the latest image tag that matches the podinfo policy: - -```console -$ git pull && cat clusters/my-cluster/podinfo-deployment.yaml | grep "image:" -image: ghcr.io/stefanprodan/podinfo:5.0.3 # {"$imagepolicy": "flux-system:podinfo"} -``` - -Wait for Flux to apply the latest commit on the cluster and verify that podinfo was updated to `5.0.3`: - -```console -$ watch "kubectl get deployment/podinfo -oyaml | grep 'image:'" -image: ghcr.io/stefanprodan/podinfo:5.0.3 -``` - -You can check the status of the image automation objects with: - -```sh -flux get images all --all-namespaces -``` - -## Configure image update for custom resources - -Besides Kubernetes native kinds (Deployment, StatefulSet, DaemonSet, CronJob), -Flux can be used to patch image tags in any Kubernetes custom resource stored in Git. - -The image policy marker format is: - -* `{"$imagepolicy": ":"}` -* `{"$imagepolicy": "::tag"}` - - -`HelmRelease` example: - -```yaml -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: podinfo - namespace: default -spec: - values: - image: - repository: ghcr.io/stefanprodan/podinfo - tag: 5.0.0 # {"$imagepolicy": "flux-system:podinfo:tag"} -``` - -Tekton `Task` example: - -```yaml -apiVersion: tekton.dev/v1beta1 -kind: Task -metadata: - name: golang - namespace: default -spec: - steps: - - name: golang - image: docker.io/golang:1.15.6 # {"$imagepolicy": "flux-system:golang"} -``` - -Flux `Kustomization` example: - -```yaml -apiVersion: kustomize.toolkit.fluxcd.io/v1beta1 -kind: Kustomization -metadata: - name: podinfo - namespace: default -spec: - images: - - name: ghcr.io/stefanprodan/podinfo - newName: ghcr.io/stefanprodan/podinfo - newTag: 5.0.0 # {"$imagepolicy": "flux-system:podinfo:tag"} -``` - -Kustomize config (`kustomization.yaml`) example: - -```yaml -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: -- deployment.yaml -images: -- name: ghcr.io/stefanprodan/podinfo - newName: ghcr.io/stefanprodan/podinfo - newTag: 5.0.0 # {"$imagepolicy": "flux-system:podinfo:tag"} -``` - -## Push updates to a different branch - -With `.spec.git.push.branch` you can configure Flux to push the image updates to different branch -than the one used for checkout. If the specified branch doesn't exist, Flux will create it for you. - -```yaml -kind: ImageUpdateAutomation -metadata: - name: flux-system -spec: - git: - checkout: - ref: - branch: main - push: - branch: flux-image-updates -``` - -You can use CI automation e.g. GitHub Actions such as -[create-pull-request](https://github.com/peter-evans/create-pull-request) -to open a pull request against the checkout branch. - -This way you can manually approve the image updates before they are applied on your clusters. - -## Configure the commit message - -The `.spec.git.commit.messageTemplate` field is a string which is used as a template for the commit message. - -The message template is a [Go text template](https://golang.org/pkg/text/template/) that -lets you range over the objects and images e.g.: - -```yaml -kind: ImageUpdateAutomation -metadata: - name: flux-system -spec: - git: - commit: - messageTemplate: | - Automated image update - - Automation name: {{ .AutomationObject }} - - Files: - {{ range $filename, $_ := .Updated.Files -}} - - {{ $filename }} - {{ end -}} - - Objects: - {{ range $resource, $_ := .Updated.Objects -}} - - {{ $resource.Kind }} {{ $resource.Name }} - {{ end -}} - - Images: - {{ range .Updated.Images -}} - - {{.}} - {{ end -}} - author: - email: fluxcdbot@users.noreply.github.com - name: fluxcdbot -``` - -## Trigger image updates with webhooks - -You may want to trigger a deployment -as soon as a new image tag is pushed to your container registry. -In order to notify the image-reflector-controller about new images, -you can [setup webhook receivers](webhook-receivers.md). - -First generate a random string and create a secret with a `token` field: - -```sh -TOKEN=$(head -c 12 /dev/urandom | shasum | cut -d ' ' -f1) -echo $TOKEN - -kubectl -n flux-system create secret generic webhook-token \ ---from-literal=token=$TOKEN -``` - -Define a receiver for DockerHub: - -```yaml -apiVersion: notification.toolkit.fluxcd.io/v1beta1 -kind: Receiver -metadata: - name: podinfo - namespace: flux-system -spec: - type: dockerhub - secretRef: - name: webhook-token - resources: - - kind: ImageRepository - name: podinfo -``` - -The notification-controller generates a unique URL using the provided token and the receiver name/namespace. - -Find the URL with: - -```console -$ kubectl -n flux-system get receiver/podinfo - -NAME READY STATUS -podinfo True Receiver initialised with URL: /hook/bed6d00b5555b1603e1f59b94d7fdbca58089cb5663633fb83f2815dc626d92b -``` - -Log in to DockerHub web interface, go to your image registry Settings and select Webhooks. -Fill the form "Webhook URL" by composing the address using the receiver -LB and the generated URL `http:///`. - -!!! hint "Note" - Besides DockerHub, you can define receivers for **Harbor**, **Quay**, **Nexus**, **GCR**, - and any other system that supports webhooks e.g. GitHub Actions, Jenkins, CircleCI, etc. - See the [Receiver CRD docs](../components/notification/receiver.md) for more details. - -## Incident management - -### Suspend automation - -During an incident you may wish to stop Flux from pushing image updates to Git. - -You can suspend the image automation directly in-cluster: - -```sh -flux suspend image update flux-system -``` - -Or by editing the `ImageUpdateAutomation` manifest in Git: - -```yaml -kind: ImageUpdateAutomation -metadata: - name: flux-system - namespace: flux-system -spec: - suspend: true -``` - -Once the incident is resolved, you can resume automation with: - -```sh -flux resume image update flux-system -``` - -If you wish to pause the automation for a particular image only, -you can suspend/resume the image scanning: - -```sh -flux suspend image repository podinfo -``` - -### Revert image updates - -Assuming you've configured Flux to update an app to its latest stable version: - -```sh -flux create image policy podinfo \ ---image-ref=podinfo \ ---select-semver=">=5.0.0" -``` - -If the latest version e.g. `5.0.1` causes an incident in production, you can tell Flux to -revert the image tag to a previous version e.g. `5.0.0` with: - -```sh -flux create image policy podinfo \ ---image-ref=podinfo \ ---select-semver=5.0.0 -``` - -Or by changing the semver range in Git: - -```yaml -kind: ImagePolicy -metadata: - name: podinfo - namespace: flux-system -spec: - policy: - semver: - range: 5.0.0 -``` - -Based on the above configuration, Flux will patch the podinfo deployment manifest in Git -and roll out `5.0.0` in-cluster. - -When a new version is available e.g. `5.0.2`, you can update the policy once more -and tell Flux to consider only versions greater than `5.0.1`: - -```sh -flux create image policy podinfo \ ---image-ref=podinfo \ ---select-semver=">5.0.1" -``` - -## ImageRepository cloud providers authentication - -If relying on a cloud provider image repository, you might need to do some extra -work in order to configure the ImageRepository resource credentials. Here are -some common examples for the most popular cloud provider docker registries. - -!!! warning "Workarounds" - The examples below are intended as workaround solutions until native - authentication mechanisms are implemented in Flux itself to support this in - a more straightforward manner. - -### AWS Elastic Container Registry - -The registry authentication credentials for ECR expire every 12 hours. -Considering this limitation, one needs to ensure the credentials are being -refreshed before expiration so that the controller can rely on them for -authentication. - -The solution proposed is to create a cronjob that runs every 6 hours which would -re-create the `docker-registry` secret using a new token. - -Edit and save the following snippet to a file -`./clusters/my-cluster/ecr-sync.yaml`, commit and push it to git. - -```yaml -kind: Role -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: ecr-credentials-sync - namespace: flux-system -rules: -- apiGroups: [""] - resources: - - secrets - verbs: - - delete - - create ---- -kind: RoleBinding -apiVersion: rbac.authorization.k8s.io/v1 -metadata: - name: ecr-credentials-sync - namespace: flux-system -subjects: -- kind: ServiceAccount - name: ecr-credentials-sync -roleRef: - kind: Role - name: ecr-credentials-sync - apiGroup: "" ---- -apiVersion: v1 -kind: ServiceAccount -metadata: - name: ecr-credentials-sync - namespace: flux-system - # Uncomment and edit if using IRSA - # annotations: - # eks.amazonaws.com/role-arn: ---- -apiVersion: batch/v1beta1 -kind: CronJob -metadata: - name: ecr-credentials-sync - namespace: flux-system -spec: - suspend: false - schedule: 0 */6 * * * - failedJobsHistoryLimit: 1 - successfulJobsHistoryLimit: 1 - jobTemplate: - spec: - template: - spec: - serviceAccountName: ecr-credentials-sync - restartPolicy: Never - volumes: - - name: token - emptyDir: - medium: Memory - initContainers: - - image: amazon/aws-cli - name: get-token - imagePullPolicy: IfNotPresent - # You will need to set the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables if not using - # IRSA. It is recommended to store the values in a Secret and load them in the container using envFrom. - # envFrom: - # - secretRef: - # name: aws-credentials - env: - - name: REGION - value: us-east-1 # change this if ECR repo is in a different region - volumeMounts: - - mountPath: /token - name: token - command: - - /bin/sh - - -ce - - aws ecr get-login-password --region ${REGION} > /token/ecr-token - containers: - - image: bitnami/kubectl - name: create-secret - imagePullPolicy: IfNotPresent - env: - - name: SECRET_NAME - value: ecr-credentials - - name: ECR_REGISTRY - value: .dkr.ecr..amazonaws.com # fill in the account id and region - volumeMounts: - - mountPath: /token - name: token - command: - - /bin/bash - - -ce - - |- - kubectl delete secret --ignore-not-found $SECRET_NAME - kubectl create secret docker-registry $SECRET_NAME \ - --docker-server="$ECR_REGISTRY" \ - --docker-username=AWS \ - --docker-password="$(@.iam.gserviceaccount.com - name: gcr-credentials-sync - namespace: flux-system ---- -apiVersion: batch/v1beta1 -kind: CronJob -metadata: - name: gcr-credentials-sync - namespace: flux-system -spec: - suspend: false - schedule: "*/45 * * * *" - failedJobsHistoryLimit: 1 - successfulJobsHistoryLimit: 1 - jobTemplate: - spec: - template: - spec: - serviceAccountName: gcr-credentials-sync - restartPolicy: Never - containers: - - image: google/cloud-sdk - name: create-secret - imagePullPolicy: IfNotPresent - env: - - name: SECRET_NAME - value: gcr-credentials - - name: GCR_REGISTRY - value: # fill in the registry name e.g gcr.io, eu.gcr.io - command: - - /bin/bash - - -ce - - |- - kubectl delete secret --ignore-not-found $SECRET_NAME - kubectl create secret docker-registry $SECRET_NAME \ - --docker-server="$GCR_REGISTRY" \ - --docker-username=oauth2accesstoken \ - --docker-password="$(gcloud auth print-access-token)" -``` - -Since the cronjob will not create a job right away, after applying the manifest, -you can manually create an init job using the following command: - -```console -$ kubectl create job --from=cronjob/gcr-credentials-sync -n flux-system gcr-credentials-sync-init -``` - -After the job runs, a secret named `gcr-credentials` should be created. Use this -name in your GCR ImageRepository resource manifest as the value for -`.spec.secretRef.name`. - -```yaml -spec: - secretRef: - name: gcr-credentials -``` - -#### Using a JSON key [long-lived] - -!!! warning "Less secure option" - From [Google documentation on authenticating container registry](https://cloud.google.com/container-registry/docs/advanced-authentication#json-key) - > A user-managed key-pair that you can use as a credential for a service account. - > Because the credential is long-lived, it is the least secure option of all the available authentication methods. - > When possible, use an access token or another available authentication method to reduce the risk of - > unauthorized access to your artifacts. If you must use a service account key, - > ensure that you follow best practices for managing credentials. - -A Json key doesn't expire, so we don't need a cronjob, -we just need to create the secret and reference it in the ImagePolicy. - -First, create a json key file by following this -[documentation](https://cloud.google.com/container-registry/docs/advanced-authentication). -Grant the service account the role of `Container Registry Service Agent` -so that it can access GCR and download the json file. - -Then create a secret, encrypt it using [Mozilla SOPS](mozilla-sops.md) -or [Sealed Secrets](sealed-secrets.md) , commit and push the encypted file to git. - -```sh -kubectl create secret docker-registry \ - --docker-server= \ # e.g gcr.io - --docker-username=_json_key \ - --docker-password="$(cat )" -``` - -### Azure Container Registry - -AKS clusters are not able to pull and run images from ACR by default. -Read [Integrating AKS /w ACR](https://docs.microsoft.com/en-us/azure/aks/cluster-container-registry-integration) as a potential pre-requisite -before integrating Flux `ImageRepositories` with ACR. - -Note that the resulting ImagePullSecret for Flux could also be specified by Pods within the same Namespace to pull and run ACR images as well. - -#### Generating Tokens for Managed Identities [short-lived] - -As a pre-requisite, your AKS cluster will need [AAD Pod Identity](../use-cases/azure.md#aad-pod-identity) installed. - -Once we have AAD Pod Identity installed, we can create a Deployment that frequently refreshes an image pull secret into -our desired Namespace. - -Create a directory in your control repository and save this `kustomization.yaml`: -```yaml -# kustomization.yaml -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: -- https://github.com/fluxcd/flux2/manifests/integrations/registry-credentials-sync/azure?ref=main -patchesStrategicMerge: -- config-patches.yaml -``` -Save and configure the following patch -- note the instructional comments for configuring matching Azure resources: -```yaml -# config-patches.yaml ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: credentials-sync -data: - ACR_NAME: my-registry - KUBE_SECRET: my-registry # does not yet exist -- will be created in the same Namespace - SYNC_PERIOD: "3600" # ACR tokens expire every 3 hours; refresh faster than that - -# Create an identity in Azure and assign it a role to pull from ACR (note: the identity's resourceGroup should match the desired ACR): -# az identity create -n acr-sync -# az role assignment create --role AcrPull --assignee-object-id "$(az identity show -n acr-sync -o tsv --query principalId)" -# Fetch the clientID and resourceID to configure the AzureIdentity spec below: -# az identity show -n acr-sync -otsv --query clientId -# az identity show -n acr-sync -otsv --query resourceId ---- -apiVersion: aadpodidentity.k8s.io/v1 -kind: AzureIdentity -metadata: - name: credentials-sync # name must match the stub-resource in az-identity.yaml - namespace: flux-system -spec: - clientID: 4ceaa448-d7b9-4a80-8f32-497eaf3d3287 - resourceID: /subscriptions/8c69185e-55f9-4d00-8e71-a1b1bb1386a1/resourcegroups/stealthybox/providers/Microsoft.ManagedIdentity/userAssignedIdentities/acr-sync - type: 0 # user-managed identity -``` - -Verify that `kustomize build .` works, then commit the directory to you control repo. -Flux will apply the Deployment and it will use the AAD managed identity for that Pod to regularly fetch ACR tokens into your configured `KUBE_SECRET` name. -Reference the `KUBE_SECRET` value from any `ImageRepository` objects for that ACR registry. - -This example uses the `fluxcd/flux2` github archive as a remote base, but you may copy the [./manifests/integrations/registry-credentials-sync/azure](https://github.com/fluxcd/flux2/tree/main/manifests/integrations/registry-credentials-sync/azure) -folder into your own repository or use a git submodule to vendor it if preferred. - -#### Using Static Credentials [long-lived] - -!!! info - Using a static credential requires a Secrets management solution compatible with your GitOps workflow. - -Follow the official Azure documentation for [Creating an Image Pull Secret for ACR](https://docs.microsoft.com/en-us/azure/container-registry/container-registry-auth-kubernetes). - -Instead of creating the Secret directly into your Kubernetes cluster, encrypt it using [Mozilla SOPS](mozilla-sops.md) -or [Sealed Secrets](sealed-secrets.md), then commit and push the encypted file to git. - -This Secret should be in the same Namespace as your flux `ImageRepository` object. -Update the `ImageRepository.spec.secretRef` to point to it. - -It is also possible to create [Repository Scoped Tokens](https://docs.microsoft.com/en-us/azure/container-registry/container-registry-repository-scoped-permissions). - -!!! warning - Repository Scoped Tokens are in preview and do have limitations. diff --git a/docs/guides/installation.md b/docs/guides/installation.md deleted file mode 100644 index 496c53a8..00000000 --- a/docs/guides/installation.md +++ /dev/null @@ -1,570 +0,0 @@ -# Installation - -This guide walks you through setting up Flux v2 (hereafter: "Flux") to -manage one or more Kubernetes clusters. - -## Prerequisites - -You will need a Kubernetes cluster version **1.16** or newer -and kubectl version **1.18** or newer. - -## Install the Flux CLI - -With Homebrew: - -```sh -brew install fluxcd/tap/flux -``` - -With Bash: - -```sh -curl -s https://fluxcd.io/install.sh | sudo bash - -# enable completions in ~/.bash_profile -. <(flux completion bash) -``` - -Command-line completion for `zsh`, `fish`, and `powershell` -are also supported with their own sub-commands. - -Binaries for macOS, Windows and Linux AMD64/ARM are available for download on the -[release page](https://github.com/fluxcd/flux2/releases). - -A container image with `kubectl` and `flux` is available on DockerHub and GitHub: - -* `docker.io/fluxcd/flux-cli:` -* `ghcr.io/fluxcd/flux-cli:` - -Verify that your cluster satisfies the prerequisites with: - -```sh -flux check --pre -``` - -## Bootstrap - -Using the `flux bootstrap` command you can install Flux on a -Kubernetes cluster and configure it to manage itself from a Git -repository. -If the Flux components are present on the cluster, the bootstrap -command will perform an upgrade if needed. The bootstrap is -idempotent, it's safe to run the command as many times as you want. - -The Flux component images are published to DockerHub and GitHub Container Registry -as [multi-arch container images](https://docs.docker.com/docker-for-mac/multi-arch/) -with support for Linux `amd64`, `arm64` and `armv7` (e.g. 32bit Raspberry Pi) -architectures. - -If your Git provider is **GitHub**, **GitLab** or **Azure DevOps** please follow the specific bootstrap procedure: - -* [GitHub.com and GitHub Enterprise](#github-and-github-enterprise) -* [GitLab.com and GitLab Enterprise](#gitlab-and-gitlab-enterprise) -* [Azure DevOps](../use-cases/azure.md#flux-installation-for-azure-devops) - -### Generic Git Server - -The `bootstrap git` command takes an existing Git repository, clones it and -commits the Flux components manifests to the specified branch. Then it -configures the target cluster to synchronize with that repository. - -Run bootstrap for a Git repository and authenticate with your SSH agent: - -```sh -flux bootstrap git \ - --url=ssh://git@// \ - --branch= \ - --path=clusters/my-cluster -``` - -The above command will generate a SSH key (defaults to RSA 2048 but can be changed with `--ssh-key-algorithm`), -and it will prompt you to add the SSH public key as a deploy key to your repository. - -If you want to use your own SSH key, you can provide a **passwordless** private key using -`--private-key-file=`. -This option can also be used if no SSH agent is available on your machine. - -!!! hint "Bootstrap options" - There are many options available when bootstrapping Flux, such as installing a subset of Flux components, - setting the Kubernetes context, changing the Git author name and email, enabling Git submodules, and more. - To list all the available options run `flux bootstrap git --help`. - -If your Git server doesn't support SSH, you can run bootstrap for Git over HTTPS: - -```sh -flux bootstrap git \ - --url=https://// \ - --username= \ - --password= \ - --token-auth=true \ - --path=clusters/my-cluster -``` - -If your Git server uses a self-signed TLS certificate, you can specify the CA file with -`--ca-file=`. - -With `--path` you can configure the directory which will be used to reconcile the target cluster. -To control multiple clusters from the same Git repository, you have to set a unique path per -cluster e.g. `clusters/staging` and `clusters/production`: - -```sh -./clusters/ -├── staging # <- path=clusters/staging -│   └── flux-system # <- namespace dir generated by bootstrap -│   ├── gotk-components.yaml -│   ├── gotk-sync.yaml -│   └── kustomization.yaml -└── production # <- path=clusters/production - └── flux-system -``` - -After running bootstrap you can place Kubernetes YAMLs inside a dir under path -e.g. `clusters/staging/my-app`, and Flux will reconcile them on your cluster. - -For examples on how you can structure your Git repository see: - -* [flux2-kustomize-helm-example](https://github.com/fluxcd/flux2-kustomize-helm-example) -* [flux2-multi-tenancy](https://github.com/fluxcd/flux2-multi-tenancy) - -### GitHub and GitHub Enterprise - -The `bootstrap github` command creates a GitHub repository if one doesn't exist and -commits the Flux components manifests to specified branch. Then it -configures the target cluster to synchronize with that repository by -setting up a SSH deploy key or by using token-based authentication. - -Generate a [personal access token](https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line) -that can create repositories by checking all permissions under `repo`. - -Export your GitHub personal access token as an environment variable: - -```sh -export GITHUB_TOKEN= -``` - -Run the bootstrap for a repository on your personal GitHub account: - -```sh -flux bootstrap github \ - --owner=my-github-username \ - --repository=my-repository \ - --path=clusters/my-cluster \ - --personal -``` - -!!! hint "Deploy key" - The bootstrap command creates an SSH key which it stores as a secret in the - Kubernetes cluster. The key is also used to create a deploy key in the GitHub - repository. The new deploy key will be linked to the personal access token used - to authenticate. **Removing the personal access token will also remove the deploy key.** - -Run the bootstrap for a repository owned by a GitHub organization: - -```sh -flux bootstrap github \ - --owner=my-github-organization \ - --repository=my-repository \ - --team=team1-slug \ - --team=team2-slug \ - --path=clusters/my-cluster -``` - -When you specify a list of teams, those teams will be granted maintainer access to the repository. - -To run the bootstrap for a repository hosted on GitHub Enterprise, you have to specify your GitHub hostname: - -```sh -flux bootstrap github \ - --hostname=my-github-enterprise.com \ - --ssh-hostname=my-github-enterprise.com \ - --owner=my-github-organization \ - --repository=my-repository \ - --branch=main \ - --path=clusters/my-cluster -``` - -If your GitHub Enterprise has SSH access disabled, you can use HTTPS and token authentication with: - -```sh -flux bootstrap github \ - --token-auth \ - --hostname=my-github-enterprise.com \ - --owner=my-github-organization \ - --repository=my-repository \ - --branch=main \ - --path=clusters/my-cluster -``` - -### GitLab and GitLab Enterprise - -The `bootstrap gitlab` command creates a GitLab repository if one doesn't exist and -commits the Flux components manifests to specified branch. Then it -configures the target cluster to synchronize with that repository by -setting up a SSH deploy key or by using token-based authentication. - -Generate a [personal access token](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html) -that grants complete read/write access to the GitLab API. - -Export your GitLab personal access token as an environment variable: - -```sh -export GITLAB_TOKEN= -``` - -Run the bootstrap for a repository on your personal GitLab account: - -```sh -flux bootstrap gitlab \ - --owner=my-gitlab-username \ - --repository=my-repository \ - --branch=master \ - --path=clusters/my-cluster \ - --token-auth \ - --personal -``` - -To run the bootstrap for a repository using deploy keys for authentication, you have to specify the SSH hostname: - -```sh -flux bootstrap gitlab \ - --ssh-hostname=gitlab.com \ - --owner=my-gitlab-username \ - --repository=my-repository \ - --branch=master \ - --path=clusters/my-cluster -``` - -!!! hint "Authentication" - When providing the `--ssh-hostname`, a read-only (SSH) deploy key will be added - to your repository, otherwise your GitLab personal token will be used to - authenticate against the HTTPS endpoint instead. - -Run the bootstrap for a repository owned by a GitLab (sub)group: - -```sh -flux bootstrap gitlab \ - --owner=my-gitlab-group/my-gitlab-subgroup \ - --repository=my-repository \ - --branch=master \ - --path=clusters/my-cluster -``` - -To run the bootstrap for a repository hosted on GitLab on-prem or enterprise, you have to specify your GitLab hostname: - -```sh -flux bootstrap gitlab \ - --hostname=my-gitlab.com \ - --token-auth \ - --owner=my-gitlab-group \ - --repository=my-repository \ - --branch=master \ - --path=clusters/my-cluster -``` - -### Air-gapped Environments - -To bootstrap Flux on air-gapped environments without access to github.com and ghcr.io, first you'll need -to download the `flux` binary, and the container images from a computer with access to internet. - -List all container images: - -```console -$ flux install --export | grep ghcr.io - -image: ghcr.io/fluxcd/helm-controller:v0.8.0 -image: ghcr.io/fluxcd/kustomize-controller:v0.9.0 -image: ghcr.io/fluxcd/notification-controller:v0.9.0 -image: ghcr.io/fluxcd/source-controller:v0.9.0 -``` - -Pull the images locally and push them to your container registry: - -```sh -docker pull ghcr.io/fluxcd/source-controller:v0.9.0 -docker tag ghcr.io/fluxcd/source-controller:v0.9.0 registry.internal/fluxcd/source-controller:v0.9.0 -docker push registry.internal/fluxcd/source-controller:v0.9.0 -``` - -Copy `flux` binary to a computer with access to your air-gapped cluster, -and create the pull secret in the `flux-system` namespace: - -```sh -kubectl create ns flux-system - -kubectl -n flux-system create secret generic regcred \ - --from-file=.dockerconfigjson=/.docker/config.json \ - --type=kubernetes.io/dockerconfigjson -``` - -Finally, bootstrap Flux using the images from your private registry: - -```sh -flux bootstrap \ - --registry=registry.internal/fluxcd \ - --image-pull-secret=regcred \ - --hostname=my-git-server.internal -``` - -Note that when running `flux bootstrap` without specifying a `--version`, -the CLI will use the manifests embedded in its binary instead of downloading -them from GitHub. You can determine which version you'll be installing, -with `flux --version`. - -## Bootstrap with Terraform - -The bootstrap procedure can be implemented with Terraform using the Flux provider published on -[registry.terraform.io](https://registry.terraform.io/providers/fluxcd/flux). - -The provider consists of two data sources (`flux_install` and `flux_sync`) for generating the -Kubernetes manifests that can be used to install or upgrade Flux: - -```hcl -data "flux_install" "main" { - target_path = "clusters/my-cluster" - network_policy = false - version = "latest" -} - -data "flux_sync" "main" { - target_path = "clusters/my-cluster" - url = "https://github.com/${var.github_owner}/${var.repository_name}" - branch = "main" -} -``` - -For more details on how to use the Terraform provider -please see [fluxcd/terraform-provider-flux](https://github.com/fluxcd/terraform-provider-flux). - -## Customize Flux manifests - -You can customize the Flux components before or after running bootstrap. - -Assuming you want to customise the Flux controllers before they get deployed on the cluster, -first you'll need to create a Git repository and clone it locally. - -Create the file structure required by bootstrap with: - -```sh -mkdir -p clusters/my-cluster/flux-system -touch clusters/my-cluster/flux-system/gotk-components.yaml \ - clusters/my-cluster/flux-system/gotk-patches.yaml \ - clusters/my-cluster/flux-system/gotk-sync.yaml \ - clusters/my-cluster/flux-system/kustomization.yaml -``` - -Assuming you want to add custom annotations and labels to the Flux controllers, -edit `clusters/my-cluster/gotk-patches.yaml` and set the metadata for source-controller and kustomize-controller pods: - -```yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: source-controller - namespace: flux-system -spec: - template: - metadata: - annotations: - custom: annotation - labels: - custom: label ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: kustomize-controller - namespace: flux-system -spec: - template: - metadata: - annotations: - custom: annotation - labels: - custom: label -``` - -Edit `clusters/my-cluster/kustomization.yaml` and set the resources and patches: - -```yaml -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: - - gotk-components.yaml - - gotk-sync.yaml -patchesStrategicMerge: - - gotk-patches.yaml -``` - -Push the changes to main branch: - -```sh -git add -A && git commit -m "add flux customisations" && git push -``` - -Now run the bootstrap for `clusters/my-cluster`: - -```sh -flux bootstrap git \ - --url=ssh://git@// \ - --branch=main \ - --path=clusters/my-cluster -``` - -When the controllers are deployed for the first time on your cluster, they will contain all -the customisations from `gotk-patches.yaml`. - -You can make changes to the patches after bootstrap and Flux will apply them in-cluster on its own. - -## Dev install - -For testing purposes you can install Flux without storing its manifests in a Git repository: - -```sh -flux install -``` - -Or using kubectl: - -```sh -kubectl apply -f https://github.com/fluxcd/flux2/releases/latest/download/install.yaml -``` - -Then you can register Git repositories and reconcile them on your cluster: - -```sh -flux create source git podinfo \ - --url=https://github.com/stefanprodan/podinfo \ - --tag-semver=">=4.0.0" \ - --interval=1m - -flux create kustomization podinfo-default \ - --source=podinfo \ - --path="./kustomize" \ - --prune=true \ - --validation=client \ - --interval=10m \ - --health-check="Deployment/podinfo.default" \ - --health-check-timeout=2m -``` - -You can register Helm repositories and create Helm releases: - -```sh -flux create source helm bitnami \ - --interval=1h \ - --url=https://charts.bitnami.com/bitnami - -flux create helmrelease nginx \ - --interval=1h \ - --release-name=nginx-ingress-controller \ - --target-namespace=kube-system \ - --source=HelmRepository/bitnami \ - --chart=nginx-ingress-controller \ - --chart-version="5.x.x" -``` - -## Upgrade - -!!! note "Patch versions" - It is safe and advised to use the latest PATCH version when upgrading to a - new MINOR version. - -Update Flux CLI to the latest release with `brew upgrade fluxcd/tap/flux` or by -downloading the binary from [GitHub](https://github.com/fluxcd/flux2/releases). - -Verify that you are running the latest version with: - -```sh -flux --version -``` - -### Bootstrap upgrade - -If you've used the [bootstrap](#bootstrap) procedure to deploy Flux, -then rerun the bootstrap command for each cluster using the same arguments as before: - -```sh -flux bootstrap github \ - --owner=my-github-username \ - --repository=my-repository \ - --branch=main \ - --path=clusters/my-cluster \ - --personal -``` - -The above command will clone the repository, it will update the components manifest in -`/flux-system/gotk-components.yaml` and it will push the changes to the remote branch. - -Tell Flux to pull the manifests from Git and upgrade itself with: - -```sh -flux reconcile source git flux-system -``` - -Verify that the controllers have been upgrade with: - -```sh -flux check -``` - -!!! hint "Automated upgrades" - You can automate the components manifest update with GitHub Actions - and open a PR when there is a new Flux version available. - For more details please see [Flux GitHub Action docs](https://github.com/fluxcd/flux2/tree/main/action). - -### Terraform upgrade - -Update the Flux provider to the [latest release](https://github.com/fluxcd/terraform-provider-flux/releases) -and run `terraform apply`. - -Tell Flux to upgrade itself in-cluster or wait for it to pull the latest commit from Git: - -```sh -kubectl annotate --overwrite gitrepository/flux-system reconcile.fluxcd.io/requestedAt="$(date +%s)" -``` - -### In-cluster upgrade - -If you've installed Flux directly on the cluster, then rerun the install command: - -```sh -flux install -``` - -The above command will apply the new manifests on your cluster. -You can verify that the controllers have been upgraded to the latest version with `flux check`. - -If you've installed Flux directly on the cluster with kubectl, -then rerun the command using the latest manifests from the `main` branch: - -```sh -kustomize build https://github.com/fluxcd/flux2/manifests/install?ref=main | kubectl apply -f- -``` - -## Uninstall - -You can uninstall Flux with: - -```sh -flux uninstall --namespace=flux-system -``` - -The above command performs the following operations: - -- deletes Flux components (deployments and services) -- deletes Flux network policies -- deletes Flux RBAC (service accounts, cluster roles and cluster role bindings) -- removes the Kubernetes finalizers from Flux custom resources -- deletes Flux custom resource definitions and custom resources -- deletes the namespace where Flux was installed - -If you've installed Flux in a namespace that you wish to preserve, you -can skip the namespace deletion with: - -```sh -flux uninstall --namespace=infra --keep-namespace -``` - -!!! hint - Note that the `uninstall` command will not remove any Kubernetes objects - or Helm releases that were reconciled on the cluster by Flux. diff --git a/docs/guides/monitoring.md b/docs/guides/monitoring.md deleted file mode 100644 index c02f24fe..00000000 --- a/docs/guides/monitoring.md +++ /dev/null @@ -1,112 +0,0 @@ -# Monitoring - -This guide walks you through configuring monitoring for the Flux control plane. - -Flux comes with a monitoring stack composed of: - -* **Prometheus** server - collects metrics from the toolkit controllers and stores them for 2h -* **Grafana** dashboards - displays the control plane resource usage and reconciliation stats - -## Install the monitoring stack - -To install the monitoring stack with `flux`, first register the toolkit Git repository on your cluster: - -```sh -flux create source git monitoring \ - --interval=30m \ - --url=https://github.com/fluxcd/flux2 \ - --branch=main -``` - -Then apply the [manifests/monitoring](https://github.com/fluxcd/flux2/tree/main/manifests/monitoring) -kustomization: - -```sh -flux create kustomization monitoring \ - --interval=1h \ - --prune=true \ - --source=monitoring \ - --path="./manifests/monitoring" \ - --health-check="Deployment/prometheus.flux-system" \ - --health-check="Deployment/grafana.flux-system" -``` - -You can access Grafana using port forwarding: - -```sh -kubectl -n flux-system port-forward svc/grafana 3000:3000 -``` - -## Grafana dashboards - -Control plane dashboard [http://localhost:3000/d/gitops-toolkit-control-plane](http://localhost:3000/d/gitops-toolkit-control-plane/gitops-toolkit-control-plane): - -![](../_files/cp-dashboard-p1.png) - -![](../_files/cp-dashboard-p2.png) - -Cluster reconciliation dashboard [http://localhost:3000/d/gitops-toolkit-cluster](http://localhost:3000/d/gitops-toolkit-cluster/gitops-toolkit-cluster-stats): - -![](../_files/cluster-dashboard.png) - -If you wish to use your own Prometheus and Grafana instances, then you can import the dashboards from -[GitHub](https://github.com/fluxcd/flux2/tree/main/manifests/monitoring/grafana/dashboards). - -!!! hint - Note that the toolkit controllers expose the `/metrics` endpoint on port `8080`. - When using Prometheus Operator you should create a `PodMonitor` object for each controller to configure scraping. - -```yaml -apiVersion: monitoring.coreos.com/v1 -kind: PodMonitor -metadata: - name: source-controller - namespace: flux-system -spec: - namespaceSelector: - matchNames: - - flux-system - selector: - matchLabels: - app: source-controller - podMetricsEndpoints: - - port: http-prom -``` - -## Metrics - -For each `toolkit.fluxcd.io` kind, -the controllers expose a gauge metric to track the Ready condition status, -and a histogram with the reconciliation duration in seconds. - -Ready status metrics: - -```sh -gotk_reconcile_condition{kind, name, namespace, type="Ready", status="True"} -gotk_reconcile_condition{kind, name, namespace, type="Ready", status="False"} -gotk_reconcile_condition{kind, name, namespace, type="Ready", status="Unknown"} -gotk_reconcile_condition{kind, name, namespace, type="Ready", status="Deleted"} -``` - -Time spent reconciling: - -``` -gotk_reconcile_duration_seconds_bucket{kind, name, namespace, le} -gotk_reconcile_duration_seconds_sum{kind, name, namespace} -gotk_reconcile_duration_seconds_count{kind, name, namespace} -``` - -Alert manager example: - -```yaml -groups: -- name: GitOpsToolkit - rules: - - alert: ReconciliationFailure - expr: max(gotk_reconcile_condition{status="False",type="Ready"}) by (namespace, name, kind) + on(namespace, name, kind) (max(gotk_reconcile_condition{status="Deleted"}) by (namespace, name, kind)) * 2 == 1 - for: 10m - labels: - severity: page - annotations: - summary: '{{ $labels.kind }} {{ $labels.namespace }}/{{ $labels.name }} reconciliation has been failing for more than ten minutes.' -``` diff --git a/docs/guides/mozilla-sops.md b/docs/guides/mozilla-sops.md deleted file mode 100644 index 4f3449a6..00000000 --- a/docs/guides/mozilla-sops.md +++ /dev/null @@ -1,393 +0,0 @@ -# Manage Kubernetes secrets with Mozilla SOPS - -In order to store secrets safely in a public or private Git repository, you can use -Mozilla's [SOPS](https://github.com/mozilla/sops) CLI to encrypt -Kubernetes secrets with OpenPGP, AWS KMS, GCP KMS and Azure Key Vault. - -## Prerequisites - -To follow this guide you'll need a Kubernetes cluster with the GitOps -toolkit controllers installed on it. -Please see the [get started guide](../get-started/index.md) -or the [installation guide](installation.md). - -Install [gnupg](https://www.gnupg.org/) and [SOPS](https://github.com/mozilla/sops): - -```sh -brew install gnupg sops -``` - -## Generate a GPG key - -Generate a GPG/OpenPGP key with no passphrase (`%no-protection`): - -```sh -export KEY_NAME="cluster0.yourdomain.com" -export KEY_COMMENT="flux secrets" - -gpg --batch --full-generate-key < ./clusters/cluster0/.sops.pub.asc -``` - -Check the file contents to ensure it's the public key before adding it to the repo and committing. - -```sh -git add ./clusters/cluster0/.sops.pub.asc -git commit -am 'Share GPG public key for secrets generation' -``` - -Team members can then import this key when they pull the Git repository: - -```sh -gpg --import ./clusters/cluster0/.sops.pub.asc -``` - -!!! hint - The public key is sufficient for creating brand new files. - The secret key is required for decrypting and editing existing files because SOPS computes a MAC on all values. - When using solely the public key to add or remove a field, the whole file should be deleted and recreated. - -## Configure the Git directory for encryption - -Write a [SOPS config file](https://github.com/mozilla/sops#using-sops-yaml-conf-to-select-kms-pgp-for-new-files) -to the specific cluster or namespace directory used -to store encrypted objects with this particular GPG key's fingerprint. - -```yaml -cat < ./clusters/cluster0/.sops.yaml -creation_rules: - - path_regex: .*.yaml - encrypted_regex: ^(data|stringData)$ - pgp: ${KEY_FP} -EOF -``` - -This config applies recursively to all sub-directories. -Multiple directories can use separate SOPS configs. -Contributors using the `sops` CLI to create and encrypt files -won't have to worry about specifying the proper key for the target cluster or namespace. - -`encrypted_regex` helps encrypt the `data` and `stringData` fields for Secrets. -You may wish to add other fields if you are encrypting other types of Objects. - -!!! hint - Note that you should encrypt only the `data` or `stringData` section. Encrypting the Kubernetes - secret metadata, kind or apiVersion is not supported by kustomize-controller. - -## Encrypt secrets - -Generate a Kubernetes secret manifest with kubectl: - -```sh -kubectl -n default create secret generic basic-auth \ ---from-literal=user=admin \ ---from-literal=password=change-me \ ---dry-run=client \ --o yaml > basic-auth.yaml -``` - -Encrypt the secret with SOPS using your GPG key: - -```sh -sops --encrypt --in-place basic-auth.yaml -``` - -You can now commit the encrypted secret to your Git repository. - -!!! hint - Note that you shouldn't apply the encrypted secrets onto the cluster with kubectl. - SOPS encrypted secrets are designed to be consumed by kustomize-controller. - -### Using various cloud providers - -When using AWS/GCP KMS, you don't have to include the gpg `secretRef` under -`spec.provider` (you can skip the `--decryption-secret` flag when running `flux create kustomization`), -instead you'll have to bind an IAM Role with access to the KMS -keys to the `kustomize-controller` service account of the `flux-system` namespace for -kustomize-controller to be able to fetch keys from KMS. - -#### AWS - -Enabled the [IAM OIDC provider](https://eksctl.io/usage/iamserviceaccounts/) on your EKS cluster: - -```sh -eksctl utils associate-iam-oidc-provider --cluster= -``` - -Create an IAM Role with access to AWS KMS e.g.: - -```json -{ - "Version": "2012-10-17", - "Statement": [ - { - "Action": [ - "kms:Encrypt", - "kms:Decrypt", - "kms:ReEncrypt*", - "kms:GenerateDataKey*", - "kms:DescribeKey" - ], - "Effect": "Allow", - "Resource": "arn:aws:kms:eu-west-1:XXXXX209540:key/4f581f5b-7f78-45e9-a543-83a7022e8105" - } - ] -} -``` - -Bind the IAM role to the `kustomize-controller` service account: - -```sh -eksctl create iamserviceaccount \ ---override-existing-serviceaccounts \ ---name=kustomize-controller \ ---namespace=flux-system \ ---attach-policy-arn= \ ---cluster= -``` - -Restart kustomize-controller for the binding to take effect: - -```sh -kubectl -n flux-system rollout restart deployment/kustomize-controller -``` - -#### Azure - -When using Azure Key Vault you need to authenticate kustomize-controller either with [aad-pod-identity](../use-cases/azure.md#aad-pod-identity) -or by passing [Service Principal credentials as environment variables](https://github.com/mozilla/sops#encrypting-using-azure-key-vault). - -Create the Azure Key-Vault: - -```sh -export VAULT_NAME="fluxcd-$(uuidgen | tr -d - | head -c 16)" -export KEY_NAME="sops-cluster0" - -az keyvault create --name "${VAULT_NAME}" -az keyvault key create --name "${KEY_NAME}" \ - --vault-name "${VAULT_NAME}" - --protection software \ - --ops encrypt decrypt -az keyvault key show --name "${KEY_NAME}" \ - --vault-name "${VAULT_NAME}" \ - --query key.kid -``` - -If using AAD Pod-Identity, create an identity within Azure to bind against, then create an `AzureIdentity` object to match: - -```yaml -# Create an identity in Azure and assign it a role to access Key Vault (note: the identity's resourceGroup should match the desired Key Vault): -# az identity create -n sops-akv-decryptor -# az role assignment create --role "Key Vault Crypto User" --assignee-object-id "$(az identity show -n sops-akv-decryptor -o tsv --query principalId)" -# Fetch the clientID and resourceID to configure the AzureIdentity spec below: -# az identity show -n sops-akv-decryptor -otsv --query clientId -# az identity show -n sops-akv-decryptor -otsv --query resourceId ---- -apiVersion: aadpodidentity.k8s.io/v1 -kind: AzureIdentity -metadata: - name: sops-akv-decryptor # kustomize-controller label will match this name - namespace: flux-system -spec: - clientID: 58027844-6b86-424b-9888-b5ae2dc28b4f - resourceID: /subscriptions/8c69185e-55f9-4d00-8e71-a1b1bb1386a1/resourcegroups/stealthybox/providers/Microsoft.ManagedIdentity/userAssignedIdentities/sops-akv-decryptor - type: 0 # user-managed identity -``` - -[Customize your Flux Manifests](../guides/installation.md#customize-flux-manifests) so that kustomize-controller has the proper credentials. -Patch the kustomize-controller Pod template so that the label matches the `AzureIdentity` name. -Additionally, the SOPS specific environment variable `AZURE_AUTH_METHOD=msi` to activate the proper auth method within kustomize-controller. - -```yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: kustomize-controller - namespace: flux-system -spec: - template: - metadata: - labels: - aadpodidbinding: sops-akv-decryptor # match the AzureIdentity name - spec: - containers: - - name: manager - env: - - name: AZURE_AUTH_METHOD - value: msi -``` - -Alternatively, if using a Service Principal stored in a K8s Secret, patch the Pod's envFrom -to reference the `AZURE_TENANT_ID`/`AZURE_CLIENT_ID`/`AZURE_CLIENT_SECRET` -fields from your Secret. - -```yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: kustomize-controller - namespace: flux-system -spec: - template: - spec: - containers: - - name: manager - envFrom: - - secretRef: - name: sops-akv-decryptor-service-principal -``` - -At this point, kustomize-controller is now authorized to decrypt values in -SOPS encrypted files from your Sources via the related Key Vault. - -See Mozilla's guide to -[Encrypting Using Azure Key Vault](https://github.com/mozilla/sops#encrypting-using-azure-key-vault) -to get started committing encrypted files to your Git Repository or other Sources. - -#### Google Cloud - -Please ensure that the GKE cluster has Workload Identity enabled. - -1. Create a service account with the role `Cloud KMS CryptoKey Encrypter/Decrypter`. -2. Create an IAM policy binding between the GCP service account to the `kustomize-controller` service account of the `flux-system`. -3. Annotate the `kustomize-controller` service account in the `flux-system` with the GCP service account. - -```sh -kubectl annotate serviceaccount kustomize-controller \ - --namespace flux-system \ - iam.gke.io/gcp-service-account=@project-id.iam.gserviceaccount.com -``` - -## GitOps workflow - -A cluster admin should create the Kubernetes secret with the PGP keys on each cluster and -add the GitRepository/Kustomization manifests to the fleet repository. - -Git repository manifest: - -```yaml -apiVersion: source.toolkit.fluxcd.io/v1beta1 -kind: GitRepository -metadata: - name: my-secrets - namespace: flux-system -spec: - interval: 1m - url: https://github.com/my-org/my-secrets -``` - -Kustomization manifest: - -```yaml -apiVersion: kustomize.toolkit.fluxcd.io/v1beta1 -kind: Kustomization -metadata: - name: my-secrets - namespace: flux-system -spec: - interval: 10m0s - sourceRef: - kind: GitRepository - name: my-secrets - path: ./ - prune: true - decryption: - provider: sops - secretRef: - name: sops-gpg -``` - -!!! hint - You can generate the above manifests using `flux create --export > manifest.yaml`. - -Assuming a team member wants to deploy an application that needs to connect -to a database using a username and password, they'll be doing the following: - -* create a Kubernetes Secret manifest locally with the db credentials e.g. `db-auth.yaml` -* encrypt the secret `data` field with sops -* create a Kubernetes Deployment manifest for the app e.g. `app-deployment.yaml` -* add the Secret to the Deployment manifest as a [volume mount or env var](https://kubernetes.io/docs/concepts/configuration/secret/#using-secrets) -* commit the manifests `db-auth.yaml` and `app-deployment.yaml` to a Git repository that's being synced by the GitOps toolkit controllers - -Once the manifests have been pushed to the Git repository, the following happens: - -* source-controller pulls the changes from Git -* kustomize-controller loads the GPG keys from the `sops-pgp` secret -* kustomize-controller decrypts the Kubernetes secrets with SOPS and applies them on the cluster -* kubelet creates the pods and mounts the secret as a volume or env variable inside the app container diff --git a/docs/guides/notifications.md b/docs/guides/notifications.md deleted file mode 100644 index 37186d5b..00000000 --- a/docs/guides/notifications.md +++ /dev/null @@ -1,295 +0,0 @@ -# Setup Notifications - -When operating a cluster, different teams may wish to receive notifications about -the status of their GitOps pipelines. -For example, the on-call team would receive alerts about reconciliation -failures in the cluster, while the dev team may wish to be alerted when a new version -of an app was deployed and if the deployment is healthy. - -## Prerequisites - -To follow this guide you'll need a Kubernetes cluster with the GitOps -toolkit controllers installed on it. -Please see the [get started guide](../get-started/index.md) -or the [installation guide](installation.md). - -The GitOps toolkit controllers emit Kubernetes events whenever a resource status changes. -You can use the [notification-controller](../components/notification/controller.md) -to forward these events to Slack, Microsoft Teams, Discord or Rocket chart. -The notification controller is part of the default toolkit installation. - -## Define a provider - -First create a secret with your Slack incoming webhook: - -```sh -kubectl -n flux-system create secret generic slack-url \ ---from-literal=address=https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK -``` - -Note that the secret must contain an `address` field, -it can be a Slack, Microsoft Teams, Discord or Rocket webhook URL. - -Create a notification provider for Slack by referencing the above secret: - -```yaml -apiVersion: notification.toolkit.fluxcd.io/v1beta1 -kind: Provider -metadata: - name: slack - namespace: flux-system -spec: - type: slack - channel: general - secretRef: - name: slack-url -``` - -The provider type can be `slack`, `msteams`, `discord`, `rocket`, `googlechat`, `webex`, `sentry` or `generic`. - -When type `generic` is specified, the notification controller will post the incoming -[event](../components/notification/event.md) in JSON format to the webhook address. -This way you can create custom handlers that can store the events in -Elasticsearch, CloudWatch, Stackdriver, etc. - -## Define an alert - -Create an alert definition for all repositories and kustomizations: - -```yaml -apiVersion: notification.toolkit.fluxcd.io/v1beta1 -kind: Alert -metadata: - name: on-call-webapp - namespace: flux-system -spec: - providerRef: - name: slack - eventSeverity: info - eventSources: - - kind: GitRepository - name: '*' - - kind: Kustomization - name: '*' -``` - -Apply the above files or commit them to the `fleet-infra` repository. - -To verify that the alert has been acknowledge by the notification controller do: - -```console -$ kubectl -n flux-system get alerts - -NAME READY STATUS AGE -on-call-webapp True Initialized 1m -``` - -Multiple alerts can be used to send notifications to different channels or Slack organizations. - -The event severity can be set to `info` or `error`. -When the severity is set to `error`, the kustomize controller will alert on any error -encountered during the reconciliation process. -This includes kustomize build and validation errors, -apply errors and health check failures. - -![error alert](../_files/slack-error-alert.png) - -When the verbosity is set to `info`, the controller will alert if: - -* a Kubernetes object was created, updated or deleted -* heath checks are passing -* a dependency is delaying the execution -* an error occurs - -![info alert](../_files/slack-info-alert.png) - -## Git commit status - -The GitHub, GitLab, Bitbucket, and Azure DevOps providers are slightly different to the other providers. Instead of -a stateless stream of events, the git notification providers will link the event with accompanying git commit which -triggered the event. The linking is done by updating the commit status of a specific commit. - - - [GitHub](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/about-status-checks) - - [GitLab](https://docs.gitlab.com/ee/api/commits.html) - - [Bitbucket](https://developer.atlassian.com/server/bitbucket/how-tos/updating-build-status-for-commits/) - - [Azure DevOps](https://docs.microsoft.com/en-us/rest/api/azure/devops/git/statuses?view=azure-devops-rest-6.0) - -In GitHub the commit status set by notification-controller will result in a green checkmark or red cross next to the commit hash. -Clicking the icon will show more detailed information about the status. -![commit status GitHub overview](../_files/commit-status-github-overview.png) - -Receiving an event in the form of a commit status rather than a message in a chat conversation has the benefit -that it closes the deployment loop giving quick and visible feedback if a commit has reconciled and if it succeeded. -This means that a deployment will work in a similar manner that people are used to with "traditional" push based CD pipelines. -Additionally the status can be fetched from the git providers API for a specific commit. Allowing for custom automation tools -that can automatically promote, commit to a new directory, after receiving a successful commit status. This can all be -done without requiring any access to the Kubernetes cluster. - -As stated before the provider works by referencing the same git repository as the Kustomization controller does. -When a new commit is pushed to the repository, source-controller will sync the commit, triggering the kustomize-controller -to reconcile the new commit. After this is done the kustomize-controller sends an event to the notification-controller -with the result and the commit hash it reconciled. Then notification-controller can update the correct commit and repository -when receiving the event. -![commit status flow](../_files/commit-status-flow.png) - -!!! hint "Limitations" - The git notification providers require that a commit hash present in the meta data - of the event. There for the the providers will only work with `Kustomization` as an - event source, as it is the only resource which includes this data. - -First follow the [get started guide](../../get-started) if you do not have a Kubernetes cluster with Flux installed in it. -You will need a authentication token to communicate with the API. The authentication method depends on -the git provider used, refer to the [Provider CRD](../../components/notification/provider/#git-commit-status) -for details about how to get the correct token. The guide will use GitHub, but the other providers will work in a very similar manner. -The token will need to have write access to the repository it is going to update the commit status in. -Store the generated token in a Secret with the following data format in the cluster. -```yaml -apiVersion: v1 -kind: Secret -metadata: - name: github - namespace: flux-system -data: - token: -``` - -When sending notification events the kustomization-controller will include the commit hash related to the event. -Note that the commit hash in the event does not come from the git repository the `Kustomization` resource -comes from but rather the kustomization source ref. This mean that commit status notifications will not work -if the manifests comes from a repository which the API token is not allowed to write to. - -Copy the manifest content in the "[kustomize](https://github.com/stefanprodan/podinfo/tree/master/kustomize)" directory -into the directory "./clusters/my-cluster/podinfo" in your fleet-infra repository. Make sure that you also add the -namespace podinfo. -```yaml -apiVersion: v1 -kind: Namespace -metadata: - name: podinfo -``` - -Then create a Kustomization to deploy podinfo. -```yaml -apiVersion: kustomize.toolkit.fluxcd.io/v1beta1 -kind: Kustomization -metadata: - name: podinfo - namespace: flux-system -spec: - interval: 5m - targetNamespace: podinfo - path: ./clusters/my-cluster/podinfo - prune: true - sourceRef: - kind: GitRepository - name: flux-system - healthChecks: - - apiVersion: apps/v1 - kind: Deployment - name: podinfo - namespace: podinfo - timeout: 1m -``` - -Creating a git provider is very similar to creating other types of providers. -The only caveat being that the provider address needs to point to the same -git repository as the event source originates from. -```yaml -apiVersion: notification.toolkit.fluxcd.io/v1beta1 -kind: Provider -metadata: - name: flux-system - namespace: flux-system -spec: - type: github - address: https://github.com//fleet-infra - secretRef: - name: github ---- -apiVersion: notification.toolkit.fluxcd.io/v1beta1 -kind: Alert -metadata: - name: podinfo - namespace: flux-system -spec: - providerRef: - name: flux-system - eventSeverity: info - eventSources: - - kind: Kustomization - name: podinfo - namespace: flux-system -``` - -By now the fleet-infra repository should have a similar directory structure. -``` -fleet-infra -└── clusters/ - └── my-cluster/ - ├── flux-system/ - │ ├── gotk-components.yaml - │ ├── gotk-sync.yaml - │ └── kustomization.yaml - ├── podinfo/ - │ ├── namespace.yaml - │ ├── deployment.yaml - │ ├── hpa.yaml - │ ├── service.yaml - │ └── kustomization.yaml - ├── podinfo-kustomization.yaml - └── podinfo-notification.yaml -``` - -If podinfo is deployed and the health checks pass you should get a successful status in -your forked podinfo repository. - -If everything is setup correctly there should now be a green check-mark next to the latest commit. -Clicking the check-mark should show a detailed view. - -| GitHub | GitLab | -| ------------- | ------------- | -| ![commit status GitHub successful](../_files/commit-status-github-success.png) | ![commit status GitLab successful](../_files/commit-status-gitlab-success.png) | - -Generate error - -A deployment failure can be forced by setting an invalid image tag in the podinfo deployment. -```yaml -apiVersion: apps/v1 -kind: Deployment -spec: - template: - spec: - containers: - - name: podinfod - image: ghcr.io/stefanprodan/podinfo:fake -``` - -After the commit has been reconciled it should return a failed commit status. -This is where the health check in the Kustomization comes into play together -with the timeout. The health check is used to asses the health of the Kustomization. -A failed commit status will not be sent until the health check timeout. Setting -a lower timeout will give feedback faster, but may sometimes not allow enough time -for a new application to deploy. - -| GitHub | GitLab | -| ------------- | ------------- | -| ![commit status GitHub failure](../_files/commit-status-github-failure.png) | ![commit status GitLab failure](../_files/commit-status-gitlab-failure.png) | - - -### Status changes - -The provider will continuously receive events as they happen, and multiple events may -be received for the same commit hash. The git providers are configured to only update -the status if the status has changed. This is to avoid spamming the commit status -history with the same status over and over again. - -There is an aspect of state fullness that needs to be considered, compared to the other -notification providers, as the events are stored by the git provider. This means that -the status of a commit can change over time. Initially a deployment may be healthy, resulting -in a successful status. Down the line the application, and the health check, may start failing -due to the amount of traffic it receives or external dependencies no longer being available. -The change in the health check would cause the status to go from successful to failed. -It is important to keep this in mind when building any automation tools that deals with the -status, and consider the fact that receiving a successful status once does not mean it will -always be successful. - diff --git a/docs/guides/sealed-secrets.md b/docs/guides/sealed-secrets.md deleted file mode 100644 index 56469067..00000000 --- a/docs/guides/sealed-secrets.md +++ /dev/null @@ -1,179 +0,0 @@ -# Sealed Secrets - -In order to store secrets safely in a public or private Git repository, you can use -Bitnami's [sealed-secrets controller](https://github.com/bitnami-labs/sealed-secrets) -and encrypt your Kubernetes Secrets into SealedSecrets. -The sealed secrets can be decrypted only by the controller running in your cluster and -nobody else can obtain the original secret, even if they have access to the Git repository. - -## Prerequisites - -To follow this guide you'll need a Kubernetes cluster with the GitOps -toolkit controllers installed on it. -Please see the [get started guide](../get-started/index.md) -or the [installation guide](installation.md). - -The sealed-secrets controller comes with a companion CLI tool called kubeseal. -With kubeseal you can create SealedSecret custom resources in YAML format -and store those in your Git repository. - -Install the kubeseal CLI: - -```sh -brew install kubeseal -``` - -For Linux or Windows you can download the kubeseal binary from -[GitHub](https://github.com/bitnami-labs/sealed-secrets/releases). - -## Deploy sealed-secrets with a HelmRelease - -You'll be using [helm-controller](../components/helm/controller.md) APIs to install -the sealed-secrets controller from its [Helm chart](https://hub.kubeapps.com/charts/stable/sealed-secrets). - -First you have to register the Helm repository where the sealed-secrets chart is published: - -```sh -flux create source helm sealed-secrets \ ---interval=1h \ ---url=https://bitnami-labs.github.io/sealed-secrets -``` - -With `interval` we configure [source-controller](../components/source/controller.md) to download -the Helm repository index every hour. If a newer version of sealed-secrets is published, -source-controller will signal helm-controller that a new chart is available. - -Create a Helm release that installs the latest version of sealed-secrets controller: - -```sh -flux create helmrelease sealed-secrets \ ---interval=1h \ ---release-name=sealed-secrets \ ---target-namespace=flux-system \ ---source=HelmRepository/sealed-secrets \ ---chart=sealed-secrets \ ---chart-version=">=1.15.0-0" \ ---crds=CreateReplace -``` - -With chart version `>=1.15.0-0` we configure helm-controller to automatically upgrade the release -when a new chart version is fetched by source-controller. - -At startup, the sealed-secrets controller generates a 4096-bit RSA key pair and -persists the private and public keys as Kubernetes secrets in the `flux-system` namespace. - -You can retrieve the public key with: - -```sh -kubeseal --fetch-cert \ ---controller-name=sealed-secrets \ ---controller-namespace=flux-system \ -> pub-sealed-secrets.pem -``` - -The public key can be safely stored in Git, and can be used to encrypt secrets -without direct access to the Kubernetes cluster. - -## Encrypt secrets - -Generate a Kubernetes secret manifest with kubectl: - -```sh -kubectl -n default create secret generic basic-auth \ ---from-literal=user=admin \ ---from-literal=password=change-me \ ---dry-run=client \ --o yaml > basic-auth.yaml -``` - -Encrypt the secret with kubeseal: - -```sh -kubeseal --format=yaml --cert=pub-sealed-secrets.pem \ -< basic-auth.yaml > basic-auth-sealed.yaml -``` - -Delete the plain secret and apply the sealed one: - -```sh -rm basic-auth.yaml -kubectl apply -f basic-auth-sealed.yaml -``` - -Verify that the sealed-secrets controller has created the `basic-auth` Kubernetes Secret: - -```console -$ kubectl -n default get secrets basic-auth - -NAME TYPE DATA AGE -basic-auth Opaque 2 1m43s -``` - -## GitOps workflow - -A cluster admin should add the stable `HelmRepository` manifest and the sealed-secrets `HelmRelease` -to the fleet repository. - -Helm repository manifest: - -```yaml -apiVersion: source.toolkit.fluxcd.io/v1beta1 -kind: HelmRepository -metadata: - name: sealed-secrets - namespace: flux-system -spec: - interval: 1h0m0s - url: https://bitnami-labs.github.io/sealed-secrets -``` - -Helm release manifest: - -```yaml -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: sealed-secrets - namespace: flux-system -spec: - chart: - spec: - chart: sealed-secrets - sourceRef: - kind: HelmRepository - name: sealed-secrets - version: ">=1.15.0-0" - interval: 1h0m0s - releaseName: sealed-secrets - targetNamespace: flux-system - install: - crds: Create - upgrade: - crds: CreateReplace -``` - -!!! hint - You can generate the above manifests using `flux create --export > manifest.yaml`. - -Once the sealed-secrets controller is installed, the admin fetches the -public key and shares it with the teams that operate on the fleet clusters via Git. - -When a team member wants to create a Kubernetes Secret on a cluster, -they uses kubeseal and the public key corresponding to that cluster to generate a SealedSecret. - -Assuming a team member wants to deploy an application that needs to connect -to a database using a username and password, they'll be doing the following: - -* create a Kubernetes Secret manifest locally with the db credentials e.g. `db-auth.yaml` -* encrypt the secret with kubeseal as `db-auth-sealed.yaml` -* delete the original secret file `db-auth.yaml` -* create a Kubernetes Deployment manifest for the app e.g. `app-deployment.yaml` -* add the Secret to the Deployment manifest as a [volume mount or env var](https://kubernetes.io/docs/concepts/configuration/secret/#using-secrets) using the original name `db-auth` -* commit the manifests `db-auth-sealed.yaml` and `app-deployment.yaml` to a Git repository that's being synced by the GitOps toolkit controllers - -Once the manifests have been pushed to the Git repository, the following happens: - -* source-controller pulls the changes from Git -* kustomize-controller applies the SealedSecret and the Deployment manifests -* sealed-secrets controller decrypts the SealedSecret and creates a Kubernetes Secret -* kubelet creates the pods and mounts the secret as a volume or env variable inside the app container diff --git a/docs/guides/sortable-image-tags.md b/docs/guides/sortable-image-tags.md deleted file mode 100644 index cbf7b8ad..00000000 --- a/docs/guides/sortable-image-tags.md +++ /dev/null @@ -1,192 +0,0 @@ - -# How to make sortable image tags to use with automation - -Flux v2 does not support selecting the lastest image by build time. Obtaining the build time needs -the container config for each image, and fetching that is subject to strict rate limiting by image -registries (e.g., by [DockerHub][dockerhub-rates]). - -This guide explains how to construct image tags so that the most recent image has the tag that comes -last in alphabetical or numerical order. The technique suggested is to put a timestamp or serial -number in each image tag. - -## Formats and alternatives - -The important properties for sorting are that the parts of the timestamp go from most significant to -least (e.g., the year down to the second). For numbers it is best to use numerical order, since this -will work with values of different width (e.g., '12' sorts after '2'). - -Image tags are often shown in user interfaces, so readability matters. Here is an example of a -readable timestamp that will sort well: - -```bash -$ # date and time (remember ':' is not allowed in a tag) -$ date +%F.%H%M%S -2021-01-28.133158 -``` - -You can use a timestamp that sorts as a number, like [Unix -time](https://en.wikipedia.org/wiki/Unix_time): - -``` -$ # seconds since Jan 1 1970 -$ date +%s -1611840548 -``` - -Alternatively, you can use a serial number as part of the tag. Some CI platforms will provide a -build number in an environment variable, but that may not be reliable to use as a serial number -- -check the platform documentation. -For example, Github makes availabe the variable `github.run_number` which can be used as a reliable ever increasing serial number. - -A commit count can be a reasonable stand-in for a serial number, if you build an image per commit -and you don't rewrite the branch in question: - -```bash -$ # commits in branch -$ git --rev-list --count HEAD -1504 -``` - -Beware: this will not give a useful number if you have a shallow clone. - -### Other things to include in the image tag - -It is also handy to quickly trace an image to the branch and commit of its source code. Including -the branch also means you can filter for images from a particular branch. - -A useful tag format is - - -- - -The branch and tag will usually be made available in a CI platform as environment variables. See - - - [CircleCI's built-in variables `CIRCLE_BRANCH` and `CIRCLE_SHA1`][circle-ci-env] - - [GitHub Actions' `GITHUB_REF` and `GITHUB_SHA`][github-actions-env] - - [Travis CI's `TRAVIS_BRANCH` and `TRAVIS_COMMIT`][travis-env]. - -## Example of a build process with timestamp tagging - -Here is an example of a [GitHub Actions job][gha-syntax] that creates a "build ID" with the git -branch, SHA1, and a timestamp, and uses it as a tag when building an image: - -```yaml -jobs: - build-push: - env: - IMAGE: org/my-app - runs-on: ubuntu-latest - steps: - - - name: Generate build ID - id: prep - run: | - branch=${GITHUB_REF##*/} - sha=${GITHUB_SHA::8} - ts=$(date +%s) - echo "::set-output name=BUILD_ID::${branch}-${sha}-${ts}" - - # These are prerequisites for the docker build step - - name: Set up QEMU - uses: docker/setup-qemu-action@v1 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - name: Login to DockerHub - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build and publish container image with tag - uses: docker/build-push-action@v2 - with: - push: true - context: . - file: ./Dockerfile - tags: | - ${{ env.IMAGE }}:${{ steps.prep.outputs.BUILD_ID }} -``` - -### Alternative example utilizing github.run_number - -Here is another example example of a [GitHub Actions job][gha-syntax] which tags images using Github action's built in `run_number` -and the git SHA1: - -```yaml -jobs: - build-push: - env: - IMAGE: org/my-app - runs-on: ubuntu-latest - steps: - # These are prerequisites for the docker build step - - name: Set up QEMU - uses: docker/setup-qemu-action@v1 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - name: Login to DockerHub - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build and publish container image with tag - uses: docker/build-push-action@v2 - with: - push: true - context: . - file: ./Dockerfile - tags: | - ${{ env.IMAGE }}:${{ github.sha }}-${{ github.run_number }} -``` - -## Using in an `ImagePolicy` object - -When creating an `ImagePolicy` object, you will need to extract just the timestamp part of the tag, -using the `tagFilter` field. You can filter for a particular branch to restrict images to only those -built from that branch. - -Here is an example that filters for only images built from `main` branch, and selects the most -recent according to a timestamp (created with `date +%s`) or according to the run number (`github.run_number` for example): - -```yaml -apiVersion: image.toolkit.fluxcd.io/v1alpha2 -kind: ImagePolicy -metadata: - name: image-repo-policy - namespace: flux-system -spec: - imageRepositoryRef: - name: image-repo - filterTags: - ## use "pattern: '(?P.*)-.+'" if you copied the workflow example using github.run_number - pattern: '^main-[a-f0-9]+-(?P[0-9]+)' - extract: '$ts' - policy: - numerical: - order: asc -``` - -If you don't care about the branch, that part can be a wildcard in the pattern: - -```yaml -apiVersion: image.toolkit.fluxcd.io/v1alpha2 -kind: ImagePolicy -metadata: - name: image-repo-policy - namespace: flux-system -spec: - imageRepositoryRef: - name: image-repo - filterTags: - pattern: '^.+-[a-f0-9]+-(?P[0-9]+)' - extract: '$ts' - policy: - numerical: - order: asc -``` - -[circle-ci-env]: https://circleci.com/docs/2.0/env-vars/#built-in-environment-variables -[github-actions-env]: https://docs.github.com/en/actions/reference/environment-variables#default-environment-variables -[travis-env]: https://docs.travis-ci.com/user/environment-variables/#default-environment-variables -[dockerhub-rates]: https://docs.docker.com/docker-hub/billing/faq/#pull-rate-limiting-faqs -[gha-syntax]: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions diff --git a/docs/guides/webhook-receivers.md b/docs/guides/webhook-receivers.md deleted file mode 100644 index d31fdb95..00000000 --- a/docs/guides/webhook-receivers.md +++ /dev/null @@ -1,138 +0,0 @@ -# Setup Webhook Receivers - -The GitOps toolkit controllers are by design **pull-based**. -In order to notify the controllers about changes in Git or Helm repositories, -you can setup webhooks and trigger a cluster reconciliation -every time a source changes. Using webhook receivers, you can build **push-based** -GitOps pipelines that react to external events. - -## Prerequisites - -To follow this guide you'll need a Kubernetes cluster with the GitOps -toolkit controllers installed on it. -Please see the [get started guide](../get-started/index.md) -or the [installation guide](installation.md). - -The [notification controller](../components/notification/controller.md) -can handle events coming from external systems -(GitHub, GitLab, Bitbucket, Harbor, Jenkins, etc) -and notify the GitOps toolkit controllers about source changes. -The notification controller is part of the default toolkit installation. - -## Expose the webhook receiver - -In order to receive Git push or Helm chart upload events, you'll have to -expose the webhook receiver endpoint outside of your Kubernetes cluster on -a public address. - -The notification controller handles webhook requests on port `9292`. -This port can be used to create a Kubernetes LoadBalancer Service or Ingress. - -Create a `LoadBalancer` service: - -```yaml -apiVersion: v1 -kind: Service -metadata: - name: receiver - namespace: flux-system -spec: - type: LoadBalancer - selector: - app: notification-controller - ports: - - name: http - port: 80 - protocol: TCP - targetPort: 9292 -``` - -Wait for Kubernetes to assign a public address with: - -```sh -watch kubectl -n flux-system get svc/receiver -``` - -## Define a Git repository - -Create a Git source pointing to a GitHub repository that you have control over: - -```yaml -apiVersion: source.toolkit.fluxcd.io/v1beta1 -kind: GitRepository -metadata: - name: webapp - namespace: flux-system -spec: - interval: 60m - url: https://github.com// - ref: - branch: master -``` - -!!! hint "Authentication" - SSH or token based authentication can be configured for private repositories. - See the [GitRepository CRD docs](../components/source/gitrepositories.md) for more details. - -## Define a Git repository receiver - -First generate a random string and create a secret with a `token` field: - -```sh -TOKEN=$(head -c 12 /dev/urandom | shasum | cut -d ' ' -f1) -echo $TOKEN - -kubectl -n flux-system create secret generic webhook-token \ ---from-literal=token=$TOKEN -``` - -Create a receiver for GitHub and specify the `GitRepository` object: - -```yaml -apiVersion: notification.toolkit.fluxcd.io/v1beta1 -kind: Receiver -metadata: - name: webapp - namespace: flux-system -spec: - type: github - events: - - "ping" - - "push" - secretRef: - name: webhook-token - resources: - - kind: GitRepository - name: webapp -``` - -!!! hint "Note" - Besides GitHub, you can define receivers for **GitLab**, **Bitbucket**, **Harbor** - and any other system that supports webhooks e.g. Jenkins, CircleCI, etc. - See the [Receiver CRD docs](../components/notification/receiver.md) for more details. - -The notification controller generates a unique URL using the provided token and the receiver name/namespace. - -Find the URL with: - -```console -$ kubectl -n flux-system get receiver/webapp - -NAME READY STATUS -webapp True Receiver initialised with URL: /hook/bed6d00b5555b1603e1f59b94d7fdbca58089cb5663633fb83f2815dc626d92b -``` - -On GitHub, navigate to your repository and click on the "Add webhook" button under "Settings/Webhooks". -Fill the form with: - -* **Payload URL**: compose the address using the receiver LB and the generated URL `http:///` -* **Secret**: use the `token` string - -With the above settings, when you push a commit to the repository, the following happens: - -* GitHub sends the Git push event to the receiver address -* Notification controller validates the authenticity of the payload using HMAC -* Source controller is notified about the changes -* Source controller pulls the changes into the cluster and updates the `GitRepository` revision -* Kustomize controller is notified about the revision change -* Kustomize controller reconciles all the `Kustomizations` that reference the `GitRepository` object diff --git a/docs/migration/timetable.md b/docs/migration/timetable.md deleted file mode 100644 index 537028a7..00000000 --- a/docs/migration/timetable.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -hide: - # The table data on this page is easier to read when wider - # The TOC right column is already blank anyway - - toc ---- -# Migration and Support Timetable - -!!! heart "Flux Migration Commitment" - This public timetable clarifies our commitment to end users. - Its purpose is to help improve your experience in deciding how and when to plan infra decisions related to Flux versions. - Please refer to the [Roadmap](../roadmap/index.md) for additional details. - - - -

- - - -| Date | Flux 1 | Flux 2 CLI | GOTK[^1] | -| -- | -- | -- | -- | -| Oct 6, 2020 | ^^[Maintenance Mode](https://github.com/fluxcd/website/pull/25)^^
  • Flux 1 releases only include critical bug fixes (which don’t require changing Flux 1 architecture), and security patches (for OS packages, Go runtime, and kubectl). No new features
  • Existing projects encouraged to test migration to Flux 2 pre-releases in non-production
| ^^Development Mode^^
  • Working to finish parity with Flux 1
  • New projects encouraged to test Flux 2 pre-releases in non-production
| ^^All Alpha^^[^2] | -Feb 18, 2021 | ^^Partial Migration Mode^^
  • Existing projects encouraged to migrate to `v1beta1`/`v2beta1` if you only use those features (Flux 1 read-only mode, and Helm Operator)
  • Existing projects encouraged to test image automation Alpha in non-production
| ^^Feature Parity^^ | ^^Image Automation Alpha. All others reached Feature Parity, Beta^^ | -| TBD | ^^Superseded^^
  • All existing projects encouraged to [migrate to Flux 2](https://toolkit.fluxcd.io/guides/flux-v1-migration/), and [report any bugs](https://github.com/fluxcd/flux2/issues/new/choose)
  • Flux 1 Helm Operator archived – no further updates due to unsupported dependencies
| ^^Needs further testing, may get breaking changes^^
  • CLI needs further user testing during this migration period
| ^^All Beta, Production Ready^^[^3]
  • All Flux 1 features stable and supported in Flux 2
  • Promoting Alpha versions to Beta makes this Production Ready
| -| TBD | ^^Migration and security support only^^
  • Flux 1 releases only include security patches (no bug fixes)
  • Maintainers support users with migration to Flux 2 only, no longer with Flux 1 issues
  • Flux 1 archive date announced
| ^^Public release (GA), Production Ready^^
  • CLI commits to backwards compatibility moving forward
  • CLI follows kubectl style backwards compatibility support: +1 -1 MINOR version for server components (e.g., APIs, Controllers, validation webhooks)
| ^^All Beta, Production Ready^^ | -| TBD | ^^Archived^^
  • Flux 1 obsolete, no further releases or maintainer support
  • Flux 1 repo archived
| ^^Continued active development^^ | ^^Continued active development^^ | - - -
- -[^1]: GOTK is shorthand for the [GitOps Toolkit](https://toolkit.fluxcd.io/components/) APIs and Controllers - -[^2]: Versioning: Flux 2 is a multi-service architecture, so requires a more complex explanation than Flux 1: - - Flux 2 CLI follows [Semantic Versioning](https://semver.org/) scheme - - The GitOps Toolkit APIs follow the [Kubernetes API versioning](https://kubernetes.io/docs/reference/using-api/#api-versioning) pattern. See [Roadmap](https://toolkit.fluxcd.io/roadmap/) for component versions. - - These are coordinated for cross-compatibility: For each Flux 2 CLI tag, CLI and GOTK versions are end-to-end tested together, so you may safely upgrade from one MINOR/PATCH version to another. - -[^3]: The GOTK Custom Resource Definitions which are at `v1beta1` and `v2beta1` and their controllers are considered stable and production ready. Going forward, breaking changes to the beta CRDs will be accompanied by a conversion mechanism. diff --git a/docs/proposals/go-git-providers.md b/docs/proposals/go-git-providers.md deleted file mode 100644 index 661b5094..00000000 --- a/docs/proposals/go-git-providers.md +++ /dev/null @@ -1,510 +0,0 @@ -# go-git-providers - -## Abstract - -This proposal aims to create a library with the import path `github.com/fluxcd/go-git-providers`' -(import name: `gitprovider`), which provides an abstraction layer for talking to Git providers -like GitHub, GitLab and Bitbucket. - -This would become a new repository, specifically targeted at being a general-purpose Git provider -client for multiple providers and domains. - -## Goals - -- Support multiple Git provider backends (e.g. GitHub, GitLab, Bitbucket, etc.) using the same interface -- Support talking to multiple domains at once, including custom domains (e.g. talking to "gitlab.com" and "version.aalto.fi" from the same client) -- Support both no authentication (for public repos), basic auth, and OAuth2 for authentication -- Manipulating the following resources: - - **Organizations**: `GET`, `LIST` (both all accessible top-level orgs and sub-orgs) - - For a given **Organization**: - - **Teams**: `GET` and `LIST` - - **Repositories**: `GET`, `LIST` and `POST` - - **Team Access**: `LIST`, `POST` and `DELETE` - - **Credentials**: `LIST`, `POST` and `DELETE` -- Support sub-organizations (or "sub-groups" in GitLab) if possible -- Support reconciling an object for idempotent operations -- Pagination is automatically handled for `LIST` requests -- Transparently can manage teams (collections of users, sub-groups in Gitlab) with varying access to repos -- Follow library best practices in order to be easy to vendor (e.g. use major `vX` versioning & go.mod) - -## Non-goals - -- Support for features not mentioned above - -## Design decisions - -- A `context.Context` should be passed to every request as the first argument -- There should be two interfaces per resource, if applicable: - - one collection-specific interface, with a plural name (e.g. `OrganizationsClient`), that has methods like `Get()` and `List()` - - one instance-specific interface, with a singular name (e.g. `OrganizationClient`), that operates on that instance, e.g. allowing access to child resources, e.g. `Teams()` -- Every `Create()` signature shall have a `{Resource}CreateOptions` struct as the last argument. - - `Delete()` and similar methods may use the same pattern if needed -- All `*Options` structs shall be passed by value (i.e. non-nillable) and contain only nillable, optional fields -- All optional fields in the type structs shall be nillable -- It should be possible to create a fake API client for testing, implementing the same interfaces -- All type structs shall have a `Validate()` method, and optionally a `Default()` one -- All type structs shall expose their internal representation (from the underlying library) through the `InternalGetter` interface with a method `GetInternal() interface{}` -- Typed errors shall be returned, wrapped using Go 1.14's new features -- Go-style enums are used when there are only a few supported values for a field -- Every field is documented using Godoc comment, including `+required` or `+optional` to clearly signify its importance -- Support serializing the types to JSON (if needed for e.g. debugging) by adding tags - -## Implementation - -### Provider package - -The provider package, e.g. at `github.com/fluxcd/go-git-providers/github`, will have constructor methods so a client can be created, e.g. as follows: - -```go -// Create a client for github.com without any authentication -c := github.NewClient() - -// Create a client for an enterprise GitHub account, without any authentication -c = github.NewClient(github.WithBaseURL("enterprise.github.com")) - -// Create a client for github.com using a personal oauth2 token -c = github.NewClient(github.WithOAuth2("")) -``` - -### Client - -The definition of a `Client` is as follows: - -```go -// Client is an interface that allows talking to a Git provider -type Client interface { - // The Client allows accessing all known resources - ResourceClient - - // SupportedDomain returns the supported domain - // This field is set at client creation time, and can't be changed - SupportedDomain() string - - // ProviderID returns the provider ID (e.g. "github", "gitlab") for this client - // This field is set at client creation time, and can't be changed - ProviderID() ProviderID - - // Raw returns the Go client used under the hood for accessing the Git provider - Raw() interface{} -} -``` - -As one can see, the `Client` is scoped for a single backing domain. `ProviderID` is a typed string, and every -implementation package defines their own constant, e.g. `const ProviderName = gitprovider.ProviderID("github")`. - -The `ResourceClient` actually allows talking to resources of the API, both for single objects, and collections: - -```go -// ResourceClient allows access to resource-specific clients -type ResourceClient interface { - // Organization gets the OrganizationClient for the specific top-level organization - // ErrNotTopLevelOrganization will be returned if the organization is not top-level when using - Organization(o OrganizationRef) OrganizationClient - - // Organizations returns the OrganizationsClient handling sets of organizations - Organizations() OrganizationsClient - - // Repository gets the RepositoryClient for the specified RepositoryRef - Repository(r RepositoryRef) RepositoryClient - - // Repositories returns the RepositoriesClient handling sets of organizations - Repositories() RepositoriesClient -} -``` - -In order to reference organizations and repositories, there are the `OrganizationRef` and `RepositoryRef` -interfaces: - -```go -// OrganizationRef references an organization in a Git provider -type OrganizationRef interface { - // String returns the HTTPS URL - fmt.Stringer - - // GetDomain returns the URL-domain for the Git provider backend, e.g. gitlab.com or version.aalto.fi - GetDomain() string - // GetOrganization returns the top-level organization, i.e. "weaveworks" or "kubernetes-sigs" - GetOrganization() string - // GetSubOrganizations returns the names of sub-organizations (or sub-groups), - // e.g. ["engineering", "frontend"] would be returned for gitlab.com/weaveworks/engineering/frontend - GetSubOrganizations() []string -} - -// RepositoryRef references a repository hosted by a Git provider -type RepositoryRef interface { - // RepositoryRef requires an OrganizationRef to fully-qualify a repo reference - OrganizationRef - - // GetRepository returns the name of the repository - GetRepository() string -} -``` - -Along with these, there is `OrganizationInfo` and `RepositoryInfo` which implement the above mentioned interfaces in a straightforward way. - -If you want to create an `OrganizationRef` or `RepositoryRef`, you can either use `NewOrganizationInfo()` or `NewRepositoryInfo()`, filling in all parts of the reference, or use the `ParseRepositoryURL(r string) (RepositoryRef, error)` or `ParseOrganizationURL(o string) (OrganizationRef, error)` methods. - -As mentioned above, only one target domain is supported by the `Client`. This means e.g. that if the `Client` is configured for GitHub, and you feed it a GitLab URL to parse, `ErrDomainUnsupported` will be returned. - -This brings us to a higher-level client abstraction, `MultiClient`. - -### MultiClient - -In order to automatically support multiple domains and providers using the same interface, `MultiClient` is introduced. - -The user would use the `MultiClient` as follows: - -```go -// Create a client to github.com without authentication -gh := github.NewClient() - -// Create a client to gitlab.com, authenticating with basic auth -gl := gitlab.NewClient(gitlab.WithBasicAuth("", "")) - -// Create a MultiClient which supports talking to any of these backends -client := gitprovider.NewMultiClient(gh, gl, aalto) -``` - -The interface definition of `MultiClient` is similar to that one of `Client`, both embedding `ResourceClient`, but it also allows access to domain-specific underlying `Client`'s: - -```go -// MultiClient allows talking to multiple Git providers at once -type MultiClient interface { - // The MultiClient allows accessing all known resources, automatically choosing the right underlying - // Client based on the resource's domain - ResourceClient - - // SupportedDomains returns a list of known domains - SupportedDomains() []string - - // ClientForDomain returns the Client used for a specific domain - ClientForDomain(domain string) (Client, bool) -} -``` - -### OrganizationsClient - -The `OrganizationsClient` provides access to a set of organizations, as follows: - -```go -// OrganizationsClient operates on organizations the user has access to -type OrganizationsClient interface { - // Get a specific organization the user has access to - // This might also refer to a sub-organization - // ErrNotFound is returned if the resource does not exist - Get(ctx context.Context, o OrganizationRef) (*Organization, error) - - // List all top-level organizations the specific user has access to - // List should return all available organizations, using multiple paginated requests if needed - List(ctx context.Context) ([]Organization, error) - - // Children returns the immediate child-organizations for the specific OrganizationRef o. - // The OrganizationRef may point to any sub-organization that exists - // This is not supported in GitHub - // Children should return all available organizations, using multiple paginated requests if needed - Children(ctx context.Context, o OrganizationRef) ([]Organization, error) - - // Possibly add Create/Update/Delete methods later -} -``` - -The `Organization` struct is fairly straightforward for now: - -```go -// Organization represents an (top-level- or sub-) organization -type Organization struct { - // OrganizationInfo provides the required fields - // (Domain, Organization and SubOrganizations) required for being an OrganizationRef - OrganizationInfo `json:",inline"` - // InternalHolder implements the InternalGetter interface - // +optional - InternalHolder `json:",inline"` - - // Name is the human-friendly name of this organization, e.g. "Weaveworks" or "Kubernetes SIGs" - // +required - Name string `json:"name"` - - // Description returns a description for the organization - // No default value at POST-time - // +optional - Description *string `json:"description"` -} -``` - -The `OrganizationInfo` struct is a straightforward struct just implementing the `OrganizationRef` interface -with basic fields & getters. `InternalHolder` is implementing the `InternalGetter` interface as follows, and is -embedded into all main structs: - -```go -// InternalGetter allows access to the underlying object -type InternalGetter interface { - // GetInternal returns the underlying struct that's used - GetInternal() interface{} -} - -// InternalHolder can be embedded into other structs to implement the InternalGetter interface -type InternalHolder struct { - // Internal contains the underlying object. - // +optional - Internal interface{} `json:"-"` -} -``` - -### OrganizationClient - -`OrganizationClient` allows access to a specific organization's underlying resources as follows: - -```go -// OrganizationClient operates on a given/specific organization -type OrganizationClient interface { - // Teams gives access to the TeamsClient for this specific organization - Teams() OrganizationTeamsClient -} -``` - -#### Organization Teams - -Teams belonging to a certain organization can at this moment be fetched on an individual basis, or listed. - -```go -// OrganizationTeamsClient handles teams organization-wide -type OrganizationTeamsClient interface { - // Get a team within the specific organization - // teamName may include slashes, to point to e.g. "sub-teams" i.e. subgroups in Gitlab - // teamName must not be an empty string - // ErrNotFound is returned if the resource does not exist - Get(ctx context.Context, teamName string) (*Team, error) - - // List all teams (recursively, in terms of subgroups) within the specific organization - // List should return all available organizations, using multiple paginated requests if needed - List(ctx context.Context) ([]Team, error) - - // Possibly add Create/Update/Delete methods later -} -``` - -The `Team` struct is defined as follows: - -```go -// Team is a representation for a team of users inside of an organization -type Team struct { - // Team embeds OrganizationInfo which makes it automatically comply with OrganizationRef - OrganizationInfo `json:",inline"` - // Team embeds InternalHolder for accessing the underlying object - // +optional - InternalHolder `json:",inline"` - - // Name describes the name of the team. The team name may contain slashes - // +required - Name string `json:"name"` - - // Members points to a set of user names (logins) of the members of this team - // +required - Members []string `json:"members"` -} -``` - -In GitLab, teams could be modelled as users in a sub-group. Those users can later be added as a single unit -to access a given repository. - -### RepositoriesClient - -`RepositoriesClient` provides access to a set of repositories for the user. - -```go -// RepositoriesClient operates on repositories the user has access to -type RepositoriesClient interface { - // Get returns the repository at the given path - // ErrNotFound is returned if the resource does not exist - Get(ctx context.Context, r RepositoryRef) (*Repository, error) - - // List all repositories in the given organization - // List should return all available organizations, using multiple paginated requests if needed - List(ctx context.Context, o OrganizationRef) ([]Repository, error) - - // Create creates a repository at the given organization path, with the given URL-encoded name and options - // ErrAlreadyExists will be returned if the resource already exists - Create(ctx context.Context, r *Repository, opts RepositoryCreateOptions) (*Repository, error) - - // Reconcile makes sure r is the actual state in the backing Git provider. If r doesn't exist - // under the hood, it is created. If r is already the actual state, this is a no-op. If r isn't - // the actual state, the resource will either be updated or deleted/recreated. - Reconcile(ctx context.Context, r *Repository) error -} -``` - -`RepositoryCreateOptions` has options like `AutoInit *bool`, `LicenseTemplate *string` and so forth to allow an -one-time initialization step. - -The `Repository` struct is defined as follows: - -```go -// Repository represents a Git repository provided by a Git provider -type Repository struct { - // RepositoryInfo provides the required fields - // (Domain, Organization, SubOrganizations and RepositoryName) - // required for being an RepositoryRef - RepositoryInfo `json:",inline"` - // InternalHolder implements the InternalGetter interface - // +optional - InternalHolder `json:",inline"` - - // Description returns a description for the repository - // No default value at POST-time - // +optional - Description *string `json:"description"` - - // Visibility returns the desired visibility for the repository - // Default value at POST-time: RepoVisibilityPrivate - // +optional - Visibility *RepoVisibility -} - -// GetCloneURL gets the clone URL for the specified transport type -func (r *Repository) GetCloneURL(transport TransportType) string { - return GetCloneURL(r, transport) -} -``` - -As can be seen, there is also a `GetCloneURL` function for the repository which allows -resolving the URL from which to clone the repo, for a given transport method (`ssh` and `https` -are supported `TransportType`s) - -### RepositoryClient - -`RepositoryClient` allows access to a given repository's underlying resources, like follows: - -```go -// RepositoryClient operates on a given/specific repository -type RepositoryClient interface { - // TeamAccess gives access to what teams have access to this specific repository - TeamAccess() RepositoryTeamAccessClient - - // Credentials gives access to manipulating credentials for accessing this specific repository - Credentials() RepositoryCredentialsClient -} -``` - -#### Repository Teams - -`RepositoryTeamAccessClient` allows adding & removing teams from the list of authorized persons to access a repository. - -```go -// RepositoryTeamAccessClient operates on the teams list for a specific repository -type RepositoryTeamAccessClient interface { - // Create adds a given team to the repo's team access control list - // ErrAlreadyExists will be returned if the resource already exists - // The embedded RepositoryInfo of ta does not need to be populated, but if it is, - // it must equal to the RepositoryRef given to the RepositoryClient. - Create(ctx context.Context, ta *TeamAccess, opts RepositoryAddTeamOptions) error - - // Lists the team access control list for this repo - List(ctx context.Context) ([]TeamAccess, error) - - // Reconcile makes sure ta is the actual state in the backing Git provider. If ta doesn't exist - // under the hood, it is created. If ta is already the actual state, this is a no-op. If ta isn't - // the actual state, the resource will either be updated or deleted/recreated. - // The embedded RepositoryInfo of ta does not need to be populated, but if it is, - // it must equal to the RepositoryRef given to the RepositoryClient. - Reconcile(ctx context.Context, ta *TeamAccess) error - - // Delete removes the given team from the repo's team access control list - // ErrNotFound is returned if the resource does not exist - Delete(ctx context.Context, teamName string) error -} -``` - -The `TeamAccess` struct looks as follows: - -```go -// TeamAccess describes a binding between a repository and a team -type TeamAccess struct { - // TeamAccess embeds RepositoryInfo which makes it automatically comply with RepositoryRef - // +optional - RepositoryInfo `json:",inline"` - // TeamAccess embeds InternalHolder for accessing the underlying object - // +optional - InternalHolder `json:",inline"` - - // Name describes the name of the team. The team name may contain slashes - // +required - Name string `json:"name"` - - // Permission describes the permission level for which the team is allowed to operate - // Default: read - // Available options: See the TeamRepositoryPermission enum - // +optional - Permission *TeamRepositoryPermission -} -``` - -#### Repository Credentials - -`RepositoryCredentialsClient` allows adding & removing credentials (e.g. deploy keys) from accessing a specific repository. - -```go -// RepositoryCredentialsClient operates on the access credential list for a specific repository -type RepositoryCredentialsClient interface { - // Create a credential with the given human-readable name, the given bytes and optional options - // ErrAlreadyExists will be returned if the resource already exists - Create(ctx context.Context, c RepositoryCredential, opts CredentialCreateOptions) error - - // Lists all credentials for the given credential type - List(ctx context.Context, t RepositoryCredentialType) ([]RepositoryCredential, error) - - // Reconcile makes sure c is the actual state in the backing Git provider. If c doesn't exist - // under the hood, it is created. If c is already the actual state, this is a no-op. If c isn't - // the actual state, the resource will either be updated or deleted/recreated. - Reconcile(ctx context.Context, c RepositoryCredential) error - - // Deletes a credential from the repo. name corresponds to GetName() of the credential - // ErrNotFound is returned if the resource does not exist - Delete(ctx context.Context, t RepositoryCredentialType, name string) error -} -``` - -In order to support multiple different types of credentials, `RepositoryCredential` is an interface: - -```go -// RepositoryCredential is a credential that allows access (either read-only or read-write) to the repo -type RepositoryCredential interface { - // GetType returns the type of the credential - GetType() RepositoryCredentialType - - // GetName returns a name (or title/description) of the credential - GetName() string - - // GetData returns the key that will be authorized to access the repo, this can e.g. be a SSH public key - GetData() []byte - - // IsReadOnly returns whether this credential is authorized to write to the repository or not - IsReadOnly() bool -} -``` - -The default implementation of `RepositoryCredential` is `DeployKey`: - -```go -// DeployKey represents a short-lived credential (e.g. an SSH public key) used for accessing a repository -type DeployKey struct { - // DeployKey embeds InternalHolder for accessing the underlying object - // +optional - InternalHolder `json:",inline"` - - // Title is the human-friendly interpretation of what the key is for (and does) - // +required - Title string `json:"title"` - - // Key specifies the public part of the deploy (e.g. SSH) key - // +required - Key []byte `json:"key"` - - // ReadOnly specifies whether this DeployKey can write to the repository or not - // Default value at POST-time: true - // +optional - ReadOnly *bool `json:"readOnly"` -} -``` diff --git a/docs/roadmap/index.md b/docs/roadmap/index.md deleted file mode 100644 index b4088451..00000000 --- a/docs/roadmap/index.md +++ /dev/null @@ -1,148 +0,0 @@ -# Roadmap - -!!! hint "Production readiness" - The Flux custom resource definitions which are at `v1beta1` and `v2beta1` - and their controllers are considered stable and production ready. - Going forward, breaking changes to the beta CRDs will be accompanied by a conversion mechanism. - Please see the [Migration and Suport Timetable](../migration/timetable.md) for our commitment to end users. - -The following components (included by default in [flux bootstrap](../guides/installation.md#bootstrap)) -are considered production ready: - -- [source-controller](../components/source) -- [kustomize-controller](../components/kustomize) -- [notification-controller](../components/notification) -- [helm-controller](../components/helm) - -The following GitOps Toolkit APIs are considered production ready: - -- `source.toolkit.fluxcd.io/v1beta1` -- `kustomize.toolkit.fluxcd.io/v1beta1` -- `notification.toolkit.fluxcd.io/v1beta1` -- `helm.toolkit.fluxcd.io/v2beta1` - -## The road to Flux v2 GA - -In our planning discussions we have identified these possible areas of work, -this list is subject to change while we gather feedback: - -- Stabilize the image automation APIs - * Review the spec of `ImageRepository`, `ImagePolicy` and `ImageUpdateAutomation` - * Promote the image automation APIs to `v1beta1` - * Include the image automation controllers in the default components list - -- Improve the documentation - * Gather feedback on the [migration guides](https://github.com/fluxcd/flux2/discussions/413) and address more use-cases - * Incident management and troubleshooting guides - * Cloud specific guides (AWS, Azure, Google Cloud, more?) - * Consolidate the docs under [fluxcd.io](https://fluxcd.io) website - -## The road to Flux v1 feature parity - -In our planning discussions we identified three areas of work: - -- Feature parity with Flux v1 in read-only mode -- Feature parity with the image-update functionality in Flux v1 -- Feature parity with Helm Operator v1 - -### Flux read-only feature parity - -[= 100% "100%"] - -Flux v2 read-only is ready to try. See the [Getting -Started](https://toolkit.fluxcd.io/get-started/) how-to, and the -[Migration -guide](https://toolkit.fluxcd.io/guides/flux-v1-migration/). - -This would be the first stepping stone: we want Flux v2 to be on-par with today's Flux in -[read-only mode](https://github.com/fluxcd/flux/blob/master/docs/faq.md#can-i-run-flux-with-readonly-git-access) -and [FluxCloud](https://github.com/justinbarrick/fluxcloud) notifications. - -Goals - -- :material-check-bold: [Offer a migration guide for those that are using Flux in read-only mode to synchronize plain manifests](https://toolkit.fluxcd.io/guides/flux-v1-migration/) -- :material-check-bold: [Offer a migration guide for those that are using Flux in read-only mode to synchronize Kustomize overlays](https://toolkit.fluxcd.io/guides/flux-v1-migration/) -- :material-check-bold: [Offer a dedicated component for forwarding events to external messaging platforms](https://toolkit.fluxcd.io/guides/notifications/) - -Non-Goals - -- Migrate users that are using Flux to run custom scripts with `flux.yaml` -- Automate the migration of `flux.yaml` kustomize users - -Tasks - -- [x] Design the events API -- [x] Implement events in source and kustomize controllers -- [x] Make the kustomize-controller apply/gc events on-par with Flux v1 apply events -- [x] Design the notifications and events filtering API -- [x] Implement a notification controller for Slack, MS Teams, Discord, Rocket -- [x] Implement Prometheus metrics in source and kustomize controllers -- [x] Review the git source and kustomize APIs -- [x] Support [bash-style variable substitution](https://toolkit.fluxcd.io/components/kustomize/kustomization/#variable-substitution) as an alternative to `flux.yaml` envsubst/sed usage -- [x] Create a migration guide for `flux.yaml` kustomize users -- [x] Include support for SOPS - -### Flux image update feature parity - -[= 100% "100%"] - -Image automation is available as a prerelease. See [this -guide](https://toolkit.fluxcd.io/guides/image-update/) for how to -install and use it. - -Goals - -- Offer components that can replace Flux v1 image update feature - -Non-Goals - -- Maintain backwards compatibility with Flux v1 annotations -- [Order by timestamps found inside image layers](https://github.com/fluxcd/flux2/discussions/802) - -Tasks - -- [x] [Design the image scanning and automation API](https://github.com/fluxcd/flux2/discussions/107) -- [x] Implement an image scanning controller -- [x] Public image repo support -- [x] Credentials from Secret [fluxcd/image-reflector-controller#35](https://github.com/fluxcd/image-reflector-controller/pull/35) -- [x] Design the automation component -- [x] Implement the image scan/patch/push workflow -- [x] Integrate the new components in the Flux CLI [fluxcd/flux2#538](https://github.com/fluxcd/flux2/pull/538) -- [x] Write a guide for how to use image automation ([guide here](https://toolkit.fluxcd.io/guides/image-update/)) -- [x] ACR/ECR/GCR integration ([guide here](https://toolkit.fluxcd.io/guides/image-update/#imagerepository-cloud-providers-authentication)) -- [x] Write a migration guide from Flux v1 annotations ([guide here](https://toolkit.fluxcd.io/guides/flux-v1-automation-migration/)) - -### Helm v3 feature parity - -[= 100% "100%"] - -Helm support in Flux v2 is ready to try. See the [Helm controller -guide](https://toolkit.fluxcd.io/guides/helmreleases/), and the [Helm -controller migration -guide](https://toolkit.fluxcd.io/guides/helm-operator-migration/). - -Goals - -- Offer a migration guide for those that are using Helm Operator with Helm v3 and charts from - Helm and Git repositories - -Non-Goals - -- Migrate users that are using Helm v2 - -Tasks - -- [x] Implement a Helm controller for Helm v3 covering all the current release options -- [x] Discuss and design Helm releases based on source API: - * [x] Providing values from sources - * [x] Conditional remediation on failed Helm actions - * [x] Support for Helm charts from Git -- [x] Review the Helm release, chart and repository APIs -- [x] Implement events in Helm controller -- [x] Implement Prometheus metrics in Helm controller -- [x] Implement support for values from `Secret` and `ConfigMap` resources -- [x] Implement conditional remediation on (failed) Helm actions -- [x] Implement support for Helm charts from Git -- [x] Implement support for referring to an alternative chart values file -- [x] Stabilize API -- [x] [Create a migration guide for Helm Operator users](../guides/helm-operator-migration.md) diff --git a/docs/use-cases/azure.md b/docs/use-cases/azure.md deleted file mode 100644 index 64a68876..00000000 --- a/docs/use-cases/azure.md +++ /dev/null @@ -1,233 +0,0 @@ -# Using Flux on Azure - -## AKS Cluster Options - -It's important to follow some guidelines when installing Flux on AKS. - -### CNI and Network Policy - -Previously, there has been an issue with Flux and Network Policy on AKS. -([Upstream Azure Issue](https://github.com/Azure/AKS/issues/2031)) ([Flux Issue](https://github.com/fluxcd/flux2/issues/703)) -If you ensure your AKS cluster is upgraded, and your Nodes have been restarted with the most recent Node images, -this could resolve flux reconciliation failures where source-controller is unreachable. -Using `--network-plugin=azure --network-policy=calico` has been tested to work properly. -This issue only affects you if you are using `--network-policy` on AKS, which is not a default option. - -!!! warning - AKS `--network-policy` is currently in Preview - -### AAD Pod-Identity - -Depending on the features you are interested in using with Flux, you may want to install AAD Pod Identity. -With [AAD Pod-Identity](https://azure.github.io/aad-pod-identity/docs/), we can create Pods that have their own -cloud credentials for accessing Azure services like Azure Container Registry(ACR) and Azure Key Vault(AKV). - -If you do not use AAD Pod-Identity, you'll need to manage and store Service Principal credentials -in K8s Secrets, to integrate Flux with other Azure Services. - -As a pre-requisite, your cluster must have `--enable-managed-identity` configured. - -This software can be [installed via Helm](https://azure.github.io/aad-pod-identity/docs/getting-started/installation/) -(unmanaged by Azure). -Use Flux's `HelmRepository` and `HelmRelease` object to manage the aad-pod-identity installation -from a bootstrap repository and keep it up to date. - -!!! note - As an alternative to Helm, the `--enable-aad-pod-identity` flag for the `az aks create` is currently in Preview. - Follow the Azure guide for [Creating an AKS cluster with AAD Pod Identity](https://docs.microsoft.com/en-us/azure/aks/use-azure-ad-pod-identity) - if you would like to enable this feature with the Azure CLI. - -### Cluster Creation - -The following creates an AKS cluster with some minimal configuration that will work well with Flux: - -```sh -az aks create \ - --network-plugin="azure" \ - --network-policy="calico" \ - --enable-managed-identity \ - --enable-pod-identity \ - --name="my-cluster" -``` - -!!! info - When working with the Azure CLI, it can help to set a default `location`, `group`, and `acr`. - See `az configure --help`, `az configure --list-defaults`, and `az configure --defaults key=value`. - -## Flux Installation for Azure DevOps - -Ensure you can login to [dev.azure.com](https://dev.azure.com) for your proper organization, -and create a new repository to hold your Flux install and other Kubernetes resources. - -Clone the Git repository locally: - -```sh -git clone ssh://git@ssh.dev.azure.com/v3/// -cd my-repository -``` - -Create a directory inside the repository: - -```sh -mkdir -p ./clusters/my-cluster/flux-system -``` - -Download the [Flux CLI](../guides/installation.md#install-the-flux-cli) and generate the manifests with: - -```sh -flux install \ - --export > ./clusters/my-cluster/flux-system/gotk-components.yaml -``` - -Commit and push the manifest to the master branch: - -```sh -git add -A && git commit -m "add components" && git push -``` - -Apply the manifests on your cluster: - -```sh -kubectl apply -f ./clusters/my-cluster/flux-system/gotk-components.yaml -``` - -Verify that the controllers have started: - -```sh -flux check -``` - -Create a `GitRepository` object on your cluster by specifying the SSH address of your repo: - -```sh -flux create source git flux-system \ - --git-implementation=libgit2 \ - --url=ssh://git@ssh.dev.azure.com/v3/// \ - --branch= \ - --ssh-key-algorithm=rsa \ - --ssh-rsa-bits=4096 \ - --interval=1m -``` - -The above command will prompt you to add a deploy key to your repository, but Azure DevOps -[does not support repository or org-specific deploy keys](https://developercommunity.visualstudio.com/t/allow-the-creation-of-ssh-deploy-keys-for-vsts-hos/365747). -You may add the deploy key to a user's personal SSH keys, but take note that -revoking the user's access to the repository will also revoke Flux's access. -The better alternative is to create a machine-user whose sole purpose is -to store credentials for automation. -Using a machine-user also has the benefit of being able to be read-only or -restricted to specific repositories if this is needed. - -!!! note - Unlike `git`, Flux does not support the - ["shorter" scp-like syntax for the SSH protocol](https://git-scm.com/book/en/v2/Git-on-the-Server-The-Protocols#_the_ssh_protocol) - (e.g. `ssh.dev.azure.com:v3`). - Use the [RFC 3986 compatible syntax](https://tools.ietf.org/html/rfc3986#section-3) instead: `ssh.dev.azure.com/v3`. - -If you wish to use Git over HTTPS, then generate a personal access token and supply it as the password: - -```sh -flux create source git flux-system \ - --git-implementation=libgit2 \ - --url=https://dev.azure.com///_git/ \ - --branch=main \ - --username=git \ - --password=${AZ_PAT_TOKEN} \ - --interval=1m -``` - -Please consult the [Azure DevOps documentation](https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops&tabs=preview-page) -on how to generate personal access tokens for Git repositories. -Azure DevOps PAT's always have an expiration date, so be sure to have some process for renewing or updating these tokens. -Similar to the lack of repo-specific deploy keys, a user needs to generate a user-specific PAT. -If you are using a machine-user, you can generate a PAT or simply use the machine-user's password which does not expire. - -Create a `Kustomization` object on your cluster: - -```sh -flux create kustomization flux-system \ - --source=flux-system \ - --path="./clusters/my-cluster" \ - --prune=true \ - --interval=10m -``` - -Export both objects, generate a `kustomization.yaml`, commit and push the manifests to Git: - -```sh -flux export source git flux-system \ - > ./clusters/my-cluster/flux-system/gotk-sync.yaml - -flux export kustomization flux-system \ - >> ./clusters/my-cluster/flux-system/gotk-sync.yaml - -cd ./clusters/my-cluster/flux-system && kustomize create --autodetect - -git add -A && git commit -m "add sync manifests" && git push -``` - -Wait for Flux to reconcile your previous commit with: - -```sh -watch flux get kustomization flux-system -``` - -### Flux Upgrade - -To upgrade the Flux components to a newer version, download the latest `flux` binary, -run the install command in your repository root, commit and push the changes: - -```sh -flux install \ - --export > ./clusters/my-cluster/flux-system/gotk-components.yaml - -git add -A && git commit -m "Upgrade to $(flux -v)" && git push -``` - -The [source-controller](../components/source/controller.md) will pull the changes on the cluster, -then [kustomize-controller](../components/source/controller.md) -will perform a rolling update of all Flux components including itself. - -## Helm Repositories on Azure Container Registry - -The Flux `HelmRepository` object currently supports -[Chart Repositories](https://helm.sh/docs/topics/chart_repository/) -as well as fetching `HelmCharts` from paths in `GitRepository` sources. - -Azure Container Registry has a sub-command ([`az acr helm`](https://docs.microsoft.com/en-us/cli/azure/acr/helm)) -for working with ACR-Hosted Chart Repositories, but it is deprecated. -If you are using these deprecated Azure Chart Repositories, -you can use Flux `HelmRepository` objects with them. - -[Newer ACR Helm documentation](https://docs.microsoft.com/en-us/azure/container-registry/container-registry-helm-repos) -suggests using ACR as an experimental [Helm OCI Registry](https://helm.sh/docs/topics/registries/). -This will not work with Flux, because using Charts from OCI Registries is not yet supported. - -## Secrets Management with SOPS and Azure Key Vault - -You will need to create an Azure Key Vault and bind a credential such as a Service Principal or Managed Identity to it. -If you want to use Managed Identities, install or enable [AAD Pod Identity](#aad-pod-identity). - -Patch kustomize-controller with the proper Azure credentials, so that it may access your Azure Key Vault, and then begin -committing SOPS encrypted files to the Git repository with the proper Azure Key Vault configuration. - -See the [Mozilla SOPS Azure Guide](../guides/mozilla-sops.md#azure) for further detail. - -## Image Updates with Azure Container Registry - -You will need to create an ACR registry and bind a credential such as a Service Principal or Managed Identity to it. -If you want to use Managed Identities, install or enable [AAD Pod Identity](#aad-pod-identity). - -You may need to update your Flux install to include additional components: -```sh -flux install \ - --components-extra="image-reflector-controller,image-automation-controller" \ - --export > ./clusters/my-cluster/flux-system/gotk-components.yaml -``` - -Follow the [Image Update Automation Guide](../guides/image-update.md) and see the -[ACR specific section](../guides/image-update.md#azure-container-registry) for more details. - -Your AKS cluster's configuration can also be updated to -[allow the kubelets to pull images from ACR](https://docs.microsoft.com/en-us/azure/aks/cluster-container-registry-integration) -without ImagePullSecrets as an optional, complimentary step. diff --git a/docs/use-cases/gh-actions-manifest-generation.md b/docs/use-cases/gh-actions-manifest-generation.md deleted file mode 100644 index f240ccd3..00000000 --- a/docs/use-cases/gh-actions-manifest-generation.md +++ /dev/null @@ -1,1279 +0,0 @@ -# GitHub Actions Manifest Generation - -This example implements "build-time" manifest generation on GitHub Actions. - -Third-party tools are used to generate YAML manifests in a CI job. The updated YAML are committed and pushed to Git, where `kustomize-controller` finally applies them. - -### Background - -There are many use cases for manifest generation tools, but Flux v2 no longer permits embedding arbitrary binaries with the Flux machinery to run at apply time. - -Flux (kustomize-controller) will apply whatever revision of the manifests are at the latest commit, on any branch it is pointed at. By design, Flux doesn't care for any details of how a commit is generated. - -Since ["select latest by build time" image automation][flux2/discussions/802] is deprecated, and since [`.flux.yaml` is also deprecated][flux2/issues/543], some staple workflows are no longer possible without new accommodations from infrastructure. - -#### What Should We Do? - -We first recommend users [adjust their tagging strategies][Sortable image tags], which is made clear elsewhere in the docs. This is usually a straightforward adjustment, and enables the use of [Image Update Policies][image update guide]; however this may not be feasible or desired in some cases. - -## Use Manifest Generation - -Introducing, Manifest Generation with Jsonnet, for [any old app] on GitHub! - -If you have followed the [Flux bootstrap guide] and only have one `fleet-infra` repository, it is recommended to create a separate repository that represents your application for this use case guide, or clone the repository linked above in order to review these code examples which have already been implemented there. - -### Primary Uses of Flux - -Flux's primary use case for `kustomize-controller` is to apply YAML manifests from the latest `Revision` of an `Artifact`. - -### Security Consideration - -Flux v2 can not be configured to call out to arbitrary binaries that a user might supply with an `InitContainer`, as it was possible to do in Flux v1. - -#### Motivation for this Guide - -In Flux v2 it is assumed if users want to run more than `Kustomize` with `envsubst`, that it will be done outside of Flux; the goal of this guide is to show several common use cases of this pattern in secure ways. - -#### Demonstrated Concepts - -It is intended, finally, to show through this use case, three fundamental ideas for use in CI to accompany Flux automation: - -1. Writing workflow that can commit changes back to the same branch of a working repository. -1. A workflow to commit generated content from one directory into a different branch in the repository. -1. Workflow to commit from any source directory into a target branch on a different repository. - -Readers can interpret this document with adaptations for use with other CI providers, or Git source hosts, or manifest generators. - -Jsonnet is demonstrated with examples presented in sufficient depth that, hopefully, Flux users who are not already familiar with manifest generation or Jsonnet can pick up `kubecfg` and start using it to solve novel and interesting configuration problems. - -### The Choice of GitHub Actions - -There are authentication concerns to address with every CI provider and they also differ by Git provider. - -Given that GitHub Actions are hosted on GitHub, this guide can be streamlined in some ways. We can almost completely skip configuring authentication. The cross-cutting concern is handled by the CI platform, except in our fourth and final example, the *Commit Across Repositories Workflow*. - -From a GitHub Action, as we must have been authenticated to write to a branch, Workflows also can transitively gain write access to the repo safely. - -Mixing and matching from other providers like Bitbucket Cloud, Jenkins, or GitLab will need more attention to these details for auth configurations. GitHub Actions is a platform that is designed to be secure by default. - -## Manifest Generation Examples - -There are several use cases presented. - -* [String Substitution with sed -i] -* [Docker Build and Tag with Version] -* [Jsonnet for YAML Document Rehydration] -* [Commit Across Repositories Workflow] - -In case these examples are too heavy, this short link guide can help you navigate the four main examples. Finally, the code examples we've all been waiting for, the answer to complex `.flux.yaml` configs in Flux v2! 🎉🎁 - -### String Substitution with `sed -i` - -The entry point for these examples begins at `.github/workflows/` in any GitHub source repository where your YAML manifests are stored. - -!!! warning "`GitRepository` source only targets one branch" - While this first example operates on any branch (`branches: ['*']`), each `Kustomization` in Flux only deploys manifests from **one branch or tag** at a time. Understanding this is key for managing large Flux deployments and clusters with multiple `Kustomizations` and/or crossing several environments. - -First add this directory if needed in your repositories. Find the example below in context, and read on to understand how it works: [01-manifest-generate.yaml]. - -```yaml -# ./.github/workflows/01-manifest-generate.yaml -name: Manifest Generation -on: - push: - branches: - - '*' - -jobs: - run: - name: Push Git Update - runs-on: ubuntu-latest - steps: - - name: Prepare - id: prep - run: | - VERSION=${GITHUB_SHA::8} - echo ::set-output name=BUILD_DATE::$(date -u +'%Y-%m-%dT%H:%M:%SZ') - echo ::set-output name=VERSION::${VERSION} - - - name: Checkout repo - uses: actions/checkout@v2 - - - name: Update manifests - run: ./update-k8s.sh $GITHUB_SHA - - - name: Commit changes - uses: EndBug/add-and-commit@v7 - with: - add: '.' - message: "[ci skip] deploy from ${{ steps.prep.outputs.VERSION }}" - signoff: true -``` - -In the `Prepare` step, even before the clone, GitHub Actions provides metadata about the commit. Then, `Checkout repo` performs a shallow clone for the build. - -```bash -# excerpt from above - set two outputs named "VERSION" and "BUILD_DATE" -VERSION=${GITHUB_SHA::8} -echo ::set-output name=BUILD_DATE::$(date -u +'%Y-%m-%dT%H:%M:%SZ') -echo ::set-output name=VERSION::${VERSION} -``` - -!!! note "When migrating to Flux v2" - Users will find that [some guidance has changed since Flux v1]. Tagging images with a `GIT_SHA` was a common practice that is no longer supported by Flux's Image Automation. A newer alternative is adding timestamp or build number in [Sortable image tags], preferred by the `image-automation-controller`. - -Next we call out to a shell script `update-k8s.sh` taking one argument, the Git SHA value from GitHub: - -```yaml -# excerpted from above - run a shell script -- name: Update manifests - run: ./update-k8s.sh $GITHUB_SHA -``` - -That script is below. It performs two in-place string substitutions using `sed`. - -```bash -#!/bin/bash - -# update-k8s.sh -set -feu # Usage: $0 # Fails when GIT_SHA is not provided - -GIT_SHA=${1:0:8} -sed -i "s|image: kingdonb/any-old-app:.*|image: kingdonb/any-old-app:$GIT_SHA|" k8s.yml -sed -i "s|GIT_SHA: .*|GIT_SHA: $GIT_SHA|" flux-config/configmap.yaml -``` - -`update-k8s.sh` receives `GITHUB_SHA` that the script trims down to 8 characters. - -Then, `sed -i` runs twice, updating `k8s.yml` and `flux-config/configmap.yaml` which are also provided as examples here. The new SHA value is added twice, once in each file. - -```yaml -# k8s.yml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: any-old-app -spec: - replicas: 1 - selector: - matchLabels: - app: any-old-app - template: - metadata: - labels: - app: any-old-app - spec: - containers: - - image: kingdonb/any-old-app:4f314627 - name: any-old-app ---- -apiVersion: v1 -kind: Service -metadata: - name: any-old-app -spec: - type: ClusterIP - ports: - - name: "any-old-app" - port: 3000 - selector: - app: any-old-app -``` - -The convention of including a `k8s.yml` file in one's application repository is borrowed from [Okteto's Getting Started Guides], as a simplified example. - -The `k8s.yml` file in the application root is not meant to be applied by Flux, but might be a handy template to keep fresh as a developer reference nonetheless. - -The file below, `configmap.yaml`, is placed in a directory `flux-config/` which will be synchronized to the cluster by a `Kustomization` that we will add in the following step. - -```yaml -# flux-config/configmap.yaml -apiVersion: v1 -data: - GIT_SHA: 4f314627 -kind: ConfigMap -metadata: - creationTimestamp: null - name: any-old-app-version - namespace: devl -``` - -These are the two files that are re-written in the `sed -i` example above. - -A configmap is an ideal place to write a variable that is needed by any downstream `Kustomization`, for example to use with `envsubst`. - -```yaml ---- -apiVersion: kustomize.toolkit.fluxcd.io/v1beta1 -kind: Kustomization -metadata: - name: any-old-app-devl -spec: - interval: 15m0s - path: ./ - prune: true - sourceRef: - kind: GitRepository - name: any-old-app-prod - targetNamespace: prod - validation: client - postBuild: - substituteFrom: - - kind: ConfigMap - name: any-old-app-version ---- -apiVersion: source.toolkit.fluxcd.io/v1beta1 -kind: GitRepository -metadata: - name: any-old-app-prod - namespace: prod -spec: - interval: 20m0s - ref: - branch: deploy - secretRef: - name: flux-secret - url: ssh://git@github.com/kingdonb/csh-flux -``` - -Now, any downstream `Deployment` in the `Kustomization` can write a `PodSpec` like this one, to reference the image from the latest commit referenced by the `ConfigMap`: - -```yaml -# flux/ some-example-deployment.yaml -spec: - replicas: 1 - selector: - matchLabels: - app: any-old-app - template: - metadata: - labels: - app: any-old-app - spec: - containers: - - image: kingdonb/any-old-app:${GIT_SHA} - name: any-old-app -``` - -Deployment specifications will vary, so adapting this example is left as exercise for the reader. Write it together with a kustomization.yaml, or just add this to a subdirectory anywhere within your Flux Kustomization path. - -### Docker Build and Tag with Version - -Now for another staple workflow: building and pushing an OCI image tag from a Dockerfile in any branch or tag. - -From the Actions marketplace, [Build and push Docker images] provides the heavy lifting in this example. Flux has nothing to do with building images, but we include this still — as some images will need to be built for our use in these examples. - -!!! hint "`ImageRepository` can reflect both branches and tags" - This example builds an image for any branch or tag ref and pushes it to Docker Hub. (Note the omission of `branches: ['*']` that was in the prior example.) GitHub Secrets `DOCKERHUB_USERNAME` and `DOCKERHUB_TOKEN` are used here to authenticate with Docker Hub from within GitHub Actions. - -We again borrow a [Prepare step] from Kustomize Controller's own release workflow. Find the example below in context, [02-docker-build.yaml], or copy it from below. - -```yaml -# ./.github/workflows/02-docker-build.yaml -name: Docker Build, Push - -on: - push: - branches: - - '*' - tags-ignore: - - 'release/*' - -jobs: - docker: - runs-on: ubuntu-latest - steps: - - name: Prepare - id: prep - run: | - VERSION=${GITHUB_SHA::8} - if [[ $GITHUB_REF == refs/tags/* ]]; then - VERSION=${GITHUB_REF/refs\/tags\//} - fi - echo ::set-output name=BUILD_DATE::$(date -u +'%Y-%m-%dT%H:%M:%SZ') - echo ::set-output name=VERSION::${VERSION} - - - name: Set up QEMU - uses: docker/setup-qemu-action@v1 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - - name: Login to DockerHub - uses: docker/login-action@v1 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build and push - id: docker_build - uses: docker/build-push-action@v2 - with: - push: true - tags: kingdonb/any-old-app:${{ steps.prep.outputs.VERSION }} - - - name: Image digest - run: echo ${{ steps.docker_build.outputs.digest }} -``` - -The [Docker Login Action] is used here to enable an authenticated image push. - -Any secrets from GitHub Secrets can be used as shown, and support for image registries is explained in the linked README. Add a setting for `registry` if your app uses any private registry, rather than the implicit Docker Hub registry above. - -``` -# for example -with: - registry: registry.cloud.okteto.net -``` - -The image tag `VERSION` comes from the branch or Git tag that triggered the build. Whether that version is a `GIT_SHA` or a Semantic Version, (or anything in between!) the same workflow can be used to build an OCI image as shown here. - -### Jsonnet for YAML Document Rehydration - -As mentioned before, Flux only monitors one branch or tag per Kustomization. - -In the earlier examples, no fixed branch target was specified. Whatever branch triggered the workflow, received the generated YAMLs in the next commit. - -If you created your deployment manifests in any branch, the `deploy` branch or otherwise, it is necessary to add another `Kustomization` and `GitRepository` source to apply manifests from that branch and path in the cluster. - -In application repositories, it is common to maintain an environment branch, a release branch, or both. Some additional Flux objects may be needed for each new environment target with its own branch. Jsonnet can be used for more easily managing heavyweight repetitive boilerplate configuration such as this. - -It is recommended to follow these examples as they are written for better understanding, then later change and adapt them for your own release practices and environments. - -!!! note "`GitRepository` source only targets one branch" - Since Flux uses one branch per Kustomization, to trigger an update we must write to a `deploy` branch or tag. Even when new app images can come from any branch (eg. for Dev environments where any latest commit is to be deployed) the YAML manifests to deploy will be sourced from just one branch. - -It is advisable to protect repository main and release branches with eg. branch policies and review requirements, as through automation, these branches can directly represent the production environment. - -The CI user for this example should be allowed to push directly to the `deploy` branch that Kustomize deploys from; this branch also represents the environment so must be protected in a similar fashion to `release`. - -Only authorized people (and build robots) should be allowed to make writes to a `deploy` branch. - -#### Jsonnet Render Action - -In this example, the outputted YAML manifests, (on successful completion of the Jsonnet render step,) are staged on the `deploy` branch, then committed and pushed. - -The latest commit on the `deploy` branch is reconciled into the cluster by another `Kustomization` that is omitted here, as it is assumed that users who have read this far already added this in the previous examples. - -You may find the example below in context, [03-release-manifests.yaml], or simply copy it from below. - -```yaml -# ./.github/workflows/03-release-manifests.yaml -name: Build jsonnet -on: - push: - tags: ['release/*'] - branches: ['release'] - -jobs: - run: - name: jsonnet push - runs-on: ubuntu-latest - steps: - - name: Prepare - id: prep - run: | - VERSION=${GITHUB_SHA::8} - if [[ $GITHUB_REF == refs/tags/release/* ]]; then - VERSION=${GITHUB_REF/refs\/tags\/release\//} - fi - echo ::set-output name=BUILD_DATE::$(date -u +'%Y-%m-%dT%H:%M:%SZ') - echo ::set-output name=VERSION::${VERSION} - - - name: Checkout repo - uses: actions/checkout@v2 - - - name: Setup kubecfg CLI - uses: kingdonb/kubecfg/action@main - - - name: kubecfg show - run: kubecfg show manifests/example.jsonnet > output/production.yaml - - - name: Prepare target branch - run: ./ci/rake.sh deploy - - - name: Commit changes - uses: EndBug/add-and-commit@v7 - with: - add: 'production.yaml' - branch: deploy - message: "[ci skip] from ${{ steps.prep.outputs.VERSION }}" - signoff: true -``` - -We add three new steps in this example: - -```yaml -# excerpted from above - workflow steps 3, 4, and 5 -- name: Setup kubecfg CLI - uses: kingdonb/kubecfg/action@main - -- name: kubecfg show - run: kubecfg show manifests/example.jsonnet > output/production.yaml - -- name: Prepare target branch - run: ./ci/rake.sh deploy -``` - -While the remaining examples will be written to depend on `kubecfg`, some use cases may prefer to use pure Jsonnet only as it is sandboxed and therefore safer. We plan to use the `kubecfg` capability to take input from other sources, like variables and references, but also network-driven imports and functions. - -```yaml -# from above - substitute these steps in 03-release-manifests.yaml, -# between "Checkout repo" and "Commit changes" to use plain Jsonnet instead of kubecfg -- id: jsonnet-render - uses: alexdglover/jsonnet-render@v1 - with: - file: manifests/example.jsonnet - output_file: output/production.yaml - params: dryrun=true;env=prod - -- name: Prepare target branch - run: ./ci/rake.sh deploy -``` - -The `jsonnet-render` step is borrowed from another source, again find it on [GitHub Actions Marketplace][actions/jsonnet-render] for more information. For Tanka users, there is also [letsbuilders/tanka-action] which describes itself as heavily inspired by `jsonnet-render`. - -!!! note "The `EndBug/add-and-commit` action is used again" - This time, with the help of `rake.sh`, our change is staged into a different target branch. This is the same `deploy` branch, regardless of which branch or tag the build comes from; any configured push event can trigger this workflow to trigger an update to the deploy branch. - -```bash -#!/bin/bash - -# ./ci/rake.sh -set -feux # Usage: $0 # Fails when BRANCH is not provided -BRANCH=$1 - -# The output/ directory is listed in .gitignore, where jsonnet rendered output. -pushd output - -# Fetch git branch 'deploy' and run `git checkout deploy` -/usr/bin/git -c protocol.version=2 fetch \ - --no-tags --prune --progress --no-recurse-submodules \ - --depth=1 origin $BRANCH -git checkout $BRANCH -- - -# Prepare the output to commit by itself in the deploy branch's root directory. -mv -f ./production.yaml ../ # Overwrite any existing files (no garbage collection here) -git diff - -# All done (the commit will take place in the next action!) -popd -``` - -Give this file `chmod +x` before adding and committing; tailor this workflow to your needs. We render from a file `manifests/example.jsonnet`, it can be anything. The output is a single K8s YAML file, `production.yaml`. - -```yaml -- name: Commit changes - uses: EndBug/add-and-commit@v7 - with: - add: 'production.yaml' - branch: deploy - message: "[ci skip] from ${{ steps.prep.outputs.VERSION }}" - signoff: true -``` - -This is [Add & Commit] with a `branch` option, to set the target branch. We've added a `signoff` option as well here, to demonstrate another feature of this GitHub Action. There are many ways to use this workflow step. The link provides more information. - -The examples that follow can be copied and pasted into `manifests/example.jsonnet`, then committed to the `release` branch and pushed to GitHub in order to execute them. - -Pushing this to your repository will fail at first, unless and until a `deploy` branch is created. - -Run `git checkout --orphan deploy` to create a new empty HEAD in your repo. - -Run `git reset` and `git stash` to dismiss any files that were staged, then run `git commit --allow-empty` to create an initial empty commit on the branch. - -Now you can copy and run these commands to create an empty branch: - -``` -#- Add a basic kustomization.yaml file -cat < kustomization.yaml -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: -- production.yaml -EOF - -#- Add a gitignore so output directory is created -cat < .gitignore -/output/** -!/output/.keep -EOF - -#- Add the .keep file -touch output/.keep - -#- Push these files into an empty branch, and go back to main branch -git add output/.keep .gitignore kustomization.yaml -git commit -m'seed deploy kustomization.yaml for prod' -git push -u origin deploy -git checkout main -``` - -On the main branch as well, create a `.gitignore` and `/output/.keep` for that branch too. We need to make sure that the `output/` directory is present for writing whenever the Jsonnet workflow begins. The `rake.sh` script sweeps files from the output into the root directory of the `deploy` branch. - -Now run `git checkout -b release; git push -u origin release` to trigger this action and see it working! 🤞🤞 - -You may need to be sure that GitHub Actions are enabled on your repository before this will work. - -Read onward to see some basic as well as more advanced uses of `kubecfg`. - -##### Jsonnet `ConfigMap` with `envsubst` - -The next example "enforces," or copies, a value from a `configMap` from one namespace into many namespaces. This is done so that Kustomizations for each namespace can maintain similar config data in their reconciliations while staying DRY, with some configurations that reach across namespace boundaries. - -With Jsonnet, Kustomize, and Kustomization Controller's `postBuild` which uses `envsubst`, there are usually a handful of different ways to accomplish the same task. - -This example demonstrates a feature called `ext_vars` or [External Variables] in the Jsonnet `stdlib`. - -These examples assume (since no such protection has been presented) that nothing prevents `production.yaml` from writing resources throughout multiple namespaces. This may be difficult or impossible to achieve depending on your environment. - -In order to permit a Kustomization to write into different namespaces, some RBAC configuration may be required. - -When you write a `Kustomization` to apply this, be sure you are aware of whether or not you have set `targetNamespace` on the Flux `Kustomization` as it may override any namespace settings in the Jsonnet output. You may note similar configuration in the `kustomization.yaml` we wrote into the deploy branch as described above, in the step for **Jsonnet Render Action**. - -##### External Variable Substitution - -```javascript -# Any Old App Jsonnet example 0.10.1 - manifests/example.jsonnet - -local kube = import 'https://github.com/bitnami-labs/kube-libsonnet/raw/73bf12745b86718083df402e89c6c903edd327d2/kube.libsonnet'; - -local example = import 'example.libsonnet'; - -{ - version_configmap: kube.ConfigMap('any-old-app-version') { - metadata+: { - namespace: 'prod', - }, - data+: { - VERSION: std.extVar('VERSION'), - }, - }, - flux_kustomization: example.kustomization('any-old-app-prod') { - metadata+: { - namespace: 'flux-system', - }, - spec+: { - path: './flux-config/', - postBuild+: { - substituteFrom+: [ - { - kind: 'ConfigMap', - name: 'any-old-app-version', - }, - ], - }, - }, - }, - flux_gitrepository: example.gitrepository('any-old-app-prod') { - metadata+: { - namespace: 'flux-system', - }, - spec+: { - url: 'https://github.com/kingdonb/any_old_app', - }, - }, -} -``` - -The above jsonnet declaration `example.jsonnet` will not complete without its neighbor `example.libsonnet` (which can be found [linked here][example 10.1 library].) This part of the example contains some boilerplate detail not meant to be copied, like the name `any-old-app-prod` and the string `'sops-gpg'` in `decryption.secretRef` which should be changed to match your environment). - -If you visited the linked `example.libsonnet` you may have noticed definitions for `kustomization` and `gitrepository` that are frankly pretty specific for a library function. They include details you wouldn't expect to find in a vendor library, like a default git repository URL, and a default hardcoded ref to the name of our Source gitrepository. - -This is **our library file**, so it can have our own implementation-specific details in it if we want to include them. Now, the power of Jsonnet is visible; we get to decide which configuration needs to be exposed in our main `example.jsonnet` file, and which parameters are defaults provided by the library, that can be treated like boilerplate and re-defined however we want. - -```json -data+: { - VERSION: std.extVar('VERSION'), -}, -``` - -This is `std.extVar` from `ext_vars` mentioned earlier. Arrange for the version to be passed in through the GitHub Actions workflow: - -```yaml -# adapted from above - 03-release-manifests.yaml -- name: kubecfg show - run: kubecfg show -V VERSION=${{ steps.prep.outputs.VERSION }} manifests/example.jsonnet > output/production.yaml -``` - -The neighbor `example.libsonnet` file contains some boring (but necessary) boilerplate, so that `kubecfg` can fulfill this jsonnet, to generate and commit the full Kustomize-ready YAML into a `deploy` branch as specified in the workflow. (The `Kustomization` for this example is provided [from my fleet-infra repo here][any-old-app-deploy-kustomization.yaml]. Personalize and adapt this for use with your own application or manifest generations.) - -The values provided are for example only and should be personalized, or restructured/rewritten completely to suit your preferred template values and instances. For more idiomatic examples written recently by actual Jsonnet pros, the [Tanka - Using Jsonnet tutorial] is great, and so is [Tanka - Parameterizing] which I'll call out specifically for the `_config::` object example that is decidedly more elegant than my version of parameter passing. - -If you've not previously used Jsonnet before, then you might be wondering about that code example you just read and that's OK! If you **have** previously used Jsonnet and already know what idiomatic Jsonnet looks like, you might be wondering too... you can probably tell I (author, Kingdon) practically haven't ever written a lick of Jsonnet before today. - -These examples are going to get progressively more advanced as I learn Jsonnet while I go. At this point I already think it's pretty cool and I barely know how to use it, but I am starting to understand what type of problems people are using it to solve. - -ConfigMap values are not treated as secret data, so there is no encryption to contend with; this makes for what seems like a good first example. Jsonnet enthusiasts, please forgive my newness. I am sure that my interpretation of how to write Jsonnet is most likely not optimal or idiomatic. - -Above we showed how to pass in a string from our build pipeline, and use it to write back generated Jsonnet manifests into a commit. - -##### Make Two Environments - -Here's a second example, defining two environments in separate namespaces, instead of just one: - -```javascript -# Any Old App Jsonnet example 0.10.2-alpha1 - manifests/example.jsonnet -# Replicate a section of config and change nothing else about it - -// ... - -{ - version_configmap: kube.ConfigMap('any-old-app-version') { - metadata+: { - namespace: 'flux-system', - }, - data+: { - VERSION: std.extVar('VERSION'), - }, - }, - test_flux_kustomization: example.kustomization('any-old-app-test') { - metadata+: { - namespace: 'flux-system', - }, - spec+: { - path: './flux-config/', - postBuild+: { - substituteFrom+: [ - { - kind: 'ConfigMap', - name: 'any-old-app-version', - }, - ], - }, - targetNamespace: 'test-tenant', - }, - }, - prod_flux_kustomization: example.kustomization('any-old-app-prod') { - metadata+: { - namespace: 'flux-system', - }, - spec+: { - path: './flux-config/', - postBuild+: { - substituteFrom+: [ - { - kind: 'ConfigMap', - name: 'any-old-app-version', - }, - ], - }, - targetNamespace: 'prod-tenant', - }, - }, - flux_gitrepository: example.gitrepository('any-old-app-prod') { - metadata+: { - namespace: 'flux-system', - }, - spec+: { - url: 'https://github.com/kingdonb/any_old_app', - }, - }, -} -``` - -In this example, some front-matter was omitted for brevity. Wait, what? (There's nothing brief about this example, it's extra-verbose!) - -"I thought Jsonnet was supposed to be DRY." Be gentle, refactoring is a methodical and deliberate process. We simply copied the original one environment into two environments, test and prod, which differ only in name. - -In the next example, we will subtly change one of them to be configured differently from the other. - -##### Change Something and Refactor - -Note the string 'flux-system' only occurs once now, having been factored into a variable `config_ns`. These are some basic abstractions in Jsonnet that we can use to start to DRY up our source manifests. - -Again, practically nothing changes functionally, this still does exactly the same thing. With another refactoring, we can express this manifest more concisely, thanks to a new library function we can invent, named `example.any_old_app`. - -```javascript -# Any Old App Jsonnet example 0.10.2-alpha4 - manifests/example.jsonnet -# Make something different between test and prod - -// ... - -{ - version_configmap: kube.ConfigMap('any-old-app-version') { - metadata+: { - namespace: config_ns, - }, - data+: { - VERSION: std.extVar('VERSION'), - }, - }, - test_flux_kustomization: example.any_old_app('test') { - spec+: { - prune: true, - }, - }, - prod_flux_kustomization: example.any_old_app('prod') { - spec+: { - prune: false, - }, - }, - flux_gitrepository: example.gitrepository('any-old-app-prod') { - metadata+: { - namespace: config_ns, - }, - spec+: { - url: 'https://github.com/kingdonb/any_old_app', - }, - }, -} -``` - -Two things have changed to make this refactoring of the config differ from the first version. Hopefully you'll notice it's a lot shorter. - -Redundant strings have been collapsed into a variable, and more boilerplate has been moved into the library. - -This refactored state is perhaps the most obvious to review, and most intentionally clear about its final intent to the reader. Hopefully you noticed the original environments were identical (or if your eyes glossed over because of the wall of values, you've at least taken my word for it.) - -But now, these two differ. We're creating two configurations for `any_old_app`, named `test` and `prod`. One of them has `prune` enabled, the test environment, and `prod` is set more conservatively to prevent accidental deletions, with a setting of `prune: false`. - -Since the two environments should each differ only by the boolean setting of `spec.prune`, we can now pack up and hide away the remainder of the config in with the rest of the boilerplate. - -Hiding the undifferentiated boilerplate in a library makes it easier to detect and observe this difference in a quick visual review. - -Here's the new library function's definition: - -```javascript -any_old_app(environment):: self.kustomization('any-old-app-' + environment) { - metadata+: { - namespace: 'flux-system', - }, - spec+: { - path: './flux-config/', - postBuild+: { - substituteFrom+: [ - { - kind: 'ConfigMap', - name: 'any-old-app-version', - }, - ], - }, - targetNamespace: environment + '-tenant', - }, -}, -``` - -This excerpt is taken from [the 10.2 release version][example 10.2 library excerpt] of `example.libsonnet`, where you can also read the specific definition of `kustomization` that is invoked with the expression `self.kustomization('any-old-app-' + environment)`. - -The evolution of this jsonnet snippet has gone from *unnecessarily verbose* to **perfect redundant clarity**. I say redundant, but I'm actually fine with this exactly the way it is. I think, if nothing further changes, we already have met the best way to express this particular manifest with Jsonnet. - -But given that config will undoubtedly have to change as the differing requirements of our development teams and their environments grow, this perfect clarity unfortunately can't last forever in its current form. It will have to scale. - -Notice that strings and repeated invocations of `any_old_app` are written with parallel structure and form, but there's nothing explicit linking them. - -The object-oriented programmer in me can't help but ask now, "what happens when we need another copy of the environment, this time slightly more different than those two, and ... how about two more after that, (and actually, can we really get by with only ten environments?)" — I am inclined towards thinking of this repeated structure as a sign that an object cries out, waiting to be recognized and named, and defined, (and refactored and defined again.) - -##### List Comprehension - -So get ready for _obfuscated nightmare mode_, (which is the name we thoughtfully reserved for the [best and final version][example 10.2 jsonnet] of the example,) shown below. - -```javascript -# Any Old App Jsonnet example 0.10.2 - manifests/example.jsonnet - -// This is a simple manifest generation example to demo some simple tasks that -// can be automated through Flux, with Flux configs rehydrated through Jsonnet. - -// This example uses kube.libsonnet from Bitnami. There are other -// Kubernetes libraries available, or write your own! -local kube = import 'https://github.com/bitnami-labs/kube-libsonnet/raw/73bf12745b86718083df402e89c6c903edd327d2/kube.libsonnet'; - -// The declaration below adds configuration to a more verbose base, defined in -// more detail at the neighbor libsonnet file here: -local example = import 'example.libsonnet'; -local kubecfg = import 'kubecfg.libsonnet'; -local kustomize = import 'kustomize.libsonnet'; - -local config_ns = 'flux-system'; - -local flux_config = [ - kube.ConfigMap('any-old-app-version') { - data+: { - VERSION: std.extVar('VERSION'), - }, - }, - example.gitrepository('any-old-app-prod') { - spec+: { - url: 'https://github.com/kingdonb/any_old_app', - }, - }, -] + kubecfg.parseYaml(importstr 'examples/configMap.yaml'); - -local kustomization = kustomize.applyList([ - kustomize.namespace(config_ns), -]); - -local kustomization_output = std.map(kustomization, flux_config); - -{ flux_config: kustomization_output } + { - - local items = ['test', 'prod'], - - joined: { - [ns + '_flux_kustomization']: { - data: example.any_old_app(ns) { - spec+: { - prune: if ns == 'prod' then false else true, - }, - }, - } - for ns in items - - // Credit: - // https://groups.google.com/g/jsonnet/c/ky6sjYj4UZ0/m/d4lZxWbhAAAJ - // thanks Dave for showing how to do something like this in Jsonnet - }, -} -``` - -This is the sixth revision of this example, (some have been omitted from the story, but they are [in Git history][examples 0.10.2-all].) I think it's really perfect now. If you're a programmer, I think, this version is perhaps much clearer. That's why I called it _obfuscated nightmare mode_, right? (I'm a programmer, I swear.) - -The `examples/configMap.yaml` file can be found [in the 0.10.2 tag][example 10.2 configmap] of `kingdonb/any_old_app`, it is vestigial and does not serve any functional purpose in this example, except for showing how to compose Jsonnet objects with parsed YAML from a file. - -You should note that kubecfg's `kubecfg.parseYaml` method always returns an array, even when the `importstr` input file only contains a single YAML document. Jsonnet arrays, like strings, can be easily added together with a familiar `+` operator. - -Jsonnet objects can also be added to other objects, composing their fields from smaller objects into larger ones. In the example above, we have added the `flux_config` object to a collection of `AnyOldApp` objects, a list comprehension from our environments. This is necessary and important because a Jsonnet program or library must always return a single object. - -I'm trying to learn Jsonnet as fast as I can, I hope you're still with me and if not, don't worry. Where did all of this programming come from? (And what's a list comprehension?) It really doesn't matter. - -The heavy lifting libraries for this example are from [anguslees/kustomize-libsonnet], which implements some basic primitives of Kustomize in Jsonnet. YAML parser is provided by [bitnami/kubecfg][kubecfg yaml parser], and the Jsonnet implementations of Kubernetes primitives by [bitnami-labs/kube-libsonnet]. - -It is a matter of taste whether you consider from above the first, second, or third example to be better stylistically. It is a matter of taste and circumstances, to put a finer point on it. They each have strengths and weaknesses, depending mostly on whatever changes we will have to make to them next. - -We can compare these three versions to elucidate the intent of the programmatically most expressive version which followed the other two. If you're new at this, you may try to explain how these three examples are similar, and also how they differ. Follow the explanation below for added clarity. - -If you haven't studied Jsonnet, this last version may daunt you with its complexity. The fact is YAML is a document store and Jsonnet is a programming language. This complexity is exactly what we came here for, we want our configuration language to be more powerful! Bring on more complex Jsonnet examples! - -#### Breaking It Down - -We define a configmap and a gitrepository (in Jsonnet), then put it together with another configmap (from plain YAML). That's called `flux_config`. - -```javascript -local kustomization = kustomize.applyList([ - kustomize.namespace(config_ns), -]); - -local kustomization_output = std.map(kustomization, flux_config); -``` - -This little diddy (above) has the same effect as a Kustomization based on the following instruction to `kustomize build`, (except it's all jsonnet): - -```yaml -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -namespace: ${config_ns} -``` - -... setting the namespace for all objects in `flux_config` to the value of `config_ns`. - -Next, we join it together with a list comprehension (at least I think that's what this is called): - -```javascript -local items = ['test', 'prod'], - -joined: { - [ns + '_flux_kustomization']: { - data: example.any_old_app(ns) { - spec+: { - prune: if ns == 'prod' then false else true, - }, - }, - } - for ns in items -}, -``` - -Two `any_old_app` templates are invoked programmatically, with different properties and names, and in target namespaces that are based on the environment names. They go on the end of the document list, and Jsonnet renders them alongside of the others, in various namespaces. - -This is the same technique as in `01-manifest-generate.yaml`, only this time with Jsonnet and `kubecfg` instead of `sed`, (and what a difference it makes!) - -This is the foundation for some real release machinery for your applications, this is not just a bunch of shell scripts. Whenever any commit hits the `release` branch, or when any tag in the form `release/*` is pushed, the repo is configured to push generated manifest changes to a `deploy` branch. - -This behavior is self-contained within the example `any_old_app` repository in these examples. - -We can use GitHub Actions and Jsonnet to populate parameters through ConfigMap values or with `extVars`, and at the same time, apply `Kustomization` and `GitRepository` as new sync infrastructure for the `deploy` branch with dependencies on those ConfigMaps. The `Kustomization` refers to the configmap and makes the `VERSION` or `GIT_SHA` variable available as a `postBuild` substitution, with values pulled from that same configmap we just applied. - -Later, we can repeat this process with a SOPS encrypted secret. - -The process is not very different, though some of the boilerplate is longer, we've already learned to pack away boilerplate. Copying and renaming encrypted secrets within the same cluster is possible wherever cluster operators are permitted to both decrypt and encrypt them with the decryption provider. - -A credential at `spec.decryption.secretRef` holds the key for decryption. Without additional configuration secrets can usually be copied freely around the cluster, as it is possible to decrypt them freely anywhere the decryption keys are made available. - -##### Copy `ConfigMap`s - -Assume that each namespace will be separately configured as a tenant by itself somehow later, and that each tenant performs its own git reconciliation within the tenant namespace. That config is out of scope for this example. We are only interested in briefly demonstrating some Jsonnet use cases here. - -The app version to install is maintained in a `ConfigMap` in each namespace based on our own decision logic. This can be implemented as a human operator who goes in and updates this variable's value before release time. - -This Jsonnet creates from a list of namespaces, and injects a `ConfigMap` into each namespace, [another example.jsonnet][example 10.3 jsonnet]. - -```javascript -# Any Old App Jsonnet example 0.10.3 - manifests/example.jsonnet - -local release_config = kube.ConfigMap('any-old-app-version'); -local namespace_list = ['prod', 'stg', 'qa', 'uat', 'dev']; - -local release_version = '0.10.3'; -local latest_candidate = '0.10.3-alpha1'; - -{ - [ns + '_tenant']: { - [ns + '_namespace']: { - namespace: kube.Namespace(ns), - }, - [ns + '_configmap']: { - version_data: release_config { - metadata+: { - namespace: ns, - }, - data+: { - VERSION: if ns == 'prod' || ns == 'stg' then release_version else latest_candidate, - }, - }, - }, - } - for ns in namespace_list -} -``` - -In this example, we have set up an additional 3 namespaces and assumed that a Flux Kustomization is provided some other way. The deploy configuration of all 5 environments is maintained here, in a single deploy config. - -Imagine that two policies should exist for promoting releases into environments. The environments for `dev`elopment, `U`ser `A`cceptance `T`esting (`uat`), and `Q`uality `A`ssurance (`qa`) can all be primed with the latest release candidate build at any given time. - -This is perhaps an excessive amount of formality for an open source or cloud-native project, though readers working in regulated environments may recognize this familiar pattern. - -This example will possibly fail to apply with the recommended validations enabled, failing with errors that you can review by running `flux get kustomization` in your flux namespace, like these: - -``` -validation failed: namespace/dev created (server dry run) -namespace/prod created (server dry run) -... -Error from server (NotFound): error when creating "14f54b89-2456-4c15-862e-34670dfcda79.yaml": namespaces "dev" not found -Error from server (NotFound): error when creating "14f54b89-2456-4c15-862e-34670dfcda79.yaml": namespaces "prod" not found -``` - -As you can perhaps see, the problem is that objects created within the namespace are not valid before creating the namespace. You can disable the validation temporarily by adding a setting `validation: none` to your Flux Kustomization to get past this error. - -In the deployment configuration above, both `prod` and staging (`stg`) are kept in sync with the latest release (not pre-release). - -Left as an exercise to the reader, we can also ask next: is it possible to supplement this configuration with a Flagger canary so that updates to the production config are able to be manually verified in the staging environment before they are promoted into Production? - -(Hint: Look at the [Manual Gating] feature of Flagger.) - -##### Copy `Secret`s - -This example writes the same `secretRef` into many `HelmReleases`, to provide for the cluster to be able to use the same `imagePullSecret` across several `Deployments` in a namespace. It is a common problem that `jsonnet` can solve quite handily, without repeating the `Secret` name over and over as a string. - -Because we have decided to create tenants for each namespace, now is a good time to mention [flux create tenant]. - -We can take the output of `flux create tenant prod --with-namespace prod --export` and use it to create `manifests/examples/tenant.yaml`. Perhaps in a full implementation, we would create a tenant library function and call it many times to create our tenants. - -For this example, you may discard the `Namespace` and/or `ClusterRoleBinding` as they are not needed. Here, we actually just need a ServiceAccount to patch. - -```yaml ---- -# manifests/examples/tenant.yaml -apiVersion: v1 -kind: ServiceAccount -metadata: - labels: - toolkit.fluxcd.io/tenant: prod - name: prod - namespace: prod -``` - -A namespace will be created by our Jsonnet example code instead (or you may comment this line out in the jsonnet below, if you are already working within a tenant.) The ClusterRoleBinding, or a more restrictive RoleBinding, is important for a functioning Flux tenant installation, but it is not needed for this example. - -(For more information on multi-tenancy, read the [Flux 2 Multi-Tenancy Guide].) - -We make an image pull secret with some docker registry credentials, for the purpose of completing the example. This is just for an example, it can be any secret that you want to replicate through several namespaces in the cluster with Jsonnet. - -``` -kubectl create secret docker-registry prod-docker-pull-secret \ - --namespace=prod \ - --docker-username=youruser --docker-password=secretpassword \ - --docker-email=required@example.org --dry-run=client -oyaml \ - > manifests/examples/sops-image-pull-secret.yaml -sops -e -i manifests/examples/sops-image-pull-secret.yaml -``` - -If you are not familiar with SOPS encryption, you should complete the [Mozilla SOPS] Flux guide before replicating this example, and internalize all of the concepts explained there. - -You will need to have configured your cluster's Kustomization with a decryption provider and decryption keys to enable the inclusion of encrypted secrets in your config repos. It is not safe to write unencrypted secrets into your git repository, and this should be avoided at all costs even if your repository is kept private. - -This final Jsonnet example is presented in context as a working reference in the `any_old_app` repository, once again as [example.jsonnet][example 10.4 jsonnet]. - -```javascript -# Any Old App Jsonnet example 0.10.4 - manifests/example.jsonnet - -local kubecfg = import 'kubecfg.libsonnet'; -local kustomize = import 'kustomize.libsonnet'; - -local tenant = - kubecfg.parseYaml(importstr 'examples/tenant.yaml'); -local pull_secrets = - kubecfg.parseYaml(importstr 'examples/sops-image-pull-secret.yaml'); - -local prod_ns = 'prod'; -local staging_ns = 'stg'; -local image_pull_secret = 'prod-docker-pull-secret'; - -// Set the Image Pull Secret on each ServiceAccount -local updateConfig(o) = ( - if o.kind == 'ServiceAccount' then o { - imagePullSecrets: [{ name: image_pull_secret }], - } else o -); - -// Create a namespace, and add to it Namespace and Secret -local prod_tenant = [ - kube.Namespace(prod_ns), -] + pull_secrets + tenant; - -// Prod kustomization - apply the updateConfig -local prod_kustomization = kustomize.applyList([ - updateConfig, -]); - -// Stg kustomization - apply the updateConfig and "stg" ns -local staging_kustomization = kustomize.applyList([ - updateConfig, - kustomize.namespace(staging_ns), -]); - -// Include both kustomizations in the Jsonnet object -{ - prod: std.map(prod_kustomization, prod_tenant), - stg: std.map(staging_kustomization, prod_tenant), -} -``` - -The `kubecfg.parseYaml` instruction returns a list of Jsonnet objects. Our own Jsonnet closely mirrors the [example provided][anguslees example jsonnet] by anguslees, with a few differences. - -The power of kubecfg is well illustrated through this example inspired by [anguslees/kustomize-libsonnet]. We parse several YAML files and make several minor updates to them. It really doesn't matter if one document involved is a secret, or that its data is encrypted by SOPS. - -If you are coming to Mozilla SOPS support in Flux v2, having used the SealedSecrets controller before when it was recommended in Flux v1, then you are probably surprised that this works. SOPS does not encrypt secret metadata when used with Flux's Kustomize Controller integration, which makes examples like this one possible. - -The ServiceAccount is a part of Flux's `tenant` configuration, and a fundamental concept of Kubernetes RBAC. If this concept is still new to you, read more in the [Kubernetes docs on Using Service Accounts]. - -The other fundamental concept to understand is a Namespace. - -Secrets are namespaced objects, and ordinary users with tenant privileges cannot reach outside of their namespace. If tenants should manage a Flux Kustomization within their own namespace boundaries, then a `sops-gpg` secret must be present in the Namespace with the Kustomization. Cross-namespace secret refs are not supported. - -However, any principal with access to read a `sops-gpg` secret can decrypt any data that are encrypted for it. - -Each ServiceAccount can list one or more `imagePullSecrets`, and any pod that binds the ServiceAccount will automatically include any pull secrets provided there. By adding the imagePullSecret to a ServiceAccount, we can streamline including it everywhere that it is needed. - -We can apply a list of transformations with `kustomize.applyList` that provides a list of pass-through mutating functions for Jsonnet to apply to each Jsonnet object; in our case we use the `updateConfig` function to patch each ServiceAccount with the ImagePullSecret that we want it to use. - -Finally, for staging, we additionally apply `kustomize.namespace` to update all resources to use the `stg` namespace instead of the `prod` namespace. The secret can be copied anywhere we want within the reach of our Flux Kustomization, and since our Flux Kustomization still has `cluster-admin` and local access to the decryption key, there is no obstacle to copying secrets. - -#### Handling `Secret`s - -Because a `secret` is not safe to store in Git unencrypted, Flux recommends using SOPS to encrypt it. - -SOPS will produce a [different data key][sops/issues/315] for each fresh invocation of `sops -e`, producing different cipher data even for the same input data. This is true even when the secret content has not changed. This means, unfortunately, it is not practical for a Manifest Generation routine to implement secret transparency without also granting the capability to read secrets to the CI infrastructure. - -SOPS stores the metadata required to decrypt each secret in the metadata of the secret, which must be stored unencrypted to allow encrypted secrets to be read by the private key owners. - -Secret transparency means that it should be possible for an observer to know when a stored secret has been updated or rotated. Transparency can be achieved in SOPS by running `sops` as an editor, using `sops [encrypted.yaml]`, which decrypts for editing and re-encrypts the secret upon closing the editor, thereby only changing the cipher text when secret data also changes. - -Depending on your access model, this suggestion could be either a complete non-starter, or a helpful add-on. - -As an example, Secrets could be read from GitHub Secrets during a CI job, then written encrypted into a secret that is pushed to the deploy branch. This implementation provides a basic solution for simple centralized secrets rotation. But as this would go way beyond simple manifest generation, we consider this beyond the scope of the tutorial, and it is mentioned only as an example of a more complex usage scenario for users to consider. - -#### Replicate `Secrets` Across Namespaces - -When the data of a `secret` is stored in the Git repository, it can be encrypted to store and transmit safely. SOPS in Kustomize supports encryption of only `(stringData|data)` fields, not secret `metadata` including `namespace`. This means that secrets within the same repo can be copied freely and decrypted somewhere else, just as long as the `Kustomization` still has access to the SOPS private key. - -Because of these properties though, copying a SOPS-encrypted secret from one namespace to another within one single Flux tenant is as easy as cloning the YAML manifest and updating the `namespace` field. Compared to SealedSecrets controller, which does not permit this type of copying; SOPS, on the other hand, does not currently prevent this without some attention being paid to RBAC. - -Remember to protect your secrets with RBAC! This is not optional, when handling secrets as in this example. - -#### Protecting `Secrets` from Unauthorized Access - -The logical boundary of a secret is any cluster or tenant where the private key is available for decrypting. - -This means that any SOPS secret, once encrypted, can be copied anywhere or used as a base for other Kustomizations in the cluster, so long as the Kustomization itself has access to the decryption keys. - -It is important to understand that the `sops-gpg` key that is generated in the Flux SOPS guide can be used by any `Kustomization` in the `flux-system` namespace. - -It cannot be over-emphasized; if users want secrets to remain secret, the `flux-system` namespace (and indeed the entire cluster itself) must be hardened and protected, managed by qualified cluster admins. It is recommended that changes which could access encrypted secrets are tightly controlled as much as deemed appropriate. - -#### More Advanced Secrets Usage - -The use of KMS as opposed to in-cluster GPG keys with SOPS is left as an exercise for the reader. The basics of KMS with various cloud providers is covered in more depth by the [Mozilla SOPS][using various cloud providers] guide. - -Another scenario we considered, but rejected for these examples, requires to decrypt and then re-encrypt SOPS secrets, for use with the `secretGenerator` feature of Kustomize. This workflow is not supported here for reasons already explained. - -Flux suggests maintaining the only active copy of the decryption key for a cluster inside of that cluster (though there may be a provision for backups, or some alternate keys permitted to decrypt.) This arrangement makes such use cases significantly more complicated to explain, beyond the scope of this guide. - -For those uses though, additional Workflow Actions are provided: - -The [Decrypt SOPS Secrets] action may be useful and it is mentioned here, (but no example uses are provided.) - -The [Sops Binary Installer] action enables more advanced use cases, like encrypting or re-encrypting secrets. - -#### Jsonnet Recap - -While much of this type of manipulation could be handled in `Kustomization`'s `postBuild`, via `envsubst`, some configurations are more complicated this way. They can be better handled in CI, where access to additional tools can be provided. - -By writing YAML manifests into a Git commit, the same manifests that `Kustomize` directly applies, they can be saved for posterity. Or projected out into a new pull request where they can be reviewed before application, or with the proper safe-guards in place they can be applied immediately through a more direct-driven automation. - -With generated YAML that Flux applies in the cluster directly from Git commits, **fui-yoh** - that's GitOps! - -### Commit Across Repositories Workflow - -Flux will not deploy from pushes on just any branch; GitRepository sources target just one specific branch. Merging to a `staging` branch, for example, can be used to trigger a deployment to a Staging environment. - -Manifest generation can be used to solve, broadly, very many problems, such that even with many examples, this guide would never be totally exhaustive. - -This is the final example in this guide. - -Here we show 🥁 ... how to replicate the original behavior of Flux v1's image automation! 🤯 🎉 - -You can put this workflow in your application repo, and target it toward your `fleet-infra` repo. - -To replicate the nearest approximation of Flux's "deploy latest image" feature of yesteryore, we use push events to do the job, as we hinted was possible in an earlier example. This can be done without Flux v1's redundant and expensive image pull behavior, retrieving build metadata required to order image tags for deployment. - -Flux recommends using real version numbers in your image tags, with a canonical ordering. - -The alternative is racy and doesn't always guarantee the latest commit will be the one that is deployed, since this behavior depends on the time that each commit is pushed, and even precisely how long the build takes to complete; the difference is fine for Dev environments, but this is not a strategy for Production use cases. - -Your app's CI can commit and push YAML manifests (or one manifest for each app) into a separate deploy branch for `Kustomization` to apply. The deploy branch in a separate repository should be a branch to which the CI user is granted write access. - -While there are some issues, this is actually perfect for non-prod deployments, eg. in a test environment! - -In context, find [04-update-fleet-infra.yaml], or simply copy it from below. - -```yaml -# ./.github/workflows/04-update-fleet-infra.yaml -name: Update Fleet-Infra -on: - push: - branches: - - 'main' - -jobs: - run: - name: Push Update - runs-on: ubuntu-latest - steps: - - name: Prepare - id: prep - run: | - VERSION=${GITHUB_SHA::8} - if [[ $GITHUB_REF == refs/tags/* ]]; then - VERSION=${GITHUB_REF/refs\/tags\//} - fi - echo ::set-output name=BUILD_DATE::$(date -u +'%Y-%m-%dT%H:%M:%SZ') - echo ::set-output name=VERSION::${VERSION} - - - name: Checkout repo - uses: actions/checkout@v2 - - - name: Update manifests - run: ./update-k8s.sh $GITHUB_SHA - - - name: Push directory to another repository - uses: cpina/github-action-push-to-another-repository@v1.2 - - env: - API_TOKEN_GITHUB: ${{ secrets.API_TOKEN_GITHUB }} - with: - source-directory: 'flux-config' - destination-github-username: 'kingdonb' - destination-repository-name: 'fleet-infra' - target-branch: 'deploy' - user-email: kingdon+bot@weave.works - commit-message: "[ci skip] deploy from ${{ steps.prep.outputs.VERSION }}" -``` - -This is [Push directory to another repository]. This is especially useful because Flux v2 is made to work with more than one GitRepository. - -If you must use a mono-repo, consider adding a deploy branch to it! There is no need for branches in the same repo to always share a parent and intersect again at a merge point. - -A mono-repo can be counter-productive for performance and will create bottlenecks for Flux, as large commits will take longer to clone, and therefore to reconcile. Ignoring with `.sourceignore` or `spec.ignore` will unfortunately not help much with this. Some limitations can only be overcome by changing the data structure. - -The `flux-system` is in the `main` branch of `kingdonb/fleet-infra`, as is the default. We prepared in advance, an empty commit with no parent in the same repository, on the `deploy` branch, so that this checkout would begin with an empty workspace that `ci/rake.sh` could copy the `output/` of Jsonnet into. - -```bash -git checkout --orphan deploy -git reset --hard -git commit --allow-empty -m'initial empty commit' -git push origin deploy -``` - -This is not technically regressive when compared to the behavior of Flux v1's `fluxcd.io/automated`, actually avoiding image pull depending on push instead to write the latest Git tag, externally and functionally identical to how Flux v1 did automation. Little else is good that we can say about it. - -It is a compatibility shim, to bridge the gap for Flux v1 users. If possible, users are encouraged to migrate to using timestamps, build numbers, or semver tags, that are all supported by some [Flux v2 image automation] features that are still in alpha at the time of this writing. - -Flux's new [Image Automation Controllers] are the new solution for Production use! - -### Adapting for Flux v2 - -In Flux v2, with `ImagePolicy`, these examples may be adjusted to order tags by their `BUILD_DATE`, by adding more string information to the tags. Besides a build timestamp, we can also add branch name. - -Why not have it all: `${branch}-${sha}-${ts}` – this is the suggestion given in: - -* [Example of a build process with timestamp tagging]. - -Example formats and alternative strings to use for tagging are at: - -* [Sortable image tags to use with automation]. - -We don't expect you to follow these examples to the letter. They present an evolution and are meant to show some of the breadth of options that are available, rather than as prescriptive guidance. - -If you are on GitHub, and are struggling to get started using GitHub Actions, or maybe still waiting to make a move on your planned migration from Flux v1; we hope that these GitHub Actions examples can help Flux users to better bridge the gap between both versions. - -[flux2/discussions/802]: https://github.com/fluxcd/flux2/discussions/802 -[flux2/issues/543]: https://github.com/fluxcd/flux2/issues/543 -[image update guide]: /guides/image-update/ -[any old app]: https://github.com/kingdonb/any_old_app -[Flux bootstrap guide]: /get-started/ -[String Substitution with sed -i]: #string-substitution-with-sed-i -[Docker Build and Tag with Version]: #docker-build-and-tag-with-version -[Jsonnet for YAML Document Rehydration]: #jsonnet-for-yaml-document-rehydration -[Commit Across Repositories Workflow]: #commit-across-repositories-workflow -[01-manifest-generate.yaml]: https://github.com/kingdonb/any_old_app/blob/main/.github/workflows/01-manifest-generate.yaml -[some guidance has changed since Flux v1]: https://github.com/fluxcd/flux2/discussions/802#discussioncomment-320189 -[Sortable image tags]: /guides/sortable-image-tags/ -[Okteto's Getting Started Guides]: https://github.com/okteto/go-getting-started/blob/master/k8s.yml -[Build and push Docker images]: https://github.com/marketplace/actions/build-and-push-docker-images -[Prepare step]: https://github.com/fluxcd/kustomize-controller/blob/5da1fc043db4a1dc9fd3cf824adc8841b56c2fcd/.github/workflows/release.yml#L17-L25 -[02-docker-build.yaml]: https://github.com/kingdonb/any_old_app/blob/main/.github/workflows/02-docker-build.yaml -[Docker Login Action]: https://github.com/marketplace/actions/docker-login -[03-release-manifests.yaml]: https://github.com/kingdonb/any_old_app/blob/main/.github/workflows/03-release-manifests.yaml -[actions/jsonnet-render]: https://github.com/marketplace/actions/jsonnet-render -[letsbuilders/tanka-action]: https://github.com/letsbuilders/tanka-action -[Add & Commit]: https://github.com/marketplace/actions/add-commit -[External Variables]: https://jsonnet.org/ref/stdlib.html#ext_vars -[example 10.1 library]: https://github.com/kingdonb/any_old_app/blob/release/0.10.1/manifests/example.libsonnet -[any-old-app-deploy-kustomization.yaml]: https://github.com/kingdonb/csh-flux/commit/7c3f1e62e2a87a2157bc9a22db4f913cc30dc12e#diff-f6ebc9688433418f0724f3545c96c301f029fd5a15847b824eab04545e057e84 -[Tanka - Using Jsonnet tutorial]: https://tanka.dev/tutorial/jsonnet -[Tanka - Parameterizing]: https://tanka.dev/tutorial/parameters -[example 10.2 library excerpt]: https://github.com/kingdonb/any_old_app/blob/release/0.10.2/manifests/example.libsonnet#L47-L63 -[example 10.2 jsonnet]: https://github.com/kingdonb/any_old_app/blob/release/0.10.2/manifests/example.jsonnet -[examples 0.10.2-all]: https://github.com/kingdonb/any_old_app/releases?after=0.10.2-alpha5 -[example 10.2 configmap]: https://github.com/kingdonb/any_old_app/blob/release/0.10.2/manifests/examples/configMap.yaml -[anguslees/kustomize-libsonnet]: (https://github.com/anguslees/kustomize-libsonnet) -[kubecfg yaml parser]: https://github.com/bitnami/kubecfg/blob/master/lib/kubecfg.libsonnet#L25 -[bitnami-labs/kube-libsonnet]: https://github.com/bitnami-labs/kube-libsonnet -[example 10.3 jsonnet]: https://github.com/kingdonb/any_old_app/blob/release/0.10.3/manifests/example.jsonnet -[Manual Gating]: https://docs.flagger.app/usage/webhooks#manual-gating -[flux create tenant]: /cmd/flux_create_tenant -[Flux 2 Multi-Tenancy Guide]: https://github.com/fluxcd/flux2-multi-tenancy -[Mozilla SOPS]: /guides/mozilla-sops/ -[example 10.4 jsonnet]: https://github.com/kingdonb/any_old_app/blob/release/0.10.4/manifests/example.jsonnet -[anguslees example jsonnet]: https://github.com/anguslees/kustomize-libsonnet/blob/master/example.jsonnet -[Kubernetes docs on Using Service Accounts]: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/#use-multiple-service-accounts -[sops/issues/315]: https://github.com/mozilla/sops/issues/315 -[using various cloud providers]: /guides/mozilla-sops/#using-various-cloud-providers -[Decrypt SOPS Secrets]: https://github.com/marketplace/actions/decrypt-sops-secrets -[Sops Binary Installer]: https://github.com/marketplace/actions/sops-binary-installer -[04-update-fleet-infra.yaml]: https://github.com/kingdonb/any_old_app/blob/main/.github/workflows/04-update-fleet-infra.yaml -[Push directory to another repository]: https://github.com/marketplace/actions/push-directory-to-another-repository -[Flux v2 image automation]: /guides/image-update/ -[Image Automation Controllers]: /components/image/controller/ -[Example of a build process with timestamp tagging]: /guides/sortable-image-tags/#example-of-a-build-process-with-timestamp-tagging -[Sortable image tags to use with automation]: /guides/sortable-image-tags/#formats-and-alternatives diff --git a/docs/use-cases/helm.md b/docs/use-cases/helm.md deleted file mode 100644 index efc0e938..00000000 --- a/docs/use-cases/helm.md +++ /dev/null @@ -1,208 +0,0 @@ -# Flux for Helm Users - -Welcome Helm users! -We think Flux's Helm Controller is the best way to do Helm according to GitOps principles, and we're dedicated to doing what we can to help you feel the same way. - -## What Does Flux add to Helm? - -Helm 3 was designed with both a client and an SDK, but no running software agents. -This architecture intended anything outside of the client scope to be addressed by other tools in the ecosystem, which could then make use of Helm's SDK. - -Built on Kubernetes controller-runtime, Flux's Helm Controller is an example of a mature software agent that uses Helm's SDK to full effect. - - -Flux's biggest addition to Helm is a structured declaration layer for your releases that automatically gets reconciled to your cluster based on your configured rules: - -- While the Helm client commands let you imperatively do things -- Flux Helm Custom Resources let you declare what you want the Helm SDK to do automatically - -Additional benefits Flux adds to Helm include: - -- Managing / structuring multiple environments -- A control loop, with configurable retry logic -- Automated drift detection between the desired and actual state of your operations -- Automated responses to that drift, including reconciliation, notifications, and unified logging - -## Getting Started - -The simplest way to explain is by example. -Lets translate imperative Helm commands to Flux Helm Controller Custom Resources: - -Helm client: - -```console -helm repo add traefik https://helm.traefik.io/traefik -helm install my-traefik traefik/traefik \ - --version 9.18.2 \ - --namespace traefik -``` - -Flux client: - -```console -flux create source helm traefik --url https://helm.traefik.io/traefik -flux create helmrelease --chart my-traefik \ - --source HelmRepository/traefik \ - --chart-version 9.18.2 \ - --namespace traefik -``` - -The main difference is Flux client will not imperatively create resources in the cluster. -Instead these commands create Custom Resource *files*, which are committed to version control as instructions only (note: you may use the `--export` flag to manage any file edits with finer grained control before pushing to version control). -Separately, the Flux Helm Controller software agent automatically reconciles these instructions with the running state of your cluster based on your configured rules. - -Lets check out what the Custom Resoruce instruction files look like: - -```yaml -# /flux/boot/traefik/helmrepo.yaml -apiVersion: source.toolkit.fluxcd.io/v1beta1 -kind: HelmRepository -metadata: - name: traefik - namespace: traefik -spec: - interval: 1m0s - url: https://helm.traefik.io/traefik -``` - -```yaml -# /flux/boot/traefik/helmrelease.yaml -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: traefik - namespace: traefik -spec: - chart: - spec: - chart: traefik - sourceRef: - kind: HelmRepository - name: traefik - version: 9.18.2 - interval: 1m0s -``` - - - -Once these are applied to your cluster, the Flux Helm Controller automatically uses the Helm SDK to do your bidding according to the rules you've set. - -Why is this important? -If you or your team has ever collaborated with multiple engineers on one or more apps, and/or in more than one namespace or cluster, you probably have a good idea of how declarative, automatic reconciliation can help solve common problems. -If not, or either way, you may want to check out this [short introduction to GitOps](https://youtu.be/r-upyR-cfDY). - -## Customizing Your Release - -While Helm charts are usually installable using default configurations, users will often customize charts with their preferred configuration by [overriding the default values](https://helm.sh/docs/intro/using_helm/#customizing-the-chart-before-installing). -The Helm client allows this by imperatively specifying override values with `--set` on the command line, and in additional `--values` files. For example: - -```console -helm install my-traefik traefik/traefik --set service.type=ClusterIP -``` - -and - -```console -helm install my-traefik traefik/traefik --values ci/kind-values.yaml -``` - -where `ci/kind-values.yaml` contains: - -```yaml -service: - type: ClusterIP -``` - -Flux Helm Controller allows these same YAML values overrides on the `HelmRelease` CRD. -These can be declared directly in `spec.values`: - -```yaml -spec: - values: - service: - type: ClusterIP -``` - -and defined in `spec.valuesFrom` as a list of `ConfigMap` and `Secret` resources from which to draw values, allowing reusability and/or greater security. -See `HelmRelease` CRD [values overrides](https://toolkit.fluxcd.io/components/helm/helmreleases/#values-overrides) documentation for the latest spec. - -## Managing Secrets and ConfigMaps - -You may manage these `ConfigMap` and `Secret` resources any way you wish, but there are several benefits to managing these with the Flux Kustomize Controller. - -It is fairly straigtforward to use Kustomize `configMapGenerator` to [trigger a Helm release upgrade every time the encoded values change](https://toolkit.fluxcd.io/guides/helmreleases/#refer-to-values-in-configmaps-generated-with-kustomize). -This common use case currently solveable in Helm by [adding specially crafted annotations](https://helm.sh/docs/howto/charts_tips_and_tricks/#automatically-roll-deployments) to a chart. -The Flux Kustomize Controller method allows you to accomplish this on any chart without additional templated annotations. - -You may also use Kustomize Controller built-in [Mozilla SOPS integration](https://toolkit.fluxcd.io/components/kustomize/kustomization/#secrets-decryption) to securely manage your encrypted secrets stored in git. -See the [Flux SOPS guide](https://toolkit.fluxcd.io/guides/mozilla-sops/) for step-by-step instructions through various use cases. - -## Automatic Release Upgrades - -If you want Helm Controller to automatically upgrade your releases when a new chart version is available in the release's referenced `HelmRepository`, you may specify a SemVer range (i.e. `>=4.0.0 <5.0.0`) instead of a fixed version. - -This is useful if your release should use a fixed MAJOR chart version, but want the latest MINOR or PATCH versions as they become available. - -For full SemVer range syntax, see `Masterminds/semver` [Checking Version Constraints](https://github.com/Masterminds/semver/blob/master/README.md#checking-version-constraints) documentation. - -## Automatic Uninstalls and Rollback - -The Helm Controller offers an extensive set of configuration options to remediate when a Helm release fails, using [spec.install.remediate](https://toolkit.fluxcd.io/components/helm/api/#helm.toolkit.fluxcd.io/v2beta1.InstallRemediation), [spec.upgrade.remediate](https://toolkit.fluxcd.io/components/helm/api/#helm.toolkit.fluxcd.io/v2beta1.UpgradeRemediation), [spec.rollback](https://toolkit.fluxcd.io/components/helm/api/#helm.toolkit.fluxcd.io/v2beta1.Rollback) and [spec.uninstall](https://toolkit.fluxcd.io/components/helm/api/#helm.toolkit.fluxcd.io/v2beta1.Uninstall). -Features include the option to remediate with an uninstall after an upgrade failure, and the option to keep a failed release for debugging purposes when it has run out of retries. - -Here is an example for configuring automated uninstalls (for all available fields, consult the `InstallRemediation` and `Uninstall` API references linked above): - -```yaml -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: my-release - namespace: default -spec: - # ...omitted for brevity - install: - # Remediation configuration for when the Helm install - # (or sequent Helm test) action fails - remediation: - # Number of retries that should be attempted on failures before - # bailing, a negative integer equals to unlimited retries - retries: -1 - # Configuration options for the Helm uninstall action - uninstall: - timeout: 5m - disableHooks: false - keepHistory: false -``` - -Here is an example of automated rollback configuration (for all available fields, consult the `UpgradeRemediation` and `Rollback` API references linked above): - -```yaml -apiVersion: helm.toolkit.fluxcd.io/v2beta1 -kind: HelmRelease -metadata: - name: my-release - namespace: default -spec: - # ...omitted for brevity - upgrade: - # Remediaton configuration for when an Helm upgrade action fails - remediation: - # Amount of retries to attempt after a failure, - # setting this to 0 means no remedation will be - # attempted - retries: 5 - # Configuration options for the Helm rollback action - rollback: - timeout: 5m - disableWait: false - disableHooks: false - recreate: false - force: false - cleanupOnFail: false -``` - -## Next Steps - -- [Guides > Manage Helm Releases](/guides/helmreleases/) -- [Toolkit Components > Helm Controller](/components/helm/controller/) -- [Migration > Migrate to the Helm Controller](/guides/helm-operator-migration/) diff --git a/mkdocs.yml b/mkdocs.yml deleted file mode 100644 index 0e4e5248..00000000 --- a/mkdocs.yml +++ /dev/null @@ -1,216 +0,0 @@ -site_name: Flux | GitOps Toolkit -site_description: Open and extensible continuous delivery solution for Kubernetes -site_author: The Flux project -site_url: https://toolkit.fluxcd.io - -repo_name: fluxcd/flux2 -repo_url: https://github.com/fluxcd/flux2 -edit_uri: "" - -theme: - name: material - logo: _files/flux-icon@2x.png - language: en - palette: - primary: blue - accent: indigo - custom_dir: mkdocs/ - -docs_dir: docs - -extra_css: - - _static/custom.css - -plugins: - - search - -markdown_extensions: - - admonition - - codehilite: - guess_lang: false - - footnotes - - meta - - pymdownx.caret - - pymdownx.emoji: - emoji_generator: !!python/name:materialx.emoji.to_svg - emoji_index: !!python/name:materialx.emoji.twemoji - - pymdownx.extra - - pymdownx.progressbar - - pymdownx.superfences: - highlight_code: true - - pymdownx.tabbed - - pymdownx.tasklist - - pymdownx.tilde - - toc: - permalink: true - -nav: - - Introduction: index.md - - Core Concepts: core-concepts/index.md - - Get Started: get-started/index.md - - Migration: - - Migration and Support Timetable: migration/timetable.md - - Migrate from Flux v1: guides/flux-v1-migration.md - - Migrate from Flux v1 image update automation: guides/flux-v1-automation-migration.md - - Migrate from the Helm Operator: guides/helm-operator-migration.md - - FAQ: guides/faq-migration.md - - Guides: - - Installation: guides/installation.md - - Manage Helm Releases: guides/helmreleases.md - - Setup Notifications: guides/notifications.md - - Setup Webhook Receivers: guides/webhook-receivers.md - - Monitoring with Prometheus: guides/monitoring.md - - Sealed Secrets: guides/sealed-secrets.md - - Mozilla SOPS: guides/mozilla-sops.md - - Automate image updates to Git: guides/image-update.md - - Sortable image tags to use with automation: guides/sortable-image-tags.md - - Use Cases: - - Azure: use-cases/azure.md - - GitHub Actions Manifest Generation: use-cases/gh-actions-manifest-generation.md - - Helm: use-cases/helm.md - - Toolkit Components: - - Overview: components/index.md - - Source Controller: - - Overview: components/source/controller.md - - GitRepository CRD: components/source/gitrepositories.md - - HelmRepository CRD: components/source/helmrepositories.md - - HelmChart CRD: components/source/helmcharts.md - - Bucket CRD: components/source/buckets.md - - Source API Reference: components/source/api.md - - Kustomize Controller: - - Overview: components/kustomize/controller.md - - Kustomization CRD: components/kustomize/kustomization.md - - Kustomize API Reference: components/kustomize/api.md - - Helm Controller: - - Overview: components/helm/controller.md - - HelmRelease CRD: components/helm/helmreleases.md - - Helm API Reference: components/helm/api.md - - Notification Controller: - - Overview: components/notification/controller.md - - Event: components/notification/event.md - - Provider CRD: components/notification/provider.md - - Alert CRD: components/notification/alert.md - - Receiver CRD: components/notification/receiver.md - - Notification API Reference: components/notification/api.md - - Image Automation Controllers: - - Overview: components/image/controller.md - - ImageRepository CRD: components/image/imagerepositories.md - - ImagePolicy CRD: components/image/imagepolicies.md - - ImageUpdateAutomation CRD: components/image/imageupdateautomations.md - - Automation API Reference: components/image/automation-api.md - - Flux CLI: - - Overview: cmd/flux.md - - Bootstrap: cmd/flux_bootstrap.md - - Bootstrap github: cmd/flux_bootstrap_github.md - - Bootstrap gitlab: cmd/flux_bootstrap_gitlab.md - - Check: cmd/flux_check.md - - Create: cmd/flux_create.md - - Create kustomization: cmd/flux_create_kustomization.md - - Create helmrelease: cmd/flux_create_helmrelease.md - - Create source: cmd/flux_create_source.md - - Create source git: cmd/flux_create_source_git.md - - Create source helm: cmd/flux_create_source_helm.md - - Create source bucket: cmd/flux_create_source_bucket.md - - Create alert provider: cmd/flux_create_alert-provider.md - - Create alert: cmd/flux_create_alert.md - - Create receiver: cmd/flux_create_receiver.md - - Create image: cmd/flux_create_image.md - - Create image policy: cmd/flux_create_image_policy.md - - Create image repository: cmd/flux_create_image_repository.md - - Create image update: cmd/flux_create_image_update.md - - Create tenant: cmd/flux_create_tenant.md - - Create secret: cmd/flux_create_secret.md - - Create secret git: cmd/flux_create_secret_git.md - - Create secret helm: cmd/flux_create_secret_helm.md - - Create secret tls: cmd/flux_create_secret_tls.md - - Delete: cmd/flux_delete.md - - Delete kustomization: cmd/flux_delete_kustomization.md - - Delete helmrelease: cmd/flux_delete_helmrelease.md - - Delete source: cmd/flux_delete_source.md - - Delete source git: cmd/flux_delete_source_git.md - - Delete source helm: cmd/flux_delete_source_helm.md - - Delete source bucket: cmd/flux_delete_source_bucket.md - - Delete image: cmd/flux_delete_image.md - - Delete image policy: cmd/flux_delete_image_policy.md - - Delete image repository: cmd/flux_delete_image_repository.md - - Delete image update: cmd/flux_delete_image_update.md - - Export: cmd/flux_export.md - - Export kustomization: cmd/flux_export_kustomization.md - - Export helmrelease: cmd/flux_export_helmrelease.md - - Export source: cmd/flux_export_source.md - - Export source git: cmd/flux_export_source_git.md - - Export source helm: cmd/flux_export_source_helm.md - - Export source bucket: cmd/flux_export_source_bucket.md - - Export alert provider: cmd/flux_export_alert-provider.md - - Export alert: cmd/flux_export_alert.md - - Export receiver: cmd/flux_export_receiver.md - - Export image: cmd/flux_export_image.md - - Export image policy: cmd/flux_export_image_policy.md - - Export image repository: cmd/flux_export_image_repository.md - - Export image update: cmd/flux_export_image_update.md - - Get: cmd/flux_get.md - - Get all: cmd/flux_get_all.md - - Get kustomizations: cmd/flux_get_kustomizations.md - - Get helmreleases: cmd/flux_get_helmreleases.md - - Get sources: cmd/flux_get_sources.md - - Get sources all: cmd/flux_get_sources_all.md - - Get sources git: cmd/flux_get_sources_git.md - - Get sources helm: cmd/flux_get_sources_helm.md - - Get sources chart: cmd/flux_get_sources_chart.md - - Get sources bucket: cmd/flux_get_sources_bucket.md - - Get alert provider: cmd/flux_get_alert-provider.md - - Get alerts: cmd/flux_get_alerts.md - - Get alert providers: cmd/flux_get_alert-providers.md - - Get receivers: cmd/flux_get_receivers.md - - Get images: cmd/flux_get_images.md - - Get images all: cmd/flux_get_images_all.md - - Get images policy: cmd/flux_get_images_policy.md - - Get images repository: cmd/flux_get_images_repository.md - - Get images update: cmd/flux_get_images_update.md - - Install: cmd/flux_install.md - - Logs: cmd/flux_logs.md - - Resume: cmd/flux_resume.md - - Resume kustomization: cmd/flux_resume_kustomization.md - - Resume helmrelease: cmd/flux_resume_helmrelease.md - - Resume source: cmd/flux_resume_source.md - - Resume source git: cmd/flux_resume_source_git.md - - Resume source helm: cmd/flux_resume_source_helm.md - - Resume source chart: cmd/flux_resume_source_chart.md - - Resume source bucket: cmd/flux_resume_source_bucket.md - - Resume alert provider: cmd/flux_resume_alert-provider.md - - Resume alert: cmd/flux_resume_alert.md - - Resume receiver: cmd/flux_resume_receiver.md - - Resume image: cmd/flux_resume_image.md - - Resume image repository: cmd/flux_resume_image_repository.md - - Resume image update: cmd/flux_resume_image_update.md - - Suspend: cmd/flux_suspend.md - - Suspend kustomization: cmd/flux_suspend_kustomization.md - - Suspend helmrelease: cmd/flux_suspend_helmrelease.md - - Suspend source: cmd/flux_suspend_source.md - - Suspend source git: cmd/flux_suspend_source_git.md - - Suspend source helm: cmd/flux_suspend_source_helm.md - - Suspend source chart: cmd/flux_suspend_source_chart.md - - Suspend source bucket: cmd/flux_suspend_source_bucket.md - - Suspend alert provider: cmd/flux_suspend_alert-provider.md - - Suspend alert: cmd/flux_suspend_alert.md - - Suspend receiver: cmd/flux_suspend_receiver.md - - Suspend image: cmd/flux_suspend_image.md - - Suspend image repository: cmd/flux_suspend_image_repository.md - - Suspend image update: cmd/flux_suspend_image_update.md - - Reconcile: cmd/flux_reconcile.md - - Reconcile kustomization: cmd/flux_reconcile_kustomization.md - - Reconcile helmrelease: cmd/flux_reconcile_helmrelease.md - - Reconcile source: cmd/flux_reconcile_source.md - - Reconcile source git: cmd/flux_reconcile_source_git.md - - Reconcile source helm: cmd/flux_reconcile_source_helm.md - - Reconcile source bucket: cmd/flux_reconcile_source_bucket.md - - Reconcile image: cmd/flux_reconcile_image.md - - Reconcile image repository: cmd/flux_reconcile_image_repository.md - - Reconcile image update: cmd/flux_reconcile_image_update.md - - Uninstall: cmd/flux_uninstall.md - - Dev Guides: - - Watching for source changes: dev-guides/source-watcher.md - - Advanced debugging: dev-guides/debugging.md - - Roadmap: roadmap/index.md - - Contributing: contributing/index.md - - FAQ: faq/index.md diff --git a/mkdocs/main.html b/mkdocs/main.html deleted file mode 100644 index eb0ab453..00000000 --- a/mkdocs/main.html +++ /dev/null @@ -1,32 +0,0 @@ -{% extends "base.html" %} - -{% block extrahead %} - - -{% if page and page.meta and page.meta.title %} - -{% elif page and page.title and not page.is_homepage %} - -{% else %} - -{% endif %} - - - - - - - - -{% if page and page.meta and page.meta.title %} - -{% elif page and page.title and not page.is_homepage %} - -{% else %} - -{% endif %} - - - - -{% endblock %}