From 26d261b82030c79befa6823bb69ff3725fb5a3f2 Mon Sep 17 00:00:00 2001 From: Atharva Deosthale Date: Thu, 19 Mar 2026 23:17:42 +0530 Subject: [PATCH 01/16] docs + blog for mongo self hosted --- .optimize-cache.json | 8 ++ .../+page.markdoc | 136 ++++++++++++++++++ .../docs/advanced/self-hosting/+layout.svelte | 4 + .../configuration/databases/+page.markdoc | 58 ++++++++ .../environment-variables/+page.markdoc | 15 +- .../self-hosting/installation/+page.markdoc | 89 ++++++++++-- .../production/backups/+page.markdoc | 25 +++- .../production/scaling/+page.markdoc | 2 +- .../production/updates/+page.markdoc | 3 + .../installation/dark/wizard-account.png | Bin 0 -> 33500 bytes .../installation/dark/wizard-review.png | Bin 0 -> 36417 bytes .../installation/dark/wizard-secure.png | Bin 0 -> 40139 bytes .../installation/dark/wizard-setup.png | Bin 0 -> 32909 bytes .../installation/wizard-account.png | Bin 0 -> 33434 bytes .../installation/wizard-review.png | Bin 0 -> 36563 bytes .../installation/wizard-secure.png | Bin 0 -> 40518 bytes .../installation/wizard-setup.png | Bin 0 -> 33409 bytes 17 files changed, 313 insertions(+), 27 deletions(-) create mode 100644 src/routes/blog/post/self-hosting-appwrite-with-mongodb/+page.markdoc create mode 100644 src/routes/docs/advanced/self-hosting/configuration/databases/+page.markdoc create mode 100644 static/images/docs/advanced/self-hosting/installation/dark/wizard-account.png create mode 100644 static/images/docs/advanced/self-hosting/installation/dark/wizard-review.png create mode 100644 static/images/docs/advanced/self-hosting/installation/dark/wizard-secure.png create mode 100644 static/images/docs/advanced/self-hosting/installation/dark/wizard-setup.png create mode 100644 static/images/docs/advanced/self-hosting/installation/wizard-account.png create mode 100644 static/images/docs/advanced/self-hosting/installation/wizard-review.png create mode 100644 static/images/docs/advanced/self-hosting/installation/wizard-secure.png create mode 100644 static/images/docs/advanced/self-hosting/installation/wizard-setup.png diff --git a/.optimize-cache.json b/.optimize-cache.json index 46270bde12..2e8e699546 100644 --- a/.optimize-cache.json +++ b/.optimize-cache.json @@ -1139,6 +1139,14 @@ "images/docs/advanced/security/dpa.png": "5bfbf7c5654a27d23eeefe49ff70c79861d2734f454c62758978b1a600f1c85d", "images/docs/advanced/security/mfa-modal.png": "f56b55bcb1ca889597bf8cb803fcabe8b66deaf2f06fd4f49a100d9a507cabef", "images/docs/advanced/security/mfa.png": "903def2fe311e439851c1ed0b730bb6c88f8b8b32a8ad53152d244fb48b141e5", + "images/docs/advanced/self-hosting/installation/dark/wizard-account.png": "b7082787919afe0cb0d7975361356438d798927efda8a47c7471f08b4dd8816a", + "images/docs/advanced/self-hosting/installation/dark/wizard-review.png": "7d4cebea557f02e9e519390b5c16b2d552f641e8dff2c7c89db9851c8887edfa", + "images/docs/advanced/self-hosting/installation/dark/wizard-secure.png": "e558268592865d2ce464e37188b92ff4e1bd54d3c59fd643ad4acac2bcb117ce", + "images/docs/advanced/self-hosting/installation/dark/wizard-setup.png": "f16722e8e54da3117350d229ab2c31e955c49a54fa3439353a7c9524a3053bd4", + "images/docs/advanced/self-hosting/installation/wizard-account.png": "b3020afb2bb33c7e5258ae94fe8ba70db0446d5818eb859602bef94ca4e02e6e", + "images/docs/advanced/self-hosting/installation/wizard-review.png": "669d3b94cddbdc7dd4e4a784512726d83e74aed9a472f43d37812bd34bda8750", + "images/docs/advanced/self-hosting/installation/wizard-secure.png": "7730499fae6d0f7eb14d85f4978c2e0a84d2362c507d5cfe474ccc920f8cc1cd", + "images/docs/advanced/self-hosting/installation/wizard-setup.png": "a591eb264af97db479c2e34085e8f2bb901ec8dace8de36b089ee4ab623e9606", "images/docs/ai/audio-processing-dark.png": "90852c361d73240474a316ca089edbc18e33b4665adb7d714dac9a7daea8945f", "images/docs/ai/audio-processing-light.png": "29a92249b7f2706307321d5bb96d4d20a7ac41b6b55e61e374608e9941e9a6b9", "images/docs/ai/computer-vision-dark.png": "9802337f7e7464e987c963a4dac750dbf3971765161049c7470e3ba976f15412", diff --git a/src/routes/blog/post/self-hosting-appwrite-with-mongodb/+page.markdoc b/src/routes/blog/post/self-hosting-appwrite-with-mongodb/+page.markdoc new file mode 100644 index 0000000000..ff4329179a --- /dev/null +++ b/src/routes/blog/post/self-hosting-appwrite-with-mongodb/+page.markdoc @@ -0,0 +1,136 @@ +--- +layout: post +title: Self-hosting Appwrite with MongoDB as the underlying database +description: Learn how to self-host Appwrite with MongoDB as the database backend using the new installation wizard. +date: 2026-03-24 +cover: /images/blog/self-hosting-appwrite-with-mongodb/cover.png +timeToRead: 6 +author: atharva +category: tutorial +--- + +Appwrite has always supported self-hosting, but until now, MariaDB was the only database option. With Appwrite 1.9.0, you can now choose MongoDB as your database backend. This is a big deal if you prefer a document-based database or already have MongoDB expertise on your team. + +In this article, you will learn how to self-host Appwrite with MongoDB from scratch using the new web-based installation wizard. + +# Prerequisites + +Before you begin, make sure you have the following ready: + +- A server or local machine with at least **2 CPU cores**, **4GB of RAM**, and **2GB of swap memory** +- [Docker CLI](https://www.docker.com/products/docker-desktop) installed +- Port **20080** open in your firewall (the installation wizard runs on this port) + +If you're installing on a remote server, make sure you can access port 20080 from your browser. You can close this port after installation is complete. + +# Running the installer + +The installer is a single Docker command that launches a web-based setup wizard. Open your terminal and run: + +```bash +docker run -it --rm \ + --publish 20080:20080 \ + --volume /var/run/docker.sock:/var/run/docker.sock \ + --volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \ + --entrypoint="install" \ + appwrite/appwrite:1.9.0 +``` + +If you're on Windows, use the CMD version: + +```cmd +docker run -it --rm ^ + --publish 20080:20080 ^ + --volume //var/run/docker.sock:/var/run/docker.sock ^ + --volume "%cd%"/appwrite:/usr/src/code/appwrite:rw ^ + --entrypoint="install" ^ + appwrite/appwrite:1.9.0 +``` + +Once the command is running, open your browser and go to `http://localhost:20080` (or your server's IP address on port 20080). + +# Step 1: Setup your app + +The first screen asks you to configure the basics of your Appwrite instance. + +![Setup your app](/images/docs/advanced/self-hosting/installation/dark/wizard-setup.png) + +- **Hostname** - Enter the domain or IP address where your Appwrite instance will be accessible. If you're just testing locally, `localhost` works fine. +- **Database** - This is the important part. Select **MongoDB**. It's already selected by default, but make sure it's the one highlighted. +- **Advanced settings** - Expand this if you want to change the HTTP/HTTPS ports, set an SSL certificate email, or add an OpenAI key for the [Appwrite Assistant](/docs/tooling/assistant). For most setups, the defaults are fine. + +One thing to note here: the database choice is permanent. You cannot switch from MongoDB to MariaDB (or vice versa) after installation without starting fresh. So make sure you're happy with your choice before proceeding. + +# Step 2: Secure your app + +Next, the wizard generates a secret API key for your instance. This key is used to encrypt sensitive data on your server. + +![Secure your app](/images/docs/advanced/self-hosting/installation/dark/wizard-secure.png) + +Copy this key and store it somewhere safe. You won't be able to see it again after this step. If you lose it, you won't be able to decrypt your data. Use the copy button to grab it, or click regenerate if you want a new one. + +# Step 3: Create your account + +Set up the email and password for your Appwrite account. These are the credentials you'll use to sign in to the Appwrite Console after installation. + +![Create your account](/images/docs/advanced/self-hosting/installation/dark/wizard-account.png) + +Make sure you use a strong password (minimum 8 characters). This is the account that will have full access to your Appwrite instance. + +# Step 4: Review and install + +The final step shows a summary of everything you've configured. Double-check the settings, especially the database selection showing **MongoDB**. + +![Review your setup](/images/docs/advanced/self-hosting/installation/dark/wizard-review.png) + +If everything looks good, hit **Install**. The wizard will pull the necessary Docker images and set up your Appwrite instance with MongoDB. This might take a few minutes depending on your internet speed. + +# What happens under the hood + +When you select MongoDB, Appwrite uses Docker Compose profiles to spin up the right containers. + +The cool part is that your Appwrite API stays exactly the same regardless of which database you pick. You still work with tables, columns, and rows through the Appwrite Console and SDKs. The database choice only affects the underlying storage engine. + +Here are the environment variables that get configured for MongoDB: + +| Variable | Value | +|---|---| +| `_APP_DB_ADAPTER` | `mongodb` | +| `_APP_DB_HOST` | `mongodb` | +| `_APP_DB_PORT` | `27017` | +| `_APP_DB_SCHEMA` | `appwrite` | + +You can find these in the `.env` file inside your `appwrite` directory after installation. + +# Backing up your MongoDB data + +Once your instance is running, you'll want to set up backups. Here's the command to create a backup of your MongoDB data: + +```bash +docker compose exec mongodb sh -c 'exec mongodump --username=root --password="$MONGO_INITDB_ROOT_PASSWORD" --authenticationDatabase=admin --archive' > ./dump.archive +``` + +And to restore from a backup on a fresh installation: + +```bash +docker compose exec -T mongodb sh -c 'exec mongorestore --username=root --password="$MONGO_INITDB_ROOT_PASSWORD" --authenticationDatabase=admin --archive' < dump.archive +``` + +Only restore to a fresh Appwrite installation to avoid data corruption. + +# Accessing the Console + +After installation completes, navigate to your hostname in the browser. Sign in with the credentials you created in step 3 and create your first project. + +From here, you can start building with Appwrite's full suite of features: Authentication, Databases, Storage, Functions, Messaging, and Sites. All powered by MongoDB under the hood. + +# Wrapping up + +Self-hosting Appwrite with MongoDB is straightforward with the new installation wizard. The entire process takes a few minutes, and you get a production-ready setup with a database backend you're comfortable with. + +If you have any questions, join our [Discord server](https://appwrite.io/discord) to connect with the team. + +- [Self-hosting installation guide](/docs/advanced/self-hosting/installation) +- [Database configuration](/docs/advanced/self-hosting/configuration/databases) +- [Backup guide](/docs/advanced/self-hosting/production/backups) +- [Production readiness](/docs/advanced/self-hosting/production) diff --git a/src/routes/docs/advanced/self-hosting/+layout.svelte b/src/routes/docs/advanced/self-hosting/+layout.svelte index 88adce526e..5e5302b7a4 100644 --- a/src/routes/docs/advanced/self-hosting/+layout.svelte +++ b/src/routes/docs/advanced/self-hosting/+layout.svelte @@ -49,6 +49,10 @@ { label: 'Configuration', items: [ + { + label: 'Databases', + href: '/docs/advanced/self-hosting/configuration/databases' + }, { label: 'Environment variables', href: '/docs/advanced/self-hosting/configuration/environment-variables' diff --git a/src/routes/docs/advanced/self-hosting/configuration/databases/+page.markdoc b/src/routes/docs/advanced/self-hosting/configuration/databases/+page.markdoc new file mode 100644 index 0000000000..4b76947c9f --- /dev/null +++ b/src/routes/docs/advanced/self-hosting/configuration/databases/+page.markdoc @@ -0,0 +1,58 @@ +--- +layout: article +title: Databases +description: Configure the database backend for your self-hosted Appwrite instance. Learn about the supported database options and their configuration. +--- + +Appwrite supports MongoDB and MariaDB as database backends. The database is selected during [installation](/docs/advanced/self-hosting/installation) via the setup wizard and **cannot be changed after installation**. + +Regardless of which database you choose, the Appwrite API remains the same. Only the underlying storage engine differs. + +{% info title="Default database" %} +MongoDB is the default database as of Appwrite 1.9.0. +{% /info %} + +# Supported databases {% #supported-databases %} + +## MongoDB {% #mongodb %} + +MongoDB is a document-based database and the default option for new Appwrite installations. It is configured as a replica set (`rs0`) automatically during installation. + +- **Docker image:** `mongo:8.2.5` +- **Container name:** `appwrite-mongodb` +- **Default port:** `27017` + +## MariaDB {% #mariadb %} + +MariaDB is a relational SQL database. It was the default database in Appwrite versions prior to 1.9.0. + +- **Docker image:** `mariadb:10.11` +- **Container name:** `appwrite-mariadb` +- **Default port:** `3306` + +# Environment variables {% #environment-variables %} + +Both database backends use the same environment variables. The values differ depending on which database was selected during installation. + +| Variable | Description | MongoDB default | MariaDB default | +|---|---|---|---| +| `_APP_DB_ADAPTER` | Database adapter type | `mongodb` | `mariadb` | +| `_APP_DB_HOST` | Database server hostname | `mongodb` | `mariadb` | +| `_APP_DB_PORT` | Database server port | `27017` | `3306` | +| `_APP_DB_SCHEMA` | Database name | `appwrite` | `appwrite` | +| `_APP_DB_USER` | Database user | `user` | `user` | +| `_APP_DB_PASS` | Database user password | `password` | `password` | +| `_APP_DB_ROOT_PASS` | Database root password | `rootsecretpassword` | `rootsecretpassword` | + +The Docker Compose profile controls which database container runs. This is set automatically by the installer: + +- `COMPOSE_PROFILES=mongodb` for MongoDB installations +- `COMPOSE_PROFILES=mariadb` for MariaDB installations + +{% info title="Change default passwords" %} +Always change the default database passwords before deploying to production. Update both the environment variables and the database credentials. +{% /info %} + +# Backups {% #backups %} + +For database backup procedures, see the [Backups](/docs/advanced/self-hosting/production/backups) guide, which covers both MongoDB and MariaDB backup and restore commands. diff --git a/src/routes/docs/advanced/self-hosting/configuration/environment-variables/+page.markdoc b/src/routes/docs/advanced/self-hosting/configuration/environment-variables/+page.markdoc index 0978ec3d40..af1b5644c0 100644 --- a/src/routes/docs/advanced/self-hosting/configuration/environment-variables/+page.markdoc +++ b/src/routes/docs/advanced/self-hosting/configuration/environment-variables/+page.markdoc @@ -60,16 +60,17 @@ Appwrite uses a Redis server for managing cache, queues and scheduled tasks. The | `_APP_REDIS_PASS` | Redis server password. This is an optional variable. Default value is an empty string.| # Database {% #database %} -Appwrite uses MariaDB to persist database data. The DB env vars are used to allow Appwrite server to connect to MariaDB. +Appwrite supports MariaDB and MongoDB as database backends. The database is selected during [installation](/docs/advanced/self-hosting/installation). See [Databases](/docs/advanced/self-hosting/configuration/databases) for more details. | Name | Description | |------------------------|--------------------------------------------------------------------------------------------------| -| `_APP_DB_HOST` | MariaDB server host name address. Default value is: `mariadb`. | -| `_APP_DB_PORT` | MariaDB server TCP port. Default value is: `3306`. | -| `_APP_DB_SCHEMA` | MariaDB server database schema. Default value is: `appwrite`. | -| `_APP_DB_USER` | MariaDB server user name. Default value is: `user`. | -| `_APP_DB_PASS` | MariaDB server user password. Default value is: `password`. | -| `_APP_DB_ROOT_PASS` | MariaDB server root password. Default value is: `rootsecretpassword`. | | +| `_APP_DB_ADAPTER` | Database adapter type. Default value is: `mongodb`. Possible values: `mongodb`, `mariadb`. | +| `_APP_DB_HOST` | Database server host name address. Default value is: `mongodb` (or `mariadb` for MariaDB). | +| `_APP_DB_PORT` | Database server TCP port. Default value is: `27017` (or `3306` for MariaDB). | +| `_APP_DB_SCHEMA` | Database name. Default value is: `appwrite`. | +| `_APP_DB_USER` | Database server user name. Default value is: `user`. | +| `_APP_DB_PASS` | Database server user password. Default value is: `password`. | +| `_APP_DB_ROOT_PASS` | Database server root password. Default value is: `rootsecretpassword`. | # SMTP {% #smtp %} diff --git a/src/routes/docs/advanced/self-hosting/installation/+page.markdoc b/src/routes/docs/advanced/self-hosting/installation/+page.markdoc index d01f717b46..732c1879b5 100644 --- a/src/routes/docs/advanced/self-hosting/installation/+page.markdoc +++ b/src/routes/docs/advanced/self-hosting/installation/+page.markdoc @@ -18,18 +18,13 @@ Before installing Appwrite, ensure your system meets these minimum requirements: # Install with Docker {% #install-with-docker %} -The easiest way to install Appwrite is using our Docker installer tool. This automated installer will guide you through the setup process. +The easiest way to install Appwrite is using our Docker installer. The installer launches a web-based setup wizard that guides you through the entire process. Before running the installation command, ensure you have [Docker CLI](https://www.docker.com/products/docker-desktop) installed on your host machine. -## Installation prompts {% #installation-prompts %} - -During setup, you'll be prompted to configure: - -1. **HTTP and HTTPS ports** - Your Appwrite instance's HTTP and HTTPS ports. -2. **Secret key** - Your Appwrite instance's secret key used to encrypt sensitive data. -3. **Main hostname** - Your Appwrite instance's main hostname. Appwrite will generate a certificate using this hostname. -4. **DNS A record hostname** - Usually the same as your main hostname. +{% info title="Firewall configuration" %} +The installation wizard runs on port **20080**. If you are installing on a remote server, ensure that port 20080 is open in your firewall or security group settings before proceeding. You can close this port after installation is complete. +{% /info %} ## Installation commands {% #installation-commands %} @@ -39,10 +34,11 @@ Run the following command in your terminal: ```bash docker run -it --rm \ + --publish 20080:20080 \ --volume /var/run/docker.sock:/var/run/docker.sock \ --volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \ --entrypoint="install" \ - appwrite/appwrite:1.8.1 + appwrite/appwrite:1.9.0 ``` {% /tabsitem %} @@ -50,23 +46,85 @@ docker run -it --rm \ ## CMD ```cmd docker run -it --rm ^ + --publish 20080:20080 ^ --volume //var/run/docker.sock:/var/run/docker.sock ^ --volume "%cd%"/appwrite:/usr/src/code/appwrite:rw ^ --entrypoint="install" ^ - appwrite/appwrite:1.8.1 + appwrite/appwrite:1.9.0 ``` ## PowerShell ```powershell docker run -it --rm ` + --publish 20080:20080 ` --volume /var/run/docker.sock:/var/run/docker.sock ` --volume ${pwd}/appwrite:/usr/src/code/appwrite:rw ` --entrypoint="install" ` - appwrite/appwrite:1.8.1 + appwrite/appwrite:1.9.0 ``` {% /tabsitem %} {% /tabs %} +Once the command is running, open your browser and navigate to `http://localhost:20080` to access the setup wizard. + +# Setup wizard {% #setup-wizard %} + +The setup wizard walks you through four steps to configure your Appwrite instance. + +## Step 1: Setup your app {% #wizard-setup %} + +Configure your Appwrite instance's basic settings. + +{% only_dark %} +![Setup your app](/images/docs/advanced/self-hosting/installation/dark/wizard-setup.png) +{% /only_dark %} +{% only_light %} +![Setup your app](/images/docs/advanced/self-hosting/installation/wizard-setup.png) +{% /only_light %} + +- **Hostname** - The domain or IP address where your Appwrite instance will be accessible. +- **Database** - Choose between [MongoDB or MariaDB](/docs/advanced/self-hosting/configuration/databases) as your database backend. MongoDB is selected by default. +- **Advanced settings** - Optionally configure HTTP and HTTPS ports, SSL certificate email, and an OpenAI API key for the [Appwrite Assistant](/docs/tooling/assistant). + +## Step 2: Secure your app {% #wizard-secure %} + +A secret API key is automatically generated for your instance. This key is used to encrypt sensitive data. + +{% only_dark %} +![Secure your app](/images/docs/advanced/self-hosting/installation/dark/wizard-secure.png) +{% /only_dark %} +{% only_light %} +![Secure your app](/images/docs/advanced/self-hosting/installation/wizard-secure.png) +{% /only_light %} + +{% info title="Save your key" %} +You won't be able to see this key again after proceeding. Copy it somewhere safe before continuing. +{% /info %} + +You can use the **Copy** button to copy the key or **Regenerate** to create a new one. + +## Step 3: Create your account {% #wizard-account %} + +Set up the email and password for your Appwrite account. You'll use these credentials to sign in to the Appwrite Console after installation. + +{% only_dark %} +![Create your account](/images/docs/advanced/self-hosting/installation/dark/wizard-account.png) +{% /only_dark %} +{% only_light %} +![Create your account](/images/docs/advanced/self-hosting/installation/wizard-account.png) +{% /only_light %} + +## Step 4: Review your setup {% #wizard-review %} + +Review all your configuration settings. If anything looks wrong, use the **Back** button to make changes. When you're ready, click **Install** to begin the installation. + +{% only_dark %} +![Review your setup](/images/docs/advanced/self-hosting/installation/dark/wizard-review.png) +{% /only_dark %} +{% only_light %} +![Review your setup](/images/docs/advanced/self-hosting/installation/wizard-review.png) +{% /only_light %} + # Manual installation {% #manual-installation %} For advanced users who prefer manual setup, you can install Appwrite using Docker Compose directly. @@ -100,8 +158,7 @@ docker compose up -d --remove-orphans After installation completes: 1. **Access the Console** - Navigate to your machine's hostname or IP address in your browser -2. **Create an account** - Sign up for your Appwrite account -3. **Create your first project** - Set up your development environment +2. **Create your first project** - Set up your development environment {% info title="Startup time" %} On non-Linux hosts, the server might take a few minutes to start after installation completes. This is normal behavior. @@ -145,6 +202,8 @@ After successfully installing Appwrite, you can: [Configure services](/docs/advanced/self-hosting/configuration/email) - Set up email, SMS, storage, and other services +[Configure databases](/docs/advanced/self-hosting/configuration/databases) - Learn more about MongoDB and MariaDB configuration + [Production setup](/docs/advanced/self-hosting/production) - Prepare your installation for production use -[Update Appwrite](/docs/advanced/self-hosting/production/updates) - Keep your installation up to date \ No newline at end of file +[Update Appwrite](/docs/advanced/self-hosting/production/updates) - Keep your installation up to date diff --git a/src/routes/docs/advanced/self-hosting/production/backups/+page.markdoc b/src/routes/docs/advanced/self-hosting/production/backups/+page.markdoc index da4d434765..34237bc60e 100644 --- a/src/routes/docs/advanced/self-hosting/production/backups/+page.markdoc +++ b/src/routes/docs/advanced/self-hosting/production/backups/+page.markdoc @@ -23,7 +23,11 @@ Your Appwrite installation has several components that need backing up: # Database backups {% #database-backup %} -Appwrite uses MariaDB. Use `mysqldump` for most installations: +Appwrite supports MariaDB and MongoDB as database backends. Use the backup method that matches your installation. + +## MariaDB backups {% #mariadb-backup %} + +Use `mysqldump` for MariaDB installations: ```bash # Create database backup (all databases) @@ -33,12 +37,24 @@ docker compose exec mariadb sh -c 'exec mysqldump --all-databases --add-drop-dat docker compose exec -T mariadb sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < dump.sql ``` +For large databases, consider `mariabackup` for physical backups. + +## MongoDB backups {% #mongodb-backup %} + +Use `mongodump` for MongoDB installations: + +```bash +# Create database backup +docker compose exec mongodb sh -c 'exec mongodump --username=root --password="$MONGO_INITDB_ROOT_PASSWORD" --authenticationDatabase=admin --archive' > ./dump.archive + +# Restore (fresh installation only) +docker compose exec -T mongodb sh -c 'exec mongorestore --username=root --password="$MONGO_INITDB_ROOT_PASSWORD" --authenticationDatabase=admin --archive' < dump.archive +``` + {% info title="Fresh installation only" %} Only restore to fresh Appwrite installations to avoid data corruption. {% /info %} -For large databases, consider `mariabackup` for physical backups. - # Storage volume backups {% #storage-backup %} Shut down Appwrite before backing up volumes to avoid data inconsistency. @@ -52,7 +68,8 @@ Appwrite uses these Docker volumes: - `appwrite-certificates` - SSL certificates - `appwrite-config` - Configuration - `appwrite-cache` and `appwrite-redis` - Cache data -- `appwrite-mariadb` - Database files +- `appwrite-mariadb` - Database files (MariaDB installations) +- `appwrite-mongodb` - Database files (MongoDB installations) ## Backup methods diff --git a/src/routes/docs/advanced/self-hosting/production/scaling/+page.markdoc b/src/routes/docs/advanced/self-hosting/production/scaling/+page.markdoc index 42a18a27e2..217fbf7223 100644 --- a/src/routes/docs/advanced/self-hosting/production/scaling/+page.markdoc +++ b/src/routes/docs/advanced/self-hosting/production/scaling/+page.markdoc @@ -10,7 +10,7 @@ Each Appwrite instance is composed of many containers, each with its unique job. If you decide to set up a load balancer to scale a container, make sure **all** communication are routed through the load balancer and not directly to the replicated containers. You can configure communicating between Appwrite containers using Docker environment variables. -Two Appwrite containers are stateful. The MariaDB and Redis containers are used for storing data, cache and pub/sub messaging, and usage stats, respectively. To scale these containers, set up a standard cluster (same as you would with any other app using these technologies) according to your needs and performance. +Two Appwrite containers are stateful. The database (MariaDB or MongoDB, depending on your installation) and Redis containers are used for storing data, cache and pub/sub messaging, and usage stats, respectively. To scale these containers, set up a standard cluster (same as you would with any other app using these technologies) according to your needs and performance. # Performance considerations {% #performance-considerations %} diff --git a/src/routes/docs/advanced/self-hosting/production/updates/+page.markdoc b/src/routes/docs/advanced/self-hosting/production/updates/+page.markdoc index 1c7fea5354..2f7d3c2d1c 100644 --- a/src/routes/docs/advanced/self-hosting/production/updates/+page.markdoc +++ b/src/routes/docs/advanced/self-hosting/production/updates/+page.markdoc @@ -44,6 +44,7 @@ Replace `` below with the specific Appwrite image tag you inte ```sh docker run -it --rm \ + --publish 20080:20080 \ --volume /var/run/docker.sock:/var/run/docker.sock \ --volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \ --entrypoint="upgrade" \ @@ -54,6 +55,7 @@ docker run -it --rm \ ```cmd docker run -it --rm ^ + --publish 20080:20080 ^ --volume //var/run/docker.sock:/var/run/docker.sock ^ --volume "%cd%"/appwrite:/usr/src/code/appwrite:rw ^ --entrypoint="upgrade" ^ @@ -64,6 +66,7 @@ docker run -it --rm ^ ```powershell docker run -it --rm ` + --publish 20080:20080 ` --volume /var/run/docker.sock:/var/run/docker.sock ` --volume ${pwd}/appwrite:/usr/src/code/appwrite:rw ` --entrypoint="upgrade" ` diff --git a/static/images/docs/advanced/self-hosting/installation/dark/wizard-account.png b/static/images/docs/advanced/self-hosting/installation/dark/wizard-account.png new file mode 100644 index 0000000000000000000000000000000000000000..3609922f4a74c4ff5c7d126add083be03124440a GIT binary patch literal 33500 zcmeFZXH=A1w=P(UiV0Cv5F{v2AXy6pk*FeBP;y3c&Pg%~iUlC#Lmx9lIU-1lL> z_4I>e7On1y>(4XZ3+j?xxpF0#x%T9F(j=$gOJ97ouHN#wCRa3l$e6fa$8|E{UBy`2 z#9~xzh25OY!0qiKd5wcZ0xtMC_)#n|{^!McI?5A&UrGM^1p@K!MS#8V??w3cBK*51 z{QDIAZ*dB|_Az;RdC}3)>FLq_{xt&wmy+mxY+oeH(I3S~s3$Grmt*te-=XhSt!pqBh?_P)Q zJu~>1z9ChfUS|-+vJLSgB>wcNbeB(f9f-am(R;`%IaYc-^#o%1>KP6WD_BwSN+SC4|#K=2k0j*7)@0VHZ`#@F)<;L@M*)!)9q}8*1Q35*$08vrx0reCr_7WD6z~1AgbLZFOA#Yi103f zcdb7whPZWXYh!btBGAvzj{-4XiS)JMjkL2NLQEU^&>@07qof(A2QDDC`FI1GYBVn4 z-~+2@;RD?o2L@C$F<_W|a^2ZfKL#l?xMfk+=yVJq!gpRO?9DqK& z+^_=!FY^Yt5MED$|Md|f4^AR>LqkHY@&GFFz5QR`9S>6O;J@+zsuz^;(a||C63_H} zQ!Mj1+{@G~VBC>FE+#6XK_%d_(UB-t;3>Vowd8;8 z&;HiXikzGr*MXC1U#4cBVIa{>Zp?f5_tQVdXJ)>`m!}~nZc9p{U$VOKz`DAg##7_7 z@ayjG?uEXr_y<=E3)CtqDh#B9s0A)jJ=|z>h%{>X)RFQmx+S_uqs;NyPtUoT2<_#r z)S|q+uHNrMT!`cQPEOlCKBr&-kF96n3R84zKL~CQ+sVktOiWC8pCKyry*ASrc03zh zo0*wO<9YDH+S<-f3J>{&En;|KX}ibx?eyycIQ*}(kdl%0r92zj*?G0U6U}2KDkkRZ z!xiC1&wtSPXNr+Q=0H15F8LBQze=ji($V4m&5NyM>>9xsi@|*A2i7l-j}9sBo7%H! zrl@Yr_n5VRejOyZXFOFG$f5Co=DLHtsN>40MYWfQ;0Va8xwYl7GvP}}MA2PhmpWN{n59vo ztKGb}xgc=3A%DiZDT>o*F=T&dr~GIyJ&aj#Fwe*e?uhRtDz{0INUmJ7K6cGA!F+f- zbM?*))x3Hdn%*L-F;X_Qe)C>VqgF%a_Iwk0RTFPQV$<%gUk1!Olw)JNkK3PU?r+ny z7g@!B{`@&znQo&%e|tNEmUS^HUK=gw?jm%wGj;p+ZNt3X;SxKwz0>#U#01%f6ddWJ zq&DY!^usI%^Lg*zS0q@anP`SRUlj8fYzrUJ31~^&%P%Xi8q+c|n(Nc1Iqs4bGB{K? ziLS2BZ3<^oFSQ?dO|XxADyf?`PQQ9>({Tz8P5?BQSrZe-(uL+ zY4>5Ja=*2!>*rCLeTnDMu2IxTpEk!=tqPaAbI8voqx>SwZ56En+~)n`3k#eM^K*HI zExAE%bFog;ZrO=RycMq7%bm$hJAbmID)o-Lb#nqJHZ$U)Vf7y{(LJipYZEl%c>d+_ z?n>3MAU8KReNt_ATKs83LK;Cg6{~Mt!l(#oi(m~sECzXKD>5uo zitO>@g!n4b2fbxZ+U_dM#|P_ar!SB;tGw(;cuM28`bE%9HvDlyu(X-OSmogpxLfF1 zKj{lS#Wo>T&fiJBs-AqjiAMK9ojLj$1=UIRFqTv7!*!O2*5ktDH~1XQ3yscaXjeVL zp!MoMVzW2CXliIkGX$-!uEKd?)hyizkriZCFEp2wTx*WX3+K?DSX$EL*M#HXxo;6B zovV+X{PFezBR#$31YCQhbP5J3)tGvd$8xyBwaC72q4&Gq-C}XCT*H=6J?VXM{N#nk z9epKzQRu8JtEIt$ckHega{=o=e5 zt|6oe)$(Nx6*)s99V6suu)DfrmF_Ic znZpHUPAS~dk$1nCbTMF}GvIbk{CF!T7yoNuAX~5g64PC$Wl9NAR?-EYF}L**r!lFz zE0-@nPZIBl=1B~q#?^HkllP9_XCS%*X!+W>pnHTRm__xz=3 ztMCks-Dq<&a=I|_n@U+)*U8D5hMsmt!M$M9D&N^2^Bk)>Mi_lW9N%umcL9Ibj|eXU zQ#jh?l7*Pfq<|Q4-(xIeJmxhi+vCP?HpZ)P#@E+onoyz-*Y`}$vZ>{-uHHo=ky2!u zx*xwh@ud{AFB&ClMy)a7_t?}6LuH=o>P`+8EO_jhybVC_e3p$DYV8OP5EaVOZ;s57ieT?r z6CGS%{TUR;=fpiEi`=;z-O`ofe$S|t(s}Z0jNy4?U zJhIT8mQN}vzR@i&dkHpn_tzJ>+*-~v1}4^SZjYn6EjGorSk>~4|4cr`_>~`S4Z->x zj(cyfVCBSbx@@_rph5%kenVN#*I6ERc9`#GQ~Va{b03ufmH!qYzRh`ILb_b0T3cJ4 z` z_lvdxyr@1Qk$Wr4($bQhot@Nwrf|lBd#ESfbNFV#!?y;m*$o`0TI)B3G=7W0xjlE4+;1v530re6tqmS;-o?kqmm8L7L_*R9104*@ns zlm2X-mQVNXOxr9LnjhLi`va)O5R#@|+Q zra4IhQ=%u|2gHXnU5!k0v$ahK&m-qFeC6s|UthlhJAMO~-}QuFKwvSVnx2u-%%ttp zpGFf~_b|z3^ipb(W$jpc^83KRmYwkZ@1PzHp9YL&Ee*BLqJvg{b-d;R8GGYKcQnuF z4ebPxbL1)&E)KotWaIb;K0hMh;K&MNIX)KrOd`=7%h%V^;?R{M82eCw7Ap=gG*u>c z>9pX^XM6UE2KYvf-xSl8q);g1c44ROd=@9e7Rj=0-=yn?c>_H?ih_H8>Swlo^rS0q zuiiDmku`;~-Tayy8@v`l*phECB-)hs_^lg~yrVNtdidv2xlURQ^+$0HTB+`0o2dYK ztXeD|&v$ezpHoH6mNa~;Lad>9y9ALpesqr$dwt?4z zxp(&W7yPRGbMyeVDgz{KiRQr-H9xSM%}7o4-I!-1P1mwBHvV1x+B>O@L(|2NSYOo7 zPlAfivALo(hE!*FjixD-iH@KOYNHfKMMh9)`ODUr0hg4^%~&k3m1HQK zFJAB%9K1QbzIhT5rin?1=xz7G{{H^pU{d*14^m3X@>hQnw#Sa|rmALXRY+nksro=& zS7n_=8Jt{l3J!Z~+Lf|o*CxKp`P?%T0RLO6@} zg=#Iij|w)*K8QbX*qkr$G-jet94IhL9Wb|S|NN!=yJlIT2g*Og(a&5o&_%}6h+t|PG#(4JD(hy)kV!*c&au+3N%gf8@tAgVW5}x`eS!FTO4SeFYn_b8XieRru zO-(&TgZggY8t=O7EKpkvNVEM*kY<&~$jiG5-xOXvehnwkerfPNU`LU222CjfhEGcm z<%FeH&WXn#7dp&NFJzI;6U4i7_Xx_78dZC}ZVErV#ruZ-($P`vccq1+L&CvAi&UfY zYHF37ZrjTvoz&;9O~?Pb$5FnTP;rJSYos+XXzQU3t+Zq~v*I`N0b3xln5l!EDOfy0o)ZDfZLzRTItxiVF{nx zk3?U+dLeVX`uh6p_lrx&k%PtdI60Xpe|izjGmT0&-c$XGn{F4JW-V$8M2-hEHG#? zgz9yCxU!Ti6=907j>nT@H~&;1(rdA)aV~3UF>3bb)lEG;_qn;l_3=dU_zsjt;Y#@& z-KU4MiLeC&X@njTz%Py@G?WMsyVoLm5MJIBxfFocAK3kWp_VPG1c(RhMn*s4zvuy*RoS_uUFNt1l_?5N*YA!*d3kv#%CR}k z6?<29WEQY#2Nnz1DW3t-rU$mr$_4j+>n&+DHwmIRSSDl^ny03nc)FwwY?+h*VXx0| zWT+MFb*ITYDJ+dy^;>NI?$AUP6A)e!@2h~_=p5fP7UjCU-&QdgXh-9jRcSx)!QWrK z#5Or7NEQg>%=ZpsHz1yRy1M!`D+z_=`O~A8DW1BC1PF!dx4&T(hera}T$TnM4!_%* zhqLaAx|FC5;z-`1>BR8Z=?o?$#NYs0X625qTFsl&GhJC#TGkUkc9peur%rybooTED z_-h4a6Zm!h2F-l(bO3qY@UR9Px@?=NIv}Xx=R;y*xQtrMp(GF8T&*TpI&+Eg4uSjL z25zKm`=*t2unx}B{b*M~TU$H5r_^GoP&KbISB16n8-OcT)!Za|&4k3nROzUMwkGzW zGp;T!fZ8^IFezthU~6kCobXZ+nAI!Qk&WRY!!2f=^2Vvh|m5 zhMGWM7%JKhk!5Ha`bfpMwb19({nZFa9LvI}J_?(4NXDTR+;Zo7qazMT4Zu*-o^K^q zV@E*kraL{{Ym%KoIKWU%HK6IBhg5|2IVJV?M{bYqKOf8>8_F}1ef~Un@m!*)K&tE! z+%w7O_*c3|=(z81p)+?rKl0xEf#QEDeEgb#@LBZM?o3mJ zKPekCUz^tn0#1tzpp;nVSOM3mG;m(q6MS2 zI8L1(H%qdb;WkwQ;NJ>k=xRKoyLqQeImK?SRlwCT!r@L6l)_%sJVPvdXih=ybImeG z^l9`2o))v}Yh!x&bbr0C3%n`u_T0I101DBXGGhgzffQ+E;d{WX9A=wU-Ep~@6@FL8 z!m;&%uGq>xSc~~6BT`$F{$24m z@7@vJ6j$ELYfF)IasnnwEU?kOfz#HibdxBR?c|K%bE>SMR#qB&`>2p~bt$>nH?9A!%>pdfCv{!`UmP4c0MtxE%aPEd|`sv@=08LewNAYyEmb zCMJh5$6k{}PH!kF2FYNcpo zM`dCjyqLtq3~n8)w?(ihTLS$IVQ{C_G{A979Y2>Oz4QF#+O%xdo@t@|K~hMG-5h(A z^2?XxQAzTtG9+c)8LIN}dQe>_Cv{mA?r@y=pf3Ttbg$qNLvF?{v2+;YHyyUNHdDmzo)X3KC){&URpZ}4ojofZJVTW zkXtR*XKSD%y43Ybl4({3-Mg0qkn(6DizQv@JF}I+0jO-(DTfz9tdsjv*;HWKBR5vS z&o5ndu(kl28LLvW=Wwx&oQjg6jG1iPlO;0%<=^dh&lX)K-C$63_2d6A|liIF&pc8qoRlRE1xW85nZr3NbZ5mayZ z(wgL3lHrE9)mFZhqqQcET-S>?!&B)lA`lPpY)!bc$axQE1VY_slQfVf&@?h+tdV0$ z5?6QeYTlaOBIqZ{%3*nP^#9TVScSZ$Xe1u$5fW1ed?+>HRxh*~yFyADUSA@<;?x-0 z=CQw2)R9;(E&$p|zUQ^;*9$;8B7fkzmC?-<_5Pw%RF0l@@EYh>fTI<@t1042uCxBO zTOL-$d6X63NP5iFn=I8AV23TN*%Kql6(^MSm=Uxd_bLz5-Z6MJn9rfBo6r=&!AQmJ z%pw#Z#dVdM`ZiTLNNRJHBG6sJ6?Cx}t0bXv)1G;dxD8v5imhg9{mGICFgDVWtKs2} z(VZzHr2_O+I5;e{LQYK?+8(<-G2h(bC?yH)w(yJv&ZIxNr!1#3Q)Bf+Mk3{SPT%5WMsW1<=-#V=pJdR6|r+I=>*72`XHyMLy}`pccy z@txzBq~W&}wGc*G^oXcqNs!Rd@3k2gOxj58VAD==NOiu;rm6EmE~p6Vq)Fgji7@-L52cd`3cPZ7N7eyah8pJ#&@- z;q|e}6eJ$($}UoJr!9t8O6r)r&~a%HWbZ?Or%+whA8K|w{{}NdOKwk`+;g)fydr3B zN%QX14j_eo-gwv@1vF}F0$5%6ofnVe>2KYt9;H6_45XID+NAnuDevvYfplVV zNm}v`8+FGS2a+YW2FX@q`6gXDKi^?*;GB4qn=0O}B|@tgWYQEod~=p5>-c0=a{S3e zV)11Z?? zUSeO894V-c%WpcLp`7I*@=MXV%zfX{d2@TaO=^E>V~wP}zt7u83F=4p7#JjX7wAE= zj;MZ2F_2jQ6Er`-G$E(4g*tL}b>HPb3!m7}-U!L-W!)DJV}69X>%7J|7++?bDnmR^ zW@gO067%KD@t6$mSZGZg^z&Lo<0TUWoZWHB5&Cb%KYR(|x1Iitrn5?JOMY2sCMz|j zycBjLaG5+}M37axRJV3{Jn0-3MISLxVrOJ;Z_jSmW-x>U6@(=VKt#tFfJABNKWFG) zH}3bb$;YZjC~qx+JcO;I5ZK$@D4}m`EMK~E27%xMzK9@HsPd>l)5UjiAlv!!0gRz2 zMv~0f+~0w*LcQNL-;+M0yd5)N;&E826%7Z1O_NiQHc2`P)v4HP8G zHSa(dy|`DCeguSDMvJ|(qc2^BS`4Ma`a(mm9ey9R!q5b!D`!=L-UFoh;*Gnjzx;;A zj9>n4ui=i~%&C7Tu{#%k+$8TYHEC(^DuSEOk08n4?080_w3i`-$t<>WKa2*uIe|eE z1c)a7y3AYf9TfOAx~hOs?fn_wL%{OfX1)2)b>iK(qOL{XooE5B-~eN2h_*_R%t!vua+KzrlDShwcj#(tw8}jk-DK8pZ9+U|4|T;l%MX=#7hX-APOtI4#+SKTVhKc%v# z_0V-o87fTyBc0k{i<1l9Gh6*pe8S`me6X44@+gYKH3#gmt<|5zQmnM;YFn4xlYGvS zMC|Nd$C@l*J9qa;3wXQ_)0uxE+f&Ak%uc~k=WyT?XH{TeP?=ZTf8&k02JM^3zOe7LvJ2qtn7Otz`I3J?hyaPeFwo%+keK(qV^c#=4KK{Q`oWm%Id z&a11SU2k0DXWsVgY@z94NG< z=iarMdJ569%-yp}pw1m=T@;)@{(MAc||+H zu!RDUZo){brWN1rrzSK#eNu_}dswrL-yL~i1LPUCRVKpD!*m&FYN9nxi9LU4^)SY}q0IaBND9P}IyyRAW4^U;Q^5$Q7kG%% z0yn1dC`q>LyLwS$TP^fSPG}`4=M>q^dwO*N?r;aylS62Z=USqj;M)b%=2~PQo_Zai zXkdFQRvJmAi4zCYv<*j0gL7IQ9*9Z##J#i*vXP|s3>}U~GL!zW4(}ihpzFk&@Jcjp z!4zk-SzlZGkk>#E$;r#h^zdN{nBRN!0E9hmYZh9B9Ib-YyB)l&*A@o~Zl_6vE}*R= z5L8*BMWq&uL_IfqlwD}8w-!sl#={Y>1#49_HvkV9F=0D=gT{t13hhpZ>}d+Ye*g2Q zo<>TUd+NfYuSZ3Kbb}M4zh=@^dG-Py6S+?~r^Fl4Ade&PUunGZ#Z;-gk#s96E`3%-*LMN#2i@ zisCa}9gAw$MJd>=)L@w4FGzz@zKn@Vu&zT|{M#d+-r<>C(Fc0)gr6oM5 zog5rGIO-etLa=m5B=5EXHu-SCRzj~qPwI_#w7_P!{7U)yGAMlOo!K#tedSHS!6rb0 z6m;F9JjXz<<@e!3=h2DW3Hn5AY6rmn4Kmn7R$f~4Ff0~`4`LHs{Nm($p)kwyo$%TN-?BUX-nPi?< zsZC}QPD8q&bXts-J12?~A*Y%`1ExE(U32+xwgbG!U-U(qEPoon3%rrj~lGIlN#Hln6v>v`D|aFRho`LoVK`x6+| z{@%iAV*Yma)E~|ojBt{chD-9gGY*M34c&Mxhy4e~+S9tcb02tkytPu#1q%i^KG%(l zyw|@feK)nX<^)X`L4Fw)Uk_tF0g8EtFVPt?Wo6~1qlxLHna+wfXXby2!0)Vv-%m*3qbs|U_&-7`(f(8wKzFzoC_yo~w(p(VqI1fRf*>yKk% zV=cJVsq5$5r(?rQ5)Fq(=neCnhl?ZDR7%2&W=a#+$S+8L+K`}TY%_6FQR#=izb1!T zaTwLKfH%2>&y`WO17QzdwhUtqGZ^pFR&KmOLlY0i?fk-mS%F%S#SnlrWpKJ6xdOmJ zC0Ad9iIR#+z@Ra7s$N!n0$^ww_&->E4C*Ggc?_q~#{kfYzXfopWPiRG|Ion{M3cmX z1XQbnpbMawM)0-@o{Em{9PKAVF3M&6wd3Lb_E?dXHt@0SrJ*Xzkv(%36Nqj=$pJ-J zDSfE{{SzWsF0liJ&*v%czN`j87@(u!-5a#DnXR#WMX&zo5)h_n`gNts#)APPkX)GTo(ItWCf!rX=tph91Aa`ht#GiriWj2`%}v$q5ke-KzZb! ze`x{aYF{3|HHxP~e#fA5a_&Jv8RW(eBM&deZNb`H14l4npavy@0x!@)YM z$-QF75!Lbj%Fl&9tMQ46+c({zb%FFBak@jfa`6TkdyMDdCXeVxN-*#=RRghDEZF3E zrajDQsvnjH@)+;jxx>qA(*1P~A3_tWH@FWnI@DqY_mS0AYjTw;kJtbv$WLta%(ZFX zs@Mn)4z8zml@^tW*{K5CDpO;32yA~022&SA!*S&a5Hh?Q67_>`rJUvMP=T3xm4~|@ z0Y1HfTjfw$-2|0VGW_Ds&J;0ci~Z!UA|yFlrl8v}Co=xkq)k*Kv^M#k@9N67z5qOp z)FlAGogt!#48B}t+%XA~toXDJu~@Ffmu{w5XQo0>Sq+*zRyWypeq7+7wZ3_bP)XQu0Uv*Vegs*^u$6 zK%P1>Q0SmDptQYfo_k-%dJ?UzPT@ z#C!VRXhr+oHRL&Y{p&5UeA*Z^v^nvpHo<6Soe=Z4zSJ(_QbOn?VA{}7Ap&$0ii7Zp zzY!J?mu^$NlsKh-i+1u`0J=!8zH$|myJs;wGP=5QfB=(&G_yaq0arvmv9Y-a$t*joGH`cRIZZ-5YpUaSssatT_^0|O>?0jkIQV?!j0;-a9c z(4~E-7#LvBIFwJD?@sGNWxH-$N?a~=T4DbZFntzwwl>JsU~9AbccsbK2bgIQ^YQcZ z|M*DaqRcKO zoTrcFA@v7et_SkU5EThI%fvjNGGLB2^m+Rhq7xi~THL>Mu$JIHbKEZikuv@OfN^fp z9`k8vEube7AS5B(5aYhnne3003_W}CV(5gImlp(9aZ^aHKM;^Pasvqg-Wt*$A}-w| zq>x!EJ32a28^oTyy(O8Hy|I;i;d>RRf*IxWbE-+6p8)WSupM?^WMj(!s>Z8037QQG z)#+i;@ag`7%l0xG0dK+cToUqddtsUqz4|Ti1mTB`-MbdoEryFbw064FI05i=_;Om@!n)X+ic(9JmX-t(1+w_vU0(v_Aze`fAP2+){}lp54M%qz?WS4vH7{*PFlPL7J5 zsx|hRo12@~E1hB3;L}U6tHb_unUgt!Y&@Xku=>&%ZWVM%_wnizY=<6qARIK;7T>0l zg3ta9LiSH|G8G!?X+j>e?yu;hjyQobUn18Gs3lt>X&NQAYFjt&C^o55OM$}EZksnP3zqL0$Ec=6)J?b|JynwrGa{OyTiZIDZDg$p z{M?J8*kXl!Dx>rQNWFn*?uUo=zk@y0>V-A~ZX|Z-b5S50ZT{i*`|G7~4GlNp3L*+9 zs6C!eGO7;cKGp94vfiE~f%j7kGenfSfz1f*{Z51$4ArvQ2G1(>)N&?MPY~<@q7M1; z}=3tnR$74-;&i; zf)oiU>i5z&si_6^>YAmAJt1_n2*n8R-RzP9rtv&-!}%J;#Qr)ppp*;xzIToD&guk^ z?BJr#aqu{CX^#ronpKQakl^c>fR2ZNd+*;f!30s#cA_E$b|&W_ClX5 zNBq(c!;CGcIuRV&rbC6#${Z~q2z_fQ>h46~N2;!6PE2Shq^QVrbQn3qJy$A->w-Kh ze0`n>xB^bL=+B;j71>IuT>atCQFVa%b$Ly;w+@7M`dDl!E3d?}h_TsG%n7mM`Ptxm{_>#vV{QjYDtC!( zj>P|W5>1>d3L}N&-E6Zn)fr9h3sz5G{+)Y8s&u$XpXi!?OT!yLd&!UAo`>D=T{SNS zJ6#E2X(`@*$l^=FUi78cyh(u97oczVVUxA~?i(Fq>vL^Rj@%b1AH0O9l~TGQepx8-BRUUmL2$>Jh=@o4BChV! zmF|T3We!uK-81$EP2pYmwX1&&{OuByYfZqv4O?^)vgX|CGFEvXVY&#o2AEGF_`d)m@T&cLPKjV382j{V#70 zp`8@ap7$U?|AOS>@1I!}TQ2tY8xTVP>oq+oX}V}E?rZXh;&fdDx=kTV>##Ab2~;>+ zfK4FMK!+$*D=@`F8vNK2tmrlTie@;k&l*(BiRNf^14ufkbQk(|MRMD9l8aJ z;uh&ZS2Gb3n3hdbO^y9WT>D75D{X3O`f4Yvz5U63v)-@TRY%$kQZ0s$@z*6dGrd9s zDY!Knd{nFD(a}|~4PXwdY6+BrxYa*@{2+sk|25w8(5Jh1?*;xdyM_N7r2qf*VY<}% z@@{cSNl9txLq0wjx#H7-F)TwnNy!g@k`RcG{&=Pwh1G|VuV<2y(&F#uI9w6M^0?jH zj-Nlfbnh`TFqq==U|H`Gm^8|?M4dl*9hTg#~EJO!i_5@P;#P_khoLs)!XE-nr;*7ng zR|+FD@FrgPp*F-Y0i;|^2XYHUh#{0}IU0a*OVX+UK^33A*o@*#Eja#EQ%!UYKxHr; zSoGCnJzrl;focgj@g?ZdTWI(y@V*v(%dcmeJOkdJ?fV;;1G773bW{`Rw1FE-BZrUM zy$t8ztJ&)K7YLIB!To+zXg8M$$J?KbBQ!hFWs?GCvmh?NI`ITDK2HRxP}BGPgaH4i zlP&jIRfECI?==&h)tm;{I1pmc7pN&+W$+Y$d-R;0hXXoLk^}; znih#<`LneZK5>Dp)v7-ma!>*XtBHV>La+wKKVd~sx`2XGv2qs(P|2R2BLbtC-aik(AH}_CC~Z#^{Zx?hY%2%0MOFh ztgYWS_ZjACme|g~fK1qZ`AWCbQ6nH>oFr(HyhSUO@4B72wZzx>Ftm3Wh&q1Q3|4lT zFvjpAVjlC+9f%%M1F~?tgr`o$@RRrEn{b}vgYgNNYC)a`7<359xnwW1hx_@c#YxOo z;Zy%`44pV?a&C^txIK7$eD={JMdU*?<*%NeXSPI;7$PPnPOEa=rY4aPC#9o9-hsGX zmUOYxN*w4o5=n9;wqcMC2eWCwFt5;e1!v)e{u%s!cdm>abp-ulMm!i-ip(~)E{k4 z3m!;1cjS?{KLS!^p!jK$0XL&QSx2`+AG+p$w&GL1I1z2cwkikMeOH5 zp3$O#OuV2XC{I7$9(Il$dWz82=I5_J>!b|=7=XAdO#2DE=IEkR{v<=Usv z(CHQJ$7kr@=k(pW{bu?~UzYYzzKLGE;354d^yf!)jEs!;Er+}7>&3od&~jDNbbIs@ z6UwMd{fWL{0b(C)$iLLTvY{`cEo>qoEQ||b>{`1pXAj`6CEEA*=_K^toBn9#w7{cY zbM7qFJhd}wh2~V(uN!zaLz>?@2@DRolJIbv!<P7XFl*BJiI>ga5wy z02K<&wuM3PO4fsoZi(xW+7`T&(Puzbcb12NUY9crBaj)%Vfv&9Ud&f5u;~v;(%yyPKM1#a**z(4}1`{Hm zwDysTCKN;BEY3wo2SJ*y0y7>7yMzQwYF=9v3|fq432Bw=43KZ5wgbNS_?^GB#A&g= z1B^-P2diRlvhC(pI(MyL65`Y;3>l0ig20epKVaUUT?yYGrqlgF=$6#_9C3WOO$ER% zynJc{*9BS_(~E@Z&4s?HNnLk0HyCPgn`tySl)UQql9c_RR4O79J~Vj{j)moDIev3M z_$Bm{UMFY?UoA&mAn2T4<>?2p=Ei`@sVNBhu+b$8IP-JR@$#y^p+5H@f1}A6AhA)} zz}T2}yrdcn9dhccLR#)c5ItolZ=1ZMzYm3e|7d@O{v-P3(<7`x?zo@dIS8R0Y;>(b ze<-vZQDR0L$X02lD_Xs&K*lfwY_LAIUE3yZhejL(xbgRIOIWb8VjjjB$)!`c%#bJ2_Bhi72?{hfDlDloi+x zGXeu|_8GCo)LY+%EP+f2dZ>^yQCceEo+$RykvAkK#LjnX zTSJRK-Fu^;r*-`}$M`wL(A1^&mY z^FLq201Et>Ghlwk8zv@(+rT6IGBfB%63{O(H!uz%Hi{hnh3dBFSP!B9%aHyu~ z5Z1B{6AG8U*&5^V?0Y<(RdRDH4+#m$veF5`dhh3*tkw+nPNjT2Bh2h8&-?W+o=tQ+ zQH@TH7s5==&KjbkVq(wzIx*hbZ_W)mK=9?Z9W6R6Cc!W^x>4Q(==zvLMbht-^%7#e=TvyfE^WSuj#XGM? zw}hv;jf#ybX{D5weS+2Ua{Y*xTCHK0Ww5}ktho5%P40Y{ErY$LlU5# zVX&&ll+R&)nvli~rqLeQPIIFCu=+5k0R9`~q+0e@s>)v0yn*ys6MdqXkanuf$Q3$K z7+`A}0{7Vi;t0foJ1=3jvZkg*Uli2?;5b$GSWYm^couRB_|a)q$a-Z%PlK?utrJh< z;zvr}#lO!5fgMN14xFN%?1oAT=t~$SE{j1{7-WwFxk@(9ZL$B}IVR{xiU4;&*A^2M ztz2&{0{|uklj3-x6;k%kK5-3{JLd)PL;f4Yu){-t7>voc98t@Xx4r6JQv#+cN+V4U z3DZb0ry-%#nQPz=;J)?KrlN|93f@BSJiN~|K5KaK{Q1&<63?LJcEI%IRgy`FrIcF? zg~KJlk%4MmRSVPZg1!MiJ08D&^ivR}f| zfG60Ur9B4u7Z}JbGU;Nz^|>1+D)3I{Ik7l5Tb~YNjhsnFEFa0$5O{=yPJFENovgXm zoIc9=OeEz<}7;`HTq}S!;I+(6*iUb|SGDiBOw-;HpEBWu;yG=`*044?m zOToGeM}x=$Qc*3WUP>I7_F$u&I(=FKMO%w1)PYz&eAUD05DD1jX2QbQ;NZ)kTqAa5 z|JLkI8g%sLqY{v41sxar!7B%jKtx>iA380-1DNt$p?3MY5P2`r-~cbrOGg2|uSFS1 zLRHCv<%6f}u(B?u!!TDT3LQ^RSz&G-b z&=G0kc)clD7W9a}KgoX&A-w!w`NGSa^TtI`3xMYXPlhM&$o$idFc{qeHR!5Scs)W4 zdKE}0As7-U3cF3zh-C$rO7o4?)qIuazt8Kbe)NZh7V&@;p7{bA0{}EQ$-(fDpa0SU zWo2cF5ZNB%;{VbD{u!*h2M_jfu5e(HfrlPh*ggpREFzSD5$doZx5XHXJ zpP7A?ylX(*qP+B13f;BfWb!kcIx$Wi@+2Ls?f=wsG&D8kHyK0Z4_B}DNYfB?OY6MsR#|JAAr-^L&AKA_U`R`9eNm+6KpM2OGa_!FW0`eYoW zM_RaS5BCD0))=Xej*O@ziKC&OntX&=pv(TXr3OvhL|z1Fm1&5p}Q zI)GzjVp8>qy2@tio%=Lst-N8|o0}FL3A-5Nm?|r2%NJh0n;JVbB-X4!NqJSE#C{b( zb_mhZo%5 zRvs8C`@6eQElgm;1{dk*q=I*G?V3WeY0oXT@5k+cYMnuo5)?cQ5e1E6>)YhcdmB;k z#Ff;fq=tOpiE`CrRXcTo>Y3VAmRVgxLwt}MFdq;mBO@cPa#+~f**Ue_(A1Q!Rq;@6 z^yOV2U$KLueSog7l$HBHraE&fl#3!TC&vavqjh*j0ID96E7v)+h6e_A!7UjoI@U@Q zy>C*TRh5ZxNgDK}S@r|g^`f)Fx#O{@g%i?GS4+BG;AQ?G_$y+!2DP%W{5dyoK zU$zVl`ov?U1{3Qrqa;y)do4vrt_n{ls;)+ne9q7)k+l85ZJ{P{3;OYUU*9=c6%g6) zJR`bf>9V^P2A&IcQ6B@t^b&%QOyza|c%3D@%9&FQ17!6FMcP62>*rXJhfXqPsreeZ z5wI_)AKI%hJFnJk$zef((MKE9B+C$aB{oC?Y@c`^fEE_fLeiqSMAohx()mek3>BP2 zDBz!6^Z6n60t`GR5Hli?5}!X4gBbThDDUUc5X?X3!s8njXf&&+O>$IVNch(7V-=Oi z7Q--47|lypOn)bGb1xsXy5_A)dJ@xLb#+)_5fPCf>JczzJ7sx!A;7RSYiMsH!RvXH zaEeq-EmBw9(*f=C)Rsu7>Icck21*O==xJ6SOA#pBrn0haK+aNAQXmi{xgx52B~3$3 zJ^Qm0NGZT-A#Mm7jv~yFLI;g{&RhpCuxALxK0D9nZelNPk1%=V_OlVGkWE9N7L7aV{)Zqd-)9zdPTYDC|;Aa?f zQFwbtgBFN;cdg78>9#&=0Zkd`b6BW^jLc}6QgMh6ll2M7aM9D#NlGNPibB8ng{y0_V)ZTULRt-NCx{Kxu>s#x6 zpS1QaQQ5B`n&xJeDRVckx1klAhuE(8v!1dm4w9ByHp;K~^kH4_0mM0p1x**SVqV&T zc}Yo1N2hA$tG#0x$0lb@YA{gZ_a&{=Tok*+pn)!*Mx&KjR_ACzIR{hq=g$W0Qjr>B zsvZw?cy>RTNYpf*68uTp=7hQ8#dw2sOF^xxAWBu$!bS9RVEd!GLSWyPGdz3m-Zm(< zU;~2Ay}u=Y68bPKn!n*m;|mVv>YEzK!~z_akGX)%#XGKoM`<`WEUeddU_2mxzZg&C z&2YA0ldy8!GRHQJN|lzDmUsq`Eez72vbR2GHnG1@yr)dbb9`^fK~hpBfS{MVj^Ez4 zmU*GMzrX*!+TiT&uqQ{3Tm=fXiq|OX7a7-nCp9%SKjvwBsc0X;dJ|N=yCkMwgd)D; zW&9S*5RHzqI(bfCKYu=mOs_EEgqX*>nBWg$VGgI~Tu?c6D)dbdn^oDjr+Vv<)Y4fK zQ;@*#@p5MvnP(Tf3ZzfP#ab23$lwA{+fY|`rZW73PDfSbMYQF}P^%8+E#fB!#?WH*7~vC=A;ws1l+E!82MQ5 z83((H+UwxDOwYKuGbrkI%iIhJse^WqFGf% zkUe!#8V3{|q-E*<@L>hjhL4{gqMl65#OpX4m#3S4!&;7cGWZJe6woh;3J>;T2FCcz zv8_|HyLqQD-JzA)+YJ)7pt4>>ajm5I&|(yL)zF zX8TNvy{lfzg}I4X<1Cvt0HAw^Yoo`ebk*-mkk%jjpdhAD(DdLAS?#f6u`(0sNkw_P zq7tG86@7e;yU5()y$lW-VOiOfYd*{>iFrFype6tu(G3T-^s*%vCuUO1CIYBf z+?yM4T&!HE9uI4|TjABMdPCd$w#u}wI=-OZ>|oCPdTE4wXdTISEddrRUkAK$Z<{nx zQcai z)_;E;#q`LCz&gMJ<$uNtm@vH9mKtq{dqfn|q(TmMXMl9R;6N|Z5)@7^8rd!q!w z!0c5ntsbJtSx4%)`J*!^DJ_+S(qf)XDpD>_Q3Sy`GVT>SPpywfjpX+f_09>oimfCr z!}&R0A(U?dA?5T)B`(s)o$9mV(bcO~jhkpPk?s-^gk1L*569j^eT7JxMH7LLGBh-PNnYM_X4`?zTX?XoxP%;!9ywywfxbyb(`NrR0;W6n60JtAJ>3#4 z3KpO9bADNx9t+SMHH~DWgTN9XslX6be|h@N%1k;J8(ZR%Ja|yR3XKDGN#b|84!M?z zf4F0kZh37++R8X{n}kir8qqu6V{cfjd7)tWRnUR<%dDM6=5L^^=#RisXVZq`0u}6P z4Lib88< zVxpFzyG1y36r75i=;H7tT(Gg_Jm|8y^l(wd0#>bl8kMXxvbD*Cw&Mz8QD#oi^b@#v zq*jFDE?cU*_3K1i`5+9_+4&A2J8lbcM26Oirp#8tUyWt`a;eTV%L79?*iod zNEx$sFAFMVUfbWEbHNx7?b{n0&RrP1FOvz+r7ql%wx2;YwL&ETJ*>f=aOj=|h6kE+ zwaMhNo13)N2oveu9ZO!z3?>xn=AOgZfJn;8k#5CTrQtLYc?&bWD-oyi1%&GRdK!g> zDW*)toKkceK?{&eXY4!PxSENnvc>HhPFS3{BU2Gg(8~sS=%s!)OcXZBJAtmu+b!ep zbi=;4kVOGlNVgYd$C>DTc+lF~atABF&t$c&`6k{hiW!_J!D){xbPAmJMmocoYVXD|R-SR0o)7$)mjuhN?VzL91oPhUr1gFnoR z;o}OtU$~QQ|70!f)EuJXT3a1na|Lj!t6ytNivlPQP!f$04dU^c7{E<1q4^9$@48_F z4dSwm?BXunbpj!!fanm3QpdDG4xvtu(9kqKIeAop>W~v2E?G})BH}(ujf;V~k5X8p z2;>2c5CAVifEmjXFar5{8+7&E<+>=JYoY3f3Y{|7Qw2|LYLZc2UY=g6!8n2uAO*7c z`0#Ko>Yytb5*SNwjOLTS)iyM#tJyz_JynaxX7!c|5P_b^3joM<9=1C|KHbG%JvW#_ zj~q-xEGNbcP!+C?8+o?dvx~#wl))Un&s2)S_ydTIY6mqP<7+7)1{45Q09=my=NFF@ z7hilsk*t@ZsTb;6pZUDoUZkpW^@rqM%tx>n(v}(EUZ&u*bw)Z-U(Hg_5kBwi%1(%N zbyf-S`P4E#A9%XY;Dr-zK9o&C_sVS~&`?RpE#9sdwKW2LX!Uc2a9BOBn3&E=(OWw+ z*v2L%IHVo!)9;HR*b;dylDjFJAs#Y(tR&QyeYkelW| zr+0x05;L>8XuLtbK3gZ@HpqyGZ9Q1uS*;4ccltXxu!`oX>YH>@aT!MGnJR(8kO`Z4 z4ofc8`%R6>@70Ku97>^Q_LY_49w2J4#Yzm~bLm~3cE}@2I4|s6jyK~+O$*)AfxL#U z&(tt{>1sRBxz8};*mcmKsePN%3MVqAh6S}5r>>`&`fpS8@oH>TEA_;Dr!!YDsuh}C zTwEMqiK%h+emL|Y`B8ko{{sssOW9L0?@Gxrk%inBDNTvRNDc^fC|paf{e+o@-3Ic~ ztCF=#;a_q11L@aV5y@w@X%8C$El|RtY3 zA0bg9BL_-0NLw{hmLRyIiVSc+Th@gx2gXT+06c}Q)IlnG%@*N31%x;m2qb?A-|rdb z_F>t+d-77h>YH8JtDxWm-6r0Zhmos$^Ki4`!(8#CEjI1_u$;yRlI2~x5ig~>_Y#g)xz*}eM z+^H1%GwRdx=p8@!j+Dx zSBBLxeD+80ol(tTdt#7IwO_OF>_VoL*pFL)`GBhN4E+b8^a4;BDilla;w&(6+o4)F z_4|`2oUHH5eXTB1*#>x_28aX7xk#9GLWAnINaVL)e8=!BtfABMFOQl*g0lQAGZ}&r zDDmn_(~Pn`s-v<2C30h(y}60k?c4VyaK=dX5uz;;+FDkA`}S8y--9Z6hHMOGKMT-Q zcm{ib|AgBjp2|uh@e&Ogba9IBi0;bp=2}38CI88^a29eJ#5IhP>y&$EET!4bMxp=?`K~ z!Vv(xMm=u^5q}GFTjs{z&Q9udz##bi`J0SiJYop=$d`Avr`isw8u3b~2C(?;x2qS2 z$KqbHQer}xTVMJ9(s*3+fw%KTXR#`|np{{zx;tPKb%q|G7(VRO2Bt+uN@@ld#MxQZ zpOf$WceuhJ-%!M}e(YGD>vhygh@tut?Wh%0GxNsJ)>O}NG^_OeC`v(%$Xeh7hI_)n zpG547k=i44)ZX62%WLsh?X?k%eAmpOhLi}&4DdpMQ!fF|?lydnVBnar(XZ1= zJ$Px*3hc;qF)O8TnNbiakbg;Jr1+XY*!lU%iH(|%S3`zlc-5XWQuo>w!>{y4ug-VQ zNKnVTfI#gAq%y^QlJB}CJ=0(Y_cWF)tN=HtnKm-AF5NGxhQ>>8^rXKYrHxXr7k%$s zBM@>U>nrYdXn-g3qvoDq0?*i!Yx+B@(O!cWJV=|G34iyF&z8~{*=yaGF6-KV0yY7@ zbHQO~WMwgzbZ8SMzV+wn8PVxha zRhLcTwSyuZt6va>^#D-%7HB&S#&zLP>Z?+f6;hfX(@|nZpIHZg-lIphf?|Ye=KAbt zds>s6MKPdzNekrEig_^>^Wo5mvTY=4ng9;T`PorvWJ}$=nL>Zi@lai}x;GAYT0I*U zCda1dtuUKS8Nc0UJo6T&W?`ATYgJTKhNPc<&bcr|lpe^4JQurExlT{i^ksZ|e>YU$ zP|5N#A(Hv4=V%cTHzl?w#d5HomNkcnU^y5ssFr1iRLS4Fgrrb>|FYge0TG(8n3>u1 zKhg-OGWr^mI%aRj=#6&dpGL5G2jZ{dh0A@X79M>WNb!c5E^A8N7E@tJ>%0cEwd*!) zXxeJ7EiG1_qXaup+N&r?kRIZ{WXF|D6)__E#e$%nD#I35Z`L6)t{e*wn2C;!mxg40 zYjNvKkCvOOL-B(^Cmpv~oHv9t2I#xUeScDB(iQ5u@5Wz#lu2V6s+G9xwUu@6aJlGv z3@ro-3U!g^#tCu-lACYo*RYuYL*fD z=>&4{V^!5#?A%TwCGq2iX*I}}(GZx`xEN6k(zR-4Q>G52I<9DFFY_?R=^oRfOVLn`3PB$4&r*sB|LPa|h@WhB5G?AV=q;dPKAO zzi4;=`mO&dK=5zBVopjJKp>=IH*MdJ4GOr{5ReHE!-)ldX@cPQiLZa_CJX<$59GT4 z=JbA!0Ax>tWHVx58Q;UE?&6X`sG&Qw15DOTOEQ0#E#Q<8+)H_3m;5y+{&;zWTT~qO zoA@sR&eSxdt|yl7$OOkK!f;Z3_9EImW>VD5^K;p1*H;=T@E*|g%^WzcTe3gbShSQI z0;~1Hw8h)Mfc4_@c5-pKjT~mjJ{$6xc-7kdwhtt9m>w1m{5;tG){2k!$B(3gLO7g0`|N@v?*g z)5Cb>=hr6YWO&(CbratFLpH+%%{%P2U%Zb*39oA;?M_ZRpj437a(Nvysr%<2_Z6ig zcH?Ljj8CpTz0Q}q7}J`)P~qKlnxtelR=WF#`=M{4Unsw}esS`i1!*~Bak9Qm?&T;4 zye(_~o3Z+QoSD=RutRxPlL9Zm~dVOkUq~ zmyh5k)t<<-9ap|5aH$`Zwaoz&=vzq0gcgr$Xxu4md$~n44X~Kk&@*YYGJ9ppVD5v% zE9J5*I?+kA55SP3s(bOrizX^W*v}&<(;&w_8PxQL2OA(Rv~fB}J%$wgUWLNta~(PcgYT5ML(?cgbT3)}ai_qAzGTtkuTHIbp$a81|R6urJ2(?w> zSarC~>tb<)xt4jMyR(Z+1!R5J-N;?vEPSeeI9E_BN}?Q~m0+v}H5d{ePuN$wIy)7< zclbeMgVUXgx!jiC#9Ll=drM^x%VOycPGzyqC*M@BK6kR9c^bDN7M`PEOXG;`k`t+v zr6|%aCzPZ0gFy!Q{rGRR$bPfu$KEZPe|RO;8WnWPx{cGJWKFD(#qC19dx!KUHmfRI z&T`2w3~mh;$sx~OTwWNg%1g#UU%^x0D*?*J2BjC$y6!0F)}JztIdlnhd7{Q#s&?!v z^uMw|tKRsr5P5I>u^xk}(bW)IN8qq26XjMG*+x@p8Ul47u)uYp8vmd@yMB+Dm{^x_ zdGW}FxprL#D=$x^3TqABVA|h)Q)Y5PqMDvO@vZ3_ul#vEr|C)6gC6?^yz)X)DyK&q z%gM_Yre|_?+_^UyqD_u@>fbJTVxU@5*712WdZ19k;qEIz4d`b| zPzy79wOEQV2VyJ-UcIhT+CEXjiWD(00}|#VZ4X((=OD+5fs*&Wn(C_MM_fj z&I31NE`<@v>OBcDgk7^ag;#mmnSwD~M=mTmtvyK_-d+DH-Lc?$!uzR)Qg^*oq58Td zzB*?X2F|38-(rm@dtIW0KtwT+3%B!bqOV{Y`1s?88>x3@iwYf>5`$?Z0 zq6QxekPk{!ni$9MW9!p=&`!<{{S0scg5ZJ936;V&=wVRvD{+Uv>%JwZOo)`CrS)}K z*R3DKCLkW9ods%U4!#~qJ%Xh%ADK3(s!q5ZZIpe+y}qmdUU~16&luH1j<`m9)0!e2 zTAFO0EH<|<-nv)4z#H*AB6y1;=TP^c<*oeR&Mv;t2+UtWQtHAH`i>Ameoctrmb&mo z!|dqMqthXWp|`(`LI;j0l(PD5GvDZwh+2}e`FOhIcF)D$Dri>Ub-eKdVEj~nmudw@ zin;f6HquN{!nS#jmpF59)sJ^w4nN#tJD26f2jPGI(EL{(`((lEi)r&4xNU5cvJ*_t zhq&-(*resuj5wsrt`Bp6T#$U^b%Hics4>k?+yCWOMeJoTJu2z56hGLRdsJ2~+I8f% zhR#H!O4kgR|NMm;%%l^Xn1r8bQMl5UZiyrE0!Rm-R!uVb^UF)d2>T$D$!cm9fKC=> zM-@G$CV?!-%E}ha^+v-H`n1FnYX1&cKkfH#o3ia8)KnNnS2})YX-qXN03HgZLIO?h zq4fAvf`15GI7hQ$LzLTY*?Mc&1opJe19UY;ByZdYns^hvUvEC)cjtmY<*GT=)%U%7 z{9Q&Bb!Ub*oimT#SEokR$+}$dq=7cs0xs?T|0TA$jN-WOc~bRLsP*P2y_fUzTbh}f z@&flvJH)qMtkGiL5HhXz$IOR*_5$4k5tmf|KiQ#Llyk~&^3*_VL)Tf(M;!ML?I=+X z{7Gc$UIU2>4?>~acTT_J(QI&By+-M<-mpT!uY-SEsE8$k3Ch8J`(~^2f3H1d`+`|X z^=l5_@GF;g$!(;dtv{AbH1Gk+ac;3eiE4h5BsHT@FV%lt3R4>Fq@v~J=cU;e*t{sqS*%Cb*3^$_LD$lR;^^KUMSz%$2q z(Ay13Qd+r%$@*RwG7%571t-;Q&gPG8$Rr{){<(P>eiw(RPc$NF$V@u7e_LK2GigNE zg%t5NkE;r_m;&Leo5S8f_X`RNeyEu8(#jqg6Z@hOpBw$AvJzs(?lV%+)pptL9&AAt zDGe~tj<6`h3@!$KH>%p?1d`ziAhCso@7G}3GYlK7JODKVVe>NxvgR_Qb;%?iZfaL1j)3b4f7#uDfUoo-k`oR5p6`Mx2EpPl zLNw(H^EQ~2>5;}ND_&DHR&J8v8Oq%X$8XTsJSH~QbFldRb6>i4@}6Cko3M7|=aG+D z1}RoUjYWYlyy0x7(H^}_L)LGbYuNDN!8pde4GHGfAz+Qcea-$yb#6b#-@j8h_tyvh zC*+8KUDdy?>c3au`o9`ci`<@u~>;K8sc)k8mVeVzG<&HGJKpGbVA;b?p#1_hE zlSn3lcS*0c*rUqE`&fp{2k$_q^YQ!Wx!6{1((8%sZOsc`{T*K|PYumU%7ohQ6V-7a znw|#{@%GKYfbB}s%3oDTr&Sg+mRt3g7p$Vgj_y+Zx=;rF%mW4Qs14T-PJk2e@;NAT zpM8A=JLz=alHdwb;d=@cgLZx#&TSK@sNxlcGupXDlzM=%Nq)ACd zY>jR=PZ$zc8Kil*Oxqa%MZeNaUP-bf{^t1njPt~N;f}&XT(f>gHy*gSJ33D8^X6-J zq%M0i7O%)?HA$O?npe(yL@O7ini(?2M(mC+(FZTnN{%bjHj`eQ;2s`T)F8dKoNkB{ z;uRN>j@YX0vmkWgT#;GCZO}p~V9fV4YkCWjPCxpFld>LCxuGGS zdifw_sPB9Dwv$8ZhYuXe;f=M|IZ`fCU0x`9#^8Rt^+DZT$GyjU9T$prCPx*`DqPN`MES{n3+6PG1Qg1 zE)lUks?09?OYf^NG3j_(X%b^G$uX?UMO2%TXcqaLLeIF7&`o8i<5ujtOH$es_tua_ z+iXd0TF`qdS-;`o-8Dt?J|Q~4)=taw#6|2CsWb`f4XF4Sl31fr5?tRJraMBntqHxb zhkr;y|M`c$E}t`NNG}fV=vhOOwVo_JKL1d;KuIcuX+5@EGCnr{qo@M>J z8(qC=s&gU9?gu29`Aun*q&c~s3|;OmBm*wzpGa;M!#h+%a_;g@&L0#@2*gUVycxc@ z(@FOWWw?DN>g<$Rf{`7(5ihYU$^X%Pm-z7;Gk%jq`lT8e1w;oDxX|coKjNknKmF}J zO>}J}(haiA2dciZ+sI$uwC75s}p7tdg_j3dUa3Lsk-k~ZL8K^y;%Zt{`3FG_|lj`YASLUNv@M15QvKk^7k|l zh%;pf#Hl;yPQq8-Sz@gah<^|Y_oTGkla|Jb+{p(fTGtd@BOk01`9ioYKa7nx{I{QZ=0|1RM=5Qy6$Pf!2-V0r!LxxXL2 z-u`^~?}xWm{!D*ANcNqR`}@H!^K$6l4~Pf<{z3m^ClNb>@}fM?%1w#{uhAG88EI;0V6oUYEw|4g z)SiCd*^gC&rtE)EYWOIE{QSwwh&D7cJHK8VJ1sqZ76L(XE;%nR@g$;cd&5J-&5e|U znVI=o$o(^ja6a5W$q5P8X!PpzG`D$S30%T6=%OTuUAcBwYuS|lt;ajQ=Ur#havq`za#rQM9J@~1i#TidkU6>;LcWA4A2i*e$0zyJU z0s`765ajGg=MDt#mnyiBNod12Or0DY1mcyGZkz zQ+QNVI$Sn71fZeEqf&v<= z>F3uG?59yTV;PLkx)N@ZU-FcsxH%e~8WYoE#e`5h*Y=QCrsl#DT&5`_T&7ohclU(l zZBB%rwA4#ys_*dg8t(o5c_u}K+mM#|*H_bZ;ij<#1-xQn#&Aa@$n=hngllFYTyvJK zt!))R5Ay5(_b(In(tj`hP`fK&)!Wq9*Rgk->5KEqSoL{IUd}LuzRU+bDPojV7()Uu zBDo8f#GWL6xN*hJZJYaiUtix)zW#o<$SQl-lcraf)8r)R>3q1@+2y4Qt%nMYOP_=k z7*-lL`oMkt=j{jR>*={GE59M9p`}%f<}|ml8O>0dD>3i5aP6iV=JZ^5a&&7|)!j4O zx14`}jo~pQ=hCt5P46Lx-#)DbfJ-gzL5e8maBtIkcw)k*>D5oB`){&!3KBX8WMpKb z1IxYlL-#gMh1^dg;5TwFVO?E8cv{DIg@oAH*tke-et*rPrJ=cFH{!hZ%XFKHKVF&W z63y?yg2cQ$8x4)#qeCKcrANJaxvr~Ip%TD{Qs9D#RH&j<>#xO&LV!bRb zL0MU?{={flvBe&V-!uJl4gDlytp;Qzzg3&yRPPXoW9OZ*2^h&N&Mk z4;6kgu5}$Px6$1a?Ca?8-1zV&G;fT=J&71ica zX^-ndze8&%Z3&`WU=@ec2L_Cd@OZ#-^I_o zp2>gRc|O(seYvPg>XB14r?&XPpHm9=nFV$Z*7;DYtzq;-i<=S$f4reQM2SYCnk;YA ziMl_94X>}GU}KGR{PFRb!_-8SF6HIRW@z;BS}T1Xg^BN>fPxGXiPR}H+TB}3+kXEb z_4$0zovYkCF1vVh>}K}1S#;=witsk3uzD=&Uc%n)Tq^vkMvqO-VOiL`zK1R;aIpPa zLvG0--rmeJZA>u;-}MT)E>PpPnmM#cMn)!RH-cZOU6s%Ohk|1Gos61?M@@hHEsK>p zj1voo`|b?oXoVg9l`B&#E8>=4KbrdNHupY%2aBW;K9&x9bI@2h?vLxra(ZTFTLtVu zagUAce7nBP@*1<5_UM7`YgStyY5QFbW7O#L;!(A<9Gxlb*3QH_D1uT_v`I-c9Z?*4(;=vfLaa=` znt~#+Bl0x2Jh$?HmY*t*NfY zrPnJ&vMzAa(>pn;=V-|8;!2|LQP9!RLHmn*+BBJOsi#-v@va@qqF>}yjTUJ<+Dr6j z3b`JCD&W~EqP8ix??Tf?h8dH34~4sAG`0==a$7dmS`x>i-uUUFL;;&jy>1hA^d)lwD;R&WRxyGX| zucrr(9}NZTy{nzmP3Cd;g`BJsv|*h)F-uSW_U&R}_djYeEOR}nu}{-cI4nWcpyMKR z>dvF})S~`K%GVTJ6>x++J@bf!(9}_dXvck&){n+HHBGbEf@5n;?^K?yXv@(^4X^L{x?M5qj zI5=?Mz7>0J+fPi0WADiqF*2b=L_|6al2u~8ue|u=l^SJOX-^e0+o13Ui?M?`TGFqo zprEm`T-qa^ddotk)^(ZrSB_rs^QKw&UD1CenY*? zpw1{Vskb(so|%crz!nv$#;}l~aZ|7{2ojE{&R94F;-jkIT77_}jS}zF+=?XYcS!$~JIK$-LEmYeNc;FnfhQ-}l+!6jL-jV`; z*7${l)k4lL&X{0xUX$Ct8TOKrlCvc7jry|7aEN)+Cp`w!TsS`b%iPe9-d;U@FZS;h4!H=b- zgD$~I=&$V_KXFj$&97KkunG9Z2{}F4da~Zzz1o=ALlSXYs(4I9#<0*Og&XWdvmikU0?4TC=NBA+o2{!`!lho{cQ@xC`lf} zil|uMt^D1NmuYEf6dk&|27-;Q%L$^cOV_4<{CMlSnw6S4GVc(KsswLMUUBY><3~=a zsH(>L{a6|QJzQ!5KuC$-H0QE8GGl*lk2A*8^)wODWDUhTdn8oR5NbgkZnsIx{_NtK zKRCA9#{HFAI4&M|Tnc`pVY#i-_xR|LjFEkoy7rRJDx1OkdqLWHI*JTTOlf9c?pG%X zy^m|`a|7s*k@3NPyhd=6rieF6&uq4n${I;Vg%RQD(kipOOifK~#R<5%{s6TyCS-j^ zfq(j&$MgFDEP}7{G#($-KIuw0+!`%P_1wMCF0&g| zxt^n$Rl&@JKiSvY`}xb4U~-Q4namwAJie>-+vMxpf#b?4ZU_h`i3*^PP4*Frbs%Y6FUVXgZ&*tTKEt$;!F)OSJC9a^of&vvDY4$LZ{*tAo@|Z?5s<0d4oP1j$azZS4S{&@)s+$6;&V zzU}UPUWZ2JaTr!4`IBQw#5Vgiv2WT8hQ~iXdr@dq&8Pg5k*Blg5Yw7r?z3&D9G*V?v$hsdCXKlrmY2Nr@*?$KuM!{7AhEkuHlY+_ zV`Cd0wIXis9gVm!YVk;O^jMY8BsnXkib^Py&)z^!?eKIaUS5;>40#iG50AUT!T~Q| zKG82s5yJOto>EB`2HMH4{@&l8Z(-aJL2gNS4!c(;bxt8}nj+Wr$U<5NR9s~OFKKt0 zI^Ehgq3B<~yCRDXP>Kac$I8#o!N2CgOHtyL^T&Ivv z3KKN+^yrylM;Di9w@jBs9be7E*3qcCTa!NfT?f1CKD*{M8ehk@!~PT>*W41^`I?#* zxTr8|JlD22+K6ribfJ@>NKr0oH=;V#QvVJ}IK~K;JwOvqX{xuYKMn^N z&#fi(YR8!{i6cGMNRPv`(BrU)&k|o+S~7i)eW$jEszAW@T9ni?#+- zbNikP%g7;G@N$Ly4^Yp@q{92R;B+xM&J8o>0!55j#IV5&17GEK!GA9f^jvh*-~ZjX zVkG*NtLw2U-4L2#+ZvFa3mun4OPB-*8~+f*3u!pn$ZHpZuO1e%GUdWA_kk+>x3aD$ z!I64vJ6v+-&K--MltiTY!t&^4vYfh|U%{IT1JTloitW$OoF6JO<%=F4AD?ue+Jx5C zp%W3I?t4(|-Ws|b@1|Sh9KSu0c#VQW$aTqdZf<+NPvmaZVjO>wyf?-Gm=!Sf?gRnP z<0J3Kt)b9ll2j}blai3=i81&;F{GF*3d;=U}XjIeUDt-ecA06Z8DG zfc@BFhGM)aNF<%#(ps+zSl@O2eUmtDT04qE^L}U#8w(3=qLjX;$hcOg(Z@SEDM>kV z1DI!LoY~6H`U$f@%Qy*MMhf;fSF@GehH^cbOQmHCD&03$sv-&#=d5@vui9p-- z_dku<>r>U_Gi^Xx^`-}ome=(xjIy9#-G)k9WO2OQHUjNrtPa!H)6?_i%hY^U;Or6E zy$r=@6OVb>9By+=s_zkIFGDGIMvO+>%f0l;gP8}Bl;!Xgb2NRiB)x&PZmZ-R8d^Sy zC4H$rdpTBptoV*-Yj~8v26J?aOsE7`E&{~y_up}xX;+$D0jAqbX$q`JU|prwdA_%F zF7oV)7s@~2;0k!}IV+qhC|XhX86Px8`P8OM5l7Sgc0$1ksU7nqqoElqejHx+3{PG6 z^yk4`s_)u>?lG=zv2w!00%-TP*C@n2Lc-JlL zx)fJOGVcl$FFi-VX0XEY+d*giExeifac=3s)&S|$+EgpBZf=>^2NB$+4UgcF1I!M% zv`tX*vb}Z@7+5H$*#I&z(fuWMmr$N7-`>jx^BULKwuUBSjq29B-J6r{)_s2~_2bhE zBES&)k!-4$sE}0vi%Sls!X$w0#;7I>cUdZXZVg{vSTbh0^(9PvPcqYFweHrZny1Sn zE)^Ab$P}_wJ-1gPBO;2;J7VC!SHWt@h0#S&?I(*wAPrYW1ip87n>?}cIP_h;&ZWA% zyi7wwgHl{tS*du`tSBI;j=QbLm_jS!>V?N;A&YE=3hh8*$WTJp3z$6Vcbe-q{P0j} z?H3CW2fj;mqUqfq%|~|O^4k4(XS=A8yHWUjeW#`6izQ6@TxS$me*O9djw)2TVZbLB zY4^(ZKAY!yO~0zHMBYLVmjsL`;9%>@4>HM(vpkK+mYxmK_c`OTI2bKywzpy0oh$-m ze6(`Xhbz`ikEOKFZ8DjCtqb~P47Yx6-#oxh8H_BF*!NcuTfZ>&dfS))KqP)S6$aqk+a&OpXBN-#eIDBENC z*v9wQS~-Y`@qv4`j*cZ|HzFSB>BW&(*bZ}hhwCy#uWpXU7Aj6*@3gaVad4f!jQzHLK8Y>StukV`w4Jpd#o9BXS>YB;X<=NCEa!TjMGm%J-% zDs8q8u;&EK?>_zUF|Q~zf;e&Hm2y4mDrae}uBo?n=p94qSQgzvBjO7eqT-`zB#JaL zN;-vR&Q*kkZ5JBXn(MH-Oh4V`Ydl~qbrYISQIeSSa;htf!32GJSQN+B8H(*!PS}V) zO%xGPIrFe~N$I+3@m(L$bg36-kq!VKR@ZwZ+(7u*Y>EV?;EvhNHYcXcw`(tRTKYcp z7cNuXdZJZiQeaeFg8zJL`&v^&)xWd=u<}heJk|>bgi2}3VpHHqd4e=pT3H#J{A2}X zX&IM~eSS|G>Q3=q=*-R~r86$D+FlwHc}0yWUORuxFg36b32o46E);2M_x;1We2tzg zc|}G0k+S(;&A~5T)W#`icCz)0{w_4dm@8+g&<+URGeN^%Q^=goK}oLGTi82+P(D10 z^U_w?UKwX@*u{6C!)Qf-?bFN;m&Tr^f)@As^=ps)Ww-uN5P4`dZ=J-*t~R0@j%A_1 z!`<`oKU1FN@r{>dF;`oB1tNq(F5{W`X-ZSCtK|JhE8~`nhHUeR>Ccb@u?MmmSU*2J zK@M}8TS+^vDVV0vpX6QqEb0?lVpJ8Sq{>X8aooauiXi8vld)56|WREu1?9JzC*CTrvZs9e)I$3v`Q81g!hRufDuQd;Q9l#9i&N#mYu#ZWvDV zJm_4E0p9ytxJkk`mzECYg1yE|P~y*xS2@UJ_BpbPtP@iri|qTezcmL_W^muaENT-Y zS96W3u`gao&6XkQsc$~?s}betV!wh1rC$*P-Dp8t$eFtoh~nN$QI)ux>J?awm9@1& zj5xQ!#y+SWWi~_I&CU9=mFsgoMF!;wk5WF^l@3-v{aM$!*k9suX=!%WzTn0)r5Mz` ze1q~D#~Ds2?h%joOKcSGi|_r`^!4>^_M#rSI%tiYiQ!1?EQ=NmXP4Vut#vbIt%1Vd zH8`pSlvIb?;-9*$kvN~jy>@ly_{VLB6?lW^4<5?=ucztz1ce-fLYkFj(<2&7^jwx$6 zg>O;3`#vR_i9a0vexe|{js7VJvD-_-X}k_jPLZu3JL!*tj1rx~zWqlMK-l!5Q`B~f zf8Zq6)BzAFOMq6VZ;OJpR#bd)^0-rv*xc{mH_*Y4suw>rISo_u8Q1hH@zt|?R!(p+ z?{lc+j`{BU9_?lsgf}W+a4ReJe>>b?_~uxrJKMt~C%(UsS7bmLO1qyx(*zKPp1fnt zdePCvheh*l{LArr&sLAgaJZ`Wd%uB~0XMQ6DU0uPq*!-3t-{xEcSJY{y9d4!4Xjcy zU&9|zBc80h=%g^WpR9JW5D}^G+@6-}ef{%Gs?|X50DzBvVdT21iVFP1im1h*B1$qc z#()aD)V6-X$6LCT*RHYm$>S`?#>c4vCZXEGPn=4@jt}JPPxYxvM1Psr$U@=BpzMxR zuKHmG@goH@8ygoeqV9kEGAelr>Z8*(tlud_wm2sFet8+v{F-8MqTUlg49n}0+HK$N zA0LcnZ*Cup7?~C;dpmgr-l~7hfIpvWT)XuxZT8K_j*gDu;azZtz~+i{D|wJO2t+)} z&8I8D1>fPlBD7vEx?n}C4;!EvL{rCu75FA$z4RA5E|_A;1r|6>>ip|miJS9nW*%T4 zJ_5hZn&ieO{Q`q>78&)GpU-^8tK0VH*jL3O?rQj~0@`QX4Q;xD$6XiqiaT&cq6KWf z_s!2|TBK0%CK@)p!8mTku-HYpnUH0uitlPo#6UaNUr$(aJYH^XHa~ileBlhj?=wL( zC1DWy$W;m^nW1Vt{>5n)R!xF0F>})qg_>R&_Z+FPOPtcdz9_T&_6Rf<=;*w1OMsq5 zK}(K{yJl4&8$9dyVefl!8a#JyjV3gh1U^2ps7S#HcP1gB4A*60ByBXkm8jDTKttN9 zH+PpS176R(4;rmxV%EQTZONQu{GAMu&<0PR=jPKg<<4JIQ^v-|8R7eRTqbo@wu|%g z)qrh1J=Y_i#@BQ#dV@Tgz7CpogeyRCt}CCjv)i1{4_j&VC&Qt;cmF=F&UoV4hY!H> z$f&8=Xl;7agO;RC+(B}ik*vq87+2aa1C~(I4WpNMM_1e<+N{01zu&k$QEOOXYd29> zO%o&GdsL^K0=uFhvF&qK%EB?egU@cbL^d;xRwMzo4yU+m`QyEw7U)1F*s45k5>X~RKL;}NT`G1ehHBfey5^7 z)uof*)Bn}g=jT$hl*oahJ%xryv2M1!ktP@BvtO_~9ZJ&}ruifhBp_zZCeSbjL3Lv! zjUR!|tInV5h}?o|pfwft`}c3K1G6Wk()3szU+)@)Eqs3zfFq-~h(>9&Qdf{xGQF91njyzA$igdvD_Fr0=ou z^ArF<0+wGTFO4f5g6|{yD|*P3Uc~IPzqq%D5|f#kSzqR1eg$yxLLdsb%RBRZz956! z)qA)EUZmzc@mhGh<3pQ+9IRi<&KkP?K*xvqs0!4{Y2@qOS;|z^q`U6|Ps@sVva+x! zolQ?!e5c{Y8Tf0)E?=+s{cWGw&S5YFm5YtSA`fX@U0rnqqtbtr549*3GDP||J1Tq& zlTZ0RC_XM`M+=n6#D<>f^1^ zse#GNz2NW}a4M8kRKRpU%vL{9V#Ju(Bfih5G*z7xeM3Rb+4+q}u-fqI_T=%6#!CV; z5m&cXC2nHy)8F9f&?w*z3IgH>z}@(t(fFgo z{TbEwpnKxCS<%gJrB0>z9#w~j|6@ZBCDHKsZfW+zt2fLZ#9YZlAlR#H4-S>sL4T6F z+%@)if7k6?C_Z ztE#J8TG__9uHYU^EH8DsDLqh9(xeNSnaDO>o~WM#A?8D+pu8i)Wo3^VtEN{GgTi=D zN8iWwb#+MJM8_4e%HG6z~jJvVLu&YZ? zV66ID?#FiQvi3UdUg_FT4c9jD87Ey}FtK_P8X8KrJA*e!f6g2>7>uP;62$L}>f-;j zhS6Z$-BAsU7eGEED23#X3ze0kUs;7zLQt1twoy&v^$jJ@| zO2;~5%(RcV2lspI5Z42jd-oV(MK)J9f$Llu*V#TimUy-GP<7yXCYS8TV3PW z;ecohOG-*A5WL6z^x(jY=;C$MDU2Cfi%OH z2!Hq8;!*D%j z78Vu`j&GLJsr!hhs>mk^FHj<$l$4Y~^4LhtYqw6k{rXp_>zW2vJsKcKg?M9NaQHf7K~T29!k>;8L)j!=f(~AU_g9P=WseBr4)#S}HlgreT%I zyYK<>U0)e?&-zKrXZ1N$!Zj|TETd1ry^{<7{T0I_BX|}8#GmiDukB*s_^Uya`MY`k zU)5xL_A`j<0zheD=l7i`svAHh!WYdirW5rQ28AQ*^e7#kV&_Vqz%LInI& z(0cX7AAa|shL=@gT5bO{W%*@7oU%cV^+8Ug| z;MCOAZuv_Zy) z(u!<>*4V*1F)>lX$;>Dk=_D z0AUP|BQ8i?zFZkfCpH3bCg;ZEAxKI<1|+{WM%{jYtALWvL<{VJrU+rg*BStiDoJKy>rkQo8MyA6JW_x^IFxep_z9RgY$wK@p$tB?$sIW~o-Fc5&X2Lx|i z5(Hv`e_)`3JHx49NRmB#_#!;~F_$iHC0KKKP|jHDLteeoD}56EsQS6;=fUOCO3>iS zoad1zPEatnHBQ1}xg!D}RsT{=08Wc<30d^^@`5B3u<@%n)7P+8xms2( zLqS2ry-)P?EJrJrS(w0@Noa~^LcDe1tKYyX3q61STth=+dLFFmmQdPJxLf$yc^xxv z^SHxazs@ynY*3bOINDo0+}{QRP%D$h@md8aGWyq}6jYu*{XovFFlsX=-(~ z5o`jS2x|9pzGRxYM51==6pI;j=)YEN+S=Mg+*Y#lF42pF<}14k zI$kbw0VQt|{IY~My7u-fZmSbK`Xx~Y4`P-^x3kFM*>Q+ys4C@{N_-s}(zPgdm^y3a z3o^zFA_?OP+v=%S8FGZ*7DQhB1~HzVfiGX?;$A%xYL@vN0Z+684=6et_bSeuApl@# z{qfPhM)>b0sOK#$tV%E9i%NuikG#ORf#eG33{ZcA*g$`Oc}vItkO<*gjKvO_#l?>b zDkn4$j`E{_C~(sxfhl$L&8p06ScN+M$zP`-4RYFpj`=G&kpoF^fHeQ|W2ukOZv0_03i zN-DiiOIu!A%ID83Ee%e1u{2(5vA1CbfMfH|AKUSoF7HuTel^D!ARNlcdsC^tE82KT zSDwfHsuB;1kCw)&WlkV0$t(!Zpet2E;^xh#;Mm`?=)Q37-0zX{Jerpfb#c(r(t_Fw z#p1AouaTV3#OwP9GuR7Sq%ZHT9Ax6rvLCVy#&=PJ$o=xs^n(8GHAE3)uFC+?-zmu zQ*6;=FVV;dc@zD5kBlYgeU_wz;6(zBz&LnDTt#&RF9k#)9QMzjKa?i!Qcsx3V!w}! z_<+9z?Io*c9PDLx!Q!dcgX#Kd~dC+Nv*;#P2f~ zKR;Z=MdTfMBqLKVuxFOiuk+5|zPWjBB7OCvQJGkM_SwWYG`2&9Up|<9$$F5OP@fD1 zQQ^Eypg7aa($EjRHa%3N`4IJ;{8;i#`04l!cx=p2W%TbH9kBp{IGUQ8qNb%S5G5xi z4Qp!~Z9nDc;1HqAyw9L7qy;9$_)@L=s}+TjU$e6@-ZI1Gof`R-rx0(Yy1TpM`PwzP z-E0OIH<5QyCYCp^pE`wK zf|FdWV~Tl7<~v>Wv)=Whq(})f6XO75$7dt#X_ z9#}3Qcykkb8yn9*KcqxNYQgDa_q|n4YAqxtCI$@)5~%dv8|v29xsZK8DS$jRP!8dJ zM#e{w=7p#iWX8dde+{7OwqjNvE-f&y^@^$}xI$MK@gO*jjE-_0pDQN?ja}Sp=V=fb z%k|rqU(@7BiETix;nEK>DFT27*@M^pR+bD3icp})5og8#-Q)$ld2=DiGK`*7$Yo)= zo|BS8qiJAZ`Ex+h3w5xf!K3Sr<2SwtFwp&O1qniO)WmD8xl!oU{lfxJI6`*Hl(Ib0#qp~R8&+J?(RZJE0Xw~R1qIBGkbUb z>OqD5_y`C;24$A|wOe9NJpclLw5tKmTK(JPte_YasJ)Yhlo)!Vjzbmd>f+QC(|K67 z0h0eU$l3uG8V2PM3c^L|JN=8BpxN#3OohQu;@Kp+aP1GMHzFWJWn_R}nFAucQVjQQ zkMEIY>60!3%?(8;C1+=6&!u>-00JA{Ux)DT*)wNcmcFZ(V7c=cnV4qySy*IGsC~q_ z16sa9>#gfkXj0FZY7-;@u!r%d6_|j~yBW^xwn0TI11}l;!`KJ+LumxuR+boLUsqTU zj6ht$^7hK#cw^(sh?bB?JmV)ZI7FOQiL`vy|!=9>%ANPGE5jt4tyhLxYqjljSNnx-T}je-0z-`fm0 z9r6Lu>4Qqi&0XV*LDOT?yK- zqrh;Fy`lH7UX*EEZaH34?oW&4%GNKPO%d~CzNkLbu+gi8WFsaa(dZefdiwKu6FZMV znc5KKOjM=+X?A>h5Xb)*lwLuP4a@QdkF{g)4FHT&G<*3zQ}1nvs?)dr9<0S4+$Nlw2n^;zy{@X$bav{i^j@Swn<^{3G0~siOl5^|#hm zHV_Dr$lholyWYHM zbY)YT?M_aPh+v3#-NX(%JRA=Rb|O-r8rxyV*04ap49hSAgeZW_+A8yuJ5T{a;()&? zT_MtAYbmD?zqNJg;>B_k96_-pmSZj;=vkuB-3n{G078(35-3gqx}N73WH9=lrYpxI zkxJ^3mmT2LegFO)ETx%ipm;TLFS#d=_wlNkKv3)2DIr^%?K z(AdzGA2zg0H23OgWf3{2c5XlLGNBeY;Ra_UPgvO4a5)f=P-UfR011U+EN>}h{l1Gf zU`S>rto^x7jqAh@m}{cHNfta^)Tz2~X3(i!3yzIJgI7*im@1^}NNI)R9(Vme0ao|5 z3oijfDg?}S8NzcI?J1I<>ox`e$YDeApOF22PF6x*CTuj@?>FNkZAZ#DoMFM#MR>y)n4EGTV9!%f7 zGm;^K{T`OUWC0-tSf7ExKn2x&Cptvi=a!b1t}Y(2!lELW7+SjYwAWaAJhD3m-34i`eWAU}^&(9nY%jl28K*LO0lZ>XH0;ev&JhKNWt?k0r%5&`-=R#W@x zcj6R?C9J9``G}7)0NjnCO#-&FF-AK7hBKc8MCLrnLR>}(cV%&Lj#iFi%nTG>4%3F` zYN@PjZ1fUzj=#T3%{ZJpm;DbtJ==?Sgx(Kj#34Af?Ice?Ctv2Z$#lAvw9hs2UHQ_J$D)oy@l_4T{NL|LCY8gui=X+_bK)4pzb2xT2FfwO8(>}Acbr!S& zKvyP>J`e6Ug2k;gQeroH6{KT@zbl3;g1LZfu-^g$17SoK24!hPqSJCf2rdDE?wBqs zB=in_x{Hg8HsXgF)rFT3pwUll|0i9PoGO@k=|gELmu6=EJ%%jR)OL-Z&=LuL^K;O8 zK{3ow%h8xAwdnEprzy>^v>M+dE`I`h_1UTY0Y@XFB!4Cd+`;1f?XlMdV7w6gu@bIqOsYaWHOXLnQ5OLWlWLqH96rI$TBZ8OI>n_`i>Ds z52{6kIu|FWV@FKa@YEY%iq=23md`1uItwR9Mn-NvVbloc{ysi#+^(Py1d)TQe{UZU zUX&d1z5es~?bXTD@NhMlgaiyk9nu0Z3rP7ES$9P+$#EY0I$T5?)Ry>j59fRe%=p1D zm54(rDkwxa&X)JSI*E{ECB;a?27GH+?@=y#v^9zb!GVN?Btgh2v$S*_rgz9YV)r2e zY7ZGUP$>Qe9LlW;Ax41HT!`>h?E-_Y)>b*`aF}kqfB!z`>}pfBdY%rCsi}mn?hs_- zTbi0s$16OLOme}sdsW6cvRrqF^AF!(OkX^1^kcS-*T!ZPjmN!Db)T?|A$_P zVhFlB5ekhig3Ch$oPnMq2~%yykOKy&6m5=y2}j6jZ2?iqRfTH*q&taw`pKKSRIwW*AUH?JZ2Dl02tW+_x9t8ejmFSQvIV#uPn z122aN(k47n_!l?_JAb~AQXoEjC@-fKa_oo9Fi^txyg3Ht2J5ptz>M4dPP{NOHZJWq zg&Luz*2;YzlH2uyc1GVe4s@_+?T!9p$2eE_=uubC&b#P{`p4@ zGDo}+Db>u=fsjjXzu5pH;sz(c02trJPa1TIPBc=e9)-eD` zXAt;@!zCHuMQi*XDmqRPtA$i?43G&-D-?g+XE2yS$JKA}ijRVG+W!D_M2Ew@i=?Ea zLAo9rzrn0tf(%_Who3e`=h3%sRj>s+dwVU-%{f+W0J7}INy1=8t1cD>i%sj? z-$@6&?tMPZ3ND0JU=GYLojI)qDi|nzpjh9DS2nIWJ^KCo-p)?j2v}rp!Qi#PnUy1G zdIZa6*#kTjn}OU-Ai@B}#n&D6A(YMs6x{}d$@o}bJdO>JIC`jX9LATKY&Ja(30Zc; z$74w9xbGh8rpv3(M8H!}x}F#lbCt|dneh!U&S*aR8w#yJL0E>`j5J#^+N1LhcIQ&S z64=|{2dE@foJ7HRo|NW$qupo>Xamj*{j&U~LYCn^Fac;(f`v;|d`Wisa`BTcPC~aJ z#6GWU!&DsT6ZX);AYj#52NNphFnqX!=-?G)2V4gyS`b2mdh)saGWq2$a zQGBbwY*&H${QRj7L%Fap?O4z`c?~PdK-vY(JGN?i8g~U)L1)Q8HB5a$${`LtvcSzF z|4t*L9qMGnL)m5Z#X;3W``w6V(_jAzK&QP!>cgAOF<#wih5IN=5RimDHrfDz^#}a?X$G3nEby8vm2se>fNyA=pS5{Cd56=fpSABXUjZYfd73!#XED(!l8hM}85m6o3loo*cS`UN9nD z;?HFL$Be`MuQ8k%6-CZrVM0ww3G*!B#Dvq@4|$vT-T9UAS-!B}FmW4W4O}!22rtb4 zWr)HQ`>-N13dTdqf#VWjNYF{dF?oY_7Qzv-6Z6zenjA`@?zDw|@?H@0b5 zK`#z=!8i%PLJe-ys8X-p-X$J-ajy@?wU@w3O1)#33*eNF`tMt}ZX5$S4hap_p?eMJ zW;1uc@kM2&o0e7-+~e6~mAR!Q2xdik55W8-OpCd${gMSR+thSio$<=!I3g-4%E;i( zwF}j{YWVFR7r@vi90B)-%uI+QS=LC7R#X$`-#!(9&D&>%d8W?(j*1gRRTXr(ZO;bAsdoyb=apZQ@-GbCb{}@TwdJ z{gd6@Dm)z)bs#swI}X6NadvUh#1|h-${;>U`1$UhKscuL&F6=0mqYRd7Ij~T8Z_eX z#gE~&9w4m}Ua~>PqPPKt$@ln(z^(~t>4VYyQjr_SPL7TwmsT>L1j9RJAQe~RwObMe z_TNCZ`eWh;=``0poVpSQ?xz($NOZ;Obf!w^V!Q~-6AoO&xtSMzu!|TNT4Bd6gYR5w z!AErwGHr|fIq+tRnx{X}7+Woa*D-caxbBHo}9MuSOG;Svp+IKkj`_|*i*YWaIH%xSxG*VnIBVDkUG zwR>U`y-j&;nw>p6vcCQhqIAgX51@0~Op04Vv>b-?KyRo)Pfh?(zRI&O36e3Ocd))> zcd51V^>R=+4YE-A+f3uHLPKK$AW^&qw$sJ>)^>C2yw&mnFQ z`pNa14?o`O5uI9GC-UysdF+E#6OtqRn#DjXM#L3WR)hPAD4pK z9fg{Pnc#ikSJQfK&?I2I5o$IqIr(i6f2`I)1GfG8_SvKAq&d){Vy&=IGSbonaZ~7* z7&H$69`y(KjuN#k76G6&uqoD;iXK6Q!j{St0fz(b$EF`p^;y$d*n z^V7gDr>~VaHa6D8LZ81QE{SnWRMH7uHaU}z{N!iv!g+9!2xL#4FvGUhcTQE z=m^&KBbr;;yY=D1zqEiApS52BZEf-#0BnFiAT>ZP?`Ufam$7WnGSb`hlbtz|=adjq>~89dgA=U(57OdEB;fX@Mtk_`?v zyp6ycCeVPZ;MdnRDeWifazLKNQ;n6FJB2O_T7LZiZ$Id*Pft&WVAsN?2Akfv>;9G< zJOHcV5^dnH8Pb-PziV7<(y8P3lf3PKr{aMj%ehhlSP-`tu#PJt5%t>n3e0S#Z>0Ef z)~{wId8vsq7=~|W?R_;O1O4BOFlKo>S3ZIfX&h@bwK-%O>n{EI9EP()0zwfmfdtyc z>yLS>hc#kL{JijXqVS)&`hjhFU{o3KRK{!3D`k#a77g-AImlBZEvJ zq%uRTl!*FO+NC+)l}C7K2$`_F z)RULkZ!lA+*Lx9TkgLUk30bJWhFX=9l3JkJbezV3>gE_Vx<{7o2}T(5(89 z)(2o}aLm8V$HvL927+3kD?>l;$1DJHHwK`5hJcl3{r2nA^kn&PqtbSNfON!)D@jdU z1Ya{N#e4Z*)pWL%P5jcS#s)3k_`;eJhm)BKGturZv2PJ6{pPGMVDu0Tz-H31oCiupjJEb z`R>jRxIlV@FwFgNSm}&dlRfZelvyJ?y-*8)wpoZ?&$NN9>sc@WBCo|oIcEECp)hhX z9Ocy(9F-kY3!Y;K&Vhddbs+%mjAyOJziD9HaL^0G!^G_!0b7o6hAEMy2_MofA( zk|RB|=_m~Ba~{e$GmU!B(`rBsn~>S$mgd8$x8HA6}jfIwi7@-fvn&( ziKF{xN=%7}h+OvAqGtvaj@~0kXQBcE1GD_!sEU5uf}6q%a{ETY>A?Q;0fr#Kq#&do z76!PSteQqgX|6zSD@S$Uc@q`cJw?_>1^=VHFAv9hQQLi+SFK7kiYPOQQpSWLvt%Yy zWhxm$=Bd&|#@8%ErX)#b5}L$oj6&vQ%B)uzGM)R^+IydUuJ8NKb*}5%=lpT5?XN}4 z>o-2b{oMEc4EFXW-eIN6Wr*Kn?1)s=!`noZF76?!NglUytp>)%3{n-f<|)~AxCJs= zhvXkvvi(@u-S@ew3W-W?zQ{~h{96V@QWt*%StjrOL!yJ$ZX;-JyvD~^g9Ji?MZ?`9 z?mj_sZOK`?En5F<@|FsLHI#0zLA|?TLm~U6nNT%k=r-LVlQ?wExqo-t%I4t@kK z+!*?%$`U#MJ+x56)Ev}&JoV;Jeyh$RHFGy2{O0je-XOlARFCP)sLFP4c{>=*c^mUn=y8XD9ascEKkibtMGlFqe zU0MD5^%1uIsKsbZE6>?0{H)(!9K3#q(oCY!^}ew&a_~0heftg_T3nn~ZLy>l#$Ya( z%-E3yPLYHSLPZg%K6NqqsEEVN4$fC0oT!(6;3(;A9h85=>bf{yI8P0PDOXM3?A2AI zyz4L=xGqcKJssEr`oOsyU+{uzj_AUp4xR28cq_m_5Y7qm0?@b=**!t06&3y7ZLw@; zQ9Fe!LBlM;%l#HPntco42~|WWVyumV2kBGuW)#XBRH8YklF2^u!k-?5ySTbSao>(&2o3E)(}XK0=oG7`EtH_%ksOG4&5Fz(y=#dbfv0m=oRn_|T; zUWkf`#g_>r`GI7lGe=bSWnn-Ay1|XCwH_>+!Ksn`cN`kY>h`54k#-V{FImddGTc4L zLUWY8OrJc*U<&aCfSY#G2G@2J>uA&|pOhk$7#|wtkzJ=5Rh^#4Zwc|td?9mlecSD0 zTy?-#a?#Y1gA87}WTTPIDS=S`v0OO2G~wKadJDQWHU^_&do%P)swaMGf-X~zLiOk_ zz^30CrPaxd#;2JYDu{75#tv>h+cp{_QH9TYY}eycs3XSobHN)Q$OwUI-vKat^_n$X z*87;U(6wAE2#y{~OYquj{{63+qe3aa6~J+V8aIEhJ;9)x`AaVphdG!Ety#ZWlh^w^ za8xDvdo&wG2Zx4Q3D+W~RPumz_hM_^9rimw*2>RC7?{kAMYlXcY1@=6mvz$Tj=bJ- z3V>}+W=Km~3NL>wu+*An2a;sCWy_X2`@t$uy%4az|M>Veg11=pkEl{lpVx^9USMY> z>rQAUY3H&96$0RK@2~1Tq%Wj2(pchbTw%}m84vqW;i!dn#-;foCJI?Lz|Ba)$8yse z()H^1J>|Dxlj#lPE_8|Ecfa=b(!zj-UvS`FhH`{}w|8cE%KDKlyP31#5~UPzVEYqj zoxcOmM3RNtd>@#f00;=?C~r8s&spBeSO?pqkvbvwiOL)o0fIEDBG9>~+44?QuXEnJ zbNEH&ZQ`_tQS`@nwqg!R_U&)tnA$_(Je~H@EP7n&;>Fg(`GGuzzZv=voF_$p;TL3yMyaxDtAfi(n)*c2VHMV4@EB>C9rDd z_XGp>vcQQVokvs7Y^)b?aiErRfu?DZJx<@#l18gtc>mb#+sK`c0DmCllz-) zbhet$UbX!bAJRW8aR_&%E!-T^gX>kdMCY6j&q*@CkktY;5e}9lI zVT``l?C>6{dM5DR<>lq-a<-tjwNqKsQ&Wqa4Kw!ezL`FVlbnkBCUTjcM1}1p9PLa8 z607nK9QiIGe9Y0#ERhr|}=xI}wlb?D`;azq^A%)*y<5_V!!kw69ZNqDgBf9QcpI6&4Ew5|=6QWO#4fvZdr=w(E2R3h~GA-h_|S@<&w~*fK3FFEFDK7QXt0 z*S!h#G3Cg(L-ac))8VtSmB7pO~73SzyXUx!B<#;fjPR1 zTb+%SwGWm^z&IjqqnW|PKY?*9yzl+|q7awV4G`cmqoSf9l>{#Or1#!CcJ#rbuGCxa z*y${glkFSgyK+Fb=CGa!<7O@C$T8DE zQw~P*r`{xZ+<~a)aP_LZfKx%jfG!Ak z#5X7?(lv1Pm+#!h5?|ijo+e)}dhw#V-#9y#!tN?l;TKMLCV+#epbBH8Bwd>uyz6|$ z*(#=BU3aV>&j#5Zay9iM8+N6d9#jxY<-Gz>FR`F+Xs8f+(VEDt&m9b=QlDSCCg0j2 zpok7kG3hR_X50>Wy(W5J$sF%jNI@WYxDGe5(>t+Ep56UKrw!JWy4nh2tV+n?)`vwf z5nue)$chIX9&F>hIa!MG_av{LFTW@nikhK1GDGqW0+bqL zN`UbrFG-PUDa_4EIw;l>pMecq12_do!{tbT|AV!c^;}SX07Kx4=&&S=4kf}d(SYgM z<5TU$a5zL+_HE4~__5L!1>8p? zAl#)ql^r}!)okz8zWvJNQ<0s9>*h@(k9C_sa>~$u8-l5L#yW+yY!!1W)bSN#h6B+z zZ|w$B5s|N^rbgZ;UksRydO|0v;Z4>#<8>LfoOj%mkL1T(O2;5YGN1j6+bsOyK z+T!ltSMu;!oEh&xuwZ9U>?0VgxGNJ~$DwcT%+Rq-ZgfF2%PO~3pMhc){@9>c5!G(y z+c1C85o%G9ZhmlVY;Cg#pnas+;5cPA1m!~-k81x!p9%CLkVlJW79lj4dTJ1b3dvGx5!B-5+CXIOon`2MEC@IP4sRhA3K6t8CC+~4}sT7?UYQO@G>!X%g>fc^A!DBrtbI$VZM1};@EA>vhj(Z45)m*&quL;EO5579KG ziqGjVRECaZqr_9WwA;1s`Y+|KJ=hdeSU3wysYYO*hA|E7Gpc!BIA^Iybk#j54DLO3ik`xO8J&41hr;8rE5Kna zXVD3}V7i5$BIlwzQ?%b+bDB@BU>BO4!+`W}i3r<79o6>fE$6nJ(Hhx!X(XLXJ=jJm zlI<(S(O>L(Fmtg8Dap;isWVfWg zE)0RIwOgta6E9?yiOFWi+Df`oS30Hpp|%;xZ#7!_mQ0h%$iPsDKptI)uqYr>R0Dni z$9TWJpTzYIEc2%z>KjyQ29ZXm)Gfeg1C2bCo+nGcoR%0Kp{uZ`lOx7yHFtq2H;=se z@ZkaGA6sc?pp#%FcWNB!sp);Yp(B6vu+`@&%=T?QKQB{xP(UuOq5=iEbLY;v49ck* z;i}kNK2fhl7sM#gIxs9@4e?u)hwRY_T@bT)QMpzIr>wt=_7lT04{l!GJQS@X+HE@A zgA9S4BOlWyF(7L$$*We4xWF@OgTdH%_V-zS@H(i>%*@8VY+*#taG}&$if{ZNO%=vV zfj_Fps@!Z|zCIuPw(7zKJqtzqF&*u$j1?67gk4pjZe&%j*=5n`%N*LXo(D)w_b}(1 z?Dn*%je_(6<>yo50s=AEcf0_4AT^2MAg@_w`c{&G`WGB0SKfq`dQ9{Bf{cFaLo!D6_Wd3fCv7u)lyvcq+!Tuq}{@7xt(RX!EK3xUb}a*TU( zLs|7N9@9M(6M>{f+rm|(m^TohN+oZ4$9Ua$)6{23ESV&k$R`L+-1A>Q3$fc_+wVUN zsqfy+cNRTnPe#8aism3K*vf;Mo5N4!#nsq0L=YY?=@=MTm6h5I+^D~`0p&K+@1u5# zR(|yDTM15Seq;xo?`g>R2iP}27+H>&Fvr=&N2M9F%<42f1It57U_>9Y*ic6gK+hOPESaP-3V@7Ky zk0$g}U8u4kwR+44?xaVF)4oqRjh6_LyYl0zKe^?!pupkrmF`K`cDr}zGc(_sKF{Im=D)By$HBBWP!tt+QkSh2dJ{ISg5H~XJxv>ZS|v1IRS-50RvQS4dF zVxubLuWxtw;@6u$=1eCe#VWFnliehE-(K=_aZcp@9{oYd_>*+IzkW_bzQc($bFGwh zJ-(%m@qB8bI!XpCD%`l37zYxpFo0_JcOK+8@CIpJT?3AyKW!V6n(^SW@d1F@xOIX< zaLpP9&1VJ!uWl?M=!eLsn#fI8?LVo2r^k8hbD8rbQ~Lj$7EyY75bawCyD-e3Vhjtc z6zuKo2bbV8rDd<)W(e(Nz}|fOF)Y5&S5&m;i*t5xh^%5o156GX^Nh&3mIYVCbZ%c? z2+es3HYh;`Bvm}S6+{j>@cmY?L3QQm{C>yzu4w((j!%bW-@W7OvGw}(aea@o+pvd0 z-Kg@gbD2KtO1`7x506Iy7e%evDr3@zPMNHH&Jc2$9-d@VZd`Cp=_=|wo8iyRapb4s zt;`aQk&3Gf$4foiSm>V0iw+n(W@D{C^n_!d2tT)Se@ZH)@)_H>B>#hNos2t4EBk$S zf^95x>4W^KwaJY|CY1%KxGxtt!!YBl!rj0(@N0VDgt#)abD3zx(4a}1C0yXJLgXsxFG zDZ7963HQc(zdp4zc6&4{uk%h%xNuB?F|?S*Db=&TaVTISde`unVsutzNKt>5mr>9s zJL(@(LC4K{dwbi^&_O!tKH72!rM9qeAvoUWM&Tw5EA!iTSAJfGBITK**2RlA&w-Wq z44Ui3PUoPeFz|84lHhbocLDkyjFzbV8yz!Kc&K|A7+C2miA4&{@{LJ@4qq|qJj$D_ z66h&m$C3iFGx??b0}M{9=X&fmk{<3OG88-RsmxBkeU_Dr1xjxMOC+tYT4}1i2?^6^ z4JdqKo{}c_a=OF&N}5H~nm{Z6!izbr*G50S`&FB7!CGQ}+Q$2(Zj9r&W<#cJ=t`UT zC-HDUmjxXM3r%|Zg8Hpg?8uUidQP0{2O7Q#iDf;lRP*mx?Q>E*hC;z}p> zuA)LQ@HzCoPs$9({*DE-#88j1vsZL=Nqdfb`xX@uVSb`j8d1UnF$9dD9_Ml(G+~uc zJe+d~0FI#hHUt6bpzFhlXEt4KFffIes#~CEL4Lk-q{C@@ z><(^y;k4!2WKZq0yex+dOQU3;rf1z}R25a)o$Jf2Xg4Y%%oH*O_^En#zYlhJ9-kI- z`B7dCt(db#WWD1`yMuC4eRE?=#eow?Dy|84J7~JQKAFDCCuEkQ-|&9;J7qXq!6@g$ z+qT3rdeY5wo34AGwY0SSPbUQLc9oTt!DRr|=SV9JqmWgRQ5M9Rve038crI;TFFiW} zTdr^6srd-W7~sIzOo_!8U8D1;xr7EUH@5zXS2TZLru>jWZ3LQ z1P7Ea^`|MBx+1mD4BU4M82KXjBAGX6-dac2??~mY3H_s9br*&rn*EljFT(6pTjWEr3NJ6di*IZTdknuVcp0yxH}FJcIGTpQuC9YnB#=(H-CN8ICoZ$2WXEV~L?P}!Z3%Yaq zv*N_)o3?8_HLGZmEj>QwT}ZV*(o^y-Y+2Gey2(0e`%aR#q|fVzABX9-=X!kw*BFZJ zqdiZgvsxK8Z>4+KnZbRz^7Tm`Hq*u$7YLxLA&Jvm$rby)tpm>SsX%P(zp8 zb|RGafmUqWzo0)-dYf*qHcNTWI`W>b)64)*Pyqm%XaH~{uJ9AmzHX3nD zr3FVdh3{Y;@<#>wdTSPM6LC@*mw4A zO4WkIbqiy0qlV%eD1s>;c-A~!P2#$S8usBffxRE0aNP;p8uowK))3CWT!-qQUf=N_ ze-6|)&>Eo@em#{k>$T|56%WDmNfA-;tOz@28VXm3A=usUnu>&<)ViaMBiMrpfK)GA zr4R(fxK;D*dr2-b0>RZ+d3<=%0$_$-Q62@OAVn1wB^4D%XXl~CzgzmmSiaBH#XtQv zVB=+H7er`#`!;kT2%@6k*BW;|?8w!`A8@hbr6p|=75#Mi*n2UNJ&@lF7|&k5oGzOj za`f%0FGg0@)<4}!k_-?1{UpQ?KM7RD8eC*Xbo z1Nz=mcA%Or4ji zN_W6D;FciF8^HL4L~0X>t2(W|nPt%$aW1+%0?Zwg+U6l#r{3|T4=;Ae907e917}KQihGm7 z@RQY2ZzUX`4PLpD)&JM`BrgBoZ)DT(H3%2x#p%@)I8!s4F08xGA(%H^Jv8KR%3&D3 z6_#9obDRPzmP}6Cv8_pK`1xw7(0GBcvzx+Jw_YGg8KKdYI*`&jifwV~Qt~>fZ#R)t zsD+OI`1h$GHN*tG7k_>z>{ry8ZfM=SX727lg6()+@;^R-xc>j?zTYb^S4oW;VaX9t zv&WKfU}-P&)CZ|9d;`2k_#Q~k_ph=2gXF4aO|i%?RMlb%*7vdOHjEiiKRMY;=kis! zhbi;m6184BkA}o`OavsqJY4)UOoTa{D?BAVz^dzZpX@^Ob^F$>{!(Iv$Q2D(Wwm{C z6cUT0!bR_z!!!DA`IfDv9fCoILQZb_$4kX|NTkfKD=^W@h2zMR+gMH@?l9=jXDDW| zRSsv0ZaCM9+;{4d4B-3HQqOnbL%b_DTG`pE7%)~kU}3*lOtG`rdFgsUrnT(MfvOf+ zg@&Sr2-oyAe+ight=#kV4XK=)TkDDfbZ`UnOJnf2C?_%gns2{i(tLRYrrFFV+_195 z0WCW~+8(#j%-TZ;h_Lwi+}sT1l@ZF*ZCZy&qi(xv_8Drbrc1vDFX zxR%s#+&ECq5npVd)1YrAxp$zAn2?HC-xh@vUUR*7A=Q9`3$f|T71raQ zoY?5~vM&~cgN*r_yzHifSL_oZx1V<&)eoiBVs*D&cRRBFb$7A36m{UkhjbeQb%wzA(haI>(q)D2Ueji7EX z_K^EgAnoPZzKj0D0rR1dTcMEvF7S$wo?yILo$TY2{Q7)CY^(uzc%WFp%gPyB|AN=T z)8i+M6yTewK7?%_(Dh9=v46gFtokE><4>9TI@a$R8|{FvGBHhn=OFGLAw7Fr+tf5A zsKI;9{n`QV)a8V9wdggpZ$eJ-v(~wY&k1sO#uOHGFGt%1Jh{D;b1J_5bH{M(=ERQ? z?2P5X@#g+*j!(Y@*Uy|ToqXD6(p_!(Vv6ehRhmyk=b-aw;THUsyYpot(Vrz|;k6hE zr0!A#`vD{|Oh2)breNRk^(wISlfI;RTXjqKvoX$w(b#=Q{W+!`7#Q?@N&(!hGamR8Ne$(HWZw+zk|XulnLDLGUwuLv-i4a5Ak)MrDgB$-ogdHklLjDUcW9 z)=%JGyNxTucW!0Q#P0n0FEDh2z*rAJHOMY*tjD) zB~se)%vP}t?z86ksb{S;Y4k=7GGj}F(f|q)O1vd8qfz1dl+;vWI~yEOIXE~#rzOP7 zpytV|sKkNa1N&%WPe)}~aU&>od#@~ENk9iy3}P-+CtNvtP0UfB*d*tP7QemF7X8d4 z41sw_Q{MyxcGM`ajHI*ZX|o%?w43fYz06voH8&&Z8sjnEQqjs$6QiHo>XP?F$L-Bw z6XnI*k;@vr3#~QY^W@^?fe%q94os+6y5*&>=rDL35hY!E@K1VtSvk3bG$^h55)13< zAy{4V>M6J74=Q|1+7w)2vn9MzZs==Nd=y!!>B6(%*k7&Ia!lF{pFOLkL$dhwXW#Xsm_70K9nkZ9=uYa;NoYY&3`Vw_yskG&d{e~(-+V`$&M~7`r zmEyj-Z#}7>5H;>N1*LQr|KXwaihpIVO-icT|4ViYBa<&4-V?U^)C-<{+N4WOS=_>5 zt5aV&?jZ&5CW_HNfH>#n9Ro>&y(jd{-#(>1(rGA`+lYIA3Xxb*921GM7p!dVoXT8h_C-@?Y4=aL@0^0B|<^wB#r|0rAIhFmN#M6 zEhIEQu&@`tmGXbz&ii|3ucq4z?iG)DKGGLjN-*D=65PtjISXO@j%>0**3efuh+s|S zBX3~O?e8tM!KyG5qQg~7#0uAc+6l}fDA-(IAJ{<@9{YWYHxCOuN2TK7i^`Ik{sTC6 z*bdZd#G+mLTC;!tJa3E@DCKFQuCV?*MrU4{>)v3IE+qCP<9HTThDJtU$V<(J zK|m%Y@!y;{k3o_%3wV8M8|QeoSl8+q5< z;J$wS=BKp<{+o8G#W9?9E8uaZv5Y=5Zgl;+fsBC_sbH^zREn`u7v@A772J#6GzVX+c3=VspPrmV0t%BL^1S?$&H2UGKol z^!cFYcG0DoOD;L0$w4I2=Ea!@woJ~XSJZuyVsk?Y%fHZKm@UN6DGIgf7`}v(A8e=P zFN=#W*N|@F{d~^3>@YVgxiUdh@^oyw!tNe92>EBgN3;J>8G^}V#PkwnS=sw+1Bv85 zDZG#L+`~3rd?n>)S`SmW4BhCW>bs2#d~_E2zCUa!OJkH2`|P2}%su-c%p3F= z!=RFm2mB*hj-Dkd$%ZY@o_fz+%}-jg8ZYVTV+l3hMAChnwUs8piS+7XKt|<5e=EJ> zV%XP}dpnotWwqvC+JUOi@l>T{{)i3vWckyDs59$l(_WUT1&($dG+TJzS^ewLQci&k zsFh(p%cd($bJ8;jX`c5d`VNQWcug7ps_3&7F7sM)av=T`*Ks-0`L_4T(t}Jb9SP;L z4jxzhF9j%_6cjB;j%7@_6{EABv!=}7%g!}&Svg?Gc*O?q38lfm5`=xA6)jFcq`YGUmPtA;q zY5uu!`yRzO27$85w57!%=H@;({)Rc_lAMwyvr(pq7^U~b(e1+J%u(KIF<$C2yVRNB zUn1qKv8BD}a7(wX`ju18?le{XW~0?&ttL~lj^8K`>uW1QY_92?DYdY;`pCv4UC-j` zz>J3|ldaV%(yq#6k5%Whth|aw${thr&RS7c^(ip^Y(1$;Z(I5OdHb^aYEf< zok)et;z&eVvz4BB)ajfWvyM7epNhV0R+{YMt;}=x`-!gyKQ<7hLWqrWS)nrO-!|#Wou$lBq;@g7!Y_N7l z^W4e`r!YrrWXxd^QF>Y@gEsA;L+kpdodavl0*hBC`IBBT&5cY=UEV+%yNydZS*B(B z1#6a_i#Mc6@DqU_C7u9Qj|9qx5X9dRT(Tp;yNw2Qs zjd1@qM9W4aes3-5yyU&VN(F)+f`R}S7+?Q?)e1Aj8Lq5^Z#vYD|5#6SXlqFC1Ku_a TrEaVtPFLad8JTCN&fokW+Xnl} literal 0 HcmV?d00001 diff --git a/static/images/docs/advanced/self-hosting/installation/dark/wizard-secure.png b/static/images/docs/advanced/self-hosting/installation/dark/wizard-secure.png new file mode 100644 index 0000000000000000000000000000000000000000..8417d12e673fb64687c79d591b63a6777c40b5c7 GIT binary patch literal 40139 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%0D4hX$EV~wcag~B%r0L;EVQ<5uHA}ZI_k$X; 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 literal 0 HcmV?d00001 diff --git a/static/images/docs/advanced/self-hosting/installation/dark/wizard-setup.png b/static/images/docs/advanced/self-hosting/installation/dark/wizard-setup.png new file mode 100644 index 0000000000000000000000000000000000000000..f86a56aac64c6b0f578fc19e702f1e293141ce03 GIT binary patch literal 32909 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