From 9876d39da79af3a9fa1666c6f3e2e5a28c7fab3c Mon Sep 17 00:00:00 2001 From: Alexis VIALARET Date: Tue, 2 Apr 2024 18:36:49 +0200 Subject: [PATCH 1/9] chore: create .skaff/skaff.yaml (#172) --- .skaff/skaff.yaml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 .skaff/skaff.yaml diff --git a/.skaff/skaff.yaml b/.skaff/skaff.yaml new file mode 100644 index 0000000..c260bdf --- /dev/null +++ b/.skaff/skaff.yaml @@ -0,0 +1,28 @@ +spec_version: 1 + +# Everyting in this file will be used to populate the catalog on skaff.artefact.com +# It is also vectorized as is for the search, so make sure to provide relevant keywords + +name: Vertex Pipelines Deployer +owner: jules.bertrand@artefact.com +description: > + Check, compile, upload, run and schedule Vertex Pipelines in a standardized manner. +documentation_url: https://supreme-funicular-mzylwj5.pages.github.io/ + +type: deployable # deployable, knowldege pack +lifecycle: production # prototype, production + +users: # DS, DA, DE + - DS + - DE + +clouds: # aws, gcp, azure, databricks + - gcp + +technologies: # python, dbt, terraform, airbyte, ... + - vertex + - python + +expertises: # MMM, forecasting, ELT, release engineering, ... + - MLEng + - MLOps From 5c08106706a1b86fefcc10dd250884687424d296 Mon Sep 17 00:00:00 2001 From: Jules Bertrand <33326907+julesbertrand@users.noreply.github.com> Date: Mon, 8 Apr 2024 16:14:24 +0200 Subject: [PATCH 2/9] chore: better exception message when validating deployer settings (#163) --- deployer/settings.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/deployer/settings.py b/deployer/settings.py index 6cc3bd4..b0a86c1 100644 --- a/deployer/settings.py +++ b/deployer/settings.py @@ -8,7 +8,7 @@ from pydantic import ValidationError from tomlkit.toml_file import TOMLFile -from deployer import constants +from deployer import __version__, constants from deployer.utils.config import ConfigType from deployer.utils.exceptions import InvalidPyProjectTOMLError from deployer.utils.models import CustomBaseModel @@ -136,8 +136,9 @@ def load_deployer_settings() -> DeployerSettings: try: settings = DeployerSettings(**settings) except ValidationError as e: - msg = f"In {path_pyproject_toml}:\n{e}\n" - msg += "Please check your configuration file." + msg = f"Invalid section tools.vertex_deployer:\n{e}\n" + msg += f"\nPlease check your configuration file: {path_pyproject_toml}" + msg += f" and check settings are compatible with deployer version (current: {__version__})" raise InvalidPyProjectTOMLError(msg) from e From 2a5b637a1be8ad06c9626f78d8cc479ce8dbb81a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 16:14:58 +0200 Subject: [PATCH 3/9] build(deps-dev): update ruff requirement from ^0.1 to ^0.3 (#165) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: julesbertrand --- deployer/utils/utils.py | 3 +-- pyproject.toml | 8 +++++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/deployer/utils/utils.py b/deployer/utils/utils.py index 968757e..b7487c6 100644 --- a/deployer/utils/utils.py +++ b/deployer/utils/utils.py @@ -37,8 +37,7 @@ class GraphComponentType(Protocol): def __call__( # noqa: D102 self, component_spec: Any, pipeline_func: Callable, display_name: Optional[str] = None - ): - ... + ): ... def filter_lines_from(tb: TracebackType, target_file: Union[Path, str]) -> str: diff --git a/pyproject.toml b/pyproject.toml index 7ef4e34..1d1097b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,7 +28,7 @@ pytest = "^8.0" pre-commit = "^3.3" ipykernel = "^6.9" nbstripout = "^0.7" -ruff = "^0.1" +ruff = "^0.3" pytest-cov = "^4.1" codespell = "^2.2" @@ -47,6 +47,8 @@ build-backend = "poetry.core.masonry.api" [tool.ruff] target-version = "py38" line-length = 99 + +[tool.ruff.lint] ignore = [ "D100", "D205", @@ -66,13 +68,13 @@ select = [ "I", # isort ] -[tool.ruff.pydocstyle] +[tool.ruff.lint.pydocstyle] convention = "google" [tool.ruff.lint.isort] known-first-party = ["vertex", "tests", "deployer"] -[tool.ruff.per-file-ignores] +[tool.ruff.lint.per-file-ignores] "*cli.py" = ["D", "B008"] "*__init__.py" = [ "F401", From 71c9da5a177697702dfa76dc9579a288125cc9d7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 17:40:38 +0200 Subject: [PATCH 4/9] build(deps): update typer requirement from ^0.9 to ^0.12 (#171) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: julesbertrand --- deployer/cli.py | 4 +-- docs/CLI_REFERENCE.md | 72 +++++++++++++++++++++---------------------- pyproject.toml | 2 +- 3 files changed, 38 insertions(+), 40 deletions(-) diff --git a/deployer/cli.py b/deployer/cli.py index f68a704..b05df1a 100644 --- a/deployer/cli.py +++ b/deployer/cli.py @@ -83,7 +83,7 @@ def main( def pipeline_name_callback(ctx: typer.Context, value: Union[str, bool]) -> Union[str, bool]: """Callback to check that the pipeline name is valid.""" if value is None: # None is allowed for optional arguments - return value + return [] pipeline_names: enum.Enum = ctx.obj["pipeline_names"] @@ -327,7 +327,7 @@ def check( pipeline_names: Annotated[ Optional[List[str]], typer.Argument( - ..., help="The names of the pipeline to run.", callback=pipeline_name_callback + ..., help="The names of the pipeline to check.", callback=pipeline_name_callback ), ] = None, all: Annotated[ diff --git a/docs/CLI_REFERENCE.md b/docs/CLI_REFERENCE.md index 79c0cce..022cd2e 100644 --- a/docs/CLI_REFERENCE.md +++ b/docs/CLI_REFERENCE.md @@ -8,8 +8,8 @@ $ vertex-deployer [OPTIONS] COMMAND [ARGS]... **Options**: -* `--log-level, -log [TRACE|DEBUG|INFO|SUCCESS|WARNING|ERROR|CRITICAL]`: Set the logging level. [default: INFO] -* `--version, -v`: Display the version number and exit. +* `-log, --log-level [TRACE|DEBUG|INFO|SUCCESS|WARNING|ERROR|CRITICAL]`: Set the logging level. [default: INFO] +* `-v, --version`: Display the version number and exit. * `--install-completion`: Install completion for the current shell. * `--show-completion`: Show completion for the current shell, to copy it or customize the installation. * `--help`: Show this message and exit. @@ -17,10 +17,10 @@ $ vertex-deployer [OPTIONS] COMMAND [ARGS]... **Commands**: * `check`: Check that pipelines are valid. -* `config`: Display the configuration from pyproject.toml. +* `config`: Display the configuration from... * `create`: Create files structure for a new pipeline. * `deploy`: Compile, upload, run and schedule pipelines. -* `init`: Initialize the deployer with default settings and folder structure. +* `init` * `list`: List all pipelines. ## `vertex-deployer check` @@ -30,11 +30,11 @@ Check that pipelines are valid. Checking that a pipeline is valid includes: * Checking that the pipeline can be imported. It must be a valid python module with a -`pipeline` function decorated with `@kfp.dsl.pipeline`. +`{pipeline_name}` function decorated with `@kfp.dsl.pipeline`. * Checking that the pipeline can be compiled using `kfp.compiler.Compiler`. -* Checking that config files in `{CONFIG_ROOT_PATH}/{pipeline_name}` are corresponding to the +* Checking that config files in `{config_root_path}/{pipeline_name}` are corresponding to the pipeline parameters definition, using Pydantic. --- @@ -44,20 +44,20 @@ pipeline parameters definition, using Pydantic. **Usage**: ```console -$ vertex-deployer check [OPTIONS] PIPELINE_NAMES... +$ vertex-deployer check [OPTIONS] [PIPELINE_NAMES]... ``` **Arguments**: -* `PIPELINE_NAMES...`: The names of the pipeline to create. [optional] +* `[PIPELINE_NAMES]...`: The names of the pipeline to check. **Options**: -* `--all, -a / --no-all`: Whether to check all pipelines. [default: no-all] -* `--config-filepath, -cfp PATH`: Path to the json/py file with parameter values and input artifacts to check. If not specified, all config files in the pipeline dir will be checked. -* `--warn-defaults, -wd / --no-warn-defaults, -nwd`: Whether to warn when a default value is used and not overwritten in config file. [default: warn-defaults] -* `raise-for-defaults, -rfd / --no-raise-for-defaults, -nrfd`: Whether to raise an validation error when a default value is used.and not overwritten in config file. [default: no-raise-for-defaults] -* `--raise-error, -re / --no-raise-error, -nre`: Whether to raise an error if the pipeline is not valid. [default: no-raise-error] +* `-a, --all`: Whether to check all pipelines. +* `-cfp, --config-filepath FILE`: Path to the json/py file with parameter values and input artifactsto check. If not specified, all config files in the pipeline dir will be checked. +* `-re, --raise-error / -nre, --no-raise-error`: Whether to raise an error if the pipeline is not valid. [default: no-raise-error] +* `-wd, --warn-defaults / -nwd, --no-warn-defaults`: Whether to warn when a default value is used.and not overwritten in config file. [default: warn-defaults] +* `-rfd, --raise-for-defaults / -nrfd, --no-raise-for-defaults`: Whether to raise an validation error when a default value is used.and not overwritten in config file. [default: no-raise-for-defaults] * `--help`: Show this message and exit. ## `vertex-deployer config` @@ -72,7 +72,7 @@ $ vertex-deployer config [OPTIONS] **Options**: -* `--all, -a`: Whether to display all configuration values. +* `-a, --all`: Whether to display all configuration values. * `--help`: Show this message and exit. ## `vertex-deployer create` @@ -87,11 +87,11 @@ $ vertex-deployer create [OPTIONS] PIPELINE_NAMES... **Arguments**: -* `PIPELINE_NAMES...`: The names of the pipeline to create. [required] +* `PIPELINE_NAMES...`: The names of the pipeline to create. [required] **Options**: -* `--config-type, -ct [json|py|toml]`: The type of the config to create. [default: json] +* `-ct, --config-type [json|py|toml]`: The type of the config to create. [default: json] * `--help`: Show this message and exit. ## `vertex-deployer deploy` @@ -101,40 +101,38 @@ Compile, upload, run and schedule pipelines. **Usage**: ```console -$ vertex-deployer deploy [OPTIONS] PIPELINE_NAME +$ vertex-deployer deploy [OPTIONS] PIPELINE_NAMES... ``` **Arguments**: -* `PIPELINE_NAMES...`: The names of the pipeline to deploy. [required] +* `PIPELINE_NAMES...`: The names of the pipeline to run. [required] **Options**: -* `--env-file PATH`: The environment file to use. -* `--compile, -c / --no-compile, -nc`: Whether to compile the pipeline. [default: compile] -* `--upload, -u / --no-upload, -nu`: Whether to upload the pipeline to Google Artifact Registry. [default: no-upload] -* `--run, -r / --no-run, -nr`: Whether to run the pipeline. [default: no-run] -* `--schedule, -s / --no-schedule, -ns`: Whether to create a schedule for the pipeline. [default: no-schedule] -* `--cron TEXT`: Cron expression for scheduling the pipeline. To pass it to the CLI, use hyphens e.g. `0-10-*-*-*`. -* `--delete-last-schedule, -dls / --no-delete-last-schedule`: Whether to delete the previous schedule before creating a new one. [default: no-delete-last-schedule] -* ` --scheduler-timezone TEXT` : IANA Timezone for the scheduler. [default: Europe/Paris] -* `--tags TEXT`: The tags to use when uploading the pipeline. [default: latest] -* `--config-filepath, -cfp PATH`: Path to the json/py file with parameter values and input artifacts to use when running the pipeline. -* `--config-name, -cn TEXT`: Name of the json/py file with parameter values and input artifacts to use when running the pipeline. It must be in the pipeline config dir. e.g. `config_dev.json` for `./vertex/configs/{pipeline-name}/config_dev.json`. -* `--enable-caching, -ec / --no-enable-caching`: Whether to enable caching when running the pipeline. [default: no-enable-caching] -* `--experiment-name, -en TEXT`: The name of the experiment to run the pipeline in. Defaults to '{pipeline_name}-experiment'. -* `--local-package-path, -lpp PATH`: Local dir path where pipelines will be compiled. [default: vertex/pipelines/compiled_pipelines] -* `--skip-validation, -y / --no-skip, -n`: Whether to skip the confirmation prompt. [default: yes] +* `--env-file FILE`: The environment file to use. +* `-c, --compile / -nc, --no-compile`: Whether to compile the pipeline. [default: compile] +* `-u, --upload / -nu, --no-upload`: Whether to upload the pipeline to Google Artifact Registry. [default: no-upload] +* `-r, --run / -nr, --no-run`: Whether to run the pipeline. [default: no-run] +* `-s, --schedule / -ns, --no-schedule`: Whether to create a schedule for the pipeline. [default: no-schedule] +* `--cron TEXT`: Cron expression for scheduling the pipeline. To pass it to the CLI, use hyphens e.g. '0-10-*-*-*'. +* `-dls, --delete-last-schedule`: Whether to delete the previous schedule before creating a new one. +* `--scheduler-timezone TEXT`: Timezone for scheduling the pipeline. Must be a valid string from IANA time zone database [default: Europe/Paris] +* `--tags TEXT`: The tags to use when uploading the pipeline. +* `-cfp, --config-filepath FILE`: Path to the json/py file with parameter values and input artifacts to use when running the pipeline. +* `-cn, --config-name TEXT`: Name of the json/py file with parameter values and input artifacts to use when running the pipeline. It must be in the pipeline config dir. e.g. `config_dev.json` for `./vertex/configs/{pipeline-name}/config_dev.json`. +* `-ec, --enable-caching`: Whether to enable caching when running the pipeline. +* `-en, --experiment-name TEXT`: The name of the experiment to run the pipeline in.Defaults to '{pipeline_name}-experiment'. +* `-lpp, --local-package-path DIRECTORY`: Local dir path where pipelines will be compiled. [default: vertex/pipelines/compiled_pipelines] +* `-y, --skip-validation / -n, --no-skip`: Whether to continue without user validation of the settings. [default: skip-validation] * `--help`: Show this message and exit. ## `vertex-deployer init` -Initialize the deployer with default settings and folder structure. - **Usage**: ```console -$ vertex-deployer init +$ vertex-deployer init [OPTIONS] ``` **Options**: @@ -153,5 +151,5 @@ $ vertex-deployer list [OPTIONS] **Options**: -* `--with-configs, -wc / --no-with-configs, -nc`: Whether to list config files. [default: no-with-configs] +* `-wc, --with-configs / -nc , --no-configs`: Whether to list config files. [default: no-configs] * `--help`: Show this message and exit. diff --git a/pyproject.toml b/pyproject.toml index 1d1097b..22ad029 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,7 +14,7 @@ python = ">=3.8, <3.11.0" kfp = "^2.0,>=2.0.1" google-cloud-aiplatform = "^1.26" requests = "^2.31" -typer = "^0.9" +typer = "^0.12" rich = "^13.5" loguru = "^0.7" pydantic-settings = "^2.0" From 2cd0fab64e0feae3414c093a553e932b960eb137 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Apr 2024 18:43:33 +0200 Subject: [PATCH 5/9] build(deps): bump vertex-deployer from 0.4.0 to 0.4.3 (#166) Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: julesbertrand --- example/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/example/requirements.txt b/example/requirements.txt index 8f3236c..d4c66d9 100644 --- a/example/requirements.txt +++ b/example/requirements.txt @@ -5,4 +5,4 @@ pandas<2.0.0 --extra-index-url https://europe-west1-python.pkg.dev/data-sandbox-fr/artefactory/simple kfp google-cloud-aiplatform -vertex_deployer==0.4.0 +vertex_deployer From 7f02b4249244abd5c80b82e1654c792647d3a9ee Mon Sep 17 00:00:00 2001 From: Jules Bertrand <33326907+julesbertrand@users.noreply.github.com> Date: Mon, 8 Apr 2024 18:47:58 +0200 Subject: [PATCH 6/9] ci: upload to pypi (#167) --- .github/workflows/release.yaml | 15 ++++++++++++--- pyproject.toml | 12 ++++++++++-- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 8b37a42..3a17a6e 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -35,6 +35,9 @@ jobs: permissions: id-token: write contents: write + environment: + name: pypi + url: https://pypi.org/p/vertex-deployer steps: - uses: actions/checkout@v4 @@ -48,8 +51,14 @@ jobs: with: github_token: ${{ secrets.RELEASE_ACCESS_TOKEN }} + # Publish to Pypi + - name: Publish package distributions to PyPI + if: steps.python-semantic-release.outputs.released == 'true' + uses: pypa/gh-action-pypi-publish@release/v1 + + # Publish to Google Artifact Registry - name: 'Authenticate to Google Cloud' - if: ${{ steps.python-semantic-release.outputs.released == 'true' }} + if: steps.python-semantic-release.outputs.released == 'true' uses: 'google-github-actions/auth@v2' with: token_format: 'access_token' @@ -57,11 +66,11 @@ jobs: service_account: '${{ secrets.WIF_SERVICE_ACCOUNT }}' # e.g. - my-service-account@my-project.iam.gserviceaccount.com - name: Install twine - if: ${{ steps.python-semantic-release.outputs.released == 'true' }} + if: steps.python-semantic-release.outputs.released == 'true' run: pip install twine keyrings.google-artifactregistry-auth - name: Upload dist to Google Artifact Registry - if: ${{ steps.python-semantic-release.outputs.released == 'true' }} + if: steps.python-semantic-release.outputs.released == 'true' run: | python3 -m twine upload \ --repository-url https://europe-west1-python.pkg.dev/data-sandbox-fr/artefactory \ diff --git a/pyproject.toml b/pyproject.toml index 22ad029..78a3428 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,8 +1,16 @@ [tool.poetry] name = "vertex-deployer" version = "0.4.3" -description = "" -authors = ["julesbertrand "] +description = "Check, compile, upload, run, and schedule Kubeflow Pipelines on GCP Vertex AI in a standardized manner." +authors = [ + "artefactory ", + "julesbertrand " +] +license = "Apache-2.0" +homepage = "https://github.com/artefactory/vertex-pipelines-deployer" +documentation = "https://artefactory.github.io/vertex-pipelines-deployer/" +repository = "https://github.com/artefactory/vertex-pipelines-deployer" +keywords = ["kubeflow", "vertexai", "aiplatform", "gcp", "mlops", "deployer", "pipeline"] readme = "README.md" packages = [{include = "deployer"}] From 13219d0f3b24dabf8dce72f747c2f7b4f815cb3b Mon Sep 17 00:00:00 2001 From: Jules Bertrand <33326907+julesbertrand@users.noreply.github.com> Date: Mon, 8 Apr 2024 18:48:40 +0200 Subject: [PATCH 7/9] docs: update docs for public release (#174) --- README.md | 40 ++++++------------ ...efact-AI-is-about-People-logo-1200x424.png | Bin 0 -> 39780 bytes docs/assets/artefact-favicon.png | Bin 0 -> 79377 bytes docs/index.md | 22 ++++++++++ docs/install.md | 13 ------ docs/stylesheets/extra.css | 4 ++ mkdocs.yml | 29 ++++++++----- pyproject.toml | 3 +- 8 files changed, 58 insertions(+), 53 deletions(-) create mode 100644 docs/assets/Artefact-AI-is-about-People-logo-1200x424.png create mode 100644 docs/assets/artefact-favicon.png delete mode 100644 docs/install.md create mode 100644 docs/stylesheets/extra.css diff --git a/README.md b/README.md index a06b066..9c34660 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,11 @@

Vertex Pipelines Deployer

+

+ + Artefact Logo + +

Deploy Vertex Pipelines within minutes

This tool is a wrapper around kfp and google-cloud-aiplatform that allows you to check, compile, upload, run, and schedule Vertex Pipelines in a standardized manner. @@ -57,9 +62,9 @@ [Full CLI documentation](docs/CLI_REFERENCE.md) - -## ❓ Why this tool? +## ❓ Why this tool? + Three use cases: @@ -86,6 +91,11 @@ Two main commands: ## 📦 Installation +### From PyPI + +```bash +pip install vertex-deployer +``` ### From git repo @@ -105,32 +115,6 @@ git clone git@github.com:artefactory/vertex-pipelines-deployer.git poetry install cd example ``` - -### From Artifact Registry (not available in PyPI yet) - -The package is available on a public Google Artifact Registry repo. You need to specify a -[pip extra index url](https://pip.pypa.io/en/stable/cli/pip_install/#cmdoption-extra-index-url) to install it. - -Install latest version: -```bash -pip install --extra-index-url https://europe-west1-python.pkg.dev/data-sandbox-fr/artefactory/simple vertex-deployer -``` - -!!! tip "Add to requirements" - You can add the extra index URL to your `requirements.in` or `requirements.txt` file. - ```txt title="requirements.txt" - --extra-index-url https://europe-west1-python.pkg.dev/data-sandbox-fr/artefactory/simple - - vertex-deployer==0.3.3 - ``` - -??? info "About extra index URL" - You can add the extra index URL to your `pip.conf` file to avoid having to specify it every time. - -List available versions: -```bash -pip index versions --extra-index-url https://europe-west1-python.pkg.dev/data-sandbox-fr/artefactory/simple vertex-deployer -``` ## 🚀 Usage diff --git a/docs/assets/Artefact-AI-is-about-People-logo-1200x424.png b/docs/assets/Artefact-AI-is-about-People-logo-1200x424.png new file mode 100644 index 0000000000000000000000000000000000000000..7f6fbad235720791a128689798583f9e2381c454 GIT binary patch literal 39780 zcmeEu`6HCy8}=+_?8{iQ*VwX)>|3%GDId!i*#@B)Ov#dUCi|X*vLuD<29e#^lcHiY z_ECy#BgH7&`}BSPgZJlmejGDro^#H9?)$p0>pGIHubQ*72(f@bAok0bOl&|P1|kRq zu3&-#@1P1ro`OJl&}9=NyRey!`QSpY!6zp_ug&k>_JJq#&i{KcpT8VJ&%@qma!khF z&7P+uytx2jpi{Z#;KCws;X)(tgxh`{y9Zw@IiPG;iYH!=>8~u%4tCcB5bfh#!8L1@ zFP}mX|Nr&>yaHMIU%EmU4&bydTfZdWRS~$_6=-Lflyqsz!WZJ0Q9}Ab!l=gsf4Ma8 zgt$px(5#j{x|JUNh#q}+Ur_9r zer9RWkG1FXYL`Q$SQe8V{yzgtRvf>I-XXo0BuMHfLDVz52Lx^ z#&#?2NzyJ3VR$~k*+6ixF+Pj5Myev+#9;PAXZm&*;>Z~x7lQU*GPdLI?EhfU!4EF^ z5a`EI)L^PQhC@X;?FB#B60fvU`1uLqhc1k`Y+D!va)NXuFy5`#$6FB?CoTRrCAIBP zk^xD>GE|VjgSRB)ku4rJ`L)FPo2kQDEz+S=AdUX}_5DN;D)2$oxkI}<&6fpNdm%2C zMADQVhF=91_BP@~dfPxn^zl-m)AJ^oooQau!)u1OM!!i@c`+L@$Msnx$AyF8!XQy! zSs*I1+EtLh*_{l2_SAETY;>LE1l2jcmn3sRYSP^|8aas4L?w-%-O~JTd~5qCuX&^M ziD}CCoIb-)Qe&%5Lt4!b(!|1n58eTvhp!|dy>2B(n(U_Ca8xGv(?AO+-6Yfc}i#FCD4Sp)O06*bKr z51b)Mp9Tyo+~KE}*A& zKMA^i!c>yy(MR~Jv?C<7e;ZN^jwG1}L;2lrQ7rp<7GaOpaS6WWRP*rM)Zdme+wWDh zKIl8gxWc=+7c?8O#trQi{>48}>cJx4x=zX<1n%2uHhpXMwQ*j`o9VC`>9~`w-189m zgyOD?Zgf!vwe0Y-?;QY@40U)s|p0F<{{T9A@pOg{rT+oY!&5SJWL} z7tv~~Es^WB zq96Q7s>enCgctia86U@!t|)x_dyjS`PpT%RQaDt+$lP2A#E)zZg#+JvMhonO{w{jY zgf8l@w%Bbn$vX<;Lj_?{aqPL17tec`{xJ9K{iaP(`l%U4qk+q-#EK^WvY-CsXOE3o z?yeCu{)z%3pQrf3%}!bjXy#Gjru|;P8;7Z{c#DiQzah@ z=5jqVy2Zk+KA9V*mm9xZm4A(8@4mQjbPMciKa0C7bZ)Dw_~M}s1jq^ZUaO+>&HxEFFsgs*gQiH%w!>@25Vj}k$l}hr zLVENo`Y{95gX&vzyoKiNOetZn7T*)5UZ;w8(Z2@ASbSs*M1Cbm*mi0OHSm&iCgW_N z;i2u?Tw09#^4p5Eqbin9DM^>Qm||zs8{QqBhkozojmp#MDDR}dz$=3sz%hMm&g^#U zH=ZLXZ2M9zU#OM~2U#pPE+b^|Wdat=TBj&yzZIi7wahp#RGzb(8)l`nPy! zHqO6E@4A(odH`20JVt68Mmyqy1(=$YCe%PgEKXQ`Ga*+$?Uepq>QcT(bATK}<;SAK zPXV>qE)5vu;Nflb9+{u-Z}u#x71kxEaVK1gXx2!Ty63O=xggO$6^KxUa`mpE+n;|UuUax!+u_{Tuh#kf0UjrWF z4GNs`>}1-ZYX~EJbe6T+EFQVJ4mD&PV{9?C{A41DWN%&j?FHRP_Oi17q(Qp+)+|dW zA|XIr$A37CRzQ{nVvN-7POF;~M(tk{2VAP}J}1yy&y0{d{qyd)t=w-*jBkF^c@hEy7N8P&iR4w{OBTzt6^ zh>?;d(nv|>sRhL*5Ta2M)?D`%t>UY(t+Xwd|!b<7iVKc0^`KN||4VnFpaHruhe-O%PG zRq^QS>syhYED@f>|3|t^vZc)2uC(%^8c}Nv4m;j2J^9+l+Ij9U2(vE;Ve9jLAyk=e zx6X$b_cW?8N8Ww>HZsIF0&(8wgX6j!?%pYxs{*lNL2=xgEAAMe?UohF}KC)nzsep|C}Z6X3&qBsf8a- zTo@^Q6mE)0wQ%0+XdJDh^u@EhkmP;AK-1{OJ>D|qQs6jJxC*>RRU2c@svuZBF8i-R z#^7~pUsL;|z8Gp^ZcTN8YtEo8cDb+#zHIyq*ZB%cgb>H`{3*72cNM8GDc|9N_N@}T zTsXO({wrdI%cTdvL8Fk=$E3e0nh8Mn}+H=7PD- z{BEnr%fWT2%u7d+ynkH3OcA^s=S3ENWkM$8n|W1QK8SBX3>c*E(Zu_t_og5%kPuG# zDvP#YQz&LSte-Xf9u4n*kxNYly-crVe5%;TXb-A3a5YOW=~prMYFrO0{Lyt%Z7n@+++T-K>=Yuy-2A=N%N~3Rz2msE$8`H;44)@+WWZ zi*|pvew{YUb{20hJ_X~DK2S*KCW>z#Y^(5J{?+H)o=cjw3~p2!ypNI~7P;>At%cPv z*O+vBvs;pWQrKn(*IogUode}_N<3{km5*=23lr$U8h3)M9udp@dU}1;zWHAyvW5wc zwzM;Z!O(W2mj4w6S>ji^=*k$!)O8PL=7_lNx)Ak8?LaVW_B;@3kTR=w_#silQn=i8 z^7?t{Z;LaoYh8ZtbQ{XV>+jKMeUR(&9{tAdQf+ho%hniyw zkXVAEE^noOp0b``5r-5w{J_&sl|?e%(; z>YVoH&B6%L{Y91TzepS>YQVKr30V4BViJs5pZ2gY2gHD;fb{0QK z0BR04#Eo@Twznl8w0WjRm>y##-~>nq8q{Fj3o zLcKvPpwzhK<~N+q-(my`z}s@P|C`QJpu&wV@p9Yjbgs^sQ>?E3=x>>}LmDl&hC|8= zHwxFM9M>F9S~dzJp!*yxueN<()mZxi_@nvYj?Tlw8XsD-28z}4bJ6mW6s;(zi8#YK z3=Rc5h7?Z0GN%5`MesL!0g)~5r}n|k4yaQ#Kg#=StUAHXv*WYP_knkvTJ$ z6;+oxyIEMkP{@2Jv8_t3K9RHePe_Yg{&6Y(!^5U=@_n!P^iQ%6^}3cD`tn}7%Wf12 zE^rPf8~`+dWO;DEu1p}@Q&21RZpw3E)C8>?2jJP|-x2|7qemQW6 z1!093qkY|?Y~*ozDmE`I?(E&Cx!CMSDRf0&Hlz2uqeX!>DeDxfSC#r}h9*w%a&KO> zvwuqO=G%{PkF>6R@97OTWEi_MrvI|0y6X4s759#-Pg833thcRME`w`k!i}^Q6vH|S zV*ln$x{c}IPRS$-oNf@ zVj?%EsRu{bpBDcE!q^tIr8vU&&k@7B>hjTOer20dpsAmBbch%)2jFt#G$*>CW zsbvNFOTL|lEX^zJ^|Q6q=e+5_U_T$;At{kKUFncyjhMWWkEH$sbl_Pp$R$OdQ(-uy{gQ-`#LC~H$t_dYB(3Jwq@>^GZ@Oool$vLr+1Y)% z|2-6Djuc0$fBm`#ukT(dEU0}ak4XOW@PS9D%?$o49sxUId4ad>q$}zaJoFSLwUIWG zhEKt;kstY{$uS*w@Ll&BnMovBQRY#1F190!=8E zFhP88i0LMMBZ%`aQ#`;na?S_tpZ4KLEeR@>cuv!5za#t-5KQ zjFF6w`Txj^GGi+;QkM6h%0n~3K}a!g1-WGNM6yxBF#b()b*NGRhhKW`<2r^#16>ITv3BU*!HHpFY$$k{=u*HM{_N zn!ZmruWI@?COhb=^p?pbPMiTweH*h(Ym&u1kk&MO`69r-Nn<-F?cjql$PMaBcI3)Z z0CKgnAC%G5Ah8J_WKs6%qC(QH(SWBmc6Pb>uCLUvH}<3U-gYF!(fQ*m455^)s`veX^cpYo=$;hP5$FT(eS2?YxMNc1 z4)8KvbWo;eW#744rb02B64M>63)>{i3)-K~2$BC2KxCD^{kC%f>#$aGuHzX=iZr=x z(8=d?U3@~CBvwL`7Z>N$!VdQutBOo0f{%q;6(6Cv5F?LV;e)T>IP~(b*8l;4CQh=h zi+q_nxdq~2n3|N$6^UR)i~OY3Ka&Qcs+)z7rg%|Yt~?a)2LQ6Ao^eneq#Y^NB)E@k z8E`cSIJ=!WF#qm{XPyvF7WXu$&i1`BlKc#W`l%x;MPS>insJ~+YRSr^$0fC+q*!$`^u8`X~_M_Eq_5#8k8DA^79Qx zR7%5$DdfwyKzmZrd*m0SMT0+v2~S!WiC1bKPk}j5{3*+JjJNYXwX97mAdyj%427_? z~+5gxd37rnRZR?YkbXM-(U8nt@jJR!vo)P{b*dp)VGu~pKZ>^E;-@?bZ6b>*Uo$zKm+O#K^Lx;DwgAY!;z z6X?J%I4Hyt+0)=Z9;w0ixl!T@telXZ|K{ZpBT(QBA#X^Crg+H=o`=bQXnS|{jZMdx zp5UJ#ENDZ(`-#a;DO&}P3=&D+64n68@Wk}dz|^1PKZHX(z%_JaOvXIEX#KEI7c23S z9cTj;sKXR)8$?zW5Rh7C9*&n45t$$3z1*za#(L;tIH}v~qURw#T$)lq);B4w(CCxa z^t>KNHZ1BXj0t2xvC5bCk}fYC^adM_jo9vhG<6w3@H@0pJF`= zaGDC$ffRs$wOBURhtExY{^rTf&MrzZGi*Y})Iss=>%_oT{b@2N;#8}%C8MciCiL9M zYk1^v$#T0dKpPptt_!FsCzKWgV6E%cpmP zDX>#{y-VMrJ<#tzP&`?BHX!*PWqC%d<>5v(a9G^wj|TuPgi@y_ZgyN40h+A79}V1|`RZy2)Zs4Hd*{(!QW5PKD?$TKLx;t(~60mJuw! zO_T-*v3g$8+jLu~{Ze%7BW+h_AjL==NM(yWI-=ZWJxcmN)s(n2W2*(7z zq~fS=1j`=>z{uPXH#+2+X+S133DH~_Z!ebvnqoC{TEH4H$<|K=g+S#2)0r|p)$9;TpCZtql>;dp8dD@#aw?44!}+T1=T^> z>8*=CE}}PxGIw}}JOLD@X5ZaT`tRT8LBm`z7lpAuR_5DhO(e&GDU{r4o4dcMr=_z~ zA_kM*)wI$&JnkY%WEs+M)YJ>9b=;K+V`F3dnCzs)$3}-2h)GGj<7crey%b%V3;UJI z3yVayIR-uPKfmfABB*{xfUDUgVqC6>F3nZ%ZwSm@6yDUDJ73GNyLqcZp?E8fuk z$8dud#sTB!g0zv6_h|m%@g!lB3NVO}L;VBal{YkT;^jy36H}%x39s>fNgYiA%mu$i z-Cn$m@oOAWi9ode*9@Qu8u0LLGG(ypK;p$^V=MSp^<=8tVNpl28x6yTdr0qgbV#*x z2Q_FAZAy)QgRXrz@e&3|N~dtO4^9%|D=i-kYm$J(AgiLjv*OCGwGiQE`!#<%Y7d@Z zVqnLK8VzX=P)Cda5M##&N=c|%K>V|gk1xud zvIENA7uIYUT`t3eNPg7#t53R&-5H8f8_9>!1}vu>JYU9~YLSy@;UtU}2I;qd{l7DC zkSPg9;vAuzm!J!>C4OTfM^3%cAG@twz(TPZ^^A|FvkmXQ)C-i1t z$hxqT@k+EU2DfY+49)Xw#+sVkxdyH|?5q$X*d{x;z5F~%`qq#u8{ZS5|1-465mC)I zRa$MXs=}a^95%`rffu$0hawPvF8PJg*)k&wWs)95H9z9O-uv?I&7vnO=0xbp92VLl zbG#L+h9B;eV?kui*@EN^Q7{ge5K`<#=z~L`F78O4t<8<&rG*x}x7iq)G zg8Al&cZOUAO{GOvgc4Xi1a7f4Y2{(!bv^Szg@ES$!Cn%PKDd_2mJ*hhnABqlP`A7< z11SkW_9=?m<;4YVu!*e9A*rgE008c(6D`>{F150#=H8oVWGJ2RpA7uD|&b zkz-M|b*JsnM}hRpW5Bo;CPM2vshpx&#zh3lP{kz-<=qCodzvGyO+0Rbhr(%$6|x52 zgrES|tAEQrl6Flx+F6l>iuE-pGXajgP><(oI<&SL4XdJh5XB4+2M!gW;j=O31>4G63`ImW>+@?9$WsMygr zCE5=?(%&gsM>5&x9X_B+C8fpVBd9Gi-2 ztifN2HOAjzH zhLE$L)IUs5{~&HOdGS#OO)0h|=G-XzspI;ZN7BLHSu%&LC$Ng|x^*D}2|*gOuO9 z(O6IjTnUtMCi*)cpn?VV83IBL?KzyPf(`xl*xOxr@vhw;`5uIU`G$})Bea08B9H>F z;resR1^oxIxuA%Qe*r=Tv%#){JOXbWvEd?`)%5y)27;dgDFBS#d&lMC@hP$Q{;!2h zPJe4MqgHV!xtw=*J+M z?Ash)#R7e`3WrwFzHZum%$o7ISb7 zmT{be0-xoRDpzfhT-z*E?`0$vC-+&CuU)n((|DT((^OIxyNBl=@Uv=qh=Gq2~y`u_cU(AQ+Q)F2%>suB`b212#K z69~VkZ-(zNw;Ct|`eWa-Bh;7Ax~CX`Z0w*|^H-Ehix!nik7lQe<3}6XZQU5mczTB3 zG{yNs#2;%%zQHT&!Pw7FD54cz1Vww+>gX+HfG_%=naG7|N99(){I$fy zV1LE=Ix-zHJg#|Oi9|NqEpDq|zP?Gkp5{eb37AF$NIHz8Rez^M1b0?@tS?_TG=Q1) z=FlGZPY2_qB$JO7(r>P?e&9$;iY(M5r2fi{+NCeV2I(&xtm7w$!N(13ux`9RPmRZP z^YqU^Ceg0jBnE{GodU$``-@I@cK(aNv*IlagIsiikVx)-O-i)l(8`#kt5r9p04G1j?8UrjKo=Z{pZoV@H%eZ^N%D>-r&NT)3Wo%tQ$jZTps@6(*1w<(; zPoN!uZ@=vHxfiEU!%C1K5%C&5Vuv=bk=&no4}; z>IBq2=6~*{^dP0c(basQeBaZ&{^T?g2GFw_8c>cmR4q-+f{Kwb7 z7Nkq~r(8&}1M{^VV0q8mUL3Ptr+-4xE+p>xc%+RT3ucg3dLC?!(41hxC~XVWSo*O`*Qi~!oYn8x_sC_5Dx$+Rwps>2|IwCd3yiVs0jAn zV#Yu%YYRWFm41A3C-;d49;-@xC1+&9V%fnp^jZve1wPy+8rFF>_S?30@sRiIb1@cq zmi7`Q(~&n$XtSAGn9zCP?87hakwZuv4V*CNYsc%)qZ>Sr-BL6(A#3y-^)c8H+WQ=kDT~ow{eV{I!M+Fg-a8l?-U`?W^Kq?>hh|fvpxD zHRhg``72~qn19pd_Zi%|pRo$U(8PGWhwFJBL%jV^h&ew(RuV@1a-ChvAU331ytU(I zI*<2^*qH)_ny>iaJ5&E<%`7$C-}HgJUhYEI0fvVqQ}?I`qDgKCZ=s>qh3yrVboNn_ zTZ7KSbIozxOBFgDY!O5qpr?%ol(WvO7Eu1q6c_QE=Wv25_0O!-1zI2N!=z*|PHKR8 z$>T1Z)|b+^@Dku23Uc_nt+(0!z_`IAp?(=wfo`=DF=? zcrP9)3vH^x&D9c)RJF!7NlmaV;gASgeShxtItxFU{TZe3}7sY-Wc3~#u*uoiM)1%FywQ8FIHfEPY`$;k$T=%7VL zv7oWw>dTU~TU!Bm`Lh_&ezvWqHs6F4G(+e2!h#p&6&WfGZ3tW#Jh4Nfvw)=tA<{^! z>s2isGS{;c#_{8ntv4eE5{n;OT!`JW_+Li&a@U4~K_fY`LX4`1b-bYXSPXt!m?zZx zratv1?MS(K&eG3zWXq`D-ZP{sS_I-^faB!%AtiVRCuW)o8@!)RX>4Cs|S zEtx%m1348DgnXM6z*kd=Mdsc$K&eVRz|DrPO6 zLYb`Ye5f@kfdzhZK_ zcq$tpQEYCqVC)~zyBRh(u>1$sliufcZjnp}>LVIqxCavu@V59xyc}B6)S)2cr0*mx8{~>Qq%mf=pD9?6ey2dw4 zv|fW2y)aDVYghdg zcSpb%0cs#U&%Moa73GfgzYN>DY3A1 z4=3?zz@2QPmF{~#raQ{z=!|~bi6{?KD*_|_9noeavJ#zu^CTYjd}?+wf^+-qHb^5va6*GJ zmi76EZ=E13ewMI8#E^wczUm6hK5wsi2IMu9jp6f{-A5iiZubCllzi}q#l3}t*^7o@ zvyT&5qQ-+R8Y0#F{r#hVei?L}JSUuP)vf$tUJhycLMraaPAQMkT}|B>Den7U*pn&C z@(&(03%zr1h6Vrm5X390+q}<1LLn#L3OmNM>92yeL|5h_SDZ8d9h`?ocJvnROwEKXYc*HKt%w6{>dxwOP(0r8IFG>e~pgcVjG$t zwIRe{OyGGGpJO4jt&e5i+=cCYO! z;nZ6^-L6zaWfD9N9m9DFPNnHbPhUNfK*%Ct#7`Q|l?=pl#B1=x2;P0CuIAg1Z$*H@ z6k_{DLD;Iidmdt8^|yH4=7_cXIU_1uMtGe7N^TsY>AMfV8<|>NSf0d@7#0M`Fz2n z+OL`RVH!b&@nDiBVg8W|panFo|A15$l0X#m;IjfgdhqeH#J9Av8;E7iQjQs6yUxYL6bNrk* z$=fPDdc2Vb1^~;^DV9PLfV>?fwcU6vVpv}u*X@p72OoIn#FIaLvKi7iw+8fYeE7|~ zvniK80z~_m4k>zIynAh4tj&2mUDW$jeP4)oa+Ki)drhsS-rqlwO#7nKiZK+(em>oG zmk4nA&jC#2O-Ybyu!4)#ecq@p`^zm#0+Ox(IVtDyshmOj+QtS0>zLwOYJ~swc;qgS zN5qJhjaLEZst8(buLNM@G$+@%W|rVzeB5hOHg#U)U%svTbRHn0dbka(y6KLgELDjB ztjhsNZRjcPKU(vo_#3tol}ys$P;XpeI)D`vOt-%WE@K1uRn3$yS2w3w-u9cqmn3br{>RqaX zJ$0x)>DmOlo+(HxYR30Js^oE4#a{z=bG{o}C4TMyiJB1PLS(VrgpVPQxtjuNzE5=c z-kF$~fZ{Z_(eT7s2u0=vGjVV!Vo-yDaxps``A_wiQsdZ%aOo1y@w6gqXnC1;L3vy~ z3r5UZ2(+n{m_r3EM88Ee%)u;iUTj~Jc4S=y28zK;E4+Sk@skr(TxDauftSIy55|4@ zD_b85!#4ITa1yF#bf{CJ(TD@n)qiV#alq`w>jrEZRgky}VHGxmP=$#QclStAY7+)5P^Z%V~I`nDw zhT0Q-Hp+iIEl8WkVfcK^pFR*B*C=~;p9$A<{YY&bRua`n3HBDHUhqFB;`Z1G=x!hH zkAlL}`%~UjV|tR3BsVk9yFdB!)l;0MI`wZp@SOuLF9lZlR4eyAc*|SNj^DZM(?8WF zEJ+`4YFVc5#Ve%SB%_-9k zM9L+jv-oBa_XIC-OaU7Qofr3-QS-pZfB<5hvJbH~QCausE7Tx%C0U2Rp^fL$-UmoAv1m~Lly>3{U| zH{p1%rGc^TwSf?if--4Z_C0jV^^NQ9wWQl5occZQ1yHwTh*SJ)kQ?LPr#t@vaTS}> zFrVVtqvj3G(_P7}7&%y0uc1V3DAZ(;@-Cj7DQ~-B%Q)%|TXUF@l0@En**mksq$aNm znFSugr(vVI@p?CB;Pry!PSG%>*na=a_br!0R`$fG*e`)+=Ka`EoPI7|v&l(sR(`V! z<2_Y{HWtBpr6^j^NlBXG>qsC|;OCP&HOqWEVt|W2vQJ9^&!>CfdnVVt`-0We zG`bkpiOas6vo2uy@snEnQe|n*j%4 zy40uf@nqwU2UzKy>-ZRu*}4VyKatXJx&^#9Le&Cnin=T9+?BuaVuJ-+)VuT)x@GMhZOEuq_9>Fejn($vXqZeU z#U&lhscxU%4mW%Mni==1k!T{BHy*0q`%*_%5v_ycSL6H)Rjwq;hg1!MkP=>Yl;l8P+maO-k!_y)nbl^t=XU?M;jMlVd&f&tC_sT61zGfv1}4 zx218xX74|<6kZ;9R+x0@y3nJjnIV$9pokBDi~bI``aRR%<#Xe2sAxcytQ=|LQ{_|U zq+6jZnG>NW8Sl*iCsYx0bA1T7GG>=z-^5pBa-7%@wweC3w?Vl*N@#x=_Ff0k$|obnrUr+M!%94ReihR zHQ#5a+8>%oUIUKIsuUxUAIFP2kuLv3DjREy_x+P{o#9Zh;CAXJ(<@7t=1zDdW0-Qk z=T<7Y-`Dn6YSLulcE%!0dsdujcH4|7A&xY%_-uwQkDqQKnFFu&( zo-@P3j{!eh?AU$a;^HYh->MjQhcL@r%4U^94oz+Df`+<}CX6FZz0FZ64=e_f_M*fw zf)Xof68{ViQ|40)90NAqosR^Em8RLbg4%(bpRgL!ORrKlXzf!iOsVn40)H z0CzHy$flzCy-NXLSL;QU>wqPuRWM8)$hF`NF+cM@T)N(c7J2O{$nkuHp@~Cwl3f7= z?QQi>hj!#kCHx|2`|ebH_izko$jej5bd1$hN!ME>PC{+*;x{6%ZE{5RM;Ko4F)}IL zi&L0=PkeVs`3_J?9?g+<^^iPnL%$A~7SAa}TXBR&%i8JcpI?kfmDerKBFQK^xJJeJ z4nSxF(*d`ds$p*{+S8~%*f?IpaTjZzXgF@QDM3Gbjxu+s>R_QbIEvG9Iuwa)e#x#S z`sR7qZY_ytP1ua4{2TNcGq~e9%S};7wGqkyreu`J%m`X!2(b}_0rnyGc6UDNBet36 z!qtH)E>=&IIUAm|P&&rWW2PgjD@LlPWL+SKkk-VFHFx%*kc)HIMYR!GLTjh;EHJy# zd!tkwD>3c%rbSV@EPC@D1@7U9j+JnI$y%jScZxGo{P8o(%O+KOPwQ5c#Xn)_G6fse z4*1zVwg)EsszG&U3c?wM!HIGY{<9ayfXiM3zOpsawg278@x5^E+BKdQ`Q3lVO&s^S zv0il@5S|6VG%sAMKk+*HzrP6!5yW|>`qLdFx_HrsaI|r-Y4RoY$q4uq3&rLcWfZU1 zqP8I1zO1?{h64i{@sD{1jFIZ z^siXC>bqaS$!yCvT2(G`>~qqNP8R_uyU$SqK!ThD5%^zkLLQnL%wG#*l7B8fOZ=dT zO+Ac~b~kFP8O^~m912k`0R8mH#d#R9uRj=YJ^{s?=kci&1&d~-9h*wwR+SfHU%r!! z!jm1kf@b)1?r1)k-_m0Tpqt>oUdg7S+g$>8disW27ksX?y@E`pP_%?+vxpM0{hQ{? zpv<5;Xm$MV1-|?sC+Z1aoqWQVwd#4Gb2w%U2m=0sBI{xb2j*3?=V0==;o?7I1);># z2`vJ3-P0saysV&D(CKX};G(Y1Z6tD#h|HDZ={Ow>+*+%z9I2L{>}wYd1N=|vy=$c! zfU~fJbdA8N8gMm{ulhuBnt@PT@2DECXoH5QNLq~-2FG=zh3>Ma!)SmILo>xMK=iYuZl4!SoKQj;-H zYvbA1pT3bBb>~W(z&0c8=B|l)U481-LXO0AwCraZn!A1z7(NX?4w<1R7Ww zRcRGULX~WA>tbY%!jIL%Xqr0(n@XaIFeW zM>qZ~468n0c(?u7pX5N$=Y7MA7%BTmxnXR%(SXc-QV*=(XH5mDgV&@X8m6VUXQo`z zbD#hKOZ#+hn8sk^A}8?A3Dzw}1!z&MEqB9_sJ|CWRo0OBZ-r0_%V>9s{(}ur-RaqU z-A|!vfI+H>B6ueh!wOTr^OJ3xt`9MFKarDd{_-GgzgQ7Sf~1HvVF1K0KMY-};%AcDL)oWWCdu;^Gap*DfsP=q+?jWE2F=NRxb${2vSF`y~C)Jq>H zO+nSpN}AA@m=65Fp2)TXx%=%)oNE9~3`heK_>eE-8y1UWQK75PTrY)KGWX^x#Vke` zUIenCq^4PXw>$sz8Gz}m2z)$yY$SkscLe0Q*K&e4+~a9v=0lx$Q^k z7~^pPw&lI+UmYzGEwxhYziUm5cSu)BAwV`f)AGodaNXduYahybUokT!nfnSEp_pdplgP<(6snb<>n8J4Q{c8je@xA0SHb&vc$D z%W-pu|CVc%4bbMF&9aW~{Pi^$>$u1$_|FzBL=2@gx&UOK&smf}vtq30d}c_Q5^$S= zXVmWP^FSgTXTpC3rbPwztO%1>?Xh3Xur_p$|HIySzq9#<{XY`KR@A0ySM9y2wrUkE zEwO{5w%S`_7Dds9nr*Ejh!tuEMNzb7>~z|VTCsia&+$Eu=RbIUd-5{}$DQlGuJd}I z@AvB@+?5pj;>EMoL2|ysw;w4{dFT9rSW|c_ViuYXRMjp70Rpd`MZ%5`U{cM`~z_J{Y|k1`@5y#5H&#L2Cl8MOecv|sn&GaNE{I3J!Chqb6<~p zZ&t}-^G8V@D0~nujxNkN>gqc_(2Lg_Icl8ol42b^Dl!A6xNQuNoDv5E0TDar zzhhA76v>Oq#6(dhZGQ5&Ir?aX{m%&~lq2_5&-c7LD}I5A&L!8-@dF{1(H3tZN8T%Z zPUtxBA4`@IywE@~DT?;pQFdNn=ljoT^#(AN-xs&IrJgE*7klUXVXNB7imm|iWrP5; zfte-S2x!fSv-j<@x}oMpoHhroCfSGEI?2wc7H#->QjEKVA6DyOyI z275@#RHGFT_;#9D1GAfwDEjCN%5k^c=*@%N|CF*bh}FcH&-8HpXD+k+CHkBK6^Ie^ zlfoYNyaNKxG*2Y=!e-Vw9axSSP@RX8@B-_58#*5E+lF>teDL@w$L=j&{bG}OLh_+O| zP4J*X6&`luByq~UxwoVAD%G2hKrm|Y<)VIiP3q7`6l$rG1>L8JBsrCW2Fz{*Z=iEC zyA*$Zp;!bxqzmeW#+5(Uzv@Y*_tF^E`xuwH!98<#Wyh5;2Yhcp$9+VjY9Pe!`Shm~ zOSFRFG96hkWDHUZ?b_~KnU7d88#yn3u;QTz7(&1VO2Pa{UOYl2l7*O{m0M`gHF zvc0hMQBB-5lWPvkkSR7W;pTu zzg;wjmN!*G!4WxH(LrM0X#0@AN$*u2!Pk6mIuPVm&FNwK`HMC+Ofs%7isK{^kbAHl z$&yRfsYg0rJL~VG)vJ$8HmIZCnjo-43?SAwSgLrc6P&8O+UkLf7Hq?3eT(>%0UWpt1;l+FG zCkZG~Eg<=+laK9eZ5<>xXXF5SqkLa$@B$Lr6LFbaBn$Kr0CO(K+*D-LmE6+R;L!sp zKnehIs!q*GPF(4%H;W&Q-rxGl7foXmero3hiJt)%)LOuAAI(9<8F#PkJSSan5*|y~ zY^Lp81`T#N-0|0id}XUGobDT^#6LMEM|&l2SS1TRU;#=y1Rk1dKR5%iP1~57ssbFZ zKoCFlofqBKc4zlp-eudoG)eJ!5KOx7XD#&^mC9&@w()G@bN#9=M`~L8nrz_pCR=?_ zR_4IGRQ-;4$@;_eDKAaIW@k)k9`Vv|tEGbk#G3|!JGmdf4Y25qy%Sf@Wd@(iW?;a(HxE&I9zF&rc2cl;fB zjWZv>8niOtN)5yx-#o6*yKVKvL6b%UxJZm1Le)A*Ibc!vL9jCyQgS6CkB9tjVL$)? zr~%v4oWDB|`zv*54BJMV`mB9Trg+C5uQlr=@p8I;YFtzi@Br;hCf0yA=<}L4#+Z^z zcF53Xl~d~Y1=YB|Am@aZm6&qhDVj+#cgIE+3VnQd}IZr1w?KWx7Sa4PsPS!`izv_XK= z6jTld9HVcsV1-dw@Z1f%KLW>=H&58t*4Ke60Tmr^k(fkuKb5gsxczU-2(z^2#Qo~~ zf%tlDk}!;a@>E`H{|Z4Hx!o)04rt%`te8U0#@r8ubc+=RAM%K_5|mP+`L}+n5NO}w zL+ra^7%h0t?@O>4l|8y!dXt71M-$iP{n?cy!f2aZlZl!qabcUJQ{gTaobg%9P+SOR z>3KubO+fRGH9C%O|sgaU}=;ZAO%C%TEiqtLN4FotW~#J!d4gC zVW=Zn+_pqJ{^N7~e!ldCDS%@K27+B*2!4D{>Wmvbwhkz`5yaKa5A6u-3Em!uXZ~ZO zfHpa;F*I?Dpp7WJ`s*sw@qIzW&(9*K8>|xY-DuZ3@jVRPxkN+#ESO<$c{R9$ZQve> zY!GtE_LmljkLoKV(7{#zzo)N(X^A9ejqXmA zr9q>gONs-%yR!I@)gl}NCr>SOW25BJ6g<>t z47p|1x_6y4IcO_@TZ^NS#{f_lsp51UNlcY3+@+7K<0ZLA-Y@sukf_F3Nfw`uZSvxL z>m@oRyy?#>NYT&7;(@RP9n^#$5SiS8;Ensosbauzb<2`+&>E_8BcmCE`lfwTeYJ?J zi<&3x^>^6Y5#g4|R#bDZeu|=&^xEn&xr$7QvnF`4+NjK=c*}xzGaCIzXFo(6!;a~) z)*=-)Nf9z|l27t)t{@~cR7WG~ZdE*|iW%>kPxlJmKL8xUo*u_-+mKiF$!K=DaAGm# z3&{tk5(B|EG^q1)qYzu7XTSDFKZ&fFPB-39Dfc5oKlpT{5C08ZtF9ceou#lea#mT#+MG0;MC1Bg2@Z;TiagrFc z0=<#s`MnIdt;D(vzmR~dAIuD@u^Zhw64<#u{CRj^HhEg8{mO#ut^$E!bpT4EJ&|EO6a2#a? z{8d_AyiHMC`Z)!KR3tMB`|=||8@gDwomocePu*6N7f$UX6NN8`8eP<-3FD+O)?rq& zeQG=^;^ZXVyBpibv=~-Y)a!oSg$X>%+P?R|l2VFt8F;B`@HDTObcv?wtIN<@hLzQw zuZg~IZ&{Q{fJL0&oJ2rYKq9KEY*p^1Y*$4PtTR!3jA&HP_hDGxZv{JnhF9w_<0c6? zZwoR8b2bad4(OSv(&Xzh3qm!{{y(kvpd484&PLS(fEy*u@olHRq_h#>Nq+6+;kXUj zGN&b;mU%o`iko&)yK;2RV#kgIOL^zd(PGavzXu{f$3C(Hc#l`lgqutCIblERf5%zT ztyO?##ZL{j{xxh<7rx4oYg0C*p6$H)R*+JI@~o7Gx2_(>TN`xs6LY3oqcFw+SP*or z<`5k#YoJxY4s^Z&3Ei^?wVd|h^&u@1&9G|gYy7PbvxFKS2p%*?{u}>OFPs|!av1bj zE7~Y%pHfw}`w6RjoInLn(3$&&3kP0yI@{E;hLp$&8=USF`AIC7Uq^7B_cIRKOZ{`Y6FK6+^dm>=Aa1fBVjsa^dT5)C-1>@|Y+|6W9S; zWXPBuqO3#!#WRBb!dM3jpcoaP2?v6#}*&jS$hYwx~FpC~DPHvYs=M2@_ zk`O%8bPkkkn3Fun{*$lZ8knz5s>cxQG?8T{(q<5-|5Yuf7KlA%%GV0}2=lP(Vv?jW~7ODGquAF5F=IKfi8F{ae8rfyBWjo;Ne2 z>YGKd$D=ztmyEbr8%da}r92;Fpd#FeL%m*2@0$3*H`a?5VLYHD!X!(>a7nPvD!2Ny zx2_47QT%LQHy+{)g*YjI`{{q5QlEIcF77_lJu~gjo?3p`fQ8Y~YgdWSihOH5a@BwK zz9ky$9o?9$VzIe~FPjhh52pElpZ|LT|I1Hc`o|QxKy!Zt5pfT$f}z0($jF_M-r+!R zsh?7yKz29*z~j#^0||wOLSTe~&4<+~S5LyeUMV8028)xGAenGi-f}*L0Pr}ttc<7z z)D`3l@lABov62M(H=;zw`H0i(5+Ka`?EAT_T!(gE?`es6hc;URX)p;FNT}Iq{3`p9 z$jDSlMS;<(a2#%`qbRthb`%vc({~4_n4a7Pk}hWjWE=>~#fA|sEIrw-*{{~d#>T26 z^j{B7iaMs5yY-VQDUgA(k{%}mcZQ3?A#i#LgrY*=EnB|2?KF>%yeKQ4=#B_gyaI2T6LOO4M?!p`4)#`@$7u zg<;&HVe`-=w_k>j&p4J~SNt49NnHuXBI68~5pE`bJI&T?w(@_>*7@I${IGK_F+WRT zvibA;0eJ$~!mMG5rR|$TN`eHT7-<&k(8<`!n`?=vQ@t5@q$hmVxq#@7?=k+~+|-1i zsOv&GAv8EY7y>;aGiajDMm>z+F&Z8Ghv#eTXhRw#nB0V+aF!jp*-26+^R)yZIdS(u z4)oqjB)zL&c9$>TgE;*?6Ns~q`p3VrsKxK~zV!;{c(p|AET-$A{UYvvfFNhI5+lOROoRGim$Yb#ghSjh{K^N37+ zRy<+zb9}mqhW_k~>IQt;x8Y8OI~V#T@h-=8Jki0l#0=#-#m7#jr$X?1>2i&fPCY-3 z19rp0F+!ZXuT-glR~{9hlJAy5#kk*v=K{VR<}5YlE9&ayYkoR&rrYYEzH zOd}5#w%VbA-+>zuq!i!XrM4Zlw-b zh?40ulXM0Mk<+91w+B^RAwNI->*lAgss%K*KRdhma(@)qJi@H%2x6H0fJjHHr86CZ zyI!Jp8i*C@?b{O1({Sq6PB+W~tP!%`-FUs;|K^Y|I@Kl6n4U)A9u3|#_F%2oHi(c% zl|?Ws9m`5h9AT*QpV+a`zSLwq8=8!km#Lu=x2*c=%gGgOL4n1IlwWYtx}MXwE>B*( za{j@im@~yffk7RA@`LwOADEq;P!Zs!r<&G8NhZoFdKhBA7!jx6Wn12zS1){Hg(mJd zVDK4-E>BGKK3Z+0#^?Wo=Uny*UajL!5h!}oz57~j-K`n_#19ryPdKoj_UH)Frli@l;$^9$~Ug zwUIj2pHcrF5tp!oc} zbLIZcJuMzywcQ+W3`mJl=ck4ii*>zMwRmq-tK4*@=iKvAx?=h>PP|&3w}`+)$|)8M z`eik;IDCGVPSIbeF3NBoVDH2ACp$y{&t5CFPPC? z1#VMiV4pVxd7@Ue{p34iB{hOq^(cF~1a2G@^(?AjpNsqI;8z zaKrQz@$$D|SXj*0zrB4@PzRW8J9-Buoz<;mr8Ptkv;Ar5Htr*VyKmZ@m7 zk*hfCfj(Ywi-qFrIxLvFicVw6o98@eR4?cNjK;XyyII^LyQDb-8{NtI&HX~MZ_AW& zdINVsbM@|b4Bf|KkoNv^MrE*ij6m)=tJhHYGMe&?`KYBJT8k-Jy%v8%qohmkM1a8T z7TI{sj{*C=|0_>dz$`dAu11ODeIp954~W*fxZq*eZ0qQ6p9kqF7;0}VY$a@igtLM% z*1a^5#oQNfNTVQeHfR7?t`Yf_kTY4$4tap<^w*V(@Y}Q=e~OCmwe&#dh1)l zGta$S1GTWF4~$OA{@g$utV7Qd@!?w+TohaHp-KDBm^S{M7`&J3Lj|}yLHplw_0NBE zt1a=<(p*+Z?H0)K+~G%*di)@Gc<`-1HZd3@MKZZ`QTIZpH54*MExi&s?~R_Bh07u6?Shr*3k*mTz@tuF+O=OB*ho6s z&@);#8q)m4a8cy5?SJ&=*?COtl#4@olcUP4l1=(=z%#B~%?{1OEM1I!ZqN^-vad;( ztj4z?h*Qo8Vi+-Ld$s?%&^m|Miz_^q5G%RDrrQ=Rm&l;i5?O!{p+0s2gJEpjE+)qy4fU6cs z)e~9BMcgX#%DKTR&R>CUIpy;rIm!&iBZi)#R zdigDK)XXc1^=-|ocX%HzlDbH6^=p?f00rPVYr465K1Z)XyBJ6DpcwoI#CwbJLGak| z%cXBuqOI$>v=_+Q!R<-x4)Z4CRDdWZinI(0HU?}*f=YsRL!ABe2;&YCQFYa$EMS*^ z2i|Hw*|9L+D<8_kM($Dh02&=ckRYC00>12$uAC0v{*-3EdzbR%BLH>17~4S9+&cmbnKAX$3$uHcOJ|L{=4+mKMi-1(V$ z8E}9kZcAzA4I2x2BercLX=IG*`l`YOU!?B-G0>v9w^{^-@wpG6H0eJ)(EwMQ%Cm*) z8B2`tI-*AU5HV|mv?~y4$7Y6Fit?ysxGcGPTc4>OhyMKo0DbC0#hc_}`oiEiObOhz z)_I8yFwwDXq{L3T3pbPLIra=&5BY`324W`y*Otr*d!FHI8$6w@?yEaD51vfE)8_dP zHU14o)`t-altv>WW8&sa!R+9Wcw{7LHS%u@alW@2|HBzKPmQOHP@DW53;mF3E zeU8tzqF8a;FJ%Ls37!(`CQZKZ1D|reGp|l!oAq?@>Tl8FLV7&;BVs^61iV=0!{2ea z(jNRDhEAP*k2i6wxiP|Ss~D%*r}(J9w+LUNiyEci{-H68)E$3wkHV0I7Q_(07#xJ5 zM)5~$uw5}ey@2s+beDtbR<}AN!55lM<}t5tx7S=fNy&$keNJ0nan+RC7d0U@UA`YC z`xPGIwl@3Qhsy9$^p;!+V2r$3FNk-ew;=5`6<0SITa6*69UC7<96G-Zmq#7!N5(Yp z+{UbP63#WEQq(tup#X&Ue>dY3p>L)Bk<9|7*(IPeQDav4e<0)YycW5GJ6h6Ybxc z)ct~@VPYnE5p;C#v;Cypdpb!)E2h2UnNhttj%4WH^N!igLQQG$mQNl`O8?Y=DukM? zK!b`_;ZRgQ!u##g_uxC2mnI8+teVFdcG8ts`eO09saUxk6hS&65AdL>;nXldCfPSAY3*nae+) zRC4E>9F_S`esyu-eCTSx*a2ufDfsjzs_Zp({Fwr#rPe$%Rzv*_em(a{!-DR_k3cC= zBE8+X#{rjT4a_K~24vTk_ zRbCcts`FFldWoisCsnn{ud(hE-v5z2QJk@576Tp`yqJB{%yD^2@x`KnCjI8tQa5Iur+-q%kgN!UrPcNI zH!<#-Zg%l>O;PpW!g?<{uPXH_)7e1NwGWqxftwdli29?Gyu)Q6HSfq`c9ATK0ex$f zO({zXZf70&WXOHCKt00ti0^J`E@b`kQ|z33u`CoMUZpEueLq4R`z643So@!hV}sni zx$Ku|2bKg+98~P`i#<;2K&709tiQVc$CcmY_i!Uw&qFnlL(r^q^W(`W9nZdD z7rN@nh&t%V^-I2qX@VCHwaYlM4Fq|0(skcwGq8y`GVKT{kt@xNSZl2&G}sUK>wjElyeaeb=KUlIV&8m_F-5!N~ zOw1IEj$%R$UFx%On$V*fb6duJFFwwY zago;c%}$vnNIZJ({fG(botR5S39a~i(GWw#q7A31n9&f#et8qfGalmU?Yk!Ub^tW zk(})lvzY5j=UDe82%T$}1qH~9#(1@Vr4%)!d!84+8;SkctKG_cp_)I(PuMJ`G%Jx) z#24dLLUoNKTPnImy#^QSQ2>t}K|y(fi(tgY@AO^mUcQ|mhv{t?->#S3nACtqzur~f zpAEoKlvWF3bvXi)^<^b{4QWd`?`BX~n6X$8&K(b41RKl^=CLmG1yt{R;}eZyBVwoi z{kg@Dh}0Xt2o=XvTTmEeLPrn0nq}bnKdcC4J8xqUPbefT$qy$WcTn&6f8T1&57eDL zEy)h-&(B9HZqz!v8g$^laCcLNJ0uU5pb?b(bNY41}FR%X) zm%tjik463rs(rIy+;k%RzS`X-;Dk*cy<+IW3cpn2Gw;lBc`51}&J9sspUD)cS^!z()~IkS@XHM0&RyZphOV_) zCLm26n&G+y(6xzd(;L~fwU1~yXJ2!v_`MaiE7yaphYW}{=-_Kr4b)KbNWI&Ba5gpx z(}|C^WDESJK@6wmsrxp)mcyZ5>_eqM2XvnO(Z9y-1W6r(HbE8?eE;y))a^Dj|tbZ+#D6*`Fzvca=rJ)#GI2^-Gd>#568Vl zb-NEYXW{V6cyAfV(SljyRq3Q+ZB!>EHc3n&GAk66OJfo8B_f6e@ayZL>v-E)5FIQ>2Q?5=hqdV?#%_lb%52KJxj4~Si zb=ou21k*40fsKBB%m3u?7i+RXpaVY$Drk;k~5@9e$xsr&6AY)9Xw`$#09ntEiyNS^xy zgsQh3-Q*##dfgUv#{|=%!hn-bU-or92zB`(b;<4K5BoQy*)g$!z-!g@sx5hZ%d+1h z<}2U_w#vpwo8rJ8_)1OdlK4^zF`a_CVyH9ydpApNn;u{d3MoghWA8hEH)CA7CPC|B z(wl*?=|z5+>iR2lWW+MH2xMYL)a1rKO06#TUezuP3br52jil)4k7rP}6auBuBR8E#4zp4zGxqnp6=%~nlAw_<} zN5E=Z7P?is`QCKZT|LWX2uYD&Tqb9g;F;;8T&s)}4VZZKdq?U%%h!dxK(f0`nc*$` z>%l59@-G~B-*V@-8nHZ|%Q_kRwO2}eE%mAeV2tOIXb)r0Vps2AG4eex{fK9HU~uhP z4X&%`kj*X@3~+OLP=v^ryQW)=|FzUhgZGEiln85n-K58Qp)(TVH+I#quVj*&k(zU2?*E2Sd4zjbYEcnLp^xz>)id zlLo7rRXXL=*E*`tjtf)l7_7Ry!2CieW9~1P&J2q9Z+@(s%lknZF10z}Hwy}4$8G%i zqJu{r8la{F$wE{_f+Gj+kjS#wF^f5YM)yjCqX4sN85b1d2JWVud4LmO7kQ~MxfkSR zfNzKupvAa+(WJhx_Y7Tje={H#fBJ;aOSD9x@G^SbJ|rkeRpM*zevu@^G`p_NpAS&7 zk2(SPD~L(#1m+~M4us%+h4pTC11E%=Y94d@2hO^UW8q@E}mmLCKw2I-Vp7)pP(!_xO6X z+U<6}SMSXgRRe!$2}=k@k}uFJCi5cc11(Tt=`&xro5MGpm0DL$f-E?0 z)zZ=#{M)3h{34Xi(-Di8O5J8@VlUbQCt8S&8eU)*ea0)zUCX97tiXFvyWA z_DrCX9m!o7pviiq0;#7?Qz#q{*_*00Ha2!a*Ba)n&TxHri`HjK`{XeqGEIHoeD7dn z=M^#I7`Lwxm8o&A%mJs^RQ4EJmD29$L#_)(3xHs)dH(1eJ9ydEwTmk z*aj1NTxERvHe!V8nNVcF@Ghwx^(?o!$O$+>M&i1E5$S@1c+No~E7z#o+MNwp>CX1# zJh-^I*&Wpngs2Nt2v@S8e?86cub;UQ#$ns7rNkZvLQAR521deJKc^Fexak{nVF1`^ z;&mS8;g%_%8u@14rVerm0b2l1vJt^Pm2xhJ+9yNXO0L*C)uoXPEMG=yX1z|VWGz9| zOavxi;P1dNGyNbI9E}ayCuRHa)hBV>dDIbUnY_sGs3i$9nD|8|b6El%(MM=wZl+EI zB|+FhF%(_I&J~~y{GbP|Kh8xo!o3rc9*&|Np|(BT-v?>v?^+FyBGWbw3L=Pwq^{A3 zZcbECkO4=aa1`{!kI(KJD$t?|k|)yI3bLWhQf@TYY9A=E_7+H(7=2TNCpWN3afm4% zcUZbUqMQ{duKFk2XAqBfEsKmnn-l_RnbzPI8LV*?q;*C1q3&YYORmkW_G_jMg=!ku zNQ|`SzB;lRdCuJN*$Adt`z`X`5_hFGu&ENy>yXA6@Z@VMwIIllbMY&5x%{OLTByM;oQ6c4vb)k>jGsOG^fyTrk^NO0^P)?)Ob?D# z_mz*s#ovtyH3ic+qf$WQ5Kruh$U=^25K_i%w2r<#b$?H4GVKi(wAJj9o#_!+%h@PG zm33sW=3Fyq+b4{3<1=Wr+rgKy-e!Kl0r?O;FtJbLnlts&`lV zeb6TJ->BorPeGS=cFV@58<_l9)=@02Ux6&rlxd8-9Ut_9Z^u8O+iiXv6YJ zi+#XXmrNq_HdRmcjt8BKL2Q8A9taz|%#FD1~5tXnkJWqCzi zoWf*DLS$$q0?71qIz73tt&YM=>>cUiqYV54f=YYrZVWq*um3Kr!bj`6^rN$wT!Rwu zM@zYVoB_hgiPMh_)vk2c*A*uFc`tGnnQn@z43ML9PZKCqDwW*cUUg$X@i(?yG_af>MeWGT_kE4pYkqDUs2)D+dA{3h%$Q*c(cD@r}l(TpvlG8M2BG0b9Ex+1Z#sg8U6-TI=46fIATs`hX_ z7*Z1|wtB<3SS+*Yt%h}W$?|;9Ix_Du?Y_|%2AF*(5fuV1BIWdO$roq$^*v?RQO{o8 zRCvph85+0Btn|!3IJCHwS8oyNZ7Wa-^-GWL7+=jA2U*OM^zPJTxNB~YO=^)J-P|$H znzhRsoge7Fp7xaboxVMEJgw;P8IHYvDUDG$imk`X z%lVD4$6R!`N}k7GGoy;+iyZ3Do1Lo~+i`s=htfFG+Dh$&rE|69U7G4YlLviX-)iwD zrUn|x(`5!8T-bbA){C1^9&+1wNm{1kwI3K^=Q@x>Z*be0oW-PMcAvBE5F;=!NsGP! z=#4=_O-E?8T{--`dJ*x1!K#JXziv4y_f}xSEeudhwNwC;FUD~7uly)EK>xpzoB1=` zZ*ORoEyisI?=KGKj*sw# zO889|KS^pqrt+|;PYs(rIe6gflpu3ta=3-z?Qs>>%yo8ZsW`vpg}OQP*UARM9X?N- zG_unQva`ZCmXj{r@czBN;Pz}EQbSX?8v;8ZmnafWtkVl>2v2SCy}P?rzK$~%Tkxd> zE+5P|e?0Tx%EaZ5`eu*oO794Wg-+7ADiEoc5Xf@=iI~*fKIhHF!a4DR$j5yV-nK_8 zH|q@v^aQWLPYG%+W`cRhK8@}C!#$!x{Keo`zj1HGw9hsBcmKlKv0*(wfu9Ie1e~$* z`uT}Tx0vOT&=V&8aB>^NR^!+ePI4Y9jri>`f!+1BxB$E5Q(!U-LJ)In{T}Da$S5ut zKe1SXbci4lgU6<~gBE}nmx@Pkx3|O`v1)z|%S{W9k_`+$@!0db@cGKyeBT?tJ6DK^ zA-~w@ycFEY3NTR=yepJ3Lmr*IH{MEhB)k)Ek~0M>{_YT^X zZg&Cb`IhkCdO33+9c}m?Pp-7t9V=yYyhz)xN-Q|Nl5e2Ovyl8twV^s=x|(%iX%ARd zoh0$;XYWY$uwd&f;z|O=Tek8}1`J{LReZM^2tN|BQrhnRar_rGPMd5NR1r#qddfqX zGC#E;jgWf^2)3ccR9v^C)ulj!WwSJc%jM0yAJ-CM|O|71Xvb+)SB#^@+SOapj z(rOFE0q-8p)s6(|N}M(y4)%&SGC@XR37jy;F1|g}F7#pH-<`-ymrE;cnVgN*?di#Oq(}g`|Tu z>08URmBWtu2a)W|7arVLx=P)g^8K*DZQB+AU_~I|dT`0OFuYH$)o7rSqxy~=hzA&H zg)TAw3f?l><((>`;Z40LIF%Di!8!MwdpDIl5r{)JA};?eukxE?%@o~t_vUMB-tP-I zMZMfa)Pac}Ajz!CSs?P)a&zyYhk+!c927nR&1Se+Ob@xd$b&8>O!pWzG;jXF&F}kC zmrT8TIV2Bl?TLsH$FO11-rYOn-#@Lmh8h#R;2%gA@6{?(n;$-15o$w<>wk>gVY$Yr zZO~wxkNDY#bFw#CI0z!}oH(!m@#KVHMYPBd8leUF&+P4B9+{PhOYc=%#RZ@1#|7~> z%g$_e1fcUg1dabKJH%2n0;V=s@2j;#Gx|vmWJkVlCnI9QjwG7r?qGh$wP$t& zF9pK=Kfm3m3j?U$f2q}D@{=|N>eMGXAZG)rEtuP@mGsq*v6Ox{P&KUrLvfO6ICosY z@@as$UzBu@Tt-%Oy3+0&q#`1atk?gW`Xhl|QqLYYZX996!?LGjAje(ptHlolfsbohHH`M838=RM0Zv$50&W^-ipWtweJNb1e=+4@4S>7DA_K5Fy#yim znk+^{#LZ`oN!mMH*cUQGt2Z3qTy@LtNJM?EP+4UInf~W1mKwyaE>Tv;HOZphn60~1 zmtewmCOb(jq{cDxA^_cPz@*>WXjbU9S^%^HUToh}QR=BnCr{sB*0y?g%esh227qL` z|8&OiwlXe|e|P9THfsB(XLGcqw;lt+2)gJwT|NGS^ANQ2>xheX6?(2eJxbvNiDuCF zotryI_fAe`MfRBqeNzbWRM4I83Cv`LuLd}?3#aUrtj(72i6-4W!0m~(V|Z25MsU2S zs%rW~)ER?*Udp%+t)J>L?D||M6lRxEgYXUlh?dZQE~|^+)kSew&p|e#vmQ4n3>z>K zb_f;+1|}+c)N9_c7{3R@x-o0wc*i~pv!1D#V|b~vpMnm_?@i4`5efr%Ve}0EFfrDh zhPDn2wA@!#2*leHqdXZx#n}(yFyW2{k~%<1^*%4P2Cl-Y!W*hl(Nk^Rc;ok}v+j?a zSNhH}L!z&6a^E(BsKb@9wma&u-2sa9jU;^9mfZXk8>)Y$m9~qi)cpZq$#k24dz&3 zJ0;yZW;k}$Dxu+SS%sERFf@$l`{B2>%ZPis?((Ta zqNk?2j4z!ZF#9|!K+5|(jT4t7#2C-OzjQyyOVI34a{0efR%4f61w%E`l$Ypjra(P% zQCRL(U3GjVx7g{6JbAUEqO#kH8*G>~=sES5x!1?5axM0&LnyeqWS>W7TJ{;z2U4lr zocq1;-muPZb=;q#!!*Ijas|d5YMe#Up`~KBFek$w&7CgNg*D+C`r3jv#3m~m>vPr5 ziQ|`aZ9*{32sA|43iF{e5`78+aq}76)p-F@ryPn5?K3Z zZ1~t;$Wq>VfeZJX;&H0M;+H=n8HdaTQHH{pvNU(suN7~B;`Mypt?TY?7VF3aC*_ya zJBXi}g!LVg8~nhE9i+KY{O8A#qUL^M7RL)o(pZ|S&DAFGx{_#EWePE)$nPwH^~9#| z`?3w_3ti0V+}FX}WS6C&wdL$^3v(b4&=IAF)(i@bSz35L{)1(6f~YnlzgM#_Gs8~MA0<)*}NGgg9Rk`-*Pvsum3P7 zq7yj&`&^$X8y;*+FUMJd6V%m$lQ1ge|n zlqDg0E&fO2F7&8?&Ay$#R@&c*fP!dW_v?3Rpx-^}YRNZ$!lNouj8@qawfu!oT4K6a zdo}ST!bpK)3r|iMfS532_+j{~P6Tg(+rWRx(SJ;Nh-+UyC6d)S>(1$wADNdR07k6o z^yl;tZcsiT!c*=()@UZ@p|MSz&ir86i0IDLKujl6)cY8OElN#LbXz00J4qpbZtSRl zV4~A_ishPFP?bJKAY_k+g}q8_!%z=cK_ED->1m%TjR^yNR5c&~zj-?S14%J&Wg@hI zH1eiv+UDCV<%s+>cZ2ZxrImHAQ-cKID7M!Palo1|M}yZF&Zn%dshLjGo``$!;b&AdZ^B8C_rCIkVj}Az~A&4 zC;~Q?B9Tc8+%Tt*BD>8!F@d1>u3$lzd4SJ_{H_=n&4uXH@Afh(b-I0J^EP4TRSYmu z85i&kFro?C6()9Y#d=47gALBMK$k`B5W!%jl0ulJB|FZ%RJ^>M>$obenOR1ypV)bA z9++cv^0dCDEt*CgQ(SI}sxat(ZJz$!{w~XPfuJ&!T*N&`-PfLyHtw2ms9ja_P=v$o zvU0^yrNvuEB~`q?-T~nGFwyy-wJa(~GvylCWWtx6bsbZ^Tf93{r=E>nB;MsfNtUrdvz?gg4gzCg; zWZs-@m){Uzn*QX~Ua>^h4)L5NsB(dMw%ogQ7p~5h)*$LCTG@S}(ZvTz^!>G>jteB8 z*E_Qd7`xkil3R@fr>k(jS%laA|mER zSKl(sz`YuaOW$m3;u`0l+$!yw8urf=A>g=pAAz@Cum;3f<#>&9CQm1N7#u~=c9MXp zo^4e-Z?wtnuZMxEGYh^P9`tRz%YK|n>68y&yx%5KYW)(+vUvZ}BRLQp;yj{~P1zfa zL;Z<{{l?n737muTfyW;ajyi2JD#9o;z{^!;?P-Q{>=Crv^EU(z7xUv^E9viE^LLE= z$6eLB@bUD6?`v1c%MkJXiz}Jn%GbYxH_6mzcEYS7c->z!gkQ*hKj$va`jpB9rMI)KVKgGHsKGZ zPDVFQJq?C+@G|gzk0!vf%Z&@2n4Zi}k;B|oc-gpBl5dcs3v?~)6t!dKl&aJU0@ZD` zk>0Ta0zn6h;;ooSKX$Lf77IlXG;BU;EvrV=-SaQ{-fJa^r{3NNr4BykztH17xPMc@ z@Ajy1Izb)W->*!#>`DnO?KYQnQfmMzCM8HOf(W&!U%D4hra!SIo8iJBfyTM5;Zk}; zr(cX-xcPj0uj`FV6pL<#+Q^jx=V6dkDSfwL+pV!H1S-=APuA{U7y*>!CQAY_KIrEB zDG*f6CWpBPN;0!ikChxr7plt;I97(zIteSL+;jn}u3mSrk#;*MoF!MP`ByjJzPC(buJ)hp#$>3}SvPb>uvD!#rU|K8KW zkKGckw8DM48MV)ke{qMo@8|>mJ&JxRofBt-m&+2OOwgI_W4#ew@cBo7DleOgN%V*{ zuGVk(w?D*>ZpeI56T9fI!>WbtL*N52ai-m&f5PaVcE}-No+3e^ON=?k%AsNDYwo~sU2^)>#(}N6xoJUGi zo{|F=pb7Le37L&xuikkB3$$ zGVKAf8`!Pm)44OKGly3^}m2f+_dMwghmdd3BeMG%W|sBR(N&t8aW@sq{?sS)cNo{kA6*&B4c z=-Xni4dFqDGsgcm%@KM90kn-5i~M~*?-3+`P9iTbYo@xIYY6at# zsQNlT8b9s+Wk=PTaUpHRnrXdZD)%h8;@scMzFU z-S$*=Fax&*4k|H<7~pL4*0=09mz8*owRUw(@XY2S=P};B{V~fo11w!})Tu-$MkqE^ zMg8pb#cgbtekA@e$DxtHjDve{?JSr3u`UHm_BH>nyz^jZ^LyiX#B9|rx`^GXRhufQ zHnm4}5PQ=|G&E|IBD89&y-Hf83yo1LRVx+Ze1&tm4c_06CJ+I)o&N>TEW;C}J1{UrbbJ z(C%H9H}A0KjsL8r!x0@T`k3tXx>G1`vt)j3!{}F~!3YTc@*!-@iZ*{)K+E5Q3cvUZ zc)=Vev3F9|$lnT^-R#Nepz>fd*eeEtkZyv*bJ4O!?dKti3STyM=k_S%QLj@f8G-Xa_m$fc1p}yN{<{A zm1pI|D@$D3b-YH>T6dgH?p1$DVxLv3tmg@5C$P|HT~=2Cy{Yk3Ok_sR)5QN+4Yd6Y zXG*1+TpZr$W47%?A;QV7%4{?;OI5G!O!GMv(CJLyb}#~gQVUX93YA-#teM}zcjsP! zhqDeetFTCTodWo}^#3wZ>)#9@> zgKO!cPi+D?tGb=6If?B%X;TN+=8fj7kuPU?;GT?Wo9!uqDgpyEj^q$) z-dF4m(_Gaq{OkXir4{8470LHFf4}|JzAf})qGfEh;cEQ8$oI`J2DS%gRkJKowvqM6 zE4iz5-{yv3=3k`%p`EVL737eyFSmX9WAld2>q$v-8Z4a6{cB^5wHJ3);x;?(8NB?P z-Q~x5#JOpYhH#4c*zeKvmc1Plkuj3?&?mv;T{b)}X{RI#vEHz0n1Q+go2@8}Cd&1B zncaXzz$`&aimsJ6lY8oFw#~wiifU++5M^4aHh0dA$%f%h(3D6utHs6|p*u49HRj=B z&%!eQdN#BWg7hNBlTTm_(;8yk6V?w|mam)m7XvM8MsCMx(2{p0wX|Q`|B#zLtdx4e z?E^9VBd(TxSRJ*fcaDi> zovp6YvX{bKGmcc#cm+N>)KqMA%I+zswy%>JwMjX$XfSJ2;`B36P(5aPvSCfC+Wz}I zs=&&S!h)UDfZ#AImk&gT9XI*)mZ0gqtIQ+N@(odWJ(pnsh4SWRf#2#co zbEQ?`kRgO$E8RACVs|^=wnIOrw(guEVe4XNrZvB<<+V$%2+ujSl)LagPtJ@@?yGQv z%5%Mu;u^LZG`p$w@eJLhjL+-mnYbUug5~P3KifYLe^YV$WJtXh{*S$iB!*kfZN3htVs`*!(|j zq+d>0DPUqubK(NSiKa~;^w@YfS2L6dS#vKok6wYhE4LOv#euz+NhM{aEr~j?DY+nZ zyW@b5)7I1ygeg&!+#Bf>O!$-A76X!JVdCy+wR@tYG$;X)aZ4Y9M)`$CxJAqq#it zihdZbU&}V|Q+(`&+%e^r7TLl+@=%zh6XST;w9?!2N8EmiVW&z zM&JOrNKFN0|35aL?2;30?<+>SJ)nC3Kl|P{@%0ao6$+p>wR1~y;|X_K zdk-hiZ{ns4z@0c-cV7jJL%!;L{Q9#Qdw6w|uyIxAo4u+S>AayME;^1ga4Fqsxg8QZ zQ+wEAD$>epl*Dsrq@Upp_H#m#yQp$mVsOJCV@ohqdS4Kq+zpSa)7UnmDa+i9QP&YB zu98U|Gd}5_YhGP>(lyQ#id1>CV7qYwu zvh63RXiW=2`<%jC9|81#RBXK@zIVG(|7SH!$g*HuENJhvUF(ODb1>}pu3gFX+fu+B z5T~khy2mNIs%_T@fzF&GpN#6>k#`9r;cD}-#~eqvoH_(s!JWR4YQ_viY?!(~I8gFQ z#r5yju_UdSHIx4Sn1rmh_xy;e&k`xg#FB{r4tE`Bf4(*sJD53bqT$EfxwY^1CldJP z-DvN`xFS3FT&Q%mO%t)EQkTFsMN^YC=>QvT#m(tuW@kzQI8+1N|n;ROMOJsSMI&bX-!+VU5lK5Bbg1R1eNBkpvjj8Bw{gBhBVsXS+*U-NK8~|;yv)>bXRmU&3!&AfEg;lL ztU5C1D+jpik^yF59yObhc-4%k%abHUNrOl;mKRL~;R;l2*p<b-L5_EGt1Evgd6Z2tW zE(hwgw*L^w%DhlLFFY>g!*hl}Nac2KJcRNsTygHfNcvM%P?QQO8N3cOnjT86zlp#2 z!2UGzKEB?8t`eb~F-b+c#_M$!qEYO01Hz-h!aNW*L&SKul`8@~J3ZCAaRRN%F}#q^ z=Qi}8&b>R!-RDpc!R4l;)M1^bc+;e!q;)`tf8lBKi+`;El^Qz0!^@;l)#i93(OWJu z2578K_;f&7&B_zCIq8+4oI93^JHia)RN;s@6*SwLbdMqMr7AH(jUvQW?3SYD;1#;n z(dcFi5wp!+c|*dJDNd#iwCd&zp6_me6`1jrc^es#WhTUKqp=0F%j>m3h#VK}H|%|O z-I@B%;xr=0fS$pHm19&(q+TBk#IFNEQpq(VDml3XCY_RG)1((eNdY9LV? zwdf~Pv9F6J52laRJ9==_d+%3HpD*OtynZq7jev}Y7H0CFTbaq+{Xl*X{|#maTW9I<6qv4h z-N)pJ&F<~I4sWBS(|GW&T~9CnZ5GIHI(+g1Vaq%H`{kp%UYj$P&x7N4vTT;@Tz6lh zQqzRBVMV7dciuW^`~og~O4xk6pcTGOX1A4UB>t)i)srdqtfS!gniF`wv`Oyjmr0I4 zqTDE!zVky(HefQUiHNS`EagGKcBjZdfiHW+IW9JL693FrWYmFotS;*lsZ!B@YHam! z0T1Ef#lMz;+zQl=NI$Nt+rv)B%G|O@d5v65i{Q1fpC4gx!RKG;F6x?_kAR5>LO^O z_z1$Ip`O7==DVN4sXT)&#W6d)_$kk`A-)^i;%xrf;Rn)QEso-T{5!&y?N9hTL}|W| znh>P8ZE$1#&xnp~A;&abk*?9=*aKX+q5t)bZl~pH{EI}7elgkwuf3<8T(T(0{K81m zDhbOG8mb;%vbuOW=rQZCfKN#p59_q@iNrd`8Bd(b++b87)H<$ne6HG(fn5po^ttBh zezsMb+A$)?l2HjD7Pq!$r05M%(Jq`TeZZ}(ka3(a-U-7usm;eV0b06ouk(tVk~b@4 zjkV^BzLo8TJwRs+M&c3NlcT*$|5UTQd!*|A4J>X{|AerL3Ig~JH#pOzl<4onJu4n7 zE^KL~3xID%gG(yj)$dKF&w4xt3Gp0hWVWCjUhuLQS016=gP?eRYBViR^%TU^)YP9f z)JUia_-j=1_h+l}u?@wSUKu6=>01)>Oai3)8$q~>x%cGt3}f5|A>tQH)o5LGkM(B* z8*?;a3Kt$q)cn;N=s_6W6qu`R&HjK2lT}AWdq9C|6*-DDoYOJ`uO~!^Ru|%l>W-Uf zyqe*xpSJu^0Yelabn}m}yUQhiS(hBr`3Ioec?nmDN5YVv%sI-J_6c)ch1>fu8EQ)p z-;XdHEOzE4j5gmlsuBUh+{!`ft5Lf^Y!p9(U9+dXd%b17QPC?>3P#9*g`O@ku?Ju) zIpKe}j}##%Tm)J86aE+&1Ll~X>rU_SZW_Gf^?j42~K;5Dvw`CVFAXDl!NoN9M_+zaf zDB~ATd||;#lS!ce)cLnJhmQ!TW?Ayfxbj?$mnsqD4CQc=?v(a%2})49I&s@$_Qe;@ zABFW2diM>k#`Mo0x2lGdoQM`fx0~YC!`*j3@$P3TU4D7lJWKBX=*d_)2DB=ZArrpT Qd;n{h-?D*xzTpw~KSkSQ?2a)DI`>5ad`Te0jr}kcZ#b@Ohc|%|GG}U=33JQwTS_m~m3W{Sw&>xYL|3Y{8 z$d~k>e<-~W<~|e@j9lQ)5iLW`H42K$6k2Nk83$x8jhiM3Xa!AdcSKx1cHb@h*nj7a z)jNxbGnetI2pyxOrJ#gv-Bw|yG@Be+-abik?^>p^EUQWR#&`8@$??yx3cqZAY5H7a zHQH12u|y$@;rmL(#>x06hrOkx4eVoz?Ba{Yj*aUDyYu&yu0y1l>)X6N>~>8LUD|tP z6B5tEKtZ9_^iKRF1x0n{+k1yS5_&lqMf1n6^HETAs7xKDpl}G>sk9z#qphVcQr=p!fRJ z03#**v@LJJ4AX<(E-?MG_KQ4ls+V%be^|l?D0yCp`t$fI{5Xp7@7L-uf4dF;oZ~AC zc>QY{df+!{E#mO=PQu^kl<@P&dJ|7KImJ6N3ge^~Bi3%-@9 zeD`N384*C~#nHJxi(RA#JD+jm_&?Wi?)-nR&%w`K?ElYooU8la>r?P^r~LnO9q0V& z@AXOexx>ug>ki09$U*;5c%AdSw|y|qN-xCLm|ir${44C|tJTw95V6lWXaR{IF6<(H zAOGuRAZo9RmN}!hSK2OgK|0*B0#5mr!vBv>w;Z_vu9-LgUiX0Kwj}?*T={){xcT=w z4t|dJ&;G-;-`A6yf3Nl7=f!6d|2+SF-5mG#`V9R1v9@dUfPS+Fuu0p;fXd2i#jZiJ z!p2KOOWtp{_(r3)WKic`{`dR+p zYgnB=QxX`j!#nZllgMc!v=rg2TlK<|&B2y$WLUSZ?`^w(dI9tDaMiSVXJUcp7-Z`R zK-51rhlRT+ebRi{SZKx+P9_RU%;O`u!>2|N$3ensz-9rW+yRCs(^L%03Nio-}}eMQVm|p z9$reZ3rTYg-WPrzv7u`jqi{(>3|{NEdL5ytq?ufUj_gUzq?v_pU7WS*edU@yaS#@^ z{Av}sbOll;8BW0SC!TwReR)V`i*rey8eHy+UP5^PaJT)7HoHM^+MxJ4YnLM$bNHA+ zgMxyYHWFI?UlVQ1%m+5Xm@NhPc(AE5e|Al`mJ)hHBNA+FvnK^_jR0FS4|>{rL~{Xf zv%LY|VB(Jyhz48#1JJ7_9AR1d;QwEyLYKb@gV|(TJ;2yMB#rx#{0OENz8MhZ8vV#o z871iIIv5FV+rzh2-p=d%TFoq)FXLdkJS-AizN!xZnfYJ9l=jv!M*DzuJ@^jHrhnJ< z9+q<6m5V3Wu*3A8D<%hyqoC!!y2C34Q8V$|eDiGmauAqdIv~-sA9hGIos|DZ_b)}u zWuTxU;eo`~^q}yr^~^+YJ_`7JE%ORZ1?NOl@FUZ0(qWi7hy*h_K!V9;x6MU+4{Cat z8IE1v(CI(E-Htw}6U4?7wHgb*Y%Ay^21-3~Awe-z?t-9QH)k3F4+#)PN{&0&KBW6xIw`X}Z+Vv3I^N+7s6F zX;>d0cxqW|ImD|!JaXwQyv$K}nfx@|=i9k<4w1b)z~&iYn?Z*x&WthAv$qcgAYmm! z!^RT$z6W_EnQ2lRY}W>F_upi?LM^)OB%Q~K1N(KDt+45snOsFy{iKu*HlLD(iBN@! zNH8Hjn0_yJRQ(K4Ujf+fQp@TM=upv)-V7MG-t!0dePL@qzPHIh!mY{mWinU;DVk9L zrl$0VaA6b~&Pr{_00#B3fSYpUBEi&q;+iB92B=3Cp!Rt)k1I75jlEB!68L)V3BU%{ zkWr@9NoYe$dd^MKtYniskj?Xqf$e*E$+@lX*Ycm34u#mvgeX*hc0GG}Hz3F?W zfUH^@592iA{!R1|U{`Wmo5C^TwdxqNhq`1{~&oq&%CtB%7@EU!w$c%VsZZM9)j2i>g7g%Crdz#${C;NUab0ak!R z3Gl(|grIx0yF~#ZTHqecc&(MUUWYvp-kh%!!6=4(All^1=?#p-7RC#2!-Mpo?o8nx zU26}f}0jk z&F->Am$@l$0}Z)6=c|+xc;*Pj$pA9-uT>3Y?nLyrcB6-lp8_TI21Zx++y65AB4GBh z#x#*y^-ujglQHMNZQBD|ISROX?wppTfPssQg{XZbO0vfufKy8(5Q4rTk$rdN05co2 zW-%>$H%=3h1O*RJ_pPR`HVDHJvZ^9rbLwvO2@K*1Z-77%-8U&Dd%;W)l<)RD!ruWRR?emII^@|%WBnTKMz^k z$hIWx$4&ue+U9Fp-gx@C+13t*M{R&LH`0p*afX?FLci*MR`j1#z63P;27uLY0)#@h z8f2z;g)X+GWM|-Wa+#WE$l!SbFjSQ()IB97h>Zj$BB#Ke-fKMYr@%La>$^a{f~noz zW}^bxiJw@P<%0ZUI2^wnMH1N;^EMG}k0m$w?#keSDgS;_J>nWYr!I6n64@D4_UHht z<^onzdB3{12fHf%S29(OnE0ZLKV=Ozn|~YHg0Ir+=L!(hn#tr}t0_v{VmrsBJ7ZnX z@3ZzS?OE#$Y-}EGX4r&ymXVK8*cx*}tG-Ar797^4yvW;@;J87$<9`nzgfXy?=hF>* zuF-dNZb@9qO|AMMpWcIiQy_F;3SLn751{FTRl{=5JWNROp$i$|BDmh@8=7rycZ?z& z#=fUbSOsAgrq}dWQl9N+^2Dr9H<*EkJb?WoMmm;i!rHuuJEraK#Y;NCm|13_U2SJk zvLxK+YwJ@IpGO~%&tx0pje^n^r^D=kM1_E6dd;ACXK~DuqU$$&pM=IbosI8YC&Mww z1#qG_-WfRNLT1s#C6WUcb%lddfh~s)CYl|%i2T)q-wbpwIi|jf4R=nCEhJ6NdB2kzk{G^jub8 z%70ci3yCiRT~7lWyf^_8k?;{~Ty|7P+f|_Q=Cnfx;v3Tq%3+7I{W-xDEmZ(UFHR^R zF;zl+#_O#?_~FmHxImW!31iCEkA7?{uy+@7|Qya5hv84lXy9FC#y;1F_qJE zv?u-y@(oh7xz|eq;`CAgmh*T+F}Y6At&u60o@=w%)Zp5EfZ2~ffFoSn$^NL#o_)L3 zgz8+d;L|(bvtmdJ)FDFrF?;bKikCSD(@<9=Sc+=W)YdbbMSc#hx99IglWtKh0}%Kf zr9CDGL;7gxZapRx)EL`zT1I&9SlRZ5L>z>Z<{%;jP{Oq448(&Q_IrJAEvpGQ??B@;_$T#xW188$k|1+`oe!9$CjoAt2_5W1^*Rbz>(N+il) z;iB(tomWTax9Qj!ER{_2ut0R@Qhm=^q<$1^l4sZYv zVrlqSh>5k9+H_M=wjWdIQ(0zQx#mj_F^$I~AW*Qa1(v?KRQSD0Fyx5#f46m6Dk5vc z)||h#{R-JU=+5VBTfNWp+TD0VW zr{oTL89XkJxJR(um*FvhzXWeCpcs-3!kDxH$Z{CNn z+qHED@ZnF|<>!yw(6@Fln|`C1a^LDx;C-GuvBjT)y3BVW>uv@p{FxFcrPcNUzD`iC z`^veLEQ)}us%Fib4w3j~4L6R|E?WqXTFPNIe6&o)whggIM#PA2ksDveaN=o&?Piz( z@AUxh|ABeGZequU$wuL?@#}CFA5GxrsH;-b&KH#e?DT-wX&+T3wtfoEt$Td*!+D>O zrKzk)o~r&SZyQ6VRS*&1xd@Ib)M$mU40vO5o<&5`&dSQZfI$m)Z>8eW!x`ti_x6_o z@y8)&9NrY*8gg-#@|>yAjXU4-Lg+b^Y=(1kANho=Z$hj(l_fzz!4Gn_&kB&9<|F!z zdZQOhkG-F>p>b!Dl4BGH{FjOc{Le5=A8ox`RcGwRPClAytbS|u)7!xY-sLft*JJ?8 zEkzheh9YvntKRMnNL#bD zqUJQEHDuyBJ|1A!;zr2hrd-M1kTL&b2)%O}p!Mg{v)!|}x#WViF|E}=re-|rep4}j zX}q|cbw%h)AHG9*SPV|^{=<)zjjme;1PEQ!)Uw`S_7o0k9Egl@UCszNfJEWB57(1M zf%#WzT{?(qOnma;Zms-oPmuqQ2YKpN@g!lfxSH$J?y$_X0IXU5B;1`yiEb{;Kcweu zPq;a@wh@by4p^V+9c!+;|Lh+K;em=vX(r+3ZWfq{2j2hb$Rk)CDs>tO;v1>QF!ziA z_oQ!qBCp>!_<76D@mO-QM7vCFPY4$2Nfd>`J6j{5mr~!;aeZS})<0G@2_xO)WR8N0 zrVHEKbNl@?nhgywY(xMxx%2U?gb6Ln6+et!B=urhn3`iGO4z+XMvh0&!^)5;EC-n0 zKk$k(C!BmNeH%H(CDk!m|Muzf)zt<{rUZ1k7f1yaJmQ0sk4hGxof+#G4dV1m&4pI} zAn%4P{B=g9>|w&Hu~^)Qd>M_di7=U?Iq(!Jdq+nRQB`u zr=m`)Pc=k-7o{pG;a9!%EKAc~tXT&*Wqu-}(OhxOoAQZI3(&>ai+N0agq&ev18>Vb zp{eY1*rRpT!lC#?DeBXE)Z7Ujn^H`>+3qc)M8>$cO^GZY)&Av=p`eJ+grq3a7|%G1 z>u5~HSzir`%kq265msOyT|IF;5HDKBp13zXd2ts)tcC*Ud=G&(F%vZ}k#HTl6lzKI z!<#8&)+^gyoaU5gJZ*GxmK@rZ&1Z2dHE!z{hN;Y!-+tZ= z@#VbHwHCDXrUS3!b2!UpEet{74M-@b7VVRh)htr@44;sy?zcYTMv6?2AR5(UU3T5% z!>)iB)7A{6sLaE7Dj&-(^Ay(ZJI<`N(uDKXG!yG)z3(JWL=@@mp7<^{(l!Yjl`Rlq zgt3lg03AcR)E88zxC`A`S3LhctW$SIVa}(CQhY2{5a)Wh3jhl)CbT4Y3^1lsn=Rv| zu_@Xj8#4Nv#}8BdZbjzHFIS0;W?cuYn7IPT=s6p@bC5L<81yRn-vKGj7Vx=x`q) z*Q^&r(a(qgOSlSD=Gt}uRFf71WxX)2@i?^4Zx6?lDnbWktf#dH};lO>K%z2YGdV5|C?I+u1O%jd5^q|~V z4HZc4^Z9yC4ho*}_P3zyCIg6qA84i7xFoVlEiaFhwQP_`H!OQeLqF)wvUfmF8)0Ji z^@RWd@a8KH_)VS*{E^rfN^!Y+;?C)-tpVBQ8dv!?WFFT{Mwa^BGa{&t>aQP_Wm|>V zFAeb91V+1;*BMP{OV&C0*zJ>vKLyw}w9l#0F*jY>C6a1Q?!JGDMeJ>(6qHPuk5H6G zfg{{BB&x=I;eU2%$c()|!7rv?iBP2;NmlVK)VFjYZqc#8By9&}2T`*~+DB?Lx7=v197h{;MH0VsX7HQ24q&cy-n0Q2>x=NH)z>1NcnN9QW1tet~t!6Se&GvO{{kp7pwp8ROg&8$)n|w-= z8KdkoGndjLsTR#vzNt^=*v&Rw{dBK*M(>VU@0H#0v{YQeX4u*r;gaZPec-n*1Npaw zEO>iR>%3GYUTSh#4IEM65Y5#RcOYJ?Z~ZamSYWF_vURRp!kJ+v!Srl#cjiB+zOGnr>$s)PX`k780EHSA`+h))9f1-HEDYoX)h9j) zD3+dz^NDX5OGAy9p`R8GFirS;Zk2V4;n_TWkf}Cm&X#dk85mX`yw}eJoXkzA;lNV0 zHR#{2oZKJXaYs|jW+On8PTRt4^n&$^n44-3@PTl+Z*~%J;W^`RTP$%m)hs~ba1%s+zG{#Y=o@!-hHOG@W`zZn@4g%qD!~~&%fW4_hq^OW<+#`7 zGHNm^m;p;i1qG~sT+5Yu{&pFcxIw>sAWhZQx=CoTt+^e?_kd4qJ@>jwZ>q@^iUQlI z2gW%E^~?Gu)&=L2U-aP?{q(Z3E?(_^{CwZS^4pjqsafMLhdeUZjYHvj&j;Y4RZPJa zR^w1s*claLtR6pz)@2ys75 z!pja_D>L<#G3R1R?RfE>p~da>(7IlZty{nJU0m=zTfc0#rARYJ$`?A%g!Sj zQO(YAv!BCYibb45vT6g$0Ws@6_>951^>ThLWIwU^`t4hg`$j_uc$o##02QX3hP2Vv zjM9V^cIWX(T;+sSd;xb*PeVdhfZ5C|l06gNt4JcKK-`eP_%STMwb=+}H^{E~+DHI` zgjVuOqLxzM)+4`iTx3DmbW~5Q2eemlN{CISsShy61&RulL{D-;ehC4Dl(0fZC#yB` zvp5t8VX^jticG2+s+VV&Ep<)J*zA2Xoi4ra)t#M*FB1Lmw)YY>V5A(dJ>L;5TH3ry z?WL-fgvdeKM)s(M7N*HkuIb!zv7S>w*8t6D;jTzf2}}UEb$N(MDe$mo{+5u%qm`w9 zSCxVX=u<=`k3XB}j9xn0VKTswfK7%WfF=aE|SYt!ht5{HJYZ9_v=>t$sQ~^P`O8R4L+jkCj z)|F{Dmlaj_6_<>a1fKExz4g13;!QUc;@cO_PYfBilCbXz)JsBYveunHb4*RbNf!ZF zf5G-N&nGA=(Kdm6B$i~WID$!JO1ffIt)6mI9vh)!;WA3utNsn&lKKHE!h~i4Q9c1j zZevp3_T|D@cSf;AQgv5BVH1;%^{EtpGo5%+%kGZZuFGf;Eek=$q&;i|pf)d18^c=z zjAhY6!t1IAqLD=(cKVM*_t~#*I0r?>V>SlK<2sy8RZc|Jp(3O6`TeUyphxt3w%RCDmIMGtSo_@ej2Fpp7#NqhkE_+VU}@W zpTPS7^tc|wZ_+D-q!con6Nr7R+;g8HMr6T5jbR3Y*m8Yc*XLlT!r=} z$VX9#gW_E3{@agZjAhg>&aW!Djty^{wfEuHvE3Sm`FFZeazzlZjcWNgNRZ0ss#fQ> zL6{>9Lh9!L18jfnLdl2=fuUv@6Eb0pmekKltACPccy4N)`c+ZP+R$#`;&wfhK4F*H zU1NlHv$FvXgi}J+72YX{w9_;7)v-Dm)-FcJphM41XqVf{L3O{pxKQ;Yg6a}Sy>HXo!_0fW+aTED%myJ^TPwOUdLs^z0cVvSE?@^P{W;dt_8L>U%zFUy}EUZu$q+ zcGCq}{v`I7Rg4JN00QHLcS`2NqJGkfFDQ}qfpGc8?tV^y98`p`n$ovAX2g(ILQTDz zsz`NKGhsijJ%c#6-lLsd@MPt>{_U$f@VO7TAtF>R03tqKBj(j5BK#NfW}+y``z%bG z+44X7v5%y_d(nUCeJowlKO@RF_6#)3?NK$|f>LJZgu6z8nxMNdQ23a?rx##2~suG_sn zFD>Dm&|LK|a~FISH*X_p7^Jg_oX<0Bk5q zN-B$vr5vk{Y*0djYDFdF$9S`JhN{BEP-NesgcpC?4MmrIfPoz$i~dDYYC zO?OJ2oS8(eXu}+YygU2*kIA?fg?t;lr$7+M4m?oar9=~2(IWmJPX4?Ss%7ujqk-+^ zo21@1<`Q4}-L0vSmfp#b!32gmFlyTYj8V7-nbum@*_$S`X-DUyh?|J&yf?~ILcX(E z>lT(jv-ZC|{crIWZu2`sh*G{*v=>oTTkT|g3BI|>jo6yq3J0w)?Y(=s+uH2>#r)|r zTm^j9M6>o_g3{D=Z;84p6feJ*O!l{~KtTy$noFD-m*Imu09_)T(e$cgkzMi*Zj*PQM(oejn5e;-}O*Qb$w=iexp_@6vKyfr%(= z290*m-1V9{8@6|l71*y@?=DwsT&)Tr+Z8_pBvT``XZ_-&Y)GzRJFN|iA*dvz)`CHL{uOkZ!bc9)@XD#9t%(I4x~2%GfNas%o9;dRL0zRviuf<-r6?&y zlgWT#lXZ5#>yYMiaf=G@#^8}a1(?7&n4nVo;*a8m-U1ZD)NJR8J@;7QTSe)`EFZlq zj^DnaNvRVRg}vfpam6+@Wz){Df{E;@ANs_g8Ld&cnhsa6*UyIR&1Gu6y5?F8z2u9?jDGGPo>zW&;{4f&o3TEQP;pZR zR4l!0l?@?(S%j+3(*(gb2BX4@JH5AUmG@ah^}qaI@=rUqhM%_Qxl+4^&5RihFh8@i?&2os0N?sCy_*X#93t6B&%BPxzUk)Rxu!$o)1_Zc4( zh;KG|DwdKktv8fb0Xv@qcK!zi62#+=amd-t;VMgfC$T~{Vpf4;#_1R9e5y_}T_jtt zg!02F%Ec_)TItDY)`9AAnX@23l>uq2mr5B{o!>6k?E=D7VRS{;1c53mL)A#4%F9q= zL#RzUBbtc~^;OPx0*Rirm%t;RO!H-OjA^fy@r#FU7=$$8|A2Jpgt4}z3ms$A0K)_b zQK-M?=&rV5N6vRf3tEV|+PPL}IjRjXf6+R%7|=Z)sUb~#F!_n6fV+k9^wMF(X=rtw_WV5GG$&)Q`(BMYt~QtOHX%^8gsahxq-k z%vUL7m2qop`qQ-nAvgT+#;4B} zteQUMEHlE2!&eQH7_*fkcqHwusr51-Z-DtQm)82E=OG+vGyr_?UrEPx=$o0X6lvgU z6In668^N2;+WW?qH^<6qi;fK=WMbGQU8m+e1IrYZ?F}z1hITh!T3&DDJ@tt>3ONFX zu;kU@b>it~aVHCfjFz#`KmDM5Im=XMZK69nC*%8>hN1)lzhvdJ4fN)^ z-*pRSqPr1Gf6n!iW^RZnN$ac1-pL$LiXF}hs(kYPdX^460s@hgJ_~u*s@c=)Q=djs zxr^F9{ieR^Exr*{JIy-s6xWBNvkqV5VlS(~0=8?Lq zrHo&{sJQ|A%Jq7AYd2|&AGfI~W31!f%SZ4cbCEoIUFrn-vi)>=jd*PGchvoAWhf+S z(FX_0+R29wR87aoTSBc_pJ%ziE^1&WC=~EhNGibezsTxR!c>hKRCBZ*;!bGqn0ST( z(&=X=L-5-SnvVWxNb8pRfK}v~w&r04?`qx@*AH4?4}5!MF$=Yt6=GWbTm=7MqlU4! z&Z2i@w^3uXVU(G``~`~6^4u=zIeiY51`U#>b5I=pITy;YU2%yWgIDbAw5^y;IM!n- zh{a}!#sm((Dc8e-RjRO$;;J<6jsHXz$kuncWBQ7IrV<7i+kL!B&#>1f(=kKyU{GbJ zB@~KM!?U*6q28XyrJEHHk1}RuYDCj#0#>hHFk~Qv>ZC)3)T~B?_IYg2yC2DRvE(NT z@hLOzqZXrx_)dc9>+4O5u72lkj(%J%hbK|x0YdrD;^FS9U4MNlpNDiz|HbAZp43t^ z{y-W%eFp~mP3|3id^*8Q0xHQo%ly!RuzNJX7&SB2DK)gAG~z^`D?>j-s^Gq2&{*Q9ToA}CpKT=4VFCbl{J=}Dv9+AlZd35n6PuqBd+39 zFTh#^AXoke9&$Ij)La6kWYYp9s#H6%#>VGVcc4c5@=%y?s}{9;@O!#TT81t}2Od!| zoI4%!&_TM?^>`4{%0phqmJGa({$5oEgcxXA#_Zl2&06=k#d`UyIBX{)1HKmt7O8h;yz`%aZ~A2X3WS($%_B+fCPRNjXMw_%(=I zO^x&X9Ljv=R~n^1|>C%MdPxjk4F}X-XfcF7K-G(dgy|e>z?h3IcF&e(>8pVCqKscC%&SH1d zLug4=G_^l7o;|LEm_GxU-);qE8^=DRQ%09UA=DuHE-xWQidZGKV~i(u=7fIYW1BY1 z+Ep{9OnU&wK3;57SoN{D^Y-(`qkA$70pBghLn4ThHP zw{Mqycz<4ujxC#{sED*f*qiNY9_$bHTodoPN*OaC0oQL@Kz}v-^ll_{!j(bw%fS3N z3;Bb%_$8QL(i&mj^=b0)MV zwfAw0>e`>j=}^AJB75w|?)Bb+ypaLqjcoHn^TcY=e14eBN*DFfA!HJ6B#xhz$GzGA z;_~+J2A^Dj;bq02LC>c3Jj`g%M;8cM?4BpN>Di^$$`8;KA*1Z+cbep&v^l&Rn9YR^ zI&__&K+XlGQ8gUP%3E!`*f^zs`G-CZzbgzk1yH}0zj0>S&%n4F@jrj(C?1CZ*nso1am~idmUBRi##C*ZDwW6~zUW zl_^gn`L03zfXc}v;M~kO?)T4ucmOV)W`JZsYL@4Mk0s|s@~O$6gPSPiS#Eyqyj{;; zoqD=ets81||CWhX8=hhb%E>`p{N!Gw=ZL`9E=e!zSPbERtOk}GizvDT@O%?MUTh$w z3?5LkfRM3Oa=<-ND<~7DZc+~wf}wJl3oXO2{ILnucZA~+BY4TTv1_H%m@7X#@C4J0 zuC?-Gd0$p71Pkn`>|>8b+}`_iiwR)F1)!!8d*7gO)>`L_jpVDi^$FRUm@i{OAPI&# zuk@(?A=GzP)V{b8P0f%*sZEBg$Je^o8|wvP68JmIy`M>Xc7t((9*YSreKBDmAGE#p zd(FY_F~)TIN74o~T4n_WLbL-67&s?1y!GS}tpd}}U`DL~vm9-`U_Ew@#CESj!59*a zzU9^U@6ccE%~=o+!6?Lg;88EE8$o`|!?D{Q6XHBLCdF%&+jL=E?lA(&Fdt7OQy_HN z2Yc*32#?rPE134H=|(P)@Cof}O9Pu2L+14LXWF(d?ZQ~ll>K}Xilr-Qly7E?sv1-V z3~N>iCRU0R3dQ`*Pr46UL){xjmLG=YadgI(QFpuA-J8bZKO!8kJ%UgbOCfZXK~;M> zaklwQmmfg3c95z`eJ$38n!+nL>Q~izjF>ue6f1CkMGyxCLpN-F^idzP1jun@2T!BXgp{|t$n~7RNbTiX5MMZd6PBT zT4nJ>ju#`L8S$NY_@HcgTFEYwz&LcgA}`jL4dWgBb22IhB{3T)`1E?Y)0jyHn^sIV zZ_EVcsb9C4zIzM%SnVwWX`2Dv_6nQ!_n;=Rc9`TWzDeJRaLgc`aq|r>yOF15f^Cl( z`!9Z?4)P5U91Gw(wiZI-CPdShvnt94o%D5&@Fp@7XS7D$@hL`@wl&t@C2<5w{Q>)8Jr2LxZf=x23mYoaE^l;f<-&Sq5*=3_n z9uBWw0PSo!_@)WD`qZot z>+Ji!IEH=cj5NreR<{*5x4=+)3!FhdXCpB7rl@3Pz2p<@_hySOBvn)v@k8B?Qe*V@ z=`VZ@YqnPN4z9!@d2A53AQsssp*|y8yAx!>Q&k|6*LlkGX#U6^Q}1j&Y*+v-|AE3x zvuMWNmCOGsoyZo&{bH_ZfC~Rm&jy2exrSXI8?U|f{+WqnRjIES)$&ZGZXA){)xeFv zhIa+UEo!kVX2@KGRTsH$$J#7~vm1klT$n-Ombve`CJA?L;!QCAXWX(|#?$gAoRG7r z{_AY?!`ffdv9c+$rAycSPFTbZFqt1J3q)F7sY%{J-C_Od5MM#^_#Q-654Yz##uz{L z1~nKmeUwkj9aJ|2u$Qos=v*kIz5Ib)ON7@zhgpq|Rq>~cji=$YVBPETiw7>W_C1NM zCl4=N-y6@{v2wcjYdsi5SnmLuzT3m1JgDszi1OvQoXyl4d)>(Ss9|+iiJO@0dancX z6{|aQiU+i-8n?(6%xnSejf{pFOPmp0Xqv1O?=xEFBoEO}<Bcgzn2Gr)rz5!_!SVIT zws-pVNi2-joy;S^^+O1cje0U28Qxy-%TA5-Zp}l-j7v?@!@WEjZX%Yh zECy0i*q&0hhXVWecvaku%1TE5^pFLsyPGHhLk9+)lqXi3G7*K$grM?*XD_x>@B;XS5uEZU_+Ay%rj3-jJ6M1{uL;lP2Ekl3p}W)c(p~g z+hQ458QAF0eCT**S(}rvS~iRu{!E;7B&4GEQFPE$RST$tw|s<3|JVClH$qhJ=GP0# z+F_uoS#oKDP-zX*#Bjrj{tY#e7!mAT1B<)iwWO}TOe4-%J3Y(PT7Cj;*>d`^2zlg{ zm{$w-7oaTgI5@@$$ehjkdzE^S>)%%Ly_ov-Yg1^ zn~#hIN{@GXHpHxg|K-_YrZdFjl-B)lyf;U={j&T^^`jwkoHAzlx0aTP}ZI2D8S-z|qcabeP zanS{$3R*ES^bsXx9Fn43zbPi6hL<7FcJR9zkOF3r7&nWRf4m!GO!7rt-sZG z6D@8X?}yT+l!kXT_L8I0o92cLZTm!d^8JSWln-hq+IE6pNS@0T$X9Om2zzY%$O^eg zqyRaDiyQo4yu&(Uc3SJ_ZqJQx$QU>)0QK6+N_V2F(G8c-90h3&SKV#}#&qwO%TGrI z@Fg|Lo9c-S>CsM$=$f1Htq=X$k_3p!@}>1XaKYe>A~=Qy=l!a0drV*EsoTIDy)7Ko z{|8MY6uwwnDz`EGINkZ{wWuW7%w+|K>%mv+`D7B`lzFG4YSHpDET~BxsO=-@`j8OC zTvk!DA$PskhZKS=kZRk1#~HC1&_DE_1wJV*pQS?TQ2o_){~c9PC15I`%3;=bjW|sY z;VPMmGs%Z7dg+n+Vypf*t~!KP=_nzut|R$H^r?^j!}xQ_A^2++b{r3R-q{77HzF{W zg~V}cXi#w^w)Ay{8Mu+s4%w@<5nhc@71{=P>~WC9q4&l#S0+38EH>VZ&ZXg@vdrz! zY~l;N==inRbJ}hB(`6xwsgzU<%OK$@<$*xX@J^N8gJdwx!QU zn~$0T^XUV{fVn$LwQU7&W=!1|cP7lR9rfbrn95XsWNi^Ym>-x9bxdqc%68%6F4fSn z2?)TyR`|sddFs;v@hvfMh%Lh@v!mJQlT`Os+3GWd&0w6edoVmYZ3X1la}aaaBU)=+ zqwb3-Ge3u8?n1tc(fLsV>Tc;N0-wxaz^|H~Yr8U~B;xB;6SawcvmLiY7DM*;8MwJD zkX}xu9p3KVP%m6|gnW56#A;uVWXkP`LqFe`ojl=GBOG=~*W6__)UAh~+_P+4=W|C7 z>gqkP+^p%b4_$dFztfIYiT~ERCo1^!yV6L@OzlR0V}v35wLNpHy`|xv!cCb1(I8F{ zi5bfshXUbrd{US)_yrq0t0f2hSgjyW9SL=OV?zq7B#uYRy5Aa=FZVBXz3+>LipN`Y zFZW+OHj$8};XM_DXgG?9{XXA^OQvNh^YO0`x&2wm@Tk4}Jhj~f2%GxAXu#aJbezk? z_kpm8`rv-m28)ip;Kes(p=2askD>5@C_lI|h!(wRkk|BjRr}1zk|(DO>#yx5-xYd? zcMpuKfowEpSX5zG0?J5i`0n?+<4X`Kkqfp4C98P7`V*mqY%}qx2%mmS0Kp+A+0&9rPJ@u=bfEQAB4=sZ3G5g ztZO8(Dws#a7^;GeWzSQS8kwM(bY)N_H3V`!6M6u7u1+ufin-I7y;_Hpr5|%8%wU`DBXpAWZCg*K2A*J7440ah^At*!I?MjQ5HiRGM(v(~2qL!=jJ6 zC$d9+2o3omdB#PVbl(W4E)x*3LSpih1$@RO(JicDe$^`5HOJHOd3MXifw9o< zknEw_W$qV`9n{m*mbHV>jx8%G<*<@we}UY~UAnMThm zozDwQQf6xM>Wh1&XJ$rA2l;rYqsZ8OyfUIVA;J6}^L%*(R`oGj7KDQe+XR_x&Im~~ zjh<5g9dq_gRf!pgB4PGdaS}Z<@Mu#3NM$0SgsG+YV?@;vpDnf*NiT%bDy5|@fm!pkr>!BOwu2PB1MFKKqB)neFSOp z`g}m4kNeM|nD5$_^zB&eGZR*WV!;K{J7{t*0nBZ2?!1Nq3(jt5jO-DTAtaCEseYM6 zDWA~~zUmq;RV`hhU?qrwRm?=Bzq))gcS;NCP{vNHWk0xSZp1u=MgK7ColUqAlU%if z;0);xoQMWtqX6VYPJ*yS>tG3*lby(Gdo3Rl3&|w$MuB3r5o4iJO+#CmcL6dTXEY_7 z`lw-pumw%xER;80p**LjJ!mpmS&r?$7Ek`6V3TdE;oW>CHh0`v50t5Ujzu^LEH7{r zt)8ASH(?d!5`8Om2Fff|Xd%r?fQ)eNXMcjzsD{nW-LC@NJZlXV*SH;)?!>4aab0mjtu61XV>JTH0h~j zgjGvAS@`tvCcj&xeK6D)6T9Z4pCS=~tB^(;Tu??@PW?*pJBWtHY6~Z=YTiO!QJ={` zsHP3IPE_b2KtZfQ1GQP6+}|@#yT&jzOT}A_>?H4O>YG0mYF8keJu+fSzO7zW<{gZ@ z=c=$Ax`>xA6{9+3`7OjbUk^Bk+fb314eH3GK@%r?OzHHRka*mOXdG#0pk9&l0r2x{ zpp*I^q}LYxt-jBMN?b5m)i1`=vU1$rQ$m+zil9Po^21r?*3TGON;fpCUV3Xf?GtV~ z3;UQK$v@4~_n-FGNn-5AbFy0dVlL^~B4&b3FS)Ye*P6IvP2_D>8=0gJK_GMvOkF)V z7&|)#{VZSnDX$;Rmdg`d*+TG4fFh~t3AaEg92#@n%+)grpreO=GxH{iF$EXJ^E$a> zjaxLR=#NAcc+VISTSZLpfx=MqsRDi+cXG=|+3R&;N4JP#6r-W)H903vM}vk8`LK)W z1rgXXf6~p2$~CBdwOr`Xmbu{3INkGBR`9DXiy7YH2S2&7Z2u*ap(4xw`}y8pSBJKQ zl1)$U)RuFjCl5Vt&iosNO_|Ih;|PsRW!_G^|JxGM05?xFLD$F*&1>n%)Ap`JVcB@J zBl_I3sKtzwu-S!Oi6j?o0j7oQ=p96JzxqTc^wSHXmg^}`+I(j!4si&-^c{+YyU4bg z8%Ra6bys@;+#42x5{H)gbevhWi-ES}ATgzk{C83=!q=MJ1OUvG*_V{dNU!1A?DA8K}?7U36 zw;)mh8N6}n9jz7^{8@==r(4mwZDz=vP&*;twHTT`VZ2fuby6o# zc`Ll^tTY%*9tlvWfhr>Z*`=MhmekUbe#kEO3+*^TJs%8dF_A%&3jWnO_@7{GH>e>8 ztQO7KEqaP<{seXYwE79pkGBt+K0Doig#NBi9(+R{uebE5qqCW5B3IN!JTs)Rqzh3P zeiQ*!UB@f5ZV$#4fARRcPiy+y%FSNBAKK0QlKWI7Fzp`$`LpnTDERgzi(<5{Dved^ zwwACci|Nnrav3t}a0*y3C8XQewtK|pK#jDRx)^pfiKc#?VR;4}i)+DMH{dax@)UXv zU$&Uxu`?-E8rn7jimU4Od!OLxPL;=yWSF5bCk;W1rzsR2WdwW30M5oq2Izje=<|L262`v6(A=J2_HDsy-R9?QYI9yeTQ>0?_Nq^AxS}Dp~ zAf$}{Ay!Dmy>XZOT3)LKV$L97&Z=u}-Q$CJQBnNUjycg)G+ctaW|5nZ)q|sVYDn8A zj%f;leV~x|Do|{6g^LNTH@%>R_>>OnpBjjhtpAl%ECx@VaYgF(T74x-fkLkQWPii= z8h6XyJu0F<3-6+c`YzOPE2kY+!`yVu+ zCZdN|iNot|ozblz$5a8ck5})hTWEbS$M#|Ae(_EsdV9+>-`(y>s)mLf918ghj;hA` zPj|&gWqapakRJ{X&boCF_+4{dNqY7UP{WjLi{O2H`$F4#imr_V^z#YK*Bjiz(9b2n z91fVLzq}QNO+*yB^fyKq3s^wCzLf((b8Ldik*mnXI26`5Q^qZ3BF&g`uuy?x&l&{=VZ+Td}fbrPY8*C)IY zniJd4_YSZkwUC0~o0zt}QMnqT10WTcLOc$60k;c33(h-merv zsRpos?55{;UDp5BiKZscRKrOAv2o&y3yFY~%6w18h5!trRxf%~3M`CQq-vBZPCY+a zbIk~B*z>E!5#!ac(wRBl4N8UKnr|3+z{}1XHwujtmW1Xbv0rr%Cxz&)S0N%0jze9FlORlgMN zKxVTg?_jIbhJu5m7i0G`?>H!9 zNt;bx;%JobdhZ~Ywq0AB+p@gd+3ED6VZ30!Lr`am=@21A-Byv}?x169OA$W0KmvVC zOWH9TJ(d4%S!?(&b#3m79nBU+ji>G5b`Euqd>dSUAR0SSPr#e2zpcMCAe)-vdoUq{ zuqP`i@Gl3ucWiLLu_l3q{+p~l=domXsg&hNgKV;Bh7{Uw!uO-EJXbCj6xGT zf8t?4YZHzSCNf8(%nNg+b?pw?BrkV9Wv2ifT6l6p%-N9TGJse{V6?xDqBplHyn> zR#yyTJ(*(}`aX^kqVVD+4s_bIxn8I5X;~){;iD|gCLAM!zF#%12%R^1sR`cui(rLk z3qx~dyj34@A((hvKBPS@R506@GDgsUBwl2qbl&XB%MS+ zE&V%=qRn?xD+YPBKq@rvjYDerljG*?L!GgqgeLo_M;cbtP(+>5@ud?ydQ8H>m(=e$ z!~Xv9fGRQ*vK-0yU0FFas^%+tHFsuYxa@euM$^$gOSw>IEd#wAAJ_Ih^L^|nONVkB zYw50bzi(XSyhhhID$$Igrn{V=V?vt=rsY7R(-?_^uT2g`=X^(Nntw8(OU*9M|Bm~d z-^@cH&(`J6HZf*Ds|^hB({{rVPkiak3d5ETo=TY>cr?_A0 z%kNEetyz2{41Qe@WY89l{xs;H^Z#3v+V8%6`Nrb*{rP+tLXk~-96GxprwftYPhy4sCX-Gx2r(Eh9TRACU)C%)Dp#bLgG^2oALaugbW!L>@pC) z=0CF*^zODF$1J-6#+~bg`kFTy+fMW1W22>}E!lho_dI1gSuz{G_Iq?@gw*@bC`us8 z+%aJ@^>}pQX`b*B!fP`9kjZOrT=QjbN~rYATOB!!E!P}*BB47r8aXu~@3~@@=1Q27 zJh75QB?XkLjt8z?6{teQJ=EflDEgQ zmb$;=Fm=!1q`5F)Hn5=(_#7|ox#nf`%?l64vi$M=IiI5Jcd~TmAL>LEFtla#^=%F0 z(@J}BDZ-*_O!$rS1vV<5k;D|~HPTOvR~KA>La62D`IqOC=w(9FFgVc_4M61 z9a?ZxAYenox}PgM-${^?w<6=XiQAL~Wx1?~3G=CEX5isjlj|+PWe65B?)eh1h}LTv zrT$WLdPxc&+(+y3+=Vk+7gd2?>n&vw(WU#sWd{nVGbU#!YeCI6wpBbxFeRl zJNi4%Rog$$SRucSme+u5^YAmqyg0i5(A$K4gtKwNk*Bkze3ptVXF)`H&kda0hY7X> z@>ar)uOc%XP8_~HIC$rijq+t5zpe~0%GE`JHX@EN5MEK147ttOiPb* zo&sJ|7Jbx?3;LCzG&dxcEQw;85&$(7-RQh0szIgU3d^4GiK_303Wk;@_h*am$PGz6 z&_jO%u8WWAZo`qSwg+vawd1?yxO;Iy_LOTP-kXkT`L!qFz|}5+I`PHF)B+fkXho>d z4XU*rQAv9DfC+}%GBq1xE^Yj2P^6M@=4JuiRcp@A4s>E0Z^+BKJ{*K{cgpXYh4IdK zqBkQbMzSMeyl?yG=(ryD2~;`qQ?{9KXEm(AQ~nnp0ju`q*>T(Jjk!#QQ3z51VLxZ2 zz2N&~eZp@J%}M9fhV#rxPXhc9UW#jfI1F-%*mhV3pVCX{w$B4%(gp3mMSJQA?#ThJ ztBD28D@G8Edq~Y>UfiSp?gz(h3tCV{INi9b_HrZm`#rqs;zRAD45vs}htkUgM#}C$ zb$&W%if(HtF~y8|ry6f83==05PtwL!L~b)CGllLxsZR#yH14>dX)W26eRSM=%yFYs z7AJ4A;3tJD>@;R~kp|BW{&@}R_V+p9&7?0FVNk*jg+LOQr{ss`>&^?({gswr3*jgu z;zVZ(&~#)*cg^SS&N0}Vo+{kcbL9WK7bgTxx&=_Ee|OWSumSIk;L-jIw|6c8KIOHm z4wAjle)Grrlh^wqC0=IL1`xeYqcVdBSJfMTX;5^1wk|bFnCs&-8QvJ4UEZB|hg$}6 z58l(@>OCOJJT1TB7jzy(ozXqgc8KR6QV~z7D^l>L6SrshH+Vs-7|2@K|D&$63COMS zoENyTwH@-QRmy~7f!MOLJ<2i!<<-ef0?S{D zsFh4)+~?kjzGvSKg4e zDsG-(QK_1ZGmF2PW)vzDH6ni**o!!m{@zT%pZc7-)Kfw0Z}F=R!qKES$d5cXxSi&KD%B_t!ZxQF3(aV5e*|ISM@4r;xQNnR={~)x$LrJOb8vxM%c_&{-z*+?6K~ z7(VYba(O}|_>9d$-d2io=OaNgjIxcvwQ}ht3hRgsJiJEZE9@V$uIhjt*?_2Bxdd7^ zGPE<}aoYe{Hu-d@T?t7xFD62>_1~;N&f-j>>8SSctHeVn{@CUIe|8 z_mK6Jm5{9}mKDUIXr8DXn4;=!<#|nOMY)3aT|-MTi@WSnM?TDAK7Z0RfBS;G>Akal z-9Ht`z{+@{09(Dic*@a#GuL9WSU`_cUeK$=s&~w6&QS&x7^2dfqG78Nby~))?JlzQ z>eeO5Ev+iB4&^i0in@X0LjMq2S*_TAX(Md4C4{y?DPl0L71rAV{ObniHEtm8_-a@#>bo&oW6dLKM659GlCa$T(-^J!!@|%#0)#-VZ_0}+xMc>y=YGm;NPMi z^^8P71{xFMdiH_@v52@w0e?7Yu=T6E!8Rd;R&VaC2X6#)?CU?JB=5NTMBFW1&f964 z=oE1(=g5`xEDkKb4viW+n2m3VjbJ0&6y#yPrs~?2VNFOPA$ zAMWCoz92L>U`Y6BB^jKoa9_i`{}8$Su`ZhNC`{9-ABf*E=^7#Q=o}TC;GGgdA7`>n zXicnmfuPN&&N23nfai>Ubo9IX&!NF7Rr%MeX6HM`>~p-Fzs-j{Z>bKTp5G;KevO7; z^fr9N`L*qaBu!w0zcGXh{wNy|CcmEjC zrf?7i%?PY=1|>?jSJ=@kSCi=yN7e5+I$`JNLPE(jQ+|>CL2zD6{V7pqHAOgWIPss# z;K;2C#j_-p(8t+)Ku}OOd_N3PMYLYiTF`*sSyNYcJVbEGDX47Xcm?Z$y7#{90Wg;^ zRm1{dmGJfS$>-x&fK}>v{bYe=srp@33eH71PhTO0#9HbqLKQ>-w6pFp2_dTJ7|22D zp5pDdvWRa+a>KauZaOY#OcA)a;vz1`ZHFx8@|4a=87}N$cfE{?Wmg5Q6y;>#Tqyky z{?7ArRE+nGpqkKIsWxOUYR>3$YZtD=X#cne#k?LS-DRZvmVYOcDI^qJ8)Y>+;LiF* zb?;$uq8Y|4bA!+i4Di?8;>`==8bf)YK5pv#O!Jp@+!D$Y!yjk0kmupW+1m>0KUzm( z{#Cx#IK9y!2AZfVs57d6bSgUO+rVxlvX|QDIGDpgqIA_<7Kz{ch} zy?Tox;)9XV#w#NUd(%oGk@K=I`SkKs?xOt$h8h9B04=;T_5gWk(#1x=h_`JVG30Q8 zCZ)-!vHg-aKJ1`pHs!Y8$@;cgUF@uxUDHdB9D98Q8OnamE<6HK3)HUU<23Q2DJInT z0TDp6GsiuJvI5IZ_Wyj)KU=n5+H(cv&m5K>Cj}(_clH1F0&EpWA<0(P0+l@r%k2~$ zGWPdUkC6Vzg?{TjMC%ep2GwNk;8jK_uPIcLUfVYx9PrKP3MkKa@Hyn#FD-A8IrX>c zzJhKdN%h7@n#1a&&PHcGbzy{JV*+_4mpiR-&_D<$t>(bKp?*JYDyb)ej45q@Aroa6*P?I4`Fl_K4i!PwYEzD=XI2<_4R%l6}+D2r?(s1zN%w1^Cq$gywqgDQ+lRp{iqE?upV*D_5n&MMx@sz&T2j<@ycV6qxs_sSaU>J{{iY()O$T)c6 z_h-TfBUd)gWX%S_DbQLlZ=e(LHa6l4Iy@_d_=Y=5n6gK0cJ}_UBi%Sr&ol;y+ zl-1UJoq}wR{fmEA+HTI1;#&i?p@A&zTcS0fdGz5~>av6>LPye~Xv$;d3j^Z2CIowC zuBL=%#0U-p>y^41aLbx#fS&HKV`E}oBCv@+Cka2LGm=vq>0YrNm!-Y2W~=#VTi_v~ zvlmo1LpkGK$E+nsORc$x)`IpE(|{kMzkDYpJr`x!wk(aJK}-1id}@UE7y^Cz`3eR} zCoXV2@@Ut9@NQ>hP;>JKuKnhzCxtG&c{yykWIb^cbU&H3b_&b#;XId@eN7aE53i|Q z&Hv91lN7xa5Stth# zmTk1&{J_L|EQFR7^j>U8tzh>tTkgZ#Fb>eiIeMa(8Nq@+(k(k`G8@!Z5CyXFqy$JZ zh(CI?prh&1eH_L7M<#DDP8&c(Y8~B_Fo4t&wjP-QR)2|Z3SZA6$wEPz|F>g8ihq|S zods2MqSlMM3p`umOMv6FD?X>cic~1e`>wCF5e1^W#2l0MGCd4o)b)#3DltYKiLqx^(CWhWhlt-M+C`FN(_-Ebh`!1}Z$ESC z@YvIGYj0)c?$%c@g(13zw?WBmAH}R=ZKfU-jinJow?`#E>;5{t{x>S}>7&=G|)?^L7?w9@i>r+iOGc052{N0%H z@808PbZp7~K&-L@7sCXdVZxn5nj14!2<)(mVBypD?;oxNO2~@=FbMu3*2-sH!d%(v ztN%y2U+pevCRi1yl((Y-M0j%_iZ36T-KE&vSX;PKx;uMX9ik)Net^;PVG_rmP9h8# zfGy-@HW^OMkxi%c+!cpt0yhBU-{0suC|Ty^xF<_3uhPK)=lA)42LQN{afE@Y+bApS zsF^RQxFas73P;-?lA@>Nm&vT3Y3K$*o@ovltCfVD*U|s5^_UrE*AFD#A@oG!3;kclQQ;D?K;c4i2lj)Q?1*@&Y)NCEWHNGzm!3 zy!e_ixO{2R;h*ncOqHLXta}&?j;1TE4CLi$JoNsUzG>%G499l!W@H5z%teAYmft%w zL+Wr1moyD|lIJL{!*W#D5h`P1&iU;(Lx&@8D|IO8{Um?vFbx#W)*cRoZO z5TlDJDW8{jPv&HZfxk{<{K3!LEW1d~*NYi=;wZ}h&&J>HF1$YZU^ZRHQ>J>~0=d3;{nsxWZK8`i$*h+^gRTA8lGLedrz4;*4l6?GRtRG;t2 z+Eg(dYaO>D7ks{LEP5cN6%xzWDk&19BV=p8H<4wnb7+5RL9;cuUbxES(u#4|&u#N6 z%p*Cmjc-G#%VV+-5aw8^@c0o-&(~^l;l-jn{7`63JB;eOsHi^h)IQK?Co0MVru-b# zlGR1a3femSw2QA)N^jIVVA;sHSfVvX&|Xb zB*4_`_dfwfv04c_ef39SYPQu?wMyVvQI}CuQADC>zw;r+ls#^+hSd68T(G8+2}r-q zAbf|*xIPrrB}AP2Y#p~%*kiU%sBtM%Kb1Q^l+c24>)-#)5y28S=ar=#H;3iRnu~E~ z)5cqQo3aUdPwRmthp9`F%l+PE5bGpnN`)wTf5O7@OY_32UW1h5_i)4YDkhFB%S1Ut zh+gz^9VX+(l%?0eE(u;Kt@BpU0L(k*gAaBXcH4vgBGV~O*hBjRrIlNAE`NTjuX*Y3 z>_vYKQbaUiBuor8ak5ls)Qmrx$D5@Dk*6RY=;@?rXx*MdFdvjCmwHRIBKAH^2vZhhi!(|on#1IQR8Gi1^ z%{7>j1sybLqt9R}a&CWgzwTgydSz}>3*k_YbfQ3IlS5O)ETt%#k1)`3NK65JRk#5~|r`5*I12^@R>@Z3QkTpKdq$ zJ!3DZVjGZwI`+q7Dr@#dt+HR|ly1uidgF8fT7^;}xVzs0J4y_eaqkEiA#QanTboLjpTcYveWRJm zL+l!BUwjoTQ#zE(%*JklQmBO-;45s!6k~lDxV#Zak;5bemWp$Mis&XUb+2H!gV}6% z5;^K8eVjqy+O>^%Dyv&MQxfy!m+pX^v{=Pyz}z@Fvb2xFe_4EMJKUL!J`EpIQT5EZ zclaBx5?T;8Qv70MwScnK;Qu9;hb_UAij4BQyM8QXl|fu=h1)qsY94PQbA1C zfQl@vA>&aFthaqqbUZHAqGb7Bj78vYB?}-v9VA7|1kNh5gk{;PIW_JroQ+cnsg)HM zOBC73lb893TGem=dB0o8=~f_<>hI5fBrAb=M>?)#oO-DqrA`|Ha*m_q-`#I_r(v3R zcHV$;_5%1U#0z>b!Lq!TPq*8g;Yg%%$>M%U49#*4kPW#9UOf`@loV@Kr+XyUKxh~E?1HnV2z>(Y>%D&e9@O}ss&N1j{P761>4qs*ExGcGy% zqWGhcn8-xTvB@BjYC|Tf4d*qHAakE1n9sh|T2P--mU|rq%1!tgy`0=nLx&?*bT&V@ z(<2%uclx6q9PSreJr$;7o}E{9vg!XJ26GX==kv5?S-VjQ0f3wDsL6qRo9)CiyTUCj zU*o|l|IUhWQ*3{>jKk9vuev>#d*S)R@03yuxSTdYEAfjFQ0m^i3g*##a;EeQH7(C8 zbpkqPwf+VWw~z4HdT;B#4r}yO#tu~40B9NzK?FQ3Pa`B2GJvW9ZP(@cPQH?*x45)d zbDiddRPLXLhm3CGmC5s|9RgdHX2;1TN3}&&;L}4d9#I#HM3bRk2S{5-nYR_D*WCMS zWG480MG%QMzBV~cH04fnJC`>PZ_j#Up9V8N;-I;*`a%(yRuPe9Cz$Q0tO9af8fEse zUMY=~-iNYX*$GiAk!sw8&+mjGct2H?do9&gP%*JaT-p)LSBN?7JMWHBghV@DT{;*Uo@(`*!n> z!SfL*WN_m3>Wl*Ceejy3W&*F&w$j+bR7ta zO!#StsR*Okz?qw$V-_HBOlb`yrOEh8?;G>|yUW*~+pA(N%vWo6?M9Im-Lp(GVaz7# zD%k6BS`mVpiGtDP>@JjB?>aW0J<@0qj`v)ffIM>MxV^JsxY#5}PfMcMLB!%IlBZqs zV@8l_2CgE|u6b6#a=tko4E_lznSzF3M)Ue`$HR7^Ffi-F;8Bjz1Vba7)nP^5{T0b= zE9GkS>xY${P!s!^{}|#_gjDTm&TrI>?mhNEnOU;dpuoGS8rJ#=z(xDgiy7EXv01v( z+jwp7Xp2jOCdixYU>R0j{1lE)x3p;w5{IxXz4Em~V8kZ8m!bUm<4>wFMw!#%QH?4> zCivJ0rrE)BE+PxX&0Z@{_MTaMZHx8e5}8uxJ#8VHCB4x>se44%U6Yxw^G*7SrsaUt zTa()5m{}JS4A$prbkI zQ12=ntuEk0poO4CWTqK%+Jqk9-858BOz&-3l|a?XGGD)Nofv$Bdd$Hy(PARQQfnM$ z#t5^*SI~0YddjBxsQ#ExCu*`-2Q*rNb6|^1g;VpM_bUyIBMk*>e_S3U%A6A*H9?RJ zuw=7oHgYLeqU{dg6UG*rdV?MK6q32{F#V&>rhWJpWTO^burb1tW`Sc&{U6J^(XGq>DNnL46 z(}Q4{qtON=BP^o0BM9tGnRN7x>`M!&NncDei&I%Nd-sP$NBac9ox45jUdgxPep;=F zaxiImt!u-XA`_3TRxa=kr^#I{=+5e6@<>?x0If4kH)y_pje1)yP;X1mgW3=~TxyXi zqY{o7hM(6CIlY3hqlXy?kAB9a`qVTODih?+DxSegaoWHymEQb0+*LdjcvTWrcAgDF z|FJ3x|H*_mSgIjJ%PD0Cznlq+U`cN9qFl9fzk0Wx1oBC~Xs9$ePS(@lOA;48d~}LS ze-BwOvT4*=zsld3mh>L-=&qqxuze-|xqDvyqlDc!cCUHgWkIuV&S}~*WN7V66?|+M zgB2J*#(WC_zo1z%JqH{2oGIIG@L1C*yT5hVP+TjLe!oeBJKU0zJ3<*=o!1`UYVf>j zvjA==H}!@Jq|HDCMVzr)a!}} zNuxc22|QyoOw7#A}WG~G+EP7z3X?{!fH z3(0Xt&E0Djg;x0&!MT3F1kN?`{eaU5nosL0a;!Gr;ubxTlnL`LnBeqZ8L%j7dS30R z3 zD;Y*tWB3AA%wYKwHM;VljMU{WfaRWdOgY8jyndK$;ytiossh99GimnRg(;4v)wAU; z5xk;U!yFwUXHkm;sL_|#=>^#ief(vI2S*x%r`FSe#9)GeC_~*f$19g z`XRB2d_olOcne8-C)2D}kYr8rU=YK%*4Sn)Zbpn18(Cj#^$EB@mVm;BGU>2RSIgx_ zCq;JvTHR5<0y^gSH>M%8#dXc5St5*Wq@+d?42qz-3&Eb-A;HnKq%peK!qSCaq)KM! zqD=_seLc^pPuMPImf)PNZVTa_QL&+~;a$gi98UWRoOjD=l`F0LVthM9O{1{GL&>Xv zJVE|VcVSgrAo?qC6;a?ScUTOZ=@xibIBu25*N1aPxSDm)=**;55YCQ3Cv?}UV$1T; z;2uFLRorgP3EdZ|y>E6r_Li;Kxcy!IO@nO9)h&S9Gi!NP|YQR{^i5qF;;`)CxcR^k4JQhR3Qr zq6CY;b@CVLU|Om%+dk(~vG>niq^cvTic}+i3m@hjdfMsd+Mb8j^!E}M0`HUxX;Uhw z<0{sS+fzUm%uL96%Zm@27d&$@DpvpMp5=Y@Q#=#S9KHaj)HM@_zrE0`i6ddJh?P_- zt&uvPp>t(Zw7Z%*)~-{%) zk5BKeqhdktMYmOdEf8}MaZr8$__XD+wHPh#T*)kp&z2=>r*c1)327J+qf1a?T^YjZ z@Fop zton{Tuz1j%;(XK4NjKu!{OIQV#fAp}XV2-s3yJGJB!sbMoeq6|s3Dp!wb5~Z9!^_2 zoFjJ`Irtf(@6*1ZuSBLIekm2CMt}##6+NMUjNd4S7&6Yq`{Ineu(%FO^T%in(ZL3a zp!=(*&8G%ujI=u<*by&nnlIk_IT!fY-ViQiM~DD<%+*sUr819no1=DLhH+TrIMnJ} zEJ-2L_Vg?D7CP;jv`GVn*As4#yl6P>%BZ-7L;a01s{cQt?vAx}V=ekCQDeNgv_E`G zpfl(5uKwC>Hw8_X5ge~7;pxT7IuQaeWU(1HvrtJ;Tg2Aoqfe$S8O-P&l4e|D&9ybnYBrnSlN zlQPj_mb;ccLe6eY@taDC=T#$(O30NNFDj#3IkAL*l|xeod7m&A`W|_uwftdONjyp^ zVol`=3kXEPFTiPYi_AdC%`aAkI6b6LlkxU(!rC?C&UEy17fgX$ zB66VWx!uo>KV%>Dn$8`&?zeV(JX+EF6~GHs6Ll8SrI=A%oLsF-4lRh5F$(5l;+=@* zEMVyHVeTm8fui<8(yoi#l7G}zi*oXn_6~61RQSAePOvuQ^@~ccT6j@w*6G*Fp7DIu zpcCL)hljaP*PX%^TjmyCvy#H|5J5?qU6n`k0VU;^Pnt`5trvjPwCv({x%?f#XV>Sa$oH=!YRecghFv)ZxmlF%Wi zdL{{#NU~46*ATy^aLF$?9>GTYnL_E!?LV4vU#g`9VMh4CBD~;l7!TFr&w*Y zR-?Po^n!@#ab!)L@`p!CWk%jk9ZKWNRhGIxho55WqN_V*V)r*bIJquTek1E|>N1zc zZvH%G7QGPlLO+6!YWSp2nVKL|+V^)<4gC(|Nq#em8kL@f`Wl_^iSD?9#}2|E>HRX` z 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 spL?)j=uFV(9%$~e{0-JU>RR literal 0 HcmV?d00001 diff --git a/docs/index.md b/docs/index.md index 3c67fcf..fa051e5 100644 --- a/docs/index.md +++ b/docs/index.md @@ -2,6 +2,11 @@

+

+ + Artefact Logo + +

Deploy Vertex Pipelines within minutes

This tool is a wrapper around kfp and google-cloud-aiplatform that allows you to check, compile, upload, run and schedule Vertex Pipelines in a standardized manner. @@ -27,4 +32,21 @@ You can contact code owners or **[submit a new issue](https://github.com/artefactory/vertex-pipelines-deployer/issues/new/choose)** if you want to help. +## Why this tool? + --8<-- "README.md:why" + + +## Installation + +--8<-- "README.md:installation" + + +## Basic Usage + +Please refer to the [Basic Usage](usage.md) page for more information. + + +## License + +This project is licensed under the terms of the Apache 2.0. diff --git a/docs/install.md b/docs/install.md deleted file mode 100644 index 6d2972d..0000000 --- a/docs/install.md +++ /dev/null @@ -1,13 +0,0 @@ -??? abstract "TL;DR" - Install using pip: - ```bash - pip install --extra-index-url https://europe-west1-python.pkg.dev/data-sandbox-fr/artefactory/simple vertex-deployer - ``` - - In your requirements: - ```txt - --extra-index-url https://europe-west1-python.pkg.dev/data-sandbox-fr/artefactory/simple - vertex-deployer==0.3.1 - ``` - ---8<-- "README.md:installation" diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css new file mode 100644 index 0000000..a8ff135 --- /dev/null +++ b/docs/stylesheets/extra.css @@ -0,0 +1,4 @@ +:root { + --md-primary-fg-color: #111146; + --md-accent-fg-color: #e61f68; +} diff --git a/mkdocs.yml b/mkdocs.yml index 703c51a..30e0ed8 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -4,20 +4,22 @@ repo_url: https://github.com/artefactory/vertex-pipelines-deployer theme: name: material + logo: assets/Artefact-AI-is-about-People-logo-1200x424.png + favicon: assets/artefact-favicon.png palette: - media: '(prefers-color-scheme: light)' scheme: default - primary: teal - accent: amber + primary: custom + accent: pink toggle: - icon: material/lightbulb + icon: material/weather-night name: Switch to dark mode - media: '(prefers-color-scheme: dark)' scheme: slate - primary: teal - accent: amber + primary: cyan + accent: pink toggle: - icon: material/lightbulb-outline + icon: material/weather-sunny name: Switch to light mode features: - search.suggest @@ -29,12 +31,19 @@ theme: plugins: - search - - techdocs-core + +markdown_extensions: + - admonition + - pymdownx.details + - pymdownx.snippets + - pymdownx.superfences + +extra_css: + - stylesheets/extra.css nav: - - Get Started: - - Welcome: index.md - - Installation: install.md + - Vertex Deployer: + - Get Started: index.md - Prerequisites & Setup: setup.md - Folder Structure: folder_structure.md - Basic Usage: usage.md diff --git a/pyproject.toml b/pyproject.toml index 78a3428..09c0ee8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,10 +40,9 @@ ruff = "^0.3" pytest-cov = "^4.1" codespell = "^2.2" - [tool.poetry.group.docs.dependencies] mkdocs = "^1.5" -mkdocs-techdocs-core = "^1.2" +mkdocs-material = {extras = ["pygments"], version = "^9.5.17"} [tool.poetry.extras] profiling = ["pyinstrument"] From 4c6436c01b2612cbf3e39f621073d537d77f7cf4 Mon Sep 17 00:00:00 2001 From: Jules Bertrand <33326907+julesbertrand@users.noreply.github.com> Date: Wed, 10 Apr 2024 14:33:56 +0200 Subject: [PATCH 8/9] ci: check cli documentation is up to date (#178) --- .pre-commit-config.yaml | 6 ++++++ Makefile | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 8693742..e843276 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -45,3 +45,9 @@ repos: types: [markdown] language: system stages: [commit, push] + - id: check-cli-documentation-updated + name: check cli documentation updated + entry: poetry run typer deployer/cli.py utils docs --output docs/CLI_REFERENCE.md --name vertex-deployer + pass_filenames: false + language: system + stages: [push] diff --git a/Makefile b/Makefile index afa48a1..b51099c 100644 --- a/Makefile +++ b/Makefile @@ -46,7 +46,7 @@ update-requirements: .PHONY: format-code ## Format/lint all-files using pre-commit hooks (black, flake8, isort, ...) format-code: - @poetry run pre-commit run -a + @poetry run pre-commit run -a --hook-stage pre-push .PHONY: run-unit-tests From 34663c15ee41abf4e03e345164bd489194a38ca8 Mon Sep 17 00:00:00 2001 From: Jules Bertrand <33326907+julesbertrand@users.noreply.github.com> Date: Fri, 12 Apr 2024 12:02:20 +0200 Subject: [PATCH 9/9] fix: enable caching default behavior (#177) --- deployer/cli.py | 12 ++++++-- deployer/pipeline_deployer.py | 57 ++++++++++++++++++++++++++++++----- deployer/settings.py | 2 +- docs/CLI_REFERENCE.md | 2 +- 4 files changed, 60 insertions(+), 13 deletions(-) diff --git a/deployer/cli.py b/deployer/cli.py index b05df1a..76db8a0 100644 --- a/deployer/cli.py +++ b/deployer/cli.py @@ -203,11 +203,17 @@ def deploy( # noqa: C901 ), ] = None, enable_caching: Annotated[ - bool, + Optional[bool], typer.Option( - "--enable-caching", "-ec", help="Whether to enable caching when running the pipeline." + "--enable-caching / --no-cache", + "-ec / -nec", + help="Whether to turn on caching for the run." + "If this is not set, defaults to the compile time settings, which are True for all" + "tasks by default, while users may specify different caching options for individual" + "tasks. If this is set, the setting applies to all tasks in the pipeline." + "Overrides the compile time settings. Defaults to None.", ), - ] = False, + ] = None, experiment_name: Annotated[ Optional[str], typer.Option( diff --git a/deployer/pipeline_deployer.py b/deployer/pipeline_deployer.py index d32d343..6324971 100644 --- a/deployer/pipeline_deployer.py +++ b/deployer/pipeline_deployer.py @@ -110,10 +110,34 @@ def _check_experiment_name(self, experiment_name: Optional[str] = None) -> str: def _create_pipeline_job( self, template_path: str, - enable_caching: bool = False, + enable_caching: Optional[bool] = None, parameter_values: Optional[dict] = None, input_artifacts: Optional[dict] = None, ) -> aiplatform.PipelineJob: + """Create a pipeline job object + + Args: + template_path (str): The path of PipelineJob or PipelineSpec JSON or YAML file. If the + Artifact Registry host is provided, this is the path to the pipeline template in + the Artifact Registry. Otherwise, this is the path to the pipeline template in + the local package. + enable_caching (Optional[bool], optional): Whether to turn on caching for the run. + If this is not set, defaults to the compile time settings, which are True for all + tasks by default, while users may specify different caching options for individual + tasks. + If this is set, the setting applies to all tasks in the pipeline. + Overrides the compile time settings. Defaults to None. + parameter_values (Optional[dict], optional): The mapping from runtime parameter names + to its values that control the pipeline run. Defaults to None. + input_artifacts (Optional[dict], optional): The mapping from the runtime parameter + name for this artifact to its resource id. + For example: "vertex_model":"456". + Note: full resource name ("projects/123/locations/us-central1/metadataStores/default/artifacts/456") + cannot be used. Defaults to None. + + Returns: + aiplatform.PipelineJob: The pipeline job object + """ # noqa: E501 job = aiplatform.PipelineJob( display_name=self.pipeline_name, template_path=template_path, @@ -156,7 +180,7 @@ def upload_to_registry( def run( self, - enable_caching: bool = False, + enable_caching: Optional[bool] = None, parameter_values: Optional[dict] = None, input_artifacts: Optional[dict] = None, experiment_name: Optional[str] = None, @@ -170,16 +194,33 @@ def run( provided. Otherwise, use the pipeline file in the local package. Args: - enable_caching (bool, optional): Whether to enable caching. Defaults to False. - parameter_values (dict, optional): Pipeline parameter values. Defaults to None. - input_artifacts (dict, optional): Pipeline input artifacts. Defaults to None. + enable_caching (Optional[bool], optional): Whether to turn on caching for the run. + If this is not set, defaults to the compile time settings, which are True for all + tasks by default, while users may specify different caching options for individual + tasks. + If this is set, the setting applies to all tasks in the pipeline. + Overrides the compile time settings. Defaults to None. + parameter_values (Optional[dict], optional): The mapping from runtime parameter names + to its values that control the pipeline run. Defaults to None. + input_artifacts (Optional[dict], optional): The mapping from the runtime parameter + name for this artifact to its resource id. + For example: "vertex_model":"456". + Note: full resource name ("projects/123/locations/us-central1/metadataStores/default/artifacts/456") + cannot be used. Defaults to None. experiment_name (str, optional): Experiment name. Defaults to None. tag (str, optional): Tag of the pipeline template. Defaults to None. - """ + """ # noqa: E501 experiment_name = self._check_experiment_name(experiment_name) template_path = self._get_template_path(tag) + logger.debug( + f"Running pipeline '{self.pipeline_name}' with settings:" + f"\n {'template_path':<20} {template_path:<30}" + f"\n {'enable_caching':<20} {enable_caching!s:<30}" + f"\n {'experiment_name':<20} {experiment_name:<30}" + ) + job = self._create_pipeline_job( template_path=template_path, enable_caching=enable_caching, @@ -207,7 +248,7 @@ def run( def compile_upload_run( self, - enable_caching: bool = False, + enable_caching: Optional[bool] = None, parameter_values: Optional[dict] = None, experiment_name: Optional[str] = None, tags: Optional[List[str]] = None, @@ -229,7 +270,7 @@ def compile_upload_run( def schedule( self, cron: str, - enable_caching: bool = False, + enable_caching: Optional[bool] = None, parameter_values: Optional[dict] = None, tag: Optional[str] = None, delete_last_schedule: bool = False, diff --git a/deployer/settings.py b/deployer/settings.py index b0a86c1..5c9fe06 100644 --- a/deployer/settings.py +++ b/deployer/settings.py @@ -28,7 +28,7 @@ class _DeployerDeploySettings(CustomBaseModel): tags: Optional[List[str]] = constants.DEFAULT_TAGS config_filepath: Optional[Path] = None config_name: Optional[str] = None - enable_caching: bool = False + enable_caching: Optional[bool] = None experiment_name: Optional[str] = None local_package_path: Path = constants.DEFAULT_LOCAL_PACKAGE_PATH skip_validation: bool = True diff --git a/docs/CLI_REFERENCE.md b/docs/CLI_REFERENCE.md index 022cd2e..638ecd8 100644 --- a/docs/CLI_REFERENCE.md +++ b/docs/CLI_REFERENCE.md @@ -121,7 +121,7 @@ $ vertex-deployer deploy [OPTIONS] PIPELINE_NAMES... * `--tags TEXT`: The tags to use when uploading the pipeline. * `-cfp, --config-filepath FILE`: Path to the json/py file with parameter values and input artifacts to use when running the pipeline. * `-cn, --config-name TEXT`: Name of the json/py file with parameter values and input artifacts to use when running the pipeline. It must be in the pipeline config dir. e.g. `config_dev.json` for `./vertex/configs/{pipeline-name}/config_dev.json`. -* `-ec, --enable-caching`: Whether to enable caching when running the pipeline. +* `-ec, --enable-caching / -nec, --no-cache`: Whether to turn on caching for the run.If this is not set, defaults to the compile time settings, which are True for alltasks by default, while users may specify different caching options for individualtasks. If this is set, the setting applies to all tasks in the pipeline.Overrides the compile time settings. Defaults to None. * `-en, --experiment-name TEXT`: The name of the experiment to run the pipeline in.Defaults to '{pipeline_name}-experiment'. * `-lpp, --local-package-path DIRECTORY`: Local dir path where pipelines will be compiled. [default: vertex/pipelines/compiled_pipelines] * `-y, --skip-validation / -n, --no-skip`: Whether to continue without user validation of the settings. [default: skip-validation]