From f7df6aff627ce7e172566a53a01c79fbee0d3f55 Mon Sep 17 00:00:00 2001 From: TrueCharts-Bot Date: Mon, 22 Jan 2024 12:33:55 +0000 Subject: [PATCH] Commit new Chart releases for TrueCharts Signed-off-by: TrueCharts-Bot --- stable/nextcloud/28.1.25/CHANGELOG.md | 99 + stable/nextcloud/28.1.25/Chart.yaml | 53 + stable/nextcloud/28.1.25/LICENSE | 106 + stable/nextcloud/28.1.25/README.md | 28 + stable/nextcloud/28.1.25/app-changelog.md | 9 + stable/nextcloud/28.1.25/app-readme.md | 8 + .../28.1.25/charts/common-17.2.28.tgz | Bin 0 -> 98029 bytes .../nextcloud/28.1.25/charts/redis-11.1.6.tgz | Bin 0 -> 103627 bytes stable/nextcloud/28.1.25/ix_values.yaml | 516 ++ stable/nextcloud/28.1.25/questions.yaml | 4169 +++++++++++++++++ stable/nextcloud/28.1.25/templates/NOTES.txt | 1 + .../28.1.25/templates/_configmap.tpl | 443 ++ .../nextcloud/28.1.25/templates/_cronjobs.tpl | 34 + .../28.1.25/templates/_ingressInjector.tpl | 23 + .../28.1.25/templates/_initPerms.tpl | 29 + .../28.1.25/templates/_validation.tpl | 42 + .../28.1.25/templates/_waitNextcloud.tpl | 25 + .../nextcloud/28.1.25/templates/common.yaml | 92 + stable/nextcloud/28.1.25/values.yaml | 0 19 files changed, 5677 insertions(+) create mode 100644 stable/nextcloud/28.1.25/CHANGELOG.md create mode 100644 stable/nextcloud/28.1.25/Chart.yaml create mode 100644 stable/nextcloud/28.1.25/LICENSE create mode 100644 stable/nextcloud/28.1.25/README.md create mode 100644 stable/nextcloud/28.1.25/app-changelog.md create mode 100644 stable/nextcloud/28.1.25/app-readme.md create mode 100644 stable/nextcloud/28.1.25/charts/common-17.2.28.tgz create mode 100644 stable/nextcloud/28.1.25/charts/redis-11.1.6.tgz create mode 100644 stable/nextcloud/28.1.25/ix_values.yaml create mode 100644 stable/nextcloud/28.1.25/questions.yaml create mode 100644 stable/nextcloud/28.1.25/templates/NOTES.txt create mode 100644 stable/nextcloud/28.1.25/templates/_configmap.tpl create mode 100644 stable/nextcloud/28.1.25/templates/_cronjobs.tpl create mode 100644 stable/nextcloud/28.1.25/templates/_ingressInjector.tpl create mode 100644 stable/nextcloud/28.1.25/templates/_initPerms.tpl create mode 100644 stable/nextcloud/28.1.25/templates/_validation.tpl create mode 100644 stable/nextcloud/28.1.25/templates/_waitNextcloud.tpl create mode 100644 stable/nextcloud/28.1.25/templates/common.yaml create mode 100644 stable/nextcloud/28.1.25/values.yaml diff --git a/stable/nextcloud/28.1.25/CHANGELOG.md b/stable/nextcloud/28.1.25/CHANGELOG.md new file mode 100644 index 00000000000..619d54f2a63 --- /dev/null +++ b/stable/nextcloud/28.1.25/CHANGELOG.md @@ -0,0 +1,99 @@ +--- +title: Changelog +--- + +**Important:** +*for the complete changelog, please refer to the website* + + + +## [nextcloud-28.1.25](https://github.com/truecharts/charts/compare/nextcloud-28.1.24...nextcloud-28.1.25) (2024-01-22) + +### Chore + + + +- update container image nginxinc/nginx-unprivileged to 1.25.3[@0c0ebe8](https://github.com/0c0ebe8) by renovate ([#17495](https://github.com/truecharts/charts/issues/17495)) + + +## [nextcloud-28.1.24](https://github.com/truecharts/charts/compare/nextcloud-28.1.23...nextcloud-28.1.24) (2024-01-22) + +### Chore + + + +- update container image clamav/clamav to 1.2.1[@f51c38f](https://github.com/f51c38f) by renovate ([#17491](https://github.com/truecharts/charts/issues/17491)) + + +## [nextcloud-28.1.23](https://github.com/truecharts/charts/compare/nextcloud-28.1.22...nextcloud-28.1.23) (2024-01-21) + +### Chore + + + +- update container image common to v17.2.28[@918b4c5](https://github.com/918b4c5) by renovate ([#17478](https://github.com/truecharts/charts/issues/17478)) + +- update container image common to v17.2.26[@24c98f7](https://github.com/24c98f7) by renovate ([#17409](https://github.com/truecharts/charts/issues/17409)) + + +## [nextcloud-28.1.22](https://github.com/truecharts/charts/compare/nextcloud-28.1.21...nextcloud-28.1.22) (2024-01-21) + +### Chore + + + +- update container image tccr.io/tccr/nextcloud-push-notify to v0.6.7[@a6dfa37](https://github.com/a6dfa37) by renovate ([#17462](https://github.com/truecharts/charts/issues/17462)) + + +## [nextcloud-28.1.21](https://github.com/truecharts/charts/compare/nextcloud-28.1.18...nextcloud-28.1.21) (2024-01-21) + +### Chore + + + +- update nextcloud by renovate ([#17396](https://github.com/truecharts/charts/issues/17396)) + + +## [nextcloud-28.1.18](https://github.com/truecharts/charts/compare/nextcloud-28.1.17...nextcloud-28.1.18) (2024-01-21) + +### Chore + + + +- update metadata in chart.yaml ([#17457](https://github.com/truecharts/charts/issues/17457)) + + +## [nextcloud-28.1.17](https://github.com/truecharts/charts/compare/nextcloud-28.1.16...nextcloud-28.1.17) (2024-01-21) + +### Chore + + + +- install traefik during tests but set the services to clusterip ([#17445](https://github.com/truecharts/charts/issues/17445)) + + +## [nextcloud-28.1.16](https://github.com/truecharts/charts/compare/nextcloud-28.1.14...nextcloud-28.1.16) (2024-01-21) + +### Chore + + + +- update container image nginxinc/nginx-unprivileged to 1.25.3[@9af8bb1](https://github.com/9af8bb1) by renovate ([#17257](https://github.com/truecharts/charts/issues/17257)) + + + + +## [nextcloud-28.1.14](https://github.com/truecharts/charts/compare/nextcloud-28.1.13...nextcloud-28.1.14) (2024-01-13) + +### Chore + + + +- update container image tccr.io/tccr/nextcloud-fpm to v28.0.1[@49e45f3](https://github.com/49e45f3) by renovate ([#17093](https://github.com/truecharts/charts/issues/17093)) + +- update container image nginxinc/nginx-unprivileged to 1.25.3[@3ae7d1f](https://github.com/3ae7d1f) by renovate ([#16975](https://github.com/truecharts/charts/issues/16975)) + + +## [nextcloud-28.1.13](https://github.com/truecharts/charts/compare/nextcloud-28.1.12...nextcloud-28.1.13) (2024-01-12) + +### Chore diff --git a/stable/nextcloud/28.1.25/Chart.yaml b/stable/nextcloud/28.1.25/Chart.yaml new file mode 100644 index 00000000000..dd2d2fdc56b --- /dev/null +++ b/stable/nextcloud/28.1.25/Chart.yaml @@ -0,0 +1,53 @@ +annotations: + max_scale_version: 23.10.2 + min_scale_version: 23.10.0 + truecharts.org/SCALE-support: "true" + truecharts.org/category: cloud + truecharts.org/max_helm_version: "3.14" + truecharts.org/min_helm_version: "3.12" + truecharts.org/train: stable +apiVersion: v2 +appVersion: 28.0.1 +dependencies: + - name: common + version: 17.2.28 + repository: oci://tccr.io/truecharts + condition: "" + alias: "" + tags: [] + import-values: [] + - name: redis + version: 11.1.6 + repository: https://deps.truecharts.org + condition: redis.enabled + alias: "" + tags: [] + import-values: [] +deprecated: false +description: A private cloud server that puts the control and security of your own data back into your hands. +home: https://truecharts.org/charts/stable/nextcloud +icon: https://truecharts.org/img/hotlink-ok/chart-icons/nextcloud.png +keywords: + - nextcloud + - storage + - http + - web + - php +kubeVersion: ">=1.24.0-0" +maintainers: + - name: TrueCharts + email: info@truecharts.org + url: https://truecharts.org +name: nextcloud +sources: + - https://github.com/nextcloud/docker + - https://github.com/nextcloud/helm + - https://github.com/truecharts/charts/tree/master/charts/stable/nextcloud + - https://github.com/truecharts/containers/tree/master/apps/nextcloud-push-notify + - https://hub.docker.com/r/nginxinc/nginx-unprivileged + - https://github.com/truecharts/containers/tree/master/apps/nextcloud-fpm + - https://github.com/truecharts/containers/tree/master/apps/nextcloud-imaginary + - https://hub.docker.com/r/collabora/code + - https://hub.docker.com/r/clamav/clamav +type: application +version: 28.1.25 diff --git a/stable/nextcloud/28.1.25/LICENSE b/stable/nextcloud/28.1.25/LICENSE new file mode 100644 index 00000000000..33a8cbb23f0 --- /dev/null +++ b/stable/nextcloud/28.1.25/LICENSE @@ -0,0 +1,106 @@ +Business Source License 1.1 + +Parameters + +Licensor: The TrueCharts Project, it's owner and it's contributors +Licensed Work: The TrueCharts "Blocky" Helm Chart +Additional Use Grant: You may use the licensed work in production, as long + as it is directly sourced from a TrueCharts provided + official repository, catalog or source. You may also make private + modification to the directly sourced licenced work, + when used in production. + + The following cases are, due to their nature, also + defined as 'production use' and explicitly prohibited: + - Bundling, including or displaying the licensed work + with(in) another work intended for production use, + with the apparent intend of facilitating and/or + promoting production use by third parties in + violation of this license. + +Change Date: 2050-01-01 + +Change License: 3-clause BSD license + +For information about alternative licensing arrangements for the Software, +please contact: legal@truecharts.org + +Notice + +The Business Source License (this document, or the “License”) is not an Open +Source license. However, the Licensed Work will eventually be made available +under an Open Source License, as stated in this License. + +License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved. +“Business Source License” is a trademark of MariaDB Corporation Ab. + +----------------------------------------------------------------------------- + +Business Source License 1.1 + +Terms + +The Licensor hereby grants you the right to copy, modify, create derivative +works, redistribute, and make non-production use of the Licensed Work. The +Licensor may make an Additional Use Grant, above, permitting limited +production use. + +Effective on the Change Date, or the fourth anniversary of the first publicly +available distribution of a specific version of the Licensed Work under this +License, whichever comes first, the Licensor hereby grants you rights under +the terms of the Change License, and the rights granted in the paragraph +above terminate. + +If your use of the Licensed Work does not comply with the requirements +currently in effect as described in this License, you must purchase a +commercial license from the Licensor, its affiliated entities, or authorized +resellers, or you must refrain from using the Licensed Work. + +All copies of the original and modified Licensed Work, and derivative works +of the Licensed Work, are subject to this License. This License applies +separately for each version of the Licensed Work and the Change Date may vary +for each version of the Licensed Work released by Licensor. + +You must conspicuously display this License on each original or modified copy +of the Licensed Work. If you receive the Licensed Work in original or +modified form from a third party, the terms and conditions set forth in this +License apply to your use of that work. + +Any use of the Licensed Work in violation of this License will automatically +terminate your rights under this License for the current and all other +versions of the Licensed Work. + +This License does not grant you any right in any trademark or logo of +Licensor or its affiliates (provided that you may use a trademark or logo of +Licensor as expressly required by this License). + +TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON +AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, +EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND +TITLE. + +MariaDB hereby grants you permission to use this License’s text to license +your works, and to refer to it using the trademark “Business Source License”, +as long as you comply with the Covenants of Licensor below. + +Covenants of Licensor + +In consideration of the right to use this License’s text and the “Business +Source License” name and trademark, Licensor covenants to MariaDB, and to all +other recipients of the licensed work to be provided by Licensor: + +1. To specify as the Change License the GPL Version 2.0 or any later version, + or a license that is compatible with GPL Version 2.0 or a later version, + where “compatible” means that software provided under the Change License can + be included in a program with software provided under GPL Version 2.0 or a + later version. Licensor may specify additional Change Licenses without + limitation. + +2. To either: (a) specify an additional grant of rights to use that does not + impose any additional restriction on the right granted in this License, as + the Additional Use Grant; or (b) insert the text “None”. + +3. To specify a Change Date. + +4. Not to modify this License in any other way. diff --git a/stable/nextcloud/28.1.25/README.md b/stable/nextcloud/28.1.25/README.md new file mode 100644 index 00000000000..a5d5bf5ecdf --- /dev/null +++ b/stable/nextcloud/28.1.25/README.md @@ -0,0 +1,28 @@ +--- +title: README +--- + +## General Info + +TrueCharts can be installed as both _normal_ Helm Charts or as Apps on TrueNAS SCALE. +However only installations using the TrueNAS SCALE Apps system are supported. + +For more information about this App, please check the docs on the TrueCharts [website](https://truecharts.org/charts/stable/nextcloud) + +**This chart is not maintained by the upstream project and any issues with the chart should be raised [here](https://github.com/truecharts/charts/issues/new/choose)** + +## Support + +- Please check our [quick-start guides for TrueNAS SCALE](https://truecharts.org/manual/SCALE/guides/scale-intro). +- See the [Website](https://truecharts.org) +- Check our [Discord](https://discord.gg/tVsPTHWTtr) +- Open a [issue](https://github.com/truecharts/charts/issues/new/choose) + +--- + +## Sponsor TrueCharts + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can! + +_All Rights Reserved - The TrueCharts Project_ diff --git a/stable/nextcloud/28.1.25/app-changelog.md b/stable/nextcloud/28.1.25/app-changelog.md new file mode 100644 index 00000000000..97337c009ac --- /dev/null +++ b/stable/nextcloud/28.1.25/app-changelog.md @@ -0,0 +1,9 @@ + + +## [nextcloud-28.1.25](https://github.com/truecharts/charts/compare/nextcloud-28.1.24...nextcloud-28.1.25) (2024-01-22) + +### Chore + + + +- update container image nginxinc/nginx-unprivileged to 1.25.3[@0c0ebe8](https://github.com/0c0ebe8) by renovate ([#17495](https://github.com/truecharts/charts/issues/17495)) \ No newline at end of file diff --git a/stable/nextcloud/28.1.25/app-readme.md b/stable/nextcloud/28.1.25/app-readme.md new file mode 100644 index 00000000000..1369f69bf57 --- /dev/null +++ b/stable/nextcloud/28.1.25/app-readme.md @@ -0,0 +1,8 @@ +A private cloud server that puts the control and security of your own data back into your hands. + +This App is supplied by TrueCharts, for more information visit the manual: [https://truecharts.org/charts/stable/nextcloud](https://truecharts.org/charts/stable/nextcloud) + +--- + +TrueCharts can only exist due to the incredible effort of our staff. +Please consider making a [donation](https://truecharts.org/sponsor) or contributing back to the project any way you can! diff --git a/stable/nextcloud/28.1.25/charts/common-17.2.28.tgz b/stable/nextcloud/28.1.25/charts/common-17.2.28.tgz new file mode 100644 index 0000000000000000000000000000000000000000..695e0d5cea93b36880b7021045bd1ef00dfe5915 GIT binary patch literal 98029 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 literal 0 HcmV?d00001 diff --git a/stable/nextcloud/28.1.25/charts/redis-11.1.6.tgz b/stable/nextcloud/28.1.25/charts/redis-11.1.6.tgz new file mode 100644 index 0000000000000000000000000000000000000000..f65cde08267a077cdace3b497cd13759d3c53029 GIT binary patch literal 103627 zcmV)QK(xOfiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POwydfPa%D2n&rdI~H#Yj@l~iz0QGW-`BVY$xs0j_qwZ>6zVU zJ`Y4f62=t4As{)Lbk28PYwV{Xji%>)2i&JXCjZPSgUNU9 zgWJjz_d9uD6cGj)CJ`M}0GPqgH`IqAx>=xvViFBNqv?3A)8HR*RQ}Pe0Kk$t^7$~L z4oN2U;nCsQNsZ3qm?Uffs{C`cSj>kEO-QmFfB-T$f)o|YaGa(noTaT+n~v8kfyNOm zmTZ)iWC_I400byTQGgS65jNbv6%99ax4{p)>G2zVvbj^&s$hg3C||=DPbXwZfoRL!l>~Y zRMvLlXi~XF%R7<;f_e$F#&Hv}3{r-Yl?+coaX7LS0WL8p$bxJcqXB?%9AaNg#Y#F#JjZi7 zm8YBkw)_u?fBO_|Y>@wMv(e1U|3;_tBLAP`c`B)fCy25Epi|grcLqTK8?8>G3A^Kw z+w3(_(09B2283>}<@Hg!-yFm4xZi5~3I?Fs za2u_f>($)GwbvOm8UwHGxJ|Fu>9#wK|5bg$$?^w$dZ@k2~E)yV>(w-En8!@yCsR$LluzrrYfW$VI`pQMn_@ZAf4s z^-&!0e+7Pgd87m2iQjV395TqzcpeTB6K^TwQev_kfGZM)IGTKn1IUp07L#BYBVU38 zz$d9H0@RZ>Cm$3o?4JN!ogAMIZ>~-*&rXjHuTL+|Z$4ZcpA3Lh1u{hs&(1D>zB&1D zdHwgB%fsRD=ZmZ30jMq!t(Jhiytuj^fa;eo!1*L6BSpyq`^e!qIb4gT@=pen31XKd zVc_f6Qc$|F%r^ii@)N{O&VK^{eU4!iT#WvOe0DAt0genF8+^oIxP+8)9T0r| z$`^nyUjPaz0$;z5VMxW#C@7%CAGxl4zaFHYpa4Y-!;osoR%!GZQ--6-P|yLsezllY z_Dx~-Xpa@Z#XE=)BDCEl-XJhW09NOqJ@^c^fvJ9i3*m*TTrzJ0Ic>w%neTrbn zru7&{lN*iRO-OtgI&=yenJNi_0se;ZH~6h0U=P%4TuLNt9?K5m6Mu{+^F*rJ*}{Jf z&=}4`CTbxBMkpkAnKD$u%F`g)IT1_&Y>IR-+2rqtcNF>a1heH4i5U9KcymTjYC#Nx zizr-P5yIZ#5YZ)NXf^;s0>~2c=#aio$UGhZw<6g+gMwwUeF><@25v!W0#~3o0Ke7@ zVSE2oAK|Dzf))pU`32M>P<@q^g;ns6e}Mn-Ke&|Rf>V4vIy=2N{CNH2n?hj&EI~9T z5k+ray|%c?@C=bT12qbo;FSmdPwShM4t|I;Zvm)HfgoW@D9e9}!K-u;$bIB&FfaDa zUw90D0o7L;zbg2zH=ufXasIvv{_!V10PTT|{3!v|F~lJX03*CZBjhtMr#PAbEy)HT z#|A_F0Hh7sU_WD~7GwU5vE6e8!Sd2^8#|8ES^Ri*ad>=s{vKR$1OcXi>qflexR~KH zh9U-V1ZHSPlI80D-@Omh*(cST-FxxF;qdz8YPZhJ*Lj*g%{KPq#W3H0Y3FK$F0QU` z&Od&5dvf(;bMyi8?4^qyxr@Ht*(l`E4UB>noh}{9HvvxGRA0Rga1seU_mx}SPg~<{ z-B1SEoW60*+v=;d@+vK%%KPxwUo#M1{r|TDVes7mLoni%^>Ovm@?3lc1Xm-%rZ}2Z!M-qvq%ti{ERq<_p|S@qA_T~o z4|R$F5xW^;b|mQEbDW^y0L-HhQ3~c11prb2t-Tj8CJBJNEtFUee<0k8P9=lg0931$ zthFazDQh|FGZ0p@W1yie9^#L^rvDztbhR{(q*$TmAgv z`ef*^&+HM~*tGxWcD$Vbzva3w@gL9feECuXIP$}JfIyY`&cbu#=ARSdkt0{&h%iK} z;1#HS{rWQd|5#6c{;SS^)SbYM^S_o`GU{22w{4znrvuYCtxMBx&UNYvygffywq#1V2T&hhYO$Vh@Jd*DdOC-CWL2m+kY ziZj8iF8(XguQ;RsBz5s${bD+)^Z)3dbP?54KqKhi&SNmfA)=KZ9C{a5esD(cw(^6+ zW^v_*|EsbGKEVW&IR&T3C$!?k3E?Jq#lZoBby+SU|Ef3(>XQI**cU&apIi+EP~qPA zX+AFZ342z{mfn)W8S$FOn#Hx!8LD@w8F{s+J72 z1u|kV1QCg9Gg1EaFMF+Kr?Vv?n9@0-bzWnC-{yv-sr4xQP_Wi=%eIB$_B;*=D*j^k!DK(x4S!Oo+Pc=-<7mxzl1bzTQFs$^|GXS{RfifD$=?;lh!RG zZQIT-Bdwbwt+x$n>!nn4+X<4A<&}}Ot*|R2tCb_GW0Tds*K)L}TYI`&-S)2ZyY2n` zEn4V0UjIQ&6j=O#_07wzZ=SurxveK*ao6#R%Y}EZf15g}EGMsr&UVS2II zDC@;-m+LYHbaD*nJ{kkokKpFcBe+>Qf*-ILyE*adc5K=UO7CNJzFQ>X0n446TkhPJ zO+-Oa+KPxrqO>P_+TGTwGd=A#%X<17W74zJe=p-WqfX?x(6qVGxsOim^>(#_yk40V zbu5AylpB+2C~fcIJ@0=|ELEv}zc;`+7@=RIh3 zTi?Z7`>qV(URf94Uxn*uHMqX5zN>b_wgZZ8{1ri*5SG?QN?r z>ArD$t&+aEztYvuY8!o9*hwdz+u2pv zxScX#bANrSpBt;TwpDb@K1RP5kiVD0WcN)Yt2gw$wKQz%n~pZ<-L1D^Oy@L8Jk0%j zDMT6ia$1G078SkBG!8KXFbKq{i3rdc3`3NpVF8@DX1}|mwC6RpRu|l@-Ef9=p1Te7 zJae};Sc)URm*r~D*43WQ+1KoMceFEjjpC^4-QP{t%X-Ory+$(@Xyka%wt2A1_+LX_OOm(sR*fOgE73Ey)>caT zHmhg!S~guzqXTy29&od_wU(fX@AXR-gxIFV3TkRdUOSW`+_xA{O zvzlGcwVC)d{;)C%w$_zOD9GBh-TuQVcq#Nv7D~_<`ivxCC{GVlAkx-uA5YlqZfz>) zY1!>>r8Ub*-`LSX$ZKpn>D3Cl>lP@lu{8nR?yk_g-4YM=Q%&akY0fW&zR7v|n~(Kx zTNFIYJiWhxn4hQJmwEb475dhf%5QuG-!B^LrO?aZd>NeIZlRZP_mFYt-Oum)$1e0T zq+W*9%V>ESEiVJ1bRgV6QYk+WI`%+#!YJ);s*k_zUbtVt|MTv{eB&%EY$LyL=fT|h z0}x)=h<;9*b`6|ZyG5IgHR!h2QkkF`Ss*ZvB7_1I02HDbiWnFtWClK-Dk^u4s_J%2 zVraYfil4}Yhh%r3yLK3bxARfccF8fP?)}3Yy4f&?t{vv!J>j0{R^xQn@NZtDqzAt# z?)(u6e@>e2AK22(2DWtVz?Ndz^yYckFW`3n<3`Nd)=}j}u642@DP21xr5KF66-`?onKCrFB{A-u`|oRavZ1gYdtZC^ z!~|`5qO953S^?2?b-E^2az>&F2}ZRB$7e^v?7Cc$$-uHnyO&Vu?0Q*QOelNx5_%Om(O`dUT$?9o~b*xuX^GFZ9e?M$P$ipHHsS+;t! zNMq}PG&U8DI}01nT|winT1>9GSER9F(|E77uie=-^tjzIp~rrR{o5&-Q&jUD*V%eF zXae)~x&B#zxebZy3@1hAuGVimJzQNt^MPb~C1hrL@*XR`E6LpXbVNHn9Z^8@fn>TR zWO^2vMTh;S0joYRIFVaKcbu6nPC zY2QY4=L53&ZfWhB$${5c(Ji~4vdUHO7HRF-v=$Ul7zCW2`3yx&rZ)Dc$iE$t&vlA? z@q!Tm!%(^F5963_*Ov|1(mVW_w;VKSl8hovuY@=3%JBF_vG{Z?{z*Bk@9 z#tP2vx(k=9-YIgnYjbvI?XIN*J6nw%Gm-HcD~Q}xHOy6S7m4g_L*&{ex3%lBR$fEs z?+J=S=p*p&Iim7Xu9%mTIk&UNOIur~fH94@t3>0**$m@&B@0_c7N*)~ca3I7W(b5h zx|Q@aHlI=!SZHb*eQzt1r=>kQd9)uwbBP|)vT1&rV{|R$0BUT`0Fh%=XKVLQV{>wb z9PCwseWR|pBZHf38T`DoZJc`RXe-eU8#Zk_D~B!R4r*);yvWkmUA1&D#{njDqxHYmlHZN>Jn@3WB*vDL$P~5Wtb2AV|g4h6#!Z z#f&7&Z3o9@FGH4jomG1EMm=*C^V}6Cl52CX;L;X~Mp}b&!@8@HB@jmkdTXr#MhSwq zIGO;CgkY=sM7cPoG4e5#9RYoY5?Y|p-O4~(OJZ&UxLNb4TVgkSlpT15U@$`h>tiJE z>*V?xiKMPpj_bY0vRh)~xLF&gn<~>v?MqNPbRmNwkz-elK)r;QWBQ{Q4}%GT0Sx54WFf0Z&c;hA>An=-Lr9C0`%$Y-J{Fi*mA>bGlr1@-MB^_{iUYox6~mN8|v z6m{O_!^t_G35VC8A&B4%y{YEOsQ%^8b@&&FYo0;(RxRD4YU$=wOR>GT3ai#StnRJ+ zxyt9AhnL4{uPCDBn8gtz;__)Bf8}*CvQswaf6I1?%>K5D{N_6H@2#4-Mb*sBsb*_C zrLhjHhb<~atQzY(Web&D)=&cT9sUfCcnd#@Wp*A@mLND2nuhAZ?S@s_gRONv=-Ir= zf3qlaHD&J*WP-3Duo2~`xtn*?GN`#?Kkc`^?B?YuJYoyEE(hw9T>iBA{G8l&PI`Oaqk=DNnK}{@T~dZ-047LZ zMu!5YQh7%bFcS)AH0G!XWgd>moB=k)0*eC>hr*;2PFew9XldN|Rc$H6f4M^=iWy4f zTq@igl1#KWEVYefc*cIE^1~0}o;o}r37wL87;w%f5K|O@U#2KQySeNlbXWJMgiy5q!w;gDhmw6<%wO7!A@c)*Vr;eV`0uKzHOYrekz@6pwOP4~YxTKW5*n=SWc{ePCn4oUPp$J=@T%c`25K#-86 zxzwt;ULkIeuQy|o_$co-n#VOpYJuhMqQ5nZ{?Lz{|30pdAjN)dA@`FX_4@bC_rEtg z`TO4+p7%2UpW_kze+enQBS|m-RfZ^w)z9k7V*iJKx zh`Pz76v2>9rH>$)NAv)YF+rQHXp-k~0E>w=m@WpL|_i?Bp{`ApM#F zy#*ibr;MlIk{k6U1Ectqv1LaVZNaV*)~))SC0zJ}Ru@gl=M=A^Q9k*>g{goJ(C3&? zM5TAjL}7?e$`MD4BenQ!Vx)W|e{i&(C~FdSn%(|}vYV#o$>$g)Oit1jA4@)*VVZfp z@R>c&*N%(AD9H7>-NON7utY>~$#x7G1Vcs=I9VemcmdUYhp~|A!qv(vJI^QpVw6x! z8H#*VSQ4yndA3sI&lAj+M>>$csz|EJw-y!d~g<=F$Z z8h9_fJ3#h(Mf!TU#vncp5wmo5AiqlOg%5Z6#{hi!y1oL8A|lstUd#GbsH$u5$wFi3 zBk}e6;`m|!j^;^%A{H)XcsUvU3;B$KfQT3i6$>I1PBl3N0OePiAqK;6By}Ot-eC|> z`TFdwjT2x*TcA{whC!h0{6iaaWx22fqA|YB16HqB0S2${rYHh3H`V?Y&2ZQ!5!Wh3 zSWSSb{F|%LWBeHfV1|PrM0b!IXDZSfN0S6ms_57QM>2YcEKrinLll4*CAyF(f0=m8_gX9M#0;lu=XnfOOiy@BoaKT2}>kI1B+x zmVgnfXf-6{b{gA^+iGTrTHzv9wPRIxeW2yq=k8828a}^+8*7yn&!iY~o4qLv`Z}?bPS?yXjqN>Pd zj>0)tqE0Uhc%=>ygI)ScR*n~bzS0`7ry+hd7mqM`RND@@qdsk%KsVw&voD9 ze8Epg*Sg@sXKM;xembi2!iT<(CbC?D;suHjHIorXm|++mqYy5K$R|-iIg;vYj1o+O;(OJG`OsGH#}J3}1YJ)P zM5iPS(l2x_h_SwS;!A>HfWHld8gko$!Gz7@d!f@_flXs2HXU~je=1VWe2zoxW3l`T zO(B(Wd^)o<=#oU?vXYf<6+D9z#ED6d@(uJFUB8Nj39-K%fYb3gVVCmc z5?|)wWB?YPJ`xXx!_&?N+mcnoS=zyB-|- zopEy%v>PL@(`$@cZqV(F8qEMzDgt5UO5)fZUS58@I#U8UCc)9^@s;{T7ryybQ3{iE zMF9n%lJiX&X=Qv}K$j4L8GU9(5~hNBwLCOsDj@w^4iMu6P5q3iyU==vU~mzI%PT_I zI~*bz%4?|?V!gaf@B)Wuf=;LpWk_%;g7|D!p9A|XMZQmF@nu5BI7Hd)wySx>hoX`X z;*$?!IKm-jI9-ro5DdUC|IpiV35jhF`r+AGMX$9#bKQ-PLPjJC2LP)j2F@9oL56)8 zhD%cc1_3zw@#5$6128)kJ4u5(O zPyt~8s;=8;7+vI&1gi(EQV&)@k4YdWknF*6ejutBM>RN>lH6urUh-jNzc{@-%D&+8#DYYpFyX2aUmwm>>8?K~NGw^pGY`W% zxa1=wh^T(2)TMVgp-g^}TegxPBqhjJ&!d1aYUF@WhXwnFI14&0GtNJ9l~hDQ%BV;PCWH_Dn2Sr%C235BRI7&!GBlot zL&T_M8B~n#ekkguHY$lpNG419`iMkSoaAO2ZALzdpmOP({7%&-h{f1f}fU1n8@j;luK>wx&Qu7ga{ zLreP={f_f{#?@8Jk`1i2C6=KL)*HDxq|6mBgVE0rGrOLQQqkig6>sV4kTxryV&h6r zDxjdWE3TcGaU*|bs*w@OZQZ5>KrHhMn~Bdxft;w^&iW5G;Dx1) z7ARTXO;KVtdPgCuT>q~D_;`Jknc51xJ+sxT-6yudPIE6iIm>xiJ~3lsmkWEoVnu3L z%f3Y4GOukCtk(m*h6Sq#k$s3}Fb$zrC;~j64ZsJXS!`-GnXl}gEgDVc(XMT>S$xk1*(~0*u>dXTbav170<@^p z>1?+)_W;1ur+C2s$~U@~wkitA7iDdV4>lm(9-redjK~F z0v%D{`vYL!bmg0WfIXtTl)5_pcQoMtaT>1c)!dfjlbM4)!&w}nfsR(-ijhN?)N?*B z|D$V$^GHT*h-XZtrwV;$EwFcyZ-tX}8ZnfNg(9fsRk5J(T`;0_8IG9O@3(4hTOgL8 zU<%oQt8QMgGMuyN5K*x`r{4h)#Ujk7%!f-!vI(a=A5T9;PR6|nli|+UyH`{sWFf(neLmBfLohms$a-}sR5|g zIePM!=||Cq!d(1qBTr|e-voI&8$AGdF|3Ku*5oJo!+e_y_o5Ln=6#8rvYFw}DI>Gr zgdehLgJ(h(n6D#-499wvvLL|=Q$qeQ-}bB24 z<-TblUie~p=hlkabe$juV8~E{f_(!ehoua+Ds+a_6r}lc8vP6T3ib80VIGQ;^Av*Ah+YpY#M``E?B@B?g|A=1XlaEPI>KKpMTPX|F!Fae3yoVx zxsh}U+1{5gHGs#)iG%+pEk9mZ;iNE9JoWDP-zXKL%}?=n${NMR^8SOq2=EfOOU z!A~NjBm2iB49OjTDf2Mnh!dHBQ9|zc(p@q5Bruww)hN|KN}Ho!@_Hx=KrQ$C>(`2= zL+ZnF6QjV(LhJIYu46Y{+NOE&ic<#$Z!`oeSj!RFglr7)ScqC#M}M&47%)GQ8Cpr) z5Fwe{h?Dli55kp~q3(wt0A%1b{~*AA{kmTPU`z zo8FoNIvCG7da7Nn=^N!fPJ<4_{I7C^tBT%(G^$EOW?DyjM2<=&Qk;qv-cXr@bHwJ+ zX=z}F?b^dQ%6*MszO{dv$ToZ%gwS2cdLY)!nBG_wpnyqnv)PW-Vuk=tqX z`{Q=I*KYUvt!@tmecx}nea}a}3j?$+>Z77hsBA`3mo!+4%)|!E-l!SC!0Y>cAC5<@ z794k)y*6t0`@ZY@9j`HReIJdxjmEgy?lya^=4dqbyrw^PJN|g=t;Lc-9Ex>lGn%HT z717e}q!BHCFdn<3QK!{KO}{;Ax7)o@quULTi`-Gi>$kg|Zo>=ut#+^H^~bQ==(akj zf&8HDcRR4L7SHq)&}Kw=*_teDP;EI4H)UzNIqIW!W8CgEpxf)Cu?PE&POCR+_uGxJ z+x9y>x8aUj0rUd5(Qb@7sN08ruMfR;;EvXJJPczTZNX1j&KjCt&uM84y#{i}y;i@~ zMW{RWJ#XA@H;~(D!&WC~!^WtE8eMT)ti%{V9du^}p`)HBRTwY!1qcls^A)j_>h zvke2(?Dl)G(HZ%@G3+Ej|jn zUbEqO{Sj<5#@%+;b35&J;P(8M>yCUh_S%8(_QrkW2J7c_Oeo{>`6$FF+5*jBRJ((i z)pR{OYAr>%g<7aR>W`aU*bZF37xdkr+iC@<(G0v^yX$uQZofSqjoR&?(Qmbo-}i!E zv(fU#9k@TZ^ZMSX(`j_QPS9)hTJE?P^hZs<*Xgud zW3Sup^g3R<@3$MBF7*6f#|^seakJkG)*>v9!0d{ys8o(D>bJZ`ukZQ&QOECh#-8W3 zntsshjoX3O55~=QV>IrL+U>48_Ii!>xYHfAkp~+=fP8NgcjeuPJ9Af7D@VBB==4yd z*>80H790irQQ$T`H10HD4>mh~yNA4Xv*Y>W=D6c^`)Wmw0zw7yH5mvE9 zDEf4HF0TXNx|DAl;FUe_SG{vnlSv^*C?t0ku3#+UR6mf~hkzkdXsQCh7wj-W6D!%F z%GYH1Z6R`=l?$du&+GL2p4;%+t%lobjGHYVHd?LTs0Vwa0QH-whq`Sj7O7^x(HMDf z)OA~ZuiNV()ZQ8c&R-A<25;u}&p1Kv=P(I&<@X&<(1cf9&G8iWMrIpmTfnhdEW~TW zZFp|qGYe^_*Btdm-B!?Pp;6#=$Nhf0?X|k?X1~{L`3*iC-7!LKFKEDKXAHZYQ6G+A zr`PYe-e|lH4m&YfyO5Ad@2Sqcs6b?$v~`LST1h;4jD4yXECOVbp_cMs2?=>7}Wp8TDJ`*}&o!2NHA}SsO3JSraAKP~9$N@micN}NmQE*O$yFlIyA&go!g%R*Hm;*55tx(BbD8sqa z&!QGgZe{9Wg@Usp4nz^GU}0(lfg(Uqlj^AWWS!Z=CLDc^VH8N?Pr5?$F|`R<-~ibN z-{i?SWdqLOQl#!x&}CbhvvaEf+2_aBKr5c9vrg4n-7EaglCPMiW}D3%-A`At0SbOH zA&fvAm6iEXY=Dw0>5(aYIERngIG0ffMuB-}vd!$38mN2Xf5s%WN~=+w=IN1cENfD7 zn>d}2_TUy@tU&KQP*c46kx+4ZQE)*fvetL3==mB$N;S_VBEtBVGrp!aT%3^jFto}P zu;aFQiX8`Gl@=cd)(c=Tyo7A(fNfDry#V#xTj`q?7qkT0No5_127h@2JjZL*+!AOq zCgU;b8qDdVcC`I&k2KFPtbz(}-{D|_*dW83EPx#ARM>U3tOlRJTH)kE z2)I@$ktrloPwm@TZ-n+E!e-t1?w%+X`U$e&T2UX`5EpuPZQ5Fkk#m{Yf z@`BoY*emP)y>gkyVPY+v_iP!g)frwwsXf_oUIZ#Pr?1tTmIBEop8zFVu(a0Ro?IUe zathc4GIR%*AR%+Mjp3%sJ&79;1PWXqmpV9?!2rP|auyx0Nw@%s8w{ds+4{yH0~zdjzzcLJ0Q-840x)F6B` zV>LUW^od4`Q;;#}PesNIWuU_ZMeGWV%{hLqoQk}5DuzIf1!ll$b4E$_l|#d**FWJX z*a%JX`@IBastUz=RaI3gYZI7bh}%??t7~a%`mT6B@zhk5_HY4nRr1`RQ7~LlYUM^I zxT&Pml6j~EAMY*B$&A@het&{l+)XVfu32MwN}B6{fwEdAGLDVE0vf8$CxH_A%fn{wenJOS}G^g zR2-@Hw}3O9(kYEGlCM(3NxuDw>lE_OPeu{RId4+8%nV0|3y4FR4O6ms20wp{p#8RT zhelIEglV+kG8GDSXB7b|?%x!w$ZixM^l+ce*)~9Qu_A~{C3DDniKt0^u0@4V zW}y?P^5Cg+c5M(Hm^+x8C3eXHjK_!z8M=~XwA?I;<62k<}5EBQ%Wl*zl(~3g|njwkE zQlq{JV^W4ro_vmBB=hRoTo&Kn;)rW*A4Ht?>1>7q44Ez>0-yEyb`{vS2QCdNMqPXh z{o8r0GA5r98S?U)?mLzMnax9n;}BWuB4JaM03;I&yr%nF-j2$^0U8R~%TeH3j#j4@ zC`1Y23Y3USTzF2W4r5&71Dn<*DAhBe0#&b+wqW8uQ=3#+Iocu?PBZ26kE~To0@K|O zbSp~oD-3LT&j?p2!0A|JZ_(G|#Zn~+4os79HE@;3NsiMXy(murtSXhT>KKE?%yI-%5?cfrrWaEj3Y;T z>;uO@lBI3PK0HFg;+8>cP&fuUEr24QaHHnv5RB$gATxS#RbRMl7AV2vrHITs8}cVvLK!PK9w~D@&5hvbJSQ zX*cRsgGBGdnjQH|!;2}o17rD?g-hMIYFAa1`mO9YlX$t%Zb>UC3TZkk5FnZU08xO) zK+b4kW8Nj0sp|tVT{XOl?e3+nbdu)CIuL&f#YFG<1oMP<<_v3Rr@Fjfu$F3YDW-!I zn)>D^C_oXzFtj`N@aJKjHm#33<}sc#d0Vw~CWF^}F@d7f@i?7aZ{7fSN9(kio=AXq z)H=2ZFki)k2@S@RsrZleP53*4@gx}MKJ8_ukU~K)LR`mbSe%ms=`gZofent^`oiW_ zSs|$1fEc!t{5iE}CCAhBnB`>9Y^arQ-8(}5i}+qRB8yZ&b1@Vk5!=U+(xzKopCSQc zjKV-JTO$58FPCI9)(X4F7ukt*=5-GM+I&Y6A91a8$d)0>eEOJ#*6-UH{Ru5kgMkfB z8Zt5wPx}6Pia?qXpUy`{C(%6BiQ@I}hw`+*0UtO49xH=OoUafr9J#ge|Nh_q56ysc z!0W^R@CBJf;d0-?-71s8Shc4QC!`{g}L07eQeW%TCwaCL*%^X=;nEnJ(rPwkOD`nKH^&Q z)Jtc{JU|ke)p5+57kd)JTO41X4L^xxL~SjoslipV1J!dP=!N0{X{k%4>m@~C9KwkM z-jPI$XI1Hl%w}TW0pB7mNEMHznma-Vx%VNN&@?U^27z>eg>V9DHH~{5lLQoLWYRLU8Z8=6JiYxgztbgbhDd2JX{qFF(~KeL=% zF*0N!CqvXfWw%nUvlmunxtCwEDvJ-|E^V2R&w5Ksr~00nk6c+Fa3lV$T6I-&Gco6+ zA?Z}iOVwp36AmPOtB&=`#X}D@wUdyOAj(^A#^!8^qQwA=iS~5Z&iU1)blU?^b%6_h z;QyyjP0uO1xQkG7Wj0SvBS~Er6=t^0bTf>F15jn+c$)1scS6fW2(#$OR!Hj zI#SEx4RsPhtwPO6gc(T=KuiMlx8;7UW=rXymB8}D>v$;3K}(IFRc*(hD9A*F)YPFZ z`xZNK3~K?y0cabCH1!i0>%_?RhiuT8jKfmy;0*m_hS(I%>D4?Qe>sW;ZhvSGR29Vm@7-tL7bW%C=~lgU&Z@9pdJ* zD7M2o>@yv_F}|=mC6O6gQ#%0aJn?}(Y;yq2VHGZa>?5)=Fi9R?;E&v>jNgB9R0;TLGF5SNM*C-^TI#(5> zYv8s=>&ZNF=u~a(s&Z-M0++#aHkH;J(Ypa!40B#(x8~uTO@+m2Hu3ksA)f`Ddp=A= z@^pQtVH7TfQ$|Sfc?7V?K9T6VfPhK_r9u_0SXAE14TDNM{-oRv%sSUXfcT@U}%-M)f;v3!{H*rEfFK#mJVWL)Auc}4iVHleGHEC*_N|&hK9F*~S+EErqnt!>h^KvqYEvRgoi?N|i9uBio z+mG=?-<2ho@r9+;?g5k8_8Ugn`0q?FE1i?8oG4nD_jZV=iV#idTB_VIa`!G=D$;n;?g@DqTI;ewjmPo6*bpXW`OZ=k{?*txn8pqmWX%= z6ab2ZVuDn5puKFT@CDN1q!!{M=|2qyrldosxx)NSf_Rs3wMl_jj1c6kVnt*!MryAi zANeU$v}Z#OeN|Ma$jX3}Mzy@Tierr<$y}lG=s0`fSp?NIkwsPBeMZy$gY+AR#Xo<# zJTD89G7)sbN|)fRbYPaM5d~VVi&D2Z42O4^`BQ79L!Xs{Mg~UGo72lh%S`gJuN@WU zRMh44^`1p-&dSQ6v^qh*ysn848~SKkUdqQp46nI9I*U+xDT;~;ke7fIJQ9}fi1?^o za+!z|5^;HIiE7>pHhd!*w9J2qjJJl#y+plL|7j(DhFMmtzS(e#5P-=jz#+Mm|csj8sgg@15 zG#j2|j&;7iz?{gO`q_aywsBGxyDwYG-X^0@hx#%YGn(K?hYIHc_A{p-<@`|RmPvq| z)rXfs{y4I(o%0YI1a~-7Y{M@(Q*7>50zfC%TDKDDGEcG$7~sV=SYpcwxuY7i?k$w1fcyade`sD2I;P_;Cef9C^`t*~$*i9Uzy;2o(!;wz} zEwzu%FW(DK;RsUX024?r#HR_&{{j3{Cw%&M_|M!+OszKz&ya8@1fzdiZmP7lMncb6 zG6t9Cqlz&)&?~UvLIlMT2TLvhBRf)sl&nlrV#Dt13IZK#l@13NGk zagr7of_QSn2aqfxX;A6f4RFojV>Q@x>9#CcwceG^bl$}Id^X~9cPw{mBHwIjncoA@NXx58H7?cwi2%jXBt*4{k3oe3 zRTp5BJ8_|~GJ0=O%y{?{IQ3CjT5RwT9(E^1BqlIngs1`*S^z1y`J3z zR#CU96Q{29%Q}qljXC~a-?Og}I4UfbnWPA|I1;xJ3*P{fKy1I7-0+mUD{8kh6B!|V z1u~gC0z=*ld?AT-Q3#`3m8eVYSm_y(VasS~{8Csj z@ciT1nUnU6x)@huC-1daCXy+X>1o}L(z}QM^9-0Q$d5PBv{qj>$Wn8_8e(q=VO$)> zrx9kyZ*^d_UxxZfmo;gr1n+T#SuoNkkRC>kX`=q9Y%yRZu0}27KXQ&3&Lz%^;r~3# z=OjA1Iyt;P0VjXEJ~z`7)R;jOYB-&vyD#}sW10w#=oR`)X{v`=M$WK`%RZUA3P5D3PD8VSV!7lfx%%@CD znz;=qp4|A*pQ4*7W;bFKWrN*{nHO`(r&K6=RbBFQic~zx-PwQr*u~=5KlR z;mO&_(X}@FZ?whpdY`MT0ThW84gj6cUQZE>Z${xQP)Ku1K zJN5O3s@c6%aLI^o16eA$sl93Z2F8&y6D2Iq?hoLf(st&CxdOyZaNC;KcDQ(_&KJGD zJiWfsn`kK52j|w7s!GHqY$MAnX5N|96^@OEH1BVOdA|iVBbdx!lywT^vC6>DxC+)a zu)q*<{TM-&{=!Hu<3o4AM~cStFn3NZuaC+jsOgXs3_9ZS`&`KH%l8KWEl?zBB6B8= zhovb=Gkz4HdT*fmppx2rmjp*luo%y*-j>@o>9M;qWz$@(fmw1b%BK^6LmPlksjkVd!CA2ihj7%JncAV)@^Gvdsbgm4W=^{*<&Y$Ihm%li02LD4Mct;(d%uFPe zf~Bqm0ej#KaWhEVq{}&wMo{bKhfPy!XVhbnJ9Q=6v^l8P|13|E|K-oT@Ly6f@t=8O zsTY6F9u57A^Jldk#@YH8$0rGL?r;>4JL*J;)&Fd9JrDXlA(Iddz=W=9K0uVI8}cvh zD_yLkW`H(Dpp_V3w0QvFe}suW5x}*_shJL2br8u;tD{l{*ss(LGWGP0-0J@+6U+yc z5s-Z=Fc_=>l_n7wGNE~7AZE|rmV7GUAYTt5y(YIPOPbjdI?rb!wEArTMj;uQFF2Z_ z1haPunTg&%JkFhHko~rXz!HW|ZqZ4)$&}BcXkD9Q1>LQ6sVX^A^sK715aow5z@E6- zOGoJVndD9LSbG%0|A}>-TJ#RG79-9NTDWmN0SeQsPv0X6I z&LO#Qt`J5q66cR0andu0!CNIz$}PD7;&540(um6`94-N5V1|PTPo^wm5#-J_>XVHd z>q+q0V~+zsQ8>;N!#bN&F-t7~bWURwWrG0t;AEWk^w?mv=?0c!RRbTSk5wP5Q8H00 zo#Nwq4lxqIWd@bPmX&s&`0Sfz7NP%tI6f$EtyAt=~i7#NNDfW)oR+O zV9wC0!$$FBq@c)aO<^E{`sGB{YN)7ib&>5N-iFLJL*T7*znzk~h+f!{3u)c$7?GC$HhDow znC#94UaORT{^5v-9QL02DdX=B=WNPns7@PDjf5|+z%O3o+vL<)_MEJY925JSC=SUo zO)r=rkp#OU3SP&dSmwX`eLrG7sLNB>bs79$*9jwNT^{zdZ{n=qq+zxWi^FZ&a9!8! zv|8WEq^55E-*&Up`Oa&#TWz=5a=YGlZll?0yWau#>B;}@yE$br`ObZCTY2JsC(oBJ z^&cuavA%RhigOydaAguzPF1M7$^!!G0E>(5)znZcM>OZy2W)Dp_^WJ$Js7;GDoYf?5UAm z%t9->=YK`d^Z64LCy(wzYo@H7mO8_Ic6utT)yLvMSqW#=kk3M@X6H$D?ZiL;9>sX%DH7+w_obw~V(LFy#w|tioxc zbUs7sD#ek!oz1%7kf^jU;^?b=Zcfo#(p_013WGxklWYgrKlV#|v{EwlP8A1o@-ZVJ zaWqj95=WDitwz@8x%ebPa-EnoXsxQL1f?Qmg`iZdC>NA#M5Q7>BPzEOmZ`Wj6qJg~ zmAzIFn8hi)UWl%dD5vGUx^jqamM9f7U(OH%G=_J46`w+xU|e1s!_qmCYc4<9veGAu zOi}u*`un%my1$+0KK7r|#I`m6HraoTRt?#T zBeD>iU&22DRN-8quU`k5m$K}y;NNq?Or07)T${3%vN6OVsH)5Ubix@9ur2}U3=?YR zm7PDXZn3ZlALUv`n4*e-w+Gtf`S-<+LBr<&2sDb(jM|F{Pum)3QbO)#1qW#Dk1C`PlVQ|67w3xUnURTPINC~edW&##$`Hx02v&t^jq-is(EJ~ zOQmZbJ9Ih#zt)UM<03S|QNZ=TR$edK3U)y5A_<-UwG;e5j?mkF{;Qn%N4t9fHq8H~ zTeSaMFZTcQJZAo@?tLWNpU*P|alQGUGqqJ6VQ3p$e??#yZ$mo)E_qQonQgxSugQqe zvh4ZXF!R}1pliJemi6^8$HJDLgPlDEw!fj>={>}Epnre(>HOl@{2Km!c=O@n_~Y40 zMS2$iI6fcV{B&}1d2@dF;beGn_37kl0IDRa@^2T{{O|F&x~}umEY`X|Ug<2=k;+mn z!U#Z|;E0Vu^}iPf|GlWDu!PuByyW`q(dqHkim!Cxi?926^S%VH(nQ*Jv|s_tG9(Ly z9IJ85mfsDJ&N@66oqJ;fz`N6{lb;XI&P*rj7dICluisvLJU_k}etdg=ay?YeojlaM zyTZ&Z8?qh}s@c^p8Nq;Pk$Q{x1XgpoY$n?)|7N$Bg8rL$ylOkTytrm|A8*%s-fCZy zPN2OVi~mr%&&#um{--X6c>?{f+in*0zZd)Od7dZK|I~olN&i!I{x{eEtevB$*5e*? z{VlAcB_Q>n(6>FUEo3t93CN!=&u_%zKY1*FXXpPG{{N<%*Z;g`>t+A< zSstVR>1!kPrD-N1@V(ssvifS@zqrCxY!YOh?!~dM@LA)G|E*d0yMDHx|K=vroh`r( z^S{;Z=How_UDtb=|IhK5`G1|iX!a2-Kr>`^vH`26nu@pkf**N5&mdc zH6nzSS&VDgkTTp{kgSkRtxV5#^MEW z{Pgkd$<6TO=<4KJq{S9l0;xy`r*3)jk#z;Q&Nm|N(9_t-3yheEnM$C4i=&BC`5B8N zpym$J?00?t?Dq`7@D46%G8KRS`>_S)fUZtl+N;n%~PkHeFz;pO30P|`u4hjMsy zbaHupb9_GB1{rfzmWd2g9{5SU14=h#a#+}oSnIuJbL zMA;z}yu96S&vMyb|CblWK7sw;Zg#qP`@iMBod126$LRmEd%+ukZr14#k4;=4zXqD#o8YjQ^vpy)bP;0Vus*0PYdTbfwJ3bC#cS;Xq* zd0HvnF(P$Obuv)qBdxmKZns*&49!woWMk-JP2Nr-;ukCWM6Uc*vc<4Pw4ws2LKY23 z{o9f>#p|fQtU9YH*OW~7xE63+)Jgq%5l33l7MDxQ9MW9!nU32ea5s!K*-?)_)Fj+T z9%%xQVT4#kZ9e2iqUvChtnqP`dgSdiilSG=kd{`)x&g{iJ; zo#Nrz@;a*~mTffV=A`6BNlnAX%-B*ua-H$U+8-3lmms&A_RxOH$|<3uQbqrOh8J-p&JFA8@*e9dFITO=IU|=SnPHL3IGcD^nZN#&+(qV>yj4}k@J-TyzTae8 zr~G`Bc@4%S3{dj;(_6xQhJ|F;p(60IwZg|54&R(;Psf0Crx*i8b^5MdYU-Ey3uR}B zhK_Oa=*%!}m$0Ph@z`WxY)5Z8`mFFydl)M@Q~UZ=9$tIPEh6!e+dvn5mSxkZp?{YW zzl;&6-r)pI<}eAW*$rsZAa4&bzn(2v*7DD~gx$Q5${TP{@kZ+~u#1$n{a%GE*)3=6 z=M>x@>(Is{K0DZdyz6#1{x;ix-EJel|KoPum;Ara@~k@l%LU4Ba_(1)Ijx)WV*1LV z>Pm4^OVhxX>$6G)Nrg@J0PrG?iaX!w<+e1JpH7w8aPrsQ2roJDo9^T&aI13er5QLy zv8vIMtA(mX8JI>~tu;X`t96qRx{inQxGu_A#|P6(VrMYUGtzw6hL_fv!nN#7fo|ex zTC$qD1FB^Z?#)=sYIum{x5dC!ytXvyQf9}SkF1xN&RZ}%M#)Bo+sI|caS=p0$7|0w zmUClxHD6W1-56^I+j_~6g5H(2>1ZwivJG=L*){8UC$;{~tdr$-gugibgVe7`l@Vzt;^K0 zL$(g5SZT`~9YR4WZTw4F%HPx!t6E0&RxGUl0N$Pc?ZZiWU*QC^>3qbQR~98u$CSpek`vO(OcS1rpAzgy>)1|of%-D`K!eL7j4XLzDn zQgWu}+hpVYXNl$WcoG&G_M7>)*c2oS!;suvCU}8EG(jg^il__u^uE&iz}dr($EVjfKVO|*pR5U{9iCi&JUzC5 zzCV4=!==NM%fqX~>x-)asQ#&10pRrV`ta@9$?)dw;n7bg=f?w3jmB(;tRn#Ybb59+ z{Q30y=*NM&t7GMPzg9jS$)6r49SL}XvxBYe&JMO#ogGZsa&z*xqqC34C&%X}*FRre z{WQEez5LWFPXe-N<wkU- zDSb%lNAYaX{~Fzfn~(o=J1_fx&+-T(>&R?(9PthZO2gw{U>M5ND0)!vRegmCB}R+A zOQY^9TX}<5`a^`=R8+wM;0h`KA+%8RSzOO6JcxXpI+e5@pUv_{d|pL}CtcKx*-Cmp zJ1->vE-jY1wVju>UX)f4hgn5Q{#R)cj*~c(lA05xt~@Th$}Nt9ff^zoU|g9Y27?Ui`C^cQ z(ThZu_LYMs#3M(8bWDYkv7<>@HH0$vyJ^N)**spUj^`@eY);t+luQtKZDX!Vq|tpG zhy8W;*cr@W7@mpR7N)7wV1GY4X2u@# zYj|ZByC=gAQxMO}HJEAF`jz9KEe^I};@7X{bh|J*;}E=7Du&IuK*&3b-i-F4{9e~w z=5q4*2TZ{fCGyVmAOH|V=njNjEErq-zDmk=>wiL`f05BW!+$oO|L8XJ`Jdf(yZf^K zKgT0i`GiFO2N^xe>Mw`Nv#kB1sQfM0U+JluQxsT{OuVil(Ajcb)igZHs%n{BD}|Tw z!mFk~!4L;R@)$<0V_tsM9zo_$>*?ApssCN9+!EE7b^B%Ae%5uH#>gM+JWYo&^6xR; zIl9>;pFgRH)mwG;d`+J%=Y-zRE1w$~h^wDRm_d)&QcMEf(!F^86gW|}aj`98*UK1H zK{X~pRlhoy*Hl}5N2eqaulLJlRdy&mn^e+|EuCyc>v)aA`G4;v|JU<8!p=Ju z{X0bLF)Y9U#UWYFP{h75BhXN}r5R{O{cm9in#Lb!3c@(1sU>Jw@O!WY4YDuR;EOf* zEn9BB*=BIxTF(tK*l7PZ^Y?#xP50&gr)PPj{crmBkL>_Rhw+vk0E?2}zy)Ahe_S7c0sFgf z0;FB=;sto|0({F}05eiw+yF0bfEPEwiyPp@4e;UycyR-~Jm2!OmHm&RASU>p*8djg zzgqe8|8BSSV*fwOqq0`X{(TJVUyqgNv;C<|86=GV19^#(NLX3!1W*Zvl*eF8M?gxH zWn4YUIV;^2^!H$#Yh+(c^B2?nc}?^Ah$5zLIey>E-?ZUGHW6f0ie+{)_&7OeH`7{6lI2in2%B6)?+! z6iV02Sl-fZF9p^o>jIL~%S9`n6m&(cOac`9!y9o}HS_9KmIPI40Ye<{?{d+SX-Opp z{GU$s|6}jpyW+;3#9{pRcV2~#f8;Ekh2{>se4m`p!w@FJP68~D%y&1N%`vvR+aKJP zW2u`knY{Ps=w|EYTVt9eW1lk<+LlTssZ^>em8yXE>wmsF^9E*^v;+~p$NlDGqoD%k zz=)s5B8KFdTy!d32Pa=r7!VkO4+^-C;`j$8?1ue^=lJ6qxS0_!Muh$H!0JCylmKrH zczW9^R)YqCpG_GqjBtSFFuNb#{u>@fXu}ff80J5cUF#g$G?M=(D2x6?3Gw3#6duh8VnIqf%m2T-X~+LO=<|OrMYO^B`y$0H<_Q^*M$+~()J|v zHIo|;5`RYb@6tfNlvQ&5fC)px(JYR+3@}td(bt^-nxwvjQvg-I^W-;7<`h~N_Au-F=UMf+a-4d+cgEzTUCm={EPA_((%ObL@ zDtqW1^OF#)irz`wJUWQybC_jONM%b2MSZPn9dd|YD&ZN|S$IbIr2>W`4VV&pxfZJg zOQoYcENW5h_1iZg*#G8cj3pwzMAjkN=TQrb_+W()mwz0`=*Evr%3MMgS#fxlf2|eT zi-~`zu>N>b;_`)RgU&kB9!q>)SA3utU0*ZqdkIG(ez3#EkiO?jgJneLWXrks z?@QhiHQ z^1rw%74MZwJE9UKSrjPa8;uM+k1yW6BT*dv$!6jLW&uoyKZde<>wu@Xyo4CdvH%L^ zo{67@Qve@_Af4rJcmqdsnE7LJLu!TF6Chs{!>1`U0D7FseEUi|DuBpZTxv3I=AlQ zc_52aZ2I|f(^6tR)ThpEJ5|lU+!+*x;$Xxp@YRKSX3LjCy$T>o2pnfZ6wyuSB~5BI zn1EHPrc^boia?Fp)nulUX60as>0paPYI_f>q_>u zKPE5%R|KWtD2_pdX{Xny+8#il0t6l=C{1DLJp*)^+(SrY0Y)us#fTS$9A>1Kt{~qT ziQ*w`<0y_j3-$70@JO&OQL9KKRJ&{xni>W$BX9l0A6HwTOV>}63p=iMN#?^*bom)UJ0D-UGW=qLqtO3sEw*4$=f4 z{}GPR1ghWV*;#+$_4A&1NsZlP8hnXZtfUyYB#K3Hqgf1<=0t*#iRq3oL73n|&!azC z8+mDcPzoxI4&@IaKMhpzOKU*u!8+?Z8#*>}DeGs^tkGTiF+a{^A;v`w z(=X&AgQMt+Hz6op^b>K7Ex?4B>(-13drNsQN@hYp{HRSKHjA|%R{5(c-Jj`ik?)G_ih zQ>IUQMscM5R|lRCvCL~R;{%k-l^IlrUIJ4)Lc!LI95F|Z#MnFsDMn8d*MXY2ai|os zZh9%-gm;uy-g1vJdPIiIWO@uUQUhC=SXQOs^p>`3FN?eX)d6u4X&P(eFyf)M)to4$7e+Yr=J9`?*f5Ic@h!8)ROkqM^(fuH5DE`&P|Jpw={eO4&cl!L# zOL>?`cgE)z6cY@J8SX*=tRSGLmH#SxUM&FDR&62y)&k+j=)6AvTUL#v#i5y;RyhTa zC8kkWVMv>Si*^fT;v9wi}n5& zz`18Z=ORv<{r>{RQE=aN{I9K@{XKL4-#R$h>-Ya-gFbHo2IuRd}K+`u3#Qm-X#3&9CiiVgrY; zz*T;2r0h%mZpp(&+aY^A%>{lJsq|O*OU9?a)UQh&DGINY1S4PdE8fc20s`|lCy4gg zRdB$@#MQEN64mZ(>+qfW1s@pmB4h(F@-E{A3Mm{pPo-f8=)6o|oWcwbbC|5U+y+{x zse>|9^4&^#S9l4?T926MrQUtPz*g~P`8Q)emyWH0s^^s;C*m_YNSd+%8Tu{%3_rU{ zc=;`0R<`(p55b50cGpLPz)N7k3Q#8!QZrBjt@SF961z1}K(7)!?4jb&IdJ~BVGDMY zTL%Q09{WRr3^@TaE5cs*M{F3Szr-lGE&nnMqA)Y%FADS}AlXcbNFmA> zUInxw+r)KHr47L^0Zg?^EBuYijl7}~^CKTtd)u^qqhriOJ5Y!lIj05cjy{%j^sBK^ZxA^+Qob`*L-`Ac&8^tQ zwzix2LscNCj)jG#^06tZD!c{oU4VX6QJ@*+C^c-Fu|8H&3*|`(Rz}W{S^%(jr1jE5 zB{NrsZd0NvtN$Q!svM?Pgj5Nsa}sipRG~Su;HeV25-49vtrjl(WpaPholHhHU`53b z_gHoXEx7quDEahPy9T&#@cH#1o&Y#w^aY0|BvSZ?-s(;716I6 zW;!4034IEN8?N8n>x)}u#y_kVke~WNMDBS#Oi<>J#WIr%nj8C#rFp4xBVJx-P^^}K zXT$?@u3tY0AjWS|sD=S6AH{SY43#Pm^QoW9>Wr7FFcqFF-t6&4|vt8c7; zLMXL@326{)-3_H=$P7k>a;8ORdRauSp+#@uz2e2r-j@(0KYbid{abjNkn`*eq102_ z8z^veMMcvTWf(EDanMM)as4tz7*p~NbZ38dTIJ#CjpryjoTAV&fR$2{pwl6q-W*?@ zc9q;n>uYhq<|QNC9m>fFKNiZ5rW`iY|4{fU!r6>1ieF~o7`93UUZel*?jM-?-_F){ zAOB}54^!__6o&cy-mv-YLd%j%ILJkUwUYtMu(I~&*CS$C;%3PN z`Z1Z@U!d@09Edp`#;;e{r#V% zJoUoil+XO*+~q0Yx4g(xRP5#!k4W6s#r>TEwI-K$iqcPXbH|th``V6C;4xEe7EP69 z+`PzHQHh>lVCzs5p605KMHPRGdpgY|efJvZ@8|&VPjtg3oMqTF&O<0^TGIbl-TM(c z?#8$-@!+Z(JhqwHq4@VVb-I=2A97R2lHd8c5enb(UG5|aQxqktvyzJ_pe*K~ibr=$ z>Yt@N&E)?qLRm!anN7Is`~RCeJ6i|V{r~;m|7$4^xBrXzWz*e>OA4ww`U>5K^8H{R-?){wY@V0)Gy;`4im2zMIZPyl>g8ak_nvQ%URsk z`@i1)yM3@{`u}h3_VV9So?1yo&U`kD;Un3AwKm$?fwjutpDkEJuaP}itMODeVS7p( zc452FquPeG=1T3u8mlU^5!;x5KXzgl#q_q~lJV*7#k#$CoS|82yE#+pTmviY>-&O- z^3wXH<%$)u&Z41d=`)pF(HcWln;No0+7(Z3a^%*=rukgT;rn42ahJDlT5|l%^Upd) zv1opQ@r*`#U&Qb-q1pLbnBiG6?@+u_2kB>@kzU&G^l2vl&x1$I|GK-mvuo#n?fpNN z@;LAR9>;z(?dB4&D}UlrZvh|IT?0ODeh-)xExBC#{@A)t3&5NW=a~~V{*C3Xjgk-$ zq}KPmL4&)%$BixnD;K{6-uw;V=6-$)c?edIZZJ$p<7>ddBisWnF84m*DsXPrzCkE% za0j>m)AAbdk9d!lE$tt|mTq1I1Pt}wsQ%L!)v4%fE@6T3BV057F--W)aumx8hg2@Z zi{~h|t{nE__22GkB>!hO{zDXi8u@>3Z^z94u(`R@-~U|7!zBC5UyhEu5cesaJgvOX zD78}HmnE7={IYBi&oF`6A5jPuVO$gd5taqOT@*rqGLRs4f0Nr{c)yq(#DI%utV>cX z7r*pUjihlt@Q-zAlOf{I$OL84pYBYXU%wVHaE|$4T%s6yz~ldDSHOzV1f@wAN(0LX z-<1l0Pbag|b)*WYx>dWER)1t^^~aDObL(%l0LfM~E8C&y*d5#WB}&3584K=_|9VO$ zk}LQXM|%Bo@0a_Mmph8#B^=S>ej2^b&@8Q3ch3NL@NQkRymE=A84JQNn@0gW3Ia4s zT){yWcW3Ml37U0+MC-WMv?j5KoTVg;Lea&_ce*Nr=vj*RUBmVYXRVGbf6 zjNhXqR7ZhsORBH$Z`aosmjx+sgT!k{7+o2+JEn9S6C24I@AEy#X>CQ6xZ(xmpjPbc zGZMveV;YLujvYcs3pr+@1`vb1Abu3LF;v{kBv@BJ@-Y?TX7o|_pmb7%(YQq!`u9=_ zakOvKilb01e2aQ?AQvbj`G^^?cx3j*^Gr)yvyJD0Oj6oXYcjc14e zAFz8ufOAi_Xjh-(fv3P4X!Dl4WpWKlwpXgKm7Sx-ch(3OWvI~id=41@E|zb;Ob1}7yMyX0wyr6@1lzZ#EL|n!!4N|h zQ0Yv=NO{RKBB`bR0(oL}hufj`ql8sguv~?&N+OsbOjsv4-2A6T+$DueeJ9I2sq-J2 zT~Mb=#Y1x)-1xyQOhQS+YWbn^t&)CoG8MyHL9JppEvMF;cRQqqO4_Sp`Ys}(0zg%Z zRMcQn0?+wURJ?=Hc%oO`0z>|`!l5`CfmQgqbX(UblIt%l)mUtB{5%&{ z4iDQO#e~s64|p2ce=rQPb|Ig&r_TR(XV;AXwz<2x-`jtd@i6`Mip_5q9srzDp4JCI zP-~?ZKvAZNA3#x>+^3>N`j`FP9p1V4UKi0>lx!WuS&nsCaw0$p_deG;-1S+Pd=A+@~OM~ z({cOF$M!N@jU!A9PGoTnZfB5-tOZYFIFJ|*1ED!+F)Y~8X;Hj5F1*>_g-KAi>MCDi7NNQo_j1~qeDH^A@wD!ge zzz(J;?a@yW1{0XE8#8_w0v{ys4#advWLsqUfz4CPSl{#0Q2ysu@&y%uYWaU_XY;_4 z|M&KL|KFuNLjLE68l5Nr!lJVT4S;*i3fw72S>xx?cTpUJ8wh3?hWySP-KZE4*;5Xs zp?7WGr_S%Y;dvlsYm0j;2N!jh%LIbgQucf%*ym{y5is|&$iImpR@vmr#K*r~Ute6w zBQ!Ha94mk@DgTZzIpY>;=l4{`W6guZDjgRV$W(+=UE_b6!@!U5)^)2HD>;M-?UI?Y zneT%<$r>-0W{98w#p>a*r)E;~CWNF)NSIv0*9J&rcVD+mY3uG3%mc~hKTj`|^S_N3K)wge+`3Wx zKD_`Tf|&VGW-z`7C}F4CDGKHJw?b<&+F&lHNvhY-Q!izTBlQau0zpGJK3&Tw5lXTM zBfKgy=lVAoCR~Y*$UwGj5#m#)0+H5kA#NK~EwNPRTNwy-y>ZcPmNAjJ=&oaBR=JO) zC>$zf8}}_obztK9#{?!Cq7i1d_{6-WC|m<0l(C(Lc@>^stO1N9569pRB?OS{zPJ@l zr<+nA=LG@~ZNlufNY&4lpK$?L!DwLo(#vxR)~vzo^lGm>x-PxJz+S$RvR~$Ym8Tb8 z!xj9@9!ACnA}sbMd+>md?_eD31W&0+Wg|uut7;T$Sc*jMil7u6#j%)R7h*ugOsZ;i z-WUX>M{(>a{8_iURN(GVu!~!y>T)D3pmq+c#yrCa^T)8m2Ugxz)a^f6*ruP#z~Qh-~6KCvA`;+FhrGc z56MPz8L%DVB=g}Yx^0N~0{Hy^W;*jedkKA%Y(w>9Oo7Y$3AA>Xd3S4VYY(AnhIp(2 zSSs#kC}a)|3*nvQm6wXMuCpwFH`D+;3GNG$I8>^4j(01jqPfdH02#qh7?}1Je_fk2 zN88XUSw(k_991UJgbm$grp$(|*Ku02OB3kS&Hp20eazK1T>vUctzY6ERKMGo(fY~^ z!>d@hxNC+D0j)f0Q(n_hW%BngtBX6dEKUF=fUE4AGA9nJ*UfU=w1}iVI*)7|W%qurj9nw6zOytj+$vXb$i?|L^V1Z7cuF_IAJjFXL&p zzdULVaJ`L|`Cs(PhGX*6=YP@BYZ5F#ukl3rUmR0nU+8uedd&PUdUIv@U#>J(RU)4_ zFn5S3PjlheNilzmo5#)Mjq>%;=YRQI`PGQO=+Ab3;D6wI2is4 zzfr6!^=mmr;T3b7a<1u0f79k(rw{RJZQe?X!lskpq>rxgd3?&SI6yJ=OXHsOiM54e zGXQ56O3Tl`AxD)ITftcyOkgYGt>wU-Hkf;+B?M+8KY$k~e3-9pTk39(YigiYwLKM6 z{REp7eXNZNG^JJXN^V=Ac6-RTF1DJxa3k6W%^eCwCaZaoobFm`pAYvhbU|&p@Bd9q z6b<$NB8B7v27nsZhG}{%~SpKc3j{N5Q1V>&GbB z$md6^)6klr4o&B`$^AG+ckfYr@+I|od~L{!2 z*ZA0va1ti)?oYvbDR-$-?j5H)Q-Tt&&A?rQeqIll5{C5uD?yd9cYJXd?_0vrL zV^Zu@;-`3mI=}z7v%6{f|7>sV_V&M}JWQbD^NYp&b|UX-5T97S({QPg=d7}g#B6std?=k9Ala zVG%yu6}>weSwVCa9-UV;j)e=5FWu!qgLB|^0%w0N{CAP_-13%9F4~pH2(Jr#*4aAZ zgi+9=b*A|w?tb+`W0*yAalXt?D2vhOpS1JJ5XO+URB{Zfe=a$PEfLR3Ppk8e*yq#o z?3rPHt76Jf6XE*jbX3q4i@-h5%zRpo)?T3N_Gu#j1u!G)Q$O*?Fx&W~WHo9i1lGm> zIM_7vzw8|B_2<7!dAMw+B&zB_?$gp_J*B*-l4_-#XB2EA-x*cv41Q{H%i32X5L&4e zAH&k8E^cl)*oghq< z?CVl|TA7qdOxm>&ky7w?c+WfG$77U5WHLPjC&#a@j<`r2{Rt1j_TE1Gm5FXkS@I~p z^Y8I903wWMFuQ~!4l3scrhKX}uTxgVaIKSR;bjzfR))P7spSpE zL8-ngX0QPxD22QP7P0jEaj|u+)R{`&Wyx*IEXv1onQY_MYiFys|1RaJ6Frl3JmfR41^;`v33B5FIP<4bGS<=(@}^_} zB_-k<|G)#!nLDWZLIKbu(uNwIaBfG~;L!?Ith^W|V>0o;_TJ8*Q4={6almgN&YoSo z2EXtL7-*ySR>0N958eDz2{KqG&#F_#VT>%p__l2!4w;buw`RZ0Za~5GoUxkz?Db3s|My6JoU3VE~R~RsEjGXWSl|#Ip%yq z)fzc~5`|G&Pfx2WYKzNKlw_wwiXlsU7w^v+94_c&`=e@+-RO=ED(tmHNn^S)RY7eX z34qPzKhb{Y_rJFe4)(XK``^30{dXx(6Zucfe8&Qy2qB#;7(#l*ZuOyJUddv65|K}s zLkyYkG>J&$$I+j#EUkBR1G9u*+d6y+JTw|<(-tL|_({NHXsda^R;DOq^Wf0}p&z3J zYBhPrZ4pFvA2*l@cs7wbkC$EQQ%S3^T`V_LV5P z$Pg7k+)ZR~hT+BgV^`HQgE8{MH_=Vzmtk<{$5(WusW>KxtuzDsJRq#B8p!(rb<-@G z`q}-vH1r9)BAHL%_@2$qEWvb0<`IUWS6byQBoh?!>AZ_bFhO%;{l;kg2F@Y7EbK+e z2zk14;om}lXBh;y@E!yBg^tY)9H9)#{LFq3(2@6(dw^#*yqqKJw~R%uk-A3Qxdq9c zuQ%sDhOFyO3+HNXniFla7M1dgH!75XW-ZFXi#8|u6TAvoJhY$EvhRrHhs;iA1K@l5}UX{PjyM zU4%&vc`9<9_n=HaHxc_Hd~gnOb%&)JY~o5lE|Gf;6PWoLZjOKjX7&a4rlQvsgX!Kl zH0bUk?&jLGCia~2wnTx2TFSR84SfE#nnV<#rFtUrV%oh$%NKIUWs?gO3dm~MIJdC$ z(ypX6VxFcr8g}5&yN*s7*6kSj=TGKx^%Z!pQTq?)RsA#9J+zQ82Nezl@ zNC6x%NyJ#Eru^vUgic5mNT1QA`PPpT0u#!ez#mZ(qB{rkF{D0`CM5cDOjVI%;nLzl z2}j8|hG!O6P^4W)0@Xs=wS?WKydyy&RJta5RzsBqRyrvf_$uYv(!K1M318`OUZw^4 zU2qKm6e>Uo8DgI4)y@BOEn;ADKSRlI)1XzXLI887+$GTz;=qq#c;nS#KsWHCG^LR3 z&n{3Un=X~rD%ojH&%!eo7dnorAuYDg74o73u2kG?&@GMFLJ6;Td$KISPioOFYzL(# zZ9egbOn#|0TOP1rRNQazARB_RA%&9Vx zJEZHM#7f@AEbiQ&`N*0ZJOkkrZh3jP+-uk3VydH#kYD+l5|Sq`mdl~+Tdui?+XlHJ zQ=y;adqK{P9Nd}XnwO}!x#<8WhTe49=KxBa_T^Ta2aPks${DM`y{EhHe7buF0G{|6 z3_pp_pJMslfo>e#uvJ4ziLRV?N%UEXp}fxLCc0^hrp6PTQV~a{kZBH0iATVda>=1C zu{2(N0ZND;B`_Oikl&15Br38b2V))PAe(1r6MH$Ykj?|$qppFaM@j?0quaJ8WB^^O zsE-z%&VwOdEW3h6sSev6jT|~G`&uZ;d=N~nR^`oR zT>zX)D6ityPj%J6&^P7YtG?tBz25q%gI|1R_An=md^Y8A)XHb>TeNN#fGqr^^iZm^ zCKaW{w3UXmubs}%f8Z57V3-3ME>aFYi-XK4NQplC7BFbQRRO|G#@luEM zC0Nb9x$rs_m)4)-_2*Pl$WH;C$s=U9?9lv5w0p|z3&A{5;sns=777vI^Y9jG7v6YB z*FTG%F0?`1AVe_9IK?Sr!>o9Y)3mzvt{%A#bKpZ2&_Z$X3%;&&BF0e1H-iD1!|eWn z*cM>wa#h)gJ+R3>s%DMIl=?jN=H z|8}=FE&t!$KL7Vpp05r3Klscq#s8N#W%>W&b^d{G7*+nil1lH>E**dsw4THpIu`=*ptd9Gz--0IK`mI8Z9S7YJ>)HCb{>DX~~8 zWc>72%ABSk4D*Nu^^++qgF z3bFWa^E8+LaWH}5EQaAPZ7%}W$p3p=2RnBBw}W2(U&hl!{?BLrd$M%diGa7`zxQ19vDc_ zqeWy2D-%V;NfR5y^Sgw_-GLcQf~v}{;;PD+u(Kq7uFu&P2PSzKS8pY|5bABtJ=oW$ zy0zLrT|G_ozd4LyhGYa7;Xv>P1N0wSTEXz3^N`Gj#cW?$N^vD-p!NqSwkQ=I=RMLxT$W8DK@9(i=1JMlo zyEam|;$r3}Ay_TRSU(>Oz-j`)stg)VUjffk^cKT$SueS$4|9V~3pwdN2`*q3Ntbc+ zZFSxrJ2g;lF8novpJy-$#4I>IxIlA)WB&8bv!&vb9ueLT|HvXD6$M^F^NYQi1-Fn` z@U)UcUdR>9-Rh`bG0os8%0q?nU!r@Jk>MKw4}2CaSo)E&U*-9OeoEb?jr=dQ(Y8Kd zb@3m!_O1Mn+gn?`{J)HcN%py!p*xXZf_z#jKd0DA!Co!ZM3z^}*NN|W*+nJxVj!0& zq)Sujk06&zTzgTx7sbCrJ1%9bmLpbmn1dOHy44n+CR}Y6$d(tda40X@Sn?!VD0N~5 zQ74E_U>(K%l+x3W|Fn_+^fZvo4ZwBs-`=*F|7UM&XSbLCmhm|9KR$v1*xkVQlnk<& z3AnsY`;?GvjKC!|7nLc?relc`=6feE`4QwzjyaI1gEze?xR*bBQ}Ey16#S!#x7G6B z1jZ@M@Wv;Y%wNq?cszl@ZR;zbHS*uq-p;mZ|J&T^&;OV5aKVmFD>zB!V1zR8YL><< zKhwgpA150ndWlLtZKOWn@em~*SmA$&UY|IO`0HZ1F23O(my#% z=XG=ZYtl5<^tV%Y`SpA#XbJJB0)pKtqMwW_uYp@p*)(y6EW@7M@qBKjf5 zTd5U|ii#?89QjdPM0z-u0|M45bwwFUrgSfRFJhO256|&O5GDLyl0|$9&>Uu26hbx$ z&U$3x6A)qG#~Jj)doe4a1jPv?A1H~b7_C8hyg7F;7j+aQ@fvg~2It4y1sd}IF(el# zBbRia?wbGa?C)6TKb!mg`Oi`w#@sIx$2`Z7h~q8kPkss*hLF$`u|MD9h5)S*gxtt|$Rx<6c?ux@8)-my+M39yn% z$c(S^L7PP5i3c`;7o$55Y;u!|CV*2Re+{f)n9ZZWnY}=M(r-P$7zPAd*F40nkkb*6 z)gmk+Muo%SP`^G(w-iwj91ZE754|uaEE8y6Wh@XuixsoM~Kt>xcz)=!1 z%8f9{yP?3#A;Qn4K;3bR9FdUn28;l{rfQ*TAL?kTmVi3x>TRB#bc-YHt_8gZGIE)KOGpIN#r z6+?qsfc`mf3{^A&dB9-8Q%7hG=`|dfycC&y)pu%6-zXuDW{n9@ut6EumkUlXjM3cy ztj0uiS+>Gp55&v7q$Q^r>*T+k155tf+3U}Lmh$j$-f~k1uOR_)qN#k- zg+Qm%4(Fo_1v#TjqDoMcE;qb4jb*=@lauwY$Gf-MdOyQeROY2 zKg#AK0r8u_uOLj1QFK1|L7_1irMgBK2 z5MsQ142FYRSwe4I+xQnlLO^JW#KsHo$0Uj&xP#y}L3f-4b186?p()U(VGYEP{0nA# zQA7azlEzUGk@%iLyh6FK9QX;y@|$~X>4i}S0}|h_QB`E>lVHLxiNJ|JkI*cmr0wS` zfWo6Rfo8PJ+Ko`xmy;DxJmv_?BGWMWVVt!s4b zI3DT(rX^-LO2%Bf6jExgW#-V2VvH#K1ab{6VB7czWnemsNtDL2as)A;+QS-%==kTx zBa}dZxDK0>dEr&94}}m>Q^ca4GAT85=}9@DbxSo#QRpC3{dUb=1>DrN=7-HAbz zSf?>M^NhMs;?$`clYtzTQaxcYVJWvzfH`k7N&uCY*dj7w=$rB`m@M^Mt7Df3u3kHhsuLG zuqHC0+(XJlLLFjriA=)nL^RZpSU@~u3=1-U*%7SKb$Tr~{=Abi&8G&KWBM4##CH~lt z65wObmF}WA2AE_~3S#JobgQ7iaM9%1Ym@1@C(%5rUzEVoKX(O-5&=M~W@!NmH{BqI5kp2y2(Vui1j4x1lG$V**Le7AH>x17ej#_kMlKR!i`vQ8D zj5p@nHrh*D|MmPofEkHK%prW^Q=#m3XaC*Z+%xZg?ra_O=l@H2xLLQDVk&)W=8VPc zz6#N}0-ZN<-!#m;&j4s@$(3=63iGhqL;kIiy|=6z9eeakTcvtis%ZHX;~C6sH+zo- zFM8`I{upLj57)uTmz0|?6O^pOX-e+F2MgrK(iHDblqLuh{BSfFm$X947iXn46oD{Td;HRpQ6GGC%jSY`i9#k6An;>tZOlO0Rhobm@5N%pBW1!%& z20F0EPk}yu0RDw$e)#BkOJl}|!#3EK$6Hf)&J_$YNMs6S+svKc@Epnu#{8FdXV$a_ zH(wO2*pZIeKd;((VV*;3&e*`{oOxD!fxgWg}1GL(kF0+4BjG+?XzH9_mOKT6j zGScg3_f&5RuZG7TMaTdt_+93YlrfL7*Jm~L#E$89lz1(3&vn1eQ7N|Zvh6&7k z5+!3EYy(J%S-CPsjHoKdlv-+R6=tR-o>obbo`wv{kevVuyEBWHFiQfkzas)CT+K#o zPha<>qVLxFIgWXf@dw~3Vd#NUWXAYrS)~%?AiR)w^DUl38(u=X55b{!2KrS=rtT`? zHoJ=oN-Evw*fZ*{BnA}YszTD`M0^gD2Tj7~P>)no^lV6bRuQ(tF%JWMBzVxBzd#1l znEvJcs|UPK-XeV#dNjo9+G*TNQ`t0$ZD`Ec3eQ8vK8Ziq)pI4LVrU=qdM|0$YBe$@ zqD^O*T*5K@@|O9Qc>nvsU;lG+{og;XuCD(>{=NQ>!3+8K;2$d<$9w=*V@Ur?k)!PzGMf~RGe|`-Hou%%Qheva^5|oJxAf+|Fk$d; zIxT62{avy&_@Y&qZ#hpB?m}l? z<12Mr>;(EOEY`41rC^2$nzpPoLWn3WS&X=*YZB3djWbi2bjjm1&kKPSB^cMH>HO8C zG1Zk@;f+TJnG|F#bHd;hNN;9qlje(uF^><9N1hej)EqCw-(MbniwUVx*Nk3G@0OKQ6r z4BjiAdbRz)p8mB0R^7Dq_U7e3P5FO#bDW0;<>v^^m4O=mzrSt8|K8c%?(M%zdFuIp zc%wv#Wl^l?KZV^5>4wNKr;62oq1e+$Ni~_a9NqRim`f{4@n8n4NYqlIb$u>Q)I=pEr(_<*8>MQ!(e90*b3jEBu8txDJ({B`l-33iwP$iJ**v#VC2BzyGzAr@{FT%hfdX)1jmR8Q@yA z;fYToSO7ES>8~7xe-{}^)Zgo+;v?k%YDtmK$!xlpC0acV*Z&Pm8N2Zbr~X|6vvv%i z?)-Oa-?aa4@9y;eKTCNUs1IVwISF(a;!eLR$HALse$nV~>L)Wl=821OlcQr^QACvD zKh$&J26giki=wtj*x0zfo^enBQ8O88H>YaMccOabRoZ5O6RR8KX+o7IAJ9&zE#j$Z zzJH3RCI5en`~RDE{QsS;t<9eQFXO4_{|?sEffrE0pKZ^7@A&NEH4s_q-IvHIE9aTx zoIAuve!UGG1|^Z^eNpx0_4*mU_%B4>e_iW%@T8 zhIM(Qn&aZm4aT~sdpJmQ*1O9$v^h^3(GX%1C5-!C`23oeUf|YxB~q5L;q#=9Yim3xIH3Jpxvh;-q2TWf-}?aM3wV!=d7ja-Gu$-DKxhK_i*H%G$+nvXu76=Vxap$JeLl zXP>UFFHg^2vtwa(Y#IW(x<0==dVTWg==k{j-Pv^k=687C62$K(|5a4K^6@pgg-J^o zS4UT$uFrozIkTnT#pS;-LgToR09YsgZEl&4Js3}pm!GYf9vL&Zgv<)C;#>7^wl!}c(Ef1ryZ25ljF;i zYi0uLWz@%c8p?k{2-x@}ya77(|J&WM{Qq}*|NrGYZR9_7AAY#3$Kf5SmsnjJF;54| zxdZ>3agHG{nIHfeB$Ridgr}Y19L53CD90;X;w@)YcYb^*Hjw~L(+px9q2v&Z|BO=c z9wtF{pAz=^=;Ug9Z=ZdTe#;9~1>m3P2AASbKPp@4Hc+l^38A#ik23!*r)lE__!W|1 z0`f0Rv{o+8=0Z2m0c-;;T2;3uDTL=6++x}VlP3!Jt(_5p7xGuE7arZRyDaHJUpZ{#_Y@7MtclUb!znn+JXBOe3WNv^pz%mPj;BEpFFhwED zvYbbmY7m!JTiXZ`Ml{1h<7>K0$Qp;aENO_4ie_#HP*9^wu@+_62#dGM54;$1MQfzLBUa@D}bv3Kfx z=(7O-C)x&Z@`b=G@nb~HT-|~VBfU=>}_xF_56Ps&m#O9=TqPLWzdxr({sBokxDM|Uy@dO69cs9i)URhd1F{fO|YmAG`8~G}quUvx4L>}k3Kz>_O$n+QQ3NOnd{SCql@6l}>3Dp3a&&zHPX6!p z$=TKE`58F<6`Y-4gOmSzdUbsTl-B=`S9!MQM4knQjPMg6E?WLSUc2(22ue|m#`ldY zj%I)Ud5=lPV&JrIE*it^(-@)vg)p;+_}jNxoA8;xJNM33(^%e4_dSf=Pfv z5%q&v)7dZA0l|7>m@%RhdyHb1Vv|+VUUdSU5x5GQM@V`IG0It8Q zhEF$?lBL7SxW66d3sb~#U=GZcfT#lX^()UuGB3o2#>O5ST?@y0#2yhFb@$P*Qa;pR zXMuPqmZfS@Tls&H007nU|JL@-=7H(|x3k^*|1ITdF8@Cy0KiHHKhL5JhQGsm9-y5G zW1ieMJP~eL-N3}cxaC2jbO;X5AJg8!YStvmKD&6W#uxC_2m{aYM{o=8Jp)ep5>wU4(5Z$5VB3(+CA8-Nc2h|GyE(_lZxc2@jGHkL(H zeoxWDG-a~+a57O>X=lOVq+k{qPSK``Q3t~*Hb#3WDlI}W8oz;a7<=Y8aCF%>buM6* zq09r`ou4Hv>Y^7VBjf=ugf}z#lVpAXEofCUB6oC&iq^CWsMQ3SP#2jji9!{&W=~BA zTV?i|%}AO>Q$M?Zmxfg0CYev*_`YO%#OFw7J+l;M^9aL`$}x%ZbCFqbqGL7x;AwI; zv&fvOI5qCi<4)pRcA8f*h5Vy7e|HfHCUl!%8wN`${qU*d?dXkmJ8K;1LVJuvr(rKT zpDxQTzL1T>987bLq+B)}$f=GJ!Z;||-}QhuijhzM8tC(~(9Ae7%q7Q!%0qArvog_f zIIw9$9c879CKo<~-TnQM8lya2D*DzMNwrt zvSBc0GF!=ICr9+T{4CrditusCT_Vc#LkU7?iIuCNjPXeSFvIP@OUIw6R-AjOHWjr@ zcZO2lQ$h@`PJb|fcE)ZDxV3S5nmXG#*>;_uos%uMqyzL!(2#5kO-8c zTDAkK1DC-u{37lY9KHnJ|9;q7|M!m{HrN0CD_n%-t!Y52rhUr z)!(E#T)oKP=LlC{88cosd__8iE+W$`6_v-gpmsm*XOU!55c=6B7i_lFc_gsVk~lWnX<%+ zmcgqgOol7(ljuv4gsDM}U^RoNN$>?h%G{x%MLT(@30p}WYILj4DA6R%WSa$pJY5Pb zUp3XV^U#%}w6Bu!c_|q$k&rtjSdCEu^8Reh@T>vY!9SB6q&l5{DTfs~!4-+4Dpr~M0l8L<1DlRvb z7N`88#YGPL9mDZNXa0OVFUHnUK97{Z&o&e6vp~)!nK(v+{zG9kwwIdqG=v)1OC3Wg zVJ%{Y${Vi0vB~hZ*#VmJe{rD;x5@hi_$F{*UE64fwy9`aB$ekU^rP zfi=^EmnLwuqN}UPxy^{}YN#+z_j5IZtLr(%wLtduFn&MzFGqdKpzG`AQPmv~WT5s^ zFqS2=)g+W`#;#25&$JVQRdyKS8mxi#&72O$CR=MZcITcrzcfpjZAsS2MQR7C-HSYHHm^;npT%+r{dR}`0RdS)mE zLy2u1FKv-S+2`0~gN*TgFvs$v$^!ZEY(C7+z-|5c>fh;U&;Og}{gF>C|KGIqzk~fg z{=-t97W`jK{Nf5=N&X2{eRAiw=v<2uU0FztQe^)UY}>0!0v|WL1;t$s)2R^koV|a< z)1Lp!Kd%@cxN6`KRA>L&+ceLA_BZ$Td;Y(Srv=mGj9>Z#wU_>DyoKzf9|q4=l7U#f z^+Ga0PL)8AC0GY%NFMjx`526&IZP^SM4F1?xpxJ_!>Be{MNOR(1ynuC953HCCbXU0qr_vs;fTrFU5{B!5Wdnu%j>lsw({V7 zE<yL1PE`OFwG!f;2U`dWmOyoUd89&DNN|IYqifBwIerv*D)$OBvy5>fny zw>f*^e3S{BIar5TC7QGBp#?8| zuAaHqI{(V9vyrhqfs6Jl1@nh<$A;@42NM|1Vi@vGpxs5_I{9yJchAiKwcXqQm-E!G ze>u|z3E=Jy0Q7*LtQ{e1l=ummsFWE9?Z6rQs+ZaZyW7{Nju1lDY8$y!CG(@Iipmd&*PD1Of%HZe~v4-MKa)l+V3_Fg>QVSFG6)O&oKdlAqPjmZ&&$y^0cX{jjiyr= zMvDZ)E|AP&Jap`HKy3!RRV-~6(w&Ycp5YWG;R8lfKzQg_3NT9;Nr`aR7fSo*hk6>w ze=M)#)Nd*DDNpVB&#r0z+uq;n&;OV5h**STia~L(?qJ zPQq&)$ENsw_zVE9S094w2^4=z)wgKj832mX%*(1;w5tL;lwu{BW@{H=eXltxa`v$U zfjHFl@?6AZ?Y;HO#7bJN!C_CnnN9uFv)ZlnL~tR%o6UD3I>Ql4{On%cjOHbq5o@vc zH+a&g5&tKCl)!A`lb?-o+r$4R`M<6FPg{Nb$0a=?|2LUs2?lh2d78|JF@H`kLkiAe zP^;JizI}Tp%5nBge^9nQKYsrIONai2Wzjcnx-ENy?x{5|Xa(c|-8+bhPU!F#8Seivn z_tnm!#8Cjf+#j|mDEi@NEO4dX2zy)Jj;V7zW}vhFaXzj1KmG0}Vdwr|_WjST-GiS0 zFXPepznI?+w*Ue0r`QGZzI411I9Roo0!2)U##bHR-E6jkmAinbTvssm8dS>nk)Ct^ z08cCa50m)<;(s0g-#^$h{Xe#Lc6<4MDUZhgPm*~zY#%1`pMvGHems)gzb2DDD-0GU z^9C0oCooRgex#uJYL-HlKz)H&&A`KGmeDQ2V;%NH-rE6Z^m(%Qm0K5!cN>=GuH*6)xud z=O}`4NdI&wlqdtM2?VP#Ou*{O9Q*}t;XNMk1Y~;Rwfrmi3yh)+lL1G?kqgYSGIFBU ztc)<3f8@%q4>CBSi+keF8%I}VEvs)d{4mPMQJhZv!JtW&ALcJskg@vBsnXXBxji7! z2*}gQIR}=Lfc$xA5-Ym-CvB4FRN|#AyuWBa zP1t)?^@KY@-l`WJ<=}c%75PO;x=#!SC6fw2Yd!Z!HiMpXc2^<-r)+3e_}G&ynqJLD zqv#9pSQXWhHrxV=EIcx~*wc*KF#50$x zI0rs3KB!34I5d`NYZQ*+rf4c_4)x6KhiHW)w~%+E-6hsaz;aE`yg_8rz9VAts1{2n zj?KT0ta8XJ=aLq4DvEU8T)NyssuLSUMVoUrY6&n3u}ejVoeNZGM~|u-)oDh<@|seB zf}?h7QK1wuCSfW@Ez}}qFpW@iS_y8ivy5p*W4s?4M{z1bqCK|?RXDn-vs|K53A|n^ z-eNBN)HrYq$%4-uf!o6dYc1hxDu@;~p(;~WOU#B~(NrowR{i5547 zzE-9Ywupt4=U_PeyzQhoVgnHd>`1Oj8sx`4o#eA1b_F>O_MJw4(#Q(%U&b(6M}T%o z*D+vG$~q3z_JD%t=ToI|{O%40AG$NN;{T)Q3k*+MJAu^j|AT$Y|9g99yTAXllt<(L zztZ{b&I?46%TKWb6rJgG3)px8j^-!|K@!CvMNvXvhFy8@?F+2H%W*0Vk?bsOMld&H zpeOSvjQnFi#oR<;>4SVo&Qo^7YIyek^wsInr{klGE5of(-OqB~VHVG^R+@d;w5kJr zIbb1#>B;ArA8U}Ai^97k`mDYk)ZBY=Sc_aZebkLcvn2XFgThIr%00n>h-+E`F(LA* zKpcBiy`QEtLN~`5iQ;Z2cg%G)nhk?(d>nKCxkTi;${j@y8U=f3$ zd$1bazt=~KBS8OYlV%vh;8^gF!ojCfjzbOasC_$+l zpjl-$&7wa0dqEJNu1>DqU^ZTW>+@IVhv0lPf*Ba6Gk|$UR-Q|Ni~SgkPzDm8L~{rx zFrG3x@WX%3FyV5ESjKB~XcKS;LEzKsQ#6Ncw7qBqq69}F1ksmcDme&h^Nf9#6G}Z# z$Wa@P)7e5AO~wSSUsyZ|lFi^?V48!QkFwyYuP#sDpIlPbdi2Zbo73yllPf;#l7Cig zG{PxF@v~%MTB8J99Ur|pF|@wokl$F$;~3reG4RY$HZ-a>y?TFob^6PjlTWWs-k%=J z9(hz?@|x@bg3L}wAe$vgl#GFoxj;#Yh^=H1f_8NipiJhyAFQ!=8D#4Zz+`TUWQ-S~ zOkpm?CNs=t$q{~sVa6Csc@eg(X_*079Yayb&5#<68LcXo8i&#z#Jj7L%TEu7@?Z#* zBT5jj7X$J7^8DS!r-y@aLMS0JgvhT~l%z7~hioC8UxE-p%%mwndut$u1mOKb6Twsp zx=qj>AQPW}5tbmB9H~3{}gCi8+lj6{e+rY zszln#BqPO8;j5dUqYLm=3Dv~8io|r7!4%<$pv;jBp|M9zfsX?3jCd{bcV=91~E)XW%5N@A%d!vORwr3#drQaruqS#E8!@e zCMy@-c@ym|e##gY0GmX5&*@vWWEFV0@T@We=41R9Acz^V9wJP%+W+Hd1cUpaUH0z= z@qZ7j^Pj!VKL7Vp9&P{6=eL_pKL__yZ1_rVy58(32;HhoFU{Z;p*n<@B22D`pAn7K zu`HEp1^5L99`GiFq~ag!S?M}ek)W7ql?@85jiR&0{}FpM3+$ttaV&OAi;J!-cF8lx z=_B|+!8G8lDn}J9vws`h^iMZWEBP-)8Cf6zWL^B1 z?fo4y{>#BuFaIs&(d0iiza2*ZV(@+n;ZOABalAh<%;r%5&-^J|%YPM;mwjf=3g|j` zib8JTfsTvb@_a(pj4%*cI)}rdb-JfxFcc+q>4n216PPh*KFF0^B^Zkv9`Um=B$_!& z*(En#fTJX2C*|t)v;?tz$GxNC|IN7yo=?uY|wLgD_RzZ5=yQZ+mh%D4gx8q?S}NN zb=pbgWt8qD^KScO+?8?`RfwZx2E~3tC(BKMHm;7fn-{vEaOk?RW}kggyr+}`tZ^Hv z%eP%`$TeI>k(XeVxx4Fci;GZpvt?JYNRVD+h@b$)s=a~)X_>h~tDcIw@>1!lHUjcv zxqI2jkK-FZxP8UH=X$oO$ct>( z+GMa&vLykb7>`++!VFl=ax;)JgcF2G0Z#s6;D&Z}#u1E?$t;fBFS4pl$f%&7m~XrQ z*Rzay@=zSkAh|=?EkMZ{hzJOn`wq_01OAMlsZS!R5#KYX9U^K+ge5lwXf!GuGzzD& z=@48&LS#D(82pmPQ4o=sIjz!;gS#k>wOXt<*KAkuGYBxD1p*&K%w0QjV3FElxW=5^ z;1_?I#&C^N-aVReS7IMrA73!k-@UrvEQd`aOVmi|C7DfcU^W!-@g|U#SB8M0cmrii z9K)j+BicUXSYflPvVT51Zee4~;GCUb1AjE4Vzx5;Yrw~O5z%Ef6AT>*6!WG}3HOek zz&OQRIM0WVyPc^MOSO(!MzS?F{^Bwwq%QQfB{vSI#X8f1k?cM(V z&r%+l|3^Ba{o>;&=q?SARG&@4S;TvuZ2_&6cDvQa8hVYEpF8~}5sCab`V$(#Ncp*r zkEQNr=;ZSAiBL~W)rSFpjR2Z!b_NhhwEB$;nR^W z=}N81G7YGnd8T4z_DK=XRl9+u7&&wV)yq~on-q0CQNtU6)fH>Ht>7CQFTk&U6jOkO zz87cE5AT7Ww_bpEO7zN9+TxsjMszNt#uQ)!KcV}uY>x_Pbc>6TAG*Vmty>{e6eL`O z+c+keB(O{Pc@|Mog@73Pm@tg30a@cyac@$EGD+&R^H@R!st!*JZK#ga#$^-5uu&1b zZrn-*#;4}4-~ZEc|3^2l{Q*Gr{=c=ky=D4;Zg2MfpUZhP`~L--->$ZN3hU=E{)?`3 z?e@XoQk`Eljl|I$CJHw_kf(CPpF!EeU#9ZmFnz%#=?&S*QszIzUM(Fl$iT#@R z+Y-Bqfh@mRn?q5DV}b5*3|cvPsO=R$YU0XYlq@}< zDC!zgP_Zst$7hyJuqbW75#}<6mD4v!X{f}1y2AeDrUV8|S=bAC{|H*3pxP6JXtwxK z;q+4w@3(Jk^Dx|hT%B|J$}HDehL2C-CnFeq3r`?+R+D$hHuJXa0SVG86x=>#ANUsW zkWO$2Plf-Iy~-Ydzk?Sv6{xPGDMT};Q$;13`9k$HPG5p+%{FMLTc!XBB$6Epk`?{_ zLFLJ!M_q}Prc}ww6u(r-lgJr5ZAO#{T^k3{VnM*_m#& zvkYEOGKeQA4yhbI3j&C-`bsokR7+tNp-}#I1YeQzFGE6eZ({zhr-8~9!>LH~`PR`$Ol@JWaFzqYn__O`A2UweK0*QGp~ z_;#7c-04Je%gN=ZklK{qbZrPMVjY?Cm??@CCCeo(y-Y4z6tCS`;W)meAzqVUW(aYtj@>QFdQij(-N~0hUrMj;0Y| z`x5`_@R@E4GE0hPxlDWEV;m)8u(`%PVYq(}BfE&KfhqKv=g}--b&GQ}*{z{FadKt* zd3PR$f--28SS%wtR)q%LObLB`@h*=Z)-fYnxJ%zVPvafy$~z+GI5Nr^FH!tdncp~_ z$$du)hN!DduP@$J+=vML7}9BXXh=m(+DDh{Uwf`0!BYV4h}nvH9G82uizS+2s5noL za^=@@wkR-nc$^oV$ldY7Gs6#r4^{&(`iL2BA^=$C=ei+dlQh=9RtPg?DU#fdgydJ#tpAjxZgN@=xQtR&4e zi_%BX74w;AZ#<_R$){SkXNs zV3wimEgqMnrl7Za5&KaBP7?yhY-z*s5Nr+B!0N9t@`-q{IozYK-bQgmrGNf%Z*y}x za3=^WkYDAQjbX^8`IC){jq8oq8*ev$muXaa1imuW6j2Hk}0nk@qrLjE==|=|I^Sy_b1olmN04G&;zXINKtvHzwDt$?>~Kv^H%vM)Gj`IQZG_?&-O*-8D4Y5OyJMZPa~~cOg(t9- z{8wOa;Or2vs&0?jZ(5vGKeeUx`+Qp2|IKLq4Nn1T?EeS*yJq~ior8nz-u}OgN3)z2 z?BPnxG?0liIuW}K`uQo21*|@GdN`n8G0GE2cs$g;2N2J}qsijmQMwa4XG-*OuAG*I zCYOcZVVJo~(l2>27Cqlxj_1pu1)b5+?Mm(->fgRS^Xaa4kwx<;hGTd_^?Ig(Ss=;^ zvIBAXI<%@4pV-+v3<5MwFETWWV&+RpcTKC3UW~h@ss|c8FiK@{?+pt4c!DtTc-2_` zmW|gmn(}{v>BJt@pfK|xbRks(zD7z{rQ4^4@>wh{pA6=xP-wL9yy z0r26YBY1x`hGB+M4uSsF7{{Vo8zfm1HkP)vc3G=0oaIgv~{=;0a9AV~2*>$TY~!jsR+5mfw?lxX@SWLsH#KiNX0CW?2*p z2VLbz(9yaTUf5_t=SB*uZch}Yz_4PBihKQ-MIgC@U>c1lgch8o94QvXM3`Ot5rG+) z(#9Nj=nXrT6gNHbHxnsMW7b@^9VvJ_O;~P+-8r{}bnmZg&U4|m`yoomN8M+a?ZA}X zsfHZhKLgWt{=A*#$kIo?NI9Skx~HlWp0&AJXIYJ)DD21G!xC}6Fnmv70+bI_1j}Y{ z4V0=3jIA;YxZxB~f^Zq2CdeD?w!!ceUGeOr<%eLn;MCSvr_I|)BKx&HLa>DjAKS0|V6Pmhgst1EsO9*bn%RratdS<_RS zIDLP7;z_XPb|72RJ-x(B&&0Hh$Sby3owPka40Bw{MSTYHEy6@gnMu{mY?c&hH6sje zVBpU%q{=AOISB&61l=VJ0O!^>aD*}l@LfcLNtBFf89zZ}0y8kfFym1Q-#~)doS>@{FnkC6?S?6`zI=`O(advXquFk8Y<4@=BPcAP{ zUzM!z&X;(JM9r#tVTLTtJ0fuEl7{uR>qTQ6Gt(Y}*ZG=K@VoU}#fu5}-0 zN%WcO?XDgwf^o$>x&oy@EYWzR<4t6%p{eOGE_y1hVqwW97{C1cHPJ#MU2mxAux)uWFDCX*&Jr4;{;_ev~KI5WE733e(C`a!ytpi1KvC!&YL^Eo00dPJF@V}Y~^Aky1nrN zT)%mBc?e`I(tibKh=BLU*G$|&GXk!zudGW<`CVqyGl@k{UoEaWm-r;{DP2vhOVB(P z;uY};9L?e@NDRjwdEGR>Z8~MEJ*S%u46^`|jd{RsVo`#_jNlyM`E^vCH?6$_fTv!| zF6mbZfjeB2@`dsPx?feeTJbKe+ip<>U(k(q#d~-44xFU~w@?RMX|@2f@q$Xhlpf4` zPKIcjL-H8$DXK*NX_$X0Q7)X|@a)D3OuTOcinpJk)E`Ur)rDYDz@@0DW@ksws!UcF zDwB0OnB{OjdNq2NT&gT50~|$PfVbhfFsinqm7t^`!fvks}u4eu=^;gDi-vAKO6zeRZAK^R}uhffW;M;#T98 zRXtt>to8@*Iu;c;HzW+xQAC21t|^Q4Q`Xi_lc1m2z02J~tcL9l7-{qJDoLI@FQ-SN zM6vK#G1-PuO1=hKkGWaJVkoSP_+e(vb8}t;kVRxl4~nQ3h?xGIV3c6P_iCV>Syoyqu=BZTWKlvbJjAk^#uG!}u zEy%T52Hy!$u6j4foF^18nFnGmSceo*IwlGeuu<1TYS~vuM8;Yrw9-)=^PIIJ?i&VF zgHKV2HxwrdN?g3USvOCLIrVQLz%ap(C8?x}fg=HwV?`JMnX*!?&uGLYx@yHQ+IRu3 zAOXP)6Epo_x0 zS9HAbqLbV5278G&p3iNL*5VwtG#fH~p%0cy7cz=ftC2PYw|?Nki5Ny#vTes`*DOPn zRXRg3vr#RG#e_j4>RTQ^`~%&VKb8rEwYXFYxSViBzI{9W`d1_3c$rV5i)9<5`WLu` z_m)%Eik!7V2IBrIweZR#+f{pg@EO#btvkhPHe*9I=sTY@%M+q>01M|Y4Y39XT7}b= zHj)eVNYS0`zLle2i=`ufrYqO~*WyAh8v zNqGll&3;Wf*sl){iCH>w4r3>e>%@wx4&4#?mts|~iCeF1DAhAFT~*5`S357)btz?p z1WZ2xoJlc#RfEXhxPUz%+EJVHUzXBhJ&r~&xDR5uF7hUAe1czKP;nky@{ZUmQlhA1M!Sl6YT54Ajt~7TcTc>Z zThCDfiX>Jb0HZ+48r$FfMV+V%7YWgpn~3PP2-K04Rh5;Ql?Rzez-G0ZtKXW;S``lJ z;)ZUE{qfyi2J0j2>NZ$h_tLS`0{qW@W#&!-Av8{bb|C`^m-n7Gb4_#FkbzxOi+^P@ zblUUv>l0FnhUjNiizq2gRtc}vO|1BXjZIRUrxW@=$Q-&-~Y`RPMoBu5S@#;)^dh0RG&|8zqCdH&t9BcO)sb*r;a9a3eG&8SSV!CXHAvM#zIx98f|N8X_U;Za$O-~b?Gbyn8Q`Pup)iN%tl&9 z;xPu9$|_ zMc?}5+B{u6o$!BBymNDawetV5ssBCR-`ntiYk744UonpxCBX7Lpfb!KOB0a$opFH= zr3jF?-)I9GKK1lJKq=W9u^%G5`@xSw|8|-7I{?_fj! z*Yfc2TJKcK4kjo@8I3Iu3G*9JJ4=l3l8oKgqZrRKgh7}CZpwrK^s@wGFi&X?zg-lB zEb5u0#x=xLU1oz~l?{X!qvSusF%X`JN-^E2&$Ja^z$_%+b?b0ya}jfMc0m-M;(pPr zpP>MIVDJ`22x2ra?c9T#G((FpnKO6IB)OfZz*`Ji0CNhrRu`wxM{38;wvs4l)0}6) ztF?LwF@=sywFGU#dP2d8 zM#ecL)HgIhpVWebfSvSm9DT9eydL-hZjKHD8ec?Z!X0mrft%>Sp__Tdg`(ureM{^#CTV3kS^|Rw)~gH zS~5!`M6;OC9kFCHWWkaq=t9=o;DS?z$dO7dD=9q%+vmw_hT@#%!b~H0PtVyTLWIrs zlPn`L3QMz>hw-GxRwzH=PN)If6GT02S^U!1R0BjELY@$UL=7=)%EowMzATs?O{_uj z=~tfNS|Xg* zF&YE#h5DBLA2^GYc6p?C(zJHYSW86AvdU3BwU`L|(C!)SuWH%X>}kvY2RHwOVdKny z?5XDe_eTduM+X1De=yqH@c-+0DwP`nO7Y+hhMFov;lJtPvHWS6u0rY-N;jg`18d6z zTlVfN_Me@PMODxXsP2;NHcFsvjjdeE`~%$sYUQ6IA9!IL=297goq6AteO^{g^)M|n z3wJj)&|3l?MMj@tzI4=WGu{aN%!n`)+;lW=ytU2Dv66C3{2+yOuJk6rq zmvK5V@$PUER@=0k((9LxsJh~okJHIYD`x94EScuJJx(XxEShG5sFP*wTf#ZZ+RG9- zJqc%Uf`nh+380nEqY%aU1^M#Ch(1n)cO?z-;n82k3!dK*&c z#NdCR`?qK;DwOFv*jHu)^Ow(`YlLo!d@gT){rVSP`xf1w6uJ-z(B;|H)j!|7efAB3 zVsd~`;1rO(dHe1Jct@k-zj;p-mzzHDc5lLX7f(I*tM9WvzR*VLw;PD3;J^OsFVEk+ zU|k`9ngH+lC*;rbFrI*CKLfJ5@nA4u5fR_N2mKg$TRK)eaD5H_{oe@=k}PL{oxi;J zaQ54~Ur(*V|M`UDi?2>s7 z`WTGBKKMiV#8Bo(q4pMl{!|WutTfO3oE9T|^Va&DhVewc=<&b8F?bKWEdinjPEUb% z`R4U69=HZyzBoR;9d(2JLLU6Z4P zl_32N1_N*vAw*S%<0J#aJ+iTs9st1PI~eZq7voT@h?sT#{LPD{sI?SS+tF)YZ9}ms z#m*2;=9$k5XXxV`;hb0W)A?+z3$=0wdwWL7zy1=6^WfFl z+l#YjKd{

