From f41b95d9ba2f0254147e505004520a77030d92a5 Mon Sep 17 00:00:00 2001 From: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com> Date: Wed, 12 Feb 2025 04:25:18 +0000 Subject: [PATCH 1/8] init rancher doc --- docs/images/icons/rancher.svg | 29 ++++++++ docs/install/rancher.md | 126 ++++++++++++++++++++++++++++++++++ docs/manifest.json | 6 ++ 3 files changed, 161 insertions(+) create mode 100644 docs/images/icons/rancher.svg create mode 100644 docs/install/rancher.md diff --git a/docs/images/icons/rancher.svg b/docs/images/icons/rancher.svg new file mode 100644 index 0000000000000..65183e058a88c --- /dev/null +++ b/docs/images/icons/rancher.svg @@ -0,0 +1,29 @@ + \ No newline at end of file diff --git a/docs/install/rancher.md b/docs/install/rancher.md new file mode 100644 index 0000000000000..495dfd8fae46c --- /dev/null +++ b/docs/install/rancher.md @@ -0,0 +1,126 @@ +# Deploy Coder on Rancher + +You can deploy Coder on Rancher using a +[Workload](https://ranchermanager.docs.rancher.com/getting-started/quick-start-guides/deploy-workloads/nodeports). + +## Requirements + +- [Rancher](https://ranchermanager.docs.rancher.com/getting-started/installation-and-upgrade/install-upgrade-on-a-kubernetes-cluster) + - alternative link: [Deploy Rancher Manager](https://ranchermanager.docs.rancher.com/getting-started/quick-start-guides/deploy-rancher-manager) +- other requirements + +## Configure Rancher + +The first thing to do + +## Install Coder with Helm + +```shell +helm repo add coder-v2 https://helm.coder.com/v2 +``` + +Create a `values.yaml` with the configuration settings you'd like for your +deployment. For example: + +```yaml +coder: + # You can specify any environment variables you'd like to pass to Coder + # here. Coder consumes environment variables listed in + # `coder server --help`, and these environment variables are also passed + # to the workspace provisioner (so you can consume them in your Terraform + # templates for auth keys etc.). + # + # Please keep in mind that you should not set `CODER_HTTP_ADDRESS`, + # `CODER_TLS_ENABLE`, `CODER_TLS_CERT_FILE` or `CODER_TLS_KEY_FILE` as + # they are already set by the Helm chart and will cause conflicts. + env: + - name: CODER_PG_CONNECTION_URL + valueFrom: + secretKeyRef: + # You'll need to create a secret called coder-db-url with your + # Postgres connection URL like: + # postgres://coder:password@postgres:5432/coder?sslmode=disable + name: coder-db-url + key: url + + # (Optional) For production deployments the access URL should be set. + # If you're just trying Coder, access the dashboard via the service IP. + # - name: CODER_ACCESS_URL + # value: "https://coder.example.com" + + #tls: + # secretNames: + # - my-tls-secret-name +``` + +> You can view our +> [Helm README](https://github.com/coder/coder/blob/main/helm#readme) for +> details on the values that are available, or you can view the +> [values.yaml](https://github.com/coder/coder/blob/main/helm/coder/values.yaml) +> file directly. + +We support two release channels: mainline and stable - read the +[Releases](./releases.md) page to learn more about which best suits your team. + +- **Mainline** Coder release: + + + + ```shell + helm install coder coder-v2/coder \ + --namespace coder \ + --values values.yaml \ + --version 2.18.0 + ``` + +- **Stable** Coder release: + + + + ```shell + helm install coder coder-v2/coder \ + --namespace coder \ + --values values.yaml \ + --version 2.17.2 + ``` + +You can watch Coder start up by running `kubectl get pods -n coder`. Once Coder +has started, the `coder-*` pods should enter the `Running` state. + +## Log in to Coder + +Use `kubectl get svc -n coder` to get the IP address of the LoadBalancer. Visit +this in the browser to set up your first account. + +If you do not have a domain, you should set `CODER_ACCESS_URL` to this URL in +the Helm chart and upgrade Coder (see below). This allows workspaces to connect +to the proper Coder URL. + +## Upgrading Coder in Rancher + +To upgrade Coder in the future or change values, you can run the following +command: + +```shell +helm repo update +helm upgrade coder coder-v2/coder \ + --namespace coder \ + -f values.yaml +``` + +## Coder Observability Chart + +Use the [Observability Helm chart](https://github.com/coder/observability) for a +pre-built set of dashboards to monitor your control plane over time. It includes +Grafana, Prometheus, Loki, and Alert Manager out-of-the-box, and can be deployed +on your existing Grafana instance. + +We recommend that all administrators deploying on Kubernetes set the +observability bundle up with the control plane from the start. For installation +instructions, visit the +[observability repository](https://github.com/coder/observability?tab=readme-ov-file#installation). + +## Next steps + +- [Create your first template](../tutorials/template-from-scratch.md) +- [Control plane configuration](../admin/setup/index.md) diff --git a/docs/manifest.json b/docs/manifest.json index 3b49c2321ccef..c550a67a2bd1a 100644 --- a/docs/manifest.json +++ b/docs/manifest.json @@ -43,6 +43,12 @@ "path": "./install/kubernetes.md", "icon_path": "./images/icons/kubernetes.svg" }, + { + "title": "Rancher", + "description": "Deploy Coder on Rancher", + "path": "./install/rancher.md", + "icon_path": "./images/icons/rancher.svg" + }, { "title": "OpenShift", "description": "Install Coder on OpenShift", From fae0a0c101f8e78d0a68f11f78ae77ecd9332393 Mon Sep 17 00:00:00 2001 From: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com> Date: Tue, 25 Feb 2025 03:15:10 +0000 Subject: [PATCH 2/8] version numbers --- docs/install/rancher.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/install/rancher.md b/docs/install/rancher.md index 495dfd8fae46c..37887a9011811 100644 --- a/docs/install/rancher.md +++ b/docs/install/rancher.md @@ -70,7 +70,7 @@ We support two release channels: mainline and stable - read the helm install coder coder-v2/coder \ --namespace coder \ --values values.yaml \ - --version 2.18.0 + --version 2.19.0 ``` - **Stable** Coder release: @@ -81,7 +81,7 @@ We support two release channels: mainline and stable - read the helm install coder coder-v2/coder \ --namespace coder \ --values values.yaml \ - --version 2.17.2 + --version 2.18.5 ``` You can watch Coder start up by running `kubectl get pods -n coder`. Once Coder From 87280cff5dac5c39836c01446d8ddb9885defde5 Mon Sep 17 00:00:00 2001 From: EdwardAngert <17991901+EdwardAngert@users.noreply.github.com> Date: Tue, 25 Feb 2025 03:39:39 +0000 Subject: [PATCH 3/8] update from gdoc --- docs/install/rancher.md | 203 ++++++++++++++++++---------------------- 1 file changed, 89 insertions(+), 114 deletions(-) diff --git a/docs/install/rancher.md b/docs/install/rancher.md index 37887a9011811..18b134b2e0635 100644 --- a/docs/install/rancher.md +++ b/docs/install/rancher.md @@ -5,120 +5,95 @@ You can deploy Coder on Rancher using a ## Requirements -- [Rancher](https://ranchermanager.docs.rancher.com/getting-started/installation-and-upgrade/install-upgrade-on-a-kubernetes-cluster) - - alternative link: [Deploy Rancher Manager](https://ranchermanager.docs.rancher.com/getting-started/quick-start-guides/deploy-rancher-manager) -- other requirements - -## Configure Rancher - -The first thing to do - -## Install Coder with Helm - -```shell -helm repo add coder-v2 https://helm.coder.com/v2 -``` - -Create a `values.yaml` with the configuration settings you'd like for your -deployment. For example: - -```yaml -coder: - # You can specify any environment variables you'd like to pass to Coder - # here. Coder consumes environment variables listed in - # `coder server --help`, and these environment variables are also passed - # to the workspace provisioner (so you can consume them in your Terraform - # templates for auth keys etc.). - # - # Please keep in mind that you should not set `CODER_HTTP_ADDRESS`, - # `CODER_TLS_ENABLE`, `CODER_TLS_CERT_FILE` or `CODER_TLS_KEY_FILE` as - # they are already set by the Helm chart and will cause conflicts. - env: - - name: CODER_PG_CONNECTION_URL - valueFrom: - secretKeyRef: - # You'll need to create a secret called coder-db-url with your - # Postgres connection URL like: - # postgres://coder:password@postgres:5432/coder?sslmode=disable - name: coder-db-url - key: url - - # (Optional) For production deployments the access URL should be set. - # If you're just trying Coder, access the dashboard via the service IP. - # - name: CODER_ACCESS_URL - # value: "https://coder.example.com" - - #tls: - # secretNames: - # - my-tls-secret-name -``` - -> You can view our -> [Helm README](https://github.com/coder/coder/blob/main/helm#readme) for -> details on the values that are available, or you can view the -> [values.yaml](https://github.com/coder/coder/blob/main/helm/coder/values.yaml) -> file directly. - -We support two release channels: mainline and stable - read the -[Releases](./releases.md) page to learn more about which best suits your team. - -- **Mainline** Coder release: - - - - ```shell - helm install coder coder-v2/coder \ - --namespace coder \ - --values values.yaml \ - --version 2.19.0 - ``` - -- **Stable** Coder release: - - - - ```shell - helm install coder coder-v2/coder \ - --namespace coder \ - --values values.yaml \ - --version 2.18.5 - ``` - -You can watch Coder start up by running `kubectl get pods -n coder`. Once Coder -has started, the `coder-*` pods should enter the `Running` state. - -## Log in to Coder - -Use `kubectl get svc -n coder` to get the IP address of the LoadBalancer. Visit -this in the browser to set up your first account. - -If you do not have a domain, you should set `CODER_ACCESS_URL` to this URL in -the Helm chart and upgrade Coder (see below). This allows workspaces to connect -to the proper Coder URL. - -## Upgrading Coder in Rancher - -To upgrade Coder in the future or change values, you can run the following -command: - -```shell -helm repo update -helm upgrade coder coder-v2/coder \ - --namespace coder \ - -f values.yaml -``` - -## Coder Observability Chart - -Use the [Observability Helm chart](https://github.com/coder/observability) for a -pre-built set of dashboards to monitor your control plane over time. It includes -Grafana, Prometheus, Loki, and Alert Manager out-of-the-box, and can be deployed -on your existing Grafana instance. - -We recommend that all administrators deploying on Kubernetes set the -observability bundle up with the control plane from the start. For installation -instructions, visit the -[observability repository](https://github.com/coder/observability?tab=readme-ov-file#installation). +- [SUSE Rancher Manager](https://ranchermanager.docs.rancher.com/getting-started/installation-and-upgrade/install-upgrade-on-a-kubernetes-cluster) running Kubernetes (K8s) 1.19+ with [SUSE Rancher Prime distribution](https://documentation.suse.com/cloudnative/rancher-manager/latest/en/integrations/kubernetes-distributions.html) (Rancher Manager 2.10+) +- Helm 3.5+ installed +- Workload Kubernetes cluster for Coder + +## Install Coder with SUSE Rancher Manager + +1. Create a namespace for the Coder control plane. In this tutorial, we call it `coder`: + + ```shell + kubectl create namespace coder + ``` + +1. Create a PostgreSQL instance: + +
8yg0+#=xO! zx4V@v>guCZGP{2Hyg4f}jb_@a!A&Ms*2p>4RhMj$3EUaw_*8)PItGP&!K&n*Mbpw+ z-BBh+uyK?f^hYL>G`I6C=Itvs>s1Xs_59L|{CswCk1H>u(XC4LDkDsz&UWiHD>e0} z?{fkFvG@I;5C<-0e-)Hr!U8RSu?!VClcuG6sxM2pxy7Jy5PCJ1_Ihd*>*~o-s1}Xr znhUt{FJ)n1D0R4L;JZ10A{)*}{iwG8-PX_1$5?KV&S|9_;=U1A|C(0z;cRPb&l5W`Upsbcs4$NFVQ6UZv}-A?&g-H1wNdRT@ZJVDJ}vDlT8=c*n9Pyi8qnGc zOkP&Dum_+{URUMHQ?q-M@9~itf$?lFaV{bE`Vv>vsAMhS&fW}FE46ry!Fqly=+$** zxBID%(M8>}e+kFiiu4~y=6Zz;C_3HIh8A%T8GiK&q@pV8y4U*YvgxIK-#BZH!~H=z z=duhjG*BFYQcR*sDAupTjOI;Jj$F_CoEO$QJ-&o~9(zrucd1o~=6pOlxE?j}QQu_q zvcty@<3Yigab}GnGvNR5^1m?R_YjV7wWhq8P3hW^YjgvKH#Q3FN>&4%4>Kve)VN{y zd7nLQ?aP;p#h0f2$G(4PRi7BX>>6I11tY8&6p(JqAUp{`RakmdG1dU~Mnnj_@un*o(;5hW!;BGo<>Hye zMHf*cWzNOtq>kJv-|7|39lym2m*}qbrE$m^s50ChyI CBqnLA|g^XC>x(Yqi zQbm;piO}Mde!_e*%V}*)YcXOcnkZ_aX_RfpKz|o86ExS>_(RU^K3RVS?{wBa8s$Hg zdgnvS_nj; `%_&l2rMfq!UAN9b-KXAi;{erjTH${QT zZ3_6WhrWl9 cF~s~wlmB>N83oa1_3XQR$iJrme?>61)bsyk-k{-XQ$VY)L>h PLmh`%+qadxURlYSKa4j$9;B`dAS2h~Qqb3X0@! z1lnIH6_5r0jc?u$qczg^l4sJjeVAQ|8j?EDzCDZ&(Y}LHQK6tP?CM_OgW7fUW_}0u zZ_U=l(SP^AV?RDF)zP=K&3_oa|E*38ubv!M8os6aVi*(l-yOIKozIceXnx~l-R)HL z?SE jQa+;0|1l9+b-&FmA*=QuPyD~x4{nSL`(LZ1CdJ!hSb{44zf6K?Q?C54 zh53h&%pij(6Q&~gA13iVSON(1zl59pEgY_{6f8M8IkWb@ysInwSf-4ihK5Jk$>l!| z(LZ9^l%alVn?v5WBa{&qhT(pDmLMbRA*G~*t*@`&pDsZ8DV+{4FOOcT)ru=E9idXG z!xvVdq@duRl%(<-HP8G>cPfJW-(=2G*mo6rbv_mr7UYH%C(aCyOE?$zCmj&yvOiPw z<+RD1vF+{ET|r5Sn2rwV;o+eS2b#_G5+i}m9Ysi}x9m^^7s02*hu6d7tJkY59aofC zBkoU9`+r!t2`Pjg&;oj(Aj1s{71bE^!v{D*LP8u|Tu{abfq*?GqN>Uc${2NYbVM2a zlzu><6&Afi;VA)RmmP}!e)@MX^{4iGJ$9$l K~km5By*nS-6;o!ScqS~d|_i_>zJJl=rJU}(Ng5<0zteNnQtxM3k#|0=*Y>T z&swhNolcg@+CZrGJLfe|24BA?o!es|o7Zz=^|{CMMZrS*+xt`Co)_+!X iq7L<#|{L^!&kIDs@>pk`@L_Rg7WqAyNLAu z`h(egZn_TW4@lapxQ;XM`1ig5EwK*^5mCZ07XMeLV}CPtyX|0#yN*o;rfY>dciJ#P zC)DF*;1^X2((_SPT1KN0ldo^j?Y5hO@8A^euTOr#_D2v ffJt-^G#Nlr<#8oTq( #%Z{=?;-_4U$~RaK^TC?4{o6$~-4u~oX=3@(R7?cdZ% z1x5OGUY~*Y`?+@|PXx?nh;!wd;p*1uLBs+u%GQY}{Oe}K9T4_ALku&JiSt_S=_Isa z&{t;cte;W-Hh;DLzx| QjBZiw9^19tPaxS;)4g%+8zDdLR z&hha?K!V?lo3!R03 g(bBHEp9?86ToqoYVl zN(pM{uGkRD K0pAx?gA4pi+z4W^r0a%6|_| RH9+YYeA87yHOb{2h$h%EyHieI&}TIL zVfo9eceS;BYo_QEyh$}oMayM%D8w+h?_BA|HDZX3voqyzE@v5^eNc2XYH3-S>B ^jtKyW#>pPT= zP|P)1tC4`>L;XlDX_5;qG(V2{1rW=rJ6HO_j8Mc?v(AhhSg)qr6TA_}d1ZyU+`rle z851)myE^PF8keFwk>#^gd4JKLIb-aUy%R?z=if0ax;_w{8|S-CU44(ze^k*fZnf^E zyv1ZF{SVt8CDY;U+N(}!bYc2@tT`Ez6el*vYrn8mdy>)vqTxc%&6e`?&4c|;9dKrb zgP}>)KOZIJ d#fUgKaGRaaIt#z$uAiOFAF^kB#SF_>@l;=lbO4=a z9r5HH?cRwG3EM*-ZRAA?+$nB@H{ZnmWV9M5Q1m4`G2TpbAI1C5$0BU%zclZ@O0p=b zTnbG_b?g#G1&Vui#T VWP({V7g&ZCh9YIGxuiCesV2q)E{tE tRfQp1DmJXvR9t!PCE*tMa;Iu&Awx6E21bG)py{ZTyRI#egPSx|)KYhjdmJ}R zf;Lz`zX`QIk1-{zs hm(g zV!cf-=23Cc!LIsPS-Hl0^&dA=jw-V9z|8Mn{Db{%M)0|@Tc6#-I$Czes_~=V-yflW za?22RCxBUtJ3*G{$4kw%Vadgr!!C{Uh~2d`@<)-$%T3Jv@b!39*XaXYlIw#I24a8G zoJdOTe6~b8$O<(mAc{=cZS3o;uO{`T!YUsGY3hRvi6#~ySg;b$&Y<5;0Ce*}sOmy9 z%jEO1Z_CZpFy+E9I2eWcz52^ e{4MM 7YiEOQ+q_t<}WLkKsYEitPT+VGFhT5Bkrf@!|nOlF;#83 zg~X(bTUVSH^Xo|Fsm;$XAN{n^lu?z2%lssf;RgK^Gm8*PyOvF*Q_t;I`&2iUybFhG zNJlAQq6Mg+X&oNbBvWM8;gd!BvP75N!zxtXPGV 1{0{Ug;# wV|y z;pIxpY +`vIx~4`&P{uVJ(L=wF4Id{mo2pH7zs`ktNx0#)aZ>IelENt@NrB!> zD-JLA XiuGcd^4@9G#-POk)%PzmUYWs4KfIf<;aWH^9FTz*qpy?>F7QWm*J!1)fT z`xG6YIN8FNSO5En&LV)T1vUamb%6|D3A9f*BO8y=l2}Oqbz62UtX*zsNyGJhL?u}Y zzW`@{v_6X9Wmi4E3^h&91`@l_ZQrQn$RnVNGay{L9f(^E76llx;bqF7(0jDnJ ;)3+0&QGD^&lSKcqviYq3na$!rZ)B3*#z@+ zeK|kzA?q<>mQpc;9fq(cfRpqxa~`L%c45<8WF}r}+1C7>*JR0je-$K7gxIdc9GK(3 zqpXecohw{tBSVxjmC_ZUf33x1CyN;}Il*hrPx)p;AYrG %D%_9Q96lb(y)&=+ND1SIHCLRK}Z)~rp$)B<2gM;4wwk5wrs#apf_rgl%8a7OW z35&e0FWKpgZ{gtTeY3Y52dt7fcJ`*|oE~}4H@4g8=#O$+`Ze5MHJ=SFK7cqKpW#qA zwIqNVnl8t_!}EMOOk!B^6NQAmUM}`XFsF_azRf_&+;qx>pDflb^fjlF VbORgub#QoCz|@rb`1n}Ch6ougE;Y48!_rl2`Db?5CLPTI zz(Vq5Vz5L)V79n{(vV{FXpOr&JBerAYAb&ZJ0T7`cc>DLuUzv}(V2t8!9)OrLS1+> z$2bEEISi+?g#dP@l}(jnQO5Ajv#gp@D1(=GV$a=|{f%EGli4R_1QVkrlo29?!cJZc z;_90dCZ7KS3qat)lBC8Z%0uS>z{8s?-l}Ctx7fL6CJu6gaFGc1OV0#H0X9qD`ic61 z$ku0=2h$<^{D?mm?(aX>M> +R%=x z 1XpWBl#cIX!7W`vM>KYu> zJ$u_r5Ae->-E5?gp$sjh{T*`zYvU3%?@U#&0t2i~0}c9!>E-cQw%bbP-a_eH(Lrh- zapl7PoIvrHOqY-zR^8-%L;WA%e8~G7mVV{ZyKEw>pD6L(CtjFB-|wj4!oV(}%9x+0 zEN<0iyeZg$mx?Of9_jeCf!7+v&W)L2ZM=uasLk|h=$m-Bbg1Tau;Y&SmbwM^V3W&S z>}j&xNoKG@wV$SRzrhOuq)UwwnjP-NRg%KEdR}LurA5%yEwFvQhfDkF8net$GErx) zjQHX6yL1jmPzvN(mn9)1(|<6%fqfWQ99+TW?j+Lg^)it!VcZA=n#vb@MTUoWZ*+^; zoUaq7apC!#t~BRbuW^&HAQT_%d#|$_8XHfib=h3+Gp2Dks&TEK%$3mwBH Pam~{ z+FoTzUfa09J8Q>U2%!rYi7MLaD5uVEUk#q!OIfXsPXbT2TQ53a$rh&7WTb!9o@mh5 zi|l1bEv*UikFHFn0dfQHuOwl(*J8i>9rWVxCU9xZe-tONXBMg_ILZv)`w2aVCOEp$ zj{-kVv9m=RdfCK50{fCax^8SO9&$2#E-Z-EB JJ&A;(>^+{eu}^|zSJdmdc{{XJ@^JkG6We4C(yhsd)mhb$&P7kni>?F}8;rHa zA0!S$jD_0O)SD;67|(kdr6ftwvTNwEu*Mubb7WHjV#noQlYIhK2yD;Tv|Th!hWml^ zWCRy8nFJwM;l|YygJW@kw7~lt2X3z%mMzlii>}g$O41{Wuv1IQ=}*R%7!+*D8%1K^ zIJ2W--nd9!($dm>L-A{yA(S7L9e+wDi+@uut27wI6BQHd0Hw_S&
zJl7N5E|-Ip8#{{VhRh_JfDErk)l$_fQdP{8Pv&!Ezsp)d z30D}Ipyy$_vbZ>W+mjXMN6%|iQ1u!nh$WP7|259@#)Fnl&9oMu#A1od C^P9Dcyxo8yYLNmjHrpnl+&11 7@QbbR0w{%A zwkSC)?pK%3jBlA9rJNKtvOI!d?~5ywiayUk$DnxHX2E6jO`Y%U%a>A5OZ(Qq(DXV2 z&D2}745ZoUlRpu|uvpe;4|#LY&2g4}2sIsbzmpqBrU;hgqq-Q6(lu;+#%YsUYE%gZ zrysbg5avKu!Su6!S-giEF3&oDl80sLzbKz_3W(>su(t?D(&+o4u`89CSdD3qlYN+J z#6g3}$6Zle05$(@NxSgY6RcZFQNdJqb%6RNW03z++N;$&WCsOrysg2ezE1ZRYKUS? zU~R {N3LtW=?y2=*NBEo4s=$KCF$GaqDbd>do6x`MuNVyCGzQ4 z(y>OH(SVt<_KR1AkdDpb#!433oRVly-aL@ebC9w4$PtY_a^jhWx^0>Z_+dN<(d_4c z=WKw4L~(TL-}Z6HGl?$AiD^u?TFEV@(8Hq<)?>L;F%^Vbd+?*cA@^*ri`Y%Jx=X^| zs3(ZdO-qxhJtWemt1#zRavtoCrp8yMaeKo2l*#-FNI3R#164ASl9BmqNIl$5^8!1( zE(Z%-4)U=XosM0WJ?}sP)jQcP{f({wm#y%IN{hv25Dd{bukBp~CG+hYDqIicKxiW} zs6w=WC2V7BO8~`en9+V05up9b47YHvCO #5(wJH3@oRgifS!6flGa+l0-u<$}r>RbF^DZdu`Z=Ml1SDhVO zv86O;<@tWa`Vn4bbDe(fj3OJ<$m2lBz4U;U2GE%3WCRn6k3&h*2uf8eH909ROXdm< z3rk%RJp99UEXDJthDf}qUP=jt8$b>1yT1o|OTjw@l;u~cz1f{>u&@N>#o(#NH&IVm z{~ukZ%;`f?O)++O_&s3jdBdPgUHzS%Sa^2fPjeGjUKcgg%fVbf!qQ$ttn4qUqy!6S z^V3Kl$qX7D92#=GHD`@qDLY2Rf&JBvR(K(KtJ_2DO(LUG4D%Z|{;`iu`WQDW0n03- z^m(qhGn1&3)X>30wB5VY$w@Q);XULHCT<(d85?k}3l8+KTZ7O}Fu<2;+9IVE(fz8# zq0eX&TTQ#vwyuFt+hc_qE>ml_2V^EePWDAku*kPH0%}&&oBUtQUnopoX79XG`cNoY z*H#T)@E2 )t6u^|nO_{;K-Cwk>lxRA;PknW<+ySOB zJ&QiX2RS&A*cR0wUs%V3m!Y&8=dt!3hR;VvJn4J|&c%csI|s?fH5xFw$;%k4C@E6i zZToCj|B6HV;2Hsl)-Egt6(5Ec$rp5W<@CkdgNi2%dTV9NfBr^yGQD4m4y%Q1r}D&R z+oK_2k!4BFc2n D^+dC@{ zff|Q?YRyvREotKlp}(W_bu*%g-ATP8PAaFMom2*`5_CzK`^Bz A*a0Q;@Qxhd=W1SDV$_C{qP5>f ziD2V(qk978w`Y}Iq=*q%K?$Oxh6z_TQW=9}maQw7ro99lTxDxCyAAogx)UWGX_zUS zkO`L*gBOp?X)X&{REde!adH<5@*=?vBJ|S1ktH+_TED}>Y=F1Uu_%UJW!lf;Ve3~> ze{7+l8zNe|3g?+nB*wJmVd#7Zl?{VdMB*^Lm9DD`iV|{lz|H(|YAo1YJ`fmvH)4zS zf{7t3M*AZKk`{@yQ?)^I|0L8yPnK_wBS7$T;@Hfc xktp+PU zw=)pC&=-zZps09eL4CBqSUAV>+GWq-_59xL?o@`p(!r~{J6_Z<8~39Z42TA*MXsfd zz-Jfcuc;4kTBwXp`eG~{8<5Y!2Agko8IZ+nww}JCvsf1YG)z0hC+Oi1vIV9pesQzU z(6}TGjuPsn>@P-+DDl^_IyMd2`vf!C-1KcYOP*}Nl}BQq(x&5#V$CKF+vK3KjU&d| z;dj?(U!y+eLFp=FR^iMaQ5=UX3(tG9l$D&8mga5P>RzAc1b=i(6Iyt9FL~--qXzo{ z)f;9 9;9W|p)Eg;CStNu)|fr>+rH`-y3uq~*F+#_~0!0lLxR410O* zIAysBn%;Wqy8lZHJ>hD@cB B{6~s@&YpD|f zNfz-V^nijg#eLEKj!DHMtl39?Y{$FVm$8=@NeLPbHCcaoH2|h1>KALZeKUw_nCK zAWHDG(yBHiF6@J9cB)!vXlQgsxrF6pz67>fyUDc4w6Cv6-CH1DpAzidq; 5$h@& z9H=Ot1QjRSDIhRI?rdxf1PfPG1)H6?v}P%(uvH-#nwb?ZVW6W2iF|Zb1De~lK+;nf zTt e;7hTPv% M-gcrKioOlqWPT&h{?Cb2CzZubU?|Lb 4xWKM#nIug~nsDuP{LxKBo+bI^# z+KO1&UFk}qPj#qMmSem|#dkq^Y cN@ArN7Q&!Xg# zPKGTZ5pgepUS6=UbO>c894KAe*LyH0Z#FmXmNK){LsIhWYm&+3&Y{ZLPt!2JG-vg( zIkdDCi{>WS3-)WplH<+Y+}mPQ#IN2}Oh#(PQMAP4+d&_PYYDAy^btb%d~$qW-5eTI zeZk!(T$z321IT~IG#9f2zg|7NWE|!%k{v`HehwE!7BHr)rjQp$f6s;!A33RZ;!NZmRls&e9T?N}5aVDrBP6m{c@ky`aD*MG87(xsk^tqyEn^@k| zYOZd#r(fUHNa#y05x2p&+2w%6x`fC8iem2pBrl`8mE#;hsMGO^4#6Vvp9DM&YDq}r zG8~)-Y&NHR%JcgvO!k;2HqXWUVdayuy!SZ+CD8|o-@xGn7Sz{)9Cp`A6gOFn*;Fb^ z5kOhw^Q#~Xi`@A~ceKFQkM&a3!M)Ly&!=}#9wJH;A+IbhX}*ta(L$qB%TUeZ270in zLJ0Sf<_Pd>Jx}&SC@K12sw5&ew qDVIablBHkl)+-R;?R#Y$xK zTqh%+l6)bnl4ck@y2q(CodkDD$nxLmRxL_lB|>lar7Fvbu|6AwH+?dGX*+sK6aQvJ zry@EjjRM~^6VpW!O&6+RXJ GJBKM^}}r&HDMXxF@K{UEz$651h^E zm?$(9{-#9Hdk)(ekfrje33xD9 X(yUdY0>_W#;+Yj?Wi`6Gtd;9RgX_7T{0qV*>wrX`#at|A;K$=k-TR_ z7Hst?yBIlwRPJnKKgmhjsZa#m5DV(sNvYOn)hsw$0yL~)C#rU~K9vD$f3EW}!7=Yi zymX%ekAYc)KDTm~2JL^aLoSe$Xk;o7{B_K2z|RVI46iRO ;mw`Hg_0KD;_M2VIaL=eEU`E_ ztKvLDc^39O#V|q$le?X+;Usp3Tri29dcII*U9nx9DmfYh@ux^(LwPSraXz7MF2?dY zS;XlBX2pABgXx!Na3VFM#L
nNR-%g(vj=S$S(#3m@^Ds#u;l!V?I zf{!k`W$Etny_#DKrU%LAzT;!_JusRtQ$N(dZK7VQ&w1=JM>;uilw1>fANRMo+HZgg z`{lF8C}CkK#Thq)6ibx!4yNWyroWraPEAeCsENIP#K$jXaXwuZYpp3Ux3Vf1H_l<1 z;K4U#rlwYXQhO=S$6l;6XN3k!nR(ru8h}b~ZC>Z?@e&u~S8}grVNqfe2Q)VYlHq3` zeS*WHz^F Da|Ep2RgW9wBIX@7ILn6Av8Ya+b`zpvq$+$~=2~->LO7@M!#fD rzMhgwt;-v9aW!=4Ntyg%BBQ3}^a8m~HXsBiZ>_bgQuZ z5SsXO%^mvnc~)@q^*IIE1r-boqWq?v&R%EI+!0nw-A#K^3Y$o{rST5$YGb^^$q`^7 zoRJ2Q4W>oCw|^FBTxQY`UKj282RXT=ki8094kU$kRogn-;w
9RBk{*?NU|)_15mMznx57D4nV{F~XdIV!tzLIku= zO4xI>)wC3_ql`a!GEC#9{IARsCc|1e*|7ChRiUc~#P>x>${|&;nRN$&KHXdPrZ1|{ zA+1YR{!%-Ar_G+!`zc?bso}-wyMA_uBz^8c7z2g-7#2l8L yH@AY zpi)0blVNVY69RXx{h~Z4>6FMNO)VfTD~^6E4vfQ5e|>Uo{AQqu-1FsUP{|Op>RL;3 zr_^@&Fa#$VP!<{&*Mk@bMV&mk`$H(j@R5q@vmG2c!k*871zA+^o3S?o{B;iJ$JKt0 zxa8A<zv4C71_CMtVSnEMn&=S=#Mw215AK71?p{WPv$# m(B zr|KEjXWry_!?6z>gaJa(v%+7wl}AGC XYs z|8^}I=6TSQlf7L~L5=ZElk{mznm;vNzhGvE7tL8d3sHe)GLs3-PV-5@ZV%RWXS%8M z$F|~7XjP59@HQmU<_L0K4PMKWjg!-GK0bl{_S`T?Nz<20&I&)INUrdnA5fC`Yylq& zO_a;M=pO#mWi~$lcC{RG1}a|6N^Bu@2?I@4Zq+iseXGq4n$Cgk!KJzh$0`V!hU2Su z&^JetuU0XVi<_m3b7qY4*B}xis{4OzePuvZ-PW$4C@9h)-CY9G(%s$Nz3FZc>F#cj z?(S}o?rt{S&0TuV`Fnvf&%i zIa|;LquPWgJd&_((EYq8b<(VwDtXApMB?`+Aqrl~VbOt^`{C6Z)x#fXpJqS&bY5Rr z+msbF<+vcnv%!ZV)^kXdVxzeg+}qF*f>}*JD(EqctfvvWQ`Nsehb_tao}%i~Yn`Pp zMnzr_OTL{guB0H3G!ljy-qYm2i^n6Y7vNxTBBNr9XQ6prFi@U`J&F*e%6C9~vHx>L zG)SNhwqVkI4o8vzLZjrn3G1)P4B1#(|Jf$En;JPp&(a0+UA~PZjOaTLFDJ;!fu=#i z4F9LYNQo-qxbC0XE3{uuO3f~BN)2W_JdGh;qXlnyZA()prHwl$ABs;`=H?P?)uqU6 z?ok13Uq;RQYJ^tTYvL>eiF?8vptUWxY~AfVq qFVH=u0rgMlj(H-99_@kbO Bg8X8b{*nT}<2c6aB*H&|r%8?6w;eK|s)}GC z+ZdPk(lIzQA=#uY62Y>dwp0*{dbnY#3G2mfpT8J@S25FcxWeP5*h#Xtv*ynj^H9X` z;58E1o19t@Z>@P@gO>h)RQY7~%V5WN(|(!a>gw>V6Inz^cz{1uyS<&>pqjbT)f!!x zDBWuLX#c{^Bt*pK)aHTi7(sB`+9%xb^v{ygb$?kyv>ZO{_4o-M?iezESDqr0j=8!k zy`VJBFZ@bbM!~vtlxQ8c(Iv2~r90TUB+_>|5_%Fu%puD)Ot9VeFm^8SWny@45}ID2 zfXbgh^ZWGMoB_E4RQW2s2ic0$4XyY){|oA}a4H^Jhlh+d+HF#mp!GK&B%~>2^iG(9 zzk@}T#!PHKr(qccct!UQT(rWdBxwqv)h7=cMx&m?W1boz6*A=ohv$6Es_`Hf^qvW3 zQ+)&-9>3>6a@EEW>wbkRAjoK{%4M@I9Yl%U*Cyhem=Q)#o9vy1o%-NfR6|T ^6XMXeH%Dz(s&waPjL iUV$wf7U?N3#h86G!K zTFx8yYBRu^!vHA4Ig1|g{<{&}Wx3yDPd9?d(tjz|yWMitJb#A$B2x{DvNNJpz4++v z;qj-r%xbOEZl*6`N(+EfljMT!6?ok)E*C!j;+Vr$`6ZpP>b#f6ay}(pd=4;P%)+|0 z0j#Dala(coiL7i?QTOTRwBZl{de^xy2E}rn@`I+InSx~kLi7Dh@VZ)oYe<_Jp=3Kf zUO8uDY84h$!o%VIoYmo8L##^bct~%kPkl#c{zhs>0_LgQW9@y#u)D$}+tKG0L3mY2 zgyqU|q{&5306qwu+8U;i@2>)icHy?g#&;RQG5`=6SOuV-Ox2M4C77yxhU+eqJc8>5 zDLmz>x1YHt1G)+XUw=oWQ?r0*X04nG$B)o@!A`7|^{pO~NY~=EG0%MKw#ck5lxUpI zk9GGIEp>F9&0lu584mVzbJU5Xa;$NOSgYbu<6^r<7lH}3lPQXmm?7#Ig!+uBAh!5< zT`g!Enn`6BBafE#Y`v%ouHy_TZ|Rzin^ SM&H?F z Y+YW7##_h&QDAiHhrtJ7&56bNeJf;l@Ub~B>o2@PMrxV5;8cZiOSX6l{6}7uj zm(?I8B??0r4N hJBbSCE_UZ9mmz#loUDpBB0xpx+#UmpgqxPqnJkuVaNJ z41>YR(XyG7M$W9N8yb9YCr>ZbLNS3E6KgnHHAjSg)Y;!z92t#nHCdADUlzqszZ~c= zgbtuO9i&Q8z8bQpIeC)nNbmIw4Z(7aF%^ ?#b8b~ik>`3EKs)W}CzDx>Bs^mmuj^rBXZQA}{BTi7cWA-K z=lf8)jvZ%lP*YEaZfuOs4ks=kAn>~xwY2oAB(Cg7zo@8a-n~KLay&J*3nyuTgpGrP ztlgBL6jXLjjv|h@xSH|)p86>^CWogbUV%`ML} !Kz{^jm>TVJ*t1a=x{ggm0pbc%O@o-KYt@D;3XWGdXm@{d~6YrmRw7V zj`js$&~m=VI ->+K;`8IDdCt&AB`h*wo5{tdSQUag40m8-?yqQ zThQ3j#LL4{ttt$Pwzww$31j_UOANct04~AI?i(Rah*zM(=7o<<+r9)}{9adH*1gGQ zRq98+T%lPo)~(kZ&SQ)@M}Dj*e!m;wc$*OE(vnMkM28>#4fA+cAemEf3(2JW#JT zc*;M_T8)n ^2bzBSz&QJ!M!3jOxbY-E9GM9WSMan1_X7%HQ6#7}77x_s!9a_aR}eE|-n~a(|LN z!So761wGa~Lu}1 MZuqrAhwtde7QOFJZm$l$-aS4>Jx=*^)F@q%N&0&WdDF0LY#0N;i@8I4=*2eh zMjDB@{11|99jX*Gk$f)ZV;ag@`nWnv6?4;>X*YhpGNrtmCqA#T`KrM@HoJ+Jkpp#R ztmJ$fJ9bcJOp_M*X9f9`6!`?KeRUozaQz7vT22DLN)cN$$?Q_^hw!>^%3fiG3pQ*n zr#I~ZsNEI5ga{!G#1dE5gWk3}$(V97G|Iq8fQNqTd$OcMPN`e?&fgLwv-J;ChG3)p z`It*0jU5VLjCNM&^3P1IMn)pcsGIClU~{@E1c{>=QPVDPmIC-*8ca!Jrs+J3!X=*@ z12wnu=Jvd`h2Hp_&$jJXUKD(pqtF$faLYNstF2fkEp~{@D-QRYixzJV_M3=1Ivu4@ z6f^M}FU`<~#eLS9N<_CW)Ft#}akDjpl^&1wm?9x!izof4<5Tx4Yibnoq@yl*TMp_I zE^VsT>%Udw1Cm*YamRKTV&y;tuOR@~9yCAL08OJA+qp7LF#vQ#*c=s(=N0oY9RU|t zN@=u^66LAWFW}&k7#QtG@vSCooNW-zH` bz@+=Q{S_|t zL)c2%yk3pz6sg#5TF&fbC?2=ej@VXhimtA1ja9Xpe0Mg$ljHv*auY|TBr+iSF{@p& z^m!xI5)j+S**dbHz?89s187>9gntk?VsT%Q0WpQxrl6MF)n-MrpFa P zvDDY+2U8YotatJkeLxEyPAKoPtfx`v3h~zkM2ui+A)lTu*#TK7Ns>Y?$0OF#G }NLA1|Pd<&in1D?PyFXTECMT&lpIZU-(=#LLt;a{SkNt`##c> zuF`Z>p@&^tm+!uTHv#%az+Q$IFO>TiE_YTyDd}ef*FzvAe@{+kCJ*rO-U!s;svR$P zTV`Svl2MpB*@Y|O-}amVkdgot{9?0H0%po>soHgG@})1-rRbAm=6+IBpdU>S*=U(Q zq&v=K@;1w=Gpe@NGmU0O#;*XhIeH|vD`tEh;e&G5yM-L0JckK*=4q9=6S&>|UGoUq zSgAaUlZvowl1HHL^KV{Ea4s!^n$$X=_0gRZ!6k*(w?$cXIA7^U?{Xnv7^Ttd_yN=! zN7!_|FQwEYA6wGoXB+VhC>7XTj>^Z)L=oNEyi_P_xu6zE`FD;-%&{oRHM=A-ndb*z z8JiY{9L*QXBQS%O1%hgoH*S`!x{nsB%> 5uQtF3NZ;T)iX z`xkyeasw7D+{Y+k+ fBBWhJeb$A21QtBY6GZQ&N#N4^+9Cm1}V-WFkwpL +W6_DSqY;*?{8m#=ZukSsn z!v>{mnl?Kg^Z8z&1&cgV)`3=vE{ZFg%Oa%1c48mn3Ew62d(&LFdmL(1bss y|q23L>b(=pbhJlxfe75R_7wK^E4yd*jThDJA?Toho-8Vw2%@ATVH%fv& zu&WBs;hMnS?k>ef|NZd1X5@+_T{x_Y;3gAl`|}M| z!1|UT;C|j~TMLrM5?=M^u>-()7{P!#k@C*8+h$Nd`FfnRU328apL>A#=Z2IK|Gpp$ z>SZ( <}gdU{z^#x;*y8bEtYJ!tkJ-}AH;-rLSPofR=#031zXCDW14MX9`Ve;H&D zM4k7BTR(1q({}rpSnB9tv!Ac;8K5k+1;|6mC{2IHVxCNHn2Y %O_mVy~OH=~JKZFM_) zXSqu&^3FOx;N_?65eL6pQnlQ5Fv2$21Ni%S4&nMWML@(YwJqFv!x0oTXm*^_*0C*8 z6YHo6BaOQkfY;XhJBvTA_;?_SNP*kXaOcni=x3gLz235@>0@ZDygppF|8D4>4s+Mg zz+4%)&8=%en@SMK4>?Sj`w5gRO&^7NK4*A7XeZL^*V%^b@Bmt-r9`qtDb?jx!bkI! zf>3vbxB^_zKBPzhQlK}4?j^zZ&S3rdc1
&2dWg43^i391%ICyOu4X}^ zN!!83aOx?T^z+H|^Kps^@KuiAV8)vJL?gkZHAdTNv~*~x51@+c>)z}8ytN3l(zyD{ z5bE|z?1nQg&mEvw`-ulgF!?r)k9^H_b+aC3cE|K%V`G0=0xC%8$NEu&LG{iVl{Wf? zD>L7=@d#w-d;$ZZ#qz47a7UI!8fly7)C<_Kq|<{1$4}ZuO$i u%@gTwneD1&7@H6SU_S7PP qj27&OWszuYK;IubeQhdw0V{=68G$|Yj`3SOHxaj z^% P#mGD0-w&fhi)x82P^ve0W)Qj=N}FS|8^t8H;W|<9?5V z99UU!E~sGvM8L}1Uue6!q_nHb6#ij1{+5HR+O5jl&Q1Fh(WoKx^^tQ63iL;lwJUTw zH2_wWGG1{~5)7+M!mgQCD?b-N+D!?92n{o%qcd?Ru>9S5v9l(-i0u|U-}-4PU(&)4 z7wd$OjV(@&e@FJPpn!a?vQ=$!{pcvSj17c}j4U11^4X;IqS#FGyVd2H^ g@igRqH! zc~d#FsmqfyG^fZLDAp9;&scRbWt%c_Aq}n2dAYeo1Iy2kw|VXZ%;=wyad3*4)%^TY z&~;VS)xBf`s(Ak$DR{7uOrje~e*F?qa^%`!qUI5$*x}24)eP!l!FigV8Jfg~gPX0W zi*{gB-uyn0$hWRW)&WrosNt1T^J{xHimCp5xH* PzXh(Qql#_u3X*H zCu9q`$$rd0-#?9cyOY2fj;`g5bGf?`3cNBOfg*Up;I^2 u%0VyEN zf)e=x>5NW*GUso%r$-T7{Z>`NSXSX6YUtT zi!Pnu6NV?}sb-S57vdfduaEgN;r&0*EAvLojReJ+?5+M}qteh-Vq3_Zfv zj?J191n)$q(|-@Cf{C@+D65so)$#VecjxY|UZv#YFrSbMNuQhgR@{NlnZpE>yt*4P z)VM{Mpq?%U>EnFI`#2Ov2{O82%A$%JYlfF @n{cZO1m`^(Kz2KndMPmSqg_~JM3*}XW5dP%AupKqUol~q*> ztE?}(193T<5ULR=ai)zkO7YG0A&>34(wxR}MArOf9I8#H(5im27oB2jNKzfO4Wab~ z28vW^EOr7k04Uih>YcqY!6}E`uz>+`KEq#QQJylar5R68kWW`rYVNPk>_|DxW*`fP zy-W)Yfb`qh@3`JUkBV|q*1TIhu$#hSC0HQk^M%`!dPjJ66x S4=azkzdHB~W>m|ERK>+QMY&q9h E}1{1aV4b0A&yWC2JU5yEvt+vNCu2R_(;yCB+M^b5AY2PdUGs&lumG&I-xv`>S zppP%faz#Y3cBGHuOp-L~P^Pfy+rQ9!D~(hnO(ENvJ-NIbn$4z6$j<(A@*~s+pz%s< zu1p_R9sRD?b=hH#j|9|ge-Ide+awI5l)ePCU`;|N05&WgMZqyd%hlx6daOWJmM$ff zoP-2*UXV-L#qF5 o1_3husbpB9tz69I1fiwfTWKh;u~+Fo=| zoeHZpM5LWpnU%`ls|_|(42;zq`zF#S#f|nS+#PE#j_5%ro%UR}a=4owhwP%#(%mUm zp5CG{pv>jI97U}yR4Py6aL22PuD2K%NyJCPadC3m8W(Rrg^xTh7;6_h!~+CffG->{ z?Xne6{N2dLhJdq2MToFA&=z%X%HjG8C+vZ|#{daQ-r?eA ynNar W`b0fUvba?}5h@WsVKD}zp6W>7*&d-PYjoY) zh66AyQjP<+q&0)!5S`$WB 4?%R80Y3^21Nk{idMN7?L*Qg(jif`D+xs8p4ks~}&0yQVG1 zYfl69!;m5oATB2{2a*&^XW)`@BbE`C^)N9~Q4QA|&nRbDnx$L|YI#C^$JlUqh}8LU z-;^A1^vG5Tt$t~KwoTHCfVF7~SDu0pbO(Q{rwunZwh|kLH2XTXurk_)Psi=-f{oka zZs)=L{(VD7#*$-xTvrrfbKfe&W7QDiF*x*q;H1IP7UieYEz@2`Fn5Og1=P~1Zb_|P z9*WeTvwS7bt7Ewl-FiJUe0KF@e}ZUsnF>JI11HLosf)dk(Jq8q!Q0R6)6?H#;}pM` zI~eAD|6t3x2>@^}1kp#cKAoiIdz`j4|G1>f*k!^7y~jFfy$#Pd%-+rf^zhcOf2(x3 za;_PuCXnQ{y|}W0Iir07^AlTs!r_cu2Pr4n?RWxgfK(Tn+sb7k;GoS{Da|7Jwy0tz zFE=@&(>IpZtg;4b@q%=wb4`KRrBSb&@Z~~7CJkl01<4y;`y wtTS=FnX3m#L|xZq)A|6h9)5G2+LkVuV;#Kd11jU@6Et)py$BqT?5 zgj>oHlL%i7a96`|nk7E8R#fZ 1AQ&4yubGs zk{R-}DTjrF6OxdKwTaSfd-?#Jhsr|aVvz)h@p?0{>}oO48kIU?ZGfUfDCmJilVOUS zkQ&mrcs-ea=lc@AV3q7e6qB`JV&K>4+vxEMT|WdYtZpJTDTk*t=yU5IQ(2Cx5lF*^ zY?|ttX>iR*!gtM`YrVMss1AT`P;ZS$$bL=w6pz-d!pNnj=5ZxQ4vNDyVXlwehYy6L z12~^IYc~(y(A9VAO}lETb9vn?%x&X^12vMM9ge@cwRL9Y#}LJ(;o+21zq77S<+8E; z7%cNJ$bFM>Oe3(w16C#=P+KMQM{&fAl_n@0WmLf)kH=%N0SyV8m^fk=)fia9qh*YU zmKI3HJN%`cw&Jp~EQjl}%nDeU0mowXl4bPha+TtpbYNhdRqNW)c={6_o#4T*(W>Y3 zZK|D7qC*s!G}o|-{9K7@!0qZ|VElMn!{f;sOXIj2ICmU)o#YTCza3z(6*ZE>5jnn$ zjTPK{coH}pjwlWZ$w~U)O1KAR`}4ni^hxkf{Ooo|7|KdrT<-fuW!`OlqNDC9({u|H zlowd<@;^<)=b_m%N0d@}CLZ6EqoR#UPd_n|O1EF_MU{;Xlq(MW!mU*zuyuYpo)Q|F z#N|=NCiD{cDVLayi$=0UQkQfM$e=KzqBa`#(wE2?o~(yyoN$oPze1X>wFxj5$lC`) z4=paL5fOg+^vPz`rCOquSlcEGg@9U5ULa6l$idMuUX!$O%8j@-7fx`83Hs8>KXCMY z9aYCLR2E9~hmXYw`{4H ~SP%;uDR^UfiqY^(Y69w9N3z3v?}J6mF?-n( znNXP;KytAT$YyL-Q&A2<(lpGBuhKhDuZqRgXzRei+Y|UL 1608Cs) )E)o8WG@X--Aqq2%d z+iByTqn+lO+bKU|2SL)+;Y`f&lCNM0*Ec^ZV5HPXNog6!)>UnkHu{_rW?nXeipy+a zEsvE ewX)R ztmXD}eq*5wc3?DWXTL7H_iGU#Ga-Xt=zPl|XT9;*L@%~tW|2x7A(ubj>6)d&r{B@y z)JvHOm`W0@s=B?&=~_X=+5c(!_HCuDHsb07#oL@_H~oWfNasbIZ(Rxu?e+>^aqms= z((l x^T9Ml;5UuxMH0+5(d^Ln z_BS<@*049rwN&XXH(wHD5e-mL<6ylnp-83EJHU#a=1oftIl(d-Eq6pje{#T~$Np{< z0>al7Cv>bVQra;FI=h3(a#m>Tc$@M#ws^0XOZ_jLu8A1ykr2Ll;_bW3>z5 =Db=P7Zn6a=DS#)Ig<6Wukz-jRtCZX%Tgo^;L2Rr zaHZjh*48T{sjq =o{Q>aDl? z?&X(dss{C?rjw9B6tMJo`bvcLJ#wdxl~-ii1qeYruYm$6>c0jKQ*QlaHyRQ72*uJ= z7XI~;6dt!^4;*F0m9J6+(11t23nvXz5Y{v_L`Jc>O;(}mmS_Ws+R?rh<18g&Dxuc4 zo79i3!x{6i<|2W}xMMvJqz$sN3Q^HPp#h1+udDCkZJg=_^jBKl;K$XCe*mn{Rth6X zNdXlKd4bb1&1T6CG*u(RqxlI7<;=>Cpu{+aJT5|+-e=kDEK*X^q-Qx6^N(k?Lcbyy z<=7%@`S}Q{J{HsGC*ZmIyAuBFno2^Oad7(>nWXO1fB?VDK!uiG7LI_fsvJC+Tcc+o zPTT1%Vg(EBAY4(;`0$glsj&W2mxpFWK$NamKJ+L}Ss#xY;|GC9nSq(93+0eDS*|k& zE4Oh>M1Qy26DBl`pb@hafz+VHSaZ{Hw#-dFYETa0gJDzO#SS;764JWx{GhvdQVu!j z7m|l^SsFA)&@R=43K0>}$Q$2S0zXtjt*I$SXUm=$riiz&{A}eneENm47u!vP*YS;! zdcCRi`oT%<=IX+Q!YV3(l^Q2Y^=q)f1FhJIh@kfjxe^rW?@@aoDQ n7i z$OxjT|K$O4)YeR{j^s{Sp?(Y5t*+N|3?F{#Jyd5HNUlA;$OLs@kVZ&i`g~M(aENvr zo^=nBe&2Vd=*-;kz!O-Q?6?pI(?)w}Szc@1WiiLH;x Tl8Xl6&;c-3sge{iX zIr}KJlfHU5taG6E3=lQ{6;s)Kn8BY1H4-znF4w^up(4TJOP+7M{3gh8h*Bo=mIxw`0YNzjxdK)FSanXGhC0u3bcxcAsTZja z5MYgAa+WFnfbGy9wKguyd4+O%WYQ& $ujZ}eT!f2BetscZ= ziuwi3G$4A&wTV)-ik7xqP)!S}$eiRNvsMK$g$IA7P>;Wb)y!<6QdA@7i-XK^hIMf7 z&PMV+)!(SGM}!Y*MA!aaK;dh$XU@A `a@BTl^<>5#pP}4e`rAB1P)3AUPjMh>a!` zvc)XsTgv`PTgiRo#R0~rAw~D^Q@R=fm?Ol*5MGUWR}Vdyws1OMbU)_1#%EhkAtp^z zZS}OEHCy(`w>S#b7*(rLIh}?xb%?0aG;c;V|Kv-5AKu?w`0qcY00WsIaTsjbUXk(- z6vVG>gvh*LJH*Xia?ctg_W6hI#p#74WYder$eSE(VtuL=vuB*+b%{$O+oWJ|EQtrX z|K~G*Z@{FAKzE{H?R4^RJ@YS5@DNZ?6&hNX85)j8T~e#FPXy`NYV)FM^yrCdtCATD zFSF =q8Sy* zfG!P93cLhN0CH&}64J`b3Y16olH+KT5>+P0|L^l8|GczV|C+ZgPZ1^4vlb;1W||td z$s|Q4yQ!S)U4aus(z8zgN-h7nhJWRms=zO*TZn&-hpy_6K4jCbW+YSfUhM3QiqL*f zb2xH5+4Qe-= QVq1)k_3s= zaI**ol;OVnGnp&tk0e&+`)R1Dnf2s1jLpu@60)#-z{O1m{5+tWoKC}ms*Qk%Xv)6M z&bG=$;xi#p&WNYBwl*Ns_V)a|IgDv~bQA}WZ|5~J`Q_Lqy_tMac+Ai9!%$b3015e) zh>#F+V*}9y_$ms8%|2R5@!s6jyE>Rk$Uufi=4?86ON4 z)Y@&>0K$p_K>M>QGk)^AAJ#rQt{ 0liHZppr2`xH$QA{p?Vl5!DST~@XX z=LF7O+GIwJ3_l|wJDbo>nojMC7O*f1W6~N!7 &JBtY$>EZJlN}u5SwGZb@QLj}PIDV#$XrF*9df*f#N}>RFqq_%i z-XGQ@AdD3egiN-X?sn4sa1BO4M>h^HDJtswB}-&8NRrUi+Y3cNKyWwLp5F5V203~8 zZGmLUPe3z*N5ewUpiH&;J%DdyPy%eEOs>Flcz{4Q^IoyJg>XA#jVBEvV7I5D@&({8 z`}E_wjlf2aq&P7F;F<%eHmpzRZQ(TP%v({yFCX#nv~dJXVX{H;e*@OPQnC+Z)?&Se zr(fxw9K}#P=j8)aFWBdo-Zd3ku?DJVw|;GM(kal~x&S6t%n44HyOQ>MR02RDjMsQX zefkYe*v*YY-v{R7M J_8rC89yxaHyAm2U# z*c&dcyY;uh^8!T7;~ZAuh>18)>63>PKH5No|KQ|gj5jW*59el(EaL}Y6otX6+Ukl5 zs5FUDy>x$JF!)tzFm#^$zhVYEx{o|1t!C;GJ$@hh1TQWEJ l0m9u4qi9@i?eyn2X;W&iWuP0mG*-&B{;d)t(TN zL0FZGD27a$zSi@k(fE8f#foRS4Ny-U|H5qH9Doqt+q*+fD?7I=Wp8e(823*I@`2-9 z|Fu~~WAP!pX7%2M-6?XnPLoNgL QunuAC< zJWKGB-@w=y3v9ep%V#GCS&-nZs3VocFf-El1Y9qxjx7by$}w7X`oW6~53kJH%!)&g z=IBacYWiORa6k23I3;aZ*2L`M{Klflur|lEXi3 )0Al>4 z92uGF%ib^TFw0K@cK@}wJ23bh*!$4Dtezq z@Y1hXUvk8!_6ELdwD Dt@~!18EV3;n1Zr0KW 4S7W%ta^%rGf- zxPk-)^I*1-adB5;6OLkZ$SxuWl4hkE{v1nVD3Gq)85GKLOaC2>Kl$VYi^DK%ZEg81 zw;<``K%ZUaud^Le6!@E~s*(hY4Q=o$%Spr6Pstfw@~I)k&FYtQ$-ditx>vU2%F76f zG+j!HzceJcSGRihQ|%MDSvaveuC0aj0J6{joPhu8@DW1_JA~9K)r2eY1!bxzX$gYW zyAcToTt^OE(K^9W=0$;8bmPd#@nm2$w-QTK9~0E9sw0t0;>T@*$CBB>-TuEBrW#o$ zsIs(r;=fO4)|GeRgRlqN``#UItlr(ZWt=?Js-%xd9>MBK9L`7os$mxUQT6>B&_DcN znFCM)aQNsWB}|GSiV+_Ee|`*v91|&?QKSDPxBtn{fS<8~ASr1hu#(dMuTT9OsYYS! zMQsW%u~XLGKWP0wxtO)>JM7~!=dEqqeGB7+IsHKzew*2|leE%ZHSPcVB4c?1NY+`| z?|R}d_bX@~;)3(;zI6;9Bn ~2^aw|jSVDS39t@_c)1{_Z!ww9fqnUiemM z3`b2{8?LrTEi8D>ipSD&1;#KwA;DPS;MCJeJY>&mwFOWF2nWo&WJ4Y;S%8JUaXHT2 zKbfbUSyeUZnDD32`S(&=4D6t%6Py& xWo6D=Kj$ZWfK9{{wJ_m=-7Z)GNsp~fZv#_pF7HvNOi DTb~-D*ZiTrVc)+6GWgipiLpfGsI=HRfB6~NY?KJMgw$zMXD)i%g6xf zC<6@@0Bqw{-71~I8k4XstG%WZZf9$ot7Fd$$|4jK{3hz6#}qra`9J|#o=0pMxs_{y z*dV8D!-* (41 zu;ukd4@eD>y`I5qvMMUp0?2@y-Z?M|OsaZ43s{nL5yrOO58Ea>j%9{s)ZN?I(7hR| zD=MOt7hb@(jP#iF6rJ7LuC0i3ba8P>dMcSy8H>6JyjF<$pJeOJ(;;1Upy CBS5=jd^|)i*Qc!ZQbtQF+-dDOvMc}nAAn$zm-Ce5+>5VIAkGpo zWR2Hr+ucbs9=_hk!0wl4QTyYk#aNntI1B~^phunm^>dHgDNWW{VF7DVkI&mA5vj3` z#=Z0~mrGhk!V%`vsw&%->)B=$D>w2h9{PjOVcKSBkH?!nKX|U-AmskDXAL_sUS5I- z5BQa4;fV|Og@##AKvWk+0nVa;j<)4Y0~Yg}cXlHpkm@3H-EUI`x4HuIOqJ;vfB-@O z+f4{vyzY2 Abj!4CJu-4?jBkTX$s7rl2a*b1qC9ckayOF`19Xg=HN$v6ocO z(#z`1|I7kvxP3xH-y#fewzwo@XJ$gb-jCbey*y@ob-8#4434o9xnFHHtUFy$eE+ET z3P<2pq7Vk5P^%wox~5^2aLg(NHe1}DOpw#ibhmk+=~9%HI<4Nj#q@HVwpi_c158X- zptAsH&U9a}nTFdj>U^a>db+2p4`OEb&(HLPlWHf!bnUu705ICC51OKMiOTugRp%|u zk4?p@w+nx)Bon_KP=D;v0Zb|J85utT A(Y%8^|!LaY|0QSsJd_sbNfcQ>} zj_36R<$s{kO-MzRlI v~a+8s(5gc zLTN#>*>U6L5w8z0+zSKHe6sIAphc^c4M56*f*7w)QCX8WVJk$E0}j`HXu3bW9fN{` zV)x1Iq;dGD8L0It4F&^RJm+*ax l!nbd4mY1Knt!6WF!Vgq#OAq6bV%tm zuZlRCda3I@H2 ?I^WNjNybm~Uo@>N=(lv_@8z59$FjRhNNl r~`lLG-p zt;~ DwhNfV*LTEaG4H-OqzB`|piLdr?4l_Z~CL)dFmXAxq zrt}4o!08}QS$8Pbw5BON1mFS?m5_K a_p7^5Kp3yR{Wm~j-tv&@I*HvO80Ltm)5G;@-^cTLd(pC>_8xQg66tB} zl~aV^nQ6r?LBz3S&PqbH`)61e00%UA|5;C8e}pOi`9JlIPfkNGbA>$e`tFaxx7}Y$ zoS=OnJ=kICoSc-ef?@ao@3-j7p>s`l+GU*Hz9P}Tvo_{;1|3Ctyi_&;nw6WvO+9F` zJ&lR$99dZeMp8RZ_m}&6jX(L0#nt9-wj#WqIQ>`F(N>rv^5OwpnoxsO3iCuDAsb-+ zh`9-*_w#R(0w@Tj1Xeozs#1f}5OZc*1m|a`r`6VQCvfTL#`BLiqp-ew(GjQ~Vfy}f zBpMhY{gsfO%M-7xL9fil5cQnwl4M8qU4EcC+w9s}1Z}xPDi-D{@ri+#o$^{fq`C`1 zSrHTz8!&%>)eOXA*#w-PI8&>W!~fVv_CYPIt)=*~`*nuD=(1WY)ukOLxTM~o 4hjkiWq53>R1 SzF@ooib5E&|bq6jHuK*J;@XuT%>U!-gVWxRNKhSHgF-=G&gkSp8A`_mJV^ zaqi*8Sl+%(3OfozkYNT_D@F3pDLFIa5(h$j5-(A?vT5ZWBRM$+Tf57HHkY~uvXftg zgd`59xV%*Rp8AF;StMoUKxvMm5dW)2?>Ux-Z*cJ73%h-0QV4~f(r&`++??)m1AWcB z3+6dlCrH2`c;+h|-I@xfhld9_(x Ac+ZV@F1 z6o+Bf`l%GO0k%kYz%<(QBIdi`x;T;zx91ZpU|pGVdm*e59TP3*ERnT9=Md9a3{-ge zxO8oINHk?L4X16~NsTdjP_-(-SYJIJzUgze9u}EPdd_Ls)w;w#08;+}vm5jy96@uA zgbC{RV!e4;IbQ#i`PjX-6z7N<*hlNbZ1FgqsCD z9hFE3R0$1=Woor(FffmyJF-19s>Wf4D6&pOtAMmvB|zY8GTW7#zLVKkTu*aCldlM4 zRFb$4$7BK3P%uzZ`XWk)P|Pb~QZ2<&Ag2`RIe18l%v<^Hh^*rw#sh#^A$(2ubL<}h z0T@{vMkCO{Nmdlo!IDYpbruCwM{k FZ|o>m#trFh vBw2?RWw z4`}pmHw!Toi`o0MP4Sn~${2I1h>qvyj|ZT|xj;b}ff}1FW;F;ry=LkO2g!V9ubw=I zi)~R!b%AwY56f1>%WSLp?)LQcF(0E3pWGaCgkn|2>ZcGA5ry5o-fc;bJPm1Vbt3(v z1;FWsbhaHc&WJxAgOcFT=b*AkK@AM{&6mCV!?5NIEL-n)*CwBD7@l5k>oH%V>l=0e zsP_2gVeww&iehREoA=X UfOT&|uCI<~S z%cSw%(<6K>^)y(#QZx}iSjx5Ov6u_ASp?oa+Ooyya}>DX7HqcK3o!iwd$_;bwv*SA z_0I%Zg6rsJS@H1bX!|!z2*ZMFrAiVBx2csHA>Z4H=GKnIA! l)78X`zXNEjMrFm9T>XKFmBBamo; zPC&jRihx@Qx;aE0e#3?AEY(0EE}#hlrQ5Wk4i~6EkOUci{r)|6v)-H6vuAS7gu0N> z)6chQ!WL|G6BH*$xFYtIP?yL~vNxK-67SnDZkqP~T{A+9ZM8tdD(MWae7HKVo{!WH zk d>G<&M;#wpB)|H(~L zz2WN9H?erw@g`vq#rc%tNvg6&mZCB-ARv55y?+RJE>~J&Nyd724CV;AOqMO_8rGNd2a0i;cM9?yZ`Zu=-os&An=#C3 z{L_a_&H6K$==wyJv#D39QDs0s7p(600k>gIfF0#lISCvS8{0EUQ>N(Ynfi7JI%qT9 zu+~vcvu@kt644Q{G}@r~7`mw?J}{ 5hGa z0s;vOy^R&|Xl!I7tx6Zzug(XsV~N%ez#zitER;xi86JBe`;GWFaD(WZpJVX?Z;T9b z0q16|KJM51cil_UEOwNF^Ffbbz+WwtHTLXo@&?G|=uJeRR#d4Dn8AbIxE>fLUEK}F zB%~)Se2P845)vXd$S;|D`BdfQ`BzW+j%ODZg7#c>0kyf*HB-bSEiEmfX;Nb1uinD( zHYu0q=Q|F;y4FbATXjnd^JX6ZJk@_@dHX8wq$oAa0EeSh&qthP=Per82`^?p?vXz2 z*9WKfJdrZ@B$707Ow(wz?tT-{WE0tSeSrkvG2?WX@T^BNy_KfxSxL!pU?Z@TN+fy% zFb$K%Syin-DB0cbfS7cI?nA*>Y%gviYC&LbDwDqRrBXr8T+U!|!r_MM=i!=8`s>pk zHzVN&$ZmNojpH1^cQddXLMAZWp?N(_ak{t8LCdr4`Fz0b2%+POuxh*iX~)7MXJ90! z0b-Ix+R;b?CuL*=Bxq~#jDaOspCwb684h(f5S7Nqx|G0$|2@$8)4S*=vhIo(SJeiJ z#rVxXOf6srGwd+i_q$6e9N;h@0g!iyxzFlvD}{nXW_Cx_8?+WFryhV7$`UmX%_opJ z5> &0FFIQCc7oHjQez}LZnGWUv^NoL|+kML?q8HT-L zK$A(b1H6c(X{iu=fcEoz;KJ3_w~tQ==dRgO)yDr8F!2mezZ{nK8G?Wjax z)wKb-Er4n1mvrY%7!8}=9gVdShPD2gnH81g9=?TQWxDs}=Np9EFn#QQ>WWQ(=hEv3 zziL&dzWYgx35PtstrPfd5g(?N>Bj}*490P!X9QL;6(Ku?{wE?OQPlv@Tp4v!vr?Uk zDA-*z==T@&xg~*!I7@naRY@^1=1VdnqMQNi2*e}3Yib&r93}>E;1i(kY_uAp633RX zX$0N{&X38V?4!6ipN4~c^|OP5j6|rx$EyS5A7I3!eXM_qzW>}63=%6ry$a&jO}V6m zgt5#Ieknilrn3N*fkaL>Qm&UfMk3!H8hfB+&~Py{Y~B5NPWNP4eE;UY)&?VPOOQH< zl@nYdYJb}jVa_$1BslPTnc=l{-v2t-n3`v+QXt+Xf`)rKRY14uVhppQ4@|jq1QkNg zV(UT>a^t_D_4Ema440&uOJ2C{455a8dnDBi3mJWqSGDEo`DGb>pRj30)j!OCQ5R?{ z-jN9uaLcaX DZ0XJ8b~C4r;qs3-0z$MZT{^Oe!oaOnq#K&%X2`4UABsEJc%8 zVrFNZPtoB5h?RL8%>Re2uMCT8*|r5jaHny12=1=I-QAtw?(Po3T>>Eq?(XjH?(W*? z>%H$icF+6OKltdbRjX>&tTE>p!+OC+o8v2TwV<-@%8^o1s3 de?E))_rT3>O)Ru-Ceh1 z_fw0@bCwD3DN!}?^UKRFsB6xwHEpM&^}?KYFjKP1%F2o|A+ZT@)QRHdfr6lhLtC5H znW_IxEtMX%aS2o^H=HhXkI@7@$j|-86?|&pV4I|5n$&6M32rP<&Osq&1xd7x&HfFr z{GK#PCg%xi9E>&U4I@zcX)Exo{oiOfAEdmbt~5BQ=KK4jM73e}sJO1%<;FT>WTKD& z$hwK4 l|(qddRbaxVq(+l4Q(@EShfYIt~^Ch)OE+yqXO|J>F{Gx-~}7geNlXO z!Rxx;SxHC7BGoO?nMxs7Wa7T==6S1Tw1NpjxvT?ZD8|mva%9}HxWLYgLi Q zK|{8;#MD%|Yt;Y{RJE!(2C4!Ef-pO5_>6O&6f*Ice2h!^qMtuWK%@a@bpF`VlCrlZ z{|`Tt&nXcl3v+8c7V8^0x&7a%jTPw9L75C7j)n0%Net3>bMjlwK~ZI89%{;sKB2K= zGI`}!5s?^_ CZiTSCxi~+lL47kM~b8X3Bj<*|fKU<;KblS_V3k(-!|7 zDI(GSihnzzsVz;Q#{cHEezCd;wP|T}lLJ{$5QboIcf>RwOBe3WFb_$z{VbLY5 NT+Y zGp>>^A6W4ZWX7L0+9fUi3mo}p35QB%E2O^|KxZs*fH2aV*|$E^-HjTJ (tLp$ED{l70iap3`tX}o-Edi0}x zgp-k8W&akETDSr^u+sFhOE~_@)#T;7rl-Mgrv9T_1a#jyi@$W>|L+X~T032gu&+@~ zb-OtK=b!!&?DAb9I!PIt#mVAyNq^jztr#JfQr@coSCP)@CI9P11|SBi_ZRbH=%~F3 z@1-r|S2S!KB*$GVFWAtP{u0;sB=9M&`Tx$=I!qnz)L^2Lfr^av^?9lb &CByU^-RVfExI-!^wQq zbQ?w_-9ZH G)#DS$i~x?R!_GI!$Ky!w*_MC zebY!r6G&8abmjCY7TT_VYG G7tz7?^HwLn1bX7*lShY0`dCm54 zYM1+1+_dN0{;LM}4{RixDR4JF#JNZ8IP#yT_&-_;K-cD r9Po*b=LIMlRetxL;%@Jp{gO$jL-(gw|3Be5kToe_7ydEV+q~h7x*X*E z-8;a)EWy1qwq#a6rJV+0s!NIf(f9oBp>1`uv!)Z9=fpR6r}>{hIOPiCGR&QZs5`Oe zQtb7mMOj;hcD0K@12R{Q>0SG+|8_C*)U$=@PenFa^muDCSI_kHd-|>Am*7JlRw8Kc z+||14A*@)sqL_2K?H}8kw4SDz&+`9wobs|;>4p7nI}i2N^J1C<&nu{GtkX3C6d ze}cGFvDpsoiD3eq-Do36;h~YruFMc!fW~|VOwU5FsHRsF&-U6yhl5ea<|U(uk=Qxv zpl1C1e}&BnSqQxuC(jlJGt_bqR;cjpcf6ll4Wom^UzYG(0p3*K;b^E2W8?eVBKc|X z35X$T>Qxo0vCg(bvL*;(tj&>xij&Zx#GbbP9KSK!YZLWp;Ok|t9Ox)62G9ieI<9jE zJ5CpEM8G+ON0_gw>aIrIiVtitaw_zG=n3Ma$)A1x-J2+}oLf*i34m~lH3KUQN(H7W z6I^0cuZ)6;%1CjHzLRczz4>LXUyi>rbKD~L@AI1f2~}})pQZy_9czszitX62_9I3b zPPX( E(qXED zv}RKg4Ko@jOc()k*A+Hr3{Z<=f4Oo^(wPZ-?7AcLi@0;=v|Ucpi_6h6`?cRbpd<9J zS|up{3Q>{f@7%EImx(|842SeK)O7bx)>y>b2JGxceSvEn9~N6m& VE?c`HM2HhUF zz!1d?ec+0@?g}mH;mlA>a5M6)in$njI5fp@oGG%R>do>TfPss5W)f#lBZG> SVS2q@GpEfiQ z6Mw?oc6rGav_`?lJ-M10pcCc7@A$&vFcbbbRmbcIvyu^asBsodbg5$fXV0=*jjYFE zKPC_c_Kqc()O!Z*>STug$;d!>7A)r8<3Afmj+XucC SZm#}yHDV14_{nrHR-ncsl@l`92mTPaAMOi-f0Nww~`ZT|L`8d z%ZMFvOlCap2CV%MVs0SNTsHk}vtslTwD1GgG0?@8AVfe3++4xRjG#la7E8gu9uJ+Y z-ElX&8+(bY?=0y_Vy=*0o1T^W`(@q+UIl~vQjH*%E1!pKo}#X+o8a2>$rqF1D5UG| zSZ4_`k{>YJ0My(HUAQprN7F0=Q%@|p^Z4!dpen{%?6)8E_rnZy;iEI 6g zM}dh0-=yB6%uXMSFH3lp)O?F5#u_4@pXbm~Xk8$oKZo7HglyUp8CSKoJ0{kro{5g` z?pm`>k*y(H+{1UD8&DbEkvP&|K1&L6>hdwi^~|8-xfS;=jv~I9v>NSfN!lFdOIxMr z8_>%9`wR hfA?zC>Vk*P)t7_TtkPUdgltBuB1 zZJP{DOp8$Oo$tfGQ@ku-yy(seI*M`N{6S2v9tizbumg%7QB`9jwEgcf5Tc>aBs_g- z>O*92fD8;L gk7|Ub{zIMB?jb~{eqAtAB)&b& zo{|8+jWi1
uQ&nJm?VA|*wc*oAe#A7N;*6vrv!)y*&C}q z_U8mM>ldB^I(T#1*%?wMvAnT3A?mI@6j)jRD3}Ne{dOGRK*mMo!2y4r%Ec~|0q0(d z>TRw}a95RR`=q4!#e}-K{7w{Uau)wzb`J**`M^5C}9i4g0H!Z(KtXGQ+YwxeV>q zci0>-W&CsrG@0V%Ne~%9bX(I>aPR&z^5wOP3|^+ef-G%X>(&~VnU4XI<>TtTae=I( z3F;l7>E70WtCeye;pp5I%TNLHaN9LSxPJAlk=mRxo<+4EA9FLXrB6a#TGk!->V!YU zAj%Y~_mNwW&P5GDs9PgCGZHJ6{&+*#<~vI5@?)zugTdlKV_F&*-d%8Y?ZSS^dNXn* z{Eg;aXBNyo>TonX%w%|gtybYZxu&ffneNAEIkbMWGmo)Io8tl)ocR~TYSZ%7l*r|H zzxa~F`(7djB4~GaEJ)YdrgL?*MH2SXrHJW$7ZNwYr6JEW0A1!vY{1pyoy%7xD|QB? z`!3g7C{lsiAq2J|A!*{v=s!2o$*Obt-zg6h{VFW^*wSVqD<-e;hddslbEv;mcGqOX ztuc*56WUEs9|(ys3u1*2kgt^cYFGV7dUuVg=;-OwwsK_2%Rr@Ue?Wb}%%oszo0IXV zsoQ5r85whjyA}HT$1YQo0YLm-uHV{)z_nmsqA#aR<5=QUuknu;zM)G#?=uuBB@4=S zcZay9^k= D31+GAqfj5L=EPvWrIFI;u@>5=bAQl}PV=MnmZ3@%b-Kd{R_Ez&Vx zRI%jMdaej7y+DxlM# HtqS}8y;T{e$gA+wd*2VL0A z?ynuhZS~q=F;#^U1Hn2 UA0IvzMb!GH4V|;Zda+sMb>ta2WB1N;7p8y9?hPEgDpC{TON&ZevPDM%tY4w<7 zot!m~ra`=fz-s8s&9}Rlt3e^SKhA@X13YdG&dBA2q-d2 } zD6c4A@S%XP#Scd97kkDr%GOi0TC*r-2NtVEoE?O|E4@2h7uJt7@Wjy3PMdscU)Qu3 zFD=G)hk>YW15o#X8l-%&%_0peCnj0;dlPAu66qz zkPUS!G*vj@W=1+><|Ic=UFK0edVb~`>txA`lfEBfizj#QXg{GA!iK4JZ1SnzKo$R^ zd`u4?)aO5Czk5sb?0YS)fs{_yR^K8qfBeUW7YChI4X8sVqhb6vz1lZeB~2}@I|EAF zLkwkI&vR&NgUxYvb#Nm!c+1(N)S1)0{orW|C$NpN$LTC|0})+yZBA<+*9?3v-CYKI z%Ra%D%YALq U_K+|&5`Y?Cixb5q1b zTq+)3&D;e2JgaT<&mHBkL$-9MDwtTQBy?Tqm*%NtM_GCfHA?ZYG@g 7T zdfk!(KRolKzI!)=WOm) cNLtvfffMPwS_DF>dJYaC$dSL%Kc?cW;zPx0U% zP`V-nL0CZ4sEQ9w8K$7tbFXpv9#685tuN#1UOl >#jiP;BK4~^|K8gw z4Fz_yo8ZAXegy2-LS|})F*>vF2D*{-F%vCj_8eZb(xB}R`OH+MfY|?IIPFk-k!Ed> zJO3~yW_wMVs%#}OP+_5%xVbLO+6m$s;~rbaef4(mzH49QWhZNW`M^hEqNMe@XWRTY zD(A#0fcYAoJ}C)GEYk;?nOMoDNzjK|gE8+SQP56KY|@Z%EQ4jL2}y^p#tmh A9C+?qsR8CJqbn^k (8l8dm=ib7N_BSy2BcUR&nUDwal;JqEie^pgW*JwN(k15AM zU+pJDx@L7wSLoqm;`(JRJ?#iui`CJ vChw}r3$3r4MpZ qx=N z`G{?XWJz=}ba_tZN<3JJI%#Dal6Q08*oy|zK%T%_prJ;yJDn7Sz&ZyxHc5A#C?yv0 z!hzRtQ@|MeyQlY`>VZ)lQgtzZbJidm_VP_HSLDDss(-r}yP!e1)j=(L@w$EgmZ!^p zdn &JarquzP(nuskkFIi8*YxDF`R{KPX4Jb*-aiq%C z84D-6eK_ 3}m-sMk)#sDz244KZeA%%GaRy*QhmQ8E2Y7_I=8 B zEvTD%+S9_{zOX}B;Z2P3=gWw1*iDDk_79oX=H)4(9Jw>S$n8fLuZZQDI5l*UvG+Am zkK%-tww|^2#Qub2c^IoE<(?e=`UdLZZ^*J@@fQfv#ecU*{SznCgZ;IC1K4#pIpm#q zV=}M6?lJp{)S0&PiMkM*e4d=~z5b#8&8AGKX7+LlBr;FSJ~)!6KlVagp1OS&BLm0c zPw(%wl1$4` y~P7#B`CSVrz6YX zZG|IakLQ;6Gtd8uoPV)Er*gfZ+e8MflX#b{tjcrz+wLu4L2SK)z#urj$7}PwnPQI2 z!kNrU7+tNy+g bsCWy`+F!ml))Rp@GmxUKYyS>{k;Otna`~y+?aFPI z0nqB5jcIfFIbyB%PZSH3_{RNp4wAiADAq+FYkhJ?BpZlIx3OzSt2~o!k@<-cF zI@{&**P}`JYHOK~Mm}BF>qU(qpZ2l%kRrJXHxpX*qA-cu9&P zgspHsNTuWLS+rhEoiaXq&6taqw`X#(cKl{8=HI6a1I9(lmBMRfydT!CV&ceYq=j~E zer15+YuCgCl9?HX-p}?G#ea`IrVx6{x+9;tsXwS$)O6kUR#i^_gHH&03Ly)Ud~_t< z(UcjlFMp4=%Zfr#Q$PG(s=uUOmi}xBc4*7Nq_(%z8n2q98Nhze t{ir5&v;pcj@NX7I8Dxd8EA+#@DslZ!RDJxO)BV#J&mX-G z%S%kBB+oveF3Qo0E}2bA6V)=#2?87_g)}n%iw*6Js1Kc#P=ZE8;edGS=z5?)0gAKW zQh0ED&iu}M!^+db4LM&M1JUN@60%Zv_~EnqJo`??Vq?KdKMte8JeGXi!_#h|2i=-p zgxZHa%yXC*n_9uo25{exX4JGnk1Zk%M9URBUlP5e@fSFU+3-jYA8~SX1o-~RYflds zPpEemTHIc*XC378tI1MyxT>o`gx74f$eXZW7-#3cORBKl8D^uUEWJ41&FH}wPGpg$ zPMxeeiqa xN{swi*`1&EnL8u!J`df9=Z*sLd!sxDrKSX%*c5Jt0gC z&naQ3JF4ZY_RsHyKMnHnIy!yR*=gq%ID7UJU7ILo2tcGg$yqlJRNka$rqfuD5T2ES z0K7JWGnB*2pwTdBlZPo3k7l0qU6q?J*UwR^9!)&P?|alCPfcw5Ccf9>4Z3{IbQu2J zoS5j(pN+fSX*6rNv4%13ExBA2xlcJM*3f1AIG4P%!@V|A)uV3pS0llks7c}-8vMnx z87s2TVkJLP1t%AvR2{*L$0zUsstemUk<(X?4mB4%<&!V0(pRm>54+t~iRpYyM-eq? z_B;XmFEZDyR!R|YE`r7eGWP11^gTlt0uBf6A(RwT8<26Y^|qHQpr+!#>MpDSU?o94 zi|eqJn@dw>VX4(TT)N9V*WCghzbx(dD>i|dkrk?3xA9&YNVFdANeJ+kmDOu zMOSLobugza%DcRsayffFhvAE)5paKJ*vUfDiECgx+I!Z$j&!+Ode-x$t$`9A96+@| z{%B<(6YVeCKfY 2gCJXSg)+>U)3WAW+WhORYOk976Njv*H099p|_(pJX0@oLU|IVbKj zT+p2xdKC5l)@KvdM#NpkT-_*krNcPOB#2W4C$ 4v{hQEHE i1pwBDq1Gok#*TMKwHZPEPG#AmC)!7>MJrvsm;q8Pe_!iayuX)=G| zQ#MxCqoXm{m84$zAm6<)!By(d$@ePvg#mvBQDC}5vUqhv;ks^WdW4!lLF%%cKfp $6c3eBv6yxddrkmo3rNz{A#44RX=yV2Tf|?9D z5#k;O90Yni_~AR{h0T@f#dK=~%v7y^^wsRmwH$eVGlLSJ(mon$@vo&RmD0_Gx>f)y zcYf<_XW|+m6`@q}$?XOIUW$3%f7K3*IL0*Vi_o39D7(xOJS3&=`ZP_-gIuhzXkk1a z_~mIRe0!=st%S6}$VI{6)F@|1i$Tg>I|*9Z2AS+Jw+^yXKKkL}PPw7K@}5I8%kS4) zIg!W7W7Dm6r97>~-T)n>S1Z1e6~{bp7!PLh;>?Z>w8Saa+V9GS)O^S|X`%B&iT)qF zf1jCDk^y8N3*@(6;t?|I1#u$$>rD$&_4ZGKoLv_kYU#jDxhFS?3U0oVBB*%(24pwn zvat2M#jW3r4`f+(p5Hl~-Zx!cn(MtC>K*gEk6Tp%v-L7Fn;WaKSjQXcQm3g! -IN5Zhg@(!aThmf8eY2MW$y; zV^}gD!F_$2)NJEO!psaFFus|HKfZcD i}+RpTLzV67lSqgi*8N4&2TVlD~#i{jbv{s=VA3xfk z4hOyEI?U?A7>bIg6`HP|*X}3m&W68mzPKq}=`zq=8pP^ W_0mn=4+cS%F%&Pbg?VE;Iof&9ncq63xnEt{lIa{@ZyS? z+)2O?u6(LNYQ!>EVv@<8kA((-_DCc{GR+X$_}5`zCk{Rs^v00)tjyS<`VF_DYVdg7 zjegJT%ZqbD_klQy*Z6G%ed~{oRAAEgJ$p96Sy!9Z-h#l-z>Qb*%F1 c zFTe6~_1gUhRBxW0RYvH%gR@(gx;FnuE#2o?FW^q#tv6|)T@L&aNEOE>TxL)r$X6@X z^A~5IGVby)4w*W=-S_tia(fBg_XUPmUvmWGC0M+k#CIY~oR`_dVUI}XO3Hg=wwzg( zmeu_l6}S0T*e1RSXa&6m=+J&OkG)dWr)ej&z5S36+u>f$w0n^}NusloDi^^h_?2M? zzGY`Ihdu|S-Jo)-riMCPqwL_u6z9E$eO06P5Eu`~iuoGXj0hwLu@i#cgmj(27r~|I zcuq5uiy@R#&4AzH1bRf_HG+1lu+~LtqtnO4yvbb}XW4%B{6sR0@n02M_WZ=afy q)fg)O(+UnGId%dE;X=&S3=o ztU;=f-W1HJ%>m%H8r;z7(+0V|$+1QB{jPhq{}aY4ldnUSV|y}Cvlk+p*-R2fVBHv} zuZq5vwJlZN9rlnPlnVw~*8*$DPcMb~t5PZo?e%7n`vE7M9o6U``l&I3lgEMV-qF)J z3#)Uj66xUKI-3eYlWI6kK0aKFofW;>ZVM%k54{SDcVg6sv B2!5*_`~Y9@MW$ z&2+1&G*CZCTR2C$6mi$%v94>^3@-zQ0(vof?b>2)JY5egbSpYJ4@LEz7YeKg$1tz5 zJ2vFg<)dp6P~NVi0d%XGv75OBCOUJB`mHyF$dAs#%8uo~JDb+wN~2$%Rb ;jEyRJECj(gD{q?wz)ECDBLy?Oca^ z1pjxI&$DD}%w?^Na3kNY`mm%Nb`CiLZ -g5fd&CV0|H&Qa6z~ zeKU;(I%~y4*nJ;|9{Zr+W Va&M_JyVi9)&m588a>ym4;jP3Mu#@NV zRzxXW5 UKyHG+W-InZ^bMlL*xF{iLg?r1Xi`ZR{NQR!{o_p<0-bG9rY#Ir#lp z4r}(-7`~dL8gjZ|V<|&5V(yPPLc|ptLDObT^%crAcDKA2KGF3V6Nf@i4e*s}nerkH zBRjs)R7c?1)j1ShPQrND)eM@kwh-J3=pt-N<$(41oY*Y@dM5MB3y55GgvOm)c->#W zoG#{wf@Ka1LpJF5?2L(@jZZQ-bUDaw(#xE;Fn#ZWK_J(tC^ZK#uUJ-fv)s(DKToR1 zX>u^7&eh3_h2~C}4qv$K$KyS;kB{(nyu|oaeBZ$lYqzbyP@XkuKoo8VSouECf7N24 zSvKSx_F0&a %7 z`g1}j|5-N2VwNDJ$jB~w=ZjaMoUctNXb)yeHTFcmOf0MMvN4@15M=g h*W}0RaOWDOb0T+?7I&mdC^A**%a~C`IHcmFnHR0 zs?30 ALIb8{L+LV0y6OKzSCH%5yw)jm)^v;PR(dlD^55PE@<0{mbsGEGOpZ z9%U#HYvSSHG4!P%Fs-;QTR!&2cp17n&N(dHLEsQg`*s(|4dduu W*gv_;5d~Ct!>^Lxn-cfyUYwgtp9pyM7{&_C$>Hzp!{>I?zsh@Oyc!vi1_1WR zhyyCb2nk;kt=aBt(?~|qWu5Hg<>RcZMMe8y4+=|M#URF^4JJYYv5q;RfGt~ZI$=|4 zECiS3lPp296_s_B=?otG2xZmrb~eVg$qE~mQA6O<0ukm8QM6$iCN%U43U3L4z^|W} z-EAQ0sbgUt9M}T&${r)3CFb{ij( T&6v9*>XYQKuapPLorSFy|M>{gs&x@^dVXx}-2uMvJ+~y$Gu??4$`?~Is zcB&<5M3SoH7;EB>mPCy*kf`7r%o*iB(j|D*q2A+6Xb3q3n{7f9sF7Jh!v8w$s{ww1 zfD|%X0Q6*WS11g4cyQ^GgLluk=?lOdeKA5^=ZJ0MOHR?%&~Wqmh)+%R7TAb)#ldJ| zT0lpK{!F$xz`oS5cJLT=-Vt}Rl4J{a<1`>W(M)%EIQRu$r__Mp(!~0EU{D WFlo2uiP>wbM;~ )ohZXrzX;;X!53!PV9l4L3%a@#jKFwBxH z9Jj;CK+lxvo=XZA5XfaHE8X9~2*ehZISLVY*R0}!*V@;LF+Tn5h~Zv Vnmhn( zMb>lCR9(F|{Z-jMeDk~XnJgsO{Z@Y?P6X< dmLnuzrNhQQCrsaj+=aSq&Q>(bw}EY3H6)lB-)S=q3VL9q_DZ2s+Lc8cI2+r zqONzTc0n|b0g%(iaZeXf@Q=4|^$C~5Hs5S)gnVA@KvGK>AmyjnW@rE4x;nO3|A&fC z9e;L?k%}J0AxMPaV2c#LhAUz~3ZoQ9hQ>u`3PDysM(u2dMftdip~8zr1q94^Uy_51 zcwL5Gjb{uZl7xlGOPT}Q+g>i#*IT_GItFw3S! 4vYOr!tb(ROrN&2dbW^UEr~l*YyB6qN`L&qKv#e^N2gL&p`mAu*XS!Z zbHdI_7pu=O912Mp4Wctv?&pE5Y{^TNf
$(JtNMfm)~8W*6CujN7|1c z9wR7=FlNVxMaL#{wcZnMtm0l6=#{$bDRel&$Wb>MrdZMKtY8J=%N8%oUKw-O?7Zci zCh})d7}tNCdqNMdO?= yzr)a~^PXTWLw-W(IKmv5`u@mLVOXA8y{jfTv%Xe6YON}aY3p1FT9W@I ;tq4sgHqIbmAQcaJyXMHnZmA6`W#eF=LH?NM-il6ZsJ z+@eX2*E9P2B