From 39795794ab1bf625d23c5ce7d56565223a8c239a Mon Sep 17 00:00:00 2001 From: "promptless[bot]" <179508745+promptless[bot]@users.noreply.github.com> Date: Thu, 16 Oct 2025 18:04:26 +0000 Subject: [PATCH 1/2] Documentation updates from Promptless --- docs.json | 10 + integrations/dstack.mdx | 222 +++++++----------- integrations/mods.mdx | 56 ++--- integrations/overview.mdx | 103 ++++++++ integrations/skypilot.mdx | 61 +++-- tutorials/integrations/crewai-integration.mdx | 139 +++++++++++ tutorials/integrations/n8n-integration.mdx | 143 +++++++++++ 7 files changed, 551 insertions(+), 183 deletions(-) create mode 100644 integrations/overview.mdx create mode 100644 tutorials/integrations/crewai-integration.mdx create mode 100644 tutorials/integrations/n8n-integration.mdx diff --git a/docs.json b/docs.json index c24f8737..4b08a87a 100644 --- a/docs.json +++ b/docs.json @@ -194,9 +194,15 @@ { "group": "Integrations", "pages": [ + "integrations/overview", + "group": "Examples", + "pages":[ "integrations/dstack", "integrations/mods", "integrations/skypilot" + "tutorials/integrations/n8n-integration", + "tutorials/integrations/crewai-integration" + ] ] }, { @@ -472,6 +478,10 @@ }, "redirects": [ + { + "source": "/serverless/development/integrations", + "destination": "/integrations/overview" + }, { "source": "/references/faq", "destination": "/references/troubleshooting/zero-gpus" diff --git a/integrations/dstack.mdx b/integrations/dstack.mdx index fc22078b..8e1c5558 100644 --- a/integrations/dstack.mdx +++ b/integrations/dstack.mdx @@ -3,46 +3,44 @@ title: "Manage Pods with dstack on Runpod" sidebarTitle: "dstack" --- -[dstack](https://dstack.ai/) is an open-source tool that simplifies the orchestration of Pods for AI and ML workloads. By defining your application and resource requirements in YAML configuration files, it automates the provisioning and management of cloud resources on Runpod, allowing you to focus on your application logic rather than the infrastructure. +[dstack](https://dstack.ai/) is an open-source tool that automates Pod orchestration for AI and ML workloads. It lets you define your application and resource requirements in YAML files, then handles provisioning and managing cloud resources on Runpod so you can focus on your application instead of infrastructure. -In this guide, we'll walk through setting up [dstack](https://dstack.ai/) with Runpod to deploy [vLLM](https://github.com/vllm-project/vllm). We'll serve the `meta-llama/Llama-3.1-8B-Instruct` model from Hugging Face using a Python environment. +This guide shows you how to set up dstack with Runpod and deploy [vLLM](https://github.com/vllm-project/vllm) to serve the `meta-llama/Llama-3.1-8B-Instruct` model from Hugging Face. -## Prerequisites +## Requirements -* [A Runpod account with an API key](/get-started/api-keys) +You'll need: -* On your local machine: +* [A Runpod account with an API key](/get-started/api-keys). +* Python 3.8 or higher installed on your local machine. +* `pip` (or `pip3` on macOS). +* Basic utilities like `curl`. - * Python 3.8 or higher - * `pip` (or `pip3` on macOS) - * Basic utilities: `curl` - -* These instructions are applicable for macOS, Linux, and Windows systems. +These instructions work on macOS, Linux, and Windows. -**Windows Users** +**Windows users** -* It's recommended to use [WSL (Windows Subsystem for Linux)](https://docs.microsoft.com/en-us/windows/wsl/install) or tools like [Git Bash](https://gitforwindows.org/) to follow along with the Unix-like commands used in this tutorial -* Alternatively, Windows users can use PowerShell or Command Prompt and adjust commands accordingly +Use [WSL (Windows Subsystem for Linux)](https://docs.microsoft.com/en-us/windows/wsl/install) or [Git Bash](https://gitforwindows.org/) to follow along with the Unix-like commands in this guide. Alternatively, use PowerShell or Command Prompt and adjust commands as needed. -## Installation - -### Setting Up the dstack Server +## Set up dstack -1. **Prepare Your Workspace** +### Install and configure the server - Open a terminal or command prompt and create a new directory for this tutorial: + + + Open a terminal and create a new directory: ```bash mkdir runpod-dstack-tutorial cd runpod-dstack-tutorial ``` + -2. **Set Up a Python Virtual Environment** - + ```bash @@ -78,10 +76,10 @@ In this guide, we'll walk through setting up [dstack](https://dstack.ai/) with R + -3. **Install dstack** - - Use `pip` to install dstack: + + Install dstack using `pip`: @@ -89,8 +87,6 @@ In this guide, we'll walk through setting up [dstack](https://dstack.ai/) with R pip3 install -U "dstack[all]" ``` - **Note:** If `pip3` is not available, you may need to install it or use `pip`. - @@ -108,12 +104,14 @@ In this guide, we'll walk through setting up [dstack](https://dstack.ai/) with R + + -### Configuring dstack for Runpod +### Configure dstack for Runpod -1. **Create the Global Configuration File** - - The following `config.yml` file is a **global configuration** used by [dstack](https://dstack.ai/) for all deployments on your computer. It's essential to place it in the correct configuration directory. + + + Create a `config.yml` file in the dstack configuration directory. This file stores your Runpod credentials for all dstack deployments. * **Create the configuration directory:** @@ -133,8 +131,6 @@ In this guide, we'll walk through setting up [dstack](https://dstack.ai/) with R - **Command Prompt or PowerShell:** - ```bash mkdir %USERPROFILE%\.dstack\server ``` @@ -169,9 +165,7 @@ In this guide, we'll walk through setting up [dstack](https://dstack.ai/) with R - * **Create the `config.yml` File** - - In the configuration directory, create a file named `config.yml` with the following content: + Create a file named `config.yml` with the following content: ```yml projects: @@ -183,17 +177,17 @@ In this guide, we'll walk through setting up [dstack](https://dstack.ai/) with R api_key: YOUR_RUNPOD_API_KEY ``` - Replace `YOUR_RUNPOD_API_KEY` with the API key you obtained from Runpod. - -2. **Start the dstack Server** + Replace `YOUR_RUNPOD_API_KEY` with your actual Runpod API key. + - From the configuration directory, start the dstack server: + + Start the dstack server: ```bash dstack server ``` - You should see output indicating that the server is running: + You'll see output like this: ```bash [INFO] Applying ~/.dstack/server/config.yml... @@ -203,35 +197,33 @@ In this guide, we'll walk through setting up [dstack](https://dstack.ai/) with R -The `ADMIN-TOKEN` displayed is important for accessing the dstack web UI. +Save the `ADMIN-TOKEN` to access the dstack web UI. + -3. **Access the dstack Web UI** - -* Open your web browser and navigate to `http://127.0.0.1:3000`. -* When prompted for an admin token, enter the `ADMIN-TOKEN` from the server output. -* The web UI allows you to monitor and manage your deployments. + + Open your browser and go to `http://127.0.0.1:3000`. Enter the `ADMIN-TOKEN` from the server output to access the web UI where you can monitor and manage deployments. + + -## Deploying vLLM as a Task - -### Step 1: Configure the Deployment Task - -1. **Prepare for Deployment** +## Deploy vLLM -* Open a new terminal or command prompt window. +### Configure the deployment -* Navigate to your tutorial directory: + + + Open a new terminal and navigate to your tutorial directory: ```bash cd runpod-dstack-tutorial ``` -* **Activate the Python Virtual Environment** + Activate the Python virtual environment: @@ -264,21 +256,19 @@ The `ADMIN-TOKEN` displayed is important for accessing the dstack web UI. + -2. **Create a Directory for the Task** - -Create and navigate to a new directory for the deployment task: + +Create a new directory for the deployment: ```bash mkdir task-vllm-llama cd task-vllm-llama ``` + -3. **Create the dstack Configuration File** - -* **Create the `.dstack.yml` File** - - Create a file named `.dstack.yml` (or `dstack.yml` if your system doesn't allow filenames starting with a dot) with the following content: + + Create a file named `.dstack.yml` with the following content: ```yml type: task @@ -303,59 +293,51 @@ cd task-vllm-llama -Replace `YOUR_HUGGING_FACE_HUB_TOKEN` with your actual [Hugging Face access token](https://huggingface.co/settings/tokens) (read-access is enough) or define the token in your environment variables. Without this token, the model cannot be downloaded as it is gated. +Replace `YOUR_HUGGING_FACE_HUB_TOKEN` with your [Hugging Face access token](https://huggingface.co/settings/tokens). The model is gated and requires authentication to download. + + -### Step 2: Initialize and Deploy the Task - -1. **Initialize dstack** +### Initialize and deploy -Run the following command **in the directory where your `.dstack.yml` file is located**: + + +In the directory with your `.dstack.yml` file, run: ```bash dstack init ``` + -2. **Apply the Configuration** - -Deploy the task by applying the configuration: + +Deploy the task: ```bash dstack apply ``` -* You will see an output summarizing the deployment configuration and available instances. - -* When prompted: + You'll see the deployment configuration and available instances. When prompted: ```bash Submit the run vllm-llama-3.1-8b-instruct? [y/n]: ``` - Type `y` and press `Enter` to confirm. + Type `y` and press Enter. -* The `ports` configuration provides port forwarding from the deployed pod to `localhost`, allowing you to access the deployed vLLM via `localhost:8000`. +The `ports` configuration forwards the deployed Pod's port to `localhost:8000` on your machine. + -3. **Monitor the Deployment** + +dstack will provision the Pod, download the Docker image, install packages, download the model, and start the vLLM server. You'll see progress logs in the terminal. -* After executing `dstack apply`, you'll see all the steps that dstack performs: - - * Provisioning the pod on Runpod. - * Downloading the Docker image. - * Installing required packages. - * Downloading the model from Hugging Face. - * Starting the vLLM server. - -* The logs of vLLM will be displayed in the terminal. - -* To monitor the logs at any time, run: +To view logs at any time, run: ```bash dstack logs vllm-llama-3.1-8b-instruct ``` -* Wait until you see logs indicating that vLLM is serving the model, such as: +Wait until you see logs indicating the server is ready: ``` INFO: Started server process [1] @@ -363,16 +345,14 @@ dstack apply INFO: Application startup complete. INFO: Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) ``` + + -### Step 3: Test the Model Server - -1. **Access the Service** - -Since the `ports` configuration forwards port `8000` from the deployed pod to `localhost`, you can access the vLLM server via `http://localhost:8000`. +### Test the deployment -2. **Test the Service Using `curl`** +The vLLM server is now accessible at `http://localhost:8000`. -Use the following `curl` command to test the deployed model: +Test it with `curl`: @@ -428,9 +408,7 @@ curl.exe -Method Post http://localhost:8000/v1/chat/completions ` -3. **Verify the Response** - -You should receive a JSON response similar to the following: +You'll receive a JSON response: ```json { @@ -460,45 +438,33 @@ You should receive a JSON response similar to the following: } ``` -This confirms that the model is running and responding as expected. - -### Step 4: Clean Up - -To avoid incurring additional costs, it's important to stop the task when you're finished. - -1. **Stop the Task** +### Clean up -In the terminal where you ran `dstack apply`, you can stop the task by pressing `Ctrl + C`. +Stop the task when you're done to avoid charges. -You'll be prompted: +Press `Ctrl + C` in the terminal where you ran `dstack apply`. When prompted: ``` Stop the run vllm-llama-3.1-8b-instruct before detaching? [y/n]: ``` -Type `y` and press `Enter` to confirm stopping the task. +Type `y` and press Enter. -2. **Terminate the Instance** - -The instance will terminate automatically after stopping the task. - -If you wish to ensure the instance is terminated immediately, you can run: +The instance will terminate automatically. To ensure immediate termination, run: ```bash dstack stop vllm-llama-3.1-8b-instruct ``` -3. **Verify Termination** +Verify termination in your Runpod dashboard or the dstack web UI. -Check your Runpod dashboard or the [dstack](https://dstack.ai/) web UI to ensure that the instance has been terminated. +## Use volumes for persistent storage -## Additional Tips: Using Volumes for Persistent Storage +Volumes let you store data between runs and cache models to reduce startup times. -If you need to retain data between runs or cache models to reduce startup times, you can use volumes. +### Create a volume -### Creating a Volume - -Create a separate [dstack](https://dstack.ai/) file named `volume.dstack.yml` with the following content: +Create a file named `volume.dstack.yml`: ```yml type: volume @@ -513,7 +479,7 @@ size: 100GB -The `region` ties your volume to a specific region, which then also ties your Pod to that same region. +The `region` ties your volume to a specific region, which also ties your Pod to that region. @@ -523,9 +489,7 @@ Apply the volume configuration: dstack apply -f volume.dstack.yml ``` -This will create the volume named `llama31-volume`. - -### Using the Volume in Your Task +### Use the volume in your task Modify your `.dstack.yml` file to include the volume: @@ -535,14 +499,6 @@ volumes: path: /data ``` -This configuration will mount the volume to the `/data` directory inside your container. - -By doing this, you can store models and data persistently, which can be especially useful for large models that take time to download. - -For more information on using volumes with Runpod, refer to the [dstack blog on volumes](https://dstack.ai/blog/volumes-on-runpod/). - -*** - -## Conclusion +This mounts the volume to the `/data` directory inside your container, letting you store models and data persistently. This is useful for large models that take time to download. -By leveraging [dstack](https://dstack.ai/) on Runpod, you can efficiently deploy and manage Pods, accelerating your development workflow and reducing operational overhead. +For more information, see the [dstack blog on volumes](https://dstack.ai/blog/volumes-on-runpod/). diff --git a/integrations/mods.mdx b/integrations/mods.mdx index f5970c49..1000b1c5 100644 --- a/integrations/mods.mdx +++ b/integrations/mods.mdx @@ -3,28 +3,25 @@ title: "Running Runpod on Mods" sidebarTitle: "Mods" --- -[Mods](https://github.com/charmbracelet/mods) is an AI-powered tool designed for the command line and built to seamlessly integrate with pipelines. It provides a convenient way to interact with language models directly from your terminal. +[Mods](https://github.com/charmbracelet/mods) is a command-line tool for interacting with language models. It integrates with Unix pipelines, letting you send command output directly to LLMs from your terminal. -## How Mods Works +## How Mods works -Mods operates by reading standard input and prefacing it with a prompt supplied in the Mods arguments. It sends the input text to a language model (LLM) and prints out the generated result. Optionally, you can ask the LLM to format the response as Markdown. This allows you to "question" the output of a command, making it a powerful tool for interactive exploration and analysis. Additionally, Mods can work with standard input or an individually supplied argument prompt. +Mods reads standard input (or a prompt you provide as an argument), sends it to a language model, and prints the result. You can prefix the input with a prompt from the Mods arguments, and optionally format the output as Markdown. This lets you pipe command output to an LLM for analysis or transformation. -## Getting Started +## Get started -To start using Mods, follow these step-by-step instructions: + + + Get your API key from the [Runpod Settings](https://www.console.runpod.io/user/settings) page. + -1. **Obtain Your API Key**: + + Follow the installation instructions for [Mods](https://github.com/charmbracelet/mods) based on your system. + - * Visit the [Runpod Settings](https://www.console.runpod.io/user/settings) page to retrieve your API key. - * If you haven't created an account yet, you'll need to sign up before obtaining the key. - -2. **Install Mods**: - - * Refer to the different installation methods for [Mods](https://github.com/charmbracelet/mods) based on your preferred approach. - -3. **Configure Runpod**: - - * Update the `config_template.yml` file to use your Runpod configuration. Here's an example: + + Update the `config_template.yml` file with your Runpod configuration: ```yml runpod: @@ -39,24 +36,21 @@ To start using Mods, follow these step-by-step instructions: max-input-chars: 8192 ``` - * `base-url`: Update your base-url with your specific endpoint. - - * `api-key-env`: Add your Runpod API key. - - * `openchat/openchat-3.5-1210`: Replace with the name of the model you want to use. - - * `aliases: ["openchat"]`: Replace with your preferred model alias. - - * `max-input-chars`: Update the maximum input characters allowed for your model. - -4. **Verify Your Setup**: - - * To ensure everything is set up correctly, pipe any command line output and pass it to `mods`. + Replace the following values: + * `base-url`: Your specific endpoint URL. + * `api-key-env`: Your Runpod API key. + * `openchat/openchat-3.5-1210`: The model name you want to use. + * `aliases: ["openchat"]`: Your preferred model alias. + * `max-input-chars`: The maximum input characters for your model. + - * Specify the Runpod API and model you want to use. + + Test your setup by piping command output to Mods: ```sh ls ~/Downloads | mods --api runpod --model openchat -f "tell my fortune based on these files" | glow ``` - * This command will list the files in your `~/Downloads` directory, pass them to Mods using the Runpod API and the specified model, and format the response as a fortune based on the files. The output will then be piped to `glow` for a visually appealing display. + This lists files in your `~/Downloads` directory, sends them to Mods using the Runpod API and specified model, and pipes the output to `glow` for formatted display. + + diff --git a/integrations/overview.mdx b/integrations/overview.mdx new file mode 100644 index 00000000..ec88d2ab --- /dev/null +++ b/integrations/overview.mdx @@ -0,0 +1,103 @@ +--- +title: "Integrate Runpod with external tools" +sidebarTitle: "Overview" +description: "Learn how to integrate Runpod endpoints with external tools and frameworks." +--- + +Runpod can be integrated with any system that supports custom endpoint configuration. If a library or framework lets you set a custom base URL, you can connect it to your Runpod endpoints without specialized adapters or connectors. + +## How it works + +Integration is straightforward: any library or framework that accepts a custom base URL for API calls will work with Runpod. This means you can use Runpod with tools like n8n, CrewAI, LangChain, and many others by simply pointing them to your Runpod endpoint URL. + +## Deployment options + +Runpod offers four deployment options for endpoint integrations: + +### Public Endpoints + +Public Endpoints are pre-deployed AI models that you can use without setting up your own Serverless endpoint. They're vLLM-compatible and return OpenAI-compatible responses, so you can get started quickly or test things out without deploying infrastructure. + +The following Public Endpoint URLs are available for OpenAI-compatible models: + +``` +# Public Endpoint for Qwen3 32B AWQ +https://api.runpod.ai/v2/qwen3-32b-awq/openai/v1 + +# Public Endpoint for ibm/IBM Granite-4.0-H-Small +https://api.runpod.ai/v2/granite-4-0-h-small/openai/v1 +``` + +For pricing details and usage information, see [Public Endpoints](/hub/public-endpoints). + +### vLLM + +[vLLM workers](/serverless/vllm/overview) provide an inference engine that returns [OpenAI-compatible responses](/serverless/vllm/openai-compatibility), making it ideal for tools that expect OpenAI's API format. + +When you deploy a vLLM endpoint, access it using the OpenAI-compatible API at: + +``` +https://api.runpod.ai/v2/ENDPOINT_ID/openai/v1 +``` + +Where `ENDPOINT_ID` is your Serverless endpoint ID. + +### SGLang + +[SGLang workers](/serverless/sglang/overview) are an inference engine that returns OpenAI-compatible responses. It offers optimized performance for certain model types and use cases. + +To learn more, see the [runpod-workers/worker-sglang](https://github.com/runpod-workers/worker-sglang) repository on GitHub. + +### Load balancer + +[Load balancing endpoints](/serverless/load-balancing/overview) let you create custom endpoints where you define your own inputs and outputs. This gives you complete control over the API contract and is ideal when you need custom behavior beyond standard inference patterns. + +## Model configuration for compatibility + +Some models require specific vLLM environment variables to work with external tools and frameworks. You may need to set a custom chat template or [tool call parser](https://docs.vllm.ai/en/latest/features/tool_calling.html) to ensure your model returns responses in the format your integration expects. + +For example, you can configure the `Qwen/qwen3-32b-awq` model for OpenAI compatibility by adding these environment variables in your vLLM endpoint settings: + +```txt +ENABLE_AUTO_TOOL_CHOICE=true +REASONING_PARSER=qwen3 +TOOL_CALL_PARSER=hermes +``` + +These settings enable automatic tool choice selection and set the right parsers for the Qwen3 model to work with tools that expect OpenAI-formatted responses. + +For more information about tool calling configuration and available parsers, see the [vLLM tool calling documentation](https://docs.vllm.ai/en/latest/features/tool_calling.html). + +## Integration tutorials + +Follow these step-by-step tutorials to integrate Runpod with popular tools: + + + + Connect Runpod to n8n for AI-powered workflow automation. + + + + Use Runpod to power autonomous AI agents in CrewAI. + + + +## Compatible frameworks + +The same integration pattern works with any framework that supports custom OpenAI-compatible endpoints, including: + +* **CrewAI**: A framework for orchestrating role-playing autonomous AI agents. +* **LangChain**: A framework for developing applications powered by language models. +* **AutoGen**: Microsoft's framework for building multi-agent conversational systems. +* **Haystack**: An end-to-end framework for building search systems and question answering. +* **n8n**: A workflow automation tool with AI integration capabilities. + +Configure these frameworks to use your Runpod endpoint URL as the base URL, and provide your Runpod API key for authentication. + +## Third-party integrations + +For infrastructure management and orchestration, Runpod integrates with: + +* [**dstack**](/integrations/dstack): Simplified Pod orchestration for AI/ML workloads. +* [**SkyPilot**](/integrations/skypilot): Multi-cloud execution framework. +* [**Mods**](/integrations/mods): AI-powered command-line tool. diff --git a/integrations/skypilot.mdx b/integrations/skypilot.mdx index c48d63be..853f3304 100644 --- a/integrations/skypilot.mdx +++ b/integrations/skypilot.mdx @@ -3,41 +3,56 @@ title: "Running Runpod on SkyPilot" sidebarTitle: "SkyPilot" --- -[SkyPilot](https://skypilot.readthedocs.io/en/latest/) is a framework for executing LLMs, AI, and batch jobs on any cloud, offering maximum cost savings, highest GPU availability, and managed execution. +[SkyPilot](https://skypilot.readthedocs.io/en/latest/) is a framework for running LLMs, AI, and batch jobs on any cloud. -This integration leverages the Runpod CLI infrastructure, streamlining the process of spinning up on-demand pods and deploying serverless endpoints with SkyPilot. +This integration uses the Runpod CLI infrastructure to spin up on-demand Pods and deploy Serverless endpoints with SkyPilot. -## Getting started +## Get started -To begin using Runpod with SkyPilot, follow these steps: + + + Get your API key from the [Runpod Settings](https://www.console.runpod.io/user/settings) page. + -1. **Obtain Your API Key**: Visit the [Runpod Settings](https://www.console.runpod.io/user/settings) page to get your API key. If you haven't created an account yet, you'll need to do so before obtaining the key. - -2. **Install Runpod**: Use the following command to install the latest version of Runpod: + + Install the latest version of Runpod: ```sh pip install "runpod>=1.6" ``` + -3. **Configure Runpod**: Enter `runpod config` in your CLI and paste your API key when prompted. + + Run `runpod config` and paste your API key when prompted. + -4. **Install SkyPilot Runpod Cloud**: Execute the following command to install the [SkyPilot Runpod cloud](https://skypilot.readthedocs.io/en/latest/getting-started/installation.html#runpod): + + Install the [SkyPilot Runpod cloud](https://skypilot.readthedocs.io/en/latest/getting-started/installation.html#runpod): ```sh pip install "skypilot-nightly[runpod]" ``` + -5. **Verify Your Setup**: Run `sky check` to ensure your credentials are correctly set up and you're ready to proceed. - -## Running a Project + + Run `sky check` to verify your credentials are set up correctly. + + -After setting up your environment, you can seamlessly spin up a cluster in minutes: +## Run a project -1. **Create a New Project Directory**: Run `mkdir hello-sky` to create a new directory for your project. + + + Create a new directory for your project: -2. **Navigate to Your Project Directory**: Change into your project directory with `cd hello-sky`. + ```sh + mkdir hello-sky + cd hello-sky + ``` + -3. **Create a Configuration File**: Enter `cat > hello_sky.yaml` and input the following configuration details: + + Create a file named `hello_sky.yaml` with the following content: ```yml resources: @@ -60,9 +75,17 @@ After setting up your environment, you can seamlessly spin up a cluster in minut echo "Hello, SkyPilot!" conda env list ``` + -4. **Launch Your Project**: With your configuration file created, launch your project on the cluster by running `sky launch -c mycluster hello_sky.yaml`. + + Launch your project on the cluster: -5. **Confirm Your GPU Type**: You should see the available GPU options on Secure Cloud appear in your command line. Once you confirm your GPU type, your cluster will start spinning up. + ```sh + sky launch -c mycluster hello_sky.yaml + ``` + -With this integration, you can leverage the power of Runpod and SkyPilot to efficiently run your LLMs, AI, and batch jobs on any cloud. + + You'll see the available GPU options. Confirm your GPU type and the cluster will start spinning up. + + diff --git a/tutorials/integrations/crewai-integration.mdx b/tutorials/integrations/crewai-integration.mdx new file mode 100644 index 00000000..8a98d6e6 --- /dev/null +++ b/tutorials/integrations/crewai-integration.mdx @@ -0,0 +1,139 @@ +--- +title: "Integrate Runpod with CrewAI" +description: "Learn how to deploy a vLLM worker on Runpod and connect it to CrewAI for orchestrating autonomous AI agents." +--- + +Learn how to integrate Runpod Serverless with CrewAI, a framework for orchestrating role-playing autonomous AI agents. By the end of this tutorial, you'll have a vLLM endpoint running on Runpod that you can use to power your CrewAI agents. + +## What you'll learn + +In this tutorial, you'll learn how to: + +* Deploy a vLLM worker on Runpod Serverless. +* Configure your vLLM endpoint for OpenAI compatibility. +* Connect CrewAI to your Runpod endpoint. +* Test your integration with a simple agent. + +## Requirements + +* You've [created a Runpod account](/get-started/manage-accounts). +* You've created a [Runpod API key](/get-started/api-keys). +* You have CrewAI installed in your development environment. +* (Optional) For gated models, you've created a [Hugging Face access token](https://huggingface.co/docs/hub/en/security-tokens). + +## Step 1: Deploy a vLLM worker on Runpod + +First, you'll deploy a vLLM worker that will serve your language model. + + + + Open the [Runpod console](https://www.console.runpod.io/serverless) and navigate to the Serverless page. + + + + Under **Quick Deploy**, find **Serverless vLLM** and click **Configure**. + + + + In the deployment modal: + + * Select a vLLM version (latest stable recommended). + * Under **Hugging Face Models**, enter your model name (e.g., `openchat/openchat-3.5-0106`). + * If using a gated model like Llama, enter your **Hugging Face Token**. + * Click **Next**. + + + + In the vLLM settings modal, under **LLM Settings**: + + * Set **Max Model Length** to `8192` (or an appropriate context length for your model). + * If your CrewAI agents require tool calling, add environment variables like `ENABLE_AUTO_TOOL_CHOICE=true` and appropriate parsers. See the [vLLM tool calling documentation](https://docs.vllm.ai/en/latest/features/tool_calling.html) for details. + * Click **Next**. + + + + Review the endpoint settings: + + * Set your desired GPU type and worker count. + * Configure scaling settings based on your expected workload. + * Click **Deploy**. + + + + Your endpoint will now begin initializing. This may take several minutes while Runpod provisions resources and downloads your model. Wait until the status shows as **Running**. + + + + Once deployed, navigate to your endpoint in the Runpod console and copy the **Endpoint ID**. You'll need this to connect CrewAI. + + + + + +For more details on vLLM deployment options, see [Deploy a vLLM worker](/serverless/vllm/get-started). + + + +## Step 2: Connect CrewAI to your Runpod endpoint + +Now you'll configure CrewAI to use your Runpod endpoint as an OpenAI-compatible API. + + + + Open the CrewAI dashboard and look for the **LLM connections** section. + + + + Under **Provider**, select **custom-openai-compatible** from the dropdown menu. + + + + Configure the connection with your Runpod credentials: + + * For `OPENAI_API_KEY`, use your Runpod API Key. You can find or create API keys in the [Runpod console](https://www.runpod.io/console/user/settings). + + + + For `OPENAI_API_BASE`, add the base URL for your vLLM's OpenAI-compatible endpoint: + + ``` + https://api.runpod.ai/v2/ENDPOINT_ID/openai/v1 + ``` + + Replace `ENDPOINT_ID` with your actual endpoint ID from Step 1. + + + + Click **Fetch Available Models** to test the connection. If successful, CrewAI will retrieve the list of models available on your endpoint. + + + +## Step 3: Test your integration + +Verify that your CrewAI agents can use your Runpod endpoint. + + + + Create a simple CrewAI agent that uses your Runpod endpoint for its language model. + + + + Assign a simple task to your agent and run it to verify that it can communicate with your Runpod endpoint. + + + + Monitor requests from your CrewAI agents in the endpoint details page of the Runpod console. + + + + Confirm that your agent is receiving appropriate responses from your model running on Runpod. + + + +## Next steps + +Now that you've integrated Runpod with CrewAI, you can: + +* Build complex multi-agent systems using your Runpod endpoint to serve the necessary models. +* Explore other [integration options](/integrations/overview). +* Learn more about [OpenAI compatibility](/serverless/vllm/openai-compatibility) features in vLLM. diff --git a/tutorials/integrations/n8n-integration.mdx b/tutorials/integrations/n8n-integration.mdx new file mode 100644 index 00000000..0f609168 --- /dev/null +++ b/tutorials/integrations/n8n-integration.mdx @@ -0,0 +1,143 @@ +--- +title: "Integrate Runpod with n8n" +description: "Learn how to deploy a vLLM worker on Runpod and connect it to n8n for AI-powered workflow automation." +--- + +Learn how to integrate Runpod Serverless with n8n, a workflow automation tool. By the end of this tutorial, you'll have a vLLM endpoint running on Runpod that you can use within your n8n workflows. + +## What you'll learn + +In this tutorial, you'll learn how to: + +* Deploy a vLLM worker on Runpod Serverless. +* Configure your vLLM endpoint for OpenAI compatibility. +* Connect n8n to your Runpod endpoint. +* Test your integration with a simple workflow. + +## Requirements + +* You've [created a Runpod account](/get-started/manage-accounts). +* You've created a [Runpod API key](/get-started/api-keys). +* You have an n8n instance (cloud or self-hosted). +* (Optional) For gated models, you've created a [Hugging Face access token](https://huggingface.co/docs/hub/en/security-tokens). + +## Step 1: Deploy a vLLM worker on Runpod + +First, you'll deploy a vLLM worker that will serve your language model. + + + + Open the [Runpod console](https://www.console.runpod.io/serverless) and navigate to the Serverless page. + + + + Under **Quick Deploy**, find **Serverless vLLM** and click **Configure**. + + + + In the deployment modal: + + * Select a vLLM version (latest stable recommended). + * Under **Hugging Face Models**, enter your model name (e.g., `openchat/openchat-3.5-0106`). + * If using a gated model like Llama, enter your **Hugging Face Token**. + * Click **Next**. + + + + In the vLLM settings modal, under **LLM Settings**: + + * Set **Max Model Length** to `8192` (or an appropriate context length for your model). + * If your n8n workflows require tool calling, add environment variables like `ENABLE_AUTO_TOOL_CHOICE=true` and appropriate parsers. See the [vLLM tool calling documentation](https://docs.vllm.ai/en/latest/features/tool_calling.html) for details. + * Click **Next**. + + + + Review the endpoint settings: + + * Set your desired GPU type and worker count. + * Configure scaling settings based on your expected workload. + * Click **Deploy**. + + + + Your endpoint will now begin initializing. This may take several minutes while Runpod provisions resources and downloads your model. Wait until the status shows as **Running**. + + + + Once deployed, navigate to your endpoint in the Runpod console and copy the **Endpoint ID**. You'll need this to connect n8n. + + + + + +For more details on vLLM deployment options, see [Deploy a vLLM worker](/serverless/vllm/get-started). + + + +## Step 2: Connect n8n to your Runpod endpoint + +Now you'll configure n8n to use your Runpod endpoint as an OpenAI-compatible API. + + + + In your n8n workflow, add a new **OpenAI Chat Model** node to your canvas. + + + + Click the dropdown under **Credential to connect with** and select **Create new credential**. + + + + Under **API Key**, add your Runpod API Key. You can find or create API keys in the [Runpod console](https://www.runpod.io/console/user/settings). + + + + Under **Base URL**, replace the default OpenAI URL with your Runpod endpoint URL: + + ``` + https://api.runpod.ai/v2/ENDPOINT_ID/openai/v1 + ``` + + Replace `ENDPOINT_ID` with your actual endpoint ID from Step 1. + + + + Click **Save**. n8n will automatically test your endpoint connection. If successful, you can start using the node in your workflow. + + + +## Step 3: Test your integration + +Create a simple workflow to test your integration. + + + + Add a **Manual Trigger** node and connect it to your **OpenAI Chat Model** node. + + + + In the **OpenAI Chat Model** node, add a test message like "Hello, what can you help me with?" + + + + Click **Execute Workflow** in n8n. You should see a response from your model running on Runpod. + + + + Monitor requests from your n8n workflow in the endpoint details page of the Runpod console. + + + + + +The n8n chat feature may have trouble parsing output from vLLM depending on your model. If you experience issues, try adjusting your model's output format or testing with a different model. + + + +## Next steps + +Now that you've integrated Runpod with n8n, you can: + +* Build complex AI-powered workflows using your Runpod endpoints. +* Explore other [integration options](/integrations/overview) with Runpod. +* Learn about [OpenAI compatibility](/serverless/vllm/openai-compatibility) features in vLLM. From fb2713c64ad4842fbcd267d58d044115f01b1f2c Mon Sep 17 00:00:00 2001 From: Mo King Date: Thu, 6 Nov 2025 15:40:02 -0500 Subject: [PATCH 2/2] Add n8n integration guide --- .github/ISSUE_TEMPLATE/bug-report.md | 2 +- .../ISSUE_TEMPLATE/documentation-request.md | 2 +- docs.json | 29 +- hub/public-endpoint-reference.mdx | 110 ++++++- images/serverless-endpoint-id.png | Bin 0 -> 268289 bytes .../crewai-integration.mdx | 85 +++-- integrations/n8n-integration.mdx | 164 ++++++++++ integrations/overview.mdx | 51 ++- overview.mdx | 11 + pods/choose-a-pod.mdx | 2 +- pods/configuration/use-ssh.mdx | 116 ++++--- pods/connect-to-a-pod.mdx | 4 +- pods/manage-pods.mdx | 6 +- pods/overview.mdx | 6 +- pods/pricing.mdx | 4 +- pods/storage/create-network-volumes.mdx | 2 +- pods/storage/types.mdx | 22 +- references/troubleshooting/storage-full.mdx | 6 +- runpodctl/reference/runpodctl-create-pod.mdx | 2 +- runpodctl/reference/runpodctl-create-pods.mdx | 2 +- .../endpoints/endpoint-configurations.mdx | 4 +- serverless/endpoints/job-states.mdx | 1 + serverless/endpoints/manage-endpoints.mdx | 3 +- serverless/endpoints/overview.mdx | 42 +-- serverless/endpoints/send-requests.mdx | 2 +- serverless/load-balancing/build-a-worker.mdx | 16 +- serverless/load-balancing/overview.mdx | 75 ++++- serverless/load-balancing/vllm-worker.mdx | 16 +- serverless/overview.mdx | 4 +- serverless/pricing.mdx | 3 +- serverless/storage/overview.mdx | 6 +- serverless/vllm/environment-variables.mdx | 3 +- serverless/vllm/get-started.mdx | 90 +++-- serverless/vllm/openai-compatibility.mdx | 193 +++++++---- serverless/vllm/overview.mdx | 133 +++++--- serverless/vllm/vllm-requests.mdx | 307 ++++++++++++------ serverless/workers/concurrent-handler.mdx | 3 +- serverless/workers/custom-worker.mdx | 3 +- serverless/workers/deploy.mdx | 2 +- serverless/workers/github-integration.mdx | 2 +- serverless/workers/handler-functions.mdx | 20 +- serverless/workers/overview.mdx | 3 +- storage/network-volumes.mdx | 30 +- storage/s3-api.mdx | 4 + tutorials/integrations/n8n-integration.mdx | 143 -------- tutorials/pods/comfyui.mdx | 2 +- 46 files changed, 1077 insertions(+), 659 deletions(-) create mode 100644 images/serverless-endpoint-id.png rename {tutorials/integrations => integrations}/crewai-integration.mdx (55%) create mode 100644 integrations/n8n-integration.mdx delete mode 100644 tutorials/integrations/n8n-integration.mdx diff --git a/.github/ISSUE_TEMPLATE/bug-report.md b/.github/ISSUE_TEMPLATE/bug-report.md index 9f674ae4..e6a982a7 100644 --- a/.github/ISSUE_TEMPLATE/bug-report.md +++ b/.github/ISSUE_TEMPLATE/bug-report.md @@ -3,7 +3,7 @@ name: Bug report about: Create a report to help us improve title: "[Bug]" labels: '' -assignees: AllysonRosenthal, rachfop +assignees: muhsinking --- diff --git a/.github/ISSUE_TEMPLATE/documentation-request.md b/.github/ISSUE_TEMPLATE/documentation-request.md index 9406a085..d656e95f 100644 --- a/.github/ISSUE_TEMPLATE/documentation-request.md +++ b/.github/ISSUE_TEMPLATE/documentation-request.md @@ -3,7 +3,7 @@ name: Documentation request about: Suggest an idea for this project title: "[Request]" labels: '' -assignees: AllysonRosenthal, rachfop +assignees: muhsinking --- diff --git a/docs.json b/docs.json index 4b08a87a..ccf6e549 100644 --- a/docs.json +++ b/docs.json @@ -142,6 +142,21 @@ "group": "Storage", "pages": ["storage/network-volumes", "storage/s3-api"] }, + { + "group": "Integrations", + "pages": [ + "integrations/overview", + { + "group": "Guides", + "pages":[ + "integrations/n8n-integration", + "integrations/dstack", + "integrations/mods", + "integrations/skypilot" + ] + } + ] + }, { "group": "Hub", "pages": [ @@ -191,20 +206,6 @@ "references/troubleshooting/manage-payment-cards" ] }, - { - "group": "Integrations", - "pages": [ - "integrations/overview", - "group": "Examples", - "pages":[ - "integrations/dstack", - "integrations/mods", - "integrations/skypilot" - "tutorials/integrations/n8n-integration", - "tutorials/integrations/crewai-integration" - ] - ] - }, { "group": "Migrations", "pages": [ diff --git a/hub/public-endpoint-reference.mdx b/hub/public-endpoint-reference.mdx index 5878a6eb..d998811b 100644 --- a/hub/public-endpoint-reference.mdx +++ b/hub/public-endpoint-reference.mdx @@ -13,6 +13,7 @@ The following models are currently available: | Model | Description | Endpoint URL | Type | Price | |-------|-------------|----------|------|-------| +| **IBM Granite-4.0-H-Small** | A 32B parameter long-context instruct model. | `https://api.runpod.ai/v2/granite-4-0-h-small/` | Text | \$0.01 per 1000 tokens | | **Qwen3 32B AWQ** | The latest LLM in the Qwen series, offering advancements in reasoning, instruction-following, agent capabilities, and multilingual support. | `https://api.runpod.ai/v2/qwen3-32b-awq/` | Text | \$0.01 per 1000 tokens | | **Flux Dev** | Offers exceptional prompt adherence, high visual fidelity, and rich image detail. | `https://api.runpod.ai/v2/black-forest-labs-flux-1-dev/` | Image | \$.02 per megapixel | | **Flux Schnell** | Fastest and most lightweight FLUX model, ideal for local development, prototyping, and personal use. | `https://api.runpod.ai/v2/black-forest-labs-flux-1-schnell/` | Image | \$.0024 per megapixel | @@ -24,7 +25,11 @@ The following models are currently available: | **Seedream 4.0 Edit** | New-generation image editing with unified generation and editing architecture. | `https://api.runpod.ai/v2/seedream-v4-edit/` | Image | \$0.027 per megapixel | **Seedream 3.0** | Native high-resolution bilingual image generation (Chinese-English). | `https://api.runpod.ai/v2/seedream-3-0-t2i/` | Image | \$0.03 per megapixel | **Nano Banana Edit** | Google's state-of-the-art image editing model. | `https://api.runpod.ai/v2/nano-banana-edit/` | Image | \$0.027 per megapixel +| **InfiniteTalk** | Audio-driven video generation model that creates talking or singing videos from a single image and audio input. | `https://api.runpod.ai/v2/infinitetalk/` | Video | \$0.25 per video generation | +| **Kling v2.1 I2V Pro** | Professional-grade image-to-video with enhanced visual fidelity. | `https://api.runpod.ai/v2/kling-v2-1-i2v-pro/` | Video | \$0.36 per 5 seconds of video | | **Seedance 1.0 Pro** | High-performance video generation with multi-shot storytelling. | `https://api.runpod.ai/v2/seedance-1-0-pro/` | Video | \$0.62 per 5 seconds of video | +| **SORA 2 I2V** | OpenAI's Sora 2 is a video and audio generation model. | `https://api.runpod.ai/v2/sora-2-i2v/` | Video | \$0.40 per video generation | +| **SORA 2 Pro I2V** | OpenAI's Sora 2 Pro is a professional-grade video and audio generation model. | `https://api.runpod.ai/v2/sora-2-pro-i2v/` | Video | \$1.20 per video generation | | **WAN 2.5** | Image-to-video generation model. | `https://api.runpod.ai/v2/wan-2-5/` | Video | \$0.50 per 5 seconds of video | **WAN 2.2 I2V 720p LoRA** | Open-source video generation with LoRA support. | `https://api.runpod.ai/v2/wan-2-2-t2v-720-lora/` | Video | \$0.35 per 5 seconds of video | **WAN 2.2 I2V 720p** | Open-source AI video generation model that uses a diffusion transformer architecture for image-to-video generation. | `https://api.runpod.ai/v2/wan-2-2-i2v-720/` | Video | \$0.30 per 5 seconds of video @@ -101,6 +106,43 @@ Flux Schnell is optimized for speed and real-time applications: Flux Schnell is optimized for speed and works best with lower step counts. Using higher values may not improve quality significantly. +### IBM Granite-4.0-H-Small + +IBM Granite-4.0-H-Small is a 32B parameter long-context instruct model. + +```json +{ + "input": { + "messages": [ + { + "role": "system", + "content": "You are a helpful assistant. Please ensure responses are professional, accurate, and safe." + }, + { + "role": "user", + "content": "What is Runpod?" + } + ], + "sampling_params": { + "max_tokens": 512, + "temperature": 0.7, + "seed": -1, + "top_k": -1, + "top_p": 1 + } + } +} +``` + +| Parameter | Type | Required | Default | Range | Description | +|-----------|------|----------|---------|-------|-------------| +| `messages` | array | Yes | - | - | Array of message objects with role and content. | +| `sampling_params.max_tokens` | integer | No | 512 | - | Maximum number of tokens to generate. | +| `sampling_params.temperature` | float | No | 0.7 | 0.0-1.0 | Controls randomness in generation. Lower values make output more deterministic. | +| `sampling_params.seed` | integer | No | -1 | - | Seed for reproducible results. The default value (-1) will generate a random seed. | +| `sampling_params.top_k` | integer | No | -1 | - | Restricts sampling to the top K most probable tokens. | +| `sampling_params.top_p` | float | No | 1 | 0.0-1.0 | Nucleus sampling threshold. | + ### Qwen3 32B AWQ Qwen3 is the latest generation of large language models in Qwen series, offering a comprehensive suite of dense and mixture-of-experts (MoE) models. @@ -394,6 +436,30 @@ Seedream 4.0 Edit provides advanced image editing capabilities with the same uni | `enable_safety_checker` | boolean | No | true | Enable content safety checking. | +### InfiniteTalk + +InfiniteTalk is an audio-driven video generation model that creates talking or singing videos from a single image and audio input. + +```json +{ + "input": { + "prompt": "a cartoon computer talking", + "image": "https://image.runpod.ai/assets/meigen-ai/poddy.jpg", + "audio": "https://image.runpod.ai/assets/meigen-ai/audio.wav", + "size": "480p", + "enable_safety_checker": true + } +} +``` + +| Parameter | Type | Required | Default | Description | +|-----------|------|----------|---------|-------------| +| `prompt` | string | Yes | - | Text description of the desired video. | +| `image` | string | Yes | - | URL of the source image to animate. | +| `audio` | string | Yes | - | URL of the audio file to drive the animation. | +| `size` | enum | Yes | "480p" | Output video resolution. Valid options are `480p` and `720p`. | +| `enable_safety_checker` | boolean | No | true | Enable content safety checking. | + ### Kling v2.1 I2V Pro Kling 2.1 Pro generates videos from static images with additional control parameters. @@ -445,6 +511,48 @@ Seedance 1.0 Pro is a high-performance video generation model with multi-shot st | `size` | string | No | "1920x1080" | Video dimensions. | | `image` | string | No | "" | Optional source image URL for image-to-video generation. | +### SORA 2 I2V + +OpenAI's Sora 2 is a video and audio generation model. + +```json +{ + "input": { + "prompt": "Action: The mechs headlamps flicker a few times. It then slowly and laboriously pushes itself up with a damaged mechanical arm, sparks flying from gaps in its armor. Ambient Sound: Distant, continuous explosions (low rumbles); the sizzle and crackle of short-circuiting electricity from within the mech; heavy, grinding metallic sounds as the mech rises; faint, garbled static from a damaged comms unit.Character Dialogue: (Processed mechanical voice, weary but firm) `No retreat.`", + "image": "https://image.runpod.ai/assets/sora-2-i2v/example.jpeg", + "duration": 4 + } +} +``` + +| Parameter | Type | Required | Default | Description | +|-----------|------|----------|---------|-------------| +| `prompt` | string | Yes | - | Text description of the desired video, including action, ambient sound, and character dialogue. | +| `image` | string | Yes | - | URL of the source image to animate. | +| `duration` | integer | Yes | 4 | Video duration in seconds. Valid options: 4, 8, or 12. | + +### SORA 2 Pro I2V + +OpenAI's Sora 2 Pro is a professional-grade video and audio generation model. + +```json +{ + "input": { + "prompt": "Action: She opened her hands\n\nAmbient Sound: The soft crackling of the dying fire in the oven; a high-pitched, happy little ding sound from the timer; the warm, persistent sizzle of butter melting on a nearby stovetop.\n\nCharacter Dialogue: (Voice is high-pitched, bubbly, and enthusiastic) \"Welcome to my bakery!\"\n\n\n", + "image": "https://image.runpod.ai/assets/sora-2-pro-i2v/example.jpeg", + "size": "720p", + "duration": 4 + } +} +``` + +| Parameter | Type | Required | Default | Description | +|-----------|------|----------|---------|-------------| +| `prompt` | string | Yes | - | Text description of the desired video, including action, ambient sound, and character dialogue. | +| `image` | string | Yes | - | URL of the source image to animate. | +| `size` | string | No | "720p" | Output video resolution. | +| `duration` | integer | Yes | 4 | Video duration in seconds. Valid options: 4, 8, or 12. | + ### Whisper V3 Large Whisper V3 Large is a state-of-the-art automatic speech recognition model that transcribes audio to text. @@ -737,4 +845,4 @@ An open-source video generation model for creating 720p videos from text prompts | `flow_shift` | integer | No | 5 | - | Controls the motion flow in the generated video. | | `seed` | integer | No | -1 | - | Provide a seed for reproducible results. The default value (-1) will generate a random seed. | | `enable_prompt_optimization` | boolean | No | false | - | Whether to automatically optimize the prompt. | -| `enable_safety_checker` | boolean | No | true | - | Whether to run safety checks on the output. | \ No newline at end of file +| `enable_safety_checker` | boolean | No | true | - | Whether to run safety checks on the output. | diff --git a/images/serverless-endpoint-id.png b/images/serverless-endpoint-id.png new file mode 100644 index 0000000000000000000000000000000000000000..c3bbc94dd09d5555667cb4848fa47cc1e76f2a01 GIT binary patch literal 268289 zcmeFZXIK=?)&+_vsDP*-pkzfP2}qWVk^~8oVMt0&GsI!Yhzb$}l$>*h8R8Izq#!xx zIDq6ZLzJ9ubIyCdbDr`l1P2F?^#(q0W|=O?6bFY$!BSH4jhv(;{Tl~cGfNxb)T@9Q- zkdlyJR=o3#L_+=s`}^OI{N-Qaej+h``KCBMhybB4Rg{)bA4qej_?;Gc(>jQpkd|1j$U(4mJ8J`N@NtN8*U zcM36$3}M3Km&MnN#Qi-T9GM6oCJ`3jD)Vvdk37PZ(K&ISWySL6v@Mwv8EHKA^rfbc zdhK{HaNgr|vJn=aem|y>Qgc^9=hYW(vzQ8|vGB$SZJOEJVP*cW{E=5A?2C(f3<6?f z1HZaNidr#zb$r*2LpsZ~ouF+XPRB5R{nHDZ8}_KjOpj`&v!3ZwXO#IIN_PBot$FUh zOOGIFyJ~z4R%(6HLe%Nbqu;#nd#C5HM2s%tX!_pR7ImapRwB#n?wWB3UaWn<9kqwV ztrSdB5(QW6KZywQ7fe6Nqz|X!ddr~pli9fVz4nu^YsdM&i~F5)-YC?ccIzEVU`7KJ zxH!}347)nM5UMN?xIdcNKfG=H10_wObn-srl^BNyJ$WiK{Tni2C33l0V+|1mQ`b(Y zN^lc4Lr~>(ud<$*NxLon1vOJoD9!!&Mb7#GZH87iwMG zes~VOkw5?QW5VhxPXF<71nbxg%g-u$qWSOc(#c^ay&tb_UgMticKP{P1IM`4M`P@K zc~<$2A~kJT@w_Mtw{>n2E(NXBo3 z-VnHf{UjXz)3@ZIK?ol9jd+f@xTW~w^@$v3!KAnYC`w-_Gk~geQB@1O&0cGq(18&EBci!ee3Rr3S1Az-e2nj z*PFjnkA8Pa@S)no^`gJ?>BFl#*TcR`EqgxETjG93)_HA5;x6-*jvth7i1~fsDFhh& z;}@b9xJ*BE>~88^5%{iO=_d4@u=m!KPtT1HU++*hNc_G_`jezsHsLP+?8j@5e!U_J z`;_tMf&VoXdY*5GuWpu*u*jCv54DQTKXV|ddSCVs_Vx2Crftf@PewUHc^@fLHJ4vS z1UvLT<0VdfZBHwZua*7_JkivDGw@W|}0`JL!H z0(bWBDBqdz4-F7~Od^+TqP+b?I_w}rMD?yEjU~m(^A*!EWZN@St+ew2HT6dS8Ks zSD6Wj7R&;Va}L~lzxU!}>aUz119z-C`*M171}gKm!jw{V`vrdo{Kj=-ImJ2Uu6-Sz zW|`SGG;iHKT+l00;QG2$HYk-(o=ufa%Q|3K2~G&=LCTG5j{A(i#Nv(XB9$%0&E66@ z;zvJx+i7lNobb+R`3|%I>LR2g#3)n^1wm0zBvjvt)G2#KbD4GsY;L5$_9Qg6QLlNj zr>5^o#5g4n%KK(9wxIYXTjZc^S};%mQIj0FqvpFpKA<_!V>WEIW#((< z-nkyH)-|@cvY6i$-&M`7@U$7!S(a0L&=qFXR^C~rXYJa(T^otiNE>>Y@0Pzb>^3a2 zhPy_&=FZPcWf;%GAIU!g4k)*ou$j13u7!CctW~X0O;Fvjms1;GJL>h(bK*wBjnKPc zcOw}ff;qx=)Y~*x)U-m}G>tTbG;1`5A!YYtMI4%19U1BctArMwgB?-A^6u)(ISneo z=?20Rf`kcd35B6q!NioJ=1z^vS{!>EkD`M)D)b*9jP)r{{MBAiM_72(5DJRYt;|Lh z!s?rb-^mt77xlQ`5jhcEbm4XN`0cdQxih(O7#;mlt9(SMaLKr!#lP8xYG-t!Gk&AC zsT%!xA$+xTEE_#C7`>spa@^W8sk~f)-gwXw72Y(~-Vmg;agpAz8-a5>;^Ys`;EMttHjQ?lJ0su`gDhcyyVe5d5=HSjK&U15-n-&n?$U3 zJLneMZTEW+3JyYB>Y$KYG}Ts^+8Z4=v28k-E8Z67}m+Us% zp{Qj|*{&rT7x5N8eZ8+_7<(qtC~T}DW1akI;nCU^Tcjvh&gT`7p|LJ@%d-F6 zHyXt(MKW1vD2K3&X!(rx#@2^9QKk$gl#*G3$D~N^;d-upHX=Dh4DI#=(|K6>!dy9V zEeyoduZQq6X9?%9p+mL$$n3bovet;*H@a(OE44ffcf3}vHeQdcpE#?_ zM#E2+8{dCs4>h7gdp>nJnGHB;iw?n4wp4zd94nIVwSH2Q%agOyPB(YH?DEiat15q4 z87@9jU*_t%$yr|yLbX6)HDR@@p0)GAXYn+)`cwS-QoAB9(Z}mM$FsMO=<>u$#FLIA z4pzpNat&V@w%3h&fltWyum-je+rkLWx&2duw-T;pa@S{eiE%9CaGuRneG@W(iecFN zR~05cfA?<4<1sO`znVgRHXsZ8Q6I01gF)lJCmYPp#`PskWS%q9P6}aC`#? z?+OXdRp96f@QrhY5(n=e$2d6hSE&BySoI3?U-#hR;C!~kx%SsRAmH=j>nrdBl>Y1U zYM39+b>J@&;OA2c?!WHFhooHn*D>Bj-8e7QB<19QPc>r)Q&Wheg{{+Q$Y23*;-=jz z9Y-7-a>k3FD{`ujH*s)q$1K&gowOAdgp6&$9PdnQjZ8UQz;+kU!4Yv00uI5ZPVeYl zz%~#^As5j{|F}a4IKDW|`H21>w>VjgKGIfvLoaFTU`o%=@r>iyBQXMcdU_ED6Eh)I zDVe{D1AmD=vT$;;6XN8A!C)LP9u8Xvb51TnK|#)E+??Fp?7$uDj;;`=cP{J@M}~hs zL@pjC^v2S~)J9v%5)5=T&@?eFeqMf&f7J7TF8#Zu z|17HEXzCzo3kFI$iT!)9{wn;R7yoy`f7Ge-A9eC@bN^?Z|8eO*ie9{gkgBPptqt^| z6Ez@~PGUf@%TE9AQab-GCdS3f`&Xg=Jo~>(XkS|5KhOT}63PyiKu5g0Xqp(;Up4&a zxxelg;k+39|1gGsTG~I(0;VQLAj0`SW-CTOrj;mygCl_>C-p+zSfpg`Lzm(s9zjYn=PY=0x`qziJ*C5>U!72Cut~wkas*pd|0#r{g zdF{reNh{S0uD@*$t^oDbzpF>W@5Y_Vwyy#ojQ-}`aex*-$N#%}e2DJS+l4>0z1H-1 zoddMkj_7aedGJVL=85FgjXel>URUH!X0q_=D2`tyJT z^_ckM_{0;rGBD%+-GEBW_!<9=MO?endgltRz=Lg>H$;Cl8{h(9I4yto(*HG_zZ`Y88#Izz7$9q_0t^59H zu39$1BHM;?o>t*H*0|B{7W_q{jPp81XQJLac|z+H%f3-9dwBO!FPU-!@aKW=qe7&` zc4Du?jax!eHAHtRvcYZcL6V1=-?*#>gZUwomAzTyPqp82)@DQMY-_Q^RQyib{ovD$^Rw<@xNfu)?UO}9rvGY)!{C=R)?AI zUh#sCD8*QjK7R0cj9r~VVsEPC_3D+y2?De-Uhb4mSuZ(9g6+;yJ(z++uXRwL)wxRS zcxDOiS?xTW4>PpYuXe_kp{t!;dT!H**@T`hA2&_mvt9mnH9&k|Nr&Zmeh$HljQH_L zA&!^pphP`c06flHq9E*yc{=29O&}^q;fE_k*ePf5sz4;0R{8OI^)w~F4fRv`WmoJt z^rfrGPl7L$p6TfG?=5gsNdD-}n+ALqy}j#o$C6Xi?el$i-IDp*YmVkh<$F6J z!s{j0h?OwaR7wGe(VQ)+>3E{tGyinAjmc&Y6YIP++Y}MS$;oqzns;;^wKf$q%WpkA z`8!*xBmF+5!DX{o4-Xh8#0P<@w2j%X4;u@V5>d{-m%ph_4ApraQ&5(%AR8hEZVe&y zC+dDL6prtXgtBhaI$=h~yiVo}M|XO}t(CKp^`Qu}ND^l#uGX!S2Ys)3@c zK`k!GiDGU~XTn1tXYBaI`N^4b6M@;if-+Uc>V3)mvANLm3ISTB7hd=xZCzbR!}CSh z%9wJ6c%l%rc)D^IiWz0Ox`#NBKA2|`UufpGQavFn#=kU5vVH|(F~M&$gRW|B$YfV$ z`7w}z@Y~INRh=-9p7?rFw_i(_ss7IU>_kx53!^Q6jYjX;+(f9?be?9{7r#$cRqR-S z^IdoAfh@560?acdlh^R0Uogg8{5%r6F~yL1$OFw%N)(#FBG#V&0SW#jFp;@sZWHU` z`<;w%9tk#26owUR9FZUU9KY4DKY09~Fn6I8|6zXy8KAd4$+M1Ri>fSu% z<&IEHI?sRqMRi1F8qm75gy^<7(!nd+>?aPLNxN0zmDg3b>3mG(5Zm* z{fMRHvvSkV_FVs=Jn@a;Gbw~YjcNJ0%QD+--AwsO;jg(HcNbn>0$7-Z0hnTH-V-(O zG(}S&^KNBod|6t({r>d%)~6TIeAb%dpF+V`(4j95%Pj(Bc^j`wI7Du4-q=f1d7KQ4Z@m5}({Uc@ZP z7y<1=L9J`+R|c{{(FioA!|*5%;A=aYn6TB&-G}S2Ix=yVIm2n_e(g<9?z+u;cP_(o zJ|yHb&PyctX1k0GMG$mcZ=mcKYE#M^b&m)5Mw~)0M^;UNri@i%1jUeGX{R+XOlrNO z#?^LAtA0DPHAQg{H;A0Q$oq6M8{D!7Rtd)@xvvLzat3#bc^-{nD`a6;vLu3W*}V@t zNK;c3)yFiwiW=&+BROL{()v?gNZNG9*sFwd^B21AknerJntUU2zSw-9 z<9JN@ysD=b8#=TYsLjkBDd9vHysxfvP=HJ5+IRcx4D$hG}=smX$6+2Rl z7xy-p|1A~Eq?}Z?;k_{dsal@ts--*fUvnr>O>5%eI1e)PXvNdE_G{mz3qAe5M#;(R zb2&mqa08a1HAZEi;tcC+z;otEOY=Ta{PkTPwI|5N)*h;+l_pn<>+&pf zdlTzlCj05m4(hWw8Un-0ZKolmQ!eZdeZ{7|B+}^U-3@X25|LF}@YwNdhHSE^TzfCC zv(n^IpVQ-)rR9)BbE^e4+Ws6B0qtq8cgYpgZanYu)3%EYBko>0{!RpUD&?}Dtg-U> zsAVgS32$%^feT+pL#Dp3r{1(|z0Z$v%hzBNF3S>hG}9f*BcdStaML6wzKobg7|&rl znO4|&aIscYAi|sRL1E3d(L9D-7a7>e+16QX+)_Qv`D-8#<>Y>}Qh(2SKsJQB{QRiU zP#Q6Zs7}{Cl^+~&=(C7qxd-Rl zV?8>xZo87wN8#4?NbmErH)0Pi%?kD4xMU@<-*0;zBoAlUhxfW4?Ju2~@nk9ATA<)# z5Eh>BIx1~}%P+8|YMcxPj}=4EABno@+}Gh zI&zc1{BnSs_e|MWnb}qkKU(TZu3*(@Xpyj3Bodb z{6VP5w!ZaH9@K)YuDwOYe9FmH~ zjFnFC+i26ZGckDLTG^++See!-YsJ6)fU?v`W9Bxk$e>wI(t~ir1d3H$HrB3K(T)y; zW-~h^irssf*6v6A!C;Lvq5EurxSQtIK;Sm$O2NBESt$;bNn7=|!}h@giM5f>S7WIJ zY+hA%Mk-X=of%o|$w#t{H3j`T>HT8ao}*Q0!0ex+!S)=w-1~zU++;J97x`^%wI8V~ zgAW;0oQkG(d#=9dxYRv1SAU|Di$DC*m;Tb^*oWv|&R3s!7PTj1p8KM2Aw>cAw;}q~ zx}|1a;1NV3*P*m0S345pFF%l_l*P?W@Fdt(BX6<7E|$+-hS@H?E2p~52@f)8WvuX1 zV*j(gX$?wFO_eaEMB#OGjky)Hzszzc#>m8UsOVjzU%VLU%Bysl={r?%3msDx*og{R zCABQjla;~@)sOy=24Xrfy*!`zX2rDXk81P+iI)2a{crhei?{-@G3)i`#>3nKB2&E= zKqsCb-1+m7+LKG6L%Vv)%Mklg;}&P#qqDGQ1%&foD9QAWMhFq_lS@0Hdl>PS|N@?v9K z`4YcDreGQhwBmSy&H$mNYNq^{cf?@-YoEr0j4kPYE<4YqZvCeMX$wDd)tEZUf)EcS z{i=#>8jOk9T{-Ld)N5qrYQ>x}7V~+ItBX>L6nv!sCjAzq2}SQBZN|7AKsqLx4nEtQ z)g1kU@OK_ZLv!LV<2Q)`J&SyoGbqn}N(#XosTIGv1k5J_NLwVWZCCI$Hb#rpn9t>T zNTA{TuBu~5k;;Bg=AIp`T!*SOvHKD?*9Yzka0H_S*_8S#8AtR5o|h3oy^%&u+aEmY z*UCS9;dUwMfTki%R@_tB+5Gt&Oty667=;#x7}2@@n#!pkA|(7iTopijyq=Gnb~S%z z;w5MLWR*k_zSAEY1}}6@6k3^7FCK>ObX@={(U)s6t0=54iZ@N##6sy0j$H^ZP%A(2 zhnZCXm-}#MD@h2gehngh9BFOq>WY22rkP@~J}C%h26{%f)_-D0k)PHW|@ zu>%RNwQOoFA&HXK=ta~lsLn%&x&ATF9(H1>xm<{DTq-1T-(`>`&u5fLvllb# zihDW z(Rvu6TDpGwNtLJDXjDobB!ymS8aBsh(%a=ZA0_ zQMbnt%6}m1^vH91ec~h8#Eam%{DxB#uX|QUY%M&Ge&1Ti4oi)q4FGXIrqp7J+~w|x zym?J`(xQz;jY%5u_B-@rfq~TbhYpLCogDfo(Auyo5Xa~|iY5VALmN&<^tefZd4a;b zJE1t1C;g*#(}QW2UtETMa4_vr`*~>&q>*>?^vi<*c^xrt#~_M&(kit5Tp)$SZ>^)$ z+h}uk(EJgnWGK=)+EdH&>UHAsca4bKky!l^DEi9-HOWJh%Q8dy_YwsXzQmIjT1+j- zFPkv&J{Ov^-%_EX?t2bbYXyiEr%Fu2S>8yo()b)mwE69>*0Fc>gpRcWV5>%#)we*WH0u^6?_=J46dvGJ9WGLTNHw;*b>@3h z5Cw)p{5&9c_q9&OP1_pssT7(O-VH<_ju#nrC%cg8bn3IW_U0wnaZ6c1nu`a zT{HCCZo4#7$MGqW@Vz~$5HHlEF`Gn)J?wqh2$u<_Og(Af27-d97%?175YBeE0$@i` z2L@wOCm6ZlPNo746@yF&L6^h!{LOeCVK+=hZ>MQQu~`@EM46?e#hPLqFOrtyy(_VdrK&t-qrwoI)YIer&)ctsB+=!b>xT7rs$wY&Ph@jL!K6?9KUBo?`(gQdqU%qJ zRz#WQRS8QAy>_iNksxG7ke2eCwve1a#M@aW@x$C!%{R)TyBXMVB+n036NXDENr^Wp z4c8$6Tk{sk@@}k`?u&G2bOIRQX+-kVbP#ft-)VWX_bCC9BJ|25)iHw31i?lpb8io; z*ooD^tK_Szxn^CUt^94&Lt*HuISL=~LEVg;x6(jC#1|+=<*-Y&=!v(RYn5FuXZp2z$Lw_47 z6G43D&n(#L;25NS4$*rwQfO$+S-0u&$AIHcp0nvgg>_CFewJ=q`4GhTVtwX^WPv7p zb7q==h(^fi8PFNgQSU*Goe6hE>pDj5`_M^@th#Aja!-_6F_8X~(^xUjz(ipRh$X+x z=#6}XT9mkMYA9f6WmC0-+Ep6Fd%(35qHBdefu~?2O#sh<3w2uW{ihX z=TpS+soxq0xM_QzVF^4`5_!5Pa6b2;S&|{U#XQ6TJ#o73eP)41?fNI*J3RVyOcWuV zr2t=b9CPAYnHn zD}IuM9W55+g+Jxy(5rkKD!O-7&5n(AMf9K>=529)?5#YiD1bI%*MHV>JIj(N&24ve z;uhj{bIatJ*XcCfO}wDnG(vC1&wA*j;p6RjO05Rj3{ztNXwuEX|4JBkF)V7 zt_G=c-gC9V?YBo|EYAC)bRlE8tQvW7tXYO$hfOgjITX;fMeXymUj()qX{^tr+KH}c zkmOru9mvlY6j1V84O+Nkky?c8%cI48aK|T#PYti2+7N7|KOi1)2Y^tBYj1c`V6K$G zkZBd9xW)m`NNL`$+mBgTKn6|Dp93u7=xo!5loDHhr|0qBxU%;)-CiTzS$35f^S368 zfh@S^VXAjWvh!9N#d2FWBGHLDo|GwMLZE(&Z{U!bHBscjI_op5I;TZG+o=Xxml@Jj zjdcK*pPej;|Jeo2<7!C@p1TWTH--f1A=0XKiiO+8WQ)-JP1r4gwVSO0nCDn1AxxLzJ^ zJ)l(1l5A1h8Y_3kvQAXmO9J-IJ%~5L5b7aNf)`P~znafE7Q|_`c))VOL2P)RtEf?U z`97hTY_n$v=V|6g*=a(r?kCFDFW`o+k<@uJwZHum&*`=GFkdCzENAlk)G)N#lk-$U zHHZH4K=G#g8Y1p{*J4+^&F*SsYDKnMHV4Zsa4la%wt7Z zglyaA@qro{7wq+Z z-7(nx{FHIZ&5G$p4dZGOT$@U{q^NmjWx`g%g1A;-XX$hGDq+{FKg9A+7cUjOC!*q8 z+8q8WYLM*B2m&oxT41p2!$L3B{?uo#C3J#X%bq%tz#7WqjOkJd8vAs!PhJ z^X$0Zo2H%V(md3uM_p-O!)%_ zF3bLFS}nBtZL}acd@}{-h1^4QiL@*mHO zdkQ(M09odEMcpA(?RCUy?)!+B zp%onZ)xOT&b6LTuHDT?`L-`fK4|v4NjxLhcfQ2$B$ilq!QiPN8g>p@HUEe8MqzH3iWJ_vdZpwoIlmJy^N_(U%V zuM@Mnqwx$;=>4nap@hs&^^Xh!XxYctDe8Z}ndj&2?x^=ZoyPR0e*8Ajp_>Kjvw^{@ zrd-XxjgTcbe;Pwto2R~r2O?@^ah#B!Gt7|%$jyzguWyS|kJoW0d2B0d=4-Ndba!)X z8=eG)!}G0%>{9r=Tn#QoHgBe`AyA;g%-7K_k?FviL8xot;P`9>B*pR8GOdD2?2-7QO3bojjvI7eZYQtZ9BY6zNopptgWa`WrMEuC`5C1Sv7Z3`~S zS(vlhHTR{lPrn*0>Gx^heYyA7FMVio ze3*^vV3i|<0Ho_SJkJ_Sn#?{TR`J(y!iw;Ovh^2~KTuY^o)- zh*ZT9??}yoiKv`Ci5iP4_YFw*H>RxtaOxjhSX0+K${_4)bDKv zsy5B)Dp}TU)K$0gdUb0=v+6_LJBcr|Bw%H0C0FsO`I~CkM)`i!Q{qUs-jvZ{zO6#! zMV3*+k^Yh}{M$F&j%dzOAY1#~K3rkwJ>m)a1*pi+b^2Ka=!n z&e=-b9xvy?qdFPv5}cnO+%Y5nIEFNUa-Ii<4CgRlIU79iG*~3Y6EXutr$8mWIaR};(r${@9dlgn zvL&2q8Jn;*HM_jt-W)<@h%w3^>IOKvJD{GiQga(16;D0MfAkU2j|i-YO_ch-D?A8( zpFFJz;^Sjs*m`_cF;9v0$X;oUER+TbL4yjptBkX)jj~px)xR_Gl0JCA_zXOL?|4bs zvzfPC@!2g}?!m<__YORWkuJ!R7TF4<>*jWQ4(A@zb+rc3pwlCLic(I3$(qduM+1Y1 zrUD%vOlK?)SI515U;KpgzECd`(bihRxYOAs@nQfGlvc*G>@GkjJsv-*?5{tEt|#=j z0_26(JU7~9?z#0C!2G)6%_}85r)}rV{URMiK3bu_4`uu|XlkG?Usk)jHX_rdM0+Wz zv;dmPyEVDYvHO50YYbk2zPp2;$9>+$bUu%4@Q1njRYh;9H4W8SWnU^DF7qc6HyTkIe3X?{pK|zyIX9akn zE5w?bK-j1|Kcxeyzg4F?#oBtSWufnC=Bc*@s|+-BC)e9G{ir7Eh@Jp^#l`Y1o|hZI zxoI39jnuE4opo{O-KcO2j1`=f?n$b}yf!?Nw`d2J!Z5k@XMz#Q@_r$wW?k_UA=n8_ z1l4Qip)&KHbrNf64o*ZnnF7IcV4+7mrpfVA%9FM1yT*h@+|*E;+7rL2$(kDHEPDY& z(EV_u#V;#a?{DXx+*EL3nA8U;)gCzm?Jr#&+G#;;?aTWlx!P)V;-F6sZQXtFybX7? zb5%{%g1)XHsP1*{CD~5Z^a1Zo*3N0=hdMrL7NA8Y)i(U#hVQhApZ6KKE;OYf>P9<) z9|%vKZ8hZYWius}Go5b>98Z*T#(;ih#yNQ%9G5D~b|XB`mb}jt=F3cC!Q=B)#a><} z7i%6}d)pnH<7cPGl80^FgWIy~x(045&|~z**;~$f?jOAT${s~5V?r^0m!k|uCOeJm zkYR)lIG!JJVU zD_Znqa|G^;6~dda?oCM*JxZh-EqXUXF;BKPzYuNcpr3{fPQXq9B#+@igCvBiSf5v> zOD|KNta^8N0+TK7E;5*zzNqzntEyg{6lu{Q0#(@$GCXU>uN*exFk0%${*Ly)n~rS} zKdjP#yAAO-C|ERKyL7nab!YMlGvnt!aNQO=@V&q9?Eq^U$x-2XVms%z3*;VgF*RW> zeZcy1ulCcG(e60Dd>dn_udI>K3Y#Iom(;RE>J(Ze0mwXJd}fCNUC9!zw{M<&_WPr6 zl>O{ayS0Ru6s)p53id5EAMX9gu!r1ZzL9mYmQZFH{!ypN?QBKaoBx-+6OhE)+T?y? zkfpGu+9FJTZr?!uG=?IX#tkkJ*!)61qVAySa}5_vb!AZj4mmscJUuaTe)_F-DA&FD zU1Q-s%0zG5;7nWo%xy?99(1BVP?hhA@ln>!9|k`fN!?%kEPfEOR=1^nv8qXT*eZ)Y zikDS_OxLBO9Xh~Snj()c?VCHy!an(8c09&M>V@3mF4?Xgy)w4SmdNr4-UIAe^-fG0 zk16=<2GV6YM{sksP(db?^B!BXu>QI!DYgV5(=g9%(&RvlL%X5bQ2TA0okhj74uZo< z2wI5Zv5ql7eXx$!AFR*vzWepz(0REx^@D5Rj>*YEydqqYBr_qw?dDaQfG9ae?}=e{ z0DB2JE#D^?#vdt!?1GS1iQC1gnu>Af>HFRym2n@Ib|;VOP8L4bjx2R2A+f^cu^+hD zb<0bD+!}9((QP~4@Vp_4LqE*Iq2Xj5-N=6PBagL^PkhRao=bH;%$`2^sC-^~Ix&w? z4NP64x&c{!oP+{^@1_TmOZcq13$R>A7%h11VX%b#vISfc49uqq; zg5DU9i0pJ40y3I|0ytaqeVvZzTH9pzO*KH}^F=CNp5@%ON5qr>M>-SWHc*g$1OGUw z%j4ILh%`X``x)M@5$sJ8NsO5`->4~lW<}z<@MdPVDd=W(Aqs?&+nFvm(N9&B+jQNG zhWm$lJF^=bc&*Sa#!cPBOdaklVG6xH8w_5N46?)swvh&N?ly6XSxlcapO*rVx(er4 zz+=ZHW!3i!!2$+IPVW`Rz0F3$5_C0;0;TYdhxz#q+}0EAj2WfnS@XNKhS8lqiK7uF zrx^sc4O3h`(r?mmBPn?;?5d(lqy(DU0h9FUq_6;}M<~W67*NUpJNk4?kN24%!CHg0 zxc~tO#SQ~0mzB*eD*iIR^9UX;llLsv*yfRAx2J(}bh+9lQ8|!j2Q= z;C#4l#qh+mdXy>cA11pFAXQ*o>lnXuO8k|i`9$C?v$C7Anq2~t{;k@O*91hwZAT@} zm)G>qXVIGi^|7dNF ztVgE&h-e^ylB%nwLFLh(+>H+#;6)spOrE}%SiDgNK{p@m{(~y&PI#$8^2b7t2-VrQ z!=C=b9lqhf8&u7ASda(6+CxBTVOTYJo#0Z^QbPK|*Wz#3I74XihaL<6it0%gv&|+> z_)5SBtQU4 zO#S>Vplz<4-7d5EW(~x=5vg;O-@E>*1x!#zZmikuf};}3LB#T!GL8mllL{@lCagh zg|PRpnyxs(#tQ{WzeA@wKW;E3-*)$}@gsn^4{|!=hz~0rV)k+JHpi<-U5o4!n6$u- zmsbF&YYbSP`xrj3r+1vPQ`UbM2Daav`B4V1eyllIYRpJU!hWn)?o=m}%(2q#l=^w)d z`f~`u>=p&(U1@2N&ssk{<#$g_#DF2E5643Uepl2)Qw|%sSX+C5c{(h0drBw=x2M7f zt}BiH3jS=f;a+XilEChK)S9d6TDaW|Eh?`tP+KnNND#GkpF*2bO>2XXqp>VbXWP7z zkp-;IXqb$P^c25iI{V?!hi&x}ZZ>N`tqcCWOa+HqbE&|skRKd=FHa5phOJNPOq98X zE5-|r0c5iNGts{AMRw5W=DQI<=lAI&Pyd$bMIZD0?P!NoNe<4`_`RO9! zzPDapW!t^=K|1w=lu1VEB*1wV1IsTu+15h3jQgB1-HGDn8=U$^gb9tYJmw$5NyK^v zPk$2@tnZ#=5NN3yUD3F!{#JdY@!q+-b)D8m!<`do1E&seyAQ6BLwUK zxP2j1WJD=yhI}7-^mTphh`9o21gH@|xJC{T&Xs8ydJ0;V8!c_=>)JH*65N~FSoh*# z+g%--(1f3S$D4BYTYMd*a<}IfnSF9t?Pmo^08zAuOZd{wEyf+Yj|Y2KHKIIGp?oV7 zY4jH90&-WV7cAoz`)Xn%Shezvy6_jrQ|P{wA+9guFPVx7?9n%&8(r#JJ zNBOTb^cf{S@6llELcKZxT0EgF0;P*tuU-$nIi4Vx{#MzmBN_u5<9C?9#gW4Wka4Q9 zqxI)FR6J%L3cXLfbq`+)SWXVE*X%%G`)VyOwW7Nn@^{++GGP=^mG$~X@8V>Yqw|@E z*XxQrjXY4Y*r}druYPy==5tuqy7?U>bWLPq;l)T=4l_L9!&+Wz51SUkMgZ-UPxy$4 z^`J(-(&a}tY9=SysbcE0m`CygKxCG>JWZ1*>JUTwD80n-38Q$m1k+6Gr+r>D?X<4m zzn>3!YJio4$A(gi>3uJP88)E=^WV0(e2`!v%s57gsch|It347)Jd!NDws~YF;9RHE zuBfa~+r-%L@VQ-ul&PCS(7?LB@<&OHY_npf-72zj0A%x-y?M`oRHtS)dJIqy4k4}S zC@loBR2h1HA^XnAC!TR*?x8&u#=4;yHG1}DdRr|`&K6x~F&cvw+8wLqaNFHNON(H) zJmF&b;q|?4XNQfO69-3eF|Mxm&>K0rWuYGP>6*YU0^835;HhQgwLbm0JQ1&jNQzob zE?~L6WxUMNS`g}3L$FXUeym^uQ_8cb!%kzlU5Rt+mHI2lw<;9s7t8rhvN{X$ zkzgQ8$5bsPAw}JtWg%>d3z|(e>)nx&{Za7vT4ARlXnb5BAg*Y@L&&(papDAekboR` zf(p>R=x~^tt$N`T7Mxn4QOIbdX-C$~h5C?X=YG92O+;{{fb2A(hyvF^4K5<&7 zZBJI|!3~*&S_G~OAXq0etr)$1tzCg0J+j;8 zY!YJKS7F>jOo8*Yn~S=0ER?E#KyhX6vZ-sL9rV>%21tXa3NKRB*LIfqx?fCg+H=Ev(xP15Z}|K*l^@ z#fGD#Corg2YWpu&A4$pS+Y!-%JLFgt*%q8f5X!fsx94W$EL%#jveEEdypPn9#Ym;2L7Irh^SeR|BoL3PJA?NgphA>`zgF4ee z{TBVee}y#Z(HrWE2uPtB^1+&1Kqhe7ExpJzCP@&Nk`&k|0Sg?$E&E?nGL2BZ^?NXA z++?Uw$ApYMA8PUvbUrITA!Z(~712JF4;on8zHZRWXN3Gm!NQM^31No%9w#LB`Br1PdvHVh@V^r5f7hg_o-M zunLRXK2Kc%Tz4VV)^Q3is~kK>JncevzKa91QFmbf9%0rUlVsPs{9quP++%pq>S^Tq z?-TIm1u%<}%wCj7$-e%LZ$Sf!2GvDC zg^G*{7l?ay0#zy$L%_;!=#kBqqFJ?k>*!7^{#-08E$4V2yDYXf>tp#!Fw%L^;@8I^ z>mflJO6@hO2^|30bwEH97cd}uFR?6fr=p6!-%QxOVDrUz{!pG77(fa#Bm77Z;wfmc zcl>Jk5<0QmT_sJlb-H*xdBu3FYt4l->cq__QOt?e`{jpoJ|&fjcwslSiu$Ut@~+8< zx82*Z@RWdNgvxl8TG#eYi=kYZfED}pk#(Uq9CXOemZzROyUVuGGhMD<{XyOmjm;&$ z77&KZN}y>$vl@m)!=~kUtxddyD-^uiH$vDQvR=o&)_>b_`)N+V(K@=?$V}P1imED# z$&11g)p-6hfRt;3pl-C-xEecFJ;6&H+Wc8%p=P~|FiQd5^Y+1R4Rr0~dly9DM)ve7 zix+JzWDZr<2L5IZXy*8W;TZ@BFMb=Kc(8$2R~J2EIz8B*?rD@Ic4wa;!4?vUYZp(h ztrupkX}&?Pfzc?&KFqhnu`wjJnX1KQAd1t_Y;710Wv`BNPp$yyM9q<1q^Rk()JW4C zul;ub>&0_x5B~dTt-5}ZsIg$ycnn2bbgXW$D!%@~_ z6&;>YLu6l3a;g+$DlC;r02$_sA4oHYVl7xeX#yZCx-0p-d|wbV4zGqfvHw~fhOZ5~ zPg*lpfG0Eyci#>2&+f!kSiBQ;`|WU*NWcmGa@Y(MM>^9Iq$XO(ILy-aLDc z{k<}PS?(LGeuEv#hrQ5pcU-Dl5fhI-ZoC~O$xalH>WS@tNg<^?Xxc9^BCp!w3y9y< z9<^lWsbz;$hzk*$rfqy+SicWwHG@`012>3&>W*ce6NFsfuUk8o)c17)c(Vm0*!p7Y z+GgrU1Hzv(+`ghCT+q{921R{BR=7cJyC&+z`?>JNwcgZpf#H~=sKTU3)6aVO{Izr) z(e)e1VSmGBZ~Z|BYof|>$aEa9rCBg~3y>8Z?{Dlt%)V-*&7r3uuHL_U>?sG7^fRBl z_VpBC(j86)c7JxQ^DItj2_QNOVh2t!z3Cy<0CYvoArkj#^qV}VR~;+N_aXaLdJau6 z*?eJ5&t@o(f8D-v6^A`BN*F%0t+iCHt}5qAchrJtzvInuJLz_iqk*F7`H4e9_3yC} zZtNs94Rtq6H%eH57P|Be&|SnMZtm*HMa=dL9Es#39SoAhtQBi|cH(WjZ?YRCIBMCM z3VHD^S9a@K-OP8Kg1|5~_GrRF-RN@~w+{9S*J-*5^zp`Y!h9ja)T5!D6j0Ira$jS$ z%%E6&wc+Y};pF9NSX&sQ^Xj0SH|b3}>neLjU@z#hK5S+Db<3F-3=QmyF<2_EN%8ee zBU={IpR->U9oQZl8$&=huWXDfPXE#pI&e$Fnpk%dIlQ- zAp86;0D!k|X=EALT@Zqa);6Ew_rZ1}Gt#`oPQmx~wRc8HJ#2my02SpSuMNw2+TD$fPtvzE##4M^qi?&wn+A}sGL5iZNJ%Wf>5ro8w*q*!3 z?>y)CKS!LC`*VNZ*ZaC&*W;bZ<6!FH9T->w={7Os(%>2j_F45MWkvJI-fdLdM&@;D zB={mmx_swVoAzm1Vvf)d+%jr)xWTOR8-`6@S2t}}&2u9@BWXt|PhU9w15Gi56p}hN z2*(G97`~`*9%jUj;u$?Sj;Xv&^bIJ79u+#`2fYw|?ZHrLuB#Ea`mRR19Ldofer4^> z9tAWha< zH}n;cb@QKX&rHN;mr3*daD|IkRCYtrb@nL-;hL{>t*gDn$j1`F+Th79 z^r}5VG7;s6<5JdaA*(f|m=nqy%9^Uq+I!LTncs{2s6Nh1sN31|Bt~P-Ft}_&C<{$) z4@zs@eW@x{BRh#PW4n`w%!q{0rm0%XD*Nu?hetC8{M{>RrI96C*lQ10`tF(O6YaA{ zs_aX`)yY`W$yc#I9|N=R4l{E)UpMkpWe}U=6!9-&(F(OF-o`$<)%9Jx`{-ypiKUPK zuPCI!$M(V)lkC;Kpd2#BJdEe)K4iMF;Xu!GLN<;rRWB7l_4e6P#(hGm4?hNc&fdz! zo9OdfNhS;*V-#yq=Ex9)wh!X#ccbauo`lX9M-_d=8AJ{+HL&VezJobQ=^1x{x;n>{ z33q*wd2N)ectRr9D{p2JnB9ynSsH~9yN$MI1Q}Ex#w2_vfc^wt-mvCDiZcX5DIax@ z10LQliJA49hirCO{0Gnq-`t^g>KEwnOvMhF+!p0BJU^TCf}`4fGXVGJa!y3agW5!N zzJVio7?>mH_Z;s;Tx_8|k1iPP4t9`^4f#T%0!W!}bN3{)0KUqX4j4rl7u$n7(Pr<*Vizw zLPXKV6qx%6DJO=;vmCK4wBo7;XMgR((-YihW&{} zos0cM*-)`V_y)P=BE!p$SWMo`A-UY7^C{$WqE%!PXdMXe87;xhdSpCLPvAT-!zI5Y zOp}QI1R~aQxcxvp^|ABQ)|+7U(EmL!Isfm#q|p^7a;z@~?HW+9w(3^!MnGAs(9exPhk!$KL2{MrlVGSG*#Wp2F$*fAXj1S}8m zZNd3Ts9yv(teB@OtU3&JMF+e0JYmVUb9x~hzlUWFfv*rpV5ci$rW+0r$mtpm%H7!K z*sG{!)bgT*ZD~!$KIIVc(@%n~_`rRI9k$hG9!h%@0B6EorkZ45=YAdA-%l;Qm$E(V~ zC^zVQ4LqWFkMyf$)3=pWo3I;OOSN=x;4IuxNe=pfMLzra~(6P48wbsfdn{>o$ zj@bB<<4M|3HH6PRx$7)bQCUgh)~Jgy`t@LSXB)>(LmSSN`oR*bR92m@~k=!qbhua`X`U=(O}o~w&{9# znx$ykKA77gf!oOa7xDuRNAQI4d$1CMOMmu4W38xlan^~pkPG|>QfmW?m1ka^Yy0qV zpEzeN|FI4vy|Sxpudw8ipGl$Eiv>Z}DdDeq?jT;P&|fibT6{Owk$M??MtVgo0Y^87 z83<2c-^wWiK#Xpr)d&JwhLjtE2v8DJ?JRhv6Qz0JzGL+LbBz>dy97 z2~=irLa8c+I1dVGHnfuU6a$Y$W`>;VwpK9+X4G%6kWHYy=*{tF<9;~KV&kL$80LIn z?fe_&Sv8R14x9vo6#MufKCq?V?r?v5-k7Y<@YB4bP*kn<@YQ{d1oPrUG`TEr4G7(xMh`+W9+wfqPX3TKG^6sY$;ZM_^9(PESz{N`|8QpvV1G2C*GGp6 zqglKQC1>k!)Cwa}lMbp)ce$)bAOBVL%mf)YyllwL%E=7hUc{*$q918vIJEalg(pwD ztaQWq_n*PB5=W}$1XmO13sjuJX=SkzpF|L-6U8i0d(XVe&g&4wY}NAuVdvY2^+G5# zbG(WwuMjr9IrnMo!Tx(5mT(zBM2LRu=i5l|p}x>UjK;G+pIQu0LTOs!u=MCNdVnz# zmcR*Zdadz$v9Z*!2hq)k&{fCVQ9L_i`##8*LAl&;b!$yg-_X>(uZnvl<-6|5ONiVX z$4L}wsqdvF@zo8=jd_!h<*CZy+6#(gbLkbIBA>4@3=Hznd%|DS?k!)$oCw_ZyYT4wL(wSy6IKuWJ=Zk&{xgw_`s6yn~pYb_%*YJ zB&;PEk+HA{kmjhjcz=2*^e_1a{BWrLYm4M_MO|8ucQo10lw@>LKdRKNg)>skj!{lW zzli0VXZW21+Qp&g*Y9%qcCn$XeF>?7Q*uE$yb2*x-01FLBVRJNmRKYZyDMm-j=fGE zZ6yH#2d9?ZNK_qRt~u1VEglqzhLS1T!|A)AB#^wQjRpxCEFZ+aJ4*i;GA!H`()J!Y zU1`=v%l+AH5uES)1&HuJvJP10kE}a$k3y=h?=+X>!k1=uLynATWpcM6lJTFKaYwnS z5hKj1VrdcTvavNT_{p9j+LOcRP;P}DnwDBCNzwhqux2l{kUCk1#P{XX6|Ul1mUiK`zbSq`jIseP)pt@@~x5?+{H66uc?Q- zh{Li!XAmyjey%oWo290T>mPWdLb40UWp3#7DV{)~_h$q{1{?@g;JSqk20xe3RWJ)L zWyK~P{5jR7wj@x@G4aIOji?JO3C6ap54g^`k6{|SU5P#$t;E)mK7{L8jBKmC^1v`5 zZ(zRYNXU))9c=aU1;V%HZ{=F$!J0(w&jkL8N%`QMOzsxtV)(h+7EPIz7o;nyGDnV{-?!fkVeBbFQxbez_@P4I&PW}zB}luP;BxCV_5nMk zKP<3F@+s`&awk@XZd;Tscrrc^!u!~NFIcxGQ~o^=`fx${^iebJ4>m>;VQZ6kJVQ{2 zRS1#6WaGPavgNpBdwLoFP!nFxp4iPX?XT1FON#}Y@Po2$V4sfa4LDe9P)CD?z!Amw z0%jvgwr8Y@AM01-dF9--Vn{(nnANQw-R1yydL?uxxc$q|KnwM4f9H)Up>UF*e_pKq z@SoA3i42(7+wg=>o3BhbBbeB>%&F`}Um>@kIY>N%BF9aaMU;A1cQ-Rb_fh|XI@f)J z^`|hC9*s_e`+KlJkVnKpC7%|YQoY3F-dAr+iVS^BV)z@rRXB8D3==|uxIUoJ%d|Gx z!98ozbVgaY51`~y{C^nc{%U{8^>Wi<&D|GlruAc8ZAtBH`tayV7u)2Lj%T{9VFOVJ zUl|&EFm3Qzj5l-*SFYpV2?r64pXhX=zJnsRrw<4Zx`&^%GpB*pO?r$fgAv(AI6RPd&=e4m+5h#lK!+$6(KS9oX>O zK5|j6VV@A7=D3d(@-)sH&okr#0{-$PE) zmf4hTuS8&WCo84n%2CW8ww*fAQb%{Dwd~jByH{vso-O!$StOKNl*jqfC+|WHKA!<> zid*jqish*A^oQ_puK&*W>-7q5th|>OGY+%WVw(Lp<@=;L|S$?+> z9X3PlSGqdPTHj3~EZqJ)4QW=7oBq#T18WEz3TSl0iZu52%Q{~;`!KiI<_MIx%}hlink5)ipVq7>qBNQ3`#V2^Y8 z58IohzbMUMgq%A$FE~}OvQJdRuFTbIC_qcW<1&MTUvra~!-ft&#cDutvWn1Ti{?Tp zp(Q%i8{zcwaa+;juLQ$-jb4{ATHJAZLy}3Y`_5g913IzpBv{t;D72A-dD5v5DpBTp zI`a^1^YEfhkc(U~V$|DqPPj-^8rsWwVN%%o^bdN-gMOm*K+ijoYww)pBqe5p8tzQ` z4?n!ve^Its+gSiFsA%(Bm0doa^=QVs-Yvu8Q7}3xZ(z$# zz2y=Y|WEk{F*E!gC`%$DE{i)+A@A#bKt_7R?KQdpOxu%(-cxJ)y|s!m3+CBivS zOlM9jYD*LuPG%x!9+WB2^wm+Kmg=x}PT7C!f;#wc{?|}1Y^oc)R(>Fm=Om*93a*$l zKdKSZE~7wBH&9zL8wg=Niya+=vRXB$^6EPZi9+C0Fg z$X`aQBsc&Jwsi+1vU=?~^~8r5bJ%kR_Zmx7ANZfmfntu8AJve)R->0O^hUPs`x((s z-QSf>R!<_+b<2D@qeG|q(jN5kd=TH}T?wcASTf{%r&O4H#=O?=xzDhg0Qdl|!40B2 zY=-0w!ybD~<7RDZ;m7o<=4XiwTjoJSa7Y!8kjL^+yUb`XsR$bAoU5-~p0|N&u2*7K z6J0OQrAioeFh$68V=J?_hU+v5%gj2WAJgt}khYRzY{kqb9=b>HbPnhuB%pFc%vern za1Q50NKa_(YK*Q+-l`DP?1t7#m`x&i(-XIYuoAUAQi{=)1d}083|z)5vJO_kW+uoD zvM9wBjBK6@5cx=*RUv4vwC?QYRq{iluVjvZik^MYv8pRWKtp0q)`}||eHD2Kk|H7C z`}VTeW!Vea%$0G>IF?wT4Ib(v-OVeV+V8iP^E4ukQBVaVps^c z86tXMyF$}M(Nz5_2{yN`Q91e{H<9M`6INtyUg(zl!$p5gEHA zWu0ye6)OOToN`V|J^4F$xM%AC3gZGSo;1*`Z>OVkK8I-HgcRU*1zz;pZ4v4)+0Ye( zlR3OBi4dqM475?kL@+GEqx87^Oi{U5BrSaYFF$kZ6`1CCYH zGsT2lh26tkCC>KFHF+`B!!d5rZdkM-*v zXEVHwfChJ`I=+xYNaPl`xogRY9CWfPV*Vr3ChRNCM=r* z@{on7t)cXpmUwl-hdij&=&^)#^Sw7P?JC1lzjTie7BMlwjY|x(He2Et4H9sn*f@MR zfe+4HQpCc(hI19=+mWt@C{tQynGaredv!u|`)q5bRZ48$5uBwNQ^d!Ayutfe=d(?2qJ;f7 zKZ;f(n8D)kl-gMs$)<`OO0x9~fx2epR%%D3Y(KMt=?ZC}Qm1uk@-L>y#I$i&7}W`IW3q%nJ83gjo6|> zTX>X#4H2^_vLk1cT5kfg0A>&xDt`+LHjd2;jp;c#9zNbDm9_3D?($wcgowK}wC0Om zTZJVdeF}Jn?|Q~PAF1L#Xw!AyoZQ!a7Q4UN9-DeeIj*B~(?AnzZ~lL``J>?26}8dK z{1@rgvDVzN*{Yut&&To`845AaxhgKp!D{PEOO3`=nbAQ#85m?+OR(gZ?Ff&TdjlAhN{Ub|jE6x4P zgnhVJH1J4`{^{uvHC3(RdHyiYT%aV?Nf3(QY;^AJxo~Kb*6%1EQ~N~kiV}VSa$8TI z<@V8@I{3V71N)OfT1-ct-jG+hv0%thGy^w5N8L}gp{&dr)9gI;P?-bCV;icd8vKP# zslA*8^iAar(7YfsDCj}mxRuEq)?j?&vT~@G6_;ZsGp?-9x))FX{QV3xvQ_{TeWZhx z!&C(8LId&>ghsuk_yIEt_~+ATubj6kD2qQ%>GtV~hc3;jX#X!K_5G!rhf!az7>lk}vp>1u-NF8^yYk=*-?|w3-%(x&x zg(WQq7qdTcoB7-dcfv#?j!z|u=Nr~s1`)ZE1>0Ox5 z)*PgkDECkl->AL{2fFyx*zQFjp*TY;XdY!;esVD9)7iEC!Jrn_bLI^$#BfOd6@&rULQs=56%Y?H z(wT18tAhTHJ-MPxjbz!wy$Z31wW-_((0dK!n&2c*Px$bBW?)2eCqw8QNo2J)Tx?}h z-}a`+(hTgu5|VQu)|%l_UBlQpjp7Rb*U&xQDS9=6Mh8 zSwxYjV!fW6f13f7gJZ~zT)_B>uKZXRm{4wI{~euk6wczE-~d|lu>{;BQDj5(4)MW! zc&B4Fje;?3DO#=tM_On5-n_4*nGN5eVs2bAB)<9oPaazgi3DiCE_~p?6?3UaoNqjv zTf-|`wsgJv!1C7nvZlMIzrL26%Vdhp+;!e4k4x7LCt|O0M{|SA{9~+Rt(ZDR3`(wH zq~GTE`idP=8V;;Hlt-dogfj0QknVt!1YM8NuUmr3znfD(l^uCB5dAz>JH)1Iaeh>k zc!(vhJ2Kb6ITJes2U}b6M7QVVa^@9HoyzvfBxIX)8n4UhR@`ep3gV=jvLp%)Zqdrn zHC9dg{&Azcs|QpPK`Sn_*PshbO`}1K2esKJbs35u_9~woY&kQua1!)z22a#vvxL`k zcs`HR8skw=7S#PO=K1$FV>tcXgNjDex{c*1`{O4NdGgd@YUY)-h>(b-#k_) z3;+9kHiyIZL-Z#3ui45BdLKif*~`m+bV+iU+lfNF2fyWkokhcwNam><)Bb-_avRVO z5!C|2b!Mq<)VUrQ%GDzJ;9+&*oz2GHVq$kpgGD20YUGhBbUE06wH+SdO$ z;4gpA-B67RZxK9k2Mcb4n&c`3GNW@uP0L=xARuR8_298;a^(Ovb+ES)yE6F_mPKEk z!0{+QiHKOCXdj92$_EWZcUF$@xYggU-i0P5VOK;ab@w;o3O};|ckKPn&g)o>i1>yx zE#leC=m_0FFJbkb3`4p;_=ocawmf6RB>OqYAz&ZFMiv(ir>_S_ssZ?-m*s5FbH#`?wS z*2U!<0FMPuQ>012WTGsU(U zf}BRat8s)HfoCL+A2BBqJ(&^2aM=eV#T?CLP23nZgS}>j1@qw=)W}nH!nX}l-ps+* zB{(n|9>dD(e0Du&F^bG3yIO|RyN5GgCC(<^7fZ-x!x3RT(9rzUQb?nhn~I4e^EA2q z->$brtM;)!8PSkc`Ju)=y*lFvXCULU9X%#fo?d17x;X~AHrab%fDCi#&97v+%Fxsl z*}WIK+*l?d9!Y4O|HzXnn!s~9oTGo=ZPf>RRu&d@2;?%uYU z?pUqM;bHRrq;jXoZb~;*9BO334P;)nna6Z*T&&5~t?Au;Fma{VB<;{QW9zfQ#n1^Y z(O7G7zROR3E}R1y&Nu*8^ip-g_;JK%%>rnm-Q)wu>NT@QDTk{ow@d3>m-WjHo|O>K z-23M|i!MieN`4{H$J8M#7rdTJHh1%J%6NW#BP>qF7H1L5bWlXN;PI`xQwP^FdeBtq zp|dIn>8#_cdnP(xnxOiFi4^f^txO+K79kYMD8oZzYTr>V?EXdjkcP17aIKYbo#b&L3ev@$rCN)XF~}&+xtnv}sUiJYaKM zIeH~tI%J^y^JqbWjOklAGQ4gyxP0QTzJ2Epf$Qi;ij-rb?0;qZOJjI%0E!o&@}$>5 zqM(`QmH#`yR?`RMz$4>BzV4I7C1P9XCa^)yG1jOvxyP}&GgUU=%v$4ApY_S)6H!N6N_A()5?)5@*m!5Ymt@ zV!B-pwm0A7oGK>=Wx>~kiWx3_iTr!%@rNSO%u!ckuBzX}EX>5&k2`sNywv!K(`Xh@a%^k6x7$@URn9_A|4_Rf*wZK z4V%iHWH!;?R_8q0s@0TpjP}0PuE%J9K3@IIxsPA&jL+PFxra8p5{~eAk2Zk+U0xl1 zmGNq{_LcwMy%P|~N(0(#ARfA-S$VB*!5!6vr$~)k!+lmCrXTf*21dLA z6BF_R+!3?y$_v~DHXpGl2_1$&W2dAxLLB|GB#BJ&zUy!0oKEcAd=AIG6fgu(^k(!^ zCabmE5%(jn8X2;>F>u zL9*qwy1F|GkJ_VSkhJxetHXCn*isCfHQ-mC&~HwJ!K>!~m1Gq-aHj80|82=)JFjmIwcto23~N20v=<$~?$< z&S~~3QFY=mgtdddGKyQ%cmnqx9F)5ymp`MkJ?}-xVdV#xXKV%tM5E zp5kYa>&S-BW0VD0+rclZ2Gq(opTf=kzv+vEE!`ps!X-;`b-nL3$-@PiyuY2O-tYIq z&a>_UB=nn8$@g_ZOH>N!YJi6Ese94ROQ!iSzAVb zMb_~s2Bg8~qfL5_Oud^T+yJMs_hAdU0?tTJy@wbr|8}lC)a25xgucY9OOm+KnYpzApv4dZ0%xBN7U=*3RED>JqFz8kNxc7eySnJ*wtI(k5ipn6P6!E^#2;Vfh64Z z$FDTVI`-Ye6l)m}OE%U@j4u)@f z0G`?2UttlYmD(ogx~L=ZYYqTclpFsd`C?tTds;8>l;~>T@{@jBb{YmJ%noWX+up^ z+WW7<{63%}y&U7A(TSi%lbU(;fT7a2r_O=c!-_dpoVxw*lXTLgQ?0BlI*e^nOT=p7 zg3p;hMQGAdV65A#9^VFxV`bZ;27~h{cVbUE@F|=Yna*KPbAYq}-iRP=i=H?h%g@zF z4RD{Ee|r!t{BEM?=-av@%^X|3mdAJBZQxdu_Y3#WCt>ZEFN!hNJ}`1Mld~iH)7!?$n>ix9#`><$Ji9tyh??^_w*H3jezW_u9J+pnv4K=|rT$RrzG~(*!^U z`Vco0%EZ+!+|R!J$FlnBv3#hGJL$zUGYy2hshv%MFs(2Eli|Xs(LL4l^A~RiJoVAu zPi@b1VGi13Xj+wgobUtK!2B-`huusY-+lnxsRbvkEphGv=^~Qo@E4^hW<;yrPt~0*^J;-K^U#_ByO}}tUDqqMP{t$cEZbVQ-v?Tr4?Jq)F7&VvGlssw9giEr`++5Lb}%zn_x3$K2c`-Jeby;0;n=XJW=|!fJ6aT zM(Ei4yHN}3`hAZSPegOH~q;8YN4h2{pX$Q2uM}mzFo1(h1ftkh%Mp0IHs5@o%@ZykiT`6BC<|a$3h$_Sdo^0gHa5 z;lZDFd2nn1=H+(thE-kH4kE-3B=Y$BUVhvyXVAB7g=D*}Wb45gp$R#Ii>LoHymuyn z^4Yh|N3{2YMNDFH)#NJ+6aBH1b_&MnRl)E(O1@t;%IkyA&eC-sUw6B8)u_|}nMQNa z^6O`5T?Tn-O&^Eau!vCs&brmz{DswGEaFWHyFjQMpXsIZw#My#rObTG^QjUt3AZ(7 z36cq5)$ZgKsLM5CowJ<4+>z(T7j4f+64}@O)F4VKGv;JuT_>lGzyv~oTHfX0bG~b1 zV&rN8WgR$>7F5+jvE= zL-7JDuC6L^nQy(jC&SnoAu#YJ`vCAVQC@N@D7vK@+Hd-9W$~MvONgI%)#EQh&Z*uK zJGz$qJN4 z(e0eToZv(a_OZJY)EUtD3HwfgZf3K%;YSJ4Ucf4slnsINEwxs!cPpIr@)m)>!2K-y2MNeAwp0mv=QDPEk>0 zybDck8?xmshG9F{UQ3lcnH_i|`<(Smo!j)nw*>!`UPo*PYvu9W8f@zNe&gWjy2`A! zvT8Zos#}pV50m3>e+T$~3gruiYby;oq_hiX!f)$hfYdAMQVlaYMXS#3Q)QWj#1Ov` zn3hfpy5SJYMZmJS+8WFty9KsineuQn-NPO2SEZFVb2MJS%yz_UERa`yUTVDPayZb6 zlax%3Cm!D;*Cww1XzdF6ZE6iyhk~x~)PlGlDf=%yDLkX8CN^5~ z;=;3t_m9fL-kr!Vl7!;pArI1%)RxVAgG31?L!3bKR1B!^s>J|RA>gm}r*@OIs!+_I zQ`*#YyX;q~n@+ldN(Dbw)LQ4>W5=o=Cfkvd%XdU4Hv|+MyKkKei&FhLBm#K{o6sfU z?%PxjfCW{{+($bS60hQ7Qt?!(=LbE6G1OpvW3KzF`v8@!%qjHImVD#5_4x}WQ^oZBOeC|16Jw#PGhV87v)7|$!JBmP=nHLzY zUXP!?cBRdN|Lx{~D011SK@~Nm%3$b9E>%?j>(aPwgm|U7d{Qc;xt*x1w+z%pxr?V? ztz=g90d8W_avsxDOG*$-a5$^urGslbqMN1mIjzK(+dTK`y1;F@*%<{&iSaiLziW8q z(2y2ne`5I{by>N}kS{*y;MPKU0#Mm?&cvvA4QSeWPjCtGku-=ZL%j8KiF~v z)B{C=XjQBou-#G0z?(MkwV2<*OIAFO{he$!q%ozZFCXbxL7JeAJX*uA-*UkpMDr<* zDY`bb7h0Q47TJu6o-Y@`*b32S3+vh_>g9iz?Y3U-nG(C6zAwZ}yOxH1;J}jrhFjng zS_Q5Gc%6quZX3cTs`66eQyWi?zZBXus#)^UqM0U0h-hF!P z1iA5`8}S|Kjv8pRZ&2mc2)^1$j^b!su9~(x&El{-b({2IrQ}BM~&yNQoIPb<0+a_9J2U}9lL`L zR?q&@_0xMw_0tOOYX?GFBaQ<;_Y;J%xm>}+2UJt*{AE_-mXy965uW~_wUTV!*qHNS z!2M1s%*F2~-5PZKCUNz@{>(>?ZC}=^r*HLYt>q_+{#U~VpS-t^@zI(sn>*Vns1UVK zYjMGemu5L(%OO>;(=PwtCyVs)fWN+tO(jM(hSJgU(lQ5&R2h=;V=hGgyxVx?w<1FG zx2;@f>6-MSiC-6=PQ=D(I!d56gV4bk3Dy`8IPu6XLyq?ki_h|*V8MmUqLKGYa8=E6 zKD+S^{`=WQSX49cyNDj%ky2evpW_9&5`n09M!3zD{YUMeVl=Jfv;!X^56W%KSu1%f zdiaxBB1zh;7Sn#dFOtgh+uzD84s0IfL#)6BPvk3)>L;uh5LXo|XTBJLMqLbX57&|% zxnZuHv}@)^Xu-wRZ$qL>;poCYTPua2_>cEg*hAFLhE@p_8&&6vR2a`!xs1KdmA~=N zM?ZI-93(#RE}GgXCFkq;Y_{3%h^tb`dF8RMIBxxZRF+sj3p9Y~;unA1%Qsnmc6sT- zcUGA`+-oAj2U-^OH_}sHHv!ym-2AFD6Klyt1(+8MfC)T`=f~uVhDQf8;-23so=)HN z)5p@?c#%7T{RWpN?aIQ5~7ScqY&tDMM=;EQt<^F0wR|6*f z+7ke!WnjJuuJ;@?Qy|~@34B@0Yy z%n9d&^rGjLjazF+<)goGpn1KyAH=J?_9pWz^BaNk+DMl9=sQET zQm=nKp$`^68ZI$;5zo<#pD~PZoZg2dv3{zD>HfYtf*oXv+Yu~L2yTQ@tzI);xUtIE z!N|&I0~uh#82NYKQ6&wdpmsOk5W9)u$0(12Tm!{&g^3`B%dQwuUrAeF{yE%GQ}H~P zP?ucEaBo2Ja`V8}+FZNl&NO6sUp?fe<*crdb^yXO^9~oa%@7Mgk>0E~ z8Yr4X(7yLF#oEU9&SEQ{3DKv%KDFQ@09=e(y0?VX80htpVzt|Z4Jj;b+#$c;**yv2 zm=t2c3Ry8LqsKG05!-J{H1!#uRtot0Xt)4L6GxJy?7Qs(gQ2hwi1oNnRu(Fp%hR7H ztIbxCD#(lWSA1(!eZ#f`ToW%k~hYT^4*3%nyGjEMaGK5ZH~=43>#p7@?(G$26xoA@n4tp1Oz`d zOKeXYWvWUB?r71={=>z#-qN^U?3edNKIE_-Jxv}dTHE(pDPKVwc7*KbCkRJ9%Wjn% zt=1r%Qo5}g9Jsn7x>7$Xp`gd!s=2mLP}};{|9R#>7)-Dtu{fMI>#w^&AHo=ZE#{j&~ z{WaP&&jasxo~z%o4e9X<6-KM>6ITejBeer1CLSe&$l)__^D6);SKYX+nMVo&Fw=q4Q_19%&(& z0_{iMdrw*}uRDEW3fP|!sh&?4Q_C94y|BEuO#a&%n#y6~KB3F?<9IBgX0)O%A5yZP zk82BFwYKCy-t_pvDp4x)!KC9JTM!}vV`le0C^WZdw5H5iR)%o22Ms}aP;`L#YvNDk zZtJ_EUG-bT`yCha)s9l~Nw!!t=5?*XfeyDwEM&h8Tqk8HT@PA5ETh*Yi_>?$lu1kl zx8A_Lf{PvJ2$?^ucA7oo^Y688BMNM@w2=c8hD?vk$n-#7(43sYT?%USgOaP@*B_) zTGqU>UpQ?;IR2-|P*OJE=d`Y~{mf(MQt6 zH0ZSe>f-jT?;0a-)}|Wbj>wBjr*h+2u9|h})?&wi;i1*oBt_Cpse2QEO}})y7X06e zgdV%ME*4f5M*F=#VH(nV(OhYFrVaA?WtYd*(2`aIA+S<*AVN_5itZE4Fkt0`BuD#2 z>>9114Q^EinM#f(Ce2uQ=y*qjZdfFRI0F*Z*w%Bo%f>y#S+%zTk%t$CA`_*mN zk>6o4Gk)ARgGQBPg>)MGSwX_vw)b^{Dk#msH}@uuEZ1Png18d0xggv7uTKmuZqzI6 zN)%RASx>LAY4?`B^dM-LmD1z~Flz2?eY_&&Kb1moYr4%TxZ$r=n(AiOpuPy;J1$%; z#$9sX)L@}&9sFT!{hO&QYi5v;{TMj+s?O+zsz%_rUk(0BYbdN>O2p=8<~tpG2VV|nET(}{Aq+2QHx?r!#CXz4wN_lbZSCF z9p=qh6n589n7<@mh@dCRAtZuaolDbtH^gRCKX%X3i#D* zDCiTFf?rA5fm8Jsb1T9x#=;r45VxCPmhic!W|?~~<=MQtb8=M|07XUXOoFl3yqD&; zir^u&VFyE|ILEfPU9PI#=ertm3VJ`t+?dF+KlmrY_cmO0JaXW0LA}uFivB+qz+Snl z_J>sYWEYuE&Cg-(TGh>Bf4>=3>h$LMaP`jd_sQ@=mTlzm6TJ_Y#vf63B`ieSY{{`d zq%qbmI;+AI>8x&kh@68%sAJ0V30qsKqvlp2EM~0eC|UyXz`~mFIw1J&m8+J-H{N@# z_SFlWKHAN_O~dv!Yz9ISoFN)fcPg!ptM|rygs!|7E{(2`6mg01cx=NB^H?;drf@1P zan!lniwrXrTv?j-Z2K?H@ma$|7h&@EKR16WzYtM2)YW+JdzPna2~L?PKsffkc3jJ4 z`}`wl;a)1KFWr?6e`K6?A8EI7`=I3q>E6M^%+(0b&X~1DV71fD`lAb^e->_K$B}!n zfRQ*Nr!6$`2!e^#9J@11!&+A+J_>g03@S7*-G!!r`l^(oknTM|{pCxNh@iRX!J9kh zS-KXC&m9lHNdG>*QxU-^JN2kl;I7xmO)NlNUYqIMwn=mia{!H&Qtp^pe)^zvB_jLu zb8t04zV2?I72oU2U1*%`-~nd`Qq!|qvZBXq3}%1X!K2&wPD~_0a2Am-K1$0zl(w2}789`hXzm$t%`g4LUn`Mtw_Y~5ekI2$OZZ^? zQWE#63*G7^&&}S%8T4>VrJs?l2b+6z68MnF0*swV4-K9#4M_+l?i^T z=?;MCndmd}HiI$2o>+R{?>Ko87vJ&=0Jx+Zp%@hib?r z-%7S7*pBvz7=0)5)A#Hif8o?C4GvtY1BSjOL%3jaN^4@LEV*~dRh}ZhF*1JO@});4>_t9e64$6 zrA%XM4@b%)*(t}ro)5`+?M$jDKkU(uYD4x6N zNjz^@SvD?tS`~EpbfkQVZIji)hPO-qd4qc7{glAFal@tNZSU>LQzNyvBGt3ppD`zY z*We&)8(_d^4UnpeKF7b|TeD+1c`lt)*gE|M>MKP5ly=}DYbrh81~hrNkw`a;N@U^> z7&n`A{^_^HSu$S9+53jyZ#hOa>-zRLp1lFZdCPt&-Wda75#G;?aZ;BfmGp#6XJy%2 z)uVoB$%EgxClTx0CgVOtP8C8Q@Bh)w|HzD!sa(~_ENDyts=}>cru~X1U*z1Fay4(S z{BpVUlyc1dw{eW)wEjDhzedtL0kiLTh5LQiD+K;(T9{xFl$JQ5wQBhYwjVh|c;c^rvP0M%YTmJKK;)@T!5x%gogSy<=W- z#yc61k^f=uJENNF)~!_(6hTx#1f)ol4pM@26ai@>-B6`>BArkY5do3jdy(Ekq_;o> zq!W6F(0dg^uiy6EbMCm`IPZ7Q&+pGWMt)?Btev&X+G{;)KJ%ILN6C_NH}Sk-*O3Z< za0a6LNz=|U)Ki~`x&OQ;CXrMvVh`RqkR3_V9{v0ZoBYCI3hQZB^T@O!$)Z^&Mci`) zOTvuN*8tG}st`1GpY^Ld^c>Kw|GMlpctF3DgAzG-5^>-Kou;dCcV!#uqd*^%yVYBL z(E8q0%2sRdf&hHUyChUXYitlq-RBj^-!>MT^!2B9%=O#k+~t7>8C6vg>N;k|_hXdt z$q@+K!wuh+oHqm#@X0KBB-o^C@q2VdO6t>f>GdO3);E4r148etvWt!^K*bdUw4Rlf zgTku@{b^z@_vl2Pc*D$W=&a?8S~i4!pp!IHHL@DuW5Te#sIXdy5ar#AIT96r%^LPD zfsxrJ`3Z}n)R2Iprp_?+)w7i@!^=cbqzfpy3}rkJcuJv06sQh9Z8P&;K3gcVY+DEm zV!KKI&f)g2ZV&dJ=MGF}Odn6BzV{ni$tWb6P~V$G4^-YCe@hq}B`VzaRJMFGY#+kM|C%Jp-bp zS>X)>^&*czF`>c0=?%iNOtfua^u#F#LN91XTA$?XaGQ&(^dUrh#3C-3V*na0PzEKg zk6!ZlZO8OhaWd?1%XDF4v~JxRYIuU{%GwhT|HCIjI(x_}gBN>>YOd zM;|2Ygnb7fC`s;|`=6v*p5Dj#AYZioijYcw>|;-Iz^7R#_v*=}mr#YKdPxY|r=Nmv z(xux%w~NRb7&Yats9ra-88+YCSM@}PT$gZ|zqs=hH2=Nadbrc?*Sodn8zmVpAKtui zpH=v}AM>t!#*%}t6n)aotgq;47NBw>kY`MfKP3u;@W8WuEWtzg-Crub{HBO=H_yaA zBZYBA`PL7bn}D>|V=#1J>Z6G}trprF4I7nfeo0$8EqD7S{WT!0p}pZgrI9*Q>X;Jf zvI`l?53G6TK3z`R-{_1&6pEt%WcYm*4>gOOxSGc~s~o^ptgm&xi3yllrYa-VZcwGa z|9~sA?413jdCKTGw)9FWPQ0j8KU`noe4Gyzjo0vz_qyb1I0Zt9_N=cWJg_ z=hAyivKui8pPFv4L0;}icxUEJN7F9WBTb8cO~oq5+{+?@RD?#SKEZ!e)FyPl4N^$999& zzL*Spm=yUb8pH^9)YVH-T;Wcvfa^Tcc17^8y7^q*zkTzL<$aHZR=!pdB2c^7P4+uJ zfctP#0NqKom9^6~R*0ab6jDu$L@^Coo^Zj$E6J~vwgQH{IiRykk zjn7l*02!xTOJwKu#t+c#V?z#4wd4E*ASrqxTQFvE9R9R9f8+d6J+dtUgzWW&pnW*bGGp7%?yP-zdu-j?_%H3it zhOjS{U6Q$KT#QV(tjFUYP|FgB^o;Mh*+~L|Lz&|eWD~yEfWhFy@#b0!hWtx!aTKYg zaJBMOXOs9d%mAJDhqt!9Zi2n>`Oi-;&HK_DWk-UC3pItf z_H+6GG3kM&G}6N;4-)`nd-ft}9vzG<+9b?E!cVTH%szRTq2@6T@oz2C1kzF7d+a0@_V z%Q#%$ZyxJBdspaSH(0I9ub!<#?&R1Ousn1b#Rr%D^ELnnfS5e}W3@})NLtm?hJRC(LaSqIBVKQK9&OjGr+EU( zP;Pf>lLRVOG;@oET{rWDy>e>dni}f5_GL;;6eej8?sKgf* zX{M`H8P8x`0s&!TutM)v@<)$iv)2k;b^Tr(5}pB>;W~>;O-~?d{PO^qZoZphx-R|v zA8+uVi~PrP`N!%1&#&!*J_R+?PtX4GbpP$w|8dOiXP@R-lJ92!&x8NR&;R;LzXJ5T z_(WLr%b#KJzx?4G(C&-VcK}=Y*P(xTj*H3Hz9l6yS_J&>&7|o6wEM^%{pv6O<-f1r zCz({rAtsU0ay|F{Q@<~Oc5`~He*ae||Nh^?e+Jb``}ouU(C^=a@2{Tn--GWjhmF+V zgYPdU!M|s|f1iH-%(#Ege1EkP{=Mw}<%0S5vinzI*xxbVU#-s9eEyF4{wngu5>p>QQ5vjv zi0XtoCX@f=IRi6fc%;-pv<=5x=lZZs!iL9`y^atMFNUg0NSUhgd2Y`WemTi0vwJjH z`&fi$SF)H(-own-+&fEE52X(P`XxM- z_HWsOtn|>Bcg12H%$UKJqs8@WBM8qa77i^=AwbygteL#F8EC~Q=nUGK3t5?~J^E+D>NjlHY!pdARiBchpWtgOu zga+?384iG7OXPIo*s>-kWHU0gzu}f5+CZY>Wf{v2ej=`APJdr^)*9+|Yv+hYv?>Xq zTlppBp4oo~BI#4N_4vOf)w)n6J(s2x657A|V)d>Htd@Q>weMZ#jAi2Yo{ln~`A#gq zQNrMK!z93~hs~~BCf5~D`DN|{^NSI1f{+xZFjfjMw8m_?DSZ_Ma>j>=Y3GY_f9_Z{ zh8;vm=<&<06wozQ_+AZE4f#_FTL+6*v2UOMVY@1&oE8haZQD+rlzw!1@CHQ!*uw_Q zFR!28;n?h7UU6eT3|4me5y!31M?He%=eKw(1Q>KFYR0$#xq#a~rw1k%iGW{dA|Nkh zmi2lK@Km0v_gI~63?>)4ARywcn&O+L!F=~6=nkgb@q02J!(lyMYPLV+x;+*;zub92 zrj1EO#=2<(Udy&bn%D9)ENC4}C#MhjQY8PI^ zg~I~Ur&EyAqxcW0aGb9B+Jt<5K^ZsRjk-ewA6Dd^n;?&Y2;}g|`?y9ejr^jUIu-UN z2u;y=Ko~3bn2cJ`+B61~kLXgIvb+Pz1Dr3R#}Q$2RqksoD;S{AG_%VrC4!>05${Y{ zcSDn@|K~l0q*66A&)ZTzN%OQ2iEG1kVQa&Maq5IBDIzUMV-NEC;d16>%NT4#PrL+X z6I*x0{$jn;ZbyjGb*J>m*J6`+G18|g@4Yge#U=op)aTbD0f)>Z5?HUYl@;ht6NlB#Bf|%SI%#idilrj|<1)rcuH$ zV`RQ=T}g+{L?5}aQ|I08wCuAbQ3I`*_#wJ9Px*z$bC8_6z#gA}# z#6vj@7|8TH9%$8a`Hy{knn2{tlzN>0QrcGa7d5kkK6h-PM!s=zT`}BQ8}7a4x9U}C zp6Y!_=>)Jmm17DtyQfIZEegRCe^|-FKBS=6{dMZoY_73;ivTO3VQs7=b8P~V1lZ5# z2$jRDrbMRwRX7B2%iiy7sR`LxeC$D-sYG;4ijR0+IXK;dv0(WLg~xJ$+hC-iE)8i91^OgCzY=P?w<)VY76l2}aRpP+)p@efwNZ7M6(NeVn=;~1Vn#F09CM^{(bv|xxnIdq_N zQg&e2V<1a?YH`I4q*(|yD-FQ_OS2;%YVxzO;xZG}tq1RBi!Jc#8K>gIcJyDTYlupeZlsA)6(N)39Xdv5gl) z1c9E&+M~QO?@6t_%xt{YQw4e8IK&U-`K-d;<9JfWRb|$ReJV$4k zs`#QwJs@*(7&$pqZq?tFDt*^!#N$`dw7~H2oe@b$jQ(D1$7^Q^5uRss-lh_qV)wB{ z9u+z{23Qt*uz`wSZs_aL?8JQ4`byCq^AOSavK18_vk6(JQzh%d*@=pEU1nYHQCpG9 z7MS#zsAZC=TCNtJdf6Kvx4HT8^0vsL6q^cE0Wqe`afxscAUI3&y0`O|S@t&tI}ow$ zRrcc-Y9V+T<$`ua<1p?n)45oGE*X4+toH3WE~RO*VE z5NPvb95UaZ0jl2>E5k#{!cML2PAh<|jcl7HmDSjf2rFz(g|PQ}x$pEIY=jSJPi$e`_t$tG$E-9h>os~JXKfiv8 zzSzG|iy(6%4)dX6-JpCx_ z5|u0l9e|o1Fa2UWGGK@p;Mqt)*l3RaxD*-V{i0iCD?jm}YWsN$=Fn~ubNy_}X1p{8 z*AyYt1DFR!+D`)1>DAiwCRUwzUee9G$pDo@++tX$W6^_nTAg{Vis{L#iI&+q>6l?{ zc^9u*g8ibt1LWEHY$G0JJ!HuBhe~!s>Q2|H8&GXoUyn?xKKppEuG#N0!L3>ie;Bw3 ztI0ss@d@Kf^~#L4Hav!_g0_7DdCSD8XOf)iSModB;=cRdPQPbiqiBw;qgR!^6-+yA zyjs!!Tx8g(eH03-DTmIcS0NQTj2q|lT*TCv3`y3m<9VtCt54-Q z;bOuhAv&Oq`4Ke#ipBC4Sh6F_3Wt$1ESZ#%_%(eoOR(mV>-f0C zTeSs4li6Tqzj<}XO)SZcn-}eV_}#eekrwZ6&Q8(;Jc%VOyYY(l^K%}O*M;QHv_=wF zvuRU%mEwvRm9)?cP``o?<#QU*eVqBbG|$YoRc#K*{%#pKA3w!qxb{m)?u|)>;15<8SzB$&z1uT;2s58rOHTo1w`V0sfR-D+Bg(xLV@6T+@ zp5(Om4tm731v2UWblo?&s2d>iA%)9kgv!h@L^Q{zZSeEZd~JbGkEgapuV#)if(VWF zRIWBA`^|{Uy?4&8+PG}q?HOM7Ub%jYIotN+EkF%)nkmNpVzaleKhWZL9C}}c4PM(x zsG14Y&n)JhLj&3x&wKcR!_I`L`94+W(qc!6rx>)ntvNw*$O9aNveWLYvp zZ(MHDqxVbefHZLMt82HGH0Ia}z4YyY2;4=;@-R@vtCMxbf6)znRxysUQvcyGg=%61 zxR-A-ZHmkhI{hwjJo=Ts@n@LDj;L<`gZvqb{*ZV!ejh-!QkGn(vGMAMf7jk7k&Q}c zd<0`#{9H3cpdu)Gs36xz7p#ds?VQo;xlim5-wiT!QMR2Z??1nE+daYe?R~F#IxXq_ z48gD*WO!PjPE~LTfuD6n`);ZICVKp$J(xvd5RF#=|LQB|U-=grF`9ytUe>!&g)0Vr&~Prrh9OSDV`CbMRE%uhFGx98;-K z%mCoA#U|C+hynZ#i!P^uuQ zYnxcWlm4#4N%Ht-ciNQ?|0ZjtgX+uQsqFG-X0WHx5@2-27bbq_E^s~x5Uj@BI;o8` zL-q)OqCik_FIoO^g!(i}9QwzZPjj`hfp;v|ln}DvnvNuiD9H9Ezp}8L^&jm;V zI{ZgWM`6#v&vUf*urYUhZ1u_-FY?5fGB-@o37>a}hJ~%jQ-kd2RG{m8&-MDsR+p0? zg7qFpC9Nh1Y*qYBT=1`7hZWjavHQ@)jZ-U7Z$pE=Z+1gY~?GiG6RHt|#P z;ILFoGBccQSZaYlF->qm4mQ}Xo(|4*%`r*Zz=YO!Wo~i5KPj!5T>csHrX(tGK1aV$ zLNyyBS9!Pc!;)d<)(IuFSnTrWj$K2_8wnD_?cBW^?Co?$G4~(|;Gi@l9SMk)hL z6gus-M9LHY){fvf!+7w7!{8gceXa9j<9Z<8&7|Ar*5Y|jKYii(_Uj`qBH`TCP62+r zGbI5!G)^wZqayLU;L=m3W$Dvth(YqXewp1-WVOdeWjAk}WUVQ@%(_QiL4lrat|?1y zMb)9@R*D>p=G0I*txU=!N$7}S{quSk$8tXY&`-wYT@wxq{s%b$6~AMNDEWRVC6Zk> zZnKkJxLq9JWlnPwRS|8#usjtnz)1k+6VR8h7538cc4}p!^58oMIOcxK@6p)sP zeV^UkRT_CVG1@>`aE)Dg;q+SFLTFt#Yhkbg3o*iFoyKi?3t#?^Q)2wZSrkWyz;F1> z1<7k+g2|z_49<&kv^|!vJBUZj264fMYrR|9?B#lgb!wI|%qt_FVPHpwFp?Vb#A>I^ zXt{+Vt%9&O2Bx{H@u;PiB&+-mDX}9ldQR3Rdurr-Hw=BZP_0PGcZQT@%Fh1DgDcbl z`GKA#wl)MhzsnPUgqU~U(~VNoF*w_bj}7^RN}s^COiS4l@B%1XuW{Zt zkFqUvfcPB~hdvj?efDl8OJyf2?pZ@|eif`vp2>Gwg}LavReZxhE}N^mZ3`c#?DZ^0 z(_T~aho26ng?O|x-TNu8D&hY7U1oTCulP~``wz>$BjhEBPq z8LjtbnR&gY`{l(BJOt-{FI9T}{L7uAtWBYl(<#Z+*DZ+#`EJ@GgyRk7j63PiHbwKI zCSB%5rTvI)r~7~kSrT-*BrcF;-c0(r07cd^5ZkoQ;7NqE3+2u1$|*NiJ+P zteg(LzN>q*`!ZW*qn&mL%XWUt4%R~5&cGTiM62Fa3814^DR*(J* zyI6$c*3M>``R+_M?|W zc0vDS>C@cuOGEp5;U2J%;t1!COwqP1_qzFt~oh*KYM^0Ie63hrZ#D?^%n)POIVGIl2^V zQ2Bj8`#~VOH&^n2vJeI3UTQl|(Q0JaxxqtN^K1tMM_OJh1=#x_&UXzpGdgD*3*sqW zz&rOGAex10MFn7GZ3K%q44;kxs8Qmy_h~JzuOW;^e4R5RlbTnZ`z9HFzak&AEhsew zMwbXGc^cSoz6ALN9dEZW3eb#Jq(mOnpY1z!h6K=Ee!*=L+NTws=xEKI#2~$}Ea4DJ z>{2WysVMGCXjz{?W!rd{!64z0cFVnjjoNzWT{X3x_Ry1)9;Y|GDuH5ipvjv!0CaNN zS~H0GtZ9&<7A|?Xy09D|c^QLNY+TGyd`Faz6IE3?<{#$)WCPxR#ZR-k9T zAG$yAU0Uv_=-}eIVR3#i4QkaR?l^xrJGsA1fK%gr--bh!CYhffpTaoB4~211B~M?O zoXSzKopEzM?1W>67kxS0JHQSp#X?lutJ)-RuZQ|RT%Ok~yKEReVj&Sff4)MqHA++Z zeQBgv*Cdoq)O>xo&_V?4S75;?O;7yh>QD$xWVSllr-4?#x{jw8;jZ}7W3}(PdYvoH zBuV|_B0%{VRX6`hBixT;ce`_OsLUH9VH$z~=*ef=GjD~9v(6Ekbvafu#lE=L>bC{` zs4u2g8Z2Q}_1wb{MKU(ChTRYdC8d+R^VUwe_YdNc@a>;Ic-tw364}9)i!MjM8R^^< zjG;gM<$(peXs7MRLMG9FVe#+AZ)+&DgzPoCM`SD|V}{jqA_jhO*ni$C5N9JAu}`%+ zbq?}+!%?oy-VzdhqY)*F(>|{lGg5wx!{!ahD&#&h^ys#ocrH{tox~5ftbcpi5lnpu z)t0ayqv+mqiNb8-6)vnZa}%vOp@kvj94hETm)vf(_IzIOk9o7qK8wgk?`_3DyN#m; zOa89WdNXKRD7S^k;IHKewL2s5KtK!0KHfMLx)a99!ksm#-EivCRv$*AH+-!f zD59HRFA1lYWIVv3e{N=eLl(cotnU^9;(%4%p ztn}#-s-1s(+#(Is8F8PCm=C_zWk^DdB`eB>`hD3`p!Rzmm0g8T_?ZuWDMmpkr@+{u zEHtzH3eMyoL}=gaHGao=Gn~$D(K14fUgv{F>A@yZB@{_~vLv0Ef3-W5cKKmMcS+{m zbSbSi>9c7F;EuOU_6w#@zCj$zK?y%g0Rp}3Ac_>Xgzcnsl=uneMOfQ&leR?i5qf&t z^o`2NqDJ|M0okLNX|BMXkQ%3z_d6*&)z<}xi`mY<_lh!^+=Bc_H$B`!FzEA*(@HZ) z!h@$gQ(vDbAJE1<@F!w4eKU}+P7x={?htm0LD`N!tO+%>{C+8gTZYQ+nEP=N*16V# zk=#5+Cw6>WciW?s@#^-@Rae2pgjahMlFIq3?dE8i9SX{pJQ8MA_h){uiAeogG~ej* z?4T}U>nXk+0j0IuHne55LLOC1D{iIVDdgT~UvZ+rtL0ap-k`6rY>=cQyRVhM&iWv~ zE*9i9P-`*nZrPdPTQ-OO)N(Htu2mVH6({p8(YTQ?vAelo;fK4ub)Gu@_a)LGsy!#qksKTMRW8tw{Y0SJ`-lF_z~>mA6EI-;XVe@Ccu#v#TOjzXPEI=@H0KyY$PFQA(MW>d0 z%k7d;$lb7ggKEH<`1TZ(SufNjz5t?`_=D*DC5p_!VwwQaUK(=NxQMvVZy7Iar^@A4 zp7$>eCo%dS_unw*W0*w(DlvI59QN73`b`@u=K#ho6i7vJQA1j)=Twi>rt zI|NB;r!^(tGE1q5eXB8X?9$0qVZTL{tC7g>nNx2OBw6OIpJVnc{i8hgE@1{S;GOf4Lyh1RVq%iVyeWX!B9X=$&dIENARj5j|3$2iG=MV?sy0y{Ya*Y z4MTKfV3il+MeV1Ed#KTO%*Vzq;*8Yw4~I_kt?Js%EI#5#_S3 zg+WkFi!(js(Ao3dDX{;4@i;V`Z^RflsJowjOn~`DmgmY>Qmg;x~lp z&@MyXXWyC-22_!}TO>w-520~>XmUrXdscRW2mZ=cQR)PqGdy+YTHIbWPs za3keP$nV^$ux=~nN?UmP{hRL4r$%*^i$-=z_!j=!XCuPqb#*Pr8&p!U1k=a6Zew~{ zB;)uD1ww2`TE$=428JDfQ+17$sn4<2uTn17%X@)8vbVIB!J#5cPF(LLlW?PxUY4mC zy^W6Q3|0Y)F^Mb`w8!J)=?W5m+!t?aLU!i|m7sCYR;O;b(qhQ>`&RI?NkwynrfIB9 z^-j=4Qpb?huN72u0{6Jr3$W_V{>F%4R8B=a|$sLQLJjNvP$y7!XN5A zossz2S>D&7ARh3OjZ6Z>vhNoDO4kI$YOoSF196+>qCm zIU2Kqo3KG1YknWJ8qA5W_dKk2@j$YPS+Wb8kZ1j=aMf%&40fJLCql9f)v`)- zPc#3o7lQ4Y*1y&b)<4_Id@J(n20f`9-thtz4~Wh*+dSf!IQzd~7IW`OAb7{67yTTpsol`XF2)ygi^C)qisy-q z65t%3m5K+TbJd(P)%xiXlQs@GkdC#8mS#z@ostmJk*TqIh|tr9e1j6R>gi-S^QiT0 zidXj}OE^uj&V)0ew+=vY^7Ym0oly&B&6VR?VAl~IJ}zb-8qvx+pReu9nvpuN!}Z}d zzXz(~Z1kTU<_5QFb3;50F!vJW54Xpusc6|tLbzl`2H8i`-^{zjyhk&21&)+5kAvQ8 z-&w0~H`b@UzxH~>Lp}HHa{#K~Jbe0S%7B)V5l`4_prY$^inLFB4hblus?>z@uZ0@- zXZV5QTCKE|ed%k3J`a>x?5tk3(gHo6pOP=_Zfd+|{=01F~w{fn~ z>q$JdtV8C}*@d4J#Fp}glFrMY<=(X79hWhWes@X>Qu!|H8kC~@i69)J zdIx6qdxgMfj-N3HMp2}k%YO2(IIC)W1pr9bK(EqH=?y^koG`A~9G>5oXU{V^mwGMx z=#6jAA4R?3Qbfy4+oXBUD{_k^P3QyeItSM-6gxf9hUxG!tHIM~m*E`zSl^4LVi18L zyQ+Quug29M0OVn$(TOZ#K-UeVxIhicJm6U#s&vSIX#vz30C`|a@z+aLL{Yw=u#h-v z|FB?~_DQKy?zqG##{sN+-z%TszgVhytT&C#KanqeE&ce!&+h@rW5MBc0~}w)_gxUaUXxy)ekzMgV)Z0YGB;|x++!${K#|b9Q@GtnornzLvc&@g!6aJ*u zV=)XxLOby*o#d{?@ZLMzUOGb5vUU}isD*5~pLZ<|a`GGEttjuXR<($eGJflM33`(F zN}CCmep4FCsY9k(Y*ss&zEn2f(N##Fk}OP3Ii)4;M>0qs{A$cp`m?W_nUxA%wZY*| z5OMHXY2@3Oo!3x`T8h_VhxYYbu7&06*0Ef=*3!CQnF9SVjVCv#h;R?jA0L@@$0xLOX%Q1BXxXY)j_=ah(N2hcl&$QjiqV|BIvR$jy>!>`xU{ZV3!!JVsDJ;_ zH!iSlw1q7Fs&I^T5TIw5NMY#S0~o(mysxm86wT(`*V>-|=ky}*4ioJri}gzuIFL8M zSIbKkUqSHmOfo(=&X9INZDB2A{PTuBT3cxC#EtNS|lcdH*?K_E63AOGkq=b$6&Yhf>?f zD5c+Wqy?rahNn%F*khja{R5o&ZVc7?Tk`K3aL0?Y#>kBPS`VH-ukVrEUDNLAn1{(0D~Dln`{CXPR)zlMNZXwsDnlv~7*Ymm~K zN}OnM7{_1Il(gnYYpJ zL4O-mho!9Z85_lTjq%=6{4>}s~PhNxl4 z;~(KzG~BS%nwedD^Na_!TexlVj+&h!^pc5cc6fGsLeOSPDwA_DoI{S@U4MteNA5Ej zpMe9Zt+a(28rHooGWbL(_iak4LV~*MWcyFO#}BZg0Qck;E?>pFl~{?Lq#a0_eS4?^ zUle0sT&lD_PypBimB!yDe}LFHM6WaB!?FJKdnZi~b%_k<#@$^(miJYsPA=XA#s@~f zex4xjxwh_pD-(HyfggvaVcd19-Z})WB=F~onpH=G9@9J#Z1R5sR5Nxq~aw~!d!DOT!1i6Oyk)_*X$hKtjL5yZrM zGrKO!)fS~t%;GryWGn9Y9gh5={xiRxZr>-=Tf?ee6t*y!hKQ*ZEfndRO&sG|+| z7ow&WpO${qbm)!ta7knWf#;WW1cL$`IUE>$h{?Dy9QHu+M+ok{a^_HDfq$6r7(tU0 z{H<7tKPtotsm~Al@FscGF2M-Zq(mzn^sU-$!`)Xj<1R&Sg0kpJ-3fq7$1}FMQ9`*+ z4s`k(TqM=&zHao?yS`%%$FB#zA%m!HWIG`^o#`0l)gf5+?q6! z5Wf!oeYJ?b;wYcjZrCFp{K4wr7KDnGj{!}*a1ZeV#lAH9Jx*z>(tBV0j6Xu7CW&vn zAQw>oIJI^V>t~gwTS>L5aC+_V67{hbf;$2;EDrNh`hx3 zgE)2L4J&%iqG-wL}@ogv3JIe(TD+Tary9&bfA8t9oF#S+a>3xKC(-S4+S~DvY zOuo$@f7<}rxKcO6J-#1Kj9mfpuAsEVbj#EG!e+2}==hgf5>cee2MEa=ae zToN@@ozYK7c7f`bU7YG$uuPwQ=#&`o!%^6_w}fn8L~Os$Z4hnQET@I7uN2NK$$WRi ziMqJLJsxdM*LN*}aW$D<;>ukM|Ja|o8+89G%OUb7933wa0{zYme~(CX<3A&Tu(GDxEPK=JU!|n_~90fZ#JBlj8dgHIix(3nA-sLAqP!y7anKD$gKIuY{DMAo>J-Mm7&U}0ca8G$1Z0~ zcAj3wXkVHG65ZG(DS*Wqfa|j~LcqukUS?cOJL3>N9_Ll)3(Zw2jVzX{I0~OZpC7yl zUm|wf`l}tfU(mZlEHBuSINB7uVoToHHgMXqEA}m8a7|j|9O~|=k`q2Q#LEZUSRmok zb@uGBgrb6<3T$1K-^4=~2Pnpn+xULozX_n+_Tr17ep+4|2>E3bx~nYR(MEsm{`7FN z6{CkJiBcexMjUyIVLPJB3m^tFs%*i8rTj`5eiQ?Z#9p z`IaEhFU$aPge7$-ra^tP;v!H*%sS>+vT{y4?3tZbFYOF^`~$hMXpxYP{A*g7akA|+ z+X1C%Eg5e&X36=n#Jy_s03u3rTKC^i>!QByCSFRq|4u*9D?52|V)8G^ssFLOpZc(lx7RKCMN>)Gcm}U#ZW>0`yN)s^PFN zq~Qc@-wq(p>=wFfqRf|C-GWKza=d%=jtR8kQpmc@NsQsHnzO_U++0U|TzIFpt^4Gr z_~Xm(6jQ~hl_eL(mXOyga{xsb!PnUpDTqu6it9ORd8ne298Bz7G$}Hulz_uMta?z{ z=u!B!#`)xPm#%s^-JLKNW`kyrh(=kq{?7~~G;H<-V{m;@qCY4;d2aPnC7p0B*X1g( z;(+wwg7nju1)7EC01eG%ftyFb&Nk98%|?pugiuCJ?GC#>*=J>8XLjG@@{WazPxbh( zwI+Gh$H|DPtfWRs);pVu;a5K9LwV109Qr?n72#yZuO|Q;ZBwVw@|f#Bvo3&h7AKul zt+MW|_0$&*48XarOR6P3u*t$?0I@SZvcy(Q)OTww51^uhr=z!v@W)i6pb#bbTxOW3weRDnM?~6evhFS zjDCr)33~vJ&d>8T6|`H|_;Hvg4>eiyWS^+h_F6Bmh#dOUuZ8_>`pfHbr&hpI|~{ zaziubh(v1e1CQK3^XDHx#WWJ-%aM|i5 z0WC-ucAUmd5w{Y)<#e!hx)$Rhd3wSBFP^r>4GD938Sw@+y3t66-ur^Q=BuPR4!+$4 z)#V|^yEEe3o{27{R&9EWy^$IZi6};@&Je}c7qu9rw#o}Es>v2n(dolm^KrLG7{(Wi z%1(B&)pS^NHJZ!#i&|cl_PfT6dSs?aFjW4lsELQ}d z9j@nAu`t{0UgDytUob>+w`#2V!Z+_mfz8>|KdcWH^cyRe#bzw|tBB>WdOl^}X#wxk z*RZPw8TFKv48OYywg*L9S@-t_Ms&h8A4SBZ#6=QKo!KdfXtt*cJDDfYozKqb$KOJG z&%j2{z&XN9AKPIcJv%fyGEPfx9%Y0brf(9v+p*16;71M0%O9o`A(}@-jRvxWx=G;2 zbUr>Pc2H^^K1sOk!@f`L0Oct|S-}eAJobCl@gvJ*?^|M9f*2t#-CxBmvoO*X-;Pnz zQ7iCPXX}`vuM}YW`Y5@RPk42STrU?|ksI!9ut=;vo#9=~^20hZ3GZjA_`y+-zs;0sgoZ z4oDL{*5|_e{8sA@O|)&A&5x}gCjcBkB>JfHpB2v9ky6>3Q>>h^k%NlSnTvCxmq_(i zQ$o-E*a%K^a;z*gA^p>tPb!^*44HH+)D{8)BSy z6z-q*%f(^M_uk#{Cy*bB-Q%^*IyKbJV>!%al5(5{C(z?8WQGB?ZH_eY3SlL??QaDsKV~1 z8Md|pV6Eed^E?iyKy;Y;#^IJ_7hiQ#fV+TL?nzFOOQ)wa^m>8v*XM1RK}~Q zY|sqTy7h4F2M|b5-I-`%zL8{zURNcwD!# z)a_gB13!hpjHfb@{sRNks#cw7@jx|&{5Pr*!I9nV)4E?eH?J;|SA>s*(PvXLJJT~b z>fTk{fydNY-O-d&ulI~Yt6TE>RT;M;8bUAw#r1WdT`1A`+c5TfcFroGK zH*MxwTz#cW`ESAL9|FlLyX7A*5#mqSy-X2wvDTqJWx9jsqVPDojl7`arhg z(AxyOuG{Ney7S%$mYwcAI!sLs)Afh+z{h7(ir!I$UsUg9Jm2=2O)izt$#n||mdZ{e zEyy6or{hLX8nA}iw?f5xPPQr>?Keb+nuRd^qcgQKhDaulB%0|Wo$QH9qk@^7IYCbepQRz#lfb54m7rl~K@o64+3R?}AFBfe^PZnbfptwgp zkRydK+PJmf{@YuJ5ce%T_=WO%gxszzmUBme&C{*cWwOg+ronsd&`H|s_J?9>Mn7g} z)r}E5jEY6VSIEle6I{x9SX_-55X$YGyCP@7KfNADG}tW1+f5Fl+H|VyEkL=t^SYE) zXyFgjs2X!k!6>(MKO#Q4hhJQ%oHtU|=K|=o>yhh)3emR_q=|x}^5VaLGOizrZfo6E zp^)EOx_jU}StWGg`H@w#@tao@=K3!;o`*}nHYZEXf+muvK0m}m#&Br6yfyV)ctMRI zcZZzswsF_rYI_MaVHzmuue`+z!LH?|8I@|`mb2NqQbO+NoU9iHc51zIshMR^@sl9? zU|yUbnXQn&t>(7WNe<(sn)wRI*C(VM7q&ON>L7GS(Uw!cXl5V-L6)|x?MG|uNNYB5!zd>mj>E2WIHw?ZWoUq+;oe) zb|)P8NP$?wO~{3+pT&EcU6#uCY*~GL<>}&?#v}98F;IkMII3x!jiaKVTstDC!|B&xo6^0p*)L9}q0xiRrxi&ng>C@KMnbldYdq}7q_AeW#c%Qr^Z|pgl?-|sIWRyOR2OEsVq?Hu=c>RTJDo$CnQ#9SnG03RkO$IhgC_S5rZ507Y?* zrJF-1UKZXx$>m$X+o#oVe9qsNMBwC=J~(fd5V%74C_Og?R@+0PWo1ArEp1h%jt>qV zD%Ni+VzGlB|28@}`J$4Hds?nQunYT5wfKvEUT{=z<;xTp4NFOl9}<4A^#kKPB;qQj z^2$2K_3$)Qb6Kqin z+mltJJq)HaD-)I8x&^s5+{0xnOQ~kRUWQN!sfL)TxiUuJb0|}B^UGe_sT1cJp|mJh zeYai1JU#Q){a%q?#3ANIp*MkMq1LyRVsCq|wjNPr(B9oB^UwrIcq&*kUiW5i5#r{r zo>zW^`9NW%VtkH511jg3?1{ME-LMGO&h|*dmv?{E;fl71+H7Q=1%SZhrPE9&SS~4 zMa9g_OcsO1Ocq+qWHB?dEU;xUGn0iDGcz+=^oh}8i|N(r>Av^OO!u7m`Qk=Llq1Te z`m(ZiW@WBTYsa4(z(p6nu!5Kb5RtRae|F_pOZ%MlVVip$3vdnL@Mv&aCmI`u7z|&* zT|Y_A;fPrF%N1tdb2otLHrdCu4EiH!W;Q!WtsZqKpYypP?Mt1w?Wu3W>+tOAdAbXy zJWfb+Tuz?&o;_rr64vW7C${9W(o%F1!iCv%kbRHU7{m7+;_NSwdWfsM>YS)jr$LnTtYMO%l!llf| z7r7cAo@*=;==G{Y=-+L1g%A6_2Z|(h%6B{(k>1=1=V9`$TCJV5NhnwQPQ-YtJUuqd zRtQ^6y>(~JUvno)EW`+FGZ=3+xVSB)NV3()Fn!`y{bBG{H_oQ21bit$);diQ6~)N& ze(xXrFQIt0(<~|oqiB^6I2`68!wbFh8J}MmZkB|PU~$-;g+iDzE>4ve8eSkDF9?Qm z3Q5`?G@;EF!`fQO8eGD(arZIgW_pbzVTQ2HZ$=-FlaJs@|(sssU5LT20q=LE+ts-6S7wa zp^T+`^8G%^FTD3srP7e@eUUdb|LAsN>U_9o4KVt72mMZG|7;mbt3?hO=`IcSG>@10 zE{m_l!9tmx9BJX0vs}Fg0(wD;6xwI%^qIX@$m47Z;TqfsjCd9>E|mpVu;|q*oyLRT z1VJN~0N>rnXHOGa395F+!GQShcw7fB>J|3XZ&kk@bqbLV_FtMLQYQES(J zPj_M41tCZ}+>1BedBLIc9w0^K)72cz%iaUok_isUhY;|0aM?c}ubA{`jdE|pjca6+ z%8Z?m%v_l{6?-qS>D89gp7lsKFF_VL{`qBNyBB!x`|5liusd!(U(>_u2G{P7WhgQv z=Z4fIN#qRQE!+-EECRmV*>h@`+_qof*gNAm6*SU5qzEJ4nBrJvD6l!g_9Q`{j~N z^$b-Yq zvjI$;N>g=^4h=xCze)$ai|6t=@;+yUW>crwIvDRx$=+y^@n=V+B?q|D zh#nhC)neZ)1t;rU$+q1mOs1OM!l{bZvGe2Yhw*&BCeKTXgNLq?)q&Q|4=;79kBnxr zDG6MvoOWuEUxbk;tmiAR8^3urb-uWVANxBgX2G~oMWRom^wq#hYU`*(0{J^3DH(C+ zT{-k$QI4MOFWVPAmtwyE()-80tw0&OgUuak7VE!j!ClV8pIlz2NO(A|4FL@&z<+T- zjVST%aw9|(!KGb-p$;cj=T4_Rl>3oixxyLIFZ6uLji)b0^E`hh$e=8e|QLNfz zwW9r)PKS_?2o9-LC59g&JX~)D8tL{*m#p7N&3*e2pgX za*If}Mn5Dh89ZNc9pS)u%io8}D~J#XRCMsHESRtDrnkS+5Q6u&Du15f*+*n|yDP`P zy|;+wP+H5EMEvrgZab#8OK|Q06wNj8e~?s0F<5z& ze$)lK4(oVXJju2L?_wV`5k5x7i#22=Q0e&aaiQh9#kx0ST4)xi1yXdvwPOcX^nIxb z!mFFZaCCk|$0-bSiPkB6nTz)(z+Qfa;7on#YYxKfOO<2k=q(+}EgZ_xZIt~s2#BHJ ztn8O~rT$`iMXLsOQXGdFjWvR#Q zZ`vI=#;^?3)i=(?VBVvkUVTI?Lg80F9V|8=`o9%IvNN!Io-F$o2N1%O+lPqCM-xlPHN5g#2MXRuW@MXDX*P;z zrtnCV!A)eZ4?2I8sn3n|Q*fH)T0X9METl(mnfM%xCXKygnGAIy=6jAAi5{ba>vkqx z)JJPx4q(CQ*@7b8n^SaP`Y`ei5|=dkMP%O@-l5dn{DjN6CF_$#sMaZuP-eFa6prnK z=~)Q7@kBbmNA`5#8;QEE-YhzA!Ub7 z18QvWb2~UlA_`Bhx}4_YbntdbTw5jl#4s-Yk53F}-eD7B?KEIH77Q=O6SL795Vj#`GHkyWsN!PPGgDy^Mp&@m;!c%&dYfR?ZZ48L` zqkM=Vx32xu%47Qa7g9@bAkVrcGicAxo2<9{rxr-JCBb?mmf#9t()jOaPxW&HwBC%) zLO)RnkHaRhhXHl_LeG0Yv_#7!bgGGh&>5cIp6SJw7Zi|x!YMYVaddRZtmj^Qw50}_ zzc3{peAlYke$4hMidbsG^m=<24lj^!k3;EO^ujba*QVdefrkaeMwFtgE|YP}Yme_)AKq+n3wgs$ij^aQi&kkEm;;%x$G_5v zE|$scz&+c>?~PjLK_MW{ahKV5i!D z@Cab4oKFH$U6MW{ZaOSqm7@Y_@kI9hs4X{XQWjMUX zoU*|2`vQ&Vk4-r!u&uAL2ybC~26kH@{H0M4t21>71EOebz7%xm_9UE$Jh}yxag-&d z+CiALcWJ_9^VkQEnn*4KEY`MY^1Q-mx9sqj9g{UC(FO<%mn zBqCg8*HishvolclC&-XFQTWaQarMH3ID0;)h$=FJ*(UC)H8P`#N!3RJKW=Vs`T2{a zvf4-N6f_GjYR0w2)3Jr*EQbEkXAy-iSA$Ow@MQHON3%uL^$Jc$SbIr5K@;AF1dy~d z2r%$$o7&PaIJwV`Qx0f${xyYC%W;4$YNT7y3I6;(1*!Rb9`Xx*3$yF-Xfji|I0E@^ zoJ4W_5!&RFt(qBhIy#&exEj@VEqLCGPl9Ao;H_Pzj=ajwLs=d+3<|q%qhpj*&zs@j zihD)C_o3f0AWQ+a#L|h3%QHK~!s*CVHV>LFA_84mbgWp>sberkI-3o({x2(NMUFdz zANw(@Q#u>>#sV~}WTcD8Ak1K3;_uF0=D6q8VxMEb7a|cAOw!SSH0g4b98Bj=(5@>) zXTtAp6!CXA>aA42g61eBqvy8r(GW049~=k4eeZ%cj(+7#)KY<+W`V6#5e76iM?tv>IaZyB6 zqWWvpkte8~w8%vZL-Z+|D2o@oT_HB)znLw-;7ws6-n0ikx;OJOQvTzTBm|y_=dYSP zzF#n-cm2~t6y9!T12%?fwOoOb^!By4>NT!ZA`t)eK#Tk=ZzNCtAJYUJBM7u7z z^>zh3+bD0%_Lyv=b^Hfp-~vbQj?y1W+&??E#XpB<+&h{w|Gn{8J9t;2JKqJxL@rJV zuerPQSH4Wc=7@K+TR&RePPTpxW-5lFlDhl5eEH|?Nt1Cw)K&%-}9%V#h_MDPSUZiJLFg)#S8U8NY1o>918S zF3dsVCZsTo`@0hQU;0lrhL*ccGqwioe}C@_duTThn>?R-Cly9JF@S*iV2qNXs>n}i zY=lBAP`KfJ&Dr4h)cEbFIpJS*o)1E8O=2jb^dD-k6h`XXi9mz%fb&A<3-57aGLw4c zJg@BYOel2wYv5`jR3WDTikB9)9LTMdBmA+MI^U~Qk#kJ=L^0*hB6<#IYN*m^2k zP`kCAk?8NU<_{~_KaTzcFl_G2!jblWI>`U&A{h)siwRG1=-=`9KU(-dP5t?#KMrWt zDP*MLKeg~*#^FEyONIl8u3s!>=&#!qA%a(O!jwuK5C0d#@TUhDlZy;|Wc=;P_RTlgdJ{r zhXy~<3+3-B#UE~?e{sNx02=~WZ0bMO)c@hjj~4}QHC5W@{U7f6`=0>+E4@90h%v^$ zeD440k2Fl69<^-ZJvTnB>>w`!E^}t&+y&8p-TVIgZWxOO@w-_DPQzUGpRdAyZea$K zhvred_6!}!nH+2VVlwjAZ_phICTQ;q=EVI!O8RfBDOCipYK~A$T>p7>`se4LQ31L9 zyVZY7;NKGXw*>wzfqzTj|3wLOvyJd6n`hBFY_!uWW(z#BXjbZ_sUu~l{5Aadh2Pa0 zm|zKKYX*;C;$YI{F9C)~GG%N57Pr^c?#ySlV&s3Ni2q56swE60Ds9ed`snV1 zq;2q*okAN{4$shQalWklU+8j;)PHp5=Ph&f=06>Y|8$WIs-$_#i}}jzW}rU2UG$l!xX^7M<}?12L62YU!2q1-y{8V#P(->Sp??~ z?G&d4oe}1*QK6DkpT(cXk;3K%Cu4*EYY|Wd{{f71$6fvxq6GuY z2~eN=ss0zQhXmY870f;byxl*aApiF|I3Nj3FpPx%MF-gb5E{~`0PJ7C7t|lp0+W{i zA4U2fef$4|V27Zj`>33#lN zEqc8-(Tr}PF@XEK6#8XzCBiVu?AITU`&Zo5;wU8NE3^0)0L$&}`I1)M{v~fBU`#eE z{8%*KXt(Noh<#OCix{}p;!+M20|lb?HOeTZqD@nbEk>NLIws?rsK;>2tQ)MYR~LUA zS9QIPUYSi)LhpJow{5i4J71H0uh}Gk-&KRq?hq>6rjb!3!Qvw3&nmZGtk}z(smPhD zsoUVP+Q$9E4U+W|X283jYN7^Mht(dgu+>N6snwnE!B)Bga#mVQidSk(+8*~(TCC4E zgfaCazdd-I`DPzG-tzKI%)bMbCE>Y-c2S(?&c! zSHo2=U@KNBk}bE$@ljr3FPbN9b1xGOwpRfni$)yt>c+Sk(f4+JvbKh3jv+I+>?+GN ztMX!W+dcChPn)Qf58|*cZN-#Je;4o5+ zhH)L&&rK?QkswD?U~b-|P~Ld1=zQ2`Xz;q;cO1cJBp!_bauj4<-=V)uVtpCa{Pa=n zO&XFz8NzJwLBEynXTaUMnuQ=f!{M~3lj|*SmfGv{kau=15OsOnTe-flJ%BhbMH-C_ zJ*hC|x|Zq!*9~FV?Z#d9h)nRMqvX0xujF;DPPgM_GUK>h=2Ka~+Y7g?&KX(YI8`jS zgOHnBj=uu>U<|3$K$JM;vg}gjx*Eu)@>*WNWYBf$G>+>kTOvP!<92T>MUg??Wlz>h z)h&*1=Y_4n(khF?-l4HAyl(2OB#Dd8^AdyFjr1_92{e4+W}4!l)jl?I$JZAl{}sj7 z?br%nJih*2<7rS=zWv?*1xCjz7;z-vS54WfB(ADcLLM!}mFVT`q@)nx9Ze9}xe-MP zyCTLgA5^WJpY*`Tpq#X5V(|{!uU!|mt<{#&CW%~H6pnR3B~`n5z@f;_M5VeASJ=E>LTjP0k>>`bd-l`w8|&9_uD>qz4G z^07=d$=aZ8&JIYc&*RHm3_D)X{G`(L*2%c;Z~K|z@QR_*^)`y&K_MAcDvo&U7nnk~ zYzEiqe6H?!tk2O~i%_K{n_B{1xT3vNxcBcF*t+Kq1u$lF8HhJ{2z_R04%X#buY||j zws*%VEy5>(N_cuo@p51vNSij?i(O`mLj~jZ+DTDK1WFdehU|Y}D$MV#RU7%uCURZC z(S6Db5;_kx0WIa#5NYX!rGvGfDy*_`Jp6+T!0M+8DYws}e3C6?K?&k7C$L_L)mmS# zM|WFy&nidcH0{Z8->TE6p_^ZlhNml>$DbvfSw94AJ;q&jmW}&rZu>EbULjs(A;tqy z6C~gped8um90`EA%v8e<@3i3|2I@lw{7$uN(@(D@<>aTcHaWYsX7aj-n;aqGVF|9sY;uvB$eYZnpjoZ92VyrMZlSPVAnRTo=A+% zE&TFccZE)T{@tuW8s$ly`D<#lth-kgds}AOjX`mn(ORq>-1Eah&T*#?EJLKa;q>ts zO9Ez@U>zvQ6qHK_YB5a-JBWw|z7yB>)O08S-;S4|7VJq3e5~)!mv(5kbd=^PipnCM z6?p5F^TyoogLjVf^DVpq!awCK(`|@~CIFRSo|ZJA(0n}gj5k);?U-A~YyM<(qs($< zJD+EyXj1ST!tO_l?ax{1;_wrp@rGcYU%dJRoc8pX_1`B0sK_fj)7Z8BE*~t&w}OF0 z$^!94CcS2neV)?qm4uE3e7DOG`RyacXji*MDF)+5sjsR_p_9mBG>gn5Q+9_97VBP%9q~l2 z$;tU7&h4n{?2sxBl{N)I^@>!wWjfxkVC`k}#b4q3B?W(P`W+>5-42lOI!hoEa;g2$ zOJfhfx&1k6!q44$X2E0U2C`4j1pw`EA*cGGDLqrkj-96v$ z8oi;Uhw>8(@cwet&WV20dg)~JW3;++x<_V-Y1;7BU+29i5gdY{K@$X`gin#T6=Gto zzaSKa81<1|0pY-FGGhLH1-a636q8(;V@#=c)PUOPeH{o13o+#syd#^;SQL)SQu+G& z#L{3ggaXao?5VgMz1%%SlA$7mbp_xSmDCJcop+j@?JmQ<@G&?Nn`VJZ9?%F_(zrEuqhQf+JFefRBmHvbv*|hABX!&W8JVdOiCRU#m@1v`Ay51&L_q(l$XVISo zg_w`g_V$F)CG1XPAUw%cTBuOF#rX@698fHPc*#)r&d1$gMK%Liddh%*4+fKeXt;?E zof=8>#8q=aE=qyMO@IPdR=9RTyy`)xb+tMrJMAmaC!eZYsps|51hDwS4^%63!Uv?U z!|NI=0U^Nbk2g7I;2(dCE(RN zeI?!2oQ6g?y5vGdkgia+v)++|42HYjNEU|Dum4al7UEkfM@KtW$)@0p*+SbK?rHK3 zM3)CZ{<;-{_wqtp$-v&9bcM6fhDyYfdPZWrQBSX4cI+@?o@PTmd=tW-0=kXdSe1U* z&Q_~35Pxa$sM4X`62lOTA@JNbNW!!?cC2i)U(bJ|SRib+*JX2<@hH5zQuC}N$e84|h1aL16j ze2zGqn;qHTq?9MN;)89~k?mxQO52R%DY@-qfp`|@h5DxcR;JJIvC<~E#L+vzQ2-+a%xWVMzj zGPoZ69VXy`@RYJu%6q#UM9|hTfQvD%h=TeU;R%UkE`CVjD|P)^e=445SiNZ@JW7>* zx>(y1q|^T%xk5X2Z63my>`lJb_QjoP#Rx4UC*uI9$+O3Q>rtp0`m3(%QZ!pVgSL5# z7lGE3Wx6rA`GomNyYCgCJvYpw&OXOxkG%c)@!glVH|?TK|8uuy1{wDkT)DPse}#3s z_jweO9xmu{~ao)djeM(?5%%5e&wj=?Ne?=GN z*2aUQ+56QVs+HRiUL3h6{o69yoe_bJ^Kd_6cV1MW^!F;tz&&I(Hsx*8knOdOu|G-3 z`yrp;PUsbJ|GP|Ie#5nwQV|wY|L{w9~vUE$wqy?E$?%Db7a~Ka>=iN!?ktccxX-8(xN0C zf7ASM1ziqg_wqbIw}hTuZ#KQ7U6}+n=GX&hyRQ>REBXdQ#u@q=Rk!I+JZ+tVu7|lK zch1F^k5Sk2v5iX1X~~8Y>FR+o*P~+{6P+-3b;v?V}@M7N2%HHJ(2R7qv$o8Lfo}3&5o}pUtovsX(3J?MRk1>pVta{~poEfme{tCN>a7 z9+ykK-x#LhC_j9;@cJO-M(*R<)Te%htG|gf2b09jVq;d zio$d7RVj^cB}k9V%EFVWc{q&soOX3K6aFOoQ*V+T4}&(3CZL=AGxqy9b{RGld=BqI z64tPW@ya=iryTQYBHW;G;gU#FVTCQ0lK1wrYWnjHZPtqdr~H8?Gk7{(_F26Gs{W8V zw=ML<0qwgUHU6mU;eEn|=rOVOIlfoQo1)zO=h7#Zg;}&)L{oxQa>HcY(SfrUp+}%{ zZjdjNZE(F*%-DR(f%{Bx_ohLYO{Kz8Y0Xr?8)Qrg&ByekkCw4(PESm?_7)wETRZcT zxNdW145=$x9Q-|an4=~e`O+XWx^Gg^k0PXBZI0Y$9$M?1?cPq*X?;_QL`_VeZhss< z9AqosLfs$}yieqfIhziSrXfylCMAs|E)aV9jp^eu%vX8Y6G}3-3ZNUBtw)mCgR_8j zWI+3#E8O|SNcGb0<+8Ah`l0;cx-WoG3>111TD)TO4-9eG(fXNNm<`+}b#sWUkgMP#;0FgC>vm z3!}*%M!fcC(i8*lFUQ_91AKe1SJ|DEAP?PN4ikWmK3^o*c5){;>vHiBa(R4^6Hr?> zbHcsGqm75w?nDRp;fPwApd((Ojph_*a2#q7wsA zpDN9&@|%6h2%M1lgxk8WPzO04jeNfM)e3|sK1CdHZ`%*Z99}D96)Fl{cPq>;H^(DY zZ`(7>^{W(frjv7d;v@?Q<8mx*Vp(n)um}2s4f(|NmRn*s8$RdWlW$hntS9PwgmXWh zs9UpxW@6Cir>+mCQ~^5EimE{H=$afGI&p8kS#^try`V}JRK3(Qeu%ybC(Xe##+F!oE9CkYH*6?TTC0ae%W0u;CQ$Q7~dwP$n#+;VZAI(z^Fd$vOe`Lxc zUMN)^a{}h;k3dJ?s2NNJXfl^8K0SgQ(@q@Pd)vZ(B#CPu}}SwBm_$cydR6>ZHoOg>)t3;H+@|TMrf# zUk~bYQkD$-WMXg^e&{M9C%cGS?SAuZ>Uy-!{|!EytxU(v#yktelp$PgibIO z1qh7qk9U(=Sw73S= zXbc*+6tGy8qEi~6+1yQR#Xs7I-dsme=}tPgc)3Oa7A9kimwPCj$JNw8qXW z@7M3${6NJ3u(XoL-f7~}uIbN}jM-R9N&wl9TnEoH?`7l4S=yqlM6g*b9h`h0$d+5q z^Oru;RJS%e+HLQ(;z`e^I+kQ=Mh2y=R>EN##rGt9nd>qQSdx7i4((+OK6O)!H67Y@ z`zw?%=N?`DFMaem{KKC~3AoVSkD{r}HkPn?W&62HxkVwNwGy(J3*(6!eHBK^%{Mxu zt>z1q9E~OKt9MJ~_X7;R3y`Qn`Sv89!6-kL3J%O#uPyi_+`ZRgUSAxhr*L3Ug5U_+ zV}!W+(=6BgkeW9g=7*aW4reIW+X`NZV|;9KupkANK&;dJyT#RCq~;g=D%C%xb7?9H zU3%(aky&KU=peV=M7xs2e%Gs>=IfHvbZZnS04$UgvX`XemGZjzs=fzVcf*E~<*sJk z9Mky&?|{rF+VUj>A8qc6IqF)jZq==9pEHj{%0*_2hDG>>g;S5UA1fm-_*eIRE8DX` zuCNkXULWE)juwkCnIk|==Z;}P9Q8>z{k;{5h7)8#7(j8rHv&|nJgT7erY6zD&>hrU zVZS?TJHPWoF-X2uq=I&=-|Odae|teKear_KP3iOij`y;!r~%qJxG*rH$5QoSp(w=P z(F_(970}9id)VP15GNf~I=qnuL59}}I?@NXo!?;KOI)g29|@Fqi|HoYuOx=*V|)Xc zvCJ0MJ=RH*X1;3ri#Cd)x5{EEHRHe?_pnGh?NT?`EIB1|EyuhWiwOm9{q?`N)EPD&{F=LUvSIoc*yFuE$S|zvSa;t#|dy>(kklolURw zY2zwvC|$t#%ZC@=(Ranx5x;#TTH??HYx(pJw|8Qy^6fkK-0k2vOou5ulY7z@vcGX( zM>@*ivf&MPot!=WVL295jA|5IX=91@l)Q`kuJAI*q5qz6W^m|%#DDkF)$T+64p3RH z@@*QX?Pf8fm!M!P^N?Z92PEEF`I{ax61}p^KevqDK!Wmvz^2MtZca+nZ67U0RjkNih&NJuNw7WUKCaT>9d z@#5`J%AZNRemf}!)7GElnhK~Q`IGoOliyq`x4bdOnXi87g<)M4T=8KrK&DKV>0HIXGN@UM$P2 zS|P>;w~rGd&{{ZD6y1Q-?wri5pU-8#OqOi!qxOKXx7VjEmu#Fx9)vmqsJXtd1c&cQicgw!q$vOEGcRt&4{UaPvk z@!xyn4_D^%Nf$#WPg_23yuZMC(Pv+r?0S36aLvUjVPdzypEU-94K6@K!lFpTWXz&~ z=Of}?ca6|k*<59H*^fav0Op<*15ZI=s~#gXy1T{rp>kYpWHXDw-C`ybPN?5N@A$VP z(_U}%;FxO1UvwJIo1v3D0x%?)s0CV38ZS-592OghbdQE2HAa2jKNIB`$Q1Z*kk*@} zAm288NakJCe?o%!?6p)Uc>{G!-FuhvY;T302L;?~WPz!AV<^}gPd?v`Va1<&8KHy` zMNmW#Ed5Y*<`Pv|?*HbOcJM9_51;Fo*AFNz_)Yyf5rR|CeYCHb$j9lNiqmZwT-aZJ zs!k!)5sC@mUD$We&1w0F@?t7D1q;|(%{MzO_n0BY;z@G!dP}T|zPLWqZYSx8ghI86 zAc;qI+dzP@zG>-8Z|DgIzF$uTA-`H(wx;%F^uI17`@#a>k({38J0#N^>hz3TJSA-hj2jqEv zAx=E+T=f~AoU7>b83#}SQ-@l1X_hl+2EGnjmXogHR}Zcpe|8MAie`R?JH^HqHN_tZ z5@GN$)wDUDt;$ohYi5IrI1K;34+v(fj%k62Nod_PDt~-Kw0{0q2 z1(pM&*pqGc*Ao7>++a&sKSWA{&Y23+61T=!I!?&%+P>VfMqk%DGE=#si&^8PVSiD1 zUvQqpi<^A;`1Pk(>r$N@ukzV=$s5K3bAQuO;1lVhEMW+f9u+7XR5THJi+@aeeJbJu z1p~fxbIt(T=~{16e6wFTes3pZdwkdzT4YBVhp!PKx`D1;MU_0S^h*Rk#GzN#3pE&F z6duv0pgwT#1|TXb^lO(2m9cfYdKYbs=eG0el|XERjLD#ieYq?!B7T>KDW1&j=ArPlw407x|4A z5qEs)R5H?}TckT=Lh{9AQ6H(+9!a@j1$0!YYDX09YeD1GJzi8-nS6P=E5E|9+f7XVK}6XX!P2RQEm)cAZGeQIK<#!suP&bB zxuUGnXM@NXkoJ^-V&>+%H#$2cu^XN^y>U0<(ddw4Kz@1|ncUzQhegS}8wC_Yo->U! zoP)8G4rL2U{-HBs!P9hxDoFOB-~!^eYWEgz7myDWJqvT{DFG!S3^x;CE7SiHSaU6S zCy+Z9<#N$~ST>InY1dryRq|&*Gyi=zDVA^7gcbfKP zSC{4}&N9d|rnYNdcv}%N8me70gS+Eje4L(as=AOA9)ufw@J|)`*hN?ZJ3Tn)0qKWJ zZ;w>O!-BpK2ISP647vEh?u;MBElSrz0*Qn^+O-nz4rmDoYLE_}nS+@=IH{@-3~5VV zTme?}qiuTr*90epVQ5u__uj0V;U5%%#OZb6Bx_< zkue3tDQqNzp4tmM!@CdOgNGB+X?g zerwIB>P_}3hhu>@Jc;id!rV{@__z4-L@S9G$s1>3MnhwSp2_r0@R8%6ie|o|*sZtT zNGf}D_HyjvGz<0#F1Y%#8Q$$C#2mpiWV!FQIfSc^N30MNL#kK*{=-vyN~QdxKp7Gm zYlCoje}Zs;lQcZdj{Jd49@K{_yszZ|dhZx3HgIbGt;Z^Zw}J{F`No_z?C|dvvB(Aw zLC9p?nu~SWf*s}1YR8WJ0w<=10(f*pMQspAV|s+%Tar04Wea#21IsIMKO#%Jbm*Md z-X6NU`?i752bibql&{8;>m`417kR(wI&_u^B|h1VS;CXEyB^N9&V`-gN|%5M4@A}E zi^3JH+IR5kTYlr-@KpD)OzXMH7G&1s@K4PqFTeBz=^`cGC88mI*dV-#Mkz4%H{k`m zdA){ZNCd*ggsH{hV$e}@W*DU0ltH4P*F~Qi34-_-p)12yM+S$EhxEp90Jv28hr)a_ z+k&tn67PWpNLFui-*+O@tj))8d=LFKCe7OseMAKVb@`OaHQ= zp9ntKzFoD4PqP6#NF{s8d+O)FBGJa{Zr2f@KgV>4(SovbsyEpL-$9X!;luynOH#? z1r_|`qIa6YuD{9*Z4qZaY||Rb2;&pct5~bjBHn6XKEgTey}tiLQa)VA648FkdxU~G zO3>^U0%gNb0gh^}?Y3a93gwmDbud&xj|`|S{X9$7a5_)q@${Dh5~-S6x#eSk>C8Ei zOKDMnD!bQyU?pTqNS*TaE?h%nhxm{pj(5#(I1=k3oS||yH1GU*xbLp`x+3)Q0yAGN zD3Egn1yAbB?7F_t)0!oyuNh8uM2fWK6NCEci@6~B9W0Cx9%g?Vs%XyXBtOi^Q}als z1`Eh@2m6P-#M?mRQ3w^>HRWLgwe$FvgtGlM-^>uAU(ApkRq)h2+NEJ=ZGG^(E?Ojq zu;ZKHk-+Jo%N~Mj>7OBDnX^1aZaebkt?M8;f0#k6%wuJfJWSAiINbq&1 zr`%Yt{)@F(p67J75v`Qhz6ne4`Oi$!R(Ztw4q2|RO@YlbeMhF-U{0W z${1o`IzDr8fkja@G*Pa#(fRdk8oUWK{&}2lakH>LVaL2Et1rSNfAtV*S(`!!V&t{; zQ*qV$uj|~543QS8t{A?-9KG+o+OaGP0v`<_;8bBmnz)QhzW;2T`_psKcB5YT#i8FZ z?Crs$un*!Caupb<#T73XunH3Nvi%Jo(s?J9t(EX_TIC?rbHExDdeisn=hGlITF&wjK;4mwn5gJLmpO z%x{;#bLd2x8My2`aLB@fboxWQT#VlY)e?}t_3v+^$e7EIhEwgddQBja&4!(8+V50W z3`w(Tky7(85v|;gkBs!K-5_$_CgZ|E@9*zMI3fmvbghCJb93?eekE2jh~j~d+ZjSF4l?N$HG@%3S>$+)Cg{FCKS+Xe$mk~bu_Hx!G|j?z85{nx z!guW!p@7Qr?|Ec%X>O0B5&%GQ2E7 z|G=kC-?YcW0@T7jG=G2&0Mdq1Oq`&Iq9Pj28+j^N*L@^p*AgqkbMNr}C$YN6qv`Vp zSkvnMp~e$Gmkm+w&#MwTxBFq6Uim9JbJ!ULc$po{IPx06^OdERbl?)`S)A;M;8?1pj zkVgUqA8{f+BX9TG#5qiGTt(f~HcRkBjn)8Jzek0Ky9M^Y38e>`ZkfY!Vp=BzKbwt4 z@i}j_e{x+%M4coTCjmyEOc0B;YdpgS1-rcYH#tQ&)TkEaePjFM=$im6CF`&Yz_w18 zi3?G+Bmq1Dpc2Oi{pq^gJ_ zQ(WI8%i-8-LtGxVMm*wSxCJizpNBg#=-v6Bdui@t{+HZKy86n91ms?c8+UO#j{s@_UbJ6V1V5da# zyXkT*9gbsb^sqs2_>UDauY_)fwMn*QmZqri!j|1=F%BgFFXJNp%{yvb@*$fpI_kak z@^ZyjeV_u4*)x=Zqy2-{ptlhce2*6F?uHLcD4pH!4-e-V4m5IaXHwUyD+{j&?iiuk zVVZv5jvynqQ8$bg1v#m*W?>{nLc)r3{NuwjSnnvAGq&7Jpma>0g6$hKsBiI$kQ*Pq zjIj+pFd1bTK?Pga!0By9c3)F5!0iVInv(>9bG?_JMnj>s^!%78YdPCLb<>Vj?nl$W z`G6IxL_LFUULqbFzL z%r{~hY}!ibpb=}Mny|^`h8I|#p`GkzemrwpJ~X`dom-Fo02d{5O3(TFA5O?lO}t?a z6~2XxspnfAu^s{iR`49B`s_N8EY0 zxAeF9y88q5s!*PZaw%0SJe{5{N|w+UXI+hjaBVuRN&!k|{5-+H+wh04NyF(&e8+; zHm^-EVv1>@PZW!6V7xxJjI=gdRISiUMgp~4=*>zr0ipAy446m}H9@);r`$o{6Q*(k zokk;cF6^UezaClePkR-G9_Wm7jDz-&qrgR2cwc^VWKQ6<8&JJeI|hOCwnd|)Om-0G ziEbUCDO@ml8XxXNgQLQfPb)N0m)Fy7_pEhRRCocji@sKv4)kTBF{Ty1_QK7Jd?%x2Y$ zKJI~OKMofT)%HW!>q>K<)uP4whW_Sij0JG7+^C@nIV$#_eD0}d^ZpF3=#+B{*URY7 zJQ#5q3k1jW|LjIPl7er-Q@Duijzv5LheM+1SgG5Jo;q}A9Z3<+aq*0sclN zxCIFk+}(o*cXtQ`ch}(V?gV#tcX!*kySw!|_x9KKcK5yKyuZKEWAKBq*?Y0}oK>}I zRz3ARzm`t?VeceDZ4^l8Iq&6Dl3zzo>&sMRFqfG#l#R=X>&5~83$wcUiH=+Qkt?@|4=(6<96Q277ot%fU{CbecR3I2yFvVE%F|t%j>Pvjp22DK{^*rHy(Buh`@80`J{oXCLEWIA@F#22sIaXf(*hB z6pdrZ8T}IYkSjv}4uNwHu-=5+wkp{YLH=B|n|Iy~3@AityfoNyqZ8PE2mk3WU~K`d zwOBOc0vkIhXkAX%0e_c{h$=Ega3k3CVtBdrT`yL*yv(oYTJ?)uW0Pnl(!FEBoOi(Y zy37|M<=>u+9#2lvfuy^s@vPqaPSkhgTWdIUR6CI$jh*dD3W<-@Y{ADJ=_qchbLfZr85@jlzP)(jCSGT{QvDLrMf zh$r#!W;F)z@e-A?Y2{=%OzO!NNu{|+=t(0& zhL7lCWLiQ!tvS9$kQ7Odl^Y)|eMg<5^_QEmy+jQq#T5)23CWjK2N+@segvlLxWVJJ zAPF8UnC^zDRB?Fci3ox zJQn+l`pv|tYU?obRJkbnV-&QVc}_+csWY!v3KN%nOyOM@#U$2?fSN9n^$Ir7VV+=M z7k0Dl54$+WeCqbJgE64)_FM=-4+drWvRQE-slazGYZnuGy<~eNXB=M;S3)(NI{NN^ zv{{7i>HU$)%Eh7g7RBvy#omF|29|FawSNM@snT-1&GQ%#Nc{y&Nr9pphju>%gGop< z<;N#y=!xTd%hZ?A>GNeN&Kme><8b5Ak9G{*L`-R&aFfuj^-gCXJug-+64^IwSh!DLPdHhuA=j1h<=%^sdtQ?_g~1kuN(~9S|Tw+>eTyvb}l! zk|p_VmQqH>w)JfmQSf7Kt+V^qp%{t0#oOrlwHmZ}uqUNvWE1IhfM!+2 zLIRrr4vfIWc|2mmdL>q$w^@_zu0vzkaC`};cpEonT6%Rgp!gP~%;>0I?uORc0)GnN zDRfQOT7PF0R{N-?rw-LsaqH+$W!M;-%-k&te6|X; z*laa;j?jG!CZ2%qRspJyy)(C~d6(+MH-SYLZ%@Z`r*kM`+0^HW9Ob{7Y%|JF*w?XO zPy&MuErjL3aB<0n$5w&Q<_(jDjuFM%bKgX#hM{Fgs|m3Oe&clb}8g8*0gXkwU@2 zka4cw5pBhSmA^aVR{k%RXON^nsp%wrKFQfA!nSmr|GKB2J_Q&gI4p+5PxlqSg~h<} z=1b$QbFnY*mFq$2h}YBE3O}8C8IXP~gwoCrW#<8{z{Ig^*AJccd81iZz<`yZ{^Wc! zH-MV9cllgv9q~gssaDv=hL&{v+Y~R9V<7!Zwu64& z&6x+i>eRZ`rGGyN40>sycNfNn$M;R*Nr$R%b{nO{r`9z-VS>yCtsu@q#HWnLd2 z+dMRglT6AJcj12fR#w)+vk&>L+GQou&jotQfu3jfT0R24SAfIZ!b&-6@G2&XJjEZT}E zJzHtV*f#R#3CxoAdfa8Zu?u&_SuYmLP^-d#gdG5=<(^YvkWQ|4zX{(6U$jI54PlB{ zl-g8ZtcYAXzsI+n!<9#^R7#;nqf!IJshe=5huI-HM7D#f9_xkOwKKMPl=FQ~g4^s@ z_%f72F;#8Vz#<0{T~6{zWw;0^bgjIzP*{fO{rQI}hl77Q9FjIAYRhP{L}g zq(RrGK@`mFO2N(+r3z6}pTa6LHK0L?L?ZJR`SO<4>yy|EfCI{xo!CX^%2Ky%gZobm zBKeBq*(SGEmTt{aty`ytw-PW_q=UbAyp~m^Q>n>aJiV#;`m5J zJ&-q~vc*r%MGrFKtT|+m+yvW5!__skql3vTMiAUG7dZEb1P2R%39Z879Omm3lELG~ z(nf@NW`K?bPLUa2FiBb?N;bstPjGWX5J$LmtjJ@~BgqAnK(5h*;PAl0# zz~7o*wM$Vj1dL9bS)`NVP(KRFLXNR5+j}O257NmCEw%@W0i3;N)b5`$Dn%yszNwe0 z24NCX-|Mmao+ESeVJ)()Hv-(o$wKKaqVy`k(LhO+D+HIqf8(^^yDOSw5=AU8%80Oy zxUgEZN$G?D^R8`;i%oCI6khpE^Kn5TlQq7#G+nD=YNma4v2tCC|47+}Kb##I!t+eI z-D?g+#!iDuzc7*TWy< z0MhHF@ZF~vrSZ|?e|s+O)@KSAXIhuy&)c+dj|f1b+u%WdM$2y$ctdWuS5YFb?b`L;rQ^WhX53i9dK&I=wh3a_`UHO00l_a{hX23qb@5J zma0Su>A{Z;J9S+7wCQePkSn&|kc`;?Z%2ZUcHC~W-G9Wv8}>!yJ3~SjH}1pCTGbV3 zBK^50W2ToC6m;9lzNS1VJdD(zRPPIVB` z6YYANjQynsaeK^S-HO^8vC`~NQ=Zr97t;hm9~I%;{csFG80H$Ryew?|1rkPRkMp-@ zmdS4HIO=Cy%Ubp!gY#Z4IM>W^AqR5eRV%>v?Ep~uAv%BsqoC_7B1-eRUSE$)cI;t%jG)qE-4-?V~-9kBx%L$3_<4P*zPRGs8DLQOu zoOLb&ITCf1LYv%0I@lPkp+?7gJn8Diu;Q|+T@=)piS(|0_fk*n9fM#m;LT2a?7d#= zbOLLHl0zj9__16b&f~ODeSEIbzSOY_cpvcv%qa)vP;bke~7vG zI#&}L5*Q|r3g~K>9EZa^(aC9|DuVKi&1;4Zf=`>c8B?Glgn$uM740(GsHhNajIpm) zquI66f^{svl8Paixk~e2c~%VD)|F$ZYhcMjl|f>`DM7@u6qYB*_KvFZ{u$=$Z+LQM zN-9YTXdZ|Z-;YDd=^?HWUS6*8+Q#1*6Zwtjys+Dj!fN4iITG=I>$lV*_)6qeGHAPa zyCGMtsC-3HC5OJwJsHq`zScEe-z3($ z&=Tm(BE;cxMOk*E^L|{e0v-O^fkJoSy2`fw0Vd~ZTs&?H_fHxc3g89;O zLTZgdMjF?Sej!02@s0`orU@`^aT!15#k{e(gtJm@*mV0~#>%dFOCcDaE;x97;co}M zthHYy{jZ3=LDydWQP3(?g}D?|CA`k#lWu4DxF#?ATc+2WviU;k)Iy8-0^%j}VmVZI7PYrLz~p60 zNzTfnIhC#2)I3r5Bz)F*z1XO8mM*6X?9@piIWMpMh3w$>lat6meXQ^zbZBrq_R_iz z_2Q+~$lV{nwfrDgH|@nfY0U%gZi{}pT+&OrC;i^x#eLuDpky83XF@HOU5D9A+jPD;?GaYma zaLf*-l$g(t61IiJL|Fvy#6*FSGt9gyYx&MZBnZ@yh(-!4fvL9iQ$fFSUhHYq33l)N zu4FG!rcsgf(kN!NSfjAJvzR_5b|0DGED=iC>LrfJVk!o5?@y17GF-il?$ z^MF-pfyV9qOu}pekDIPW>79(J<5iL=0jYHGd{N|{4IoW7zOmPfOnsRn6}6d>?#^Ed zNv*e-u#I?rI=)zAy(o9tnabA3ielA4Xnjw7saFj=1vMLm3bsYQp|{4bxjyrV+QgQ= z#jOqmAHCMX7oSG$ASOYSdBYJqcJh}2v(B#WCE9II%@eRP6k=x}mzy>rzJmk}%OLg% z@k#yVb@mQ}liDhrP{2`$z#>ubL&jb%)RfDqJ;vB2rSa{8nEp^Ft`a1_&x=i(1cl%V zQ3ukZOq;Z++7r@!W`nRPY>N{PT6bNsa4H5XN;uCIX)p7v`-(h3x;7w=GuSa5ok3@_ zZ4eLkDI%N&jwiathNXn)3-!s+fWf#XLT zlGh5nDz7C=QpE!yNIVqg9htKdz%P8(*EERfvbMcj!pF}?D1B#`x&bi$GOAK1*1JLX zj@*)_M9bg=o8x*dzEE`!OfFh&(S5q$Cs-8 zNo0D{?F@cZ(|c6EOJ4O5xYZ9&E0g)w=DeQgyic@x!ojGTPHLkg!`(!Bh>Gfn!M%*q(SP2|XQx30CDV3OgGpw*z z)5G19_J ZC@=g&3{-SfaZv=kH=o-&KVo*ADcVAB~y-uURXFD&XTpA(bv&dDMK0L{XKb`d5GN>q8 zBn1&1fI9lw^C_>V(&!2v|MWx-_6E_{;0*qOh;#?&+;-G{3J{>|W+Iwt<4y95E^OXn z`AGZ@6qqga)Xpq+72->5wdP*DpRXb&%G7s-`59T03IKkBMqn}UKavDVo|C(RnRN*B zK3gO@xW$lX_JEzgF*-1|^#mdn0dS1(yu;78RS*34r=g2wF5vs0X}^@RR5TY?y!E&; z>m!k(Q)8u?Thm~d(qFapvSczJjs&G+aq-r2M2tKjd*=@UqXOqIO9|wjCY_xlQ(lpr zL-doDa9^RA!6g5v_GPeF%)?aeW7cxxvgNrfbfJF3u|n>!>-4x)mNPWS!t@oWMbskv z|F{5JFa!8f^@FK9tlD>#c_u5ITwhGOdvzCp21ri4#6g;WEWlm;d*#;aZX9ep3d)qrXolM{Ib+nA0 zv^G>Y-nSt<;PZ~8CcEvAr=QQZ?St$rV^#>ndT`gn0BM$G2d9AdYPKg;=-s+oM^$Iu z*PMmo(;AtdreU{^_07wak)bCxpvs4?aX?(ux?{j< z5=dD_-G$lt?9b>6yAQPk<`ntYk zpXX-UH*P-?E#6h&2&99_eDFv0)io@Cba37$p9RV7b-vJzL-@YFN|rk6{rbS(gPuR% zj@M4|MoLXR`aS!Aj&B+ciru>BXX8>qzkC7v3K*M#TlY}+3?rnnTFkeC_d8&;*r@Ep z=IOV*XHUQ_qp7Ud;le#a3p_>BNYTEa{z!e9#tBv2tU$VtSQcak|8Vt{_sq!>Q<+ja zcwK~AKVI`BivV)Qj0T0)4cP{a{!pPDi93!(R_u_YM^sgvjNl7rZresHtpBrDVwN`6 zpx%&ndc(ZdcnMTA83%Y{#YiCo1FtXZVonF9L_;DM++KH8UcmTe;2_iG=Mnz13cUM| znt(RNMMLPsjjU!S{z^ltz_-25;%^knqa8lz1n=`7m@+>{7;S}@+69q?7{=p^{F0oM zh88Z6>Iwf&-P`fQA&!-kzy0mZ>P}b8>@qTfw+3D}(`nR*D zd(V|Vwy16i4&G_$-=aj%&HFZvILZ~;rx_>J5s7djzl&~G^|*Jhp` z1q5PNCmPgL8eZzJ^uXSaoG$Q?c*Of~FIDd|t92q=Cy<$_6=u*R=n5xwI3Y}@GB+(O ze@{E7a@)TBv~Q;*5>Nl&*NME%+l(!dUboQZA(2R#yJk&hkuRX{4B;O$;=nz02Snn7 z^H?M33nxbU<>!`$m-tO7x-va0YPH(I`)AxofG5e)s3H7y3b*(BlwzAY!fU-SLWu32 zjgIG*SJ^1rp9HGrEk;gITkB#eom%tYxMc>7g@(peh3i~19JkY#184obU)Zar+%=$S*jpc6_y z$elbpEG*PwzTfAd1e(+ns#P~DCby*(u&3b$rN}EzK?0MNf#m`0GNLE}yMq}h;sdDX zV?P6;RGMWv1QAnrtikg}k|To3k-N&tMjHjUcWGQ*CiCoSW zGRgFiG<0v*g5vU`$Fwv|7oz7NtE;{^?TkZ5KFHNEU7s@fJcXIH*-xIcLH5RL(40(- ziMHqZER-P&4No;LOSe0$6jiU?`aP?1xyqxYNW=&1lTq*B)O1c?k7M22qe-x&yE&Ht zW&}Q$+1F33D>r0biPCQ;KQ{0c>QZuRj%ji;Pq7Z2_N4rWem7}nxE^6gicpqdskY!2 zslbVNcnc6=*qZCS==+a_t$Wt7DV1mo;R-t~AKR!c<`I%fBFFrd*v=PE==28Cej zP`=#5BwPhTQg-;Z3Cb>SZv#qF~Z&JhqZ=vt5YD9k;(dyV4&c!-rpCH!a*pTBg)ep1jg2 zVfUs_@I~?kI|RsjEx$#VdBj{<)jX%-s<>J?_{(4QVYVy|9hiRF;MczY8jb;Q+{c~1C-Y`u>v$Zt&{wL}zn0`* z>(i^0V|UMiiR4pP63CZWPP!C20nRJ6tNqLjs9>U1j+l;8D!mJ+s<=VpzRS$dyk)9W zsE&)|q;xPbHbCihq&^#Q_vtDIo(vO@i*mThZi*zw!$p*sI+@Jr&}m}Hr=gz9YZLoz zY5;9#<=iudZOwg!+-cvlJ%Oa$i!gd16BRLpxS)GZp~)F4qn*H*#y~a6{`@Uv!jWqE zXC(Jk<9LB{=8X$rE%z-(m z7lsO-zn+;8$$&xoI+UpMgXNX*#?KuFvPIqYN*J^pHviW3pw;17mh3l1RbsxNGK%Ll z-+axc@MrWX{m{IlA^m5UYX3&poVjvxPF77PTb)Sw%Gi@Q!s_WydT$5Kl8O)qcNO<{fxFcf$ISs~?x=5E zd&af(8XZaZRkGO{rAm<<;W(>h_cu;|2tgvxo9z&KGikO*voQN+X^C7;E=&6ky&qUh zkRtrp*QacF3(v4Zj+qQZW_6`!;j(ABoIIDzKNC7{2sA0|yTJYi4RQv`UPw?Gb@y0| zpHKwC%)&tG=tL(rJDrR7{1DV?#b)xH6X_h_eUBnn^o^JUAp56Vo67e`C2eCAy5_`; zq}^q=Gcx3hkE7iV`Dc``mFx)o<;lGiK?`LX=2onbs7MJ8Vbn*UrV@4RTrK|7bp56e zWbcuD?pEhYnxfO)=6wnzaD?uyie=FoKxH}Tw)cd6l92O$=KV_D8lMk$5W8rR{t_?Io*bLU8u%HEb@p#<_lgX4vpoNUXlZ3$^(m(qBP{ow_-MQMX zP>?8vy7mc}91B7TfVoc7l{b_8BlW0B-WEn64n@M={YP!OU5I>zX<#`($3M0_CNfkL9YXEBuc@WV?!1)KzRB^7%aR%>KhxUk?kmLzXJe1&d{F z^6xim*Q8i;cZ$a*CwZR{E2P~Fyx}sXuuRUF3 zC4-Ds>S-A5_TZnH2|P|Lc8zJOxtBg^c z;YQ;g35SDUp+#O+EBfUJmugH#`EhDcC*ChsZ3EV-wi?{1SmQLg@#!dk*|`e1v_Q$q zv~ukqfP53|r#QgPN}@rrx>?;N6}PMtEFw8wMCh64!46?%8mt=;=) z9wwd09e%1=g?MadByKX!YXJ9F?SK_+7`-1PQq8(jDw`F(AI(X61s%JKpuo;gWZ!4r zDzyggDcH}{)X?VOm&WL;<$i5h-hS*oR9xXDUl|bJ`}Uebgf0bE$bjI&(C!sH2LzYz zz!YcEov9@jfgb%^^MO?+n4MxNm%o>g@xs?kg7elb%SaFF$@wsUqaJ};7A z+dRh&xUvh(YiN_C2t460QK3!`F4GHZgGoU`glnAbwzrq-)7`cygD|%56vsT~d*`fR zwH12QzN5b-q=Rp1Ug-3IZmZ)u+Fv1)OyJg0uqe+Lx+1U?A*^r@#Ov8_z~?jIPBasVf`FOcwk>IPM7yL^A+vicI6%|@e_Y7KkV4* zlPGjER(zc4NY)qmysVd=_Nh<*kx*$6q+S$5&=9f&m*6TD(QG#7#Ywp)$5Rj{lB`i@ z#v*RR<3Hks~Z+p23 zsAInnJ4%f|X>t(w-1cHzeFL}6I|Aw>imsOxOSH9c3ySihsOa2ok8*QUFyXo}1VYSS#`XI`%!Ts2 zBdFW+V6WR~zuc7C`d;Firu*5H=Bf94ankhw5tf|BzSI{9gJf#5Umpx^$@T}oY;JnS($q{whNODuXhV|t1&r)`1bDd%0@@L*st zz&jMd3Zah+A(0o1Hjs)4KR;rAP+`^nDgZ!83u6h&8SiBqSqF<1%Zeo`s|WQVa$(;A zZZC6|`3`!)a4ZI4NF;1M_-bfz7E4e;wb1A0i(jB-ixQ$W7I9M&w3zugg9Y z%H*=NQ5(HSkuOfT${C$g>STIa&HgYibd;L*)B+1 ziw3-SR$JUXogpHuprw(LeUhz*Zg2l6De7-SZ$$a^*LQ;hKL!Jq+Ad@KrRM1i zQBjP5Q-BF#B}COesr_~Do6H=XDQ=jjGwlWfWD!73D)nMt9YC61w%)t?L?A;c8^+pN z6a9K7+74q@%VDj{hY{Nrrt+KRD{J5t_`0j}`Ip{9vsYfi85pgpwZgphJc;;{rG3|p zPF|+LzO@abk9Ib?5aj3&$o3%@tM{a)ew~ZpyS(lBQM)*ILkcEKGjBe>o@GR()HkV@ z%~C&*KrK{gn3tadBmi0=&}5j2;AGLCD+Qo1z&?EyVWQKh@1+oA=w2!#4mls6rqphtZReZ46+9VMfIZ^XE z*hr!|vT;$5FU`;QMTDTpK6iBYQ>jqTwvau~HJ3w*Q!7!%pSkSjT<$;crPl|qUZvicgo1~2qX{6Zw;Dh*R#Eg9Nq}@&D`D} zIiK1Dp%tN*mop$Nwg84vm8{yz3>qw3*5eocuBb(Bl`eK|%@MKTTdA;f9sN2u1H0Fa zp{q+#gRqZS&%5$SK<|`qW@^dKu;ngxa)DB@F-SL$GlK~p<3Y4dkI>~N*c-`DAT?

!eF7M1DnFyk9VQtm37QuiA~;(7=2=xO-H5*Dpx-P<)%na zY%Rya#s7$^BE)ut>+*H#Tp|#Y%Z(ZA18K;;YAD2727>Z#Yb> zwF9QPl7&fHyS-9VzlgS}DsL;eq;7V|rsuOioU-+K)Y`R^H$Ds$h<31D&@n4>1Cnsb<#O+6%!Q(%LxScbLe)(tqDCj zjH=~!i1F9A^m^7<{34vpyijMrb!Ca4wCHg>OI+)u(_37qhJOj+I2 z-_FkTuRw|9*dI<~w;|@ZXPtsKxj$ATlH!^qY(Eo*(a$k2OXo`{?aWO4IUq_;uEt!D ziqsGcFTTZPuFf1X=TtdQLRw>*P$60M=XsLsp|N%LU3}?VOwHQC_O$gjDe9IHg~i3bII_e? zuWa;I_v}*cLb@}zv!)4U>3s22WqKXBx7MMdSn|3aoK2dgwRWd-f=B7k{lMH>qlKn- z4xyJcP#^r0{NWU33={tGWJYFZN|Z2h<-E`!#4kI?W}Cv`x7%aVxydM0u0d~?)5N|x zK4huP*RVMeEhO<=LQ^cw42u=%zxvA3Aw(2Ce9m5Rtc4jhYS|zSMatiNR=$nRnKCJb zBwunwxLk+t0j`ClrufkpzGWD?;^B`k0((FAAqZ`uIn@mK-efa=UZ-K7V*g2x9iJR9;A5ytWN^j#!kV@gq%oItIiK2=zi@1o#C<^D#eYWoM~~CEmg*#A zB>>l6F{W6v%~nYylE4VP*wi@(?Khvym7imM&K|^d9L{3Bu9gNK0)Ey<@TbF|W$k|5 z0BJa!Wo3hvHW6qR2J4L#+n1z!r;=yhjCmAtoZ;CBPG3kr?8z?M2nnY%zvr{p`*oH8 zrTx2|)-Y?Uq=Qt z$+h_e#toTv{rl55sT7B_3BJt2{tI=v5K9lFF7I%@K_os;6Ua(c7onj(P7(Pht-O$g zJ~LHsD7ZX+X91VWz8+)jew~6%$n(9#7RMO2^%Ij0%4M&ku`uGVs5O*Sx?NR0PG(AYwS2nWi zDFMiAt0OY8I>ehYf^Yx5<4Yh7cp@qw}2XKRSGqE{Oa*14;S-|ZO zWZsR)>~Rca3HmSeXOgP{s=_y3&p$Hz_i^)iP(n|I=oqG zcJ`rO<0TnZ-tUhlk%g8YPrt(-b?bhV(T0^R?D`O78yhn^E8t51u-UR**3qsmWQK&Z zxQ<0Bq~vsCfI0d;^Cq&%ZhEZ8AI{gsMVihVJHb6Oe{&x4(+kGy%=dhb3;fB<>%w8h z8g20UP+Qu4o&ocygr~)PHu$YyHlSW8wjeYaSm({gO_(aQ&fYxWE9Gbt4 ze}vU|ni}oqiGg9*b^xx@KC&p@kR=<|62Jyp=!c+W)yBWEkHV;tRJMbr;3(26cBdZ~^F%XhA`<2=0{k+1W4K)^E5>w0mi=KtI; z3*W1PjIoQ0AHI52WFjSp^|&I>gXvD$;DL`uq8$KFpv(EGay}IXg@?Npi^HGZDhMuA zj`|?#5tX7k00}p5vq&9_&L^%&erYKboze`~veE`z!kxMFJ5^K=|FurcSU4N$tTTsIvjrwvw9gTa8K2}Yt( zSYc{mxQ@9Y+7^JceT&q!{2*Dm)~12!(zNo;*gxqxP4=SQ<-83AY+Ly9PA+$-)Fbwa zPNeYeU~0}D0wrUDV+;RwEoXu7{5yr2-W>G+u=<*?N@Z;NFxrP>8J0H>OcNxslG3~fxIWiN6>U~M zDU`2M9D;MjbRrUOdH6ScZx3T(VKw#7Pklk2&ff*H!7ed|hp52Q`Ah6VoTm6j64b;6 z9)DLAN$w+Ze%N+ts@c@)_qO;P#^DT#N6+5U$7d>fMZ~$O_rxV&%$-YLuc|g0Ii#>t z`Hi{Q`ef$B0?&pL=6IK9U)}DqJ>W$OZGbH$;0Awg<$uaAI{eBL*ffp|3wyexew2(8 zwBh0F#Cz5Q74KIdfDj#x!f3H917`FY9jqO~CE_59Ff0oZDU!hXQ^w_I3SVXF_XTH_ z9BOBP36xFX{nG?GdRkPUB!U->~XT{zZdNHss+2+-0o>zG@-zf zrluq6>Cc|)%vDl76*ap*3Ak_{t!^4ygM^9;d-(|pvMipqBiG>sA9WQQ`I=Cc(Xw5Y zb=d{pvFvj7CjDn>x}2vK#g(yTqPnA{Dgu z%xb4WUYBoJ4ElwovK2;H8dPy~Rw8>OgplugAJCpk8{dcHzn!8Ra0yQMpDR(2E-pYh^twH7 zM-Ci-+H?xfa?3>?DNDh{?Fwn_J4D_V^`9Ou@gWW(`@)OuE}YibB%Xj-&z&(gZ8p6Q z^TQ8p>_kL{o6@&etMwMCQxk%b>4K{*F=rQRs@maFW&!~ZaQmM}^!*ar%;tJ;8!sJ+ z8yPnAQ)o0;)8QXWU9Ip~@I~CItBuFZG%0(!8B3+qA|QLAZUKn(S~1G( zsVNrF)?I0g&X|(J8i*iZIU8x`%n&H!M}`G=bEeW;3%|jh9^p`eO;_H1$@YU{nNCKyS4!AQnAQV9jvzDRmB8?0x zL)axjx6n;R=fv{4@J0py!b^npW#LDBa>B+^>uv(Ee4Z%-{-J}!I?A)w-ecv}r(?Fo z1&no=FlW)ma=_BD473W*C!~_A4_?(|xg;OaM_3Hl*IS$_U|g`NrNx`@KunvPI9Ces zP#cl-Sx~pB0dmrboZh=832Mlp?2O>cf6p5Lnnn)0qOGzlnCCzf7}(xL z?${*B^FYE}gefFu^DX_GUbj-kqG@AY=(s6U+=04NPm)@4!N<}pB=6(kd#bSSmniU! zU3hH|7`n2!aX)42S1DphOr({#z09SdU~i1?*)E^8q{Hk6c#x3L51j7~_`hKt#R$HG z(BN)fCkgwQGQS8x&LH+O5w1T&o@UP$&Ga_4ZIpi7gQ8Y!to)fMq!NG}Z5jz73DDAg zs^T_BZUP5r96F&kdr?>cewa2lCtQ!%c!HyKSuH}H+kU*S2_Nl-cf@h_?(B4yw&N1g z91v|dH&ac?aV#x!Lh%3bTVrH;97*9r7#DMCjnPQ(NJUr}2niyiEbQd-Ju>gbgzbKh!t&5qhw7UmhVBtitD*DW ze=Wxo^#CD%psV2@(AOGqVRl8%V!mc+A`nCl3lrt-1(sy@aQX(GulWe;$+SNdJ7Dyt z<*cS4mL;D*%xF3(i$>N@h%j!m9f>@H;Nx&S9|Q4UvBU!+P5h`N-j$Z%PzW{qa(*cL zen=uN2$&0%dL%#pTyLl|x{XVjM|S`>s12>_*+Woq!)Qm8FdbzD;96L(W!#1d{%rno zyFW9ZNOYDJ+5_4%{R+yKEy2*-C3ZQyFJf^{B-{j0NUj6^TzCE-vJZbYUJ3`S{3m6m z|6MDL2phT6y?rEswjO~EVU`{|(woC9steDe<^Ck5GA!9XqV8oHXqOhrR>gQIC)xcx zOH;e!!~`zKji%b*SeC}^Ab<5|qTpK1SYaZyt6H~xKTSEg<{hO${ferZ2>Q?{hcmIG+K)+rB7#7U`J`zawJtQth^z)z$_hsCK-|0$& zjJ8)>;9q4;6W*_YWLQv|eD05qb`KzMuP3+{YX$;{hshV0UAxm1sWf)!y|L777C1CZ z029w{$$Oqg>Hjd&|I?77@}Q-X=#@Dgf02Jv zemSnu28K(cf#VNFIwvpPKqUTka$+#>nJI`3wV84)++_MUlHjngAZcrjX6wz?(kH7X zdyl5r&O(VVA45BRAFuNOc+SwxAz#VVOLZMbKiydcI*08}BL)dsvgKeLWo*%7lihyI zA$H|5a8>be?^|u)a#ChW1|DKWI}iY@h#Yu3^FWjRVN8~v=>Jk=2gJp!$-Ezh>GkT! zpzLYEVPQyFeM;48B%Heh<+J!3VWJ_y5#q*yzK`N>rssxW4-d=PZIhvx@7>)wH#M@{ zqQcH>mZVOQNg7m{0fg`iCh!yLPxgmn*T47S*FXBVdCzO0LWu8EDEw z;eGwL>;AU}^Oqs<3!-Lie*N`i~-cs2Aei0l1mYN&hL9 z{&(LKM${YdFoQ9Ye_k|i88BwhLvN4pKi_~DJMdOgJadA7VbR=yt>`Bw_{%&0J0Jg_ zuk&}K0K2xSdM)LmY&W9h!7_xA$a z|F-I+c)(jxBUmDZ|LJS-gYm*lT5qEvp#hR8|8NgPo6vdEjY4FgXhy@qC~K(gf8nNy z!~io#BaNaC_@}FTLu^TI1l%+>IbZ6#H(7iAy;ZV-B{Le?uAsKzprD|%b(5hI`LLs9 z4g5%(vJw6JPyY2+Xj))>d`DvQ|Jh6U(}49sGqDH#3zp|A2{_-zmEq5SuqD9QkWB!O z>cz%)`WI|u$gPI+PYwkr(kBD9ZzD2*|1a!jBVf=lv@!`I|7;^RUjZxqe@pxS zmiGTyZPfoS1A^}lq94PvU9>T~(frlKfU{ROYnD>~UAzG$K~(2YQ1kJz%46_77jes< zmE&HMx+s$(e*j`Dn0GJr-v_~LvJ2TIu6)JuZqx);Kl`G~#=J={bks&{n92PUyA3jDd1+pEN1^|rZjEL*K5PR4*V=#sBA|{=XCrZcK)uS6m)* zzjZnLyG4!?gRuN2t9@lMe0X`lC4H9264>A>WoOx1VTdmtPnM>m)O^#p8M>=4t{=Qg>1vn09A>i*ZFZ{2u+uBvB?9pQm}2BTuWs5Nq)| zby~eSh^SWURF~Fn-M><9%oU-fHSy_cJ$tPBc~+n%%+6A=Hh`Hz{s*kl(6_`2ZIrb4 zJ%g4V^D+(j#ET2-BDvh=qCG$|)(DW#l-rM|if6WTZ(uf?m4(HmB?XGt3BVz7q(3~> z=xT?~BSSd?Z)vw`fFS;AcNjPdSuX*_B;ZseZ9I`-K77$sqoH3UPnK`HD2#wBBR_slY!Tnb3D=96KT-;TDk|ZUzKU2BDi}0=1cP8 z2|`g!M;Ik)e=4w?!v{t>lFobFjQQWahTK+V6-ioK875yE8PvPhD&F8?IJA;VmHbfP z+2|u$-Jjogk|oASm4+1^S@fuVz7!l2_88S6ZOiAk=I^ZbuabK0Y2LM~7AiDWtMMV* zC^nDbP`=}XPGZh9i{cvc;G0T9mu5}Y0{g8MXq_0a^LH_ZQznv?Ea_C`i0LwZU<9O6 zDN+435+U{KcIQ5ZWl5z-K}YEM&%Pxb1WcuGmL9>6K~a#ZdTx;L7`C}c5||%b=F#w-9T;3b+m2Sc)0#fGnCHNfRoJn z!~zP#W_RV*GHPvEU-BUt%e&XP$llKSn) zLmylHs5pA()o6V%@V?zFjP*iF++!7brd83y2FEgOz;Ay{^!_$x`G^L*sZg6MZ~`yU z_h=Q&hrt;1>XCOD7eUZwth;!q&|sm+Gb>~;w@Fj2&f{$_N45KnGX5%#*+|N>vIAa~ zU9MgIIgoN;-OB-1DFNy1kn&KzfF*-)Mdl>d&m=;;kDH7%6ek^&Z}sYUl{DWM>wY~+ zB$GN;kM#Da+<%}WDE|87U<7K64BOm2nk%WcSaIaA-tY!geoG9;Qs&HA^ca6F>TYvf50PiO(i}%{nGKU?hQ(G^nnna75dy82 z1~GsmHw-FjhJL3mi->e``ztiE+J9Hm`uD>d{|R&}uT$6v;_o@Xok(&%>m`f>iH|IK zwZ+bnFI5&*S)g$i0;UYcT|3Og1S4FDqO=Cn#o7v^Eib;2#b;N^G2hRmnThlk?8X(G z7GYEUSBuH5#sLg#M4HR&t9)(&)G;g`UtO}7g&2QL?bFWny0mKVs~OaGy|wLm5;4^` z2lSY!zaV0R3TqfTZ;Dq%-qvb{5&ib$lMFt6nR1VL&uL-tMB4Nve_0ccr<-_yw_QyQ zLL>)(07q9F&Y$nO4?)4~~ld7`2rIoF0U@ zQ!Vp18DmQgVnUio*!VibbsU36pUb}3xKTOP{Tj+ICbSu`CZ2~S*)#P^OO-G6I8tjC z)2qMyOu}0>|Cp4`$9z?aJ9;g9G%&!jsN6m`)0If23WxCvXssv~__H1M<<5qihFfJ< zzyLm_{gKYaVcfI{$2)p2bgpA)^i=Y6i-1~7CndhvWFAG^@_ER#$3I;h^G-8Ua-fMu zaRi^UHdb+X0}!c-F4xjQaRxyUbJ*?00c?=;Y7?1!boiY1whRDGz(_*bkp+{yNEj9s zfO1WoFUth@kN*c@ZxvKm8*Bk41a}F+-Q9v8Jb~cuE(Zx5+}$B~aCdhJ?hqijyL)hV zo1J@WY96NQzg0Z(0^7b`-Afw(NC_mGh(ZkN;#!KpyZX5}u&NPw!=RpfxR<%7WB^jP z)uY?igmw8pDx}{Rsu)2hzLe@q8slFgU*+^c#`83-!TJOp_edT@!9?(T)fbfTV$KIc zU<+<9-|)%)A%1BTGKulb&t-Vi`AIr>b()e&S^^#$4^Vy=AH+Y|TplF`HTdm}*^{59%#n&3A>Vp3@}%X==fRENcs@gb5@eO$=vqh(Ip zvwgI0Bv-NY)!wKK?q^2%%;$oWf&ix?nY7!olOMn~Ng}gYP3xs!H3ou&@NLe(ewO($ z8!qZ|A08I>6-rh|;;8>F7ERCw-yW=AtXdUt^%ym)ErWPaF#KGlJv6WFKsC#`=5;a|FA<-auC*kDPi?qiw2F!I0Fu|Jt1xJLT5ac!hZ~(C( zxC@Y9Wu5nm8^7_wkT5w8Bk|hfwZ9F_$Q1B${8OL1*mH8?LA1tnE8ZB?UWB%+9cCJB zp;C?IWVmukvSYBrwomQxurCXUe|H*KO-BaoH@ZZkXJ21E&gOGeN@8yXZQ3TKQJB~E z?*;)Rt7_UcIL0oFwQAI>V2qp>UN!yqKQ2OMd+C`! zZ{I+;e!@Ab-1EbsXlH0Pd5vVOjd#kdUOieDEiD-3Ywd1hBS|ReJBx?*!r32X$}*eY z(Tl61cI>$FMiQaZMcmz^{GOg3O65Ws=R|tdT+xh0f;Pr{*)%o#oj<@F^(zqvsLfZP z5m*oBfywy=ztk!N2ZdXYnUp*3zlUkQG*Cfxdv)9-&aUg}%^!)T7y`z8w&mFmS3rsB z&5mPQJ5?l5fS~@fc;ZJoC3w+_dcdwTPCPmI$3`*})Lij(vDqQ1JzWE7&TY~*PD9;y zfa*Wt>NjU-_Iyd22ln01H-h;&!>C`08^;aze|X*6yB3<~`L<6&a)kH(g7^uaTEN?- z1bzTLFbMFgR6y2PEU$y=-eL3qob2035M25;jggVSPpku=lV zUlT_Z7vz@h>^s{DOM~iAqqD2uf&4{PqYdI)?RV*0lYxr6I9#K-(8%)W4r~FP->(GT z_;_SIj#SY3wOx|KelDnx)h3FYPNO>8^SqnZX3&%$c<~9cLjTXntRl3%=^uJX*=KGB z^(x&260Q*kk-EzbYF-C6DL)^d!507LHE4@bsaeiJ*5Y!Wrb+F&Y>1E@vwLPb$dK1x z&D!YW^~;^mLI`9Hw3KXWgKS`Uw$|=k3Ge}uW9gYG*N3yyu0snc0*vYWIM~!I5>dy* zN?)gnrwGbtwfOS^uk{(OyCWwN5@l-zGzbOtp$EMFe6GvH zhmU=Q&x>{Yz}|T6QD&Fb*>8G2FREFsW+TZWr=4$lNg%Va^x0;Jb1LLK-fc5zUv~;% z`>9x$06UqSTm~N%92&8sq)VlS!w#vV_GoG&ZycpqF!JSTYi~Y40@a$06LSbfOT!Kz z{(BB^=*<5;bfy&ad*%y~0Xh<$*C~B&`@j}w-WjYyiwpjItIFJ124k*ffwo-7;@fJ^ zw?7JW8D*io&r7|_|6rqQ`4A=N-{Wu|qbaS#c4cwy6EfCE4gcLqS$&LrkrvVW(wm2P;saNW7aazrv z@*XVTp_Hgqly+@EAs`LYCeW|a0}vy&K>96ltzDmEIpZx77lWt;IXDea%`vH#sr~%K zlse4P`D`A+HD9Rx>FA>@u)30% z*XOnEm*riqd@srvL%lBMKhp2Nen=6}%{8vMy0et=VRYU3Bpq=)-py& zhU1tOh(0nfeLDZX-vK^nikN=+&ofa3h?+G*)5&2hC=UH5?1&9;5L2*pEPNG@#5Ziy zTKeUtb?&k^g7<@mi0t7~f?&iJ*>$vO_?JbeRGFH5agvN|+)M+6pgW5SIO0@nGP!5& z*(F+>PmCZ@7f%oSal4hRr=Q7Yf%`#;MIGTZh=qYc1}qBtd2__wWOesTG@3wOr77}1 z?}aaPC6;eUUkk-@!Scw@skY2E_Ww5vU@xh|eotuz#I^SBM9@ir_-)fErPeeUvf-!r zn?0iI@6~SVx-9XI?6*aC&uGx=%hBa}_o%;{JL$tr?_lZjCda_;^qaTjANsx{4WRfc zYc+VP03D{8M{QtGP%|z>twM{+rejhaa7SWnYcw@fXx0CuQ|<`+2{^!vly65Q2>UP=n0d4U4!Kc~kt|69OB8rgB%e`$^ZfltXJY@169tk(- zKQEZH37V0pyhv$NF(w_Xxh(lVy{15$YG&GP6hd6^gOyxHbo>kc*zweCag0ulfW(NM z@@MTPg!bSA>$$R|(XqIv-65wuNvmNb(^q7RDanVGz5+zRLxyI}g;WoE+gOw5hwIqL%7tomjscvkS_e)(079D?C|ND_{6jIn8iso;y z;6hRSX~6Or)n^?-GR50x){XJGtK#IrR0jel46qrMiK@A)I_t@y)$4J@$Oo4tdvF-gIXc#EZe(3+` zvo8jk|2e1oU#9AJqVVCuY1i|A!yHQ6JPg;X@n|a9(i!_p&z(r;@1QJF3|ua&e3Ris zRc76mkNKDaIC1}8r+E+!Rc8f2!muZF0F2FL8OT!Rzla3Mbl-x28ak;24CVzJ`5Fh`{5(ghqgt zAq5Y`E7h9NNhZ*%c0I9DAW*`-?^wqS;ER@o`XS*v?zvU7|MTAyAf?0llgQg?GOR>O zr~cE4;@`bAk??g`p{$cmq>@$xYy{MTmR=`Is=#`e_;emSQ9$m^1YGlN%A2^f%un(l zWMXzvAk2sqXDllTNPiuiDhL`lng+;K3g;`@ainFDT_%Iyt{rV;Lkcly5u4j!cFtzY0cgGt_83 ze2V2|Od72HK8?(4_r0p>ScbySL?l}>BdI`f^tQ0_>Met|bBqLY%DqS`Me9(_#+byo zTL^3Su%6-8-3sSkr#}(*3P84$AOEqHVU96TaRMIBZiS-`eo2Lq(~+gVuP2QM>^7&z zU3b#`yf*FiwQNfpAE!##8v$tu)^A(oY6ZimC99RD%-}Q=SF}}UZCSVKuPPyDt!Euk zjhls@L1F#o#;1Lbig)BF+&Rr`8@gug1XViC>E$TgF5K3@9EdbQz(dYr>RRu?bL#hm zFOpqJw|Aka&MMGV0y?UNaRj+rpz95-+YCNyBzSe+M2Pi8dM|jz%+rKv0yWFN9$(rIM}{vT0;V}i5H+J9rE;Dh%WRCWq7Y#28il+SAUA_t~7TMbPZyR zkLmL704On*S{7gV1<)tb3``qj1boQ`0^619_J|696$~f-c^2A-EirlPJ6@}oX4Y#X zwU{pCNNK#(yGD!TH91OTV*ZGE*daM$*0&qj9LorQ{*uVZjKy#eBwSXMnF#gJD|-lN zcK+O+EVu3Kn1;X0atnv{5fjP&{s5;NCYwebfG?Fgbm=72VuiMc7(Y^AT>^PEh)5B% ziP33x=S>bV(4@3gMsIR_XmhWI{1kO#NWBuU_mub+$;Az$lKDRq6&)IYlwj`!d?`=g z#N{ty+^&@}QXy`N8h!CVy~E$1sD_7<5|(W5_{f8=C-uvw z4pnCGgZm@&z0SI32vUV7jrt0#+hO+z(JU9b0za<+W8a~b@bhHf9^?Lq1Mbh3nL4)c z&rfIUcqQVushrk0j4XQ3F1Cob%2Gyx4Bn;vJCxsi&l)LR6*UTc5mZW)WPufj#+TzM z{L+EJ1f9qCBTrv{Bim7;XBMUJ3~Npuw_CnRH5UkD*F{WxyY}FgELBfde`A^#x8EA!7$$smR*v!E)16^ZHJ->S+ZY!E)|@ zSP9Y^1cS`<`>}+$h5fE=8pij(^(D-Q)2Q0OJyW}r{*u6j8BCdIQpQ~WJ2M{VX?f=+ z4j@-|LoAeHkLCTvO1TQMgQ>h(>0vy$Mbla}r!>4CukrI;= ztBH%X#(?AY&JYUF+nGTP$ekwY?{#eR{?z{8LbxSEN)HcCciE4U%n&v)$-h3hDz#e1 zCvq>6-1dlduh$g%|8YQm1j)ifA4~G3QcU-ds}9pS(wrG%ZkBU<@G0W)_7V{i(xX6( z#+?u*8o4v>kZ)vkJGWBNA&0h%N&jD!F_QHq=B^P>e0Jt>*ozoR=N03N549Jm(kUp- zm&?#%)_0EFOyjgvTg~iGC+#6K$i&sh{FEpObW=99=>i_q{VTk{2a+(7QkQ&kwUJUE0Mo$>(F`Ny5XGlC6#~pISC2J*y3Z^ z!BYPQ|J`b9WefjR%dF8BD&8$GG1AO@` zXFj;SRhY(Uj@A83fz&%3Xh0DBlvv-}6zP6@EK9{qvwfg5Gj90t)*#rKG) zllHB$%%%Y(oQ|*2Kj&B0fwUv|`!(Brznki6*1@u~*p=q1KX_h3#B(kPnFOxW_gLwc zQG}CsCpE?r#>ZPnIz|pv!CRU?6g620jD`tiri;c6q*^_9Ye^YRN&UA?#xr}z+z)34 zao2_TCx`v7Jc8ZI(laYvtK#W(#Uza+6b&eI>Mp~A>o5@)0 zV&FFc&-)nFuUFv>@P|-8WYfBiH}1#X1jnA<&40>)McQE@wYcUvny=to|29y`9G-l~ z2uzUoi2QD+0meh;lrCxHeYt_0P+RB4*pE;i$eyKL!{)@^a4KgS-2ot!q>ipz5MJXQ zd)63BWNHP@v>~ggQH~%Nf-wOgKBLy>O^`SHB(C*O$X}FHa%%{J3I%^T)JM`jHWxfYR+GVDo*l0x?@Tw zGTK{=w`QqlA5n$RB#sy=j#GeiH^}O|j|eSnmmLb>1Etd%9j&ta`uNrdLqF8o_EB2Q zWhX5*iVpTudoFQul2gF|m@Lv{2z@oU+4i8kfvinp`CAHm0)W7T?M;{{OJ-=D0jSZ< z`xtwDz%I>)LI&4OCO^AGuid@Wy@ z_3Tj|P7RZw7eAJESQlreU0ZNSj#&j!StdT)AOB|N_4I6Q5Xd`QbhM}+Eq5c`XAvI? z3OCc?DU{2Q>zR_MM`G4*&-Y5$Wb|gD5r)3gk18+4 znR>cS7koQk`4I{tpTE{;?E~^aw{!!V-JTI1GtS5Ab|ThVlUO7ggDOrky*cuyZ;Qs} zVVWIx{nG_-G}il+HCF(kjqMe1WbaWo-ztP^`@<5&FS1JU6zF&QDLuE??T>Q14-O>^ zXAH6>X1Ntsd~V+tta}-z%NkbKmvtUgF0sdUyBd8pUDo$`p%V*1{!Fw@lj*8-YBi&g zZC(wHI0|T#|ETNBaS^#$dg%D9yO~u3!@iN@(=(lH*Wx0q1#X))(J-87c5B|~R`4+O z!|px_xZ7VymoI1xw3axj0q~sx2HrW0^9j^yYj5#qE_`IChpKOyX`Zj57eI&2Pp96| zrl??1)idUE`P=ScKMTz6{Vc(TZ0=mh!zesxH!g5D>~$x!kvk)-s9vS_6Ch9jj0<^H z&0ANDPi490CV&>U4CD5D+44qpSOCT)5$J8DXTLWtKIL}*Xf^=6&Z4&R8T>en{hqzS zE`$HVM0T~1ZjRRJ?(0mZ^5so{m;sG4Vjt-QdM0_n11)(79s$gWPw{?|{=EwP@4e>I zB8Q6=4}A_gwelv&U(tdIymeq*Zg$6T5*)Xu7?9&s@HIR{r}9J856kyo{{ZO}rhNMg zd$OW#UOBb^j4W9bLMw@-{!VV8jMfhOq`Jv{(^>_dD;H{09R;`6Wf}_+Q%o1VSs^oI zw6-w-u_XcBkp@Gfd>uY z{`zH`DynuppXs%#8|CPMjf0}0t>;W8?G_EOm=17+WmU(V_E`oZb8D4;r{|aq> z1$3KOmi20Xro-6MKR++tRd=y(51lFC!ONNr8GTx?kP*>z)l;w3UBEfS5NvaUQoF+EDdq8zihh6t`#w&Qz;FZ8twx#y!MKdkCC zenR}jNXeun$OtSLnBr21CmWRFx7$kgmiLJVB7?~`p0K2@_s|3>@76pz1vK98>MHi` zIcL=EZbu8ojHYo*0vHE8v4OFtVD8bD0|6C5Uyj-B4P0)J_0FPe{;@i}(Q?VUV_n-u zxlSjUX<4(E#;A+FAz7Zc-##SMjZaEgd$W-KL{)1s-+%*m5=N_NIXFh@X_} zo*ZAPeb@#W;T}m~HIZ?7es>IX&Iyivge1X|yV|TNn%9g*6UKnm#1*-#ZR00^A}GD3NwDn z*70fBb*0n1N3FvF1qwbs`VgaV<8he8EhT76R?t^a#?7tMDP&izeHQc9W(5qD;k=|Z zGLw&&J1=Lcy3D2IPbX}gFtFr4N*!M)ELJ@u+V$Vi&d$x7=(2-T3!PddyW6mJkOdS* zNQ9at63ZX8_TD(i{)V~x+(@|7KDOj|T3_zcQ=wS?iW>r-;{0`F^vf|h%A~q{A@QQz zI#w)EuZa9y`4TIcS!0_&qI>x>VfHz(tsoJ!Y?Q9qe|6iP6y1{FTD6gRIPIOY7;!Y` z;7WJLXs=!&r_|}LUFUT=6%Fp!S3HTr#jCQRt;|6`QnR7h4daZMG~+AT#4uFQExi-Z zh9$Kb=yt{p<^#PZm`qQE$3Q%i25Ergg~XSakSnjvNft_%sN%cF@;;J3Bc1D4jcJl+ z=f9I;h14zTKpul3mjgY;`;6HcDgUE?uEhE#iOCJ;7r^&@oz9SNij5400-JTnzS`L| z^>h1ppLu}0@Xz^d5ehuc!w+=Y4Lbg+D0y3t?E(tG;P+tCJRq#AYvLtgKHsME{q5g& zVfxVEjqL8;(T5fSNVN}Gl^g|^b;dE~IYC`%pVr;xI%Mi^WxwK(WymD#lj(4#*s0ns zV7w%;@G|Dge@-}~BO1bv4~eRBFey#IiTsM24@8R4$y*XfY$1J#IhoUD7>voGFv3M* zO@+(QrFB`G^&pc@Ecg3}R|_hpIn^w(8zhvGhq?*uIbKyXhR$mTHe-IT2j;|zQh=Oh z61W=sob)d9(+)4VZ_E37)e^h|`^imuJf=RJ_We9UOt|w*_W_Q2O4xl>lOE<>_$Ne)j$fw8c+C z@26Ou)qs*NPGB=oy1pUj_7)I5i|!?loQHBdm?=;Mn%?8RT1Ckx3Uv8H>m?*``DdG1 zoFE<;Uwxl;?!GHiJK7wY-_%vk4nvxKeL zN|mZxe>vGt#P5KPgG#u#qoidTV&*3;3RT%Py=TE0rU96?w+FnR;t2(s8N`_`_n9eH zGc&C}-kgdPm;}>&i42SWHr`M-Qswd9vT-cd0Y@%v)Izxk$CU_%e60D$oYm`Uo`1Xh zL*mqd&$`s25sFR(7cI#dyldo&dS?;n?oSaLvYg)xnV_5K?EKdZ(TkN8tw&XW#TmS#Q>YI}m)EYhXoG2Wfgbkd zb9LY`7M8y?jCrGDFAO`=XIb-p0)A-dFJ>nyPsysof(9&4TC~~Y1>j$P7yIk=>rX>t zpZ|5F=TfBg^B<{K6rjUCG3?n3(#WUVYNFjB#xr`Y{k0Tz`|`aQ+jZXHqj^+1@2(nA zj^5uEOu)`<;#M$VId##81BEY1l;uwGWn#jRLiZ!{d8KBnX+1DB9HA|zFJ&LS?CCbw zr4?y$@ff61i74XhT5VA-s#Gdf!D}uhtNc{fW49l5V!C6~6g&j%1FEd}{gmbIU|_O7 zuP=Y05+4=MWEL-<$o_$hWTT+YsIQZn5=xxJ=reau;?8t6M!TvVpqvB1``-(LdG1ei zN-DvqL>BWH8ROtLMotRX@l4)4sq1HPUI?Bev09(vC!&X^jwr`#8hFhaaehBsi0A#e zNUsOLK2irN+$?`z*wkT-Z8R=oHvLl9$-X+>2w5gyFQI{jmSQT>SgwKOg<#aH=>=B0 zZjUy;%whEhjJa2=yA@T{TbBE5qA29`pWJ!_uB4gCtGA(Glq1HA)dY*A+-p^F1C`YHo%lY5 zm3)ii!M~_F`==AdejM6>HP3BGJC6IqbyR>7X0WRChHjmT00(*x;y{l_ehYnqEz0H~ ztJOU%2m2?o*e!+&L*fWCs)cqe;j&uzwl^AypK(-ydahKW z*B+cfSnQJ69uNXkFDpf$TAg=1TlN;mS*DH`fZ0qP9o)UBtp z&fH8x&O{M6E#)jjPa%FMcRJdBVDsY~i>O!q*~FlZm?y=B_fjpmjy_&_m<=Mv0~6dh zmZ8rzF4VC7$oOp8G3U}5tft)S`O`>Adl{yw-yE&Ir2i6!A4Egb_G=b>%Ij>CY;tZ~R~$wTJGix%PdOjdFmuAR!rLqjM)jJv-rnpwcdqS$-kU-%cb(tz zh&Fpa|MBi_KaSeH+}LwjO!^bcl#Bh0Ftyq8yYVRi#~PDdEllR!vVX$dCOA>@BQ2-w z=Y_sX3Hf8)*zqj#An(LFsktL|L&Tuy+Rc3iNPdByC!r2pvF`ob8Bem5`!+BA&Agc+hTykEIX_Qa1)i|B?ng*_9t1eY~$=F z^#|F%zef4`7F!8``6T<9_hTs_uQHVbQ`2Ges6tK`DF5a*%vgF z-p8zem-o41S@&!?zJI}0+K(Peo=Sf!JsA*rRq2vzq>0z*YTR!9tS2lSB1v!Qpox`%T(#_I`?+ledo zN!(P7SQ%zL_bZZYy2qV8hTI7IQkTY6RPbLvqh30Nt!VEz{(hz{^Fk1v5=ptbkT@Hz>XdUB zL_|viNc<&Y()#bSoZ{qnQB}io#A*f~f0ICq{|X@vvwwSieX?n%4_pavKB}ZPjhlDx zxGW`=L4yukJokqIXW?fXF~CoP@gV4!6>rNnczNk{>HlIf0>Am!VqV^3$q%LTa%>Yy zq2{S&0B3-K*f-X@2lZ@PKQi?G;99Nmr&(bhNUBYMVs)jB0}A)v=Ot1ZgdR3NHsYJvMO*AC{bA7Zd5eX_gF4wr<3^|Lq6c7uJ=y#oNl2m?h+=5O5B@evc+yqKJ zDvA%M(QkCD(#aHzGl**xxhMM0LDBLM5Cs1LwHcfMb0*^IuVskPXtQ1#JUqXBR*(+| zug3pwNO|Qdaif*T@sBU=IBQ!<@ZWcUKq>E|zS^t7i&m!K@XW@`S}{hy!B&Zt>qp~X zd~10zRMM}Bo4v3D=X$B22M#>JX912HHyDc7Ljqg)CdIt*^RIP-x(^yiO-Yt=kU(NYLHyy61D?Pn(kH=WX@Q}$%4CRWD zYn))mJ1#iP?PX%E>J53U+fU%l7e8lwlUV$)m4_7Q7Z$dT$+?<3Am^l~#|VtN+m zV=Dqk6p;XVyZenTf&_vZmJnW*_;_RFJO!-dZ}q67XG4b1&;{UUn}u_^tY89=_IY`o z$=t|##n&h9crUakQV|{D&(MG32ji~OI63tKdO)hfc+@Dt_(fLBbt$xd@VGfM7!) z#`|Yox&m|WyWP)Aj9R>!g)h9{nDv|g+Ao}gc6U-fk(4FLcweEKuT?j?r`J0VZri}D znVrm-$1yB3Q6F{m9)WvYARzbP2L_}ZEbfzM=^;Jt!XDb~VcP%^9aX|i-c01Q*Qi0q ze;BhGKL6LJdyj2Q-^*zwoo&Xqxu)Yh9+0g%O~GQ*x#^MGw5B`wEPHWpthmtrH{ zc&GxaI@8e;F=4zD$PQP$zT8jB!@kA>{NFVExfsl+nVqYZoEgTsMYw5V| z1OnqWJkj03?+dmFt_2!)_9?=nE!a7o z0@^GR%~JNXhy=-#GUBFQGVAL$t~dc9l6dY%u-N&CCP17 zg?M38D7dY+N=VpUj3krPw4GB0KYR=oL1|=?=`pXQuOI>)J(*B zVTzkKs2vMEb?5*gxZ3Siv=CHe3c4L`ddr+L5D41|V+_T!PnYvg*74H(QrYDP=I#(mhz72evMROFyl0LWY00IN& zzNh;Hbc4p=qIaV%z^GNYaTNlxtD-!r#?G4fv#E407ht6tO(+lacZR+_tPmVw3;6CvG(C<}fAq{m zay$!t@0%cryk3B`fw8+aJeEcl;YV8Q60d9wS&8KO*4wzx!MRqhc*Y5jysJAKFxk%Z z6ZeE{h9;+TlE<`~s%DH#W85=55iLc*f5ZO)8}JVh_L>KL{xukkLS(+Qpn(=Vl8O!S z^uxdTW8CRazexiPq~>JY3chSEpOC9V z>~App>Yec&N)w{F7M6jJ?>*$l5I7Iyrbvh^ek!#?N=Theeh%@t&g_QDgWq`$g2#JX z<*0qL9pP<^(Yu-(08R&ZWKh=gxhK#^PqFHc##^wYG|N|K>eBexC^Zs%f^>s~67Asi zU=oJcY>M2pY=b2OCgF0j)BT$@SlRfYiN)%0yf$PSk__`xn(w`~?QV+39OBTA#a8G0 z24Sw6{q`|I5~Su7o-aoXrq-l&-4`T0@+otwtn0E$A91O)Kf4cC;{MolLo|3xMhZYioj>Jz}YZ03|X}d|Sl$MKGO39Lgh( zLc-C15G_xF*l-IX-E4dkfNHe#%c4T{iEjz`WO4h}P9M1XC!jtE>lAFhEw-ZG(}&T3 zraY<;{3blk+PQzyhxw>LzlVW-Pv`H54)YN@o*ogNoRsM2TC2)I``sG7_?=dwct8``OZ(CqD-^13_yK_noQp*G;KxTz^a{pONk*xYOMg1k=?X^6rF{ z4zJ~8jBs{CFQ%qLxW|Wi{k1!eis}9@%B$%S%*$nm_rq>FCGqU5!OQ}=?pl0 zdtT*JZi}3TwI+kJg@9IcLPPDiIS!y>(N`=)Y`xscr;d3#zb=A_KhB{ysXYToAi-W9 ztnvIoG51V9e3ZFPctrT(NXkH*a6SEcZ)H(zT)Dy*SjFhQzZ4;pV+)*3tCd) z58l&m-MUMDZnn$F7H<5kaPRX9{14m;uCCc-Q-8^L!o}d+Pv|xqHLra<+)ZSvWI`H^ zL!XE#OL<;!-Z>{@jPG(PuIu{l&>vxO?bbRslk0}n$oyVpjgTMTwkntScgcm?)>Xvq zdwn0vChcC28i{chh^lWcOAZlSmw;Ji(*DPr?nn4DWcAt%T?S^2ziX@EWnS%rZw`Bo zUsIdu!_BC58bl26IDDB*Nrap$o>xYHw=I^|C>4~7lyV7$Y}g}v*;0|lz@g!pOH#Hj z4ODubaG~G4jAB90)mieW``2uuHyBI@y7bGWJZN3J&=O;8lR1*MtxuxDL8hg?5Q~|g zxd|&IGSSqJq+h^k%bm`ai6jDg(`_C_zc^<9kMO3jjDu{8h)_s65DSQE z0H{Nt{1H196w$pB86>96ZJK9^`Fh>A>e#zOEj!wy~{CLt4nYza~=yynV0MmB7(_q;Ns}P3f264EAL$YF<9W>FcOP7&9|>B9o!yy zQjI%tes)e|ZoW4;EJQht%q02kEd^NU?r5c;4H511ABQ6tCy=b>p+H3Y2`zu;} zwgSO!qu^?GWtUFHd@k<$pIrGW592*Wgwb8SFwnQC!?HZ?QC(h9NCd;MTdyou z?tcvR;jC1fr(7;m-gbLyR0S_%djE`0{V1h|k|pFb_D3$2^2blq@Gll|P@hg)34SCg@6DsKb)=i)Yc<>H7#AC!u14MTLZf3vnCh)o>)oy_BpuW^8pVr$BoWOq4b z%y4WDtU7`$zp^!W^uV&cTcK-E{JFTRp%ewi#K2tfCf}3#wu8J~1d}fXF#9*(lNqIx zP=6sWwObZxvttvzGYo7Z)I!{0DUM4V-qHJ%<#n?HEG zvFvYg*rFeZpTZRK_RRRDBj|qphkZRAkHMLAGFn4*4L-i*<;llbLyLS)Iht5^HTKKe z%#luil%4R!7Ks08Hy>%^JGgsug?TGAFlfaPiB?0lIS$AWFXOSGb-3I?h#qH;7aO5u zs;;za0Qp(UF@<(-T8knNZF;%y6(pptv49do7xTbRsPj_Py0DZ~@M273XQ}7JXb0Yb zcl=t7miz3vQQc7<#N#d`>yEI5Woi|yQ|Zc4haXB&__ zg{#T1P*GHuJb+|)bF#T&YCiu4mgZpyKc1Kie?i(srG!P-?~{_N%f0Q-xcZK@V!u1C zI9!@M+}31=$xwzyYkz|lW*j3tJM5UxMabVP<4q`Z7d^1R%uIl^8|!5WsoC{o4|sj#Nqmy zTACqics?3$cl)=LFc{Itq+G&;9Ms`-(q@C6N9$DEbye+UL)yHDIM6OZUgQ*#;>+h~ zQ~@5L-Z$2227hK+f5z%2m(ix=PhzVIAPsEg(dmq_ zmZ`NAVluTC-#5hLFx3%#W@a)KRoNd@LPv*&_S+!cSn6QmssFYJFDBgj`C{h%?|MJW zq!?I+Tb0hD6EnFiE_g(B@Wo^$)hC~KK?w$Pg^OX^BPq&yoI%DD{;t%d3aq`03F*98 z#lE(xuq0xng4v!x#AU&qUm9UkvHwR#jb!miV)@}DCUC7u+0y(NTIuz{G=UV`2r5^c zMT?M{G;PplvKYbkPE`yFv`Qn;kKTHNTAs^aSsBX#%i{}V$NQ*ix9eNU%963v%BvEd zKk5m6iP)kIzB;|Vdhw%$Kg-r7=X~ymi=b&9sJ#CLXpY2bn3B5tMy(VJ89uMW*=p`Z zx@ybK!}#~5dF+>$c#X(>@in?aenUP+{TBX!mvdE~s1PAm64*plj1^WAqot7J&Cl9+ zShVWqZ0P+o$8_^Njc7$X<^2RPiaAX+6VmR(hp!Dt!XveA!@q1k;Z?dm!zS8xf4TbX603m@?1S<1_BnED`y5U@`Z%yz{f!QI^ z*DiQ6hgHTPefQ|d?3Zmu1!(0rr-6 zrn|jRT?D(;YXgUS9`Q`*%4YO^_zOewxO_Pb9@J(>feF!- zO2PiEqfX8C8hSa*L(lWST#*?MWZg?6%!~c=9x0--Do)Mp>f|x8O>ZNyA!j6BEL+W6 z%%7s%gd~xm{C!C`5Z{wo>yTX`?)Hw`r_C|BHq;zxb{cv$MYo@a6XL_D**<1n7x?R( zZC5A_$ear=rY0NXG}S_PFz$2R(`m zI&W-vgA;sRkrd2>#YYx4@^DBx*FrVj;y-J?d%yX;bAY%!tyvk1i`}?~pjgqj(&20>hmb;VH;V)zEOPxOY#Wj+TQ?mF`81L&;C#=d{=}uRg za}fD$IkZ{a2&x7_c?)S`yhkuKVeZ-Kez|(B8TK6#qpt2xjNM*N05eZv-q?(4^LVP$ zk2;cZgdFbF$||v*$dOa=BkdBKehLUzBRq{fmib~1g+4C%+cNCXpY+bQJ}#}|@|oiv zOGi0a4WL2}SkqqkT2b4)1+MEbD;~iEJfxCS!o%V=XWYM4MLkK|>UydZ`Whl!SlSQ^f|kFAQTKXDD19jkjF8g3=RD=)`dJ(Y?+bu)s{UWy4ib-ydMNj zb=obja3S}c2h)2rved$C9dE^!+`sCQZgSNk3o+rz;kV*9;QXj&C7mB&?v&x8tEijC z5YgDy!wqjLEcfjwBa&8%PZ3*DJub42B=f{Y@7y+A4)@jNE*PHAFB8fPL zAlW7^1Id4OU=MR~>hPU(likYuBC5vX3Ou0EKWtx(YfsZ;H5mF=#vryt2?(Q`jwEZo zur6QmVZj4(m^$RJ(~h97iW~u<3mG;yD9d{8gmbVA^NjmVm}Qd6o?1Io(H+~m3*Y!G zrjzAX{{u1Sw%ep5NmHrxeqQ;yv?Y-Pk^56w(=Q|kgAa|4)guAq{Mg#*J3CD@dkgHO zLiOdEtwW(1Iaj$;n02lEPLE0g`}Jw8Wv{(_$1vJy2e)aP-S*D7rJ*m?&E0kc-=6BJn zq}6Kr?cal>(%w?eepEl+vNqzROv5XniV7q7yZXF5ShpYAAxxPa1e1Ug#olYstoZD> zG8rg+WRy0*us=97T=H_o2;#a8QqQnc{FCxaq~>lNUk=OE>sU=P8kZmkyR3;LM6Nui z6|GXS$CZv&lU)Duj!A}Q+=e@qouR;mtpt_aTgR)P}5;-QdabTLP+_a?=rK&O;gBP-=cTHtXHYncyTJqlkl5!_x-i$IC+ zKYRk5xViV7wl_myW9q^O1@8wi2phb9$Y%6=r>pehuTP|qNzkkO9(fgHsr>IdF59nL zkxs}%7E`brtF1>`hOvB+9xh6z=c8aYjuk1^UfZ=cUcv>p%2bGMxw##HnbE+8^E9@N z&_6yg@g*>6i}Zavxc=(V$c9_KB%Fzt7EjlnHJTA-=5NV1pL1n$fcHLm_U>dl0Mo&< zNQr6~-H2d=Fl}|qAowL|)m^DD#Ydwh_;Ll2Zr+mbbT*1;`R_!xFb=}nF$pmx>k5=b z5=E0x6p7GYjirUZ-FOZ=12?D=-_9j^%YELpP$prhtRt65L*Cp?_Y|*{70y~=qf)b7 z>F1(GNb6_Wl`bmT#oFDU70`3MimI5@GG9J)yv|h*{kAiJ>fY=P`TMsf&+%c3Dk{J^ zlj%y1uBSsRWDM4>w+f}oWYgbm=th2*epcn-?d9wPpZiWI`9NDKDIrp~y?8ja;7v;z zl}^9K5raCohyJbOhlU8KRme;Z%~_dy5m74KIVIQ$TB%u=Dro)s zFTsgwX59Kn$mvd9P$?Nsd^d%yO0QWY*#}L z`ZrOJ*2+nPW9oz#k&*H*zowSSD#%!FQM>=bMYRiVIH`AzGp)qRA4$jdGT%(Kp))H) zjE_uMdOZkJC^bnzPJ-~fsY-c^r#y#E@;E~ZwvUsKY8W6LIC(vdrysB`ikXtyy2&+- zglxisEK}g3ZQ?rS}dnE->xSDdV!O%Mnz`9%z6=+TRxk9^P&n=9^;8A7Jum zez6{ooHfGvy-o5;^Wy9z!gk-FNe%aRB+fiN|J45Kjw`uoH?ncXImbSK5r@ei^yEH# zHW!XJ*1CD^ASrj{h={a89wEO-n8NJpg+`a?M=~5{g0PQtQYdTQA%OL_1d&=cH655{ zNxVG5AisXNyG>_j2n7`H<0QG0ZAuNvX0GeV0SoY%9nvgn^Zi!dOoEt+&T0UkTHXGIkf8+YEDJrCU#00_m27Id@V}pS5^n&{exF5|g3Uh|!J9UpE63Aot+{pt)iqa2#(8hL zNHSiICo9&&NO#I*bmp`0HSDql?7L!SE>%0UKImPHZ}8Mjsq<i~y_3cZcM?b=F93 zg9}!#$FrR8<8CW{c7q*W9s+X*A@@$*=vDo`pFXj*AnfBxhAzT3W;sh~M2G0yaF(x6 zj-3SG>hR2m+?)%-mI=D1nRV;~E~C-y?56AUO|j_Kw1EO*BoD=R&<8;By9!7GL~${e zBIFabR0l*Ri=(JnPgS!4r5svBNT8rb1pxlpxd0!9K4JE!f!XQW|B?YW=#aO4(OAk^1FFPc!F<-@r&l`Z1dK)D=ORe z(}zC&47D8M5eqwU?EDXfV-=YMZ)KeE;<ts-C1t329tiqGw$-3Gpo2D5^rI7#jZ% zW8WB^*W2#d*iK{HZfskPZQHgRJB`)YX=B?>8r!y=+5Nxg%vv+^o;l}J)=ILUy|Z)U zy04$2g2V=q}OlB|t(TNQ$ES5|#vZ+IssPXC$y>y^gbn)boS&GhYLDWs7 z6N&vatfuk%r_E9_ayn*E+(Ke8=y+|gHmgyE#Yp0pOnLG0;wOG4w9Iqvqlq`O^^Jvv zw5qv+%m%tYlOa{k2D{D&pur*EFTln|^~`?UT{$X}bum0d>!w@Vpls|6Cx}>mW;k`) z8!en6mr0%x8%{x;ph6x&^K?4+;??Z1rBnRq{%|gZ0xu(_!s~i$qAIZdZNu-+hC@eG zGmZY;p-7$a5c_f*eB=(Exv-2E1${fQ$?IDOsfSC48v~<5B`3WbuRS3^gM!@@B#&K~ zl0fQbA4J^`SgoaSprlr=g~R{a&UR2=id4<_bJ6j%l|fymZAheg*>SSz1>g3e#o@eW zu61q5U`|}}Mm}dd9nl6PFC^s~Ko`E(P&IOUIl)63-I3Qr*XZ<#R4Nx833z}%54O>4 zsPNGMx7)anQyR>IuCR|ALfo)BztFygy4oO7HX4YQ@vMi`a4#V2Vmy`v8%nu*JmF^J z!RPB3IrQ3Ey^C>CQ5e^FEhe#bz=KmmD*A)zjvGE(I%puBvikg;W9TVz>bx+PUU_cO9`l0hDcr2A4oDXFsC>DasAvwko1R@^l52ACJo zzT+>r8S;_!do-MT;JWns`KU-FMr8<7IgSqF*@65a6U9P#&0iDqPC?z=jiLQldzDF> zot~~uxhK!v8)qvuWhiwSzFxr(_uAYQn(hp`a#PDNqI?=jz1s`#s?cQ;aa&vdGH6EC zBSNxo&0#*NLr~+}2=Z~3zK5d+YE4290r%Mqj`(2|nksDzhlLZABavJd)=&LKtxRie z(Is69Gz+T1hKWxGu!ghJ*hnAaEZL}hN=N*x~!MSVuHO-^Nt1EIw=?9iwpxXk72$9bDQ0z_w*KZVtUCotAf z#snRB{?iL!KD5bx1qg3~pu#n9jPme12cN2X*s$NOmQ1%>0eDkUo`K>98Q~Ablszxq zYcGC)v{L*tpxpnOS|=VR2D-x)uXDaT@D0=DK|XHF{6lUGgY!ZK_pscf_9iZCId9v< zPy#vgYMUZ|)yIF6Kal9x#0}<@iq<>K-!2KV7I;WA41G|7&qs^1dD0T4PeYt`>nXDt zqjlLRS*Y8W!kb&vs5&ITi@!#EWbgZzz)@bR@sEW^u%@BubYt+0&nMOkUO7TaClkwv zAz{v7irbA=cNqyWNW$h1NGY7%_sM0f7C?jFhWV~eX`W__mvz}^y=t^=RJ(!VlC)et z`&lI~;3N>II+T&yb?*`SO4ZfE`Qco*x;!@C=f zlC9<1xe@=+BzVvYz8tRm>Ed8rG^i1EvD}GFZi5lV!E{PDO{Ky{%~9M@gXQnMe3eqg z?n)l@y|dx)xW^KO+|u&R^2!}d-L?BV(=oMZ-OI>IK;c6ra98~dZ&YHXie}hG9Dh0Y zvf0_;eDF(az&GHf2R{b_4ufJRn5R7$b$)%HvY?kU- zr?Cu}TT@c@*ZV)17BH7)p7q4Kcr^v*y($oC>y5&Wk(oRVmM^|WbC0Ig>^gMd;F3^* zSc5xnUf_JOR@xf{Va2a%ovky*glY;=Gwo$TnhMKqbHkFmJzi57m}6z3LnUOl6i@Ph z3HHPJl5;#~ja=0KLoRTN7}+}p=L@2;xcR2n;qo0Vg^1B1UD_C{`4ra5y5EZ~=~-3; zp#Xo&O7$2iMFd8_Lb=wLc<_a%eR3U-?eweaqooGMVyT@+{zh-!-H96plJ)8C{z+#P zr6B|UrhGX@-RmYLF#s=H!oNHKV21*?vsRUSBY+g(sco?!R9>Zpy}1kpdt}6GSj5@o z-sllkf`PF?;1CmYP=HD>*0J{cuH)n)S81Sk_AMrY9CX&2%fTn5uhKvJ!m8!rP&ufL z9vZ#bvmRW_zj>LGW}j4TaJGy4_qPwd(sNP_*~0H4@S(L&>2CNs7M1f=vq?V6du;Pn zsGjvI#f+JZB{@~>ihajmFwE9EBj+OD4v%gEtZ6xn&(hd)Q8Fz)>OOS zt;s*X1}~kWR{d%#KqSMX``oKlu-tT>Qy4h!x3`$0V-{PnEiE`cSGL$UXGZz~01bn0 z;Pv^SZTrsTmg%>{Q+3+Hv_w1xmJorezrF4KhBjoY=Mrkcg}b5-toySD0V~Ek2bNxFOBf~=k=;v4JB!sz&uA@ym zS^GGeu^qgd?$hhdZ1?pY4d!{)6u=`?=%W24$I(J2?Ol#iA%|&Rm*No&R+_XTVD)Ny zpin-$lMOl!6VJkXG+9ch9B4o?l5cPJ#lzZUf9>=cATo^)eCBpJG_m1v-bbH;b&1|H zwz-YhXtW^C{sW805A+Iopp^3RV5x31YlC1Gl2dd22`Y?a5ATL+c`M>Vd4d-)o5M)I z5t$7gWxG4nC@HiYvL->v zJ=@&yqivei0o8gpl1T?hgEgfrR*5>bLXOXE4-}#1WKj5LogqeU+y-ZbT>gQ&;dhq% zn8T2#)v&pL=5W^eMwdh;hpmccnR2nA*u%=8*$wOZaI{fmp#&g#s@84GsrO@Lk&T2z zz)@~6qnG0%R@h!&xmUk58w5jM&kT8B}O z8NXz7*B@Yq7x{l6WDy0L7tVphwHFFmnO{zoy1TZq#erPu*$<@mmXFY-|Nc|+!SO0T zygjXac{ttIXr&sEi0it^n?j>IsFR%#Mve+iu^FUcSGIV)A2m`;54+4qz#?#=6Z1i` zjUQwD^F~K>mU)x&H1Y0aVP>8_Gx}H%{QihF04N>`=$3qZ|DZ%zBm33<>R~2i<>QIL zx0S5as2eXWM)zhJPGjuS3csuL1kF+!PKN$wkJPNNYUVUGpV!l-QspK0wE|>B)@KS4 zk29U1vrz+HnFx<%Q=H2BS+Kx*AwSQU#(hmN{^e~5j54i5`g|rU?&UFqo<=Qva%${+ zj|Tliv<7Dkq0NuAk~t6Be)>{fdPFoX#Y9#;KubCCFWz*NW1m;uM1ot(c{G><2~A&J_%l9EU&X zS^PafRj=H`t$AZz>c(A&Arq+0(=$eF`~ietsA6L&bNT0NoAzEI?1HL z^nE_JzkNLNEwqtD1B@VxLo2$N-KNIXjOJvTN-XR}Ij&tu09^h#WMysvS?3`z0;alh zmG?Vhx=!jG!$!6P<0A1s7Q1JIqwMG{xyny-hIg5?8p4J`m@<)nnrWeeyVC}vFfgp( zsdSp6uAcKhayk|pEu9H=?GaF22ng|*cEV-8K%>VO4!z0(W?`G31~8$|*#SGfG97Qj zFif+K&If^qR2oA!MRt`}I9ly|WXQUp4Ch*!#R*p9twa!z)uaaRAMKtuUjfggnEAX< zL8yaCn_y_LYcssVc&zuBT4N2zC`7n~Nk^PN$c8UDEf=Kg z^%|EJOZ_(&#kA2-tXxKei4s{^PB9_}Mxn&V@WS+%W|e%(j%GwN4fpx)HeN8jyObK% z{{9}x67c5wS<<4j{Mt1`-M@Mu}_ zCkr)oCnJI~P|i=K$vFb{h$*x~3kU)qtmY%q0`F|GYSlX8B?{Tfq7s?@3OPutqJ~O*yljZ{}f{dB0}~mwm4gg?V$$J265A#ut5s2Oe}xd za78n`w|P_AE;sjRa8QcJ;Yg8+$Et}!O-=>WKvCBtOkJ+n>;*f@adl$)`20bklQEmh z7%>i~*ry39GL%y6@)I$xm!cm;pQ-~wxo7Bq{g~*vp!|r&o+Ar(CGE5g4AqBBo>8H z;<)3dYHWOK3Gf-`nlV>^H4iv3M?@HZa&sFUP7qKe>p9a+7S z0D^i^CBeqwd-xD);NjirGn6c_TVit>{$9Cv$JY>qsE3lBANii&SpTWT`J=q4O`^=n zx=D_x|8t-=r{n~S{_iK5m&4(sfDxKuuqPH@DRrwk3z~swf=tvw86jPMJ>j%!g8ZF> zUo%f*P|##@t!$pqYOKpKXp#ZNxM78`P4%`HxhhN&0p9v&esCBB{UeQ!?OL(EgomJPKD~6>U^r} zb6u+1gQX{+sp<~qQ0hiNlWOn8OrS1~nSwJ4r!L8i{zB}I_QBD*c&{AanO`TO=Z;`l zQWAitlW`k;CDNwvR?MjhhO9v~O*$C}_&Q~7)WG9o_gmYgcCa~pmCUU^wsfR($U0i* z`77T@5ptCm99;M1_|!}{2hV4p@OLk?)7PNYSfXAV>{Am`L;gX~+=z(!WALfOuetNE zvbaqXm7fbMj$UVI9|UUg98;A9Vu*4Z`N7q}k;i@L`bXs&0%i~A8gMgLps0q&R|=G$ zfrVqX<*Rql32GG`bvKysYvnG0x!>L`_}=?336pE_=AiXMi|d=G`91f&P)++KFGS@iP=pY_-66?IL({$u3#Q&!F9M&v!tr89aKRK9U(wPJRSwD%WM=X z$jsz@FPr^&Uxv4-^SPWBtsE@+1#OD_&4$I@;Jtk*N>Z&K!M>YlEopV<#s4y|rVOxY zNRFtv@~W(DMD5PCLVWVM?E+tOIFXA0{_)O{)X(AyrUqFI} zY<>b9srGqHy7UU8n@wOzf*Dn%`g+xnh+t#L1hk>mGF8??;SP>y`7zTSf~-N6lXEv7 zGa#mFw)(ov#l+Z1SLS>{)T=}wkyKo*)LSBc7Q$HSf(*Z*kcKJM==r*)j*(Xv%Ii0l z5b(WVEs&r8i8_VE5HJsHo2xVSQ!a|VVXs`_BIpH=rRPNvR50jnE@${48j2(2h{%la zkXZ3$Alb%3k7s`mUg@!0pPVggEh4^GrmDotAOSu?Pq|7f4 zol8;8)1D3oj~Dr3UaG189Ih6F1UJ*N=;x%!6F&dVGW;EhHWYo{@zE1*W!92##S-Z8 z2{0Bi7kj7~eHMiR88p+NfBoq|;2+Y&%5RbV5NCDLWVfaQ4uQUf$q0!UG%@5DXucp6 z2ud#HupPAuF!VZK>(O5N^nRGNe?Jk$u@mjYUQ}qQaw?V-YFTNrr|pHtfN)qaAqSj? zlvBCR1nkkQX2ci#A1{fY+jVJwL4LRF7oA?Yb-Kt|s|+}oOMiRGTI&!~3!H)15Lq(C zsM=&Z5EI3DI55xs3116t1QF1%xz6MBNc7gd@CjOoYDbusQ@^yrzf14bD_kIeuCZNF z{B+BCHPC$dgW1-qnbs!1w8xjj^O`ZWI#w`X6KlMBG$4`;g!}e8yMHq->G@G0}XSU$a&ZYfVp)iTRIGS z`^y>(G&OIgJ~we_pZEiN1q2}iP74=^e^`CWy_<;-0v(a*Dd z?u>#mwE3w3ffnl}8kghycfVPUju&Q2W4^dtvwCld_(pndHr1jS1i6+fP%?x;Q!N8* zDB(fv9=^a4B{x6sfOwF)pIN!A2UEGOhoe_J5}&Ez#=0UB8>yY+kv$Myg zAD#B**S3a`72^>xOtpE%FQW7nt*!1^@Z_?&wM4$2fN)$OxfJ|U-ae9bV?Y_y9I@v~6>y`U-MO~tae+j5pV*F$4Ju&>0nn^vAr zV(YSpxx`|5U!UWpIxu!cfe~L9{H?z${No2Dqp^MdupULRAu$=rKR9VNbbA7wX8p%$ zB@@YsbUaa@)jMDXhO!i+UT!-+6Y{MQP+VL_?^g)vsEf`Azg?Bof$Lu*Q#rI_Z}xQY zuBP`idCibX9Z|gWcl9%DF=Po49%rn;4#8tnkv_nT9s;sdNMe-s0T#Q}=G`H+ubsR% z&{4@~r=6$k9p3Bb1O-m%OX-tSamo#ZUX5|qAflM)=1OwN8raqA2A=^YRj2`VUhj^E zBYy9Oz&VdWjED4J^QgNohh-O1NfhM$22vxo0-moL)Qe0q3;1P+W%4{tr0hywu}|@U z&7kU8LSH!FpoW88m*1sm0%ENg!Om!=XGIHAF(2zRciSb}mu_Q*b3LG_cocG)mW3ZQB;A+4O;XH%Z zrdeF@e;o#i~xM>4^BD<~D9ydKiTcH>ozfNB*24dtQu%YoN z3e+&_HE%k#<0@TP@Jxw`;)_U5I!ZnW$&%aZ^4TuiTU|>@o;a-|J-)GRo@;ICDevA1eX^@TK7eFaMD3RoU$Dzo+m)0|87YSK zGtkh=;%t(meiDhI&}k`_P6$mTlN3?610-i1o97cr2CJ+_yI895{U#L(ncmCfiz|h| zUZbr2&Fsj$oU>E zd{zpUZvezEc!&~#@=Q|{rj8v5xGn!K`x@K8SkQYVOkFUbssr1h%b1@Rwhb=OCbl)) zkj5O$)d-4-qd2;WsTZ`=?l2IbuYx%q#Y+$w2ezhhdGpLh?*kJGkCI|lDOu+Il%YlN!ncEj88T%lbdf>0T= zZGGdbzUjc81{I^JoVsifai|F!a1FdlTD$O-)#;f+taIiyX$RwTp(|LQcFXw|!3~M@ zd$|>R_gCr(y8;W1VqTumvO#5-hAMFiKwSD1crs$eSmc}fM#2GFYZmYs&d*J_8K{5$IZXA!=5bLb&!gafmfU;0*?8`}xoVX}*WGkvFx>|R4Ep+F2_;|%D!e8q4ja8LXP z$|yq)D0b10l}e*k?`~MvJuu)(VKxq!;~QNPLqBH6?Re;vr@>4i(ia5}R7VMw&`vje{_7K*@(0KUO;dg~A|eB&z{e|`@y+tjiatKIwCQFta1bFPQRrkE z)i9vP9}D#0r1`w=_e@dJ?z(L^)%EZ8IddFUGJsft)@YuCdQ=YFO*ba@^Y(IZBi6UO z1s{%L(|95=KEN;(il3d&X*cWY_>31nnJdg^es>B z1oH%Ao2ZOi10GO}IBi$I+}&|Ha7hDl4QO}pepRhz5e5W+P4*YX20Vw0)0vI25 zPWFsvIUS__a$krpqev71hz)3)G}c#Bk4ZQ7M<$h$ie*K&I13*P?tBhCP2sNe|7DjC zxBxjj?5E>hP{O@*5Xu2r&G~4Qaet1!mT)pGz`4bwrUJGi@}Fr`SSoD^_`D=p&EK!2 z4T+&hq1zFmPt7rZ0McaTx&(lNI-bh0@f#399Cp9I(TLBiwYjUbmjXMv5?~Tet=Ikt zN!O*2eafPjpfoH}U_3NwCH!d{34>Z|m5L8wix?6Z&sfN!1_^Q!#nZ}|jwTi3@cDVg z!J5>F!EBSOSFN|WhtAt&A|vwE+Vyhi22?Z#Lm>_C;#o(KabzJ|s5nETr6W;UlIV|S zlm$&6M@&u0LfAAeGay9Ll6at?h$`2s-tzvI4cR*wCnOYfxk52nn&~wWveH&vYrzL2WX2Yl{iak3K zl~?iTToC$Nr!6hLRwI#QrwKHu5_X`GCl1g$RmDRDVVE&vI3qBeXSZ*^3NzGfb3Skj z?;MFDLe7DHEE<&(b6P-}+3i8Iw)k_t5xgrC_OC-VF>t8Xm6Ya700kK@<#XC)I@@Sc zpQ!Y`+7>H1Omh+br->;z$on*Ggi^5)8$8h zw$zY`!|@((HCrk+T_DlKy9;E3|LsFt0_cRxo7W{6iMAR|2JqgH&!GXk+9;rkleeF% zmH{BI9{>$m>mCGTkeT+QX{4+C0%T0MXP9nxH}z~Xd!^CfUFR-_xXv~RqzFCc7Fsk8 zBe>oKIt%?~d%&67`AGkJOEa!+hbN2h%f@|!g6a$46BzN^PjaV*19XWs)%nxrdtYXw z-w>JBPt)lBUyg#}YQXI5wgX?6Or=|*MN>k#k|R>c;jP1^EMtTv`h*Dyc>fu4P}hu; z<3lK>F~EW5r7* z@9f+?*{MiX@PvmZzo2%@q%e{DG}}!D*uY!uUF{5kHwBRd395*F0_R^Pe!k?pILVCN z?vE5HnaWbGMrCxek>R1V6*E^}oMPl7mrajQd;kpX3TbR+?1j2XL1A`^^Gu{(9|^qV zF>CPm(;edY&PgFiC_%4w$P1h6K%viH;_M=E8FA&mHd;(mt6tNg3&^9k`klb9wR%s7 zX%+f?)`GHjC3EM(_=lMsLIChRh2!#P|B{sd8PosOmu~C8zpLheWomG=0eFF!!^=$j zzt;M{GvU9w>OX$gEdxN*2{JnF34GU%KhP`w}P_1l%iOS5%VY-~YnDxoTUy z`rmx_-`{`)22^-eG!cz>?Z0}0|L3D3a9be%r_T~W_IL4+k`HnD7YOk0{>1<52E=x| zIRDdUAxZ>VVRB?#C^HEEgHQhFSAdsq{a?TC|MOXZmoFGCIfHccuO;IDJ1GA3@2%kl zg+Zez;&j|D-D!8+f#malU)@R%ZFUS0`8(78yBqg{1+v@n7X!4PY5$Km2_TCLF^+;% z7dM;7olKz11>o|L9?w@v6rJR{3=@C@DHxKrE5CjKDTs!x^!3H5DB>YA3vP#A2`z))~;`AAC^vwn~!J_M_96ocK1sGyGHq?6b ze?Kn&pO@850S>^x!pz2lDnEg(Ahq-LnzqI&c3+j68W>~${|WoQr{(4s&`2~&_R;sZ z2P4umYU2JF$`BLpWMQIZ+-Yjv@9pUHTDMel_D7Zf`Q8jDK^=Dn$$`fGS*7wZD!7eA z_l5u|KVbbY1jIDhw2$#VzQM&c;LQ2^4%_`3i@G`|75?Y zTh2DR9}S-6y@M2vgGfo}lEicQ!dx2%Av*2%+HpJDWscR?3n4=zf&zNzVn9n+uKQm2 zVR4?NNh4Um;o5$urW=LN^NZ&Ba9TvG(ITItjoNvM+w~aNl*2|t0xaGY7{CWI^+At{OSaH5mQ*5C|-}^J-$xp5@PF}qV)rwf|^^bRNA?L>z5z&9Gcbjv< zo4}AB1TmfXJ|O8W4KR*jh?fXVk*QK2@Wqz%`XaYWingC{rnm1z3S~cv3)e~GS-(Qi z=ohst8_vzw39ot}WhdVTbngtsm031mh?jMEzZVxufa%u`LY9bL?@}NBQOo7p6^8M= z*_R9Ftw=fLa)SKzwBg@qw8v6mgp!&z$=EU71^9OZtCXR6?@QRpf_ zGuBGwY&6jIEYcEP6IJAhL}<26^U|7{+~b!(u$PeLNF#F;wVCIaou?afVCk*9pmK;=Sh_>P@78tW>7k1g?K=lXAaU|0-6k-z9&TO9`Z>(fa4^so#;w zrpE(XtUj+`ZQe45$P(R{vwSWFeSLl5_RqtU*=>inN31mXd|obqQ!I^YwNAoJ$wQ&} zR1S4CB0je;@IYTpE8n-U)_t3ZO((M=XMV_u9Ik}I0e&o3Xvgl`{Zia+r&w!UAKg|D z3ltZCvAVQCGMl9`jRsTK!VrCb%z~m=Y|wP!P|<^xpSg?K^ESgRz(+IYD<|vS=A6`B zK5=-QJVC@Y75it1z<~oNrXH}gugS#0UCZAY^+9SPGJ*33cp1I^dr)JlIiFYJ>uOjk z5asgwOuOl}oDL!onb;wEL|lVKFo(~3l#spWg$hQgP|2eNi`nQmroPLUScAn{;$xA4 z;rNgRXrIe1iQS}m^_1K%){y?E_)V)1<41pPcSnrh4-smW`@hhVK)1_74?7>sajpQF zOhwxRGUdTb&r=vRgT6I`31dqCtUbv0&_4H?w8y`;CJX`B z_1E6@&6Ggl6u-4xt<@jU>tgxrWq<<+1;mswPGlV|^;X#|&CC{$VI~W7d7HlcvRzq2 zop^wubL{p|+?2_@ zZyXaa@lXneRX;K7!0wisx>y07_S>ui0-)?4ay;zU`u^^YIhs+7O5Aa=2n$B}uQSpn zJ!q{gQv@!B36Q{h`!2LzD$nNEXPLujmA$azb2+g|N(lPE!kQyG z?H&n{qkmjq9c$+vDXd;4vSg@N}#!(k7ZW>@8Oh63O<#AW+@UpM)+nY=Y zXQIV0>pds)4-B%p0c7^nh;46?V_-d?HjX<|Oq^pme1ap9^%mNq$k6nl=`CQ^P$)t~ zETpye8+z~1?v1Ij<8LXQ|4=Lc_m&^R2b$}*ten6OsE$j3VuuBWHAt{?v(0CB*boox zSnhp2R^p=lh8+QqlS(rDyU$~%&@vvkOS)E_%ndM2vG?lDCVDZ*lBfW6Xwq6Wf?O_t z-%N~p49=XzaJ+rY8-+qnuNo<7vNmfr%!3h-ez()vLSYXKTk#~y53ByZ(2AxUzLyyw zp~v+LxU$*RHpFQZeM!PWR_#gi_+607(R5)Oi7mU`YX94DAI1%(YC>)XUhqld$6|I{ z$|oM^;T#~rj@oIw9B-IKp(uIIuf}K{Aa}&{0UK&+f?FDN5&T+8qV0bcd)?MSpU@)} zav?QXNSfPn_|A_n-#8&<|C*NUC!JD0?3M)t%8#m)Ee%;~skfEA>d3;2#St)tgMzef zrRn^~M)!Z$eI9Gbp8~J;(z0g_0lKFc3M-K9m^OMK$NfbGrig zAM?tDma!mo$PDh1NhR2S-T|Z)1}R*0L0%GM3lh;#I4BP*5NglITKDRL0l@V_hYMz> zqzGUJ6{a(T`mz?B040tggmJeBJO-uvx$c#RXe4S;fl1^Wm0niA%h^74tJ?`1Yf)fj z?htGiEZKHvv0O?L0dK2VS`B_NCF9GEifq-gC*I^;mykVjtlZd{cbe;r#$a4pw2>&B zLGJ~Bvl$-8y&IqT+cqyQ5zbb- zbzLvFd?h$KkD8C_?$!>^pljf-nc_(isg~Ss-;KJxL3Ukzi&TfcG#W7s>D1vgyR{a< z1^aB`&2y>o1tg|6fCf#xCD#$aR8=6PjPMq$Z~_MPa`FIcrNh9F0L6WF7nJYbM)!gCo2OflT$J zuQlGim%$?}mezOmH_K|`9fTOHhdmv;Ez#!*^lkS$45|9w7StElW42@#Q<_eNi$5u2 zX-70|`?WZ$Tnm9hwG`MI^x^(bW1hkKB& zVsIDM?va=om{wqh?gHYD#xwqm##K9asGVRj74Sh%;=W!8J5&P6B}wz)Mot-EFAvjz zuxysS!k_A5XGew~uk`A=ScW&A|9}a)X?ZBK9q7v`7l?xF?{P|W_hxsa>rTysVmy-$ zSP^c9A;Cu6JhANrVR1Csw{;y<9V3nL`gCvN++STO4S8ofwsfcO?2IOXKP-+f@Ev#h zy?vhs=bzoIhIai<4)pwhTGlvaZ^9FfGbi~JkqCjfo9SFi#~z8m!|x$4!GqVB$!;~k zoUO8$fDaaHA^(CX3~*!nQ7hD*4!|+#ZB|8&RZlPG1wdLEAW_4764{J*gcm1fL>oyY z-|?OaMd|uTRxwOR3q(>kIFastnsRZ8QzGooR9o9m3?9Ws@8O=F8@PYa!hkko zit4v+$f5{JP?F8-ne~G8$N*=Vy@<3U9NnXM0RaRgdRnOox0bKG!aEZLf64?H<7MvK zKw+y|DfuSvT8-qfg&&@A6OMT9&SU1bzR(`~z&Ti7_N0+>wMz>QE#Q7$`5nTJ!92yS zeei-STFfEN&?mwjZ@uE-BK%YrtbLP(>dOPlhT~8yK7ymJ+7OW^aLfq%M8Phfen|_& zpc4(}uQfY+$LXA-R+^(JPWma9;>?Ai(d!=L%sWuFS?F2&!YUXSffRE5d5PpQrEf!V zAE8~J!8)IKRk7+xZ&WI5n(zZ-3F-4fu0RFCT*36&%|EsnAw)$U2%Sz;!%bZ}BjEPR zW&Y~n(ChbO7B2u)ve96I!{w;lovsuK?aP-@pM3O7m>sBlxY0G-rpcL9|B^q;wrD|A z-Xh+3`+htn#>~^xfD-^|+X_<4qYx^SwVwGej~C22^Gg2*Yu92?hWH)&a-DjFzoZAu zuhN$dvg@Z@?dk02uk^!?SP&hOvs7yd(!2f&DZGw$xG@>)i{CmT*69{9M$v5wMss+( zg2g{j6vJ;OGv1=UE|E-7ssD(IQe?J=a%=!ZAg=s*k8b3etjPs&CvobT3i^v;0&?C9 zs!A!jM0!qO)>${z8&FJV``P8mRx*3v*wi&|)b2}S+I}cz^b#rogefYaRTJ@PAv79V zr-5N;L(q^po;k=w|5g(8F;R!@=XFm9kg6qay#$8pat?ighm4TZm#<1$#w(sr$A#`%e7ejxeg#$d`}vXP91f87nxm_ zqwwy;)?Y7AAH9*w&Rq8ATv+5c7b9G5_x@gYo@Jrzj&3TauWVYg$QzYvhj*?M61jD# zQoL&p5Z+DiqPtl|;3P{}F+Yl1XrF27)eqXVx4-v3P36>Oi7@-D>UKJ2rB)J(zwq_v z!(LbquPQau{Rx3L`u%z}q;g{x?h*(J0>*4|Zr)2tKx?q!RZ&e7%$-X2w36TMIe@n@ zn4QT6{=G)M2IMon8tbiJQ7qx#RQ zr!yc3;zEql3m0w&#dPiPMp9hLWUnf*@4^<0;F!HmQahDd*r0kR&75V_{?)Is5b1=s zusZ>O5SEjyse%rh*h~rTSw4 zUsF(Hw(<#M&Z{CexE|4ziP-F9p56z4YX7ETs$Dytjj2q%D}VIEv{&O@GP}Y?BP;)_>`m{Pd4^rO>fZwk)c+}v3(|z@w!9S}8yPtHW*|9^NFxyS%TkBaoolpe)s~OYN^K;o+ z$qmmw;Kz7VUfvTNt_=ARU49yk-SuadI;mrMsvJ3o=K=^@_{^vT6y?jH=%$1$p73IO z>C6Juq1AKm`@C&aN*2{p&Rs!CzjlBNos zqxsx?XYD9Q)xNM8DxfJM-XXc#>M4@F12iX^@hQ1ZZ=E2>Y#|7|=PDk4q5M%w103K# z#ZgnpVhyntDIA{?$=sx)dUU+l`4Wr`>^>;rmiN?+dDL2+29LlC#J=`yVdqlX^XGJ| zYsQGg1Z8zUUMLLO0ImZ2Hffg8PXN%O*ugqsYXl{ms@Y{l4tZ>2<&IXtcf^xVx#)A<&LBuS2xRRyEto*wbg1>kX<_)X4@0$=Ej2vx(10h z^SOU4pRS7opAu1l?qq29{)G17iak`DsE9&r)EV0oEYEB;KBwKs%SGOXf2%U`X!_+R zQ0SzQEC^8;@QqNBFrSO|r4v_OB)7-=6=GsPjuls(N&KPyAqHJex7Lx+G=>I~5f;;` z+la0|SrBAXfbOZ(>(0swb+z5I0bL2w-6;YDJ?C1!ng%_bG9p~`T)-2{tY0pP;)2$i zLbjbskw{=~GF!&g@qE>j&E?RcrVY0=Wtw~u8Fh{n)Kj`S z<3%x@V-~=758wN;yGno_AqQB~Y6BtYyFHRNrqf$Gh|)Ffj8$frLhccti@o-_Mtch& z8)z%d==;1VocHO(Q`DqoPFJE|l)8F&#JLVcVbxCkW*fQYN;SVdKb#bsedA86(;6D@ zzvv{iD{KBmb3u(nI0XRHw(;zbhi+oaKrVt*My7SpP|JCdR1)ngt$H=UjDHMP7UTgg zWK=3ZcfDBuR#2C?ki98_LvajXs||Evex~Ee8PE6lk~itR-}|FbDtapSCV!06sxwq% z)B!eZYAvC#pB=G7@atm7VV#lDtE=%<)S4AHdERpUf2C{1_(&E#_ETU*M&Cp7@YDHP4R~Y=gXSn4 zMy?$U3K)yu`2px?=w9IVa?R+J7;hh?{Ogj_cKBW_yVujei9kjbS5!iaC^+-P^82o;?66ek?r zcdxs1h3rm?A>#tHe{@#wFLJYO11)re{zU#p*POPKS$P{>t-KLy0C%?@bv)ts%t~Fz zmua4h_qdwesM()mn06z$9fX8YIBgGS98AMSB<*lQ-*?m-EtpkHKG&6;^m2Ad#PPpo zD+-!JFtiX866!y<`%+3D97x>kPa>{TPy?t&-c&lC|NUu;3|V7}(=C=z*HgVIT-N5F zZU{0d#7*S!AJkt{vMC3KB=p#YuRnHoA|wxzhb864eG%HXiqD)1-@#u zx#>DoFpaJ_>WG{E=r2_=URs`BW*sYr_HzE}$+=qy#>vK@Bapd$Rhuf7y%F z)AkUa(|LZm7|_#B!Ac1usyp6wiyGMACr*%<$_X*ysJXY?=)~{AS)c=a&$ljmHzqU* z{t)x9#LY>Aw4p3^s}VZ5f~#8sZ2d3g`ctCc+)~W;&f#Bt?z@ggCz95W4l^cPqUbp{ z5#gfVRyE5NM@_I(SRgRCY85|u8j~;TwF$c$qv@F71JuOWob^(((-N7?H0fRMxIDV> zf+nF9zuT3dU*b>k1mQ}7F_AhMG}JSYqw|0*7h0tuLG4%>8+8M11=yJ~z5Xwp(I`+1 zQeqShn(kgA*ZOf;>kc6Z=lLIiI-#`+7K30JaER!<$AjfI{>VPwP@d*Ri1sqj1*?cX zX_`VE=8nhaVoCjK+Z&1_8Ik*LQM9^*%@g{Sq(cFO<}oqC>wOy=2(XK*))AN#T1C5t zdvYxGLP=X2@zpqx5UcGjhgMTwu*=!+al^Zo%1ElY7(MR$1TNn2ymNSpFI95`eXU1VYU8>{J}}rUZ|g;z!78)LGDGNe}QB zKRPDOR2K8$9S63tYVZUyg#=^;YBST0?CTE_^Ef|mAHREF>HqFQ7{>CY-{IVZ{7rZ0 z{(^LH)j$+8I`||c;Go}kM@*LyweOi}U>bfPRro#lsCQ1pX9|x+-MFZ(!=c)1kh}UV zcu0-9$(PeEUQ$y}>tlCZC6M34nlr|XmTfisoQ$r9xWerU@b~9W4~>jl)M;`0W0zxi zK<99gmvWY#0Sy7;=Rgl`M1}(Nb)kGqKy39iW@p+MRYOoy5D^ZB3mXX{QSeomNp8c4^l&9ySyKZs~0CxZL}78~mM z16e)+6cHV?1Wh2-xrXkm3!$U^TbnoLP%wA?s;BAJ4qf*U5;@#CM?A_}o9i!LH{Ec2 znfPyxi$Af=PJ}>y0GX04VVTUdy^{dyIn|DfA?b2?cR%&3>NIMLlW+5du%SHaGoz)( z7MsrjpC1O98f&a8ZgpzyqV=tvu`A>GdPgXbBrQ|N=|CLOV1Pb+uT-5Yw~go2vGgbRZUNymj@OJug<$rqpLnu!&?b> zkP`rU@gL`!4dh#?6Pb@0=$AbYh=dgwvvs~N>>Z7zRB&%` zw<5(U1zNm#fZ$TxiaQi{cPs9$!HX0^p|}&=-2w!;=l8$&GWo;=CNpR6b9Uaf*0ai2 zQ7qGbLgQ(PA^!voDM~bc84rxe+=wxhEw^oaz}BJ5Go|GAPBNN6!>N+Oz%O_9yB}rV z7Aj|XTSik0m|dVJyh0V$eFtE3_{aLqj7CAz77*}Yski!2I8JHrFa|v}wv7*Q8=+|) zI{+YG&~QdgpUWiT)p5qFp%drC@EXgtUn^?H4A;fc zz;X5SnCaEo0+yByArH9M%y;LV)GnzDZsYCrdgqT=i_iAUtx5nD@|P45)pIX4 z`Dri_#VfMHK*ruq5z{~TFHN7jpHF@TVcf8~r7^1(7rwFa!H}0w@bA6FI7N*UI6)mz z>WGzCTx)ygRPGS;d!o3jGvlk2zjbZ_WBNnPQbCRh6HfhWlaF6` zbM#PByMQ8~dKI_3n{E%IOHZ4!v~p8&t?A}`Tb-yf6Cw*N z`oYUEYKY~#Jwkt7{n71&!XzOkf(uko)!;v2VJpt4?WqeC8lZcNhOP9N3GkcfwVNQs zM+m8xg^f0}fOwvu|2^afz(*~}qC*XsqeO~hoU4I3-~=&fpFMEnbj6=VR~8xeN{o{T zjay;4MLIyS1tQ~sfgRa^lCyV8TtrO`zIdo{#fs$9o-am=7$gQ-4&Foh!~%%-TW$lw zSNkRGWtLO;gdu{AMRLjN-C{nTlZ}>B3lYx0JX1p&DU}f}I!{3*?_bwba@*Lgb`*t4 zW=VZnYPQAX_5;+{HJ4mKq9H2}V{f&BlFT4kY?z<7pCe40p+yYqR9*c_rIfH@Qunk^K^H+oOSdTOw{QKZR2Ua}cV-{4-q%Mj3Y zk;~=pc53*E{7&>`sEmzHfY*ms|NFb~VwvY3GnQ&Qd9er4nsp!JwDPs(x1Dh1?&AL3 zbT%XtzPSm83Muz1<}U|C*uQ!`#;tQc~j zdrl@RlfWVn4^O0_)F=mJPqLXu`>L`-6GoCPeZy6qHI6B@rgkY_sqM<|pt+ zCE?Hskk*Z#yJ-o|gJW-j6;#L5+`VekHVSu=p$$uT{X0~rU7$Cn&1st-INjQyU!6(` zr#Es#CyV@8TfR{XJbyOphIhj)w@1uUA`CBmHTSD@n^g*APAe2!^(E+l6DZr4iNIjw zF!KK92~!$^GawRoFrg_OhUc7Do#)K-(szq-fks{z}=#&-DE0gWef}#ZsZ~e+IYEdnn!@*TQOcJ0J5DNgF zHeyvGHN;WQriUAFyD)}L+dxC5oLX%_nj*@W?oKB3g9{=cXvQ(PR4@ey`5M(Dwd)13 z8O|>z%?4dM>{iIO>oJyIy~T}S`eUkjbIkQxfQ2{hIpf2fU|i$+?nNziS3~0i)41KV zgT5g<#$jf=Lce0}iC`vsJvdTD?!=V%2cQk8l>#29VRpwLd?RhD@1QQ5a3ypv5X4n9 zs4;+?wpHh6a31JMM=;l72d+U!m(=$+qj}AubF=VmQp+X9f{S8C>~A$8HkiDoZRl28 zkY~q0n_RNhbeELB0Fqx0=ETooNs-v2xHE6D{BGA=auMjF+a7Q`aQE$de-2otU!Eys z-QrvyBbtnoCu3H`nk_HGU;7>XiU0kR8uhKwf9R9s5QvO2T`0@mx&d(Vreq5|KMGlr zw~+s&y%zAZTt6F}nBEVHFB9;&`o5m`s2<3c?)%mfuHW{zn7f-(1z+_}v2 z6%#t5z+DIAlT;zb8wZWBlG64pMxCB*CN>MM;y%P1y0zuDhEYZIufHi7V=Ru+sFNf4 zoC5$Q5Ln(|Jh&xrGu3#@SBd#!&4|Hv?d2u@Q*Too=;{&smmE%4>}SCCMPrKD^9BQU z?*4K^w?Lz!SzpWai61B(FRFtvyT+5KI+ijLpvHlR2q!lkTBzB=Wuk852cr?`U@v|{ zrzgJ=WDEqITvFJ0FXIFIL(F}Oc9T^Tq+GwvHkw?3JBC?4Wpuj6z}}TqU&q530QMC* z@mUZ!B!=ynXWB$;U`iN)+j}q$nDPX(>u#YmfS_tzjDRV;pcIBkCkOM~uaE^LscM*Y zJYcw~sJxQO%hRvhFGUk1*gusepB zMcxTM+>%7>*nU4E&k6UaK!3GS(PK4W*Ly8!J3%b@g}f1^B0gOnLatc+C85^=YyqSj z4Vif&HnENTv{Xe5Xw4Q1TgEr62h$sS`LzlE?h1|io>!OIq7_OVs)A%=Pw|$-Z{CdP+y}=1c%MInqcmI-~i=E7&mB)PS zckW};uCZw6cCH{Ff56CRq-|J`7Dhq8vB69^nQEMn|Y za_4j?Zp`Q*$%ZMdM9v;tlCNJJzGe@D`L_~{72-8Z)jdxs|91Iyoex|%Jd+iT4GPv^ zfEz->GKo$E;34tVsoTC|oI9=!Ezj7zZ++~+;NF^_piKe(be;BAnBhkwz2>m0St-DT zi~V8aMo)tV3ErT8b+MUT!*KuwY@JTxzsfHL92I>BFd+YBykG>vteHl(69FoqD z#GB5A^8tg^6qx0anWszTMFpRFhBXkz0Q8bH>2msd$k*QxdjN--q_MCn3IW|+Ro%x; zKF&b_*2{&9$fufelYZQlKMW4=VvEKCd+|rXW!3y({L1r9nFc~7n*6DZQ%fyuKA)`G zNtD;747OMNt*X7F-!YR^;#NDmooH;;8J>09oIa-4;9XwIq#`Y}8{et&Ns(y+mJT=k zPm6hMNk+dz@Qeca)*holdo&WibtW&lXRE<;-_75>#j0L*sRBbXWTMF|lhB6I-t@4= zpX;DbR23;KTtv*z9FEC%*c&FJd)%G{MC@+r4KBG{-en5!jspw*px6073&%r@V9_G- zKIT9R=txZVwWDIlwbyWz)|aW?Uedzyg--+{_Hiw)U);rV{~18W@p52`LO_8iq;mR{ z6jK-L5_v z&AS0t!{)b7?7Wz}ffU!*LKNK=cTcxor~el0Q*8>r@=h*GXsjso}sF_3k?^q`i&nufh?gF!U)g1-W?1q_k@Q@j(O);Iup;#$< z&~eO4En5ih_G7Geld{G!kh3#0wjk&Z;$4`|FyW&nE|tn9uzK~&fOl0uWD77^9A&f< zdZB$RSuG2i&u0H2wi@PE)KT_z1GQ#|;LEszuFGUv;fiy9%mURK8VzK2k z*V@K)uKC-ao&F%%mgIqizcXYr0cio`Tw2KTDePXwrDh2THSkB$->(bISgqDPsYZ7SnNMOdF%=p-P~|^r9!qi+UU9&bD?AZ{dl|C+q>m> zlFYK&)<2o?im>rOBt0iDK3 zTD@CFz+ixWdM<9NHbJG~fKFO}xh_#rIg~Yf!2?6R1Fsj1*L+?;bsggk&a) z0f``DXGvzI7fs6t>OFS;aHKWaq3@05h!#{TuhyHlEJ4$+0?{r_i|aADC-Z~k@2oFG zQURY+I>Q`p+Wtq=Kba{mn9JFC8bLU#N&N2d(l2cOpz*zWIH=&HZ)mJ*c}=85Qpz_8 z0M-((+8>VRaw!c~kA>$koVi~dEB?dR_7-`5Fg(7eqt~+SI=Itf4vXr!=v5=*w=!jx zS|`Jy{zB>ELwf0n5W5jltzWA>O?_>to!M)&YgV?SXw!icc_rEZ|WSIMm-am`o1eoc@h9 z-7VR7UwM4V!uOVmB4LOXyD;RzX>;fxG73i1a(gwp)9lwGD!jDnY7m+{mCpNhF4^Lv z-)wXyQ_{5ywTS0csZ)bnY{&IZ#fb766Shi!k zP6tlkdv=n99C(RJR_4tycw8p8JRG^JQp4yqe7~f67_}8%QrLlsZh~t!6Ya=682Zvj z8Nz+32^YCOGV^=7)O=!ixYNywEEe#{^)_EQprt1Cyul(m zSw)3^UiOQoQHn01dBRKj_o}t^_s6RnndU|5vLN__)p<>B$WHmtuvHNc(SbSjr`1RZ?VA7LPe$I93dCEV&!Lf`-qsB zl#ygsVM6&7*#Si!IuK()fUUz~uKy9q3z_BDv@@)2<8ljb4h;*1U@7o~see-r>Dwi5 zCR+tRt~k3wm0qSqg&C*wgSuJYX!R`e%QG7@eYyFS!UZ_@HrccjGv%y(`ev~nkC{kn z1F@fxS#RGjhu$P=y(-GUIRAvvryi=GELALP$gjA~RNn|g<;=+Cdy$6?P>)Rxpnv44wvis&q zpL>b~Ir2S|;nAA{{mN+R7v|SSDdDfvbjXRdNN9Lx3Ctle8u<#X?{tk#5+gT(61Ufx`0>shruud~Al@*}*>{aBwHWO%EbF8riR0=^wQcPq_jM^dZ%0y!{eI`p z4Ij!qDNnA(u-C>F6z$J2p<{|fGC)}^UVfR0V9pBlq}rWH!r7Uu)~nNnrkUuuGI!y1 z5vMh^TWP3vJNkGu(T`$b3*$HGamAE3^wo9v;@-+nSs!{Wj#3@kiPrfYZz|I@1-Jx{=v3C4 z>;E3*aIX}Vy0PS{uEw+;YsOc2>9K~DC6i&zeEg(4xtW1`eX44eCUpFk$$}}8QIX7E zBYDzih$ZdQd(l(nUNHfc7df^;X+*6_{PLDuzFGG6cGpJ!OA3RhO`8 zm28e1aE&uBvE$dFM6-boJfHYIa^#u5<#P!jw{&;)&oyBBB97swiX$6~nQI>>pS<@D zTX0J_u~xth)92r$K!QNrIdPg*8T9ACjHCsCXD8h zgU7nE`^reTn9?={{^;xB3HhGT~2pB<=nrHvIvsr3n+SsHT+pX(m$yG?oGEB|!!6=mOPa~8(QSA&xs9eF%IzH~DIXMJapjKBr#NSHkHVt6t z*+?3xmw)C9AXM=TuX~R*aQ?Ei>#l%ck@{3sBv3Nkm=H~qZk4Wx|MzzGxg_r4TS&sV zZuXzK>NzXdIq9R_$s-gu^W%)wGA$SHj0O7)#W$eBtfVM~dwue`kUHU~_>iXR$&)FE zyjw7h?)_U~;hSoepwe(92t72C12i=v>|_&b z0MAsDJ2(A*Tes-aXavm*i`X1cr)Fn1iU_NlqUJZ3*jhllX~*+(w=FUtCb$27^RUb1 zuJV;xChF*Hs^-Lwum&Be*r?3ky5m!D#G-U?*^qPiMOnPlwtDU59BlU7qE=j=ALfB@ zX+d%;@nqFaV`GnLP2ExB2bVQZI7GS1^$zZK&N!#axX1 z?~}gYBV|Bl5rFiu4j#rL)DxSpH@?1jh(>r(6ZNvhW{D}ni z_Dkb^)kT!Wjx$W%hOGh_L|&IGmAKm&wY08UD`-2!2kang!*fG#@1AkP+w2?q9LGTK zag&^Xmp5hqBYZBGawO7!F3I*IQ1RUoY!`h1^c)#>EhgnHN1(wK@Sa3V>O0`e*1f zDAU-aWeYS--P78Rqx=dr`mEQ1V!)PCiv>#6+Uf)118meAOqK30BGyEMp+D zO9URP)|}YzRj-zarTbSHtN|3X6 zSL|XZ*k+}jy(#pv4aUBi18)<};$KYGa&&y^lvj0pt7O3yW_#XP>VDOXg*2y6W8icQ zo44fr5pcxuQzw_-lJW@5lVgMTP-aVoL1MJQKbws zgJJ~`Ur*eXzg;!0wl-yycpli=sArkOHImW`_pMjDgCY>jmcr1g`PNzN3JJVSPp7*` zsK>VrnHk`e6#Od@YJL6ZxD~% zbYR4c$Nq$(hA1~*Om^Q)*p8xKC&b;vXbZPpD!G@;*_usu7 zqViIGy4@5I%|FlaI+@hxVNiNd)2!6a&w-8O7|*NM=z|ATkKXwpR`VFg76=8fu&^$+ zQ(=Fk@K zgfVp^UeXc8OejX9OjWuKaUx95P+Z+rBl2{scJYTcsBvR(U+is^uSal71m2nh%m-d- z@uQXZNonYHU{OL{S_n_4%c15)bHB;gPL%MA$5dWX{8A|I9KzULuF4=Yyt#>t!4_S#u)A35#z;C`67jzG?LIg2}r$9cwU=BT0c_d-Z?}f=AsZ|?fP&LLI3x$Sqq^_c z=u~Bhu`O%7d(l}^Y0#oM#ss%id1*LHtzUX>jORvamOO)visZ14SW-K(3-cbRJzK^% zi{2R254C7(tdx~$Pm(L$-SK@it2+2SLJ0NIjJ(COB;14xR9*LU-{(ofp`vgxnrL!^ zV(@yt60V)bH_qoVn_P8PRMc{??|Vzne2Ib?%@hewsH3_*YjO9b&+prQmnTy4VZ zjUGMQ9%F>BMaR{#Q&Uvd)=>t=iWSMX5@SQHh*OJkQ}Tsm_dOItrcM*Gt3vx^>W zAJ4^!ipTvx+P)FULe;E4(sefBjIV`#T)^$N-)FiBSOQ`n2p3a7=$!`Xe|xs{ z^ohk|EkJT4_yn=|W+z4%z0^Gu1vQ5-hMppEk7vRzDJzFJ6#rSz6W*l>VoOmwHEcsW z89fTTErG+HVj-zFGdLA4&s7SPeAM>|E>mw^)=pP=$ z+M@q8q3PWPA+r+dKeQQf7CYQgVMNQjd~cm`isT7%pem<9?mVBjk$Gpg*Opbi(kel#8N6AVM%BG<WxhVEwXvefUs#y;4<)Fzl5lN>WsN?dUgn6STtVL)Om@iWw`kB& z3RQfu@w-s^2se_@u}-l}$qVE~dGk1H_XJg4o_0`Mrt5UKS!wH6T*o-9gp#kaIdq21 zi#i}-1joMiTBbnRXPmwn%V9o1qxp5p zoc-!Im3Kvfje>$tMMZ^H)sL*ESW*%O_a9&RAdLL34Nb8%Kf`?jc}i&sklk!@eeUb@ zmKtKI`h#8Orj$il@x>qV$OO;CthatviK-Yr-W-l237nqg2O*tq+G4auc-wg56?c{g%tpor3VNWh{b!{$CqJ1oDceBwlubj_QO%>U#$+tbP;pfe#{gYld*{mr(Sj6}&)xTnnR1{V zr(RDvysN$lyQv+;dizs-LRRxs*Yg(x>$I^VM$C2&%%Q4BSq_{(>mT~V8&{_K?sT$5 zy;2@v+3-CW_Hra3VI>5mF7GtiF7>K%aDF>^&8_l^P4WTF`;{;dre|%eFOJFhZitR> zq-cG3Fx+DtX&QPZ;Fg~+D7){Y7_xMlFy*1hZsBclw0nMA*XZMywMaD5VVFzqr#HV%It%7hxt8x@w#I$dYwNT!M%(yDLs^uw8MT2FxNG8~!{+345Ze_e63xI>)e)_rQa`PrEV7(pSZv37gm>fu z=nSwJ!sh3^$rY+oR;4RVrurlYi`eU9DnE_*z$?9Ui$lV--OGj7E0WORR$i%tfTXNm28w#9OH z(U0W^kH{~tGrf2Xh?tmXf{(G9NhDQV{p-X>CiY4*G_Qx$mzfv?kkL+#UnQ2x4A7zB z-diq1B)N@=E2SJ!2ADUNE0?)IZC{=La`2u^9U4A>3r!Z+JKuOj=@4;5_lm?*|**!|eOChuib+!}qpJO)U}VzZEky(%F&VQQa(P zO{Mt0fH?*LmbK92wLKkc@hW1J2TUSPI;T`gLN_Ri;C!Uj-SW+91q3eDFr_U70$i$I zmQX>)_uVuWy1w|TtL%R}__iw;${V&zTAR!0)gd+RbaTD8$Fs<@oMWL(ec?{^SwXxt z_-|AoVhZdAD>;?_F3yG=%1r#(;Ug(Wp!0VE%VZYKlwh2llKDn#LL1l|fqcUYEK^0~ zM+EG|ZK&PN4d^Cbv^-vP8JXMxMjv$@0INV(cf6+^y-qq$<;$?fOukg;_N?w{9ANI2 zOJo3QFEgH>bgNg_^=7XGpDJp)^2JvdjVrA}@DK_!&goqiQlKDh5mz9ZUE(uiEmZXw zSi$c-`5xkS`i*0wYm!>q^}VY+fG|kfC~myqNhnR)^CBz}J$S0@!)A(fj3{;gy3LLo z(2r>QpxC>Z8qW6Vgub+sIr?gRHO!t>@ddMn&k(aOfIm@hqx&cNgU&QOtR-qqsW0l2Lmg4w^~`(;Ild-fZ^bg?QD zeM{mkpxR=W(AOMeYXGrkQ+o*o*g)D9H@5MSTK$ z0dg&mT(h%3se7+zUS(a>JZVOUL`r@u5z5CdaWkOY$e7UD!(*}#Py5BJI$ZM)z;iGi zHijd9Hc7pDt0H5(BjlaXEwn{nVct4iX@U^LKv1kp01rU(5LnT)Q}uUeMJyat1DNe0 zUFf&>z(H1@nho;MWd7Bj&dVk!;Kq5cg3!Un^`)AiK(Q^RuhKiDH<*-2Ojdy8@($+BE9d+Ch<_~xp_49(?&Q-= zO7(~Nl2;^C=E#wIwIxlenD)4kEv}U{ezi0xIkr4bRm(0LmQtW;b<7ld7EaEOx3dlF|igRA;$l%9HHv62wyDrJ)E4)S*#> z{;^tCBoWqr-1T5+S4+Koxuiuzh!b~d!HPNnup$ngq0a> z4-PXhH?g)5LJrxjgJh9sNn~7)K>10YCtY{3xnTmCMc>!IL${NY_v5+bkYbN;LBVKW zIuF3ABCZYhbGl|dYq!Hevz}IOLN)YAvsh`_ZKD)(c6n3>0?NTfRmpgfeD=m}_L^l1 zw7nR}(xXp7Ck-Qc?n`7X+V(YhNx+zXNEQuFv{riSJp#>hZ2bz45oRWBHl546=-4~8_8%sUWuO3=G z-?mzEo!D{RqR-JMvuMo@tV5QUXimJ%z(zn`#(Z{E6qp8f9E?;{*)VB)x3M>1qo=hx zoChvZ)qc7=7D$CQRD)}h>{hCsSWPsa?sn}dbCC|y!nFZ>hunrYi&)%>OL`e=mHaf0 zbRuT}{n+xyhN|~x_F0-poU~0=b16Eh1Ob1XBeYB|&OXIjV>GP2TbfY-8O&vK5THM= z`3|=p1iZ0ni&)x}=VHnduotTcOO*cm+C@L=GxGpmS8Nw52X+v>AytK57-`$Z2o=M= zOZZ_2aDJY>LBrY6*^g4{xrcs{)ARxGMT7<3gJQlUyBXzboqC24{JuA|@87>4Xh+BQ z)wk<@R4OY;%DTA#HjbK&f@wZ zEOt;~<7ry~nz}whPpxBa`)A{wZv89Wai8j-c`^6e;h~fXmZ)%sI2iYM=>h?XW5vC| zij(+`1whTlgkCJ~@LA7J>%f!qHU^2axt7u4AcuU@el2f&ZC4UY&6?PGjOzbQY-M9% zPbIh>-^-R)ty>8=cdC(&7WUCddCtU1r~N9O!d;_%=1eV3qyzDkP__cDXhGW`8k6Dj zI!(?4%~Lj)3b*=MAJ9_Xzd_qe7hHkd0h(6bDG2jD^^Koo>#>N6{OEJ-{^h_ppsXpn~6BD-Cs$v$c^Ic`!_N zQ<2N$d8cA^Y8Th+45+>F325112?4Soy1*)j`T7xD<0l#DAKUa^*W2B&Dg?gy~b zf~m?Y9~Jez*X-LG##6;=Xs6>DQ?31{FTFY?+hm13n42}#>*SoIS_H0}wvOi=*xf90 zIk%ESQ~o>(JTf)0w47^BpL*k7%+|oT28ijpSv%BU`C0-GlHxfoXqQO|htNwTo)lKC z@66%MiCWA!z$Dv>c}THq>WQRBN&yQ~FJAQKR_)+n%Ymi*l1#wv{ha>N(xRAG%;9|< zk5m$g=)LZMQJDs!6E0dxfLl#$-GKC1r_0%Sw!x}HYSb*uZr^$QlJt5-ndfLKezHP~ zy5v35_WDET;~0h&(LX_t=b+dm-9{cU_z<-5HIvgMi-Tgl-?KhgF?-Ra=%y&(GFz^9 zw=k?Xj~Nw?kK4CS7C4WA_CqG^N!adk20u88lb!;d%xkgQ$R51dVqe44EuPp2@?oro zJjvKg7Xby&0G!IJX6Y~b=%Vxy18q)Mx}sQ0g9YTI>~?HnlW+n0F8Y+M3v&BX%8=XW zgkFd?=y_pWSuQA1w7P5d?=PSq{+Q_7L{UK};U%lzjm?}7Zp3UR;u_v&08Ob%vaV@9 z$k?k0EbOv!98$XJLO;~GT1Zp3`B?-V?JhnP<^ERQMpkP(p~`H>F?_YJrpTix@69Rp z{9sM`_{e!N39Y$%uv8d2B#?TWSY@l)r`B|)Y2GFIa|HBD(A(paZ{aCWIYI42$TQTU3@7;#)f3q=2^P+7c4RE zAG-ZFz5r6?6CbwJplUCBU*4=7v9kU4B8rAc7CsxBrokuJ`A;tMGtDCx!n9~xhR@Jm zZ=n~tKxyV>yI1(`_@DagL~mC@xtj2X)!GqtwOREQ9r4P|cBtz!xzR&1!XU8+`C|OJM`6!bXq|dyADt;M!gJLeELq z!v5`Y6c~2w!g}b?X9wEr>0x;#v2ki9{-;Z-&J&-hqi0cVJv>@P^@sgsnmY68WT|r6 zb$g7#`msZ3lJt1aEuJTD*X|xhKhyWCh-28j{4PGxmsEjvX?sarvQ4MIn$vP8k#2t} zLf^D%4G~vb53m%zA^FhNym_e^Mbm1w)b1SK8Rq&dFzgEEkKSk3YN4)#yRepOI^=k| z`GR!O-^D23?cEc}j@Lg`Z<^gF8s$RC?Yk-hGhr8z5Po z+5CCW-E4v6wmV-iUJ~uN2;$eK#P7KgwDj;z)ix&$kMp8;nlH4x$j^+iq1o2e`(+L5 z43^JD_s84FiktJ8+L>z1SPo$Er+!1eR^6Vu41U|ia33P;TJ+^-4M#Sb+83<~AT`Mp zHpTk1Db{AcvjyKRRd1C3Os)jd<-+``+L$_sMQ;yes)zU@M>FNkUn6i_VAe-xnKpqh zs^9a!=ZXo)&Dm)&ELB)F9bDWW+C$5xN)l`@M|=G5PQV<1gN7f6biCg0>EpM&?^D03 zr(~&o`Wz*2d~fa5B4qmqcrFHrY5PWoE`i~x;?%TTRqAIM8J)wM&$(iA*3WAa73_^n-c_C|0VAJO3pCLbS%HU@)fJF$YoD_;lQ20MZmt5fi!i z^Y#G5Y`GEQW1u}MdbUR6l`{9ixOX%wy^usEKU94bz@^nVu;I&3l;n77is!yl(qlIB zXn^gsPdb+T7+J=xn3E^^S|lee{Pa}7ENEfh`IxhL>Rg)Xd9n4CPx8-o*GirwZQFja zF2!lXaguSFuG=%i=a73a1y+PPf4#36J}F`-&cQsvioG-ma@pCUpMc=|_R z`b@V6cF0Z5jE6)1Ozo`3Y?KqKe{S3NpJlVQq+i6BT}P2wiIXAuMb^HlO6=5eeP{(& z7%MuRmhEJwav5f)6`AsLPw%+-+P^%KfnB(#)s&00>@yfJVh6tlbVwK3?6*&rYT_U2 z_59jN9agT8EciTB{yL6o?hX3nI`%1g(VmpbJs2^&hq1-N;u=wRM#lSyw!gAZ51y^7 z|1p|Xzb0j=c`9UUb}=g2&{Y41+uLb(jB#6jV9%P|C(s{p%Bw#a!IB+6=ohAO1>GuX z9Qbk)*0Ff7TlSpE08MUMszy0f_m0}siJ!`oabqqsJ|_X?FRy$AiKQQ#w`qb_lETaB z1@m0C#A7p>i`h!)YqkOtz zLE}9R<24pyV^R1Qft6)El+(Tn<>uGRQT49saXcQ!K59vFx+d1|z|yPE#BPaW)sVPL zGQGn#s|re0;KS5>O3)>%H3;ygMs5*ItsvcEXdVGHUab2&z_F-a+b#N^MtfXeWt(}U z^E#m1F#K%&pBp6xu{Q?DxrhkuYZ4lAUe6Rk0XRc%dLF&6RLS^yn%Upt^%|S;(YQ<;A+jFtyU@rwy>5~ zLX`-1aQo+`mWrg-trE(JtZ4GYr1r9pzMdyRH_uN9l0$ER(yQ1;URhnU-byLl`0K^V zMBcJL-%I0HK<*cXqibuMU)|1QCizLtxE)osz_fF z_~pbqsZ- z^UwQFj*1zsp1S5+rwQF~%0^N8G5RE7hS7e2e^NIy(|LeE-A z%VMqZwKqO!W55>VbKTngJ=37*vt7==?|VPW%X#osU{5&5*&%oEvC9^6W0&Ge8{&6x z!?vsL=DGc@YePJesNBMT_CD_Raj4;*37PVzp8~@XP<7k4h%6hDy^6b!{MyhjgOta)sVi<#3jCt0i?U%VWQ(igExOI3 zK`nz5l~RoqPQ1nV+IL%nBF;{L(Qj`y&D5m$X~ z5IR|JG-)&bpE9swMR`4x#4WFVB4NpkfHmT?0C>M;^@>zR2| zkXdlpv|B_U9k2<9dFh^X`{hw3h5lNrhh`kas&%R{JTueE`WFANm%AfE?e)JbOJuB^ z=QLdZ7`ft0(%%-aF^E~I7&t?uX2Fyy2y^&|arl<00w9|gi{}iXCJMm3HFDgIYl~XX zXUEyC9Bli~jP5D=Jh20N8N82pT#srz&knl~)b$p^#ofR-IzX4AN zUZXrj-8ZDEB>tRmnza?B$~F%L@-yVmMMD4bKu4thfvDPTDLoF zn$ss@O5|-oMJ(HBcPpWbKeme0pew$omEVKWYrojsq|LJMPdLEi1=<^wHFtvH#f|UafJCabb)7Qn} ziGEs-47ECSIBfP^S|h*2ce_l+Uq)Vy`BZFgp4LoJIN&X!p(s`GDv#_35c2$(=Ht-?{Yn$$%t^M7LCAKIy45^Uc{WcpRDwcPF<}O@tILJy$A`^h{9nzu z-Fi9c2^V?HRxx;vhREscU@Wq5TSg^HqEhp+L5u!?*f?}|F z7=HZeHGCDEd)tUzFO>8NS#q4aCw7ziqmy>$XFtlTUfc1s4>^Zj8Q)`%1D#yqmR&c$ zBVmlx_{jqLeglVVVwK=Q!<(x-jHJx;sHXljewTWM+@1TJ>jR(82<}M^5OGNv4-mwN zGxUEGl#mm683wwn>3*v30OWZV{x26W@^K$z5YPzLEONWH^0mR3GRALb)N-NLC>vLU zmqz^YiWZvmG0w!DHPZP$H^Ru&v?yaeM#Mg_e$9xEufgqa7im-fk#Cml=#y)L^fQ~f zTp9$8+y8-ZREA3A*3qZ)crkhFe()%=7vVO2Zn&~tW9V=>Axkw~-8Po(?AKggWq#s0 z5`uSV1|&<8q$g_Z96ugyYnG*V)x7lhCWg4$%mY0y9OBE6aggV_{~z|gf~%@-ZCe^d zxr^6or+R76iIbly_YK6iKY4*aC0wLk>hHkjf_Il27 zp(lE4)>2vAG1oTyA!(U~%SC>76OH*mxsP+$U%tkLx>3iTeEKPV>oeMr2a=giCyA8g z56h?Am?TQgZ;RYpP#&Fm*%%-DdKlSliMU-s;1;)#hVyWO68g{alCl_>`^f>95n7>{ zGpQSvk0$!cPTcn9*vD7XR=c0uZ)MqpaLJ{5?wa!8b}hJABP~t0?V<1PN!w^j(OsBz zJ+1%I(rD09fsMrO-LI(X{3EBxl4r#tqc~9Q&Bk&!0Ujo5lI|(Sscabm>lSVQPVx1_ z1S@}I$wo7SONU`Qm!@qeg6Qpk9a&r%B9VjT&N0g^{=iGb1uN79eq$W|Z=rfZ{o?Ic zkv881n{;*q#4!u00$(Z=$ySjie<{VHZ^5K%QPp$s$j{pXIr9r5itc*bUbrQqkx@S?aQF2c~e^K_7@8u4W@m<<>$WX`S*h?69+^{!I*Ivb*&m#^|8{cp*N<2 z?U0?-m!&U6ma8%cSKk~l*V>$`wAk_NWIoufwbCL`z!upgf5toOy~GvAF2jGF;ukg4 zTdnF+O&zf!D7YFI6{%EpjEzYrJCT#UGYoJ=2Vw@@5gMxZ|qnhD%QMKGsm(LP@`(Ao&-%ri5HG2Oh!+R@OZ~cDJpyI$qZM2~Na5D7!S3#U<&?+gwagAz%ANml0H zUq>g;tio%r8hRq)_DB;0^rizcJ`|0Eq^4>nnbf8}Bt01F;*)k(yTvw$VqGg6+O^^^ zs~(Z(1qHb6fzPL$u#?bIZ7}iJf*%0TlDa8)p-@04TFgN zd6#*(5CNyramOJ!IqFedV5dTjBnSVsEZGtV^}~&N$wcO@QwH_=lu&sVPn6A;k4T0_ z=vUg4d2$MeRNLCgTpbyRwFg9+##rN)W_ET}!j0A+VeP}E<}OW@Jtuo5CkbX~`h*Nd z9~NOCQf?dP+6(|da$m|T7;nL?E*4rqm`Ep8;BXnr6A|{}W$gY04n7RT=4}tvub-)C zK7FiH-JU|R@{N;x@3Y3eN2oCn)8E9Rn<@UnHUYc|j|D+vAs`fY9OV^qPb<4#^@$MV zrg*wmWn~-`UPZQz>k;E;)qC^EJT&ecAYqg(8>-yZ_eR3 zJh*ob(u(dU-rWxbx)m8;=UY;2qW}mXoDYj+We93%d_#}XMq8%ldJhwS7Z9o&y&!5Xsv?2AJ2Erd^{J!W;~n{$C{MWzc;26GiJ<@G^!IuCvqobHUBn4sdo+bkcwizLYN?9%#n})ty20sewO-%vLA>tGsysOOJHK!8z1O@#R^JL`!;~k0X z$+x((GpMNq*hcA}pNU9>Phe8bWg}E5zhI8;=;-*mUZPe>!NQtkJ_rkKVjYbn&D{8q z02-NKiug?SUxC)&e=c5~A61yoDEs`r2t9m|iS%7kGbgNB#%Tc-9TcG&)V4+gR>D{t&q#7_fCp zmCT}zR@OEy8y#k~75m@E8KS(lFsFdpZPFBvrAht^pM!-QX7k?-&f)hDE$=;_JoD`N~CUzNC{WL8yZ7?>4E1XO}Hjz26u2<4H#GL%k z*S-JOvde&Fm)%0NC+AuT>&aILihAy8;htA%JS;IA_R)i|rgKec^{CV$Qo#Rc%RP>9 zhT5`~O(^cVR$(ZGixKAjdgLQkiC!f4B++gLF>%yZ+Tlf?W4yRAWkHj!FAF#CmnnRQ z;ZT0t9lxJ}U#}rBo?x>>>?QDX0e%R%?zH@c^kj?nxGzo|o;N-^#on$};k?Zw^3$P& zwF0S5PDSa`q?9tru~_1XzA_n;Q88Rbc=4MOM8+2cVIp_x=N}*6JCxGvA$ubI&>)aA zy_I*JnCohgbR2D!p~TASW_MRTwRw>^BRQawT1o6Ywj<+HG2MhudPDM$U-t7&cofJ) zDO0FdNo>=Y>@`)4nSp9!o_vUfJu{^;<0T_S4=6r_fz9yJQTz+hpY{Tgw=Bk!l2LRF zj2G^C>Eo>!#X>LMg0HeV}3Zsutuuq{u`p6mE8x)j^bypk`~R?F8Y4P6DZ zsV0i1>CGm-MZ(y!O9*^0Ep4oA$SjDVQ&P1g{Be1|P&0qjKl_I{Jz0*2TD{d$=0Iw_ zoI6`jNs34j^JZiqoi?9EQ-09rAZpUJJ}iX;8|1>4oybI%3B=hk=V;xN5D@dlB>s6N zBMcD)g@iU+$jQhI-tk&Y*A2faoV)1ivlF%3RG#TeVKYpLl{U{DF~nM38NLvovJsjq zFc~Xp&|YZX&f~sXWCY!I(l*0T=4-)h<1vM7Xz%Ol_cCgjzm9}OQOfvLOT3Y0UDI4v zve_P7=vfw;DY}xSAb9*)dzbKw^x>LqzVsvZe4@$kuZci~&!H`b;XvsR4mRS1Ya9Hz z1K9zxpUd^XPT=4F^ez%3Sr6yQULAel3 z!+W%C11fsP;<%IwMZ^pYAbMlDa^2VtjW*}>>nhx=)#e{Kuc&W2nz3{@bW7JwG7%;c zdOlI$CE%o;axEh>pAlfAjXoUjf$>O7%IrMUP^JTXN2i-xwAtdc z$}|j&O*XO0(|qlRpY`?EJTX)ncO2Hnk7FQLInB!tn`pQ^wToV#X6QCtw$N6Mu3w#p zsN)`vTzVqJPyjBNo=-9*IG^Dr4X-WC81|Z&26t53HS2}OEo0d5CibG?_Rhs>%AP*r8S`C2H21S9cH`hxZ@V@?RReg2sEGpblZxO;8A{ zBA77rxka`@w9~r(ZWNbe6m8`OT)0e56@N-JW${FC=IQeW?f6dK)46lsm8F=-5bhg0 zoaUWgk?uY}>k=n+KoA{|6RT0N%dl6g3yb$)7!!R34>T?MO0LI5h8u`ze z4#H!#3lpAt#ByJ$ig^1=ZOjkIkp}UPwDXF(!GjgGq`5F znZ}~bQvEV^EFa?5tNiDq^RM^4izJC?XvFt>`)sbxa0^}i@2^#ldQ)t52x>I)d0XFH z!I;glc$>@4Kg?fwNw0rcer3F*?0oq)|AemgdyvF#&*8@KP8{JtEWzaG+JYp#%H?uq zM)IL#j$AA;ReFt*gbkzGovhLna!G zGfm3L5ObIfLqPBHW1E9a+bMAIU_6ldru?HIdJds0UW6w3zL7Q&5(Kwj#r34amgAu( z$)c^sR8HMg^R`Lw<=(t~2aQ7gD+F3|8NLncujzX=4?9H#1x=FQU@0n#`rmJ)i+rS| z+&(W@y2JDP5;of<+a9iPEJ)e!@%{mUgW4^hIro((Z7&iChZ%; z9S^R+kBbepbI>N1Q~A-its5uW9^W=YfD83UCG zVtA|0K1FDdKwP z*88;~d}1iV9n}5E9~uoWq#w)JAUQ~t2KcCQ%tOzV?99np1_&5#M&Zu~!_xl%=TKQI zTO6l+^oGpihk2sX1NVN2R#RL$#aV-WgvBMXKlq_d!(wrD4s zTyRSKzB8$qdwuQrbrIqG^%qSoZk-m*!;Zxg&=Y3^0~bT^C4f0%IA9R%8{Vs_rm3~C z;%?UCW*VL37-kmZ*AatBQ73z!v*Wn0HQCb!2TS#?H0`B$(hNr%B7>8v&{uE%yvq{9 z_#EVC+q9-GEr-j7Mk3ftV)?`E74OH*Diffip>br-#M-YNm0DW&clWXD(8Z)!i`d;D zxidz~h|JT)(!`hbDHSPdZoI^UHY}HM0i#}a=3_CFa$e-VJM7}($#z1BS3(`Fou8NQ z`muLoFbF1PHgTW#sDi(J<{c)Ri`V>BTzU-q%+&=;$gspA);x;&KiV7)AkG=KFH;)s z+s;LgV+@3nRjWKPGtm0;qmZGlLx(0+fk5PmrK#1s)3uGGwT>W`!$Y%4Di|qb+$_zU z(c0D;3r>_GLU9Anxv_xBaJ|xP1AJT)w&N`CD(-2{ptrU;*(VrY5+s2Y% zo2kW**>(+!8ChV6QpkNib8)f2IfhaT796tP4ocNE*Ey4@e*M4gnYo6;t zZof+jM#PlUjUf=|lyZ?>XZn*hCqhK+5f4uK`qji;_+)o331;X)V?-?clP)P`&ZKXM zf7Cl(Iv@m=)KSs)U=8*ckI=lrp{=<)7FrT7gObI73F|pzs-Da`~8UUVT-N$qMbL7)A03F&XWwZ-5lgf%9 zYaPuxOzSH2N7KCMdryD%%osw(V17zxTz4FNCA+=&OGpc zxHc8H%N@5v#1&_HyWFNS_;`Oju4EDF{{x$uOL=0EJ&;&ELeJP(G<&J50Zv;?k5FVc zAwhI@gH)#!1#imv;Tpzm84o>Bm;)U=FURg|Bhe9hoz;?08|BI7Sne?;kL!nx_U~DP z`geQVi^V(Cjlj+V&Gwo+VhWSJ-bO@pcz!oHsW*D!Y(}fr=5%&JxWq(5Yh&upc;hm71t*=X6 zMz3YZM3RaiZYUQ?t~9y$4KPMy;K>+)3Wb{; za5?T*7svainIVvM8-{F8?jY5bRPD;PzT~)#TeSxNLVMQHfge5UVwk;hV`P-gL1tuQ zgl%4C%JO%H^Y-!)N(gQ4^r@3XWnsLIyPBWqEzh_Ulu8LsLVlh+B3e|@@QwDOHtOUH zT{?>o`BE*@KE0P^Ww)>pLk&5bw$xVZq8U!Nc}nBBblgI{+0FyGSu!(tmZuP~!o7kx zkg)ec+um@-vIW5Ye&GXX$z;4S^vlYmUWx5dZOSybG4bfjJMF_~g^<;Kq-&)yFpauG zQQ28PRn@-sh@RDA)M|puKL5SUjXxsIvjOtWQF`j(BHP6B+mot#<3Wh;Z7d~;r#jun z^T_|_L)2iRg0FYb4i#F?M5Nm;t-j%2I)rakK&;=Y05dT6C^Q>Gz3oWb~csk#33o-GvQ6e#n zgbpNCiXE;GlJ9U$d{#?o_#C$%2+#eIKs_3M&+z2EQg?1(G z#J>502y@tXbL{Y&eGCA;=a&5Z{3OQ?fLEhtJ{NO8Bxy)Xi(zDac!~~nPCQ*k z_`A@Wa^IP~(P2m4W`esS0jk_|@xK6if;ZOhPoezLu{F1|-Cn{AQDH$PYWqsa3EIF_}QjLIg9 z?f^&LucYo4CPn?pyzbJv)C$!uF@nO_pMsN@bmmDWwO9m_F|`3&&cKMgnL)9*rl`M9 zLL1lFduYgI-*8~Kmi=<&zIw*dSVH6KIL?n4Lhd4iCe|XU#z)Lo{T_XIFBteGGw90? zDjbL9@)ydI7u}vA(7iLUUJ;}SJsOaD9-7pXb7unhYA8|rjB8{kQg&n>L)@8Xz6kjJ zM0!!87n(>Qm=ZpJwd$kD+L%(o?X3q1>5pX4YGYV))%whIHp^$VFU7!}#rjITnV#jk z@fW^zi?FS|Km9R!;A*oL9FdWx$*7{OC37FMhkkO-DY5Bz8nd>f9ev$jrDXJV`o8m4 zdHG>$P~lvkuBR#*Kg1Eh%yiVyvsYb;1v;0R&-`~?2I20 zsn~&nM)%3pR^lbnUl< z5jBULF{%*aIAnO4*@&`{wj?S-4wYGs?!1nF49$rU(F22n(cLP1t6nP!-N)`LYbn^I2dRv7=N`i^m@i0Q+Dxh=+ zP!r@#dJ~g8WlpFVCj%O-Ntuo7x*}y!a?3*|9bNBLvfW}kns)9#`hgJWJ$kpk8TNLZ zz9Xk&vHn`p8Jlu|c$>T0pnA3)c9Gcn;FQ6_wWV)2+~Ogvk7Zq=M>S{>;cffnbUs?&ZYwXhAB7{ zQ4^%KUTq$^eE&*)?l@9ou<>wrG?dTU*PS^;vx&+EKo)6(&4B{q+^$Lh6Z1x_k1;qc zAytm-Q<6|M%@q_kx0&u<9a-**Sd98jmHqol5Y3?WAdBNA-#RE;XAGj2^GcN=3x&0HCvdYROUt)_SmHVGrFNcn2L&6-Ynpz^bCSr6)&z3sVCdIh{w?!cQ zGU`7>NB>eH2I7!iO6nj0$a&q``gV7=xJIc;tTLE+t9z!{-V&is`ABgVP(n)Mga__d zX;_zL+b6w>V#(cO-gPyYou2sOw7t02hf_H^kAA|e0g69qbSXcV;_c z>L=Ls?ZEtM$1HxgB;lD+8tCG{)O0>_sfD91jUgoTaCtvP-nn**bj98xT~1=>IN${Y(^2m-X%%f89Z15?_XZe-@uNWEAjkg8~D4 zW>b2-CeogJY6Bb-Qsa1wA=bBDG%5B>C@b&WJpL;z*yjS z-R^W;C6i*l|4Ed(4Xcn$^2V1FzAhR|AI`JXLi&_B$Ux9VzvtnU z^7$<_skQZ+ai&=|SFKx=&7ugPY~&)y#yDp4ht100HUeJ2$@Cb1T;Cc6flU-8tfRf% zQNW5mULPMX9-By+Wu6~4dj?6r%m2_fL>L%UnssF{RB|7-+B05=vFr?`+SfCeu`w@2 z^QCe-LldepfX03eka^CAgAc>!TDN^}@he0DniihkyQriJqFGuiYI%k)@^G^1m>M#L z*FMFrl}0$;x3Q|URaJNAXkql(rnR|y^UcsF-ot5$AJItLr_|)q-Ua)0o1%yIDgvCbf2EI$wtEi-rEx zY1-$NdylHV-vWP0mZlVIw3uVv)XH?Nz(guewa|;n!SugxA9jo{iJ$G>0TIU+$`}Bq zP;FLN{Jyc!d;Fkv(ez^2WIsR5mZJD3uKE=B!GU+uQ!2}S2%S1v-^-`>e_L<9F4VuW zr_q{ThLW@bj*3)7@7PMSP|9pNrKeh-uLZrR{4q_nF{Bj%2($VOrD*QYX5u;;ErhF+ z;d4z!O_&#$k`Hd^EG$o)>32)_r(b%;+MAu!tzD{n!+c7qb*EgodBS&_e8;nRmHFJ& zfiTvsFSxr-tFrsUfs)RvniL*aY1r?V%DlMqDq9n@q-F9SHuhg07nNXYJ4{-csq961 zpZ>_yBuO}X;gYSKwXJC=UdN>VIA4vM4i<=7!5^r z)2FYQ9Zx9gci#;g&L>ONX#R*wV%v?!b9ozM*q7P;Sp!5F5~h`wmOgGAqlV`zAnzXQ zV?TJzBhvTP5~nv`Aztr1PnAd5)R&v8M7B$H8QQ_GO?-n&yQz+AsqF-%a5SMFmWff| z<#^pwwj8_7tb6ibHI&Ei<)WcE-k}QKWyJR!RjuB_Ox0TI$WF&<5BoahurZdpp6()v z&!~ynK#q)zaI*07YHKW$F``{1Z=||PH=1%e?k01euSVM}eeho-^ke;{s7)Xd@ANbKH_p89ZSOWf63d=DVZ6|x9~2Z2W?wJFwDJ)E9^4|J z5Y>4o)8gopRtyKX=C-C-uRlKom_r1O(t9#twFN3q%L?IR%cS5vs7@sp1g-3BoJ~om zOx$#r5jd}+dC$E0j+&6#a=F_$k+FEBs{;|WW*5-Q z1xSLT9^@T;sa@d)U)2PO#SMLc#Bh9j0XxY?r_KgSRkuIv{c-&4;u-LJYDDIF! zqAFP+H!9tAAEB14xvDcB*H9kC!7%nIZ3 z`|`phEqd|1!fNS*bkY@=ySo~wvo=~8Avf!_0*VL6jy`c?|F-`05EwH|0AhVT(-UAQ z0{}sT;Ufa8Qk()cXN6p;qXxnvZQhHoq~_+n0!VmlF|NDyA^|9byY_?@zdO%8SI|#_ zHh^4@rXn#YrN4^tu^11MUS_}qhsePjl&00c{J7slPJ4h zk*g7Fz-|Fbyl7CL#h-4#Y_mRqJJsUeD4EKwrd(`uI;d5m$>Ds^i6b@Q6~72*cI&-P z5yz303KS#37T?;!p;wP#h%OWu$C>yoq;4kzIE{}Q#fA5hXgk27qcG+%U7RXp!9+Y;+?#z_AtY~ zn8+l{7PVC8bzEw>OuxwnT~;VWD@h80YflA3YTY9di z&q%5&vJ#$x`?+zvbTh9te6`20LxC8HMDXMc9OU>$eZWXlk$a#}B{d*3?Y~qu@8%uRCu*{dtY6 z2DM^dgf1INShdHsOZ)4g&-bT8`C$eoI`}$w=Nb(`K> zt5iVt@QZ4>p8tH9+fValAPjj{OsCV*)OMffA^NuqpOKtz%H0#i8uTH^+@*_&@WZcB zxk=|ri{t`mYa0MfpzRANL<=ehU0nV6qmAKy-~m*1!pG1H%OW3O={T=pS=&fCOlmob zRT>RST6>S9Ob1kyt+um}LSyrSw^Ni?0U0|XC(6V#s%`48;ZrCx`)(VnDA%BGJ+;y3 ztBW|O_8CrH)GF2H86-%~kx8@QiPyu^{KDUMZ}@8q^yIx%{kLsODY;H&aD4~3U!t)m zZ*>FFHY)tdkw)2eKWEky1|{T8m<;DmKQ}r&IRK>v#MtpBnqPi|-KqF6VB+V~e)h>? zvLxjJKBuArhxV&iXc-`Xb;#B$yY}?*#!ye!vk#EC)xU)g^y)_O5z0 zE-oDQIDhO}Jo~)Udui88xNR!#N&%}9-JMnH6Ni1Ul*s>DN;CAuBi#w^(!_if>1Zov zh0CdlA_=dO(Td&r!HCrMsIJ}GSqo|?|6qjgFtoT$k1t7iT#qY)r4pGtEeo;CC<%k) zv&Bub;b%=A8b(tihh&(Q)C+^bWt37$Y^+n-@lNM{%$r~jg7Tbp=>)?s*%CPJO_Zrl zA1v8z66U^C7)qRj{{a?DpxzSR^H#z9u#MSN5A?<%6_)e0Z?cnl_f!lhm|XVL zZ&M1PT=zkfd{F!apa<2M((ei_9|axWDGtrB&Q@UX zeW5@wGBLp~yUr)4r+v0m@ql3wjE18r6@L$`GXgC1;yi?pnjbjmQJ~?n7bHfr^g4q% zsY=Q})T<2c`bDkPZ=@bgaMKc65T`0L4qJ(MCw>HNw56}7Duf#CeX*hsc97XEOIt1q zP7p1327c;jKPHH)k|q6A{Ln)R*?v43AmRsc+tp9H;y2&byc(yeWz# z^^RpOa!8&{d&y-aq<1O7*h~hh_W9#H94a;Tof<}uPbA?HF+2L&ZHYT9sIyoq+FD~~ zvz#5!#LLV|TGYXmv>HGI&%=b+NBCawXqFOl+YJ^OMri`f9Or{v5&;5Ua+Ll;a$8b< zTLbNs{DyAqJ{8pf;#1BwTuLL*@E5lXyNk6iu-@Mc9YenFh#V9WGA54LoOy#p$g4@o zgT=nre45&Zr6I0oWCTWz%cZ&<_Ws4ola)91gn*hvs=#jltLPs7rVkaovaBrHYxvP~ zK2skeNJs~MRDK~vOfGSifFzuG$h8J`At0`CQlGp_iZt1qjJ2H#PWM>@QWqU*>vh-pYeLPTC zgeAzyp}(G)JO{=9IA_*z!Ceoy12w^LmgaISVJ35>8nq>ToDV|c7lBC)1dGg+0{%3XSFQL~E~6QD=o# z4SP5~*soBXsM89kv$o;yl#o6qsiF=%p6n7g@y*=%8m^1YKCySu{je|X%m?8ko7I!g zPDr;dj36UK4czOZp>ki?u}M`w^LF~IH>5D)Y_>Cc z-IGGi`U=kLG`mE!``c=&+AcOJ-hR3L{%X~A$ZTI%jBq1FsC>B*W~IJwjZ0`Yv5`^% zzV!)Eq+8%!hT%S2NMWjqPrdJ>7itSac+ zq`8l!G@0R!@Ma$*!>57gb{=3vD+Ph)mGzpj+ZRMeRkZ+S2o~jUt6(%@MGSdDzI>I5 zT%+y>#X!1f3w+JFk|}M>HvXN;nHh3b3E_}>uM%F^?N0#J*i7q7@jL$baR}6zcV>2m z6jwgv+o#y4Mb_D!?@-}w*6O$YDFJHetG^^b?Kr?oXtEGXuc3VXG6xZpZJ6gYx!QxM zmIX*xH58K(_sDVtrs4}E!6e}wQb~SVvFXGKr zB`fH60bi_wg~Bt+T$Us%FJv2dcUvjH|lR{n8F+iN*#o6p&}q-4?Vhah zw`&pz3;DGuDHwN$4XK-Wo#Sf#9a}o8+Tj=daOc5KU|I+UZe#k6N$@7yAop&=9(Z;F zziy_1vMx^lCpF#z`HK1SA2fB~x;PS8c}+*N1h=Uha&X?ZZhy{yU-5Qoz7?0jt2tI^ z*zXXVf@7#0Dfw|sBJ5xLp91WE(xVnX5|sqp53Q%Eeyzr=WCV^zJD)zgd{Y#{X`@;CI^^UIYO4H z@2b?$a=jL>(*d}O(W?_d;=0g7Kjjhp?Airs$f%N)eW({?RdDf z>p7C?M-I1t-OcIG`fZ7#l>dMC2( zGlkhJUsZq7pwsey$%aVxnCYHEwm4QfuzIvNz|GgV)bYHoK2y1%4j1eNh(s*CP9F^| z&>!2#^wSl5Kh}SBsPN@g?+i?_=6ry4%c}~S&4unmQwW0W9LQJ5?Epa@20pvQz4$tH zwD+~^&W-LYkEergXf$>Aebh$JUR>4yn1#lr$X+2+5TV>=O}ue6b2lN?+&A>2*5jY4 z>&&-aDTiHjP&2+1Z)3_)7@2|1koN?WgfUB-nE6Yj&V>7@9!u~;LZE}w&!=1dsA-#J zIFN9I!lW&_55l6eY(gqmIz>^@DkKMsy{x8bC5)?xOkjy(Fqk`tYdu}C#qInmZ190u z*ODXj1JS>c4ko^~>dKOk0qF(`v_y@nIY{#b-H96Ij`S4820PPoFuOP$rlV*BFj=Z? z46@o<-Nu$RMx*I(gO26DLGRW@sO)eeLBUXi!uP!kHiuBBp9$d)VqQD#R--8H({RX- zQEM0G<;nfX?*n`$*W^o?x5?x#1gk`Y>#1?aw<#TQ-vg+O;Rgyt-teRmG#?H>e(ON> z28hNi%?@zQ7#1hdA-DN>qG93^=Q($jpy2VV}-1yW#hMmH_e4LCT8Qs8Y3)gy@VWDGWNw)?I3s_s)r5gThLW)bTE%~91xraez9o3_jfn3u25Wem?h`G^*|YU z+etco9HupDWe&Ufhc638z=@FF*Q6jS;`goy=O83$F zpqc-*RLMfc%N5~mc8396HUPKapzwT;5T%@Xm7_Z`q#*O$oIu`emW&fM`?+`=9ktDB zPlipaCQY?KIl(dr(C9f+V_qxYtM_H4`(^v-fIjji$4QwSOgwrYdw^%zG%~$`jL?A& zsQrEZ`zDFN}` zOOT524!_Z`Y#!%423An@a`sm?wv5sX7dIwG>fSbaT-5zHQQ6}8J_6;V886_f!&z-W zZ9{?4N&;q?(d`lszIa8rLrdjsC(;VoOEZ;=)nA=pYrbFWjTX5EjKI3x0c!IZsfo*R zBdGXouSw}M)E8jCReMnyeb(h6l>y_!3}teilK;+tU6FuA)=7{TBpMU#PIgZtx!)}i z;gtrB?n2|C-KI;nNCsi|iBY>LFZ1jc$O?i6q^!)yKV#a1x) zG0RS(^*6RlTWg}6S0hE}YB4AH_2GP>^t;2b5?PFuMP!nnwRh?v@y`D0Aq&)kw2Ec( z_yApQ(2LFvZ}onAD-2N_`{BSBYQ#?gkJ(-)e5tq1#lpdEqz9mx7bL{?*97sTG|w9~ z2Di(1SZvddi!Q1Xd6?`E1?!!be8gc-*MlfiKZ!M%GePwv^>fxDI{ixS5#=CYGAe(j z`4LC2QS81O!AA#5A1UH?9iZcm_ga5ogH5Es@li4caGnhGksGa?k*btvqJd7savwI6 zPi@mOVJTpWde0+FzFhn7Uq>dE8;mYgf8+q-m^g`N$scv04rP8VCQ$9DeGiR+L*Dmk zt#-VyQz^+|R5`ya@tJkzLw1YgvyC)QZav>aFtdUQGC;t}vhc0{cNmj5dU1o7d#$BL zI|%`NoRUv1mRf43S#dhRU}x+%D1^vjOp7$;Bg>u2vtUXw_UVFW>#@dO41g^TsujvM zpUnQkuOqy~()F^Pa0(Obn;rLfk1$Wgh>YMrDX9<4ZuQWAHBNJ<*ljwJj%^1>X5J16 z>N^3}aXs|Z%@K!IS<-)RvNWyj8~zzr_cR9-9P)RrR9#3tV%97U{jLX*3|gGk5x~i| zjZHfNpkN3<38{pnf%Jrc2`nZ9vlXLz;v4OKe)^Ii2Z$;Jttb>J(-!-@n$vxMY>xkuxtraZ_hwm3dtffy{uZRNArpy(o>X{4=VZcLRrz3 zAw=F)x$d22j$okLg7VHTaDf0pg>KCEukXWy-`Wfk7ZoZLtFvYpe?$TJ-2+@^K_a?e zs?!Ua8?7gTxY-c3+2a~krXB2md2WcBcM4bZVONkPn)ULJIqgL2i$2wNX4+cCFO`N8 zKG(K?v~&WQVq>Rz0Ot%sy_neSR%;jx5aZjw8qrYo)FW246P>9teSh<9`SNTfyc3bJ zN!KyB`wjs1f-XVhb44vNJcw8HCRzGYuD`{YZ!L6q+`B{}6;H?#_bCUT(=M;=n~f;w z_#aP0_T2$o3$#W<$@!S<>(;w>b!1+&-aash>Tkdtzt=mqZ=m(wf_CZ7Y5efE!^{`R z5~2!V6sGM_?y$S6u7Dim>8ldugjgD-L+54;2ta2{3kr{^DP&UV7F|9{r)Rkw_EL5( zw)<|93?ie3|0;6vOYw483C6{Y`Goe#jny(&el!@bBk6I-vlqlii@qrL2QuH7u_-(` z$^izyFSg7%`SNea39RvAke3DNlAE}-;dXuzw>0EDyk02*I05b>77h0MPy-$I{C>YWyTl1+VG@5Ti>H?=b-{=S$Po-?~<-rVzP%zab zDlUtWqVtzV$5NYqwAaZ^VLy}iL@w}IQc247VFF=GkP`@EB`3OIB?SW>;KpcF#C$1n zSk``q26w@5cAM$Zuk>1!w-{$^4cyKOsb9#RS%jOeu_q~n=p??3@3Y?r;A^aFqZfmb z?%x(jlpk7Pgdh}?+vULo!}IwGqAJ8amk0WwA+tEL(s?WpklqE?n9nrAE?J@nB0$>3 zVq?^D93loK(x^W%qo9V|7O=xSz+nJwkv{6*uy;wR?xck(1)VPHwG0cjuZkFe{s_{g z4XP<63YZDnY@}t4hS!M-Be0k#6T}|~f7`%5#9mC*fJHfkK`Rvo(TJfv8I#j3N*5 zilvHSf9&UYb7Pu~WHjnqtB^UDMce{(Iu{oG%AH2@HXwiEab-pV0?6gvMvV|)cmm-F z>SVxRVdclXZmL(;lM8z96jx3?9&t zq8^aIsYAC)ge6>&Wqy{gDS9(1s2nUCV7jog_$_NO6@2eJKndb7wmg#r7f`<@h61H9;M!BW&=~hAfh<0VJr^Fcn5`?X+o_p>Hkzz5 z84-VwjUj=RFlG^s7l|S>DzK3y3 zv5O9HA_PGwK2Pm$D>)9mHC{;CVDH*R1J#9wg3n0@+I%hWSCA313~r0FR~zv%3>yIj zolrD|6#5!+>>dD6pUqI9Vcp!NU%dCx+CEgMaygGOOxJ@uHOKcEjY=^uy(fviv=2BL zi1}4P4O~4BxP-vmiCj@;f>wkp0IEWI{yxCr-}>f0K`-X0^!G+n9y8REq1r;rcWMTy z{XEroLjV2uyaP$C7Tfq~Wvs2)HGo^@tqMxlrHbaP=Con}fe!x50UXY;pmrwY4<~s7L1&IC_eZC3(AD1}^*L z?>73sR}KLIeQ9zI={vezdXNmnvp+Wu5NksKzx#|o()unF`tQGb4}mPPtwgJ__!;Po zG5O1g1cCJ`x2siC{#)h!qi_OsA#bHpFOkOETs@4B9!L%@)-gI~q;_|7ev`@Hk4Pkd zpjfOf#C@i#LF<^rW?pep{{pgHkVuLSi;X-6s|Ek3oBdajP^1)5jCqZ07yguDBG=u` z1QI~Lt~_s10p2C5LXM;&gk>FZN>3t7Zchw#wEYrDNOuCxj9azhtx5tGEM|76P^B~& zAP@-37jiZq6Qq8Amv;h1`pj#Sj~wK$Q8=ic^+P9Qd-^zBOaTnlnSym zGJzkD&SLCA(-rP1bp^DH#fGyNwBGIhma~bMdzlR=C$m8MMBHZJ^_|wvT$dFFr(cQlb9g@?FOC!{{~8 zt&!p&Cq!~Q^ksD$(0pQjEixWTR!i|`rR0SNPPrVSy>&SQo(Z?$&x!^k@g`@! zhS?6`0jr;kUVz&M0x``D4ZjmelrT~KjIUTfeJQ9O4ZMX^1p8AO;)X#yOkIm7I}bPx zgpp8nC4QF!{BwvpX2jT0;rOr}ekq?{Y7l$@H)JpH4w~dyM8F+OV=M-?jtNE+^Qx-f zLUi@ZpBR|svoj|f4fux1?)E|3+cprgc7pBm*@aEI#B?Pt!rE(x9}3p-Zdr*2pg(}U zVjG#r4e-#wTj}bxWrPwyLG`jeL+!J9@_RXx_aZz14j;2?|67Apq@>r_QaVl*@Bd^1>NP2$VUCXOPCx&?e0Q(;$Zm~$)E@E?So#0(ZGXRyssL1BQ2xx|hr0vv zPf7`VxgawzTK~P(|4Q}0d-cD^>d#t*5Awgt>c4vR|KD1PV)Q2J&)*r~e|J>>dPgss z4EIm9}p#OtH!;QnNCvt%Jb$sQ^I zk>07FUM*v_b}BP+Jc2TrF5GfzPodA{^2=^{4q>s>oSs;Mr30TcWNnv z0HT+*kN&3C>9!@7$A#O>P;Y%erW2q`ooSw_s5lIovfZb9;VG`5clVge>J9V<2_g_* z+Fa;Zlp7E4?i=~#gLn;EipY2Z0r4)j-Q%VwZqUoi_d@{O8w@-ue?|<+#J_Hg zNDLYj?T`m!(^G)*NnDnj;b>?&80~>Q=hZpI6MNFV)F-zd)D2pmY(|sG!VN!`(?rp5 ze%%3z#;1$|mC{?@nZgpCrZdWe)*n1LcAC^n0)WY@O>00W-78P2GOUh+LD~S+CuuSg z?vHtSU&GOE__of7!sBN4fYQ5bCkrjD~C;#lCKCBcj>39(Tj{T217CJRew)<3Ry zK95XQ8VBX?NjV_2r!A3yqC;Z2W*4bgZcG-5xT_c{TG^Vn4>{C9n*cu;KgJ*GYFMS( z;%1upgnCm1q$Y)SrjHdPrBk_y0R)SR)mf-oUhyc@o}>~Eg#eXSg+T@rt2HRdY99_k zklY(I1qPRwHc^0_1vQ8{h%dySpMf%AF~zvUHCj>6P4e;bVh#2Xq>3GL@pn&6JG30< z%<(_4Ujtxb!g5!T!8_(VPxypo_1qX*SPR2~ej``A{;iXSdJbIy=-&(vFZVW7FUuQV zbV^|^IIE)b94o2-@;i?3Y?G;i>hG6l@d>=<1qob^(iK!t+(rSE+~_7_>)P2>{P$*u zZ7N>WOVi8>(1YwJnotOqN^cttXn4*-1LbVZPF4EGSiP~d@%eRPkB0IZE-tpmf+mXh zA}h`1^WAD+PYJs*+rk=K2=-{vY1RcETa=uyu(Nl*EpW^pg^gmEL&_YSJIyial!D0b z8MPk=Im}F9YlZhl^wxllnB!29UgM%NX*pm)P~;OcIyyY9cTO#?nJhIC*IH)-uOyqiZYd1(% zc6J%`e}nQ{zFnSG&UM>66FgsspZvuIKOVEx`l5~bczcY|9g-lM#P4Dw5XU}l|Jc>i z?Ed$7yB3c0B) zBj{7;DF4q-z6e`mCA9~{U)ppvdVLcLwip4Cp8--VGO8_a8bhOP>gV&!W#59q<79!; zxLq6!;Qjn+d5LAa(28%(`+qbGV{I@do87I?2WS}=;~Q+Ev$I!9P^Rh)>^uWaWS4{u z(vR0h6VJ0a9Uo%r>Sa^!EiZGUFB(>oA=1ai7l=s?5Q?>%CBg_e)Tg2#L`P++f9VbeqR>CR|L;dq z_WwPSlLa%8pU5=>3niCQWXc9mIzo1lxnHdg*z(;IRP=(pCb zRqFFm0pqD_fHuAb()6jax>N*A(|gp=PLQ~tIMKROh9M8#XL9|{A7=atuJrx()F zr?!?-0(2sP0G)w8(0Cv{4h4j!8zMzc%Ee(*dYMXD#NJ|ULcVPK^WmS zn+B5Z^F`wSGTBFe=$_g)8n(*Y=)uDD{(m^&|5z0L13m+8rwhP7Q@YI~Z9tIN1+e#A z<1Ec=*(~3UKmx0=JYFkemovbH~?8f{eUPMs1YX?6CZ8u7Y>*a7j&bjuHG(XsP2Z(OI z1iVq>;wQmkUx{VsUi-Jhcf7td>{gT|9LQ+>!JkXh6o$uAu*#LALH;jdq6+(_i`j&O zQIoSwX3>gy`z?~#_DGDFW{ZQkZo|3{%p*j72wW6&UsRG4D-Z%OU=J@bqZyVe3`ZG8 zGI;W^(M2ha71J$|^zE4%zX`~sdu;U3afB#P%1GeQ1`#?M!#O3ftmexD*~70@+sy`G zJqiVs9FnOnRRj^whX_JG8V2!aajfEN*(L6L^*%`T6N(d1_%pOImgTo`wk|aDXy~j3bblf<#q(1I@44*M1?_g4sO8em z0KYm=(Cw|U3*#Bsj_x{Xx6zg1HoE}V*%o$tFimR~QWC*rxlr{%r{(EGf``so`q5&o zN(;wDx9!(Yea;k~56Cn%K#*QvVr#H-{O>-FsbCoQHEtCSM!&cpAS>rbO`ilu+QDRS zO&w$RwmP>9N3F#Q)#?7a@b0l!;w`*+{S(PS{|hwXNR%B={`Q`^IhPnKL^Z)_Qv6j)W;o0V3H@rct0wI(c0GEeL8o7$&C z1ZMrrNmiS6R~dO2q*RG`2Uf|GGUt;<+Xi{^_2%2J}!`Z<-{eSdx#+SUHtZ7hEArX)7jdqvQ3E#mt|xw%#+eLzBc6@2R%v%jF<%JE1rMwsB-Cv#Cb9Tk&k;{udZoFJ zO9)4O#P9U!6`J?1B^M((c#ng4{$at zrLV717P!@N-Q$-VohS+{vo{?s7RxprK4oN?$?P@hn}0&fDNBjvp8vLLMeJ!^Wy+}2 zQvA?h67--jyV%|RZw488OQlxfpU8g92Z-gThTljy4Cr7$jk8SiQ-;198BMyZcJOox zbsTccbG=;b+8bw73(Avv{7kL1W+a7l@J|P-x*7H0LRAwTpCKDNzRx-Q?~0w}A@o%2 z7VDN$TxQTiIU!qoyg9w*xz+K!4rt3LVzrnPc5vNMo9&dZoc{{h$C&&hb-p)Hq~ATT z(GJhk7gEW(LvtWGg$=`xv@?nYq}1VxTXkqd2W^Z^O!Am}@}o6TyXJ(F*6FwaK8<;=8wWPhBt_ zfl*M3(ngBR&A;mP7_lXgMr$ z$bS2^Ti%P7!SydEITmRpe+u=^@FVkj9gMq?t4A|NX+LSJP3T<1HQxb$@-8!Oh3Tdn zv+IR0*b%HQV;4qKI5J!w)2OX_nO$z5tMF#dSG{#gW?;wRX%vge;n0Xmy&f)+jX}s3 zDS!W8!$Bi%8gl|4&Rc8kV^P zN79W>$J;D+Wera(_usxHgi9+7HKirMe7{{?72Q4#rfm4RGps>gD8T&V^1*zw8_;$} zB62mFu0ZQR%+_W^7|R2g$F~{cDxoeMe8H~X%8-gL$i)1@C`2!1FPGU4`xU_qeksF< zo4tiT;v%j{nZ??iA~9XN%pq-2Ki2b#HaBH?>I!nbaB_f?Zx9)Y|Yz z4(a9Hx|3QLT-M_o(vn$`n*g*{9!POs@e*S1tKEo_Va}*+_k$zXKXtP$|IZo1;+cn+ zY->P#F5~$kbk7x8EA9SV-=Ys(Yo+Z=UdGX|Ao3EECZ|LH%I^TG`ajBL; z6CnCUf8}-{u85>H$vM<)+FW(Cr3Kp0b+zAdaHsE@ycy3NoJQx6_R6`9i1>j_aRNk= zNL<+ER_hFpmp=&Jt%giHX7;zu6;jKpUP0*2f#*{92ZQs4t3O^1=kyK!?p0eYR?+bk z8M>WNK3IPA{^czdx3sT7+1-g&dwKV5$xaf_r;b$h5M#9NWG&_P)$U@I)w+_NKT|)& z%EBp5E;@##mg)r&&rZhpui884e}`6UPE}USf|$_qrb9;CiMv%za6FwFooFksJRW7W z`EAs<7xtpl;9cnBzu^_jPk%KdG2vv}e`2h9rC9+HNT14(V7+ zDTZT3QcL}6p%TG(g_3!#7iE}!>)i&+U)^@zR%DrB&U!#-L^(h+^|T}7l~jQdqP9Dc zd2?w2+QeB0lr~bB%)<3@u7Inu}?cI*uq_+0&| zK;G2GqX$y{LYey|_V_ok#u>+kC{0N?x_^58(D;kF@BQHU^58UvF58b1sO03Y9#=1w z^HvxlKmck8WrmxmVu89;n2T+`PMWo<-je$&%to{rcfAOr2nk%_d64n#wj5)FXZ~>L zC!-;%bZ@VpRFun@4gG9Iv&N0L*stGUW9p3D@LJ9sFF>KfUPyl*h!t1QZ6XsvT(7#CC~gfZ_n5;@3%ZWMnIy%DKWiLwwN zDYd@2-CCA~pj~o{-59Ru(sSu|naF_vE?X>Q2~>REZ&xSNQYCtDueXHI_>R~!e;xv~ zfHd<-oObXb;QiAT^(RZ@98`kmUnv)`vm47UdUFWp7PSn8n+s*DP;$SGEEi3f?>HRx z5SXt5eDpgX9BcHh+Uq(3lvI(q=MZDR3N4nfd!L1QddKc^X4OJLZWvA44tynR9 zB!{EBx_t6hNdp~MwI|1iDh;Mt7?Duy7{?KW#fvq9*(y_eTk~ePja<1-;KcHFY~~%e z_Mqf;I--liy`|u`dj3p!+4nn5_;T^|ZKpPFj!|yn?(t39)AJh7&76TuzK>{Q6_WuW zQu}X)XL)?nW&y{F+^%vYomN3IQ`oV^-vQJu)R7V&>zvD4`L!+L;ZWNL7$;<*{Boke zk>jGclo{scN#h^jd%9D{`PaC%(FbuvrQlcQ56wm=scbb>PU7H=A_%Gw9rDN8x=rcx zfw_e4Ulana^nqn}zQ<^s^MN<&PzfQFNd*eDH?ynqki!%9UG6fCfglfow zkX`x3PyNi7e4cOOWN@{!n;$#IeB?n~m-$uyc=}oLD>OgFPHD&s;WmPJDIT%Qc<-|U15829706poLY%Ml+e3)iNgaLP2% zf5$gxOwrvn5jg_oXl;U{Z4>ioj<~{BvCZj9hKDHr_AB2;13B$IlM#NpAm&Aw5Wn{o zWb;KT0_TBMPW<*e-(g^k=rqT;ayTjlWu58~gR&+0C=sM4rGsm&pocf7wfKHRx z#!TSz8uZC196(1u@eUjm>}c_HcdJ$wRxdeiSd?FAgLbd{M!@1cRvt)BF-ikX{F1f# zLl6%6NsuWYrO0{ciSv9HaXOlg7XHaPg0^_XIZAmiG2C~aBP;%+R7&uP{NE46P;r>W zm+|zEY9kC>nfSkPg-f*ZO7&4gJ73wgxh>r>d(n@*nUy>yvM7UFK_%v=0++LVJ^YVD z0;*S4A5d7N!IH@ckkwBn9O8W*Jz+@zbcN}bnrIHjRt-6hV#vNBo@2Bd-0a?N1_h_j zo8j%(0I(UT(wS)Iv(jTm%0*eha(LjdP%T@cTu-0Qmz%^d&R57wuiK1J9&npwsF*5H z2wi84kcVk|czTrtw1#CBbFncju@YY?4uFsNboNI~1Z7l7ne&(4*EnRrpD9y?icPmt zElFFKS)^7O@9;`ac6oQk?hkajwY?ESapiTRjuPsUKGWAw{)p8eRHCt<7{fzG7#0>6 zNp9Y!{DZEJ4>;Gj2UN&MaZ#g;yyBW5zmRFw-iAR( zjx^wmd&*^WPnx0Cc=Pu3E7Il7F|m^Ce2rzONBV5RyaNK#pdwW!3E_4d(NY<`c9SgR z=8CvZHxpd~0lBm+p^{ox1l8H}`jA6$6{l&}GPeT3ksy}cMLOz4^q!$T4K?-yLg+je zt_42#mdJRsJ5Ho>x-6!iEG&$8)ZoOI_mx;qr}GpH5O?tgNI#`j9L!77_w=(_sTq6V z!nox;e9d4aI_QRQ{WBh@zY6gb`&e4I*vzMuPa@o|kMiiK9P4r{Vjh+y2OhUsg{

;Rykx}#{kPMz&ag1NxQR6>(_z`%a*UL( z@rrSXy*ErH`+aUO;Wl2HUF44DQ(R=1_M7zM&HlkG^C}X8^Xcl9J80Y1@2_ntcbxMZ zO7(MTvLzF&?a%g4BSRa!^$qj5x>$r(}L4(tGrl)B^b2XA$cH;pA3M84EY~=%2)jR@IjTZBmUFSz($vK7%6kl$*u3CuBXH1ZI4U$-bgclBT zp{YuL<}1{uo52`J4YvyghBC-FOK&+%F=)&5j>S)fq)1>D_0ee?YjEhog&!i@`QPT$ z6=-tlLA}1Eo#@thBs|TxY87e^eiqX)WqM^elP!W|5xPUq&opzM#rW35n}phOPxsLz z>j+~GnibV|woOndZUW9KnYj@TatvU(pBHu?)3r6Qd%(VZgEQ*j`bpP0O#J@lu=pWO zW`5*g()q{G?xq!kyQ60ReEOK_LnDe(TG*9FP18SWgWviWgZE23!~1cgVur_{{7urt zd-%-)L72zI85NqhFTmDhliH@`TwS%{v7b9GIO;KZp4rOfcBM)?Vsk7k?{z}EEW8xe z(~~%W#%cV*NBpUK7)a!EcujTZ{ejM>&vwU!?0LSj^`Bv+J#s1chy>_2<{^A;S3jq4 zN9Fyx`rOhQY6pTEiW5H?d(vrL*temGvwk~=7wlb6cRx{i1o9Nq>~>AZu{$&?tE$)R ze@ch%_F$OJXDF?(y=*ezioPO$$zBgdCA&D4!e=-8kQwzOj+NV>)K8#&XI>-uK@${L z8XE6&fjAS5(wMW5Dku@k`PeDDa&(DGjqNrHSP5ukMT+TM|D?b}emI(pC_l!%L?I?z z0lO`x?b$`-MWdFqEaE5+|`V~^;Zbsy3=6V<3?FysTz31^w>iQBuG2X!CR}Vei37!9a z>THnv!y4_!zwCY`2ebQ7r_6e=Dn9?WKuyf7sJ>K>swx#@mH+K^L%jzat+u)rs5fei`~k3~D^*4q{G^QlQKCCcVBhuwnLe#HOw0s!`u$ueE_Kv{`1|9DM- z4_Bnyp0cNATaWAKKQqL<-=f>@ThBn6eM%Y2&O~&+%VT%TckAkqv?JV{is|MeWAl=^ zgnParTlNN?@-n2FVWGyeZ{Q&eZ!!*v`0&S)T9r*pA!y-)qObwv5bOcv>}iebu+TBF zoIqB-h$}FknWrlsE;q576|0lIvjtq5R>PX-gz`CpVNgMppoVUU1KAsqYHB87e14Bu zH{!AMW75Md{^rKU>eoZ&sSnS5oeyVbssIGV*9JgX+=P&?3127P{5sPi-|t=e(F=#}xw@RvMt zn=ax&FXi_|=jlSQaMrb+zg{H%DnYeABed()Xq1cnf$c+UX^8wne!1^#Vj+Y&R$1j z`4$R$SC!*45@xuIQ#0bseG>0I;i8Yr)O<2x$GY`KS1ov$KfNP0$q-Nd0ZmGCuq?a? zc!q@1`H%tw$cYEVx#cn7eT0@C;aez;yx^;TE3yT!6Q2>r`%zaff zm^Utz>OottN@aTuYoTYJGfVIUs3Q8`tUK>ANx3{v>RK-st!(!u;6sg%Qv8jZXb z0iYzT-U#yTP%`~3qpuaKvrQtfprqq@AMk`qUi|pGllLP$#r5s0%9P_+b_DmkGd-?G z*I4|uu2c2u!$Q2UIW$FCw3L&Bp`=ennsM7ffXx8yip$9og0Mqo{tV1a%Te0dErYZRuA zZ??5amnAxzs|u>x#jkG5zq0c}o3uZ^WjF^L*0pKDCTT|ha{Ac)c{Pe-TJdCWoxfHF zhU2umyz3hwHhR@X=ISF#IiP9yB17W+>|u7pD(_oCF=yM>G4WMpa0NtzSk3*zeOE4f zLahYC5D&^upZu9w^L+GCQjQm$$;}p>j~7JnCH+rR4ju4f&~+}tWhp2Un%LjHVx`l4 z#clYe7#gE0JyAQdhuovKh2vW2{DI&!KVV)jX}c;@fz4=0G8-av8=Ay&%(KZo3^?{f ztyd~iEnAUnt@8}=hlkvhBflqMDW)oy)3MWd_>QKpvG6Z>YAA=E$~BDJgLz3KfLm`6 zPa08z5jn?AqYjg$@?$@fy4egc^#{-H{#6+i643 zVWaCkUV6+|^9GJ(r6jP3-#eYO&KnptWAH?>J*mP`-+wJ{=}Qps&c3{pD^Yjc)`os8 z=Oq^KDxQUdh4UEVv`tgk80E>*(j*-Q>`PCPwZqcpxO{yceBT=!>OxH@?zmN1P^k>l z=%6=#Y&q<2y+wyXzt_|Wk+$n+q*ZbGW_Gy~K9h+Dodly(ildh)xhk1Dn7*v~w8(Z= zy-M4hV~HwDQde75+b^g>Z$qn3DSKh&GjX-%1M`r#hz%oU-I6p$<=@e!RA4g0gPU`A zH0k1;VHMpEvvyIT2$$q>)NyZ5_wTFP=NTSTapSaR_<*YN&8Gi5Wt{*DK5K>aa7+&x zwIDPkVrw{Mv}7(?o^do?azjUj&aYseX9v*%T|M$@v8mP0z3~PIDy@r9hR|wJPNG( z?K}W!nlFqA4)}cpTz`NPu;n1XLysnEM z#nPHQAC=F?#U}ZTU_9M($6DT6Cn9d<+D&K?0hlr$_#7_$XipH7k)YmRoG=y;WlaMA>_Hri+F5y;pqe&98 z_a#eZoSU(>MEB#V73H-?6eUvF`RVV(waazWM{}5vV3iBr4w3t|dRapk%?fzdDRi#o znFf?BZ@Y%h&epeaJ$gkj?;T5`5`C3j`aYOEOeA3fR5E&vl|F{Ol!JuAYB+1{6;$iNN zj=Yj+9%7L&GoB9XSbpze6k8hIglNF;dT=`oCWigKz8+*e(h(BiCowyFlQsKHu z%496o+Xtm8RZBwrY1_e?i*;=?Tez&fp{4%UBPrrTVXcps*wH}*xD}WYP9;-Eit6Ez zV>jH=Fm&$E9Esp0ZHTueclz0*;^k|XvY(6&SLZsW%j2i*mbtx=8G*Nt#WR>n>rYtU z&Zhf%*RAnt^*qj3T$rDU0q9|h3Fa^RPUNwW9ga=~57n1%NJiWZG~?G?IvT}D2!`)q zPXx4D<$znQW~sI$A%x(`w19j$H_4ZGZ=Q?OiY8#lCc1+7+aqD+D<%RQOPNZ-AD>=h z=ww2CJ|FTovOAPN35`>p#U%iCOOkdKR*1Lp3?A(xZYrmmc4HMUArfnbn&kugx|xg% zO^hoq*TMHD4cQTwn9hl`Q&EG!xOw6$C&E!MXOV|PX%;@v-sg^6j(qiiHq6KM?>XDMe?v;TFyc;856XTwv2%R~-89+uyLrWqO=970%xcZq6X2ipB#6+#%RFDb!!c zV;SPD;!A&39U-;ZLBUXhD^Vq(10{rm86LhVkY%FRcS9Np`#b!uCdYO>gY-q=(`;9E z<1G0!+b!-x?ea`2qM=at$l2=>9bF3*r@x2AP@f zG7KrGm-=y(u0tnD6R9>NXvRofEvhuwB#?_ePO*WMI0Y-Ws-kq^clFOvJ%|qty!Dr= z=1lD`%uDj7=eKD>b=h`lA+lhv;j_NCOU|mT(i|Pm;7}SwFpv`9vY>hW zVo+puC#CqBxf<-g_10Q;_=;}fTkAO31KIH|XKS$;@B=R6hP*g%KljCgUSTVscgrT^#uf9b>P z^BDm4@~O{Mm@<3tnUE%nd34%jiP@zb!TMIghPNUvRpU%B*oR99`zuOF1Fvw#-+ByQ zJ$O8L2!24WAVfz+WX&jD zCEwyoJx0_S@^!6&DT%o~mbqha8AMybfgFE&^jj%i=K|`QoOhfiVXt=jH)i$= z@6St7AL~x%=DkNl3(Q+?u$v8b%cVD)T#>dGh9Z9gIoi)U0E3&WGzn%I1PjXvgEM@5 z_#$o^GC_mpExVEFr<5nH#kE|VRF~_3=V*$}wd{Ns$|$}q#aM@Jb^=$I!7eyRKm=kD1YX zr+0~d@11t9ne8(%XHv>5YA;#JIv*FlkSga%^U39!IVzEME{6%c;kQ25ukmGUuPf(Z z)-pO?uI<&3JxpyKU_68la;nfG=o%Yueppy^n>{Vzz@hUJL-%vw?GdM@64`5l38YgF>eq#F#qz9af{^O(9>pc9?J#7&q+BXS*vhW8i2{>o z{Q)U5qZFYlU7DM}e`In(`}v}78uRR46X=jYUbUucFgj-BH9gw%VtPXB>}y|j&b1L6 z{w;I(<+c*+k?h!vVOfzA-`})SECZ;E$43a0v1y|h&k(PD2JF{1E@=3iAXs_|$@nO^ zkMrA!+v1*m3#hnbGB#CSyxboq=eFd z-e{lP!%8TQI0Mlgp?v?&%GUFsifF`5z+=7Ql$rgM8P@3r%)c|Q=PT;n`~FJzw4weJ zFn=^?Kd86&mi4ArU!o>*KSG>dAEYo2t#U7KcG6%iv{_0SfvuIS~}c# zh$BwZCy|@uMz7x+U6(!>=Bf*z?c%dqke3q$V|!3C-@&whMtbU1*gzCkXntSVq)*>s zrIisoW0w|}-JWV0bYoH~>N;iHG^pdrrtuGz%doO|vMgF-SW79!;`jrNyF2tL#gZcR z@*_eK7KhRMl~VBou40y(qe_`j%JicTYuw)mYISF1^h{X;TH{O9Lowv#*nkjYALq%q zmfW-Y)iOglS7wQZrSv`TRcNsow|Fg1RESNulhnm7qwerCvzF=e`J=Ujt)G)i{l#|o zg`wm$7S@&pA$@d93(AG59a;{gba1Z$g`NKrk7Ls&TtKsxtXbwQKu7WjMsEDeDiW^? z?wcMO7^1l6S5JfHjT|6OcLQjn|5V~)P%P>o+~GH}>$={0KP52^nOKX32wb-WF#mTe z$na$u$%2d*BmKI8k+eqGC94&ZaIH7uzb`;~QUCQuOO|p$NWNzI#n_p)L(@(<5Tr4B#ds-t^7SzT=h-2Jq9G5>|234AzOxOKx zEN->UL=*YZZpl;?^bX_cH_oDkHqNqy4(>sQ)Mk$qeRudh>C|kXK2ni9Utg>S`){p9CHt`Z%<}^(X2n5a1ArbqF(O2m{42cvsPq2$8kK@D7|HDSymsZ ztGnwMLd`*{7jL+|-X$pOz_(=Tiq?cq_$(B}%UIFpNNYA*NNdcX6m@tME49Uq&eHiZ z>zzq;vEOUPtiob##OFINmEp-f$$LEeOuhfipxVAhGc!#~vOKs>w9_A>a*f4=BsqB6 zS~Amkewd}jg8l`U%1W11qrssG#|H^#M6$EopUtHhiOizcf-J@ILbnpn!oz66=zaT6 zXa8Y#mdx6B*G{|yH8c`pamyGkwfL?47`ay4( z?R^M=$89U*#+_?L`77_U3#HtjZ>G7J`^$|P?}OZxsjW171D~HCt><@AY5ti$48IR0 zCQN-oZGE~3y%JUs<-Hu593XsgvA=f*z+jp`wDG7*Gxa+Uc4Rv?gkV=y z)Zv??*R!~TM^)tkxdA(O7q!~&)LC! zM%0!JS`Fmo*c}r0HK*!+KQCYdaG~$K@g_<6v{E#C&%O2{PKEcW=Wa@8Ul_zhCorp^+43ZKt8(}Rdy_N$T+O<&ZY zZdLF6+74R1`~tJ34&8G$$X61$G$-}3PjGaG>_)e$$-vvmgfXOvb{PA&lrZ~CO5a0| zq;s8W)j~oh(T@$m&@!hu)ZH!Y;~aovDtZ6JIWc6eYylpE_zwpwk3?@1!=ZnZ(StYB znY+O8Zv;ma{YB2bURnyV7bhK!;!l;O&q?J##zxCsM?PQeo>y!g5`1B2`TlExeC zTLUmG#_?h;2AkQGEG4(&0o7UFYx5TV+a;3f8$?Ww^ey1<31PQX?`QjQS>)Kdu04!d z#hmWdP&8L#+1Q598j!mIXYODy6K+awq7CzUoGj7-o!Em(i8>6tYF-67^*Z>D#LAWK zK;iPoHzP)LwG=(%sqRnogx98a7f9CA7c|`|%#<|UzE(=Vi+0w@a^e4g(8gWTT9q^D zeRo`@TYgx06;RSWtN594#41#ffN#(3{(^$pWDTlJg5da12Se#s9_5;ET(pv_9%Rc- zeS)Ia5-F)16r&9s@TlZ>2dq3g%0_%giF(7FN4_`>JC(~PsjkQp$n=Sxm|=;PEtz)& zJVvo9xl(qv?1R2|0_snOe*1OnZ;^kti-g4McT4Uqe_!mN&yENB;{&b8#a|SXuDrb% z)In{eTo?*SM!kv3VGk}O8h0xKjx_BDi>J;k!4lIpUbm@6xCqw%0XloHk#;o_ri;}y zj#Yp(sKnEcSoL?8=H2p}_nkb^vW$q=;xIX-lpGBXa@A+n<@DHbJU|*Cl!kvXQO{BriI8JO7Y2|hX*o7w1fkXrO_l(+M zFQ}d6h04bb!N1rJqiw3*MI|ZqB(oY0#;M#-F0y$)ovE9KxaOOMHCxv<3O^#VbgH>%H;-W^U+G07c%x1VM_ zkwaaYKs~#X)fcJpg?bOlNX*n=4MYhdN6X8;gQ0nY#qnzWjkPY7j@fJh?N~uKG2PKq zT*U;$|0bAzIxZL+=Y|87uv9qsmzxU1&j#s{y0a4+Xe;I_O-c`qjl=Twxp*eH7*92w zj$5Ps3BwYL2j>2^Hw1gA-1+4ufx0!ZM4Xq{XdU01YfShsEsTQZPq>$6m+Ci5w2wzN z=Rn{!BXC-nr1dPoxBt9HzTXJDqgDEpo+azc{>A|H%^KcF(q!W&=ux5SgYy|uQP%#N z#-n5`7IapusFhDY9@7>gUorjLLv}W7xxgpYqTk#PJR&zv$-D9huT)8o*^La6VOUo} z5*c;8BJ;e}l4MU=tvpiH9VQHPU7-gEC*3AARAqLDxM}NK-LrJ}3R2S}Ml)`II~E$1 zxO7W}Cs!96T<(1w*4I1nZ`5YL+%OlwbnU*)bvgeP97|YwUk9qf?oJlVN;-k*u>9uO zX(C7bP=z30e9~xUTcg&}mIYPK%!8#!vA{^pO#^5CsH%=HYq?o!#7NHkdEVdt;q6nE z-*1lgZ>bsH>K3nkdPV zFV1#XgOC@WHpD$OHV}3cb28Ep3S>NAW$1@R8l4Ec9-mTRuD={0KJRhupU%l#O>S&-fCW&ew5Q!bn3|J-)6>@NQ~_?I#)jn%In zMzyk@4;p{Uyd5Me@BW^#a2rQT&KjxDl6{1%{8C-n%9^osL(J+Q*Erov!EC98_fpH zm-M!6iBW9`T}i7J-g(6KaEeQ27lUSg1dsytg*4d4EN=O_Bl;=NAR554tgpD(|GIP8 z+0|cb%Nkg1vQshg1 zb^kg9T}b5TZJ-d(C{v#9TLA%S@vJhG3qg(^tzM&Q zEJEmM$ZKNR+=E%C+9an5lgKbs4R74m+Put_VX?pT-u^9oe-x+-7klq14{!PG2VJ82 zcZ1zn{v=CwYA`E%+d(@c_Vi&$rseHsPb-5~wyQOK$C+TL0D}V1gs-z_mX!5k!%PDk zPc16FMzXB&o}W#1ZX5y#IKphsX?3t(<;0Bwk@ccF3`5Qn+p~|vJJSd1K#B@?X*)jmw7jLkq%IwQ?v>@h90klnU zQ~9=1_q359{@kpVbB$Z7c2Kh4i9|D3u*PELJsZmt-~%?@XKR*)%z6}St@v`gZHk07 zp~D#ypFd~A#+-FN_1rI)g^lqGqBGTLnc1CB*EluK`M?-0Zwsdk`OpPe4v0i=W@C7^%`AUa! z<%oiEMD7lAoOB*%?S@>4QYrOa^uMJ^O{Lg5h07vA6l_fi%B;kG?RD|M=X9`~xGZmr zVOZ|SszFn!tL_9-56ZrxR6HC8(8ep2Yxcq(E9D5X9O9bQ(;y-QZ&CAsiH03K5NoNZp zQCUt^uE}&U=+&HlT?-Rbmx<4@31zmpll%~8@s+YR6}VMVg6aBj-7TouFgpvKnY4h2@ATA|tZCvkx49kwrBr{FUv)^A2> z=m@~V^jBw!!<)%2mCrF@X4dZ-+-TBNO++VvZGr62?hClI($K+u)xl+#S7Tj>YYEe| zXap*=1I!jurcXAGD)&JS1(i<6#53D2jI_!QwKW}Xn6mjRbXWo6SW2^8Ps>PK5W8eO zCf*@64nl5Tnu$SoM728ImeGhe2fsO1-BiLd&i=TZ+>^GG6UWW^XKSNkA>>^)fSQr( za6vC(&#IUzqp-?hZcMl1?aLfP@NZt1_F8`2zr{zI)EE6(1ZqZf9AZXO;x{iAZy>j; zdl@s>*8^Mq7$vKTNfEF3rU*(wH5>o@&cW}Q;I4WQWc`zC)%y^C=zLYRa~n{4g($GM z#?865;aZJoh_gj1I#VUiMR7rF=I94sJMHHHdK|*O9WW9 zjiF^><^i9w7ThW2v@&+n{m!fQ86`omQ;<95B+m&nf#jVTxavWk|C@ElDXF{J1Isah z#y2IcSfo5X51UO_(`8gF7k{rh!~j<`_S2dk$37qv=7$2+wb21o|k+V zT?m)!fWu#tbq`x8!bio~{?~JF2KF<CRL|CJ~{!T55llQ zHz*{iI2?e}jvnO2A?~wm(O+grQW!TkT$lK)!V|lxO8b^l+u z71u|pMIV)7HDD}a@OedqKG&10Pp?h?C*{C*tshA97`&#yBN^iyYsPPf$K~ zHA2YK<$a-pS09L3j6`bP!Ys&3f%CcxlAB`zE!zU3J(ZiTCUChV&)v39&eLl1e)73H z7a3z*Q^m4&hv49_nNQWMWVF6;)AK*+Cex?Zu6Rf_JuGOLjlBz52FhUc)`4pbP%lLC z{40LjWdtZ-lkP8Y-r_zb0~Lx|D+Th-g6P4vE>(-WPm>Oq?sDsD^1Pm1|GGQ{=fzQ& zY4s})Hr)#xXf4v8lyJekb)BYTnN7FG22A0gMB`#OwtbJ6r<6jQ7WYw=y&SJoQG4dV`@S1pZ^Ga_zEYQ z*UqmQs#n|&9p`JB*$Jj7jH)umyrvJ^ml%yt3#^+g9*LsOH!|rpb4=va68fC7ij7GU z)wuPZ62B7+!9?~*B^O$AFNI2F@GDrvuG(M016yg~Qo2%^oPyUQ##6oXFD3jkL9oAUi$YsA6#0>Kit zN{OUs8`)UKcitm0D@AAoeJ1;n3~*l75Ytv1D%G#7`Kwe}5C)XjA7zqEcq;oc?tV=W z+l1t`dRCe2V{mp;L|L~gm?obKe{t^^imWFd;KuWu#bfycAW;udWFlV8r{~483h(+E zGnSbGEsp3cV5KJLzFn=Sg$zI00r(rlet-_+@`y38AsP~tmul`ZRVK2T|52yi8x@d2 zaLM*{0Irz1)|byFpWf>IwdXY43{ z8Z`kO@mzXuI|k)5=475!HMfK8oAwRVUu+u6Tv#>%3%%Z|--zP9_tw5JjYSHm%r_d> z9<4=Sok~Gu(>m5lV$i>)L&TkXBaSx$vi$xfiO}X^z!5Onw<%reejfiILf<{iW?(U! z8S&inrA0QU{R5#NLZajJ0fYN3R^6_3(|I9NNlvq&QDds5fBRUeoehSc*KKMo9)vs4C(_H)J(yG|5XnLL{QaTvFq`kao$Q%P{TW-V*xR~=uMG7b_Z3$x zD>BG<+)MafRCK3Y&zjq`1+pSRLey4U;&~a4vsXu62F(R4%?+Wu@Th;&CGRS%=kkLe z?3;HOxtN|u7OkmrBM!MBkJT!@!G8^Oltu~QmalmtU$Lunqrh#xU7eKa70CDr6Y}9H z2^6QI33!zKC-62;6Ivs8Fy;B>kRA>dzYw!V9-|b~SDkuK{X%O3`f(bu%tccOB_wti z?ketdC)7+9cXsn}_W`8~Y8|#9w&${tVvd^}bG7;N3S%Cg8PT&9GtxW1S`>Wt8iw{Z zI3rjW4AxRxVvu%R;;Y9j(}hKg9^%HOc$7LsYa|Jd1RFLMxK$`zjJE2m`uI$>h~X6W z5V_ylSMxQT_BX{YYJu+S0q-_M=S9tzceGjX&51{sXbr?%mEMq?0kW@qvO>yn(ej){ z7zw+9YkVyYD{IL|132{q;rJHk!Uk78aaWo?-56eL1;|Nra}DNKC~B^cN_!<%S{ndVpNySvymXQXO%rP#zX>=uN{$1%Mu0}2WBaq;v`=Ez@k&Plu!|GWox?J#6!P-KLNSJ^z#Z z=QH+pZ>2dwQ(#Z6zGWPyusNAp;iIWy+}h5pLmqbWdtvEfKtzr-BT!L-8nhPGCYLPr zw?$^v2Lm)?4A80x#p=~xJQ(OVZ;uzvamdG+9rkpyUQBvN1`eb%9MY7a54(X^NrA<4 z4HfYXs=}CfBBYz{93;;7w(D>C5z5Gq0n)TT0q0r<$Eld> zOJor$UonG}pt1W&q?(P8<>278i7?jSThvvDs@Aa&;J@-%77kJ-)*c4{2IM3re`q=lxhZfr4W0OI= zp|YwQ%hOALK| zOoNA?@H#Lp;m$;lV=Tkqgph&<-ph%5Z+|L9JE(nw0Zh2lP#JQ*@q0C13*}fb8f^!a zxm|v|Sa^?HpRJL`bEruVVvMhP?jSh0!mLA|;AH=#zTK$gU9U&(Y}v0VrxM0DqQ9(M z^eFh=Qzmq!Rg=K?8d%Ob&%W@Crfx3M;`F)JbWea7{!UhT@FZvYT&~=W32HM^;=zx@ zwU|x?X5W5wTe2mj5-^5d<_y~hJ+0`Lt?^Xy*_c%pw^^ZRtUcG z48XoIb!ePMpu{VUn%aKwV7$WxV@mTwz1`I~-c?~!iyVfdptOxBAwe4&I2B^l_n5gk2MCMWh14rJT}z0 z{({fp6mexS^KYC@;x|CJ!6+y9v@*j!qYF65Fryzha!~ z;NgEHjo*|u8;+K0$~;AFfcu(H0QN@=&Hgs*b`knJ$eu?@(5J#qz$}oQ_Itz%Mrrcx z2F+=CEwV?oZ-SVfpy{GSW=T7?iG^wa$}5c;<&ixJn6czat?|R4oygOJES*G5|4;Y& zk_9@=x}R8o;3-uwsiFi0x@X|^Cd+#5FR8!)JnRyQXW}vRj`OX3R3HF0I*3FHb8Pc4lv_jSge>Dc-Kp0X*eF=b$8DxvwcPc^BD=ntJxz8M0qjWl@g$eBM z`X-vZcUkz>_MBPErLPr$G*zBdv>b+L?DP=!c*KjJ)^d~mpehv)YQBpy1*SOS0|@uY zw-jELmS9Lx{Y=*MpGEiAQ^(Cesm1@L7^jlD?OE&oB8(LI-FOyc;j4tcoA&gVBMrOm z8K#mm?%^y-z1czp7zxCwub>3nj!Vl@>!7Nb4jIBC)B{qP8)V{Z+_e|lEv#43U5{^a zSh+Wtnd|tE?*IV25u>>fK5^&(2*`3+sl0~Fpt+!)T!^Hz{`o~f5C zZ6A($sWz<7Idf;Q^d5k^djtFfK%_ps6}BV1V`tte=9s>EL|!WKKVaOSy)d>myDpwd z-1_%tC2y`P>(u%cGwtcyX1B-do5Cj1IwuYV|Aho9kxTr+C!dgtnhZ#*sOtb7I%PAB z&QiH%k*EI+A^iC*a82p8aFhCfzg%{pL`q=~Jr4+jIZ6TmNcx#WB^-ubKoY7|q6atvHwfTnhA=1v-6b1)bT<-m_>86L#Pz-h!hxo+mbug0N`TEzmOxgo2wvUlzk+zLqj;Wa0? zDe^q3(!7Svs7k>fvKz)`Am=7dWI&M;cnbrERQEQTIQ>f{kO4T|4e~UfDoy@0^^rv8 z)@@8;iCY09Hy6(GQlYqwsq_`N9LeI4O3g#22b7dPBAceCIj;f2%gK?rxVVc^V_ls> ztiHI=XrPuY>*C^)<*~4IUjn$!e!7I48*`CCOa1FN@loNF)BONG{(<2$Yn3cwCav;T z0EkDdJ!U?nw-@y3cdH->xG}Bxz1?f~gM-POZ5&KSlf~Esq21k?@FWl z!#DnQl@Ey$Ks#US6lr;9VWDYEN{VKql2Aq(dqAqMOO_SG-@Ybsg1JBYL_pM=FXna- z{Qa%3m;PB7f?j#u&7}`n)Y;gLBAcaw>1^6zF+NFYe;(lygPC-KfHZwh3<20JOY)oL z{@0rS$B%#u_9!HVK&K*6^6fjKcLdrmYM(EKIsNL~&I64XPx*V!P0L6VWIO}rC5f7- zJ#g5fVmIF`FjTVZ{cG|6bXB~}52EV2Ha0eGFIzNN>n&|oH#CH~%ld6PFT7GAPw%Zd zGFUBIeLfT`3q9PJ`>A{Is|DP+8&)DzF_d6{4D_Uc^)aWoEXnwti>YW1qq23e|T%FgeA>ZfexhK67>W>#cB39*j^6cvMgt%^tvosD=jSIxMzR3}O;I*z^W3 z&MPMOJ1u$49Djee+a6ZZxwmxl?7i^B2YiaUmk5y5}^ zUesO8Et4@-HMIi?+d$hNa*@;m!a?vN*TnZlhB>Xn)tduOw)e>G_L>HL%%{~h9#r>21|={aSZ@0t6|mruvTG0&mmGnS*NU`>rhxsIu+T zM1mc*1|;vRhXY7E)Q+#%@gWQ#Df-H0R4>~9ZBV`f!U;eTM1%9odndmsdXy)o(*{tk za>q*k@#q03k%1wySC0p(lGMFWe6s zY(3eaee7l;Y>Vy)iR_DcgR9zZk_MPh-7hj^@t)$X>e$C%W&ZPZuN+~U;nYYm8n%K% zE33&IQF{+N-;D<)J8 zwXaRS@#9DUVv1!yHWtxuNuwMqV3^DlLYS9A&C|J5*T50QGwfiE6~fVyUDJB9<>+4m zUfZiF%?!u(Hw1fS`|iQ;K_EdJg2dxqa;fL_s*j7_X2l^~WH`O9)^Yted;2M0K@Gh* zFdg>y$@1*~d~yKYegA$>ML_CjRDBHZEmrXDvRk5 z>?dU4e`y{%-X%$1OX4Gz#z=FiGgW#l8adKM;FIR}G@8zd1Xp9@_1`3*XB^}Bt#wgR zkykUstIAo3e6WB<@c;)tv#o$|9l`fZc&d-s2W(C|$wZx8OUam#LA-664=_13`NgXc7nwqrKN;OE_N33<#Yhk> z|D?d8IdGk63%kvD|y3Lcl zcR*+Vn#i;?#m7G@(C@g!jkrVWuM>(Xjd}$yJa`VD!BCc$i28p4XRws{Qo3Dy^HjmwQxf z^?*b{sWSN5ZF64Y%R>VFE@T^{jVRz1(GNSb2Yi<*kE58h)jb7}q51#-|{L> za~tcON=d#RiV`nSaIvQk`}2#y$UcXK)p#h%v51HYR@=HiJ#JZPE?4?ye$m)zO4M%A zu)Ldf_(88X=BndKosCA+G_t8@p1yxL=&ouSH$X-2wBH2T14}o}J&4d^!h+Xr(gIDw zbwhr?bCGXw5bqIpk2VCNfB|NmO^+>vRI{tFENRR;zlVAg&e8;^eOW~)Tx&o07&OJZ0b5qQ#JQ9if-zn%+q7Y zB>0;m;cXbz{~V$J_g}QvfZ*J}F|lh;xOQl^i()7Nr;poZ1;(D|)xU9LG|~`dZ3u4} z&eOfb)I6O78%>gj?1-n1t=yxQt}8>ZrBd)-o#a@7qgs(hOE!LMX4%(__bq9#_D=wb zk-9^Z|NDHCsWd7m_q`SSgpcg!rF8|z)@;LVFC|PBg|~B0>9pLVX}Xbi6<>N7rSjf< z$`}tN-1eNfLM$DT(iX&d) zjjvkl<*2D0i!FTE4N=-YF1CXwtr?O<`zrEW59px`wic9Z}0l`aQ;@_4c#&D%Fx(sAcWGM7m!z~L2H-p5VGX{fIxeu=;6 z-G*B^F~H=APol7Ed)V-72`IS@YSX+{+T5BesL+4^i(Yf#r%xh4%--YJt`vpzPo-sM zPM53!`l%HsdW4U*V0wq$N*%#|rf~i-!^0E1*?OqH2aI@gp6l{dq#odL)?>KZOTD-_ zcuCR&TdoTKvr@qe`{1vltEQ@|Y9hES0!|0Y;)!_-Bm2L6)XaYj%MXx`Tt+%4BzO#9 zT1fZJ(&#^hv`p}zT6yM!uK3L3MJ`X?^8lE}C~>Va1RZ%gI;(YWsB^5@p1s6yJK3yY zdp5>wX;<*r^tD)667{{SVUedHU-k3gu~KSsa&k+AE`h-03!IW0Lm<;j?jYA>_b{PSb(+-+bS_{%ax-yb$v z>~f9M(Mg;3CB*sp5cL9~1mMoFo5kXh$@MaeQpf=f#AbWhAMLR0e5q;yD>+uJL12x@ zE#5*pN;m650Tfy#oJVi>HIxfCxtk3>HZv|OH%eIZn87>A4H%d$l4?#5EPH-;hULEQ zeK6MMCu2QX96l+w4aI?*W5RuCLLv zP}_!y@W{jj24fY0wsei|DAscR(S1Kn6lH;`R=#$X>Hfs{aO$t+l$W;dkE#S2lB#W| zl>pB-8+WbtML<$Mx7Em-mG4#4%&VL^QfZRq~v#MbS3qYGE z)?3+Wnz7c`Qg_wNrUs6tl=H*y>q{;$1U5#OH-oQT6_mr(9|Me%cJSI!!8F2*ybgZ@ zpY8A|q00%{K7O99=^&!{)zJ>q!?ozKZv1ukL|kgCF}e}n-5gQLR<-3mjiocnfn51( z0w~|RF7f?+`C-cxn$?mDvBX3p|BeA+HAz#`zP>>LB*(DWd9K==5m@p5<>*Adq8=+( z_Nhq+kS2-!`YpV?CN@IA>w4tcH4tb~Dv#DO^pfPa({?1U661U1IxH%cCo`;8w#-`5 zs(Hl~z-r{WjQ`RxN@m33=Wc~rXdFQlc=bS-HGz1$$Ln=x#)XTg&5}K|;9I zh^)^O>&!l3YufEDO2;a;x-ukK9G;>k(_g0F^y6&Q7ZCX6iv!NFQeX5O)9H^#r}9E> z2#`UuZfYczeC$o*?%`Q}o|kl?yA`xM<9!!}g%au>LD%{o=uamRhm_$qhQOzFo7D2!78y1~WPuTg5h!)uX1eh*kE2{;ja4Kd-AvmNjM zsnxuavPm!099IYOi8{f9uXUB_HKb5KAJ#h$wcEVxVRCMaBF)@yazF~E}p zwFUa5SR+Nw+7%=z%d~<>E85PoaT%!U2}#}s6WY#;K>Ksf8@;K8?tX==q^1iaeGkm@ zGs7LGzYTM?Uzm{}ofjRz2QtK`53N#cu_g@P|9YGOTxg*n!#~a|KMkTJv~DJxx;;!a z+t6=_#I^4Cj`ddk6wKQ2ld?d{9z#;Yje9$SpV z#$H>k=O2&lkZp=U1LUeF5mj~x3@jN2yl2t}xj=iFI6iTnsPE}HUYa-w;sd$8Ag`C%>|L--bf06C7W;fZ+xDKrP_4Zu4;_Aa(-Jz_Q5k)N;whq8_ffmu~m)h_I-r_NEfF>QLjzM_`bkQNWw zJh}BzE6cpdfvd~jAzcFO&YwSJtJmiq?A-9B7pc}2tCy)N+Dw-}1Bf{fl3Ju!L-&+` zNdz}ddqm^+-n)I6dP7=NDk>_PlqKrrEC5J)B7nA#`fIUS@J(1SbK$c3TA$T7g;mC4 z)i>Z`x$*qLB{OtY*hANNhCjwv62FLzBT`9RAvE3#GUK4kq%B2}_oft4L=kce3^e+= zts_6bR8=YQG`p=coRQdk31y~C_!f>$2e{bw1fL!n2^g}RKEh)!sn;lcJIV}@gL^a5 zFx5DZcS)p*)?0HG={4+(WxcZujf@odoZ`_j4NNSZo$kjBmr&>T(_R62J6bT6+MSUU~2Vb4*fZq#_HFP)3Nn-!SIWRW_SLW zRZnl|faIkb#ARSXwPf46_%n1h>1^#>G9`-!8mAgGR;F*yg*wQu2Ql?)}PovWsh6UNB13X=0;Nhg}6;j zhlq2VTs3*8k z;sVU$1`&CAI^kpKK$NIHSRDWae-9}2nEPG6lUgBii`4A84y~2uwekTEW~|jq-ZHjg z-3cJ3-m!C>ZVSRS`zhGp#;t2vFvNHYUn;dlyc8wQWv#Z!NwA(S5AxRrh3NEyTxfju zvOnDp;`e?cYAH+>oklfV9-{o$2TZ$1+}PV>l2s_VIgeMC-M!1#(*6?E- zGsz;`c^`h$Z=1)*olaio5TfPQ1ME|lr!s^z9#dK+8(_lZ%kx->%Z*yvZ{xlk7Sqbk z&i1u;nHo&LtjNvJ*Y5YG_C)eb;Pb4Ae{hCA4leaR`qn*%O1aBa!Vh$<>ZkD8@6>i1 zF}%@SbmW(Kf zPMu9&%|@E*5Rj!|73$v^$dn}Snba~u87}jHcNZidTd(w1sclZ#FUQDppdYucTL(V5 z99nY(?0%DtyEJ7>8e;PCmqDKp%`$jTtg5Q9?!QIW;R5i*Mb3_)CYq8 z2za|(yp4-@I}guf9xIE+m)KRK_c{Ql>W*uRPo7}|K=a(c7%BeD$X5`NLmu1m#OtrS zw~Kq?fA2}#Sy9m~Tr1*V2g70sn~sezAy%r0t<+yR=F5G{)jjybb$+v&qv;G3##V@z z@2qNoxS_8We09wH0(>PRSaRJoRUZLSiXjp^QMVXOvBr2cx(|#Q_Dz-HPSw+ZA3X!` z9%F!7B`7F3e5tHKJPL5NVhJ{<^}atWxhsG0P_;m*but$C=HwV}7&SXGoSJ@4d7asP zaZ{(eaciG-X(_g)_wey`56~g1;KZZ}uear-m>4|-*ns*(J&~L%AEv6&;%W@aG2eqK zxXv}Iy`Mo3_iguqrlMZm@r2ym=hhRARb&@dW-B-V5?Ujh{!3)hYzv2v7pyuD$mf_a z>u~D=F0!s@Qoi!FjA}$~570C8lX{<>&LnIgNl+26RTkUc=i8qBy#~!Go7EEa_OlFi zgBK!$sddEeEE>%UZ@Z_`mIFN2;Lc@WRg$hs88);{G)n@J!G!IzdBjeN!`|FlQI;p;p zFb5~1%N1J~JQ@6_LMm}ju*6)myZQbSGEJ24eNBgNGT<=q?E|pPy#Uh|#NLdU$qoZQ zUUR1W{i7jt1CpU<&U4PfJNANwqI6fOJ0h<)m|$}`*^)Yu-0;0L;Ha+}{Cs!%X*DC- zBm-=Uft9Xuls}l_6_+aPSU8fX$_ytB5Zo^_Lq^t!(E><5S-Qmj+k$%H(IuP;&l zJkMtss|B2u^G!oTTb6;T->67{wqcy#h_yc1PzK%wgwoyv$ajf~N=n?4v58CJ(?(TV z=BGv9t1UCUUe#)a3wxoNgj|+Bi=ek+0fYXl%eSJXFdoSMvgEW=(V-EpA!NS&>fdZT zPcpju0JBwEXLH_xMta2?-~XdWvx~EaBjP?#_yX#a!Sb%_YmD$tBfAKh+C7ZZx0#>U zBNCc6CB#JT+q>Mf5$wms9fDR5)~%OHEC9}AI0bc?Tzv5ZbB1bUt#i;?l+CgJ%dGUT zLk4P1E@XmEyC3WnWupL&xYN>XV75;cdH8kIOWPym)Rng~6RPGC<93xKl-~wq+H@vM z^{ZY1D3{6GEMX7XS?UyrQ-dw68l*x9b?hgykQWd&uDdL1`Cs|O6;p5{=ysrFUek@R=`8IKiGYW+PHLH)oQxrVaX>yQ)9MFMg4xfuY9dPw z1)4ACeM0)yM&DhKnTujzX@1BW!`sSR{`p7A1dQ|r{cbCkXI4qa}Appd80Rt$eoM5dS{`D?TN7jHkQ!TVVv7(1_Fdu^R zQ3J48+JZ&+e-eqC-_f>U*w5Bgc_=C++BA$~ zVQnLK21dqnU8*r50(|K1j~XCB^oA%ou9Cq+8C)k>q?8W!}eT2VdsY^ z1_J0Z%0R(Hok<^PKtf==0S2l5A|Sw1y}Xa%zA;fB$nU)+ewFlkWaYI!W<)aMjbw%P zOFaAAQTf6C7APRzH6BhERZ7Rl_@oFdGZ0g!asJUB1HD{#vG^V5f7h~zwUx&*1_41h zpfG02U#|W!#08Ydl4O8Ei$^ceUR9P*XFV=NR3F7a7bOfF5tr`doWCsxju{;n_zI)s zwXbh$9J?NW*qEJkrZFB+;7yv2uld^^?nAx-ll^7Yw*gQX|GvxHRxSwJ>X*MLT3V;ySb&|N&+y$3n2cIm zi+KRl+JV!h)RC{8L3e#6JgdV1EdK*w`IE}||9Y9F+W`;g9)=th+Umka=7{eONEFIi*s&Kz*0hIQG6d`~KYGa(NQVA26)ytug* z^io#B7%8TU(TxVM3&7Qb8vqJX)x{|0+21aRrT@+U?&cq9*SB!%HsrTX7w|6kJm5y+r0sK4m@n+^HbL){1Vk%UgW_-_*QujBiQ4ERv- zqvgLV0l>oI0Kynb%r^PA)&JM+vVfC>tMPUJuNDgUgTzNbGG5~(*!-`zdkbV;KC(#v zHEz0DW7=21X@80-U-!S>t`PXpE3zDs|8;-q0B_-bV4m(@EX%*nAFVp@p{y?|)c@Q5 z{{P~H`TsF-`Vb0Oh(&4M}t=}XC6?4L!Oda^KMnI z%dp!zWbcIkA)RJ)5|OEFA7;MZ!f4`rTmAZRkzted4owoE{v-m(3*Xi^t21fke9N$G zRC;@d|2wAr;d{OkUUKjGkMil>|6!H!YHo=-;O$O2J^_E3C>$FQ>Y!?w?iu5Yby>Ef zoLGNaS5j9UQTM{6t#nR=RVyNOQnD{DBA!2dIIi)_-UGe1gth&)CHrbiqy?VfNe4#4nf1&*`QkSc^LZ|K%Z}F@KT!50c zGb}y|Ob$+6|4B$aZ#jqdMxo{#K&om)<}4j}n0Un!?P@y-VvKWUkok-n@%W5u->l4Z zo0*}_25U!M_sNPmK{ZG`%fx+xk4@tNQlUF<{;6c52!I0$lj!GcskNCP?e#@d5iz*p}(vJ$0IuM;Hd)P z6U1W0qs?b*ndk^?d*04zD@UxSn&sERKV;Y+0qOZ`YAHx8K&2dCuJ8pHK47$0bJ5}y zXD6Gq3V-!5Adrz*LqylxtyTI9DF|ifD|gOn_WRIt$*J!u(6ib^?3wWU#q#5?J80}V zl5Qx?KQ&yBE?^?2q~m(JG1w`OkQT$jgDj#2i)T9_JBUgS7>&$fsa5>1-O016E!&dP>}OZB(;2enf~2&O~JX$+towtoR$6wWss*G z;5IEnDo~$w-Ifs!RxP8v{-@@tWaTUL9nee_+casQUz=5A-*$@@XuEh_^p)q1j+Rv* z|FM&0oA=;*qr$q>D>9=13Qs`-_>5?x+vWUHS+e(hV}I;FY#Pu~4`}g~H|xI7N1%(7 zE=m>Gp!)|IkVEs|t;>sMp1-kSj^2}ToLY*-UHowo?85?_kYb%qmXszUhZeV7{PVqs zI&~%~P}U4VVkUAm4LJX{<7B1t?2iutsp1x`tU?n?b$yCU$Tvv2{Q!vIOP62s?gOYu z?^{;NK}lorxvfppC7pZ;LX)#EXX^?OR8n0%tKtYd0;)AT+8_yH3?W`ih)r2pjBA1~ zCvJ=nVB*s`jUrp*o0HS|fdQguYu9$X-vj&L=<$|$I=_~A>cdd0D9ge89aq`0y@HhTnrxQj>>lCZ_(xZPC*=-Aq52w&kOq{{d+q;d^c`t%U&D?r z-8eZu(R&~r!ADBqly0`;rwD)dyZJyoUQ0||{!l22n8^yG1?>=56`RgsRj`cqeMJDb zdXt51&!FJ<#-X{<3G@5KtD66;$pml#5h*SY(A?zdEpl{#%hIEmKXi0UA@-o1+$*e5WIA|UhPwojp{r;#G+uL z_Lh@p>4tpNq^c&;nr36~TcE7naMYRQ^VLGN+sBCd2!sx)#b~%74`fsc%}%$*TsiIi zyLs2^CbP~EpbEXFB$lb-#qLN@jO~foCA83>EZ!ZteuSv?t3o0bp(xwrYIxfbu4~z9 z#`(*vr8?27mE_Fr`S?adx1B;`RG!n^=9xZ=$rf)DxWJuB484C9)bb{yGeFfr)aVsd zV2j_DOMFU1k0og}?^s$M(a@PP{RS0M8gqUnXwlaa0%kJ=crp|UwcGMFR*wxzmKskv z^+6$`HENm%Q!~rHeh+H*@_q>YrQBop{BS*8Qswh(TfS3s&Ku_2@GMA#bX`+>LAwOT{D#o~@Hwu929ck1ER`!bD{kWl45@q@Nn!;Mb|B79c4 z-BzjX}>98&kPXq0Wr!M&*3+-p(%% z6A9Vxf>5yz)fh5LzplA)g%kVR@5$)6j=pbyJ8jai)4rmGGAJcqAVMBC)cALv6=_B? z`Fu*RIrbi_r87xyy;MBoGCcM`DHD8jLpjB}*}aghZHO0Mmp|8$Z;NeT#qW1>*l|f| z-?>mOl}K1II;+hfdty6#Xt(aV&#qdg`pm$d9%?C&yfFBKti4CvwH;@JzGP~=ZhKiZ zM~;VarXb$h*rvODlG}fyzuI)pX#MU>$?G9~u2+Yi1?i_$lM`8;-`MU5M8CJdELKCE z)7vui#ev1EcL>1hJ3js~$>7CAHgBw2tM@7T{>QeO?j-_)QAE;&dxg3v*7J1Hv}z-2 zuNugtu(bqAW+|7ST<^Q6PsqV)iBYfw+gaQRC*cBc-Q< zSHRIes=unCf8QP4ED(}5P5u1rsZp%Itrz^FqRhAOdd=TsAwOOa^`c!o#+)4oa8u2WkQ9v9mVB~cJ+S-q1Djj5KaD``mhZrL8aZeHWl zP7$A~+hN03gj5Um1FIz zl^Xs0c#GfrYRb(jLmU1^`HJ4dQzbCE%Wh1;HVU5*U?$b?g`Y>o^(iz0-XRktcy|86 z{n&Eaq`rzcXARyIiEsvOdNWzsw? zx`A&>S0Qe6=zWB827j~6I~Eh^k6Slw+udDH+8lhFT2dq83I!iFaV;Sla=n7)llv0+ zMH^ElQS^#~Jnmb$mVtyD=EY13tT^zGxG^^WDG4|?`Nhx1SXJ+DJe4VV8EwvIM;C`! zJJo!#^d{Zhwz7|?JW9Pf#FRMG<{^%8+<7dzNS5I~sgU+ja&;lI1VYAqD5(d%LsVg* zRgp?laxK@<#y##!>FTzv3#-FP9shpukr#SNv|*6i2I;XYs$)~xjDAJb-EGNiDW-K| z!Lu^k?Z>}4by^>(w8s*CgNFSL=Bb>MCrP^J zyQeK76!v+L^~)?!2nXCQ*d1Qw6Yd@%6G`ptQB^)G=;#ID4B02YBOuA|s9moV1LB7S z>FXmo8_kLW+|1VJ$P2dyweH(IX(`7ZBNG#L)3-iBwvL)xd7Pn8q1<65_Tj{P!|#XI zw=+AE*nw!mt&zo54HQ3fHdeg%Sd)m8YRJ0hLxcI!Nfx)|I*|@_f!F1{=7_YDKd z!-+=~Gh$@Wwn2n$)}YJ>eQ82XvX1!Cgjz~-x!Vjs^6BB;HqRT5M)~_ZN8kr+@}M=R zkEL!#e=Ia9d7vRj{^LHXbG)Bj+Sc8(MfZl*JQ6jKUH13PxAVbe=|;MmKGo~;-ij0o ziu}VY+kR`T@n2c&MRQ6tZPx4z&4a7-9Q_&HnIs8l3l*1VytAc9H=wzasioc&*5-mu z(}|^L9TaU!o1=za9;%7U44HNXxl7v~Q)dH2z(SpiT9&WU7RHlaM(4BAtz2|!>j)hFuc9hwi__}W;3 zh&Lr&d@-qAf4S;@Kya;m zF+}d--(CR844)?v3V;p;EJB*=D4*Ur6EUrmyz>g2EX4OH7i7dV%NcRhnS0DKn#)O|O*bk=zG5{b+OS>_KvaTPd0L zfrDjk0^jGcoQ_HENqk3skFjy;kYu}Hi`L~B$5KPEdvU{kf^Rky*VFRZvj`C5m-hAF z6=@$GzdIh|akBYipv;cNX@%Iz&;Y9I76NOq{7LWK+*vHEJf*E3>${I2#hUW0l0 zc%gn9Nyg>*Mpxc~#;D%bD_?8t^zS=>7=`dV^tmQ`b6FD&Z*pEBQY>ZfcnCe2pEWYF z3Vx_q^ThWu=fHElGL+({A9x~4!S%g0*U8vbg?7M`?c^NE#$Ss(=!*jl&zIAm9@JJv zrp5}oZ3&(HWB4q)nX{Ejzu!4vpO0e;kI z!HY=nK31-oWo zAW}C1B+1A)V|w+)D%bcb_}yT@FDlXz455ZWnsKCaU%GW$XIX5ZWxRjVVO(7XI*s?( z|E&6Lkl|U*?U0JDxpf|^oaH*tp5mkHnHF8BO4=tJi!=0-jRCTp+X;>XTvqb{T5qeN z)Hasc-B-L4u=ef|Hog31AaGIyT1$5tCl47;hAz@)Kt9529}nh1A!;?T$HoWK?=~x7 z8GU1QvFwgiS0x{D@zZ*0hmU;J$`#@j6hr?d5a6=|tmK*{p8^9Q_S{)=Wz7+_1fouF zJBXYA0L|m}b_%;uuhBIX^-UqXOiK{n#<{X>W7|5hyV6(t5;y&=6Z0mE zir-$}iA_1waT$F)Ec{*3HZKzV!@1(Ta0*onY&o-TZW6wmXb>NNVH}7lwCWCu_Cg@;WS($F1IjC%y-;OzMJHpz2 zvSf4m>G5rl7dAc-X&v66dQcc;XbCC2>Ts-x>z?0OIH0fcxhBwC6%M2L`PpsE%l6Pb zAL5^O68D_JzKWd3Z)5izMQL>`VL^e^0hV0JAeTCPvCn8MGlB52WkKT?_wCYyqU~BW zYo6Me_FT?IaZ1;qD6~I20&R zrN0fyycY*-(A{FBkDej8jkk2X(+hhO+5C%vsnq^Bk#~f9mQ2f;Ii(5`$v zF!;z@<&NzObC%N*maWYo0{9w|g^D8lpIxre_ko1}<7r;n)z9AZ z{xx5w{wXDAeoHd5Q4_z~21!lpso$uyr|^6rB!w)$<=$~DEm(4DWQOo`D$x)2*GMqy zufpJDwYp8eP#>grtb7i!s)pK43xeI1>ubcskLb(J^QwnmmB%~WnYM{69lB%22mv#W zfkJ4)STx6kz7FN&NQIflTcn=L`@FUuJJm~>6z5yuINKL3F&oS~Fv@yF6CjFyy?hok zj?CTHp<--km<`Yob%@jY!1`eL>()fk_s08+sKnELe{NTz?LqseIt}La$afoDVMP}H zkA>~w^*uutXA=@(!i8n7?e7`UJSL|?*OIh8;@e*N!`8y)M+!LIPzM^;iQ(20U+cN& zi(z;A6-NfCGLJm{)hzs$?8eeP%nd}vAq3?Lnk(J}L^L3e;}OB%F3+$iYe(zXxWMpP z#SHs@HW1>p-*QEKMDijh3Oi0_Tt7Y$PDl_d@*ys3U@+oe+_fDu@x{o4_)KAuG0jxj z)~SX2x3sE$5)uoEcE&sHUAxEGGA*O9p5`YHgSNMz!z-jhHbqJ_9JbUeVof&Xw@b(9 z#>2XlbOt+XSe>B;ym}cz0UmF7BHwnp@Ri!Cw`*EjTYFc|^zJ-1=9Kw8?l){Mc)zja z_N+%m40b*=rBq0>k>A@~;O={v1GziV;0mE3Y&Nmty#FvAW^VX9zugVGm(6KDzwcaa zwOlcUIln_*b1dfdi|5~NlgFk=w5HBr^pZm=w)-7=qYhg5au``yOkdT})*D-geB*T7 zyOEgJH*34Y%N3H`dh9z2I9t|?*{jfEQCTNX^n~VqD=btFHrE`9-WsT#u zbZeJ6OLL2@>3=h>VVK60{XD+q(AJs02n?mEq+b`NRe^Dn`TAH4P z6&Me7UUK(~7JRMnn}ZVi+BZzEi_lXPRt9mvE`y!-{doo^z*U4sP};3Utb=vxbcS__ zg;SRw?&&*%Z?MzOD%X^mifWTjgwjAE>(-M?_}01=1?rKuPvZxojNc4~^^znbq=mkF zR)T^=JQf&A&Zp)!e>z@vUpiFrTS?eYe7tMk)8wclRkNPOciG*h{xtYXui?`b5L9gV@P;m!mZlhq>W)1dz@FZ|z1>;0R8p2~cyL6eVm z$()Y>_T0=|C}mo8Ud^L1J4e+(HU5&X33Yb_0#-0_)gy(!{l3cg&h!J=Q}kafrtWA; z^cYFji0QAcw=vu%T=k6gF(hmM6gZP9T6IV{GbgN1wmUn2T&b|*Xna@2FXBsM_^T#I z&+WlR$Nsp!`M17V{Q4pF-rHfW<`SroJZE1|#q`Km$DBbB_|@|8y<%C2+(J5_bJpHE0Hy0 zMa!o{4rk%}?7|6sT^~=gzds-d+?oM~M9ZTi*s%oUa@^^b0dfL1zSO&#?^GIdpQTzIUf zx1N;P6|K4G+;#ZUSS*_ErO$}wl0ExT4-ha(LP<*>CcYpFLksL1$kbLJ3q(PueK?!wFJgNYXML zJrun^jNlA>xw-qWNTV(fn0T76cIE~=mFnw-on30C)Vd~=9vYgY;l5L?GuNOq84uas z5b*o%v?+s*EP1QdTnnAR3&y9^aqu{g*?=>q=(UtXZ?xI?t2+STB1#|x)qC%>v_T~ttHV}CENcjL_(Pk(%MtmV}k%wq-$^3cQpv%-*Mln>>`teNO2pSZPZ@k2)jc@fW{Y38P^^QYAq&)vE%~_dwilFkqDJOzIq8CVTrTf z*JbAqdMC)m@Gg)hysOuLX(LEF1!@qoIMV2GkZr(_Scm=OAi2F0PCt#VV%GprG_pLs>MzSPyIzS}(3>+aV~b5)VN-z;16_10ch2`Djq+RO-=(|6os(+X8ucFafesRNS8-6O)hfEc zhWp|Z1uN~g9~)1yu();Qd}gt4-x^1U^>_Q^zjI5hpEQ@aLvgiTmtPdK3Sz}(6@=%w zefh%K#r|#2thu=GCc7U8C#se|H-!dtD&&7W$eZmiZYF-r)y{EN>-hY%MoX-I*h}H*LUy zS=-K# zY7y#Xtbrvmla=7Rr#?ajzTf>yKE_fb2g}k+F{tCMkaGhRLw^5~SP^pl_Y14^Of;hTWrZ4&cS?P@&^Vu#_&w7CH3wY0aoL+2} z(ZX`@VrxdHrSs@y&m|+&s}lI8$8~|JbBp)v4eHJ8Z0W6SQmd#F zH>wWbg=R=Q3!M9*Zw-n9nnAXc2C_(!!0iwX=0eGCA8jWh-GQ!%O?4^V|Z#lCm528HlmL zHp8a>(zbpf+wZXKV$y)j_PeuBC)(X9M*H(e4SLgCbYg>Z>Z8|p#FsuBl|f4xZH$&U zs`xPTfIM<5b!(<4dXYL|JGqP6oA#z~$}U7bU+bZ{JB1YpN9QQ@B5q=?dQEef3-Q^lp^BOWipOXg6>5|6xreJY3ST_#P5O4f!nt{? zw{n%HbI#N{qxthq&(R^V*VE!5>1oZX>3Fv#ixF41d~)v^Va+c83<#G%PHDm1MwY23 z_3&UXR#GehUdrv{W<9*XUki~t>Wav#`hiNU0Zeb&N{b5WDBaGt{=3lDvte;=U#-kR zi^c3E=LxI)i-d@S??lrc-Z+;>MW9QdzUt{vG*NVgU;5(GJ%6n_)FHdXXa>0*rnt6= z0Jt{q#1=zn+pVyPW%^KTmD5Cjtp_O=bJt!SsmXrXt$(hxp&*EAW-sjX;B8s#%{OA_ zkt{e+19c|RaHH|Yx?1=kiS3wq6+>mleEo|L?=ta5~j@b?2!PLf^VpzN^_Ah<1L}1(jC8d%dz5F4Ww3qv6VD z6T064wN32&bZ=?!FqY8Gur+MxT`#^Coup+Sl=*@w7s(@?zuiGwY1!6k3eXll?4g*- z9vb!Gc5UN~lV-xP&uVnUrxFHp->+OBSh;;z_51^oM7`-SS8D3$Vj<7A2uBQ+~YXJe(~vg@){RzwuX|%9cOwcck25FJ;pv6*KI^pBAlbR zyjY@#cC4&mQKejPo}8o~u5^Cm>T6Z6$3@4*K5)P!+7)OA=f$P??ZWKGV#`%PdN1tU z!hS)C{0XP?*n2v2T-)_$Vk{hzi+Fmmmub~dm@YFF8i<)4BZZ%f4YUS2rKbsUf$Sk; z;>sZP&6y*lBqa5%W1z%(prC9a@VQv-DDOk3k?Hol98Y~JoO`F?fGS5$SBVevA|6&%wB!_#K^rQ6z&`f;do`9M!Kz)=qD=v28O07Z^2<&EZRmW_E^%cw41 zf@BIKk7K@4Y#5KzM&;>TmDhE*7~H3}M=}2_s0**)87|#rZh_ zaG%9E>v9~mjb~{beo9UK_}HbIeQ_WcXaj{wyy)1PI9#yF(=GX+@A&OmP7Q!&w9K?< zn0)`r20DeWW_+wwQt_(BoogblWQ`--ekTK~N2O_L=L(_aX2?>+X- zy%xezb!iZ0zxEVc?3z?9`Q53)bCP^O(ZHJ~AEGAOd_Tl#^UKD`2H6vj>QfuchH~>8 zv9|^df4u)1@gWjP=iMcg!fh9D=#|eQ#J%$+ax)exily->)VHXy&F3CkPUW_4)699s z?di3osP8>>uq$c5L*WKp{xR{AlKo2O`kvD=elBf&x;L$ZY2YHiUowPoqe)DM8>!rF z)>_NpY2P|fRO6>vX5D_lM)Y+A_WV(n*4%*BMAvLC5ZuWQNM2W>$S&B|F6-fBGssTs z#Zjlk6`RXs`d=R>5Gooz*UcnikOfP9xTTf%Nv6xG&fgaZ4_G0Y%igHntmC)Q870~g zWFZ?TODRp~?S-po&dN0d(>}9U)0S!bSkZyHUcG(??r`BzZdJ~#4GVomo%$t!Y9K;xR;@M&yfS9DozW!=&()AP!i zUA}mpR7tEn%-qKw*+a|Po|`H~fuL$bVw3_VbH;8#hVmg2ct1-YXpI+SMa8-X6|QSw za#1U{ubbc{FB(5LKQS@GW3F#k5#SUL=Q?OTa}ZDzl3%n^rz}h&RTEtQzgiPm^+|wT ze;PFM{U*AYB+XDvB19YSu{B&a46hvGTKQwlSyi#Z zY1X9vU2M+W*6ob(c5a}JH7u?0p`x7zO zam$iHWtjV{*2m~oUo<26c~iRFes9+Yvx9FDcgB?ol)0$l)0aIm`r&5HeZvWF#0z&p z$UobW-x;mg<<$~*{@cE-FWwa8(NExYY^;*1<=?c^PBg_M)`;a*Gh3GS@>`qQ@>O&5 zW=jSsyDV_PD!_5$)`&CnaP{jpl{53urM3-%kMGx~su3C^@QQ%%RU!?mL$(;|#F1C` zYe9x><24_CxJn+oy>r{zE{2)tX+k@v^6I6evX6=xH_fycJ0xe?9$Wgz@Ni8$Ct7J= z7ZE=-QB3}>vmvSJoIr=ZaIdG%2nypmaL?V1z*$94Va2I0VR#TvEM#2Px6AJ=>Dq4d zixRW{K1L%wp(tY+g4AxYNN*ae880~GJ3vR``r$7jr*aXyaLwFhcK_# zMBzry;$C$dDg$t*bKMldX+P>Bq=*NhOGZ`v`9rVoN6A zHl`wO&9nE|{O%ocJ;=4H((4@k-)YUQiaHOAO^7nvi(T_CeKyUr8OhmecGGls z%_whgOjF1Pdg!_I%IqS6+@j+4 z8qJ*?5A9@#nxQw5iH4tbUokjqO9E8;IcEZN zj%IBk<-EvfsqHv3U?(f_+|kTb!*1wjy%_0j-5^;zcUMHr!?bw51MqgRx`oQZM!=pL zA2xc$b42b$!jAUdjO(fE3|Ez~I_bs#1MCQ|SRs4=E3YjlYH}^^$>Xj;Jj+j4inAH{ z(3A^>2@)c;4I|EST{9`!_%YQ`2Cixhd*TjsF@^eyf@*Wxoe1{bvwPfEVI}$U)Ux)A8e`3l4MWtSu^fE?h5*Ouv72X4eoM@Pwk9 z&UvSBi%TnuZhaho^(a7h$JA;^=tMEnA;DaSkL5k(l_!Pz6qvS|cULldrm!0)T~fn4 z?KRWXPv9!)c%-E0tQ0~J;kRNwP;*-%LN=>=o;SRtxJM?cjqguxNO{6x?-?7D5jT+2 zutwL~SVG|vzifwrsg9=C<}h`5iJvxOePC;3r{Az#Dl)VW?D9t@=A3D!v?g9bTBiA*z|Te}gcHT@by?7@@GRC*;$lOKeIFu4n7qxNuxcAn!lwj@mD@1G zndo^%&`g*6T%aTaGj*qBU>!uwbOK$|d!Z@>&wvfQC+ullc0KJ&!RJY-m;TMb)^h#! zDF+5mTiC~_g;TO`c8V>cwXik51`g8=Jo7im!A^=8ZklUrmr?rE)aXxW#Uw3xMC0fde^&OMJ}9j_#Ah_nv_ z{BD|T;GCHq!8kpjU0Lf#Q`XnWo@b$(OFhQW4Dc6Gh}~5#eTz=Z0t>$xU^vkLyY*mW zzl1V6{rL5DAMD6}!+FUlb0id-au@H&@Ay4`puoEF5WPhinczc9c%1Hg$d~IESqjLg zo~Vf7&*=bd)`v6@`>Li6=Poqs;g;|Dr_Ry7d#mPV6GAet^uGmCM+;4OJ=xh(P0-li z-;(5q1Q>2)KBP{$lj{8!7r>XP6yj@~r=`J3o{Qyd@3bSGTd(-v_lN6S9wYy+e6Tm8 zPu`{}msb?CB64i6HWiv(%isMx`QF>ppF{}2lfr5bktW2>w@NN zr^N`>4}E?<|D5L()+xZ}zEW$J8h?9j&`3kMZqdpdZuZZu*i%kYTBl}ta`~l`=zrEH z|EFE|zR%_EZKHIR{ZUf3m90}FCazp3$l{Gp+7^##8+lKI^6zM4(5{Z5&-O|7dp#*l zY_TLlpc6*GKggKb;Z8EdDo)6r8Gy|(2B^qo!+U_U$rjXHwS=F4u`hC-SIN?^DC+mw z?=w~Ih!ZIByk_YGC^FWjL#Fw0d_i=(;XGBCII0BzEId18Cjh|Qs(j$h-yyI|xzERn zwbf@^9b<#9a3wexBVg-%{Ea{h2zT&&8hLUmI&!nEY_F9?Kx zr6F&EzFsT*!7c-TeR#2wm}RJRfCR>n1G^aSyd##=7?LnKgXY`Z~*z&y)S8!|5-|w8(vohL>+Q& zy?)``RIn<$>q09m75GxU&rkeGR4^G`_oNfi&j@jg>y!1b1}fFlfU?omzkk$Ocmi{e znQp*x>It@hQ)4FN!QQ{*vHpU-r&B3pt@%*Np6(D+ zshz1-e^)O>&NXMgV|5y7%HX@l2K2T{7gu|g6rwoT1`S~)`pz9sl8>LaZTPub3q*4% zMVih=3|B)@G-vSW`?4lY!5j2~x{m_xqBQn*i1^QdWugUCM{UMp9;X8`mxB*2AY6Ms zXVY=x8p^$3K4cL4phjKT>kAa^Rl*bD8a~hwbt#=%-K}>js5 zHH`a^0=0L%dEj9`;Lf|aRV@a>#&x5i64`m{_d!9C<5iH5*wBI}onnLs6|0T7+3cLR zPfcAqqw@?@OMU2J%g?vx;1|ux3%la6Jb6}-A|Tds`Wj=;m&m){M0b}*B735Ch|>t- z>C>lGuttprjYeRxG)L0!w@{i~;a(AQ3Drn&Fv`C_f2q9`=IhHD^PSIN0>rnovkwV@Eb+NifyPtMSClKLFrgWxXloU|Br znr)3W9=i!{bxC8+U23uXmPPq@Um9jOFAiDmZsOgvC~pW)&VX%%2f5ub(@jFx(4f(F z{O7Lss*HKsDxFOED~glM`Gzzjk@F`(`sTh_JA+-x`s62XXbqbG!oLjtFEau5 zmm_1v+>v8$qlmRW4b?WjE^$tTsOx1qJAAJqcNjVSPiE5l3!;N;pbrR2ZrsO55#0SxKQ;35x5D&?G7 z*;tNlUb9sCExM2Cl0Vx|gwM2b*KQ8;TXchdAKzLf#186o`i<4$x&3sYrGYHV(aPQA zAg@v@v!fGh*9F(IWiB95|2T?6X9=|nm`hCee$LP4Rjq^qMXk1lo-+6>&+t;3^X`IR zM~da%PimPh&Ucsp;T|30r{5%uT@QZo#gGhQ_eDj)|2L=DF_Je-p;1xHWmwOE)QpT_ zX%J9Hu1&t$k`JK7cX;vhxEWM9naa**Rcv9aOdCHMnYPFD3}+7(nVy9b`wv@GCHHUM zk<({Zj^p1XmElK`$$M@t-!g8Jm>YH8n4hT4 zFTQnJbew*hbD!?F=CQ_+csvxBU;DT*2&Pc{uzfb#$jTQmhp@oh2%oI_bG9SU)`MIL zTUdMkn`?C^Vj(=dyu2m=lkBvh21wV!SV5JBXyU!zQ3l*<7II66`Y0O(c7V-5KXS`= zkEen3U0xK3FFXdI+<@e$^$oS5Ra^I@>fyoua#t{2?7Cgkw{OrQZV;x#AF^t6Nh4iP zmRz7ra4^h&DcUuy!{ra3&gv@sEt2)i?R(HQcc%fJhM8b7yU1{rC1Y6gf`dtCsEKE2 zh4XytLk6GQ3BIeQrN%V}J8-j@LR+))lA7K^V{*WQP-3c?Gk1MM2kjYjI=z||>s(^O z&QW)U?xpf84(^(tVP5;h85`*Y({bex0ha}l(v0qc=kr5}5$<(zuOxt$*r&bSiI5Lu zo@aR9jIz`Y=G^QedPLJ*VPHsbtY*KMHyzDwguVKtTgak(Nm1lCc6I;pC5Mq``~6S= zQSYDv`q_uY2Ryi^KM?c8vfh!>Q3 z_)zf`8L^|=np5e%{82(9*?Dhj))D>pxk*fCclrmz|+n=1cRo8oiG3Cg*UbRhxDC8{}Yw<*Ncu`@bVJ4lzs$six1pZ z#%MHscyEP1xp`MYLgEgtHF>ATYkRG92@v8{U*+s)IFX-F<^9ZYk7FuUH}L1 z(=vcO;_Stb%fDIsfB3`uQm284j8uy{*KZzsL5d`IbTcRsHLH1%Rrt8)*yVUmrr-M3 zqmbtos7QiCvHg#)JtDhj6V_9Z`?nMQ-zVfBOa0&o-hPQX_O}}ljPieZL?z)+8Uc{B zzklQFqjnKSF5W+W@slhU^c-Y0cz^#KS?S4mlxldTtMvyHlV%OoT3!CTbaT3fE>joe z6%-sUf``-_6`NxlFFz)Mr`16b(wGMu`3jO1Z zlK|+WhF|&Rpg+#|?F-ix%+~%8V9EnJj7ZZ-KZ)J~DY}+>haE`tBeTvpZom*h`621W zx3%6{Bh@UU+EUG2T5hogJKvxUHLWv53wl~!gBF{Su$b$ecmDo)XJx89o(spu$X>?~VUb{d0 zbZ;{Bj^3Q);pd1THoavh7nfoe{D_vQyA3B`(ooR#tmGMC%+aRu(keGK)k^jya4ysd4KqWD)AeqezEQU z@nwmur{iIri%tj7SE(}Zjg=Sa#EQe(xFC85M1r|#=h!z9Wap3PCrpPbG89|Fm>}DL zh>sO04Mv^izQ(~_EiCWzb5*FT^!{1=h+uRe7wwCeoWv8Rg*a+XL!>dd21rC3dZoK8 z58Z8Y0*rr7W5|hhtKL)~2GDk8^IDhqZY9MSzs=K!aud*?(?go8B5v>jmZ3V$#JY~q z`i$n2^XJ2gm_4Qu8`rRl2>04hd4kszI=e1<-ShB9)##b(4>x|lfBlnhIjk#3x3qXy zjkczPu9gle z0rIVI$fR{nl=5s1?4d#|ZyE&ZwmigSt+YQqeRr6i3wxYdl{x>712S5>u(!tGERA!Q zt6*K^r%%s4TWun8N8J>r?R#?6zcWM)YL}u zv_g62o~+wsuf)YJPd@NjVIUDY>G7NuXp8;(8TI$vBrcqecb&@;v~ULM2G=#Au-^IP z`sk-rH^D8MJ=HuUSUp>lO=NavWo_x}c@$#O53}p>Qjk{0V`G(?QDl3l+sf5SJK7iG zf?|w$j(&>}yI-?!S2^*#y3*B_CB?4%tHwdJk+J|im+=y=!GRVW3o zSijnKmRl)|q6Kaf#j~Z)ZBSKwg<|ffVnYyudHmo@vQ*-sJQEKg##dbY`2#qKEm zit9GoH@U&!R_kva-u=XdGcqkq)aOh3eLcryuEzj43p2u5Hb96kiDb7%Hn4HCf7cge zpzcX$AxyO`RS`|}zCA1!Dc1+$wzaTcI1Tv2d1DddNqM*7U0+fAHrGKz2bU*r_vRP1 zO};1+ev;a{q>x3&&v4fzp-t?rK|irrtk(xjG}qG869CESzU#!D#n}1T{CEdMw1)OP zaT%pjg0}KO3QDh3`Np$YOxv8_$Zi<4ysr@6X+*^el0&W%$^FcJTEc9HTjv4G!n}gx zZ_j%F+qVbCX`iw4+;b2~tL(GE48&udpDti?(F@h0am8C9WFPlVnmMt4 zu{$#eHH8H0cEzHaNz<9%YUURgyHFLk-h%|m6hBnn-zhQa&nD^wcCGH45@8B9n%JGP zRC@VnA+5uuvb{a5B&pqAQPHK}nd(jTlXG20x2cTUBuL|?9e+&Ts>(!56s1$CE-&a1 zN9}!KQ7Ep|boxzFzwDR_tD*OHskoBA2y43Tp?G#w5t{0RrUCIc24fWzOxwkmpOWx9Y6=9u1?STZh#JG zM}!1+hVyl|Q)yD7G7KKhSrbb%@==yYMZKZxtCgt=N3qcVFBZ9+>r&JsO-E|0|(I^K5q)ra$?JzL;hchd^kqoqy|d8p#k z2AUY(c#%jgCpKiF*H@y~dYUF$!BNo$S_g_C4laWrr8JVLa_9q@S#+c_o%_5k72&a0 zB-{zuktYNue4YJUj;h zyLYJ`h&;(*ew3@*MX#$n9GM-ccl4 z!TUm)8$N1Zr5+Y`2?8}v_J;2XK_fNF?3A-K<>&ockX%(8HkPAvua~b^54@hPuKvIt zA&bXvfD;YUlx>L4HrJun!jIo(-?Hn(bY*)(6JX65mvpe1&e#X?I%mHBiK6RWd%TG1 zK(1mGsB1r(SFxR0YwO%RO>ZL5Ysd#wL&A)FVrPeoeY`(_YrX=AlhSn6uYj035aezG z%wZr5n2mySg>xZB-_7N!GhsKP*w{?lB3Ea6-n=3|FYmO*ob~ul%Z4!9Epx=M5p&Jv zCl*yDrDA=ro>({f7&L6FB}qCfEcC+s@Cq7Wl-5ALr;TNEnU!4G+dLL(&CBazcknF&t%KL@@gCz6&N){n(sD$gccS-*0bziBC_Zre(B&gjMU%;dR@2z`k$c3sS8 zMzsId>lrces_`GmyZwYskWulnz~^ zH1oA&-%>8JP|)`A=0*VcjHMx2dC_&tyvuM##|`&Vl&ahj*Pmqgi`D<-FJ#r94X+8TeLX}omW_M9 z!Jp<^_!uth3zEYYFZs!fh*rZ@?!Kk#dkfPor5VcocTWo*OKpgSW&pyt)@fCx&=Tu# z+4-U#LjiDeka;Dv+s+fuKfW;|vR{l%md>-J75{m8ciKkMOIR5Ro8pXJo!9TFQ&wTS zF(0Y14IS3%AWh7xbo$w2z-KaAib$TnOs(C+XC7j=w*yZwNnb>0Tn;1nxyvRs_Wf55 z*nggw(P#G#nrtf8^H`SE3`bIA!zmr-AeUn|>!6Nb#GKk}Lrlc3O$CT`4o`c$>2OP#(A#uhw2H-2D_C8H@q9m*1BVLFGDj+-L1bd2tGT!YTpb_9-%(z z8)bWsS65g4$$iD_`ddf+0aLuadtc$s3qxGdJi}QBkoNPy%C96&0g%_1t3;@I^ii%stPvA1jdBedz5^ z&il=`t8)a`Oy?V`A}(J~ffU78eJhpAzl&MGxj)8rf3gv;{ch*hU&i+9bMJozJ?QUa z6g%Gk$p?-CZo2aQGmj;I6U!e38SkzE@Z&}2ERn~5801iO%>R0s(XFN5vEm*b6BqA* z%)|>W0hZq~I)XuV)bCtjC$kuSmznU}JvrAA`~5&cU7GZRA7BIfP$!%G;nxZH*M7#KzgueXU1i>a zLCxiz@l1ahbon^2P}#}bkN>+E-9N9X@6LfipBxb)ihnR;RuW(<|F;b4!;?woJ9iqw z#PVh968>Zj$4Kb?UtB4dS5+-zxq9WwtccXr|9-XpN6dfBKl!#AAgTdOr?TG?JpW)o z|MOfCKuLN-#7PF|N#=2%{nI9RO$xrV+_;8@2B$BGECRbt6SMy?-p}t*;n}g&v@{Sh z1T2^IPX=Lj!7qM=`(w7OT=yv3Tk}+o|An!!>z~{i_T-E8nw+Yw zKBUl&24H#~#mT|2GP1H2RlR+be{Y9hKHb($93r!e&++{E<9QFmugqNk7QRlp9dEqo zyn7|t=MTU60?&~*nNxR8{=*>fBoGbNKIr=u%=h=g-j)NK~I&)>Ot|J$r;87_(w zI+lrnednKOj`abrdE+*sg1-wQf}Sc~K6ka9(f z=>6^&00-w#2x2X2qZ`@3Ri_8X_9rHAm>1;r98ku=D9p-|OrKR-C>g5z|0j+DWl zUY-mlO=e?u{tvY7_v@68cE5{2=Gi}NY? zss}WJ{`O~rDyI;z2uDnR;_np>02O!7(NVIq=KL%F>)&zL14|Y%pjdkO_tSs*bdeKSax%9h%bzIA?LhhT{~6Q&C1bi- zDvb07l|g>HF~%7U(3}pp8LwoT+5du;2K5Ri2?^}gDyP{qAg**MKYwvx4OH7^mQexn z>sND4u+_tBi!2OpO7>o|wvT%3@3#*0OcS`NHa;Y^Lv`2G8L(+Mo32)b^z zJNVPfCez z(8-E}cD*^;46val2G~=eB%n3)6uT<3D^lpGAX!4%zZIheP&HecC4#1;1tp{`yfE)=4NKUl5GVuPV6Hpr> zi8d7d!oMU`5P)9zu4vj0alhhr-yK6V%IGd+cFhanQ4 zMuu@eswawo5Ee*s`DB1nas$eH>Lt_(mn-CnrS5wW%{4wVFuD@a%KR)`06$u#jfAb# zf}Y_C^YNMW1E81?y3Sn=Kv*jFE42i>*yke;9w?WMyG6S!j*O#5>B=Td=t+<`sBiVv zFRr!mj*STD5gsq>6B3oB7ziE_wO0KKUC)V0W-kTlgKt-KXF3{J%zVG7 zUa7Qr1D6jO&trh5v>)tpLkVbk^)b15OKkERmzA*&T8oT;%NQ=jyB_|=6H6z3KTkWo z=7bBi1TfSv^cA|Vj9t`};N3p65c*tI5~39+ASML_dT#D23(dS#03F`ZAaf6wyx)4c z?^aP{PR|;U&FwWuQ>JMZzA(+w%g@_y(5_-^ik-sSU2{bRtyE4~UQ9T%PWIPX|4%P} zGx_AfR&U^1mt-Il1Y+Q`>*^_^_Zm0j8iQQ#s(n;UuHoYHk#iHq$FEg;knsk0K_n_g z3f|*B!M>xmSpSNA2B>O94xit%3=*?~#zB!dzXtj2pUfIB|ZC=}KYb1(dw8D(zJ59RsZp%51GQA_s5XpW1l6MKp zCfc>GxKgJnS?bZQXocmW!f`M6gWI(6qlLx++xn4L5Fe6^n>w8ytY5vFW3Wp(hw|tq zm6znu@;H6^eed3ah)TkybD^k^P=Zq7`LTt7Z(<|(xxmK}xKc}v58Dkl(^wN8)Kywf zGIv8ZaQU}Q+k7~r-^R1;%-*=J_uy@UdlKGNBNP%sq7_B)pRVuc#crrd`V6mrRKobv z$X9i;)CN|xZrmjzN4mh%NFQ~d!~L=cKn~5TL39s6W=lyY%DROW)18A+h?KhGw8X?m z)@Iw<8%n2TVOWbh8#66N@>W)xBKFx@xmI1qn7Ig&*uzH|{O>|kFYr*2l1! z1Sn2cD$~sE@q468rY5r|I`bf$R~%Hk=e8z%B7x%bPzFl}5>kb))?T0Q3I{4YZSO8> zk0M3JE4S{gV{O8WPKQ#DU$0{l2yv5#WRj7{YCStV@LuZ_vv28RlN@pGUcC~K;O-9{ zc^jhr37x5V#;GJw`=A#wN@>m0ST-?CTJDsH8~6*s`=YGW}L zMHgM^p!T1^UiC>)mjy<1gmv5kU!RP8|=laV)3HqVx|Q)DrR(oy1B-F?hvj{>cb zE%RItlux&jj4!_b^7i(8mfI;2!d^WGyz|Q1Y7;{XoLE6>=2n`IetEMFX*;+&*8#u7LWF#?>rFzqG>a2b8*YC4 zY9e^i4um=|jhg5ZIy{i%rNVsR994$*YmoD-3 z8;d>DGCdV<-B(6#q0BlW-lr>}o8nWq@&)6qkxuE#_B~%t^4cHhj~b>q^O1+IdDdFM zM>qjGoc$+_E|lxmHE*~ zbA~~8mG=g!OQO)!T1_JZ*}eG{2&pwwsfu%ea@x8`eCcqh&9LrBtP>HXJEFvpgfAJ{ z+?`LT9W|7c5F_;fN`0n_SagOapKTKWTBv{dNL$=iTyF&@B=8;l7|qK@?`-gm$<*?N zqyqu>5sb>`d2qB&h{DD5r?OF{C){xZ4LcSg5CqbAe5Yis>$|L3W$+v1^p(MrKnYiW zSdQYlqAUiY(&X3wtdTev!t3jD174tfnAo%8;Jvd^GOnDl_fxv=5>ZZ)uou`K&zkGK zrWqWFnkIEy>HT(4v^pF!8?+T5EBUlv>Bs!qMeX+k4f48%Ks(p=f?54b=vrrL8DoZ# zlIL_t`FDjZPZx2Gj2je}`UMTNN6QGT>>Y*Jd%i=KgiF3Hj(6=3F0{pM1lDi+;mGq~ zAxK`Ag<*-|VoIQJ9Svm2ThDTfvjZLP4V#b<#UINA9m}inysid|y=m1#bkU|k)i~~% zoV=O=`da1DQVFB(rZn{%ztnE-BnEu~h=szdMqaD2MpU->*PIC_(t~c*o5S$BCARm> z7h=uZe33hn+xRjguTn94-7-7l5oNoG9UV_sMn+8@TNVl>Sl#;~YXMa5Dcxe$d=GK{iEmTy>XpWixgScGdN))RjJPf- zP_IA3Z&T|tZUtAgby7^DA!W1fSSW@7ohePQ8?1m4Xub1oBQ`n{EM5wY#E8{xsDX`X zgs&E0OZOMF?yc+WzLhcBfACgfy)!=utWTt$dPB%zesdh1L=kPy?IV#{y3l6KBcY z75C+_Ij2S!;d>x=SwojdQ@6_How{nbcQIxpD-*tl2vpY7noH%U*NWs~&v%+e zG&lzO>o zSVV9e-UAlJ;TZ)+#IxIz{;xI_(@fh0*H#}gTz0!6O#h!5m|JHT!iSE;S}lk8lx5TR zp8=KJbfJcXqK=PtJq1#CMAD3WF*kJ{(|i1QUg6kRGAu{e(|8EPX1{i(C6f={D!a-R zWB+id+m=&VEkmng#LX`JAp;$I*@RE{4Pl2mdq@d|>5oZ1h!mWdj(-+KL%}$}-;Tp9 z>jrP8di?yvVpGSIu`QFFoH7%oXICb5-8QfX%Ph(w8*f?A$5H{rFQ1(_JAJTQt?xVj z#ErzMHgXN6{_t*#V(;7TLgS|4(hK7gS%V}R`Eu!nMUl`-!!7_CpckBU?dXpl-DD;h zFP>=h->Y6s2-?aR?KYK6;Lc*kfH0)ouG z#;Ba=<#Pq0X|~ zY`zl@NIq;dCW3mijLogHn|hCRa+Zxf_Y@Gn^rQPEw3bwy^}0S&cQ14j>t!@E0Oz#+ z=K3}LG!?R|Qgn1z&~{XwVCXHQXXU;;WCvrkntUudsG^{d%{*u*)QU07IX{bgr>a+K z!@K20m8FA9Uu?O`iT2#$vCWB`%`G!@cOya}-gPw0br{@2l9;R{-1Nx_q{5%=@rD{ z%|^1}^2wH6EB(8SVoMQQtAV4u{_vamnQl6PJoRvJxttJRog97g#P{(z8qX-s#hIG@ zuK?|L$6uw}jDYo?d;k70?)=Ert{!5;@Su#4KyNl$6|~V2A;V_7^)l2MD*N>;B%gaa zaCx;Yd&ku~>9qsYF)RYr;n=-~0Heumk{A(Zxl+3nTBV+rP5!X#X#}OfyohBl9Q*Bc z@mQBkIFWikkXwRqy4~XV$Qy^RSG46_F$StB%{vd@Ojmmi^Y$<(+m5;x97jG$4=kk& znJZ02+iB(LK8LAgd1tAowTC|l7}HW-`cG0zzmU39m`CYSaB1@Mtw8NJ%vLxTL|`h7 z5+a=vjM)@c?pVh_b6;DdYu;Pl$V34B_hRL)-3znKcto7(aSMU1KpPaj3h#;cu(a3U1Y20Al*OVvTmDBtt3zNY=pZjh++OR)tWW90$RF@X&eyVKLqF| z<2&O@UPM#p{R3NAxxO?0(I`ghdIX_zU8}3xGGEzic$3v*NwRCGE~Rv85pvn0=8_PW z`_`*M=^D~YA)9KW7M_(?`d)oUx0~w)FaffWXz!5##0MP2GjBWCnZ7t-ZF^;OZGfoPaeKy1m<<_U1^1aX>X>kwORMS>k?`kJ0STI-RlS z=SYrQ-aGNjROQ>>*Hvw?oO)%=iBi(|qS7W&|LcU8U!Iun8#s1~GysQWDS2ojC%p4z zJ$8T3nI}b#Y4~DDF_o;N$~OrIjh3;m`#TA7IDs*=wR^B}z*5In$4tI>Jt={Nc%A~! z(_0NaD~8RcPZnU<( z-Cb9CAQdC9NRT4C1q7C>mOHq7o#B^)m4>jaYKxcTBRI3pv0=BG zi-b=QLtp$AF`(LTd6n9vd*Tii^T#s(>zt|#q5J*C8Kep$Vn?dxo2N%C3~dKJW+S7Q zK2T?-%z_KAzG#|kQkIVC^yVP?<>Pxy^)QFrZkk*?nhY;>7#Uos2}x; zsC7!1$8f?r;+~i-$^{kzBQ;gnjsg|dai&@+~dCC z!31gT{0xMtF7%c;bPe=)pxzz^m2R~-+Qc03-be> zkb0gIMs8coL2*t(=zu2n=g8=$M7Qht>#BrpI~Rmu*VY8Ai7ZtiHZi6XUj0QJ&A?i* z=yO{0;Q;kVzs;GumIt|+mO!HPr1J%h>|l=>$cWm&3252y0Z536)jk~%*KLH`qnU+b zZn}St&7W&Wb@Hs&aQq+@=CAFXPFoMMh8p>7$I@i;!eA>-m=h1@=N7vQ!?$lR4g0d- zwp=sW^j!y#uA;ZY(@W-1IJ#oTrBuiXSF2F#d^C1b)M+4Ky`RGO{7=ew>Q0oiyv~kd zwoxs{X@7A{#5sO2J{#iR8Se+D_LSwfjxF4*)&M%e5LHCG;CRPX?oCN(*g^d|a$EM& zEZUi}ElzbEc9=ASFbGL$!lWAby0$+c^yS&Yx<)}9E2h`oIGkDgLt=ksDAdRnz3IG0 zx+`kG67Scu1S~vu#b3hk`psQ*M7`@v84_VzA280bEvdn*Sk`l&c_ z?B^Ujzhw{V>^*XuKPFjPWAVq5>Y@4PS_8Z&BIg@)s4y!wnlU5Q{|v>|?f=8xTSrCJ zw(Y|T0xAM33JL-$2+~SQqaYnp(%mt14K<HH1S9zsvhw z-|u;!+xva~`qsDBx7Pa~Anfhlv-fqK=W!k(@6~XA(rntMf54+0y%KG}Ll#a*HL8Gr zmGgZ2W&f6lLfGfG3L<^sFDKqf4iWc<^;1+jg%&lcGd3MZ`W8scZ$x3z7|?5bKbmQ8 zz`3P|HcA@TJ@%ZY-NzINN?j~1ynD;D9LBV$_MDMbZyQrW+iQT9wJMY)Fx zZ8c1W2Bx1J%TJKEB%FJ6i3KaXV#nn9!l3W;b6Q`(WT~@xA7@!lR9O&E&O(0rGz zo%Xh`GfWo5=sd%lL3?^DdRslu`W{R{c)GdqbdnZsDc!swdc1S?W<&-w>aLQ%+CZP+ z#*$>s*%0M7Yx73$-4^aGpOOJ2s;bKeHOwQSvivBZ09n+lr>^96G%YLY{}{0Sig||O zPo4Is8c~!v=I6~HgNN=0uIagYRzQ}ogot<5C*_8&AUb_6z=vCeAIxWJ__g13t6nQ` z4;h&YP$G@d9rT&ew?11kZ1jq$w4H6Ww=rtZ)UR3})5=y%+~56rFDbN{5ZaU$@@rmh;-uXBC?%b2%;uBW zv83CVy}0;VD`z=sg?CG#G?Tr0yjQA^LPFisLy~ckgk;WgGZ!Diy-fx)`CYnGN+2{s z=AzFwdu^lCj9E4B5%Ue_Wza`migQ(pua^pYO5avlDWt$ppW}17TSnwu5xe&@c%d)+ zZ~{ z);Yf$;qfOaG)<|>bxSEzYrwZNp^zm06$7R-dgPVI0x&b^RZ?SP)K)UhP_Nh~ zuYhvu`&X5=<*`S{_$|=LPTrV|hkwGXo;a+fB4_OR7%VK+%Bys>zdOd_G7YzLAR(XY z*Y(1-loRH5(zMa9y;12B-5Zw~cx{HGZL*&}9q9c|-Q9ff?ryOi0L%FtGeq9+Tf4v- zZCsHlib>A)VqJFk6s!D$r|{%(NP%cKjnKn40|q>x7ZMMxmr4>=%2&%Nu87~*IG}f^ zL@9IITsJ99m}H8N=CxXA4C70m@jark2>pD7)|1Iep6Yj)%g(sFyvo2GRFO?4=GiZL zds|=0AWluOt zZO4_zYieA_(h(lF1QA}6gYG%h<$>F8Ly%IDWPeZMo)ZO0jhmyoQe6z+?lr7vDsW=~yYo{Ks5cy0YVme0{H@UY2~^4Y(x(BC|Dm zYVg?2_WNC=e$eGT%9;UZJd&r|(IsdpW@`QkOtEXFba(~(RLKn4y8CAQ_z7dYsnrFx zc-P(Uab0t*mJ@~RF2JUaXk7EEr%J;c{kV6pMWB}RM%6yPMtSlL&>m)r9b`|(Q3u|}aKB8(N;HjFadMsr4( zT8K?kP8h+vM$FoZmRLVj5kO@g4mGbP8!QDpP3D?*&7CC8sy5ln`6u1s0|$knM@cb|NJrGNZQ!jMZ#vG6fyCm*^o0VNTW zOL5jU%ONMI+t#}&(yc|-)ssgEuTqgyJn$LIv`K|Ldhm3BFzuk?mYlQK=T%YYn!?<) zUxB$o(qUB7r5M*m=IzWzr^*hcyFuuq@o$MD$Fqyn6n1tVYu*i1977V ziM0SIX>Oz@FHUEp3ww^K6jBOLZe<-^vcEcS1AO&RF1Kiicn~>KmGwGLnB#rCgqfh{ ztr_~~$(j1GF7n4&Y6n(L(-yQTQz@^ziW+{_H9~Z`85aju5A?X7(qH-e&?BAk3ubCP zEIaa%yd1(_WD)qvRD^hE$;ANBqEVltdGlfa>07YM99@F&7-4|JQexVO#nMKln^kF* zHr0a)3auOik^X#mHh)-irihbk=TS1=9jXf~FxSdxxP|EaTZKu4LtJL&dba-3hX!oB zZM!2(ixh>rrp)KO7*fqvRkMNAMRzhAGfx$S-(2={R2{8O<0d3=;_H$i6Is_rTF;kt zr0(0%`l29Q-iL-MM;)fEkfWa6Cm;4rk#PPFLi^#gq6EzP$#yeIVrFB4CBQ^D%dxQ2 zc_Hj*FWGIIJ=#WTd^SVB2n4kKpe6?{`h&a@yKrQc-ho7|T^&&KGX`DVEt@2fa*Wcp8TI3>r7jJeZMnVau4%pBB@_+ip`Y zn6f-WNOF~*+KngQeX3L#xeBdo?Mgb}1&%9GmZsOIV=A`ju59ymd#_vLqx06ESiAH+ zYxyJSUXp3`Vj+$pEeVr;n_o519!lnq5axp>evv)~b zl$6}JC-eJ~fCtIzgG=5=Yt)0`*825_J2k5fMo?M7u)3ih=}ET(?!>rENc+M1D5Bm5 z3P1(pmM3tvZ+Tn{Q7(KJQ}d+nQfu-s!a>Y( zV7ow6u^2&{P;kuPjK~J zy}v4GNzgl1b^1Y?a!N{vUB{sF>@Hw*jGOGoot+4ufOoSkN=!hY#wf~i1y9Fu=uA~S zN2W~R^6Hs@??gXe5aEaZ=DCLh*d%9paHt5c18)3Bf|8l!K3xzo*yIY0?;T-AMk$?y z2dpk~Aqp32K;Jt{H*&k_^Sa#bQ>kNVU_Z03)q?lM# z&f*!xmSt8oS&>22puGS9E}d}$#xdmVbUk7gH?L=DD6N;?Nz}FG}eQhD=MlOes8Q?F7Y-slLau z)yDg7$P@smM4$B6J9y{sZ`F6~IRKZn3Y;fL&6=M;3TcFo9nH_)yLmF+i~0_M4+<%a zY=}wLlWis};c0k7Lqkh|!O%rH+nc~`$4S9%HnxMouO7GA`FV=rjIHRu%jgk8OHcLQ zBeEKQ<8(5yvQP7!I8OB(hntKAYSM{>aoU27_2Img#;%Hcp@O!?+?L3F*Eg%v^}2Qc0j^A{FtYRK zV-Gf-SxGv)BGs(?N{3k$uN2R89_vT}=EmZqt&uc|0NV?X7#Uv|H@ZiIF2lf&yU~a* ziHN#tpyFll>ulp)y*%}@@_WLbEre9g6+cW}w+GY!cB|xx%TJo;Y zp$c?)oU#aI9%snxwlPw1F$2q(n?YYaT!0eiX!^xv?dtlhjsUaLwZE1iav{0nMmCGJ^EyBC$h1A8RV}c9SUb=v(VS1or(;}B zG5sb3H>4)wp`xxS8FDdP(&5<6im;ckPo~b3XR7x?g1-u^h3h*s2@DV_9WMFsyEYB8(ME(h8012bv)oJwu>bE+3M2}2A)2oRZr+1cWC?MND`t=-Gi56wj$;KUQjE+M0~C=ILkaTeL2(Z!h2NbFzr}3S34t4WxffgC zg2#W{3WfY+b?ZFQJUhTa+!9Befy;tHOt0ls|}JX3slU>$kZ{4sI_+ zt0`59;nqt+f|P}EANm;~`_xDKQO-ks2>C+n(eY(WX+F+O5oDf6UCfS?eMg8({c?yr zUmWXLdP*K|HCyEQ-ulf~y!7CDftRuu6{Uga*-AF}9s33HZr zSvieicg%pi=AZR!Tyr}JhvwEaLRK3)FNK~yA{i4tpW?>x-41rMZ!r8sV0T0KV|4T_ zOyjT01S;eAcg=H(Meu!PW}vS`H<;1m71B*yWS#v9%_UYr4 zrvnRL4|rY{vRSLXets&58+WQcNtPnywOP#sopvW>DvYth^8EHrTvZh6#H|jxF4=sC zkW63*6a8}e@EXRf*9VJqMGqM~0~W!9FY2GA4jTkzV$)52>s&ar2M11T>OU9WY$y*6b=`v`OHHFB8Ph1(}ff@h-!(*uYVED(z787DYe$J%EhR2C570{Te{Rrm6}?TfCLwLL zt0d%Z7X@tjv_w76^@ozy#vb3Ffqtzmgvfi$`sUEo75N5*x>v@7?gvU*=8m?(PF;dD z{rc(BU-z?auKgsdMyLL)!BsMSB^A~lnm&yAHnZ%K_I$+@U2D?*WTF~U-^+Co4W<}Z zPc93K;eNr_RBF2YqX96@DzoF3;A$g@{9`)x9VUU?mG^c6SX)jSOV}9`b{c>Ot!Fa z3x|cS-mn`q5K`=wc_>(R1pduVoT+W!ri*pFt~*Gax|mfyv>zugR$=6NGy3Fd29!+fje!8@8ES_hf_*$#_cv zDi$;cEfEp_qS3HYvyHW+$vV#!NeAKK?3MJkZ?)N2c|K`ab*4_YK2r^`9ec;?j}+g2 zN%OPJB|!Kt(A zp_|KE#m<=QMttxKx3_^`Bj}Tet9i60Q7#{cTZmo1hwysu)%@*yhxdA2KhI{=r?@wM z96TSO!gvW-i2Ufb8$`O#K{uapp11U#f}=pQ+h{$L-T}ua50l+{7m6PnTv`7gT-{#2 z{vvS_no`GU*wkCmiwAI>>-j+T{Ngsf*uP^u|CfyHsQ$$q*y?kHHVu}{=Fvt0jLb7u z`!^x?#qT)9{5#nHLCWKwf#)&n(#*j4de^gIZ|~B0nQ8rs$ZyH0crMVY{D)J{u^TPp zw3_|k3b;dC?A)10Bck;8^}J`h{@bN--k}62vyOG)5Pk4InCW(WdQ1LTCH?(yo*IhQ zXaxx`2Qd(Dh3@>5+g<>}t9o}D;5=I)ty^l;1dpx@C+#!7-Wewz#n@-I&`y#bRYun@ z>Akf(yfSwAz2+NQ{`mv8ok8Hj$j17bjdN$g@xtHB!t3H+o)7@bN7iGB7hiI(u<0Kw zs}yh@06kwEv1EONpZb3iZvKC-i2q-ib+8@P+E{rNh4+)}MOoZz$!z zf7|j1EC_ne4*&3_&Hdd)oTKirUi zU8df{|5|1u>t2!kagM+KvNKp*JsRl6?0DC z$-*UsqC^V*S}CtP#)%i!=Sx8Tb&~)7)qRGG;U^x3BntIUimz2;k4qT>(KAFwm$v}TywfHN%i8jVMN$b2p_wZpMXmoVG zx_-K;yqtRFm5E>S*&Tf|iviAyJI`Ud+JE_L%-sayI*!`w>iGZuq5O5Lzj$7aW=U&{ z#~%7!*;3$U5YcBqe^_H(uq=O<8-H`qZY)YQ%N$1D!W>l;q*!el|Du``tIZXfX+HVw z>RBT#_n0p|gRMJ^y&df=)4=M1q23cU9|w449%1l-DQi6^#^L+57!C-2I+5JKDR-tk9Kep4*g zYvc6%SuC1y@0Xe6UAxL_Q$v~A&UP-2*PfD*U%J|;|M&?1QtHC{W%f+H@m|4mQ078y za`Hj;RnD2iLc7^`sjs@?W8iGi(x`DB@g7?1t zZ=GC=Pu&AC^em8#M8?Nk^`P7hL=0+FK_r4Ih)4%}Tin&#ES*5w5h|E;HtVVZZ3CACY941SyhMwZD&SvVtW+t3^( zjfdrIIyFzCrzMcyquMKS2kX3>ex_Ts+>3@EYy@{cKTrkc2?KMoE68cH^+!(PKpe_y4i6n|`+SK3Fd7UT}YJ+m-+kS-soF z0}7$#;Q}re-rap0Z{4X@ zO_KovVJu2C;Pg*M9 zulCvxjK!R1qxvp+xvh^o8z%iKpWRbajTG5H*v&}(XwPW zzw5!(=U-~CywLM(%~DOzJbx3S79bTu)dT3E_R@r4_D1%?&uE6Z13Gd+rT&m66H@QK zHxg&qS!pdMkfev5$my5mGMc-uhDi3hB_$ga3hx!D;$PXXC6TM$GrL-<>Lq4vd0Fu{ zOrfgEx9nLt*EH_J_BJHq;S=MpE`!;M-sAD*&tDg7-8dW?{i5hHq`{ZN1H%bJt-oSa zd6{LGdyz1nXE~;2B!8|}mxEdkMS{$yq^Xy>Y}e%yRBS&Ed?^J3veU|TGEo(Wc%yEWJSt*Y9@02MDRVpVwGXQJenrcQ2n}!_A z>)gkOetDYB{#p;)xRG|8(mdQh;@U*Rywd2Ue3%O~i{vy)6toq&Usq%ggM((=ky zC!6E-(iY}zGO1HPulGQ;J_(kfPgZuRB*RpJK>nhM%cnPeZQLs7;!9=%#a&X6UukEr z{`-FQUz@PM=k?NBHNRs>oPutHrXW9O410$C9wi%#tVZHDAFMPPItE`?(+0nS_o>*R8OY5_?_U)!ju`RU~`VIJR;Llimb zB?#lGumP}uFHonqwlmm25G)x4fW-G@ekz_{RQ%ftV9ad35zDS39c?$N@S=dHbDr~X zir7NW$7$9`r>e=9sIvj;vNTp^idz?GvU`4+)5;W+2RrVP=JGurR$nn!vPBg-WsCvs z(W)Mr^GA#(X)KUx)Isvx=VV{quMYPq75pDOZo*akC4!=sDpC{+a@p~O>%~TH@f&G#wddDuo zgS{>2UmKYuxbTjZtIVjR)^p$m!cz4k zgZ0$2!}}0M1CF-(vC~&^2V}jo_Cn1k$Z($L)aTEOxN(`X zu3wazdjCe!+eYAoipOd-pM>T(_Vi@G(;KYvWJv6K`+|8Nw;r(R&7KT&DT z#A`b`DB}yIAw;NUgck6=IH?F0_d0N1e>!UGFkDmin~t8ZS@HnvRqm*==OjS&oZohA zku7+3RWNgBQ2wOWjf9$))V_W#TlZZL&{=3NBT0OAz_06YG*1OGf6}#_JpC>tUC-$b zW1F=FED3#_c#;AeR;#>Ft5y#z1Y4pCL-nv3C-&}{GBrv#ET=kp+3Fu z#C!;Pg7;^0pllRl=P4G`pbz~A^QvU=a(8YzAs0liL75@aO8sFE%k9L}f}+&5{>J%6 znY}Xla_iV?#ql4h3bB*hzZ$C#)IGeXgQa~zVdIyagMH7 z4nM_Xt(Lw=pe??Tmj-bGEc_oTq%MOZ?DBb|O}9Dt`wF5PK5<_ ztKPw+?lCp9%cwR@<@7HeW&>f_L>}wJCGnIHJj{fAk^Z36^kVE_of|c?c6p`{eAYrC z?703X{OJ9ag)AWDP7E#m%;PYldX)28TFLwLC)A!wuKO_WtyHHYrjdXGfU-}H`^HoT9M28j1 z-l3)G?6}_W@%a@Uzji^l4LPt)@Qe*giJt76{!R`lFd5L^CJTqro!7k##vd@B+=4|p zOjQmv2kRap2mI#IxNG-ZV~{;Vj2eyI$3!(ik3U#<;6phj>kw~@u%BM~N_?`~*%|E( zIm!yfnYeEbYm_X}k5^i&?NHgtu>FJk#bu^a@AIe7Lwvp^ zYIqTZu8bE=BUGbV&3=bwsEl4?qRBT2sd!`6$J_mgmTNP(|DlH424~|w7wY+VN&|Lz zV{NpLgc@?GW$dZgM*{o8vD_pp|D+TVHL2I1X@qo25D@#CTgV5*cq+25PoAItf zXd>1WtzWo$73Y0PrgQML1lc2ZFhC+gc*LCLvc8!8)4|~kccSt%H8D&5WG#m-bL7ej zK&pGd9At3Q0Uw``q)zG+7~I(C-i32_OqkcZuQ7@R$r`U{gpLMoj#PB)EwNsjbPo=b zoyKj6A%P{Aeg{t19t*!U`Xy3xGucj3y~JQ;eYOrYsIcp#(yEv!i^6B6rDWlb z0|+~@G=+OV-U3Cxd(iOkYDo+}ReTvgX76@Srq+N7hbJi4H7I4Pj7D{j8LP`RgCca^ z56gMOdwW=C1ihP#&%7Mmdc&~8n}EgQQBn^(7Y*?$4lhdNFOyqhIhG%g35)7~X-h=f zAU6X$r$IYLR(E{#{gvW9gKb4suC64G6l7VIrEkTRNq&rU{(c+Z{JoS3^WQ5bfJpK9 zo6)#e7>!&^XtGLmwRx?I&*?9~la7wFskfkHR?SYl#i62<#BVYQn{5wp-f!7b59(Tt zqN|er<%XJGWmMQ6&(N&%PXbH_+n{lA>4_})Dqoq3(#1m)h;A?sZ;W|}Q&iqY?i;{k zcrHY@9qhSoP(M(tF9afItS1t%pFg;bU#G(Z<^h+JS9i_OZ&Gj{3VyKaJ#4H`ThXSK=+30PAX34}_H4>syG0Y90OPg7BsulHJRDCBonu55f*D2LRBhwi%3%jOPZBpUr^=lB77aj8?>dT*qq$>?8dGaZWsb63Dudl zWYCBlYI$CM?e1P6n_lUC4dgel+jsM#^tQ7@Do#Hf619nnJL{I+kTCdRQLWT{&`PwO zT^IUv!gM~6+TJ}vGFW`H1eWOSvNcsJ(e!LUqAf6%7c$YSpNQb7KxyYXKHwJ^-Ct9i z{-#CIcOa)9(rr+(Vv^yjQ*DC|6b=OGs8$Z!E^eJ=6em}~z+8f-Z<6h3s%VH)DhEC) z6Xp^{deX>KlS1%kFMnUeA72pFXG_mt?`r+>sx@k8%!IR5LdS9>eaS`^_w{ME?hs#& zi0w+}uIc>H4Fa-z=Ei`!!v&d87g+dQ@y#n-Hy;LD$b5dR`q-ylOW3Xlr&2)~&X`QcbTriJ+|6T@Mgt^qI@{3AoB-wF8<4nq8~; z^q3^r%``A;otv?1*|#bm@JjTX2NWX=9{O@zUDPfzXtYR7{y@Rd)Q%ZT zOc5%}h#gZIulFmyrz}dLcDB#rdp?cea5Q!EvY{RcN6cQ^*s`o!M#lX{Q-trxq@KLRUPs#~H9Wxy54miP`u`V*dT0#^FN9x=r?OFx3 ziN@2PUkmP)W&xqcx2U0N)p`QfnIMhyQ(RJD$2gR3g!7_7o?3lqp<$f+!))M!)5Syw zTh$O+3!|{RLNejWDd@4aX*8E@(MQGQvV6@U3IiFI37WDV2X;J2P9Clrc30z{-*yGB z9lGXi1-}Uz?drzdeDw7wrR}J zx2aP{{EsfCj`(Cx3iWvJejhwdSirr(La+@`Oy%c6h$#!$_en7TYMSo32|JJ;LbDq-eQdjHyODgVg{En`> z7h&Qi4$&=&+VG*t2{?Vs0+s4zlqgkR6U;Y(%Y3Pw+QA9ZT0J9}GkL;=xOMI$G=6uk zyhSFM!e1b8vj#|8UVf9Wo~;GdXq~`Fu=P4$&u7>2ce?c+=txJ*?wIU^&qgpMXQX=~ zM;Sn@K>4NuX%oD&dulo!UZxzV6&l~OJ{Fe&7c!-ji_L6yG*I7G*YCE0^FLC3(~4|O z4=6wtIyVHbh+wtYoj*)qe1 zMWZ+|-+&#S(_zbFP}Cu_Ju?>Sey;R-j&bDU?xjE4=$kL@YjZ<;wdxEl*k`ww>zJ=& z^!Tw1u(Y45b;z}+IZG1=r-*wK3Dxf)7Wdijh*<20CHgLM0g+;Uc7p>4W;u)W>cQ%b zI}p>3FjU0j+0XZG+(SFgKq))rIYm=H^{768h8$){`ND0em49lsh?&sq1sR{m9Blcf z@C~M}8OGR*3+@Q-?cnE)VpH{eR1CGp9Q|Q2NhRM^ug8wAF*G>u%suC?`{tcOO&f+4 z+@WNk1>~(%E7DdpUu8ZJ?YFMvm^_HBG^Xaai+){%XSooDOZkKe zUgEX8)N>PU>^Naf@<>+tquvCfnUo1lFCWJ?aDV738d@sD1ks`ENh>c3?Mo%k(|XeW z){B668TIi3CMW-Oxmnj721Ifa#?iCeO}OqooJpg%eF&E@C|KEs&~<$qRpV?>viB$> zTehM@x|U)jB0z=2x9k zIUTVk5KQkpfJfxAqkG|yZi88CohQUoT4m8zxR#I*!aY2G0J_HB<<8F8ydy2oSKc`h zW49>LpVGK^fHD}^o%xo=rjo0;L91<;;PJohM* z4+4`v59rd;If2?SKT7>PhDFmU#{xqv-D7gIhj&quh8k+@GOg!_6<6HVRkeHHw>ltJ zqn4MAF-6#oPq2s4iM<9;Z5(+{r)|omi}l+etkESSkIgF1piH345_!z7ahryWiGRwo zLf1oGI_D)TUt+tVon%th!bBY;xc3wi7^PK0h(~SY20GqQM#=q4pHPV!R%UKl-A3Az{p7-j*QXhFq%?9Lccdq`)$I{t9Q1)O z=EK&h^p~vGW2F%w1V`CUm67!}i@GbO`?r&e0qiVB4;$2h#C&nsdJh_kv3yr~0l4>v ze=yxMQ=bbDt;3ppb+65p&}LR)^Xg9XAt08|OJp}Cp0X0Gem9Bgns1!YHH@pM@Zn$A zwRW_WfUvP=xtyo0EjN`d9BmG;?riV9PIqRLj z9t*n-OY(>;F>Rc@vrOlG_JXRitdVRD%b+6*r)L=`-eS-TQ)FAZy-l(#awIl!kC~uN zA!Vy%fnD?POx1hi1s%IXt|m~oF0e0mOUsu%G4JNwoAH)d0!A_smMMNO7}p$?9n&D3w#1L3mYz-EWhwi;I<^}&v#4WYhBW!03=cB z!q^A_)H@+_qt*#+h--KZFp09&Y36#mtzTk)W;6{K8dN^NUAU@Sib@fK73-SP9Bzyj ztV~k*mch<@mhxb@$+O{-+50sT>wM$U)jLK3;Q`%(b^W$^vyC7TrpVw)=j&yZ0CI@+ z8ZZVl3Yy2D2C{|NrK0t^^3~J0idt$ z)HEcC0)$Y`U-^J~N6fKO9pEO&sk&EY=Alz%gNm>cxB?k`a`g}V{C@ade+lW(9$Q0) z$fEkNOuB{v+Vuc=_3(%0`QQ0|N=2G?lp9KxJNZ#>AG2u;0+?-Th`Zm8bJV}KHoN>3{w&P)!@X6WS1*R?2 zgz_~aaPj#xOEJzCE_M+C$pQ#HY(9WNucX9fT?|$~9r!Ba)^Gp>u5p5H59xXWleI6j zcGp$enrlXX4A=Xv_Dk6hey2pLFH!K*vYqv;0j5yuF~!FNyob2tfcgB%r!M(pAJPJX zDQe;nAKX%dIX-%_fE0@8b&AZ4zYQvWf17ZMl1CF>goh5Ea5CJ`?Y!SRD4J@G*CK7g&oe=aNko!9Ee2*=oUv>fNAOBoM@ zYBkp$5?o=~|EXF&7NMLf%I^8u#S2b-?>2?r-Et#zQQTo8+cP(OAmF zsSrTpons0#N;oJD#+cSa505ns1Z1w>COsud5^(X#&*Nbm`|XqHagR8X4?+T{V2Eoy+qF zFGtHjiJ@5D?FVw>HBRJb&Nn=J0(!`5Z7sWh2%jwVc9~%IJyphmd_;x}q$HAjtik}x z#dxi-NMNFOUyGBeKMwUr)}jBe+t1R=Zd1EenD(oX%t+RR;!)LD`x(3s$ZXU@Dq6Y5%M+>5o|~`WO}`NbadYm2(S@ajt}+96htWXen{83ZO~4g_I2K9 zWu|}2s{HjUzyr*Wip4)YNzy$%oP=>kEdQ*=-18Z!5}e3Ff8-Y6Fzxt^+}D1@#MHx- z>XVCq99n1U3Va|5YUN_DiN)22=+!MJZe%5d_Ewaep19vFa7(&<h@Y96;|L%OiTuKzYVqgH~rN95LK4H#GW9)uD61D4wPS-f1z_O*j38{Ov_M#MoLLjZ9W z+EzbP-JDsa%1I#zp~5#gWtFrTziycwSw*DXf$|r8nAZO?j*x73`e>Fg&Q!ZbZZhH& zqarzBIaTwt9AsLSCg}nOH%i~bbPR%v;q$T>EA2lkNaui^^r4)`fj^Su=F3dv$4#Nx zRYAF*SI4YEJZ7nXQXR<0u(0!qVMUHkWn(#Y*8!0K;}BVH-ffd)>Dw2nu6vb2;VuEc zhS0R7^a+Hmjza4m*S=z{1U?^y&tu)<nA&q2R9=QPZXHZ7 zcjt_o&nz+v_3q-1n6;R@zXEf&MZlAf^T#KuMQ*+Lf!&9o^>x6I_x+ElIllMAlm z(${=THEFK+CT%weFIVMadA zBuwF@N9hW6mGEvl%?ajsoZwST02ae3lCc%}Y}QnMfalshpkl-{p_ru{Qc zmJc%FD2K<-M|K)*2#etEw<$@0cUvX779is~ z!h4tReLfH_SMB#(3%UkXo2VAj9}3c6o$Zm`<`9zS(c5_lnT1BHoMM7F5#y!ft$Pn=whNbLm@;!0oQL$^( zcV4IR)c*tT>pa8bYwY_J613RUHMuk~b34niHClzgPF7CcmIZ5~u;#M4BRbv;)mEU_ zE`L}723QG2Xhu*3x&xTrDygvHFmK8ulh4)LpE_x>W8wnyM^2-JHwK>bVu{RoAHjH3 z5m*&}QC$C!-?wIlZXNZrh0nR9vl%ui;Lf&l+!*9EfmN`6Y0(6X!yoEl@hR(J&laZg z%X*ZuaB+!mHlUciWO<#x3A5%mYF$nO${Qwlu!Y5Nv-~KnJ^q~u#P(cqm#y~^sm&yC zlG0FXJX_@Ag>JNo;JBcX_e7kBtF$NgY55!?KxfO>bBCl{5x!SYd0_tWs>kO|y`vFL z!y56ptWk`~1r0Yz%^M*^@3Z53bD-Os4q}gp@nY-y86_tGyVjfDV*ZtVr`9817tKN~ z6}z$N*uJEpsmj88=jv!%mlm+>{1klHH5hEp5N^I=C9%>S$GOcI3P|sh%w5C@+DR1b zy4~Pp+wSKt=-Yuy)Pbvef(Yf|AMq9bzbGE-mVfcV$w=fG7UgFD7(h0O*+(#m&9LO? zW5x2ue!g9$%(?O9OgFYC8V0BDk|sATPFST>B)O#2^rny8G_SckmOTR!BRzfVM(h?V zf?&@sg_?T67&1y!$$bVqVa)){ZUSFcepz;3vetQtS4|_*mb^NThszdte~adQ$*>0p z*nZ0aq{wb4lh&lq6t)i4>bCCvY;&uw4oqLSsd8wls!}yejO8}c|r@uq~JSo01_r3TgUaXVVWOdON(_y2Mui}Py z>VVSzI5d{enPGH|KfSToJinap=cW}?_2IHi!k2Wow7UahV{h3#%yl#RXXnS8I=&huDQ2M~ z+AFjV^K9subp+jx)8^X436f?lFoicB*h2q`&AP4(h?hUt?462p6y|!lC+k0^19xj? zkJ&S6YoPGC#iIUrWCK;8X=vZD_L|xIVJWxmVPP)xwi?YFrhho|9sdv^(w=6~=`U*m zc+{*_&y+L8*WEupsjt-_@+gcsqo$Oe=>02C!~fa!`x-j;rWllVhlxJ}4CFV50OIPL zZz7m)@nf!F`U6!D5%g8iiMGLa26%G^tIG;9wqNw@n|C+;KXh!?{u$C?J!C^3T_cU8 zGEJuenR;#ZiG1wU77bu}6VAv!w72;?t!k0fA5ZY(X-4gW`ZMB7&T%b(9%9zBtf-n{ zp*S#0egn>vU!#<-k*{tIzsCBb=esj~=&4uDH9B0@Jt21+#$Vm~a>*oroIm;6Mfrr+ z;!L%9>KWCAY~12|w>fScn1?daMJW!6#p$zVOBTuhHGcA+V!f`LD|(b7W*OKbOI|9Q zZh<^iTt>ndq-ND~U#WmX{4oJB#qgDCzRva#YBLZV7kW>&OTc?jDG>jUD0A_Yo24y% zmSPTZwl*;#ZJa&|n?31B_~Rhpt}x_^ zi}vAE%2gGab!uxZ@R+Y3utbH?#?r_$c9ylBq>pC(#WEA$0)+o4?`;yx|CAL1Rk#nM ztvBGH{A1_-Zxo`=D)8Jnql@Oh{kI?fos@gO1ms?H*?J^z{D){9e?3-^=zyA`Qo8mZ zPPmtN!9S_Ny`$FPkFDijXZ_#*6d-o}@0}6{zTyA-Oo{)$`u2&pHn_LyasIJ#-gjgn z0F)I*kVX*+RAJp^i)PwSU@2?{4KhG+lRQ84Sii2a64*=UqjDd-489cuaH(3;BE8y& zZ5`d6q<~Nu3tSduWAZh!jQro0dmY%EY3GR*nAC;h5nPo?;)BpPE$%Kn1UkJKkapVx z8nmUFqE3^i1z-$#XZLXs8J$xJ0vOy2I2ysec|qMIz=&_!dvvDWqSB~Uxa>%~yeWuV z2e=n;0Q>T&ZjJoTE&X~kbRF;BX> z08V{|p{mI_{cNeRX;+-`z98ua(aK(K$x=ypbTq@^|7q_$qnhmYZT~7wL`6m56+}=( zq=|xnbQP(gNH0>9UIWrwh@gmqfJl?xL3;0m&=C-j&=ab30)*Z|lDpXB-f_-$?{UZZ za6WE72?L*jdD>d@Kj&}GMn;#x@a{{o(Pkz8auz;uzi9OJ@|y9N&(sGKGSb12q8b<* za1Z9FMCYXVJ==9(@vLOu7aEUGD8ktOeD+eKI;$~6G>lt1 zT}&*c+rMNEKwzKw9rhWceMNUhIMJw2B45TSQs~;tm+z!Mmb)yuAGJz)SU@&A?1rL9}W+-s@{Rs{hBmF7NmiZsu*a)U$KT0sS3lksNq)QyNnLP|$ruO&@sv+91 z)okI!k8@b($E{KnMb0f0r&#w`rA*2YcbD*OX9JB(XAHM8f9D2-Gu-pt?&=&wh!h%B zj=Y*2%ni@V$om@1`3d{U_cw(UY0b=Qy)qUN+k-O0Ut(GC$Fs)VM*A^VE`Kjl&yeee zlkoO!Y(oI#bzKvLi3?8|x2@q4Y=ZEF*}~taouNOXp0tG5!YyG>@Dv{ zu(cQZ8-#@3JUR(cvxv@)>(0p)Tph{he@AJ|$0F_)6JKfD11I9s0qc4A%Anh%AKs|> zuWrB$TWF6>j@1{0M}ie;aOnM#usHVufq0{NFztXqYmdA|zhC?j$H!1nx>KxM>@WVF z;*Ts59kB%6V)musnrH>ZZjxcj-KPHjL$zerYC0{!lPTIje z(gx2E&dQ;=uaILU8e7&mXN7(^#H*^|lLj?hHh>nLLx?kA??B~#So*&a6u_N~oK6*D|I#!shw zrD8n{VQ!Dk6Ho(7N&gGy?zqlm$NPP%*^9wseG988b>3`xdgRt^9t#@HeA?BL(!U$Ba_W)0mGjrewV? zZ~95WXgojSh^dm@s9m}=p0zTLFtr(F^;x@Biz5bQ`W(1qIxpmzj!Ob8vP`kk2Ufnz z^Arxel?_6D{3bDCSy6@6yQU^EQRP!Ax(#OEwe-oy(2`R|*WmhPpI0QmIB^fvww+_p zZsK;W4RZgx#Tk0RlDFzQ-9Q#_4T~8H-EeQ<()4>1RQV*pNS=5?kvRR`QNFwEi(Owg zwzIX7thj;u@zoAFHNu)5ZJFp>UivZ8q)U!O&Qk;v+TEPJX?4``@`%l*_GrzkaHE4S zw;bzIL#UcP|#6L{C@TH^Twk^yV{umDdz)8 zxN~#fj@!7O^ywz~i6w;wr(W-xy7R1`@aMyB9!iRL!aTaXu{p`!6AL_*w4f87j4o)r z%{ImNB#oKUZU?1T+SCrFEb@pv@ZbTWY}ybwy3LHX;}4>LAvBQwf1VpV;MHEI7c`Fdh|CSkOdN0?Qi=4)bNfs0RO zCadE}g;$Mj5v(PES|=G!tknWW{!79E7PzS5@bb*2eh` zCSdaMsiCC5b(TuySpoClZ0@v!anux||3J5Ev#ghdRZAKM6Wa@{>>1*EUrc{s9LYVz z<>ejcvrN~mg^zy(_e##uq7PZzaZ?;-9VgcehldV~4|LGh2{$GC-l*{@903@=XM%>L z!K<}*2h(m?`}ffYjSy|F4o>(XQkrTo1Gc{+zg_13qiVWT!J_5;7SxZ+5kHe(zinCbo9PBT$dXpnSrU~kzM0Rt_Ne&kn$oy;V4@)Ey2cgVUVTSe!mMFg#bsr0<|yN~?OwSm#0S^4palWmItrsz=X%{{M8cQt-b5qOP58J;LqXq5 zMV?m=BUfRXamUzirTvu8qFM)i#MlG0Y?y^NVz>4ke&<= z?JG5PgVxMi0+ySI#aJwR`{EF_uBzRb0&z1)x>o%;4!)V2Px_HT`ZXiRFY=pxLMq4G zh&qW5O>_DFHiEx3DF|MV7=6~Gzb;N5F64XoK(xrE>pAzdui&$=|EM<~m>+!cKz$hiAr+`8E~-=r8MhW8C-ouHAcvEYg=JAFGU zsIlGB%o=A*P)!oA$4UWGrSJYq=fkXfmRG3%U zNy%_!r~k!f3GZEN?}IzgDta!B=LPc5{0Psg<$d;^uRfhcvSHt-7aPN>yQLCGi%oDb z%(hbFMMh*MzKzGW-|(i^8BriPvLyFJ-|rPON2LyOQ}y(ff~gvYkA3WM53@=dRtKY~ zd#6iR6Dbi#^d0O-ar7s;yVei*AKd2tea7|O#XV@Qmk$_^g8ny(-J1rfjv0%dmA8h8 zw^mnJf*k(Pp1fpUMG{j0?W69#c2t&ASt_JPLv2vm%i`Szox$ozAt#4YlxsdbPU7L@ z6>=RLR3p@Ij_TwLPyABuJz=VW2=<^!YYw}hO~!;+Ajgpjms|F^=FakdnWGRdfX=oA66!yC z5f`SY9`Wg>B3dzeY0qRu`XhR0T?l(3by^-V%^aK|l@0*=^kgZ8i$OV(am9Cal(qsp z=AJ;h3pPA)0%-HHM#n*({W?&M^~R;|k?m01b@UCT>s&_l$t(rLT+89EA4FWE;PbFV zPf5H{ukF@U^}bYhH(ok_sTo8qFO$wvU$4o1S?#wO(p#X9tmS7eo#MuSHKUsyH}~I9 zOJr%^HXm_xiq|6rfak_4>jumCo3R_x9iV;NkS)*OI3YTvGyEc@X-iUKFPE$PL2{p4 zO7<5_=9z27plVJoXkOS|t#|S)hwh~t1)co!+E=jcuMzhEBIb5RBSB6socOSYZzAC0 zD8hM0+h!vJ_S6<#Q0t2NwA%<~W;Bh@R|&75W`nXD;X}V|8D#LISNq*U(m^?C_$ZvrfhEXQ3pH~9yuq|5x9?aWUoBk>8eLWE_n!AFX@XCX$qvG=X&hl4J$M6C?w z1nNXss*tf~jue~3ZWzi>g#nv~yMICe8ah<+I-_Lgho@VsBnYjH7gqUP=6i9i4r!Fp zI~&E)9srwKevm-7`r}i?^YJ(KVIb%31@3V&kzQXDRgjF-dsi14=7nDuDcehWQQ)~X zvvt*?BGlulurh{bqQcIjjuQI8Cjlja4vJ;GkRWB2H)j3aDN8Oi9%@>1La`k};R%*m zocO)QAyjRUZT(G=BUe-hP5X8+y3K7i_+kXhBkPi|5^8g@irNnheDOG`N6dD#VFDIC zb)RnYW8t-a1Kq6q?+{))G0uBJqjmfZ!V12C^cSD+nufm(s^Z*ia@fn(ri@+I_qGET zud6y9`qa3Xv;4Cx@Wk}|7)hJIwju=pJ=DNj;I4?q>9jY1{fzyc4~0n3C&|*ZHZHg@ zYH~NHxx^J>teJ1FuG~1Lz+$)Fm;Lav{?Lked;$CtRk#pG+!kpqZ1;L3fTug`RpZCt6i5>_qI)|K@Rk1I*<_IYErW)n(Ib+K*sFn|4cP>PsLEL#9}A zsBi^3u7hScri#^ZE7v^YHOp;`RIe!aM>wp49NfBSZ@s;~T?jmJ&i=xKbc zbayMQbhb-xMHDl%p`BpjK3>LA^m>%2W{~2G^`YQUC9l<7WDd2Ho=;$J z`)ROL1f6NH$K)JAnJT@z%A;~OB zl?i|Eh<}>xM;L6AyP!Xkq-*S@&igmy^iwOl{pE{)f=1R^x?}y+HYqljGCgiStivk{ zkjs0G{J1cGWU*Jd-n0BuU+^C-v>KDxQAai+H92DLrQ=0hYj5MZ=iNB$FbM=v1mIH= zIGfEkeTm}&&j-2RMHc|n@Q zsHC=k$UwvB5_Tt;+(7&@^UL-f`{c=`WV~+MkuD*0jM(AeNOB4{mW2P}G(%|=FGGmw*4BV)j|<-!uVi*eRRRa!I4_GK{U=DLxka5 zwH3?zSZB77OM_Y$%3Gwl9b)@J6OBucV(o9vDRAiHg0dcmXnF6ivDieuMEV|Scx`{` zY^}PLRnN{0GzR|%r!V6z;yK)SIpOMe04vRt)uQ2|TnCK%YcdfK8@@zYl6`V)R~L(v?H$AifYpG42=X&5&3>rn6TW46 zlAY#jrS()d3p`7e`!R5qUNPzM?gtIF+T6OizrFVkc__Vi#%hv%H8eFV#t9cjTdlxK zoj6(MQ2YGT)z{(lVx}S9XR;?|OmPvW?PqIK2_pSdA~692JVP`JGcEY`De5>FtDfx@ zJKl4A`}#9#d`}T?FW+x4SxdTnELGCai&s9+w;#7a>XZ3@-~TdxaAta(3@KkbD_)P69}=JbG;ed4k&6UWhe$U+AKRtOhais))$|@~P!d zFCFV;24hV)Nj|gE+knHon93a~&&{`C zHTt)OL3_ZgUhT@_w9R4!WPY0Dt@MoV1SbyhXN7Pr<5iv4^neI#?DGYoT7wfNjv`lA zv2CacS#BWSM)VvTU9%~#=Z~T6H7Q`pvmbw=)at#*^aJa7!7an#CT#vGOW`%lJyFt@ z-l-W+!v9A~i*e{Ed_c0&q#{twle4_(9@5P29=A-2uv=9MHnJ1qxEL8on~81U49qnl}>2q8zVm4iB@p#0Rr2FNuk~y zH|%I#Q|N+8C8bnxbHCJ~2y~21yTapB=$+G$KB&-@*RQ|p%OCfM%JNT+d@?=ALd7Pu zcKlWF@GveX>cV$?`l;>#6)T{nGsqw|Frg z1O2RZMuwVFjkIThH)tj%yq0iTAz=(1g$#-$ zFq|?NF`dNH0VU(DsgS81g>Z(Foo?tfajI_jCV{>6guMfW;Vj1xkNV*XHA5s&Ruz%0 zk^mu{(Y0Q!XF!!%*d1Y}lcVrBlIEs|RC#fi-#NA~9u!vvoXprA?7y3T`pTi|eVhjx zUuC@xZp7k{%+Y)Zne>JiVbEkTi{ON%c2t;eqD$ zw{sCtdngNjyyi86awev`JG#eBZ#O+MCYZlMB;F$|EqsWEo?4=xnh{IQ*n`#JKap&u zV5IxF2YW?Q58F?%5Wl&ne9NJkqwrH1@EbnF{`C?VMkmRYNNb~EF^=z)izqOvmrM3tHM#HUf`icl&x+B? zUBrQLZ;E1@oax8sIA!Z3+Csgidl?pB^wVrq;FA3#amIxd(95ws^A5gM?A)`Il?Ts#bV^|&c%O0~h0Fjh5pcK5Tm@tN$8G+9b3 z4Uaj4rS(<{A-DmtDfBrGpF$;0jVbv&(vek)^)caLuJF>RFl$0jXZLFYT+XsvRb>E_ z_mam6I|NH?FV8t2uUIL%ILNGKWPEKryzQ%0`?KK^9w=c`R~3FWsj$^Kwi*I|ULjpm z7K@)&q?MksE{j^7TTV<}!*oYAM`AeyKD( zXSWMh)U`PfHbLcr5nk7zfbzoPb+c6=@Q)?KI|oCX`!ukLIyV<5?N4;<_V%)$GNWig z;}h-Av7KF|qiuTd5A4t3L--rnVoju8@P0RImzx<2zsOw0A4S9XGxpSf${v|gYlDLPFqL(rIYGujWR8Jbj3qGgdgD; zN{pBZen2zwsq(XM_RH}Kt~rvLQCiY9gtHEQU%=b-@S4Sl&Q<7qv)7XG%=-P8Rhge# z&K3P^3doXT6+D(_R8~N_{&rg(a?6kwaQdjF4XB`GjIIim+jk^IQ(1KQelAiBq$55{ zH(jxN@fiJ3u#T|n&b2ZrrJhelwJ$Hx_9LQo0T2;{c9bk)z1qvtJpIM&7|VsPLh>y$ za!k40gxbI9@@7Efdb;U*CL|<=^G2QY^?BKtiu9CV_$@|~p~_2N_Mj6tQzPMbOUZ=T z2GUbDJu^7Xxrw$sc}eoi=jg#6q4&ccHVbULHVpV!;`idu>AJ6@>D|*CZU=@?=F6Wy z)(aHM*X^Q-w-e%7(AzGZ*&wE+HAi1zu>UPle8=hmDW}@RUCMwz6}V59fBmwAPQ_(r zX1?N&7Iskc;J1(zj9Iacwr-b>Fv_f(l8~z+{7Q>DNheNZ`?%^IItp4n7keJR_p;SD zw_>&%v=e9ccwox3?Q&n{BoBSpAM72~Onq|ZRMqPV!f%Mn>>V#y=T^>(qB14PLlm+!b~yY%oWSChTmf8NZ3&s(iZVXk>)EV8sQtn3&14HbhtB z*)Yu<=;VwoMuao?pi$CwIrV3}5YH-?@^G!s{f13b5vxc9?!;wstc(J>hR$DZXo;bG zfcTB53jJ6Xp>v%NR4};sGh=XT8fs z)O64nTZvNxOZxdXVTj&P>wM99P}qDS`9=PSLqJa{uhvl4NQ0;b2!W+o7RBg=MMQ{+ zyLp!Cu6B;mHLt!@V=i7Bi*vrePdg5Y?ULv-w9vAi$+j+(cZmBY=H2ou`a)3L?&XwXLF!89{BXc2eI0mQFc z*PV{&p<#*EOTF&@Y>n}6W4Na-z(M!EH;buIkNZLK;X$Pv^P}MyA@Y|iW4YxtnKhhO zh@v^VxS5#o@(htiDxMU*l3HayqF17iWyXgh@4>7YKb*~nBR(@f7k#SrD5*VjP6-u?zK8F zCAw@VtuK$XkQYsL5zyyK4I7b@JKbanuz&dimn_f?TEJA8vVH+J(ctmyH<8)RbuaI4zafI+z%%uzBahhtZLFC&!sF_WdT!CE@{+(4OE#Ye~z8| z_J@Y~=1xgpZ1&3MK~0pJY~6doeleb!E-c&MhG{g?wsk^0F}=-x?n)UwD({*PdgTw@{O~NJN$Sb`%MfgCtl(qsnb8L zD1!DAMNCSEce{;F--{__*QlNU+K8U5OvgyPY4MDWk<^%sto56$d*c0&28g(W!jrLO zuOdkZ7W5T&ROTl!@lz zaPKw_IMAi1zQL8ThnwPNNdcYVwB&pl>#|25)C@* zV$gC}?qns8#U*wKyxLTj&BO*YP_)Ut$kOeTC`Zt&jc+=_OZn-6Ge0Wie&dje)6(>! z$v!Q`zIV=Hb@?B7-7nSTK=I^ye2W04b$6B$>Ac#Wl8Cz2t#7QT%r8y?h`P$Vy`!ZR z$|dI74K(u}DbGecCuT@pidK4Ca7UW+Cq>aZ&P{Odd)Xh{Nw!{0{rH&Y#vM5wa|rt5Bs$rVl;)S53}`(&8~ z#9kd-XSd%`nast=kV?ILcs*aW%YFX*cZ5*&uQ{vvql0Oxv+t|=*F8>*RmBTmk4>(_ zoTdr1iYs(3T>5Cw9*y7p?#K_Yt+zux;|DUV_;vdOLWyr8l`vjB;>)(cs6C3dijCl)Qz|!%mtf51iAgydU0HXycA(q=3w@Ed{K}0`A3ce z&nRi@gde}(s=hv0ZlUM+$RMNv%mWR`$YDmqJN(OYA2QM8A7+C?+3IFHUIv(aW57QD zfOS(%nb5G;QW-6>f)LLhWxd-s_^!qEK%fJX!7%8x*aN2dMjU`eR(HOktC3X~-5 zmP3mYt`Fv{{`f{PW#KHYaZc^y)aYBcwP`I!{RO2u0;{<_((v9qa0w_%5u}g7Eq{k_ zpP3Cn#v%Y$XxXql$W@Y{qoVzn-1`ieESEX1t_nLGQ@vf&}E!4DVSBlOA zm__uJat$W}71PJ_4n5S+pMf+ZBRe=aK{FXXOF!Bn_yY47aEOYNKFhEA@-t6Nh!pM- zX_@TLls*wds7VoD$SY=L>g|~51fJ(g(f|!U-Wt4qBdN3fVs&{TRV&{J$P}2d-=SYr zqg8Boa5N9VYdXiH3jAGHCpgB&-9caVHjAve*X(RquRA$V1-}mAjr_F7S@|Y;Pf@^VpHeuI%5|2>9(D$K~&_*Fp7^ z{dnfM7jG*BvYv@i!1$hUop*RYRy`f|`Pi1>y+ct_BcUCAt;eojorA^3>^gkypglNC z^oHcIJX|~GRMojaeaC*L@w}0VD4WNBZeO zV(R(zfN>A?%B1I&_apHo(4SFjwnh7gnm@(xxA2y&|= z(|$kARRhQOebWYY%GYa;SFx3?HfI=Ll%^_K>({($l-OUE$tA*>4LC=Z_-$nB2uQrg zG2E6$_!J(eS!u-d<{%5g&_kytaTjZPh%C*bWPZH7`mu9c7(ngxreI4B4%0^yFX=_X z88%CNwwm72Vke%rw~MW!)oK7K_Q7?r-9o1X!^;bZ1L-%ID(GZ-QW(|y!r0+x2K(bq z>6?*H(T#6Ht5Wn|u_N#Z^R3%nTE+c+T!!Q2R^bx|K+Y}~+iowL8Oqa^-#BVb8Pt;W zlh98lE=jkcUzZu!L(}Rv8dPrLG19JWFU&k@VhYj0g!eoQ517Q}Ro0gY>ZjpWH=Lhp zyxXh}a6CRq_TI*s0=UYlkLBli;A2^A@+aF~&FAm3h&3ug==C|tjo78Wtd25fPID4g z>hz`Der&_DE_bQ!Hlt0U~?cn1GbmMkDp^OA2aN*n=#U9OB07&h1^K0G+E}oLt`ijmYsR}G=yqf)SPbuyvT!Tk z{fh;6Nsgq4Eqvj>qO62p*9*;n630Naj=Hc)C9vA8kn-ib{$?@yGF%k}GG#VmyGBKW zg_V3D@*c@t`(;sf&OFe9y7WmvXwAw5Udn8sh4!?x2(N!9;On8WAeF@rHr25@g$7je z&7MJ(>h}A7ETYcu3sC!&y!42$Nv70No68J*#`hxcs{X>pUoJ&(LyFt`fZ~%wzP+;9 zHs>`P3?6Z_cZckT>nic}a^jS3bPY z_V~P8CG=|+1>%|`{I7d6-!4vE-~+1NReWj{|J#TFhBUnS?vYK7(ANaV+TL|bx;faM z_N#zuy>K&`1Xe#i7i{ul5_sC`j1*BTJ2S5QEj+3W)Tx?YnGX%OXc&2aT@i= zX&iIZBLOP-k-0$gTp1`$Od7O`$KUoU+mOxNF_rw|IpRw_Ho+Ei<&Hjvt)O(w8*f!L zb}t#UPuRIfm_m(d?Fyvm+vO(5=CLtf{W|y8%e;0LXHLX(e(%j42`PP#t5ngCuaT@j z_>rx`yvym`)F-Dio+zl3?D^YK0J^rU*?sDh1;QtzPq;o_(Nc3{p+99hv>`WrU63L1 zWzNpPbD9(L&On2bA-R*W8$b5F0U6~AjVmfFlBMnjAZM#)KS`#Z@ccOP%>>v=MtSI-J z3q7$OweAj&eo-drE^GNV|5$d@UCdAFy9Kz*(^tSQ!(o?0x z`~{_d{G5b;g^XAOAN8@dB$<8su~X#mQZ}S&=6!EmnelJOscX!9=1-Y z?EjIVT6lt~(HN=XD4pyT3-7JtmL3z!{Okk<;_|2Gu!$CYQnZr7FnG3 ze*|LMDnUM^rV&;7X{9B9Dj1Cbh*-p2ZC3YtHk0spcmv49hrR`NkuRj^y zqB-E`jW0){*gt+TIf`===31YRZODOfJl=M)C6H!5gLXO+JfCt5`sw~WGpCRHF>?2{ zv0METg!gOcN=VpENhXZy&@*t_E-Re#_XR!~@#M?8Ewc09o-6>5xyFLh{TJnalVada zr1qiz^i~3{ACBs2(0OJ~^3y1=_&b8-kMsXuU;Z|J+oUov{p|kf;s5y}aens%Owd}A zI|}s6H44KkjY04|3rvV|_bWNUg%=5GiYP~yv=H3dc?#f{dbczSP(~Gs!qACj$>_Br ztGn*KY3<5CJ9tF3`;DbXd~VoD;^NEj4@XAB_ikFwqj$C+mgA+ICBT16!vExxhoa$? zf4t8z6XBj^ho7x$|`^TMRiT_`BSa`y`%o;NdL1>|39D8e?F)G&Aa(O*VBKlr~h0} i|I>Hh|Nm~;B#By@Mrb%V*Zc+kD9WlnFM9SW;Qs(dY`uK| literal 0 HcmV?d00001 diff --git a/tutorials/integrations/crewai-integration.mdx b/integrations/crewai-integration.mdx similarity index 55% rename from tutorials/integrations/crewai-integration.mdx rename to integrations/crewai-integration.mdx index 8a98d6e6..6283650e 100644 --- a/tutorials/integrations/crewai-integration.mdx +++ b/integrations/crewai-integration.mdx @@ -1,6 +1,8 @@ --- title: "Integrate Runpod with CrewAI" +sidebarTitle: CrewAI description: "Learn how to deploy a vLLM worker on Runpod and connect it to CrewAI for orchestrating autonomous AI agents." +tag: "BETA" --- Learn how to integrate Runpod Serverless with CrewAI, a framework for orchestrating role-playing autonomous AI agents. By the end of this tutorial, you'll have a vLLM endpoint running on Runpod that you can use to power your CrewAI agents. @@ -16,63 +18,54 @@ In this tutorial, you'll learn how to: ## Requirements -* You've [created a Runpod account](/get-started/manage-accounts). -* You've created a [Runpod API key](/get-started/api-keys). -* You have CrewAI installed in your development environment. +Before you begin, you'll need: + +* A [Runpod account](/get-started/manage-accounts) (with available credits). +* A [Runpod API key](/get-started/api-keys). +* A [CrewAI](https://crewai.com/) account. * (Optional) For gated models, you've created a [Hugging Face access token](https://huggingface.co/docs/hub/en/security-tokens). ## Step 1: Deploy a vLLM worker on Runpod -First, you'll deploy a vLLM worker that will serve your language model. +First, you'll deploy a vLLM worker to serve your language model. - + Open the [Runpod console](https://www.console.runpod.io/serverless) and navigate to the Serverless page. - + + Click **New Endpoint** and select **vLLM** under **Ready-to-Deploy Repos**. - - Under **Quick Deploy**, find **Serverless vLLM** and click **Configure**. - + + + For more details on vLLM deployment options, see [Deploy a vLLM worker](/serverless/vllm/get-started). + + In the deployment modal: - - * Select a vLLM version (latest stable recommended). - * Under **Hugging Face Models**, enter your model name (e.g., `openchat/openchat-3.5-0106`). - * If using a gated model like Llama, enter your **Hugging Face Token**. - * Click **Next**. - - - In the vLLM settings modal, under **LLM Settings**: - - * Set **Max Model Length** to `8192` (or an appropriate context length for your model). - * If your CrewAI agents require tool calling, add environment variables like `ENABLE_AUTO_TOOL_CHOICE=true` and appropriate parsers. See the [vLLM tool calling documentation](https://docs.vllm.ai/en/latest/features/tool_calling.html) for details. + * Enter the model name or Hugging Face model URL (e.g., `openchat/openchat-3.5-0106`). + * Expand the **Advanced** section: + * Set **Max Model Length** to `8192` (or an appropriate context length for your model). + * You may need to enable tool calling and set an appropriate reasoning parser depending on your model. * Click **Next**. - + * Click **Create Endpoint**. - - Review the endpoint settings: - - * Set your desired GPU type and worker count. - * Configure scaling settings based on your expected workload. - * Click **Deploy**. - - - Your endpoint will now begin initializing. This may take several minutes while Runpod provisions resources and downloads your model. Wait until the status shows as **Running**. - Once deployed, navigate to your endpoint in the Runpod console and copy the **Endpoint ID**. You'll need this to connect CrewAI. - - - - + Once deployed, navigate to your endpoint in the Runpod console. You can find your endpoint ID in the **Overview** tab: + + + + -For more details on vLLM deployment options, see [Deploy a vLLM worker](/serverless/vllm/get-started). + You can also find your endpoint ID in the URL of the endpoint detail page. For example, if the URL for your endpoint is `https://console.runpod.io/serverless/user/endpoint/isapbl1e254mbj`, the endpoint ID is `isapbl1e254mbj`. - + Copy your endpoint ID to the clipboard. You'll need this to connect your endpoint to CrewAI. + + ## Step 2: Connect CrewAI to your Runpod endpoint @@ -80,21 +73,19 @@ Now you'll configure CrewAI to use your Runpod endpoint as an OpenAI-compatible - Open the CrewAI dashboard and look for the **LLM connections** section. + Open the CrewAI dashboard and open the **LLM connections** section. - Under **Provider**, select **custom-openai-compatible** from the dropdown menu. + Under **Add New Conncection**, enter a name for your connection. Then under **Provider**, select **custom-openai-compatible** from the dropdown menu. - + Configure the connection with your Runpod credentials: - * For `OPENAI_API_KEY`, use your Runpod API Key. You can find or create API keys in the [Runpod console](https://www.runpod.io/console/user/settings). - + * For `OPENAI_API_KEY`, use your Runpod API Key. You can find or create API keys in the settings page of the [Runpod console](https://console.runpod.io/user/settings). - - For `OPENAI_API_BASE`, add the base URL for your vLLM's OpenAI-compatible endpoint: + For `OPENAI_API_BASE`, enter the base URL for your vLLM's OpenAI-compatible endpoint: ``` https://api.runpod.ai/v2/ENDPOINT_ID/openai/v1 @@ -110,11 +101,11 @@ Now you'll configure CrewAI to use your Runpod endpoint as an OpenAI-compatible ## Step 3: Test your integration -Verify that your CrewAI agents can use your Runpod endpoint. +To verify that your CrewAI agents can use your Runpod endpoint, you can try using it in an automation: - Create a simple CrewAI agent that uses your Runpod endpoint for its language model. + Create a blank automation and add an Agent node. Click the edit button to configure it. the Agent node. Under **Model**, select your Runpod endpoint from the dropdown menu (if you have trouble finding it, try filtering for **Custom OpenAI Compatible** models). @@ -132,7 +123,7 @@ Verify that your CrewAI agents can use your Runpod endpoint. ## Next steps -Now that you've integrated Runpod with CrewAI, you can: +Now that you've integrated Runpod with CrewAI, you can * Build complex multi-agent systems using your Runpod endpoint to serve the necessary models. * Explore other [integration options](/integrations/overview). diff --git a/integrations/n8n-integration.mdx b/integrations/n8n-integration.mdx new file mode 100644 index 00000000..a3562164 --- /dev/null +++ b/integrations/n8n-integration.mdx @@ -0,0 +1,164 @@ +--- +sidebarTitle: n8n +title: "Integrate Runpod with n8n" +description: "Deploy a vLLM worker on Runpod and connect it to n8n for AI-powered workflow automation." +tag: "NEW" +--- + +Learn how to integrate Runpod Serverless with n8n, a workflow automation tool. By the end of this tutorial, you'll have a vLLM endpoint running on Runpod that you can use within your n8n workflows. + + +For a faster start, you can point your n8n workflow to an OpenAI-compatible [Public Endpoint](/hub/public-endpoints) instead of deploying a vLLM worker. To do this, skip to [step 2](#step-2%3A-create-an-n8n-workflow) to create your workflow, then in step 3, set the base URL to the Public Endpoint URL for Qwen3 32B AWQ: + +``` +https://api.runpod.ai/v2/qwen3-32b-awq/openai/v1 +``` + + +## What you'll learn + +In this tutorial, you'll learn how to: + +* Deploy a vLLM worker serving the `Qwen/qwen3-32b-awq` model. +* Configure your environment variables for n8n compatibility. +* Create a simple n8n workflow to test your integration. +* Connect your workflow to your Runpod endpoint. + +## Requirements + +Before you begin, you'll need: + +* A [Runpod account](/get-started/manage-accounts) (with available credits). +* A [Runpod API key](/get-started/api-keys). +* An [n8n](https://n8n.io/) account. + +## Step 1: Deploy a vLLM worker on Runpod + +First, you'll deploy a vLLM worker to serve the `Qwen/qwen3-32b-awq` model. + + + + Open the [Runpod console](https://www.console.runpod.io/serverless) and navigate to the Serverless page. + + Click **New Endpoint** and select **vLLM** under **Ready-to-Deploy Repos**. + + + + + + For more details on vLLM deployment options, see [Deploy a vLLM worker](/serverless/vllm/get-started). + + + In the deployment modal: + + * In the **Model** field, enter `Qwen/qwen3-32b-awq`. + * Expand the **Advanced** section to configure your vLLM environment variables: + * Set **Max Model Length** to `8192`. + * Near the bottom of the page, check **Enable Auto Tool Choice**. + * Set **Tool Call Parser** to `Hermes`. + * Set **Reasoning Parser** to `Qwen3`. + * Click **Next**. + * Click **Create Endpoint**. + + + When using a different model, you may need to adjust your vLLM environment variables to ensure your model returns responses in the format that n8n expects. + + + Your endpoint will now begin initializing. This may take several minutes while Runpod provisions resources and downloads your model. Wait until the status shows as **Running**. + + + + Once deployed, you'll be taken to the detail page for your endpoint in the Runpod console. You can find your endpoint ID in the **Overview** tab: + + + + + + You can also find your endpoint ID in the URL of the endpoint detail page. For example, if the URL for your endpoint is `https://console.runpod.io/serverless/user/endpoint/isapbl1e254mbj`, the endpoint ID is `isapbl1e254mbj`. + + Copy your endpoint ID to your clipboard. You'll need it to configure your n8n workflow. + + + +## Step 2: Create an n8n workflow + +Next, you'll create a simple n8n workflow to test your integration. + + + + Open n8n and navigate to your workspace, then click **Create Workflow**. + + + Click **Add first step** and select **On chat message**. Click **Test chat** to confirm. + + + + Click the **+** button and search for **AI Agent** and select it. Click **Execute step** to confirm. + + + + Click the **+** button labeled **Chat Model**. Search for **OpenAI Chat Model** and select it. + + + + Click the dropdown under **Credential to connect with** and select **Create new credential**. + + + + +## Step 3: Configure the OpenAI Chat Model node + +Now you'll configure the n8n OpenAI Chat Model node to use the model running on your Runpod endpoint. + + + + + Under **API Key**, add your Runpod API Key. You can create an API key on the settings page of the [Runpod console](https://console.runpod.io/user/settings). + + + + Under **Base URL**, replace the default OpenAI URL with your Runpod endpoint URL: + + ``` + https://api.runpod.ai/v2/ENDPOINT_ID/openai/v1 + ``` + + Replace `ENDPOINT_ID` with your vLLM endpoint ID from Step 1. + + + + Click **Save**, and n8n will automatically test your endpoint connection. + + It may take a few minutes for your endpoint to scale up a worker to process the request. You can monitor the request using the **Workers** and **Requests** tabs for your vLLM endpoint in the Runpod console. + + If you see the message "Connection tested successfully," that means your endpoint is reachable, but it doesn't gaurantee that it's fully compatible with n8n—we'll do that in the next step. + + + + Press escape to return to the OpenAI Chat Model configuration modal. + + Under **Model**, select `qwen/qwen3-32b-awq`, then press escape to return to the workflow canvas. + + + + + Type a test message into the chat box like "Hello, how are you?" and press enter. + + If everything is working correctly, you should see each of the nodes in your workflow go green to indicate successful execution, and a response from the model in the chat box. + + + Make sure to **Save** your workflow before closing it, as n8n may not save changes to your model node configuration automatically. + + + + + +## Next steps + +Congratulations! You've successfully used Runpod to power an AI agent on n8n. + +Now that you've integrated with n8n, you can: + +* Build complex AI-powered workflows using your Runpod endpoints. +* Explore other [integration options](/integrations/overview) with Runpod. +* Learn about [OpenAI compatibility](/serverless/vllm/openai-compatibility) features in vLLM. diff --git a/integrations/overview.mdx b/integrations/overview.mdx index ec88d2ab..a936a791 100644 --- a/integrations/overview.mdx +++ b/integrations/overview.mdx @@ -1,22 +1,19 @@ --- title: "Integrate Runpod with external tools" sidebarTitle: "Overview" -description: "Learn how to integrate Runpod endpoints with external tools and frameworks." +description: "Learn how to integrate Runpod compute resources with external tools and agentic frameworks." +tag: "NEW" --- -Runpod can be integrated with any system that supports custom endpoint configuration. If a library or framework lets you set a custom base URL, you can connect it to your Runpod endpoints without specialized adapters or connectors. +You can integrate Runpod with any system that supports custom endpoint configuration. Integration is usually straightforward: any library or framework that accepts a custom base URL for API calls will work with Runpod without specialized adapters or connectors. This means you can use Runpod with tools like n8n, CrewAI, LangChain, and many others by simply pointing them to your Runpod endpoint URL. -## How it works - -Integration is straightforward: any library or framework that accepts a custom base URL for API calls will work with Runpod. This means you can use Runpod with tools like n8n, CrewAI, LangChain, and many others by simply pointing them to your Runpod endpoint URL. - -## Deployment options +## Endpoint integration options Runpod offers four deployment options for endpoint integrations: ### Public Endpoints -Public Endpoints are pre-deployed AI models that you can use without setting up your own Serverless endpoint. They're vLLM-compatible and return OpenAI-compatible responses, so you can get started quickly or test things out without deploying infrastructure. +[Public Endpoints](/hub/public-endpoints) are pre-deployed AI models that you can use without setting up your own Serverless endpoint. They're vLLM-compatible and return OpenAI-compatible responses, so you can get started quickly or test things out without deploying infrastructure. The following Public Endpoint URLs are available for OpenAI-compatible models: @@ -28,9 +25,7 @@ https://api.runpod.ai/v2/qwen3-32b-awq/openai/v1 https://api.runpod.ai/v2/granite-4-0-h-small/openai/v1 ``` -For pricing details and usage information, see [Public Endpoints](/hub/public-endpoints). - -### vLLM +### vLLM workers [vLLM workers](/serverless/vllm/overview) provide an inference engine that returns [OpenAI-compatible responses](/serverless/vllm/openai-compatibility), making it ideal for tools that expect OpenAI's API format. @@ -42,17 +37,23 @@ https://api.runpod.ai/v2/ENDPOINT_ID/openai/v1 Where `ENDPOINT_ID` is your Serverless endpoint ID. -### SGLang +For a full walkthrough of how to integrate a vLLM endpoint with an agentic framework, see the n8n integration guide: -[SGLang workers](/serverless/sglang/overview) are an inference engine that returns OpenAI-compatible responses. It offers optimized performance for certain model types and use cases. + + + Connect Runpod to n8n for AI-powered workflow automation. + + + +### SGLang workers -To learn more, see the [runpod-workers/worker-sglang](https://github.com/runpod-workers/worker-sglang) repository on GitHub. +[SGLang workers](https://github.com/runpod-workers/worker-sglang) also return OpenAI-compatible responses, offering optimized performance for certain model types and use cases. -### Load balancer +### Load balancing endpoints [Load balancing endpoints](/serverless/load-balancing/overview) let you create custom endpoints where you define your own inputs and outputs. This gives you complete control over the API contract and is ideal when you need custom behavior beyond standard inference patterns. -## Model configuration for compatibility +## Model configuration and compatibility Some models require specific vLLM environment variables to work with external tools and frameworks. You may need to set a custom chat template or [tool call parser](https://docs.vllm.ai/en/latest/features/tool_calling.html) to ensure your model returns responses in the format your integration expects. @@ -68,35 +69,21 @@ These settings enable automatic tool choice selection and set the right parsers For more information about tool calling configuration and available parsers, see the [vLLM tool calling documentation](https://docs.vllm.ai/en/latest/features/tool_calling.html). -## Integration tutorials - -Follow these step-by-step tutorials to integrate Runpod with popular tools: - - - - Connect Runpod to n8n for AI-powered workflow automation. - - - - Use Runpod to power autonomous AI agents in CrewAI. - - - ## Compatible frameworks The same integration pattern works with any framework that supports custom OpenAI-compatible endpoints, including: +* **n8n**: A workflow automation tool with AI integration capabilities. * **CrewAI**: A framework for orchestrating role-playing autonomous AI agents. * **LangChain**: A framework for developing applications powered by language models. * **AutoGen**: Microsoft's framework for building multi-agent conversational systems. * **Haystack**: An end-to-end framework for building search systems and question answering. -* **n8n**: A workflow automation tool with AI integration capabilities. Configure these frameworks to use your Runpod endpoint URL as the base URL, and provide your Runpod API key for authentication. ## Third-party integrations -For infrastructure management and orchestration, Runpod integrates with: +For infrastructure management and orchestration, Runpod also integrates with: * [**dstack**](/integrations/dstack): Simplified Pod orchestration for AI/ML workloads. * [**SkyPilot**](/integrations/skypilot): Multi-cloud execution framework. diff --git a/overview.mdx b/overview.mdx index 4367394d..04164cd3 100644 --- a/overview.mdx +++ b/overview.mdx @@ -25,6 +25,17 @@ If you're new to Runpod, start here to learn the essentials and deploy your firs +You can also watch this video for a high-level overview of our products: + + + ## Serverless Serverless provides pay-per-second computing with automatic scaling for production AI/ML apps. You only pay for actual compute time when your code runs, with no idle costs, making Serverless ideal for variable workloads and cost-efficient production deployments. diff --git a/pods/choose-a-pod.mdx b/pods/choose-a-pod.mdx index d6a84801..c73ec37e 100644 --- a/pods/choose-a-pod.mdx +++ b/pods/choose-a-pod.mdx @@ -1,6 +1,6 @@ --- title: Choose a Pod -description: "Learn how to select the right Pod by evaluating your resource requirements." +description: "Select the right Pod by evaluating your resource requirements." sidebar_position: 3 --- diff --git a/pods/configuration/use-ssh.mdx b/pods/configuration/use-ssh.mdx index 484119ba..ec9ef201 100644 --- a/pods/configuration/use-ssh.mdx +++ b/pods/configuration/use-ssh.mdx @@ -1,34 +1,36 @@ --- title: "Connect to a Pod with SSH" sidebarTitle: "Connect with SSH" -description: "Connect to your Pods with SSH to manage long-running processes and critical tasks." +description: "Manage Pods from your local machine using SSH." --- -Connecting to a Pod through an SSH (Secure Shell) terminal provides a secure and reliable method for interacting with your instance. Use this to manage long-running processes, critical tasks, and when you need the full capabilities of a shell environment. +Connecting to a Pod through an SSH (Secure Shell) terminal provides a secure and reliable method for interacting with your instance. Use this to manage long-running processes, critical tasks, or when you need the full capabilities of a shell environment. Every Pod offers the ability to connect through SSH using the [basic proxy method](#basic-ssh-with-key-authentication) below (which does not support commands like SCP or SFTP), but not all Pods support the [full public IP method](#full-ssh-via-public-ip-with-key-authentication). -You can also SSH into a Pod using a [password-based method](#password-based-ssh) if you want a simple and fast way to enable SSH access without setting up SSH keys. However, SSH key authentication is recommended for most use cases, as it provides greater security and convenience for repeated use. +You can also SSH into a Pod using a [password-based method](#password-based-ssh) if you want a simple and fast way to enable SSH access without setting up SSH keys. SSH key authentication is recommended for most use cases, as it provides greater security and convenience for repeated use. ## Generate an SSH key and add it to your Runpod account This is best for long term usage of SSH as every time you start up a pod, the SSH key will be set to the environment variable of the pod. -1. Generate an SSH key using this command on your local terminal: + + + Run this command on your local terminal to generate an SSH key, replacing `YOUR_EMAIL@DOMAIN.COM` with your actual email: ```sh ssh-keygen -t ed25519 -C "YOUR_EMAIL@DOMAIN.COM" ``` - This saves your public/private key pair to `~/.ssh/id_ed25519.pub` and `~/.ssh/id_ed25519` respectively. + This saves a public/private key pair on your local machine to `~/.ssh/id_ed25519.pub` and `~/.ssh/id_ed25519` respectively. + If you are using Command Prompt on Windows instead of the Linux terminal or WSL, your public and private key pair will be saved to `C:\Users\YOUR_USER_ACCOUNT\.ssh\id_ed25519.pub` and `C:\Users\YOUR_USER_ACCOUNT\.ssh\id_ed25519`, respectively. + + - If you are using Command Prompt on Windows instead of the Linux terminal or WSL, your public and private key pair will be saved to `C:\Users\YOUR_USER_ACCOUNT\.ssh\id_ed25519.pub` and `C:\Users\YOUR_USER_ACCOUNT\.ssh\id_ed25519`, respectively. - - - -2. Retrieve your public SSH key by running this command: + + Run this command on your local terminal to retrieve the public SSH key you just generated: ```sh cat ~/.ssh/id_ed25519.pub @@ -39,67 +41,107 @@ This is best for long term usage of SSH as every time you start up a pod, the SS ```sh ssh-ed25519 AAAAC4NzaC1lZDI1JTE5AAAAIGP+L8hnjIcBqUb8NRrDiC32FuJBvRA0m8jLShzgq6BQ YOUR_EMAIL@DOMAIN.COM ``` + -3. Copy and paste the output into the **SSH Public Keys** field in your [Runpod user account settings](https://www.console.runpod.io/user/settings). + + Copy and paste your public key from the previous step into the **SSH Public Keys** field in your [Runpod user account settings](https://www.console.runpod.io/user/settings). - -If you need to add multiple SSH keys to your Runpod account, make sure that each key pair is on its own line in the **SSH Public Keys** field. - + + If you need to add multiple SSH keys to your Runpod account, make sure that each key pair is on its own line in the **SSH Public Keys** field. + + + -### Override public key for a specific Pod +### Override your public key for a specific Pod -Runpod will attempt to automatically inject the public SSH keys added in your account settings for authentication when connecting using the [basic terminal method](#basic-ssh-connection). If you prefer to use a different public key for a specific Pod, you can override the default by setting the `SSH_PUBLIC_KEY` environment variable for that Pod. +Runpod will attempt to automatically inject the public SSH keys added in your account settings for authentication when connecting using the [basic terminal method](#basic-ssh-with-key-authentication). If you prefer to use a different public key for a specific Pod, you can override the default by setting the `SSH_PUBLIC_KEY` [environment variable](/pods/templates/environment-variables) for that Pod. ## Basic SSH with key authentication All Pods provide a basic SSH connection that is proxied through Runpod's systems. This method does not support commands like SCP (Secure Copy Protocol) or SFTP (SSH File Transfer Protocol). -To connect using this method: + + + Ensure you have an [SSH key pair](#generate-an-ssh-key-and-add-it-to-your-runpod-account) generated on your local machine and added to your Runpod account. + -1. Ensure you have an [SSH key pair](#generate-an-ssh-key-and-add-it-to-your-runpod-account) generated on your local machine and added to your Runpod account. -2. Navigate to the [Pods page](https://console.runpod.io/pods) in the Runpod console. -3. Expand your Pod and select **Connect**. -4. Select the SSH tab. Copy the command listed under **SSH**. It should look something like this: + + + Navigate to the [Pods page](https://console.runpod.io/pods) in the Runpod console. Select the Pod you want to connect to from the list to open its connection options. + + + + + In the Pod's **Connect** tab, copy the command listed under **SSH**. It should look something like this: ```sh ssh 8y5rumuyb50m78-6441103b@ssh.runpod.io -i ~/.ssh/id_ed25519 ``` - - If you saved your key to a custom location, use that specific path after the `-i` flag instead. - + + If you saved your key to a custom location, use that specific path after the `-i` flag instead. + + + -5. Run the copied command in your local terminal to connect to your Pod. + + Run the copied command in your local terminal to connect to your Pod. + + ## Full SSH via public IP with key authentication For full SSH capabilities, including SCP and SFTP for file transfers, you need to rent an instance that supports a public IP address and ensure an SSH daemon is running within your Pod. -If you're using a Runpod official template such as Runpod PyTorch or Stable Diffusion, no additional setup is required, as full SSH access is already configured for you. +If you're using a Runpod official template such as Runpod PyTorch or Stable Diffusion, full SSH access is already configured for you, so no additional setup is required. -However, if you're using a custom template, ensure that TCP port 22 is exposed and that the SSH daemon is running inside your Pod. If it isn't, add the Docker command below to your template (or, if you already have a custom start command, replace `sleep infinity` at the end of your command with this one): +However, if you're using a custom template, ensure that TCP port 22 is exposed and that the SSH daemon is running inside your Pod. If it isn't, add the Docker command below to your template. Or, if you already have a custom start command, replace `sleep infinity` at the end of your command with this one: ```sh -bash -c 'apt update;DEBIAN_FRONTEND=noninteractive apt-get install openssh-server -y;mkdir -p ~/.ssh;cd $_;chmod 700 ~/.ssh;echo "$PUBLIC_KEY" >> authorized_keys;chmod 700 authorized_keys;service ssh start;sleep infinity' +bash -c 'apt update; \ +DEBIAN_FRONTEND=noninteractive apt-get install openssh-server -y; \ +mkdir -p ~/.ssh; \ +cd ~/.ssh; \ +chmod 700 ~/.ssh; \ +echo "$PUBLIC_KEY" >> authorized_keys; \ +chmod 700 authorized_keys; \ +service ssh start; \ +sleep infinity' ``` Once you're sure that the SSH daemon is running, you can connect to your Pod by following these steps: -1. Ensure you have an [SSH key pair](#generate-an-ssh-key-and-add-it-to-your-runpod-account) generated on your local machine and added to your Runpod account. -2. An SSH daemon must be started in your Pod. Runpod official templates, such as "Runpod PyTorch", often have this pre-configured. If you're using a custom template, ensure TCP port 22 is exposed and the SSH daemon is started. Refer to the [Use SSH guide](/pods/configuration/use-ssh) for commands to include in your custom Docker template. -3. Navigate to the [Pods page](https://console.runpod.io/pods) in the Runpod console. -4. Expand your Pod and select **Connect**. -5. Select the SSH tab. Copy the command listed under **SSH over exposed TCP**. It should look something like this: + + + Ensure you have an [SSH key pair](#generate-an-ssh-key-and-add-it-to-your-runpod-account) generated on your local machine and added to your Runpod account. + - ```sh - ssh root@213.173.108.12 -p 17445 -i ~/.ssh/id_ed25519 - ``` + + An SSH daemon must be started in your Pod. Runpod official templates, such as "Runpod PyTorch", often have this pre-configured. If you're using a custom template, ensure TCP port 22 is exposed and the SSH daemon is started. Refer to the [Use SSH guide](/pods/configuration/use-ssh) for commands to include in your custom Docker template. + + + + Navigate to the [Pods page](https://console.runpod.io/pods) in the Runpod console. Select the Pod you want to connect to from the list to open its connection options. + + + + In the Pod's **Connect** tab, copy the command listed under **SSH over exposed TCP**. It should look something like this: + + ```sh + ssh root@213.173.108.12 -p 17445 -i ~/.ssh/id_ed25519 + ``` If you saved your key to a custom location, use that specific path after the `-i` flag instead. -6. Run the copied command in your local terminal to connect to your Pod. + + + + + Run the copied command in your local terminal to connect to your Pod. + + The SSH command above has the following structure: diff --git a/pods/connect-to-a-pod.mdx b/pods/connect-to-a-pod.mdx index ce38ac69..9ca6df45 100644 --- a/pods/connect-to-a-pod.mdx +++ b/pods/connect-to-a-pod.mdx @@ -1,10 +1,8 @@ --- title: "Connection options" sidebarTitle: "Connection options" -description: "Learn how to connect to your Pod using the web terminal, SSH, JupyterLab, or VSCode." +description: "Explore our Pod connection options, including the web terminal, SSH, JupyterLab, and VSCode/Cursor." --- - -This page provides an overview of the primary ways you can connect to your Pods to execute code and access your data. ## Web terminal connection diff --git a/pods/manage-pods.mdx b/pods/manage-pods.mdx index cbcf162c..3de52019 100644 --- a/pods/manage-pods.mdx +++ b/pods/manage-pods.mdx @@ -1,6 +1,6 @@ --- title: "Manage Pods" -description: "Learn how to create, start, stop, and terminate Pods using the Runpod console or CLI." +description: "Create, start, stop, and terminate Pods using the Runpod console or CLI." --- ## Before you begin @@ -158,12 +158,12 @@ With custom templates, you can: If your Pod has a [network volume](/storage/network-volumes) attached, it cannot be stopped, only terminated. When you terminate the Pod, data in the `/workspace` directory will be preserved in the network volume, and you can regain access by deploying a new Pod with the same network volume attached. -When a Pod is stopped, data in the container volume is cleared, but data in the `/workspace` directory is preserved. To learn more about how Pod storage works, see [Storage overview](/pods/storage/types). +When a Pod is stopped, data in the container disk is cleared, but data in the `/workspace` directory is preserved. To learn more about how Pod storage works, see [Storage overview](/pods/storage/types). By stopping a Pod you are effectively releasing the GPU on the machine, and you may be reallocated [zero GPUs](/references/troubleshooting/zero-gpus) when you start the Pod again. -After a Pod is stopped, you will still be charged for its [disk volume](/pods/storage/types#disk-volume) storage. If you don't need to retain your Pod environment, you should terminate it completely. +After a Pod is stopped, you will still be charged for its [volume disk](/pods/storage/types#volume-disk) storage. If you don't need to retain your Pod environment, you should terminate it completely. diff --git a/pods/overview.mdx b/pods/overview.mdx index 3ca996bf..d4ea4054 100644 --- a/pods/overview.mdx +++ b/pods/overview.mdx @@ -32,11 +32,11 @@ Templates eliminate the need to manually set up environments, saving time and re Pods offer three types of storage to match different use cases: -Every Pod comes with a resizable **container volume** that houses the operating system and stores temporary files, which are cleared after the Pod stops. +Every Pod comes with a resizable **container disk** that houses the operating system and stores temporary files, which are cleared after the Pod stops. -**Disk volumes** provide persistent storage that is preserved throughout the Pod's lease, functioning like a dedicated hard drive. Data stored in the disk volume directory (`/workspace` by default) persists when you stop the Pod, but is erased when the Pod is deleted. +**Volume disks** provide persistent storage that is preserved throughout the Pod's lease, functioning like a dedicated hard drive. Data stored in the volume disk directory (`/workspace` by default) persists when you stop the Pod, but is erased when the Pod is deleted. -Optional [network volumes](/pods/storage/network-volumes) provide more flexible permanent storage that can be transferred between Pods, replacing the disk volume when attached. When using a Pod with network volume attached, you can safely delete your Pod without losing the data stored in your network volume directory (`/workspace` by default). +Optional [network volumes](/pods/storage/network-volumes) provide more flexible permanent storage that can be transferred between Pods, replacing the volume disk when attached. When using a Pod with network volume attached, you can safely delete your Pod without losing the data stored in your network volume directory (`/workspace` by default). To learn more, see [Storage options](/pods/storage/types). diff --git a/pods/pricing.mdx b/pods/pricing.mdx index b27cbe42..c55e511a 100644 --- a/pods/pricing.mdx +++ b/pods/pricing.mdx @@ -136,7 +136,7 @@ Runpod offers [three types of storage](/pods/storage/types) for Pods:: You are not charged for storage if the host machine is down or unavailable from the public internet. -Container and disk volume storage will be included in your Pod's displayed hourly cost during deployment. +Container and volume disk storage will be included in your Pod's displayed hourly cost during deployment. Runpod is not designed as a long-term cloud storage system. Storage is provided to support compute tasks. We recommend regularly backing up critical data to your local machine or to a dedicated cloud storage provider. @@ -144,7 +144,7 @@ Runpod is not designed as a long-term cloud storage system. Storage is provided ## Pricing for stopped Pods -When you [stop a Pod](/pods/manage-pods#stop-a-pod), you will no longer be charged for the Pod's hourly GPU cost, but will continue to be charged for the Pod's disk volume at a rate of \$0.20 per GB per month. +When you [stop a Pod](/pods/manage-pods#stop-a-pod), you will no longer be charged for the Pod's hourly GPU cost, but will continue to be charged for the Pod's volume disk at a rate of \$0.20 per GB per month. ## Tracking costs and savings plans diff --git a/pods/storage/create-network-volumes.mdx b/pods/storage/create-network-volumes.mdx index 02da4868..37d79b94 100644 --- a/pods/storage/create-network-volumes.mdx +++ b/pods/storage/create-network-volumes.mdx @@ -6,7 +6,7 @@ description: "Persistent, portable storage for Pods." Network volumes offer persistent storage that exists independently of the lifecycle of a Pod. This means your data is retained even if a Pod is terminated. They can be attached to multiple Pods, making them ideal for sharing data, transferring storage between machines, or maintaining datasets. -When attached to a Pod, a network volume replaces the Pod's default disk volume and is typically mounted at ` /workspace`. +When attached to a Pod, a network volume replaces the Pod's default volume disk and is typically mounted at ` /workspace`. For a comparison with other storage types, see [Storage options](/pods/storage/types). diff --git a/pods/storage/types.mdx b/pods/storage/types.mdx index 3a879a4f..b114bd87 100644 --- a/pods/storage/types.mdx +++ b/pods/storage/types.mdx @@ -7,21 +7,21 @@ Choosing the right type of storage is crucial for optimizing your workloads, whe This page describes the different types of storage options available for your Pods, and when to use each in your workflow. -## Container volume +## Container disk -A container volume houses the operating system and provides temporary storage for a Pod. It's created when a Pod is launched and is directly tied to the Pod's lifecycle. +A container disk houses the operating system and provides temporary storage for a Pod. It's created when a Pod is launched and is directly tied to the Pod's lifecycle. -## Disk volume +## Volume disk -A disk volume provides persistent storage that remains available for the duration of the Pod's lease. It functions like a dedicated hard drive, allowing you to store data that needs to be retained even if the Pod is stopped or rebooted. +A volume disk provides persistent storage that remains available for the duration of the Pod's lease. It functions like a dedicated hard drive, allowing you to store data that needs to be retained even if the Pod is stopped or rebooted. -The disk volume is mounted at `/workspace` by default (this will be replaced by the network volume if one is attached). This can be changed by [editing your Pod configuration](#modifying-storage-capacity). +The volume disk is mounted at `/workspace` by default (this will be replaced by the network volume if one is attached). This can be changed by [editing your Pod configuration](#modifying-storage-capacity). ## Network volume -[Network volumes](/storage/network-volumes) offer persistent storage similar to the disk volume, but with the added benefit that they can be attached to multiple Pods, and that they persist independently from the Pod's lifecycle. This allows you to share and access data across multiple instances or transfer storage between machines, and retain data even after a Pod is deleted. +[Network volumes](/storage/network-volumes) offer persistent storage similar to the volume disk, but with the added benefit that they can be attached to multiple Pods, and that they persist independently from the Pod's lifecycle. This allows you to share and access data across multiple instances or transfer storage between machines, and retain data even after a Pod is deleted. -When attached to a Pod, a network volume replaces the disk volume, and by default they are similarly mounted at `/workspace`. +When attached to a Pod, a network volume replaces the volume disk, and by default they are similarly mounted at `/workspace`. @@ -32,7 +32,7 @@ Network volumes must be attached during Pod creation, and cannot be unattached l ## Storage type comparison This table provides a comparative overview of the storage types available for your Pods: -| Feature | Container Volume | Disk Volume | Network Volume | +| Feature | Container Disk | Volume Disk | Network Volume | | :---------------- | :------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------- | | **Data persistence** | Volatile (lost on stop/restart) | Persistent (retained until Pod deletion) | Permanent (retained independently from Pod lifecycles) | | **Lifecycle** | Tied directly to the Pod's active session | Tied to the Pod's lease period | Independent, can outlive Pods | @@ -51,17 +51,17 @@ Here's what you should consider when selecting storage for your Pods: ## Modifying storage capacity -To update the size of a Pod's container or disk volume: +To update the size of a Pod's container or volume disk: 1. Navigate to the [Pod page](https://console.runpod.io/pod) in the Runpod console. 2. Expand the Pod you want to modify. 3. Click the hamburger menu in the bottom right of the Pod card and select **Edit Pod**. -4. Adjust the storage capacity for the container or disk volume. Disk volume size can be increased, but not decreased. +4. Adjust the storage capacity for the container or volume disk. Volume disk size can be increased, but not decreased. 5. Click **Save** to apply the changes. -Editing a running Pod will cause it to reset completely, erasing all data that isn't stored in your disk/network volume mount path (`/workspace` by default). +Editing a running Pod will cause it to reset completely, erasing all data that isn't stored in your volume disk/network volume mount path (`/workspace` by default). diff --git a/references/troubleshooting/storage-full.mdx b/references/troubleshooting/storage-full.mdx index 6c23c687..33b8370e 100644 --- a/references/troubleshooting/storage-full.mdx +++ b/references/troubleshooting/storage-full.mdx @@ -34,14 +34,16 @@ tmpfs 252G 0 252G 0% /sys/devices/virtual/powerca ## Key areas to check -**Container Disk Usage**: The primary storage area for your container is mounted on the `overlay` filesystem. This indicates the container’s root directory. +**Container Disk Usage**: The primary storage area for your container is mounted on the `overlay` filesystem. This indicates the container's root directory. ```sh Filesystem Size Used Avail Use% Mounted on overlay 20G 16M 20G 1% / ``` -You can use the command `du -sh .` to check the space usage of the current directory. The default volume of container volume or network volume is mounted at `/workspace`, You can check the usage with the following example:: +You can use the command `du -sh .` to check the space usage of the current directory. + +By default, the volume disk or network volume is mounted at `/workspace`, You can check the usage with the following example:: ```sh root@9b8e325167b2:/# cd workspace/ diff --git a/runpodctl/reference/runpodctl-create-pod.mdx b/runpodctl/reference/runpodctl-create-pod.mdx index 0f33cdf1..7d2279ac 100644 --- a/runpodctl/reference/runpodctl-create-pod.mdx +++ b/runpodctl/reference/runpodctl-create-pod.mdx @@ -33,7 +33,7 @@ runpodctl create pod [flags] --secureCloud create in secure cloud --templateId string templateId to use with the pod --vcpu int minimum vCPUs needed (default 1) - --volumePath string container volume path (default "/runpod") + --volumePath string volume disk path (default "/workspace") --volumeSize int persistent volume disk size in GB (default 1) --networkVolumeId string network volume id ``` diff --git a/runpodctl/reference/runpodctl-create-pods.mdx b/runpodctl/reference/runpodctl-create-pods.mdx index 04340d9c..5602ca83 100644 --- a/runpodctl/reference/runpodctl-create-pods.mdx +++ b/runpodctl/reference/runpodctl-create-pods.mdx @@ -32,7 +32,7 @@ runpodctl create pods [flags] --ports strings ports to expose; max only 1 http and 1 tcp allowed; e.g. '8888/http' --secureCloud create in secure cloud --vcpu int minimum vCPUs needed (default 1) - --volumePath string container volume path (default "/runpod") + --volumePath string volume disk path (default "/workspace") --volumeSize int persistent volume disk size in GB (default 1) ``` diff --git a/serverless/endpoints/endpoint-configurations.mdx b/serverless/endpoints/endpoint-configurations.mdx index fd99c71b..5d91b28c 100644 --- a/serverless/endpoints/endpoint-configurations.mdx +++ b/serverless/endpoints/endpoint-configurations.mdx @@ -1,12 +1,12 @@ --- title: "Endpoint settings and optimization guide" sidebarTitle: "Endpoint settings" +description: "Configure your endpoints to optimize for performance, cost, and reliability." --- import GPUTable from '/snippets/serverless-gpu-pricing-table.mdx'; -This guide explains all available settings and best practices for configuring Runpod Serverless endpoints, helping you optimize for performance, cost, and reliability. - +This guide explains all available settings and best practices for configuring your Serverless endpoints. ## Endpoint name diff --git a/serverless/endpoints/job-states.mdx b/serverless/endpoints/job-states.mdx index f611f566..610cec2b 100644 --- a/serverless/endpoints/job-states.mdx +++ b/serverless/endpoints/job-states.mdx @@ -1,5 +1,6 @@ --- title: "Job states and metrics" +description: "Monitor your endpoints effectively by understanding job states and key metrics." --- Understanding job states and metrics is essential for effectively managing your Serverless endpoints. This documentation covers the different states your jobs can be in and the key metrics available to monitor endpoint performance and health. diff --git a/serverless/endpoints/manage-endpoints.mdx b/serverless/endpoints/manage-endpoints.mdx index 38c5d170..938aecd3 100644 --- a/serverless/endpoints/manage-endpoints.mdx +++ b/serverless/endpoints/manage-endpoints.mdx @@ -1,10 +1,9 @@ --- title: "Manage Serverless endpoints" sidebarTitle: "Manage endpoints" +description: "Deploy and manage your endpoints using the Runpod console or REST API." --- -This guide covers the essential management operations for Runpod Serverless endpoints, helping you deploy, configure, and maintain your Serverless applications effectively. - ## Create an endpoint diff --git a/serverless/endpoints/overview.mdx b/serverless/endpoints/overview.mdx index 52232d99..d850c195 100644 --- a/serverless/endpoints/overview.mdx +++ b/serverless/endpoints/overview.mdx @@ -1,15 +1,32 @@ --- -title: "Queue-based endpoints" +title: "Overview" sidebarTitle: "Overview" +description: "Learn the basic Serverless endpoints work and how to configure them." --- -Endpoints are the foundation of Runpod Serverless, serving as the gateway for deploying and managing your Serverless workers. They provide a consistent API interface that allows your applications to interact with powerful computational resources on demand. +Endpoints are the foundation of Runpod Serverless, serving as the gateway for deploying and managing your Serverless workers. They provide a consistent API interface that allows your applications to interact with powerful compute resources on demand. Whether you're processing large datasets, running AI inference, or performing compute-intensive tasks, endpoints give you the flexibility to deploy and scale your workloads. -## What are endpoints? +## What are Serverless endpoints? -Runpod endpoints are RESTful APIs that accept HTTP requests, execute your code, and return the result via HTTP response. Each endpoint provides a unique URL and abstracts away the complexity of managing infrastructure. Behind the scenes, Runpod handles the entire lifecycle of Serverless workers, including job queuing, execution, and result delivery, so you can focus on your code, not the infrastructure. +Runpod Serverless endpoints are RESTful APIs that accept HTTP requests, execute your code, and return the result via HTTP response. Each endpoint provides a unique URL and abstracts away the complexity of managing individual GPUs/CPUs. + +Behind the scenes, Runpod handles the entire lifecycle of Serverless workers, including job queuing, execution, and result delivery, so you can focus on your code, rather than the underlying infrastructure. + +## Key concepts + +Understanding these fundamental concepts will help you work effectively with Serverless endpoints: + +An **endpoint** is a RESTful API, which provides a URL that serves as the entry point for your Serverless worker, allowing you to send requests and receive responses. + +A [request](/serverless/endpoints/send-requests) is an HTTP request that you send to an endpoint, which can include parameters, payloads, and headers that define what the endpoint should process. For example, a `POST` request to run a job, or a `GET` request to check status of a job or endpoint health. + +When a request is sent to an endpoint, it creates a **job** that gets processed by a worker. **Jobs** can be either synchronous (immediate response) or asynchronous (background processing). + +A [worker](/serverless/workers/overview) is the containerized environment that executes your handler code, providing the compute resources (CPU, GPU, memory) needed to process requests. + +The [handler function](/serverless/workers/handler-functions) is the code that processes incoming requests and returns responses, defining the business logic of your endpoint. ## Key features @@ -19,13 +36,13 @@ Serverless offers **asynchronous processing** via the `/run` endpoint operation, It also provides **synchronous operations** through the `/runsync` endpoint operation, allowing you to receive immediate results in the same request, which is perfect for interactive applications. -To learn more, see [Endpoint operations](/serverless/endpoints/operations). +To learn more, see [Operation overview](/serverless/endpoints/send-requests#operation-overview). ### Deployment and scaling Runpod endpoints are **auto-scaling**, automatically scaling from zero to hundreds of workers based on demand. You can **customize your endpoint configuration** to adjust the minimum and maximum worker count, GPU allocation, and memory settings. The system also offers **GPU prioritization**, allowing you to specify preferred GPU types in order of priority. -To learn more, see [Endpoint configurations](/serverless/endpoints/endpoint-configurations). +To learn more, see [Endpoint settings](/serverless/endpoints/endpoint-configurations). ### Integration options @@ -33,19 +50,6 @@ Runpod endpoints support [webhook notifications](/serverless/endpoints/send-requ It also includes [S3-compatible storage integration](/serverless/endpoints/send-requests#s3-compatible-storage-integration) for working with object storage for larger inputs and outputs. -## Key concepts - -Understanding these fundamental concepts will help you work effectively with Serverless endpoints: - -An **endpoint** is a RESTful API, which provides a URL that serves as the entry point for your Serverless worker, allowing you to send requests and receive responses. - -A [request](/serverless/endpoints/send-requests) is an HTTP request that you send to an endpoint, which can include parameters, payloads, and headers that define what the endpoint should process. For example, a `POST` request to run a job, or a `GET` request to check status of a job or endpoint health. - -When a request is sent to an endpoint, it creates a **job** that gets processed by a worker. **Jobs** can be either synchronous (immediate response) or asynchronous (background processing). - -A [worker](/serverless/workers/overview) is the containerized environment that executes your handler code, providing the compute resources (CPU, GPU, memory) needed to process requests. - -The [handler function](/serverless/workers/handler-functions) is the code that processes incoming requests and returns responses, defining the business logic of your endpoint. ## Getting started diff --git a/serverless/endpoints/send-requests.mdx b/serverless/endpoints/send-requests.mdx index 693ba462..94170bbd 100644 --- a/serverless/endpoints/send-requests.mdx +++ b/serverless/endpoints/send-requests.mdx @@ -1,7 +1,7 @@ --- title: "Send API requests to Serverless endpoints" sidebarTitle: "Send API requests" -description: "Learn how to send API requests to submit and manage jobs to queue-based endpoints." +description: "Submit and manage jobs for your endpoints by sending API requests." --- diff --git a/serverless/load-balancing/build-a-worker.mdx b/serverless/load-balancing/build-a-worker.mdx index 16b20128..4ac68d7e 100644 --- a/serverless/load-balancing/build-a-worker.mdx +++ b/serverless/load-balancing/build-a-worker.mdx @@ -2,15 +2,9 @@ title: "Build a load balancing worker" sidebarTitle: "Build a load balancing worker" description: "Learn how to implement and deploy a load balancing worker with FastAPI." -tag: "BETA" +tag: "NEW" --- - - -Load balancing endpoints are currently in beta. We're actively addressing issues and working to improve the user experience. [Join our Discord](https://discord.gg/runpod) if you'd like to provide feedback. - - - This tutorial shows how to build a load balancing worker using FastAPI and deploy it as a Serverless endpoint on Runpod. ## What you'll learn @@ -203,13 +197,9 @@ curl -X GET "https://ENDPOINT_ID.api.runpod.ai/stats" \ After sending a request, your workers will take some time to initialize. You can track their progress by checking the logs in the **Workers** tab of your endpoint page. -If you see the following error: - -``` -{"error":"no workers available"}% -``` +If you see: `{"error":"no workers available"}%` after running the request, this means your workers did not initialize in time to process it. If you try running the request again, this will usually resolve the issue. -This means your workers did not initialize in time to process the request. If you try running the request again, this will usually resolve the issue. +For production applications, implement a health check with retries before sending requests. See [Handling cold start errors](/serverless/load-balancing/overview#handling-cold-start-errors) for a complete code example. Congratulations! You've now successfully deployed and tested a load balancing endpoint. If you want to use a real model, you can follow the [vLLM worker](/serverless/load-balancing/vllm-worker) tutorial. diff --git a/serverless/load-balancing/overview.mdx b/serverless/load-balancing/overview.mdx index b48b78c3..2b08f1cd 100644 --- a/serverless/load-balancing/overview.mdx +++ b/serverless/load-balancing/overview.mdx @@ -2,15 +2,9 @@ title: "Overview" sidebarTitle: "Overview" description: "Deploy custom direct-access REST APIs with load balancing Serverless endpoints." -tag: "BETA" +tag: "NEW" --- - - -Load balancing endpoints are currently in beta. We're actively addressing issues and working to improve the user experience. [Join our Discord](https://discord.gg/runpod) if you'd like to provide feedback. - - - Load balancing endpoints offer a completely new paradigm for Serverless endpoint creation, enabling direct access to worker HTTP servers without an intermediary queueing system. Unlike traditional queue-based endpoints that process requests sequentially, load balancing endpoints route incoming traffic directly to available workers, distributing requests across the worker pool. @@ -187,6 +181,73 @@ If your server is misconfigured and the ports are not correctly opened, your wor +## Payload limits + +Load balancing endpoints have a 30 MB payload limit for both requests and responses. + +If you need to handle payloads larger than 30 MB, you can try these approaches: + +- Use a [network volume](storage/network-volumes) to store model artifacts and large datasets for access during runtime. +- Implement chunking strategies to split large payloads into smaller pieces. + + +## Handling cold start errors + +When you first send a request to a load balancing endpoint, you might get a "no workers available" error. This happens because workers need time to initialize, i.e. the server is up, but the health check at `/ping` isn't passing yet. + +For production applications, you should implement a health check with retries before sending your actual requests. + +Here's a Python function that handles this: + +```python +import requests +import time + +def health_check_with_retry(base_url, api_key, max_retries=3, delay=2): + """Simple health check with retry logic for Runpod cold starts""" + headers = {"Authorization": f"Bearer {api_key}"} + + for attempt in range(max_retries): + try: + response = requests.get(f"{base_url}/ping", headers=headers, timeout=10) + if response.status_code == 200: + print("✓ Health check passed") + return True + except Exception as e: + print(f"Attempt {attempt + 1} failed: {e}") + + if attempt < max_retries - 1: + time.sleep(delay) + + print("✗ Health check failed after retries") + return False + +# Usage example +base_url = "https://ENDPOINT_ID.api.runpod.ai" +api_key = "RUNPOD_API_KEY" + +# Ensures that a worker is ready (with retries) +if health_check_with_retry(base_url, api_key): + # Worker is ready, send your actual /generate request + response = requests.post( + f"{base_url}/generate", + headers={"Authorization": f"Bearer {api_key}"}, + json={"prompt": "Hello, world!"} + ) + print(response.json()) +else: + print("Worker failed to initialize") +``` + +The `health_check_with_retry` function: + +- Sends requests to the `/ping` endpoint with configurable retries (default: 3 attempts). +- Waits between attempts to give workers time to initialize (default: 2 seconds). +- Uses a 10-second timeout per health check request. +- Returns `True` when the worker is ready, or `False` if initialization fails. + +Use at least 3 retries with 5-10 second delays between attempts. This gives workers enough time to complete their cold start process before you send production requests. + ## Technical details The load balancing system employs an HTTP load balancer that inspects application-level protocols to make routing decisions. When a request arrives at `https://ENDPOINT_ID.api.runpod.ai/PATH`, the system: diff --git a/serverless/load-balancing/vllm-worker.mdx b/serverless/load-balancing/vllm-worker.mdx index 437d919b..404b891d 100644 --- a/serverless/load-balancing/vllm-worker.mdx +++ b/serverless/load-balancing/vllm-worker.mdx @@ -2,15 +2,9 @@ title: "Build a load balancing vLLM endpoint" sidebarTitle: "Build a vLLM load balancer" description: "Learn how to deploy a custom vLLM server to a load balancing Serverless endpoint." -tag: "BETA" +tag: "NEW" --- - - -Load balancing endpoints are currently in beta. We're actively addressing issues and working to improve the user experience. [Join our Discord](https://discord.gg/runpod) if you'd like to provide feedback. - - - This tutorial shows how to build a vLLM application using FastAPI and deploy it as a load balancing Serverless endpoint on Runpod. ## What you'll learn @@ -605,13 +599,9 @@ curl -X POST "https://ENDPOINT_ID.api.runpod.ai/v1/chat/completions" \ After sending a request, your workers will take some time to initialize. You can track their progress by checking the logs in the **Workers** tab of your endpoint page. -If you see the following error: - -``` -{"error":"no workers available"}% -``` +If you see: `{"error":"no workers available"}%` after running the request, this means your workers did not initialize in time to process it. If you try running the request again, this will usually resolve the issue. -This means your workers did not initialize in time to process the request. If you try running the request again, this will usually resolve the issue. +For production applications, implement a health check with retries before sending requests. See [Handling cold start errors](/serverless/load-balancing/overview#handling-cold-start-errors) for a complete code example. Congrats! You've created a load balancing vLLM endpoint and used it to serve a large language model. diff --git a/serverless/overview.mdx b/serverless/overview.mdx index 4ae414ae..6cca841c 100644 --- a/serverless/overview.mdx +++ b/serverless/overview.mdx @@ -7,7 +7,7 @@ Runpod Serverless is a cloud computing platform that lets you run AI models and