crQqZL$}97)U)R9tsayNkH?N+b z?y|Vhl+UA;gPTD%kIxw(+keoD*gw3U2fncNji;dBr)K_JpH=LC1^qtd{q~RdhR4cB zfdx|F<2*$9gKb;W;-dM^y_=xThF!~sJ%4#|{*PbZ{C4&H!{x>6UmkkTT6eJKwk2GD z$*zOh1fRI}Ub9_B7nNA^px@845aH7y==X6N1}FpG)@K77U%me<^i1T1pT9o)`Q>w}e0cu)-NpIYyNfrkODeNW z4QF#AS?8fI;x5a!&Yr!xc>UqGtLJZDpS^ls(ulNyvnsAjHYi6WRi#UTpnC$w^&aJj zXUdLygiQ?wBYplni$K3moe}!|IcC((f%~uCiT*)h^2G-x5S;w=Z+{)_l7a7v4|M%} z^>(Q&LCql*@+n4nl|&h+R#UhLs7^vvB3jI&J=X6NU7+=`GpGseWrFuT|L1Q=CrZ#ToxpOH4k0W)($P`3jFR>eEHQ!GrNU zig>Vg1&E>{&HS3)5>Z=X`CapsWiUQNIrD&e`%jQ2NrbW;kRwc?mahO@z%XL7eD9Q- zSYz*a#X!h!NzAMxbuhnv?Pqslho+McAtnp^9`t{s5&tP^{Q4F21Nt*4gh9}sI$APC zr$e2?Q>Tfsc5mO5;oyypgEtR{gQPPYB=tB@yr-*vsnt!H^IKc(b@#Nj|Kv)?=FVUB z{$EF)ao@?4YYPH+iXta0a$(EJ!!uLikk3U9b zUT9*o^M4!opBXh=o@etciW7{ZN*Ml*aWqQ;bQ*-15RwOm$>|M;KSnI%w#zB5W#g~z zul~Q6RuA;ft&7&l=Vw3L?Xzmj_E7EgCu(-(@u#&Xm;17wb?(;Q@@+0!l-qupHWi1& zX=9%{R~v;l;%eieH zUHOGgpz@iM&7uIGlrG#T#S&QEhtg!%yK=L?^{|^rj4lVhA zbi9%O*YSLp@;|qMsg(bnj&Li=|C$NU_b&fy!2aO!KX=UQM*ioGtyTW-WB_)1-$edb z%^$1fe`@UIQ~)>yUEXq~m{?*Sr_1$f%W9)8)q>t&6EVIK2!>*TX%eXEzQ;h+i{}wG zisunFi`U4(9InpfV6{Do$ED?9XKO3U!Frp^$-#~`mXd=V?JOw=m$bB`9IUstRL~ov z4Ys;@3(dt}tC2jyyb-ecmuciXjlE-1dxxazqTiL0s*I?^a4ug;0hOUqz9%Rx6+SCu z)mk}sRk4%LU{QvVA3*GEEC12*t)##D_@ATW15^In8*b#kwLIUW{Kvuy zRY`xYz(cFaeyS7hnk2slVp?!>L4^Rt?urea{$H}5UkFm+Jj#K$=Y5Cro9@QkKu)2N z7J`r(0hSD2a_SnXrxCD=s{OBD1sd*?ImoknvMA}a0|??UVq+&u`7Vqi@dbnTaTr}2 z`CN-;Pl4w-K(Cjun#BfH;tEvDSJVOA6&BQxfoOxK1f-0|7Ix&yQyL{4fmpK&5VS>i za|&S9vJ0Ent|S+wH9q!br53HFr2>E2Ei4oB({5!s*}~n_@2RuW3n4x?%F?;57qH;JnyZ<;z|&e=4q&YJ57_<9&~_{ukI-S zH39qQS)|=**iMQCe(d`U!>O{KS*I1c;?;}B7@ky4T>{;Rhg4fyidDB7ScX&A8sVsJ z&s(dle3$I7wvBkwMKN1-jBn>`E5+98T&s5MtcPhWDEYVIS?l>f6bES%#`*3C7z7!@ z7~yu|-)r;#9ULB;@!v;B!wvtpj)xMF=X{DmAILdgCHJ3LG6UI~Bjuk+;#QXVk5RcU zGX3$A7-fslM~oA#c5`+Oz_6ZKI+>rLtW?tDp-(wEucM1gjkqx1aWO|%QRt(RgndN= z*Dn2}-t)GVdd~?8od(7ZyosZGKo0r{fs0EJVu0r3Gyp@Fa~8yk|gO?|_?m4kk%XvlDu35O2n1u$u`A>5o1LQ<)dH1pjJ6;vZUN z(1!k#scuXA|E-?>?;jkF4EjGjJly2}Sj%J5|4TB*ozQ-|S{^Ii=fHPN^S5$8z08t4 z@e^k6wH<{xCvc>m$aqixDWYqCw(^e?&=`~HO0TMm;e=f+%9jN-PdP}mJw7(U$BtnX z-9Z1AN4X%3Eybo7MsYgu5`<)nNMcAN@b(3aO^k*NmF`k^8&0>ux+QI?HTxVgumyN$rjtPK^2MV)$u6k zHQ*3moay+rvf&ua<~aWqVx^kC2G!>64%ospL9oZik5+dsdS?QE-Uoj#dejp3m*NJd zasaHP@? zFg@%=--OKaL9uKW^NjSL#DhkBK;;OQkn+e8q@L33I1(|E!L}}o5$?mQDBtVZvSA@p z+0&{DR(eZ{a7DO~Mxs>-EagI`T6vn_Tmj6Ma4Vr##9XbR29mA{M3}(wM zjQ18i*Whl7Vhyc4F#LN~tY&GVk2Qlar3dF)F2SVE6E3s9%aGw3v^ijF$SU_(HOB_r zJXNs8^>Snk0vhC+9h5fr+;Y@PW7i;zT{B+Je>=gOz#QGd`_)0?4Ydbr!()HfPd)!n zb2wbiqllTL?|$&9$thz1y72$rKRht~zemS=2OIu>9S`H{DS@5Av?I3PSTciR#ndtV zOg-os%9JHkfKLFG5m*&f2WZ09LS9UrtVrMKZ*@X%b0uaJ`&riw{XNnjg%`Q|xh-mU2WA?9ns~%#}dSjJu$8 z6)FmT;Se~-sg1DYkPZqQnzc{Gf)W7o0k{D6(!#lbma$<~4oUm*&qQfL^-@Ihi+Ngnwx8dLLe3GT1WCnPhCk*0HCg4c$&}XH7CH^l0SCTB64O(5&1(a!jMnC zv%j>D6!#~<+m`L0$Yy%r24Zw{P-H?9T*=obU-|auJL@gV=Na2X25un+|BVGzbZ^x! zAWvwShql@8@>$~iZ>jyOxBoagvf_X4ZO;GoJZm}sS5W#r0U&}mD8lR{XMdNTZifRwXE3Bw4G$n59C}eUR&7}rNw}4Zl5(yLLu#GXu45psdf0Y8L5)jtC zR5X&65GFCq?p58-qD0w9d#*TG`L*aRJ65^ItKbTh!{3t!l{i&;E=9-o1UYa|Ixw&J zTA)Cg3##SPn_ItF+<^YalMG?J`+;Bewh;XIQz!oohnD@v!QsaLe=ScnEn`zZxPksH zikS;_8!HIB@Fj&4f2%ZbfwC+N5Tk(NhsrC9G=EDa26RYQT(VHRk|KrZXP~(1^H0nh zR%9sLE{9~EhtZ%Y%}=|6MXs@Z832#NPW~yX`7nx5<^k`5O^64)TSTar7|9jenvBEk z^;DfF4~t;LvO=FyF`O+q-l7IKl^}!=p+L3DP&CI1Ry-D|R;7x&KY^d;IT(i-&VfHg z{w=9Tt#B4TkxJ7noWbngGWZ~$36?4KHOx;q31Tq!6ypz7MpnQijSWOc(lq5_EIQwz zUg~m{DWDj5I#t%9q1B97>|fb5IXc|U{|Bh;#q<|0dgViQt5nMs-f|C0L7A^G(Wl2E zNexsx7nj&7+96Vobc%i~QqJZnds>|T`fYCu7NF+*Kib>3?Em-oH}?N)c@(t=<~EWM z<5UH$O|rs(j|ERG$aW*{L0>oBTTu##`5{OT50%t;o*;62y%O%kP(V`iva)Y@;ftfw zv!c2fUzDg3 z48Blfz!&6r*5!|49H+JjWV9u^G+I#3oXS&Nt8Lvg>l|Z=ti{%tDq%4Yl?6-$EwXaa zrx52}3C#AvDXe3gaD1$&$?nxNd}54h6@EU8$+Ve2wJ>7?`A+kC4osqABn~cZ6@1G#^WMzu0gr%7s}qYvvg=f;#^zNGTBQq0Ij`Kkh-e9Xt4M4#1k}IN4Lb8!)UCi zTcH+gL09PcN2i^u$iy0S0$~nh)xBQ3%f)D)=o?%vs?tqfy1na3^>PT6IJBsBBScd1 z9tBqgzq67G#<}vXt?KMri`7WQVzY!?Bjw{!-CAV0bmnBEfk%j^nB&6ng8ShZoRZ=j zp?!A>&<3085XiM5ah{c4Hg78sF|U_AxuPB_J?(y*!{Zg8^(tZ52=jmTr-l6A`rcPO z)$;%F@X)&d-5(uq^#5ylxPq7+CLP`Wa=G7e>sy?yt!{vu+J6CHx{HXBvG>g`a2?=x ztg>jT4`^^7Yq(&v74FKNKxQyq#RsHR9nA|`-l}CTxzOegvT zeHOC-k?z&u2b2*Neb$UpTt)AItwqf^`=;zhxub<8WV9XBKxL*Oi{9&jt=q~Q1oxVg zuCNQ+4|Z9wDx)}T-4-it(W~;Ot++3D?liu)&m)NOYwMaX^kbJro>j?UYcTZI|1UE63ImBu9wys?gzHAUKOM7daZ^%f;la|_!T5@?(bltibk(MK!S zd9ZAWEUk2z@(#;Z@0?Pu=cUP1Yc-UAG9!HZ$*hS$wd*8}DV&TeH(R zrQ6tzo-Ok7-F?dLZrDOJNjKFl4rD>|BrKZXTT>}(ZO_uPcZ+hJm%O6tyD5P3o)ad; z1K!0fjnE9m%((F?MSeKe{15f1DndUt2_F7%lV+6WZ5SBM*-YNUytL%G}@-xSv>ZF3McySHkkwR+!hF$ORP z5rR0U^T~Vy!WbBaM@j&f!C+wCNbryy1G7>Ix&|c|4J~Py*&S`R)=^Q1LpreZy?IalrX5Qx! zE_%AAi9zU9_6;JOYCzV~yKIhLpIw2g^Rt)FO{&}YDkV4AvgR{IK-AgSmZx5Ba;}YK zBiVD~GcPyT*6K5lv94~^NQR+y5*^{ z&*>GNAI))&vh(7T;R~>pq&dD~j+nIlzHOM0q>SXM@Yo2Zx2icU?T9BPx;dq0IXv-_ zd`r7%PZ%dT*p_WjRay@W+fpe?t`%mElPZkzDz;9+MNj*{!6_$TpUb=+o@l!2OMY?K ztXmww9A{QftLb2Q;Gcy>P!`u+;WaDwVB!R!3L z_D5#^*Tdn_{^tI79Z#bZO_}$RdRU4GW#_IfP``*$lT)-UlZ_#}}*7CF_+hXFoKm0|@ zm1JBN>f5}%_$2>wGXTY<43)}cHSaDACdj`2aUZE}s6-p8*I1eQ>MjfvSzZcBWzwS@ z6zc+bLK5#4=fh1xjem`z0u9!{6bMdBYt?9(TCr2Ii?$JA3akk?{Q_M2rf>z{mNyq# zuH`SlhcguU5S!j=0m8oCB6*XARC}c+7!d8!8<4>>rBGitBT8buJ^H4!p$p$^ffp1P z(nfhc92UjCs7IybS+YP>1}3Zsq3Y1jQHE(MYo4B+r)3~*>+XYUucshG6ZGjVN+al_ zvnT@IAAkJwKRmsZXV}B%0$_6~(GLm&)JC)xc&2-+0rFleIL**lFG=4xuZH9oW$BMa z{(al9NAZlbYF+XRXI7uv5>!;s?mJi=x519Q@l(4Bxq;b ztl2Lh&%#-85#7+BL`6OCl!s_gQD=A-n0L6JwNxGz^^6`qtrLv_x}C#KkQm+Tw~WlZ7o>ri;9@mKEwQI-o~DXB`l7FIuLg-`z4Zi;y)Z zSu#%>u^yG3(`H1B%95T-!eSRh7lo6lwGG?D!rJk`_CWJks$SE=$XX3e3e$9OJHJ6$ zjBIES&1PM_kPGzkV#I7a@xA0ZINU^_+G48|zVd&Tb6*@23QNRyz%JiCBR ziPS=Rr%Ru7{1o?Uz!7(09vGC|fvte>Gzt1x23jb<7#ThSFeXd%)S)`ER zTR&G;?R}n!z^t_4x@1gGj4Kj@-SFo)Pi7W)mR)~?dPOG-<9*X1%av9#bb5B&ig>&W zHPey3=WJBey%VM+&Y|9#gW`i7(5uY{9Pr>4-2*;m-dShkuDqY>R0rymhgz#Z+Y8Q5 z8WTRJ7LwUL4cZ$#IU!Q}ZEOftPCVUe)Vi(e8YgqMa#!qX>{_Eu-LFbO>I5Uoj;@&d z(#j8lm)k`Pqwq4ost;RE<-#1zDk!@~?o=U()T1QHq%2Jg5O0yltI-G*O-&@r36-M% zTUP&@XAq6U+Ya)-4G)HUcK)}cjsABnPwOL#Pki_4U*2%#AtuW7-2p!o9jdAr7PX`* zRlKNBp^EiwsZO;%PpyL0BzN@-Y0=%Xm(k!L8sdo2aY*=$j zYWJ^M!CGm?x@fop8jY6>L>=hNoT+?@fO9#NPM$2?WY*fQG>VNpyJzXInFE1DNAX^{ zaA9`WcjyKqf1X(u)Uy&AQef;XV3ENr@Lh{Sn=5<721aHYGW;a=VXnU|Z^Avj0@yi5 znKqfF(=}TOysB2*5Wa%92;g~!z#RfX66Y)mKrl}oP*UzbKq!6waZZTJY>xBa;_#!k z3VOz`W<36RGP|KUy~Xxb*N<=q2p1bx{TAHg8QFhJ!HKT?}EAPT|l4UQwFGGd1rQnDui32a!kc z4#-d+VjNCbN}C1DLb7#A?35jV*{=q)Wm|D)*F9}g+o_Y={Rv!>S)v&3qX5j)Dui;; zjmd2`92ThZ26?96{)(QIoXlef z3vFPRIkDRdz^R0#k?h#gmV z5po~q(LKP_W&Iw!m*20w0#H+R>zo%0e})}R<@~25i=|#o{KP;Won99L>AImQ*6zY6 z0x-e}2tu4j@SbI{6=w*`+KcCDnq)Z&z&4tIAiM8p^SI}Vk=kNLNW;pkP~#9W?txl? zXMwvxfaNy~Sn`HJ>7+E!oO2YsphQF=;?|+)Br`hMa~9DPCj9T>lF-ir&zSRK6V#hN zxO+3$fM$$V16Iq`S+DH1Q^nYX{ZdJCBlgSLfBPe({!&jeJzV3V-}Pq6Jg3(Dk{ML5 zQQe$r<7w;;J_WrReATm9wg8h%5xA4gNAF%<6=5h8X{(Yo?`mv$gq$qB9 zi7ly2RHZgmSZQ)2;;6UcWr(B27J&jB;IzCTs*^nHFfl7vxGaeYrN#D`m^q19D@;_X z3hK~dR_+KVX0z=PV*&Op6Vh#-wLbOte?sWp{Q#rrtT;KE2LZ0}|J*wqTKV5coBTiP zdAK`!!4FX3nsDea2ng?(02oC)elA`m#DY|w=*!3hTR_BDsN@t%>kHaMfSP9+iivQ^ zuGR_R^I=TJ0tkrNj+xW0`UXz+$#nTzw*&AaP{Ee_|0T`8+iCpoz2W|mx&Qa~N1Oe> zmWOT|HmmE|`mC>|cD<-d_SzIhvjLv6m3smzyH}G_(7*ZSC2jOGvWogm~CDQ~c%YF&%Xc$k5`#N4LO@cPZR_)ljHlqtkCl_&mKH26Ls-Y_>vBQfy zbLsgoLeEX;6~zF*a#q6opG6VDAx1fXOlMCJMtic%4hCjLLvN`KL%#>mKCyx5U_Fm8 zGGR+H30fSGNn}5HuG4C8Y2HG9Np9wEC;|hk&WU0vn#C>kY!}0fd2l{zM|6`c5L5W@ zF^V8r&4#Fs!p@?%8pt(zHddS7))@E8LJMcC(D0MBJn?xFkHg8F>BzLcnXg0JCKxz< zm%V`mmu^Md5a1V-E7-od2RMzwJQp-2d?BiDhoAbKYw8nzs=wEB7zMCqPEJ`fFR95@ z-&4V`AUGo{J@jvBe-XqvH46a=vj(9EF6)QQ>q}BcnMb{OW^lsC7h(`9?IvUP9$}%4 zBnQWix(eO7(8DnhJ8CgsVUO7@`?Sx(0=>taj4mzOGA&vAI_hWQJv(emnH7`JX@g(}w@Ilwb|@Ky~`x(Sa5JXK%R4 z|F)LL%Kt8{mJ6cMg57oKN!6>gdRZVtaey)>%MUf}t8P}WeCutlr&>Ji_kVj8aP9uz zADa5#axm07w0zAKPRVZQsMLeA$z!?yP|dSQXL2Cl^A zhPJ}lP3P?^+L#X87KTdH#g2%|Z_xyOdIfWT3cUaO9`^sW*ZEl;)mSI1j_S=%qAY6Ib+ouh~dS*+&E z6k&-)A*yUpJXM9yT7(e2&nuG8oo7k>-^q;!Jo5jZet}us6|?w=qP`I?f%SF@Jn_9E zLBy5}EvW$U45d+WKSOcu0q-h@IU3KSD@1-hgJ_n-S4x!g64;86l_kK*0`=)DcqL03 z@Gix?fa`U_EWoNbKYPcf{%3eJ+}QuF<>C5YGO-vymbM@n8|vSc=zas;?v~Kz(%!nfCfd?2hMMJZ zv^r5pKF13=Q23w9NA=E(lu&=SP2Zj_a z0)gC`!D>Id63O4Hpo+QMx&>dqQkrW=qm|6KZn>e1SGU|yK5X5VT5K$-1Yk(Ar|1DO zb!M!^<dZ!Sxk60 zjDWs;>eFnzqXFf&iXY+wxA`u9^f=c~E&I5|w}%V!@WOO^0Nzaz&Ea~V%moX;4Ht#p z`!30DqXf1x^ESuUR!kMCeg?`VfkepEg-Hyvdo`BG;<~t*l`%!i`*rIF z%^_)dK&r>3iuNrAr&L>Ygf0jknZ#62|I;Mc{Q&2A@+z6fIrkAh^L_H`U2==+4}&`T zf8@yjemvaJ|8+c?{U@2_S;;J~av%`KyQ*!c9hIDd_zP|}Hr26_-D)m9sFqDt+};(< zek;GIhV-9X(k*lQQ%nDk_J-E|&uDnGq5tc6H2QxoW_eX&FPF=srR>TGx+de{3{KFS zoByFyJWFQ(jguH`SEx|r-lH|IWPZoid1^H#bt^~NER317*BTV1@^XND{raR2qyovb zbY|BcbiDMtk~Wv7I}|t^WGGE=m?zo2@-l}LrGd+N6kR4!=(BJ)MX^+VV5Rf?-U24i z@0C;+?9io!aUO)RRh+(cSCE%Zjqpoe!Z=t4w>;5vk9Er%I+17D0DJ*)7zZfM!GZ0Z z+ZIrmO&aKO>!2j9ECZsthzB!-F_~|ePx*uvA72&USZJd5&8jQKZn#)r)lD}-seI&?YCd@=UKE9!fJ&ne zKaUq(&6VbD(+pMLuuMgCudGcRj?MFLOUVCMDZFc|2B@?DJU+Di|BsF~ z^8Z>MCgY3QUCGcx6Px)udHnLf97xA%fM$#!jllN1eT~}Yr0840|6~uZ;SB94znPlW z^oI~iPQO?thD)p2!oW;)D=s*tg6ZUx*+)J@C_PWod#ed6RGvuN*38yqJdYy7-o&!t zq`nCjwk>-}*7GUQG7X6|YdS7LiD9KXBTIn|EpwYOZfAMLxXFN^No^x|rZaM3!*(ti z(!3^-1Iyab483#@9K{X#TqLCucN=7z8vOna+x0j1KyZ~-qA4d3K8*Z1A#uTrt6#EY zp1Lm#tYYSxT3RXU-o>(pgWcO}V6oeP!E1Q_2W|X)&8O!4KRnno{r~oc`09A4**)Dx2m@NNbvpt)l71_qtE?@Y1UJ+TS>-4&d3B=c}Bfk1w1{ljXoC8v2=62o>7b6=gT_9U+$^)N-$FC zRZA*|A~Q4d?A5kvd86JlcJ<={?{yL*)6Z6S3=*>~`l~WyD=gUL;uiL6JOK3jr`S&R zrNm?{df^?Hn&$2P1pY}D6o-#T&dw7+hD5W1+@gC-eFZY~aUNzx0{_oS?paow;i2Gz zRsSkNxl!pVQrRfGJWQ2qrDCJ-(F_!n$afqY^0z<~Z=8+d#0Y%t zXwSmsBxiA)20bupjzKU>GU}xrgZHCr6_HA3*QQw|@5qHh`a-FDV#VI(H*9_3H#g9n z3K~s_12+Vnk1^u_7w23ngNy(F*)WY2T!Gd7)2XU=p$ghtkntLAZwE z6a9JO7=*(e(i~3XO}Np07f(a^kMSAYxb0;a-?kA4YyCftj!gf*;cyfGWi5{;|Jk#= zs_nOh-``#r-(x{~h;i07P_j%$pr2j<5 zI*USx(Gq&Vy8FMqqmdo|Wkdhh@@Vv*2(f@q^Qx3zSuu~6A zhvC-1Up}ZVZk67prT{t`;Nt%vH1A>RrTs9yX0irIV(?yp@Ot36v!7eNl1i~7Jydv-L|BK7>F3$do%kxKl?o;@?KJ$6Q>lf;H$A5}2<2eW97#`v* z;Fs|0KMVM%9CVg|RC^wXHL@N(UL%03>(v|%q>Vr4;n0HqUtT<0BmckA|E=Y*>Hp=$ zvo2`=<;Al{P4_AM4?*(@e!mILzr1+nAfE)BT6#|kt&RV$gtNR(4T%>e{(L09@@YZ; zf5RwS$_l)W{vTQNe>mFYe_79C(|?~zfH_lDdY=3$t6Lqb zHb+g!^@E%;6o{UAPt&B5agS0qq^fI*2Re~T##B|htHEehAK?6ILH}boqnUqO9|3jr ze}B)q|3BW)|Mff${STa>F33M~X?(==pAFz4$iHx9^}I%oC$fq~@wsPei^RWM&c>Sg z)H=dBbH7#5Xhp1Fz2glR{+&Dx>Awu5c7^;5<(& zs0LNhr7FWK^cYw@%UDW)>5K`%oEmeOO;FAPTb@M`P2oa#WIIo}Y|N};dgYkN)U#w6 z9}A51)nE;~KY`~&JPUOQlZ*fe+2j}?B3{1mag0JAd2YCq%yv}MQgJ#1Gc;;yWhA(q zY>ZipliZrQBr{OOJe+t=9uXHJO@cDSRfm!2Xjo3WzDgmCZ#<)IJ%*_x?&J5*<}^M3 z<1jy8HU?D9`F}h*FylXs4u_lkFKc<^%|nMlpj?aP@t*q5!E}D~tGzI{bBZqD;d`8; znMY3>g}l2TkF?XgEY4vRH7!0*Cm9S7E3QSAqA8vO3dFfi1zMkfL=_t@wd$#WN_0ekEQrfnEO8Z>bTDm2>mSzCJcl7nAG zn#0H6nhdh&N*w*Y3w5EW*?$x(d{Y0~tKtgy*ks2dNgtg(7dSPs#tOzxZ<6hwx}XK6 zV`3v|7Yc&+r~^_K&!FoFZkoukveaSV(vF6<3BI;u@HLedy+yNRfmqlNnkO_!7y(Mt z=pH07Aha3y1`ko!zY^zM33XfpGmnmKRoMLryyHv?Ky-6pzzVan?3fP#TA-K`HcoIF zK*~dM6Mz>eM!0Zkb&OnHQwf<;JkFN;eAah}|5_gH{^xZPARv|8D{6t%CG%*tKl&iL*7_9r_16&S zQyq$aA5?(RG7dniFaRs|FS7+#$cpnkj0QMQ(z7U1WkecQ(v)z#XAsSj_zID;>g(4h z9@Pze3UMCB6Yqp8O=#at7h*FZw>w~KK{Z9i5S)_#*21M+VM+P7Zbj;Ss#jRF4BW=x zV<7^TIQJUTe=>=>aL`%&ui@eTk){9N-yd!0|2iIx{$C~m5Yr6!Jg<5T)MsRR94CP_ zj*brlK`9IZZgfjP(Z~SPcan*7YdIbDuS+A}wm)>XF!IGhIbrv(g+8$1P`Wu@jMmK) zMncJee1)gfU-?)wAnz%qu( z?k=!qB*4ci^q1ODo0$hxLRBl1Zv|)(`iQEcl-sOBFx&(Cdtm=S%bv;#m#&5~Gk@dj zCCYG!a}@hXxj$pkS7$J#VUU@zkw-W5voQ037bJJ_9n6BW%L|VxME{4b4lUO77Co~0 zvT=DD@b#J&5b#Sg%k{$_;8^~HUfCZ|n5w6}h21?bG5hCbx z9ebXurCW4Q@Le?I^(?P|ZTsTQ5w_ZfyxyWoozTh~J3=^WI!Lm@M2W7m+VW0Qr8=5Y z3xtcdG#Rcquh z)MKSy98k3LM{O&EoFi0}Xg zf!xL0RGzTPX9xyw;^_WulH@PK2(b%>UTN`pe1=~qF)7|F+KzItT~e4V2Ji)haoz*N zUS&~s?N^jFSh?k$<_J}mjG(q&iYq;Z=lAeDO(QfzaSkKK0D55CPhuZx1qXIH&a)jH zfZ^V8&*8Y<#4D2ltP=f)g;`^DmxlSFaCvz2*Iv&d8*c{)rO!XkVN}}=IRk%-!;duu zdsPWn459kHU7Z@;OyL57B#!REJPtq35sNE|tE_LD!Q{etnq>J~N=F-#xhaYW8(nD8ao4Ji2^6#W7^znRxEC zyV+NTjWDKOg!(2Jvx9&s>bLXcids0ji+G-6&sHeFc*RPk*Kgd+g)B;G>LPTU8ei(l z*DhETx8aLD2A9^)E_F`#i6eB-b^TrE^|Y187p+uV0_=QuJ=dz55w;9n9b@x`^{P+3O@Jne(DKwNsV?ss?k0 z?z8&j`}*~X{niQztwe%uGq6ELplE)f<>(x|zkcGXVh@K?Ez%78^Q4w7aSTgap96aV@!6_Mu4Lp#GV&-f$jS;=%qE`(dkRg` zsYeJ}ie~;=#9VpUm=~L;c$(h-W?@3v#|UElng;@D+DD!J&*<2?|J@r7H}}8mc=Y>U zKFfekb0?8NtcCMvFMu5*>DnI17fqYNLAtjFvPPpT0SZW(Mi*HaL~w0n0Fry*3128$5k;a3o#-Z)|LACmY+@*tTuk#>Uv##%AMWW82u+wr$SbdEQ^u ztvUZqRd-cab)WP7Fj7&+qVn=N)zE_^IcCP0A)qFE_UoF|&5qr$1iJfJs|lak824Wz ztju)HuaTnaQ%a%M!IO79*^A1mk zWsS>SzK19Bh|KW-sLM})ZQk_Ce)?5YY2hJ=_+$@>kqWSs2P`=#@&Gv93)P;@%>;2x z62$}^cldPK2XiLY@`7)Rsm+0;b$z(uf$IoxJ$MwewC;~#IijDa<~ii-?RegMWo`}r zNIBR0lG{2Cg)8`dq~6_dq2GEmcDa8ww%y6)3H+UZGfti!_ge_2n;I_%GuI|Yf~mY= zSFSN;MWL=Ad{<+%_HBqVx#VeC8NB?u9w>oTp~dok9~rm491 z-EbWO{|ZU;^P5Wg5nTjDl!QX2012+0_WwJ!zV_0yPUhVPu4nr+#TBr|)V2$*eGXQA zHYedqHlfEnRebz_ma1w}f#e9vo)1b@*-+n6I(FH<|5ly?lmfwb2@!+8KzMF~B5;iX zQt;naF2wSLPnT4P8BJaRtnxO{72fC~G(fPd(aja%d9lOS*_lYYjJ?uOw4~4cCp78g z$T5AJ`PRJ3Rr6G|+Ov}s4Ren}1uZqsXO1t^fTaxilDjVfhx5hF{AfoGXYdEiC}6R zl9Gq~sdmb334U=1ESbw62NEHpa)0jd5$6FZ8j)T(AbDr#8-r_yAH3UzU#$78pbWOE zgjDGCZ&)N7w60n4WZ)DlUse(#WLj2sLQIXsw%Zf(gnQ7Hu0F25tvr% z0vM#ksWI||o_pOQRWH7V8Mdl~#B-;L1_yBpmBHc>Grq=jiga$wqN>ckya2t!W4Y$h zj8HhwDDkcJDi(WruMI16y-t(G$RjN~mKG|mN_*Z@*L>+`C%`p0yH9PB0lbs&+%x&E zP`dTha7e1yZN)8q!p$;Eb;Kj~y3QtYUGExP@kJgUpQYG$`3189-RiMJq(1sGdTG^K zlhDi>lJROjX1Y&BTL7--mXkaF@IPO&+hI~~cts3s7f4U3@~5jolNOn5&}+J-2eehr z75G`&Ez?(Ru(5=nDt|6HSE!y|8Pg4G-aN&T&CffH=;DPeuvnhG-IqY3dLPh)9M)~C zYX2RJ6^4Vl^Y;v8!y<^aBeJ%;SNP_CJChXQI|pn~DH3#D!hd!KNd zoF9xi_REalH7Ngjilhyj*g&_*<6mHQrbA~(%$wGVlN~)>< zMB}iY32-B(O5-Q;4M{el<)&B@5i%s8BSBe!$dS!~$S{xO8rQ8@%fP8P;u3$@SGB_( zbQb!qdQSG+240S?!6ky!d3AndhLc}#6LkH`J{XCx_EB`om*30>*wM zxMh}QKd{o0{~h9VWTG7|-@?kWEI_2(P$vmx(m4y@W6ye~2~<=gxc#3McY^e7&bM<U`c+ttqA~}Cql-|6W{Y=dHO4wcyvq|rtsUQti($W(Q z$MNfkN%v=~30m7QTHBTLGV?Pmb@kx{gsoJ)3NjB3*EcQes+hM{)kPHr4OUl*qKu!K zF{$tk!!&DceBg?9Ee;kHk4;AQKTicH;wrD&WHpt+p_|(<(Fg~%jZ}OfX8&^|@cwPl zDQIxL97EAq1D~rKfI1XH;D)%r7^Ej$Fj#Zt2{URl7A@Opn2z7iljZ zS#r{e=fc1$n?A>qMw)%qKrauGMKnNdZc@)aK!DUWY&A%|=D41>jBmHJR>M!sG$Z01 z$XgELg<(*G_DID~hOV?nuhg``98WdXY|_&9?vVg#EwQG)Xm0^GAKieRS|Jkut$Xu1 z#aU@J{cTcFh!GjC(8t#RU}US8zyD`sS<&-B^L#5SsqG1AigtSiYt1gA=oHh^KRO8! z4?!r$S6B-q$4+^G8iTiq*+fR~QWu0nW=U34{cj;q;a*Z~wfKtM7L06D8}hXKI#Dxa zYuXKyLF*}J_?!EYqYMSr*S%JN%}=?5mMyw^uaIhqY}yIsu}e|MhGw*LzChiHAo&R= z8yICPpby7pD~K?;aXRb;5q6)WmN@o^0Zw&#ynodt9#_MJSrcoK1)#Tg?tb8=bgQD0 z)l`qTTN~L=i+yZHJ+YJ`&JC!FR+LYPt455w`Yhrm%i*T&=ogpoE|h&Uva}`)gxIdt zYC4gp(jUOY3O<21_DQC(0)tm_hiwGgh1;j~?%lArp6~ENXtZjowoS-Bd8xhR&?{Y- z{skf-78AuCTAa3Vu}>4bb{&JUJ2_U^E7sJU9k)#I5vP7+7-YRwZG<=XM56UNjb+&MO%^fOH3^>HMH+f!$0x;&ODtwoAMotHegVMmKW4uD7IeAKgY5!M zv8hUjWw2dUL%pT6A&c+}!S1*}E<)M5PTX||*dQ4xoXfA89!n0+qBxY(vH8U*;tDeS zZCQ`fwF^yxgQ!T)o)+tNa0oV%ffz3VdB;FJ;?=hx$(&bIJ0A{!(v)MXz0oky9jKrv zrpW!@`#J?~Yt@CNNxRLQT#3DQ-$c59tE@LKQwA*10jJaF#;%oi={|Az zz!&(H?#8bjBfg(5I46+%b8iHEz2ColS#^qS9U38X6w-G^eDxZr)vPFO+!Pq~d>kza z)eiOsi99X^Jpy`;Lasm#6MSKq*rWBXVGi9#_otS+;{%shcxWVo882q9ohv}YhwTeV zA?mC-SVZrmXRr?4W;c@8PIzZ;SZCe9R!~@jy)=T6BuiYsL~aTEgfMPs&PVPoarM+T z0G#&mQ!RUlW_tKy4xH~ii(l+bM>qGkd0hB(d_j?UcR~t{>@^(mP_O}Y)ewxBCRS`Q zZtQ*OaknV@L{J;{FQ1hpvfL?ll06a3=>bAi%O=-ulvJ-4B8sX53vJZpuyOa#y|2A1 zu;uCy%85-xQPNdE6d6>8NuOJ^?^%SHVuW8bzCTpF!e~aNrUL67ADNjv)f^Q7@tGTU+Qd6e8#&EBbWOsf{brM{j;9qz$+5R*IuV*>(2sAH@+hvU9}Vm0Z}rDyj>cuytq?)%^vA->)B zk3*L6k8Sl(E&kEa%>M|t-`r%F!Cq#@Xpkdq<3)I8?0ib6LD_tXNnN&hcgr^Jip$9P zU<fL?7`nRJTs+bP(3X$2-{Rhr|`08D07K8V!aZk@?GRXt~p74 z-5ET7$^CA8jR((*ojCq^1eeESTu!ecyT$@POXFK_>T;rF;Afe`aqDo8GP==f?Gu%7 z#oPnVtxNtP+~PJg;>AFM%kb$K7bh&%KON+kGkyt`n1+6&?c!LTppEVzhtvlxhkB%^9*nRqjIxxQ2;ewk%M9g@S>{>eV0i zZL{^xYk`oFp^Qb z?a!eCLA6V5FTNS?JE5Th?0^NpT>l8ri7|l*c(-#KgK&}ug-MT;`qk;rwEOxOW=fm zaCZS^H73PgQmhxImyVH>;CpYkmP%^?B&%yP-{0nA{M>10uHjQf`VD(#u|`FU)A3l= zHZkL5umPgED}y-P5%4!$N*9z76GE`D0nh8dAgVOXS^w0<6FI#XyVX*!%$RHRO(&cD zd=P~5>;L$6v2R4c=UA~3i%$>7tl*%tZ^y^;=dy5+G7L+VTghhMxYi^fkH!~`wU92O z{kqmP#zH*pm0`c0ufYseG#{B+{rE~IQYy)3F%IA_eJWU2|tpxhlpQBPc|~ZwNk~_I}#Msh;%?u zQ*S*`cd}#-NYB@~MGRh=Mm#< z6PJ7Aj|a_woX&0?`9b-x7^ydbG|4>6h@l?OMxd7AnLTHx5}@9s*iokzKRxYhxAedE z?8g^|q4l45m=_W;KdHL>`*WS@g>c`rpaha)vDlLmz8H^0vx;`%!C2x`a-SzA>6mk| zAZVpk{Z}PubZsq0Cic9Tg|j!4llCj~P3Zo$9r0YGfME_o+WRZ0{%YPWknN+jvSz3l zmd~-o`k%Le;p19%5bF=RZ^94ZE8$&XtPuUGuyA9S9Q~Dh_oD|RuIr@;qOG8hdcDs@ z{(N%WqlJ%2O79-HfO&8^Tl@0b@lNH&i*{V#L?v4=|8Aay*DY~@go^8l&Ono8Tw@J= zpPvLQr>WkRB^`;foL(M8p$K9@Gb7VPM{c6^eh)-YBa5J3AInef#a$a1p)YK)w_+;- zmhA>logXlsMCgy{(^r+VyuVNfS^xS^W}*yRFDhEBx+agIk)?Bk--Eyjk0m~845{=P zWK(c=ey)~@VWZJuO~WKNj+(z)CMe`k6?jGZ4h~!`9q8l!8NTT}Bljnkvm~!JeLyRd zvkDq7zzcjTHz6OZBLJkUIT8F~lzOO);j`u(<&FF{+g+?Dgm=}#-;GRKN$Tj@;Us;2 zY@#IaHRD*=`w?>gvPS+mmvuw^z~f{Bt1kwW8WmFmvabtmZvyL%Sg(O+NRWcVyHrK} zp!_RyKcKB_5}f#6UiQlp0->WhDT`dN7;r8zyT z$kdz%U-Kb3AfKM06^Gmd+Rm>odK5aOu?O+iS?SvdC*shv?SGkco9I0WR0pn2vgKBN zAuG#=$L75wr_T6f8a4Vyfty#AQxXIgImKy%1TSMcHdEMrG6Cax!;8niZJyGkZaUc6j(;(* z&E!L(QsUjlwR97Kfp9?9Qg%~X{IGCU3K=s8b1s89Y#e(Wzi*$Z#?|#d2QFv0{EAas zRsgY2EXYCQ$v(F4!>wSY z)(7iVO`;e96TczoA89wNS5F`;xT_weE;1g6=XyRcX#UFJ==FNLm<~}Ze^b)C{4t<| zXEJu_=KDgeyqnBUbsxTDhPMtKvx&oi^(q2#J}wZ1XGgPEM`#k!3s?+$zrn%0OCe)D zYS8j&hkF!;JukBAGEmlsPbY~5X;XMzg*!^wU#Bxky<4fravcG0bLT%xwLxl(f>5&s zpcM~3vBN9qG~WS8P;!mr6WZR7Ky)wsZ6-NuIW4YLNjhXB2^%#CRQ-X_?6VA1+o5h}7#RjL?mKI^r!dXVJhx|;UOXn);E(Bl#4y^{)z z1U)$gR8XqvjJ~Ud2{%`td!5VI!A;CwANCeEa<%m&ej=393$?Qd1%%XIZz5bz+23nD z4nuf?lu3UFggdvuUxfjl+flQFiHU|u-SMBAkGb;9@;ec@Q5W#+(PR#ion6Wt4G8=( z0y&jFg0YZm;mTL*FHnobnyWK&`^3zbPkqnnF)R7&&^L$BdlO>5zb&FF-%3De53%rC zSw#iYNLgXmlt|dZ3HLx?D%bH~CgBpqG@n41KtEGlvznwDR}?XMhocVBBg)`SH*bF> zUM<_Nje*x|Rf$#%A}iaBVvm^YHNq2=O?Rr+#f6}S;nZ~q7WMM43`aJI9 zvU{-b>@<}63(L@|{*S$DLSt33RSTs;g}g!`@!q4hFkd~(w1@qnQN`1oe=bUgm{Y~2 zTKm3O^R!vQLbmT+-LgOrt|CGC#NbT=v$BZO3|E3bg7R9UXvZvQGpo+F)_1gYL!1)& z15e7iSX<80I%%`G50dyj72RdbQ_mRtw#iG^k5)XX-9Lu@_Q+*+okH>jdG|n-@1BOc zF_^bQ!g9c^Uq>!G)X zL7N(Qbpwk3L5YAR0M0b?Uj}O}dvfm=csO#s0Gl=i2yzd9eX`M;obN7kx{F^ry5hrV zaMwC?|FB{)SZ{8GT1Jmlgxj7mUe6LbNhsCy<4}TpSAw*vE(WhI0Y*yw0XPMDcl{@$ zDLOP53b=@PZ2T5N|Ls#27`W{(b^<7F+GsTLcXIV#J<#2sEnMfd(#4u}^EXy}m|3;@ zaNonw%C|ehr_6Hhrmkt?x24hNghirN^Qm4HcAXvKMQ3TX%-pJq94}^QOI|m6V`(uE zX|smom*NQCoH*2B3&Y{K8T-gRmTi+D++_hG9@lmyT-n=+0?%qr|I0ukL$q<%v~T)u zC4&4V#7~_4R)C6v`ojGPibp8}Uha1)QS^&52f<7r)p=siM!>Q!SI?iLR|@ZnGy~G_ ztK1mLU_WJ!@EU`4;GD>z*f=EdVgj1PtntkyAAjS8D3)qAmi!@fFu+3waY^3Nv`?*- zbpvXdMZu9jwU_E5w=C~i$bvZ)D5!7!NYPYDC9*gsgb~Gij=bQ8|IfSh8fW{iNKYvZ z?ql?znp|f$pmiZ7mxb?&PQ}dvL7dlcIL$c?9hUH6_sNJ&cc3%KS^ zjEN%=Q%yL=Mmt$zk~;+n%!MeWTH;|prj>_vQu}tTaQj!K)`l&HsW)zX=k&|8sviX z=_qD6Q)t^vm#-ZZEe`4V8EN{(i8g{vV}C;bVnHubeN8F8ZJ%>T^Dm9!Yv1-yt-UYH zDt1oy7SbC1LN@sZ>p$z_SlWRJ!X%UpB{WAqDRNe0TT9lu0r}7~WVI9ib<4ZbjpQly zOuk%9J!KBFZxa4c2`%0Fg@mCBE8az3c;W}QEp~=9R{yvT!}&~oG!M<7=+Y0(^u-*f zM>)(@@Cm00<3}RdnS1B=7}ntqWFlCIH>aJHu}cW|L^9#_V#>byR}07oSbRVuyGs^O zCSy5@@vxU;oOlTEVcg`j9)u(%Rr2ezHGZ_vCnMUtOsmAzz1|=7nOHR0PNbISk|@W@ z=_t@Qi^^x8IthQD=0&Y%@2JNMYVyD{3W~$A$0YX-(>k^m>u7QcMGYmHeggD48<_14 z7=bXJ{EKReEBt-;h-$2!j1GM69_66x(CM4$_%;C{QFw-EF__{Go^m5WshpI}QLGBJ zBE(@O*-j49nOpWY_$Q1FQn66TV!+1-4IC zkAJu8ek3uOUU((D2$JP^gcXSwM*)Tm;YS4N#vWv1Z%$|(he(JQGe(iK@=8_1kGM3_ z9v%&pKYz&~jmK>H;9Z>WWMSiKIS!V81;4u_CDD(&=DWnk<#rzg+`bf#G8^arp)s?F ziMA|FjRukroK142{l%9ZCemS2l5Hh@x30JgdC68vJ&B_i)c~&RpYt#*8PRal7xVqA zqv%Mg z;SzLbLkp{+fq|*PeRI$3cJgj@3f*M==sjlnV#@BB?)%j9-s|mDYBsJtnIk-*>1=xp zeo>t}_L;~+?m8)OO&w-29p5{giIrpDt_oLleRs-`^eio)(!NTPs{5=dtifW{v(PI2 z1H;sX1rYm5>r9Con-qF8hgKFpolaI&DrFGpE*+KE?kWKQ)U z%?MS3){2@(VO?Ce-&Pa6?${gWO8>{IF1Hh{wwoIPTlgS9jm8h2^kB6=b9EX``f!qr zoUA_)(s)a2zH2lsI%?s6T?BWeXVPP(AHX#PgycbRn>}B?r7FQ#2DJ>dWRtgRNz!)Q${q^{1e>|C z!Yl5WvywS%r6Aji(d@2ED=KWW>cNoBLmk9DPKI%@Nvw6)PzzP3_3`2k9nt8)zq}Tj z|AMHSYf{e&p`swpd>_>q$8%6>cJzY+|JH+7Q8b2dP%1Oss#)*9qU82P0?fGmcfvuk ze+^pz|41^>q)MUf2JH3fvN{GSEH`#mgZ_6M4=5@=+lPBb44BEj0&~YAZHBd`u%!w1 zDuS*a)6(Ak0Ew~gN24iXjv(jS(w>EqJKAMC3)jDbtdD_w_}31fz~y_~52LI(CYs>+ zO|uek{8OSGXl-+0iO!lfqQ8jm=-Gd>J&dV8fCez52eVdhqxQ1OCqO?Iwr8NVllR|f zU`KkHIna)Mor-D}Kd_pkA9o1y0q&YtB_K=n`TX}#iVP!GhvVUCKrSjp-HEym&WcS} zNyOSOgKWPO<8(!fDe#7a3y>#aXf1`sl1}-R8izou7-;eiF+DIQa^GAQ0Wy~mXFu;m z!hYnu3fcJ}y)#=jAtp1g``WAb1b-B*3C^X^i+$lvGgXas?2l)Q0X0j{wHAx+V!EEK z5w=(-^8cAoZaZ@t-Bt3ncS9iDR0*uDNUbMt$0{NU=Rz6XgsQwlJhFu%Mv}ohMG>ZL zco2t5tSw_xNh}RWB+46yAZVM!9GtGQb~I4oG{}D+W~NVzbc}A7kke!wZW#7_*uW8I-TNck8FbRJSF6XtLm^(MfZWrPdl`{f!Iq9J6Z6?*RqN)E8G@yMp0AgO zdq`Anw&t9>K}KXk(U2KhRy;5*KqjX?3qeL9gcAe6!rr^Ct)Y4I(5F{kccp3*jf!?C z;#^wLS#&c`JbESx+8j&VQE$G*A#;ur+wlR7@9IU!RrLKwofIe<+4G7@i#A7>H+qCJ znv-E5se1=904Defhj#P|Kf~{=VLDoz>D_9+9R=#8`e@L}qUAbpVb<_duRuGeY|@Gr za6=~{n0{Z4OcnpX^^tP2HA)wBTnkaBQ zRd5QvuQ-K&pIsQaZhlFljv^;_-Jo>lH@$9@ZWc_%!m$RjIycJ}HR73i&4ajuN(Xh? zK$S0z{d9ZUbi0(tRDj(0bEkl5?}b&`gVC?C-U*O4m<^PWc}4VpABB@%{PdcQ2cdb0 z9)W=eBNE}(7-Os}C1Xq~!KtKo)uGXY*1(B&JssWXmdWZ-t`iq8*D?#@!rH_t^Zd6{ z#yIM!`HoAy=&dK!?fitj)IhMWhnE3Te?KkF zpatBG;tW7r(kmeBBoN%c)v8DM=~x)RPWzMF>PC_Wn4dp#0{kB~Ve}nYxaMo6-UcYd z$G84JGH^Oba1<3IDTRAmf?+r2PmjWoJQ0(Wx$#{oN8I;AXnZIH?2;SGzklYPI@|h9 z#cOZ-M?M+w+!vr+mR@sQQ7-=u6vvKYM5qOS2Ji78`fEsnVYh9B9r?#8g+2%=vGIs> zk`&%h#2HbA9PJuBEan0ImcM|2{=MT*qe(IN>7$zy^NfWzX!oC5yf+KsLdwe%FNshb z2CoXMh=}*K`d{8;B$8;wJ)4k#vUC2LNBcikDne%{yXjV$I_mkV=dgQdxGl8cU`NAil$zu1XrH+?P{fA$MCvPe0ZlK5P5^DY|oziz7u=Jd+kO;XbA=h9Z| zpY2-81lw*hGOozzj^c|nKOCx6`~0T8)rZ79Sqtbs`K@hI30sN`6+V3?Ha?J}yh~!i zk@9ch*~SGBxjMS{hN%hr;mOZ=0<^xFeFUzP#H0Mr9BS*5qwp0x{n=MA&?K=PV|ilP zXQzfOBIMfiR|6A*XQqr?G(@)hl19t&uAi`kK~v$(8z`|Hh!BlK9ioo00AsF@V9|ol z)4=`1q6&3;NaaC2<*#|uo$s36K9boiV_ zYPce1??0`Q`VF|gQkLX`C`)AcmIXYKKBuUwE27%eY8hmi6kz`+*~}c^iJCdPKS@fN1JX!e(839vb;hxndg#f>TkM6LM%?pdb*%>+<8fk97h zT8{;c$)k!ucv0PjAl65cY`{(J8Cc=>d)=MRP9+@B(r>E}Lias_Ze}kW-Hl2CGdObo zS({i;^vQ_NE^WGZdkRy4)kk|cJJFfYiZmFyvj6bnvkbBzUM4)ind+b1*9dSv0*!h2 zSgv}xUV80(Q$Kd-xq5>YS!hoCV_<*Q+xApl>{_~S;fsv&-NxAMZ57b`YR84dLilEi z;t7_Vi6SF}GyZ@9X1D{1H*um97jkkH+-Y;F)Q{AU8;TT=OOXo#(uAGgerRY@JrKVB zhAfT#Utre<5ExrkOgm4)Szc0EK?(Dj@Acn^h#yukJuaWyxK=-_)r6ccg?p#DM%v(v zKEje5s&>J)gEse!=(6+(obvhRJgxP z9ZUB=p!vy2rX=JQTG8hrZ^?arfmQ^q{Y37nU<;}Yqtw&)KZ7jFVXRiRB&3|f74C6rH_6YoMMIZ=RxCg>YjS_q$ zH1jL)7DlTo?HO-lmOp;wl>^Y;u3g)*Ek=URfPt z%N!y*e~|Gs$Zu2#u($>!(s?iVnw$F$ywD~70~EnSafvr2@i=_Qz-F|CgSf85+0e{w#g*4rn##zO?Fzw)< z`BgU9=!0)6y87FFtiinI{js^CU5$r*CR1aXZ4Lbd9?%e!b|)Ho+ZtkS1iA<^>#m}H<`i9&Ck~y0LywdQBf<;Kb>StP>OH6+gJbT-(tB zB=}YR3DQ8$0sfOdiLL#Zeki&|1~-`6;ckV`qIv+apXh}w^in&)VcqZFEkjYO4bl1u zawlvCc60b_0InzBS}+b%C#U~ky!r<7vfsjz)Q|g zDAGIf==w6vBE=CDpt9l7qNsdr&Mb3v9@>Pv0W`ZY${=X37gzBPe4xFxn4F^uLif0DGAZZv^KdxNW!peBh1JmJL*?bbv~_j`*nU`5LPOIL)ZpnR$EE!T;A2NTQHW;)W# zdd^iCAxvB&m)E=gTGV<^gtW}CZyq%Zk)xyADxEVn&2P54A%=ms&ir5XSaPM7m&BG# z3)k%NukuZt#LGP$cL7bp7gUOexJlxupTD!!p$B2c|NfNk zc3($LON%WBKEqFx7ZE-FX0rt=Qc{w1$O82)#&x8Ao@CeQ9rbAf3&en5E8}}-*|x3+F&eYORjOXEr?F*$96bJ+`fYkq55;q9P-}t%MjCg{S)fKyaM$H$zE!W zqmj;V&(@!q7i<7cMAafWy0;ug9h*L!@95Wo8t1C=3zB^lmm1M>3Zt6gI(*&T-$dU- zK58=ZklP(l@tLCWm%#&qSy#|3pPo~5q3&yS5*PRL%fr`X6az7tE;f4ABYu^n!e zq%Q={6P$y;^`f9C27Cb@Z_QJHK8&TX(Eje+vl?xt--}_s>nIt?*XfX0$rpT6&x17B zt$LVn-+S&=bvCYu9J>1ae&}k~77u}b$fv}3;wanpSOlb6=w;>PTMO1Z1&;6a6add& zPt7TSb)~1l59cOjf)}pQBK0Fxe_*MFGNpaFl=$bCz5sFR)_wIv{) zjlnC4E_>=hYbcvu`t;8;#I(GgZFFKT zSh~9=76Gt-)lLJoi^6EnNGUnz`D9Qzr4a&9LE+zb|1J*m)ZC}c+a(*c5u?bOP#Qr_ z6`lcighOeht&r!BEeoF{Xb@QWtx6PcOsOw^HB7li!vPDB^vu4J#-llN5YwTKs+~uK zH$@Jm&AiQjJP7f2-B%VhDBfdXE!7_2}6_nNU1{dB&*Sw zJJ#=G?AeVoD9VlO3(V#PpShm>8E)+0^keoj&&&d)p57ZzYRZ}&otTAm@okS^p~_7; z<#gDOfDp6pVO^g-PimfzE5u@f4XgJ}AWEip1Sn4SuI+PTd;Tu0zN^?i^HtDoXiG7$ zagZXi^zZqFe4?rGpFc5bqoN4=Hq5jYk;`_A+PGt>bC~L|nz-GURTfWM)YRpaG9)uC zO6Pv9LR-}|d1zP)tg?HVV1W)npCXhuzG8IMD0E|-bNRK&)b6Fz1zypT+2O7_Ue%M{ z3HYRtPW*nOqWS8!X0gVJHpB9A#o^8mn0_&XFTWC$z_8LzK*r2Lw^4(jOM$%295DWc z{<$~wM2g_ciE(%icsK~lgwjmm6D?sBg0k8-#m}S(n5+Jl{xtm?h5P5!)7xBjL9_!@ zBXlsWl)8Z<8UpUrU-Ax;G*2DHG_v&O_ur)o*?q!d7fN-qc>`}b(`MYXoKrOSxsF4| z%BFnv5H**9WbSW{mBZfYe{?fwL=kmPGtv#77(C=pF;itjQ~K|UI^qP#smT)MgUvPy zCL=?T)2*&B4|Q?}Z?Klw`=7nS7VhDTN*wXYRvf8&(%2NLK67RcL;=mv&O-jb`4tJb z_b#z_<5I|X3S43*(T^Tl%*Mx$`{3Eg9#J#5VxEV?aZMy-6{mhP@=?d_sl>#1YYiLM z7@Xbkwcjn;KPE`&%o%paLa~MORGs4@pNdb{X&8Id7i^x&(~)X!rL&-_1we`k=swJ1 z4kLN>F#qKaKZS{-&7#YgxEG)i%RRVEhwq4F<0>ikjJUS27nu@fAfwz3{K*D(l`iYz zv7qVc?Y`c_e7-yoM5hC^Z{DMAP;fQ!UYw&s!^X$@943p9i8-Ak%Tc(v;LFp{TshMp zD3|Cmes=vDde<(zx@;pxT!XtTusNdzBG$No0*m*~0;zz54+ke8ZjgwI6ewl{=$%&S zB7f^0Iln#I{74NwrN~;@erVg*C&{{MRZb?GG}jSDS*K-0obQ|9@L8tQ6XNfzve@l? z2aqFVrlK5GQXD-|y3EhnD!4m05bJ8=Stu@a)(Z!Emaw-$Gg>zs$-t4!C zK@%5vJNI?csp82PgYemo?{{IFR!>5TGP~(oe2#D~6^4p*CsLPfyQMAX$sa-+0bS)a zSZ&?4cdQyFOP>_qT%n!2WoN8%!L0g&VU!&yYX!zf!zP{}pDV&Kq4OEXagWkY&x>0 zeuyM+%YGKg`i}(}ahIugQl~F4Y^*I6FNbdo?dtM{mQ-H$6d5fUl!Tt!*Wv z-jBVjs+aeYlA?;_ecEFbNf*H%kdYrBA8Ho|m4&N-B56;udMkNWwdq8BmgLzm!?>8NJwu+? zv()<9ItLrZfGD;LX`Dhmct|%Ix8@;S7tGF`+K-M^hu&@%Ycvz3jiK_7t+tBZO1c~} zBgtU(U4=wexz}dLnVZF(9P(+A-D@{?)rlz zHM?giz@=V-sO6HP5Nc9(hjC+35M1;S9U-v29q>B%1HG8W@x}B4?;tUB3s>BzuYBHl z!>)8TW&E&@Bxo#XRaEcD?qM(CXs zTF4gvW3wYc`a=a*ktjJ!!ZM?`Ge5$~zVT)JQSXud=iR7|1!>-NR6_1$2{E?=8|qb= ztCA=G4~x**@rpH(Zd4^_u)v2pmxwhes;90V72v5g7Ct~$a+)H`XuN!K5OcD+sTnyi z0|icKz~+3b3DMee2vr$DHlR=KWD2jF`jLr>1w5&YMVt$Tq@addy<5mWCdWw0h`RL7IOfjLVx~>|hvE&duL#@j{ z;*?_?aP+uYsA*`^{qoY-;GCFtL&lvN3G;ZGVfYx~w|@bwX24{6f+q4}G)t{8*G$Rq z@7Eo$*&8P)sa0&h12cB0D%@DhXDPo8D}uE`NcllKLLn2D-C`U6DK;DbaLx^ho$S70 zo9ah4&5g!tmm-b8OMIg|#k_?-q>`VCYf5G6W1RRFzN|)MRIHM3)WYLt(xBdklcXW4 z_q%a+aD$O6{Y#XU4k;kLokBIm!8zSX%uq!@N5@#eOY7~p@v(U!J~w{!LQ@f*x_;iL z1pcIb;VX=#owg)&@MQ374{+P}#!IdKkIc!kDPB((+B->aSBT*TL- z3&u~+ZamnLHhQOlVZHOLfmpF&0$&)O8-V5Qqhq= zW3}BW*(Tv1WtZ1-pNYyBQ}7kNz#_=zB2xgGYY{dmr;un{+vxSFV<&*8ZORK(8?br_3&AMktuwKRqpa#BP^Msm@N16unB15_9pHG;rV}{>dd~OtbS{+=e zz2(JlL9IlV%qUan^}W0urSId>4=agkQ6sO@JCvH4&^J$w&@Wjig9H)UW2_rTn+b3- zCC&kETg2M1p;NKP=~o}(^1jWkbBJZJxyB#~cy(=EgJwH;6L3@jUxwWiZM^>)EFq*9 z+QC?31BMvV?Z#2W(bhsvvewuf=$LP@+V>IsMe-q1uH&J2u`?!QJ~KEP^PKrxK9~Xd7tv?b!H4&Cm$j_xcaOZ5`WyIF6Iwq39 z-qP_(8a6xZXw{YJNBSO|htp76wW^B11mmeOkvUoemlXsx{wwU;EzG^tSFx_!_=4T> ziR^`CnlhAUU+l$1U%_3PpZmNwy>2VOJ5^rJC_m8PJl&D!P$#WgGpriGf87Tyznk~iMN8p&dkg~ zu-#kAFx%%7k!u9L)U%05Bc#8#N40pnH^MMeZ$vDjZ$8;d#(Da$ZGKi+TNtZc0>`tr z7-SPdZhV?Qj=lQEIm>uDw>%~MyoeCA#BhG@S&l4d;>U8BAx6bvzf^%A{-VZYC?60D zz{cN}IVD-5)tqZL#K`oAR?8fYk}RrGrlWN&t~|8K)FoxA6Qv&4pc=dyD4UueuGXSF z>Zs8_M?}QEX{y<%$I^sLtB=w`0_UW+XSQrs%wssWt9j;c?_CnTwN49A-`wHDhxa!# z9y8^!&)mM*?u8NB}@3GcZ)L>K7NK3C?YRJ2eb1rnAHUDJK zz#g32yjV)3RFsVJ#Nr>_=_qLk)$19dO@9E(mB8+;7jB2==eC3|t|fS%9>NVB(OTD9 zP0wcG9xwag_M357#e`jx(%zu36Rc0e3r)u!1f?-MwcK$mbmtQ zYb7r9;Ih5B8Zu?^Jc`kxR7Q(*&8qW`%m9!Tf}}%#wS_LmK9(VYKKK!b4fkm_*k^jXv;U$JvCQ! zWGD;i`{AEf5IHPBU|-lmKcIdv+;L;xtiE4bz%f-|f$)cU^%gO$Te?tC zwC@mSVc~ZJWjm^=?h(xfy4~UBtaP==Lx>qUM3=Ca}2!aAB&R1kj#}UW$X=*0Y9M1+}WDpdofBk zI{sGX&j}mxnfgXL%C|ja6K__NxGGMr*+JjL`5@A5w^OMx@k}vq=J-nLDEj+(`L60! zT+`NEotdQtaF_o0TH!A3)dpZyO#p+Oon3cNfI@4BLApv6VNlH=H8-rznZd#X9$d0k zU8GeYdZ<57Ll36Z9SN31{NEK7gj!@uEM&??yuTAWWRu^Qrakte+SaV zvX(*GkT!(>qc6Sbf0o~_UjFy<{~aD4Zs`A7N*DSs*1RwM7uzI6|HTi?j%6l+2gtwp zjylkP(Oi&K1-L^01s+}LzwYv}7=Xdl?X8gmh$apPu%`71IDm`!h7)`Sr7!(AZ=L$E zfL8nekstr_@cGHc{=b&eME?!lGz7;y|LVsIDzD=@+z<33thjtYSNC8ocu6UsT2|W* zW_~l2_B-DPrdn-{7_Bj>HVh|Oz0xaa9uR!Taas*?TB_$LPdR;fdhY=?f}e{*DuTfX3UL* z$I3SuWriS-kb89uQn8`st9OBi)lgo#*vK@YP_(Ohsn>98pO5yCK9*y%ed+%caf;*B z(*M(a|Ni&z`Nsagp3+7B*K6LB?wg$wqWcD-r3aW#0af5lS-Vjeu%K?);A~=KuGjsYBfUB%fh+fyKT1*;y(!2W$xyKs1mP3Y z1dD9KLls^`r}JX7JSUW+WLS0E54pgvkRCSZGm2w9OHt-e^ENoB)u$ZY$1IEWMx_I4 zAFo2xm;Q@YU9tV=@Zhi_{~vDR|F5Sgj|xRsbzo(j-GZUc&L^K1GwW%ojJVI3$>b(Q zwec)dF*z^;QshiPnJ&oUErtq7mwFkr9NgkL%7A&;s2I$!D~G9h#@OBesCd>WE0llr zrr+izUkR~%leP-QL!P>)*E$Lhe5X~j${`=pHR>CB{UmgmU$}^aup$K{C&7D@$I(7S zXHThmIBWFr>K&W%ag@INpORURn}1c>^uNQZ{&#$|iT}8k(nbH1Yu;1)Q~M;$lV=ZoBeP9(2xIqba1fA|Gk#7 z>iF-){s?gZ15?@CiZluVx!a zpY*yATTjDIHsup5UHLynw^)XZCpn^!6WT)nXygA!760#}!{;0S@3oY6j$SOd*#b5z z!{fq%qf*aSAXFG!EOUnl30=kLw5Kx0 zyn(rw4kVENrzRgvUD0`B%(C!!*Ua#)(yjq;M$-b$18#$xBg!zz%E|d&eQ-4Iy)R{w zilL8(g0~B9jEUaa3+~yd0MI=b0LK8wk(Iu_Xe8YQ zhCq(6nzFVL9NW*qbwh~4qW=}A*>oQ50hL~M* zlIK+$K(*r#$J+Z6e8AyAqPr(~97kmEVp&2QVXvRDtO`pic- zfmq{|;3EImlCx5iw5;>Q=&VF-Gg3_#6P_F=&t;{Jk7mQxsb+cTLe`U%; zme}wYxgDzzE34ai70Q%>yA+L0I@VrlqWg%X&$jiSaCF$VrpeOVHr!|T3Ck&&B0fPg zR%mrCTev!Y2cn0_81Z<5l6SdLrB`XyQ2(&f{?u4B?xC{xjL9rZYRnieqSc^#8uZu7 z7?dt#yAOGaW6aY9fb0$>)eBnt82h|r3~~A{dqt_2+@-~A!hQx5$TT}EHEii1<;_Xc zaa7af4O?HZ$id4rQfxwIX`-@8{q6eQTTdMiUP%;Nu&|zZy{O#7e`6#IqzkF)&{;N>%@oz9O$)v;< z23f5UV{1H1Q)#v+>?~Vm%UAJkvSAe4rvM~VJeV!wk9nEv9*0Eq7WsPRI4%gzQ2*1` zOKiibADP?Qir$59G1V;@x1|;%qtUUUX;PDXRqZqZE+yn{mV;=15P_&z__A4H4Hko8 zIgF7Nb9G)W{ulGeLe#9@ww2_r7?q_KOFUGrb4N`6S{y}nIHYXs5K7D$O2>e4LRI>1 z@vAn3StdGHcAjH+(LU%BA2pAa@s{>BGuH4JZPHqFU17QMme&02PD2ZYwPM}=q;dM$ zI=7rCYM7C1S7n?3NmUV~hS=8aATh46R6U8sCX{KRT*RxkeeGN#ArAi26$)&!!wKG6T_9Ff`6x(foqLa8Q;2?_|)I7`rn9k3No8;M9H{%?DTIhqEf z?5%hjI_PR?1NSf9HK63hDgv_TsLE;GBWgNpKAd&OGuS$KFl&xxmlNs8x3y=ooWIHn z)gRlh!d`h)ktvsF1?@wDH`YC2s#ROMEq ztiN`}j&T$qIe|N7hhxqZ9fC{=_P#w#OX{2mIow``wmX}AB+QHm(p`(*^T0066m+5><#f!zi!F>DL$*5{3=iIdjykrS-ObSKc&g3 zCJj!JcsSgb1>aZfTq(7~H2hS;{aM>oNhaSZ3(<84jAk6%60QZ=XTK7hfoKOrE)rox z`(?KA7g_z&;Qr7xcA)j#Zcf|bXcpfgzFLGd&>&tL(eKkN-Q_>S7p_rEQLh+KZT{cS zkNo^UNBbv78~JY?rHgoDR({Cj(zi-8U4j@@6i5 z9IVS;OIgv+TMK`7sW^z;E@bvPNA$4X(|4iTH>U$#J=oXNZP6*`Vz;jh)}8+|vDIfO z>SXe9N(=u#INqNnQ3)56ZO&w2$qldQiq7pmM$< zn00ZK->9p)bf^DwlFp{+I)gcz5Z>nkppE`NKlI~2ot_?S^uM(foBn?vT;bJn1GS5o z?&HaC0CGebW?T@ICD=oU!91zqUo9vwEBX|c|DGs3qUnEWOdiGdzdSaz#{Z>wT4(xS z>Q#Hc2-SRb_P_n-`zMw6Ux%CgA8RSS?0>dN#&)JPCc0s1+b9Ff{NvxzLjI~Qm~awl zRknnn{mbrDR6pG!Bx)+JEZND{UGuGy=4n@kIx4eu`|*PJ?00rF{DLW8(Vx`cKZDXr zWcM7FF#q^tkVqEu`v8ESv~TRs0|4MX`$gS6{c?vEzu@G>Z@=jQ4RN9jr=pIUWUH!G zPtcRqNwDqb{~nDdgxu}@0+T6b43q3VnqzdY!xwa*1a0U4_|Vt?PYyQn-+D^p`PWN7 ztXX-72-MV(WTEc2_IreymS-;EsDm%T?+OKz=P4MLy=?SBQ+k~LIK?RA%F%bF@qdph z_kV|{2OIvsmeT3`+bi#Ke(MJ%0N5YekGEa@%)TSBw^|Ipnq^6f)TuRpota}@Q@QB! zckquH;i!7%Yr31!RMnl)w5AhLWoh^(I)tpD|2UJvgwQi;dNg5mm4CQH##B4$<=mmM zdeP%U_^pVj5p0-4J~36rzs~|B)tQE{dvsF|gz};XLV2i%jZyCrN)P%^XDRBJ_)(WO z`hQsQ|2;U`W5PP{*YcMVq`{RRMScE^HP0ODYyj6Vv-ki z9z5 z5n(+?Vwyd|qWW$NEXDHOXaMQH^WTWIbWsqyqT}=n{N9bjcr^@9Gk#swcX@gEzaWs^r$XW4#IjZ~E?8a+aTP0t2z+QV~OG{KG z@m1#`BFra!*vEq^lL|;|{fmO_C{)iQ9BkK-*RkJdKrS_;AYTQDh zd^#`<(YApa_0}X^l4Pls221simGBf-f)azBQFKL899I$~=jvX)UYdVyp+!TQqkUM!uYT*s_!$+;w^N0meK6(W`&V z@EoQnfw|1;SmRpD+IR>ryEyg(PicR$4OiQi1b}ch*Pg1u)$1@r+6eYDkR1i) z=zfASLDK!MWFjK1f2>B9^Tur1=em#B+pkRx>vpoN8raEi(Ohzq%kf);5|nh`#}340 z_Hl6bAAdW0c&~=mFr1)Q<1vbPB>*>)pWA7T4Z>Od3gxVkwJn9tO$`|caWyalKVj4Q^;fB%QwvGO1|51mZBF5C%kJd2wz-0XP;HNK} z((nGiShBtzU@iV%hsVc${-=Y}lf%vZ|2j&S`+w)s-?~^dzjyHd+Vz}U!?$+@m?kY= zR&qYoI*V4_jq0^fS;hLWG|+(HFKbr6FWrSLj>;<5hoynKlvuTKze&);T1V&Fr@yVw zNa{no)HZ3m_uK}*15WW2{0=glB`D+Iuotqf&wD+FZoS~$-Ggz_{+IPg=nDQlL}Rz^ z>K8Xe*GT1KQp;TVTzVLaJ@$-~AK^4@0JClT0*26N+LAi@po5Y7tpy#oa%WurMB+pT z{!i##N?@}0OH4`jD;ZtqC|>3JpQFQr%KP8bP5kHe6dj$5WPc+gAXfGvF&@lT8CpA~ zbKovN#6#Dh4sIw26Zysq{ev?(NH8XJ3i%FT2!RRbIXm0iL)q{i-{Bl37!C=&-4lQ9 ziR!}v5S_*|N>LUs4A(wSQ*yrpz9w{plN~@Pc#rZF#%Ks$s<*x}@t3SN)WQl%{zgXZ zTg*72i`RIHxxz4;O-G1|A*otmj5Ew8C;`8ckpx2#hd6UV9|*8)CZ7k7XK5SgvSv5% zM-n`Tl;iC7C4xzcGgJrx?{bw}6D0Z(2e7`X1@uS)tvho*#Be-@N}@OOb-!OS!Puh_6lp zboR=cWk8DNm|>DNi9{q#q|}CEc#XIv35kC}A-Mrc(sTslJ0%QJ$kFXWfhh)8d>5@| z3@I>D7F7AlgcOvMgek=~L-&AWhzA|S|Bk4@Ff!S-D0KhNt)v9R>jek95p=C z99vWb@WXc* zoI{+#Q7YhfYjZuLwl&54dMOjY)ppE}OKk@B9N5}h{_)lvoivJf2yFvlL*(__9 z03>H;KG!$jhij1%%2{29nBdL#Q_2ZQB|&f_M(C**01jNkMkorksqO}IE}^{eL=648 z?p|R9<`b*y{i^Y#+;M`>6?IoBBe9Kiw2_WhEgkjY|I6I{{7XCkKR$eZ>id5@e}1yz z|LZ7{%dhnA=V|VJ1PdnPagd8s#3@D$jL?`+BvZw!+X>9%^@K9`x>pIO>h5Qnr$~kG z(JY-|ijv^fO1da7S0pbtw;yamW@!RO2+&z3Ieg$UCx;ZKDM~S$s;;K+1D?*Nfi6S9 z1!TzOManInqfFkC1iFDS$8%IMFN+1kW2`fkCo}aF%)Zy5D21Y_fF!f{a7g(Lo+7{} zkQeAo;X?X{%5Kbr%lZq((G;kK5HJv(;!IFQ%>O5t!*qtgbjGAtZB7`L?X{2T5L}LB zW*l`Tv{T+IF_57-q9wEhBr}Dh@?4SEM?BR7Js)#Kzt)R%25xR%hkgL5*hFe7QancT znu?48l;=bacLG_t*ysa_XL7!t=?B#pYTqD0DEL}#u5CF6x#PwdrHMeDA-+?G9Drlx zT#96;x-Yf^Fc(cxif^&tO4=QF#>o_N97C}S6D0ahhTw;Z*a#W~7W-dpd;Rl{OfD|Q z7cb%zf!i6RFyja@@C*%ahoVoI;(sE_wpG^s5dssE5h_4e1~bdlaCC3?B>O9GKrJ*G zVle+il$20LC?-=>8Lox`@N|k23^_^{dcH6(rfLXooDN``PvCBf<|vio5oUm7>B0;N zj21E&Bce<#G0G&{7pUCayml97j3A#;Gj|8VnrRS3AqPXB(Z4Y7~kLDlI$`|&b0dsRoaAnQ76ij#9nV!V~OmSYDPs z>z79q?_C4}628k}JbBIj(URLw)CH!yMJl(K&W^G4sB#-bE}ZIxpuMX~2pN{4OdZ}L z8roz1wrj8 z^JP(@vrGuo7b#?{<9zr{mhIYNOAXS3=n+rhExMYe>2<&4qpq6^r+6wm_P|+TTEWn9 zMfPQm31R##;$mxdm?x|DvQs2LTwT8G*xA+P%ZGGyd3DjTqsyy{WjkUMNYND~LQ8+^ z1WIo?grRoJBB7KCeTrV=?2dK7pxS8ZGl!(QZn@9395}oFYM@K~P~{{iDY;!-=M=%@f@F+S zh%>(2X14II1^ftu5H#pK#gH{W!|8&y1?rIy%^tE@4S;3edI=cbB%C#i|E_3-_lR%6RIixUjRGf9b*aDCQkHN8d;K-CyRCA9`{$7_HGreGZ|V3isFczne-j$o^F1XCt~LY1`J%YYgm zheQ4DBm0cyka8@Ol6=-qW92Z*6ny$i3o=E$jaU7q)RZ3bUzr7{2nF$dr<71_{{IIj z{`!sV_ih$Yx_t?#E7EXn_iN6B3z zfHwZWUy1*CdUCkG;s5I>-uwR*O8|jw@|ZG!Z++3)YlV}$dZO;bR=Sqw=D`s^ke?R= zal`qvSz}zLtv|bL`(5@@`cg+#4Zo3X7kyY@oB4IQ#hfVS8ct6}ZFgGW(vw4XvtVqA zpT5ieIj%PF(+Ze|&zyWwQ(Sh`~Q~?{QvN1-{b!$M+cktKWiz)`~MX){*B$g!>int+Weg% zdj@~!w~DpD(z3~3?^HIaFwHAf`^jnxZ>t*bZOFbbpn>jyvV&?yGZ#dA`akrK%7DtD zRBq~hlfJ!Y%F4E7zkZ0!jE^C%^Bwx*FWq&M;@KvbZ6uEM zmnHeXb~WpE0nn=dpBz>6|Dz56UrVX@f38>#uzV8#G!}rGF@Llsfc4!1*c)wQ1L$M} zsGG8l5nxkRP?qHX=3^%#KpX!*KJ?>%oE|;j-2bnoNcR4NUQO^7WH?^62#`}eg>+%F z!YxTq`o!d@!mu5nE;G!rj86Gz`r4Y%n=0! z85=f**)0NF8JwaWuvOF$OkL;1DZW|UL0~*C;bEqujTN9v?o`Zxso^PnGIhPp%uAbb zuOx>Am$&KDKFXYEOK_eg&NAq2RxU$eAxs^2@Oxj%NPnU#pCF1<$T^B&vH-Av>u({q3u~X+z-?9C zn$ve#x{y;?0M+5+bZ1dzdAvEQo{rEgbywf@G`vUum|=TKHSumYJ-D zlX8=V<95J<(wP)g050aGh%4z%%*OW6&i@Ha5Z(I)rs-0Vzf@`A|NBS#zW?9;{=w$` z=UR$9vTq>H0LnOBm!to=U+_!(iEWO{GT3H{D1e4H}8MeQ{?%7O<*F#l@u@)?16PW^6FH&lK8JE z<{+LiPNp&`^BAXy?EuI$s083lOX@6y73mHA_?7O}|;I1Rv}$82KO^==hBN zx^tsVcIfT>SLYYKdY~g1cYyoq14lH2DY(oyqGK5M+XP5AFIso#(r6C7Ix>1i_k~$% zK{|kEoKSeH0%P{;LN)AqF0a1tx8V7_%X+IYJl7e_*@W~viaLUiZrZ!A{uAbQ*md4; zc1uyuo^+cI(7%Bk-NOYqzq$nP$*d>Mq@qQaZoVZH|5Gr|RK^KDpK&7TE$uh1Ne(-7 zro)%YmzaxQ@H4w*7p_Km*6GHC#(HqsK%Q>ZFiueT0 z7d$ z_1*i|eHK%+?J)4~QHm%5-#g^wHHoE7x;r(IP&}fNYAD^Y_zK2%v;11o@@0`2Ng$db z^vB^^zfbPlt$EiR>}jLludQ^`|8a)-@&>>b{r~9X)Q|tMf4K4gSx<4U&tQ3fX1myQ zGX^M=o}&*VdTT&vu!1;q<#0PCnf@&?S*p4!#ue+~-k0DCQiec^8CSi)JQpN{lfaE& zqp4AX@S$t7!VR6F3wc&F>c%4pXJbOAI%^gKWdx}1rUeNwHbGY1?uF2Gi!wwZm+7&% zkP-ipf*dk-PiVsAjU7Ts7h^`jezW{GQsHca{YcWVTo(xvlaI0(BQ}(9hRWDNXj6|< zNHI)CE9g^0>eegCZpmtTRggOM8mBnEn~)hpE9kfc)~RnsQo4d(1(>@2-lJR0IHKTP zF8U<2PcOxpAiD98YH(gJ-y@303jvy{TgL>LCd$N@Q^bT|u|$`130npNbox{`lOQGu z+Ep3D08ElyaqulP+*?f}rNSg385@eWs%depZ(sWd5tL1>mQg4WwTI*PS8v;K6ZAa6 zOrjC_n9lP|UHR{JL~x#GT`mlyUBl&CqCBw&%wd*Vdehk;9w*Ft)sL_by^x~y{9#jnQOa# zjaj#AUfn!LlnFYY#i(!71gSJB{aP`TU8P?$ZKUhlY!p)1`vRE1WGgg*Q&zaFG5#%B>I1_|NO9e|9`NF|FM>0nei5!PG=~pyzp=4UQ@)O5XEoEOC0lV4{hxi5t`Vjt3|eFuJ;oCA@DLnCXNVY z?$9@jUbYDRHT0gvWp05U+h#y+3nPD+?tA4TuEnNlB6^|4JU}bLPdTSa&uuku=^TW5 zqnT4O$4TMsX3*|~C5ZSUN0He8mB&Sur#j`fyCNh-)N&%|Ik~xPzx0&as9b1yz(Hj1 zOY=Ccra~*GS`Zk{dp?E_oH;L9%T&fMF%&4;u2e8T2^ujWiRthcxltnjHCJ$JSu)5| zZ!T+~?c3|3{6QvDqL~l3`8+;~FYw>i>I& zC`QcX$yGN0wG^H7b(Z8}+6mPY7?aVJs8E#@10t4jL=DMT&n%r`#>C9{>4+*1+)dw} zlogp9sYvkO(dlu5;ue|a6&A7!KpB#}MBOqeapoQhc_taDX%LfwlA(E=Chvvs5X$A2 zF!y3faVG{KC9|yh9FtIWs$3SmU5segr4^Us;xQVbK-bZ@sHIT{VMiRSa*Hx=y@35D zv)YyJ>^ml8X?eh`fe;GDP~|5RW7b0z`a_29%W9RAT&|HDOGwu*Gg3WsgwWH&y5neJ zDm}RjB!gM;VT@6l_=B&JEsGuFOiO^8zx+xZw*+Mz!<6Y0u>}KgX5!( z{ckNrvByG#xz6FeSn*{a{s-QdSa1D17!AvI)(ic|G8`7ew%+TPAD_sAX!`GEMl5U~ zjkd&Ma$Or!C(W~Bbu=Dg#eDfB+ciW!^DL33Sw+0{Op>0_(X7UY9A=5B)4CuaXm9H6xt4u`hp>4hVP1+2Cm!X-SiVc`nVF`-jXDn5#{0+#|YFoAQi z$ENUuvc;w-yX6zH-40KVdN5;)8U&QBsu?;`9Yvy>N<57EZVJZOSEK6!T}--=je7tO zZp7+xIClHiquke&-`^hZ&>6vTq|PNJu~INzLT4-a$x;eigV6PPTyl4m|0<8``pAJT z^55a%q3{25ba1$d|FD*#)ac5~%asX&fmfNm1j0c3syv4!%9ao(AE>?Zn|5$w6hybW z*W0MC?0?&mSbfLBx8xq&BgNXxtL_9~(*fH7RK2Pxshrk3y@6&4`miJZYldVE8h@ya zm?;)8qslYgm1tf0Ob*Mr84ZeiWzR56KtAIDbAU78rjHzB|9-OO4pml-eBrR@WIKp* zA@&)W2Y--Pk#pZdr6+9L9ao(s(qU`#6)OCz+z{8*OpO!Z+07nsoj&N#OWQc9eqVXc zIgBS$l<}A1*kWh=eR%8V$4WoR(w+ay&>KtnfVJ@d{gdZ@{)dCZ=bQImYbjkAunxLX zvNywxIGWlF$W#Tc(Og=sWnEW2P{G??iAFL|OgI6q0s1o#Afk#n^p8IVySuw~eZMEFfFv18!v&%yE&p1CrAiY z;y2OGmDybKSM)M;T32j(rI1(R71>REAI4g9o&^d-@8nV{c!jhkm!|Ben^j5)gQ{up zYHDRSQ=77m(vkjq?|S-)fo=DHrw1n<{XaZ8-NgT1OHqCbm4Ic^{<8w}PbHRFFXK<8 z_2b_O;^}SKp<`Wfae1QKK?l7)H-wcXZoDb}Lp%U=#uzD93M9H+xFrg3VkHU!zG+du*5{;3(>wN| z-7ABnx9tK^HUhcmGwj3m>0Tt7;Gdt{En-*sPd#{E?g?ni`_F@;=l=W8gM;IZ{ckNr z$A6NmyRu8aB8Fu@Y0tD;y_9GB?aQ}>Buf|Iph!-EKFGLHo#J|!qfndHCM;L#DYhj_ z{poQe$p#rx_3PKKksI}*__ej1sDBN}hs6_xLP(UEb)s$X%wRAy_MYYpXl8d>_F*%1 zKYdYTQq|oI!Hw9g>Y*}bAVCb@X3F9Fp3pnB^3uoM05L5i-&JbaM_ToFr>et#g0E^+ z6(KG&%nc(8nVvp*Kf0Q&*SPt5`OrzvhunmuvjrI)7DNInfl$OqI!98Nkco1tUh|Gm zUP-;$o$u@e0BH!Fj*5plQ{&|X6iBv==9Bd>{Fv0H z2dXq?$9GrLG^Gu6x0K!zl=^GP+9xaP7lO#rGo{jMT_DOY8Ji*M=bf{Ty?v^2#?dW> z;hf?oIaW=58BN)QWbRTaa3NBIyppk z$qk*Mx98X3`r`cct0;(4B_Ug}0AigAfuR0)`-v}xw}^K#PUxR;5(TDj+q{4O8zb3v z5OaxOAZmz&vCC7o`$bZH2`EIrwFg{OW6%*CGL3U>j|%8d~9MWM1Gd!Q1WP51Gxwkk>ST^f_k zF>z#a&k9=~LH~;`d6Cz^(7DJSOSF2S<9yQF$pWz%; z2HpQW#mz@)scl<5R#q>oI9pC$hX)_9Ea@S6RR7+1BQ%zd_FtVEfI$w!ywD<~J4EieWaaC42an zshr-=(yH#=IAKLoDiiEf5cf^m8)o_EEgkv4e*JSLv#a%$0^0n)j}CqQe|U7fiT}Qq zQt|(GR(dr);9hFJdSSq+*i9gC(Y3?^_Xl4%aQAbKh~QMR1cfT-zV71gK${%L12}Yc zArImISn`3>R}}2KkAu0lWj3znk5xL-|3J3O?p&bV|J(QfIXXVwy#HBCkt8c8Nm8ut zNUrY6e1U>_QhWIY1tC1XCwQKWYSpuK!( zdE}~7vqBe;AkX>Se82ytkNihDTrT=UtNeF-dhEadI}kr_1mrt4XghI`{#210Rw~&w%61Zgx@L8fgPgd! zMn+(emFi`LT0yQ^l#}yS=Qvs?zsXjOcN#Xu$4rl~^g?r+nHJH+igPMhTt1s97$y4o_iX zmW6zCZTZChp4i9irT2`kMY>!*Q0dxyk6SzH9IUjM=04!N`^^-KSRrG<6er!~x(?1M z-6Mi}li(tS|3mGfKqi>28AESLf-bK@e!mXg^-eK}wlb2SUvTa_jCyceTykA>@PAyj zkR185Ezd_qSCQ52XF;Z{36bV}{Uo9g0?HrViECh2Lt|Vo+D3LK9?Sixe3iP&{}dC7 z`9h|8UGe?j(dnrl|Ml?b_;@4#ucIiIr&kxqJdKrJ6g>AO_+T&cQz1Nx9ewJRl>1Sy3ZCRbxmHBg;dDXAZ-uTp_r##G5 z>=MV0CgR3ZxZbCF#Z&yw%i>`FpvR0hwOXOM*kxCrkfFG%{5Ox6PXFE(|Ks@J)Q|tU ze|Wly|FM>$DDC$bt26%2Y4M1cabA2d0?S*n;eBNwV%DczBh~f$wIcNe2M9DSIyQKR>HF$ z@$%W;Y?aB7_b~FbN=kvpGJb^FeJ~UMzfgh4$QVTOJo|e~{3`XTXDMb}RSG;FkdGo;G4i|fliFD30g!=|H)>&sQd=xCiA znIM*7BC{@wp$%h(hj;&j4KWGFC

F8z@RBp4Wn^&X}7~T0S+cO|TvbmsWV&H!2bnHwR6hM{RrJy(gRf_4s&)e~=mGI}s3(I)Am)iQKKpW- z>AXg2Yc&tMgYV_6u^Jn(GvIoMjg{$j_EK7k-S-z@SMR`Lk$fkM1|6xx9x9K$gF$u4Y53ieV)o$o}h>$ep7;3l(06USzDDkh$o!)3geH zA;Mcrio*((dX0}+%y8fl{umH1WSyuugfl+5Moe(ynqOaH7Lz%mix7qCr1F2vO8*1Y z{s-t!%W6+6)tw$mb20(q?q(xIGsKaQKlkK*+Knf5+4CI;TJvh(6Ka=As7v^m%E)^y z*mP$k57UEe_?yT}pIPa6|3^n~`3t}{|F5G1-~Vg>==sL~Yb`~^fBNeDVpU#WVyE=H z08~v@@8hLB+hpA9QYZssLW{c#(K8!%i~BE+K);~>qKSQJDgWMmibunu=RUWTVn;My zPs%lW`m|62jaJ97nlS7p#D*nYm@w&|spr(AxInGzj#6&PZq82foIS0N)8!b%>5Oso z15OaQLko})q+;>Q%gP-9852smdL9st{_<=B*}tQOHz5)%6>y`@w}f`1U?lR&CS9$A zlp^t;kYCiFrF515$c&?91;Ez$U;F<1-~H3WjsMqLN+tg1d$H0hiT)|~jN`mtjrgVN zc%iC6eZ|c@!wbF2kh^do;HDM^T&S!W{1JIn2e9g(`fJ(a(xu}Yk|DIz>QjcW!6`z z;afAY`ATLt2w}*<^$^cQB8Ve5vlruR(wBlli&n zpf%=vj(u|5W@qW&(_@)iHkqE6EM4V4mHzxu;(r|-A6DLfJwMsRe_czlIMM1vKYfDw z34B(b`NtLWwD-9!;i)fABG;+Ddx>;vrW)lqRb_?JTTMRyM!`+B`TXAP*DXN(OosF*`QMHYpZoql2L~Jb-+GEB z9V*@Zid=y7X6Y>e>Q+zT2xRtmH&-B2yPr3ZZsiJ|>eCZRp0e|PqNiG;X4zBKd3xs{ zjY*YNUS^mZ?vn+Q?>vcw+O}K`a_aJH*0^fDq}IJJ!7EuMAcUw*E&!E4C}Jd?BPkQe zSeA`(V(Y!Q!tW2{4Q&wZK=c58jQwj@<;CNSKsoRjFEJfC5_6`;%LyouY#GfbE7O0{ zE@b8?^icy8rC-5&+Xf+B?XJ&AO4poxBc^}!rJwwN9>-*s^|b@H*?$iYEBF7$$ImzN z|2m2z|Lf&lu^ynIE~gF@jh|2}08k;(^`(G!SeDWf%u-a91@p^O>I@o(B~%Bq$GWHx zrs_wdNoa&N4-WoJ(qge=`$=<}W_)&1T|tmH!rkXky2^i6sFvPF;5Pa1^vJ*eKRh_x z-2bnoxJhkR=K`Si%QB(=-KJ}B2eA5c#4S5I(e9Ikn6**sC2Og69isj_(V151E?`e; zKT*qS`5C$nG_OqCs{EP#2$spb^-;JIJWvXC_ChxiwCV7D?4kZ`^kv|V z@}C=oZpHS$(_=sX|KZ8u!AAaDM+pSWTbU5(M;_}X2KtR3Ul8*~n3hRRjwu^;s+s{uhY+a%b%kyWJ4wsJi`B8|7Jwr&Y-|N(kVcSs- zZ8`6stR=K>M9q&`3S3J5>uCmTlmDJq-hUsR9B%UeucZWtXIvx!UA+*vj6pC6Vcp_j z#XJ}|5g&zI*xOj>Ngf@HhJm3!o|w3V2{8cRvlkd!EQ)PQwhq`XKylqVSOzJU7KDUFCm5?@|Jj zr4)b``Tu19fMd~g# zYA3O~c5Czzv7JtYG_AV8DhfZz#Eyhq6U+pVtc<_E17=KpVkkv1C$y_AwAH9-hMSY* zI!7^J1Yj;xmt=qCU<`38y3KG3a)L8%SVd*u2Q!ywpnCglkfWHR1pK5M z{Va2+aH6uOL~Z9_X;I(TAflHjPsw76GTu+7PONsTk??_5Z2pf5%6MryKom9VM9mVFfB+PBEdFFP3rmsl*|F+x;hVVxp{`cPWrlnH-dV6QBifQpJcx#PI7PmH#Lb*BS8AN^zsLna}2(c zAb<&2U`$rDYN1X#E>BwpjTSV$COOLJ?0afnZ}j9lOqZ_p^9)M=mXd?2fX+xQf(_5 zQHh+`IHvlr{QSE~D%-SW3Nfx|*GDL@HbUJF=$doP>fajL$02uvdcO6k`R+eVY_DD9 zPLgytdb(!8S`mINIZhDW5p+miROt^UHun_rcp~&xEZU|iV0SoI z;(1_b4KFH`q+!4>k$D6}IYndqLC{u~`U}#b@364l_gTjy=`78X*r)s=_Rm%N>3>X| zty$VL4@}$pkE4@n{Fl>B{Fk*9mF`|I>#9{g19v$suWbGJid``SPTptr?a8A5>He2c z-mcBmHEC}YMTJJRb_3pUz+KkdI<<<+VCkD@}9Y<{CPtiSY=|J^VWuRC4J}j zEhP{EEb6m{KpFlwA|HC zIWM2BqS1Zzy06^k-sjVj{A%~W=X3EBrUsvys<_%{Ne&$Qv{e)NN zBfI>m6T&un+^18T^}o5~fP25-4EGKCZ0B<+f#)1Xub z@wj~7p@w8Xc-T_kR0YAh9L1rrp_rJOcF)KZbJH3`dXn6y7F$y>_lXNZuE)DMqW2VY z3}Mj?hr)k_oxyy%j#`=33uU5`OHc;`mg1Vp7;Kyw9)^QYW$aj{Z0IrwG<~y zlOX#GBM-{(1N!m56t82FafmZ8LFp7AN{g@qnh{{3ZO>quEvwM> z8(vBDRaBd-;M$x3HX--sPpLo&CahrVahDNp%xka&$yK{Y;GWFV1l+@nt5^%1!kAki zNR}>kz-Y$72*q$FjV$G=7h^e#b_$!&B?q^NGmt|nRthp8)dL}5U@mrwSn*r*!KiQI ztK2mAkS2PE6+BJ`iYRPK7g8$O1$ti028Ef%R&J{)T!@VV0Yz+$IvbZ$tuDCph`A1GYxYB8a9*487N-b{}Re4c6&uyc>5|wa+T5U6vNJZXgsDZN;w^ zZq0ioHFRsOHafy*UHZ`f1kG`bIuLxXw9)^g!;^~t@9~EIucfrn|8mXy6MWUSp5~XZ zL(wPf);d~}`V_o>b2x&k*MlE8eLXfy$Ps0jag@cVA0x0EKA8MlzzorM*2`WI8N$l# z%N4|5%9cPaC3u&m3-FVI_A`)6CltaFDx%rp43vwn^od)-!B1bXpQFIayC$>c9=dNz zu=Jt-cnWXP)hta_c#qDEppE_?98}{!ogQxJ|2j&m9lg5d{TYD=q@E)LdTW>e^I4jz zE84zlKoGA-r~h8B{dj=i_`!U@188_bc*!jhm!SKqaRa?Cp|=Y4x^8b8Z{zUzv|aVqlcwuN52xh{P(j0;>EF=qO{tbX z^xsk$d+~sF`%fkR^XcL94gFt7X`}z%n)l}c7Jzy_;Pv90gEAC=)6*uT+xKN3)o%Z^ z=Ar6JcCisfR~95~Ad)Lr7>L+JUOLyAhvc1ew6Op^PU%Je3GHt5u}Ta5KRi6D$p43% z_#f*jt@K~7c`e~L|F(W+^SC7S!}2eSMQrhDer;Ft0zx=#9J=YWl<3uYLArfJvZ_NE ztE5D8E>ZPTaW7(fcb0gmjw`%M)_+@JJ%on&j_${czFji{J=U@d8@YhziNQ!^9lEj* zYk9iE5EZmn^=Gmc1-$yr%16blL@vhL0iob&rq;h((!YXz|E-SRWB#NyaA9j0Q88DX z&gx=T2f48&ZxrBsLBpK{Ths`G^TiD2pM-|TV3oSAI1%hG)V$}G-7xU=mp=So6NXjW z{|=8U@t+T$AD?Xa|2j$=|F_n>lkR6o=e26rm*uoEo9!yIX7l*14&r4C6uv^EyKs5R zqrJ#4c%vK9%OKeJE?*DGj^$!4Len#RJ;o*CdDXr5t4M*}qyXlM0L^+^WjU36&}B8N zQi7R0TS#E@I4C2iu4*Pr{n#cU*xS58NU#~|!)1h$zlKBvGXuRP1mB)e?527_p{_{> zdEqhlTSzFWAqT~DZ3Xp|&t5d?!~fk_5f>@!co*2}|FQ4u|0hTL8~(qR(#HR5*1W$R zSO;IJC+Rgkwfld}d*2B3?@Mu+{(L z#Ml2e`5)I+`qBTjkp9n->_3R)ubkX(Nd2a$@&NkZ`2lFV{O{BM)BS@@{Kqn(kZ^p2t_ODqlNzO zpB#DbKMzh0PdD=aTFPI*733VzOa>28iw^E5C-&pqkYLIN!&}Vv7M*w^I>wk zC;rF$$>!N!2}nJJ2V3Over62msDm2(J)w61XCS8}nZ=^v4uA}#B)bjXqyq6P<}w97 zrYPp=0x&r>I*c^55!4}KlNwNDJjOAGDWE7P40A#kJ0OM}rsNh7ssRrR>|x3Xn8G^* za*F4Whf_ZRFeQn~7cK}XCvwCUY~>WhdJ1-GAW2FuV`MvXG#u2_7Yj5dX-e(|XNVy~ z3_yx@Kr%xb6HGw{`AmEiOkpZ6%9?#!*DRTm`DZfCFICD*oXTk`@8!GyZZ-44SilsrK8x_)WE4F+G! zAY)@fr>Z|VA~OzPDww&F2~<@%YASWZDayDC?<}V3nvD6q*iVBzMUWvCnJeaJAVs$@ z{l7S!A;qhPgx(GYZwbdS8Vtm?tfOSl+529%osTOz-2lFif<`Nq3veq)KLZOgldGbph7&nYJBmgMa;pMeCrDCMJVyg@pqY?U6U-DtLQ*wG z2^8K^m`?^OBA)<-GswjZUXDd~w08CEpqA4-U6jO{qJPXVRb*)p&!`~W=|c30(TsyqNvu0V;~ zPAx=vfFws`gV4P02w?!QnT{YzTzaOoM{~Sko~IbG0YhRXIZ79j4Img#nzy6b7S^ed z=Wh<_V$cl)MUuTFf{U6Z7!C$Mn(2&5#&R6b$c&{6BSkoa5l2(@Q%s`-0&`d(c2wm9Rj)Iij5h&w|`uv9-Sx>9#FToG*-v2weyareA-+h1i^3_Z5?(N|Gt&nogufgTD;P79aUteAi zb(44R!MCs8zxwJ&@bdEd;`RCEn`?0X`Zf6B{Qdj$w>OusuEF`+m*C>v+n1L&m+#(Q z?+jl3$JP5+*Vo|PdvN*Y>hVnZ%fkOQtzO zDY+MtdFa={;4+iM2`7kJ=g*RU>c?v6riJyODhEp2zpQG8xl9PUd#nJqvH zIiiO8OWjQTP;g!q)tbr0fE)|4NG?bSS^(C)*lJ=1%l2Z@rU+(C!Dd>8DTikWU1bz8 zlq%Z@6_J@GWfCoKDO4G&YT<K7@}OW$`4$u;9HW3wHpowNA8ZZ1&iTea6ANWi9A|LrEpo6W+mEG z02jkg!RTw1kp1`ltMiv{UJa+oiu!21|37{1+kcM_HvYeBDa9?wYn7*EF!;+~z*{&K z%)F-#G-K$I&hF!CTG>Q#O9L0aHaaG7yL$1oNx@Q2;4_eu{^?PS`+zYhlg3Ir@A z2<-kV_`6$6TD}$df0YRtWIajW(T5nJgn`o|nJ);&T + occ db:add-missing-indices
+ occ db:add-missing-columns
+ occ db:add-missing-primary-keys
+ yes | occ db:convert-filecache-bigint
+ occ maintenance:mimetype:update-js
+ occ maintenance:mimetype:update-db
+ occ maintenance:update:htaccess
+ schema: + type: boolean + default: false + - variable: default_phone_region + label: Default Phone Region + description: | + Sets the default phone region in ISO_3166-1 format (e.g. US).
+ https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#Officially_assigned_code_elements + schema: + type: string + valid_chars: '^[A-Z]{2}$' + required: true + default: "" + - variable: accessIP + label: Access IP + description: Set to the IP-Address used to reach Nextcloud. + schema: + type: string + required: true + $ref: + - "definitions/nodeIP" + - variable: force_enable_allow_local_remote_servers + label: Force Enable Allow Local Remote Servers + description: + Enables 'allow_local_remote_servers' option + schema: + type: boolean + default: false + - variable: files + label: Files Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: shared_folder_name + label: Shared Folder Name + schema: + type: string + required: true + default: Shared + - variable: max_chunk_size + label: Max Chunk Size + schema: + type: int + required: true + default: 10485760 + - variable: expirations + label: Expirations Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: activity_expire_days + label: Activity Expire Days + schema: + type: int + required: true + default: 90 + - variable: trash_retention_obligation + label: Trash Retention Obligation + schema: + type: string + required: true + default: auto + - variable: versions_retention_obligation + label: Versions Retention Obligation + schema: + type: string + required: true + default: auto + - variable: previews + label: Previews Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Previews + schema: + type: boolean + default: true + show_subquestions_if: true + subquestions: + - variable: imaginary + label: Enable imaginary + description: | + Enable imaginary to generate previews in the background.
+ It will also deploy the needed container. + schema: + type: boolean + default: true + - variable: cron + label: Enable cron + description: | + Enable cron to generate previews in the background. + schema: + type: boolean + default: true + - variable: schedule + label: Cron Schedule + schema: + type: string + default: "*/30 * * * *" + - variable: max_x + label: Max X + schema: + type: int + required: true + default: 2048 + - variable: max_y + label: Max Y + schema: + type: int + required: true + default: 2048 + - variable: max_memory + label: Max Memory + schema: + type: int + required: true + default: 1024 + - variable: max_allowed_resolution + label: Max Allowed Resolution + schema: + type: string + valid_chars: '^[0-9]{1,5}(\.[0-9]{1,2})?$' + show_if: [["imaginary", "=", true]] + required: true + default: "18.0" + - variable: max_file_size_image + label: Max File Size Image + schema: + type: int + required: true + default: 50 + - variable: jpeg_quality + label: JPEG Quality + schema: + type: int + required: true + default: 60 + - variable: square_sizes + label: Square Sizes + schema: + type: string + required: true + default: "32 256" + - variable: width_sizes + label: Width Sizes + schema: + type: string + required: true + default: "256 384" + - variable: height_sizes + label: Height Sizes + schema: + type: string + required: true + default: "256" + - variable: providers + label: Providers + schema: + type: list + empty: false + required: true + default: + - BMP + - GIF + - JPEG + - Krita + - MarkDown + - MP3 + - OpenDocument + - PNG + - TXT + - XBitmap + items: + - variable: provider_entry + label: Provider Entry + schema: + type: string + required: true + default: "" + enum: + - value: BMP + description: BMP + - value: Font + description: Font + - value: GIF + description: GIF + - value: HEIC + description: HEIC + - value: Illustrator + description: Illustrator + - value: JPEG + description: JPEG + - value: Krita + description: Krita + - value: MarkDown + description: MarkDown + - value: Movie + description: Movie + - value: MP3 + description: MP3 + - value: MSOffice2003 + description: MSOffice2003 + - value: MSOffice2007 + description: MSOffice2007 + - value: MSOfficeDoc + description: MSOfficeDoc + - value: OpenDocument + description: OpenDocument + - value: PDF + description: PDF + - value: Photoshop + description: Photoshop + - value: PNG + description: PNG + - value: Postscript + description: Postscript + - value: StarOffice + description: StarOffice + - value: SVG + description: SVG + - value: TIFF + description: TIFF + - value: TXT + description: TXT + - value: XBitmap + description: XBitmap + - variable: logging + label: Logging Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: log_level + label: Log Level + schema: + type: int + required: true + default: 2 + enum: + - value: 0 + description: Debug + - value: 1 + description: Info + - value: 2 + description: Warning + - value: 3 + description: Error + - value: 4 + description: Fatal + - variable: log_date_format + label: Log Date Format + schema: + type: string + required: true + default: d/m/Y H:i:s + - variable: notify_push + label: Notify Push Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Notify Push + description: | + Enable and Configure Notify Push.
+ It will also deploy the needed container + schema: + type: boolean + default: true + - variable: clamav + label: ClamAV Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable ClamAV + description: | + Enable and configure ClamAV.
+ It will also deploy the needed container.
+ Keep in mind that this will run as root.
+ https://github.com/Cisco-Talos/clamav/issues/478 + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: stream_max_length + label: Stream Max Length + schema: + type: int + required: true + default: 104857600 + - variable: file_max_size + label: File Max Size + schema: + type: int + required: true + default: -1 + - variable: infected_action + label: Infected Action + schema: + type: string + required: true + default: only_log + enum: + - value: delete + description: Delete + - value: only_log + description: Only Log + - variable: collabora + label: Collabora Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Collabora + description: | + Enable and configure Collabora.
+ It will also deploy the needed container.
+ Keep in mind that this will run as root. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: interface_mode + label: Interface Mode + schema: + type: string + required: true + default: default + enum: + - value: default + description: Default + - value: compact + description: Compact + - value: tabbed + description: Tabbed + - variable: username + label: Username + schema: + type: string + default: admin + required: true + - variable: password + label: Password + schema: + type: string + default: "" + required: true + - variable: dictionaries + label: Dictionaries + schema: + type: list + empty: false + required: true + default: + - de_DE + - en_GB + - en_US + - el_GR + - es_ES + - fr_FR + - pt_BR + - pt_PT + - it + - nl + - ru + items: + - variable: dictionary + label: Dictionary + schema: + type: string + required: true + default: "" + - variable: onlyoffice + label: Only Office Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable OnlyOffice + description: | + Enable and configure OnlyOffice.
+ This will NOT deploy the needed container.
+ You need to deploy it yourself. + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: url + label: Public URL + description: | + The public FQDN and port of the OnlyOffice Document Server + schema: + type: string + required: true + default: "" + - variable: internal_url + label: Internal URL + description: | + The internal FQDN and port of the OnlyOffice Document Server + schema: + type: string + required: true + default: "" + - variable: verify_ssl + label: Verify SSL (Advanced) + description: | + Verify SSL when connecting to OnlyOffice Document Server + schema: + type: boolean + default: true + - variable: jwt + label: JWT + schema: + type: string + required: true + default: "" + - variable: jwt_header + label: JWT Header + schema: + type: string + required: true + default: Authorization + - variable: php + label: PHP Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: memory_limit + label: Memory Limit + schema: + type: string + required: true + default: 1G + - variable: upload_limit + label: Upload Limit + schema: + type: string + required: true + default: 10G + - variable: pm_max_children + label: Max Children + schema: + type: int + required: true + default: 180 + - variable: pm_start_servers + label: Start Servers + schema: + type: int + required: true + default: 18 + - variable: pm_min_spare_servers + label: Minimum Spare Servers + schema: + type: int + required: true + default: 12 + - variable: pm_max_spare_servers + label: Maximum Spare Servers + schema: + type: int + required: true + default: 30 + - variable: opcache + label: OPCache Configuration + schema: + additional_attrs: true + type: dict + attrs: + - variable: interned_strings_buffer + label: Interned Strings Buffer + description: The amount of memory used to store interned strings, in megabytes. + schema: + type: int + required: true + default: 32 + - variable: max_accelerated_files + label: Max Accelerated Files + description: The maximum number of keys (and therefore scripts) in the OPcache hash table. + schema: + type: int + required: true + default: 10000 + - variable: memory_consumption + label: Memory Consumption + description: The size of the shared memory storage used by OPcache, in megabytes. + schema: + type: int + required: true + default: 128 + - variable: revalidate_freq + label: Revalidate Frequency + description: How often to check script timestamps for updates, in seconds. 0 will result in OPcache checking for updates on every request. + schema: + type: int + required: true + default: 60 + - variable: jit_buffer_size + label: JIT Buffer Size + description: The amount of shared memory (in megabytes) to reserve for compiled JIT code. A zero value disables the JIT. + schema: + type: int + required: true + default: 128 + - variable: serviceList + label: Add Manual Custom Services + group: Networking and Services + schema: + type: list + default: [] + items: + - variable: serviceListEntry + label: Custom Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the service + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: LoadBalancer + description: LoadBalancer (Expose Ports) + - value: ClusterIP + description: ClusterIP (Do Not Expose Ports) + - value: Simple + description: Deprecated CHANGE THIS + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: advancedsvcset + label: Show Advanced Service Settings + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: externalIPs + label: "External IP's" + description: "External IP's" + schema: + type: list + default: [] + items: + - variable: externalIP + label: External IP + schema: + type: string + - variable: ipFamilyPolicy + label: IP Family Policy + description: Specify the IP Policy + schema: + type: string + default: SingleStack + enum: + - value: SingleStack + description: SingleStack + - value: PreferDualStack + description: PreferDualStack + - value: RequireDualStack + description: RequireDualStack + - variable: ipFamilies + label: IP Families + description: (Advanced) The IP Families that should be used + schema: + type: list + default: [] + items: + - variable: ipFamily + label: IP Family + schema: + type: string + - variable: portsList + label: Additional Service Ports + schema: + type: list + default: [] + items: + - variable: portsListEntry + label: Custom ports + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Port + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Port Name + schema: + type: string + default: "" + - variable: protocol + label: Port Type + schema: + type: string + default: tcp + enum: + - value: http + description: HTTP + - value: https + description: HTTPS + - value: tcp + description: TCP + - value: udp + description: UDP + - variable: targetPort + label: Target Port + description: This port exposes the container port on the service + schema: + type: int + required: true + - variable: port + label: Container Port + schema: + type: int + required: true + - variable: persistence + label: Integrated Persistent Storage + description: Integrated Persistent Storage + group: Storage and Persistence + schema: + additional_attrs: true + type: dict + attrs: + - variable: html + label: App HTML Storage + description: Stores the Application HTML. + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: config + label: App Config Storage + description: Stores the Application Config. + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: data + label: User Data Storage + description: Stores the User Data. + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: pvc + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - value: iscsi + description: iSCSI Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size quotum of Storage (Do NOT REDUCE after installation) + description: This value can ONLY be INCREASED after the installation + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: disabled + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: persistenceList + label: Additional App Storage + group: Storage and Persistence + schema: + type: list + default: [] + items: + - variable: persistenceListEntry + label: Custom Storage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the storage + schema: + type: boolean + default: true + hidden: true + - variable: type + label: Type of Storage + description: Sets the persistence type, Anything other than PVC could break rollback! + schema: + type: string + default: hostPath + enum: + - value: pvc + description: PVC + - value: hostPath + description: Host Path + - value: emptyDir + description: emptyDir + - value: nfs + description: NFS Share + - variable: server + label: NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: path + label: Path on NFS Server + schema: + show_if: [["type", "=", "nfs"]] + type: string + default: "" + - variable: iscsi + label: iSCSI Options + schema: + show_if: [["type", "=", "iscsi"]] + type: dict + additional_attrs: true + attrs: + - variable: targetPortal + label: targetPortal + schema: + type: string + required: true + default: "" + - variable: iqn + label: iqn + schema: + type: string + required: true + default: "" + - variable: lun + label: lun + schema: + type: int + default: 0 + - variable: authSession + label: authSession + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: authDiscovery + label: authDiscovery + schema: + type: dict + additional_attrs: true + attrs: + - variable: username + label: username + schema: + type: string + default: "" + - variable: password + label: password + schema: + type: string + default: "" + - variable: usernameInitiator + label: usernameInitiator + schema: + type: string + default: "" + - variable: passwordInitiator + label: passwordInitiator + schema: + type: string + default: "" + - variable: autoPermissions + label: Automatic Permissions Configuration + description: Automatically set permissions + schema: + show_if: [["type", "!=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: chown + label: Run CHOWN + description: | + It will run CHOWN on the path with the given fsGroup + schema: + type: boolean + default: false + - variable: chmod + label: Run CHMOD + description: | + It will run CHMOD on the path with the given value
+ Format should be 3 digits, e.g. 770 + schema: + type: string + valid_chars: '[0-9]{3}' + default: "" + - variable: recursive + label: Recursive + description: | + It will run CHOWN and CHMOD recursively + schema: + type: boolean + default: false + - variable: readOnly + label: Read Only + schema: + type: boolean + default: false + - variable: hostPath + label: Host Path + description: Path inside the container the storage is mounted + schema: + show_if: [["type", "=", "hostPath"]] + type: hostpath + - variable: mountPath + label: Mount Path + description: Path inside the container the storage is mounted + schema: + type: string + default: "" + required: true + valid_chars: '^\/([a-zA-Z0-9._-]+(\s?[a-zA-Z0-9._-]+|\/?))+$' + - variable: medium + label: EmptyDir Medium + schema: + show_if: [["type", "=", "emptyDir"]] + type: string + default: "" + enum: + - value: "" + description: Default + - value: Memory + description: Memory + - variable: size + label: Size Quotum of Storage + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: 256Gi + - variable: storageClass + label: 'storageClass (Advanced)' + description: 'sets the storageClass to something other than iX default. Only for advanced usecases!' + schema: + show_if: [["type", "=", "pvc"]] + type: string + default: "" + - variable: static + label: 'Static Fixed PVC Bindings (Experimental)' + description: Link a PVC to a specific storage location + schema: + show_if: [["type", "=", "pvc"]] + type: dict + additional_attrs: true + attrs: + - variable: mode + label: mode + description: | + disabled: use normal dynamic PVCs + smb: connect to an SMB share + nfs: connect to an NFS share + schema: + type: string + default: "disabled" + enum: + - value: "disabled" + description: disabled + - value: smb + description: smb + - value: nfs + description: nfs + - variable: server + label: Server + description: server to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "myserver" + - variable: share + label: Share + description: share to connect to + schema: + type: string + show_if: [["mode", "!=", "disabled"]] + default: "/myshare" + - variable: user + label: User + description: connecting user + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "myuser" + - variable: domain + label: Domain + description: user domain + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: password + label: Password + description: connecting password + schema: + type: string + show_if: [["mode", "=", "smb"]] + default: "" + - variable: volumeSnapshots + label: 'Volume Snapshots (Experimental)' + description: Add an entry to the list to force creation of a volumeSnapshot of this PVC + schema: + show_if: [["type", "=", "pvc"]] + type: list + default: [] + items: + - variable: volumeSnapshotEntry + label: Custom volumeSnapshot + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + description: 'WARNING: renaming this, means deletion of the snapshot with the old name!' + schema: + type: string + default: "mysnapshot" + required: true + - variable: volumeSnapshotClassName + label: 'volumeSnapshot Class Name (Advanced)' + description: For use with PVCs using a non-default storageClass + schema: + type: string + default: "" + - variable: ingress + label: "" + group: Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [{path: "/", pathType: "Prefix"}] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name (Optional) + description: Defaults to chart name + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description (Optional) + description: Defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: icon + label: Icon (Optional) + description: Defaults to chart icon + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: widget + label: Widget Settings + schema: + type: dict + additional_attrs: true + show_if: [["enabled", "=", true]] + attrs: + - variable: enabled + label: Enable Widget + description: When disabled all widget annotations are skipped. + schema: + type: boolean + default: true + - variable: custom + label: Options + schema: + type: dict + additional_attrs: true + attrs: + - variable: key + label: API-key (key) + schema: + type: string + default: "" + - variable: customkv + label: Custom Options + schema: + type: list + default: [] + items: + - variable: option + label: Option + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + default: "" + required: true + - variable: value + label: Value + schema: + type: string + default: "" + required: true + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: ingressList + label: Add Manual Custom Ingresses + group: Ingress + schema: + type: list + default: [] + items: + - variable: ingressListEntry + label: Custom Ingress + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: true + hidden: true + - variable: name + label: Name + schema: + type: string + default: "" + - variable: ingressClassName + label: IngressClass Name + schema: + type: string + default: "" + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: overrideService + label: Linked Service + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Service Name + schema: + type: string + default: "" + - variable: port + label: Service Port + schema: + type: int + - variable: tls + label: TLS-Settings + schema: + type: list + default: [] + show_if: [["certificateIssuer", "=", ""]] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your Cert-Manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: scaleCert + label: Use TrueNAS SCALE Certificate (Deprecated) + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: Use Custom Secret (Advanced) + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: "Allow Cross Origin Requests" + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: namespace + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: homepage + label: Homepage + description: Connect ingress with Homepage + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: name + label: Name + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: description + label: Description + description: defaults to chart description + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: group + label: Group + schema: + type: string + required: true + default: "default" + show_if: [["enabled", "=", true]] + - variable: securityContext + group: Security and Permissions + label: Security Context + schema: + additional_attrs: true + type: dict + attrs: + - variable: container + label: Container + schema: + additional_attrs: true + type: dict + attrs: + # Settings from questions.yaml get appended here on a per-app basis + - variable: runAsUser + label: runAsUser + description: The UserID of the user running the application + schema: + type: int + default: 568 + - variable: runAsGroup + label: runAsGroup + description: The groupID of the user running the application + schema: + type: int + default: 568 + # Settings from questions.yaml get appended here on a per-app basis + - variable: PUID + label: Process User ID - PUID + description: When supported by the container, this sets the User ID running the Application Process. Not supported by all Apps + schema: + type: int + show_if: [["runAsUser", "=", 0]] + default: 568 + - variable: UMASK + label: UMASK + description: When supported by the container, this sets the UMASK for the App. Not supported by all Apps + schema: + type: string + default: "0022" + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: privileged + label: "Privileged mode" + schema: + type: boolean + default: false + - variable: readOnlyRootFilesystem + label: "ReadOnly Root Filesystem" + schema: + type: boolean + default: true + - variable: pod + label: Pod + schema: + additional_attrs: true + type: dict + attrs: + - variable: fsGroupChangePolicy + label: "When should we take ownership?" + schema: + type: string + default: OnRootMismatch + enum: + - value: OnRootMismatch + description: OnRootMismatch + - value: Always + description: Always + - variable: supplementalGroups + label: Supplemental Groups + schema: + type: list + default: [] + items: + - variable: supplementalGroupsEntry + label: Supplemental Group + schema: + type: int + # Settings from questions.yaml get appended here on a per-app basis + - variable: fsGroup + label: fsGroup + description: The group that should own ALL storage. + schema: + type: int + default: 568 + - variable: resources + group: Resources and Devices + label: "Resource Limits" + schema: + additional_attrs: true + type: dict + attrs: + - variable: limits + label: Advanced Limit Resource Consumption + schema: + additional_attrs: true + type: dict + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 4000m + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: RAM + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 8Gi + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: requests + label: "Minimum Resources Required (request)" + schema: + additional_attrs: true + type: dict + hidden: true + attrs: + - variable: cpu + label: CPU + description: "1000m means 1 hyperthread. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 10m + hidden: true + valid_chars: '^(?!^0(\.0|m|)$)([0-9]+)(\.[0-9]|m?)$' + - variable: memory + label: "RAM" + description: "1Gi means 1 Gibibyte RAM. Detailed info: https://truecharts.org/manual/SCALE/validation" + schema: + type: string + default: 50Mi + hidden: true + valid_chars: '^(?!^0(e[0-9]|[EPTGMK]i?|)$)([0-9]+)(|[EPTGMK]i?|e[0-9]+)$' + - variable: deviceList + label: Mount USB Devices + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: deviceListEntry + label: Device + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable the Storage + schema: + type: boolean + default: true + - variable: type + label: (Advanced) Type of Storage + description: Sets the persistence type + schema: + type: string + default: device + hidden: true + - variable: readOnly + label: readOnly + schema: + type: boolean + default: false + - variable: hostPath + label: Host Device Path + description: Path to the device on the host system + schema: + type: path + - variable: mountPath + label: Container Device Path + description: Path inside the container the device is mounted + schema: + type: string + default: "/dev/ttyACM0" + - variable: scaleGPU + label: GPU Configuration + group: Resources and Devices + schema: + type: list + default: [] + items: + - variable: scaleGPUEntry + label: GPU + schema: + additional_attrs: true + type: dict + attrs: + # Specify GPU configuration + - variable: gpu + label: Select GPU + schema: + additional_attrs: true + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] + - variable: workaround + label: "Workaround" + schema: + type: string + default: workaround + hidden: true + - variable: cnpg + group: Postgresql + label: "CloudNative-PG (CNPG)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: "Main Postgresql Database" + schema: + additional_attrs: true + type: dict + attrs: + - variable: hibernate + label: Hibernate + description: "enable to safely hibernate and shutdown the postgresql cluster" + schema: + type: boolean + default: false + - variable: mode + label: Mode + description: 'Cluster mode of operation. Available modes: standalone - default mode. Creates new or updates an existing CNPG cluster. recovery - Same as standalone but creates a cluster from a backup, object store or via pg_basebackup replica - Creates a replica cluster from an existing CNPG cluster. # TODO.' + schema: + type: string + default: "standalone" + enum: + - value: standalone + description: standalone + - value: replica + description: replica + - value: recovery + description: recovery + - variable: cluster + label: "Cluster Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: instances + label: Instances + schema: + type: int + default: 1 + - variable: singleNode + label: singleNode + schema: + type: boolean + default: true + hidden: true + - variable: storage + label: "Storage" + schema: + additional_attrs: true + type: dict + attrs: + - variable: size + label: Size + schema: + type: string + default: "256Gi" + - variable: walStorage + label: "WAL Storage" + schema: + additional_attrs: true + type: dict + attrs: + - variable: size + label: Size + schema: + type: string + default: "256Gi" + - variable: monitoring + label: "Monitoring Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enablePodMonitor + label: "enablePodMonitor" + schema: + type: boolean + default: true + - variable: disableDefaultQueries + label: "disableDefaultQueries" + schema: + type: boolean + default: false + - variable: pooler + label: "Pooler Settings" + schema: + additional_attrs: true + type: dict + attrs: + - variable: instances + label: Instances + schema: + type: int + default: 1 + - variable: createRO + label: "Create ReadOnly Instance" + schema: + type: boolean + default: false + - variable: recovery + label: "Recovery Settings (Experimental)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + - variable: endpointURL + label: "endpointURL" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: method + label: "method" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "object_store" + - variable: backupName + label: "backupName" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: provider + label: "provider" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "s3" + enum: + - value: s3 + description: S3 + - value: azure + description: Azure + - value: google + description: Google + - variable: s3 + label: "s3" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "s3"]] + attrs: + - variable: region + label: "region" + schema: + type: string + default: "" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: accessKey + label: "accessKey" + schema: + type: string + default: "" + - variable: secretKey + label: "secretKey" + schema: + type: string + default: "" + - variable: azure + label: "azure (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "azure"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: connectionString + label: "connectionString" + schema: + type: string + default: "" + - variable: storageAccount + label: "storageAccount" + schema: + type: string + default: "" + - variable: storageKey + label: "storageKey" + schema: + type: string + default: "" + - variable: storageSasToken + label: "storageSasToken" + schema: + type: string + default: "" + - variable: containerName + label: "containerName" + schema: + type: string + default: "" + - variable: serviceName + label: "serviceName" + schema: + type: string + default: "blob" + - variable: inheritFromAzureAD + label: "inheritFromAzureAD" + schema: + type: boolean + default: false + - variable: google + label: "google (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "google"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: gkeEnvironment + label: "gkeEnvironment" + schema: + type: string + default: "" + - variable: applicationCredentials + label: "applicationCredentials" + schema: + type: string + default: "" + - variable: backups + label: "Backup Settings (Experimental)" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: "enabled" + schema: + type: boolean + default: false + - variable: endpointURL + label: "endpointURL" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: destinationPath + label: "destinationPath" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: retentionPolicy + label: "retentionPolicy" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "30d" + - variable: provider + label: "provider" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "s3" + enum: + - value: s3 + description: S3 + - value: azure + description: Azure + - value: google + description: Google + - variable: s3 + label: "s3" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "s3"]] + attrs: + - variable: region + label: "region" + schema: + type: string + default: "" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: accessKey + label: "accessKey" + schema: + type: string + default: "" + - variable: secretKey + label: "secretKey" + schema: + type: string + default: "" + - variable: azure + label: "azure (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "azure"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: connectionString + label: "connectionString" + schema: + type: string + default: "" + - variable: storageAccount + label: "storageAccount" + schema: + type: string + default: "" + - variable: storageKey + label: "storageKey" + schema: + type: string + show_if: [["enabled", "=", true]] + default: "" + - variable: storageSasToken + label: "storageSasToken" + schema: + type: string + default: "" + - variable: containerName + label: "containerName" + schema: + type: string + default: "" + - variable: serviceName + label: "serviceName" + schema: + type: string + default: "blob" + - variable: inheritFromAzureAD + label: "inheritFromAzureAD" + schema: + type: boolean + default: false + - variable: google + label: "google (EXTREMELY EXPERIMENTAL)" + schema: + additional_attrs: true + type: dict + show_if: [["provider", "=", "google"]] + attrs: + - variable: path + label: "path" + schema: + type: string + default: "/" + - variable: bucket + label: "bucket" + schema: + type: string + default: "" + - variable: gkeEnvironment + label: "gkeEnvironment" + schema: + type: string + default: "" + - variable: applicationCredentials + label: "applicationCredentials" + schema: + type: string + default: "" + - variable: scheduledBackups + label: ScheduledBackups + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: backupschedule + label: BackupSchedule + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "daily-backup" + required: true + - variable: schedule + label: schedule + schema: + type: string + required: true + default: "0 0 0 * * *" + - variable: backupOwnerReference + label: backupOwnerReference + schema: + type: string + required: true + default: "self" + - variable: immediate + label: immediate + schema: + type: boolean + default: false + - variable: suspend + label: suspend + schema: + type: boolean + default: false + - variable: manualBackups + label: manualBackups + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: backup + label: Backup + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: metrics + group: Metrics + label: Prometheus Metrics + schema: + additional_attrs: true + type: dict + attrs: + - variable: main + label: Main Metrics + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Enable Prometheus Metrics + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: prometheusRule + label: PrometheusRule + description: Enable and configure Prometheus Rules for the App. + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + description: Enable Prometheus Metrics + schema: + type: boolean + default: false + # TODO: Rule List section +# - variable: horizontalPodAutoscaler +# group: Advanced +# label: (Advanced) Horizontal Pod Autoscaler +# schema: +# type: list +# default: [] +# items: +# - variable: hpaEntry +# label: HPA Entry +# schema: +# additional_attrs: true +# type: dict +# attrs: +# - variable: name +# label: Name +# schema: +# type: string +# required: true +# default: "" +# - variable: enabled +# label: Enabled +# schema: +# type: boolean +# default: false +# show_subquestions_if: true +# subquestions: +# - variable: target +# label: Target +# description: Deployment name, Defaults to Main Deployment +# schema: +# type: string +# default: "" +# - variable: minReplicas +# label: Minimum Replicas +# schema: +# type: int +# default: 1 +# - variable: maxReplicas +# label: Maximum Replicas +# schema: +# type: int +# default: 5 +# - variable: targetCPUUtilizationPercentage +# label: Target CPU Utilization Percentage +# schema: +# type: int +# default: 80 +# - variable: targetMemoryUtilizationPercentage +# label: Target Memory Utilization Percentage +# schema: +# type: int +# default: 80 + - variable: networkPolicy + group: Advanced + label: (Advanced) Network Policy + schema: + type: list + default: [] + items: + - variable: netPolicyEntry + label: Network Policy Entry + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + default: "" + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: policyType + label: Policy Type + schema: + type: string + default: "" + enum: + - value: "" + description: Default + - value: ingress + description: Ingress + - value: egress + description: Egress + - value: ingress-egress + description: Ingress and Egress + - variable: egress + label: Egress + schema: + type: list + default: [] + items: + - variable: egressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: to + label: To + schema: + type: list + default: [] + items: + - variable: toEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: ingress + label: Ingress + schema: + type: list + default: [] + items: + - variable: ingressEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: from + label: From + schema: + type: list + default: [] + items: + - variable: fromEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: ipBlock + label: IP Block + schema: + additional_attrs: true + type: dict + attrs: + - variable: cidr + label: CIDR + schema: + type: string + default: "" + - variable: except + label: Except + schema: + type: list + default: [] + items: + - variable: exceptint + label: "" + schema: + type: string + - variable: namespaceSelector + label: Namespace Selector + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: podSelector + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: matchExpressions + label: Match Expressions + schema: + type: list + default: [] + items: + - variable: expressionEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: key + label: Key + schema: + type: string + - variable: operator + label: Operator + schema: + type: string + default: TCP + enum: + - value: In + description: In + - value: NotIn + description: NotIn + - value: Exists + description: Exists + - value: DoesNotExist + description: DoesNotExist + - variable: values + label: Values + schema: + type: list + default: [] + items: + - variable: value + label: "" + schema: + type: string + - variable: ports + label: Ports + schema: + type: list + default: [] + items: + - variable: portsEntry + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + - variable: endPort + label: End Port + schema: + type: int + - variable: protocol + label: Protocol + schema: + type: string + default: TCP + enum: + - value: TCP + description: TCP + - value: UDP + description: UDP + - value: SCTP + description: SCTP + - variable: addons + group: Addons + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: Codeserver + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: service + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Service Type + description: "ClusterIP's are only internally available and Loadbalancer exposes the service using the system loadbalancer" + schema: + type: string + default: LoadBalancer + enum: + - value: NodePort + description: Deprecated CHANGE THIS + - value: ClusterIP + description: ClusterIP + - value: LoadBalancer + description: LoadBalancer + - variable: loadBalancerIP + label: LoadBalancer IP + description: "MetalLB Only: Selects the Loadbalancer IP to expose on. Required when using PortalButton with MetalLB" + schema: + show_if: [["type", "=", "LoadBalancer"]] + type: string + default: "" + - variable: ports + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: codeserver + label: "" + schema: + additional_attrs: true + type: dict + attrs: + - variable: port + label: Port + schema: + type: int + default: 36107 + - variable: ingress + label: "Ingress" + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enable Ingress + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hosts + label: Hosts + schema: + type: list + default: [] + items: + - variable: hostEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: host + label: HostName + schema: + type: string + default: "" + required: true + - variable: paths + label: Paths + schema: + type: list + default: [{path: "/", pathType: "Prefix"}] + items: + - variable: pathEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: path + label: Path + schema: + type: string + required: true + default: "/" + - variable: pathType + label: Path Type + schema: + type: string + required: true + default: Prefix + - variable: integrations + label: Integrations + description: Connect ingress with other charts + schema: + additional_attrs: true + type: dict + attrs: + - variable: traefik + label: Traefik + description: Connect ingress with Traefik + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: true + - variable: allowCors + label: 'Allow Cross Origin Requests (advanced)' + schema: + type: boolean + default: false + show_if: [["enabled", "=", true]] + - variable: entrypoints + label: Entrypoints + schema: + type: list + default: ["websecure"] + show_if: [["enabled", "=", true]] + items: + - variable: entrypoint + label: Entrypoint + schema: + type: string + - variable: middlewares + label: Middlewares + schema: + type: list + default: [] + show_if: [["enabled", "=", true]] + items: + - variable: middleware + label: Middleware + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: name + schema: + type: string + default: "" + required: true + - variable: namespace + label: 'namespace (optional)' + schema: + type: string + default: "" + - variable: certManager + label: certManager + description: Connect ingress with certManager + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: enabled + schema: + type: boolean + default: false + - variable: certificateIssuer + label: certificateIssuer + description: defaults to chartname + schema: + type: string + default: "" + show_if: [["enabled", "=", true]] + - variable: advanced + label: Show Advanced Settings + description: Advanced settings are not covered by TrueCharts Support + schema: + type: boolean + default: false + - variable: ingressClassName + label: (Advanced/Optional) IngressClass Name + schema: + type: string + show_if: [["advanced", "=", true]] + default: "" + - variable: tls + label: TLS-Settings + schema: + type: list + show_if: [["advanced", "=", true]] + default: [] + items: + - variable: tlsEntry + label: Host + schema: + additional_attrs: true + type: dict + attrs: + - variable: hosts + label: Certificate Hosts + schema: + type: list + default: [] + items: + - variable: host + label: Host + schema: + type: string + default: "" + required: true + + - variable: certificateIssuer + label: Use Cert-Manager clusterIssuer + description: 'add the name of your cert-manager clusterIssuer here for automatic tls certificates.' + schema: + type: string + default: "" + - variable: clusterCertificate + label: 'Cluster Certificate (Advanced)' + description: 'Add the name of your cluster-wide certificate, that you set up in the ClusterIssuer chart.' + schema: + type: string + show_if: [["certificateIssuer", "=", ""]] + default: "" + - variable: secretName + label: 'Use Custom Certificate Secret (Advanced)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: string + default: "" + - variable: scaleCert + label: 'Use TrueNAS SCALE Certificate (Deprecated)' + schema: + show_if: [["certificateIssuer", "=", ""]] + type: int + $ref: + - "definitions/certificate" + - variable: envList + label: Codeserver Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: netshoot + label: Netshoot + schema: + additional_attrs: true + type: dict + attrs: + - variable: enabled + label: Enabled + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: envList + label: Netshoot Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + - variable: vpn + label: VPN + schema: + additional_attrs: true + type: dict + attrs: + - variable: type + label: Type + schema: + type: string + default: disabled + enum: + - value: disabled + description: disabled + - value: gluetun + description: Gluetun + - value: tailscale + description: Tailscale + - value: openvpn + description: OpenVPN (Deprecated) + - value: wireguard + description: Wireguard (Deprecated) + - variable: openvpn + label: OpenVPN Settings + schema: + additional_attrs: true + type: dict + show_if: [["type", "=", "openvpn"]] + attrs: + - variable: username + label: Authentication Username (Optional) + description: Authentication Username, Optional + schema: + type: string + default: "" + - variable: password + label: Authentication Password + description: Authentication Credentials + schema: + type: string + show_if: [["username", "!=", ""]] + default: "" + required: true + - variable: tailscale + label: Tailscale Settings + schema: + additional_attrs: true + type: dict + show_if: [["type", "=", "tailscale"]] + attrs: + - variable: authkey + label: Authentication Key + description: Provide an auth key to automatically authenticate the node as your user account. + schema: + type: string + private: true + default: "" + - variable: auth_once + label: Auth Once + description: Only attempt to log in if not already logged in. + schema: + type: boolean + default: true + - variable: accept_dns + label: Accept DNS + description: Accept DNS configuration from the admin console. + schema: + type: boolean + default: false + - variable: userspace + label: Userspace + description: Userspace Networking mode allows running Tailscale where you do not have access to create a VPN tunnel device. + schema: + type: boolean + default: false + - variable: routes + label: Routes + description: Expose physical subnet routes to your entire Tailscale network. + schema: + type: string + default: "" + - variable: dest_ip + label: Destination IP + description: Tells the DNAT mechanism which Destination IP to set in the IP header, and where to send packets that are matched. + schema: + type: string + default: "" + - variable: sock5_server + label: Sock5 Server + description: The address on which to listen for SOCKS5 proxying into the tailscale net. + schema: + type: string + default: "" + - variable: outbound_http_proxy_listen + label: Outbound HTTP Proxy Listen + description: The address on which to listen for HTTP proxying into the tailscale net. + schema: + type: string + default: "" + - variable: extra_args + label: Extra Args + description: Extra Args + schema: + type: string + default: "" + - variable: daemon_extra_args + label: Tailscale Daemon Extra Args + description: Tailscale Daemon Extra Args + schema: + type: string + default: "" + - variable: killSwitch + label: Enable Killswitch + schema: + type: boolean + show_if: [["type", "!=", "disabled"]] + default: true + - variable: excludedNetworks_IPv4 + label: Killswitch Excluded IPv4 networks + description: List of Killswitch Excluded IPv4 Addresses + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv4 + label: IPv4 Network + schema: + type: string + required: true + - variable: excludedNetworks_IPv6 + label: Killswitch Excluded IPv6 networks + description: "List of Killswitch Excluded IPv6 Addresses" + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: networkv6 + label: IPv6 Network + schema: + type: string + required: true + - variable: configFile + label: VPN Config File Location + schema: + type: string + show_if: [["type", "!=", "disabled"]] + default: "" + + - variable: envList + label: VPN Environment Variables + schema: + type: list + show_if: [["type", "!=", "disabled"]] + default: [] + items: + - variable: envItem + label: Environment Variable + schema: + additional_attrs: true + type: dict + attrs: + - variable: name + label: Name + schema: + type: string + required: true + - variable: value + label: Value + schema: + type: string + required: true + max_length: 10240 + - variable: docs + group: Documentation + label: Please read the documentation at https://truecharts.org + description: Please read the documentation at +
https://truecharts.org + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDocs + label: I have checked the documentation + schema: + type: boolean + default: true + - variable: donateNag + group: Documentation + label: Please consider supporting TrueCharts, see https://truecharts.org/sponsor + description: Please consider supporting TrueCharts, see +
https://truecharts.org/sponsor + schema: + additional_attrs: true + type: dict + attrs: + - variable: confirmDonate + label: I have considered donating + schema: + type: boolean + default: true + hidden: true diff --git a/stable/nextcloud/28.1.25/templates/NOTES.txt b/stable/nextcloud/28.1.25/templates/NOTES.txt new file mode 100644 index 00000000000..efcb74cb772 --- /dev/null +++ b/stable/nextcloud/28.1.25/templates/NOTES.txt @@ -0,0 +1 @@ +{{- include "tc.v1.common.lib.chart.notes" $ -}} diff --git a/stable/nextcloud/28.1.25/templates/_configmap.tpl b/stable/nextcloud/28.1.25/templates/_configmap.tpl new file mode 100644 index 00000000000..081cf5d71c2 --- /dev/null +++ b/stable/nextcloud/28.1.25/templates/_configmap.tpl @@ -0,0 +1,443 @@ +{{- define "nextcloud.accessurl" -}} + {{- $accessUrl := .Values.chartContext.appUrl -}} + {{- if or (contains "127.0.0.1" $accessUrl) (contains "localhost" $accessUrl) -}} + {{- if .Values.nextcloud.general.accessIP -}} + {{- $prot := "http" -}} + {{- $host := .Values.nextcloud.general.accessIP -}} + {{- $port := .Values.service.main.ports.main.port -}} + {{/* + Allowing here to override protocol and port + should be enough to make it work with any rev proxy + */}} + {{- $accessUrl = printf "%v://%v:%v" $prot $host $port -}} + {{- end -}} + {{- end -}} + + {{- $accessUrl -}} +{{- end -}} + +{{- define "nextcloud.accesshost" -}} + {{- $accessUrl := (include "nextcloud.accessurl" $) -}} + {{- $accessHost := regexReplaceAll ".*://(.*)" $accessUrl "${1}" -}} + {{- $accessHost = regexReplaceAll "(.*):.*" $accessHost "${1}" -}} + + {{- $accessHost -}} +{{- end -}} + +{{/* Define the configmap */}} +{{- define "nextcloud.configmaps" -}} +{{- $fullname := (include "tc.v1.common.lib.chart.names.fullname" $) -}} +{{- $fqdn := (include "tc.v1.common.lib.chart.names.fqdn" $) -}} +{{- $accessUrl := (include "nextcloud.accessurl" $) -}} +{{- $accessHost := (include "nextcloud.accesshost" $) -}} +{{- $accessHostPort := regexReplaceAll ".*://(.*)" $accessUrl "${1}" -}} +{{- $accessProtocol := regexReplaceAll "(.*)://.*" $accessUrl "${1}" -}} +{{- $redisHost := .Values.redis.creds.plainhost | trimAll "\"" -}} +{{- $redisPass := .Values.redis.creds.redisPassword | trimAll "\"" -}} +{{- $healthHost := "kube.internal.healthcheck" -}} + +php-tune: + enabled: true + data: + zz-tune.conf: | + [www] + pm.max_children = {{ .Values.nextcloud.php.pm_max_children }} + pm.start_servers = {{ .Values.nextcloud.php.pm_start_servers }} + pm.min_spare_servers = {{ .Values.nextcloud.php.pm_min_spare_servers }} + pm.max_spare_servers = {{ .Values.nextcloud.php.pm_max_spare_servers }} + +opcache: + enabled: true + data: + opcache-recommended.ini: | + opcache.enable=1 + opcache.save_comments=1 + opcache.jit=1255 + opcache.interned_strings_buffer={{ .Values.nextcloud.opcache.interned_strings_buffer }} + opcache.max_accelerated_files={{ .Values.nextcloud.opcache.max_accelerated_files }} + opcache.memory_consumption={{ .Values.nextcloud.opcache.memory_consumption }} + opcache.revalidate_freq={{ .Values.nextcloud.opcache.revalidate_freq }} + opcache.jit_buffer_size={{ printf "%vM" .Values.nextcloud.opcache.jit_buffer_size }} + +redis-session: + enabled: true + data: + redis-session.ini: | + session.save_handler = redis + session.save_path = {{ printf "tcp://%v:6379?auth=%v" $redisHost $redisPass | quote }} + redis.session.locking_enabled = 1 + redis.session.lock_retries = -1 + redis.session.lock_wait_time = 10000 + +hpb-config: + enabled: {{ .Values.nextcloud.notify_push.enabled }} + data: + NEXTCLOUD_URL: {{ printf "http://%v:%v" $fullname .Values.service.main.ports.main.port }} + HPB_HOST: {{ $healthHost }} + CONFIG_FILE: {{ printf "%v/config.php" .Values.persistence.config.targetSelector.notify.notify.mountPath }} + METRICS_PORT: {{ .Values.service.notify.ports.metrics.port | quote }} + +clamav-config: + enabled: {{ .Values.nextcloud.clamav.enabled }} + data: + CLAMAV_NO_CLAMD: "false" + CLAMAV_NO_FRESHCLAMD: "true" + CLAMAV_NO_MILTERD: "true" + CLAMD_STARTUP_TIMEOUT: "1800" + +collabora-config: + enabled: {{ .Values.nextcloud.collabora.enabled }} + data: + aliasgroup1: {{ $accessUrl }} + server_name: {{ $accessHostPort }} + dictionaries: {{ join " " .Values.nextcloud.collabora.dictionaries }} + username: {{ .Values.nextcloud.collabora.username | quote }} + password: {{ .Values.nextcloud.collabora.password | quote }} + DONT_GEN_SSL_CERT: "true" + # mount_jail_tree is only used for local storage + # not needed for WOPI https://github.com/CollaboraOnline/online/issues/3604#issuecomment-989833814 + extra_params: | + --o:ssl.enable=false + --o:ssl.termination=true + --o:net.service_root=/collabora + --o:home_mode.enable=true + --o:welcome.enable=false + --o:logging.level=warning + --o:logging.level_startup=warning + --o:security.seccomp=true + --o:mount_jail_tree=false + --o:user_interface.mode={{ .Values.nextcloud.collabora.interface_mode }} + +nextcloud-config: + enabled: true + data: + {{/* Database */}} + POSTGRES_DB: {{ .Values.cnpg.main.database | quote }} + POSTGRES_USER: {{ .Values.cnpg.main.user | quote }} + POSTGRES_PASSWORD: {{ .Values.cnpg.main.creds.password | trimAll "\"" }} + POSTGRES_HOST: {{ .Values.cnpg.main.creds.host | trimAll "\"" }} + + {{/* Redis */}} + NX_REDIS_HOST: {{ $redisHost }} + NX_REDIS_PASS: {{ $redisPass }} + + {{/* Nextcloud INITIAL credentials */}} + NEXTCLOUD_ADMIN_USER: {{ .Values.nextcloud.credentials.initialAdminUser | quote }} + NEXTCLOUD_ADMIN_PASSWORD: {{ .Values.nextcloud.credentials.initialAdminPassword | quote }} + + {{/* PHP Variables */}} + PHP_MEMORY_LIMIT: {{ .Values.nextcloud.php.memory_limit | quote }} + PHP_UPLOAD_LIMIT: {{ .Values.nextcloud.php.upload_limit | quote }} + + {{/* Notify Push */}} + NX_NOTIFY_PUSH: {{ .Values.nextcloud.notify_push.enabled | quote }} + {{- if .Values.nextcloud.notify_push.enabled }} + NX_NOTIFY_PUSH_ENDPOINT: {{ $accessUrl }}/push + {{- end }} + + {{/* Previews */}} + NX_PREVIEWS: {{ .Values.nextcloud.previews.enabled | quote }} + NX_PREVIEW_PROVIDERS: {{ join " " .Values.nextcloud.previews.providers }} + NX_PREVIEW_MAX_X: {{ .Values.nextcloud.previews.max_x | quote }} + NX_PREVIEW_MAX_Y: {{ .Values.nextcloud.previews.max_y | quote }} + NX_PREVIEW_MAX_MEMORY: {{ .Values.nextcloud.previews.max_memory | quote }} + NX_PREVIEW_MAX_FILESIZE_IMAGE: {{ .Values.nextcloud.previews.max_file_size_image | quote }} + NX_JPEG_QUALITY: {{ .Values.nextcloud.previews.jpeg_quality | quote }} + NX_PREVIEW_SQUARE_SIZES: {{ .Values.nextcloud.previews.square_sizes | quote }} + NX_PREVIEW_WIDTH_SIZES: {{ .Values.nextcloud.previews.width_sizes | quote }} + NX_PREVIEW_HEIGHT_SIZES: {{ .Values.nextcloud.previews.height_sizes | quote }} + + {{/* Imaginary */}} + NX_IMAGINARY: {{ and .Values.nextcloud.previews.enabled .Values.nextcloud.previews.imaginary | quote }} + {{- if and .Values.nextcloud.previews.enabled .Values.nextcloud.previews.imaginary }} + NX_IMAGINARY_URL: {{ printf "http://%v-imaginary:%v" $fullname .Values.service.imaginary.ports.imaginary.port }} + {{- end }} + + {{/* Expirations */}} + NX_ACTIVITY_EXPIRE_DAYS: {{ .Values.nextcloud.expirations.activity_expire_days | quote }} + NX_TRASH_RETENTION: {{ .Values.nextcloud.expirations.trash_retention_obligation | quote }} + NX_VERSIONS_RETENTION: {{ .Values.nextcloud.expirations.versions_retention_obligation | quote }} + + {{/* General */}} + NX_RUN_OPTIMIZE: {{ .Values.nextcloud.general.run_optimize | quote }} + NX_DEFAULT_PHONE_REGION: {{ .Values.nextcloud.general.default_phone_region | quote }} + NEXTCLOUD_DATA_DIR: {{ .Values.persistence.data.targetSelector.main.main.mountPath }} + NX_FORCE_ENABLE_ALLOW_LOCAL_REMOTE_SERVERS: {{ .Values.nextcloud.general.force_enable_allow_local_remote_servers | quote }} + + {{/* Files */}} + NX_SHARED_FOLDER_NAME: {{ .Values.nextcloud.files.shared_folder_name | quote }} + NX_MAX_CHUNKSIZE: {{ .Values.nextcloud.files.max_chunk_size | mul 1 | quote }} + + {{/* Logging */}} + NX_LOG_LEVEL: {{ .Values.nextcloud.logging.log_level | quote }} + NX_LOG_FILE: {{ .Values.nextcloud.logging.log_file | quote }} + NX_LOG_FILE_AUDIT: {{ .Values.nextcloud.logging.log_audit_file | quote }} + NX_LOG_DATE_FORMAT: {{ .Values.nextcloud.logging.log_date_format | quote }} + NX_LOG_TIMEZONE: {{ .Values.TZ | quote }} + + {{/* ClamAV */}} + NX_CLAMAV: {{ .Values.nextcloud.clamav.enabled | quote }} + {{- if .Values.nextcloud.clamav.enabled }} + NX_CLAMAV_HOST: {{ printf "%v-clamav" $fullname }} + NX_CLAMAV_PORT: {{ .Values.service.clamav.ports.clamav.targetPort | quote }} + NX_CLAMAV_STREAM_MAX_LENGTH: {{ .Values.nextcloud.clamav.stream_max_length | mul 1 | quote }} + NX_CLAMAV_FILE_MAX_SIZE: {{ .Values.nextcloud.clamav.file_max_size | quote }} + NX_CLAMAV_INFECTED_ACTION: {{ .Values.nextcloud.clamav.infected_action | quote }} + {{- end }} + + {{/* Collabora */}} + NX_COLLABORA: {{ .Values.nextcloud.collabora.enabled | quote }} + {{- if .Values.nextcloud.collabora.enabled }} + NX_COLLABORA_URL: {{ printf "%v/collabora" $accessUrl | quote }} + # Ideally this would be a combo of: public ip, pod cidr, svc cidr + # But not always people have static IP. + NX_COLLABORA_ALLOWLIST: "0.0.0.0/0" + {{- end }} + + {{/* Only Office */}} + NX_ONLYOFFICE: {{ .Values.nextcloud.onlyoffice.enabled | quote }} + {{- if .Values.nextcloud.onlyoffice.enabled }} + NX_ONLYOFFICE_URL: {{ .Values.nextcloud.onlyoffice.url | quote }} + NX_ONLYOFFICE_INTERNAL_URL: {{ .Values.nextcloud.onlyoffice.internal_url | quote }} + NX_ONLYOFFICE_VERIFY_SSL: {{ .Values.nextcloud.onlyoffice.verify_ssl | quote }} + NX_ONLYOFFICE_NEXTCLOUD_INTERNAL_URL: {{ printf "http://%v.svc.cluster.local:%v" $fqdn .Values.service.main.ports.main.port }} + NX_ONLYOFFICE_JWT: {{ .Values.nextcloud.onlyoffice.jwt | quote }} + NX_ONLYOFFICE_JWT_HEADER: {{ .Values.nextcloud.onlyoffice.jwt_header | quote }} + {{- end }} + + {{/* URLs */}} + NX_OVERWRITE_HOST: {{ $accessHostPort }} + NX_OVERWRITE_CLI_URL: {{ $accessUrl }} + # Return the protocol part of the URL + NX_OVERWRITE_PROTOCOL: {{ $accessProtocol | lower }} + # IP (or range in this case) of the proxy(ies) + NX_TRUSTED_PROXIES: | + {{ .Values.chartContext.podCIDR }} + {{ .Values.chartContext.svcCIDR }} + # fullname-* will allow access from the + # other services in the same namespace + NX_TRUSTED_DOMAINS: | + 127.0.0.1 + localhost + {{ $fullname }} + {{ printf "%v-*" $fullname }} + {{ $healthHost }} + {{- if not (contains "127.0.0.1" $accessHost) }} + {{- $accessHost | nindent 6 }} + {{- end -}} + {{- with .Values.nextcloud.general.accessIP }} + {{- . | nindent 6 }} + {{- end }} + +# TODO: Replace locations with ingress +# like /push, /.well-known/carddav, /.well-known/caldav +# needs some work as nginx converts urls to pretty urls +# before matching them to locations, so ingress needs to +# take that into consideration. +nginx-config: + enabled: true + data: + nginx.conf: | + worker_processes auto; + + error_log /var/log/nginx/error.log warn; + # Set to /tmp so it can run as non-root + pid /tmp/nginx.pid; + + events { + worker_connections 1024; + } + + http { + # Set to /tmp so it can run as non-root + client_body_temp_path /tmp/nginx/client_temp; + proxy_temp_path /tmp/nginx/proxy_temp_path; + fastcgi_temp_path /tmp/nginx/fastcgi_temp; + uwsgi_temp_path /tmp/nginx/uwsgi_temp; + scgi_temp_path /tmp/nginx/scgi_temp; + + include /etc/nginx/mime.types; + default_type application/octet-stream; + + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log main; + + sendfile on; + #tcp_nopush on; + + # Prevent nginx HTTP Server Detection + server_tokens off; + + keepalive_timeout 65; + + #gzip on; + + upstream php-handler { + server {{ printf "%v-nextcloud" $fullname }}:{{ .Values.service.nextcloud.ports.nextcloud.targetPort }}; + } + + server { + listen {{ .Values.service.main.ports.main.port }}; + absolute_redirect off; + + {{- if .Values.nextcloud.notify_push.enabled }} + # Forward Notify_Push "High Performance Backend" to it's own container + location ^~ /push/ { + # The trailing "/" is important! + proxy_pass http://{{ printf "%v-notify" $fullname }}:{{ .Values.service.notify.ports.notify.targetPort }}/; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "Upgrade"; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + } + {{- end }} + + # HSTS settings + # WARNING: Only add the preload option once you read about + # the consequences in https://hstspreload.org/. This option + # will add the domain to a hardcoded list that is shipped + # in all major browsers and getting removed from this list + # could take several months. + #add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload;" always; + + # Set max upload size + client_max_body_size {{ .Values.nextcloud.php.upload_limit | default "512M" }}; + fastcgi_buffers 64 4K; + + # Enable gzip but do not remove ETag headers + gzip on; + gzip_vary on; + gzip_comp_level 4; + gzip_min_length 256; + gzip_proxied expired no-cache no-store private no_last_modified no_etag auth; + gzip_types application/atom+xml text/javascript application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy; + + # Pagespeed is not supported by Nextcloud, so if your server is built + # with the `ngx_pagespeed` module, uncomment this line to disable it. + #pagespeed off; + + include mime.types; + types { + text/javascript js mjs; + } + + # HTTP response headers borrowed from Nextcloud `.htaccess` + add_header Referrer-Policy "no-referrer" always; + add_header X-Content-Type-Options "nosniff" always; + add_header X-Download-Options "noopen" always; + add_header X-Frame-Options "SAMEORIGIN" always; + add_header X-Permitted-Cross-Domain-Policies "none" always; + add_header X-Robots-Tag "noindex, nofollow" always; + add_header X-XSS-Protection "1; mode=block" always; + + # Remove X-Powered-By, which is an information leak + fastcgi_hide_header X-Powered-By; + + # Path to the root of your installation + root {{ .Values.persistence.html.targetSelector.nginx.nginx.mountPath }}; + + # Specify how to handle directories -- specifying `/index.php$request_uri` + # here as the fallback means that Nginx always exhibits the desired behaviour + # when a client requests a path that corresponds to a directory that exists + # on the server. In particular, if that directory contains an index.php file, + # that file is correctly served; if it doesn't, then the request is passed to + # the front-end controller. This consistent behaviour means that we don't need + # to specify custom rules for certain paths (e.g. images and other assets, + # `/updater`, `/ocm-provider`, `/ocs-provider`), and thus + # `try_files $uri $uri/ /index.php$request_uri` + # always provides the desired behaviour. + index index.php index.html /index.php$request_uri; + + # Rule borrowed from `.htaccess` to handle Microsoft DAV clients + location = / { + if ( $http_user_agent ~ ^DavClnt ) { + return 302 /remote.php/webdav/$is_args$args; + } + } + + location = /robots.txt { + allow all; + log_not_found off; + access_log off; + } + + # Make a regex exception for `/.well-known` so that clients can still + # access it despite the existence of the regex rule + # `location ~ /(\.|autotest|...)` which would otherwise handle requests + # for `/.well-known`. + location ^~ /.well-known { + # The rules in this block are an adaptation of the rules + # in `.htaccess` that concern `/.well-known`. + + location = /.well-known/carddav { return 301 /remote.php/dav/; } + location = /.well-known/caldav { return 301 /remote.php/dav/; } + + location /.well-known/acme-challenge { try_files $uri $uri/ =404; } + location /.well-known/pki-validation { try_files $uri $uri/ =404; } + + # Let Nextcloud's API for `/.well-known` URIs handle all other + # requests by passing them to the front-end controller. + return 301 /index.php$request_uri; + } + + # Rules borrowed from `.htaccess` to hide certain paths from clients + location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/) { return 404; } + location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { return 404; } + + # Ensure this block, which passes PHP files to the PHP process, is above the blocks + # which handle static assets (as seen below). If this block is not declared first, + # then Nginx will encounter an infinite rewriting loop when it prepends `/index.php` + # to the URI, resulting in a HTTP 500 error response. + location ~ \.php(?:$|/) { + # Required for legacy support + rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+|.+\/richdocumentscode\/proxy) /index.php$request_uri; + + fastcgi_split_path_info ^(.+?\.php)(/.*)$; + set $path_info $fastcgi_path_info; + + try_files $fastcgi_script_name =404; + + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param PATH_INFO $path_info; + #fastcgi_param HTTPS on; + + fastcgi_param modHeadersAvailable true; # Avoid sending the security headers twice + fastcgi_param front_controller_active true; # Enable pretty urls + fastcgi_pass php-handler; + + fastcgi_intercept_errors on; + fastcgi_request_buffering off; + proxy_send_timeout 3600s; + proxy_read_timeout 3600s; + fastcgi_send_timeout 3600s; + fastcgi_read_timeout 3600s; + } + + location ~ \.(?:css|js|svg|gif)$ { + try_files $uri /index.php$request_uri; + expires 6M; # Cache-Control policy borrowed from `.htaccess` + access_log off; # Optional: Don't log access to assets + } + + location ~ \.woff2?$ { + try_files $uri /index.php$request_uri; + expires 7d; # Cache-Control policy borrowed from `.htaccess` + access_log off; # Optional: Don't log access to assets + } + + # Rule borrowed from `.htaccess` + location /remote { + return 301 /remote.php$request_uri; + } + + location / { + try_files $uri $uri/ /index.php$request_uri; + } + } + } +{{- end -}} diff --git a/stable/nextcloud/28.1.25/templates/_cronjobs.tpl b/stable/nextcloud/28.1.25/templates/_cronjobs.tpl new file mode 100644 index 00000000000..0fa050dba68 --- /dev/null +++ b/stable/nextcloud/28.1.25/templates/_cronjobs.tpl @@ -0,0 +1,34 @@ +{{- define "nextcloud.cronjobs" -}} +{{- range $cj := .Values.cronjobs }} + {{- $name := $cj.name | required "Nextcloud - Expected non-empty name in cronjob" -}} + {{- $schedule := $cj.schedule | required "Nextcloud - Expected non-empty schedule in cronjob" }} + +{{ $name }}: + enabled: {{ $cj.enabled | quote }} + type: CronJob + schedule: {{ $schedule | quote }} + podSpec: + restartPolicy: Never + containers: + {{ $name }}: + enabled: true + primary: true + imageSelector: image + command: + - /bin/bash + - -c + - | + {{- range $cj.cmd }} + {{- . | nindent 12 }} + {{- else -}} + {{- fail "Nextcloud - Expected non-empty cmd in cronjob" -}} + {{- end }} + probes: + liveness: + enabled: false + readiness: + enabled: false + startup: + enabled: false +{{- end }} +{{- end -}} diff --git a/stable/nextcloud/28.1.25/templates/_ingressInjector.tpl b/stable/nextcloud/28.1.25/templates/_ingressInjector.tpl new file mode 100644 index 00000000000..f99f5bd5047 --- /dev/null +++ b/stable/nextcloud/28.1.25/templates/_ingressInjector.tpl @@ -0,0 +1,23 @@ +{{- define "nextcloud.ingressInjector" -}} + {{- if .Values.ingress.main.enabled -}} + {{- $injectPaths := list -}} + {{- if .Values.nextcloud.collabora.enabled -}} + {{- $injectPaths = mustAppend $injectPaths (include "nextcloud.collabora.ingress" $ | fromYaml) -}} + {{- end -}} + {{/* Append more paths here if needed */}} + + {{- range $host := .Values.ingress.main.hosts -}} + {{- $paths := $host.paths -}} + {{- $paths = concat $paths $injectPaths -}} + {{- $_ := set $host "paths" $paths -}} + {{- end -}} + {{- end -}} +{{- end -}} + +{{- define "nextcloud.collabora.ingress" -}} +path: /collabora/ +pathType: Prefix +overrideService: + name: collabora + port: {{ .Values.service.collabora.ports.collabora.port }} +{{- end -}} diff --git a/stable/nextcloud/28.1.25/templates/_initPerms.tpl b/stable/nextcloud/28.1.25/templates/_initPerms.tpl new file mode 100644 index 00000000000..ed94790ad93 --- /dev/null +++ b/stable/nextcloud/28.1.25/templates/_initPerms.tpl @@ -0,0 +1,29 @@ +{{- define "nextcloud.init.perms" -}} +{{- $uid := .Values.securityContext.container.runAsUser -}} +{{- $gid := .Values.securityContext.container.runAsGroup -}} +{{- $path := .Values.persistence.data.targetSelector.main.main.mountPath }} +enabled: true +type: install +imageSelector: alpineImage +securityContext: + runAsUser: 0 + runAsGroup: 0 + runAsNonRoot: false + capabilities: + disableS6Caps: true + add: + - DAC_OVERRIDE + - FOWNER + - CHOWN +command: /bin/sh +args: + - -c + - | + echo "Setting permissions to 700 on data directory [{{ $path }}] ..." + chmod 770 {{ $path }} | echo "Failed to set permissions on data directory [{{ $path }}]" + + echo "Setting ownership to {{ $uid }}:{{ $gid }} on data directory [{{ $path }}] ..." + chown {{ $uid }}:{{ $gid }} {{ $path }} | echo "Failed to set ownership on data directory [{{ $path }}]" + + echo "Finished." +{{- end -}} diff --git a/stable/nextcloud/28.1.25/templates/_validation.tpl b/stable/nextcloud/28.1.25/templates/_validation.tpl new file mode 100644 index 00000000000..5650c0f63fe --- /dev/null +++ b/stable/nextcloud/28.1.25/templates/_validation.tpl @@ -0,0 +1,42 @@ +{{- define "nextcloud.validation" -}} + + {{- if not (mustRegexMatch "^[0-9]+(M|G){1}$" .Values.nextcloud.php.memory_limit) -}} + {{- fail (printf "Nextcloud - Expected Memory Limit to be in format [1M, 1G] but got [%v]" .Values.nextcloud.php.memory_limit) -}} + {{- end -}} + + {{- if not (mustRegexMatch "^[0-9]+(M|G){1}$" .Values.nextcloud.php.upload_limit) -}} + {{- fail (printf "Nextcloud - Expected Memory Limit to be in format [1M, 1G] but got [%v]" .Values.nextcloud.php.upload_limit) -}} + {{- end -}} + + {{- if not (deepEqual .Values.nextcloud.previews.providers (uniq .Values.nextcloud.previews.providers)) -}} + {{- fail (printf "Nextcloud - Expected preview providers to be unique but got [%v]" .Values.nextcloud.previews.providers) -}} + {{- end -}} + + {{- if and .Values.nextcloud.collabora.enabled .Values.nextcloud.onlyoffice.enabled -}} + {{- fail "Nextcloud - Expected only one of [Collabora, OnlyOffice] to be enabled" -}} + {{- end -}} + + {{- if contains "$" .Values.nextcloud.collabora.password -}} + {{- fail "Nextcloud - Collabora [Password] cannot contain [$]" -}} + {{- end -}} + + {{- if .Values.nextcloud.collabora.enabled -}} + {{- if lt (len .Values.nextcloud.collabora.password) 8 -}} + {{- fail "Nextcloud - Collabora [Password] must be at least 8 characters" -}} + {{- end -}} + + {{- $collaboraUIModes := (list "default" "compact" "tabbed") -}} + {{- if not (mustHas .Values.nextcloud.collabora.interface_mode $collaboraUIModes) -}} + {{- fail (printf "Nextcloud - Expected [Interface Mode] in Collabora to be one of [%v], but got [%v]" (join "," $collaboraUIModes) .Values.nextcloud.collabora.interface_mode) -}} + {{- end -}} + + {{- if not .Values.nextcloud.collabora.dictionaries -}} + {{- fail "Nextcloud - Expected non-empty Collabora [Dictionaries]" -}} + {{- end -}} + + {{- if not (deepEqual .Values.nextcloud.collabora.dictionaries (uniq .Values.nextcloud.collabora.dictionaries)) -}} + {{- fail "Nextcloud - Collabora [Dictionaries] must be unique" -}} + {{- end -}} + {{- end -}} + +{{- end -}} diff --git a/stable/nextcloud/28.1.25/templates/_waitNextcloud.tpl b/stable/nextcloud/28.1.25/templates/_waitNextcloud.tpl new file mode 100644 index 00000000000..24946d640e8 --- /dev/null +++ b/stable/nextcloud/28.1.25/templates/_waitNextcloud.tpl @@ -0,0 +1,25 @@ +{{- define "nextcloud.wait.nextcloud" -}} +{{- $fullname := (include "tc.v1.common.lib.chart.names.fullname" $) -}} +{{- $ncURL := printf "%v-nextcloud:%v" $fullname .Values.service.nextcloud.ports.nextcloud.targetPort }} +enabled: true +type: init +imageSelector: image +securityContext: +command: /bin/sh +args: + - -c + - | + echo "Waiting Nextcloud [{{ $ncURL }}] to be ready and installed..." + until \ + REQUEST_METHOD="GET" \ + SCRIPT_NAME="status.php" \ + SCRIPT_FILENAME="status.php" \ + cgi-fcgi -bind -connect "{{ $ncURL }}" | grep -q '"installed":true'; + do + echo "Waiting Nextcloud [{{ $ncURL }}] to be ready and installed..." + sleep 3 + done + + echo "Nextcloud is ready and installed..." + echo "Starting Nginx..." +{{- end -}} diff --git a/stable/nextcloud/28.1.25/templates/common.yaml b/stable/nextcloud/28.1.25/templates/common.yaml new file mode 100644 index 00000000000..d7576a0fb57 --- /dev/null +++ b/stable/nextcloud/28.1.25/templates/common.yaml @@ -0,0 +1,92 @@ +{{- $selector := dict -}} +{{- range $name := (list "main" "nextcloud-cron" "preview-cron") -}} + {{/* creates main: {} */}} + {{- $_ := set $selector $name dict -}} + {{/* sets main: {} to main: { main: {} } */}} + {{- $_ := set (get $selector $name) $name dict -}} +{{- end -}} + +{{- range $item := .Values.persistenceList -}} + {{- $_ := set $item "targetSelector" $selector -}} +{{- end -}} + +{{/* Make sure all variables are set properly */}} +{{- include "tc.v1.common.loader.init" . -}} + +{{- include "nextcloud.validation" $ -}} + +{{/* Render configmaps for all pods */}} +{{- $configmaps := include "nextcloud.configmaps" . | fromYaml -}} +{{- if $configmaps -}} + {{- $_ := mustMergeOverwrite .Values.configmap $configmaps -}} +{{- end -}} + +{{/* Create hostAliases (resolve ingress host to Node/LB IP) */}} +{{- $hostAlias := (list (dict + "ip" .Values.nextcloud.general.accessIP + "hostnames" ( + list (include "nextcloud.accesshost" $) + ) + )) -}} + +{{/* Add [hostAliases] to nextcloud and collabora pod */}} +{{- $_ := set .Values.workload.main.podSpec "hostAliases" $hostAlias -}} +{{- $_ := set .Values.workload.collabora.podSpec "hostAliases" $hostAlias -}} + +{{/* Add [init perms] container to nextcloud */}} +{{- if not (get .Values.workload.main.podSpec "initContainers") -}} + {{- $_ := set .Values.workload.main.podSpec "initContainers" dict -}} +{{- end -}} + +{{- $initPerms := (include "nextcloud.init.perms" . | fromYaml) -}} +{{- $_ := set .Values.workload.main.podSpec.initContainers "init-perms" $initPerms -}} + +{{/* Add [wait nextcloud] container to nginx */}} +{{- if not (get .Values.workload.nginx.podSpec "initContainers") -}} + {{- $_ := set .Values.workload.nginx.podSpec "initContainers" dict -}} +{{- end -}} +{{- $waitNextcloud := (include "nextcloud.wait.nextcloud" . | fromYaml) -}} +{{- $_ := set .Values.workload.nginx.podSpec.initContainers "wait-nextcloud" $waitNextcloud -}} + +{{/* Disable [notify push] if requested */}} +{{- if not .Values.nextcloud.notify_push.enabled -}} + {{- $_ := set .Values.workload.notify "enabled" false -}} + {{- $_ := set .Values.service.notify "enabled" false -}} +{{- else -}} + {{/* Add [wait nextcloud] container to notify push */}} + {{- if not (get .Values.workload.notify.podSpec "initContainers") -}} + {{- $_ := set .Values.workload.notify.podSpec "initContainers" dict -}} + {{- end -}} + {{- $waitNextcloud := (include "nextcloud.wait.nextcloud" . | fromYaml) -}} + {{- $_ := set .Values.workload.notify.podSpec.initContainers "wait-nextcloud" $waitNextcloud -}} +{{- end -}} + +{{/* Disable [clamav] if requested */}} +{{- if not .Values.nextcloud.clamav.enabled -}} + {{- $_ := set .Values.workload.clamav "enabled" false -}} + {{- $_ := set .Values.service.clamav "enabled" false -}} +{{- end -}} + +{{/* Disable [previews] if requested */}} +{{- if or (not .Values.nextcloud.previews.imaginary) (not .Values.nextcloud.previews.enabled) -}} + {{- $_ := set .Values.workload.imaginary "enabled" false -}} + {{- $_ := set .Values.service.imaginary "enabled" false -}} +{{- end -}} + +{{/* Disable [collabora] if requested */}} +{{- if not .Values.nextcloud.collabora.enabled -}} + {{- $_ := set .Values.workload.collabora "enabled" false -}} + {{- $_ := set .Values.service.collabora "enabled" false -}} +{{- end -}} + +{{/* Create [cronjobs] defined */}} +{{- $cronjobs := include "nextcloud.cronjobs" . | fromYaml -}} +{{- if $cronjobs -}} + {{- $_ := mustMergeOverwrite .Values.workload $cronjobs -}} +{{- end -}} + +{{/* TODO: Do we have to cleanup when something (eg Collabora) is disabled? */}} +{{- include "nextcloud.ingressInjector" $ -}} + +{{/* Render the templates */}} +{{- include "tc.v1.common.loader.apply" . -}} diff --git a/stable/nextcloud/28.1.25/values.yaml b/stable/nextcloud/28.1.25/values.yaml new file mode 100644 index 00000000000..e69de29bb2d