From f14eb60d4e32540142dd4eb40007162ae2bfa1cb Mon Sep 17 00:00:00 2001 From: Jesse Hitch Date: Sun, 15 Dec 2024 14:27:41 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9A=A0=EF=B8=8F=20remove=20sliding=20sync=20?= =?UTF-8?q?proxy=20support;=20use=20ghcr.io/element-hq/synapse=20(#631)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix rebase of main * helm-docs: automated action * upgrade halfshot/matrix-hookshot tag to v6.0.1 * helm-docs: automated action --------- Co-authored-by: github-actions[bot] --- README.md | 71 ++------- charts/matrix/Chart.lock | 7 +- charts/matrix/Chart.yaml | 12 +- charts/matrix/README.md | 57 +------ .../charts/matrix-sliding-sync-1.2.0.tgz | Bin 90408 -> 0 bytes charts/matrix/values.yaml | 149 +----------------- 6 files changed, 20 insertions(+), 276 deletions(-) delete mode 100644 charts/matrix/charts/matrix-sliding-sync-1.2.0.tgz diff --git a/README.md b/README.md index b75d0e3f..87c1713f 100644 --- a/README.md +++ b/README.md @@ -25,35 +25,34 @@ helm show values matrix/matrix > values.yaml helm install my-release-name matrix/matrix --values values.yaml ``` -**NOTE: The most important helm parameter is `matrix.hostname`. Without it, this chart may not work!** +> [!IMPORTANT] +> The most important helm parameter is `matrix.hostname`. Without it, this chart may not work!** + +> [!WARNING] +> This chart used to support the Sliding Sync Proxy, but as it is deprecated, we no longer support it. See this [matrix blog post](https://matrix.org/blog/2024/11/14/moving-to-native-sliding-sync/) for more info. ## Current Features ✨ - Latest version of [Synapse](https://github.com/element-hq/synapse) (the official matrix homeserver) -- Ingress definitions for federated Synapse (Matrix homeserver) and Element (client for matrix) +- Ingress definitions for federated Synapse (aka Matrix homeserver) and Element (default client for matrix) ### Optional Features -- Use (existing) Kubernetes Secrets for confidential data, such as passwords -- Use OIDC configs for SSO either directly via synapse (see [docs](https://github.com/element-hq/synapse/blob/develop/docs/openid.md) for more info) or via MAS +- Use existing Persistent Volume Claims +- Use existing Kubernetes Secrets for confidential data, such as passwords +- Use OIDC configs for SSO either directly via Synapse (see [docs](https://github.com/element-hq/synapse/blob/develop/docs/openid.md) for more info) or via MAS - Use MAS ([matrix-org/matrix-authentication-service](https://github.com/matrix-org/matrix-authentication-service)) via [matrix-authentication-service-chart](https://github.com/small-hack/matrix-authentication-service-chart) as a sub chart for using [element-x] which recommends for OIDC auth - Latest version of the [Element web app](https://element.io/) to provide a web interface for chat (you can disable this and still use element apps) -- [Coturn TURN server subchart](https://github.com/small-hack/coturn-chart) for VoIP calls - Use s3 to store media using [element-hq/synapse-s3-storage-provider](https://github.com/matrix-org/synapse-s3-storage-provider/tree/main) -- Use existing Kubernetes Secrets and existing Persistent Volume Claims -- [mautrix/discord](https://github.com/mautrix/discord) - Discord bridge for syncing between matrix and Discord - [small-hack/matrix-alertmanager](https://github.com/small-hack/matrix-alertmanager) - Prometheus Alertmanager bridge for syncing between matrix and Alertmanager - -#### Features that may not be needed anymore - -- Use [matrix-sliding-sync-chart](https://github.com/small-hack/matrix-sliding-sync-chart) as a sub chart for using [element-x] which requires [matrix-org/sliding-sync](https://github.com/matrix-org/sliding-sync) (Note: as of Synapse [v1.114.0](https://github.com/element-hq/synapse/releases/tag/v1.114.0) you can now use simplified sliding sync, which doesn't require the separate proxy chart [more info here](https://matrix.org/blog/2024/10/29/matrix-2.0-is-here/#1-simplified-sliding-sync)) - #### ⚠️ Untested Features -These features still need to be tested, but are technically baked into the chart from the fork: +These features still need to be tested, but are technically baked into the chart from the fork or from previous versions of this chart: +- [mautrix/discord](https://github.com/mautrix/discord) - Discord bridge for syncing between matrix and Discord (we no longer test this directly but we're open to PRs to improve support!) +- [Coturn TURN server subchart](https://github.com/small-hack/coturn-chart) for VoIP calls (may not be needed in Matrix 2.0 API) - Use of lightweight Exim relay - [matrix-org/matrix-appservice-irc](https://github.com/matrix-org/matrix-appservice-irc) IRC bridge - [tulir/mautrix-whatsapp](https://github.com/tulir/mautrix-whatsapp) WhatsApp bridge @@ -65,7 +64,6 @@ These features still need to be tested, but are technically baked into the chart * [Federation](#federation) * [Federation not Working](#federation-not-working) * [Addiing Trusted Key Servers from an existing Secret](#addiing-trusted-key-servers-from-an-existing-secret) -* [Notes on using Matrix Sliding Sync](#notes-on-using-matrix-sliding-sync) * [Notes on using MAS (Matrix Authentication Service)](#notes-on-using-mas-matrix-authentication-service) * [Bridges](#bridges) * [Alertmanager](#alertmanager) @@ -200,50 +198,6 @@ stringData: ed25519:auto: abcdefghijklmnopqrstuvwxyz1234567890 ``` -## Notes on using Matrix Sliding Sync - -To use [sliding sync](https://github.com/matrix-org/sliding-sync), which is required for [element-x], you'll need to ensure that requests to `.well-known/matrix/client` return the [correct json](https://github.com/matrix-org/sliding-sync/blob/main/README.md). To do that, you'll want update your `matrix.extra_well_known_client_content` values and set `syncv3.enabled` to `true`. Example below: - -```yaml -matrix: - hostname: my-synapse-hostname.com - extra_well_known_client_content: - "org.matrix.msc3575.proxy": - "url": "https://your-sliding-sync-hostname.com" - - -syncv3: - # this enables this subchart: https://github.com/small-hack/matrix-sliding-sync-chart - # which deploys this: https://github.com/matrix-org/sliding-sync - enabled: true - server: "https://my-synapse-hostname.com" - secret: "this.is.a.test.secret" - bindaddr: "127.0.0.1:8008" - # note: you'll still have to actually fill out parameters - # under slidingSync.postgresql, but it is truncated here for brevity - # check out values.yaml for all possible slidingSync.postgresql values - postgresql: - enabled: true -``` - -After synapse is up, you should be able to verify it's returning correctly by doing: - -```console -$ curl https://matrix.example.com/.well-known/matrix/client | jq - % Total % Received % Xferd Average Speed Time Time Time Current - Dload Upload Total Spent Left Speed -100 136 100 136 0 0 1818 0 --:--:-- --:--:-- --:--:-- 1837 -{ - "m.homeserver": { - "base_url": "https://matrix.example.com" - }, - "org.matrix.msc3575.proxy": { - "url": "https://matrix.example.com" - } -} - -``` - ## Notes on using MAS (Matrix Authentication Service) MAS is currently the only way to use OIDC with [element-x]. If you're using MAS (Matrix Authentication Service), you'll need to set `mas.enabled` to `true`. You'll also need to setup proper routes for synapse to redirect to MAS. See example below: @@ -561,4 +515,3 @@ Our goal is to provide regular updates using renovatebot and provide some level [element-x]: https://element.io/labs/element-x "element x link" -[sliding sync]: https://github.com/matrix-org/sliding-sync "matrix sliding sync" diff --git a/charts/matrix/Chart.lock b/charts/matrix/Chart.lock index 4e494324..f6a5dec7 100644 --- a/charts/matrix/Chart.lock +++ b/charts/matrix/Chart.lock @@ -5,11 +5,8 @@ dependencies: - name: coturn repository: https://small-hack.github.io/coturn-chart version: 7.0.4 -- name: matrix-sliding-sync - repository: https://small-hack.github.io/matrix-sliding-sync-chart - version: 1.2.0 - name: matrix-authentication-service repository: https://small-hack.github.io/matrix-authentication-service-chart version: 1.1.0 -digest: sha256:c6892321cbd9487d6b3f5cc6397d211f4cbdaa30f50372647d2fe4c725ddf118 -generated: "2024-12-15T13:18:44.882396843Z" +digest: sha256:af15ea88fa54b0f325f5a2ae16bdc5c246d3f3dce81e72d2ae90630d876533bc +generated: "2024-12-15T14:23:06.762902+01:00" diff --git a/charts/matrix/Chart.yaml b/charts/matrix/Chart.yaml index 6a4c336f..f0e6ec57 100644 --- a/charts/matrix/Chart.yaml +++ b/charts/matrix/Chart.yaml @@ -8,10 +8,10 @@ sources: type: application -version: 17.4.0 +version: 18.0.0 -# renovate: image=matrixdotorg/synapse -appVersion: v1.117.0 +# renovate: image=ghcr.io/element-hq/synapse +appVersion: v1.121.1 maintainers: - name: "jessebot" @@ -28,12 +28,6 @@ dependencies: repository: https://small-hack.github.io/coturn-chart condition: coturn.enabled - - name: matrix-sliding-sync - version: 1.2.0 - repository: https://small-hack.github.io/matrix-sliding-sync-chart - alias: syncv3 - condition: syncv3.enabled - - name: matrix-authentication-service alias: mas version: 1.1.0 diff --git a/charts/matrix/README.md b/charts/matrix/README.md index c015def8..4b742706 100644 --- a/charts/matrix/README.md +++ b/charts/matrix/README.md @@ -1,6 +1,6 @@ # matrix -![Version: 17.4.0](https://img.shields.io/badge/Version-17.4.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v1.117.0](https://img.shields.io/badge/AppVersion-v1.117.0-informational?style=flat-square) +![Version: 18.0.0](https://img.shields.io/badge/Version-18.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: v1.121.1](https://img.shields.io/badge/AppVersion-v1.121.1-informational?style=flat-square) A Helm chart to deploy a Matrix homeserver stack on Kubernetes @@ -22,7 +22,6 @@ A Helm chart to deploy a Matrix homeserver stack on Kubernetes |------------|------|---------| | https://small-hack.github.io/coturn-chart | coturn | 7.0.4 | | https://small-hack.github.io/matrix-authentication-service-chart | mas(matrix-authentication-service) | 1.1.0 | -| https://small-hack.github.io/matrix-sliding-sync-chart | syncv3(matrix-sliding-sync) | 1.2.0 | | oci://registry-1.docker.io/bitnamicharts | postgresql | 16.3.1 | ## Values @@ -285,7 +284,7 @@ A Helm chart to deploy a Matrix homeserver stack on Kubernetes | bridges.hookshot.existingSecret.registration | string | `""` | optionally use existing kubernetes Secret for registration | | bridges.hookshot.image.pullPolicy | string | `"IfNotPresent"` | hookshot bridge docker image pull policy. If tag is "latest", set tag to "Always" | | bridges.hookshot.image.repository | string | `"halfshot/matrix-hookshot"` | hookshot bridge docker image | -| bridges.hookshot.image.tag | string | `"6.0.0"` | hookshot bridge docker image tag | +| bridges.hookshot.image.tag | string | `"6.0.1"` | hookshot bridge docker image tag | | bridges.hookshot.passkey | string | `""` | If bridges.hookshot.passkey AND bridges.hookshot.existingSecret.passkey are BOTH empty strings, we will generate a passkey for you. To Generate yourself: openssl genpkey -out passkey.pem -outform PEM -algorithm RSA -pkeyopt rsa_keygen_bits:4096 | | bridges.hookshot.podSecurityContext | object | `{}` | hookshot pod security context | | bridges.hookshot.registration.existingSecret | string | `""` | | @@ -824,58 +823,6 @@ A Helm chart to deploy a Matrix homeserver stack on Kubernetes | synapse.service.federation.type | string | `"ClusterIP"` | | | synapse.service.port | int | `80` | service port for synapse | | synapse.service.type | string | `"ClusterIP"` | service type for synpase | -| syncv3.enabled | bool | `false` | enable the sliding sync proxy (required for using element-x if using Synapse older than v1.114). You can see all possible values [here](https://github.com/small-hack/matrix-sliding-sync-chart). If enabled, you must also provide `matrix.extra_well_known_client_content`. After Synapse v1.114, this is no longer required. Learn more in the matrix [blog post](https://matrix.org/blog/2024/10/29/matrix-2.0-is-here/#1-simplified-sliding-sync) | -| syncv3.existingEnvSecret | string | `""` | existing kubernetes secret for ALL syncv3 env vars listed below. if set, ignores all values under syncv3 including syncv3.db and syncv3.otlp. | -| syncv3.externalDatabase.database | string | `"syncv3"` | name of the database to try and connect to | -| syncv3.externalDatabase.enabled | bool | `false` | enable using an external database *instead of* the Bitnami PostgreSQL sub-chart if externalDatabase.enabled is set to true, postgresql.enabled must be set to false | -| syncv3.externalDatabase.hostname | string | `""` | hostname of db server. Can be left blank if using postgres subchart | -| syncv3.externalDatabase.password | string | `"changeme"` | password of matrix-sliding-sync postgres user - ignored using exsitingSecret | -| syncv3.externalDatabase.port | int | `5432` | which port to use to connect to your database server | -| syncv3.externalDatabase.sslcert | string | `""` | optional: tls/ssl cert for postgresql connections | -| syncv3.externalDatabase.sslkey | string | `""` | optional: tls/ssl key for postgresql connections | -| syncv3.externalDatabase.sslmode | string | `""` | sslmode to use, example: verify-full | -| syncv3.externalDatabase.sslrootcert | string | `""` | optional: tls/ssl root cert for postgresql connections | -| syncv3.externalDatabase.username | string | `"syncv3"` | username of matrix-sliding-sync postgres user | -| syncv3.ingress.annotations | object | `{}` | | -| syncv3.ingress.className | string | `""` | | -| syncv3.ingress.enabled | bool | `false` | | -| syncv3.ingress.hosts[0].host | string | `"chart-example.local"` | | -| syncv3.ingress.hosts[0].paths[0].path | string | `"/"` | | -| syncv3.ingress.hosts[0].paths[0].pathType | string | `"ImplementationSpecific"` | | -| syncv3.ingress.tls | list | `[]` | | -| syncv3.networkPolicies.enabled | bool | `true` | whether to enable kubernetes network policies or not | -| syncv3.postgresql.enabled | bool | `false` | Whether to deploy the Bitnami Postgresql sub chart If postgresql.enabled is set to true, externalDatabase.enabled must be set to false else if externalDatabase.enabled is set to true, postgresql.enabled must be set to false | -| syncv3.postgresql.global.postgresql.auth.database | string | `"syncv3"` | name of the database | -| syncv3.postgresql.global.postgresql.auth.existingSecret | string | `""` | Name of existing secret to use for PostgreSQL credentials | -| syncv3.postgresql.global.postgresql.auth.password | string | `"changeme"` | password of matrix-sliding-sync postgres user - ignored using exsitingSecret | -| syncv3.postgresql.global.postgresql.auth.port | int | `5432` | which port to use to connect to your database server | -| syncv3.postgresql.global.postgresql.auth.secretKeys.adminPasswordKey | string | `"postgresPassword"` | key in existingSecret with the admin postgresql password | -| syncv3.postgresql.global.postgresql.auth.secretKeys.database | string | `"database"` | key in existingSecret with name of the database | -| syncv3.postgresql.global.postgresql.auth.secretKeys.databaseHostname | string | `"hostname"` | key in existingSecret with hostname of the database | -| syncv3.postgresql.global.postgresql.auth.secretKeys.databaseUsername | string | `"username"` | key in existingSecret with username for matrix to connect to db | -| syncv3.postgresql.global.postgresql.auth.secretKeys.userPasswordKey | string | `"password"` | key in existingSecret with password for matrix to connect to db | -| syncv3.postgresql.global.postgresql.auth.username | string | `"syncv3"` | username of matrix-sliding-sync postgres user | -| syncv3.postgresql.persistence.enabled | bool | `false` | | -| syncv3.postgresql.volumePermissions.enabled | bool | `true` | Enable init container that changes the owner and group of the PVC | -| syncv3.syncv3.bindaddr | string | `"0.0.0.0:8008"` | SYNCV3_BINDADDR - The interface and port to listen on. (Supports unix socket: /path/to/socket) | -| syncv3.syncv3.db | string | `""` | SYNCV3_DB - db connection string: https://www.postgresql.org/docs/current/libpq-connect.html if db is empty, you must either provide postgresql or externalDatabase parameters, OR set syncv3.existingDbSecret and syncv3.dbSecretKey | -| syncv3.syncv3.dbSecretKey | string | `"SYNCV3_DB"` | db key in existing Db Secret for | -| syncv3.syncv3.existingDbSecret | string | `""` | use an existing kubernetes secret for the db connection connection string. if set, ignores syncv3.db | -| syncv3.syncv3.existingSyncv3Secret | string | `""` | if set, we'll grab your SYNCV3_SECRET from an existing kubernetes secret and ignore syncv3.secret | -| syncv3.syncv3.logLevel | string | `"info"` | SYNCV3_LOG_LEVEL - The level of verbosity for messages logged. Available values are trace, debug, info, warn, error and fatal | -| syncv3.syncv3.maxDbConn | string | `""` | SYNCV3_MAX_DB_CONN - Default: unset. Max database connections to use when communicating with postgres. Unset or 0 means no limit. | -| syncv3.syncv3.otlp.existingSecret | string | `""` | | -| syncv3.syncv3.otlp.password | string | `""` | SYNCV3_OTLP_PASSWORD - Default: unset. The OTLP password for Basic auth. If unset, does not send an Authorization header. | -| syncv3.syncv3.otlp.url | string | `""` | SYNCV3_OTLP_URL - Default: unset. The OTLP HTTP URL to send spans to e.g https://localhost:4318 - if unset does not send OTLP traces. | -| syncv3.syncv3.otlp.username | string | `""` | SYNCV3_OTLP_USERNAME - Default: unset. The OTLP username for Basic auth. If unset, does not send an Authorization header. | -| syncv3.syncv3.pprof | string | `""` | SYNCV3_PPROF - Default: unset. The bind addr for pprof debugging e.g ':6060'. If not set, does not listen. | -| syncv3.syncv3.prom | string | `""` | SYNCV3_PROM - Default: unset. The bind addr for Prometheus metrics, which will be accessible at /metrics at this address. | -| syncv3.syncv3.secret | string | `""` | SYNCV3_SECRET - Required. A secret to use to encrypt access tokens. Must remain the same for the lifetime of the database. If both syncv3.secret and syncv3.existingSecret are not set, we will autogenerate this value | -| syncv3.syncv3.sentryDsn | string | `""` | SYNCV3_SENTRY_DSN - Default: unset. The Sentry DSN to report events to e.g https://sliding-sync@sentry.example.com/123 - if unset does not send sentry events. | -| syncv3.syncv3.server | string | `""` | SYNCV3_SERVER - Required. The destination homeserver to talk to (CS API HTTPS URL) e.g 'https://matrix-client.matrix.org' (Supports unix socket: /path/to/socket) | -| syncv3.syncv3.syncv3SecretKey | string | `"SYNCV3_SECRET"` | secret key to get synvcv3 secret from in existing kubernetes secret. | -| syncv3.syncv3.tlsCert | string | `""` | SYNCV3_TLS_CERT - Default: unset. Path to a certificate file to serve to HTTPS clients. Specifying this enables TLS on the bound address. | -| syncv3.syncv3.tlsKey | string | `""` | SYNCV3_TLS_KEY - Default: unset. Path to a key file for the certificate. Must be provided along with the certificate file. | | volumes.extraPipPackages.capacity | string | `"100Mi"` | Capacity of the extra pip packages PVC. Note: 1Mi is more than enough, but some cloud providers set a min PVC size of 1Mi or 1Gi, adjust as necessary | | volumes.extraPipPackages.existingClaim | string | `""` | name of an existing persistent volume claim for the extra pip packages | | volumes.extraPipPackages.storageClass | string | `""` | Storage class (optional) | diff --git a/charts/matrix/charts/matrix-sliding-sync-1.2.0.tgz b/charts/matrix/charts/matrix-sliding-sync-1.2.0.tgz deleted file mode 100644 index 97a12be833157370c6ce47910fbb13c189a726d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90408 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

w=$OrBBw^ zi$#`zV@NVH+i<%(M6VSfH5dA5L2x2aq9*@>%C1jnoe#B7azf*L>8*1>Zfsw{8@Z;1 zs$*1{qUGRQENF;e=MVes1jbgxh%hoXiPSJU%H*7J<0F9P1V@Bd+m-Qn4Slb#&R3E4 z{q^+-sWOsj)FQ>Y4@h_Bq#7KfKqRAs{lN6^EsU5gnXGwLjaQOh9shkUa6&z6SddM)k!P&V>%_0R&AHS*9nvJ5{ceQR}ukA z@VSn-Bbpsb-?J)=Za#>~V%zOKffdcSmj)WTXbdorDj*q{inv7NmL#$=^L#_!e`(xZ zd$_5#se`@!=IN-*8_1;|G}ne2n{f5x=~bZzuVM40SZHPtTMz?ADbzT=QGcHvk3r>C za%HRp%Z?uYwmruFr+21Z{Yz;{Pwu0um6I9NX)1awYTpRm^Gaip49&EHbQ|98JMBWv zIl5{IFEG*Gf@=?2jib zGxNVZYt6l?mDK)l`twR+t!c_lNRN6mbtlAXtP#R7v&(j=FhJ4d`6&QuPs0nDU{;i< zec1^%`gD#w5fJGSp)I=h7NptP{4yu;B2cbTLK|S;x z6Q0`RyB(yoxdgG4BuHB-jj=4y*LqmNCH5v^cM6RX^qj<02iw%XxF7~;BFT(Xx$L5& zFE1bch^cYFH>-87kXZpcz? z)1d#n5taYw1dc(S0O@zeEDRz30~BiOWoMDQ{pX|MTh4G4vc)bsOTsQXieq#|XLBjg zl~$#qZU>=^$F)bN#S@86W#GG%Y{B~4E6+1JZfFe-yL;WiU*WFPmrwPx$@(9&@a8@^ z*4_WyKRB$e|6lHZev;3}S(3bUXYaXM_~?uXIYeTP_nsXNC(j21JbCuw`2n6xUmU)` z{qXQ$|Jgo%{&jykc>etP;Q6x`At8s;7yUgPPQHFI_amT+qm%y|oNEO*ID<3GDJ6V}jz&kv-=Bgi+}Ykn z|0T?E%S&)+^Uj{s+Y#(9lpO zv%THXzm=w}r~|mBj80j6Wh9#=_yok8xh7%79@MsbB3omKwze9<`j;h&kS$DWT2iuC zAPgEf<{WEeh;(ON{jChov_+}@i=`#z2eKTyd<6w^{hH{PU+X9~cRxY-3A=>4t4{+s10!{L7q8=xmv`=t{Qy`@8B_C@DgIyVGq)&?+x> zOI`V-{Qg9)!1mV0+QS^T3wIx(HgHa zWoB}2gR+-JoRPWeV?~koD6N*V6WV)JB*A-;w=<7cUmn(8aZN(gyLwK!BC9&ucbM}t zArvlw8wV*kvGaSZsj`!39aPOfQwW4#Skj!*0l9A^wZ^vyr@qr)9%}-nF_u%t7s9Tl zp>aW`S9XwmS?=jJoS!P;& zlX8UPnB9@csY+)jqN_%RJ~`K$D4jqTJ;iAnFA=q^kVH|W@Pd1^F%hac=qTUWRs0VL zdYTdrnDzA~+dT-wZQ`9>6j7mlXP-t4PI_&Hyzq|eC!27hrXMt|1!dmEOe!ez9Z%c4 z$+IlE>&E^NG?oEX%PR_FIR{d>8amb|k&-E-N({!!e21V772vukx>YB_r?8)}c2?k* zIavc7N=@zf$VzlnZj9%&s8_A&P-x1qYMLxk9Bzus)w4}004X6cqw0i#-g)vm|!3;M+a z4Z9Vu8NdK@*Y+riOsHr$eU4*KET{=(9j>8KUd17L|3?L;?+B~_&l{pP zK!h@y*mB1N`$jrRAISb6F#)j<@oIS(!ld5ss(K!XrA5B z)Qdn-DXtzqrHe%-VZ^Eyf|C^|inSz(NVHR-QX7w}z|3>gwRd=F&C3{fyWOraFuQ|tq^J9BLT|Vcwc6+O7TAFZfP%@dk;B{e$7c)L-2X~f)B$e>R z%*>v4F6eEioCJz1BntE+J3({i50M{yMWehlF=yf>5|%h)J%hWQCA*g~q}fifaR(MS z$pD7E9$^NRTTr|08Yr>2f!1krWRS8baBc0WmgvR>DW|tslE8LZPs2Yok$Cj4^gfop zw9d#k&f_nr@w8+ax`R;^(;MSVM$EG9g}Xy6K{1<&-1aufW_B6a-Ue@3wKFw0_lgGI zrpvwVj5!|yYwpcS2^Zz&B;bt6!0sdimIQGBHsD!Rz&-#Yi~)rb2X>44NpY#IYZ+n3 z?!0qZq4(^tHe2@%xMzDL1f3-a=N{$eE>o@PvWqU|obWp;$S&-Ir1kc7D#0XH(!`nv zslGy9R1SOshA_;kq~6oE+C^t3Vg;Sn+uzhC$$AsISx|4BD3R3K+G@d;3>)PZZe~%v zXUkT$Xd@e|o7Y7{ObMiCEqPtwm)U`P?+YWNrrr=9zHz0R@H7vRGP3*eum)9q+aJq@ z+-*7**e%=AAx^S+SVQJpH!E!%7r50%VS;9<_CpR#eAWS&QV}W|XP?B59Spv4mTg<7NHQvHefbMBgmIxlssU)GyIPsZXc>eUQkT{8O z%o6ezF^=APje84b6Tkcr<;8W}-&}fHB~?2mZf_R_sRsml&&R8#4PqzGaD$k6I~t1NKty_Z_E_sNZ0cdaK1In@-<0 zl9ObMagN)Cvj|CE(P-}k#s=<-EYAij^SqT_RH7D!T9Hk~$Tc{+#YqUZvb>a0>fO$w1bK)S z%QxP$f}PGN)}s|CFnJ7$lyRwTbAGj9(Ki4+JJ{dT8=8p9oVe}n$58RH0!kC#ssN9= zF`Ky{UFU3OZt%F!TcWPQv3CddD2i;In9TwTZreP!R>EC4HUo)O2kV52uo)c7q}T*t zIs@*hhA2qInyOZQ+20g}>*1_qh$CRVX7Q>m-l@QNm{?8RpD1*p)M zpw*6djycIq(x8*pFzK8oWCWQi(6v2PP{SHv(S#tK#sWQc(No>s&7C@U*K|StnKZkbsLI%fKTrV;C&YB zR-r4#q-7eJ*|Pwmv>Z46fZen*L^b`YGN^ibpuqKM$zc4{RY>ouJJ+VVWo~G)-e4*D zhP==! zmL#g-oEOKek#T;kvoUd2+dQuE_4(Ldi#G@9s@|~fpiYZ6=M2g1?mG1)w-!U@hn_I@ z2aJ91M|x-L6nnSuRQHa31Y9*gq)q3$;zSX6ka4PI^Xsc~J!8Qs!VC@YWPlF(Mf^JK z^_0T&%TP7%*Pf>TEnM}tR-avWZp$E64nWS0)nyBYQO>V6QO?!S3V?K_lez&F-NU?g%~Av7ErMW@)-LSNhFXN$hAe=xr||w>>dmzVEd!QgOJ?VL*gtEszx`0PM&Q_L6IRl2x&c8|-N5k!4b z!$n_WhegFUs%)LnoUR<+SB&yGGC}{FoKw3$2Mb*;ZZJ}>4JVD>q_E0GI@S9(vkit9 zs;E)Opa2T>jeINX9ZQ}F)8QJj^K>^1aU>1V;3ajt+5D-VRuJQ`q+xc9n8{n}i`3>= zkuBUEsu4=>5suXDd3``l*y_SSK4Q>Ecc@TBQ!`>3;)>ooim3DWsKBgPfh%!V>!Paq z@NB_GNPei*rogH`K(BlwOfRBrL;P4>t*|(GQ`g3qv1$s8)82S|Zlimk$r5q$dqy;u z!PBu29b^N;(%0QXy>2atoU=$2mabxJ>Kp9Ed)+9ytHY54aLZ(k)6GZ+7cP0-n2^K8 ziEiT%SI(%+i~J1iDVf=ayGX~C-bFFQd)h_aZr90AbAwtJtwmOlKXrtIvt6;24kAsH z-?Y~!7U&q>zryJ~OoKwLq+!WISnN(8d!;vB_~zO76MVd`ImSj*)TT>P_}*=R0h!K% z`2<5d@>am&ux%V8DufQvhrqf>fI%2^KG6GkW`-O>U|Vx#pU(s5WTG(mc~5Z z+|iYDyz=RsBX~vABsg#t2hgc`y0#JE5v_~D4v{7ZGAU{`uuycTW_&%wKpV&GF0fYL zK(b&$0;SxND424#2;j&k04+06ODOoF7|MbikfJeXTMaYTj*8Plt^1D-i@n7#sU>vn zXs8gHH|?R7_ZUcU5KN(=ywqrN|%rd+#0`5^P_ zFMK9yu8EZ3=A{0FW2Lm`UUSA3Beu(-H4b@HNRAVM^(q*%nUB5ZHz3`}Dd%LON zs6eQZ9UD>FBnqme7NkKl-`+M#0=Rc*(*&7afxUM0M7SMXep+WU2}qno6Zb-?joKV& zZY*igIp0CsLm_8ExLbCA}wm}@9 zCbvIgF3goU=ufRy*7=C}IVWnA`GiHrROZ=7eJtMH0Bx=K?((wZM^A$_GT&qCdv5N| zrng-+XA!o@(@eWW!P%sCU@@BkecNTHeEqGdTVU6+0wKI_jZN=pEUH`pn=71Ye(k${ z|8BIACoTu?eZYzg?yclt$C-&5zXmJ>boCyV)&z47 zqOA(0o*Sb5zFr!9z7NqrKP@tEhyYqZrN5rR({lTV=uoRgr3MVqptji!iL%UqExx_q zh%I5*Y{(WXw}HQQ&~6U0#jxERXv=}SIpCHq_T^ zmH*h7ZVM0Ld^?Zuqhmv8jf^Gv@o^QLF*-D%zADOagS#ZzH$h$mxCZ;!pN9r_VQy}M z*$38$H>Oh(F2k67&)AKqGmBRQ0BoAH(*-G=BpCw};|NdHmetUnuk}8%oTeIVHok{F zbk{m9c&xP4W&JDfIf=amPVkICJoF5%ftxrYo}SyVZkU2_30^zwc#cmlyCe=n#v|ib z%o5^4SLkX_ap|s2!V9Pgq9iDb+%ZOuSE@ffvvrHu=Qd@uXCT!)=-DVUqW8v; z(UobueLi@Wuc-w-57Cz5P5mw~Z%es1Dq{wk7ttv==18x<;2!?*=rw|bY~UC5ln9}3 zo|Tva7P*+=$ZX?EQ3D)MXBV)940EeMm}Wz?m;cr{hv?a0?-g|i=|FS2)_%3tpuczU zidJ~%Ppt^q*iy&@mwJr7pp6a&kH|Y&KWSFv$F`b>r7iSnTMx#>1v`c$wwnKqoGee7cR9aYtx0LE;qMR~L6|eWplc2p3kE{fHn~>@lp3u4firiQ zsru)QO;>*P2#pHHmU?pALKftlCfU17W8C>g2kP2QvKX>H{tCljdXml<+WDtXyUJ2tH9K`a9i|qCgf2}u^fPKnz;}E?43c$BJsTZY=upodg@&`y@hbc#>f|e&D)HgP zp!Cwm=kW$tVvF;Tl(nPR4@+6f>EAG%+=wlOqij&)&eyjE2I;CsI54Xa`Q#gHxt?nXn^I< zW&yd?E;T(2QN3U;CoCepZP54Ox1}e*Nfh8jQuoAXQ=$FMF5rrxlD6cQkLz#9vI--H zNKx5nEmBy@L+E3)L;YJJSUoIJ+u$WsEvc21nqIDJ5iGlp*v-hg%9-W7$+@Y9>>ILd zq#9(H&Eu;t9JeCbVn5YcSK#{%M29c-8`&cP{_h~c3sP`Oy{U~PzoHQ)tmo=>m_oKG zE!kh!7Sj{Ci(G(oQwG&Xdw#=g7dH7N*imAew`z4ldQ2}|7|(l}Q7cnp&BQiW6&u%u z-PM9{*La6D^<^a(8u(vO`2@PdEy<=%<8q|{k4a2I$vC=jgJ9))e}9g)5jnn)v6MBE z@8@d1_P&3D@t`(K68b(T!V&M$)i{bJOIgfj%WZBw9W3c{T7 z-gfm_FlDevikxo^JZa=&$|-~0YK(;dFRhVzf^|9tjV+Lb zFHHXYmmG&=R5)sON6z&sSwcvpV>KBl1kDr>NFlJ{)T$1p-nK_vz^27vvWo7;)@Esh zB^gVOC7CTNiilOM{Ed__g+XCx1C+B^iMQAAbRBe47-<-#lSS_i>V0_`vP3EzYG8PH zd)pdeU|L6Whs0uQhMul;*Wc(+M5*iHqKl&N-Yr<%2>wj#lV>pVaN&j3(wcqBb z)(=Ne#=P47^hcAke{=FyQdSC);9+VcN6?6b;L;mKJ~s2*&oy8+udDH*@09E-9NbwH z6@Ol}dYHK3`5khUCos?7mtKv$(CO~f#1wFOh3q{EFHbs`MLb}r^CRdD(O_@?z{xdB zcoXxKx^tW}sKi2h8D=y7nL|%Y!}c~RVySR3Vu8B>QeojF6UzyE=N)xAH{2%?d$Nn3 zxVle%wKz)%UF%0ILMK%43`Q;bHj8Ft{dJ$l^@e9j-~~hU51gV&{rVeCx+aaDK0fN1 zydMZR5eIR|8;t1++=3=Y`szbW&?}nIMYb@})Oso5AxR{jfj2hjbKoIjjBuR5ZC<Bw`Niow z&>drR!jdNvd?_fm5m(IaT=CxvxM+dv>nT9lf<-#)B!sc;qMy{pQ0Q1=U}4@xEQ!r# z$OWYg8RsN)SL6yf^YFCR?ry^NJKHIj!rh7zuu_sl%RYd{5<`aK$F41@??{EJXZzZ%faibie^Uwo(EgN4ah@~iK48P1gOnsSy%l0^5yaQZG)ZG-K26B;n4DO~jh zkO?!(_z;~XO=T(;ukt4-Hl)CL>ps$I44i(1A#nPz5g^%@{@<|w?Rw#HzwIb6{d_Tg zmGjU#*!+sl-LaasN9&AoN`{$8WFTbqZAF)PNNk39#G+cs)y z>0oPfrB;>WPAL;=&6dohQw5uWm(0)}3qQiEk7Hrf!a31tB;|OtF;nf+~5O) zu3nuXia^Q)DPFw}=Zp!HKXyXo9U%$&pZooOzaQ-HJwJT@pKC}@SVSt}(H+{79oE8X zZ!fM<_sp~2w&F3EjLWQXG}W=E@wmjcD72l1#tY!5zL??YTO8vgBwQO&&l!%;#5_Ww&XzxQgA=9&73l4` zSM%-TcDEubup|UPg5Sal%`N!q*Et)N8hJKq-@>uU)9b%1R+UV9%_{9)Y2S~_8w)xp zFsX?>t;QTN8tS!{*Jf{Fe3(sKHgjR&Y^0BC`K=YHwrMR4+@MGMHiz8M4g0FV5>jj% zB=G}UO};iwQlLo+Xj)oct8H=Od4oYR2IyBx;Rn-_T7!tO4XEw9z3OnMw_LjasVIyK zi|#?Jab}q?W?2-NAQC*7Qcmu09QU?u>gm9MnKBL>bTg<%N^EbVrq()<7N9}DtN-u! z_70lHSfOsSO5=?-jzMOlQ_x~di#rt^GiBSm1=gHYs*#%^Y5;lab!eDd(74Mt z_4fPy6%8^ly;br1($bDnu5^D{VvN-Qs%hxU?64(^3wh2B6E6XmmUgFNtQqyl%dB4K zp;l+ABV2%yrb!?63N%J=%8QimxYS^Th~qw5eXC^jyTFDSkA$smtte_ zGO@U=kbqJoLO72X2hJvqp*YH^gbM@N;jE4L-hyb6O&rN0n`jZnbYw1%dbJre?#>pd zN!~;g6p>p$VvWAZrj+f`k1!eRVRu>I)>B#&(2~bOGLC0NYqqNE#`=MA7-)z<0t2`( zqLg@#$do1|+C@H4J-+^@|L8xxI>r{e6>Qa2+uGVicXJxfZ318@CDEC`+ z@_Uu7%nr~M!O>5gN^+TmZ6pqao%aXLm0rQuqgOSD=mmtBU)#@(-NvsVq+xM*})!x-yD=G@8h>?^*gv{fY1=iqA4QlTwpkOH*cH)$tV2`bjUCMzON z(;-?cl?q){0194Z>l&sezE)@L1$EW^APx!#6!0f6ymI}mazQUHS42J2(Xj84>%4{Q zhijSCBQ#Wa18(tF)_aZIGXc^+k9@t812GE_Z}Y4T8#Pe@GU zN}BavRqZMD;bu}tYox)HX*JLtvD@`g^uZeujuQg* zQ_NZTSC6My;OxDFD%SC%EtM!+c1T z#%8Dw4b|8T`EMVuv8Y3S`k;+9_&;^z#u^enUHHb5azFSdS3paUF_B2=%xY#r@+wwq($k zppTmj+Q*Ol*be;ThJS2_^T9D7H$d~SK#&_CdU!O*cE}zfBxK80eZ07k?FjhD!6Dlb z@!$xNZKvUvFp-~4n8@Opz@HN zdBYfzD_h?XMY1@!+g)2J4m3BUSHxN@>xiu*O0H~Db4b5QjWl4eh5{9xS3}t1=w24LeSd4wNXq1IkvHL z|LOrWYZ>$}8%1;NaQPBS^N~VnHjTSY<7uuGgexOz)>7~#tmebRYPMnQzgld~TAn;& zfX(`8fZB)H^bCU!2(nqUmbQwtnInF9tj%WhA1M}QBf`%)n%UU8#|)i$<%G@OGI(Y^ z4z8)OVzUBTn#j)+Ok|TttTH&gm`1F^buY zhB!u1wn$OPS@Ij3ST5SQmt6RG@@O zgpo*aD&|Zgg(m_pD>dfsFpqi@9Nwre5USyp@Fki+8v)D%=csCF@Ee%SsQ zHSQJg)qd>%DTS~ZzAe(R`#1HYMx`i0Ry@x*S0llTLr{;RQdXO6%TI^;1bH>yDW)-r z{x_S5@2OIPmgjUqqIDrA0_O_eF(W{ z=#l$P(?LV?M_aHe|9|j@fa;KAw3?W1x_-!u4Mu@m%ITcEK8~# zQR{)wqSbat=QbEX54MtyU-fkAK$x*r)yG%(TsE zf4M7a5AIuZMDgI>KesPqs5zytKc{cg{j1LD*L1vXaN)qdO-ntkSD`Lzx+|TnT4BhY zhTxyv#U^*VF`hymu7cMO!0qYnKx`&LXgZLk(L5; zo6Fy8t8tV8)s@MI)Y=BuRnI*dj?CrB-!r24a7(xgG$5HiXp9I4S|>CC80MW$#;mnNy0pVAr!OvIAk*rc<) z-LW+{^a9hKK*Z7i(;YbdIm7_S1W8pftmeaI+`)rC!`TK%yRN(MEoE4dK? zYLNN8??b4>BB)|aIk}}Q6Ly^Dx5V7Y9hoBTl2$(Yo~j{3^&oK%g-)<|hXukhCpcP~ zv%+X+b7HDQd@|f#BG@V~yqBMlB)gd?<+j8YiI>z8XecvH+=s*p8AEfdSsW)$ElA4` zY8dI>6rK@xCsz8K>Xk=2%F-1SSo}~u{}H=!Uh;0 zAt}Np?fZC{5jLRWBd15$fRYF2NZ4q)eo2(@=O;?Ymz)ucYW-n8{c2;AEv!%y*7=D= zDC8tEskk6!+i&J@YUB0h<0Ou1h365nN43Lq{}fW2@Jmnc`hKaK>{D;?`iwG7t=`BK z)7>{GT-SyZGxzjabcHcZ5g6<8-P^c+|b3XBXq^ql@FyHy1~*PF<`( zlLCLS3}_-GPC`=HMl~hEU)|i}SFMuYw{G{@lGAF4T~s=$Bd%z)_T6_Wtcodb^jW zg}YMjrc@VQFus7sW`aceO2k{A*07^QikX%{^WvgfJ#4e7yZ$vmo$M50qn`RCo6EW)b^_Tc(dms5)sj>XK? z))Cml&$oTL1Du43XaEKwq;vIKxRIv;Q8*+Rk)PV zM5ZPTQ-Xx2S8qnh0uSyFXPjxw& zQ6c#f{bB^%5M7bNG;K(Oi*xB@DYzL$7k1<26c~# zK+H)TZ$g6wYp4)6G;Jh8;#q6Rs_av`SY%RP;l(on!NNQpYo}GqBRV5Ow#I9Uo1j^D zc!|Uu?>##lV%+U^yJ!>>wHHg6RAZicGh|oCz>~Y$wacz%07v3kD`HcZil8;Ys!E-S zXB7&)M--dk&?iaKQ-Y5!?F8=}Ep5RnPR zNif(8_`bd&tGgjT-||v4oJ}v71a&rd@UGdu;sjy4d30$WOv9bGuVsYwI&|KK*8R|o z0~ejO`#7HRsy!xGMatB6?K8ppsVIw`*o~FPeX}+g8*6D(bBhQrOQH-4z>gl_baH>ysb~@$#swr+tt7X&+A_|dddy142{$X|B z0g8-9jg1MTbWKi2X>1jMXSL#zKex0Rj6SKxHd5T272g$;ExBY$O1>2hEHx?8-S8@= z3Ti~9ls5>?m>AzJ2;5Y}Vi|-66~Fa>a`V+itaRv zV<=q6ZrMTRw5)VSQ=)sN<2rx?-Kl2LfbU~Jw$gqX>=2w`ux6!eV!|UhG0gE_` z@`GL~${->JTuO*OeaQqtKfDm=Xmoa8n_0R28%21nc50K|NwpZ7FCgg!)GpQZ!ii0A zXa}pA@mH#n8W`%!w|1_Z3`QoW|9GT$qO=kh?0&>ONf`TG?fow&ppNUy# zxJ=w8h`yT1>YbOl4X4x`ALr@_+`-<;e^)gjWOIplS?_KMpOj0?ECKdGOod~yCPi&6 zOhz}S&6uD(n`|HSW)@PpIu{M|%0KT?mm>4$zgy1F>KcsZ=T z)1li^PC~os^TJi%4!U~-rG%>a%Xj@eX{w}p{mi`vM{|)@``TY{UJ=P@C`wDtLO(4^ zP4h6nrYJF&2rJchp&FeD2=mQlzUrA+s4}J&)+g)S8rTN4 z#$RWHDiR>^tR1k8%}zx;#(Go^IsA#NN<~^cTT-j0HyM(uP_5NuY)mbWZX~JpXu|BdbZ z?P-i>qHbTG<8h1C9ge-gjrsfXNsem;EVfo6pTLz;-&@0I8>aZ9G)F;CWdzKLu_j{Wb0# z%JOUW=X3Ymk0QH?cm1LxIqB}%J(mlSki?oISQ4_MCV4*la{=HBKmsI4(Td$QuieHX zfx%!f7z_r3neplQ>EIeTT?evMwV*#{jQJW2`r}jZ%lp$y3c-d1dU)2I!zhJzlRA^W zN~^yHKMbxeFHZ;8KWu~RTx9{1o5=k`sJ0DG&&Q{r2Tm_fCD~{oLHc8t{zypu!*)kB$jBrES(aPz6@8WwOK;mb@4r1g z@8rKaD6&I0;8wTJrLdPsaPG)$WF6JE^sfKm-DyQjWA~3jOOz4}az{QJPxwQ}?UIk+ zY2u8Q#GD6rFm(C#Yl7({p#P}X4oT?%5kl)s2mu8vMS(*udLNd$9}eH$oc?`yHM%|> z-JG0_`)|)rQ-8#Z)9caMV4M;=_C)N^ODdiN0z(6kSGRixxPzW=$#-Bu9B$PXZ#&-=u0}F>@6J*sjdO^0EI3y8Zih%_G>MG za&j$j&3~>1a>_$oU(Z7n&9UczIOa7V>6<2C<7nm?*zqz>h+YA93&<~Z0z@%#$AE`N zlgJ*2J}4$8<7M;RKL$tf?HU<>9*V5kYuPI{&$~IF*|nKB*IGU9l`EUTujJqQAPqRU zK2Sp*t`FFdixq&kK<@1$=VQ^YI?u(D&-L0oEVWdRgT<=Vuq(N@9ykNetq0JMYwH0u z;cl8{^9+}()6HiD-pUnHkd z<-#B-mN|398OG&ZgOFl8vAlu*|L$Mj7#UI?jSphBiaZ6+!veOczoGKW6ZJAI_T|~P zP~%&ecmpX@(Z*gD`D|9{A`~au4Ge@sdV-jy_~jxYJ4ec-K~Wx*wI1i}J{z(OYpxBl z7c9)VkL0wzxumEqC3#LFf?6xQ3@v=`TW(-Mp21w~W{R95r%}FV`E1$A*%?3W$S1X) z;nz|g>i|2H03lxbjuqlbmj3QzELxIm*$JImrHI&RleE_P&Z}>Z=1&v*x4ZrM6-Xf2xZ!1(E0osbU9JG<#Xff*H};q zh+nbDznNpv1@>L~vusAjWhy3STq^H|m}_U0tfWjwqFmSsI=Y@)M6C};M#W78`FUh|= zj5O~Z6C11)OB_pA{7rXDLeji%Ug7Fz{D$Az;|_}~cteEqoR!1|PlN_?z+@$GyNI4P zeTR7SVl~b4*CPRm3-OHsDy~06QJxM3u;v)ev5&*} z{&C{wB)&`iv(l6DY^tfIfl#-WK>ZC*SgnHpG7pIyJNFX0Hz27N7JK8uD7k?hJ1qO+ zLMLLEv?9cUjB_}r@v2Hq{Tf90HCqSbqx{!AP&TVZ=dyzW#KX~c z6XB0T&>hf;QSNf17gsO%jyTbd8PaZc6MIWs^=apH%dT81zwE+1iE;`|?M#{-Fz5V~>j_|)^7IrX#Twj>R} z`n#7*woFe*ys<&*kL@9)AUp=a>_&*#dgH;_=NSG^R1Xb8 z*C$iZ`94ZK#ya4Y>)YPaL7=0&anJ$XZK|1m1v_B>sMiDkDW_nW(&b@yA-?j83F7Hm za)&~u-rJ!|TpN1g_ky~e){}gg#K^srYd?PmmDq!?UnM`<2zYQdqk8LPMFCK{yyPO} z>(>q~J;%%NRg|Uji94`dEFj%A3&2Et>I06CtrL&;@1CE+vw$RYKUtCIGFQiF<=csx zlTD!=ZVh9Jvlp=YTZH{OZS;D*-qFDU`?uHY<^J96z1iRYZuj8L?$Q3i{=w1VcfGy6 z{oTFqK=0wYojuEl!0@}?+HK`K_e7r0TL5%k@`3FfgAQG}k9T(H5L@wZ<8Zda|9sJT zO^cINfM{867U1uKkS^!MMN#J%d}b4`BPJC}-wO3361x73)#vYB;;|2c0FYp$C8s!C zbohy0`c9Bz6h=R1$o*BwYD9IGUj@HP_C3GAWO~%U=|5I zUSc)Cy8L?Py&Iv|EaehGaaNox2b72H+t`-PE>9GZ5Qvn%{+gBO=mm4=FBd3uZNL!%ZhB*}UcXb%VjqrlXRcDh|TsERJrI?cNq z9|JKUEZ^E3MnH_)5^oGmhp2LXv^pY4>HXYw9OUOZ06>Q=VZ0B?5+(s;!_Jm0dC3)ue61p1d-Aj?Egy_?z5$K5#D5dD zA`MPvE487#cA--ZBKMDmOr8ZtizCd9DJUbdg~)f94$`4Jh5ShJcNZ?D>#phx{M2EN z#ENepe3wwT@7zuW{nF#pTDsXNx$QkltLs$8%q_U!-q1{oOKWR}D~EI$EcT5bD;M6E zGeFt6R*$Vr%nN=3ALk=17L*vFr~AyfVXt@a7fpeLB`(~KRN!lFLfXOd8`5Gh{Lm61 zdb$D$Ar?70)DSv?2sW8ED()7hQYOw%c#^zoaTVK8*V?`a4cFBVpc7ZtPD0lwXqJ~~ zDFze*NI^XIC8iKKXq|^O&N5TksI(yG-Z zG1qRGV3{~c7oXH?BKFxaV0pPmTlD{5&CH!<_P@+CjChe1hYskj;KDO$qul=2+kbPg zm$UyJ^mY%Q?SGqiK7Y2r&W~FI9IQfjHYeb1h@oTS#cOcp+g;H2JTRgkBC0^4@D4fM zt?}^W@7B3%BR@jc8A~ZKby0W>`osR<{i(Ir?QQ+I^Y!c276tE4g(HxRsk(Q&aafpZ zFV2P00bQ^SzJ6uZUPfua191G4c(P)L#Pn2!L$V=-Fhl;JFJfTXumkpw4%2dJ5UAsy zjE+5ct&ktqWygKm+UdcaSUq-0JHZR+`m}E1%OrnDiU&OH#QWHvF7~Ln%wsLnIj+== z?(A;ji6?gfI`tq5E2|bN^w{V{6b#Ew@+uj`AG_a2^nbMG_fbcne361MOMytJ%K~$ETq%)>(?z9xF6}t zj{ReBx4U)g`p$72&1GwW2y`HU$7x`;&z~hh@%8JLbUv;zlyX(k z;gXe-Bcv%XB!L$n*2PGM2XamJ0UUl83K`8I<_z|lUS{2YM^vf(m9Ai@hIMh)aJUF11DfE>Hrk>n|JBk*dn zV%yD=OBR#K^=B*)*>;zAlFl^lXQxxTGM&+i%ezy6eorN_xY?HtHmm~O($PwS0{p$9 zS5eYJf(h&D7fv2Z82YEX7%!(&_Y>$?8G^`*kkoj!Hf#w}C;#`FBTUs2iyfZD#EBl? zV2k>2alqFYJJEzyV*pi@7cV6K{9h-Rg^0cJOv>NYsibmjkjW9vc!J3L2L;XMUPrry zEY7m-_QR1#!HS!rmVU=olVWOCZA7&ZBFoT^)9K>?g~foH6na(HSjnV~f~;X*qoh!* zE3scAj7g@^^7cA24^N<%z2?6qt;nzgi6PFsBT@v;wL2t1Tf1XfFTg8xG0xUr`VMi|{M2=j?`SL6xNPHFhj{3d8xhx^ z#q)O^66Qcv5wc0kChcee87PkCqa$oJtaPMq(aJy-DfkWj4Xvah!(mNQo6@zK9XJ#H z4Xq*#qA9$lTvFXaJfKMfO6F-1&o!{hx6x5?g}f7$I4jStCH2j?lDXg3<40EIadToG z#Ws1c0J|plHOH+sCZ(K{29s~XHgvtO$2GLZw_q9^f>&q}kd=0amZ?aFykkLk%QhO_>-Sm4vFX8taR>fpTMsKi7e;zuaPA}e>q z@`_N*!xeaCW9XsCMpgV+=$6#9_Nxw>8cO_j`=QX<2Cp(XC5$l_N8+FhQfE82^%Mju z^d0cZ$Ap1xO|))vG>e=h*C|}40%0qJpWv#VH8>-V^@zU=(SB0q>- zVTKNLpY6`wD897f0Q8B;JI`BzA9o7C#I>#gZZAvK(nbvOpxqS=>Io`Vot3A`pkAt1 z)$B=pa5YEXf}J;zF8GCM#Zp*=7#cHk!3em7-A7}twVso~RnWrh1W>8Pm`pF)t+i*C zkM2t*RVwn=ktekQ6c^S98R#^f9<3IGibpmXd+a0Q(H1!0NB57G>C30DMi&*0j5WDd z;7}=$Vx?I#i$-T?*pvg<3DHc3D2O^eq&iRB0CmqzULA}JFp*WbA z0t>`hEG{5-nlL_X=Rg)P(3;tkl8NjaBsI(o-1_QfW^OrLTFsOH20C#{5L2}{9gkE# z$pPL>2Z8}lsZ&s##a)6tcnJsOzXr4S6F3ly97{;yeZvt&l zn~zWPHJkBs5sV>UCzwAlgDXaY-C~P(r!5VKB<@Paqy;)?9ac6s!PPXYH`5Dzqu(kk zSv?u3(ivT7Wc``l0zD=ETa%~~I9V|j*<-*VKyR%XKtq9m~5 z`VY3AwnJwM#W5vvu5dF7>wp-N_d#i!o9ox-V;=vS+sWxFa(>bu(pl~El>AlXWj1r- zrFr;^TJ^2#J7-ZE9zwRZ6EE79&IJlztJc$eGi)^~wvm66o(-%a46-bQEb$*pZ36wu zb3HkK&VW~1_khm=UlOY8SSIt6>&A9^^aPdCWtaDW<$#Ve zp=kUhdSYsurFC*MPaKM`UqKXkHVR1zIO0VE6p|QP6nVF3Rb8B)u7j^%Kc^S9I>4HP z-Mu&6UbolX1y%rryau^UK!QO*__6OaS`2YmSwS5Xv~i{{bGT}Hr*!1WM- zo(Jw>=(9lUuFnEvMXo>d5Llonf;04*2^*UhoI=;DTz&4K=Q@xe-fdx$$MCYd+R865 zVBx>Bce=SPx5K2Iq!nEtGRKazNVL*W5CwXmR9D1HBE0MrDL@PUhFu?Y{^fUsqLvWO zAT66zPL|7m`5*h|A5O>MWB>f@q?F zO#xdxmZ1lDgh3YD-UlnZ1P=CpAizib9l&JHa{my*Sc#^;O?!~w&HJQ8~l;yc$t0D`6O{=P)u9@8K$#aL_xCql#CSN1lsY3 z;s|DyUIU>Zqof9Fx6nP;2RL+4$PEwUAsw1~9Nv};NLgm30DG>z+6l0eCGL;ky`Tey zL-!BYpYeAtip*UK0!Zd*ta=pkTd|d5J6%r|dj+~c!zID*kdH!Ud{HU#x>bzgz@qx_ z`{mjVL70Tm>rh18smrdnQRI2XiYO~_PlXWEHo5+ckEuXCjTDOXQYcUNZkajwTgS%ucX;Z? ze+jXNj06A0PeuH{z1>3mm%YPY?>YX7ip@fgjeTdAUSueJLZ* ztz)zdSeR5tj(C&pL>Vd;fPu^6z^2(|E${>1(*3|*NZFy&?@qG)OLls^@Er;#V!>sE zWGF0#Kvuw<69t+TMwszE&vur5ZaSI*Fx@cjl?@|b;)|pB*);Ol^Ya*h*uGu>S8KJg@&7c{a2DwG%pS7u&x*lgRt%y5*~cu! zt9$2qXeMS`_wQyndj?2T@JwyEc$%kXR1Yn&Ru``N&kHr1Ri23 zx;;@tiHlw=Bf^Tu3I_CNqGqvh{o^=aD18?2(=j+YJlsFr0w9ij-xjzKLFdZ%RwIm= z`8HZb1T7L$Jg@st@~OT5N6^{HIq)uExlT~A{_h?h;ER6&8+_hp4}zB zyxcuV85cbDW>c^758-tFboBxNU=VcWb59#D0_-E795ea;#I%QG!0{alL)SsfJNFoT zv9y6}&G*OE-r}WrK9TjXk^J|$p2YR<>g`~K{69K)lb8R8`)`h(<^Lw0&B%YVXx9~2 zHe#;hyE?%qFA2GQmsV5w0(=?6&b; ziE?yI{hWC%f@KIfHp=$%t+7)rS+aWoa$(deI7}o_jWyvD38Ba|ZR&vfrYa?9;ZP_2 z;rbF=x55hriY3vbg(b73g`{+@r6d@-B79x?DsESD{WP5F8IWm+7n^2g1KB9EupwGG zmjC=2B$~9j;$YdH%jQIfgi9eCsQI*rne1|Wk)bAcCe=C`bjjjIMDX$!tzLtdYzm2K z?AAamr5c4TXhS^h7jH?@k@A>H+}V(5L+ohLYsLg^P^=8Ahag(+rE=;EFKWu{SZ&yd z&`#Q_Bem6ke(Swk8&9MCe|)Wbfqj?Yu+jifvHw3fe3Q@rdU&|M_q_k##Iw2cU!69R ze;+f~Ma*33{UO7sn>kBy%%iS9>)JR(m?^9~LS9L+v4`5~7ecgZ`kL0#Ir56ufo)le zv)!!M+E!MBp;vcD+k(|1>D79Minv486E|2W)cV{I{e~xuavV(ZOR3_Q)|6KCNYZi` zuSIuudzKRoMoF_Z7_QxYLDtE2Z6-PXL%zdu)k|ByV|F>sii>V3RaOn9T%VxuPTWT& zZ%jtMSX;NZs~RvngaNvC7YHv&R#|#&f{+GIL##r?hMe7fO{)qo*PPo1tx93BmCVzy zYy9;{)xpB2hv{Y!g9q#E9Q!!T?|6ilCY+^&A>pIh3^Q?I>es6?<3GCHLnHk^k!8`H zZQ=}C<^TESu$R;S58mt^KI{LRc)q><-%zp7tMHW$AaT3T9v@XYaY5Y@wN{OE?ZUk3 z%ydNYZTniH)Tkb1rJA_DW-oP4v*hV@d7eUl;4LG9!m}Y$u~`zw{&ed4E?JeWW!+p^ zrQ2`5j-9l{OQ%0e8_HFZ)=A;8!ir~{LVeYqFUTR13&#rthBHKlDy{et9^9t;qlZ6; zsBtcDplvj>|Cz1($y4e7(|c3M|9^P!y#8Q+usHGopyp;ADZ+H2VFRFO}nnp(ZCXsr4MxT?N#Gf=jhFo&`(F5F*U zi4p%~EUl}L`pZ!;7U{};4Y30&(=YNn8v_+YPGr+nZ*!Ebe3lb})R+8?W^RqC>&H!r z&S=})Sr3!%)hwujl(W&s5ti#tN) z_V`c#G}`|M&ZNct|K6L!;{N~H|7SDL2ID^%S^>5-V#k?i!a!7A?+G;bdeV3iCvFrj z1KRrAr87h1u^1X!cIlDG`E(t5{yYvm1^!;Re*X@-9*eBRfQWDO3Y5BTf-CO$yS=^L!`?yfu%o)JS&gC5u(x^F zGS`OD#HqSRnyfrk{flko&Nx7J&a1o)le`4JfqQ!~k#CuVQ>FdwYI>DRF1mm-G+cTf z&#w@1B~m4(mjtuyw_~ZTYkZ4*{pwy;OY6%oL73x+^gS0wNb=xMU$%H2C^n@TvcH($ zNRa6u9g;G73g@gX;h#2Qh@j$A{kfV7E>omaU`ptY{thhharj(VZivh z*P)v`=yc4MRw>d#Pm~Z$su1@mpsxqm zk4OkzpGbYu6lt}GIy74DZxFgTbjgajKV8PT>0_yr|5Rej)P!-biLa-v^vUit2bI7f>@S z75|X9%v89FnKlPG<>3g~eBEPnWntSc>e#kzCmnQb+crD4ZQHhOyOVTm+qN}#p66Yw zYOh+g_dl2)#vFBz>pZUWKBE<`&a|&bOV<%sDTvoe5@lqpa$(0qvxpYXt!1kqJN8eV zuegJ{66PwLJfop+?V%T*#W0bRwLB*u*tAgzM@OE*-FW~AyhsCe+B=m znRx)`2?QgFB!J@s-_A$m!~wz{9lv*4oI)G2--aB`_1TQm0xe2iIO}$3uZ^*q(f%#R zI@8k$_{cbUGLt+e$w^7#iyKgrht}wM=~O(df004&*aZ9&Zw-7Vmpi)iw2P`m4HlF zuKTt_S zt~+UdC@UdB^*LEyE3oZu4^US;=Qh+SO!zERx8c8`%X3+M|CCJo4W7IdTiJbZORZ)h zd*JN4TjmD0cV}riy509uGh83Fmzz2N)#NMP)Qpq^vy?&|MgU|vvO8jw5iDV)QX-!5 zjJ3exT?fFB>CvW~D``iS6VXH3ek0M`*@g;6SoqOA1IwCQaZR4WjoNTc9tFT}j_AeJBgjD3tO2s2p^{ zG6lWeK>v*&httAUaw3Y%!dD{a!DIi98Za{i&upNp1W2>QahhQbMYx%zw4@^Aj1ctG zg}5%Y@4$T=+%c*bC1vH!Ov|?%$_!?ovy$af@~*%2l6_MDgp_$iqiwcQLglWlTFt6h z06KDaDT3JjomtD^(!X^}D>D$UNhOPjpN@R#f z7jSG!h3^b?Nb-jz4Jl9vxN#Xt(Z0Ez92x*@>95+*9c2txxhzA~)X&lSeLzK*jdq;8 z;$=e*O@e^;%k%r={d18a=$x@2H%>!Mm`W8CDLgtI>2IW+U%m==R7M>goJ5a}H5vKm zW6GIuT8UUJ9sxu_4~PdB3v;r5zq>mw^-m#Ll{=K-I+-K@sX2jcF}jbM+BbD0E9(jnxq2@9c=>z&rKwz_t5co($Hs9>4VA6Q za4@C7tm@{)*@YG@1XO8`%D~MoSdTi`3aM=p-{acfj_i`x1wH+l_P0!WuF*X{LI243wxY%3s!b@muQCpbZJ-@$q7FfaivZiTfLvnOn zvARCA-Yox%%F$SbOMi;$aOJcjK7=H@B_C>$o2Q%0lHm00=7blbc8+c2Y@y!;`w00g z`^U@2)!}_dJ&nzs!X_WwI|$qO+KJ~^1EA-^?>A>xsRgbPt$$sZwZ{cV(9d%RjR7i= zUnYJG-cI7ISs`R<@9XO6;p61s>fz+TMewqdlPL$2yY@c##HfHafL-|ub@b+=XaRM6 z_eA|GDeIxBt?2u7GXG45F7|{;WSU8YAauHe8`|*n+=1#>%)RyP_m(&oM)KD(-IWq) zD8|dZF+z@h^XmL=VJBRljULklW{S5m4gy0YUOy?fPQO40=dHBeXvz>fDsqdbJo0f@ z0$YPB=n8`6UJ249*HATCxy!u-B}S`1~VK}7+BhH?5 z)=A`Fvkk5sROaPu>$YWrsw zq5xDZ;*^fSq2jRs1J?tw<^@^&(x?$_y$u0*V|dPbsHDg$2t@6l3Hs!EgzL^+G~R-4{FjgYoDq`j6ELO@=nNj z4D!KFL84^NusAufI0fe)SO%L>`B>>%9%tH0TaRm09hu?s(jsRY)|$u3IBN9^Svpk4 z`J}s;_cz23)m#x^I~vnt`1Iy>9Y1Zd?0a6Lt-!S*a+v zF5@|z!y!_J9%gih`)vNpuV_r$0P^dw9r+6SA!-qFbF8D(23Hq`c?se#0{qY0HpxC} zhO}nzrQzL${W(&-(IA7cp`l<}B$g*xKLF+1lL4F@a>_{vq^jK1f8O|bFmSxaA2vnC z=A>E^V>|1&8N(k3_z8Uwmxr*4%2Zs<_i+5^2A?PiJ+0g94V+Mxxg3*3yJP3->M4wo zH|^{Q>J3}gMQ6GlYKY7mb3)fw4%1Ucn-*|{SN3Bcmy5U*Xo9eTN9rsjcn%JScB?-Z zN`YmA-`Xpgr2|cKl9COMSHg)P;gI}kZZREMhC^SS)zaUlDe=~ zdonn?Q>l5Llv6^aVwzn&qA{2hE`2J)s+2m@B{3LS4!2FX8^u0aEjQUPe1eEnrsl}? zE^Vv&S3j`=YH%oR-QoDMoHZU7#&E4-$n8oNYmCN+hi`q7RT#S1D`ooIb?yA6<#|}k z@Tvcl$kD|gFkp`Eg3#Nyvv8Y6Z1T@`NVjBczNh%cvll_2Pk~uxSQeP#1(8NVCJrjW zK9M&B{*5`PyMXm|B;9{+3V_@SN&IsNTGPz1hi~{~g3x$YrNR|2aPYfebl-G&M}>Iy zc$zV8t>#QLmeWK#XO22+^$WR>QRnhu2ooDI2`Ah4#py7Q2od=Z3vV`sm`Fe>Tu?v8 z=ClPQ3lv3++HkI`S}#$bbs2|_=oqbUBL*_)1d^~4XIttpA$u01Tx{{tpgBG-lV6ra z5ZB~(k<~i+w6^q}sukTF1k*D0=vKGO>hJIYnjV^}U`PQwFdqWE4u}S&tp53!Y@8)#Z|7+vo z=^k)>bA9dC=5=fKVgWD!?4JIxtZhR(zZdS=4KUzT&elIb z<81B(vK@-W#je*4Vcxq1?lS{Q`c4c&iuQjam7LYk37Z<`V`%cFj;I=U@wtNtRUQj`l`$^Q>(Y^eUX=WLsx*H&j>IpTt%GO@JGc z93$+~ii2J`TvoX>@78WBTwo`lAnB_4P-Jk84N|KrT}flz7@v#}(lKx??|)zqCdsLiW@HL>0tifKYMh%+3-HVX+A53cPTz4_-0bNevgdgL#V zZQ(qiQxBqkxnX4hF%w06{@FY(DF_sVlY7{y7YEp^gAkf1707_&e#aahr$MAJM9gyZ zE0XlHh1(^mvDDhkeKn$fhb(9G)F4lsI-jOqbk23U&{k5A6QA+V$iT=zsdcHkW7gu zQotS@^0k|SMF_J?>RFdf>NF8;iGQNY#L~FNDIHP6Nkp*X1ilN%L+SjnrjOUUJn0uB zJMySGAuLuhZ2tx_eWEi=}_cjf8 z(RGlIre4tEX0hF(9GN$h%)M9sa!4dr*pou1`LUmKj;o3l==Gp-?+LxpsjV^bLD_Px zuB|rd)C{|o1k^8e7goqzv@#AF?L9{{{(X#!mA}ioi=3em5(A_$xkeI+-+j(P$AEJ# zI6?lANx%jJ^Q(!86Cr>Jonxi@=K8Pb#V!?+g=xxxa$W&kMoizYnKKCh2 z_MGuw#~j#tn>!ahS1|@2Di2IZm=Z)dy&0 zyLqbYh-7Cayz17|BlWf7V;N;4#c673=b(>j#H7?vkUiW9iP(4wFbP=XF4jyDxQ=_j z(AqXQMR*i72+%bNA|%ws^CVoLcCz%XtjHeX_f}ay-2?4I_3+TfO2?=YvfTff85PzQ z-Zt7`pl?_SFmZOZK2s<(Y_%x+;XcdfeQ$i`Dr+|0XdtW+8{yzQE)x4Dn(hNP`lfBo z)6O64&5K-YRC>LsMQC4xkVSEG1}O5CMulA7!@5JTdWJhsXR0le$TBO%g7-@F8N(Mx zoV7xUrn-fg%crac(lXVdq){zq#!qgd#gR6x69B3%-?GDdPoJToCWR z?;cfETyW%aw?ZHQ7Z+g60f{+p~aEIr)CqE5y~k4tbn3zLVb)lT}GJh#qiq%ei=9KNU_@GWS z*+QePs(xaeIN{rbI=Xd(o(&t-avKV$G zPmGr`%OtEiRoAk*n9O}7=!rCK{qZVz9vrEvdV+dv&8?K9);!r$iHb~0fx$_dC)p91 zr&{69F}?vFy!12NYQ&<-=(XOwfPV>^3_{8JphOw`ZPFveAB(K}&Ub{bmTu#s;ZTyQ zwCV0`-Fg?#yl^Feu;`)}iS+P^GUhv0QrI)v>_fkLmXFsL)D_{O^ zI>i$?afygIOpio9)Q%vxMI)Uoaz>ZlHr0tc{#J3!Y%JF=VKaJJUG-+c-;L&9+0QVZ zR7-#DgkcD`?1EvA67s;l7-p=j`Slcz(L~tfJNsBCns*pZ0Fqd}T)h>sJ9&Ir9I;ng z)1M=57_{Zt>cW#0L9=6Fc1(g@WvXPIwF7woeT+|3D+9g?u?#C3iG4^Ya=>7;9Bi7=v7xNsfT z%kL1KT@^?}p;vbKqghbdwu{egGo`86QH~+=SOd)>qS3n)djUxo*yl|Eo=kGXKvW4; z`u9`cuMux&yKWTq@Q*O5O_TY}py>uN!I+8uMFcw?kjnv3eDzk{sNE2v0ofv_$dwHo z@GbhhItXN&l&sLsE~>PA(PZ@oy52aXdU$4vPN+l4$!7|+5hH0?9K|6$bNRaBfWc>d zQ0btWVj-Tz#4dU!*(LS|!`HvVFkJ{$$r?QbkZD-!IB0N6?yBYu(T+<5Mj_Q_V{hi& z_D^HEE;oLPz$%VUdA#T^07TcF%cFz7Zcg`DKx4wm*(Lz<`papQG{;aGl>x|l6#Zf| zM}E-Ti3$SXHw^dgAsPe*$cMZQJsFAAIZGOf`M?MVN!W1Eh~9tJIU0R%}sR zIO(b?p{_rwbNLaTHgoPvS_S59cpIYDRY+`kqV3WG+$VFC6QxmRY=WlgwOl68k~_~u zz%ivVOvu681S!=H_#9O)GNLRU6sP4RI5=C&Zt<-`z0rgM``;w}(lbP_PsSh_-iVC|UL)Fpm_S~dxnR)-oQjH#6moD{ zVobq+-YHi6{%BU17X54R>fZ9ac>g(p7lTcidYfu44@n@?b~gPvS=gkXF)~#)A~y?x zHU~E=oS}R8XE2gPJUPuNK=}-~uy~CZo{2P9aA7#UQEeC$qH@^$wz2YBH9x{0+X@0Xm%h1wKp0Z^&4NlR)D6Q?wo9yAU zzU=x9(doG9lwkD}s(cVo)z;@0&kx}AoCY*zn1i11JJL9h2vAbp-qI*ipjCO6v{hLD z^1v{b&3ixTlaco439in7D<22Axu@p=Aj4+f0PGLeBYuJUMemrK!VH2LP%FxQmg@&zfAssVkDoIj<;BmW z@AdLri4JMPQ>&C8uTttUNPw#O=^)Nv%pMFC3`9bQE8^y)b`&KUbflp_rXQ^18}7GE zj|jr+-RL07VY~hDL3sN!xNE${V6PnT6mdxKCtUnRP&J9hY^L=eI3XTEZuyHaHjcs zbTD}jlJ|cww^Z@9{KjM*x^nTdJWRsDY4z2~AN$5Rcq_hNFm&>JJlF5elC5*{$vtA- zYU4%PJ{Vtd#ApVP)whY}dz4tW0^THMBu0-V*h<6TfUs#~`=?*+zJ4&F>XZOzx+)rz zXM}snc9{B$BwJR@{c*b-XwB!Og&KDXvI5>j3s|C1*hH)>lWQ@}Q_o{Nebl(f`Mr5_ z=5~JAggwH3`nray^lv`!7e*$RyLnId6fTiJ-5pX}1&3!Qj2ipGmvp#N`n< z{NQhT%F~Qey${2@?UBL?N77G~4OS6{B4a!q!?{Yf?fI(MZBCuidtv=`Z+P}^5jNpe!V1tQ^-b$U!_)I-wKrpZPQsUr@$!YW<^OD; zuhwVFqEJkXz&LlOLneRg_HZL_ssTT*J?0qA481tRb9dl9)WD>Nx(|5nzpHSC^gpK} z3mWoxT#Pi`SPr8_84?Cvd#;8O)b~RPnxCZ2lFKx{hR>N+wf@ouFU*`gmyHKseNh9~ zNiwvWIQw@wKe5baR)wjpmH0?(hbfNBA3QFqi3`A$HP12i+6QXctYU0ri zMmC8=1Shr-sBK9=#2J*NuN7ROP+7Lh#S@CfDBuU z#@Jb+BHFwF@PyF!mVC}$SF{aG_98GK5|mRztr4_=4oRfXtG_X^{klbs&cFwVA{v2? zvY;h_!vvbdQP6O?l)(|(4v4nAWx0$efo4=b7MZ{xJa2UtS~C6{RYy-Zk07XtdV^=s znm@y4Bo#RY#`)nHhwkT77kMdZ3=c((axKdR=NgK;AKf+h7NKkN)qgO)0(b6an|ap~ zrK?1$Mbh4tkfi_ZI(iRe2FUUd8Wq$_NW;GXeOR8PC7W2jf8RD>4Ee#jCY8-By`7`M}|u za*^KOPx>Rn5UGFh73XXD9Xa*lC+N763}wNC|i#0ut`BmQCo z!?uG2OVL7=o)XaM_(`6IqJ>$HMEVb`#ZP;6BKHQ>ig%P{jg-8Dqj*g#pEW=aUFGgV zN*;CpVlCZTF}ooo(`4eq_u;{%8V;a_cv@knjcR^=`}M*965)RIj_?kK!n_atc-hGp zf*Y{SZXA@3yPr^+buQP{#7-(bxZQGzDeq%hxA7&;1Az2y;KjwM&G?s{ztvRwyF0AF zn3cJZ+pFyPuw3}~K+E_ZVCCd{dEImN+}U$|O?vX!!a@3$LG1h);UeLYMXtE1413SE zvVa=p;94{K#M7DG@r!T)an(FQaaA+%=hpI-dHvW%bhYb%rUO@0dNHQO{t0MPaK?p5 z@So3!ttU^y&cOE2ta)3g(4|K$e^+Re&VH4dss~~yl}@|jp%Fi@8Z>PL9vuNXb6LV; z;t5E?Yzrv{XC!nT!YNd%<$J-br@8i7X1S= z+Xjf%=VxCnKwKsq|1qMT6g6rl2OJJ()Nhk_bBBJ|k7wQQ8L;~EeGTBx;pJfCViNCP zNH2qcmQK+VBp`c}p&2?qa(BTVfmBx2kTf5XUvX1Fm!BDl0{R%E9F=suq;xf>##W?{>yR38?=MD995@a_tPAL)Ig#5}Ry@ z@z72%z!Ho{OD-Qprz)LU?r4|hh)uqjN`oHaNp4W_4wm{yGG(DniJBc&&|;pjA>_M# zYL9W2dToey9+E~&Lh3{-QvW1Nu>>Xooquyn z1=Wo#`)o8MVsT^v-%#|odM&(8vWz8|AW(%O!r#$c%xv(t8W@2V4&~G$@~FIB(-%}; z=?CC-*Yv+aaPxnJ;N{VcAK_IGr}sACXACy^tqHfcf z;8`8_Th#$`eAwy>W?;PK?M&h_9i);;qaNRXT8#t=ieAQDmhC^6x z{gP0@*@@T*2alo1fkC3aR83!VX)&-!qR{XvU1!tAuRIGTsmz)ItE+3wM!8xm-hUd1 zZwO9fDeQrx267SxrX^@vX`vFe@(S*hwl#?y6hV5`H5+HDF)8?iK)PM9!D&K+-e)b) zLO8$S8(@%eZC3K2rCM$sr~cT?Rvw!@%&qGl)QMLjVDRzEa71D8Xqao#U49-*xc?c{ zl)^&c%Zy=3LYs7=UwhGfqJQ&C+!9y*+IiC57n=DBg4AJn0;#wM{9c{;3s}9my5buJ ztd2E#eDTlKQA2Vj*`nm`ri|ZHrAhMgt=q#CJu@ zJxAFQODkk_X!q}&rI~hOV&$d{o~D?X!KgETb>*BZc%j0|sVzcDB!vxb;b7%D4#`bY zU9o$W&n)d)Y&NgJf}2xe(VOwAxEAFV1nS!=_{(l%CIFJu6mkvnAh%(D$9-%%w9@x* zamo?sh;$W`?Lj3NwJ;`;2|L(v-Tf=eU6O}zj^Evj`$FlyC%H*Qz|q{q zAw3-DK`JDu@3C8pA#@N0T`1H@c14JE87)8Up~$G0*G`=FY2L2qkB6_8SLQVUzV@q3 zKINH9Hf6nmweA3mdL8$?wsDgJe(}q$0Ek3J7z|Rr^&x+rjXDmmnUfza z*qZ}TM=JcaLr#g#U=U(d;~DVR`tuU%d3EJmZ4y*8^`q?t+=>p6BdLAT=OzB}@%A}m zx6L!^w=wo$vky?XR;2W+fw@JsAo;K#;2)ljzzv!3A5U+SHV-{7iSfx-K2E*4BiG>D zit>_oLapp*r(}5=eEN|5bkfuJE^1z@sv@5{p2&R)V;rVnuxj*3pbB z*c?e?1-h?A*b%o7_XC+rXRmQ)eFl*HCy*aUfxr>6V6Z8pQH(eI8~y=+KWts4XN%;Q=86Tz8?)w$u{HR>*d|XVjQD#q zu~uc*XIi!3fgJ2Mb)gWxx$0}b`%RsDqMnkaqkD&3zY{nv2D?agS0L-ZuyiZ;-AsXo zld;~I)F}M3;wW5s-4Aw9K;)Xzz{Iu7q~ul`laR2)aemPq`l)r(l0D8oc+TfWzOYB_ z&?b8Z>nlhh=O#B#WGXCjnNV>+X3mmW8l$roK4b5n8@3FTbxL72O6i;uE?*8gwy{7; z@+Ue(vEhA|beHwf7w4f-yqjmwo}z7AJG+;9w^{DXa-k(`1C4<-n;ggS-58T_mfVnA z5=|*-Pjv1)&I6z|mTZ@+6_i7W2F`u-KD!O~v!u$9J`F9D+q@@9Lyf_Nz4-@sn78nY zzDiR|$=g7opY^N%%(Q7`kxkM486YH;JYq@bUv#jDsZS-|8*_vq8qlY(zDi7@S=)vG zNv6-q*)!`AUZC|7j|;U@0jD_Q%vGpI>g$ALIp@&bz-xkMX5aICFhKa z1jG*xJrDnz0fTVZ7|{WGi(ma%6&xvV+AKqFj{@S{Z;-#GpXk=reaEO_A>YX7VXV9; zI8!O`Px9w)oVjmbENHz>PFVkASBiRBz|=iAderk%;nQkifY=AcB!d#{JTFhR40i3>%wB~e3$BQ<;RI+kT3!?Nl z@ZF4O{^wA}XPoaw+&qUA!r(eGHquKP>#E62?i=bKGa9*+f})ApyeGksZze+1K~jsqw!=`WUy6fF;r* zxmSdL9s0BCg4+8C9NP{n`K!eRv#a+R4fPo^mkG;Ojc3j>PbbreU$pg44?npTdR*6p zTyADD&f5W90$s+7)(=q}O~)BPLYh#vhKHBseR}oYdk5g#FJ7d`=>2ySuaDV9^BN{E z3Dfxj=jdbT2)v8Jg3~tLD&58}EPgT$`?;fT&T+6WK~$kU+aF<%H%a7rv4vPr(F2y- zqaX!%yweJ%E_%2TnF0eSON&c|B&#E|F`yMsViz@KLzF3o%pE&@y|Ei?HAwntytS`I zXTG8l#y52q>AY}ffL7o(J-C)1v`*^1R#$kiWG8O5;Om+Fw4Zz+$H?g!Z|7rIeFb>= ze#Q9thWi$LRT_j2(pdmfW1&Ys#fzwbqrzX|MVy`epDZmA?qhgaBF8GNOpzP09)tte zgUfsT3HCdkEj~vyYIfG(c0pqK`C*W1{PhbQ!~Q|6md)B~-uc{#^e%2M7@y#0S?$dt zFl04&3Jh>Ykgfs!ZrS0@jOKMU1#hE;XcPmd4EK+hO#c7&k`X}v+e^Z=h^5>QxKCI4 z+sS~WPoK{t2I?@L5_Mvm#q?)!*!9N-UAq>(6&gD2v$w9!a#h}PXga~IR{AoIt7XbI zYJpBZfpp#xh{AdWf!1y|?}uoch0NXXE*uv-Jxgu1;1ofOrIW-{esgSbs#T}rajcQm zSorX&RtmAjekfLFxz-nY&;w2JRM9S@YH^8bGQ`G9t!Ei3keua3f(tBYI<27OY_*ZE zB;viQ=|~HhK_=gi9YgDm!YS^Y)~Eh?-I*fFAPqVg%!ni1U&maXn*v{ zk=Oq;v)}Do{9kY~Q0DY8C%jAS+FKvR8H5XVMLzz3o0XhcWkZdA zohI5ZHL;BnQT)!%f=y^)f93oGxZ8KYLB-p4t`aUV5GYhfLp1gK?QMyXqYQKC!Y^5= zG=9h@hJB&nm5BjadcT+{2_h~hCJh+|kkiq=3c!*1tO?#!PIHydFkD9SYSBx}9{e5O z4;>wENdyB{*7( z{?mI>qYh4N(#J-6$)X>6iNdaxxR@0j=oALjfLr73MPNk8SOly`rvt+E6ZK}Fqm^@g zj~?xQou1#H551b%yEr(w>he`huCwO|r4cfa!R<2>tXOXAGmKzEG!R8tMz(`k{-26- zu?PxozE4%m^B0>)a{w1=$XDR_)UW4;Zd&s+^A$=vyZ0iurC?RIb&G~spvmK5#@V8* z?MjF61VD+Op7}zZRn1f_9XeM5%GaHNGkf>(1~RD{i$yv1opFaU?8UvVHuP1}h*p6| z2?+Bs`1ps*oVnBc*V5~HJGbP--ObByl9b1&jS6G@1y+vX0<~;Qc;OSuFT)h_tH(yb z^XFr!f=Y!@jlv=@KB4(|(n){5l<_!xiHc~Ip;Sp)L7Lwljt2CfGF!gr=@$GZ=0^pS zqW7ANN?K@)A3iD`G-p25P|u%2LLMNKF#%_*Fet3m4S6FEPli6akxTkSqTYCB$QFXC zk~AeBxcSs!MtpIJgB{;YhM)88{p==O7;16uTPeGY$dB8GL|+E4mG3o_l{ArAEzc23 znfBK$)^789?MO1nRd5|vFqtJ9^{o_9$IPlfV+}F^{yUh!Em6Y=6 zh5t>M_beXt!tr%s)ibOVXB=!`F=IzWTyQR&7eAXrXEli$`)|hlWQBab2`#PS0=anj z*!LgOQc8PpEJ8MfJPbd*EBB&9y`pxd_dC$v3>*cVnV?V zR$Ff<+%bWy>*KLqUW!42?Um<>tY@WEA?Z@2x^bj6iW)|9n*8utQ zdi_weseHdJyTHFdD5qx$9>BFwx@wgQ*x7kGdU`uL*}B_0*|DQvZe^uOgU>pLNw6z@ z0*YWBnc52(zkPQIb8;0R`1{WDHna13@SnuZA!N;s9C*Tr9YcxlnVhG$B%y@WReVCAhl;cRhM)lDRvlGM-}1KxvfLegfiFQDiWQW{*k_gV0%Vaq)WhI8}3(>Kh&7o z5*vdEH^PMy=N{gWL+NYXFVeNH2KE(&myIyGU*&cu+J={FLF5egHrX)H%$Cu;>W`2| zcJ&E(0n+>$E(a&rruR8zBJrTiIBd~KPOJT&0vfGRO8K4Y7Jg$jL@7@PPewh4veizh%b1o`H9c1TEMZX4=OPdZ63wx$%l0O2r|-}{X-TTl~2CO zUH=1PLD_G9U~DcmH=lUC_QRldtC4&{Pb2Rm!NCSq9mVj@dd6f&>2in4v#ecxmjAM@ z;?J7J3K<*-#x8((o&Jp4Mr}#E=SwP2zOA!-dU*`ohcClcQXJoUr*Kw?4_Y1A)hBV$ zg+kZd9NtR>*fdA663!t?yBg=9u3Yb|zt%ym3XilyN0c8oP7YU?)Yy`h;Q~RbiZrnJ zlUQ>7(}#&az~I>zWa>}^|82HaL*r%hq$q!schw_z zaf~a>vm=)d3Hs*_4@Q*vQBkn|lsh$)@~4AZ3AT$7eMuVr!B<+<@-N&GeGk?G39x}w z1k|4e-dD!IM4mi55i~}U8Jh}0jNv@A%K@D~gsHs|MB;wV$=E0KBJ6)4?jT+8H(WrP zb7&s~BPs^x_rLZ!Jb4l`W8hEx%ZW?th=SKx!uR( zp;NjxRP4ewH=AjEiW;@HhLqn-Ko@x$v>ZTLZmjOkAuO~6r+GjrpZIVlk$-0 zR9Kqu5m7aN+YJsC7yo6OhD0gPdSOy***rDzUmd{OXbV3K5$sw&uiD9*lTp1%;0ar^m=%i)rl&Z*4rrm3ZR6?2F{XOO>2aTfM%DDQ8X^Ig5>mn>e4 zfgerYn$di0q;W0L8e!ACRKpf(gYSn+=)*zK&6A7S5>`D@;JyXw5M)RuIOirF_HSb3 zpyQjfV-4G5$Z)b?#T%|lZpJDnn*)!R93fO#-9^kQK0UwVlt?eSM#wXr5YB2vwh0+c zu4#RRkZgC#87kkgb}BCsyJ|S)+uj+;Q`0A4?}696{Z5BeHsG>^&8v~cJ{O-8EI3toJ95+v0Z5eehD{t{o82uCA41eIPy#5nkd>?7_vh=2 zYt^3cDRKqah;s3iPmz6p`h*>%r`}P(3$^*0ZO}w9R|PvBZ$H60lB+dUJ$kjHy;KYy5Lf`L0&n)tvahsXR+t(C8>CCGhbHZQA z)0`V`bGzh(lO)>`kXT;KNe^)Sk-nLvr|wky-yG!sM=K*>%j==^W$St%Ypduh=qspb z=*H74OuVaWCt#Zbsy-SDuJ58|ORd*Q{;)vV^JKIJ7(uOoI}7!eeR#IvZlCS@O`qEi}mYsd3S50_(2NI>|f zX$F5!jk3l?PeG{I=2ehn#t_NbE)5m!Jv_hsVjus1l_~_a4{0|-w1Z347)IEsas3hn zmltc)SK*-EOf!l($dkh81BWrEGEdL1LcHCSK=vxaHrrRU#I%k|UvAClW}S6K9LCr$ zVNitqM%wmFN6{$(vaif$Rvf7aTv>=%S7%L1(ILeNuN}N3SF}?Tn6hD=1b3~ zM!=q2LL@dakEmK9ay&zk*Jp9>)`X*gnuRC%N)ot9{f^4#joa(u>n{ir()(FC!O}^y zrQnQBOOHOS@(uL%G^2hMP6=IuMj0(Laj39ooopuh&j@+bp%N&Q*}*@@9i??_5L@BM zS-sJ+g92MR4V>(m2btUwnDnt6zaeo9Q2KLOXHwJrPzwrqzR}mt*3QmU4M1Gn%Pw~X zAj^Z;{oQ7$q;`&UCK;y{WijgcN%j=EnXBHk&cRGu5l0jWk41#VSo5!)`t$8=KL1%U zK~se2{Q;uoT3P@50G!0BIeM@ptkTu@vtk|aw2gOs2pE{#o@@Ht8Gd*@^cyiG9XA}5 z3~fiEtG_|P>-?^^IzTd{2y^{uFr@;nSp6e)ucHC35+y*~+y!yfoLYZru@a-R&0RX^ zS#ws01J~2pX$^a^Hc{x)8-S37Pr+Z(!muVbEz}L?h)d>VYtnjOQudI=dL0o;jdkh> z8F<3>JoC7y3lP36h`3l7G>hsR_`WGu*8q5Zg#GXKj)+BQ%Gv96;y~|;1FI(}uTy$+ z>OT?cP@=dH@mnHps0NxL8X~Q2i~Kh)TKb?BkKuNmX2v@P`3AeaMH8pYyE64;PI#Su zw`6H;eg!Z?YR%c7q1LvM&Hm2!vu!rrj~(JBPw?6eQquwU_@N$n7Z$p2`~lBbEUS0O z9iw|T{kl%eJb<4@$RA|m)zk){1903~`vOKe%j>_Q^f!o~{f3fkCk;g1*!dC|e+oa; z;IZwej*8~(p?ZB=0yCO)z-AwE&m)ywf|rFxCMFD;SJ5KG~`7^<`zls_Ae@L%JHMefhN(}QR9tA1{Xh%XNpfPn$S8;`G_0*kdTecP+J76azxE~@CG zC0FbMg;lU{tMA~*{>fKvs0M&KkB5$x$As9{X5@o&Ob574p$%d&Udi$;cVxz!>437I z&r@lrU7}Dy#3iR=D$l&zq*LZLC3#9|kd7wF5ovMXH||FxV{5Hgz=JZQ8Sck33tWO- z9hxAL(=AL0XEe1l@8OSLE_|^Sv2Ul*OBe@MS_#*6PMy^D>wG*HSX^NtrjJ5Bd~ZSp z!=HJY!&+N)GqRocru$n8mn#C;xh3l$8d_q$n->P>M`8@!$U{N|6TrY_KFb8DWk^xN08`GP zmISZFIxW}KDUHT6c(q+6j6)aX>Jv?$W{ETfl|cSJvUDyK)4(rn;!-fDE#TUKTGnJ) z#)jY4kExS}s9uI!Mt!$j%uncEX-h3>3YFv2fwPmFzF$yEnQPDIxXW@nb~uw(f|FP< z;^8CI)zw9mLuXa+50(zxAfI0MbmI%3+ zM|O?|hx6N|iAiOYygE`w139Zcax&!~!g7?P&RQn3T^0l@oo$nq3H++UHjpshRK!9! zYoHu1c0u3^qnCjvH4Rr0Qn)~1TQrvj%pB`pKo3{j*zsBIgAv+LN(B46G-4F10hMw|#@ zMNQi9Y&UyPiOFX11V2Cj8$X0xe>B5N9(cdQx=#o^gW5f`)s9=^|oo3ErodVRwtL<+E;S zpyn38g7NHc5;H+1cfylDM>)RGECUb_38d=|IPbEEA>z30~i zsN#0|hw#BD?pMYAM!IPTkky+s=YHh>H*-3@^AE@Y8oabNtgwc#YtExBDlcmi+!g_CJG$+w@-ozx(8 zqIuxu*}&<((eLHv?ekpG{T(M(pD_iP`||_3n!D_AS`@heanFb^Fb{ogUavd=j{DC% zfTDS5fGVEF*`$E$*D~+qP}nHafPx*jC53ZRd+^+vyk`+jegDKIhz@ zOSNj$n1yG~S@l*!MIp96+;q+S2px5L(alC%XPqbReSpdcrq^^4^0Rj}n)~>3B%Ip` zPCr&OhZ;JX{j!Y?ELh&=IDeh9vOg+#J7y#NUXtZA8VQ!e2jC(Gt%y%E7bV!7<*K_; z76t#zf!=(}Rd*5&*vrm-dwZ*{g&5qi_Od$T4uaR}y=Lc*AtT92@WLc6@l;to5r^8u zWz-~VJP$bID&W@sV@*yi1r15-K5Mm4>c4mG93c!H*+2BeA1Z3{TC$c-sh8mq7Vqw_xo5J_6_1| z6kGP&ens-nfk3C>jtGmvZQlH@A>!0VSP+d>%bCF&da&~{I*%u65ENKPlS|AE-34kN ztfqgsPHs$8LnD>v7luwK&Gk$yMpVV}?3XdrtI&2E`-txksQc?E1QqAb#K!Rgf5O~6 zM#xP_n;tXJ!ZjLb8w}4MT=ZA`v6ZQeZBsiA%vmp_VkTCRaExbgX$G>y$o+&Mi0>>j zbg0qkGKVs*+}YfnCcY{>q@n=xpSt=xa1C&{sP67!62A;`*{@riIkMOYFXCDfC4&sG zmFRH9=m9+0!!XAKSkN8X+5&rsomV~JKMCd`iLModd2kATq`HO2+Gx5} zacyj^y?(8DyzcbRpbH^B=l`Kbg;oRWyatJ26cH(a*pl`;CZ4X> zf_Px)N|Qx+G<3NBGbd~7X<&~{w5dyH?edYtC0K+t)=lUsBTA+wdU@`w1V!b!<#lsA z!=tOxH?gJfHFK~3fsg@Hs(RW+xk0>lXj1LgItFXTi33HOJW7%bWAp-k7>)x4_&YsK z#z2mEO>B>RzcpzZ$p5SbJC4Qf-Zae1EAaAizkB;mpl*loFAFy-_x_)5mR`4$-*V~p zzgg|-QJQ;%91?NKs-uF*P-UfLnlP;JdQb@ykk=^DKeP6T&8q*6q#(e|=yNyZf6WSEA)+2<`Dd+hd4cmBNNN-v*a`1WIt;|**q=sS=k1%Pz2PTC%))H7Uys6Q^Mj9zdXFjK2K zt{sV$d`pz-h`*N#DomtiC6Cb`HYyioEs~tHoxV>L8UdyLp9qFnp|y6IsHilZy8{T2 z3JkG*XP0}2lb!DOwFTFX2eJs_BBuFxEiq#o`lz!giGl1?8(-QpRreC`@7kZ=+(n|G zGSZ?WXZaUhRS&~iP3!z)@a^fdfB^ey_XxCT`-Dl>@rPw_Fzp@6UE=0?_7ak`ROs|T zzf}>5KM5ykA4&~(61w_S9R{VKaB%UE13?It$bEme@kn)(`5~!gy1BeQ2YeAe`t3$l z2b7gSI+0+4Sm|h+jM8?oj`<38j6q47IORQw;`#1T7D0l4$waqG z0&NGSb7(bJ5_w$L{Pqixz?%BCv5oK#+7VS3iCYnj@TGuQqNFOb3c^3-?EtZ^27`_sf-8NjixFz-7DJ~$QX|xs zsf8h~i`MT4xh=*l6Ya|TR#*s#yV z!*yi!hdNi@(t?l3(rk=tn&^yA3|)n!$k6wP#pCdF2diwSE=?%=T1>gHUMA zc3f1tj$OMd6L2&)pLJ<^Uq+4bp1Lg(>7h5&&?yTdWt@L3>%Mwsu8V|*@1q?^wqP5@ za6F~2E1V&qJz%myuQbhmgq7z%tEw4j;G!-o8$nBRM%)jk1jp<}0C4ZOSNa-kfWZM0 zwVO}F9sEhNoW*43e5}KDr)|Q z?j=t$&1~00(#9W45BHznoj*^g`9Uk6kE!Oh=3%yOuEn1Qf+S0l`8e6`C?J5kO5elJ zHzdSF7K_D`#altfbKxQOwnZHR;>)eSSZ`$PpWcW5hkp;8=P{j|R@Z$6zL8W!dtZpl zdvg=5sl(*>yw;+I9(PB1imQjS_P=$pA4{p=;yyQZ?cl&=(S7VYDmV99_b~8YgfTEr!<| zJ7Zuqo?R)xbu_|TnTLO&b4!hwqJt*}P4DW|uZx>g(p>#jU;U7#`H%SdgDq}XbMj{c zibPEtX2%F)NR1oGBlhKX@7`m<>eQJo<&kg0uY1qbqne*L^gVjY5^vj`TZ@I)3M{bA ztbaZ{)elA90wJ!?Hq(wT&Z}4NddPBBA;`R|%zuPRZ3Cmw-Rw@r_6f#*h(WoCW8jV) z0tYy>Y%-4J5|vO4FyShbnu8q|tY+d|rfLULD5r`8$fU(NS+qK`u5k{{DDZEo90Jc% zToecID^N2p*7}DVj0ekpH*DB$*b1AL>ZH75BmM@62D7?$;d7g?u#SV7^w&Zc*u;00 zncY|4`gHsq&T13W|C$&NaLktt&$!m;X6Ew<)Qmx?)NJp!Ezss^ddbp5u<7Z0Bn_v8 z_FNnYp_?f}1}(Meh!taL-VEqv^Kv2ll5FQx5bi)OZ^v zw}#~G;OOk@2=$l(@91`w=k?)+kt&dztD}R~^Lkj~leTEz-&*)28!sIfjcXymM;--< z{h}|pc`13_n5ifRDzDeE)J@N?#9&Z&oI-}7wRkaXw1mbbq8nqzDL0GThHg=87}8Gi zm+ej__B?-8?l^d1+sqv#b!GLR-;s#1qa*IQoERhjuojcG=Tw^{;77=c%8yvzr2Lbw7rJf$dZ@;CXzJBU3vupZe$PBUw zg&t;U)Z}hkgE%78!?hpux$Q^}Ew~VPPrV-o)*jcH>&1$C8xgp9d|jo?;~R`bZ=TKE zEJ+>{FHqQDu5qTRdASKxxVN4*A=6k+$jNz8_1L=^*@*Il0x_G$2}Z6O$*9>ef}2a+ zbxj7WY@#iHSB|pMO@1tK0*CJ6eN0BIeq<7Y8}DCN!mA-vQ?2lGIh&Al8!}YC3Eyr1 zfbbkxD36)}X>mb6)5Yx0R{5=M37i$=7?jHxUt=p?saD$_w07-GCZU`Gg{H|`#?VN; zx8l)S$dCB5^M$tdFn)e{e*Dw7DbS$JH`w*T&y~nT3++=KkQ$%qd$D}PpeMW|o&S^& zrsWSFCbxPw1aUn+4bs~l?JB;GDqkCyy(SkMTSO|kX}^EXFu1ezCqB~%tm)+Ng4Jc9 z<=UN~iaRopMBn3wHf$xyCp4QkeVI8Voqgg>T%}(ga1lJy?;6*ndntIk|Ib+{A9oxY zoTbCZ-x}Q2f~8ukMH~gzGc{zqJZo<@ETcON_c8!m`DnJS0vW}@9JD+sL+l_L11$xN zaK6!Zc*bk=3M*y`iAsL$-|eHXZ|X$Ry+Kc9785Ky_&1?B5%rkChLC}^;m_v(mdE78 zBx{Jd%&V~mM9Vhf4x}{@FE@{qbcLYmF8>hzqH|6r0vwyNf0~A^YuTYwKoqOBkqPns z63{RXrsA)}aGGRQIN>KZO(3yyca{i+A)x?bmdpe42Q=%7mc$1=M?0!?eN}`^-Nb1v zFBs5N(sDk6lNxnvv%JR3euuE-8nPmb%1=^{6B{{a#YRd`f8eI#7|SgFNyVv5YrrAK zg33sL5nRVv6Dif(<+%+Py~O?7tq-5d0schA()%zH{TOaV3g`h9TM=5_h9u$n_0KLaeUj0hLkLQq~}7L$W70n z^S6Vn+H3!rB{e$_&c`(uA&>CbLpXLX;I-!mM>~+Yo{KHvFL5}i@a5v+TG!y@;p(8x zlO?@x&NlEO_plBw{odOV#7!w{zeN*`&iPbe*IjqrBOHgB8w)F>mob= zFGoN0)9HnNd8D8c*@6wZC4cdu`%=h0T#ppnZz;RtLnj3B=Mea#P?gGLG5MvXZAaVO z1_g03vYC=;Dx}!AwE1W2C`FB%wr7X7#~54=Rdt85&t-HCouiythp8J9vl;a^fNwau4xYY4NZ=X6>H#Q58~NE^LSAcqkPBfo9=92 zZzKlihPWaPL2}RQ&K!Iq4lhgmFKpze)7%K`iRR3|9W(l!@7-;yuG-XY-f~|^?A?s3 ztEvf0KVeN8=JcbKGZbshSoVtlrHUyRemDzh36?D)o?qFd>=%p8WPQ~(H|SAKk7 zXMO<_tb5RwDWvS(8rvv4C2}6U=cjWO(u0YEyx=NHN60Q8>fZ@t$+M)-7;+W?LQrfm zR$2&K6^jiw z<}VJ7i0q1AXGw}D7)>}H=zWQ|#6)*QZL|)SZc+{DT02n(#<9oLY^Ry%-gMsC@CzR< z;bs^KJ!H@t68s$MlgjZHW+sM(88?O4M7$1nEFa;!sdm%Y&K6|u!ZJr%RBKad@{EGY z6L6!sKRQ&tTg&B%uKB_uVnILl_|Vk6^49E%{#S-dO-(D%wi`_*!2ifmB4@|?&bj&G z^o!O{Z_sk5G`j?;ti@vMI?;Cy1#Ku26>bm+$k!RYk!NNy3WLo;w|DPig139lY5^_uRYc!U6hyXQVsetjR`Lr zkVIk6A7gJ3EXEOI!HdECPsf-wwmonD+@^KRoKS_@pi>)~9$rDFPh7N5*)`BSJDC3u z&`J_9$0(!sFqE0GbJgk1h+pgEy|7K$())V5Jzao6MnM%y9w36NTc~vtLSlFY609Dm z=Rf`-_TU;+iTS&X_&6L!z|5Hx(CuJdy;;*Iy#p|!k3adK$~y8io$U2}7eprR^b%Hi z?vQxt^Mx?rvp>sQtRd;H|vRu&3wI zbt8dDZ*CV`cU{+cjEi74cA~9;cM+PZXIQ+hf{2d?)O-nD;-m_B3DtNePP`R;4DMn; zTa$x!i|^XzU4ICYpP9Xs=*tf;6B7WfV5dCt7p=`q~Z_4Nz{ z8rpn6K#u+5$?Z_~z6v+GMtt?9oq8%$!^l$sUnvB%{Kxu~OC*YtbtUP{9+k1X%JRbA}riq4!EVB28 zn7)`vitEH(Mjh#1FK=9F=u-xRM@#+eJ7#5^rX1!zV{?7&eERh&@G9VU1FK?Nt2Vc&|UQ6Bb^rZByMHE&a92 zaVY+f{#$~G6nfc+R87hIqvva*7?!#A!|5scQ^av^`g&$l{cGdF^I>Mw?`!=P{Idch zh#DJxSKeWC2b5@IgIV~{Et)co$@ls50EP#&w(qMIo3#nhG$#Q{@WJ8W?pon2AxCiMHFB83|1dCHKyb=b|dvzF*pK zZk67>4AQK$ScnMZk{@H>iDl9*UZrh2#DH?S;Mm*BFg<0nxw8%T;T9r41@f<%DaXJX4We znes`BZhlefE{K2&z32*+DZTv(<~uWF0p7SVbOwCAgEQYc5@ai? z=cJozWM?ga<$aG*sT=6I@AEj=bhd~RwO(qAIf|%feQ&1Q@*OnGnUJz%ojbjPLG=CS zWg7*K!kvStw5x&ckJW%(spsI8hDvJ;EWV5?WCxWWLi-y8v>&N}5oCxdwKd8~UeT)b z(?&g9rd3D)*$r__5JggG=-%FbEi%LM@X28jQ!yIaJN-$`Sm6t7;)Sg5&Qr;VW8#WO zVi)F0BHH${BBlbRlh9EOnx7$+g?43{fD2E?en${^qBWl#N?}-*|Q@XBsEl> zqV{L6(BsRH@~OdpinwyUd+Pb>I`Vybr+nP^T_@A$-EXU4E8qlc>mGUQ)R5*j+l(5~ z9X58nj(*d^XlRX0FVKCO@ckYF5Q&f7Q&K8wB0HE23VPMMO>Bkwts5U)&NuG)4gXqh z#?>zudkjGP$1a|&x4?iKZMk$6YjrSTbj_Mt%r>5JM(GdliL8@)^>wK58${6a?)UR9 zca`(qH&?KuN@5jVH*l8p>8UTt)gvyCRwsY&L{`L_f zsOjW@gjk7)R-9k1vCM)bnZk39UQC!~Qy;5ohAdY{Z8u}>cvEvsO!%&zX}QOSfEYr_ z3NFyIt&CY+J>LRBYQ>N_?3G`Th~P);taF6+e=n??)&V365i3#(&J3&)ft#EDeCgFu zDXIOe2EC_+YEg*~3!p0a&)zIS!MzH<+;K7r`$qnq7Mi-nV~{uAD+L^k|D+M0SXKK- zjc)6#R=pVenE5*f%pYzeTgEIY$k|K$d>NbDIT*X4nN41k=x$|t5w%j@1JGsFF4x4e zFD@|HmE!!HCH5Jn4@e|*3ip}W#E-Xe^UF2Up#h6damvzQo~e38;2|^D@Smg7rNJ03 zFMG7`2BEUHZJH^s&k1fr<1|}c$bv4(n{%WWwVDPJA3r42QCIk4SN?#;26~nS4|{GL zGzMo{3=66}6qL0N)502Fc)fMa#7^uL<;_vo11Ex$jsgqtIkc8R&mW!`0TcXZw<>9Q zizxj8n$i8Mi)PHd?S;u+Ow^ryp2u?)evfCkRZS9=MBb3FYrkTDPnh>K3u&`yExFY~ zsIPl|3MqEwXhCv7Uz!W6f#)|hQ{a(=VM|nI>}Qz=NnLCE8!TYBFyL#?Xd<*A7wIwTN3tq#7vbvhByXVFM*WOoZm!{K85j^JSq0~ijs?+*1SVXn^R=IOBV+M@qhgQP*^c=27A z|8~ey`K;g9Ir3MqL9gV%_02{Im&@iZWB<&KeA#(hUHj4c^d~yo49yxGwsg?PO_9ns zKd8$h+c4i$ftjW-LA4&(ZUPi@W^06y7^Ny92Mw<{*jcf&imoi*BJN=$KlKL4Tt>ig zLM>;YtYyrPJ@bo?%U>E-8{$0=@wsx<)BK@o+H%v@-m4ZN?Uv!0CC?f;OA9&Kn>2@Vz2|6p_sS_ak$p6 z%-9ZQBGUDy^M$|Iw8LgqtQfHe1FS<$ASyzqh{;AO3S;8RPJL?<2bw`jsg1b*Qx55Po7=)r|TbopnM@;c!6bS$8go8 z6$_})NU;JWqWV$jPd^q%4pvOWR!Z0oqkYG8i@XciEMmS7U2f5Nh*r1@Sghq{pTOHZ zJnjeQeE=U0_VX?H)?f6~@Hq!sn54y~wo7>!vj{70d}j^q{i!Z}^4n}|C8^@yO79@i zTS;x7y+9;&sH+xfz27r;sKtQC)-CWn&dxw|5FtDHv-2A%Xb0c1E)b8Lx1D_YBT#zp z`6hXGL+{?sODAfIuf6<=5!zOk8R>*}7K&-hXAF4F9Ui<4G!Up6Q zRG3)BM&-4`U!rTk$Wp0lpe|2S>Cu&!)#WYB3qMMaEQ0WrY_}j+jj=J49znrzsz}(} z&X|Nz=0?*7sR^Cb94+h zlU^a-odmgFg|86}EO1vOT99$2T=mgz4?O*Aw&zj`;G6A`2-|a=|!^f?ydv zqY&B}Cf2P2rINy&HUo0noj#VZNP4L6EP!%9xmHQNR~v%(#{aF%2^G)2WRcN$zY`=> z>FNqc2yMe zy+a}wv_N7Hxj=n{83pN?8iZ9r?$mgNcLL^IJEUwL13r_IZg^_E7Yy#J%>g$FV<%aI z%A7v3CBr<9VmuRGnkKgGuAV|2fXJ^Tc&r5^sldu)nm>hbE7$I`diA5jjB`a zUhwd3h63JSw?h$knQ0Yz{Ubg01RY>4XzG%l5$P zf!3(W$r0Ug#F;S4kMPByV~9Le0p}U^+$HQxW9mY(fd)o)UiDiGXIr@)Db5Fi+|Eq7!I5ZcO85`PVdIxbDQ z%an1Ourax2_)|$?DZ>=CyM)Z!TT11&MtnU6IDtkv&G+z3 znSoqxpTSqYaHcf6(rcmT&}E~k`?!mP3)w!1ui&f=J-1+BO^UQ2o(j@ay};k^KpPfR zG(UNF&Nu+(VqFJz?n~vqb<9=!-E}2=_>^??M1K<`X~pDGXbJ5YFI0bPE_f_I1drue zwq)jI_3;MmO(J1f#0QE#i)eN_TF3muw);V%ZNN-vD>{t=l(UMKb8RrPMt|qd z4LN~FrMELM=07q)tcz;E;(2cPc}VfP%M z^0HIMSDv$bS_@jCbGYc#>^Zm8VF5@G;=Y}D49X$ z4JHeEAz}b&!p(fd?nz#pJsSd8?~OV0Ecodcj2q%Onq0P4SU?iYEL~-TWwI*Wcp#Y4 z@kgb!dc@*xo~crmSb_&JC`ZKS{o+|Nn&FD(7RXgSGk%D_k|py0TP=A&EN8{x!)vB1 zM)W|*D_Cupm!6V^;>DgjJ_);cL@g*isq1Uo6+jUe)M~7@s1~JT=^z~|qd7^7#~h|3 z7M_dWa^P?Cq0gVK8zUsR1j~xYo3j=cP0XFDK>@+Gi*HC-F>bOe#zJ*RNgs!d3=;*( zjIVbojic(KoG=+80p*O+m7;3PRTw2J4WKtKZmrPlWxs4bl8niq=;pWa`$E zgp~s8`HD8uT8)S7`>aND0ki!oK2`?-59JWD5d#J2$ZJoRo*jv`CYdnYlMM_XF0sKoU<+%$gK$diPPj4@b;_4@=O0T9f9#P!ik z=R&Xp`Vd?R(bcvCur1@zobi;=l1Zk}2h1dQ=YSj)JV!NT3STzp;^MAj0Ez={eK457DiRLYmonfu2@E>L%3SMSJ#NT zORA*{JM4ycJwQ6H;j|FQZhmNIJQFin9K5j0vda&xMoyE0Rj=KVUKF3@UP<>6#ytB5 z0WivY(S4E;&*lh-<57&fp+>XEC)e``F)OZri%aaG8A`{Z)BlaqsRBk{#4j7{`rKqd zLS7#-j0}4(EV4DPILgeaQ-h=`j#VqCN$BS#C@hxys>xJsWx8y;DuLGY-aJ{Be#A)6 zSMsCe@~2HEL#Lz1dR=rYFH(fv;OERj@>pskR$-CtRimIMmhSA(S!k%FH0ZV3boA&Z zLm=)4Yc1u@Jl)@y74=3i{xC!EAj0tGLcXkGT{+r+9-Jc_i6B+zSD#wyYtIbB&p9@t zbyg;^6tq%tvS7l%Z`{kKq6?6C-kun|J-E45b(&_$y0)WgZS37O2@a_Fam1`{vOhX{ zUQ1er;H$m-Hdp${KZE21w!urYn?2>gtu-#Akn*Ua>ZCq#1Bd4g)C_rj2QNu%ES9wD zcsx;Bb9E)96ruI51RMXT4N#r=w#MQNG`-LRB$mRm(K@w3bSPcLl;=uta@zw$o>AdDXRHw{YQn0kCwl zF`JMJq!{~-#9>+2MIJkug}Jg!MLKOj5xW?0KTQ;#bP?(`wH4hoqxI;`yW|z90OR(Y zJi2}BhfN@IqmW~Bh;CS(F1fjty)7*m(2ea}7}TaPYZHBz7Hn)4+m$GwS##PJ!@Xsv z15s$5+`I*5wYxRqjg40k&6nTg9^hUSH#tqH_&fb!35BB zIo1Z6&Re5c=7nHcwuGpnL9YnYcS%q3k_K57cqsdfWVw$MKdxZzVn6WPvlPSczhuva zL?rOZQ6FEb#;6PPg^(yL}WV<}ZcqwE_U zn9+k@Rap&F%{7IU`%&fp{IX)Czs|n#0J&UeR8gVXMCai#Prb(Dl_(tvu1~n3n-BzX zO)`&MulMZyK|()37LtfoXTJK5-u5&%#|{}os5uvrO=_NWkh^6H^Wrp>)y3(56qX4x z8l+WgIWerVl2Zl86W<{6(tVPlDc57Q+qQc!^LNp!v|~#1*mtiVBO+T9jU(~$XGcp` zwo`S+zV*#+OFbCR+wIZ$ZP(o9Qitp;mE5Sik`AbWdiVQFyH^dWv;5Mu8|cWD2J=GI zol5=$9LP)c%>hHufX%V3Hw1fZ_g*dv*3RItJXCM>#R0>wLAvkz7(1{C7Q$#`^%yXE z5m9a7%_9<{48~UsrwOaW@{0lY-9}H>=hjax2X&2W_Z^hG7E2g9SKXeLDQ!ZK+dOZ~ z##^r;Pa;A=&~o4jvneLs28hC*z3hO?-l({3KwjAkJ?8kX;6b z9$p=&k4JllWWglm-E#&#R~tHZLPRkEHBmqJoY6{{cH}%UTdsp?Q4bni&&N3mnZceVVoK zxYnUZZl3MU;eDDlycqN%e367h!~ih%85*WsX7?LS0J>G2@!r?!j3ZoIe)YCl34T0D zTLbVDsqH@>D~q?l&z<>PhDF*-ra&3OuCQx6$Q#g}#@1?o?fe|0kN7)b*vrS=PUmX2 zzrLd#obA!`hau?(A1!!Di}JNrybJ!kcpNV!Ax5q>eX5X# zy3Mw;?HbIm)LnS6{VihRw)kSm_907+cMpnShMrl--g_`z6-1?(_OoDkx-)1}d(>;{ zdDbGh_&XCqnG;z@nsv_u%K)Y{D>}X_b2i!|f+~^ExnNn=x>UNHT*=!$%y)GEE>N z4|j41D&^KjkvWp7Iq*H}OnW3KvilWI&|B6OJ51p z#vS>KT6fYZw<(0df-h!vb=?{X-f^9ld}iE&+ANU<%?HUNWsDp=^2+*vKU{|p3moX# zwzbL2{HgluyS1N+CB$-nT@16G6SCf;|HP=m85z(cmFzG9R4hN^5DcoWp+5WI7aCKG z+1|o_ri~aEApY%;!sjIm-joXu?MkX2pehLmC;rjLz7BjWm_ZB79tc%TFB+-|3^G|SY0=eyTyVVwT0W&mn&Q=a{~(pCG8-qsOOs(TIB~j zdD(aOvw(zk-?H9XlqoWm0~;nlGNXL8%i65p`2NwuJ3jvS(sAi`qoHt52~oy1L}>wOz(TgqL|Wp@H%RZ73NRv0 zX5$)_tF7Ju;n8T4*MtFxb!qjmz~Hi(#*f-ud%*!*UTsOiPTb&Dnr^f;uTWg!Rx~NM z^g8>fGa5NxCg(JF294njAF9|EG`8o$!~vx4mJ8~PS;*--fCgS6J0f$K^H*NmU_1Er zFq6s~n0|Te&@;k9bET`VeGy_zB~f(v^-QZn>mn{}-1NP&1>XaBa}-xCYH0?%V`N;K zW`(!z_=#%iY;#PX^TAtinS) zVKDb8EKZZ0M4a-C=S^yMlh{WKS}VXEH{5-@^TXSad98Zl9nMcAiZn6N-tY(JkISe% zOgI}0)V`k_cxdka8+piZ)1A^iVQ+^(3%c&RI&CJ0vz6?}7T8voIuchDFN?;85PM#| zF7^_oBt?4;e+>m}Vf!c41vxf!FV#~@nM)@2n@zAk4%HkFQ%s%+dm5FqgKM01grmWj zf%oDu5apu$Pd?q%|I+)X$E3SaFq4vgblgCln+lP!dU&$Xhfk2Uq6HY!os-5VIJ#nP zgL6w@l-MtREv#FwNb^wkf1B3YBJ^bSl8I}qK~C*U^fo_S z&hlis)HPa^c&N|Wo_2>13>~|aUwLo_D&OlXOFvnK78)5UUlPjs9%-siXY&|Pcbzo*dWB| zN)J3z3b1Im*5A4PWAwWOWU1 zUgP?H)IW!e0t~W-XQx{UnHZuYe_XK}|)=Uw*Mk*ctTbaI>m z_VmHj_VFUa!e8C4h za@p&3Cm4D;ckKsnWOrpg=ikF^i;O)uu@+l!QlmD>>YdBUP_(#QB&J5P=%#y2!<|?f zmX{GT?$EBQsePeg?eQmVTAHCNc&JqgkuXqjkiSPrY7lSfbQI8LPD6w1?>g>p4+O1) zo(OjHIjB=nlr1DYwF5<&NBhkUzT%r%X&g*8#k>dH@Lc94ZHRxZ5nrZ~Ep z!PNt~WX!-i+*`UIw}t384F`Wj0))}RRq4ZEl7HweKbnR?xA!y{+km^B^)toC=dB** z;)BiN`uuQczkZv>b-9u}zErbDYNk>B;vE7o4`x2pr zS|c&ed_#=Xgct)=kb-#d>>4RT4vqt>S}oG>pAWDv5|eX(hi$#e@6%}}v?&Ul1fiSS zQ1?&pR*suH8SRPe7@u@E(%14gdGNi$pJu*8r~FJJqK}ZZN-l_va7e}WJynGE?k^$e zw=SDlwj*=v&Bn^lLW*f7$I+^gP zY@XP^@;a+W-_&o{sOOYosZePVF|vQ7pW%ec-&coOgQ4yQmek&T(f9o+jg+$p1BsTg zB->9rwgn%qU=FtBuHxd6cbPm`Y40A|D<8B?o4jJI>r_FkB#0g+xX(vJfQ5zdJDDPQ z@sQngL=RA7dM=M@=uMh3uztUVZ0w&r;}PIGb^ZH&)*d?Z&n023R*0GsM+D@ZV9=Uk z|9|pG`1E~NiXmawrpTQkm*|SmTAG2(qCp(e*B1k`%B`R^LRiH8nPkt+Mjlqxut+;L z$lg4Cu&LW@lp><;nV|o)D1VW)s%n(+Y8%5`k{vy5Z7RQX^|R&UjpxxlD?{lCxzSL1 zBk1`v17Nmj`&tl0zOAYg#B>(DQ!K!aCZ$D(Ca`%M_@6@mDzaOM(B#3c1+;wsJeWC( zW=g0p-7Z|i$8@mW`1b|I_TtcmQZVQYoSRY-7`U#5ni<989#t;$&Sic6?t7lV$v zlnkA1SoZE#`Bjt07od)KlqlT9bF|W<3|ac2!)~^a=4*M0fo|f}?(LX=eZTWB5C_5f zNyH*dAAiQRvIL7zh28L^=1YMn@qHf_S0Tt5(HcgDV};7bAkHht<+Qr~XirCmvlr!z zI1uHgC{5DGBU!>J#Z5`ZG_?RPU5l9r|7!B}*8gtY6G~5^O8n8oOs4MClT~w~_hu~Q z%o8nuV$z4iJ52<7;;SH1j)Q4Z)94aH5W*k~^^`*zbR`Rrwvqmm79%c-Si)QTe{?na zzjT$rxWcFQ=5O2DD$g0ybKK^^scu%=QC{S%--N>Ov`wGuWpdYMM-r?(hm(gpmJ2r1 zPzYsaJdc<+Vt)`uE;?OAOoe^6OBrx`X*9GniwpOkRJTfnbwbJmS#irTHkMxpY)Db= zL;_I)FrXiQo{&r>BNxe-X*1Tq1e6Jfnwxht(amUinxfvY zp21YNg!xtk{itqaD4gv4FcoYi_zqlqOry$$%h?_(YIL?F(!d+eT6=~KK<@JC+*-}M zS~;;Kb$KiD7X*%6qsry#Ym16k`lo$y!C7w`taJ&$t>ZeYBjm52KJ4nC zvGS0EDR&n-rHh}E&<&pl=J}F1)w@) z{;y&l)_6*6!V;tia$J{L{;f1}rfc#1zV9DS`ONPjM(1u`Oapei{s* zC7ME*hFgo1X7@dtAQopI+KhYuNJFIT*Z-l@PHM>f|DltlWmg%f(*L1ToBbFkk~|j< ziPu;$&K;@>xz}+KSIEOaz|zvXK`xOH7v>BK?ZG%MXY*~h&zM?zkaD)z}KN{9d0CH%{adLOQ^4e=NVf^#| zhb2WW=ikCq8CzOq-egJ5*d~@Wo2)k=7Ir^^X+*Z`tc=PAxQzZtvq}uBAfAm;U#te* zyvv>csR@q`z`CFPELk-ms3Q0n=N zr+1imDpZb%usb8X_$a}7TT{;M)E3b+iZ`{X%C4M4taGiPKe#3AC<`reh{5v@5txaI z`%&>lXiZnV2KaQmSm_}}h1@LPL%8~?90>FC2mixMu!sNUr99aiSV!&Mw7kxDK?F?+ zat&zk8Hli$*|^HFaiw8ecmO{-XgsS*gV(Ax5NonyW-l^I)Gc+pxgZ*C8Lly;Yrgf3 zl|0fCxWU=J;>>3$4BG!+TzWJ@--XLu#1F1XR-^3Ge%eRTph|e$=KL=%-7=$rD%+qK z&JeQ-h-Wb&V>ulTFLVidFryby!JTbn!J%{9qDqiIQTAJhfNt~zv#C&OY}zN}rAe9s z$sHTc#ae=qe|M@Z1sE!|EzwNvO3G=HI%fKb>}hA8;mGfJn*K_%+0gj?33^~jNylu* zuw{TIr}bVR;aoVR)RMDnHVyL~Yk`agRX~F9AGDV?2`Q9&0Oj1|W%wzZ*eNahz2(th1QlEt`^pDOps%P|hY>F84@v`vnb?P2PjX6lPD?<8N z?di#vi=b`JIpxjYUH)f<3TGm1Aqt*(4DFe(IPzza*+F~H5?Kc5NIzphCho^sVvJcE zix&4)S;(bkA~to_r%wF4uo!?}_vL}Lf-x}|RM zA1nw8kck_c@Ll7m?lx+FDRGLGHU%tBt&>-?hF{Jw;c(;#_YW&s-415BfAbR9&!9=$ z7?E#Yvh(f!{6_+G*wt_>?#+V()0k5*_=2k_+d7C-z)A>C%;|)WK@xPfC!K;^Kj| z2gxafQE5H>IJ5D$F2+MO3<&|fu#~eP?zNjb630`*12YJ@D9Ynp+{ zp<7t3Fm^}NgqCPNFt zbPM8X&OFsg5iq>uG|k%p_{5if)aINIpg5ccH{BqPR7>DIZeRD#jib8E zuY-K9n#JNXL0e`=7*L|jX{Z=KG}U-FT4Hkd1?cLcFKDNp+qT;cQL%qooZlVf&dyC&RDWBDV%Trh*r)9hgYTVhbBwyl&{!01 zjiuzO8I@CE(xMqPn|$&|&Fezt#XzQ7AmhgxDN_cHkg#^-!S8vxJk^jugHosefg}As z$32bu++^l&IJzZhRZSOXX}_+1w1y6r=z$KnH4|PD3!=+#;;@t14lxNRO@c9gSv)Ic zBoHJI%TwFIOTrLM-=}rJ=W|`2_;!P$1Y7Xg?&9U~l0zx|Ibf!YR^yvMJ{uX&AdHez z(}&J_D8n1iw(EWY{|GBQ`Y*mWD|2vpK z@{e+&EQ@Zplzw?Nqw*s<+Z%eL;0_bK#H6eyR4v-QxC82D?&SNA?K0+1cSyixy_7xh zNp;!!3US{*J(O^G-u3n{xN6rHu=Vwb%K{z!pf>l&-nb9tcY?*cDIGd?wd(wPJ4Wr& zmD^CeYSB6Rfl2+ZdJNFD{pP)t^8T8j9L4)Y9rs1ELE>{oz3vOr>>11Jq-EU|RRll? z2pd>fyGZSo5x>do34Ou~tx}8+i)~G~-xScF_UJvj%yM2X%4M82y6OHL?)c;P$ToH} zMLwaguns!X>HP-h`s8aF^_jkL!rp(!oig=^{#CwajRbn)elV%u0cV}pp;3$KKS0JA{eNUu2p z7YJAMpFA_u)I{4Eh%d@B{T>)+p#(FI{j2wCl8VLN?<{sV`PjnYzl80)u2)HvxAN*WMc|vyucAucVbX^j=&QRIr zGTPBoE}#|oaQDIfRe7-Z;76FWdkL^aO0@O)I03$jzwj?y`weXaUyDBo?R&OwOpSHL z7)50d@ICn3Ha$jqFcCzukzet0%a6_~Dgh4YjwnI7aN=1gb9)>t^M)83&Udo1 zm;m)~M=`E&!x3((;)L%GcI7NG{G`ORV@oJU(=ZY5@`2}Pf4XFppL&pw=!jCfj3NZAT4a>Rv| zL}>OLbv;-Q&1K0iu1$bivV9F&zLj2UHuv5SVh(d%+194h^*RU(Fg7BJQYhF^kzA)_8`J|O=uPB1@xKQwW7g%rq8taXv3X|Zl*n!8 zzfjqC`fA!xC;I!R}uGjC#2@AOp7vo2QUhS0??hSe0Xxd`Y z-|(MoApiG(hra=T>vt%E^qK_Cy|uTD?nq%N10McJY-*seOWN%?Ycm*=PO*<7w`CpY z4b~%i!MSzC3Yp06r3bk-e=?@SJRr#|j4D&f@<*JtKGwEv%AWPk@voJxN%ns~b zt{aFM3~g$U%G;SReBDlh7BmhtI$*qtkUn9Z!j>|>j{|>#kgZQk7JWYC+n6NBK8mPS z*c?h^9X=4RP+$*V$5i+}7sCBxPF>c~V=Ll9uOJx0&3uUwUL!4QlaAWr-eL5m-whcJ z(+Fj~*^I|(bE_>d4W6!)BV8Iio+BM`>TB6nyW7f0tlpBO`Nylf*erzJH;D{YBp;U! zMGn0GZc1!7l8{#Y_k6a1Em&h!7x)uxUqfD}zm@Z&fLn%`H?Kl>!zR+Lu7E2dH5Q1l zF-H!`P0ip0ED4qYeWi257G%+&piiVDx(q^&!A0OZxi1{4kda*#+xn*x+JMUlC?{Xbc8pmiWr5TL4~1Sa8pPO`;BQ?8v%c7I4Y5 zqDVQ}l#5Y|7k%8N*|X}lcKFWYNBz~K)v9uDll-Qg&vM5LwoO&MQ8Kq2kltOYc&%d% zgE$$-L}48Wx`YPAqYvK4lqhsDnp83|b`{yVJm%AGs9+nmkf4h8;#2#dwKMaEcpp>H zc1G1r(sCZW}NswxszUcNK>3>SUQ8a~0!(`I0-)``8F67_IJSuSnKdSd7 zeKI{-^Gdy5p0ZJ+9(E$y=fAMtu7S4IizfwsVhz-xwuMdO^YIPD0#dSw z^R(MUyG{5fDjoox1jF+m$)$|qF*DCZaPV^-FiqWq=hx1u`8}7%6xv_fjUBj8G$zye zdrmR#vL@5hdGvDusba?#f^OZ)!J}UObw&EaKL#S1TW4YFVAuP$*B7Y={tcR$tafHU zxiD3p?PrYr)|<~DZF6_^(!m>9X@S?4a%S~dxo&a8HMz)fa5m9d@A++UL%9BKTJ8CS zv!Wh!ZR^&0vCWWH7@FG)>YsZ2(3CRb9WGj7sJy=6oO)DjWT zk2QcpJ#FUr6#9O@Z4ESI)fU2(YWA-@HpWo7#WXtW?;ebeXJt`2C48y0+|kLYlMr&FAnD_T@~TAZE@js>5Cl$4}aq)!4W=fiVoOhfaL z>-)Xd=AWGM&^FVL{Jt*Ey7n7ob+}^yQGJ%o9edunuG$!wZ%$2eF1FD@n-h3<3*E2X z(d-#c^rWc#fAgK#SpdA?j0c`9-bH2 zsDBr~HL}>F3gv5BE=ndm`*Eor=;2f-|CvH?n_Qfc0MEJGsNY`qvf6S-HLIXe_63`W zA}@oJ=-@8h)>8p4k4!xP+97ql6(TNVC@EPXF#s5=xXDNHj~fqX{D`UUp$YpVgkeE;YzSKu`I{2|r%TJ#b>X zGG1DjBfEq=Qdq9Sk*IG=H~UBYz7k>2Gxy?f6~Flbvn8)oAv?w;m*>rO^rTBZ=d&Zo z={NYE4Gl(_yzg`ZM=IB7Qn5D~Eehel3<>N@h*cBxjM^1aw+C}vwq3oPT0&7YP2^wW z#JzQh2oGaD(gQAe$3P=pIhH&IXs8WU2lmwO(+y#NpL+c9XlPjRvFV>3wU7C0YC;y} z#CO`tzt6E7z0_7l_nn<2|G7@s-h?>PT^-M}b+5eKp`c?+tX$4>BMWNTu5S3V z8L#t~GM9voeWAJ=kTXEDdb%RPH>^}Mugg>Qu0yph4W^^C`8frLvGrD%(qsMJ-~IfU z|INt*pFV4W?K!Hp)=m_3F6GcJORtB|`!Q-n?Q$x+S4fU7QR}v~N-qt2Q zj?NuL+EaF6CP{}%D2^LQ9ijzw1t>H-^LWo{vu4vOXn_YJ)|oBm2zBao3-orsImyTa z6n=#jqL`}Cckij}khG^G3o0Zju!LNZ5kADi#V|NZ5&42+N!(@)>-LAafZ8W$4G`B^ zs}oV0U}qzSAWT)B*tsCrjxVmW_~5E`mS3&wTeKfvs*n^&p2zIlCdW|*;VMVL8bXWKM~n>0(i;Lo7M zRdb%LT>{iY6O@Q~hhxU9xQJ^8M>3{Vqtscu+K(j35KWQzKhE6uXOC(^+5&X^lS9U0rv1v3j1xH~%e-na=tnI~7rz0&yhWUbGCY)4*Q_7O@LW0*sa#~u zYWL@kj7win?7@PEIl=@;A`AP2$;uVy{+i4Q^E(ENQO*T&adQXt6aAC9559aoQsBCP z<(>t$7vh@sggLXFwbyC;WLDlZM~EIOy$CuI%zwL?lIP5!Z1+0>5-u!mZh+7oCsDop zZzT(pk<-|uHx-6zJF{Zrf82Bff777bku?z-J&48D`pEu{N+5GsGLg8AI0yL7f5lK} zlraxw)f7Z0szFSOf<&=Wc?bIzMeZlLx!8*SX}+y#xoEEJ`sl)XIL!zrIGT>};bm17 zDm=_>pymE&Bnisg4wv3<&pMEQE}_WGkG2r)O=BZ)U7OB7O}|Z5%PtlXZSV zh9Lr^Ke&x*gMvFH|4HI;u2{ddYUx_tN|wmfX%#V2Qm9F*&n$|1oowU6FaE=fm|$iK zT1bCd!(CQ1ydu^vlc0CF2EjR_jKLIol-ksbwZ1?Z0ZN{%fK+8j^6Kgn!RKYWR^!*i z$gWQqL%32$R2v>j>vJcX+zc`)yWMd*K*?2$cUmj`HTU!X#vkB=8!o^d#+H?#=G z&4f5L#o@njFMzcR1wpa=r#+2I2Cco(IgM)C&MQ1o6Uy*0Zjjv^x&{Lb9#u`na<7fxIbbK+;lM${Y$2*nvo#0+4AEtL6c?g^m()B`3FnCYsoD)$n1H*mJhqhbL-(QB%@J?;Hw!l%&Sjmmy zIN@@AMHp)|7$x9u5KQkGjqhIX&hqC*2$IV*>*kH%?2fr{fbr=fdq*K2FEIb5>O}^Q znnp3w?*tU#fwj_P2Jen+pS?qNVf)qnBSM{-2^8(C22J4$Wj&xJ!ARs(_2Og+Y^?X9 zr%?{Hh5RuqOPcB-!)1|1d-I*5GR<6q41zCKRZvd)%DWq6-4e?^dYEb`Li00S+(rN5 z%qLwAO0_2biNl4hZ0Wv&gP%of_Xw+t9BaT_6Kx`EWu(nE(n_;8=8~|63vm|=zZj~l*}{d>v~Rz6Jssl_`yjvRTO{p?&9pcNQ<>hfMu-FfS3b3 zB66>k`;WPhkPPxuB$6>X+ryDC`*p|dU)aa_5K<-Aop3SQtSqH~X<@^upe!}L?<#Db zp6fKTQ*owW2pLM!_lL`n-K2TJ6UeJR~stvE*SBjMj_9Q$)nfhZ{`) zMkV9Msy9@wo@fYWR&uH!qOe0usnf0Z^3U{F^YXL`NMDKP!?xT&%#X`l3zD;rjfS_WiLd)_JXg05_^Tleo^8VGvQ47`|HvkxT#R z7wKn6>1K#;D8pzTnTpX~J2_F)-`#!kMst<9%wM96bD|{$!b4vAV!h&D84G;u-hNf} zvt{@bjX_`pV@i7~MRMM2YKrg+?+`6n>xoG)nN}EtJByfD#=2T-o``8e(*{4X#-WBn zooZMU3I6G5S8KwuJP%8*yLS9Bkc%919tHm-&|gp_N}fG7v2aS339k?ujyEr&`Ebm8 zjeebl!C4!mgu&wy1D?65E#`pUS>@j}X0)bM>G{J(AO5=B&yrPArf=OAmT$}_;nX5K zM`i5RI3>h2)Vm`m$&vk$^^Qf=xpvbW-$!11HaS@+noPjb@8+ROizMLhrZ&An$>O@2 z^3Xl%LK*^s$oi@QLth{U8?Ui%^NPwKpMEL`J{@C%aCJwdM9jCps++J8W;J(8zem~Dy7Nz0clR- z1{T93Y=x@g1*7r&eFt+6{2iy{ThgZpS~nk^Zq2TAU=0B9(z{BLu>t}eix3RCA?%rN zIuX~%X2vLyzdu!%Tvc)3a%9`TvXU;LnGQbIyIJ#&b&U8#2VRHbI$&2KA94a?d*3E$r6BznAhi&ERw{yOY6eC#~6yT8N-{Rg}N zTH+BU79ESM<22zUtv;Lk#HSk&(ft@4&ADhL z>^ZgwbZ9z}S&bxZ1Jz>r8r3iyx{~W!6W3-Vv^i%I_d@$coIw% zdxH?L&@BtsHccq^l8C;NpR9nYo;3ze1uhe0rr#c(lXL(lnz-39-Z?ujsJIrw)rArZZPg?Vx_EY>&#?aKMC>y%>1=Gpzx%e#$e zzqsbAb=B)Wk7wx(xaU20Ge*5jyJT-Z8dR*tUS}2B7P&$Hvnp!TN^k@ zXmgOgRK3(5(T~q@*{9Q94u9+Zz}03x6ycS z1Bj&W;AIXXbe2dPZKPY!57aa@p)!|rk)++$v+@)q7iaSmuR?x-EK_jCnZDBL(-nLE z@r0>Xa}Z0@^7A}>^5Q0N=l!^-H0ST~0u;Oq`sFXS@^=fLK3(+Y8`oj4h9XXh$Ho|G z6uFwd1GgNppi?2R&E&?K56LD=h~TFYQ0!W`z*@K$8ko_THFg!~d(2|r#F8vqm?>F? z%YRo{N3SJ>G;Rzmg^`)Moh{;-^(e9!Q6>gm$+c*{2>4rXBLxYLtgo2LRhV12<#3m8 zP}?FudpBG4J(3g0^(lk%b#A0tnjQs;HgW{%@*FPMUaOj|9^d~Kf~LQJc`&cd@!S2F z#Uk+Yd&wS0)jYVp>DlzWyBvJa3dOEFT0N-D@ew4KfN`PzW7&--bzHw~vhe0q-Ran+CN zJf*1EEYJ4d@U}XyXg23!XTKhBhwj`{ONNQ$oiK8L=YCkTT*nH|@1Wy6U>M@;u&-2- zW?t8doWza?hSe#~&qdF;-AgA8lj6E;#M?5ryOKrEw9oddLVx(k!-LmgNk3AjEidKZ z48$_1OLB#2;|xe}8`)bJn7j-`M)psk<$gw5Z_gOTI^bpEN1UBYlNRP-^3qq$iWmxn zDYZa_(?}*J?8q7Zf!R$?>k**5nd$T1aqsB8Do_nAf6V;0^KcXrR>=jH%tBerdgh$& zz?)l)Ee~})f@-}j2%f4IK~c>bx%22&KMWgX-=0f@Q+&t3S2&cNyC#CcoUAkqvAgK= zkP*Bdzd~_T^ChlS@zp7hMX?D&sEcNd5u3K5_aWoP}7jA+rrR(j({^FyOW|^SzkVT69LZTM_ zDeE!e8uc`4e+!T4n?;uVkew*+)xs1Rj;>p*K|?|V3F;spfw0Ss8@!oB=^<5fNxF;d zcoa*wMWu~|C!u2Z9FRw=Hq##!_u+bB>-kjp&OM9?l#riFgZ{(YPO%$+Js~PT+rOAF z|FcfENBRsusEhfl{i{)i>9)=jsd59yKA9@{wjy(u3CDQu8`swce zKo<-%-~1wf_Dz z)$04T`uEN{{Vs|hyBFa1ywlumtF8G{H}{G5c9^H$hYGJEchQo3c13}*m$GfFmBRUfA2r|l( ztTI7e0-t1}|EQKlr9UX0)V!IBk=QkM>b!r(IAfd>Ok(JZSnVIle#W}d;9!=^zov^oZLzH=tFP}CH3d>$=&Bo-TLlUXzesp zyTUccadzS3k20}eH+vlSypqVgIeB*#W1)c%(PUQKi`(mNBwyj^~~i(>KcffcXS=jG?)_x(DD*Yg7ls|7&p683ua{7B0G_~C;^ ziR#8_sJs;TC!3`^N9JUtQJ{124LQ*wD}gD5DOd5)KglI@<-kK03j!bBw*teedEdj& z)7$PSJ(1P$MhB(AU({HAigedviT;G`ON=x73D)P<%IERp3vm7X8?brvQVB$a{HpGS zZ+U_2)ZWzI?Bw=4v$wOof(L+pbrN)WGbbb-GJfH{sN!##-)j(ayl{i?NuH%qKKO9N ziouNEpmTwQI$v4G(sHVodS@;YJ7xj59)G`d`HnK{?uH3_jE6?>P-wA>By#4xnUU=cI32i+X2o7bEW!V45kc< zwGN$2M>Sjc96NW4+nIImMQHxQ4<*i;s8;Et9*)`+h~<$<#pPU{PPi_1FC7YACW~S9NxE3=P9UOI zfd;?UDr zfA|k0gX2Sq?`~MPs@E8o#@DaDDaJEx-*ovQ(cKTyqzioW8wLev!FC1olYkk|jLlb8u08w606e*C0n&MCqhi*C$|wausVsH#I} z&8QC+|JjlMKprKA$5$^2UIBiqHMAVxiR#oUQE0g?w6`@+1;TrBFTbi_5%TP$OiG5O zxaN5m9HS{RkZdu(b%19~idY3TCEss&Y(6H^ktWgEp!gW(yeH{So>=X6ets_xEvC;* zXaEGM1AhL=s-yY}faPR(!+2U8HfOmn=qMF@NMh)lnBKE&N}qrcd#u|9H7G2kQ$gq< zQNBbE_?ge$`MLTg^w@*^p%1O2$rTHju@31DnhEla7@5c{BRbr~ZbGKC)2ON*$6OI*a}5YoC{Q3`9)@ce>JxV6R{V$=IJDO!VyJ+ zs0kZ;;;#;QgaDDEbfvElY)x&`CCpWr?@uSC2~8%sM#rw$(iR=M4A!_4;2}KQx^R-b z&)nGS7eAXGBQQ;k;`Pv@^Z@dhl!>J`iO#wZQNAQWg~K*Vir+4Vk&SFPU{(I%G1XN} zH_D_pB~>(zstzTHmer zUyZMLtQ=aoXhi(U>?9#D03 zS2@E>5*++0o#@{WHW;<)M?_h3?I>_l`u%apd*>5~Z0GaQ<~Fca8{7la)`6cysvz>!vI>9|F8#n*%AWyY{7t zTJmcg&Q!uwhH2?w03!Q_w6rJBnQ9zNhq87(>|o5RT3B7n-iCN<5m%zT*qh}Qq}QCM zc)4~3lGsmANfPbjmxY4y;R6S;q(h-+62jIMPX&PqhBI~hJL?4Ij06i9JuxJvqe6}ni00HbI#tSih|V2rV1+$>EK1!Yh{9m z__&k%!zSkQYN=uHwHxF~+QL>9)r-HEskg-Z#+;_qjsv1N3DmAB2x!M^_jI^zFkph zR4dWx4E@y!6G6QwQf<(l4LVp&uOV8~+nAdF%NsYlWy(zP*MlX~rOzS4g({Bvj^55v z$%N}1nI6gMJvs)f5$ovO)c{nu2H6qY&&T`{&0jcdTrrF7q6FJkiq48BbkJ#yNcuzy zoYc!5jYARVEzgI6Gwe+SC~T2zB;`VnB3Gqtt><1bo%+?rg_vbZ0(wOHUd28-%)*6< ztCH7UB=UNqxdC$ESG;>56==C5`7I677QyVK8TI?x?S)Be0!)qis()$`S|10DOg>~C zbWDTlrClxxj4VSlSF6;ddAd{|4`=J5&%2&iQs%o85_CMy?WIAmb!58+g2u1L@r#Wo z3b*D%^TgYY+1d}zDHU7OS$w(93RxnQUp;mQ~Uj&e8FJD_*)_3Eqq@P^iGUzYX{QgAJTg&U0tiCU$;>OJ`oP@sk zksQH59_#G^>X(4-&ep9?z}Cjr#s?3eJK?NwCvfqO(o+VFLwN{7oEW7bf*bez!8E|A zwk0r$l{-)aqEB(0C3SsGybmPLSm~q&!8U3rLSY|%l*Lg)}#!>29 zHMJtOIm-2gkGD#Vb*2_=6KQUKWS`v{yJ+^Ky^1-Kl0L6l^PIjecch>(L0$=WUKmc(>SrPz6#Mcz3=zI~GA?BniEKg1gBY>Iq2^{l7D|}H|{8kk( zLVgCM;}!p(pQlHnbltL!fx;NUcGm}^Bd_)i;6kv3{3)Ql5Zj@PtE<>>V0rWKW@L(v zuOl{MN1pJwnp_DOMP-_-EG*e4Os82#%F31#&q9Co55-(VF`q`70OSNaI-~Gw6$!&k zva#WLyGs?vJs76CqQ!BE7lPW>A>_8&5w3lVdxEWo;={SOxaKGvy&PB7tOQxT#pNIc z&H{zNLPwr{Y#lCV;|!xWdsM#WxQFvB8#1P+3n}TU6$j$5@p*6glVt2iJX34s=kkOQ zy7e;{JF~NkefzSXHqI^cjp;8c4?Im9^(SlLVxGv4*o8Db#U|M>5E00Gq#o}f9u-@O zb6aZ`s5yJke0||{b%rHu#N`3_eI1SrRQ}Y;;ZOY>)~pi-?cL8ZGy24i6*OxkO*FdT z(Hcq~ZGm_{D(E9})&!KXZE|0PsP*9tl9F18oJao+tNPUhWY-A9;k z(dgXO2tk$pI%;ysw@^UhfAQ$IhsmB7nY(F5ivyHPCznq#Xk{O+*qZEjJY+m287S9_ zA{w;g^#?Sd>C-h~K>}hcmW7DZ0`*Lki9D;wh`hY;xSJsY%xQ9;8wZ#yd1nJU^PP4o zqJ`4)oW{#665AQ?A?Mst>ubW9g-_h8wXUQNf?fSXWvVb zP6pM&iA!KWQN;0uUnjoK1RY2~X;T?-1z!eYhKEX1H_NFq&@JmwSS$?Y#f%Um;9oU& zUXsf*_?x#Yupiz;Ds;eLSPmREbu|9S!pE=Xi#tE>NTlE5+dHX^UTLKtem!5IqZN#| zU*pR5KQje_%q|_5T8E%$>Fd|xu{ssomrvRWiXj^*UawNwQIdxtwFs@MZ>KT2&QWoYZFQ^MS7l?!nY7Czu&-)us01u zHje_J6)Ni2r^TO3a%79LAZk3$~on+}B`CM;UEs%nV5}~3b zgz;Oo-#n{GvqGo{8m&h(#0*(;+SzZ|F}2^V=F&%7CLc!w0)e7p96AHWc47gmVMnta z2W>()MR*?{xN|?D?-Rr3o_FBUJga|Z-~*=8LM&~5DBM8-6XFk(yp;e+Gnq9m9?&!H z8SUkXF0~dN;vxfjtd;wKnaFXEWC|o={oyxko&{6`}dq)+?3V}F!S8cmRBPax{VAld9By0pA38^IPlw@eE>P^ zP5dfFKT=AJwuIe1K}7OAepDmRmJP*Pk3W9VvQrfN@WbYwN`!s+D2O#j4acrAZe9&} zda9tvfAq{J1r1e=ItU(x5$4O;?JeIk;E5mofR~>cr2DzJq-{IIgp|(za{1BqkFNuy z_UvC9zH?6Xt(a}(RfADn2i!%VoH;A!zr~+mWnad7wuoCj$_(l~)R5u<+nETVtmG+9 zSsVSOm8O|&u&e#FIu?i3p_aNQhd)TX?WudtI+MgaWb1Keo(wcupBZ{kmuaIj z3wGr_9&rh4!abDV1@pZja0nBZa;rk^lpmiJ@Q}HV5;W4|(2oewGoUtG$kUjW%oU+ViywZz|8DsQAt?aMv?r1A4`@+ou1s15N)q?g~;mE`wM zu$~risOv*jyV~2+^!$~M7N>^U4~B9`E7o}>D;kevVTl;Gm5;Dbht>u1G%WM6*nsB@ z0n89~y&masUd%EzOvb^NX_{oG7baTSi}~ltOaZQxF3%kKFTD9At&cqW0rhywUKp$w z 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 diff --git a/charts/matrix/values.yaml b/charts/matrix/values.yaml index 97df1dbb..13de8a83 100644 --- a/charts/matrix/values.yaml +++ b/charts/matrix/values.yaml @@ -784,153 +784,6 @@ synapse: # -- optional: extra volume mounts for the matrix synapse deployment extraVolumeMounts: [] -# values for https://github.com/small-hack/matrix-sliding-sync-chart -syncv3: - # -- enable the sliding sync proxy (required for using element-x if using - # Synapse older than v1.114). You can see all possible values - # [here](https://github.com/small-hack/matrix-sliding-sync-chart). If enabled, - # you must also provide `matrix.extra_well_known_client_content`. - # After Synapse v1.114, this is no longer required. Learn more in the matrix - # [blog post](https://matrix.org/blog/2024/10/29/matrix-2.0-is-here/#1-simplified-sliding-sync) - enabled: false - postgresql: - # -- Whether to deploy the Bitnami Postgresql sub chart - # If postgresql.enabled is set to true, externalDatabase.enabled must be set to false - # else if externalDatabase.enabled is set to true, postgresql.enabled must be set to false - enabled: false - persistence: - enabled: false - - volumePermissions: - # -- Enable init container that changes the owner and group of the PVC - enabled: true - - global: - postgresql: - # global.postgresql.auth overrides postgresql.auth - auth: - # database credentials to use if you don't use an existingSecret - # -- username of matrix-sliding-sync postgres user - username: syncv3 - # -- password of matrix-sliding-sync postgres user - ignored using exsitingSecret - password: changeme - # -- which port to use to connect to your database server - port: 5432 - # -- name of the database - database: syncv3 - # -- Name of existing secret to use for PostgreSQL credentials - existingSecret: "" - # secretKeys to grab from existingSecret - # if postgresql.existingSecret is provided, the following are ignored - # postgresql.password/username/hostname/database - secretKeys: - # -- key in existingSecret with hostname of the database - databaseHostname: hostname - # -- key in existingSecret with name of the database - database: database - # -- key in existingSecret with username for matrix to connect to db - databaseUsername: username - # -- key in existingSecret with password for matrix to connect to db - userPasswordKey: password - # -- key in existingSecret with the admin postgresql password - adminPasswordKey: postgresPassword - - externalDatabase: - # -- enable using an external database *instead of* the Bitnami PostgreSQL sub-chart - # if externalDatabase.enabled is set to true, postgresql.enabled must be set to false - enabled: false - # optional SSL parameters for postgresql, if using your own db instead of the subchart - # ref: https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-PARAMKEYWORDS - # -- sslmode to use, example: verify-full - sslmode: "" - # make sure any paths here are reflected in slidingSync.extraVolumes and slidingSync.extraVolumeMounts - # -- optional: tls/ssl root cert for postgresql connections - sslrootcert: "" - # -- optional: tls/ssl cert for postgresql connections - sslcert: "" - # -- optional: tls/ssl key for postgresql connections - sslkey: "" - # database credentials to use if you don't use an existingSecret - # -- username of matrix-sliding-sync postgres user - username: syncv3 - # -- password of matrix-sliding-sync postgres user - ignored using exsitingSecret - password: changeme - # -- which port to use to connect to your database server - port: 5432 - # -- hostname of db server. Can be left blank if using postgres subchart - hostname: "" - # -- name of the database to try and connect to - database: "syncv3" - - # -- existing kubernetes secret for ALL syncv3 env vars listed below. if set, - # ignores all values under syncv3 including syncv3.db and syncv3.otlp. - existingEnvSecret: "" - - syncv3: - # -- SYNCV3_DB - db connection string: - # https://www.postgresql.org/docs/current/libpq-connect.html - # if db is empty, you must either provide postgresql or externalDatabase - # parameters, OR set syncv3.existingDbSecret and syncv3.dbSecretKey - db: "" - # -- use an existing kubernetes secret for the db connection connection string. - # if set, ignores syncv3.db - existingDbSecret: "" - # -- db key in existing Db Secret for - dbSecretKey: "SYNCV3_DB" - # -- SYNCV3_SERVER - Required. The destination homeserver to talk to (CS API HTTPS URL) e.g 'https://matrix-client.matrix.org' (Supports unix socket: /path/to/socket) - server: "" - # -- SYNCV3_SECRET - Required. A secret to use to encrypt access tokens. Must remain the same for the lifetime of the database. If both syncv3.secret and syncv3.existingSecret are not set, we will autogenerate this value - secret: "" - # -- if set, we'll grab your SYNCV3_SECRET from an existing kubernetes secret and ignore syncv3.secret - existingSyncv3Secret: "" - # -- secret key to get synvcv3 secret from in existing kubernetes secret. - syncv3SecretKey: "SYNCV3_SECRET" - # -- SYNCV3_BINDADDR - The interface and port to listen on. (Supports unix socket: /path/to/socket) - bindaddr: "0.0.0.0:8008" - # -- SYNCV3_TLS_CERT - Default: unset. Path to a certificate file to serve to HTTPS clients. Specifying this enables TLS on the bound address. - tlsCert: "" - # -- SYNCV3_TLS_KEY - Default: unset. Path to a key file for the certificate. Must be provided along with the certificate file. - tlsKey: "" - # -- SYNCV3_PPROF - Default: unset. The bind addr for pprof debugging e.g ':6060'. If not set, does not listen. - pprof: "" - # -- SYNCV3_PROM - Default: unset. The bind addr for Prometheus metrics, which will be accessible at /metrics at this address. - prom: "" - otlp: - # -- SYNCV3_OTLP_URL - Default: unset. The OTLP HTTP URL to send spans to e.g https://localhost:4318 - if unset does not send OTLP traces. - url: "" - # -- SYNCV3_OTLP_USERNAME - Default: unset. The OTLP username for Basic auth. If unset, does not send an Authorization header. - username: "" - # -- SYNCV3_OTLP_PASSWORD - Default: unset. The OTLP password for Basic auth. If unset, does not send an Authorization header. - password: "" - existingSecret: "" - - # -- SYNCV3_SENTRY_DSN - Default: unset. The Sentry DSN to report events to e.g https://sliding-sync@sentry.example.com/123 - if unset does not send sentry events. - sentryDsn: "" - # -- SYNCV3_LOG_LEVEL - The level of verbosity for messages logged. Available values are trace, debug, info, warn, error and fatal - logLevel: "info" - # -- SYNCV3_MAX_DB_CONN - Default: unset. Max database connections to use when communicating with postgres. Unset or 0 means no limit. - maxDbConn: "" - - networkPolicies: - # -- whether to enable kubernetes network policies or not - enabled: true - - ingress: - enabled: false - className: "" - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - hosts: - - host: chart-example.local - paths: - - path: / - pathType: ImplementationSpecific - tls: [] - # - secretName: chart-example-tls - # hosts: - # - chart-example.local - mas: # -- enable the MAS (Matrix Authentication Service) sub chart to use OIDC # This is the only way that's tested to use with element-x beta right now @@ -1961,7 +1814,7 @@ bridges: # -- hookshot bridge docker image repository: "halfshot/matrix-hookshot" # -- hookshot bridge docker image tag - tag: "6.0.0" + tag: "6.0.1" # -- hookshot bridge docker image pull policy. If tag is "latest", set tag to "Always" pullPolicy: IfNotPresent