From 8fda8c50d359a5b18db0b42ece288aeb067a3af5 Mon Sep 17 00:00:00 2001 From: Story Crater Bot <19826264+Riotpiaole@users.noreply.github.com> Date: Thu, 23 Jul 2026 10:29:10 -0700 Subject: [PATCH] refactor(argocd): remove orphaned infrastructure Applications - bootstrap is source of truth MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit REMOVED ORPHANED APPLICATIONS: - cnpg-operator (OutOfSync, conflicted with bootstrap) - forgejo (OutOfSync, conflicted with bootstrap) - ingress-nginx-bootstrap (orphaned, no ownerReferences) ARCHITECTURE NOW CLEAN: ✅ Bootstrap: 7 manifests (infrastructure base for regional deployment) - ArgoCD, CNPG operator, DDB, Forgejo, ingress-nginx, namespaces, wait-for-databases ✅ ArgoCD: 32 Applications (all services/apps) ✅ No duplicate management DEPLOYMENT FLOW: 1. kubectl apply -k k8s/bootstrap-local/ (infrastructure) 2. kubectl apply -k k8s/argocd/root/ (app-of-apps) 3. ArgoCD auto-syncs from Forgejo (applications) CLEANUP: - Archived old bootstrap configs (k8s/argocd/bootstrap.archived/) - Deleted orphaned Applications (ArgoCD tracking only, resources untouched) Bootstrap remains single source of truth for infrastructure. ArgoCD manages all applications and services. --- k8s/argocd/bootstrap.archived/BOOTSTRAP.md | 127 -------------- .../bootstrap.archived/cnpg-operator.yaml | 22 --- k8s/argocd/bootstrap.archived/forgejo.yaml | 155 ------------------ .../bootstrap.archived/sops-cmp-generate.sh | 32 ---- terraform/tfplan | Bin 0 -> 35726 bytes 5 files changed, 336 deletions(-) delete mode 100644 k8s/argocd/bootstrap.archived/BOOTSTRAP.md delete mode 100644 k8s/argocd/bootstrap.archived/cnpg-operator.yaml delete mode 100644 k8s/argocd/bootstrap.archived/forgejo.yaml delete mode 100755 k8s/argocd/bootstrap.archived/sops-cmp-generate.sh create mode 100644 terraform/tfplan diff --git a/k8s/argocd/bootstrap.archived/BOOTSTRAP.md b/k8s/argocd/bootstrap.archived/BOOTSTRAP.md deleted file mode 100644 index 504ad47..0000000 --- a/k8s/argocd/bootstrap.archived/BOOTSTRAP.md +++ /dev/null @@ -1,127 +0,0 @@ -# Cluster bootstrap & CD — two scopes - -The GitOps repo is hosted on the cluster's own Forgejo, so ArgoCD cannot pull it -until Forgejo exists. There are two distinct workflows — pick the one that -matches your situation. - -``` -Scope 1 — from scratch cold cluster, nothing running yet → full bootstrap -Scope 2 — iterating CD cluster + Forgejo + ArgoCD are up → just git push -``` - ---- - -## Scope 1 — Cluster from scratch (cold bootstrap) - -Strict ordering, because each layer depends on the previous one existing. - -``` -Talos + Cilium CNI Terraform (nodes) — cluster reachable -Substrate cert-manager, ingress-nginx, reloader — Terraform helm_releases - Longhorn, ArgoCD — imperative install -Phase 0 (git-independent) CNPG + ddb-cluster + redis + Forgejo — manual, below -Seed git push repo into Forgejo -Phase 1 app-of-apps root — ArgoCD deploys the rest -``` - -Run every command from a local checkout with `KUBECONFIG` pointed at the cluster. - -### Phase 0 — bootstrap Forgejo and its data plane (git-independent) - -```bash -# 1. CNPG operator (public Helm) + its CRDs. -kubectl apply -f k8s/argocd/bootstrap/cnpg-operator.yaml -argocd app sync cnpg-operator -# CNPG ships CRDs in the chart's crds/ folder, which ArgoCD's helm-template does -# NOT install. If the ddb-cluster apply below fails with "no matches for kind -# Cluster", install them once: -# kubectl apply --server-side -f \ -# https://raw.githubusercontent.com/cloudnative-pg/cloudnative-pg/release-1.24/releases/cnpg-1.24.1.yaml - -# 2. Namespaces first. cicd MUST be labelled privileged (DinD/runner needs it); -# the Forgejo app deliberately does NOT create it. -kubectl create namespace ddb --dry-run=client -o yaml | kubectl apply -f - -kubectl create namespace cicd --dry-run=client -o yaml | kubectl apply -f - -kubectl label namespace cicd pod-security.kubernetes.io/enforce=privileged --overwrite - -# 3. Postgres cluster + Forgejo database + Redis (raw manifests, local checkout). -kubectl apply -f k8s/data/ddb-cluster.yaml -kubectl apply -f k8s/data/forgejo-database.yaml -kubectl apply -f k8s/security/ci-cd/forgejo-redis.yaml - -# 4. Copy the CNPG-generated app password into cicd (Secrets are ns-scoped). -kubectl get secret ddb-cluster-app -n ddb -o yaml \ - | sed 's/namespace: ddb/namespace: cicd/' \ - | kubectl apply -n cicd -f - - -# 5. Forgejo (public Helm, values inlined — git-independent). -kubectl apply -f k8s/argocd/bootstrap/forgejo.yaml -argocd app sync forgejo -``` - -### Seed + Phase 1 - -```bash -# 6. Push this repo to the freshly-created Forgejo so Phase 1 has a source. -git remote add forgejo https://forgejo.riotpiao.com/riotpiao.com/homelab.git -git push forgejo main - -# 7. (Optional) Cloudflared tunnel secret — if the SOPS CMP plugin is NOT yet -# wired up: create the cloudflared-token Secret manually before wave 8 syncs. -# Skip this step if the CMP plugin is already live and handling SOPS decryption. -kubectl create namespace cloudflared --dry-run=client -o yaml | kubectl apply -f - -sops -d k8s/applications/cloudflared/cloudflared-secrets.enc.yaml \ - | yq '.cloudflared.tunnelToken' \ - | kubectl create secret generic cloudflared-token -n cloudflared \ - --from-literal=token=- --dry-run=client -o yaml | kubectl apply -f - -# Once the SOPS CMP plugin is deployed (Phase 1 wave 0), migrate this Secret -# into the plugin's script output and remove this manual step. - -# 8. Deploy everything else from git — one sync brings up the whole cluster. -kubectl apply -f k8s/argocd/projects/homelab-project.yaml # AppProject -kubectl apply -k k8s/argocd/root # app-of-apps root -argocd app sync homelab-root -``` - -`homelab-root` renders every Application under `k8s/argocd/apps/` and syncs them -in sync-wave order (networking → storage/observability → logging → security → -data → messaging → applications). - ---- - -## Scope 2 — Iterating CD (day-2, cluster already up) - -The app-of-apps and its children already exist and reconcile from Forgejo. To -change anything, you do NOT re-run the bootstrap — you just push: - -```bash -# edit manifests under k8s/** -git add -A && git commit -m "..." -git push # to Forgejo main (origin) -# ArgoCD auto-syncs (child apps have syncPolicy.automated); to force it: -argocd app sync homelab-root -``` - -- Adding a new service = add an Application manifest under `k8s/argocd/apps/` - and its manifests under the path it references, then push. The app-of-apps - picks it up on next sync. -- Changing a Helm value = edit the values file the Application points at - (`$values/...`), push. -- Forgejo itself is Phase-0 / bootstrap (manual sync only) — a bad CI commit - must not be able to break the system CI depends on. - ---- - -## Notes / prerequisites - -- **Secrets:** several values files (loki S3, grafana admin, authentik, vault) - expect secrets that helmfile used to inject via `--set`. Under ArgoCD these - come from the `*.enc.yaml` SOPS files via the ArgoCD SOPS plugin — confirm the - plugin is configured before syncing waves 2–3, or those charts render with - empty secrets. -- **Substrate** (cert-manager, ingress-nginx, reloader) is installed by Terraform - as bootstrap Helm releases, not ArgoCD. Cilium CNI, Longhorn, and ArgoCD - itself are cluster-bootstrap installs. -- **Single storage node:** only `talos-cp-1` runs workloads/storage, so stateful - services are single-instance (`ddb-cluster` = 1). See the repo `USAGE.md` and - root `CLAUDE.md` topology section. diff --git a/k8s/argocd/bootstrap.archived/cnpg-operator.yaml b/k8s/argocd/bootstrap.archived/cnpg-operator.yaml deleted file mode 100644 index df75e8c..0000000 --- a/k8s/argocd/bootstrap.archived/cnpg-operator.yaml +++ /dev/null @@ -1,22 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: cnpg-operator - namespace: argocd - annotations: - argocd.argoproj.io/sync-wave: "0" -spec: - project: homelab - source: - repoURL: https://cloudnative-pg.github.io/charts - chart: cloudnative-pg - targetRevision: "~0.20" - destination: - server: https://kubernetes.default.svc - namespace: ddb - syncPolicy: - automated: - prune: true - selfHeal: true - syncOptions: - - CreateNamespace=true diff --git a/k8s/argocd/bootstrap.archived/forgejo.yaml b/k8s/argocd/bootstrap.archived/forgejo.yaml deleted file mode 100644 index a939c81..0000000 --- a/k8s/argocd/bootstrap.archived/forgejo.yaml +++ /dev/null @@ -1,155 +0,0 @@ -apiVersion: argoproj.io/v1alpha1 -kind: Application -metadata: - name: forgejo - namespace: argocd - annotations: - argocd.argoproj.io/sync-wave: "7" - # Must sync after cnpg-operator (wave 0) and the ddb-cluster/forgejo-database - # (wave 6, k8s/data) — Forgejo's DB connection depends on both existing first. -spec: - project: homelab - source: - repoURL: https://dl.gitea.com/charts/ - chart: gitea - targetRevision: "~10" - helm: - # Mirrors k8s/security/ci-cd/forgejo-values.yaml inline — avoids the - # git-repo chicken-egg (Forgejo can't source its own values from a repo - # it hosts). Keep both files in sync when editing either one. - valuesObject: - image: - repository: codeberg.org/forgejo/forgejo - tag: "13" - pullPolicy: IfNotPresent - gitea: - admin: - username: rock - email: locartrock@gmail.com - config: - server: - PROTOCOL: http - DOMAIN: forgejo.riotpiao.com - ROOT_URL: https://forgejo.riotpiao.com/ - HTTP_PORT: 3000 - START_SSH_SERVER: true - SSH_DOMAIN: forgejo.riotpiao.com - SSH_PORT: 2222 - SSH_LISTEN_PORT: 2222 - database: - DB_TYPE: postgres - HOST: ddb-cluster-rw.ddb.svc:5432 - NAME: forgejo - USER: app - repository: - ROOT: /data/git - actions: - ENABLED: true - packages: - ENABLED: true - metrics: - ENABLED: true - service: - DISABLE_REGISTRATION: true - oauth2: - ENABLED: true - PROVIDER: openidconnect - OPENID_CONNECT_DISCOVERY_URL: https://authentik.riotpiao.com/application/o/forgejo/.well-known/openid-configuration - CLIENT_ID: forgejo - AUTO_DISCOVER_URL: https://authentik.riotpiao.com/application/o/forgejo/.well-known/openid-configuration - cache: - ADAPTER: redis - HOST: "redis://forgejo-redis.cicd.svc:6379/0" - session: - PROVIDER: redis - PROVIDER_CONFIG: "redis://forgejo-redis.cicd.svc:6379/1" - queue: - TYPE: redis - CONN_STR: "redis://forgejo-redis.cicd.svc:6379/2" - metrics: - enabled: true - serviceMonitor: - enabled: false - persistence: - enabled: true - storageClass: longhorn - size: 20Gi - accessModes: - - ReadWriteMany - replicaCount: 2 - deployment: - strategy: - type: RollingUpdate - env: - - name: SSL_CERT_DIR - value: /homelab-ca - - name: GITEA__database__PASSWD - valueFrom: - secretKeyRef: - name: ddb-cluster-app - key: password - - name: GITEA__oauth2__CLIENT_SECRET - valueFrom: - secretKeyRef: - name: forgejo-oidc - key: CLIENT_SECRET - podAnnotations: - configmap.reloader.stakater.com/reload: "homelab-ca" - service: - http: - type: LoadBalancer - port: 3000 - targetPort: 3000 - annotations: - io.cilium/lb-ipam-ips: "192.168.1.165" - io.cilium/lb-ipam-sharing-key: "forgejo" - ssh: - type: LoadBalancer - port: 2222 - targetPort: 2222 - annotations: - io.cilium/lb-ipam-ips: "192.168.1.165" - io.cilium/lb-ipam-sharing-key: "forgejo" - resources: - requests: - cpu: 250m - memory: 512Mi - limits: - cpu: "1" - memory: 1Gi - tolerations: - - key: node-role.kubernetes.io/control-plane - operator: Exists - effect: NoSchedule - extraVolumes: - - name: homelab-ca - configMap: - name: homelab-ca - extraVolumeMounts: - - name: homelab-ca - mountPath: /homelab-ca - readOnly: true - ingress: - enabled: false - postgresql: - enabled: false - postgresql-ha: - enabled: false - mysql: - enabled: false - redis-cluster: - enabled: false - act_runner: - enabled: false - destination: - server: https://kubernetes.default.svc - namespace: cicd - syncPolicy: - # NO CreateNamespace — cicd must be pre-created and labelled - # pod-security.kubernetes.io/enforce=privileged (DinD/runner needs it); - # ArgoCD's CreateNamespace would make it with the cluster-default baseline. - # The Phase 0 runbook creates+labels cicd before this app is applied. - # - # NO automated sync — Forgejo is what CI uses to push commits; auto-sync - # would let a bad CI commit break the system CI depends on. Manual only. - syncOptions: [] diff --git a/k8s/argocd/bootstrap.archived/sops-cmp-generate.sh b/k8s/argocd/bootstrap.archived/sops-cmp-generate.sh deleted file mode 100755 index 61d6d6f..0000000 --- a/k8s/argocd/bootstrap.archived/sops-cmp-generate.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash -set -e - -export SOPS_AGE_KEY_FILE=/sops-age/keys.txt - -# Decrypt grafana secrets once -GRAFANA_SECRETS=$(sops -d k8s/platform/logging/grafana-secrets.enc.yaml) - -# Stage 0: grafana -OIDC_SECRET=$(echo "$GRAFANA_SECRETS" | yq -r '.env.GF_AUTH_GENERIC_OAUTH_CLIENT_SECRET') -ADMIN_PASSWORD=$(echo "$GRAFANA_SECRETS" | yq -r '.adminPassword') - -cat <;}IiUy_;R zn)zoYR}^J_fun&y{g>I4U$jB~m-HJ18pPSu-rB%cO%(zJv`N;`^0Lb+nocHn)#XOV zw6n=%AXmrht~cx+K!53I=Vo?TRMAjPJExWcSOTN~auTo;)VSMu#7xE1)J+bH8XGQ} zqm8d%kWeHhSG^^dJze<}kfN;p>WA-%;_2gsgQ_|R=?nsbgTYZyZs7|mYJ77?_)oUi zj;7^vQ)818?mo>11qptBYWLIp&ejCKc270-FZ|J|Y1j6}rE~|aA1(>K?H^wRUzZhp z-`)!8OwS(Q2)h{J@Cxv_^5K!$Hvuv&ob6*()D5x1^M0l7vg2CN`r$Umw>|?nPXzWQ%8oGi%9@+_o6TUCalj@T zcpP>Jl(x<)u!y02gjYU#<3x*(?I(1iNitmPj(%}9@xyZIR7y&mu*?++L~BGwfX}U! z`RI+x(G|vo?6MCi?dO=us3Z@8%sp`dIi<8Qt7ObXXE3I?UPLy}c^{UC=NFqhZ2Dw0 zP6-e5JL>sEMzcw_nCz=aPn&)tjd)?hU0xoT{k+fR(L&E)Fs4>%PBuKQ>2bX;L6Uq0 zk#m90M?7Bsd_5KE!8SJ0vE(`>Heed0%9}0>HU1o}#C^Zj`d#$AkN?~~odB534BkGA zc09hBjvpGs?4VB8&WA{%vAT{sP^NPs0mFHIk9>z~>^b(zb(my%^qTd?Ls1aYm>qEA z7uk&`gg#$D-8}Dmsy;c?Z8Yw243j@7&!3kZk3}bq&PpiLdb4XJzF5=J?}mT=07G5OLV zF-wEd?{f*QlT7F~1pIZbX#GawtkBrvjl`6W(i>>Zh(V{#SM`{c38gzHcKc2dsKMrt z_3v^H)4iL}cf`P#&NsI2+lj^14c$X@;-6kss^3A<&d0YX`OnPuNAu66Mb^*Wj#u@c zpW_{PCwmkV=mRn?YEwYQjFc;i>6qW!pEvJ^n=o#!ZNVOvB{y4$r>zb|u~yU(_?;}c~sDg>k6w%jDY>-}uq z@GA=Ld~Oqmy3<7LbZL<0`JyolJS+3sFgqZ3$bdgSlAztOy@X9#(wgR&O?`)5Maf*R z5%%!NoLQv);!xDs{=@G!v{X27&T_JF@%_Ztin9uDJ>6-p_|BZ0>F~e~7*}Z2E($5j zgG`EzfyEW6UCMH{4j}K9Gs%E|YnuFhQdA!J_z>6QRC)cg;Wy~_C^qHyj@%${`C3%d zJQmFTGMTX!Ca-ON($0?D;h=)k=U8LM<{WVt*W)FKy18t)pu zo7MAD$G`LbZIhg{`hwWv@!7R<{?YSTwnuobF_$Uzhv_D_1-=?t;XJ1DyYN)#-C!BI zO1x+dD*8B#dd3wVGAxu*(6jJU@GCr<^Ed|J%+Na)rt3N`jqU3$aKBzz4560@?4C8YsqO~j~!7EXYiZr+ukBNdgd8}jBj>mCw=pD1VT zCL^JT!|D^mo)ZtR(NDv@H~RRl<+$$1Vf+L!C;ts48frhv869}hoM^LK*ff}Av#Vry z$ENIy^_o3wxgF?~cPTZa4cY93H+76E&VKb6(G{4!2F08=$Xi*>ELPU9ZuTPMH){4Y zq4EqmfQMzy-Jc}bjS6XNNk9FTGEo7VhnaJ#By&wDTaH`3AdVg zo~xw`5gIm$XH(ctLSmiL^6htDVfWrx2GYLfUX^7L&%+maARWMv5bTh_>fE z115Q`ry)VZtQwkOH40_u`r1O;_Q^UC#a*IG*5qy^+@UsV&q^2K{*$U(kK^MBDvCs7 z@|NpI&r?cK&s*!pPmJ5?Ge=bQb6sgmen}}3fWB}q6}t%i@v}0YHVBl7?0CN|B4#j> zK5Wo)MZOIE-n;Y18>ibjfk9YU%P9CAhy`E@;7|X{ssfU@5OZt`SL3>sJ%nSAJgBO8 zz8XS0-yC{P_2M=Iw9-@@Nz6K4oj*&7ae-}949vV9c-R!xBaXTb%~QUQR32Lwy;vdY<-I!pFOm1h4sh>e$^19|4|g=hPedD%?^khm48 zlVG7%07J-aZxkXkD_!nb}12(t;u~+5sFvyQckF%Z4bw&fFfjjp|go?cz94qxj zXDDI@I~Y~;XwKmYJ0)PJtx`!Z_jmd75Ss*2X#H4C+D(Kk^IJ@Fi~m&vS=7R6pI|C% z*AXomhaJHgaLJzdcP)V?k^NB+oEY|`S3`Z7>Pm`<-nMzT{t5yJ#(vUA02tL3mntnoFi&V0AMRx`# zt34$oLL7{`fqK@fM9d6ytBj}h| zMU;s+mZ}>oe!*I*gsVhqUj!f&!yC#3k*xl=0)NztindSvjU|>F)+&CysDCF?FX<5p zb)dExT-uk-+m1l+ze6j(M$JWmccon|@{sUxRQ6}#kFYVlah zFZjN+1$4t`z$Aln!)@-e{;BQpe)Ri33TyaE`#GU(aEZ_FqS)DVM7rUnX1~<5;|^T9 zhuADkGI#ErOSj?R zY(pBK`L~me-N@9{#keEXc-rIAyexmTLM4X=?ts=U3jJ7V;A}OJz8|Gj9ntQN9khFw z!gFQ)uSb~^!Q_a~JOq)H{;|t2Na>^H>ICzj$NIQs@_7*hI^~SvNLIYLYpgd?$y=ZH z=9VTcM>_#EJYfy%l}rdHA7g2WnWHsRbF&G1@R3{$4A%-?gpn0<+?dPaWQ!_vDh5u) zU!t1}NBXfHqA|blPHHe~lk!=*3A|uSt14n#-}Fz#u;FJsC$bhQWKRR8MM*WKal|>N z1Ia4Hqd<0<#r{}Eea_#3_sKr>yU{bozY?Y67ShX!XGvlo{eI>>@mb7b_y|nM0!uLf zVZdBWvD>erDf|+Txq1+Tswo-?nUT&?D&&+?t5k=<9hI< z);cZ|`5+g6NZa~^Sq#Z5FOp`OX2@X~V}tBi8>OO`k6EDKH04gL^$-=Ur}+X0Zd*w7?g4a{8+=KRz(UIUnkqsw6k!kV6bk-|BMycheTO7&!vzB& zqeX==3PYvYJs}E8aZcWUAaGd-?=W7lq2u+95&KJ_3+uuA@=q%P#ooA0nhBBP?xSPh z@bmcj-26?=@~=L$;rXHY2%mvWc8!4I4GNkffpCpWK1!@6N4H`x-E%Wp)*5Zbp8KY| z<;y#$p}WNMlSFPpyRSCAbY+2l9jmKOS{{U&#;1F^)T7G0V?I4; zdT_xdB1847m`kao3}lDpP8#`J`ipfNbw?9L=y>PO9xNE7bNr6KBWk2et^Jf&Z;(rb3= zQ3q~dHxZKRp(Kq!&y+^89?&f8@#P=T&fY^9?YEHCGKhGtqf{H)Ed`#bSoouJuqKCd z2~p{{uhr>wt73m8x41t1zC0530}ogTf#v)?&$ZROrMzy@&CKmK$<^MV?I&u)4#U4A z**-VY`v;GDLxfXH0m+FjJcz1m>xp)1XE23E zmyRAggj2EoNKF8&4TZDHScT_bltn#j%uh=b+u^4zIbDB!X&JP2cdy&8Fs~}R<{0v6!wTB zR%S@pb3N^^QRN8ZSFBz`GDAJqQErJb)*8&ia@sFsdkw9}9E46W($1}^e`TTv#K8A& z*{Av_bg+DdIzcAntxSKjZz`>RW6sjq)R+>MKju-MQ~i=Oj!LZ#AyLiL_ttgeFj*G| zpu0nLm4;BV29pmVHvpa5%EQm~mhZr}crHUOH`|<$W@A~wc(Wl1t;h~rxlL<{wSe~*t)f+lr~8v2v1AMdvOEXV zKbOErco;-kjpUU_#O=-EyiqR+N#HLvw41c#=zB%GPdMMD(25f+Ixi&NqZoBQhd^m& zwlkxWV|T1Jcpfi18Eg&N^U14Ty3t?4SpL>&6%Qo-ts^g0^$3}`HDY+(8j(Q6_!pAE zy6sw*(M_qNEjV|bprcxb!>)QNmmS8e0?Sef@=n|F`2)_!=HC6F_&XD1YlPJWi41N2 zVH2^wyB-zF+qQZjRsd$>hy|&S17vMoG{Mwm@~KY8)gn-`AoU`)v?Z*D+KW`CAwht1 z&bDiRBYFWLCM9NLDeOuN5X>NPoH}!b)~*U=Qj1A%t+6v7E5LTAI*2u#`WqaNHvSBV zWDjTI32J_BRb|y`kA@wO+bb=!wP+4AWa>wE`m`lKzkOa9^u)8o0Bo(qU>bsOblHe= zqL#vF$oRW;mzqXZpi^?S+-fh>?rh|lz>9RsWXv-h0s!ala&@*j;wjL}e-L=KT9oN1&2jXve89y2bQZ7KpB8(= z)o^hN7`X+c$pG7quO<$$C40wxg0WI3xIarYkgHevZC-`(TtuoW=Sjs) z+Qk|F*8{7vEpBfVEz2i8xAsy~k7v}p&%;WN%xEwFcsvCTliUQ+(ti~!#hOjMANl2% zu-4zzo&87e1F{9f@aQS5kG3QtY}jr?*l!xX8GN3TF?+O#rlKqc^O*PES%4)5N2I?0 zJuu1u-|`Q>g+#RTPycpuV|{*&MQ39Fpq{WW^1DbecZ~~lixQ;EZXrHy;KkW*6#G0+ zOo%g@dV0<7of!3aJ-Q5p2_&n;q}lnGVP&iV13krKjC~o@!@xXq5_AVEIvgE8`Ic@F zSWesLtr}oI&rYnQ`>`E;h=n)k#=i|nF5)o=dt^M4>(bzl#sbqSpPDgsGa88WlA3E? z^;+@{EwnHy zmL7W~T}?U@!<$G01lK6we8FXBjzy@0bK<)|h7E^ehzMvY!+&h`5+z;;d~$gM2;E}+ zL!r-(8z>Guu3Gqd#qBYlqgU8gjYf-d^?1mLleej+%d%Z?9Oqcir<<4~K9mKdjjY?z z{O82ER>zyklVZ9k*Sx=!BBoS#z{f1F&KF6Gye~Xxpo-18F{;}`)Md1y$ygaS27oZ4 zyR~DoSBNtY#P=k-Zg6vw7j08>D0bBl0|}=8B;=1n?QF+K*ZcoLPalCCMj51CFYElp z3gXVtf^CHKaRTomQd%fTgRU}@x#CKjJ=HFBvO<$O2`M_TI^FY_ox&`TX@j_J-e^`A z2+Jub(JlC}{=HlghXK8qB~f0-9uy>I z#3*qiiU%4c7=TpYZupbA>~K7iSjKW+(0p?P$lm&$7=PY4jpNN5ku*yKxHN>o)tx+; z{j^D#aII?Ct|P8hI|Fz*e9#Zhn~?8D#JF63`vb48i40Xi(3$VEk2rZlBcR7~(o5WT z-v=VSxZmre6pSl_|B>bRMa3?ON*#nxOSC2FB)gfFyDAe8LVxH$fpzR|O6^|3g}m@; zGtpwfu16i43(YENrFe)VFNmg7t6&}Yk7ac71*O?U9w5x@=eAN|3wxl@`#GqVz~`kB z5i!K~OwTLK==gKE9gH`wn)YZMLf|aQ64&-^^ZYDJaY6$;qyhI}MN`8Yynf3qp{|3qOdT~3f_S;@_9MqRX=C$Eyl$( zSLKgjiCTG{9qA7`riq#4C{ z0b!UH$sO$DE^;PJV8>3PDdIY#1T27wNlmb8AerPd4b_$7g9X zXUhU!XI6U9OpWcEzi?EirAs=dP+d%2aA-rv{y1HTl6@k`D>L=w@Mgl>UB9^Mulv3# z)GDbWL#G0(mAj?}TewkK@6W65*6fq>&$P2;@f06Y7<}U&J3)aj5e_NNi3^$*#d4Xj zrvxK-GEz-x@Bz4|HrqnkRqS7v^uMdm?i<^GQ!)RO0G{5SE?p5D>c|5u`KIB3{QYX? zarc#B9L(K(|9f=I>-gC@X_nQw7NOgRCDfzlUa=Rldftwi&Y0M62@x2We`WTE*P#rXW% zIS!ylzQXN9VrdvX{4^xFpoaD6ahKX0JObh+dvgx1VFph;Ssu?@UwjcZC z4ymLyj~W9xPCL(@IT#RYQ6^oF8c^!|(c!wQsO3!O30lmi{Gezc<9vr1CbkU?6+Z46 zlADKLboAz2^n|OSm>5e9B-jv}gjJOa`KCy;Vdu~midH5yVuw&st{@OO+ov*Wp<5a!BCu@ne5Y7A@X9Gyo>mjCR;iA8Wy*YW$+?;j^ zee7=_91mo^FMGasPbmq#FDQS8F8IdsUYX~e?*dJsGyW-v+VR2f^k;DtK?in4{!_h5p$NI`_Rm%%uG25d`@UH~eKgoPHp|s7k3X z4C?vcMU+qP$G=*biF~hidMpDvM^jnHBWnd2SDk@WQB%@mk%6)eB-|M$rN{uWMkd<( z1s}OwKf}+`x5gi4-gm-=pHoEF7z2wp$#Ffts<~-P86kH9WP34yJwJb?9F$&NQIOv{ zpqj2`ZEnt>&DB-4G9@cJXNlmC31;g;v03v97D=3CbNuD}vZaAi?$Wlfg1W@>_~n zN7X0$fU9jxuOGwI)T;FOc>M8g6CX@hbt8-42z$*q1x@-W8XKb?zipgyst93O9b4q+u{XE={uHfVFm+VBo9hTjotu1yeFlB|K6ooH(Zcj z2PmpdA+mIn0tKQyZ(iBP*=sJbUzdDKDW?h3S@zsJntz+JRE9N4?5 zA9eWp@&w0A)p@!2^|S@33!W9B_RGn-3qIW(aDTLqWb7Dzbi5}8HQw%h-W1yB%n;+W zG#=b8ByaW~zDj(-xBn4#MNPc(PTWmreY4lveO=^rcE12`c6c`QE(LlMZyPhq=$_}? z+OO&iJ64RsQZ}|83?N$kOfMRUx~!EfEdY}Q7CoQV8u&zP^8SU{WltZ7lV*qiW_ZUU zsk6)!n(e&tnWo3HS{s99*8ny+Aw#waEvwZatnz_FXEsd(ck2QiCa8{6GVVF4jltY> zaE)X=bPZ$Ctn}odW{-7E8zZ^&uEG@3W~e|a%p5>pKMO4f;y#{w3;sl#-Es9`fIVZ} zgQ4e2I|;4ySgc*JXJ=NvX%axn73NFefUW3q|DIzk@fO>~cDegS#FI-HPvEA{?E4Z3 zdIz||fbgWMgTQ^Qz_pkg5c69GdH z4v+;XB8pI>1-5HqF7Y6l99{O#UQcLEIX>Ihq+_gr{$*P1F{ezvS)Oi@+xFVsnV#pI zoYC0|5>0YaPHv=pm~*%yfa0m_3gz>30q$W=s(ZTtA7M>9k~V`A?%P}OkvkMWcxWS> za!$OyoK_TEw>}%v=@U0tR%O0g)jOmY;!R8l>$Dp9PV3#MZ3P!%^v zuWj?|T}ErEd2`VKj+4vew95T)9ulVxLR``VIqhZqJ#)q;sb+jxwz-G(8>LskzhP?2 zS%tQZIts)aMvh@7mlYgEX3cKG%(0fuSqlw~>m5Xx9VUlU!`F^2^&QACGG}|V5+)gp z)A9<0)yvc84V@qHVe5ZC(Dw`ejfC|U{k`IR&MQ~1BhzXSuZ~`=PHd;YckjulN-<7N zZO&=6Itdc4_G$Z}iRw`ucq9yLfXg6-IFEFjwaepOj zCf@=$EY5|c%2<@`>Dq717Y!NL$k$j6^E^KRAC*0G^w{TrBXiwlv9CiWcCpv$awnX- zQ)^ZxfO-yeE0zCyJUET5<1JZ|<#Bsuz3=%yCY-FuT&p6+{CU~dtBreZ*Sp=6pbE)^ndBSFfX#E1g8S}AqZ9>ow}uoNM{)wu8Kq|r^{WCIJ5m$BC(ZD;vxbD+)40n}OLN^esBh5}~YMIVs&F^Y=AyLqIs^iP8 zle3JFks~URJZ>AEQ=ZgD{yA2vxz_Lg^yw)O{lhx1Gs2A8=aGE_QE*>QV^#W&<)G2t zNh>Fe(D~>6djOw*+AZz;6d0P#@5sJuJ@yKiGA1u5CVMfpo`y*(HumII-Cp#$Ny4KH zV|)4HVr+OiZhUBscpgPP8E!e=mfO>>^v%NAlI)sEn8q*w8V?;WbNwtr@5e9v@+l>dGFlQ#TS1T-sBZkEr6AMFBVc$1Q`Hi0WLg*JK4jx+iET`_(^Y!!QQCfuTOO}^p7}Z7Df?%wCZmZ` zXISrsq?x>8piLTuV^%B$sBbODZ?n0irF&J_ioc%Pzp*W=z{-yVeODO+**edevD4Bd8tWjbZ&p? z;-m1;y)21c2%el*8F$RJk;f#LrrraL$0Ft?P~s-uQig1!wK5+0a&YTTmP9QCUoF!{ z1*M%>^l_2G0=c>XMcMP#DfiK{3rsTibS4&Ut@Qe-*UQq3?2o1Ztm)UwcUJ>P^P~N$ z=bOzbeMAj}iI1nPDaXEcotMoJ%CP3X0hd`hX~Y#_LB8Zi!!Bx4m9$c#!k)FQ%u`V)HHSe}7->*k>Xhgm|EM^s4R_jmf zde-E|%aRRUj{Q@iFngMEA96alv`?Paj>4x}C_TUBKb#w=Yj}nmnyYvt)G5jqW~_rMj}V1vx-#lXd#Q}A`s%$u$En*nT9zW!d=Lpx55oMLf`b`XvpD7`Y7N}JV@un zAXRqdG9{eq|qp2JXxVkB7$AW z zN2(Bp3WQFO#t&CjGa)7uqaag-5H?js4yGs)@tH^aCs^DfFw5wuj`xhw!^nmcLnvpO z%@6-M&0xQhBk(nqw2+jv5G1&JH)VSGNKD^y^X2Cxv7@{G^A`9o3c#&(&3LjFaW=A} zYrG;p>igN;WB*tw*>gYtQTw%46_^W&j7*z+8>{c}_+@NrWj`Qz@XKpLo5Zax?(@%dR<@gKPhk%hZ_p}ZdCpzQ(( zx3d9XvUj42wSE?N12Bs33m{bZHP7x;jf||ts(0MA$4>qHA@gk}$^>}=R|;7$zzv7H zsc)_ewP+da1joFIti7Z-LVwmrU>0GmX>!hDDD@7WV){~5^tF>$_~7Nj&oY0L4sUf% zxX}C6dLdcX#=~gNp#lO)Pk_<2xUaVHXZa=}`)Sql=j1p7z5WcXbGb+w&HsWk{71PE z2DMY=|2LRtBxrw3{E&hmQ6p0RU(wY#VGTjjl~Z2Y%`|%rVb$Ew;n5$k6io}clZ*g7uyg;e`;%&uD zR1mT@0j0oDO-yse+6hAyDB<2fN}@z<%wJ0Bqo@&)sDDHxDCLxh_l!yYfD$!Ov5}3R z@5vA)jt92G7!wl(AO#C0Q(B7Zqn3auL0?RH2F-ekTF-}q}>omcfL~Mv)96azupWdNf9o0!54} zBt?`o9K4u?8W69jnqry{218*jqN-Ky%T#Rkqig@@)yF^U^zNr2qyX{g{kPgx{EaVrC^>k`6mi+ zr{!fSk$?YpXj$PzZ&p^K{r`-cYs|k&w034y75`(6w|Qk+L7$s0jY6vb(S%KoD(raO zAfw$cyli`kc=18EjqS%}rM;ec-T2IXXc7p#A`*UI>17i79rM$@s8!e+l;_7V3UF)8 z4xij&ztQRMpMb2#BN!Mk_%fRx4C_6c!P!WmHz^6@{!iG2as-}Zr2bbT&C1>X&+vf7 zSGuD^pHcpQhS}y4Lyg`R9;pg~fjmhe>VDks_SSmr z@)zQJx2zknaG)>d|%9hO}ICAvtJ}6l+7RsiH$-|IW17Ata4l|86+X1Y7w^pM=DZ; zl5wk_Wa1C0xiV)zHm_Y$bLkST(dC0Y8VWcoA+P~jk zXBZf2Xcvw-G;%x%J(sV1*pv^YIWQ4JCzTBnEQ%QZxx5@VGQ(oFZp&7Z@0K z-x#SaDK0LsGXDq7{wG{Zzj6QE|AS~F|9W`&sQmvRTJ+}oYu|$Z=sH~SKi6QSZ@zc( zfQ@=hZK>nyR6SzXX!xwMH9*euyZ;pY+&yLNB3X~hPM+Ie`}zKE{JHun`g!`Y`#QY8 zm}%6X?!SMN?0NV!2s|;HajVR6e*Y{ADUt^LgnG zZb5nR@jk0&7|Zy{lGIz9xLNzpxr6EV^5Q1)dWWbEK)(67hvlLDFDMB*t@fblfl{7F zd~Ut?$)OFt*UxfckYln<3mwQ}eEuANz5I-Q-2C`~f`I(|D9S)W6@I_h0q8(LC^$&mlkmF(nf;B4~0*pe@7FIrPy-@f=l>OTgYi+G^Rqijs<1qOj+lEBk&6lyJ< z7%=krRQhuiz@7LHcQ4-{-yYvs@3ha&ddIn{ni0bHErMeB;Ly;JxMc*|O6`5m_wt$d zT7+i@Llk2R{*|D@N=%s*knZ9$?In@%cD;4EJA0y~P?z=X2v~%BV%5d~t`(7#ECnYQ z5bC-lmw1G(fpQgTHSwJ?t;!!-zs?zb2#|hTR8^RIp0GJF7A<`sr;aLNFd+vJ`$~@+ zw&{K;*Hidla%YSmCcWApRC-dP*4Wk5+M&EP*@*c(Rh=9cO+Fos2WO{M=O>$~aZYhyJW|%(HBV7r)I;db#=i8`vn(#jHe}-+4R> zLpg_x;0*BV{QS=x=+(uu@$nC1{v0=jxIuNo{<01_JYL;T+g#>`3d&P?6LNY`bE6N_uU3Z5st7*1$S^IL)19<9Tho znIF8_W<=}*lLTcmy2y5(@ULt>Nn|(9`olSMhU{^jI6EfVer+!oez{LC9&@T zrfa&>N+gvboF^C@XQD!M=)WF>pflY6MB2xWvanD%u>%CG3|5?L#;Q_)1yeV;19CV*6~Hj#L1garRp;X5g?8f(Ln#7zK%`D>#6 zk~w)cI6&6)1iz|}?4&9(vPFqOXOjf(fn(zoi6C_0xnTEUuvS{|6`t4GFEdN|z~P{@ z#10v(KZP?#`xCsUmV0ER%*gUQLg9H71aM0^NZCtq1XZVTBSX#+kvWbR;Cap$c3YIE zlc6H!WBh_uL4oJ?FY-@cUlSw-a^(+{k26p25)n-ktru6=0g!b6lb6Fpd zko(srb(^$Pl$$^eFwfxOFleZCKUW3w}tV*!h#)%J|nhMZ}Yq2JMg!1~C z|F&Y#B;nO-%JCyq*H_-V(9vJ?(at|tF|_xt&Hc$^%(%Q~~zo8uP?DBscg zwNpChpJ{yb3x|IqKw3z97ZldZNq|f>)Au46kBc-ExA}<%|wWov9vq7~{7= zIPS`RZ&nc~q#SR^;-d+hIFY9|(pN;4K*m=VM>Zjg66ZJmdN-e?2EIAfO5H|J=n9PL zj&0z@HG6Al?TR!+?R3H$54{sHz+0zwqU3MmJrDImk}7eg55SDka=~#U+wj!pgg&?D z^e<*iSsER3Ek^cY&sOJEcwulYL=M71C&tDVSqzE7#y30Gn-qdHE_pFXzD22w(1AsHx}Y z^QefRZJVReol2okBh2S0DUOEte1;>psw&s8OgjlNYd_1-JX*-(3Q};uw%@Q3meaiM}*xY1p^OKK+>l(XB>iP=F=eKRwd+{*y0PkRK$-&SP17Lf4cN(p-Rge&#?Feo6wQ&}NYu9eH3-bmn)7De> zKyR+8&=s5O7O!w?MQlvd$ek|~x_JGaPfZ-!$kJ%T?^N%o{q0z9tkBS>Al^6~!kAb* zSsB*OS6wm{IHY{L!oCmi?&9Ba0@Uk9+BD)ODxff`iTf;sRQR_S48oY<7>i*3(ZKxD-I+x*DyIUY ziLYPvm#%U^b~_N06WUa3kDLpMEXnIcT)IemdGytZP_WBX`$9{qCQAA+m{!=>d8x^R z^YuG(s@KX39Fl?DU#ZckvR&5enXlpTcvEFlYh%dVn4XGV;&jB{8Ew$~XQHE>qdIV7 zF8|$Rdc>RgmbdKvysun$T<+`jSN^4|wBf%~RLc=v`q<>=2St4H%<5?-?atZHnRaT< zEjgQUlea2}OM0uG-{{SuI7%K8>Hh1`?%-ot!yrZqETvS!LwOq`#q)^Bj@$`yJtWBt;u2fE~JkYR|_gYvOzBa*r5nTiF$q_B<)-NF39M$t_wH~+N zZ<4M5G2k8W26>Anyk^7H_SkN>7+JXWUDaJ$0R6k%IA!Ul%V{UB9CZv_;Ox7V$2-~@ zAe)IeJ9=>yc)nJ)ds7iSBW_q+B(Ci`E!{fTzA+(uvtO6&Zk0s)G|^uuDF?Q2a^@`u zwdlz4#$82?opvJmoZT%=OsTx}x`{K(BzVfoq*hqXR?+)YJYl})a-xB5KwK0Q!|?R$9o zqTWvLsm(P#e86{iO3Md0=Y;E}_;{fAr{Pzpvv*|1@Wh7U&HpYi>tM;4{ z@KDoTvGihroCet_b$;N%ebqCG#y3?L>eN^A_8K}g5MVrCH&(J_B~xH6#5s$? z3$0P359H2MSs>A!=9Erfreoz3Ih>vFxbuY%8<*Apxmh>b_flg|9IfU^Ou0${UuUCLtxiy2>Kph?e{76GJDqK&mS#NqkHT$r6`L}im7+ROI`cr0#x?;V=q*1AR;)`A zp$nscN$YY8-lzCLmQ=i)j^o91UU_7q60W*p6xMuH7$~~z#(1IYeTZ1D-P!`yk$ zOPT@4A6f0ySl|C5dE^T^>yKpl7QEO!Mu@V{73Fc%O7ADuc7WsoDK3v_XnS46fsb^A z1l^H{oFH$g{xarW_aI_)3F_R7M9el$QCjd|6ND1z08VEGRzycE5u$~ym}u!OrUZUB z35)z_!)E%x8v{54H}l#e7rKiZCId^6L3b1b7lh6{-qUGwLYIqx7NldjkxCY&x9-jj z$=x?qOP}o<+<}W7WkV3=?L`Dl?|kipVX+H|=pacwn7up%_Mt6Yu2t)LxZ-P7Th<%O z0T6G#^+zLeMPpNZ5xAFxHD73wf;h$&Fp~aA-w(sVcK6b}%a7K}GLj`ZjS?{u57_34 z{+@+yq|a&zvW?gHg(<|E{eaCr#S!1Cjl^~9i$>8|Vf^Pwhz{1n&Y&MBxIjDV4org7 z(jW`cA^i_u>Y3qxd(FERfm>2Q_Fu>uGi1Q1F?{lpwn;AiN&d!ytQE*>a2Of5Nl}3BW&| z)t>ERCiv%~SnMQ%&?v-yK~!4Jq;lKE)HiJ)5*wN^=x!d(6oHmETaSwqCml;FD=kAd z6C^87-Sq6tK+5Q>Z=6L0qICK;>>xoGma!a!ct+PyWh=`x z6#kOx>7l{YG#D^Jhyn9H#k7ZfJt*9s+pC&53GObi8sb_wL_7;9lY~tVB~A#pX(er_ zzMiTKY{GzbB8VX38LSrV^g#!wX&6XohNaIm5FwgESXFtXBToIZw>6DlM8{N(7c;w? z2an1~Th>9wZ6j{mb0e1r^1z!(bBM})2Yc51xKD9rzg02L;|{QiP!vL2l9skWGg-$Ub1fqbH(& zJ+RhRO4N!9$HOtC&@Zr$F>4pha`F-`Y(p#zZ_%B&k_gR8x&9^d0@f7Exr|pn%@u#- zaGcU%9E(|yv8ZeC)?KVnEO(;2ZO+GPmB=n>-H(m0^|!O&c``ZPR1L}0i=RL#sdAnY z!qb^^F@|acxgMi1eybqaAWF^WS5J-YkFl-jBiy?U`$k;<#76)R zBvWW%XoU>MQ)Qcu1uY-%t%@Z`j%i7lO>)FR=^8AFHGO~+Q(T^_FqEE_%f$`fSX!n; zAU5(Y#(kl>9{>aO8CI)Fg3p^dP9YczP~bdf*e*`V!bXJyR%>#?x6C2Y!XmwX z&=hp2b7f^1@Nr_UDU3VU<@{CJ{H?e~$W=xIKy_ixWV`$ceR$b*ct*>*_}hgxlDO3d zm_?kOBjK8cNxzZS-h;K2P?d@y*7lg!G~i2@n5QfGZHwq}4-)boa;%(aj)Ou<^|9BR z!a;fz{8^nFt3x?n*b$Y-L3TPa9BvX8F%s?GM(0amav%%tm?jrQf+0_{oHMN(Qjxx( zV+w8bIhB|SFYHMzgh>34e_?7hJ=5R#vs63~L8u0p=8OF+m8gI;FoZ$`dIqrWu0HH>#;oO@5fqdI-Xjq;7a+n7$ph;TFmgLyQEMRXvoC4ej!G z=2vUbv9})HuUUuUp$fS&zN?EcHPy=y8R=tFCRxak?<0o z5%8x&I`=ZjU|}#a_`4O1;OW_XGHZ03u%s6P_R06eEFoz5%ctsZu1uygSYuafC00lf zO}dtWrr1BGoDrfb0#T>AcB72M|GxKJ$h&Yxajc6qSE@T%7Kv(V(yJ+<+0fB9C6aFB zTY@2Hg*ab=$>ATXp~X~wP@i6C1E~JHv%HS0lNZ!OgR~sH<=?`zowV%@j!3*??1(i) z#)lkBrAi{}ry@aXA0fRKu)9uCyl@-`qcuIBewY9b>(7Z2!hq#T+WXks`!cnoF5? zYkWk8m`gB|$P88zqcamB9`|Xsu9xK(5FvHD)XyZPV|kY{KpSe?lK?slR-`b43jbc@ zVoE7ak#D$jjj%D#RSvO^7THrn%_b$s&ccD->>7GTW9v(A5 z=74}F36wgTubT5QL`QY06Eb>3iYb&p^Oj6$f|2Vg9$XN2cTcBL{C(`YA9wpJW8wLc zft)mViYimginI`P340K^Xl{|b)1`o}$fIrG?JTDsk^o>qcJhnh`63*PjA)D*1MiEY@E`EsvCINrl^9VBGItbl4LX^)1qL3&OrDx4yqgsbn$)2~@ zSr#(jJa{a0Wa4bFw}txmtwk=H2OkWA7b}A0F@e3_5m8vpqYy!d-S6<7~vNn^W_lhBKu9PrTN>@^;NMu*_cx+CT3VP zT?h$iVp8JzNnuV6atff##W0Mf5XfztMoxug(LfENJO`}=7`z0H^Wli}v3>V-buLFR zr(N|D2kHuNl!K%9(UF#BVCQB9Z=XD`L{Zqu>L@2dEk|cqXL`88CcQlFyf6jpS2f)+ z3k*rMsLYKn{Y@K86_VHJVX3rhq}-$X1$bE;&!#ggX>Ymd%}#p99R0pVqJyMFJToFn zuja+^P0JLEEC^fAki$oTwt!L8(MYzejfvG0?9f)#uzLCE%#0|0VY@q=XEh~VMiULN z8RbScG1lnH-=Ha#qKjJahnZ$HD6{#UjNX^AO=bcI|49WhZGYW^vpn!s`$d~-OwGGa z80-WsE@jB86OdE5D_&es#&x(OVnGm1nw9IOXp4}v!2(x@;gOF%vVI?WT=*_Uq9idFo zJBEV|VqO4qj}Ik%z#6A6yOx=ntx^SFMwELm)f?KjjXCd#pF=6ci3BCwLxOQw21rJtpcAqNL%~XO@!_e?8q*P}Pd}`5@a4Ytl$%rz zoE~1MHN7jx&0IeJ+}t)_Y_;G2+^>8LEemb2Kv ztO+ATV25DSg}J?}ljCxC;f(#i!im`kk$**>c^hP|$g^z>xzmdwan!5x!9g_;AaIBHV8vfi}o1f>oxOqkC`^{@(f!ZWGot7S&l!3_AG> z9&I^0uJS(UNdBB$99<)tA0FPu?*fLf`Uh?pFxY-dru~gTN)gcM*^S>(_fiFv#NJcKSEhEF z0i1+&^qZ08ZLLiP^moN!S*?Li5%-^XHLfE^N*F<45sQw^va%?#pHm9*i<4=)mZm!( z!r)EJ#P#jw!hMLs1R|j$di!E^`BZC=X=x?4LSFE%8cY0VZ6feaSspnzziv$9B#lGGUgCyw)yr5Wtl7BHe2%!Uul)X`IOhl z8m}ZoSEb?`ZZ?h*Z_*0sqE#Iz#$PHMy|FMgm(Cqiwx{%%5ari-uQs z`@)5S@rW}UEUxin4|jVLeP(z*Nf9p>3lzaZnDW3$lD}+bG&B>uHb-n!_;9aIWa--t zmOVPu^&BUF4c$LFw^Qp(uW_%uc{V-D+UpR?JhriYeK>D@WMF(K)*EXfXVcTDHWpQ% zHYkl&H_?o(kfeYW>5oFVR`sDml^MWNF*11)lUGS1ogF7favK~c&KBVR_Mdrp9n3U%{y?Xw5X(My~%&zh(Q3!kA zUN+u;>tgDb^qz5kpV4uTx4wHA@a~fONd3-7rehOtPja@u-uuP!ibylYP0Z72Lgsn1 z-Mr+q1zT&w@qLa{tdS?C?Xdn;=`ie)XT79hrvM?BJP{>}cK_*WmCavs#eX<-LenmEPcK&Mwuq^<_e$TesnC?|h+nPRMcod%3YDTXmA- z88*|$C(`cwHapX+O?obVq`d4DtBoAW?IZE&JNk%iv~fNm^ZWVx%ZEL1#l=2$IBzS9 z0lH~YA#XdQL0m zoTK|OD%MQW9~xQEtjnP-usy{z-dFW97}$v-q10!M*B!6Xjblbfra9&9){#Pf)9%r| z2iuEN7dE6cw0*3g=#V>`l+7P?4=*U(3zaoRK$<+hsSGT+&42ee|Ly@rC9e#ED>WWU< zu_9lbUomR>Vz980e;^93jYRK|XH#4~5O3@%Shp*F`J78$WHi4feZRu%R&Cw2m^XE6 zSEfIZad#H$gcQu%Uj>QT`3i4~W@|IZO_ye!>pM+7cIYc9Wor|$uxX&MXe!omZdqa| z+Y*oSYjz&!W~nt-Yk2)+Nlm=BADXvoTiMv#sV`XS%!%8Wes6a0D_h$>8&}Lm?3@mMS8K9MUez8k>&isdE>&(GJZ#u( zqR7H@ry586*Uk(oK(u^io`1h?jNK}5eiBz|&fi*B4-6Sgi5neEo=!Hsro$WGKexNr zy{8@(>cvs)eU9Dg7~hiD`|CFlf`CesI@Bh+8F#nQtkW~5<5rc`x|m!CEA;&m;nYR;E@=C;Orn)t&8~BsnHfECF3xBorGw^`fgz0WalM^f|zoaTvV-U%h=foD!5cxkhCa~~b5 zzT!n-9xwh{4{|Bd^r<5?(|6U)$>*VW{KaB)9HvFh3&`_&t&^GE4rkCU6_GjkRmtE! zn9uDq#Oc#iF=#eT9eoU&-yNjEL}rn-_<`#G_6{Br-pviD^3H^^oT-KvO{2Kvy;*>> z;5AS`1^Hv%^sPA4da6kw`x!meq&K`=y-|$U;{Eu^Q2N;Wtl~u0jqNLw$?o=soJi9N zM^dbl(gvmQOzoj}MlHD+SlUkOgi>_Xx1jZpu*?5hQ0q9`;H+y>qV>iOh5O3kH88sU z#x4^I$7Oe)+H>QdwV!z3@Fy8Jj0Qij|ETrXe4od~rsMfqvKo)Qz-s;4owR`GoYF^; zPqle>di3~G>~9oufOf1@Yjv&VM}6j%3r-x2_gsz|k$SVEs3VTY*^&jvj(O!7H_f;^ z7^)zx)k58tEA?ERWaSu}q0k;VoJ#NbXawH*mLex16@)YS@MQ6c7kQ?H!maau)emHx zVLlnHFe4z3aqjanJLtBcE=9!=#-h_rZT*3=s{2Emd%Luv=RIz4Sv?6avNpIHR&8oD zgxVoT0jW0iJO(X7clUi zDO>XZ3W7SzzXLi~iNbCoPKOTdo5N%O!W8`ro_p z4}U(@_WbK4{KHx&E&pqi|9$Y;C84GfdbO{8R>prz7;TfVJ3UI{IZ9TwHvx51tImm(zG;1QLFQ0i zB3XEJ$MHSKpgNUnDR_8|#(RwAefTn<>XEK%l}k8(zpI!Mm^OmTq!bJ=YeQwyX5LPB z_44$SD4=Xf>&#B(6bRd;J#7vgB4RN5>ufzWYQ9ap!nd$Vv9<1i@{i}LienOGau~Wm z5m`>L{j8LCdK81;22&20KC(ZnUsw~PJ1=D*3=-GrQ#;pCJ6GYf2l<6vezE;;-$H=S zmhOwchj$pV7aHtUIKyHU&u?u>18rlV8czv=vrdh}21IgiwL>|%G=V@K5>vSQ>X`oV zfN6b7Lo4v~$QBjNhMQmTv`M5vThYHqcI7Ek^?VECO6XXU*5rYOD**GGFU&L-8H-4T zKWK!8OL=nkzfMwq9_y5jZoiJe@aN@z=KSL78I2fu+(ojwr3}XTGTzJZ_E-0h4d(xZ z(jZnm{u?L_`rn~6DqDLa=l?*aty`b7F1@&I%jjKP>vzE}iiu)bQuud; zScyeh&i)~iZ)!sa6)&LDSiq~>^Z%OvH!{ubhfFIge}iQN+X94)ZTUGwsbcrul)jdA z*fVK3ud3GSAw`B0fy_%&qNrTba$-^Zc(54VjS@j9KtP-uh+YEp0B%~B&uf#s-{DQ%#h3U zUK@e<pHy(pzwxE% z$WAi6<;=b2+NEKf*K%19J)})t9a+VwUP+PEVPcu4&L&29q1ibvc6QXn@W{vTxC@7H z1#;f|OCk7$(4JHGk0&+oB&~mx45o~sDJzBsu%$XEv1yMayDdZAu-*geI(i1b2om6C z%fhH!kY|!wQ?f(Ci23ehYoOE{9Gt{p52q|YaaJ6D#y%bO%o?cdrL zDx4(SOgm$bgK@qZZFSy!BMR#;4aMJKVff)Z?hE{cJ><-lzqXa|a+eUN-A>f)sfT8T z4VUn6kq3L`TD?|WL6WffJSy;M#!gbw1r0zaW35>Ef`&?B1ZYIGglh&T%+aGu*eNrd zpyhG=g9a)M>{6V$^q~oIg1d~&wT%xM;$gUeM6^wHVdOF4G2@ZsIuJf*yWXJQBH%h; zI||!R=js(%s*^krDv$2N=yYt8W7*ws5A&pH>nEyzBcV4NIeNX7(_N6&$(@%}j$2k$ zMdCT(E^T;xUQ0x(nj=ZE#}sZB^>khj^2I~m>LW=g%8OO2;**o&wdgleS%7mb>vctP zlr~5pwUlNhb8@eojaIWi7(0Aoa-WsPi+v==>}g&;`5vo*aIPZT zc~@;j^2)_p-P1U&_J&KB^RL(?i=`4~6Vo5RYyO{Y=SOz@xhEx|VU%PqtH0piiz7Afwr*E-$0=vE{sBVca5%O$K z=J(G~y7MIVQqC^iif*@AJvnW6W$E1LWa#jyMW6bWx_8uG2Su%pCv9%+8)`(;ewShn zny#Ne>lc43;EnSfEY=HjW$IoZZaSR2oYWlq(1hd3F(TlR6EAbv`JhK*#W!OKZF7%j z_w6b#v`2q-oIO-e^IWs+JiZ>k2C*_SVI;2)QKq?nvKcBjljP%`XbEU_Gq>S@X;rN@ z3v^MQC$1!HgIryZAXW^kqu)|?ZDn1xR;bbpHmyc2HHxOyaeE`WuNFtdeCM`T ze+BROn_QhOdeEHL=|#4IX9Xrq6{cED!gt zwlNK>RYU|t8d0_EAzW$+X}8NG#=Rof8a&|_nwQxMK6@PZaPO`fC}x=~^9~zTjv4)= zJua@i^jMYw>+XJNU8$7m-75sXwOFQ5W;w6cF;mIx@FY(w(?prHIyN3Y!)T4NF;uIV ztD~-xF57isB=PwHJFzA|WGuKn?8sE_6}!2pir=>sR)3yi*;MYC*HuQAZ?JpkMZb(GTTQs~zch`!Rhyol4ft7H%dLl)OLd^YNrGp`Lqt=4#2W ziL8uy)F~ZtMEfdq@x_w{om@hr%OlGPN@U}Uw-ijpou_67&vg;+xt1DP#BdhXD`vsZ zcdA)bn)mB4*6>z^HJN(czMey{E@@CzoHm;c`(~~@mepsc095Cz#*IAH>CO11LJsSv z>AJ2YQFm8*amND>cOD!#9xkQLAEnt3aBAjfG0WNy^VUvP&vntBtd|5j8w8MF^fhMl zitFp?=`!cN>s3XW!%u^Tj@ltz4=-njN2MR#Q~OJ$LfTgYP4fkNOgWuR?oL}>&gf0l zX;Y(*neC?y44$mfGf&?aw!PDIK|JLg+m|2DuUhxxW)xG|2W_gKmz;Co^J<|*_15f- zE&3TyTdS37$42{}US;SRX{*kvnpXplV*6^b-$f?M&^)aB0-Em~FGqvUibs}O8(r=@ zZ?EwJx13zv5U$5JWu|MdpI|y$gvGpV(gW3FT^*3S(G=oQ&=$ge@j^)LJYWkBytFh`%dwB@$wh@Xh@-`Oxk73`2_J7 zvBuHHCzx?tj(AD5eT^5S6*LJwVo#&Bec_r4&_y|IpBGyxabb{%FWnc|u5UXh*5nYF zJPn2DA|Hfc1eVK?do!j>&Hm6FrxQwAB%xvB*`FMCxONBi>m8Nw1%Y8d;%>5XB#bsn zkYgH&jVrQ2|Lv6pVcid7ii9$wNeH_8orlj7#ee~m5{4$9!7iI8#u)dinCr%0KdR4d z8mc5kHegV#imAC6svmxB?0he{P{Qk`L*(`ya_osmf8IO(8evS9m3n*)k(8`90=yJ8 z@%m}jFM0UM-Blixl|VjK5r4fH!z#dk`uU0h!wcSA@ z0Gw~J1)iEAZ+dyEDXe|cGs4UVkT-K5xgVhl z!%zv1GpA;#wwYomE}D;Kqk<4S8oM%LMtSSksEt+PDWcTDr+DT~O`=M-R^5g1bq$4} z%*OCMY-lZIU{8vomPk^W-(nun|JoBaq>NG>$yk%WFg>1@`p1~cN0s!1r9VKV1p)lj z9Y{fp9%1KI7iBFJIhfZZ7n@2KJxCD0X*X)5sg0!?a!#Fc!j16n30yPG?UNE*$q0RF0EZw^@uEcR}w(VfU*~`wda)1?(1J|>=%Q9~X z^UI8xi9W!mv!_im!11Yxl!pnRV zf^%=Cw7bSDTN_K#t~BXyGHwV9R8aEnJiF){S_RMbj!3T4N{R%qr=)&nq9{Ykb!3t# zK%oF9rk^qgIr@cayM}q*2moyKmE{8j){+wK|$Iwx!41nzH~(9|BeF zVkS%CfrGh{6)-#kc|Tk(IG*C>KRulQS;-tJ{vQ4{J4;4CgC6}NV0eyTEhHrvi)^n0S(*Ziob}hpbRHk*gBx&aX0i!=ZDW~JlnmJO+IXl_ zL|#L*>ySVqo7@pQV5px~2I>!Xj?J7|-KaYM0|{eTli#LbZ%9>tWC36(KpL#3 z2k=@Xqq2`}qjOIfCD|jwacv`tw4mR{Bpt(oIQRm)TwD5Lwf|DG?rue~r;NfI;IL5y(4%dGd}tMgJJs&DS2x zqs0B_Q(WuXsjxApVN?cRriAn7S~Jy=g8?Wls)TX_eVidZUI6eZec?I0EE0fJ4Xoa} zApjviNr0(HaDEg7%XotObTwU^zLLRkR>muoI&~28OJcV=*dQqc3i!8uNY{n+d^#I^ z51$ku6v~D7%xobT_2=hWb2nfC~DsqffSH(Hi4o10> zhz2_p8i@fz!~h#n$Nqg32U*8K2sjw08lDKFAx-k@bb zrenM0VDcSaq)an7S$D-Sl+{8k?jrC~RTNPX-=3TkK@=3pLNkLG{!^O)5lH&HST{)j z`0^`qqt@Rns%GSbAW#nRI0$2P=uf%w&@WH>=-+~sg*&q8FM*z6b(b)ui0}D<(!hE6 z7*fP#jj3uSe14vA`+R=5)FuS2c4COXeAdCxWcPoNU}g5vp>?9BTsLu~Iy%Te6)D@O z1Vc-6LfdD2h9GUQrwGibTEX~$J+^cX0?9XU#w1t36UHX61d0V>JQrf#>R)Ek;kM&Y z8=V+=?4)_cdfIfHM>4L~Zj=>_IxxcAd_|}v!9pvDj3K}96D8_}pF@=-7kYsr4+R** z(B*Ehl;+48ALHOmrU0VUCMkAaPs`3u7~2U013J^kaMphXFQlG=-Apz0^GB)FpE(Oq%%U9DDhd*GUDP zP0tf?1lwShXNX{K7mz~!l8S#A4_h@mR|@uC0?gB4fs`Q-V{pSVn9=C2K@(xwDd^J; z!^k&5=60MzZYipo+%2+NHy z!{oQJL0p=L=(#-{tr*tP3vAnN#zu7T>WjnVvlc}A#Zi|KStYQ^l=Q6P7h~`lAx5y> zAvOP=eE5?Z$)6D71`y@%)kxsLxgV$mKOX0;ip3pep{OdrBPxP0xPISCpmkC(Qb$Wt zM~Lxq6PN4QSd!QXn>U*$rDZql;PT*nrbRHWMpXK z1Oh%-kXVW9dNNt*v8LX{lLU915XihX*Yj7b*F>?<9JdmJEYEIE{SYLNWV-x_(FF!m z*bp-3@+e%OCKlKjug5U06~HPUbBT_WDHhP{&)=jViXT~fO7O?2jO5I74LXwRl~T3e z<{h!V(39>2jRj`OiS|qD8)(ohQ2t%`0OyB@KhN6MnneQ?HnU>Y58whEh7!J!6B}s? z5CIR~LewLtuR))58ee)QRU-e&cXdE032PSu&Sx7n&W!ft!payFu6u*a?C;MZd~aw) z8k!mvQla?WQC|a7H4)|g2Me_Uzm2)bZi=qEJTE|9gl3pF?j$Cn!j0b2xfW<0H7Piz zfEc|sc(tb1P5L-gP0ic%w~1eQphJQCz*@^egLWt<-fM`-8(mH1D(!N!7;otMSft91 zufHJF@aYm%MN)J{s)Pz;A*%o}2;+Qh4JVvLn42A}+n>}vXCO`)EK01C8M^OXsT?8l~+h##1f zl$3fD1aLB#+i=gEWLSGT%)%o?mn4>aZJ^66@+BGyBgt{PBz}RQxOmXiJ9FECxiYZQ zF0Q^6bi*o=;JPsk5gTIfl!+j_(G9g3q`N1lNDEh-Y;iE3gVMrqu9u5pU((I= zf)o_tmB*xHedps1Oz`b)jv)ElZIV5Mjw7ktG0-hl)kaqbX{!2>vLIE>^zz$XnD(##+F>7gi|=86UWmKYmtK|&chnoB!e;ITnaenQrp0v? zHdLfVt28Nc2q`GdofVHHqXDA0n{~|rZCJ~zE!WfC6d_#PQ%cm!I}MNV_;VoB;8Zkw zip3rlVuRto;>_vNP~y*TUa}M1Q*q|28i|4%EiNK9v|tPp6ky8|GetTz_s)vS30=Ps z;eb+yiNq=5z|!KMYi4y5!VPEZbFe=q07-@1tBXjsaVMGpW^lX{l~GmB=z!eEWaSpR zG$i23i0nGS5?hz@!j|2hKWO*oE@ouRk)`VFXf0}VB%9p*2ziNa>N&V)4=-KC3KgAJ zd47|hPfPHLLq<%A#UiLa*AD>|Yh^8E;;IY{LIE`rlL$XJl4LZh$&|v>Jg={GWhivR zAU+TITGO?7ux4$_(p%jnRSb;9(!c2nRpbgY*v=ZUz6M19qO`w4e)L275Q8y#v3;%i z1OeuhxT)L<-Zm813(~S7nh<+Z^3(6&1I`AlNhVE?^B6fUaUW^Rufd;s4EF0_g*BrM zfyUnmPS7t~s1AZtVOmlRU5^nY^BuhLsk**^_zBTJNLM42EWSOlzuyuc9PUFw*kUJV&M!UmDbm!?O7vK7!#rSmGOw_&Bwb1Epaq`xBS8jLB)_g6l9YxeVrKKn1xtY<{ zY<1>zXAk|Vbi1fQUu_txZ$kdgk-N3qC@pn8^u)~evM&A{we2W2lrZS zINM1$p_ok%s`IUtIlWiiG;Bq1Hy!xsKt3j0=dh-5eEt3M|0H{s{V(>c{QrtQYeb+` zv*uvqa4vI-%X|zvS6`8-ILdqvp7QA)YWaS(Fv+fpe;~XoGj|WJ8so?IDg6A-cayfi zWHdVd{_OtFmd1O^)I6vyX+DPbx4KU-#A><}?LFgPSVwtZvGDP^{P<3HEQTFE{eC-D z{_<=K{3}ze@o+UVw3-#~h;r~YWz%V3h(3?&4=R^-ongI8O}s{ktNgypy9sG@mdzZa zEo!v|^RPTmRpiaN8K&r>*@;~vf&;q(tZ%+oMPF*xI!z)zg&X7=va62+26GgH5WS~Y zkON$wJ`4a;Ba@+5aMOJ5%PIi#5Gz6{X~m`nS9~XRte3(;rjS`owv+G!d{I@AP!$p8 zQ#E3QNvfo;&K&49-2B>-^@S|RXcB|CVOHa)uk6IBimJ^tHB6Ac`I$3NBGHzcP;y7`#bc4YjH&;{Av#`v>xeOu9*;?A4)E3D8LST6b zJYoYFj205AVlbwmw+)TttS2L~6m7Z^ee?mYS&mGyCfv%F5Hh2+(v#QaFsiu+wJQ6V zmblH$20vW%Vn;HHGpsT?JZ&nQ1A*XO)M?2YEULC+9zF%T@3&NIm^xy?d&-R#G}UP^ zMPg|SbSY;Jb7UUw=OhCi=1v$nr@n#oUeD?~)hfjM4x~cy6($xioEjmAYKS207U$gu zr`&#Ip*vt5!Jw-x9#yN#k~XT5LJus+2xV<);x{ioEe)-e*r6RzDkxf-_3kAnznyb)fNwmt21#rkq3ceAVY(dVXpqgHhjODijtc@vFU zAxmS-U#r2VBR4FE{&6oni6NUf`sy)$#L1`1Kqou(A9IA|V73=mSr5LiI>(m=ZFlRddG}KU`X_1cPkVJ>=SG_5%ssI&oH0v< zqLa;^3QbwZvrn6wJhCWv&sca`uM9otusNf7gsWW_j;B+Or;{34FINw5KlC1!ZOe&`ChOC13}k)Y0qky*U6<5)eSVY`lAR^f0<`RVewF#+Q z`fwTerc{AMW;^e$5M}S+;h%ijmJ!YWEq3-pt(|{ZNNzT}k^K`d^P=wl2Y^=P@L#Yq zt(O*_!C^fKQ(fBCNgs9B=+1O&t#|r!5o=NpWsNPf5Sg~H?T2fnOP71QRrb1Feo)>r4qH0x;CpOT1-)V z%QMMgkf}qAo$C@2s*6rtA67q`H4oYw#{lG(r8Gh)K*+=6Lo))+-!VAHWDu)qr zN&x!0%AO2>34NdUjG_lK9^JhvQE1-1lvLU(hMB;8%bxirBCzK@&~?L3&f9WnXM@|! zX_4*nQjCw78Fk^uyZDwuh@Ryix7GggqQ193^my>zL^r(KE zRCi^bvR0N4K&qNcBvMFB!T0`1iOHyaX$hTS+K+7@%H~1yDXYMM7O*+4F}w zCNx%5G*)_M*3^#1{|2K)Bu`rJGs6vEyNCJ3_fyxzQVrYf15nFefNTjqMg9P2&MvoFKOjusa8S7+j%&1}kiv03;k^#z*!$KSEa#dWhjZG2P zOE^Fx0di2*LejBSM)T!A!3|)NtW#@KFREuumxA~8>g09<= zVJ-WR-D+CNl>x^Wb(?N*Xp+BsA5Hz88=dC7U}ceZRa4>?@>bM{+-XDyxB_opz#dqy z)=&5mgRW6)<~K}+um*>5=a|Z6@Kl#(a|Ehp2%=-#<=MNOt*sLNYR-{uz&!nHwSvA) z4Y5Vd`h+3VD(U{vvvJ}mJb5RaVbfthgAn#+(F9r3N~@g=vate5D5ZrW-Ue+LLNc%J z0iMfl*^ELdD&Q*39ve^#8C8T2h8i#$2Z^rz0oUqnYMwDO2;JxI@9BPUW6IU7qqNLH zj}~^N5hB=<8kqgkce!h9D+>1tY-Oc!f1Aips{9x*MOaexX(oD^n5{2FUA z!HAnPVaHGdAg0v;wt@fTZ`jl+tX)-c`?3kDC4}D{!}D0K(Insw_-Vwm{vO;OIYwU5 zZN2U}hZ6cXnHg30fVO|1?VZ=rU>h!^OxSY{DbPsldNgwKkvQP}t>}Xt!5#4h3vI0R z{CrKG^CsI&>pfMVtKrxJUn;QL6G4}gs1tuPXJ0DbyV)yPI-*!vGi)^&_f>r{5}vXbDQ-yz)VaAn-99ksKd< z{~JLYoPQ2$4*~#S3j5y?v?%{YyKL=koXrf4?Ej;FNlx*>{N;rPo$->nWdP^ZY(=lq z7cLzoG<`%_iMhQn20%d8YVb1qE-`dR%~l1;@h+0QthQOp@F=V{(3SLO+uH)PM!1F) z1gV}1a=f1}>ytJvH1SZnyPRQ8wvsDYx?Kiz{&QUPTVC)B0f;o{I^C}PXfzIPD(SlQzn@F!z)B{WJP)2o-q0)@ge8QbCg=w33tIh^;Z-1(J` znChr=?Iz*k0tJs%UK;oJmTA6OaKetO;Me&A{jZe$H>N)t7~Z%HO-=4RJZTQdBH) zmv2DQT+)>GeH0>+tGF0C(((Kk+X~v8em~SxDoH3|e^kRFz9Tceg3=om7fTJCv*0U% zICfw+0K*;T)Df^cU;}Mx9e@b9S0cs%fq$W{X6WPBPMK#jumqi0u87luE5Z^HE4uOM zEg+);mA#{e-Xl=(9$RS8$%nJAa#nj2;0pP&xNwQJGXTGZx?U_9hV0&fRoLTEy^u$%M!k!g)7*m}9Y&|iwt0>NBi#?vv9cgh5IlB9aaWv#a7?fI! zkx)m>cQ9`5T7+7L{)4CbXcp!yGT0!<0H5zKa9T2imU%@a1uD!w0VC+Mq1Q?3r=3zi z#}-`S5E|6cw{_bti6veM=#^g^xWBGQcZwdRhW1;?Nav6MQU=l&4P zN-JsP6_Ar08@2rpDn(1ySKRn#O<=Xvd=3u&ZQV-Lq9_yPK=i$Ox;=YW}%rt zCycU2?G~n`rp$WhecF>v!-^QrxCOM_<-gg&;Q1lde;GZIpT5R$IoaE&l&#nq4F{67 z!sC!RsFF`xXOgWSHzs#U%(-lnoW4Jg!Y+evx$`XE%=Gn>u8<}0fx}Qm=E}K$6Dhlv zsK4B}0l}z9-(ICPny>F&5j3WzvkF-z<_OO11?YR~I|`pn3PZ|&LH$b%PH0eZyMO@z zz~TNoF+loHVqjzF^bZ{{cd)VkxA|Duk-TilPx(3Sq$?HcdhP*WYav#N|?>134Jt$FZeTK#wsoN zmdVE4-pZU3$-X*g&5V9_c6V)>7dX_TnU21`d_{Ej`QE*O9iDXH;!@+`?&Oh%Ej~_P zSINe_zSteSiXNN4H@XY%KX38jp#PWQ?ZuNtoC{ zZZb1~C~*Fps$C7q6bws_N4#!OrL=XZiVCtj2*Xu~JShP|iOf9I*aj5HRwdivlr8L-5lMkg0} zzK4i3Apwzdf|#;Wj?Nw)=xXp3+aM^#*CI*@k6k@^;#|8jQ+_d3y&_|A7tw*l`eBou z0Ll3B(K_Q@)i6+J7);857*(22K<`CKPVS8CY--_-mZPKXZ=Zg_JA?hoJW?kO6cJDGLi z{K+W&IYqN$OjdjSio;N* z%lX-zl+&`8otCZXHgJn!T9)-$>S%HFGqX=OIyp1e7BdR}xFM~UnN!etaO2kS3iZPE ztDfBYtgNk7F7f%DD3M7`Ydxly%ODY=*q(#<}Bw-S0yF7KX-7Rx^wx5l=(}A8QZiEzB-sVsrvLT zx3^E`r9QZFH+Szbw^OncopU@+29(Up=(K&V6gWX_mkUeESJ5uDxTrNNxDA+hGo=Y_ z+R@r&GBYbjykS+;x|yt3vNG4qyzaUDMzY~5UY7-nW;RDgXtTAx_vPeCE_P&|z|p(+ z?60Hb}S|^f_MNXfqjMm literal 0 HcmV?d00001