From 0d904fe1306f58357094d1ffd02264291bc91cd1 Mon Sep 17 00:00:00 2001 From: Eric Garcia Date: Sat, 24 Jan 2026 06:42:32 -0500 Subject: [PATCH] fix(minimal): Replace Traefik HelmChart with direct deployment HelmChart values schema changed in newer Traefik versions causing installation failures. Replaced with direct Deployment + RBAC manifests which work reliably with Traefik v3.2. Also adds SSH public key variable for admin access. Co-Authored-By: Claude Opus 4.5 --- terraform/dns-elastic-ips.tf | 84 ------------- terraform/main.tf | 6 +- terraform/minimal/main.tf | 1 + terraform/minimal/user-data.sh | 150 +++++++++++++++++------ terraform/minimal/variables.tf | 6 + terraform/plan.tfplan | Bin 0 -> 44128 bytes terraform/vault-pki-smime.tf | 212 --------------------------------- terraform/versions.tf | 59 +++++++-- 8 files changed, 168 insertions(+), 350 deletions(-) delete mode 100644 terraform/dns-elastic-ips.tf create mode 100644 terraform/plan.tfplan delete mode 100644 terraform/vault-pki-smime.tf diff --git a/terraform/dns-elastic-ips.tf b/terraform/dns-elastic-ips.tf deleted file mode 100644 index 3fcb582..0000000 --- a/terraform/dns-elastic-ips.tf +++ /dev/null @@ -1,84 +0,0 @@ -# DNS Elastic IPs for Stable Glue Records -# RFC 0046: Domain Email Migration - Phase 1 -# -# Purpose: Allocate static Elastic IPs for the DNS NLB to enable -# stable glue records at GoDaddy for NS delegation. -# -# Architecture: -# - 3 EIPs (one per AZ) for high availability -# - Attached to NLB via subnet_mapping -# - Used as glue records: ns1.domain.com, ns2.domain.com, ns3.domain.com -# -# Cost: ~$0/mo (EIPs attached to running resources are free) - -locals { - # Enable static IPs for DNS delegation - enable_dns_static_ips = var.enable_dns_static_ips - - # Domains to be delegated from GoDaddy to PowerDNS - managed_domains = [ - "superviber.com", - "muffinlabs.ai", - "letemcook.com", - "appbasecamp.com", - "thanksforborrowing.com", - "alignment.coop" - ] -} - -# Allocate Elastic IPs for DNS NLB (one per AZ) -resource "aws_eip" "dns" { - count = local.enable_dns_static_ips ? length(local.azs) : 0 - domain = "vpc" - - tags = merge(local.common_tags, { - Name = "${local.name}-dns-${count.index + 1}" - Purpose = "dns-nlb" - RFC = "0046" - Description = "Stable IP for DNS glue records - AZ ${count.index + 1}" - }) - - lifecycle { - # Prevent accidental deletion - changing these breaks glue records - prevent_destroy = true - } -} - -# Output the EIP public IPs for glue record configuration -output "dns_elastic_ips" { - description = "Elastic IP addresses for DNS NLB (use for glue records at GoDaddy)" - value = aws_eip.dns[*].public_ip -} - -output "dns_elastic_ip_allocation_ids" { - description = "Elastic IP allocation IDs for NLB subnet_mapping" - value = aws_eip.dns[*].id -} - -output "glue_record_instructions" { - description = "Instructions for configuring glue records at GoDaddy" - value = local.enable_dns_static_ips ? join("\n", [ - "================================================================================", - "GoDaddy Glue Record Configuration", - "RFC 0046: Domain Email Migration - DNS Delegation", - "================================================================================", - "", - "Domains: ${join(", ", local.managed_domains)}", - "", - "1. Custom Nameservers (set for each domain):", - " - ns1.", - " - ns2.", - " - ns3.", - "", - "2. Glue Records (Host Records):", - " ns1 -> ${try(aws_eip.dns[0].public_ip, "PENDING")}", - " ns2 -> ${try(aws_eip.dns[1].public_ip, "PENDING")}", - " ns3 -> ${try(aws_eip.dns[2].public_ip, "PENDING")}", - "", - "3. Verification Commands:", - " dig @${try(aws_eip.dns[0].public_ip, "PENDING")} superviber.com NS", - " dig @8.8.8.8 superviber.com NS", - "", - "================================================================================" - ]) : "DNS static IPs not enabled. Set enable_dns_static_ips = true to allocate EIPs." -} diff --git a/terraform/main.tf b/terraform/main.tf index 29f4d9d..c8bacb1 100644 --- a/terraform/main.tf +++ b/terraform/main.tf @@ -107,9 +107,9 @@ module "nlb" { vpc_id = module.vpc.vpc_id public_subnet_ids = module.vpc.public_subnet_ids - # RFC 0046: Enable static IPs for stable DNS glue records - enable_static_ips = var.enable_dns_static_ips - elastic_ip_ids = var.enable_dns_static_ips ? aws_eip.dns[*].id : [] + # Static IPs disabled for initial deployment + enable_static_ips = false + elastic_ip_ids = [] tags = local.common_tags diff --git a/terraform/minimal/main.tf b/terraform/minimal/main.tf index 090870a..5af2716 100644 --- a/terraform/minimal/main.tf +++ b/terraform/minimal/main.tf @@ -332,6 +332,7 @@ resource "aws_instance" "forgejo" { letsencrypt_email = var.letsencrypt_email ssh_port = var.admin_ssh_port s3_bucket = aws_s3_bucket.backups.id + ssh_public_key = var.ssh_public_key })) tags = { diff --git a/terraform/minimal/user-data.sh b/terraform/minimal/user-data.sh index a8bb8e7..242aa30 100644 --- a/terraform/minimal/user-data.sh +++ b/terraform/minimal/user-data.sh @@ -32,6 +32,15 @@ systemctl enable --now docker sed -i "s/#Port 22/Port $SSH_PORT/" /etc/ssh/sshd_config systemctl restart sshd +# Add admin SSH key +if [ -n "${ssh_public_key}" ]; then + mkdir -p /home/ec2-user/.ssh + echo "${ssh_public_key}" >> /home/ec2-user/.ssh/authorized_keys + chown -R ec2-user:ec2-user /home/ec2-user/.ssh + chmod 700 /home/ec2-user/.ssh + chmod 600 /home/ec2-user/.ssh/authorized_keys +fi + # Enable automatic security updates dnf install -y dnf-automatic sed -i 's/apply_updates = no/apply_updates = yes/' /etc/dnf/automatic.conf @@ -64,52 +73,115 @@ kind: Namespace metadata: name: traefik --- -apiVersion: helm.cattle.io/v1 -kind: HelmChart +apiVersion: v1 +kind: ServiceAccount metadata: name: traefik - namespace: kube-system + namespace: traefik +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: traefik +rules: + - apiGroups: [""] + resources: [services, endpoints, secrets, nodes, pods] + verbs: [get, list, watch] + - apiGroups: [extensions, networking.k8s.io] + resources: [ingresses, ingressclasses] + verbs: [get, list, watch] + - apiGroups: [extensions, networking.k8s.io] + resources: [ingresses/status] + verbs: [update] + - apiGroups: [traefik.io] + resources: ["*"] + verbs: [get, list, watch] + - apiGroups: [discovery.k8s.io] + resources: [endpointslices] + verbs: [get, list, watch] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: traefik +subjects: + - kind: ServiceAccount + name: traefik + namespace: traefik +roleRef: + kind: ClusterRole + name: traefik + apiGroup: rbac.authorization.k8s.io +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: traefik + namespace: traefik spec: - repo: https://traefik.github.io/charts - chart: traefik - targetNamespace: traefik - valuesContent: |- - ports: - ssh: - port: 2222 - exposedPort: 22 - expose: - default: true - protocol: TCP - web: - redirectTo: - port: websecure - websecure: - tls: - enabled: true - ingressRoute: - dashboard: - enabled: false - certificatesResolvers: - letsencrypt: - acme: - email: ${letsencrypt_email} - storage: /data/acme.json - httpChallenge: - entryPoint: web - persistence: - enabled: true - size: 128Mi - additionalArguments: - - "--certificatesresolvers.letsencrypt.acme.tlschallenge=true" - - "--entrypoints.ssh.address=:2222/tcp" - service: - type: LoadBalancer + replicas: 1 + selector: + matchLabels: + app: traefik + template: + metadata: + labels: + app: traefik + spec: + serviceAccountName: traefik + containers: + - name: traefik + image: traefik:v3.2 + args: + - --api.insecure=false + - --providers.kubernetesingress + - --providers.kubernetescrd + - --entrypoints.web.address=:80 + - --entrypoints.websecure.address=:443 + - --entrypoints.ssh.address=:22/tcp + - --entrypoints.web.http.redirections.entrypoint.to=websecure + - --certificatesresolvers.letsencrypt.acme.email=${letsencrypt_email} + - --certificatesresolvers.letsencrypt.acme.storage=/data/acme.json + - --certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web + ports: + - name: web + containerPort: 80 + - name: websecure + containerPort: 443 + - name: ssh + containerPort: 22 + volumeMounts: + - name: acme + mountPath: /data + volumes: + - name: acme + emptyDir: {} +--- +apiVersion: v1 +kind: Service +metadata: + name: traefik + namespace: traefik +spec: + type: LoadBalancer + externalTrafficPolicy: Local + selector: + app: traefik + ports: + - name: web + port: 80 + targetPort: 80 + - name: websecure + port: 443 + targetPort: 443 + - name: ssh + port: 22 + targetPort: 22 EOF # Wait for Traefik echo "Waiting for Traefik..." -sleep 30 +sleep 15 # ----------------------------------------------------------------------------- # Create Forgejo Namespace and Resources diff --git a/terraform/minimal/variables.tf b/terraform/minimal/variables.tf index 568d114..070bccb 100644 --- a/terraform/minimal/variables.tf +++ b/terraform/minimal/variables.tf @@ -45,3 +45,9 @@ variable "admin_cidr_blocks" { type = list(string) default = ["0.0.0.0/0"] # Restrict this in production! } + +variable "ssh_public_key" { + description = "SSH public key for admin access" + type = string + default = "" +} diff --git a/terraform/plan.tfplan b/terraform/plan.tfplan new file mode 100644 index 0000000000000000000000000000000000000000..c021cd932ec9b3934d00c120515255183d22a5a3 GIT binary patch literal 44128 zcmYhib8uwe7xf+6wr$(C)v;}3k_jfZ&53O%6Wew&F*_4GdGmehSMT$5SDmiDRsGNH zbN1cqv({FT2Zz7_f%$%yvGVAH{68-!5Lgg*OJ{o%M@Fn{QXkV|e5F!3owDSNnQq1mj%gO1Lc;3S1gNNzn}VpwD7viB8{2h}%1rHTj@PKWXXPQD zJW)hzXL~Ce2d*x|VhsA#neA6qwbjoyArd&H!1Y3sp0Ok;nnFqb;t6!rE)-wiA-dg- zx;#H*-kS~10SoP}{(YFu3ruBZK61+{{g<8;@9Y(srNhBNq9nsBx=cY6p$p(l_HuR_ zVXQn-L&E!EbqmT=VGY?INTtD=8VpgIShplN4&Bk#7%xkQmH?{&z^D{{Q>vYWfK0hO zX{`J4g57qj3k1+){dhw9^jD|jcm}Pa<{uS)#q)7j38G?%%+gX28la3mBH+-l7NbxQ z1OICx=jzodWo*=1=45b73S=w=mC(sQ=TAa*c3MG1OeQHWfJk=wn^fESs4QZffnIU# zDby>*-7E_T9?>G2MPiFRBSOc68nctCkY3SJ0O25w&MK?}QI8=0;@-WG8A{#-?tPXX z9QXwl8paMArj}GStl2mG`bCz5WnSTm5O3E%H_=H#2U7TbT}WYM3%orMGr6-pSS`WD z+g#FczLYIWOC;P`Rg~Mxt(}~l zetJ1MUCX@-S0N$tPo3?Lgj_??(TJSgoP~HQf2gxHWyTTVSM-o8BV1ivT^V_S{FDcY zY82VU@34brE_ap-+*AOEu@+;x0q6Gw{%CD0mbHL%AxL35FoSVsF?@xu((Rz$8z$>6xIF~+J(z>*e4sY?$q!Xr0nKg3w3Lg&(px86D zrXdC9Pj9fJy#8Rz;ED33DOCUxkLZMl_tJOFIPhw6d;M1pz-keuuWi=w(Y*S-x@k=Y zBOwBk8PHgp%$Q!*-g(S-sZ@f?s)i^+UI%aErmLa@(K;Yn8YAhNHlw)YVgv}sHn#;X zCy(6hUj5irAV`v@2bMEiURvzfKj`1IpH7B2_vISWiP!q0p&+OZp&R{s9>1=(UM@E? ztP29ja1qjdReqk&l1KC*r&H{Ye>uTEZBwqAdg+lRK*5YdYSM^c;`RMXBDqMeirhzY z)ghs4n%Q;S_RtFUQPENm4Lwe=#DFBBOM$%N4%6Z)G)9A>a$?ePLcy2}vsYrbreuzn zMK5Bq{`G+B@4it|N5x@o$|ISs+}WZ7Smhk-7I*^jvsNdUg_4Mf3RVd&C5;{ndp>B4 zQYeU0VJU>uaPbXO^%Ps7)`n|Dk_)c2X%|mbKTL$1MiY?~4YKXeAwkxL2O(8VsW_bz zdWJ%d{|DY{#TCgrolqbe4q^wbR(rl!RV8Eq)~GAk3e7Rqe}A1Odlg9sfMup(#8^Ky zUs~exdTU1d#74G1AGVm5UokQ{x_w{*&UV!f1I?2>&`30xMEmD3#xSO~kZWVG0st2(EhlccyoUtwDdoN_SSK4rjI{bHrhSshSTiBpt1a2)|sk_ zrn9=uA{7%2rb3~nIb)MZFFzzm)Rfe!Au@;^R!TiB2FPLH(4{pkQr0Vqppcrbr6Q71 zXan1mb(FEINZZqf| zYLCP4dUlN29l!qGO5j54$)b_&{dPwNk=)D?FA@To2SWEnqj}T}Pkbuoft9fj2ozG7v+u_}uzF}YrtwAO{sYH-Qv1<%eO7KGqS8p@#FUNSGVqT=L(yDNPuZE$iW~Jl zxHb6s24o38NQNFC;wTOzdn*X$4CxdL?H6Z;^#J}(VrS$T>$Bo^3W!Awn^5pDj-xjV2evIuW}HE zFVIu;KUe$xs}4%Cx?T0TIS4TVX{#Vj8d*XaLsuhcH|3=Gj0F9BdCSI3pJDAunOg$0 zKs;ZqtJW%n6S80N*%oJVXLn8xDASb}#Je(H>ripd-ZBzq{YEFVjrLy-^{mjNM*tU})g z@KTDJPtZM_19(iI0?H@W$c62zbhxdOXd0^U9)JFbhj7ykAC+w~B&DQ6)@=3J|Ay*$i z+J)&SG^7yLz=iaLDc~(Q2Qpbp#s9?(tt_@<%YB4@4nisn!i*}fpu;$Wkxi8ZjSuLG zbLpg#=Vi#&U&RQ7KL9`Y*Dl#Y-!$BnpNtI4$K-!=*uzyk5@)aPN#(@nc5UvRLx zA!an`&sf_Z*-OJQg3Ur!I}RYZoO{Juzk*e@NYZ43To+5yXhWo$Lx*?M=zguBVj4pd z!pAkJJ^}$Po*tf8ogP&yk2>hn$p11KcBk37F2-vO7TatMJQctAyinDbUSL!j_)zFp z9(+amufO~{YDZ&TXdcp0>;G=z;P-ZY8}u}KZC8HUdv43>N+xhLHufvzlV4U$e_*eJcLu^@ z7`=oPS(1<;wKrl8lwO?IVImZu!P|+6Q>Fa6%7WW|JufFaDdb_Ko3k~Mnumh~FzUw+ zGtCjAnET*Vg>~y2-&}t8HndOjtppbU{cR`ac0-ne+A%Wq>0Zw`oPUEB5elNvi*qCw zQZRUH5|WJ&kXD-Ql~jq(>AEEPM%DZlh!S>|ZtHWL5VHl-W2xgtqDMe@l6n@50kS zL8zT(%zx~ZbDd+C(>(5xqMSY#8@^;7|2=A&M7udGOLNKBUjg$Dq9mcu%qcqB_~)A3 z7i~8o7ImU;xdbtR!7{~Bk>i=eodQ*vq7|qbc!nkcgJImVL?lxE`XH5uztOUZmol~o zYksIM9AkXwD7X@L zPW>h)$V3E7@q)G{glScu6`=mxPN|7ZB4R{OFz?u5!J>`uEf>asiE>{ylfHY;{Rm;J zR2)^D{f!}#TH6}=DebnvbqAG_83MS@sW$__@1m<@wjV!c}6lfUDz8RO9wp%Z!A;ONSD$ zDL3C3Yu#m4jBQWbNAe0s0eaohVFSq69qVh}{wXxiNxxcmVYIrMjcd5u#+N*e^kfAU-q@45)6&!9 z-_s+00i|7cT&4IkGiQM$o1vy3`@8#tMs@aeDKBlAE~kp`y7NMP)&H)ykVuBw+Z^l) zpyq~Iwh}8X_Ur3t||LqbV^udoW(Lt8yBc-IT|c zufnS?a-ycYO z5`#Vng{WR9=WfyeRb`e}jfZly>(8T(xPaJT7ecla%3>l2jFGEwF;aQYePU5l%GLT8nH5!nd8VsV~f4 zB?rRNzfrKn0-wQrKq-S5<5jj9Qvy|gjg)-&09Xqf-ZTMxqVSd+lBQKbMjD)&4ERt| zP^IONC+uAzhD`=b&kq4~llgb+FilFR$c2+}EPDmK?ntqYxLeHu&gMP!CUcSdvx0|9 ztr?OuD5SNKKug67?S^*p%W9X^xl@5t}BN@W;)dgv5$z!72cTyZiLVFKEFb9 zpZ&y?-&t3O=ygp@%0BW!GatRU_^*H&XH}^8m#_jC;rtyTxvPFFUR|ZP1S~_aK1nkr zc6KTswA)P=!Ej{-q#EgBsb;m|<^#uqUv=##Uvk}tM}e8t+(<|cI7BYkuX|(`XkL3K z)Tjj}+?Gko?yi4&3lv=Cv=qx}TtO=>M^eUZ(y-XZpiibr9zgb&!W8wwxE;6t9sVn2 z97sbPB**6xT$dv%?|9XUhGxj#b0P~Ig7^LuUKsy43?nv0)Mc4N^g+vDF{5U%-)C`! zk9TX%YL@hEe(3i-DYo%ydyL&hvQL8-PKTeiR7~(hZvuDOy0--$RO-}4Rv*R~ZEE{7nr1=UaGefE=cHO%7c|LpxfEXrX`9r19_dl;t( zQ38&2$E0eguBf=Yd^c76tHeFfE3)-y%l(Q{!A8 zQ1V=g$<$2<(^+&V90{Bc3$QG(=8%Wxl3Zouph*B~B=pDFX2EUpojVNj(4u*^NGV4W(IVBZYbtxkT_Wktb7OUpFnCg}K;ozPF124p0P| z+y^Xf4#?U-IpE!TT3$M!+5lnhdP1PTJOC?MH(dXcgNmXBSKhJN`X4nm-cPMshlAOg z2;oBUUyK+tkR$o{^TU#H!s|Cn$Yfiv&fYd;c{zZIE4|LW=cd-SSmDBdCu(;8$}o|J zw?dW&Y)S-UN%9yyJav^e5!1bY9-C6#XqDAZeencOyMS&Il%=~+>sq)4qOe^bvfD@h zFiZS1t`Ik8(us9`0LjJcD1q(71G3D`>x&&ZjtUh}K0d#@I+CyQ?6#OmP&j-Cl|i65 z=Q&8(n>arIjVgY_&|(-Ve5>tvs`j4_spF_S(>gtkjCb&~cf?Mi`k?@P1c&i_MlkX4 zO4wK;js~%$#BxP3Gv9oh6qBZn*H{n-#k(wU%7Ye#4RDvic?N^Q0GHNGMmQFDr#|yd zJE=CRjL=q8EZs0{yeX_J5e83|3qobWDCe}>o9_pXBhY}k9Vl&LMOEd*=;C;Hv!&li z^SJ(eZRLf2J%E#b{W=KKdx3h{MWi#)vqHDaIprBdj`8}oap3_U^#OlE5@x9M2Xw{` zy?NXDm;GV)V+&~`Y=nKh7W?m1LS=u>VCEavOZiJVXJLm_=J{V@eO(E`{_2j?XofgV1?lk@Ak6;f)Vw!Bcae)K z{R_3?;xwwIU3k$wj^ZgNbDW^TW`_P@vOH%!n=yidG1h9%U~YBMx)snVeV&St>gA)y z%S1~*Czwt;>F&xO=IWD1H`Ar_EYBD7p#oO4s>)MG?E5}g%XfR1nX1cMmckq`Wzz)m z{^_?z;yND7+K%YQn^E=`o%`DYsH=Kz{o<7aw%wl!K9`iq^+n%p|0`AY*iV_Y=~YOH z8pNo)CI-TMk?VxW%K?>q6?-e4n9F{agKkU*0>MS4a(x+C0{POZygNQeOKm~@a(Is= zz9l5L_&JQ|F$K*zbS&hjg=uio^y7_+cLuBJFWV<#wr;}L2LY?G-S<=n-{m23bIt1v z{;aFrE2#z5jFnXCl;wGVObXq6+dN`^Q!1tu<#%lTbgZ@$z6mz=K-dmvLp{tU1b`cN zz;aYQ+{tWcEKCAn^*H6xIh43|=h2yyUElwp;!j+{`p`J(kN;GdRuatW8X-34ApRdd z`u~)pCV|rPb%6&#@l#P(pzzRF=UWMPk~S|qyuFRYw*XTSOb@Syz)(=!5Z;Cb)O)IL zT@iSQW~gWf0ap<^L~4Om$9Vj@C(cu{Y2*tZ4Q6>`$qbrId(eCoh0r#8Bbz4P;`z zZHeOT-Ixh0N(AjBF!3o!MG}#Rt?F@faSj=FkG4M=U|!5ig{Q#-n>%XVvA&4CsN#Oz z@I8P!MXa#iD)tqp!$aNk0lk;v7;u#AA;pYc!bdfKy{=dIdO!o}>Xq7!-4AE!X(=?1 z9lgkd;!7xCh??rsOfddFqe?OTDFu4ni;3Ps>1{%Z6XnmH4kl?wIEb3Pp!=U;$mz{HAcP7YZ-jF&+0VYX$ zRA4)C?2g=pK=ZH(FSTJ7!=WP)JMPO12B>0a?Cdz2?Q)tNiZGuJce6r=0+quhmcUJQ z%`VuDbWUBuC&ZGp;%iSPTs4*D5~vM<{*O8KZ$7Y^Pu0IAv3$y*7daNP-8tnB!aPd( z1qalglviJ51>tA-1q!x`#uobE27zJ7&2gBcYI_;ThY~t$zHxnHy5PgIQ(lBG-L5YV zFeU(4Bb|oNx+A2?Z<>DT_>&LPnGXAn**Tpx=YtAuvP0M}t?%Q|y)x|odonYHSBSd? z{MTA+4j3>Gfu6q}N%Y#=1Tvre^A69N_A>m%5zSO2azhN>;lC1I(lsWA-$)6jGz zDzM4CHNTkC5}e#!e$IO^dQvARB!d*X!or1>icnFy{b>jx9+pFlXB4jYfEJd4iXq-h zjD&)c4MkN9`oS%nGb=uS2<`1!$h|x5#AU9T;!&^{5UZ9RLcDjQa}uNqLN#@o^-I4t zx;*tcmw&YD#p-l8?j2-zHT!DP+>d>o^L<9#-5Da%7SN`kIdjN)sV+MQu@6yV7#2au zBtTXbRjr#_G?DW!3=*o3L~7y;ZHd#h(#ssrd}LNlc7SQ8<9vly-s(b@p6rzv{*H_n9f&!pHrb;UCuCwy&p7-%W`B+o1;6<>CiG0Wj z|Mn?VfSI(Q>NzCX%;PJB;GlRvA4(lI7J}Z3gVE zyrc95Dajx`{eTPzIb1k&6q&ht#Bq6QOhg$mB$_p0E{4MQqKk@ZEQtS!M$gTs7x{8s zSeivKS+1jCPIt|cZ$uYS%Iq9>iY61dbv-tSqdetIQMPn#{O+m>@ z;;JJIC2MkH<}CsBnu5Eu)l}s{OInH(A;WpOTw8O|!|q-Ct1ZzRa_evtNG$>~Q6dc#DJ zr3p&X7itY(*Ql@agY9Z|r)iWZy*}R98 zV3-@RH?wtkrJnp=00R3(cfQih?38HPpuqI0upeLO}ps8ca&ZKT|& z^7qEGu4B^k!K7ADzjkw_&Vp+!Rs*S|h-ef7MFdT?SPUzVYC$xGJA{>n%|cq906eyih};J4d-iS>LdNG)D7_2cN(NYd=kV1nHtBby7N$zJS&rN}E!QY6O6 zYZZ0=#%TC$6Rb`~tVx6xZ_9Ebs}?QJoLJd~%DSEH07WMq1e>$q;~!(?N?Ol+$Lv&S zorNa2qx%x(P9w6soivYC+nSJ`?$pz}67|WwVOPapjWKT%MJ>sWUaJ@IpotT%ag6s6 zuSSH*oNU=xsb89HAtn~De0(OWLA}FPB7z$<#`aG<9-LrP`XelNB^F!5TvH5c8L%*% z#%4@B1L%Le)kzgv1_C~pxzE%uFUB#{a!89pVqJ{0HU8yyh+tL5rzbb<*;+?=) z3e(-`#zYF^8ujJkN2uCtW9-QMaj`2hAL$wc3hx#5FMhF^-UFQ(Bo7zp&VWU}m}Aqw ztN#3ck=j{QjXn8Ph|X~-ED4q9NC-Ozhe9sSD}l+nsCBJ-=nfpR2vz^&1ytnW@GDIEvkvBFu~zM!LSlL|!89MldXJXLHGVDghG_^hzq; zmQkd9LMcfAHbsPjcy_Nl{iZD^>MiT;VN{e>T4{Y1^P0HRMNkKfuZZ$cGTf7WAW=rw zpENRO!g`xRwtv}Pab$s#DZad7?#Jx%-`tEk-L;OP2g`4imLy6gh+!=_cYuwIIz)1q zm!w-*8!LKl2#EC|pTOa&k;14-Xrg?DWMqzf8pKfWJVA`X368oon#vd-aeHS637!!0 zN1B?$Tx{F}9B0z5a?FQDDH^U>H$$~qET}e6f6g@{acsP;68y7li#azi!cE8ikAL80 zFsO&5<$BS_6@dvaG6bOldb}SH6pertfR<~9a$K-!>7x~=t zX`$UT3xK&?6p*Z9N33BsPu)tw1?eV3W%#W6NNqO!U1nV_A}^X>#>(_s_76JhCsIEr ztGW?jiYpsMW&3RjDJ4I^Qd@}FiYj)a6U4pgP?gDmgR`uX$3u9>JBSD#APR+`xG7L$ z#P>&0qWh&t!kn)Vf;i29C0rTR7?gsvHX zJ*oz}A0xEIM6VOxw6_?7$6_>?ydcHKPpift*PzRByRro+@{?-P>n_H}_tW5~(N`ts z2Yr*>mZXB}2|3NQO5S#esO{XvcE5m}KVz`Xdx^z&K^R~I+WY-=O=QxC8sev#+8cDs zcB<5z#3O{K-(2;WZyauB?B$%4f6&Ka zlO-mm>HtmOt?`G>%B}e*haZ5hi&M8V5mjjBv zY98LCE9blu%@2Fr%H_P`a)o!r?N8>pITU>JC^e8PFK7bz2fE_7a^*w3$<+$fFA+~A zRe&Fc!#Oowe}mn};wIGx)PDZ^$tfKB^Snvu5?k(E6Ep-qJf`?Mgkb{gXmc3!M2 zUJ${y5x#d`ldMkT^`lJ)m5o|BN_A0&jnMFZz5`1_N`EhQ4~t(DbN{$+YAv%=NXFjq zaU4rQArNtCz}&9=89!Xr8B;5$5A6=Lvur{LN`@J(?93f{q-5}ysZFjXK4R(gq;35l z!hSr^#KT<0dS0;W7k3g{MN9^EXUy{hZ$^N{5#pdJ57v zwwv4Rb1Y6O>*eer`=lz1Pn&Z5%7jZg^RCeJ3oN2jNz)j|f-%VD`wZl-qK!Sa!(0;M$~HW;H-WaB1`b_S4qlS2 zA>ZFyRs!ndwvXftpZ!pm?ys;3eEjre+fv>Cw@7PcIZztZ6kper70Z|AWksXl`V^9X zd)dVyZ?ZjOV`dy|rWUjWTiv8ALSkgpwc=Md(bLet@~;GFXP(|yFh!u?(tKs<9gT28Kb9c)K&YfDzn=4I(IiD z#&;}lmau6q9dDzvqHbxV)!n;K;xA0QxSLSVyVk$UMny zri@HxSvlGVv{9=rYR>=d_cJacRsZDH|)}sqz0o90H4g$8jF>XIGzow7X)jQag z3Ehs)O@x+JpU4+5_(Oojh2(kZ^ft+Rwl^GI0Cf_dn_Cg{`}Sl$$gLQkgzcEKSdiS~5bSY+kwBp+nLg`H#%tjQ77z7^ zZ|Sg=CKJb3Q=BeK0nPo#FAXl50z^O?drf8?R6>#-Wfsccm3i)HRRoYUOO-vhG8| z#YVS(kDXQxnQWY)9w{h#vjQDB+vVQl;G_h+q+4Dy$CTe;TVe(ZD(`Ro0v<6-LTY5WU_F4J2mt7jdRU1 zfoqJau@bQ0fbBv;P^YMP$VP8MNRYxP9ZL_!wd~*SJVc1ic+SI6H<2PRwC#*n^wVe-p9GzSrq1+>yns z*N@U_HTC}U7i~1caU~{0+1kHaJ^gNGW)tL%8Oo_1i zG-I0Ycf8vH8!hus(H%Jt@3^P57c*!%AP{inm%FvgT;8_d38XZ$#l>x&)9gTFUiQ*@ z6j+t86H-2!J5B3XynvQofyal!e-o%%y7Ad!?1=WC)3ZMwj|~z3zMHydNImpf{6jzX z|HSrLd=a^=Pv&k>A46J0Uu}+`Kw2rWJFw{Su;`&eO;ty(|1a44V(;{yf%3rw^!m!8hKW`3ud$|s~x$*HcWshb4Xza33n9f^*{Y8k=xgsrng1Y15drdtMAH7Y@k z1qxnfJ>*%lycR7q$iM`u2@E1+oz+E6B^(r+2?|URNi0Q;4xI;?IgOwI;NDvvE|JgI zSQz7Ae@VH`Q3~IzV@y8~4E7!ntlpvc{P~i`m;H)x-@xpG0|0@ z*nI!h^)t@F*>4U{hB36r>Py}rg(dJY2YzF?hX}lA!mSAf=cyc;bk|PODk@wEYM{EC zV#6%AJR8k7Thauet)sql$T)Dl;f(XsRl}Bdx)=|bGdI<>UTXCRJBS@wsSt@ zJ|9#KMh7-cCVi*KP08{w+HbHQW&0owS2S?x&^GgI3ARj;iPr~xGOr-%MbY=*{5%sK zGNJ2lp)K6Vcsc>iDC3RF1}Y^o-(NbrMz1LWd>u8J{^)JGwDwhx-8e|Jq- z+>0U{sb(8BnQV<*=|4^tAGwflQ+)05BnoJX5iqBSu$JU{2!g6Lu>jj!wwkNNhn02o z?&wCmX4_qMU@pO0iKM2h=EVPnY7H238@a^zpN>p^2^fHFLO_fk3yYe9_#VaakJJ39 z@XgPGL1Z7y;Ci+lTCCmv1vc&s5_6`9H{P92_G!Bptp0F$3;v#!da?RYcX2U|PQ*nPpRA;oe2BujZC7 zM1Wlf=D?&IvIcvT2erirFgL#BD)%B)eZ|oq)N#-gbRF=8*D>&wc6^oi6MJkX5BBIk zXb+?%Jb-SE3(a0)4e0iZQKYXKq4JC&-W~6X+X8em)9C`Tz)E>YRmjE)`QJQM{ixK1 zBT-Jj*b%0FZjBoN4*Lk45xJ+56GZTnv0;+0YeL6al()7vn_1FTLBX21Ts{dRC3N%l)Uog2sS<-o_H}vLNm-;DI zGH%ojS@W*32QSwpF0XaoCupvt3yW{FiHxTy$=3yNSN*d7pRK4a->%Hmfz_4Wa4czO zW`jgR1B;e2(K*oCX~cK*LQA5$$XZ5}SO8X9)05n=-kr1h3pw2c*N{*AlZzUmMn7Y2 zvb11~ave5hYFnFu6pfRtY!p#PN@cE))Go=6-ts~8e!^vHf-(X{ww25&+$h>(*c7{( z8fwU&griY{;l^>|D1PbSmao2N7poQ?3ZqZ}Hk6hm+x(z>`)(16f*#%etI6P~{9!A= z70DlG{bT|)xK?qnt#OVARIj!3-)nJZh9FT5{jY5@?0Om?BVGv)nYBi>T05OnSRBxJI)r zx3uvRc28-RYkY|}q9#Ok)6vpl*a9r$3r4>;_TSI!xR05Nc$+_jzEpMxJ;eOS9;RD8 zc6Bd$Z-%&vyxyDGr!evMS!hCKs90mRGe zE@0-GV7CK#mdmpCBe$P=k|Az`^*Dwztdr0z1}@4^^FXmMG2mwmG0ty{n44`gF2qBZ zD;MHH1H@0cng;6WRpO6R_YSLmh_@R00H+lx0(yC=*0XOV^)Ie@0p-*zIJdz$DB`7 zMPK&eBqKrgjJ&QD4moUjYvYJDQe`|5&KJj9h-j3T*tHN;o(fDs$uOHJ-bXt@_bplT@}6Eg+>q$&KtZLb z!=z_NJLQwDYzX)mcsFmEkNB0EbzB`;!#N#^g~w9}(UI8j*9BdOh}7qD<@;F?0JPz5 zlh*%mQR&Nj#{w1k86pa!50MEujXY9?Ou0WkD>USPOgig5#k^p{t2)li6$`z#QpRG?El0+Sg^(e&| zz~~*%{g2;^3&ROHMxMx1+J>UP$o=}j zQmH30fmTd@n9eE{h!p{SmD9bJxd~ivgm+vDyyr3NErs*5DsyB^)1z?jC)K`9kn)g{ z=619Us*#eEo{&2b)01IiwptNOLlnkqUhpGPnTi~-fH%1>mQK*oYKmbv^W;}1zZ|xn zK;cat^12gYKy5j|w|QSXCON^}RWt_C#-V(P__6$NlG@~fzc)J{>;+*v3kgI2_=AO; zr@7%cnwnz}m{m7L!VeA}lC8r`j-p}OIQs>7O0K+Ce1!aI-N^h5Z!H!UCE;r{v!198 zHZ-GWC&P`OCCfVGBkjU_I_=w7dg{AKL2k^0Q(Q6B=J(ecyazm36v{&h3|`{7sKiRY zM$&0y|7U#IhK3df8cXhg5}IsQD?_jZ#NZW%JrsRyH)5DZepp9xv3;Qnjc;zX$VrK&nR$215S~Fv{)kT}Q97i;q z=rp2S5~Y-AowTuRwtll~%Q9*;$$mre{8Ev^lorD%21n(-K+p&rW>(@kXl{U0_p%$y zpTG5uOMnl!b@nQ(i|@oCn-m~uUPz{j&j^t{>w1}jS9m+8P!Mh!kp~303WP7g^^Y z!8w|us?tSZz2ye}>SgKmw(9P^);mM)j_6l^-PN2F?t35%#3v1iQF4M<`}#~oRAXF?v*Z-A4g|^D>16u-nmsl zm5o}LwT8Gq3F?#pKNaef=B?Zt`Y+CPjB;-k#8u0t{rf>46B@%%7b(NO)O#($ zmO5pS`~j!T=rQS_4MXLac5bTMSk*XYDRPb(cBQ@ak828?XyNvy!TeOX4TjCC9;0;G zRpBqQbcWcpdeL&RA^E+I5RhWvQ4kQ4{w221GT?Afkn;Y+!3Vz!;W~n|9wy%Qa~`6! z!iB2jy9O&Cc2`R3_(1S=N=YR>z?%9gt3sOlkKREyb!&V=+PEd~@Syg=Fhs5jwh%AG zL^K|u7SXVF@gS81jbiO-UcuMzH$9}MaWOU^9%aFGkq(L$>QI?I3NMwOC^T5>(dCW$ zaI>DCGo{v}<&_?wM5FOpK5K?j@b0iBH%^4rqwUM>puM-C+;9e~=@6QY#qq*ku!keq zj7X-eeX+#{mYlJq22wn+WW|&g!D7&&EyGB6BcHjccJKaL4q6MD;%OmAanDpCV)-Ee zk3BFlvZeJHbhRoCU`ljD9zD}q= zLT>XJGAm! zWOcrouF-D7OV0=BMzIX)=dBhjf`(z;_#4fqquviIYRuP&9yXj?euUIDh^9&`UbdU6 z%6GkbD(NQ#VFr3C`n{7YFFp{I!;_eCf=;6Go610?%>Bw~18VL1uLYKx7&Lco%I1qY zuED1}Kc%Q@L4Nn|fpiU)^Fa9T(F|COLekSlB-uxZ$8o^DNp@byrI0nicY8*DUy1gq z%0efMGd{Z3F2yF;fP^?f_whHXn%^gS-UqR#^X?x-OJRGYH2hJJYuhwXfpMu%UNEqC z^5dYd`TmbVhXHUCHv66S7bASv&nh+9+jv)4*U?M{+;O9C{Nr>23^xnnDRsZJB*dwHK_T|mSM!Iy=?$30W(N{)ycpVP}g3BX(5_JQ#Cv? z?AP9cJ5WuSfLugn@*7uPWy)QbeD3; z63V`%cbBCaI2%Ua8~MiDlcR2~>I|GxsQq?|s@gxbd*A1@b{H<;4!hcPQ#-3ZafrX3 zw9Qywzuql@CzQs)1S0j4jJ@&l=V1bo4W*ojJCls+srtFBK7oGhOe7T;lC~+G`F`k3 zEe7f)4z1q5y3pMkhlM<{y2AC~?#eyoCp##5nm8r&=-az$;Db2;Xpp#tY#hHD3zy30 zW_#BCf2-VnN(lHcKSkH7EvF;=?FFP(>xtWPd@*=QfAi|13YIyg&rJz|j!=A;)NFhx zbsEHI8pS4TOBqBpzFZT2umy{hAdt*Vd%ooUU!_$QzTBgF8XZjksM6c54|RQ~^2WQs z&SH8P64#Z9*k%y}=bp5d>WB+tzVaM^;G)+^p7@kOVvlmJ~A!n}XiiIdJ3xygsJ!0??g>}*9i9^8{Vqp28PFGt1 zXJe6a@n3-*!_Sbe8L7Evs+ODWJB^w(R#R$h{hQagFmGJ9cq#U#3Aauv$NGpFF@<_g z$*-;KjyQFQkhzXh@mbnDLmxoTF3=TS{h=YRbwiV6twq}CXgq4W>B74xM{OMyKT?~2 z#`JQxnKm4@^UWxE0O%Z9%=l`7#G&A#ka*B|jN#p|JV#>zNzrh|bZQzM8!4$IWIo|I zsF3~;Wf`vYQpMqxhHL8{V0HYVaR_+mUda0$q9Y+dC^qMvJ$Vn&zzl@ z(=GcDuiCHnz}?&3E4$?sye+XN22DhWotoe3-gHp}A-e&3DPbj3&k)?&yz#_3{oK73 zVR^ZYk8?n@%VKnK2Sq1HZS ztCxQyS@NM)^}J@OHB!DK8w3npDTa59t6`40$3RUOTfGTCahuVYgKtL)4%`vx7@c4_ zT0&+K&^W{x2#fqeerDcaa#5xe+Jm_vI`4Ls?(`l*U5e(yP+cEh^MT92-pZ4rs`J;TD$78WMB zl?IzelTNr8O^nm){V-IsG&{T2nvESw3t4e^sG*Qh+?VI#5|!x0u>30BD*fQ<;7UJl z7-_~?gSNG`>8Ml-)~qcA%Z@sGyuPr5)<3uknXEQbDCJ=pU-At)hOPNG%`0=BFOj}# z#lZ@$hpRbJ%jnt)-G0S}(b4;gjiS|?B)9L*5sDUjoj?q}!sXZ49>w&ofX}%V3N3$tL67C79>MO8qKf5RID0V{QT@g?SZ6$_aPb5N-zK ziK6BC@kJ+`)^zNUyQhi3zi^cpL zBFGFUtW6aaHF+v=QoBKz-p_%XYRI;iVruM^_>uc&`?ja&ms(k;lcuk#HlwEC^&h~i zN%-&lfB*nrU-DAm5M>jcLqMVc0Qs+g0P_EJd~btDV>hq zCaT;;+UIo=H>L#xWvp5l$ny=*BGS+n%%yKYm#gCZw*RRF7EVn4=pS;riFa7z9qg}6 z7MVRhC}E<`9b6OrhY7roLIi{@f+zyooaLTQ$PR^+CcGSGRd2#nC0u%BBYT1vb9k3s z@~XNN)#BRQaHTpv`iSDH#9!^)DSJy{JOxP}u-tF+OS z)Uonu<~@h+zFaZ-g3P88QHoj9UrW-!iqpTzzAyR_ScvQ?a;9v0s?(lP+kTu7%F{Jt^;=NxS%5k&%* z6X?$RgL^<9-c^Vt*SVDqMdN)^DuR=Luj|3o1$;kciwX%KM#e1u~DLi3Qjw(B$VVw?TGvlk5U;0z~r% zQ1eJg!^ot@!4=KjEseu^g`im@cWVY*Qv!)vD(=RdIrgn---k5rNA$9kui{VUv;s1T zjQtWRH%o>2?#o@IJ~x@w&oh#3Qdjo<=@$Hi1IKMyec^e~3MKUpWudrY9q%*THHFPm z2b!eS+{*}Uy<)|(hPJP}{g3^F+tc0ogOt&l?d`9d`IHdyPdWFV3cJKNpE}E^KZ^v* za#vqwu_}~X`>`Lxn?8dWoLmMb5|6_#2XVZ<#7~pcj2`hWgiV3AZ)PD}^id1Spt&yy z?2~lCK+R(PYlD3#B{KGPHTX!Me9$mwQ{#h3gO;YVzZM%8dTnmZzDEZAk1kT$n{n5G z0063C0RBc7F#k^%v~~_AF8>mTNH{N)5F?E5b2gE2a)>|C0~Jw>Vm_J?wZ#72$!3wg z-Me=)fG<80ZIxl*zKsKUoRj69<`*dZxH)HmD=B3dW8YSsRFP8&=ZAa4XLB`%0XAJ= zW14aLnS*l@eqv5VEY_Pw6ldfO>_6ALi-nD0{k{6w@6UhNG4lUiuaT{dsks@wH7&ih zfw>Kxlj*;f-T19(Y<7gM>l%zocX0p-g^ET2*b{r`-^5BH9)aB zHNdZG=nWV!K0N{VE8ez>G!`Y9E~m-IxHQ0rlIaVFTkYbUbHRN!bov4wpfUPh3If{d zYGW6HR?;N~O%)}&!v;<}fLfuZ3Szr_b5I8S*?EW4;@g32RGn`y_UT~tH2Yun zEP(p6*?{2ZwYN7=Z$8!quS3M?(I)bJ;jhUls}y%;s!4yOG&54>mWT8-`kp!iPGOIi zKa?3_7@3YuG@r+@8+l?{q?nA^731)j0;E?Vh{gImx0*KVY2A}M=*^ue(O2c^N?ATY zHTjG+z?7CJ%@&y@1t3<=sJ?`UHqJyz0A48)z0ybSa5xuAyZ*u++e#tYPc~Q0OSLkL z-zaFZvbms&q2TQPh$1K<6YqIB`$WKi=?LiEq5ZfgR>;;>!o+<6{aDfqnsq7brAMGq zUC;rzfKEC|Jb000n0~$JO?snM@Mgr)>7JY`xzk1m)4}*Xm0cg1PvFBx6VeGgQD8U4 zjDNXOWd`6_Rw@%;KU=GwTIMBphBpY3BB{rW8r%GC9$~TXf%XM8mp{U6}!Blv-oCg<{};SQq}8 z0n*M6Vye;c_OT6N$o-Ttw4=C!4CXxCenjeLJRX*4jrKHX0#GW^p~$SKIiQ~x>&nnzJ9Y8Z5%+Hhca4O2A|a64RRX5f_izv=(JC| zfWF8sWI!p?zfW4?H@+i^Q)J0~OGf6qetF9$t(MTfE=)v1JbOa+el%Z7ljRSIjyn}# zW&l4{i(Scr(~S$456(6Z=HHub9=0g$98$Jd5%!j4#ufL;NNz)OM&x#&haK-Qy`eA0G6U&O0+r&z1uM_cAa8M5JYo60&A!BuvXmrlB! zw7cu3!(Z!%^wL=?8S^WyzUk{SxO(_b$T^oQyjwn-Ee{Sq2e*Hd%`F5!2ScVZh-TDX z5}#elq2GAWrv3oj@`ZM`t_&$NoRWfLcRkf`dd%~c1Z^j6tLtkrwP5A8CGnfic*zej zqv1*8+-7osnr?1_I2E@2|FGfclj`A`r$Ts3iPq7we^--6p4J3ZQbsg8A#}iWJ zz*Le<4H-tm!m7$`nkA;*18-(&Cc_f4=>nX?U-S76y>x3+r=UX1k>sL|E9&@iZGUf? zm;S}Ty%2fh2}X}75FKo;%YH`BaDOPl69E9H%n^9=3`&*6?KdtwnJkFgC1&OwdF(!8 zpD@5Z5@>j+Vs<_MRL#mSA2HA>olnZc-jz5k50(cLzY-bWUTr3w0y$Mpluxi8ATG;BVf{V;}POQ6)x$MspB0(O*6M{djw5Mr3PNphaoB^m#R-6vTB9bfQqCZ!KoG{4Wm7&Z zOU599EY{My71Ybz8;q{lw*?;rUFQZzGKH`Kh)ojB^V;ctey?5 zxIBEU6Z@xF4vfBe&mw2jw{;PPf(9MsLI3&Skn1jy0|N=KYfyJ%hRxRnGT5N`gtWGaT7D4t;Z)zr+1EwI3DFcn zfFCg{WjMdv@+Vliri$47a zDaZcLt>4+lyiC-JZ{f$im=9!m12LN(5p$^WLo?dfGnfVI+3=zen`w!8A#-pBG^ldQ z>oJGoF=yrquNs#uL31AOkG(RhV7HAlU4?f246RK5mkG&N1DZ;(cvOc2HRaj>P=peO-eIs)%#L_1oBcU*Ds#&#)hW= z;sHfsppplAPAKaK9@IOEX#n~hBW8TI0^lok5)PAz(r5VTf@Y%{PJ}c(H;)8bmZUdF z5r!_0I)yo{)07iW-*G$nQ-1`c8hUQgZl`lsJ8EbBa3%{ydiRS$E+L zsfXA3^oFzS-LK-Asz+c#RzvGThrKd2EP$6M&a`5Y^Tm*LUrewcJ2`(YLh^YFuame9 zp>n=I2WsEM8VT4?<6@8ez99FD2sLa3<$^-BoxTCi z&!qEFSyFZJcRc|OLgEkq=Ay42mPu)P+u;_qYkgTZiEYh1*!N28t5&rot>ayS&2OB zx=-%ClK)dACxfv-OW&~10`YeuLI0~rOdK4|ZEgOSMmm*yZN8IL*Eu!V+Bh8orNSP_ zXfNl5q2H5yZpc=+5QYMAMv_Q*f1FZ*cz0K>h!)Hqfj~quxG>o^PuDNo((WBt!f~{% z^x#>@7)dd*ksV-0BcryEuS)X=Q)3isnfQ_09W9`q2a^S9=Qd)OH7s>u_wHb#?kV~? z5-=Dm*LE@&C0qbL4)qW-0J9&eAiq5$Y$}otcX9Bwv8IS$ub=I*^mHc3W9DtSRR@9t zb&IrPOVa4?$5kdei>iI1=8bd>sp*W^PIXZ!HlfEWAYT z23MQn9u-2rB>`Y%<#17ivVjBU;-xe1GJ8u)1cA+VNp+PB;02xeGA&t6&yEB^pydX< zhl8~#{dDDLcXT3_eU?z0oshL?UZO>$w}kDg8jg0b(5Y^pg|wF_#;eTU@>)?;r!t(4 zQl;1mfx_Lav`}m=?v}F?IYIids<~88Z;A3gto1`r0{7}6cOTyGj0JPl3l{ShWG%h3 z%ek%jxFesamw|fhi8r0=Ar6n8?{0|p!%Mo%`4qDdJ6_sKYUpdUo`B_Eu+Xf;>V_Pd zrSSS(=rt!Bn@{JYtmvel$@L{+>x=I>=j96;vNN+6U&;XU6aQbnOuJDxxajwhOac45 zBl#D6GO=|0w~}sy%UX_@b8h>dT5{4`p9Bf0;XV?t@Fb9F0@9u#G}DwXGWM{QI*fkP zW!$CzNNmHF|4)@(JRFF+sVzG(tiD>(`KAi$b?@pR2%U+hDTG%mMM)_L)&j$nq_uo6 zFFSN=Zn=Pg{NvNk(f13h{^u_rppqP$SEDp^%#ywyGmY>>EIQE4h_w8*()ct*1KVk# zK0A*0N04|(EDm-7QK+1v^p0*M4%(;-IgH8H)c!I3Lx3COyWwiD1Bb$IA(P6;4MpX(-Hm^hxtN zH7OEe%&`3K02AxJ5b4B`JJIEWj%Cj?=f8l#j2=-eG^m1OXFO!=$|QW{2u3N;MmoDabNUVU1to$e@@LwlR?GDGbS5V)!YLR{Oaj0TP9V z_{%a|U2`@rK^gFHyH&E%T>&ud!ZtNh-GX?RRI~z&!=78W`vv^~{ClwT`ACpyaa1cQa zvs~)|PNK3Ti<6D3gR-NOt_eC^AEg>!CYRUOZkDKAoj{xgk!VqW zaY2HRX=W7!YjC}2bf2=ZtmCUK)jD;dif{D8vtQJQ? z3(i@O#>inv9q5~B?+(5LoKK7X6qgx#LQ~+ZD5GED7-7|cf|pn<&YXwW_pHK~@fevZ zJ{&P1Hs{Ev(G&TAoSMocd;0Ym-%#vULz!NyE5KkN{iyw z=ULX@o2*E5?J{#qn8-f}gop2V(aSn*?LOkoje?3&4Wt9|BxD0BVjJK8zq zeZuOqrMg-|jMT2uo+e^JYC9^T`;0hEx)w-fFLeC~S@I|BZO|6qCJzD1mtY_niC~Gm z#-Nk=t4rM1Msga-xaRI&qBBT`N++S#tD8TWC&%T(Dim%){@r8K*^6xvV}-7GetZEcV4}x1rY--~@0YaYBMH z$=nK_Hr=Xb=ut?5IBi1n;PppxBJH0MmISM^imK~TyPZ#5I33!01sE{;bxlwgT{Xt* z)^Pb`QwwfdhVUuVOwujR8Y}YIC+QViXWkFf>HKZp!xpqNOxg1uc3zjcySXzgSDJVF z7c1j8Rya%hf_QLu`&5U?1Ke_z`lvMPq~mCB+qBPn?yjW0L%i;W>{dH>0<4BrHtWR_ zuoIgq75&YzisrBD{*Y&Uu19r05NCJHrBxqIqYMbtLo&2Q8Em3t%**QW@Zt7 zV4*QIg2_J9mlTX#XT;xIVBMdupZ3&lzQb1f>bIW6jSi3NtAx7uCCkTIOAwe3sKEqm zyCy%q=>u?JWB7RxF%S=GED}p+btaK$5owjS+iKW{@lo;VWfbKW1X$JN4$Fe$gsf3Q zdY5(jceZqmPN)%-eyAh?6_zqYfw+_Zg2D~hkIp-vD2QY5lEnh`XQxjnvJ}I0~ltmF@y`m`-sNmn8kRM;qsK`Bg58&4M>Dy2#@?U7q} zpIyT%Unj13Hq%>zrB43YQVEUxO(Fv&2$S&MGW0olePlsxuLx6hl&xW-276sokw)U5 zMtN-vcrO2I)#BcC@x{kQ_4#CtuG}BSLxVU;1rFE;*529lZ_S}DO1>CV(`R4Uy}y_K z@XvC8o%Uzqer=4nG`XP$ZWn6i*SmO#lGq~rVsX<6dh-8cm0{2Hn~S_=r!DO3=ps61 zSP^3kv>ZFr(R$$w%=}f}tLD~-a8+K$4?;__7G zRH%=k^6-+2!g7FjX5}XEyatF(eYbAp_P(fLK&`bX!GhIRuVzpjhr9#Z3U)UCbJTZ1 z?$tcg3$xTc4X*w&GHJ(nDsQ#rU$%wp?lo^5i(bXQ_;FejK8X^V?i%SuAxvy29phN{U;=2Di_{N5JDo-TBNL(p4xD%m%c4hfOZsdNNEZ~7dU zEV7!;v$GMNZ7E0FreBGe5hl6WR{$b(!bZWEWKt$^v9m1v#QtYRv04rc>HrA<;7t8@ z_=fqvD~f;M+kY^?3KL~4*98!QuU}Dx9n9ewgOi1zIWaoGcDX3oc$0|OI*46s8>vlQ zH`C+4bXD<(TpHtkI?oDTPuyGlw%NV6fVM2~^s@tx*;3hBJwRg{=aeqF=JWPnHFRWW zH&Kb5flD5;B*npmEt}F%AJ*lXP9-UZ3&z%PJC9|imF)E6hx8SqPAlg+!?OXZM-`-% z1c1xGftYlJ-%FXavu#jir35{dh$Wk*=PU%HJT)W4Du*#= zmwrv}li-0{9eryBH!)*0b&tGF_fGXB9SvCDwG^}!;2l}fogkel@f zW-5PoGNJZm_hUUS+r4+YgrCeW3qXA#83(skc6a4jHk*)?xqgY*EIUGXI_A_6E(+|o z^=|Pu|3BJ38vi zYU3SNBJ$sZVX=#9_#-Qwr9vm229=@sqH(J4wHC#qvzk)S8{-Xt9oK>$W3E=(PQA<< zc<~B?G^<)_hxbpRKswM!3mSYi@9I>a-YgyE>}+c+7Y&F-PfJhtx^rO(f60D+*9!l0 zdv#Lcy+{9DJ#_zVL5uzG$M3%wKi~b^3@Ag_f2gzjK;cfY*a#WJgj4)c7^xOywTmeo zE|v`!o2tw@UEx2LcFI7aW>xr4Ebfds|&;u4Qq1krK&pQ-@% z?=Ih8GhoRz^i@{IOMA332|^zg&B~u~G9FXf;X@=CZ^DKoR_yR77Og@lxk&(IFkMKj8Juihqa`H+M{$8{)o>Zw#D3x~~_ zX!N`#CUG3Yu1n5snx`6neYsf9Zywa%rYa?d<~%>0I&VVle~zxOj)B%Wien~u2Ktkj zVNVOYV9R+_sfS`fd+kM%`>W#41?*3YfeTdU`X-Kn2?*ZV25P2#bTxWj#iJO+R-*#O zX0orQI&sq%%P5-AU{NlIxI%P^JavBxT&m&`plJUr;s?H&CG~~jhipi|)0au=r};~? zK1tv#eV9|MU~T^D>L(s9kYn!c?jtKPh)~c(-U=k)ay|Q(3|52$GK@!FRH#i`BpiqZya34Z6d4n*QB~>(gPz>|GNPB zm-^P+!1~|n+Y8N2n{_Uv-`}QWqVD$?*@R+s8dYC zc*!O5n+|&M5A|j%4VwfT-~seH;whNpa-j5r0_*ZlzSAsnf!$8Yc6iWCoQ~&-@IZ_49V&xJf?jKpi7~&*YNlCO-BW1C= z#}L}BWK4q93P9+DLPUeSO44>iW-eZCSN%Qsy+Ov$6b(`-O;R50y zcC?}>s61bb6r5o@dkwbq@`-CvkmSsXS+XP)VJJK<03gujJ&BSELhvMHh$Rmg`~nHXNBBY8Eh&Xq-Kw^76FN1)` z&HB(kM~~D8Il>U#cRGJnQW;g#ZN`sR**S9oh?KF2QS*q444eSD-{6ySI8X_BT7m$- zLl@n)#d*8DeolD#oc;c)FiP>1VHp}>eb~w90=h}{0fs42Dl{EE{SoJ8Hx`6F%3%T- zma9ex-a3FlI*TC$Z^75p3$Fksau;u=@p-0{MP1f-_qxQiKT#t+-MwdwLbNPRuPO-x z0f4h1^$I7Uu2ehvj5o|*`Ar(`YmvFs7%J@gg?k=}oc|aE0G)b1}C}1)oTi4>o*a+)H#4Gr1jzd`QH-9G6%#*6$9|iBM zbWBy?Q?{Uu$-^B87L4w~iLW$5TAdaQL7M_iQjr7Mh_zGNDgokGao~rTlGl?);w-1> z8-)WT20eFNt3_prBhKvfB7o2-*`u2Y)@`;|Q?!%Vx^DrIt|R>-4AuNl_8Da08R0GE zFz$49tA_pZjOu%lkh*K;u$&8oZRpK^jJvtZAAcHuj<7HueGm^e;{9m`mE0`D+0Bus zWLo!a*7z-C{rplA=|cb1lx!8h1QnBqNi6E3XEOuixi95h;?GUor1(c;@Zjn!`!_u| zNkQcFD|0_m|l|DjJ%s81U1#Ste zb=~e4XT2XV{MaUg8&6kp%dhME&REXNGXOQ^!c~^jiu|RlRdl7i#%gR5PW} zrVxzN@!6;`6;MGO`}#*RS(g=riQ|IdMdp9$XCYw-!f{X`y2Bs2=5E+60pP7=Xer`Y zE;-g$laDzoT|m;$(-W@Y*tHNcv{0*EWz^L~JWP!Gqvn&*I6M;7`7-E_TL{lSRjS3- zh@=;^Irf|u97)L>z&zU6V(FouUBQU83|U1Ksf>ietG9kVNs)w{$yV95Z1>>Mh>`$@ zC0NnSV$p(DbQo6k7e&fTfFPBH8qtU`@`KVAVeKnM-KJy70VnHhS%oBXJ=Z{^n_NKy zW+C&v!40U}upiq1L=^=@UL7Z=D1vt9Q+cAL%V2uJ4J_cg6Z|X(@+Pv0W-HF29SY%4 z093L1q5&r#V-2hk?n_}LktRPmlKOQ*CCs4~cZMd%&jb^?6gVXl$}XsiuyR(*=fS{V zf4DcXxAsS9`_xz&K#8ml_TlLeg z*8_J`3Y+eG_RH2)IBAVQ+bs4N$k}@vE4?=L>=l*ZvqJOd>RylAe8ESVV6;>7k$_Ck zZus&(z4>dCLOoW~Eq4Gl{~Xe7ZxF5Z`!cHA6!VfIan{en0M{UQ`6-S1=_l33Rxk9( z?376)+4O8-uM)*HvB4{&LZM*qOFwTxYpgHYM(}lJbV;L^lAS86wP%Q`^37}2dN0x) z&)c*CZajB(=eH!+ZcP;NiP3=A7Eaish3Y(S+F1I00ac@;DsVf}7Y(R`7=6p((mbNu z6zW)R%UR~-6ye8>Qf4^~D%Yi=*q`xowaa?KjL)+dx81-o<4`(JHa$akU*Adle;{*J zjV9XVJAK#v|EY2Qk;4B&jnkOOXuHmU5ajw19>BZ~F;fQ0L?H`{VXeJ@#f5|(CmA+Z z=twdTB>Lq+C>Crbkw^)6yK{=S{fzgk-Ou_HA|}{_R3CD?liS^_0ei)E$cA2&ZR5(%Q{n7h}~6rlldbxN!CY1{!gAzOd3Hp z;Nm6N`H|Ng&l@v(-512>Jr6(w5<3AC2+fWAfE{v+>OyZk(&m z+g-#~$N7T^CPhj6^jG&@faiwLnFr^MElW83XINc5sn&fBTz_0@#FQ!R*&Fs%`|T?V zTM^e2TNmv%+{G~uE+A3Q?hMC=xJP_YZWakb-ozl!HSjYS{cU8H%?mb*cF9;c$JVP_ zP!3iAS^4xT8nU(75|qxkT~C%4U1OG*t#agtgM7ZNFAhO0)crNx)lyR=JeR@5mt(lD zqO-PPcFP$)!p|Td}t*eX~S{KHi(ITXJ^eA!?H8( zr#m~&0@UK~9#cn0j}T9_Drk1Mf>E&xoqAf)OB%^_$RLWcFbVatdF>xdsVGEJ*5*4f z=%9@_ShL<|)^WJz`mJ!c0rp=vk!`V*1lhbs-dceaYfl#1ny&5E7Pvx&WeKUGCuJL` zt)@4cy!puN?+Oolvh5~i5*O1)YEZwN-;1!y;3ImV9|33mI@ym;jbH);q~`2i`1oSK zTtPqOjBrVjkJn9<3tqpQ2>(Yj1EXK-H{ZV}#J7t6`*r+Zu-C@Q@ZYgFb^0F{jYHS& z;eHzdumk4J&Fd=ywc-~p*aV|kO&(}J!$=y}q0o#pMmeeIh2hm$a}B|3NgQsDmF zi7UHRRG75M<}218Xjsg&8IcT405r`WYqgS60op=8&p6pa3!KzI8wKcyuPA$Yg;3&o zA3%(WP};W&ta??5Q*iAj4cS^9BE@J%BVE$uf^khBv33U&R8+W(=#sMBq*w@wPvgvY z+VjR<3E$ftz@G%Ayqmd|_zVLW4*)rsO3;mzk6hab0TsgZ*CwC~sM!wma?1k-{JG4WtL*1I@OTyt*GL!~1SrM&4$H5e9@`kU%aUP_2KGmlX6}bg z(m8=XrLJW!fH&XDrZ6Q8Dj7eteiK7VjpqC2!0Rn0;XEIfMeJim*=%Z*Sa%R7bFrdMb~a07YD?#8T;)3@!MNGM zyG_K}L(;vOFE*vo&4Q^WjZO9a)FQn7kY~DbO{eP*BIypyhQCo~7alTcX9Zf)&sY0A(D^EsJIF*uzRmR9U^|>}hryouyxetC+-l~UW zAuAnGUI2}xYdj+4=1?aVb{F}~3*T$Q?1}Ry2ae>cs&D9kDMmB4PJW)@-Tkjp4IPlo z-EQoV&WK|`MqE6AK*(ocp!+AFy-SVTak~Ree2`(&`Q;sT%untewFN@r zpWY{zWWwa8>}YIdLjxgO*vRw~B7{z$5aHK3*l{a{&S4=xGIHRBC$EWaxES=ILlSm$ zx5!s%3^a`tCbv#Ycx%;ZS73*YEI#V&Ur(drQcMf;p8*RmxS>p}mWFoz+$@mig?1wG zR>;Dco!q_RY)`*_@P3-t1zy}rUe#N)KD^obH0WZbBrSl))-T>5;gL4v$cb$}5Z!SZ zuaLP2-8ysO@`o?*@Ydni{v1Gog~d4KGrSl8-u`r*Gf1$o%gpYqyX~_=5wiW#Y&uU^ zr~#5^ZieWbdN+bzAO8CKS5`?_r;Hr_?i5tQ`n#C;7q9dmG4VfeL}B8j4HhFx(DOY? ziSaz0KT(km3lcO`SU3s=PD$^Je4OUtW(6hzA<2HTakJyQ*N^3PzW#$J z=%Hq5&0U;rMJLMOJ(z|JKsq`)e!V>Y%q;jy`*e~Y8!H1vk;a(B)txZ2B`VUos6p0n z1;o6rHyr?ysH)l8$X9tv8LtfzB>-%SG}nGUM!*H8y?%wfjSfC;0aF-O|GI6jh)2ap*GOvuk)9 z&@I+-f%(f#{c6mZI|Ug6zsGwsNgeTS`IJ*uNmQg{?7HU$I;hI!*Vbc?#Cgu3@a?}^ zZ+au1MykG%BKdFo9R7k7|JeNhh!l}Z|JN$-I#=V#jBsRteOM5J3rq6tWhJELY(%Nk zjT-24cjacr#`6F2xRtavQnN0INZvj5irmUJX!t!8vSKQyzSCRFtR<(IwfpH377@{M zy|rKdTaRX+?w6VW9^26jmNTP1Di>RRW|e7ixjPR3Fik4%}6Rho(#Z!8 z`qEzeQKb#)o3IsVwEJ6TKnYPBP)E|+^+p!Z`CFbe9cNO4(|T_uo3Mg$~#bpp24d~z?`R8wWs^m-LukHr6EoF|mgBERn~ZTN0G z{O^o|`oGO*N9KP=98DS9bsnVO=V~wqc=4i_>|Rlu=&(Bh`xLswvN$U?^n*gVMRk4Y zWU$}H9>n`LdLbXtpY^bWO_u`US@Hg~UAydG9EH>jrTtM5M#1ty&}3o^GeYqYyF_qg zrAbPDpDNH(Q)hb9dB0X`ng^VQD0Z=`MJ9yv%XVgVjU*D2?Q@O7WCzOxm|@EPh^5vs zN;dYYk2sb9soWF?GGSmwP&K(R%>?oymHGXY@qeRqsFJO6Qj?}&KoqpYzYnXw4(7;$ zoQVfXEvvm=R~CM@05E(&2CmvUkQ{;V30E2}>v^06sJ6FxXR!Ij6MLU#KOa{rLIVtv z!b9c5r1A-JOxId|)t3N_kPk)DR4?y|_1$3uJn`sw)imEI| zZ4Q<-*eywiGe{~MXqrl!GpX*xs05{tKr}rj2G95kC0dm0N^N0hp#H?UwWr$IWZ~9n zJ$a(jXSjIGu)bblOWrFy^RCaPYyEk*!2YW|-nWRl3&n|AwaIW%PL6Q4(3Ax23M`>IsUzZ0nj!<9Grm$DQBJ@OVxp2%T7eSD zfXm(Y&JWC`QSyiFSOE{;C$OX_XbI06R{316reL+0F!P5Qt2e<*s#u+LZY+p^dA<=c z{&IsIWR=nSyCMa?{A+md3BOT&<+}==loBKI^@!EbQ3g%)k$0#O5_6U$FhvlbL0qiz zww&VvZ~6Twiw+b3@Hbv!9g6iJj#l0DeP&FpLy(h_PDqYKi%;$$7Wm2e10*pi!I0HJ zMK0b{CY5#87j7kjnEKD^>!Rf%q9duP8~`CDC9{lpO}CPwt}tnc4P#6I2iqn@k0=;a=oLX&LO0?z&b%NI_$MM6yxF?e;2)TLpgw~gX^&efDH29plrrV^W zzfo0v?O$g!Hg`;_4xgv6IP}glCHHO*`%M3YtRpQW+9v(e?uMLw@>I<|bJ>*lIBnaq z9AJdKB7`I@U7BMh(;OFwSV3lZEs6x1Kur>7TV4;Vu23xiE;j6^T+2yd!hw1KSL82P zX*wbdqf^>bHPeGA40Aa(HAS;Yg%?7p%a^yENvVsMs+aiveYZ*4K*~%AMOuU#BOfTG zI7=Wv6VyM5LU0=y4ylO}&%Ymr6g4kNS1D;;(drBsIW7mjfwf)zfZC22524X_2X7R{ zM3-bly&&)v^Fa71FICv>yz0f^WOL(Df5o=B^Gk?0Pp0E+-Nl(&LcPs`=vkLWp|MQ} zSt18l5x7X9l9A?lgWAa;33mit%U?-MMd9W!vaVv`QUa>x_LaRPXgTl*oiun^`WHGY zN?uzSPIHP!g@IJ>c0uUZBfotAdR89qhR4?{uEJ%*?a~~sf{w|)YsFewTav#HAHZbT zx>e+S!Aw#*ueZ04z@jdGyhD8nQ^?X8G5!P2)v2v+4m|t_y=D@8&dHjlbeq`F&p>T8 zR#9_++9s@P1vz%xaPAi2n)S=ZuJt_r3%8Fc>o4cYX3rpQu6|U%X zAXs~>naJ=`yxe|cGQpuuX<8*05}5bMk#gJ#1iHo3Y&{#RL~Zd;|9;o_a8UiYQ`2l> zo#ha$x8c#}@ax=6O5w@a@miXMUgPDVQN`tUcw2Rnj<1_dKB0_Djvjg(nGK)LzCVP` zAyH(XboPL&4PH9?@m8JG*AqyV&B9)Dh0Yi|2xJ_TqR_Pf+>mfJ^$IY!P;VnD*o1w| zPThi-AD|8sp(xn^ohUhopTNNOt$}*>*lFOM9l`>erv7}!D>iQQ3NV@#F6q{fnm_IZ zV3aKu<@(6Qz*yo5m?-F~Ha1p+x-Ely4$c8TvM}F6z<4o_Nr>s0Z>J8Nr=HFXodwF_ zYq)l0(F5m>1GUu(E`#C3>%66N-&K%smc;L1&OQO!W(~0YrqS*b`JZWPbR$#2@|!}g zzS-ozr>(zq%73S=|3IOY333sc3>ZV#-r?xS+8Q?teR#&`5l&`WjnA=R_Ux==@%*@j z4;|>pQr5Mb6CBxI+1vE+o!~zmIL4M7pmM4(t7b<5&+Y)PuI`@kbKNSpc}ENmV4#7E z8uJIgtM8FXT>3+^VdDv6QyEiXeMjCul*xHi7vp3-60qwfvZt$oRi1e3Mq3D9(;EB=kv_(6pam;?$^L zUkI~}r+duya8+~lLt%qL30gfX}xkuZZGqxAO9ae(l{Tht5uX`5+?hFbl8FbqR8 zhq~TMc^ZRdkCEa12Jn9dUkNSIgN4J}fX8}t3K#U|Vw;(Vb8EE%RGJ8 zn_yq=%04+aI{_@;gU}-}GxpE-UaGDt&)B<`THwUmlw(wyNcyy0K8mg%1wTjv|(#rwqD6ZJ+GMz&_)H!^VM<)gMKU66Pb>b}eSsLGC_hGz;eZ=4}JwOaT1}=-Z)GFv?g{40I0u4$BOQmM^smkIEppBgsd@B zJELeu&436la0PuPd%#tT5r^+Le53FuHVyX))dh|p_;`PQD7i&kZI|u%KvgiF&2)3) z&`UL0Llp}YQ&UrIz$2^H(T4RdÐGNCPGTT4TeH^)zf!QWR_`w1TFwcp0Td*YE)p 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