From 98a74e96250d83edce6f21cf7088c1fa18b0b860 Mon Sep 17 00:00:00 2001 From: erew123 <35898566+erew123@users.noreply.github.com> Date: Thu, 6 Jun 2024 21:12:17 +0100 Subject: [PATCH] Add files via upload --- README.md | 12 +- atsetup.bat | 676 ++++++++++++++++ atsetup.sh | 590 ++++++++++++++ confignew.json | 73 ++ diagnostics.py | 335 ++++++++ finetune.py | 1797 ++++++++++++++++++++++++++++++++++++++++++ script.py | 1895 +++++++++++++++++++++++++++++++++++++++++++++ tts_server.py | 1676 +++++++++++++++++++++++++++++++++++++++ voices/Arnold.wav | Bin 0 -> 896968 bytes 9 files changed, 7050 insertions(+), 4 deletions(-) create mode 100644 atsetup.bat create mode 100644 atsetup.sh create mode 100644 confignew.json create mode 100644 diagnostics.py create mode 100644 finetune.py create mode 100644 script.py create mode 100644 tts_server.py create mode 100644 voices/Arnold.wav diff --git a/README.md b/README.md index 540c6af..3954a2f 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ -# AllTalk TTS v2 BETA (ITS NOT UPLOADED YET SO DONT TRY TO DO ANY OF THIS) -This is the BETA of v2. To be clear, that means they may well be bugs, issues, missing/incomplete documentation, a variety of potential problems etc (This is what BETA refers to in the software world for those whom dont know). This means you may need a bit of technical know how to deal with things that could come up. +# AllTalk TTS v2 BETA +This is the BETA of v2. To be clear, that means they may well be bugs, issues, missing/incomplete documentation, a variety of potential problems etc (This is what BETA refers to in the software world for those whom dont know). This means you may need a bit of technical know how to deal with things that could come up and should only continue if you feel comfortable with that. + +Github discussions on the BETA are [here in the discussion board](https://github.com/erew123/alltalk_tts/discussions/245) #### If you are going to run the BETA, please read all the info below.... @@ -18,17 +20,19 @@ Seperate from Standalone installations, installation within the Text-generation- - Gradio web interface (see the screenshots) - Retrieval based Voice Conversion, AKA, RVC voice Pipeline, re-written to work on Python 3.11. - TTS Generator will now use any TTS engine. -- Vastly updated API Suite. **V2 is not 100% compatable with v1.**. New SillyTavern extension is included in the `/system/` folder. See here for an explanation https://github.com/erew123/alltalk_tts/issues/166 +- Vastly updated API Suite. **V2 is not 100% compatable with v1. (See here for an explanation https://github.com/erew123/alltalk_tts/issues/166)**. + - New SillyTavern extension is included in the `/system/` folder. + - New remote TGWUI extension if you want to run your TTS elsewhere from the AllTalk server. - OpenAI compatable endpoint/API. Meaning this should work as an alternative endpoint with any software that can send a TTS generation request to OpenAI. - Fully customisable API Settings. I have **NOT** tested any limits of any TTS engines. - Updated Finetuning for XTTS models - Audio Transcoding to about 6x formats (mp3, opus, etc) - About 50 gradio interface themes if you arent happy with the standard Gradio one. - Documentaton has been about 80% updated. Its built into the interface. +- Lots and lots of other things too numerous to mention. There is a welcome screen that covers a few other bits, along with the built in documentation. - --- ### Windows Systems diff --git a/atsetup.bat b/atsetup.bat new file mode 100644 index 0000000..1c546f7 --- /dev/null +++ b/atsetup.bat @@ -0,0 +1,676 @@ +@echo off +cd /D "%~dp0" +setlocal enabledelayedexpansion +@set "PATH=%PATH%;%SystemRoot%\system32" + +:: Generate the ESC character +for /F %%a in ('echo prompt $E ^| cmd') do set "ESC=%%a" + +:: Standard Colors +set "BLACK=%ESC%[30m" +set "RED=%ESC%[31m" +set "GREEN=%ESC%[32m" +set "YELLOW=%ESC%[33m" +set "BLUE=%ESC%[34m" +set "MAGENTA=%ESC%[35m" +set "CYAN=%ESC%[36m" +set "WHITE=%ESC%[37m" +set "L_BLACK=%ESC%[90m" +set "L_RED=%ESC%[91m" +set "L_GREEN=%ESC%[92m" +set "L_YELLOW=%ESC%[93m" +set "L_BLUE=%ESC%[94m" +set "L_MAGENTA=%ESC%[95m" +set "L_CYAN=%ESC%[96m" +set "L_WHITE=%ESC%[97m" +set "RESET=%ESC%[0m" + +echo "%CD%"| findstr /C:" " >nul && echo. && echo %L_BLUE%ALLTALK WINDOWS SETUP UTILITY%RESET% && echo. && echo. && echo You are trying to install AllTalk in a folder that has a space in the folder path e.g. && echo. && echo C:\%L_RED%program files%RESET%\alltalk_tts && echo. && echo This causes errors with Conda and Python scripts. Please follow this link for reference: && echo. && echo %L_CYAN%https://docs.anaconda.com/free/working-with-conda/reference/faq/#installing-anaconda%RESET% && echo. && echo Please use a folder path that has no spaces in it e.g. && echo. && echo C:\myfiles\alltalk_tts\ && echo. && echo. && pause && goto :end + +@rem Check for special characters in installation path +set "SPCHARMESSAGE="WARNING: Special characters were detected in the installation path!" " This can cause the installation to fail!"" +echo "%CD%"| findstr /R /C:"[!#\$%&()\*+,;<=>?@\[\]\^`{|}~]" >nul && ( + call :PrintBigMessage %SPCHARMESSAGE% +) +set SPCHARMESSAGE= + +@rem Check if curl is available +curl --version >nul 2>&1 +if "%ERRORLEVEL%" NEQ "0" ( + echo curl is not available on this system. Please install curl then re-run the script https://curl.se/ + echo or perform a manual installation of a Conda Python environment. + goto end +) + +:MainMenu +cls +echo. +echo %L_BLUE%ALLTALK WINDOWS SETUP UTILITY%RESET% +echo. +echo INSTALLATION TYPE +echo 1) I am using AllTalk as part of %L_GREEN%Text-generation-webui%RESET% +echo 2) I am using AllTalk as a %L_BLUE%Standalone Application%RESET% +echo. +echo 9) %L_RED%Exit/Quit%RESET% +echo. +echo. +set /p UserOption=" Enter your choice: " + +if "%UserOption%"=="1" goto WebUIMenu +if "%UserOption%"=="2" goto StandaloneMenu +if "%UserOption%"=="9" goto End +goto MainMenu + +:WebUIMenu +cls +echo. +echo %L_BLUE%TEXT-GENERATION-WEBUI SETUP%RESET% +echo. +echo Please ensure you have started your Text-generation-webui Python +echo environment. If you have NOT done this, please run %L_GREEN%cmd_windows.bat%RESET% +echo in the %L_GREEN%text-generation-webui%RESET% folder and then re-run this script. +echo. +echo BASE REQUIREMENTS +echo 1) Apply/Re-Apply the requirements for %L_GREEN%Text-generation-webui%RESET%. +echo. +echo OPTIONAL +echo 2) Git Pull the latest AllTalk updates from Github +echo. +echo DEEPSPEED FOR %L_YELLOW=%PyTorch 2.1.x%RESET% +echo 4) Install DeepSpeed v11.2 for CUDA %L_GREEN%11.8%RESET% and Python-3.11.x and %L_YELLOW%PyTorch 2.1.x%RESET%. +echo 5) Install DeepSpeed v11.2 for CUDA %L_GREEN%12.1%RESET% and Python-3.11.x and %L_YELLOW%PyTorch 2.1.x%RESET%. +echo. +echo DEEPSPEED FOR %L_YELLOW=%PyTorch 2.2.x%RESET% (March 2024 builds of Text-gen-webui and later) +echo 6) Install DeepSpeed v14.0 for CUDA %L_GREEN%12.1%RESET% and Python-3.11.x and %L_YELLOW%PyTorch 2.2.x%RESET%. +echo 7) Install DeepSpeed v14.0 for CUDA %L_GREEN%11.8%RESET% and Python-3.11.x and %L_YELLOW%PyTorch 2.2.x%RESET%. +echo. +echo U) Uninstall DeepSpeed. +echo. +echo. OTHER +echo 8) Generate a diagnostics file. +echo. +echo 9) %L_RED%Exit/Quit%RESET% +echo. +set /p WebUIOption="Enter your choice: " +if "%WebUIOption%"=="1" goto InstallNvidiaTextGen +if "%WebUIOption%"=="2" goto TGGitpull +if "%WebUIOption%"=="4" goto InstallDeepSpeed118TextGen +if "%WebUIOption%"=="5" goto InstallDeepSpeed121TextGen +if "%WebUIOption%"=="6" goto InstallDeepSpeed121TextGenPytorch221 +if "%WebUIOption%"=="7" goto InstallDeepSpeed118TextGenPytorch221 +if "%WebUIOption%"=="U" goto UnInstallDeepSpeed +if "%WebUIOption%"=="u" goto UnInstallDeepSpeed +if "%WebUIOption%"=="8" goto GenerateDiagsTextGen +if "%WebUIOption%"=="9" goto End +goto WebUIMenu + +:StandaloneMenu +cls +echo. +echo %L_BLUE%ALLTALK STANDALONE APPLICATION SETUP%RESET% +echo. +echo BASE REQUIREMENTS +echo 1) Install AllTalk as a Standalone Application +echo. +echo OPTIONAL +echo 2) Git Pull the latest AllTalk updates from Github +echo 3) Re-Apply/Update the requirements file +echo 4) Delete AllTalk's custom Python environment +echo 5) Purge the PIP cache +echo. +echo. OTHER +echo 8) Generate a diagnostics file +echo. +echo 9) %L_RED%Exit/Quit%RESET% +echo. +set /p StandaloneOption="Enter your choice: " +if "%StandaloneOption%"=="1" goto InstallCustomStandalone +if "%StandaloneOption%"=="2" goto STGitpull +if "%StandaloneOption%"=="3" goto STReapplyrequirements +if "%StandaloneOption%"=="4" goto STDeleteCustomStandalone +if "%StandaloneOption%"=="5" goto STPurgepipcache +if "%StandaloneOption%"=="8" goto GenerateDiagsStandalone +if "%StandaloneOption%"=="9" goto EndStandalone +goto StandaloneMenu + +:InstallNvidiaTextGen +pip install -r system\requirements\requirements_textgen.txt +pip install -r system\requirements\requirements_textgen2.txt +echo ** Faiss ** +call "%CONDA_ROOT_PREFIX%\Scripts\conda.exe" install -y pytorch::faiss-cpu +echo ** FFmpeg ** +call "%CONDA_ROOT_PREFIX%\Scripts\conda.exe" install -y conda-forge::ffmpeg +if %ERRORLEVEL% neq 0 ( + echo. + echo There was an error installing the requirements. + echo Have you started your Text-gen-webui Python environment + echo with cmd_{yourOS} before running atsetup.bat? + echo Press any key to return to the menu. + echo. + pause + goto WebUIMenu +) +Echo. +echo. +Echo Requirements installed successfully. +Echo. +pause +goto WebUIMenu + +:TGGitpull +git pull +if %ERRORLEVEL% neq 0 ( + echo. + echo There was an error pulling from Github. + echo Press any key to return to the menu. + echo. + pause + goto WebUIMenu +) +Echo. +echo AllTalk Updated from Github. Please re-apply +echo the latest requirements file. Option 1 +Echo. +pause +goto WebUIMenu + +:InstallDeepSpeed118TextGen +echo Downloading DeepSpeed... +curl -LO https://github.com/erew123/alltalk_tts/releases/download/deepspeed/deepspeed-0.11.2+cuda118-cp311-cp311-win_amd64.whl +if %ERRORLEVEL% neq 0 ( + echo. + echo Failed to download DeepSpeed wheel file. + echo Please check your internet connection or try again later. + echo Press any key to return to the menu. + echo. + pause + goto WebUIMenu +) +echo DeepSpeed wheel file downloaded successfully. +echo Installing DeepSpeed... +pip install deepspeed-0.11.2+cuda118-cp311-cp311-win_amd64.whl +if %ERRORLEVEL% neq 0 ( + echo. + echo Failed to install DeepSpeed. + echo Please check if the wheel file is compatible with your system. + echo Press any key to return to the menu. + echo. + pause + goto WebUIMenu +) +Echo. +echo. +Echo DeepSpeed installed successfully. +Echo. +del deepspeed-0.11.2+cuda118-cp311-cp311-win_amd64.whl +pause +goto WebUIMenu + +:InstallDeepSpeed121TextGen +echo Downloading DeepSpeed... +curl -LO https://github.com/erew123/alltalk_tts/releases/download/deepspeed/deepspeed-0.11.2+cuda121-cp311-cp311-win_amd64.whl +if %ERRORLEVEL% neq 0 ( + echo. + echo Failed to download DeepSpeed wheel file. + echo Please check your internet connection or try again later. + echo Press any key to return to the menu. + echo. + pause + goto WebUIMenu +) +echo DeepSpeed wheel file downloaded successfully. +echo Installing DeepSpeed... +pip install deepspeed-0.11.2+cuda121-cp311-cp311-win_amd64.whl +if %ERRORLEVEL% neq 0 ( + echo. + echo Failed to install DeepSpeed. + echo Please check if the wheel file is compatible with your system. + echo Press any key to return to the menu. + echo. + pause + goto WebUIMenu +) +Echo. +echo. +Echo DeepSpeed installed successfully. +Echo. +del deepspeed-0.11.2+cuda121-cp311-cp311-win_amd64.whl +pause +goto WebUIMenu + +:InstallDeepSpeed121TextGenPytorch221 +echo Downloading DeepSpeed... +curl -LO https://github.com/erew123/alltalk_tts/releases/download/DeepSpeed-14.0/deepspeed-0.14.0+ce78a63-cp311-cp311-win_amd64.whl +if %ERRORLEVEL% neq 0 ( + echo. + echo Failed to download DeepSpeed wheel file. + echo Please check your internet connection or try again later. + echo Press any key to return to the menu. + echo. + pause + goto WebUIMenu +) +echo DeepSpeed wheel file downloaded successfully. +echo Installing DeepSpeed... +pip install deepspeed-0.14.0+ce78a63-cp311-cp311-win_amd64.whl +if %ERRORLEVEL% neq 0 ( + echo. + echo Failed to install DeepSpeed. + echo Please check if the wheel file is compatible with your system. + echo Press any key to return to the menu. + echo. + pause + goto WebUIMenu +) +Echo. +echo. +Echo DeepSpeed installed successfully. +Echo. +del deepspeed-0.14.0+ce78a63-cp311-cp311-win_amd64.whl +pause +goto WebUIMenu + +:InstallDeepSpeed118TextGenPytorch221 +echo Downloading DeepSpeed... +curl -LO https://github.com/erew123/alltalk_tts/releases/download/DeepSpeed-14.0/deepspeed-0.14.0+cu118-cp311-cp311-win_amd64.whl +if %ERRORLEVEL% neq 0 ( + echo. + echo Failed to download DeepSpeed wheel file. + echo Please check your internet connection or try again later. + echo Press any key to return to the menu. + echo. + pause + goto WebUIMenu +) +echo DeepSpeed wheel file downloaded successfully. +echo Installing DeepSpeed... +pip install deepspeed-0.14.0+cu118-cp311-cp311-win_amd64.whl +if %ERRORLEVEL% neq 0 ( + echo. + echo Failed to install DeepSpeed. + echo Please check if the wheel file is compatible with your system. + echo Press any key to return to the menu. + echo. + pause + goto WebUIMenu +) +Echo. +echo. +Echo DeepSpeed installed successfully. +Echo. +del deepspeed-0.14.0+cu118-cp311-cp311-win_amd64.whl +pause +goto WebUIMenu + +:UnInstallDeepSpeed +pip uninstall deepspeed +if %ERRORLEVEL% neq 0 ( + echo. + echo There was an error uninstalling DeepSpeed. + echo Press any key to return to the menu. + echo. + pause + goto WebUIMenu +) +echo. +Echo DeepSpeed uninstalled successfully. +Echo. +pause +goto WebUIMenu + +:GenerateDiagsTextGen +Python diagnostics.py +if %ERRORLEVEL% neq 0 ( + echo. + echo There was an error running diagnostics. Have you correctly started your + echo Text-generation-webui Python environment with %L_GREEN%cmd_windows.bat%RESET%? + echo. + pause + goto WebUIMenu +) +Echo. +echo. +Echo Diagnostics.log generated. Please scroll up to look over the log. +Echo. +pause +goto WebUIMenu + +:InstallCustomStandalone +set PATH=%PATH%;%SystemRoot%\system32 + +@rem Check if curl is available +curl --version >nul 2>&1 +if "%ERRORLEVEL%" NEQ "0" ( + echo curl is not available on this system. Please install curl then re-run the script https://curl.se/ + echo or perform a manual installation of a Conda Python environment. + goto end +) +echo "%CD%"| findstr /C:" " >nul && echo This script relies on Miniconda which can not be silently installed under a path with spaces. Please correct your folder names and re-try installation. && goto exit + +@rem Check for special characters in installation path +set "SPCHARMESSAGE=WARNING: Special characters were detected in the installation path! This can cause the installation to fail!" +echo "%CD%"| findstr /R /C:"[!#\$%&()\*+,;<=>?@\[\]\^`{|}~]" >nul && ( + call :PrintBigMessage %SPCHARMESSAGE% +) +set SPCHARMESSAGE= + +@rem fix failed install when installing to a separate drive +set TMP=%cd%\alltalk_environment +set TEMP=%cd%\alltalk_environment + +@rem deactivate existing conda envs as needed to avoid conflicts +(call conda deactivate && call conda deactivate && call conda deactivate) 2>nul + +@rem config +set INSTALL_DIR=%cd%\alltalk_environment +set CONDA_ROOT_PREFIX=%cd%\alltalk_environment\conda +set INSTALL_ENV_DIR=%cd%\alltalk_environment\env +set MINICONDA_DOWNLOAD_URL=https://repo.anaconda.com/miniconda/Miniconda3-py311_24.4.0-0-Windows-x86_64.exe +set conda_exists=F + +@rem figure out whether git and conda need to be installed +call "%CONDA_ROOT_PREFIX%\_conda.exe" --version >nul 2>&1 +if "%ERRORLEVEL%" EQU "0" ( + set conda_exists=T + call "%CONDA_ROOT_PREFIX%\condabin\conda.bat" activate "%INSTALL_ENV_DIR%" + goto RunScript +) + +@rem download and install conda if not installed +echo Downloading Miniconda from %MINICONDA_DOWNLOAD_URL% to %INSTALL_DIR%\miniconda_installer.exe +mkdir "%INSTALL_DIR%" +call curl -Lk "%MINICONDA_DOWNLOAD_URL%" > "%INSTALL_DIR%\miniconda_installer.exe" || ( echo. && echo Miniconda failed to download. && goto end ) +echo Installing Miniconda to %CONDA_ROOT_PREFIX% +start /wait "" "%INSTALL_DIR%\miniconda_installer.exe" /InstallationType=JustMe /NoShortcuts=1 /AddToPath=0 /RegisterPython=0 /NoRegistry=1 /S /D=%CONDA_ROOT_PREFIX% +echo Miniconda version: +call "%CONDA_ROOT_PREFIX%\_conda.exe" --version || ( echo. && echo Miniconda not found. && goto end ) + +@rem create the installer env +echo Packages to install: %PACKAGES_TO_INSTALL% +call "%CONDA_ROOT_PREFIX%\_conda.exe" create --no-shortcuts -y -k --prefix "%INSTALL_ENV_DIR%" python=3.11.9 || ( echo. && echo Conda environment creation failed. && goto end ) + +@rem check if conda environment was actually created +if not exist "%INSTALL_ENV_DIR%\python.exe" ( echo. && echo Conda environment is empty. && goto end ) + +@rem activate installer env +call "%CONDA_ROOT_PREFIX%\condabin\conda.bat" activate "%INSTALL_ENV_DIR%" || ( echo. && echo Miniconda hook not found. && goto end ) +rem Install required packages +@rem Enable conda logging +call "%CONDA_ROOT_PREFIX%\condabin\conda.bat" config --set log_level debug +call "%CONDA_ROOT_PREFIX%\condabin\conda.bat" config --set log_file "%INSTALL_ENV_DIR%\conda.log" +echo ** PyTorch 2.2.1 ** +call "%CONDA_ROOT_PREFIX%\Scripts\conda.exe" install -y pytorch==2.2.1 torchvision==0.17.1 torchaudio==2.2.1 pytorch-cuda=12.1 -c pytorch -c nvidia +echo ** Faiss ** +call "%CONDA_ROOT_PREFIX%\Scripts\conda.exe" install -y pytorch::faiss-cpu +echo ** FFmpeg ** +call "%CONDA_ROOT_PREFIX%\Scripts\conda.exe" install -y conda-forge::ffmpeg +echo ** Requirements file ** +pip install -r system\requirements\requirements_standalone.txt +echo ** Gradio Update ** +pip install --upgrade gradio==4.32.2 +echo ** DeepSpeed ** +curl -LO https://github.com/erew123/alltalk_tts/releases/download/DeepSpeed-14.0/deepspeed-0.14.0+ce78a63-cp311-cp311-win_amd64.whl +echo Installing DeepSpeed... +pip install deepspeed-0.14.0+ce78a63-cp311-cp311-win_amd64.whl +del deepspeed-0.14.0+ce78a63-cp311-cp311-win_amd64.whl +echo ** Clean Environment ** +call "%CONDA_ROOT_PREFIX%\Scripts\conda.exe" clean --all --force-pkgs-dirs -y + + +@rem Create start_environment.bat to run AllTalk environment +echo @echo off > start_environment.bat +echo cd /D "%~dp0" >> start_environment.bat +echo set CONDA_ROOT_PREFIX=%cd%\alltalk_environment\conda >> start_environment.bat +echo set INSTALL_ENV_DIR=%cd%\alltalk_environment\env >> start_environment.bat +echo call "%CONDA_ROOT_PREFIX%\condabin\conda.bat" activate "%INSTALL_ENV_DIR%" >> start_environment.bat +@rem Create start_alltalk.bat to run AllTalk +echo @echo off > start_alltalk.bat +echo cd /D "%~dp0" >> start_alltalk.bat +echo set CONDA_ROOT_PREFIX=%cd%\alltalk_environment\conda >> start_alltalk.bat +echo set INSTALL_ENV_DIR=%cd%\alltalk_environment\env >> start_alltalk.bat +echo call "%CONDA_ROOT_PREFIX%\condabin\conda.bat" activate "%INSTALL_ENV_DIR%" >> start_alltalk.bat +echo call python script.py >> start_alltalk.bat +@rem Create start_finetune.bat to run AllTalk +echo @echo off > start_finetune.bat +echo cd /D "%~dp0" >> start_finetune.bat +echo set CONDA_ROOT_PREFIX=%cd%\alltalk_environment\conda >> start_finetune.bat +echo set INSTALL_ENV_DIR=%cd%\alltalk_environment\env >> start_finetune.bat +echo call "%CONDA_ROOT_PREFIX%\condabin\conda.bat" activate "%INSTALL_ENV_DIR%" >> start_finetune.bat +echo call python finetune.py >> start_finetune.bat +echo @echo off > start_diagnostics.bat +echo cd /D "%~dp0" >> start_diagnostics.bat +echo set CONDA_ROOT_PREFIX=%cd%\alltalk_environment\conda >> start_diagnostics.bat +echo set INSTALL_ENV_DIR=%cd%\alltalk_environment\env >> start_diagnostics.bat +echo call "%CONDA_ROOT_PREFIX%\condabin\conda.bat" activate "%INSTALL_ENV_DIR%" >> start_diagnostics.bat +echo call python diagnostics.py >> start_diagnostics.bat +Echo. +Echo Run %L_YELLOW%start_alltalk.bat%RESET% to start AllTalk. +Echo Run %L_YELLOW%start_diagnostics.bat%RESET% to start the diagnostics. +Echo Run %L_YELLOW%start_finetune.bat%RESET% to start Finetuning. +Echo Run %L_YELLOW%start_environment.bat%RESET% to start the AllTalk Python environment. +Echo. +pause +goto StandaloneMenu + +:STDeleteCustomStandalone +@rem Check if the alltalk_environment directory exists +if not exist "%cd%\alltalk_environment\" ( + echo. + echo %L_GREEN%alltalk_environment%RESET% directory does not exist. No need to delete. + echo. + pause + goto StandaloneMenu +) +@rem Check if a Conda environment is active +if not defined CONDA_PREFIX goto NoCondaEnvDeleteCustomStandalone +@rem Deactivate Conda environment if it's active +Echo Exiting the Conda Environment. Please run %L_GREEN%atsetup.bat%RESET% again and delete the environment. +call conda deactivate +:NoCondaEnvDeleteCustomStandalone +echo Deleting "alltalk_environment". Please wait. +rd /s /q "alltalk_environment" +del start_alltalk.bat +del start_environment.bat +if %ERRORLEVEL% neq 0 ( + echo. + echo Failed to delete alltalk_environment folder. + echo Please make sure it is not in use and try again. + echo Worst case, manually delete the folder called 'alltalk_environment' + echo. + pause + goto StandaloneMenu +) +echo. +Echo. +echo Environment %L_GREEN%alltalk_environment%RESET% deleted. Please set up the environment again. +Echo. +pause +goto StandaloneMenu + +:GenerateDiagsStandalone +cd /D "%~dp0" +set CONDA_ROOT_PREFIX=%cd%\alltalk_environment\conda +set INSTALL_ENV_DIR=%cd%\alltalk_environment\env +@rem Check if the Conda environment exists +if not exist "%INSTALL_ENV_DIR%\python.exe" ( + echo. + echo The Conda environment at "%INSTALL_ENV_DIR%" does not exist. + echo Please install the environment before proceeding. + echo. + pause + goto StandaloneMenu +) +@rem Attempt to activate the Conda environment +call "%CONDA_ROOT_PREFIX%\condabin\conda.bat" activate "%INSTALL_ENV_DIR%" +if errorlevel 1 ( + echo. + echo Failed to activate the Conda environment. + echo Please check your installation and try again. + echo. + pause + goto StandaloneMenu +) +@rem Run diagnostics +Python diagnostics.py +if %ERRORLEVEL% neq 0 ( + echo. + echo There was an error running diagnostics. + echo Press any key to return to the menu. + echo. + pause + goto StandaloneMenu +) +Echo. +Echo. +Echo Diagnostics.log generated. Please scroll up to look over the log. +Echo. +pause +goto StandaloneMenu + +:STReapplyrequirements +cd /D "%~dp0" +set CONDA_ROOT_PREFIX=%cd%\alltalk_environment\conda +set INSTALL_ENV_DIR=%cd%\alltalk_environment\env +@rem Check if the Conda environment exists +if not exist "%INSTALL_ENV_DIR%\python.exe" ( + echo. + echo The Conda environment at "%INSTALL_ENV_DIR%" does not exist. + echo Please install the environment before proceeding. + echo. + pause + goto StandaloneMenu +) +@rem Attempt to activate the Conda environment +call "%CONDA_ROOT_PREFIX%\condabin\conda.bat" activate "%INSTALL_ENV_DIR%" +if errorlevel 1 ( + echo. + echo Failed to activate the Conda environment. + echo Please check your installation and try again. + echo. + pause + goto StandaloneMenu +) +@rem Run Reapply requirements +echo. +echo. +echo Installing requirements. If you have problems after this, you should +echo delete the alltalk_environment and run the setup routine again. +echo. +pip install -r system\requirements\requirements_standalone.txt +echo Installing DeepSpeed... +pip install deepspeed-0.14.0+ce78a63-cp311-cp311-win_amd64.whl +del deepspeed-0.14.0+ce78a63-cp311-cp311-win_amd64.whl +if %ERRORLEVEL% neq 0 ( + echo. + echo There was an error. + echo Press any key to return to the menu. + echo. + pause + goto StandaloneMenu +) +Echo. +Echo. +Echo Requirements have been re-applied/updated. +Echo. +pause +goto StandaloneMenu + +:STPurgepipcache +cd /D "%~dp0" +set CONDA_ROOT_PREFIX=%cd%\alltalk_environment\conda +set INSTALL_ENV_DIR=%cd%\alltalk_environment\env +@rem Check if the Conda environment exists +if not exist "%INSTALL_ENV_DIR%\python.exe" ( + echo. + echo The Conda environment at "%INSTALL_ENV_DIR%" does not exist. + echo Please install the environment before proceeding. + echo. + pause + goto StandaloneMenu +) +@rem Attempt to activate the Conda environment +call "%CONDA_ROOT_PREFIX%\condabin\conda.bat" activate "%INSTALL_ENV_DIR%" +if errorlevel 1 ( + echo. + echo Failed to activate the Conda environment. + echo Please check your installation and try again. + echo. + pause + goto StandaloneMenu +) +@rem Clear the PIP cache +echo. +echo Purging the PIP cache of downloaded files. +echo. +pip cache purge +if %ERRORLEVEL% neq 0 ( + echo. + echo There was an error. + echo Press any key to return to the menu. + echo. + pause + goto StandaloneMenu +) +Echo. +Echo The PIP cache has been purged. +Echo. +pause +goto StandaloneMenu + +:STGitpull +cd /D "%~dp0" +set CONDA_ROOT_PREFIX=%cd%\alltalk_environment\conda +set INSTALL_ENV_DIR=%cd%\alltalk_environment\env +@rem Check if the Conda environment exists +if not exist "%INSTALL_ENV_DIR%\python.exe" ( + echo. + echo The Conda environment at "%INSTALL_ENV_DIR%" does not exist. + echo Please install the environment before proceeding. + echo. + pause + goto StandaloneMenu +) +@rem Attempt to activate the Conda environment +call "%CONDA_ROOT_PREFIX%\condabin\conda.bat" activate "%INSTALL_ENV_DIR%" +if errorlevel 1 ( + echo. + echo Failed to activate the Conda environment. + echo Please check your installation and try again. + echo. + pause + goto StandaloneMenu +) +@rem Pull from Github +echo. +echo Pulling the latest updates. Please re-apply +echo the latest requirements file. Option 3 +echo. +git pull +if %ERRORLEVEL% neq 0 ( + echo. + echo There was an error pulling from Github. + echo Press any key to return to the menu. + echo. + pause + goto StandaloneMenu +) +Echo. +echo AllTalk Updated from Github. Please re-apply +echo the latest requirements file. Option 3 +Echo. +pause +goto StandaloneMenu + +:EndStandalone +echo Exiting AllTalk Setup Utility... +echo. +Echo Remember, after installation you can.... +Echo Run %L_YELLOW%start_alltalk.bat%RESET% to start AllTalk. +Echo Run %L_YELLOW%start_finetune.bat%RESET% to start Finetuning. +Echo Run %L_YELLOW%start_environment.bat%RESET% to start the AllTalk Python environment. +Echo. +exit /b + +:End +echo Exiting AllTalk Setup Utility... +exit /b diff --git a/atsetup.sh b/atsetup.sh new file mode 100644 index 0000000..1167901 --- /dev/null +++ b/atsetup.sh @@ -0,0 +1,590 @@ +#!/bin/bash + +# ANSI color codes +RED='\033[1;31m' +GREEN='\033[1;32m' +YELLOW='\033[1;33m' +BLUE='\033[1;34m' +CYAN='\033[1;36m' +MAGENTA='\033[1;35m' +WHITE='\033[1;37m' +L_RED='\033[1;91m' +L_GREEN='\033[1;92m' +L_YELLOW='\033[1;93m' +L_BLUE='\033[1;94m' +L_CYAN='\033[1;96m' +L_MAGENTA='\033[1;95m' +NC='\033[0m' # No Color + +# Navigate to the script's directory +cd "$(dirname "$0")" + +# Function to check if curl is installed +check_curl() { + if ! command -v curl &> /dev/null; then + echo "curl is not available on this system. Please install curl then re-run the script https://curl.se/" + echo "or perform a manual installation of a Conda Python environment." + exit 1 + fi +} + +# Check if the current directory path contains a space +containsSpace=false +currentPath=$(pwd) +if echo "$currentPath" | grep -q ' '; then + containsSpace=true +fi + +if [ "$containsSpace" = true ]; then + echo + echo -e " ${L_BLUE}ALLTALK LINUX SETUP UTILITY${NC}" + echo + echo + echo -e " You are trying to install AllTalk in a folder that has a space in the" + echo -e " folder path e.g." + echo + echo -e " /home/${L_RED}program files${NC}/alltalk_tts" + echo + echo -e " This causes errors with Conda and Python scripts. Please follow this" + echo -e " link for reference:" + echo + echo -e " ${L_CYAN}https://docs.anaconda.com/free/working-with-conda/reference/faq/#installing-anaconda${NC}" + echo + echo -e " Please use a folder path that has no spaces in it e.g." + echo + echo -e " /home/myfiles/alltalk_tts/" + echo + echo + read -p "Press Enter to continue..." + exit 1 +else + # Continue with the main menu + echo "Continue with the main menu." +fi + +# Main Menu +main_menu() { + while true; do + clear + echo + echo -e " ${L_BLUE}ALLTALK LINUX SETUP UTILITY${NC}" + echo + echo " INSTALLATION TYPE" + echo -e " 1) I am using AllTalk as part of ${L_GREEN}Text-generation-webui${NC}" + echo -e " 2) I am using AllTalk as a ${L_GREEN}Standalone Application${NC}" + echo + echo -e " 9)${L_RED} Exit/Quit${NC}" + echo + read -p " Enter your choice: " user_option + + case $user_option in + 1) webui_menu ;; + 2) standalone_menu ;; + 9) exit 0 ;; + *) echo "Invalid option"; sleep 2 ;; + esac + done +} + +# Text-generation-webui Menu +webui_menu() { + while true; do + clear + echo + echo -e " ${L_BLUE}TEXT-GENERATION-WEBUI SETUP${NC}" + echo + echo -e " Please ensure you have started your Text-generation-webui Python" + echo -e " environment. If you have NOT done this, please run ${L_GREEN}/cmd_linux.sh${NC}" + echo -e " in the ${L_GREEN}text-generation-webui${NC} folder and then re-run this script." + echo + echo " BASE REQUIREMENTS" + echo -e " 1) Apply/Re-Apply the requirements for an ${L_GREEN}Text-generation-webui${NC}" + echo + echo " OPTIONAL" + echo " 2) Git Pull the latest AllTalk updates from Github" + echo + echo " DEEPSPEED" + echo " 4) Install DeepSpeed." + echo " 5) Uninstall DeepSpeed." + echo + echo " OTHER" + echo " 6) Generate a diagnostics file." + echo + echo -e " 9)${L_RED} Exit/Quit${NC}" + echo + read -p " Enter your choice: " webui_option + + case $webui_option in + 1) install_nvidia_textgen ;; + 2) tg_gitpull ;; + 4) install_deepspeed ;; + 5) uninstall_deepspeed ;; + 6) generate_diagnostics_textgen ;; + 9) exit 0 ;; + *) echo "Invalid option"; sleep 2 ;; + esac + done +} + +install_nvidia_textgen() { + local requirements_file="system/requirements/requirements_textgen.txt" + echo " Installing Requirements from $requirements_file..." + if ! pip install -r "$requirements_file"; then + echo + echo " There was an error pulling from Github." + echo " Please check the output for details." + read -p " Press any key to return to the menu. " -n 1 + echo + return + fi + echo + echo " Requirements installed successfully." + + echo " Installing additional requirements..." + if ! pip install -r system/requirements/requirements_textgen2.txt; then + echo + echo " There was an error installing additional requirements." + echo " Please check the output for details." + read -p " Press any key to return to the menu. " -n 1 + echo + return + fi + + if ! conda install -y pytorch::faiss-cpu; then + echo + echo " There was an error installing faiss-cpu." + echo " Please check the output for details." + read -p " Press any key to return to the menu. " -n 1 + echo + return + fi + + if ! conda install -y conda-forge::ffmpeg; then + echo + echo " There was an error installing ffmpeg." + echo " Please check the output for details." + read -p " Press any key to return to the menu. " -n 1 + echo + return + fi + + echo + echo " Additional requirements installed successfully." + echo + echo -e " To install ${L_YELLOW}DeepSpeed${NC} on Linux, there are additional" + echo -e " steps required. Please see the Github or documentation on DeepSeed." + echo + read -p " Press any key to continue. " -n 1 + echo +} + + +tg_gitpull() { + echo + if ! git pull; then + echo + echo " There was an error installing the requirements." + echo " Please check the output for details." + echo + read -p " Press any key to return to the menu. " -n 1 + echo + return + fi + echo + echo " AllTalk Updated from Github. Please re-apply" + echo " the latest requirements file. (Option 1)" + echo + read -p " Press any key to continue. " -n 1 + echo +} + +# Function to install DeepSpeed +install_deepspeed() { + clear + echo + echo -e " ${L_BLUE}DEEPSPEED INSTALLATION REQUIREMENTS${NC}" + echo + echo -e " - Please go see this link as the instructions are there.${NC}" + echo -e " The instructions there are making it as simple as posisble.${NC}" + echo -e " ${L_GREEN}https://github.com/erew123/alltalk_tts/releases/tag/DeepSpeed-14.2-Linux${NC}" + echo + read -p " Have you completed all the above steps? (y/n): " confirm + + if [ "$confirm" != "y" ]; then + echo -e " ${RED}DeepSpeed installation cannot proceed without completing the prerequisites.${NC}" + return + fi + + echo -e "\n ${GREEN}Proceeding with DeepSpeed installation...${NC}" + + if [ $? -ne 0 ]; then + echo -e " ${RED}There was an error installing DeepSpeed.${NC}" + return + fi + + echo -e " ${GREEN}DeepSpeed installed successfully.${NC}" + read -p " Press any key to continue. " -n 1 + echo +} + +uninstall_deepspeed() { + echo "Uninstalling DeepSpeed..." + pip uninstall -y deepspeed + if [ $? -ne 0 ]; then + echo + echo " There was an error uninstalling DeepSpeed." + echo + echo " Press any key to return to the menu." + read -n 1 + return + fi + echo + echo " DeepSpeed uninstalled successfully." + echo + echo " Press any key to continue." + read -n 1 +} + +generate_diagnostics_textgen() { + # Run diagnostics + if ! python diagnostics.py; then + echo + echo " There was an error running diagnostics." + echo + read -p " Press any key to return to the menu. " -n 1 + echo + return + fi + echo + echo " Diagnostics log file generated successfully." + echo " Please see diagnostics.log" + echo + read -p " Press any key to continue. " -n 1 + echo +} + +# Standalone Menu +standalone_menu() { + while true; do + clear + echo + echo -e " ${L_BLUE}ALLTALK STANDALONE APPLICATION SETUP${NC}" + echo + echo " BASE REQUIREMENTS" + echo " 1) Install AllTalk as a Standalone Application" + echo + echo " OPTIONAL" + echo " 2) Git Pull the latest AllTalk updates from Github" + echo " 3) Re-Apply/Update the requirements file" + echo " 4) Delete AllTalk's custom Python environment" + echo " 5) Purge the PIP cache" + echo + echo " OTHER" + echo " 8) Generate a diagnostics file" + echo + echo -e " 9)${L_RED} Exit/Quit${NC}" + echo + read -p " Enter your choice: " standalone_option + + case $standalone_option in + 1) install_custom_standalone ;; + 2) gitpull_standalone ;; + 3) reapply_standalone ;; + 4) delete_custom_standalone ;; + 5) pippurge_standalone ;; + 8) generate_diagnostics_standalone ;; + 9) exit 0 ;; + *) echo "Invalid option"; sleep 2 ;; + esac + done +} + + +install_custom_standalone() { + cd "$(dirname "${BASH_SOURCE[0]}")" + + if [[ "$(pwd)" =~ " " ]]; then + echo "This script relies on Miniconda which can not be silently installed under a path with spaces." + exit + fi + + # Deactivate existing conda envs as needed to avoid conflicts + { conda deactivate && conda deactivate && conda deactivate; } 2> /dev/null + + OS_ARCH=$(uname -m) + case "${OS_ARCH}" in + x86_64*) OS_ARCH="x86_64" ;; + arm64* | aarch64*) OS_ARCH="aarch64" ;; + *) echo "Unknown system architecture: $OS_ARCH! This script runs only on x86_64 or arm64" && exit ;; + esac + + # Config + INSTALL_DIR="$(pwd)/alltalk_environment" + CONDA_ROOT_PREFIX="${INSTALL_DIR}/conda" + INSTALL_ENV_DIR="${INSTALL_DIR}/env" + MINICONDA_DOWNLOAD_URL="https://repo.anaconda.com/miniconda/Miniconda3-py311_24.4.0-0-Linux-${OS_ARCH}.sh" + if [ ! -x "${CONDA_ROOT_PREFIX}/bin/conda" ]; then + echo "Downloading Miniconda from $MINICONDA_DOWNLOAD_URL to ${INSTALL_DIR}/miniconda_installer.sh" + mkdir -p "${INSTALL_DIR}" + curl -L "${MINICONDA_DOWNLOAD_URL}" -o "${INSTALL_DIR}/miniconda_installer.sh" + chmod +x "${INSTALL_DIR}/miniconda_installer.sh" + bash "${INSTALL_DIR}/miniconda_installer.sh" -b -p "${CONDA_ROOT_PREFIX}" + echo "Miniconda installed." + fi + + if [ ! -d "${INSTALL_ENV_DIR}" ]; then + "${CONDA_ROOT_PREFIX}/bin/conda" create -y --prefix "${INSTALL_ENV_DIR}" -c conda-forge python=3.11.9 + echo "Conda environment created at ${INSTALL_ENV_DIR}." + fi + + # Activate the environment and install requirements + source "${CONDA_ROOT_PREFIX}/etc/profile.d/conda.sh" + conda activate "${INSTALL_ENV_DIR}" + # pip install torch==2.2.1+cu121 torchaudio==2.2.1+cu121 --upgrade --force-reinstall --extra-index-url https://download.pytorch.org/whl/cu121 --no-cache-dir + conda install -y pytorch=2.2.1 torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia + conda install -y nvidia/label/cuda-12.1.0::cuda-toolkit=12.1 + conda install -y pytorch::faiss-cpu + conda install -y conda-forge::ffmpeg + echo + echo + echo + echo " Fix Nvidia's broken symlinks in the /env/lib folder" + echo + # Define the environment path + env_path="${INSTALL_ENV_DIR}/lib" + + # List of broken symlinks and their correct targets + declare -A symlinks=( + ["libcufile.so"]="libcufile.so.1.10.0" + ["libcufile_rdma.so"]="libcufile_rdma.so.1.10.0" + ["libcudart.so"]="libcudart.so.12" + ["libnvjpeg.so"]="libnvjpeg.so.12.1.1.14" + ["libcurand.so"]="libcurand.so.10.3.6.39" + ["libnvJitLink.so"]="libnvJitLink.so.12.1.105" + ["libnvrtc-builtins.so"]="libnvrtc-builtins.so.12.1.105" + ["libnvrtc.so"]="libnvrtc.so.12.1.105" + ) + + # Function to fix broken symlinks + fix_broken_symlinks() { + echo "Fixing broken symlinks..." + for link in "${!symlinks[@]}"; do + target="${symlinks[$link]}" + if [ -L "$env_path/$link" ] && [ ! -e "$env_path/$link" ]; then + echo "Removing broken link: $env_path/$link" + rm "$env_path/$link" + fi + + if [ -e "$env_path/$target" ]; then + echo "Creating new symlink: $env_path/$link -> $env_path/$target" + ln -s "$env_path/$target" "$env_path/$link" + else + echo "Target file does not exist: $env_path/$target" + fi + done + echo "Verification of symbolic links:" + ls -l $env_path | grep -E "libcufile.so|libcudart.so|libcufile_rdma.so|libnvjpeg.so|libcurand.so|libnvJitLink.so|libnvrtc-builtins.so|libnvrtc.so" + } + + # Call the function to fix broken symlinks + fix_broken_symlinks + echo " Installing additional requirements." + echo + pip install -r system/requirements/requirements_standalone.txt + curl -LO https://github.com/erew123/alltalk_tts/releases/download/DeepSpeed-14.0/deepspeed-0.14.2+cu121torch2.2-cp311-cp311-manylinux_2_24_x86_64.whl + pip install --upgrade gradio==4.32.2 + echo Installing DeepSpeed... + pip install deepspeed-0.14.2+cu121torch2.2-cp311-cp311-manylinux_2_24_x86_64.whl + rm deepspeed-0.14.2+cu121torch2.2-cp311-cp311-manylinux_2_24_x86_64.whl + conda clean --all --force-pkgs-dirs -y + Create start_environment.sh to run AllTalk + cat << EOF > start_environment.sh +#!/bin/bash +cd "$(dirname "${BASH_SOURCE[0]}")" +if [[ "$(pwd)" =~ " " ]]; then echo This script relies on Miniconda which can not be silently installed under a path with spaces. && exit; fi +# deactivate existing conda envs as needed to avoid conflicts +{ conda deactivate && conda deactivate && conda deactivate; } 2> /dev/null +# config +CONDA_ROOT_PREFIX="$(pwd)/alltalk_environment/conda" +INSTALL_ENV_DIR="$(pwd)/alltalk_environment/env" +# environment isolation +export PYTHONNOUSERSITE=1 +unset PYTHONPATH +unset PYTHONHOME +export CUDA_PATH="$INSTALL_ENV_DIR" +export CUDA_HOME="$CUDA_PATH" +# activate env +bash --init-file <(echo "source \"$CONDA_ROOT_PREFIX/etc/profile.d/conda.sh\" && conda activate \"$INSTALL_ENV_DIR\"") +EOF + cat << EOF > start_alltalk.sh +#!/bin/bash +source "${CONDA_ROOT_PREFIX}/etc/profile.d/conda.sh" +conda activate "${INSTALL_ENV_DIR}" +python script.py +EOF + cat << EOF > start_finetune.sh +#!/bin/bash +export TRAINER_TELEMETRY=0 +source "${CONDA_ROOT_PREFIX}/etc/profile.d/conda.sh" +conda activate "${INSTALL_ENV_DIR}" +python finetune.py +EOF + cat << EOF > start_diagnostics.sh +#!/bin/bash +source "${CONDA_ROOT_PREFIX}/etc/profile.d/conda.sh" +conda activate "${INSTALL_ENV_DIR}" +python diagnostics.py +EOF + chmod +x start_alltalk.sh + chmod +x start_environment.sh + chmod +x start_finetune.sh + chmod +x start_diagnostics.sh + echo + echo + echo -e " Run ${L_YELLOW}./start_alltalk.sh${NC} to start AllTalk." + echo -e " Run ${L_YELLOW}./start_diagnostics.sh${NC} to start Diagnostics." + echo -e " Run ${L_YELLOW}./start_finetune.sh${NC} to start Finetuning." + echo -e " Run ${L_YELLOW}./start_environment.sh${NC} to start the AllTalk Python environment." + echo + echo -e " To install ${L_YELLOW}DeepSpeed${NC} on Linux, there are additional" + echo -e " steps required. Please see the Github or documentation on DeepSeed." + echo + read -p " Press any key to continue. " -n 1 +} + +delete_custom_standalone() { + local env_dir="$PWD/alltalk_environment" + # Check if the alltalk_environment directory exists + if [ ! -d "$env_dir" ]; then + echo " \"$env_dir\" directory does not exist. No need to delete." + read -p " Press any key to continue. " -n 1 + echo + return + fi + # Check if a Conda environment is active and deactivate it + if [ -n "$CONDA_PREFIX" ]; then + echo " Exiting the Conda environment. You may need to start ./atstart.sh again" + conda deactivate + fi + echo "Deleting \"$env_dir\". Please wait." + rm -rf "$env_dir" + if [ -d "$env_dir" ]; then + echo " Failed to delete \"$env_dir\" folder." + echo " Please make sure it is not in use and try again." + else + echo " Environment \"$env_dir\" deleted successfully." + fi + read -p " Press any key to continue. " -n 1 + echo +} + +generate_diagnostics_standalone() { + local env_dir="$PWD/alltalk_environment" + local conda_root_prefix="${env_dir}/conda" + local install_env_dir="${env_dir}/env" + if [ ! -d "${install_env_dir}" ]; then + echo + echo " The Conda environment at '${install_env_dir}' does not exist." + echo " Please install the environment before proceeding." + echo + read -p " Press any key to return to the menu. " -n 1 + echo + return + fi + source "${conda_root_prefix}/etc/profile.d/conda.sh" + conda activate "${install_env_dir}" + if ! python diagnostics.py; then + echo + echo " There was an error running diagnostics." + echo + read -p " Press any key to return to the menu. " -n 1 + echo + return + fi + echo + echo " Diagnostics completed successfully." + read -p " Press any key to continue. " -n 1 + echo +} + +gitpull_standalone() { + local env_dir="$PWD/alltalk_environment" + local conda_root_prefix="${env_dir}/conda" + local install_env_dir="${env_dir}/env" + if [ ! -d "${install_env_dir}" ]; then + echo + echo " The Conda environment at '${install_env_dir}' does not exist." + echo " Please install the environment before proceeding." + echo + read -p " Press any key to return to the menu. " -n 1 + echo + return + fi + source "${conda_root_prefix}/etc/profile.d/conda.sh" + conda activate "${install_env_dir}" + if ! git pull; then + echo + echo " There was an error pulling from Github." + echo + read -p " Press any key to return to the menu. " -n 1 + echo + return + fi + echo + echo " AllTalk Updated from Github. Please re-apply." + echo " the latest requirements file. (Option 3)" + echo + read -p " Press any key to continue. " -n 1 + echo +} + +pippurge_standalone() { + if ! pip cache purge; then + echo + echo " There was an error." + echo + read -p " Press any key to return to the menu. " -n 1 + echo + return + fi + echo + echo " The PIP cache has been purged." + echo + read -p " Press any key to continue. " -n 1 + echo +} + +reapply_standalone() { + local env_dir="$PWD/alltalk_environment" + local conda_root_prefix="${env_dir}/conda" + local install_env_dir="${env_dir}/env" + if [ ! -d "${install_env_dir}" ]; then + echo + echo " The Conda environment at '${install_env_dir}' does not exist." + echo " Please install the environment before proceeding." + echo + read -p " Press any key to return to the menu. " -n 1 + echo + return + fi + source "${conda_root_prefix}/etc/profile.d/conda.sh" + conda activate "${install_env_dir}" + echo + echo " Downloading and installing PyTorch. This step can take a long time" + echo " depending on your internet connection and hard drive speed. Please" + echo " be patient." + pip install torch>=2.2.1+cu121 torchaudio>=2.2.1+cu121 --upgrade --force-reinstall --extra-index-url https://download.pytorch.org/whl/cu121 + echo + echo " Installing additional requirements." + echo + pip install -r system/requirements/requirements_standalone.txt + echo + echo " Requirements have been re-applied/updated." + echo + read -p " Press any key to continue. " -n 1 + echo +} + + +# Start the main menu +main_menu diff --git a/confignew.json b/confignew.json new file mode 100644 index 0000000..2ca2d86 --- /dev/null +++ b/confignew.json @@ -0,0 +1,73 @@ +{ + "branding": "AllTalk ", + "delete_output_wavs": "Disabled", + "gradio_interface": true, + "output_folder": "outputs", + "gradio_port_number": 7852, + "firstrun_model": true, + "firstrun_splash": true, + "launch_gradio": true, + "transcode_audio_format": "Disabled", + "theme": { + "file": null, + "class": "gradio/base" + }, + "rvc_settings": { + "rvc_enabled": false, + "rvc_char_model_file": "Disabled", + "rvc_narr_model_file": "Disabled", + "split_audio": true, + "autotune": false, + "pitch": 0, + "filter_radius": 3, + "index_rate": 0.5, + "rms_mix_rate": 1, + "protect": 0.5, + "hop_length": 79, + "f0method": "fcpe", + "embedder_model": "hubert", + "training_data_size": 45000 + }, + "tgwui": { + "tgwui_activate_tts": true, + "tgwui_autoplay_tts": true, + "tgwui_narrator_enabled": "false", + "tgwui_non_quoted_text_is": "true", + "tgwui_deepspeed_enabled": false, + "tgwui_language": "English", + "tgwui_lowvram_enabled": false, + "tgwui_pitch_set": 0, + "tgwui_temperature_set": 0.75, + "tgwui_repetitionpenalty_set": 10, + "tgwui_generationspeed_set": 1, + "tgwui_narrator_voice": "female_01.wav", + "tgwui_show_text": true, + "tgwui_character_voice": "female_01.wav", + "tgwui_rvc_char_voice": "Disabled", + "tgwui_rvc_narr_voice": "Disabled" + }, + "api_def": { + "api_port_number": 7851, + "api_allowed_filter": "[^a-zA-Z0-9\\s.,;:!?\\-\\'\"$\\u0400-\\u04FF\\u00C0-\\u00FF\\u0150\\u0151\\u0170\\u0171\\u0900-\\u097F\\u2018\\u2019\\u201C\\u201D\\u3001\\u3002\\u3040-\\u309F\\u30A0-\\u30FF\\u4E00-\\u9FFF\\u3400-\\u4DBF\\uF900-\\uFAFF\\u0600-\\u06FF\\u0750-\\u077F\\uFB50-\\uFDFF\\uFE70-\\uFEFF\\uAC00-\\uD7A3\\u1100-\\u11FF\\u3130-\\u318F\\uFF01\\uFF0c\\uFF1A\\uFF1B\\uFF1F]", + "api_length_stripping": 3, + "api_max_characters": 2000, + "api_use_legacy_api": false, + "api_legacy_ip_address": "127.0.0.1", + "api_text_filtering": "standard", + "api_narrator_enabled": "false", + "api_text_not_inside": "character", + "api_language": "en", + "api_output_file_name": "myoutputfile", + "api_output_file_timestamp": true, + "api_autoplay": false, + "api_autoplay_volume": 0.5 + }, + "debugging": { + "debug_transcode": false, + "debug_tts": false, + "debug_openai": false, + "debug_concat": false, + "debug_tts_variables": false, + "debug_rvc": false + } +} \ No newline at end of file diff --git a/diagnostics.py b/diagnostics.py new file mode 100644 index 0000000..2ad8391 --- /dev/null +++ b/diagnostics.py @@ -0,0 +1,335 @@ +import platform +import subprocess +import logging +from importlib_metadata import distributions +import torch +import os +import re +import sys +import glob +import site +import textwrap +import packaging.version +import packaging.specifiers +from packaging.specifiers import SpecifierSet +from packaging.version import parse as parse_version +from pathlib import Path + +try: + import psutil +except ImportError: + print("psutil not found. Installing...") + subprocess.run(['pip', 'install', 'psutil']) + import psutil + +def get_requirements_file(): + this_dir = Path(__file__).parent + requirements_dir = this_dir / 'system' / 'requirements' + requirements_files = list(requirements_dir.glob('requirements*.txt')) + + if not requirements_files: + print("\033[91mNo requirements files found.\033[0m") + return None + + print("\033[94m\n Select a requirements file to check against.") + print("\033[94m Or press Enter for default 'requirements_standalone.txt'):\033[0m\n") + for i, file_path in enumerate(requirements_files, start=1): + print(f" {i}. {file_path.name}") + + choice = input("\n Enter the number of your choice: ") + try: + choice = int(choice) - 1 + return str(requirements_files[choice]) + except (ValueError, IndexError): + return str(requirements_dir / "requirements_standalone.txt") + +logging.basicConfig(filename='diagnostics.log', + filemode='w', + level=logging.INFO, + format='%(message)s') + +def get_gpu_info(): + try: + result = subprocess.run(['nvidia-smi'], stdout=subprocess.PIPE, text=True) + return result.stdout + except FileNotFoundError: + return "NVIDIA GPU information not available" + +def get_cpu_info(): + cpu_info = { + 'physical_cores': psutil.cpu_count(logical=False), + 'total_cores': psutil.cpu_count(logical=True), + 'max_frequency': psutil.cpu_freq().max + } + return cpu_info + +def get_disk_info(): + disk_info = [] + partitions = psutil.disk_partitions() + for p in partitions: + usage = psutil.disk_usage(p.mountpoint) + disk_info.append(f" Drive: {p.device} | Total: {usage.total / (1024 ** 3):.2f} GB | Used: {usage.used / (1024 ** 3):.2f} GB | Free: {usage.free / (1024 ** 3):.2f} GB | Type: {p.fstype}") + return disk_info + +def is_port_in_use(port): + for conn in psutil.net_connections(): + if conn.laddr.port == port: + return True + return False + +def satisfies_wildcard(installed_version, required_version): + if '*' in required_version: + required_parts = required_version.split('.') + installed_parts = installed_version.split('.') + for req, inst in zip(required_parts, installed_parts): + if req != '*' and req != inst: + return False + return True + return False + +def test_cuda(): + cuda_available = torch.cuda.is_available() + if cuda_available: + try: + torch.tensor([1.0, 2.0]).cuda() + return "Success - CUDA is available and working." + except Exception as e: + return f"Fail - CUDA is available but not working. Error: {e}" + else: + return "Fail - CUDA is not available." + +def get_cuda_details(): + if torch.cuda.is_available(): + device_id = torch.cuda.current_device() + device_name = torch.cuda.get_device_name(device_id) + device_memory = torch.cuda.get_device_properties(device_id).total_memory / (1024 ** 3) + cuda_version = torch.version.cuda + return device_name, device_memory, cuda_version + else: + return None, None, None + +def find_files_in_path_with_wildcard(pattern): + site_packages_path = site.getsitepackages() + found_paths = [] + sub_directory = "nvidia/cublas" + if platform.system() == "Linux": + sub_directory = os.path.join(sub_directory, "lib") + else: + sub_directory = os.path.join(sub_directory, "bin") + for directory in site_packages_path: + search_directory = os.path.join(directory, sub_directory) + for file_path in glob.glob(os.path.join(search_directory, pattern)): + if os.path.isfile(file_path): + found_paths.append(file_path) + return found_paths + +def log_system_info(): + os_version = platform.system() + " " + platform.version() + cuda_home = os.environ.get('CUDA_HOME', 'N/A') + gpu_info = get_gpu_info() + python_version = platform.python_version() + torch_version = torch.__version__ + cuda_test_result = test_cuda() + cuda_device_name, cuda_device_memory, cuda_version = get_cuda_details() + cpu_info = get_cpu_info() + disk_info = get_disk_info() + + try: + virtual_memory = psutil.virtual_memory() + total_ram = f"{virtual_memory.total / (1024 ** 3):.2f} GB" + available_ram = f"{virtual_memory.available / (1024 ** 3):.2f} GB" + system_ram = f"{available_ram} available out of {total_ram} total" + except NameError: + print("psutil is not installed. Unable to check system RAM.") + system_ram = "N/A" + + port_status = "N/A" + if 'psutil' in globals(): + port_to_check = 7851 + if is_port_in_use(port_to_check): + port_status = f"Port {port_to_check} is in use." + else: + port_status = f"Port {port_to_check} is available." + + package_versions = {d.metadata['Name']: d.version for d in distributions()} + python_executable = sys.executable + python_version_info = sys.version_info + python_virtual_env = os.environ.get('VIRTUAL_ENV', 'N/A') + conda_env = os.environ.get('CONDA_DEFAULT_ENV', 'N/A') + search_path = sys.path + path_env = os.environ.get('PATH', 'N/A') + file_name = 'cublas64_11.*' if platform.system() == "Windows" else 'libcublas.so.11*' + found_paths = find_files_in_path_with_wildcard(file_name) + requirements_file = get_requirements_file() + + if requirements_file: + required_packages = {} + installed_packages = {} + try: + with open(requirements_file, 'r') as req_file: + requirements = [line.strip() for line in req_file] + for req in requirements: + if ';' in req: + continue # Skip OS-specific requirements + match = re.match(r'([^\s>=]+)\s*([>=<]+)\s*([^,]+)', req) + if match: + package_name, operator, version_spec = match.groups() + installed_version = package_versions.get(package_name, 'Not installed') + if installed_version != 'Not installed': + required_packages[package_name] = (operator, version_spec) + installed_packages[package_name] = installed_version + except FileNotFoundError: + print(f"\n{requirements_file} not found. Skipping version checks.") + logging.info(f"NOTE {requirements_file} not found. Skipping version checks.") + + logging.info(f"OPERATING SYSTEM:") + logging.info(f" OS Version: {os_version}") + logging.info(f" Note: Windows 11 will list as build is 10.x.22xxx") + logging.info(f"\nHARDWARE ENVIRONMENT:") + logging.info(f" CPU: Physical Cores: {cpu_info['physical_cores']}, Total Cores: {cpu_info['total_cores']}, Max Frequency: {cpu_info['max_frequency']} MHz") + logging.info(f" System RAM: {system_ram}") + logging.info(f"\nGPU INFORMATION:") + logging.info(f" {gpu_info}") + logging.info(f" CUDA Device : {cuda_device_name}") + logging.info(f" CUDA Memory : {cuda_device_memory:.2f} GB") + logging.info(f" CUDA Version: {cuda_version}") + logging.info("DISK INFORMATION:") + for disk in disk_info: + logging.info(disk) + logging.info("\nNETWORK PORT:") + logging.info(f" Port Status : {port_status}") + logging.info("\nCUDA :") + logging.info(f" CUDA Working: {cuda_test_result}") + logging.info(f" CUDA_HOME : {cuda_home}") + if found_paths: + logging.info(f" Cublas64_11 Path: {', '.join(found_paths)}") + else: + logging.info(f" Cublas64_11 Path: Not found in any search path directories.") + logging.info("\nPYTHON & PYTORCH:") + logging.info(f" Torch Version: {torch_version}") + logging.info(f" Python Version: {python_version}") + logging.info(f" Python Version Info: {python_version_info}") + logging.info(f" Python Executable: {python_executable}") + logging.info(f" Python Virtual Environment: {python_virtual_env} (Should be N/A when in Text-generation-webui Conda Python environment)") + logging.info(f" Conda Environment: {conda_env}") + logging.info("\nPython Search Path:") + for path in search_path: + logging.info(f" {path}") + logging.info("\nOS SEARCHPATH ENVIRONMENT:") + for path in path_env.split(';'): + logging.info(f" {path}") + + if required_packages: + logging.info("\nPACKAGE VERSIONS vs REQUIREMENTS FILE:") + max_package_length = max(len(package) for package in required_packages.keys()) + for package_name, (operator, required_version) in required_packages.items(): + installed_version = installed_packages.get(package_name, 'Not installed') + logging.info(f" {package_name.ljust(max_package_length)} Required: {operator} {required_version.ljust(12)} Installed: {installed_version}") + + logging.info("\nPYTHON PACKAGES:") + for package, version in package_versions.items(): + logging.info(f" {package}>= {version}") + + deepspeed_requirements = ( + f"\nDeepSpeed Installation Requirements:\n" + f" OS : {platform.system()}\n" + f" Python : {python_version}\n" + f" PyTorch: {torch_version}\n" + f" CUDA : {'N/A' if not cuda_version else cuda_version}\n" + f"\nTo install DeepSpeed, run the following command based on your environment:" + f"\n pip install deepspeed== --no-cache-dir" + f"\nEnsure to choose the correct DeepSpeed version matching your environment." + ) + + logging.info(deepspeed_requirements) + + print(f"\n\033[94mOS Version:\033[0m \033[92m{os_version}\033[0m") + print(f"\033[94mOS Ver note:\033[0m \033[92m(Windows 11 will say build is 10.x.22xxx)\033[0m") + print(f"\033[94mSystem RAM:\033[0m \033[92m{system_ram}\033[0m") + for disk in disk_info: + print(f"\033[94mDisk:\033[0m \033[92m{disk}\033[0m") + print(f"\033[94m\nGPU Information:\033[0m {gpu_info}") + print(f"\033[94mPort Status :\033[0m \033[92m{port_status}\033[0m") + print(f"\033[0m\n If this network port is unavailable because something else is using it, your") + print(f"\033[0m firewall or antivirus is blocking it, AllTalk will fail to start.") + print(f"\n\033[94mCUDA Device :\033[0m \033[92m{cuda_device_name}\033[0m") + print(f"\033[94mCUDA Memory :\033[0m \033[92m{cuda_device_memory:.2f} GB\033[0m") + print(f"\033[94mCUDA Version:\033[0m \033[92m{cuda_version}\033[0m") + if "Fail" in cuda_test_result: + print(f"\033[91mCUDA Working:\033[0m \033[91m{cuda_test_result}\033[0m") + else: + print(f"\033[94mCUDA Working:\033[0m \033[92m{cuda_test_result}\033[0m") + print(f"\033[94mCUDA_HOME :\033[0m \033[92m{cuda_home}\033[0m") + if found_paths: + print(f"\033[94mCublas64_11 :\033[0m \033[92m{', '.join(found_paths)}\033[0m") + else: + print(f"\033[94mCublas64_11 :\033[0m \033[91mNot found in any search path directories.\033[0m") + print(f"\033[0m\n If you do not have a CUDA version and CUDA is failing, you will not have your") + print(f"\033[0m TTS engines being accelerated with CUDA. CUDA is only available on Nvidia GPU") + print(f"\033[0m and is setup by installing PyTorch with a correct CUDA version in your Python") + print(f"\033[0m virtual environment.") + print(f"\033[94m\nPyTorch Version :\033[0m \033[92m{torch_version}\033[0m") + print(f"\033[94mPython Version :\033[0m \033[92m{platform.python_version()}\033[0m") + print(f"\033[94mPython Executable:\033[0m \033[92m{python_executable}\033[0m") + print(f"\033[0m\n AllTalk has been validated to run on Python 3.11.x versions and also PyTorch") + print(f"\033[0m 2.0.x to 2.2.x. Earlier or later versions of PyTorch and Python may not work.") + print(f"\033[94m\nConda Environment:\033[0m \033[92m{conda_env}\033[0m") + print(f"\n\033[94mPython Search Path:\033[0m") + for path in search_path: + print(f" {path}") + print(f"\033[0m\n If you are correctly in the AllTalk Python virtual environment, you will") + print(f"\033[0m expect to see 'alltalk_environment' as part of the path of the above folders.") + print(f"\033[0m If you are running AllTalk as part of Text-generation-webui, you should see ") + print(f"\033[0m 'text-generation-webui' listed in the path of the above folders. If you dont") + print(f"\033[0m see them mentioned, you have probably not started the correct Python virtual") + print(f"\033[0m environment.") + if required_packages: + print("\033[94m\nRequirements file package comparison:\033[0m") + max_package_length = max(len(package) for package in required_packages.keys()) + + for package_name, (operator, required_version) in required_packages.items(): + installed_version = installed_packages.get(package_name, 'Not installed') + required_version_no_build = required_version.split("+")[0] + + if '*' in required_version: + condition_met = satisfies_wildcard(installed_version, required_version) + else: + required_specifier = SpecifierSet(f"{operator}{required_version_no_build}") + installed_version = parse_version(installed_version) + condition_met = installed_version in required_specifier + + color_required = "\033[92m" if condition_met else "\033[91m" + color_installed = "\033[92m" if condition_met else "\033[91m" + + print(f" {package_name.ljust(max_package_length)} Required: {color_required}{operator} {required_version.ljust(12)}\033[0m Installed: {color_installed}{installed_version}\033[0m") + + print("\033[94m\nRequirements file specifier meanings:\033[0m") + explanation = textwrap.dedent(""" + == Exact version != Any version except < Less than + <= Less than or equal to > Greater than >= Greater/equal to + ~ Compatible release ; Environment marker AND Logical AND + OR Logical OR + """) + print(explanation.strip()) + + print(f"\033[94m\nDeepSpeed Installation Requirements:\033[0m") + print("\n DeepSpeed is HIGHLY specific. It MUST be compiled for the correct major") + print(" revision of Python (e.g. 3.11.x), PyTorch (e.g. 2.2.x), and the CUDA version") + print(" that your PyTorch is using (e.g. 11.8 or 12.1). If any of these three") + print(" components change version number (e.g. you update to PyTorch 2.3.x or Python") + print(" 3.12.x), you will need to uninstall DeepSpeed and install a build that matches") + print(" your new Python environment.") + print("\n Here are the details of your current Python environment:") + print(f" OS: \033[92m{platform.system()}\033[0m Python: \033[92m{python_version}\033[0m PyTorch: \033[92m{torch_version}\033[0m CUDA: \033[92m{'N/A' if not cuda_version else cuda_version}\033[0m") + print("\n Therefore, you would need a DeepSpeed build for the above configuration. If") + print(" you change ANY of the versions, remember to reinstall DeepSpeed to ensure") + print(" compatibility with your updated environment. If the copy of DeepSpeed you have") + print(" is NOT built to match the above, it will error/fail/crash etc.\n\n") + print(f"\033[94mA diagnostic log file called \033[92mdiagnostics.log\033[94m has been created in the AllTalk") + print(f"\033[94mfolder. Up above, on SCREEN you can read a few sections to help you diagnose\033[0m") + print(f"\033[94many possible problems with your configuration or setup. So please take the\033[0m") + print(f"\033[94mtime to check them. \033[0m") + print(f"\033[94m\nIf you are going to ask for support, please upload the \033[92mdiagnostics.log\033[94m file.\033[0m") + +if __name__ == "__main__": + log_system_info() diff --git a/finetune.py b/finetune.py new file mode 100644 index 0000000..4d0561f --- /dev/null +++ b/finetune.py @@ -0,0 +1,1797 @@ +import argparse +import os +import sys +import platform +import site +import tempfile +import signal +import gradio as gr +import torch +import torchaudio +import traceback +from TTS.tts.configs.xtts_config import XttsConfig +from TTS.tts.models.xtts import Xtts +import random +import gc +import time +import shutil +import psutil +import pandas as pd +import glob +import json +from pathlib import Path +from tqdm import tqdm +from faster_whisper import WhisperModel +# Use a local Tokenizer to resolve Japanese support +# from TTS.tts.layers.xtts.tokenizer import multilingual_cleaners +from system.ft_tokenizer.tokenizer import multilingual_cleaners +import importlib.metadata as metadata +from packaging import version + +# STARTUP VARIABLES +this_dir = Path(__file__).parent.resolve() +audio_folder = this_dir / "finetune" / "put-voice-samples-in-here" +out_path = this_dir / "finetune" / "tmp-trn" +progress = 0 +theme = gr.themes.Default() +refresh_symbol = '🔄' +os.environ['TRAINER_TELEMETRY'] = '0' +pfc_status = "pass" +base_path = this_dir / "models" / "xtts" + +# Set the Gradio temporary directory +gradio_temp_dir = this_dir / "finetune" / "gradio_temp" +os.environ["GRADIO_TEMP_DIR"] = str(gradio_temp_dir) + +######################## +#### Find All Model #### +######################## +base_model_detected = False +def scan_models_folder(): + global base_model_detected + models_folder = base_path + available_models = {} + required_files = ["config.json", "model.pth", "mel_stats.pth", "speakers_xtts.pth", "vocab.json", "dvae.pth"] + try: + for subfolder in models_folder.iterdir(): + if subfolder.is_dir(): + model_name = subfolder.name + if all(subfolder.joinpath(file).exists() for file in required_files): + available_models[model_name] = True + base_model_detected = True + else: + print(f"[FINETUNE] \033[91mWarning\033[0m: Model folder '{model_name}' is missing required files") + if not available_models: + available_models["No Model Available"] = False + base_model_detected = False + except FileNotFoundError: + print("\n[FINETUNE] \033[91mError\033[0m: No XTTS models folder found. You have not yet downloaded any models or no XTTS") + print("[FINETUNE] \033[91mError\033[0m: models can be found. Please run AllTalk and download an XTTS model that can be") + print("[FINETUNE] \033[91mError\033[0m: used for training. Or place a full model in the following location") + print("[FINETUNE] \033[91mError\033[0m: \033[93m\\models\\xtts\\{modelfolderhere}\033[0m") + sys.exit(1) # Exit the script with an error status + + return available_models + +# Get available models +available_models = scan_models_folder() + +####################### +#### DIAGS for PFC #### +####################### + +def check_disk_space(): + global pfc_status + # Get the current working directory + current_directory = os.getcwd() + # Get the disk usage statistics for the current directory's disk + disk_usage = shutil.disk_usage(current_directory) + # Convert the free space to GB (1GB = 1 << 30 bytes) + free_space_gb = disk_usage.free / (1 << 30) + # Check if the free space is more than 18GB + is_more_than_18gb = free_space_gb > 18 + disk_space_icon = "✅" + if not is_more_than_18gb: + disk_space_icon ="❌" + pfc_status = "fail" # Update global status if disk space check fails + # Generating the markdown text for disk space check + disk_space_markdown = f""" + ### 🟩 Disk Space Check +      {disk_space_icon} **Disk Space (> 18 GB):** {'' if is_more_than_18gb else 'You have less than 18GB on this disk '} {free_space_gb:.2f} GB + """ + return disk_space_markdown + +def test_cuda(): + global pfc_status + cuda_home = os.environ.get('CUDA_HOME', 'N/A') + cuda_available = torch.cuda.is_available() + if cuda_available: + try: + # Attempt to create a tensor on GPU + torch.tensor([1.0, 2.0]).cuda() + cuda_status = "CUDA is available and working." + cuda_icon = "✅" + except Exception as e: + cuda_status = f"CUDA is available but not working. Error: {e}" + cuda_icon = "❌" + pfc_status = "fail" # Update global status + else: + cuda_status = "CUDA is not available." + pfc_status = "fail" # Update global status + return cuda_status, cuda_icon, cuda_home + +def find_files_in_path_with_wildcard(pattern): + # Get the site-packages directory of the current Python environment + site_packages_path = site.getsitepackages() + found_paths = [] + # Adjust the sub-directory based on the operating system + sub_directory = "nvidia/cublas" + if platform.system() == "Linux": + sub_directory = os.path.join(sub_directory, "lib") + else: + sub_directory = os.path.join(sub_directory, "bin") + # Iterate over each site-packages directory (there can be more than one) + for directory in site_packages_path: + # Construct the search directory path + search_directory = os.path.join(directory, sub_directory) + # Use glob to find all files matching the pattern in this directory + for file_path in glob.glob(os.path.join(search_directory, pattern)): + if os.path.isfile(file_path): # Ensure it's a file + found_paths.append(file_path) + return found_paths + + +def test_cuda(): + if torch.cuda.is_available(): + pytorch_cuda_version = torch.version.cuda + return f'CUDA {pytorch_cuda_version} is available in this Python environment', '✅', torch.cuda.get_device_name(0) + else: + return 'CUDA is not available in this Python environment', '❌', 'None' + +def generate_cuda_markdown(): + global pfc_status + pfc_status = "pass" # Initialize global status as pass + + # Check CUDA availability and get CUDA home path + cuda_status, cuda_icon, cuda_home = test_cuda() + + # Check for specific CUDA library files + file_name = 'cublas64_11.*' if platform.system() == "Windows" else 'libcublas.so.11*' + found_paths = find_files_in_path_with_wildcard(file_name) + if found_paths: + found_paths_str = ' '.join(str(path) for path in found_paths) + found_path_icon = '✅' + else: + found_paths_str = "cublas64_11 is not accessible." + found_path_icon = '❌' + pfc_status = "fail" # Update global status + + # Check PyTorch version and CUDA version + pytorch_version = torch.__version__ + pytorch_cuda_version = torch.version.cuda + + if pytorch_cuda_version in ['11.8', '12.1']: + pytorch_cuda_version_status = '' + pytorch_icon = '✅' + else: + pytorch_cuda_version_status = 'Pytorch CUDA version problem ' + pytorch_icon = '❌' + pfc_status = "fail" # Update global status + + cuda_markdown = f""" + ### 🟨 CUDA Information
+      {found_path_icon} **Cublas64_11 found:** {found_paths_str} +      {pytorch_icon} **CUDA_HOME path:** {cuda_home} **(Will list your GPU if no specifc path set, which is ok)** + """ + pytorch_markdown = f""" + ### 🟦 Python & Pytorch Information +      {pytorch_icon} **PyTorch Version:** {pytorch_cuda_version_status} {torch.__version__} +      {cuda_icon} **CUDA is working:** {cuda_status} + """ + return cuda_markdown, pytorch_markdown + +def get_system_ram_markdown(): + global pfc_status + virtual_memory = psutil.virtual_memory() + total_ram_gb = virtual_memory.total / (1024 ** 3) + available_ram_gb = virtual_memory.available / (1024 ** 3) + used_ram_percentage = virtual_memory.percent + + # Check if the available RAM is less than 8GB + warning_if_low_ram = available_ram_gb < 8 + + # Decide the message based on the available RAM + ram_status_message = "Warning" if warning_if_low_ram else "" + ram_status_icon = "⚠️" if warning_if_low_ram else "✅" + + if torch.cuda.is_available(): + gpu_device_id = torch.cuda.current_device() + gpu_device_name = torch.cuda.get_device_name(gpu_device_id) + # Get the total and available memory in bytes, then convert to GB + gpu_total_mem_gb = torch.cuda.get_device_properties(gpu_device_id).total_memory / (1024 ** 3) + # gpu_available_mem_gb = (torch.cuda.get_device_properties(gpu_device_id).total_memory - torch.cuda.memory_allocated(gpu_device_id)) / (1024 ** 3) + # gpu_available_mem_gb = (torch.cuda.get_device_properties(gpu_device_id).total_memory - torch.cuda.memory_reserved(gpu_device_id)) / (1024 ** 3) + gpu_reserved_mem_gb = torch.cuda.memory_reserved(gpu_device_id) / (1024 ** 3) + gpu_available_mem_gb = gpu_total_mem_gb - gpu_reserved_mem_gb + # Check if total or available memory is less than 11 GB and set icons + gpu_total_status_icon = "⚠️" if gpu_total_mem_gb < 12 else "✅" + gpu_available_status_icon = "⚠️" if gpu_available_mem_gb < 12 else "✅" + gpu_status_icon = "✅" + else: + gpu_status_icon = "⚠️" + gpu_device_name = "Cannot detect a CUDA card" + gpu_total_mem_gb = "Cannot detect a CUDA card" + gpu_available_mem_gb = "Cannot detect a CUDA card" + gpu_total_status_icon = gpu_status_icon + gpu_available_status_icon = gpu_status_icon + + system_ram_markdown = f""" + ### 🟪 System RAM and VRAM Information
+      {ram_status_icon} **Total RAM:** {total_ram_gb:.2f} GB
+      {ram_status_icon} **Available RAM:** {ram_status_message + ' - Available RAM is less than 8 GB. You have ' if warning_if_low_ram else ''} {available_ram_gb:.2f} GB available ({used_ram_percentage:.2f}% used)

+      {gpu_status_icon} **GPU Name:** {gpu_device_name}
+      {gpu_total_status_icon} **GPU Total RAM:** {gpu_total_mem_gb:.2f} GB
+      {gpu_available_status_icon} **GPU Available RAM:** {gpu_available_mem_gb:.2f} GB
+ """ + return system_ram_markdown + +def generate_base_model_markdown(base_model_detected): + global pfc_status + base_model_status = 'Base model detected' if base_model_detected else 'Base model not detected' + base_model_icon = '✅' if base_model_detected else '❌' + base_model_markdown = f""" + ### ⬛ XTTS Base Model Detection +      {base_model_icon} **Base XTTS Model Status:** {base_model_status} + """ + return base_model_markdown + +def check_tts_version(required_version="0.24.0"): + global pfc_status + try: + # Get the installed version of TTS + installed_version = metadata.version("coqui-tts") + # Check if the installed version meets the required version + if version.parse(installed_version) >= version.parse(required_version): + tts_status = f"TTS version {installed_version} is installed and meets the requirement." + tts_status_icon = "✅" + else: + tts_status = f"❌ Fail - TTS version {installed_version} is installed but does not meet the required version {required_version}." + tts_status_icon = "❌" + pfc_status = "fail" # Update global status + except metadata.PackageNotFoundError: + # If TTS is not installed + tts_status = "TTS is not installed." + pfc_status = "fail" # Update global status + tts_markdown = f""" + ### 🟥 TTS Information
+      {tts_status_icon} **TTS Version:** {tts_status} + """ + return tts_markdown + +# Disk space check results to append to the Markdown +disk_space_results = check_disk_space() +cuda_results, pytorch_results = generate_cuda_markdown() +system_ram_results = get_system_ram_markdown() +base_model_results = generate_base_model_markdown(base_model_detected) +tts_version_status = check_tts_version() + +def pfc_check_fail(): + global pfc_status + if pfc_status == "fail": + print("[FINETUNE]") + print("[FINETUNE] \033[91m****** WARNING PRE-FLIGHT CHECKS FAILED ******* WARNING PRE-FLIGHT CHECKS FAILED *****\033[0m") + print("[FINETUNE] \033[91m* Please refer to the \033[93mPre-flight check tab \033[91mand resolve any issues before continuing. *\033[0m") + print("[FINETUNE] \033[91m*********** Expect errors and failures if you do not resolve these issues. ***********\033[0m") + print("[FINETUNE]") + return + +##################### +#### STEP 1 BITS #### +##################### + +def create_temp_folder(): + temp_folder = os.path.join(os.path.dirname(__file__), 'temp_files') + os.makedirs(temp_folder, exist_ok=True) + return temp_folder + +def create_temporary_file(folder, suffix=".wav"): + unique_filename = f"custom_tempfile_{int(time.time())}_{random.randint(1, 1000)}{suffix}" + return os.path.join(folder, unique_filename) + +def format_audio_list(target_language, whisper_model, out_path, max_sample_length, eval_split_number, speaker_name_input, gradio_progress=None): + buffer = 0.2 + max_duration = float(max_sample_length) # Ensure max_duration is a float + eval_percentage = eval_split_number / 100.0 + speaker_name = speaker_name_input + audio_total_size = 0 + os.makedirs(out_path, exist_ok=True) + temp_folder = os.path.join(out_path, "temp") + os.makedirs(temp_folder, exist_ok=True) + audio_folder = os.path.join(out_path, "wavs") + os.makedirs(audio_folder, exist_ok=True) + original_samples_folder = os.path.join(out_path, "..", "put-voice-samples-in-here") + print("[FINETUNE] Preparing Audio/Generating the dataset") + + # Write the target language to lang.txt in the output directory + lang_file_path = os.path.join(out_path, "lang.txt") + current_language = None + if os.path.exists(lang_file_path): + with open(lang_file_path, 'r', encoding='utf-8') as existing_lang_file: + current_language = existing_lang_file.read().strip() + + if current_language != target_language: + with open(lang_file_path, 'w', encoding='utf-8') as lang_file: + lang_file.write(target_language + '\n') + print("[FINETUNE] Updated lang.txt with the target language.") + else: + print("[FINETUNE] The existing language matches the target language") + + device = "cuda" if torch.cuda.is_available() else "cpu" + asr_model = WhisperModel(whisper_model, device=device, compute_type="float32") + + metadata = {"audio_file": [], "text": [], "speaker_name": []} + + existing_metadata = {'train': None, 'eval': None} + train_metadata_path = os.path.join(out_path, "metadata_train.csv") + eval_metadata_path = os.path.join(out_path, "metadata_eval.csv") + + if os.path.exists(train_metadata_path): + existing_metadata['train'] = pd.read_csv(train_metadata_path, sep="|") + print("[FINETUNE] Existing training metadata found and loaded.") + + if os.path.exists(eval_metadata_path): + existing_metadata['eval'] = pd.read_csv(eval_metadata_path, sep="|") + print("[FINETUNE] Existing evaluation metadata found and loaded.") + + # Process original voice samples to create WAV files + original_audio_files = [os.path.join(original_samples_folder, file) for file in os.listdir(original_samples_folder) if file.endswith(('.mp3', '.flac', '.wav'))] + + if not original_audio_files: + print(f"[FINETUNE] No audio files found in {original_samples_folder}. Skipping processing.") + return None, None, 0 + + for idx, audio_path in tqdm(enumerate(original_audio_files)): + audio_file_name_without_ext, _ = os.path.splitext(os.path.basename(audio_path)) + temp_audio_path = os.path.join(temp_folder, f"{audio_file_name_without_ext}.wav") + + try: + shutil.copy2(audio_path, temp_audio_path) + except Exception as e: + print(f"[FINETUNE] Error copying file: {e}") + continue + + wav, sr = torchaudio.load(temp_audio_path, format="wav") + wav = torch.as_tensor(wav).clone().detach().t().to(torch.float32), sr + + prefix_check = f"wavs/{audio_file_name_without_ext}_" + skip_processing = False + + for key in ['train', 'eval']: + if existing_metadata[key] is not None: + mask = existing_metadata[key]['audio_file'].str.startswith(prefix_check) + if mask.any(): + print(f"[FINETUNE] Segments from {audio_file_name_without_ext} have been previously processed; skipping...") + skip_processing = True + audio_total_size = 121 + break + + if skip_processing: + continue + + wav, sr = torchaudio.load(audio_path) + if wav.size(0) != 1: + wav = torch.mean(wav, dim=0, keepdim=True) + + wav = wav.squeeze() + audio_total_size += (wav.size(-1) / sr) + + segments, _ = asr_model.transcribe(audio_path, vad_filter=True, word_timestamps=True, language=target_language) + segments = list(segments) + i = 0 + sentence = "" + sentence_start = None + first_word = True + words_list = [] + for _, segment in enumerate(segments): + words = list(segment.words) + words_list.extend(words) + + for word_idx, word in enumerate(words_list): + if first_word: + sentence_start = word.start + if word_idx == 0: + sentence_start = max(sentence_start - buffer, 0) + else: + previous_word_end = words_list[word_idx - 1].end + sentence_start = max(sentence_start - buffer, (previous_word_end + sentence_start) / 2) + sentence = word.word + first_word = False + else: + sentence += " " + word.word + + # Split segment if it ends with punctuation or exceeds max_duration + if word.word[-1] in ["!", ".", "?"] or (word.end - sentence_start) > max_duration: + sentence = sentence.strip() + # Clean and normalize the sentence + sentence = multilingual_cleaners(sentence, target_language) + audio_file_name, _ = os.path.splitext(os.path.basename(audio_path)) + audio_file = f"{audio_file_name}_{str(i).zfill(8)}.wav" + + if word_idx + 1 < len(words_list): + next_word_start = words_list[word_idx + 1].start + else: + next_word_start = (wav.shape[0] - 1) / sr + + word_end = min((word.end + next_word_start) / 2, word.end + buffer) + + absolute_path = os.path.join(audio_folder, audio_file) # Save to the audio_folder + os.makedirs(os.path.dirname(absolute_path), exist_ok=True) + i += 1 + first_word = True + + audio = wav[int(sr * sentence_start):int(sr * word_end)].unsqueeze(0) + + # If the audio is too long, split it into smaller chunks + while audio.size(-1) > max_duration * sr: + split_audio = audio[:, :int(max_duration * sr)] + audio = audio[:, int(max_duration * sr):] + split_file_name = f"wavs/{audio_file_name}_{str(i).zfill(8)}.wav" + split_absolute_path = os.path.join(audio_folder, split_file_name) + torchaudio.save(split_absolute_path, split_audio, sr) + metadata["audio_file"].append(split_file_name) + metadata["text"].append(sentence) + metadata["speaker_name"].append(speaker_name) + i += 1 + + if audio.size(-1) >= sr / 3: # if the remaining audio is at least 0.33 seconds + torchaudio.save(absolute_path, audio, sr) + else: + continue + + metadata["audio_file"].append(f"wavs/{audio_file_name}_{str(i).zfill(8)}.wav") + metadata["text"].append(sentence) + metadata["speaker_name"].append(speaker_name) + + os.remove(temp_audio_path) + + # Check if the WAV files folder contains files after processing + audio_files = [os.path.join(audio_folder, file) for file in os.listdir(audio_folder) if file.endswith('.wav')] + + if not audio_files: + print(f"[FINETUNE] No processed audio files found in {audio_folder}. Skipping processing.") + return None, None, 0 + + if os.path.exists(train_metadata_path) and os.path.exists(eval_metadata_path): + existing_train_df = existing_metadata['train'] + existing_eval_df = existing_metadata['eval'] + else: + existing_train_df = pd.DataFrame(columns=["audio_file", "text", "speaker_name"]) + existing_eval_df = pd.DataFrame(columns=["audio_file", "text", "speaker_name"]) + + new_data_df = pd.DataFrame(metadata) + combined_train_df = pd.concat([existing_train_df, new_data_df], ignore_index=True).drop_duplicates().reset_index(drop=True) + combined_train_df_shuffled = combined_train_df.sample(frac=1) + num_val_samples = int(len(combined_train_df_shuffled) * eval_percentage) + + final_eval_set = combined_train_df_shuffled[:num_val_samples] + final_training_set = combined_train_df_shuffled[num_val_samples:] + + final_training_set.sort_values('audio_file').to_csv(train_metadata_path, sep='|', index=False) + final_eval_set.sort_values('audio_file').to_csv(eval_metadata_path, sep='|', index=False) + + del asr_model, final_eval_set, final_training_set, new_data_df, existing_metadata + gc.collect() + if torch.cuda.is_available(): + torch.cuda.empty_cache() + return train_metadata_path, eval_metadata_path, audio_total_size + + + +###################### +#### STEP 2 BITS ##### +###################### + +from trainer import Trainer, TrainerArgs + +from TTS.config.shared_configs import BaseDatasetConfig +from TTS.tts.datasets import load_tts_samples +from TTS.tts.layers.xtts.trainer.gpt_trainer import GPTArgs, GPTTrainer, GPTTrainerConfig, XttsAudioConfig +from TTS.utils.manage import ModelManager + + +def basemodel_or_finetunedmodel_choice(value): + global basemodel_or_finetunedmodel + if value == "Base Model": + basemodel_or_finetunedmodel = True + elif value == "Existing finetuned model": + basemodel_or_finetunedmodel = False + +def train_gpt(language, num_epochs, batch_size, grad_acumm, train_csv, eval_csv, learning_rate, model_to_train, output_path, max_audio_length=255995, progress=gr.Progress()): + pfc_check_fail() + + if "No Models Available" in eval_csv: + print(f"[FINETUNE] \033[91mError\033[0m: Cannot train. You have not selected a model. Please download a model.") + print(f"[FINETUNE] \033[91mError\033[0m: into a sub folder within the correct models folder.") + return + # Logging parameters + RUN_NAME = "XTTS_FT" + PROJECT_NAME = "XTTS_trainer" + DASHBOARD_LOGGER = "tensorboard" + LOGGER_URI = None + model_path = this_dir / "models" / "xtts" / model_to_train + + # Set here the path that the checkpoints will be saved. Default: ./training/ + OUT_PATH = os.path.join(output_path, "training") + print("[FINETUNE] \033[94mStarting Step 2\033[0m - Fine-tuning the XTTS Encoder") + print(f"[FINETUNE] \033[94mLanguage: \033[92m{language} \033[94mEpochs: \033[92m{num_epochs} \033[94mBatch size: \033[92m{batch_size}\033[0m \033[94mGrad accumulation steps: \033[92m{grad_acumm}\033[0m") + print(f"[FINETUNE] \033[94mTraining : \033[92m{train_csv}\033[0m") + print(f"[FINETUNE] \033[94mEvaluation : \033[92m{eval_csv}\033[0m") + print(f"[FINETUNE] \033[94mModel used : \033[92m{model_path}\033[0m") + + if torch.cuda.is_available(): + torch.cuda.empty_cache() + # Get the current device ID + gpu_device_id = torch.cuda.current_device() + gpu_available_mem_gb = (torch.cuda.get_device_properties(gpu_device_id).total_memory - torch.cuda.memory_allocated(gpu_device_id)) / (1024 ** 3) + print(f"[FINETUNE] \033[94mAvailable VRAM: \033[92m{gpu_available_mem_gb:.2f} GB\033[0m") + if gpu_available_mem_gb < 12: + print(f"[FINETUNE]") + print(f"[FINETUNE] \033[91m****** WARNING PRE-FLIGHT CHECKS FAILED ******* WARNING PRE-FLIGHT CHECKS FAILED *****\033[0m") + print(f"[FINETUNE] \033[94mAvailable VRAM: \033[92m{gpu_available_mem_gb:.2f} GB\033[0m") + print(f"[FINETUNE] \033[94mIf you are running on a Linux system and you have 12GB's or less of VRAM, this step\033[0m") + print(f"[FINETUNE] \033[94mmay fail, due to not enough GPU VRAM. Windows systems will use system RAM as extended\033[0m") + print(f"[FINETUNE] \033[94mVRAM and so should work ok. However, Windows machines will need enough System RAM\033[0m") + print(f"[FINETUNE] \033[94mavailable. Please read the PFC help section available on the first tab of the web\033[0m") + print(f"[FINETUNE] \033[94minterface for more information.\033[0m") + print(f"[FINETUNE] \033[91m****** WARNING PRE-FLIGHT CHECKS FAILED ******* WARNING PRE-FLIGHT CHECKS FAILED *****\033[0m") + print(f"[FINETUNE]") + + # Create the directory + os.makedirs(OUT_PATH, exist_ok=True) + + # Training Parameters + OPTIMIZER_WD_ONLY_ON_WEIGHTS = True # for multi-gpu training please make it False + START_WITH_EVAL = False # if True it will star with evaluation + BATCH_SIZE = batch_size # set here the batch size + GRAD_ACUMM_STEPS = grad_acumm # set here the grad accumulation steps + + # Define here the dataset that you want to use for the fine-tuning on. + config_dataset = BaseDatasetConfig( + formatter="coqui", + dataset_name="ft_dataset", + path=os.path.dirname(train_csv), + meta_file_train=train_csv, + meta_file_val=eval_csv, + language=language, + ) + + # Add here the configs of the datasets + DATASETS_CONFIG_LIST = [config_dataset] + TOKENIZER_FILE = str(model_path / "vocab.json") + XTTS_CHECKPOINT = str(model_path / "model.pth") + XTTS_CONFIG_FILE = str(model_path / "config.json") + DVAE_CHECKPOINT = model_path / "dvae.pth" + MEL_NORM_FILE = model_path / "mel_stats.pth" + SPEAKERS_FILE = model_path / "speakers_xtts.pth" + + # Copy the supporting files + destination_dir = this_dir / "finetune" / "tmp-trn" / "chkptandnorm" + destination_dir.mkdir(parents=True, exist_ok=True) + shutil.copy2(DVAE_CHECKPOINT, destination_dir / DVAE_CHECKPOINT.name) + shutil.copy2(MEL_NORM_FILE, destination_dir / MEL_NORM_FILE.name) + shutil.copy2(SPEAKERS_FILE, destination_dir / SPEAKERS_FILE.name) + + # init args and config + model_args = GPTArgs( + max_conditioning_length=132300, # 6 secs + min_conditioning_length=66150, # 3 secs + debug_loading_failures=False, + max_wav_length=max_audio_length, # ~11.6 seconds + max_text_length=200, + mel_norm_file=MEL_NORM_FILE, + dvae_checkpoint=DVAE_CHECKPOINT, + xtts_checkpoint=XTTS_CHECKPOINT, # checkpoint path of the model that you want to fine-tune + tokenizer_file=TOKENIZER_FILE, + gpt_num_audio_tokens=1026, + gpt_start_audio_token=1024, + gpt_stop_audio_token=1025, + gpt_use_masking_gt_prompt_approach=True, + gpt_use_perceiver_resampler=True, + ) + # define audio config + audio_config = XttsAudioConfig(sample_rate=22050, dvae_sample_rate=22050, output_sample_rate=24000) + + # Resolve Japanese threading issue + number_of_workers = 8 + if language == "ja": + number_of_workers = 0 + + # training parameters config + config = GPTTrainerConfig( + epochs=num_epochs, + output_path=OUT_PATH, + model_args=model_args, + run_name=RUN_NAME, + project_name=PROJECT_NAME, + run_description="GPT XTTS training", + dashboard_logger=DASHBOARD_LOGGER, + logger_uri=LOGGER_URI, + audio=audio_config, + batch_size=BATCH_SIZE, + batch_group_size=48, + eval_batch_size=BATCH_SIZE, + num_loader_workers=number_of_workers, + eval_split_max_size=256, + print_step=50, + plot_step=100, + log_model_step=100, + save_step=1000, + save_n_checkpoints=1, + save_checkpoints=True, + # target_loss="loss", + print_eval=False, + # Optimizer values like tortoise, pytorch implementation with modifications to not apply WD to non-weight parameters. + optimizer="AdamW", + optimizer_wd_only_on_weights=OPTIMIZER_WD_ONLY_ON_WEIGHTS, + optimizer_params={"betas": [0.9, 0.96], "eps": 1e-8, "weight_decay": 1e-2}, + lr=learning_rate, # learning rate + lr_scheduler="MultiStepLR", + # it was adjusted accordly for the new step scheme + lr_scheduler_params={"milestones": [50000 * 18, 150000 * 18, 300000 * 18], "gamma": 0.5, "last_epoch": -1}, + test_sentences=[], + ) + progress(0, desc="Model is currently training. See console for more information") + # init the model from config + model = GPTTrainer.init_from_config(config) + # load training samples + train_samples, eval_samples = load_tts_samples( + DATASETS_CONFIG_LIST, + eval_split=True, + eval_split_max_size=config.eval_split_max_size, + eval_split_size=config.eval_split_size, + ) + + # init the trainer + trainer = Trainer( + TrainerArgs( + restore_path=None, # xtts checkpoint is restored via xtts_checkpoint key so no need of restore it using Trainer restore_path parameter + skip_train_epoch=False, + start_with_eval=START_WITH_EVAL, + grad_accum_steps=GRAD_ACUMM_STEPS, + ), + config, + output_path=OUT_PATH, + model=model, + train_samples=train_samples, + eval_samples=eval_samples, + ) + trainer.fit() + + # get the longest text audio file to use as speaker reference + samples_len = [len(item["text"].split(" ")) for item in train_samples] + longest_text_idx = samples_len.index(max(samples_len)) + speaker_ref = train_samples[longest_text_idx]["audio_file"] + + trainer_out_path = trainer.output_path + + # deallocate VRAM and RAM + del model, trainer, train_samples, eval_samples, config, model_args, config_dataset + gc.collect() + train_samples = None + eval_samples = None + config_dataset = None + trainer = None + model = None + model_args = None + try: + return XTTS_CONFIG_FILE, XTTS_CHECKPOINT, TOKENIZER_FILE, trainer_out_path, speaker_ref + except Exception as e: + print(f"Error returning values: {e}") + return "Error", "Error", "Error", "Error", "Error" + +########################## +#### STEP 3 AND OTHER #### +########################## + +def clear_gpu_cache(): + # clear the GPU cache + if torch.cuda.is_available(): + torch.cuda.empty_cache() + +def find_a_speaker_file(folder_path): + search_path = folder_path / "*" / "speakers_xtts.pth" + files = glob.glob(str(search_path), recursive=True) + latest_file = max(files, key=os.path.getctime, default=None) + return latest_file + +XTTS_MODEL = None +def load_model(xtts_checkpoint, xtts_config, xtts_vocab): + pfc_check_fail() + global XTTS_MODEL + clear_gpu_cache() + if not xtts_checkpoint or not xtts_config or not xtts_vocab: + return "No Models were selected. Click the Refresh Dropdowns button and try again." + xtts_speakers_pth = find_a_speaker_file(this_dir / "models") + config = XttsConfig() + config.load_json(xtts_config) + XTTS_MODEL = Xtts.init_from_config(config) + print("[FINETUNE] \033[94mStarting Step 3\033[0m Loading XTTS model!") + XTTS_MODEL.load_checkpoint(config, checkpoint_path=xtts_checkpoint, vocab_path=xtts_vocab, use_deepspeed=False, speaker_file_path=xtts_speakers_pth) + if torch.cuda.is_available(): + XTTS_MODEL.cuda() + + print("[FINETUNE] Model Loaded!") + return "Model Loaded!" + +def run_tts(lang, tts_text, speaker_audio_file): + if XTTS_MODEL is None or not speaker_audio_file: + return "You need to run the previous step to load the model !!", None, None + speaker_audio_file = str(speaker_audio_file) + gpt_cond_latent, speaker_embedding = XTTS_MODEL.get_conditioning_latents(audio_path=speaker_audio_file, gpt_cond_len=XTTS_MODEL.config.gpt_cond_len, max_ref_length=XTTS_MODEL.config.max_ref_len, sound_norm_refs=XTTS_MODEL.config.sound_norm_refs) + out = XTTS_MODEL.inference( + text=tts_text, + language=lang, + gpt_cond_latent=gpt_cond_latent, + speaker_embedding=speaker_embedding, + temperature=XTTS_MODEL.config.temperature, # Add custom parameters here + length_penalty=XTTS_MODEL.config.length_penalty, + repetition_penalty=XTTS_MODEL.config.repetition_penalty, + top_k=XTTS_MODEL.config.top_k, + top_p=XTTS_MODEL.config.top_p, + ) + + with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as fp: + out["wav"] = torch.tensor(out["wav"]).unsqueeze(0) + out_path = fp.name + torchaudio.save(out_path, out["wav"], 24000) + + return "Speech generated !", out_path, speaker_audio_file + +def get_available_voices(minimum_size_kb=1200): + voice_files = [ + voice for voice in Path(f"{this_dir}/finetune/tmp-trn/wavs").glob("*.wav") + if voice.stat().st_size > minimum_size_kb * 1200 # Convert KB to bytes + ] + return sorted([str(file) for file in voice_files]) # Return full path as string + +def find_best_models(directory): + """Find files named 'best_model.pth' in the given directory.""" + return [str(file) for file in Path(directory).rglob("best_model.pth")] + +def find_models(directory, extension): + """Find files with a specific extension in the given directory.""" + return [str(file) for file in Path(directory).rglob(f"*.{extension}")] + +def find_jsons(directory, filename): + """Find files with a specific filename in the given directory.""" + return [str(file) for file in Path(directory).rglob(filename)] + +# Your main directory +main_directory = Path(this_dir) / "finetune" / "tmp-trn" +# XTTS checkpoint files (best_model.pth) +xtts_checkpoint_files = find_best_models(main_directory) +# XTTS config files (config.json) +xtts_config_files = find_jsons(main_directory, "config.json") +# XTTS vocab files (vocab.json) +xtts_vocab_files = find_jsons(main_directory, "vocab.json") + +########################## +#### STEP 4 AND OTHER #### +########################## +import shutil +from pathlib import Path +import torch + +def compact_custom_model(xtts_checkpoint_copy, folder_path, overwrite_existing): + this_dir = Path(__file__).parent.resolve() + if not xtts_checkpoint_copy: + error_message = "No trained model was selected. Please click Refresh Dropdowns and try again." + print("[FINETUNE]", error_message) + return error_message + target_dir = this_dir / "models" / "xtts" / folder_path + if overwrite_existing == "Do not overwrite existing files" and target_dir.exists(): + error_message = "The target folder already exists. Please change folder name or allow overwrites." + print("[FINETUNE]", error_message) + return error_message + xtts_checkpoint_copy = Path(xtts_checkpoint_copy) + try: + checkpoint = torch.load(xtts_checkpoint_copy, map_location=torch.device("cpu")) + except Exception as e: + print("[FINETUNE] Error loading checkpoint:", e) + raise + del checkpoint["optimizer"] + target_dir.mkdir(parents=True, exist_ok=True) + # Remove dvae-related keys from checkpoint + for key in list(checkpoint["model"].keys()): + if "dvae" in key: + del checkpoint["model"][key] + torch.save(checkpoint, target_dir / "model.pth") + def copy_files(src_folder, dest_folder, files): + for file_name in files: + src_path = src_folder / file_name + dest_path = dest_folder / file_name + if src_path.exists(): + shutil.copy2(src_path, dest_path) + else: + print(f"[FINETUNE] Warning: {src_path} does not exist and will not be copied.") + # Copy first set of files + folder_path_new = xtts_checkpoint_copy.parent + files_to_copy = ["vocab.json", "config.json"] + copy_files(folder_path_new, target_dir, files_to_copy) + # Copy second set of files + chkptandnorm_path = this_dir / "finetune" / "tmp-trn" / "chkptandnorm" + files_to_copy2 = ["speakers_xtts.pth", "mel_stats.pth", "dvae.pth"] + copy_files(chkptandnorm_path, target_dir, files_to_copy2) + # Copy large wav files + source_wavs_dir = this_dir / "finetune" / "tmp-trn" / "wavs" + target_wavs_dir = target_dir / "wavs" + target_wavs_dir.mkdir(parents=True, exist_ok=True) + for file_path in source_wavs_dir.iterdir(): + if file_path.is_file() and file_path.stat().st_size > 1000 * 1024: # File size greater than 1000 KB + shutil.copy2(file_path, target_wavs_dir / file_path.name) + print(f"[FINETUNE] Model & Suitable WAV samples copied to '/models/xtts/{folder_path}/'") + return f"Model & Suitable WAV samples copied to '/models/xtts/{folder_path}/'" + +def delete_training_data(): + # Define the folder to be deleted + folder_to_delete = Path(this_dir / "finetune" / "tmp-trn") + + # Check if the folder exists before deleting + if folder_to_delete.exists(): + # Iterate over all files and subdirectories + for item in folder_to_delete.iterdir(): + # Exclude trainer_0_log.txt from deletion + if item.name != "trainer_0_log.txt": + try: + if item.is_file(): + item.unlink() + elif item.is_dir(): + shutil.rmtree(item) + except PermissionError: + print(f"[FINETUNE] PermissionError: Could not delete {item}. Skipping.") + + print(f"[FINETUNE] Folder {folder_to_delete} contents (excluding trainer_0_log.txt) deleted successfully.") + return "Folder '/finetune/tmp-trn/' contents (excluding trainer_0_log.txt) deleted successfully." + else: + print(f"[FINETUNE] Folder {folder_to_delete} does not exist.") + return "Folder '/finetune/tmp-trn/' does not exist." + +def clear_folder_contents(folder_path): + # Check if the folder exists before clearing its contents + if folder_path.exists() and folder_path.is_dir(): + # List all files and subdirectories in the folder + for item in os.listdir(folder_path): + item_path = folder_path / item + if item_path.is_file(): + # If it's a file, remove it + os.remove(item_path) + elif item_path.is_dir(): + # If it's a subdirectory, remove it recursively + shutil.rmtree(item_path) + + print(f"[FINETUNE] Contents of {folder_path} deleted successfully.") + return f"Contents of '{folder_path}' deleted successfully." + else: + print(f"[FINETUNE] Folder {folder_path} does not exist.") + return f"Folder '{folder_path}' does not exist." + +def delete_voice_sample_contents(): + # Define the folders to be cleared + voice_samples_folder = this_dir / "finetune" / "put-voice-samples-in-here" + gradio_temp_folder = this_dir / "finetune" / "gradio_temp" + # Clear the contents of the gradio_temp folder + gradio_temp_message = clear_folder_contents(gradio_temp_folder) + # Clear the contents of the voice samples folder + voice_samples_message = clear_folder_contents(voice_samples_folder) + return voice_samples_message + +####################### +#### OTHER Generic #### +####################### +# define a logger to redirect +class Logger: + def __init__(self, filename="finetune.log"): + self.log_file = filename + self.terminal = sys.stdout + self.log = open(self.log_file, "w") + + def write(self, message): + self.terminal.write(message) + self.log.write(message) + + def flush(self): + self.terminal.flush() + self.log.flush() + + def isatty(self): + return False + +# redirect stdout and stderr to a file +sys.stdout = Logger() +sys.stderr = sys.stdout + +# logging.basicConfig(stream=sys.stdout, level=logging.INFO) +import logging +logging.basicConfig( + level=logging.INFO, + format="[FINETUNE] %(message)s", + handlers=[ + logging.StreamHandler(sys.stdout) + ] +) + +def read_logs(): + sys.stdout.flush() + with open(sys.stdout.log_file, "r") as f: + return f.read() + +def cleanup_before_exit(signum, frame): + print("[FINETUNE] Received interrupt signal. Cleaning up and exiting...") + # Perform cleanup operations here if necessary + sys.exit(0) + +def create_refresh_button(refresh_components, refresh_methods, elem_class, interactive=True): + def refresh(): + updates = {} + for component, method in zip(refresh_components, refresh_methods): + args = method() if callable(method) else method + if args and 'choices' in args: + # Select the most recent file (last in the sorted list) + args['value'] = args['choices'][-1] if args['choices'] else "" + for k, v in args.items(): + setattr(component, k, v) + updates[component] = gr.update(**(args or {})) + return updates + + refresh_button = gr.Button("Refresh Dropdowns", elem_classes=elem_class, interactive=interactive) + refresh_button.click( + fn=refresh, + inputs=[], + outputs=refresh_components + ) + + return refresh_button + + + +pfc_markdown = f""" + ### 🚀 Pre-flight Checklist for Fine-tuning
+ ◽ Ensure each criterion is marked with a green check mark ✅ and a Pass status. Finetuning will fail otherwise.
+ ◽ The help tabs along the top will assist in resolving issues and you can also find additional help guides on the AllTalk [GitHub repository](https://github.com/erew123/alltalk_tts#-finetuning-a-model).
+ ◽ For an overview of fine-tuning procedures, please refer to the "General Finetuning info" tab or visit the AllTalk [GitHub repository](https://github.com/erew123/alltalk_tts#-finetuning-a-model). + """ + +custom_css = """ +body { + font-size: 16px; /* Adjust the base font size as needed */ +} +h1, h2, h3, h4, h5, h6 { + font-size: 1.25em; /* Adjust heading sizes relative to the base size */ +} +p { + font-size: 1.1em; /* Paragraph font size, relative to the base size */ + margin-bottom: 10px; /* Adjust paragraph spacing */ +} +.gradio_container { + zoom: 1.1; /* Adjust the zoom to scale the entire container */ +} +""" + +if __name__ == "__main__": + # Register the signal handler + signal.signal(signal.SIGINT, cleanup_before_exit) + +################ +#### GRADIO #### +################ + + parser = argparse.ArgumentParser( + description="""XTTS fine-tuning demo\n\n""" + """ + Example runs: + python3 TTS/demos/xtts_ft_demo/xtts_demo.py --port + """, + formatter_class=argparse.RawTextHelpFormatter, + ) + parser.add_argument( + "--num_epochs", + type=int, + help="Number of epochs to train. Default: 10", + default=10, + ) + parser.add_argument( + "--batch_size", + type=int, + help="Batch size. Default: 4", + default=4, + ) + parser.add_argument( + "--grad_acumm", + type=int, + help="Grad accumulation steps. Default: 1", + default=1, + ) + parser.add_argument( + "--max_audio_length", + type=int, + help="Max permitted audio size in seconds. Default: 11", + default=11, + ) + + args = parser.parse_args() + +##################### +#### GRADIO INFO #### +##################### + + with gr.Blocks(theme=gr.themes.Base(), css=custom_css) as demo: + with gr.Row(): + gr.Markdown("## XTTS Models Finetuning") + gr.Markdown("") + gr.Markdown("") + dark_mode_btn = gr.Button("Light/Dark Mode", variant="primary", size="sm") + dark_mode_btn.click(None, None, None, + js="""() => { + if (document.querySelectorAll('.dark').length) { + document.querySelectorAll('.dark').forEach(el => el.classList.remove('dark')); + // localStorage.setItem('darkMode', 'disabled'); + } else { + document.querySelector('body').classList.add('dark'); + // localStorage.setItem('darkMode', 'enabled'); + } + }""", show_api=False) + with gr.Tab("🚀 PFC"): + with gr.Tab("🚀 Pre-Flight Checklist"): + gr.Markdown( + f""" + {pfc_markdown} + {disk_space_results} + {system_ram_results} + {cuda_results} + {pytorch_results} + {base_model_results} + {tts_version_status} + """ + ) + with gr.Tab("🟩 Disks Help"): + gr.Markdown( + f""" + {disk_space_results}

+ ◽ During actual training (Step 2) Finetuning will require approximately 18GB's of free disk space while performing training and will fail or perform badly if there is any less disk space. The majority of this disk space is used temporarily and will be cleared when you reach Step 4 and move & compact the model then delete the training data.
+ ◽ Because lots of data is being copied around, mechanical hard disks will be slow. + """ + ) + with gr.Tab("🟪 RAM & VRAM Help"): + gr.Markdown( + f""" + {system_ram_results}
+ ◽ During actual training (Step 2) Finetuning will use around **14GB's** of VRAM. If your GPU doesnt have 14GB's of VRAM:
+        - **Windows** systems will attempt to extend VRAM into your System RAM, and so should work.
+        - **Linux** systems can only use the available VRAM, so may fail on 12GB VRAM or smaller GPU's.
+ ◽ For **Windows** users with 12GB or less, if you also have very low or slow System RAM you can expect bad performance or the training to fail.
+        - 12GB cards may need 2GB System RAM.
+        - 8GB cards may need 6GB System RAM.
+        - 6GB cards may need 8GB System RAM.
+ ◽ Its hard to estimate what performance impact this could will have, due to different memory speeds, PCI speeds, GPU speeds etc.
+ ◽ If you have a low VRAM scenario and also are attempting to run on a mechanical hard drive, Finetuning could take ??? amount of time.
+ ◽ On Windows machines, please ensure you have **not** disabled System Memory Fallback for Stable Diffusion link here
+ """ + ) + with gr.Tab("🟨 CUDA & Cublas Help"): + gr.Markdown( + f""" + {cuda_results}

+ ◽ It DOESNT matter what version of CUDA you have installed within Python either, CUDA 11.8, CUDA 12.1 etc. The NVIDIA CUDA Development Toolkit is a completly different and seperate thing from Python/PyTorch.
+ ◽ Finetuning simply wants to access a tool within the CUDA Development Toolkit 11.8 called Cublas64_11.
+ ◽ If you dont have the toolkit installed, the idea is just to install the smallest bit possible and this will not affect or impact other things on your system.

+       ◽ You will need to download the Nvidia Cuda Toolkit 11.8 network install from link here
+       ◽ 1) Run the installer and select Custom Advanced Uncheck everything at the top then expand CUDA, Development > Compiler > and select nvcc then expand Libraries and select CUBLAS.
+       ◽ 2) Back at the top of CUDA, expand Runtime > Libraries and select CUBLAS. Click Next, accept the default path (taking a note of its location) and let the install run.
+       ◽ 3) You should be able to drop to your terminal or command prompt and type nvcc --version and have it report Cuda compilation tools, release 11.8. If it does you are good to go. If it doesn't > Step 4.
+       ◽ 4) Linux users, you can temporarily add these paths on your current terminal window with (you may need to confirm these are correct for your flavour of Linux):

+                  export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} (Add it to your ~/.bashrc if you want this to be permanent)
+                  export LD_LIBRARY_PATH=/usr/local/cuda-11.8/bin

+                  Windows users need the add the following to the PATH environment variable. Start menu and search for "Environment Variables" or "Edit the system environment variables.".
+                  Find and select the "Path" variable, then click on the "Edit...". Click on the "New" button and add:

+                 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8\bin.

+       ◽ 5) Once you have these set correctly, you should be able to open a new command prompt/terminal and nvcc --version at the command prompt/terminal, resulting in Cuda compilation tools, release 11.8.
+       ◽ 6) If the nvcc command doesn't work OR it reports a version different from 11.8, finetuning wont work, so you will to double check your environment variables and get them working correctly.
+ """ + ) + with gr.Tab("🟦 Python & PyTorch Help"): + gr.Markdown( + f""" + {pytorch_results}

+ ◽ On the PyTorch version the:
+           - first few digits are the version of PyTorch e.g. 2.1.0 is PyTorch 2.1.0
+           - last few digits refer to the CUDA version e.g. cu118 is Cuda 11.8. cu121 is Cuda 12.1.
+ ◽ Ensure you have started your Python envuronment before running finetuning otherwise you will have failures on the above checks.
+ ◽ If PyTorch does not show a CUDA version, then PyTorch will need reinstalling with CUDA. I would suggest running pip cache purge before installing PyTorch again.
+ ◽ It DOESNT matter what version of PyTorch and CUDA you have installed within Python, CUDA 11.8, CUDA 12.1 etc. The NVIDIA CUDA Development Toolkit is a completly different and seperate thing.
+ ◽ Finetuning simply wants to access a tool within the CUDA Development Toolkit called Cublas64_11.
+ ◽ If you dont have the toolkit installed, the idea is just to install the smallest bit possible and this will not affect or impact other things on your system.
+ """ + ) + with gr.Tab("⬛ XTTS Base Model Help"): + gr.Markdown( + f""" + {base_model_results}

+ ◽ If your basemodel is not being detected, please ensure that finetune.py is being run from the AllTalk main folder.
+ ◽ Ensure you have started AllTalk normally at least once. You can start it again and it will download any missing files.
+ ◽ Check that there is an XTTS model within the models folder e.g. /models/xttsv2_2.0.2/
+ ◽ The files required are "model.pth", "vocab.json", "config.json", "dvae.pth", "mel_stats.pth", "speakers_xtts.pth". + """ + ) + with gr.Tab("🟥 TTS Version Help"): + gr.Markdown( + f""" + {tts_version_status}

+ ◽ If your TTS version is showing as the incorrect version, please reinstall the Finetuning requirements at the command prompt/terminal.
+ ◽ pip install -r requirements_finetune.txt
+ """ + ) + + with gr.Tab("ℹ️ General Finetuning info"): + gr.Markdown( + f""" + ### 🟥 Important Note + ◽ finetune.py needs to be run from the /alltalk_tts/ folder. Don't move the location of this script. + ### 🟦 What you need to run finetuning + ◽ An Nvidia GPU.
+ ◽ If you have multiple Nvidia GPU's in your system, please see the Github Help section [Multiple GPU's](https://github.com/erew123/alltalk_tts#performance-and-compatibility-issues).
+ ◽ Some decent quality audio, multiple files if you like. Minimum of 2 minutes and Ive tested up to 20 minutes of audio.
+ ◽ There is no major need to chop down your audio files into small slices as Step 1 will do that for you automatically and prepare the training set. But this can be helpful in cases where:
+         - Whisper doesnt correctly detect and split down audio files.
+         - You do not get a lot of "Speaker Reference Audio" files at the end of training.
+ ◽ This process will need access to all your GPU and VRAM, so close any other software that's using your GPU currently.
+ ### 🟨 What do I do from here?
+ ◽ Proceed through Step 1, 2, 3 and onto "What to do next".
+ ### 🟩 Additional Information
+ ◽ Guidance is provided on each step of the process however, if you are after more detailed information please visit:
+           ◽ [AllTalk Github Finetuning](https://github.com/erew123/alltalk_tts#-finetuning-a-model)
+           ◽ [Coqui XTTS Documentation](https://docs.coqui.ai/en/latest/index.html)
+ """ + ) + +####################### +#### GRADIO STEP 1 #### +####################### + with gr.Tab("📁 Step 1 - Generating the dataset"): + with gr.Tab("Generate Dataset"): + out_path = gr.Textbox( + label="Output path (where data and checkpoints will be saved):", + value=out_path, + visible=False, + ) + # Define directories + this_dir = Path(__file__).parent.resolve() + voice_samples_dir = this_dir / "finetune" / "put-voice-samples-in-here" + training_data_dir = this_dir / "finetune" / "tmp-trn" / "wavs" + metadata_files = [ + this_dir / "finetune" / "tmp-trn" / "metadata_eval.csv", + this_dir / "finetune" / "tmp-trn" / "metadata_train.csv", + this_dir / "finetune" / "tmp-trn" / "lang.txt" + ] + + # Ensure directories exist + voice_samples_dir.mkdir(parents=True, exist_ok=True) + training_data_dir.mkdir(parents=True, exist_ok=True) + + def upload_audio(files): + for file in files: + shutil.copy(file.name, voice_samples_dir) + return f"Uploaded {len(files)} files to {voice_samples_dir}" + + def delete_existing_audio(): + for file in voice_samples_dir.iterdir(): + if file.is_file(): + file.unlink() + return f"Deleted all files in {voice_samples_dir}" + + def delete_existing_training_data(): + if training_data_dir.exists(): + for file in training_data_dir.iterdir(): + if file.is_file(): + file.unlink() + for metadata_file in metadata_files: + if metadata_file.exists(): + metadata_file.unlink() + return f"Deleted all files in {training_data_dir} and related metadata files" + + with gr.Row(): + with gr.Column(scale=1): + audio_files_upload = gr.Files(label="Upload Audio Files") + with gr.Column(scale=3): + with gr.Row(): + with gr.Column(scale=1): + audio_upload_button = gr.Button("Upload Audio") + delete_audio_button = gr.Button("Delete Existing Audio") + delete_dataset_button = gr.Button("Delete Existing Training Dataset") + with gr.Column(scale=2): + gr.Markdown(""" + You can manually copy your audio files to `/finetune/put-voice-samples-in-here/` or use the upload to the left and click "Upload Audio". Once you have uploaded files, you can start creating your dataset. + + - If you wish to delete previously uploaded audio files then use 'Delete Existing Audio'. + - If you wish to delete previously generated training datasets, please use 'Delete Existing Training Dataset'. + - If you wish to re-use your previously created training data, just click 'Create Dataset'. + """) + with gr.Row(): + output_text = gr.Textbox(label="Audio File Management Result", interactive=False) + + # Define actions for buttons + audio_upload_button.click(upload_audio, inputs=audio_files_upload, outputs=output_text) + delete_audio_button.click(delete_existing_audio, outputs=output_text) + delete_dataset_button.click(delete_existing_training_data, outputs=output_text) + + with gr.Row(): + whisper_model = gr.Dropdown( + label="Whisper Model", + value="large-v2", + choices=[ + "large-v3", + "large-v2", + "large", + "medium", + "small" + ], + scale=1, + ) + + lang = gr.Dropdown( + label="Dataset Language", + value="en", + choices=[ + "en", + "es", + "fr", + "de", + "it", + "pt", + "pl", + "tr", + "ru", + "nl", + "cs", + "ar", + "zh", + "hu", + "ko", + "ja" + ], + scale=1, + ) + max_sample_length = gr.Dropdown( + label="Max Audio Length Created by Whisper (seconds)", + value="30", + choices=["10", "15", "20", "25", "30", "35", "40", "45", "50", "55", "60", "65", "70", "75", "80", "85", "90"], + scale=2 + ) + eval_split_number = gr.Number( + label="Evaluation data Split (the % to use for Evaluation data)", + value=15, # Default value + minimum=5, # Minimum value + maximum=95, # Maximum value + step=1, # Increment step + scale=2, + ) + speaker_name_input = gr.Textbox( + label="The name of the speaker/person you are training", + value="personsname", + visible=True, + scale=2, + ) + progress_data = gr.Label( + label="Progress:" + ) + logs = gr.Textbox( + label="Logs:", + interactive=False, + lines=10, + ) + demo.load(read_logs, None, logs, every=1) + + prompt_compute_btn = gr.Button(value="Step 1 - Create dataset") + + def preprocess_dataset(language, whisper_model, out_path, max_sample_length, eval_split_number, speaker_name_input, progress=gr.Progress(track_tqdm=True)): + clear_gpu_cache() + test_for_audio_files = [file for file in os.listdir(audio_folder) if any(file.lower().endswith(ext) for ext in ['.wav', '.mp3', '.flac'])] + if not test_for_audio_files: + return "I cannot find any mp3, wav or flac files in the folder called 'put-voice-samples-in-here'", "", "" + else: + try: + + train_meta, eval_meta, audio_total_size = format_audio_list(target_language=language, whisper_model=whisper_model, out_path=out_path, max_sample_length=max_sample_length, eval_split_number=eval_split_number, speaker_name_input=speaker_name_input, gradio_progress=progress) + except: + traceback.print_exc() + error = traceback.format_exc() + return f"The data processing was interrupted due an error !! Please check the console to verify the full error message! \n Error summary: {error}", "", "" + + clear_gpu_cache() + + # if audio total len is less than 2 minutes raise an error + if audio_total_size < 120: + message = "The total duration of the audio file or files you provided, was less than 2 minutes in length. Please add more audio samples." + print("[FINETUNE] ",message) + return message, "", "" + + print("[FINETUNE] Dataset Generated. Move to Step 2") + return "Dataset Generated. Move to Step 2", train_meta, eval_meta + + with gr.Tab("Generate Dataset Instructions"): + gr.Markdown( + f""" + ### 📁 Generating the dataset
+ ### 🟥 Important Note - Windows - "UserWarning: huggingface_hub cache-system uses symlinks." + ◽ This error is caused by Huggingfaces download software downloading the Whisper model. If you get this error, please restart your Windows command prompt with "Run as Administrator" and restart finetuning.
+ ◽ This should only occur the 1st time it downloads the Whisper model. [Huggingface Reference here](https://huggingface.co/docs/huggingface_hub/en/guides/manage-cache#limitations) + ### 🟥 Important Note - Language support. + ◽ Although I have done my best to help automate this step, the Whisper model is not great with all languages and may fail to build your training data correctly. The Large-v3 may be better at certain languages.
+ ◽ You can find information about the Whisper model [here](https://github.com/openai/whisper?tab=readme-ov-file#available-models-and-languages) and you can find data about manually building training data [here](https://docs.coqui.ai/en/latest/formatting_your_dataset.html), as well as details below about the file structure this step performs.
+ ### 🟦 What you need to do + ◽ Please read Coqui's guide on what makes a good dataset [here](https://docs.coqui.ai/en/latest/what_makes_a_good_dataset.html#what-makes-a-good-dataset)
+ ◽ Place your audio files in {str(audio_folder)} + ◽ Your audio samples can be in the format mp3, wav, or flac.
+ ◽ You will need a minimum of 2 minutes of audio in either one or multiple audio files. 5 to 10 minutes of audio would probably be better, allowing for more varied sample data to be generated.
+ ◽ Very small sample files cause errors, so I would recommend that the samples are at least 30 seconds and longer.
+ ◽ FYI Anecdotal evidence suggests that the Whisper 2 model may yield superior results in audio splitting and dataset creation.
+ ### 🟨 What this step is doing
+ ◽ With step one, we are going to be stripping your audio file(s) into smaller files, using Whisper to find spoken words/sentences, compile that into excel sheets of training data, ready for Step 2.
+ ◽ Whisper is making a best effort to find spoken audio and break it down into smaller audio files. The content of these audio files is then transcribed into CSV fles (which you can edit in Excel or similar).
+ ◽ These files (audio and CSV) are used at the next step to train the model "this is what the audio sounds like and these are the words being spoken".
+ ◽ If you are using Audio that has multiple speakers/people speaking, you will HAVE to edit the generated CSV files and remove the **OTHER** person out of the training list.
+ ◽ If you wish to manually look at the CSV files before running the next step, you are welcome to do so and edit them as necessary. The greater the accuracy of the text the better the training will be.
+           ◽ /alltalk_tts/finetune/tmp-trn/lang.txt Contains a two digit langauage code e.g. `en`, `fr` etc.
+           ◽ /alltalk_tts/finetune/tmp-trn/metadata_train.csv Contains the list of wavs to text that will be used. This is what the model is trained with.
+           ◽ /alltalk_tts/finetune/tmp-trn/metadata_eval.csv Lists the evaluation wav to text, used to generate TTS while training and evaluate the quality of generated TTS to the original sample.
+           ◽ /alltalk_tts/finetune/tmp-trn/wavs/ These are the wavs split out from your original training samples and match the contents of the CSV files.
+ ◽ Whilst you can choose multiple Whisper models, its best only to use the 1 model as each one is about 3GB in size and will download to your local huggingface cache on first-time use.
+ ◽ If and when you have completed training, should you wish to delete this 3GB Whisper model from your system, you are welcome to do so.
+ ### 🟩 How long will this take?
+ ◽ First time, it needs to download the Whisper model which is 3GB. After that a few minutes on an average 3-4 year old system.
+ """ + ) + +####################### +#### GRADIO STEP 2 #### +####################### + with gr.Tab("💻 Step 2 - Training"): + with gr.Tab("Training the model"): + with gr.Row(): + model_to_train_choices = list(available_models.keys()) + model_to_train = gr.Dropdown( + choices=model_to_train_choices, + label="Select the Model to train", + value=model_to_train_choices[0] if model_to_train_choices else None + ) + train_csv = gr.Textbox( + label="Train CSV:", + scale=2, + ) + eval_csv = gr.Textbox( + label="Eval CSV:", + scale=2, + ) + learning_rates = gr.Dropdown( + value=5e-6, + label="Learning Rate", + choices=[ + ("1e-6", 1e-6), + ("5e-6", 5e-6), + ("1e-5", 1e-5), + ("5e-5", 5e-5), + ("1e-4", 1e-4), + ("5e-4", 5e-4), + ("1e-3", 1e-3), + ], + type="value", + allow_custom_value=True, + scale=0, + ) + with gr.Row(): + num_epochs = gr.Slider( + label="Number of epochs:", + minimum=1, + maximum=100, + step=1, + value=args.num_epochs, + ) + batch_size = gr.Slider( + label="Batch size:", + minimum=2, + maximum=512, + step=1, + value=args.batch_size, + ) + grad_acumm = gr.Slider( + label="Grad accumulation steps:", + minimum=1, + maximum=32, + step=1, + value=args.grad_acumm, + ) + max_audio_length = gr.Slider( + label="Max permitted audio size in seconds:", + minimum=2, + maximum=20, + step=1, + value=args.max_audio_length, + ) + + progress_train = gr.Label( + label="Progress:" + ) + logs_tts_train = gr.Textbox( + label="Logs:", + interactive=False, + lines=10, + ) + demo.load(read_logs, None, logs_tts_train, every=1) + train_btn = gr.Button(value="Step 2 - Run the training") + + def train_model(language, train_csv, eval_csv, learning_rates, model_to_train, num_epochs, batch_size, grad_acumm, output_path, max_audio_length, progress=gr.Progress()): + clear_gpu_cache() + if not train_csv or not eval_csv: + return "You need to run the data processing step or manually set `Train CSV` and `Eval CSV` fields !", "", "", "", "" + try: + # convert seconds to waveform frames + max_audio_length = int(max_audio_length * 22050) + learning_rate = float(learning_rates) # Convert the learning rate value to a float + progress(0, "Initializing training...") + config_path, original_xtts_checkpoint, vocab_file, exp_path, speaker_wav = train_gpt(language, num_epochs, batch_size, grad_acumm, train_csv, eval_csv, learning_rate, model_to_train, output_path=str(output_path), max_audio_length=max_audio_length, progress=gr.Progress()) + except: + traceback.print_exc() + error = traceback.format_exc() + return f"The training was interrupted due an error !! Please check the console to check the full error message! \n Error summary: {error}", "", "", "", "" + + # copy original files to avoid parameters changes issues + shutil.copy(config_path, exp_path) + shutil.copy(vocab_file, exp_path) + + ft_xtts_checkpoint = os.path.join(exp_path, "best_model.pth") + print("[FINETUNE] Model training done. Move to Step 3") + clear_gpu_cache() + return "Model training done. Move to Step 3", config_path, vocab_file, ft_xtts_checkpoint, speaker_wav + + with gr.Tab("Training the model Instructions"): + gr.Markdown( + f""" + ### 💻 Training
+ ### 🟥 Important Note - Language support. + ◽ If this step is failing/erroring you may wish to check your training data was created correctly (Detailed in Step 1), confirming that wav files have been generated and your `metadata_train.csv` and `metadata_eval.csv` files have been populated.
+ ◽ Ignore 'fatal: not a git repository (or any of the parent directories): .git' as this is a legacy training script issue.
+ ### 🟦 What you need to do + ◽ The Train CSV and Eval CSV should already be populated. If not, just go back to Step 1 and click "Create Dataset" again.
+ ◽ The default settings below are the suggested settings for most purposes, however you may choose to alter them depending on your specific use case.
+ ◽ There are no absolute correct settings for training. It will vary based on:
+          - What you are training (A human voice, A cartoon voice, A new language entirely etc)
+          - How much audio you have (you may want less or more eval or epochs)
+ ◽ The key indicator of sufficient model training is whether it sounds right to you. Coqui suggests beginning with the base settings for training. If the resulting audio doesn't meet your expectations, additional training sessions may be necessary.
+ ### 🟨 What this step is doing
+ ◽ Very simply put, it's taking all our wav files generated in Step 1, along with our recorded speech in out excel documents and its training the model on that voice e.g. listen to this audio file and this is what is being said in it, so learn to reproduce it.
+ ### 🟩 How long will this take?
+ ◽ On a RTX 4070 with factory settings (as below) and 20 minutes of audio, this took 20 minutes. Again, it will vary by system and how much audio you are throwing at it. You have time to go make a coffee.
+ ◽ Look at your command prompt/terminal window if you want to see what it is doing.
+ """ + ) + + with gr.Tab("Info - Grad Accumulation"): + gr.Markdown( + f""" + ### 🟩 Grad Accumulation
+ ◽ Gradient accumulation is a technique that allows you to simulate a larger batch size without actually increasing the memory consumption. Here's how it works:
+       ◽ Instead of updating the model's parameters after every batch, gradient accumulation enables you to process multiple batches and accumulate their gradients.
+       ◽ By setting steps greater than 1, you can process multiple batches before a single optimization step e.g if steps is set to 4, the gradients will be accumulated over 4 batches before updating the model's parameters.
+       ◽ This means that you can effectively use a larger batch size while keeping the actual batch size per iteration smaller, thereby reducing the memory footprint.
+       ◽ Increasing the steps allows you to find a balance between memory consumption and computational efficiency. You can process more examples per optimization step without exceeding the available memory.

+ ◽ However, it's important to note that increasing the gradient accumulation steps does have an impact on the training process:
+       ◽ Since the model's parameters are updated less frequently (every grad_accum_steps batches), the training dynamics may be slightly different compared to updating the model after every batch.
+       ◽ You may need to adjust the learning rate and other hyperparameters accordingly to compensate for the less frequent updates. Typically, you can increase the learning rate slightly when using gradient accumulation.
+       ◽ The training progress will be slower in terms of the number of optimization steps per epoch, as the model updates occur less frequently.
+       ◽ However, the overall training time may still be reduced compared to using a smaller batch size without gradient accumulation, as it allows for better utilization of GPU resources.
+       ◽ To start, you can try setting steps to a value like 4 and see if it resolves the OOM error. If the error persists, you can experiment with higher values until you find a balance that works for your specific setup. + """ + ) + with gr.Tab("Info - Batch Size"): + gr.Markdown( + f""" + ### 🟩 Batch Size
+ ◽ Batch size refers to the number of training examples processed in a single iteration (forward and backward pass) before updating the model's parameters.
+ ◽ A larger batch size allows for more efficient computation and utilization of hardware resources, especially when using GPUs.
+ ◽ However, increasing the batch size also increases the memory consumption during training, as more examples need to be stored in memory.
+ ◽ If the batch size is too large, it can lead to out-of-memory (OOM) errors, especially when training on GPUs with limited memory.
+ ◽ On the other hand, using a smaller batch size can result in slower training and may require more iterations to converge.
+ ◽ The optimal batch size depends on various factors, such as the model architecture, available hardware resources, and the specific problem being solved.
+ ◽ It's common to experiment with different batch sizes to find a balance between training speed and memory efficiency.
+ ◽ If you encounter OOM errors, try reducing the batch size until the training can proceed without memory issues.
+ ◽ Keep in mind that the batch size also affects the model's generalization and convergence behavior, so it's important to monitor the model's performance while adjusting the batch size. + """ + ) + with gr.Tab("Info - Learning Rate"): + gr.Markdown( + f""" + ### 🟩 Learning Rate
+ ◽ 1e-6: Very small learning rate, slow but stable learning.
+ ◽ 5e-6: Small learning rate, slow but stable learning.
+ ◽ 1e-5: Moderate learning rate, balanced between stability and convergence speed.
+ ◽ 5e-5: Higher learning rate, faster convergence but potential instability.
+ ◽ 1e-4: High learning rate, faster convergence but increased risk of instability.
+ ◽ 5e-4: Very high learning rate, fast convergence but higher risk of instability.
+ ◽ 1e-3: Extremely high learning rate, very fast convergence but high risk of instability.

+ The optimal learning rate depends on the model architecture, dataset, and other hyperparameters. + """ + ) + with gr.Tab("Info - Epochs"): + gr.Markdown( + f""" + ### 🟩 Epochs
+ ◽ An epoch represents a single pass through the entire training dataset during the training process.
+ ◽ In each epoch, the model sees and learns from all the training examples once.
+ ◽ The number of epochs determines how many times the model will iterate over the complete training dataset.
+ ◽ Increasing the number of epochs allows the model to learn more from the data and potentially improve its performance.
+ ◽ However, training for too many epochs can lead to overfitting, where the model becomes too specialized to the training data and fails to generalize well to unseen data.
+ ◽ The optimal number of epochs depends on factors such as the complexity of the problem, the size of the dataset, and the model's capacity.
+ ◽ It's common to use techniques like early stopping or validation monitoring to determine the appropriate number of epochs.
+ ◽ Early stopping involves monitoring the model's performance on a validation set and stopping the training when the performance starts to degrade, indicating potential overfitting.
+ ◽ Validation monitoring involves evaluating the model's performance on a separate validation set after each epoch and selecting the model checkpoint that performs best on the validation set.
+ ◽ It's recommended to start with a reasonable number of epochs and monitor the model's performance to determine if more epochs are needed or if early stopping should be applied + """ + ) + with gr.Tab("Info - Max Audio"): + gr.Markdown( + f""" + ### 🟩 Max Permitted Audio Size (in seconds)
+ ◽ The max permitted audio size determines the maximum duration of audio files that can be used as input to the model during training and inference.
+ ◽ It is specified in seconds and represents the longest audio clip that the model can process.
+ ◽ Limiting the audio size helps to control the memory usage and computational requirements of the model.
+ ◽ If the audio files in your dataset vary in length, it's important to consider the max permitted audio size to ensure that all files can be processed effectively.
+ ◽ Audio files longer than the max permitted size will typically be truncated or split into smaller segments before being fed into the model.
+ ◽ The choice of max permitted audio size depends on the specific requirements of your application and the available hardware resources.
+ ◽ Increasing the max permitted audio size allows the model to handle longer audio clips but also increases the memory consumption and computational burden.
+ ◽ If you encounter memory issues or slow processing times, you may need to reduce the max permitted audio size to find a suitable balance.
+ ◽ It's important to consider the nature of your audio data and choose a max permitted audio size that captures the relevant information while being computationally feasible. + """ + ) + + +####################### +#### GRADIO STEP 3 #### +####################### + + with gr.Tab("✅ Step 3 - Testing"): + with gr.Tab("Testing"): + with gr.Row(): + with gr.Column() as col1: + xtts_checkpoint = gr.Dropdown( + [str(file) for file in xtts_checkpoint_files], + label="XTTS checkpoint path (best_model.pth):", + value="", + allow_custom_value=True, + ) + + xtts_config = gr.Dropdown( + [str(file) for file in xtts_config_files], + label="XTTS config path (config.json):", + value="", + allow_custom_value=True, + ) + + xtts_vocab = gr.Dropdown( + [str(file) for file in xtts_vocab_files], + label="XTTS vocab path (vocab.json):", + value="", + allow_custom_value=True, + ) + progress_load = gr.Label( + label="Progress:" + ) + load_btn = gr.Button(value="Step 3 - Load Fine-tuned XTTS model") + + with gr.Column() as col2: + with gr.Row(): + # Gather the voice files + available_speaker_audios = get_available_voices() + + # Create Dropdown for speaker reference audio + speaker_reference_audio = gr.Dropdown( + available_speaker_audios, + label="Speaker reference audio:", + value="", # Set the default value if needed + allow_custom_value=True, # Allow custom values + scale=1, + ) + + with gr.Row(): + tts_language = gr.Dropdown( + label="Language", + value="en", + choices=[ + "en", + "es", + "fr", + "de", + "it", + "pt", + "pl", + "tr", + "ru", + "nl", + "cs", + "ar", + "zh", + "hu", + "ko", + "ja", + ] + ) + # Create refresh button + refresh_button = create_refresh_button( + [xtts_checkpoint, xtts_config, xtts_vocab, speaker_reference_audio], + [ + lambda: {"choices": find_best_models(main_directory), "value": ""}, + lambda: {"choices": find_jsons(main_directory, "config.json"), "value": ""}, + lambda: {"choices": find_jsons(main_directory, "vocab.json"), "value": ""}, + lambda: {"choices": get_available_voices(), "value": ""}, + ], + elem_class="refresh-button-class" + ) + tts_text = gr.Textbox( + label="Input Text:", + value="I've just fine tuned a text to speech language model and this is how it sounds. If it doesn't sound right, I will try a different Speaker Reference Audio file.", + lines=5, + ) + tts_btn = gr.Button(value="Step 4 - Inference (Generate TTS)") + + with gr.Row(): + progress_gen = gr.Label( + label="Progress:" + ) + with gr.Row(): + tts_output_audio = gr.Audio(label="TTS Generated Speech.") + reference_audio = gr.Audio(label="Speaker Reference Audio Sample.") + + with gr.Tab("Testing Instructions"): + gr.Markdown( + f""" + ### ✅ Testing
+ ### 🟥 Important Note + ◽ If you dont believe the dropdown lists are populated correctly, you can use the "Refresh Dropdowns" button to search the finetuning folder path and update the lists. You can also manually edit the path to the listed files.
+ ◽ You can use any config.json or vocab.json, as long as they match the model version you trained on. Only the XTTS checkpoint matters.
+ ◽ Upon successful processing of your speech data, expect to find multiple speaker reference files if your input consisted of over 3 minutes of speech.
+ ◽ Audio clips shorter than 7 seconds are automatically excluded from the reference list, as they generally do not provide sufficient length for effective TTS generation.
+ ◽ Should you find a lower number of reference files than anticipated, it may be due to the initial segmentation performed by Whisper (Step 1), which can occasionally result in clips that are too brief for our criteria or indeed too long. In such cases, consider manually segmenting your audio to give Whisper a better chance at generating training data and repeating the process.
+ ### 🟦 What you need to do + ◽ **Click** the **Refresh Dropdowns** button to correctly populate the **Speaker Reference Audio** with all the available WAV samples.
+ ◽ The model is now trained and you are at the testing stage. Hopefully all the dropdowns should be pre-populated now.
+ ◽ You need to Load Fine-tuned XTTS model and then select your Speaker Reference Audio. You can choose various Speaker Reference Audios to see which works best.
+ ◽ All the Speaker Reference Audios in the dropdown are ones that are 8 seconds long or more. You can use one of these later for your voice sample in All Talk, so remember the one you like.
+ ◽ Some Speaker Reference Audios are a bit long and may cause issues generating the TTS, so try different ones.
+ ◽ Once you are happy, move to the next tab for instruction on cleaning out the training data and how to copy your newly trained model over your current model.
+ ### 🟨 What this step is doing + ◽ Its loading the finetuned model into memory, loading a voice sample and generating TTS, so that you can test out how well fine tuning worked. + """ + ) + + + with gr.Tab("🔜 What to do next"): + gr.Markdown( + f""" + ### 🔜 What to do next
+ ### 🟦 What you need to do + You have a few options below:
+ ◽ **Compact & move model:** This will compress the raw finetuned model and move it, along with any large enough wav files created to the folder name of your choice.
+ ◽ **Delete Generated Training data:** This will delete the finetuned model and any other training data generated during this process. You will more than likely want to do this after you have Compacted & moved the model.
+ ◽ **Delete original voice samples:** This will delete the voice samples you placed in put-voice-samples-in-here (if you no longer have a use for them).
+ ◽ **Note:** Your sample wav files will be copied into the model folder. You will need to **MANUALLY** copy/move the WAV file(s) you want to use to the AllTalk **voices** folder, to make them available within the interface.
+ ### 🟨 Clearing up disk space + ◽ If you are not going to train anything again, you can delete the whisper model from inside of your huggingface cache (3GB approx)
+         ◽ **Linux:** ~/.cache/huggingface/hub/(folder-here)
+         ◽ **Windows:** C:\users(your-username)\.cache\huggingface\hub\(folder-here).
+ """ + ) + final_progress_data = gr.Label( + label="Progress:" + ) + with gr.Row(): + xtts_checkpoint_copy = gr.Dropdown( + [str(file) for file in xtts_checkpoint_files], + label="XTTS checkpoint path (Select the model you want to copy over):", + value="", + allow_custom_value=True, + scale=2, + ) + # Create refresh button + refresh_button = create_refresh_button( + [xtts_checkpoint_copy,], + [ + lambda: {"choices": find_best_models(main_directory), "value": ""}, + ], + elem_class="refresh-button-class") + with gr.Row(): + overwrite_existing = gr.Dropdown(value="Do not overwrite existing files", choices=["Overwrite existing files", "Do not overwrite existing files"], label="File Overwrite Options",) + folder_path = gr.Textbox(label="Enter a new folder name (will be sub the models folder)", lines=1, value="mycustomfolder") + compact_custom_btn = gr.Button(value="Compact and move model to a folder name of your choosing") + with gr.Row(): + gr.Textbox(value="This will DELETE your training data and the raw finetuned model from /finetune/tmp-trn", scale=2, show_label=False, interactive=False) + delete_training_btn = gr.Button(value="Delete generated training data") + with gr.Row(): + gr.Textbox(value="This will DELETE your original voice samples from /finetune/put-voice-samples-in-here/.", scale=2, show_label=False, interactive=False) + delete_voicesamples_btn = gr.Button(value="Delete original voice samples") + + prompt_compute_btn.click( + fn=preprocess_dataset, + inputs=[ + lang, + whisper_model, + out_path, + max_sample_length, + eval_split_number, + speaker_name_input, + ], + outputs=[ + progress_data, + train_csv, + eval_csv, + ], + ) + + + train_btn.click( + fn=train_model, + inputs=[ + lang, + train_csv, + eval_csv, + learning_rates, + model_to_train, + num_epochs, + batch_size, + grad_acumm, + out_path, + max_audio_length, + ], + outputs=[progress_train, xtts_config, xtts_vocab, xtts_checkpoint, speaker_reference_audio], + ) + + load_btn.click( + fn=load_model, + inputs=[ + xtts_checkpoint, + xtts_config, + xtts_vocab + ], + outputs=[progress_load], + ) + + tts_btn.click( + fn=run_tts, + inputs=[ + tts_language, + tts_text, + speaker_reference_audio, + ], + outputs=[progress_gen, tts_output_audio, reference_audio], + ) + compact_custom_btn.click( + fn=compact_custom_model, + inputs=[xtts_checkpoint_copy, folder_path, overwrite_existing], + outputs=[final_progress_data], + ) + delete_training_btn.click( + fn=delete_training_data, + outputs=[final_progress_data], + ) + delete_voicesamples_btn.click( + fn=delete_voice_sample_contents, + outputs=[final_progress_data], + ) + model_to_train.change(basemodel_or_finetunedmodel_choice, model_to_train, None) + + demo.queue().launch( + show_api=False, + inbrowser=True, + share=False, + debug=False, + server_port=7052, + server_name="127.0.0.1", + ) + diff --git a/script.py b/script.py new file mode 100644 index 0000000..1e312c0 --- /dev/null +++ b/script.py @@ -0,0 +1,1895 @@ +import os +import re +import sys +import json +import time +import shutil +import random +import atexit +import signal +import logging +import requests +import platform +import subprocess +import threading +import soundfile as sf +from pathlib import Path +from datetime import datetime, timedelta +from requests.exceptions import RequestException, ConnectionError +########################################################################### +# START-UP # Silence Character Normaliser when it checks the Ready Status # +########################################################################### +import warnings +warnings.filterwarnings('ignore', message='Trying to detect encoding from a tiny portion') +########################################### +# START-UP # AllTalk allowed startup time # +########################################### +startup_wait_time = 240 + +# You can change the above setting to a larger number to allow AllTAlk more time to start up. +# The default setting is 240 seconds (4 minutes). If its taking longer though, you may have a +# Very old system or system issue. + +############################################## +# START-UP # Load confignew.json into params # +############################################## +this_dir = Path(__file__).parent.resolve() + +def load_config(file_path): + with open(file_path, "r") as config_file: + config = json.load(config_file) + return config + +config_file_path = this_dir / "confignew.json" +params = load_config(config_file_path) +branding = params['branding'] +github_site = "erew123" +github_repository = "alltalk_tts" +current_folder = os.path.basename(os.getcwd()) +output_folder = this_dir / params["output_folder"] +delete_output_wavs_setting = params["delete_output_wavs"] +gradio_enabled = params["gradio_interface"] +script_path = this_dir / "tts_server.py" +tunnel_url = None +running_on_google_colab = False + +############################################ +# START-UP # Display initial splash screen # +############################################ +print(f"[{branding}TTS]\033[94m _ _ _ \033[1;35m_____ _ _ \033[0m _____ _____ ____ ") +print(f"[{branding}TTS]\033[94m / \ | | |\033[1;35m_ _|_ _| | | __ \033[0m |_ _|_ _/ ___| ") +print(f"[{branding}TTS]\033[94m / _ \ | | |\033[1;35m | |/ _` | | |/ / \033[0m | | | | \___ \ ") +print(f"[{branding}TTS]\033[94m / ___ \| | |\033[1;35m | | (_| | | < \033[0m | | | | ___) |") +print(f"[{branding}TTS]\033[94m /_/ \_\_|_|\033[1;35m |_|\__,_|_|_|\_\ \033[0m |_| |_| |____/ ") +print(f"[{branding}TTS]") + +###################################################### +# START-UP # Check if this is a first time start-up # +###################################################### +def run_firsttime_script(): + try: + subprocess.run(['python', 'system/config/firstrun.py'], check=True) + except Exception as e: + print(f"An unexpected error occurred: {e}") + +# Call the function to run the startup script +run_firsttime_script() + +########################################################### +# START-UP # Check for updates needed to the config file # +########################################################### +update_config_path = this_dir / "system" / "config" / "at_configupdate.json" +downgrade_config_path = this_dir / "system" / "config" / "at_configdowngrade.json" +def changes_needed(main_config, update_config, downgrade_config): + """Check if there are any changes to be made to the main configuration.""" + for key in downgrade_config.keys(): + if key in main_config: + return True + for key, value in update_config.items(): + if key not in main_config: + return True + return False + +def update_config(config_file_path, update_config_path, downgrade_config_path): + try: + with open(config_file_path, 'r') as file: + main_config = json.load(file) + with open(update_config_path, 'r') as file: + update_config = json.load(file) + with open(downgrade_config_path, 'r') as file: + downgrade_config = json.load(file) + + # Determine if changes are needed + if changes_needed(main_config, update_config, downgrade_config): + # Backup with timestamp to avoid overwriting + timestamp = datetime.now().strftime("%Y%m%d%H%M%S") + backup_path = config_file_path.with_suffix(f".{timestamp}.bak") + logging.info(f"Creating backup of the main config to {backup_path}") + shutil.copy(config_file_path, backup_path) + + # Proceed with updates and downgrades + for key, value in update_config.items(): + if key not in main_config: + main_config[key] = value + for key in downgrade_config.keys(): + if key in main_config: + del main_config[key] + + # Save the updated configuration + with open(config_file_path, 'w') as file: + json.dump(main_config, file, indent=4) + + print(f"[{branding}TTS] \033[92mConfig file update: \033[91mUpdates applied\033[0m") + else: + print(f"[{branding}TTS] \033[92mConfig file update: \033[93mNo Updates required\033[0m") + + except Exception as e: + print(f"[{branding}TTS] \033[92mConfig file update: \033[91mError updating\033[0m") + +# Update the configuration +update_config(config_file_path, update_config_path, downgrade_config_path) + +########################################################################################### +# START-UP # Check for updates needed to the TTS engines list when a new engine is added # +########################################################################################### +tts_engines_path = this_dir / "system" / "tts_engines" / "tts_engines.json" +new_engines_path = this_dir / "system" / "tts_engines" / "new_engines.json" + +# Load the JSON files +with open(tts_engines_path, 'r') as f: + tts_engines_data = json.load(f) + +with open(new_engines_path, 'r') as f: + new_engines_data = json.load(f) + +# Extract the list of current and new engines +current_engines = {engine['name'] for engine in tts_engines_data['engines_available']} +new_engines = new_engines_data['engines_available'] + +# Iterate over the new engines to see if they need to be added +for engine in new_engines: + engine_name = engine['name'] + if engine_name not in current_engines: + # Check if the directory for the new engine exists + engine_dir = this_dir / "system" / "tts_engines" / engine_name + if engine_dir.is_dir(): + # Add the new engine to the list + tts_engines_data['engines_available'].append(engine) + print(f"[{branding}TTS] \033[92mNew TTS Engines : \033[91mAdded {engine_name}\033[0m") + +# Save the updated tts_engines.json +with open(tts_engines_path, 'w') as f: + json.dump(tts_engines_data, f, indent=4) + +#################################################### +# START-UP # Re-load from confignew.json to params # +#################################################### +params = load_config(config_file_path) + +############################################################################# +# START-UP # Check current folder name has dashes '-' in it and error if so # +############################################################################# +if "-" in current_folder: + print(f"[{branding}TTS]") + print(f"[{branding}TTS] \033[91mWarning\033[0m The current folder name contains a dash ('\033[93m-\033[0m') and this causes errors/issues. Please ensure") + print(f"[{branding}TTS] \033[91mWarning\033[0m the folder name does not have a dash e.g. rename ('\033[93malltalk_tts-main\033[0m') to ('\033[93malltalk_tts\033[0m').") + print(f"[{branding}TTS]") + print(f"[{branding}TTS] \033[92mCurrent folder:\033[0m {current_folder}") + sys.exit(1) + +############################################################################### +# START-UP # Test if we are running within Text-gen-webui or as a Stanadalone # +############################################################################### +try: + import gradio as gr + from modules import chat, shared, ui_chat + from modules.logging_colors import logger + from modules.ui import create_refresh_button + from modules.utils import gradio + print(f"[{branding}TTS] \033[92mStart-up Mode : \033[93mText-gen-webui mode\033[0m") + running_in_standalone = False +except ModuleNotFoundError: + running_in_standalone = True + print(f"[{branding}TTS] \033[92mStart-up Mode : \033[93mStandalone mode\033[0m") + +########################################################### +# START-UP # Delete files in outputs folder if configured # +########################################################### +def delete_old_files(folder_path, days_to_keep): + current_time = datetime.now() + print(f"[{branding}TTS] \033[92mWAV file deletion :\033[93m", delete_output_wavs_setting,"\033[0m") + for file_name in os.listdir(folder_path): + file_path = os.path.join(folder_path, file_name) + if os.path.isfile(file_path): + file_creation_time = datetime.fromtimestamp(os.path.getctime(file_path)) + age = current_time - file_creation_time + if age > timedelta(days=days_to_keep): + os.remove(file_path) + +# Check and perform file deletion +if delete_output_wavs_setting.lower() == "disabled": + print(f"[{branding}TTS] \033[92mWAV file deletion :\033[93m Disabled\033[0m") +else: + try: + days_to_keep = int(delete_output_wavs_setting.split()[0]) + delete_old_files(output_folder, days_to_keep) + except ValueError: + print(f"[{branding}TTS] \033[92mWAV file deletion :\033[93m Invalid setting for deleting old wav files. Please use 'Disabled' or 'X Days' format\033[0m") + +##################################################################### +# START-UP # Check Githubs last update and output into splashscreen # +##################################################################### +def ordinal(n): + return "%d%s" % (n, "th" if 4 <= n % 100 <= 20 else {1: "st", 2: "nd", 3: "rd"}.get(n % 10, "th")) + +def format_datetime(iso_str): + # Parse the ISO 8601 string to datetime + dt = datetime.strptime(iso_str, "%Y-%m-%dT%H:%M:%SZ") + # Format the datetime into a more readable string + return dt.strftime(f"{ordinal(dt.day)} %B %Y at %H:%M") + +def fetch_latest_commit_sha_and_date(owner, repo): + url = f"https://api.github.com/repos/{owner}/{repo}/commits" + try: + response = requests.get(url) + if response.status_code == 200: + latest_commit = response.json()[0] + latest_commit_sha = latest_commit['sha'] + latest_commit_date = latest_commit['commit']['committer']['date'] + return latest_commit_sha, latest_commit_date + else: + print(f"[{branding}TTS] \033[92mGithub updated :\033[91m Failed to fetch the latest commits due to an unexpected response from GitHub") + return None, None + except ConnectionError: + # This block is executed when a connection error occurs + print(f"[{branding}TTS] \033[92mGithub updated :\033[91m Could not reach GitHub to check for updates\033[0m") + return None, None + +def read_or_initialize_sha(file_path): + if os.path.exists(file_path): + with open(file_path, 'r') as file: + data = json.load(file) + return data.get("last_known_commit_sha") + else: + # File doesn't exist, fetch the latest SHA and create the file + latest_commit_sha = fetch_latest_commit_sha_and_date(github_site, github_repository) + if latest_commit_sha: + with open(file_path, 'w') as file: + json.dump({"last_known_commit_sha": latest_commit_sha}, file) + return latest_commit_sha + else: + # Handle the case where GitHub couldn't be reached + return None + +def update_sha_file(file_path, new_sha): + with open(file_path, 'w') as file: + json.dump({"last_known_commit_sha": new_sha}, file) + +# Define the file path based on your directory structure +sha_file_path = this_dir / "system" / "config" / "at_github_sha.json" + +# Read or initialize the SHA (adjusted for handling both SHA and date) +last_known_commit_sha = read_or_initialize_sha(sha_file_path) # Assuming adjustment for date + +# Assuming you have fetched the latest commit SHA and date +latest_commit_sha, latest_commit_date = fetch_latest_commit_sha_and_date(github_site, github_repository) + +formatted_date = format_datetime(latest_commit_date) if latest_commit_date else "an unknown date" + +if latest_commit_sha and latest_commit_sha != last_known_commit_sha: + #print(f"There's an update available for alltalk_tts.") + print(f"[{branding}TTS] \033[92mGithub updated :\033[93m {formatted_date}\033[0m") + # Update the file with the new SHA + update_sha_file(sha_file_path, latest_commit_sha) +elif latest_commit_sha == last_known_commit_sha: + #print(f"Your alltalk_tts software is up to date.") + print(f"[{branding}TTS] \033[92mGithub updated :\033[93m {formatted_date}\033[0m") + +################################################## +# START-UP # Configure the subprocess hanlder #### +################################################## +def signal_handler(sig, frame): + print(f"[{branding}Shutdown] \033[94mReceived Ctrl+C, terminating subprocess. Kill your Python processes if this fails to exit.\033[92m") + if process.poll() is None: + process.terminate() + process.wait() # Wait for the subprocess to finish + sys.exit(0) + +##################################################################### +# START-UP # Start the Subprocess and Check for Google Colab/Docker # +##################################################################### +try: + import google.colab + running_on_google_colab = True + #if deepspeed_installed: + #params["deepspeed_activate"] = True + with open('/content/alltalk_tts/googlecolab.json', 'r') as f: + data = json.load(f) + google_ip_address = data.get('google_ip_address', tunnel_url) +except FileNotFoundError: + print("Could not find IP address") + google_ip_address = tunnel_url +except ImportError: + pass + +# Attach the signal handler to the SIGINT signal (Ctrl+C) +signal.signal(signal.SIGINT, signal_handler) + +# Check if we're running in docker +if os.path.isfile("/.dockerenv") and 'google.colab' not in sys.modules: + print(f"[{branding}TTS] \033[94mRunning in Docker. Please wait.\033[0m") +else: + # Start the subprocess + process = subprocess.Popen(["python", script_path]) + + # Check if the subprocess has started successfully + if process.poll() is None: + if running_on_google_colab: + print(f"[{branding}TTS]") + print(f"[{branding}TTS] \033[94m{branding}Google Colab Address:\033[00m",f"\033[92m{google_ip_address}:443\033[00m") + print(f"[{branding}TTS]") + else: + print(f"[{branding}TTS] \033[91mWarning\033[0m TTS Subprocess Webserver failing to start process") + print(f"[{branding}TTS] \033[91mWarning\033[0m It could be that you have something on port:",params["port_number"],) + print(f"[{branding}TTS] \033[91mWarning\033[0m Or you have not started in a Python environement with all the necesssary bits installed") + print(f"[{branding}TTS] \033[91mWarning\033[0m Check you are starting Text-generation-webui with either the start_xxxxx file or the Python environment with cmd_xxxxx file.") + print(f"[{branding}TTS] \033[91mWarning\033[0m xxxxx is the type of OS you are on e.g. windows, linux or mac.") + print(f"[{branding}TTS] \033[91mWarning\033[0m Alternatively, you could check no other Python processes are running that shouldnt be e.g. Restart your computer is the simple way.") + # Cleanly kill off this script, but allow text-generation-webui to keep running, albeit without this alltalk_tts + sys.exit(1) + + timeout = startup_wait_time # Gather timeout setting from startup_wait_time + initial_delay = 5 # Initial delay before starting the check loop + warning_delay = 60 # Delay before displaying warnings + + # Introduce a delay before starting the check loop + time.sleep(initial_delay) + + start_time = time.time() + warning_displayed = False + + url = f"http://localhost:{params['api_def']['api_port_number']}/api/ready" + while time.time() - start_time < timeout: + try: + response = requests.get(url) + if response.status_code == 200 and response.text == "Ready": + break + except requests.RequestException as e: + # Log the exception if needed + pass + + if not warning_displayed and time.time() - start_time >= warning_delay: + print(f"[{branding}TTS] \033[91mWarning\033[0m TTS Engine has NOT started up yet. Will keep trying for {timeout} seconds maximum. Please wait.") + print(f"[{branding}TTS] \033[91mWarning\033[0m Mechanical hard drives and a slow PCI BUS are examples of things that can affect load times.") + print(f"[{branding}TTS] \033[91mWarning\033[0m Some TTS engines index their AI TTS models on loading, which can be slow on CPU or old systems.") + print(f"[{branding}TTS] \033[91mWarning\033[0m Using one of the other TTS engines on slower systems can help ease this issue.") + warning_displayed = True + + time.sleep(1) + else: + print(f"[{branding}TTS]") + print(f"[{branding}TTS] Startup timed out. Full help available here \033[92mhttps://github.com/erew123/alltalk_tts#-help-with-problems\033[0m") + print(f"[{branding}TTS] On older systems, you may wish to open and edit \033[94mscript.py\033[0m with a text editor and change the") + print(f"[{branding}TTS] \033[94mstartup_wait_time = 240\033[0m setting to something like \033[94mstartup_wait_time = 460\033[0m as this will allow") + print(f"[{branding}TTS] AllTalk more time (6 mins) to try load the model into your VRAM. Otherwise, please visit the GitHub for") + print(f"[{branding}TTS] a list of other possible troubleshooting options.") + # Cleanly kill off this script, but allow text-generation-webui to keep running, albeit without this alltalk_tts + sys.exit(1) + + print(f"[{branding}TTS]") + print(f"[{branding}TTS] \033[94mAPI Address :\033[00m",f"\033[92m127.0.0.1:{params['api_def']['api_port_number']}\033[00m") + print(f"[{branding}TTS] \033[94mGradio Light:\033[00m",f"\033[92mhttp://127.0.0.1:{params['gradio_port_number']}\033[00m") + print(f"[{branding}TTS] \033[94mGradio Dark :\033[00m \033[92mhttp://127.0.0.1:{params['gradio_port_number']}?__theme=dark\033[00m") + print(f"[{branding}TTS]") + + +######################################### +# START-UP # Espeak-ng check on Windows # +######################################### +def check_espeak_ng(): + if platform.system() == "Windows": + try: + result = subprocess.run(['espeak-ng', '--version'], capture_output=True, text=True, check=True) + return + except (subprocess.CalledProcessError, FileNotFoundError) as e: + # If the command returns an error, print the error message + print(f"[{branding}TTS]") + print(f"[{branding}TTS] Espeak-ng for Windows\033[91m WAS NOT FOUND. \033[0mYou can install\033[0m") + print(f"[{branding}TTS] \033[0mit from this location \033[93m\\alltalk_tts\\system\espeak-ng\\\033[0m") + print(f"[{branding}TTS] Then close this command prompt window and open a new") + print(f"[{branding}TTS] command prompt, before starting {branding}again.") + elif platform.system() == "Darwin": # macOS + try: + result = subprocess.run(['espeak-ng', '--version'], capture_output=True, text=True, check=True) + return + except FileNotFoundError: + print(f"[{branding}TTS]") + print(f"[{branding}TTS] Espeak-ng for macOS\033[91m WAS NOT FOUND. \033[0mYou can install\033[0m") + print(f"[{branding}TTS] \033[0mit using Homebrew: \033[93mbrew install espeak-ng\033[0m") + else: # Linux + try: + result = subprocess.run(['espeak-ng', '--version'], capture_output=True, text=True, check=True) + return + except FileNotFoundError: + print(f"[{branding}TTS]") + print(f"[{branding}TTS] Espeak-ng for Linux\033[91m WAS NOT FOUND. \033[0mYou can install\033[0m") + print(f"[{branding}TTS] \033[0mit using your package manager, e.g., \033[93mapt-get install espeak-ng\033[0m") + print(f"[{branding}TTS]") + print(f"[{branding}TTS]") + +check_espeak_ng() +#################################### +# START-UP # Subprecess management # +#################################### + +def start_subprocess(): + global process + if process is None or process.poll() is not None: + process = subprocess.Popen(["python", script_path]) + return "Subprocess started." + else: + return "Subprocess is already running." + +def stop_subprocess(): + global process + if process is not None: + process.terminate() + process.wait() + process = None + return "Subprocess stopped." + else: + return "Subprocess is not running." + +def restart_subprocess(): + stop_subprocess() + print(f"[{branding}ENG]") + print(f"[{branding}ENG] \033[94mSwapping TTS Engine. Please wait.\033[00m") + print(f"[{branding}ENG]") + return start_subprocess() + +def check_subprocess_status(): + global process + if process is None or process.poll() is not None: + return "Subprocess is not running." + else: + return "Subprocess is running." + + +################################################################### +# START-UP # Register the termination code to be executed at exit # +################################################################### +atexit.register(lambda: process.terminate() if process.poll() is None else None) + +############################################################################################################# +# _____ _ _ _ ____ _ _ # +# |_ _|____ _| |_ __ _ ___ _ __ __ _____| |__ _ _(_) / ___|_ __ __ _ __| (_) ___ # +# | |/ _ \ \/ / __|____ / _` |/ _ \ '_ \ ____\ \ /\ / / _ \ '_ \| | | | | | | _| '__/ _` |/ _` | |/ _ \ # +# | | __/> <| ||_____| (_| | __/ | | |_____\ V V / __/ |_) | |_| | | | |_| | | | (_| | (_| | | (_) | # +# |_|\___/_/\_\\__| \__, |\___|_| |_| \_/\_/ \___|_.__/ \__,_|_| \____|_| \__,_|\__,_|_|\___/ # +# |___/ # +############################################################################################################# +########################## +# Setup global variables # +########################## +# Load the language options from languages +with open(os.path.join(this_dir, "system", "config", "languages.json"), "r") as f: + languages_list = json.load(f) +current_model_loaded = None +#deepspeed_installed = True +tgwui_lovram = False +tgwui_deepspeed = False +# Create a global lock for tracking TTS generation occuring +process_lock = threading.Lock() +# Pull the values for IP address, port and protocol for communication with the AllTalk renote server +alltalk_protocol = "http://" +alltalk_ip_port = "127.0.0.1:7851" +# Pull the connection timeout value for communication requests with the AllTalk remote server +connection_timeout = 10 +# Create a few base global variables that are required +models_available = None # Gets populated with the list of all models/engines available on the AllTalk Server +at_settings = None # Gets populated with the list of all settings currently set on the AllTalk Server +current_model_loaded = None # Gets populated with the name of the current loaded TTS engine/model on the AllTalk Server +# Used to detect if a model is loaded in to AllTalk server to block TTS genereation if needed. +tts_model_loaded = None + +################################################# +# Pull all the settings from the AllTalk Server # +################################################# +def get_alltalk_settings(): + global current_model_loaded, models_available, engines_available, current_engine_loaded + voices_url = f"{alltalk_protocol}{alltalk_ip_port}/api/voices" + rvcvoices_url = f"{alltalk_protocol}{alltalk_ip_port}/api/rvcvoices" + settings_url = f"{alltalk_protocol}{alltalk_ip_port}/api/currentsettings" + + try: + voices_response = requests.get(voices_url, timeout=connection_timeout) + rvcvoices_response = requests.get(rvcvoices_url, timeout=connection_timeout) + settings_response = requests.get(settings_url, timeout=connection_timeout) + + if voices_response.status_code == 200 and settings_response.status_code == 200: + voices_data = voices_response.json() + rvcvoices_data = rvcvoices_response.json() + settings_data = settings_response.json() + + engines_available = sorted(settings_data["engines_available"]) + current_engine_loaded = settings_data["current_engine_loaded"] + models_available = sorted([model["name"] for model in settings_data["models_available"]]) + current_model_loaded = settings_data["current_model_loaded"] + + return { + "voices": sorted(voices_data["voices"], key=lambda s: s.lower()), + "rvcvoices": (rvcvoices_data["rvcvoices"]), + "engines_available": engines_available, + "current_engine_loaded": current_engine_loaded, + "models_available": models_available, + "current_model_loaded": current_model_loaded, + "manufacturer_name": settings_data.get("manufacturer_name", ""), + "deepspeed_capable": settings_data.get("deepspeed_capable", False), + "deepspeed_available": settings_data.get("deepspeed_available", False), + "deepspeed_enabled": settings_data.get("deepspeed_enabled", False), + "generationspeed_capable": settings_data.get("generationspeed_capable", False), + "generationspeed_set": settings_data.get("generationspeed_set", 1.0), + "lowvram_capable": settings_data.get("lowvram_capable", False), + "lowvram_enabled": settings_data.get("lowvram_enabled", False), + "pitch_capable": settings_data.get("pitch_capable", False), + "pitch_set": settings_data.get("pitch_enabled", False), + "repetitionpenalty_capable": settings_data.get("repetitionpenalty_capable", False), + "repetitionpenalty_set": settings_data.get("repetitionpenalty_set", 10.0), + "streaming_capable": settings_data.get("streaming_capable", False), + "temperature_capable": settings_data.get("temperature_capable", False), + "temperature_set": settings_data.get("temperature_set", 0.75), + "ttsengines_installed": settings_data.get("ttsengines_installed", False), + "languages_capable": settings_data.get("languages_capable", False), + "multivoice_capable": settings_data.get("multivoice_capable", False), + "multimodel_capable": settings_data.get("multimodel_capable", False), + } + else: + print(f"[{branding}Server] \033[91mWarning\033[0m Failed to retrieve {branding}settings from API.") + if voices_response.status_code != 200: + print(f"[{branding}Server] \033[91mWarning\033[0m Failed to retrieve voices from API. Status code:\n{voices_response.status_code}") + if settings_response.status_code != 200: + print(f"[{branding}Server] \033[91mWarning\033[0m Failed to retrieve current settings from API. Status code:\n{settings_response.status_code}") + return { + "voices": ["Please Refresh Settings"], + "rvcvoices": ["Please Refresh Settings"], + "engines_available": ["Please Refresh Settings"], + "current_engine_loaded": ["Please Refresh Settings"], + "models_available": ["Please Refresh Settings"], + "current_model_loaded": "Please Refresh Settings", + "manufacturer_name": "", + "deepspeed_capable": False, + "deepspeed_available": False, + "deepspeed_enabled": False, + "generationspeed_capable": False, + "generationspeed_set": 1.0, + "lowvram_capable": False, + "lowvram_enabled": False, + "pitch_capable": False, + "pitch_set": 0, + "repetitionpenalty_capable": False, + "repetitionpenalty_set": 10.0, + "streaming_capable": False, + "temperature_capable": False, + "temperature_set": 0.75, + "ttsengines_installed": False, + "languages_capable": False, + "multivoice_capable": False, + "multimodel_capable": False, + } + except (RequestException, ConnectionError) as e: + print(f"[{branding}Server] \033[91mWarning\033[0m Unable to connect to the {branding}server. Status code:\n{str(e)}") + return { + "voices": ["Please Refresh Settings"], + "rvcvoices": ["Please Refresh Settings"], + "engines_available": ["Please Refresh Settings"], + "current_engine_loaded": ["Please Refresh Settings"], + "models_available": ["Please Refresh Settings"], + "current_model_loaded": "Please Refresh Settings", + "manufacturer_name": "", + "deepspeed_capable": False, + "deepspeed_available": False, + "deepspeed_enabled": False, + "generationspeed_capable": False, + "generationspeed_set": 1.0, + "lowvram_capable": False, + "lowvram_enabled": False, + "pitch_capable": False, + "pitch_set": 0, + "repetitionpenalty_capable": False, + "repetitionpenalty_set": 10.0, + "streaming_capable": False, + "temperature_capable": False, + "temperature_set": 0.75, + "ttsengines_installed": False, + "languages_capable": False, + "multivoice_capable": False, + "multimodel_capable": False, + } + +at_settings = get_alltalk_settings() # Pull all the current settings from the AllTalk server, if its online. + +############################# +#### TTS STOP GENERATION #### +############################# +def stop_generate_tts(): + api_url = f"{alltalk_protocol}{alltalk_ip_port}/api/stop-generation" + try: + response = requests.put(api_url, timeout=connection_timeout) + if response.status_code == 200: + return response.json()["message"] + else: + print(f"[{branding}TTS] \033[91mWarning\033[0m Failed to stop generation. Status code:\n{response.status_code}") + return {"message": "Failed to stop generation"} + except (RequestException, ConnectionError) as e: + print(f"[{branding}TTS] \033[91mWarning\033[0m Unable to connect to the {branding}server. Status code:\n{str(e)}") + return {"message": "Failed to stop generation"} + +##################################### +#### MODEL LOADING AND UNLOADING #### +##################################### +# MODEL - Swap model based on Gradio selection +def send_reload_request(value_sent): + try: + url = f"{alltalk_protocol}{alltalk_ip_port}/api/reload" + payload = {"tts_method": value_sent} + response = requests.post(url, params=payload) + response.raise_for_status() # Raises an HTTPError for bad responses + except requests.exceptions.RequestException as e: + # Handle the HTTP request error + print(f"[{branding}TTS] \033[91mWarning\033[0m Error during request to webserver process: Status code:\n{e}") + return {"status": "error", "message": str(e)} + +#################################################################################################### +# TGWUI # Saves all settings back to the config file for the REMOTE version of the TGWUI extension # +#################################################################################################### +def tgwui_save_settings(): + # Read the existing settings from the file + try: + with open(config_file_path, "r") as file: + existing_settings = json.load(file) + except FileNotFoundError: + existing_settings = {} + # Update the specific settings you want to change + existing_settings.setdefault("tgwui", {}) + existing_settings["tgwui"]["tgwui_activate_tts"] = params["tgwui"]['tgwui_activate_tts'] + existing_settings["tgwui"]["tgwui_autoplay_tts"] = params["tgwui"]['tgwui_autoplay_tts'] + existing_settings["tgwui"]["tgwui_narrator_enabled"] = params["tgwui"]['tgwui_narrator_enabled'] + existing_settings["tgwui"]["tgwui_non_quoted_text_is"] = params["tgwui"]["tgwui_non_quoted_text_is"] + existing_settings["tgwui"]["tgwui_language"] = params["tgwui"]['tgwui_language'] + existing_settings["tgwui"]["tgwui_temperature_set"] = params["tgwui"]['tgwui_temperature_set'] + existing_settings["tgwui"]["tgwui_repetitionpenalty_set"] = params["tgwui"]['tgwui_repetitionpenalty_set'] + existing_settings["tgwui"]["tgwui_generationspeed_set"] = params["tgwui"]['tgwui_generationspeed_set'] + existing_settings["tgwui"]["tgwui_pitch_set"] = params["tgwui"]['tgwui_pitch_set'] + existing_settings["tgwui"]["tgwui_narrator_voice"] = params["tgwui"]['tgwui_narrator_voice'] + existing_settings["tgwui"]["tgwui_show_text"] = params["tgwui"]['tgwui_show_text'] + existing_settings["tgwui"]["tgwui_character_voice"] = params["tgwui"]['tgwui_character_voice'] + # Save the updated settings back to the file + with open(config_file_path, "w") as file: + json.dump(existing_settings, file, indent=4) + +############################################# +# Low VRAM change request to enable/disable # +############################################# +# LOW VRAM - Gradio Checkbox handling +def send_lowvram_request(value_sent): + try: + params["tgwui"]["tts_model_loaded"] = False + if value_sent: + audio_path = this_dir / "lowvramenabled.wav" + else: + audio_path = this_dir / "lowvramdisabled.wav" + url = f"{alltalk_protocol}{alltalk_ip_port}/api/lowvramsetting?new_low_vram_value={value_sent}" + headers = {"Content-Type": "application/json"} + response = requests.post(url, headers=headers) + response.raise_for_status() # Raises an HTTPError for bad responses + json_response = response.json() + # Check if the low VRAM request was successful + if json_response.get("status") == "lowvram-success": + # Update any relevant variables or perform other actions on success + params["tgwui"]["tts_model_loaded"] = True + return f'' + except requests.exceptions.RequestException as e: + # Handle the HTTP request error + print(f"[{branding}Server] \033[91mWarning\033[0m Error during request to webserver process: Status code:\n{e}") + return {"status": "error", "message": str(e)} + +################### +#### DeepSpeed #### +################### +def send_deepspeed_request(value_sent): + try: + params["tgwui"]["tts_model_loaded"] = False + if value_sent: + audio_path = this_dir / "deepspeedenabled.wav" + else: + audio_path = this_dir / "deepspeeddisabled.wav" + url = f"{alltalk_protocol}{alltalk_ip_port}/api/deepspeed?new_deepspeed_value={value_sent}" + headers = {"Content-Type": "application/json"} + response = requests.post(url, headers=headers) + response.raise_for_status() # Raises an HTTPError for bad responses + json_response = response.json() + # Check if the deepspeed request was successful + if json_response.get("status") == "deepspeed-success": + # Update any relevant variables or perform other actions on success + params["tgwui"]["tts_model_loaded"] = True + return f'' + except requests.exceptions.RequestException as e: + # Handle the HTTP request error + print(f"[{branding}Server] \033[91mWarning\033[0m Error during request to webserver process: Status code:\n{e}") + return {"status": "error", "message": str(e)} + +################################# +#### TTS STANDARD GENERATION #### +################################# +def send_and_generate(gen_text, gen_character_voice, gen_narrartor_voice, gen_narrator_activated, gen_textnotinisde, gen_repetition, gen_language, gen_filter, gen_speed, gen_pitch, gen_autoplay, gen_autoplay_vol, gen_file_name, gen_temperature, gen_filetimestamp, gen_stream, gen_stopcurrentgen): + api_url = f"{alltalk_protocol}{alltalk_ip_port}/api/tts-generate" + if gen_text == "": + print(f"[{branding}TTS] No Text was sent to generate as TTS") + return None, str("No Text was sent to generate as TTS") + if gen_stopcurrentgen: + stop_generate_tts() # Call for the current generation to stop + tgwui_save_settings() # Save the current TGWUI settings to the config file + if gen_stream == "true": + api_url = f"{alltalk_protocol}{alltalk_ip_port}/api/tts-generate-streaming" + encoded_text = requests.utils.quote(gen_text) + streaming_url = f"{api_url}?text={encoded_text}&voice={gen_character_voice}&language={gen_language}&output_file={gen_file_name}" + return streaming_url, str("TTS Streaming Audio Generated") + else: + data = { + "text_input": gen_text, + "text_filtering": gen_filter, + "character_voice_gen": gen_character_voice, + "narrator_enabled": str(gen_narrator_activated).lower(), + "narrator_voice_gen": gen_narrartor_voice, + "text_not_inside": gen_textnotinisde, + "language": gen_language, + "output_file_name": str(gen_file_name), + "output_file_timestamp": str(gen_filetimestamp).lower(), + "autoplay": str(gen_autoplay).lower(), + "autoplay_volume": str(gen_autoplay_vol), + "speed": str(gen_speed), + "pitch": str(gen_pitch), + "temperature": str(gen_temperature), + "repetition_penalty": str(gen_repetition), + } + print(f"Debug: Generate request param:", data) if params["debug_tts"] else None + try: + response = requests.post(api_url, data=data) + response.raise_for_status() # Raise an exception for 4xx or 5xx status codes + result = response.json() + if gen_autoplay == "true": + return None, str("TTS Audio Generated (Played remotely)") + else: + if params["api_def"]["api_use_legacy_api"]: + return result['output_file_url'], str("TTS Audio Generated") + else: + # Prepend the URL and PORT to the output_file_url + output_file_url = f"{alltalk_protocol}{alltalk_ip_port}{result['output_file_url']}" + return output_file_url, str("TTS Audio Generated") + except (RequestException, ConnectionError) as e: + print(f"[{branding}TTS] \033[91mWarning\033[0m Error occurred during the API request: Status code:\n{str(e)}") + return None, str("Error occurred during the API request") + +#################################################################### +# TGWUI # Text-generation-webui sends text for TTS generation here # +#################################################################### +def output_modifier(string, state): + if not params["tgwui"]["tgwui_activate_tts"]: + return string + # Strip out Images + img_info = "" + cleaned_text, img_info = tgwui_extract_and_remove_images(string) + if cleaned_text is None: + return + # Get current settings + language_code = languages_list.get(params["tgwui"]["tgwui_language"]) + character_voice = params["tgwui"]["tgwui_character_voice"] + narrator_voice = params["tgwui"]["tgwui_narrator_voice"] + narrator_enabled = params["tgwui"]["tgwui_narrator_enabled"] + text_not_inside = params["tgwui"]["tgwui_non_quoted_text_is"] + repetition_policy = params["tgwui"]["tgwui_repetitionpenalty_set"] + text_filtering = "html" + speed = params["tgwui"]["tgwui_generationspeed_set"] + pitch = params["tgwui"]["tgwui_pitch_set"] + autoplay = False # This is never used in TGWUI so a base False setting is sent + autoplay_volume = 0.8 # This is never used in TGWUI so a base False setting is sent + temperature = params["tgwui"]["tgwui_temperature_set"] + # Lock and process TTS request + if process_lock.acquire(blocking=False): + try: + if "character_menu" in state: + output_file = state["character_menu"] + else: + output_file = str("TTSOUT_") + generate_response, status_message = send_and_generate(cleaned_text, character_voice, narrator_voice, narrator_enabled, text_not_inside, repetition_policy, language_code, text_filtering, speed, pitch, autoplay, autoplay_volume, output_file, temperature, True, False, False) + if status_message == "TTS Audio Generated": + # Handle Gradio and playback + autoplay = "autoplay" if params["tgwui"]["tgwui_autoplay_tts"] else "" + string = f'' + if params["tgwui"]["tgwui_show_text"]: + string += tgwui_reinsert_images(cleaned_text, img_info) + shared.processing_message = "*Is typing...*" + return string + else: + print(f"[{branding}Server] \033[91mWarning\033[0m Audio generation failed. Status code:\n{status_message}") + finally: + # Always release the lock, whether an exception occurs or not + process_lock.release() + else: + # The lock is already acquired + print(f"[{branding}Model] \033[91mWarning\033[0m Audio generation is already in progress. Please wait.") + return + +########################################################################################################### +# TGWUI # Strips out images from the TGWUI string if needed and re-inserts the image after TTS generation # +########################################################################################################### +img_pattern = r']*src\s*=\s*["\'][^"\'>]+["\'][^>]*>' + +def tgwui_extract_and_remove_images(text): + """ + Extracts all image data from the text and removes it for clean TTS processing. + Returns the cleaned text and the extracted image data. + """ + img_matches = re.findall(img_pattern, text) + img_info = "\n".join(img_matches) # Store extracted image data + cleaned_text = re.sub(img_pattern, '', text) # Remove images from text + return cleaned_text, img_info + +def tgwui_reinsert_images(text, img_info): + """ + Reinserts the previously extracted image data back into the text. + """ + if img_info: # Check if there are images to reinsert + text += f"\n\n{img_info}" + return text + +################################################################ +# TGWUI # Used to generate a preview voice sample within TGWUI # +################################################################ +def random_sentence(): + with open(this_dir / "system" / "config" / "harvard_sentences.txt") as f: + return random.choice(list(f)).rstrip() + +def voice_preview(string): + if not params["tgwui"]["tgwui_activate_tts"]: + return string + language_code = languages_list.get(params["tgwui"]["tgwui_language"]) + if not string: + string = random_sentence() + generate_response, status_message = send_and_generate(string, params["tgwui"]["tgwui_character_voice"], params["tgwui"]["tgwui_narrator_voice"], params["tgwui"]["tgwui_narrator_enabled"], "character", params["tgwui"]["tgwui_repetitionpenalty_set"], language_code, "standard", params["tgwui"]["tgwui_generationspeed_set"], params["tgwui"]["tgwui_pitch_set"], False, 0.8, "previewvoice", params["tgwui"]["tgwui_temperature_set"], False, False, False) + if status_message == "TTS Audio Generated": + # Handle Gradio and playback + autoplay = "autoplay" if params["tgwui"]["tgwui_autoplay_tts"] else "" + return f'' + else: + # Handle the case where audio generation was not successful + return f"[{branding}Server] Audio generation failed. Status code:\n{status_message}" + +################################################################### +# TGWUI # Used to inform TGWUI that TTS is disabled/not activated # +################################################################### +def state_modifier(state): + if not params["tgwui"]["tgwui_activate_tts"]: + return state + state["stream"] = False + return state + +################################################################### +# TGWUI # Sends message to TGWUI interface during TTS generation # +################################################################### +def input_modifier(string, state): + if not params["tgwui"]["tgwui_activate_tts"]: + return string + shared.processing_message = "*Is recording a voice message...*" + return string + +######################################################################## +# TGWUI # Used to delete historic TTS audios from TGWUI chat interface # +######################################################################## +def remove_tts_from_history(history): + for i, entry in enumerate(history["internal"]): + history["visible"][i] = [history["visible"][i][0], entry[1]] + return history + +def toggle_text_in_history(history): + for i, entry in enumerate(history["visible"]): + visible_reply = entry[1] + if visible_reply.startswith("')[0]}\n\n{reply}", + ] + else: + history["visible"][i] = [ + history["visible"][i][0], + f"{visible_reply.split('')[0]}", + ] + return history + +def history_modifier(history): + # Remove autoplay from the last reply + if len(history["internal"]) > 0: + history["visible"][-1] = [ + history["visible"][-1][0], + history["visible"][-1][1].replace("controls autoplay>", "controls>"), + ] + return history + +########################################################### +# TGWUI # Update IP address and Port from TGWUI interface # +########################################################### +def tgwui_update_alltalk_ip_port(value_sent): + global alltalk_ip_port + alltalk_ip_port = value_sent + +########################################################### +# TGWUI # Update http/https protocol from TGWUI interface # +########################################################### +# Update Protocol from Gradio +def tgwui_update_alltalk_protocol(value_sent): + global alltalk_protocol + alltalk_protocol = value_sent + +########################################################################################################################### +# TGWUI # Debounces model updates when tgwui_update_dropdowns is called, preventing an update from causing a model reload # +########################################################################################################################### +def tgwui_handle_ttsmodel_dropdown_change(model_name): + if not getattr(tgwui_handle_ttsmodel_dropdown_change, "skip_reload", False): + send_reload_request(model_name) + tgwui_handle_ttsmodel_dropdown_change.skip_reload = False + +################################################################################################## +# TGWUI # Pulls the current AllTalk Server settings & updates gradio when Refresh button pressed # +################################################################################################## +def tgwui_update_dropdowns(): + global at_settings + at_settings = get_alltalk_settings() # Pull all the current settings from the AllTalk server, if its online. + current_voices = at_settings["voices"] + current_models_available = sorted(at_settings["models_available"]) + current_model_loaded = at_settings["current_model_loaded"] + current_character_voice = params["tgwui"]["tgwui_character_voice"] + current_narrator_voice = params["tgwui"]["tgwui_narrator_voice"] + current_lowvram_capable = at_settings["lowvram_capable"] + current_lowvram_enabled = at_settings["lowvram_enabled"] + current_temperature_capable = at_settings["temperature_capable"] + current_repetitionpenalty_capable = at_settings["repetitionpenalty_capable"] + current_generationspeed_capable = at_settings["generationspeed_capable"] + current_pitch_capable = at_settings["pitch_capable"] + current_deepspeed_capable = at_settings["deepspeed_capable"] + current_deepspeed_enabled = at_settings["deepspeed_enabled"] + current_non_quoted_text_is = params.get("tgwui")["tgwui_non_quoted_text_is"] # Use the correct parameter path + current_languages_capable = at_settings["languages_capable"] + if at_settings["languages_capable"]: + language_label = "Languages" + else: + language_label = "Model not multi language" + if current_character_voice not in current_voices: + current_character_voice = current_voices[0] if current_voices else "" + if current_narrator_voice not in current_voices: + current_narrator_voice = current_voices[0] if current_voices else "" + + tgwui_handle_ttsmodel_dropdown_change.skip_reload = True # Debounce tgwui_tts_dropdown_gr and stop it sending a model reload when it is updated. + + return ( + gr.Checkbox(interactive=current_lowvram_capable, value=current_lowvram_enabled), + gr.Checkbox(interactive=current_deepspeed_capable, value=current_deepspeed_enabled), + gr.Dropdown(choices=current_voices, value=current_character_voice), + gr.Dropdown(choices=current_voices, value=current_narrator_voice), + gr.Dropdown(choices=current_models_available, value=current_model_loaded), + gr.Dropdown(interactive=current_temperature_capable), + gr.Dropdown(interactive=current_repetitionpenalty_capable), + gr.Dropdown(interactive=current_languages_capable, label=language_label), + gr.Dropdown(interactive=current_generationspeed_capable), + gr.Dropdown(interactive=current_pitch_capable), + gr.Dropdown(value=current_non_quoted_text_is), + ) + +############################################################### +# TGWUI # Gradio interface & layout for Text-generation-webui # +############################################################### +def ui(): + global at_settings + with gr.Accordion(params["branding"] + " TTS (Text-gen-webui Remote)"): + # Activate alltalk_tts, Enable autoplay, Show text + with gr.Row(): + tgwui_activate_tts_gr = gr.Checkbox(value=params["tgwui"]["tgwui_activate_tts"], label="Enable TGWUI TTS") + tgwui_autoplay_gr = gr.Checkbox(value=params["tgwui"]["tgwui_autoplay_tts"], label="Autoplay TTS Generated") + tgwui_show_text_gr = gr.Checkbox(value=params["tgwui"]["tgwui_show_text"], label="Show Text in chat") + + # Low vram enable, Deepspeed enable, Link + with gr.Row(): + tgwui_lowvram_enabled_gr = gr.Checkbox(value=at_settings["lowvram_enabled"] if at_settings["lowvram_capable"] else False, label="Enable Low VRAM Mode", interactive=at_settings["lowvram_capable"]) + tgwui_lowvram_enabled_play_gr = gr.HTML(visible=False) + tgwui_deepspeed_enabled_gr = gr.Checkbox(value=params["tgwui"]["tgwui_deepspeed_enabled"], label="Enable DeepSpeed", interactive=at_settings["deepspeed_capable"],) + tgwui_deepspeed_enabled_play_gr = gr.HTML(visible=False) + tgwui_empty_space_gr = gr.HTML(f"

AllTalk Server & Documentation Link") + + # Model, Language, Character voice + with gr.Row(): + tgwui_tts_dropdown_gr = gr.Dropdown(choices=models_available, label="TTS Engine/Model", value=current_model_loaded,) + tgwui_language_gr = gr.Dropdown(languages_list.keys(), label="Languages" if at_settings["languages_capable"] else "Model not multi language", interactive=at_settings["languages_capable"], value=params["tgwui"]["tgwui_language"]) + tgwui_available_voices_gr = at_settings["voices"] + tgwui_default_voice_gr = params["tgwui"]["tgwui_character_voice"] + if tgwui_default_voice_gr not in tgwui_available_voices_gr: + tgwui_default_voice_gr = tgwui_available_voices_gr[0] if tgwui_available_voices_gr else "" + tgwui_character_voice_gr = gr.Dropdown(choices=tgwui_available_voices_gr, label="Character Voice", value=tgwui_default_voice_gr, allow_custom_value=True,) + + # Narrator + with gr.Row(): + with gr.Row(): + tgwui_narrator_voice_gr = gr.Dropdown(tgwui_available_voices_gr, label="Narrator Voice", allow_custom_value=True, value=params["tgwui"]["tgwui_narrator_voice"],) + tgwui_narrator_enabled_gr = gr.Dropdown(choices=[("Enabled", "true"), ("Disabled", "false"), ("Enabled (Silent)", "silent")], label="Narrator Enable", value="true" if params.get("tgwui_narrator_enabled") == "true" else ("silent" if params.get("tgwui_narrator_enabled") == "silent" else "false")) + tgwui_non_quoted_text_is_gr = gr.Dropdown(choices=[("Character", "character"), ("Narrator", "narrator"), ("Silent", "silent")], label='Narrator unmarked text is', value=params.get("tgwui_non_quoted_text_is", "character")) + + # Temperature, Repetition Penalty, Speed, pitch + with gr.Row(): + tgwui_temperature_set_gr = gr.Slider(minimum=0.05, maximum=1, step=0.05, label="Temperature", value=params["tgwui"]["tgwui_temperature_set"], interactive=at_settings["temperature_capable"]) + tgwui_repetitionpenalty_set_gr = gr.Slider(minimum=0.5, maximum=20, step=0.5, label="Repetition Penalty", value=params["tgwui"]["tgwui_repetitionpenalty_set"], interactive=at_settings["repetitionpenalty_capable"]) + with gr.Row(): + tgwui_generationspeed_set_gr = gr.Slider(minimum=0.30, maximum=2.00, step=0.10, label="TTS Speed", value=params["tgwui"]["tgwui_generationspeed_set"], interactive=at_settings["generationspeed_capable"]) + tgwui_pitch_set_gr = gr.Slider(minimum=-10, maximum=10, step=1, label="Pitch", value=params["tgwui"]["tgwui_pitch_set"], interactive=at_settings["pitch_capable"]) + + # Preview speech + with gr.Row(): + tgwui_preview_text_gr = gr.Text(show_label=False, placeholder="Preview text", elem_id="silero_preview_text", scale=2,) + tgwui_preview_play_gr = gr.Button("Generate Preview", scale=1) + tgwui_preview_audio_gr = gr.HTML(visible=False) + + with gr.Row(): + tgwui_protocol_gr = gr.Dropdown(choices=["http://", "https://"], label="AllTalk Server Protocol", value=alltalk_protocol, interactive=False, visible=False) + tgwui_protocol_gr.change(tgwui_update_alltalk_protocol, tgwui_protocol_gr, None) + tgwui_ip_address_port_gr = gr.Textbox(label="AllTalk Server IP:Port", value=alltalk_ip_port, interactive=False, visible=False) + tgwui_ip_address_port_gr.change(tgwui_update_alltalk_ip_port, tgwui_ip_address_port_gr, None) + tgwui_convert_gr = gr.Button("Remove old TTS audio and leave only message texts") + tgwui_convert_cancel_gr = gr.Button("Cancel", visible=False) + tgwui_convert_confirm_gr = gr.Button("Confirm (cannot be undone)", variant="stop", visible=False) + tgwui_stop_generation_gr = gr.Button("Stop current TTS generation") + tgwui_stop_generation_gr.click(stop_generate_tts, None, None,) + tgwui_refresh_settings_gr = gr.Button("Refresh settings & voices") + tgwui_refresh_settings_gr.click(tgwui_update_dropdowns, None, [tgwui_lowvram_enabled_gr, tgwui_deepspeed_enabled_gr, tgwui_character_voice_gr, tgwui_narrator_voice_gr, tgwui_tts_dropdown_gr, tgwui_temperature_set_gr, tgwui_repetitionpenalty_set_gr, tgwui_language_gr, tgwui_generationspeed_set_gr, tgwui_pitch_set_gr, tgwui_non_quoted_text_is_gr]) + + # Convert history with confirmation + convert_arr = [tgwui_convert_confirm_gr, tgwui_convert_gr, tgwui_convert_cancel_gr] + tgwui_convert_gr.click(lambda: [gr.update(visible=True), gr.update(visible=False), gr.update(visible=True),], None, convert_arr,) + tgwui_convert_confirm_gr.click(lambda: [ gr.update(visible=False), gr.update(visible=True), gr.update(visible=False),], None, convert_arr, + ).then(remove_tts_from_history, gradio("history"), gradio("history") + ).then(chat.save_history, gradio("history", "unique_id", "character_menu", "mode"), None, + ).then(chat.redraw_html, gradio(ui_chat.reload_arr), gradio("display")) + tgwui_convert_cancel_gr.click(lambda: [gr.update(visible=False), gr.update(visible=True), gr.update(visible=False),], None, convert_arr,) + + # Toggle message text in history + tgwui_show_text_gr.change(lambda x: params["tgwui"].update({"tgwui_show_text": x}), tgwui_show_text_gr, None + ).then(toggle_text_in_history, gradio("history"), gradio("history") + ).then(chat.save_history, gradio("history", "unique_id", "character_menu", "mode"), None, + ).then(chat.redraw_html, gradio(ui_chat.reload_arr), gradio("display")) + + # Event functions to update the parameters in the backend + tgwui_activate_tts_gr.change(lambda x: params["tgwui"].update({"tgwui_activate_tts": x}), tgwui_activate_tts_gr, None) + tgwui_autoplay_gr.change(lambda x: params["tgwui"].update({"tgwui_autoplay_tts": x}), tgwui_autoplay_gr, None) + tgwui_lowvram_enabled_gr.change(lambda x: params["tgwui"].update({"tgwui_lowvram_enabled": x}), tgwui_lowvram_enabled_gr, None) + tgwui_lowvram_enabled_gr.change(lambda x: send_lowvram_request(x), tgwui_lowvram_enabled_gr, tgwui_lowvram_enabled_play_gr, None) + + # Trigger the send_reload_request function when the dropdown value changes + #tgwui_tts_dropdown_gr.change(send_reload_request, tgwui_tts_dropdown_gr, None) + tgwui_tts_dropdown_gr.change(tgwui_handle_ttsmodel_dropdown_change, tgwui_tts_dropdown_gr, None) + + tgwui_deepspeed_enabled_gr.change(send_deepspeed_request, tgwui_deepspeed_enabled_gr, tgwui_deepspeed_enabled_play_gr, None) + tgwui_character_voice_gr.change(lambda x: params["tgwui"].update({"tgwui_character_voice": x}), tgwui_character_voice_gr, None) + tgwui_language_gr.change(lambda x: params["tgwui"].update({"tgwui_language": x}), tgwui_language_gr, None) + + # TSS Settings + tgwui_temperature_set_gr.change(lambda x: params["tgwui"].update({"tgwui_temperature_set": x}), tgwui_temperature_set_gr, None) + tgwui_repetitionpenalty_set_gr.change(lambda x: params["tgwui"].update({"tgwui_repetitionpenalty_set": x}), tgwui_repetitionpenalty_set_gr, None) + tgwui_generationspeed_set_gr.change(lambda x: params["tgwui"].update({"tgwui_generationspeed_set": x}), tgwui_generationspeed_set_gr, None) + tgwui_pitch_set_gr.change(lambda x: params["tgwui"].update({"tgwui_pitch_set": x}), tgwui_pitch_set_gr, None) + + # Narrator selection actions + tgwui_narrator_enabled_gr.change(lambda x: params["tgwui"].update({"tgwui_narrator_enabled": x}), tgwui_narrator_enabled_gr, None) + tgwui_non_quoted_text_is_gr.change(lambda x: params["tgwui"].update({"tgwui_non_quoted_text_is": x}), tgwui_non_quoted_text_is_gr, None) + tgwui_narrator_voice_gr.change(lambda x: params["tgwui"].update({"tgwui_narrator_voice": x}), tgwui_narrator_voice_gr, None) + # Play preview + tgwui_preview_text_gr.submit(voice_preview, tgwui_preview_text_gr, tgwui_preview_audio_gr) + tgwui_preview_play_gr.click(voice_preview, tgwui_preview_text_gr, tgwui_preview_audio_gr) + +################################################################## +# _ _ _ _____ _ _ ____ _ _ # +# / \ | | |_ _|_ _| | | __ / ___|_ __ __ _ __| (_) ___ # +# / _ \ | | | | |/ _` | | |/ / | | _| '__/ _` |/ _` | |/ _ \ # +# / ___ \| | | | | (_| | | < | |_| | | | (_| | (_| | | (_) | # +# /_/ \_\_|_| |_|\__,_|_|_|\_\ \____|_| \__,_|\__,_|_|\___/ # +# # +################################################################## + +if gradio_enabled == True: + # Get the directory of the current script + script_dir = Path(__file__).resolve().parent + my_current_url = "null" + at_default_voice_gr = params["tgwui"]["tgwui_character_voice"] + # Load the theme list and select a theme + import system.gradio_pages.themes.loadThemes as loadThemes + # Load the theme list from JSON file + theme_list = loadThemes.get_list() + + # Load the selected theme from configuration + selected_theme = loadThemes.load_json() + + # Check if the script is running in standalone mode + if script_dir.name == "alltalk_tts": + # Running in standalone mode, add the script's directory to the Python module search path + sys.path.insert(0, str(script_dir)) + else: + # Running as part of text-generation-webui, add the parent directory of "alltalk_tts" to the Python module search path + sys.path.insert(0, str(script_dir.parent)) + + import importlib + import gradio as gr + from system.gradio_pages.alltalk_documentation import alltalk_documentation + from system.gradio_pages.alltalk_generation_help import alltalk_generation_help + from system.gradio_pages.alltalk_about import alltalk_about + from system.gradio_pages.alltalk_diskspace import get_disk_interface + from system.gradio_pages.api_documentation import api_documentation + if params["firstrun_splash"]: + from system.gradio_pages.alltalk_welcome import alltalk_welcome + + def get_tts_engines_data(): + global engines_available, engine_loaded, selected_model + tts_engines_file = os.path.join(this_dir, "system", "tts_engines", "tts_engines.json") + with open(tts_engines_file, "r") as f: + tts_engines_data = json.load(f) + engines_available = [engine["name"] for engine in tts_engines_data["engines_available"]] + engine_loaded = tts_engines_data["engine_loaded"] + selected_model = tts_engines_data["selected_model"] + return engines_available, engine_loaded, selected_model + + get_tts_engines_data() + # Dynamically import modules and load JSON data for each available engine + for engine_name in engines_available: + module_name = f"system.tts_engines.{engine_name}.{engine_name}_settings_page" + module = importlib.import_module(module_name) + globals()[f"{engine_name}_at_gradio_settings_page"] = getattr(module, f"{engine_name}_at_gradio_settings_page") + globals()[f"{engine_name}_model_update_settings"] = getattr(module, f"{engine_name}_model_update_settings") + json_file_path = os.path.join(this_dir, "system", "tts_engines", engine_name, "model_settings.json") + with open(json_file_path, "r") as f: + globals()[f"{engine_name}_model_config_data"] = json.load(f) + + def confirm(message): + return gr.Interface.fn("confirmation", f"""""") + + def save_config_data(): + try: + # Save the updated JSON data to confignew.json + with open(os.path.join(this_dir, "confignew.json"), "w") as f: + json.dump(params, f, indent=4) + reload_config() + except Exception as e: + error_message = "Failed to save config data." + print(f"[{branding}TTS] \033[91mError:\033[0m {error_message}") + print(f"[{branding}TTS] \033[91mError Details:\033[0m {str(e)}") + + def reload_config(): + # Send a GET request to the /reload_config endpoint + reload_config_url = f"http://localhost:{params['api_def']['api_port_number']}/api/reload_config" + try: + response = requests.get(reload_config_url) + if response.status_code == 200: + print(f"[{branding}TTS] Reloaded config") + else: + print(f"[{branding}TTS] Failed to reload config file") + except ConnectionError as e: + error_message = "Connection to the server has been lost. Please reload the webpage." + print(f"[{branding}TTS] \033[91mError:\033[0m {error_message}") + except Exception as e: + error_message = "An error occurred while reloading the config file." + print(f"[{branding}TTS] \033[91mError:\033[0m {error_message}") + print(f"[{branding}TTS] \033[91mError Details:\033[0m {str(e)}") + + ########################################################################################## + # Pulls the current AllTalk Server settings & updates gradio when Refresh button pressed # + ########################################################################################## + def at_update_dropdowns(): + global at_settings + at_settings = get_alltalk_settings() # Pull all the current settings from the AllTalk server, if its online. + engines_available = at_settings["engines_available"] + current_engine_loaded = at_settings["current_engine_loaded"] + current_voices = at_settings["voices"] + current_character_voice = params["tgwui"]["tgwui_character_voice"] + current_narrator_voice = params["tgwui"]["tgwui_narrator_voice"] + rvccurrent_voices = at_settings["rvcvoices"] + rvccurrent_character_voice = params["rvc_settings"]["rvc_char_model_file"] + rvccurrent_narrator_voice = params["rvc_settings"]["rvc_narr_model_file"] + current_temperature_capable = at_settings["temperature_capable"] + current_repetitionpenalty_capable = at_settings["repetitionpenalty_capable"] + current_languages_capable = at_settings["languages_capable"] + current_generationspeed_capable = at_settings["generationspeed_capable"] + current_pitch_capable = at_settings["pitch_capable"] + current_languages_capable = at_settings["languages_capable"] + if at_settings["languages_capable"]: + language_label = "Languages" + else: + language_label = "Model not multi language" + if at_settings["streaming_capable"]: + gen_choices = [("Standard", "false"), ("Streaming (Disable Narrator)", "true")] + else: + gen_choices = [("Standard", "false")] + if current_character_voice not in current_voices: + current_character_voice = current_voices[0] if current_voices else "" + if current_narrator_voice not in current_voices: + current_narrator_voice = current_voices[0] if current_voices else "" + if rvccurrent_character_voice not in rvccurrent_voices: + rvccurrent_character_voice = rvccurrent_voices[0] if rvccurrent_voices else "" + if rvccurrent_narrator_voice not in rvccurrent_voices: + rvccurrent_narrator_voice = rvccurrent_voices[0] if rvccurrent_voices else "" + return ( + gr.Dropdown(choices=gen_choices, interactive=True), + gr.Dropdown(choices=current_voices, value=current_character_voice, interactive=True), + gr.Dropdown(choices=rvccurrent_voices, value=rvccurrent_character_voice, interactive=True), + gr.Dropdown(choices=current_voices, value=current_narrator_voice, interactive=True), + gr.Dropdown(choices=rvccurrent_voices, value=rvccurrent_narrator_voice, interactive=True), + gr.Slider(interactive=current_generationspeed_capable), + gr.Slider(interactive=current_pitch_capable), + gr.Slider(interactive=current_temperature_capable), + gr.Slider(interactive=current_repetitionpenalty_capable), + gr.Dropdown(interactive=current_languages_capable, label=language_label), + gr.Dropdown(choices=models_available, value=current_model_loaded), + gr.Dropdown(choices=engines_available, value=current_engine_loaded), + ) + + ###################################################################################### + # Sends request to reload the current TTS engine & set the default TTS engine loaded # + ###################################################################################### + def set_engine_loaded(engine_name): + global engine_loaded, selected_model, tts_engines_data, models_available, at_update_dropdowns + tts_engines_file = os.path.join(this_dir, "system", "tts_engines", "tts_engines.json") + with open(tts_engines_file, "r") as f: + tts_engines_data = json.load(f) + for engine in tts_engines_data["engines_available"]: + if engine["name"] == engine_name: + tts_engines_data["engine_loaded"] = engine_name + tts_engines_data["selected_model"] = engine["selected_model"] + break + with open(tts_engines_file, "w") as f: + json.dump(tts_engines_data, f) + engine_loaded = engine_name + selected_model = tts_engines_data["selected_model"] + # Restart the subprocess + restart_subprocess() + # Wait for the engine to be ready with error handling and retries + max_retries = 40 + retry_delay = 1 # seconds + retries = 0 + while retries < max_retries: + try: + response = requests.get(url) + if response.status_code == 200 and response.text == "Ready": + break + except requests.exceptions.RequestException: + pass + + retries += 1 + if retries == max_retries: + raise Exception("Failed to connect to the TTS engine after multiple retries.") + + time.sleep(retry_delay) + models_available = at_settings["models_available"] + # Update the dropdowns directly + print(f"[{branding}ENG]") + print(f"[{branding}ENG] {branding}Server Ready") + gen_stream_value, gen_char_choices, rvcgen_char_choices, gen_narr_choices, rvcgen_narr_choices, gen_speed_interactive, gen_pitch_interactive, gen_temperature_interactive, gen_repetition_interactive, gen_lang_interactive, model_choices_gr_interactive, engine_choices_interactive = at_update_dropdowns() + return ("TTS Engine changed successfully!", # This is your output message + gen_stream_value, gen_char_choices, rvcgen_char_choices, gen_narr_choices, rvcgen_narr_choices, gen_speed_interactive, gen_pitch_interactive, gen_temperature_interactive, gen_repetition_interactive, gen_lang_interactive, model_choices_gr_interactive, engine_choices_interactive + ) + + ############################### + # Sends voice2rvc request off # + ############################### + def voice2rvc(audio, rvc_voice): + # Save the uploaded or recorded audio to a file + input_tts_path = this_dir / "outputs" / "voice2rvcInput.wav" + if rvc_voice == "Disabled": + print(f"[{branding}ENG] Voice2RVC Convert: No RVC voice was selected") + return + if audio == None: + print(f"[{branding}ENG] Voice2RVC Convert: No recorded audio was provided") + return + if isinstance(audio, tuple): + sample_rate, audio_data = audio + # Save the numpy array as a wav file + sf.write(input_tts_path, audio_data, sample_rate) + else: + # It's a file path + os.rename(audio, input_tts_path) + + # Define the output path for the processed audio + output_rvc_path = this_dir / "outputs" / "voice2rvcOutput.wav" + url = f"{alltalk_protocol}{alltalk_ip_port}/api/voice2rvc" + + # Submit the paths to the API endpoint + response = requests.post(url, data={ + "input_tts_path": str(input_tts_path), + "output_rvc_path": str(output_rvc_path), + "pth_name": rvc_voice + }) + + if response.status_code == 200: + result = response.json() + if result["status"] == "success": + result_path = result["output_path"] + else: + result_path = None + else: + result_path = None + + return result_path + + ################################################################################################## + # Sends request to reload the current TTS engine model & set the default TTS engine model loaded # + ################################################################################################## + def change_model_loaded(engine_name, selected_model): + global at_update_dropdowns + try: + print(f"[{branding}ENG]") + print(f"[{branding}ENG] \033[94mChanging model loaded. Please wait.\033[00m") + print(f"[{branding}ENG]") + url = f"{alltalk_protocol}{alltalk_ip_port}/api/reload" + payload = {"tts_method": selected_model} + response = requests.post(url, params=payload) + response.raise_for_status() # Raises an HTTPError for bad responses + # Update the tts_engines.json file + tts_engines_file = os.path.join(this_dir, "system", "tts_engines", "tts_engines.json") + with open(tts_engines_file, "r") as f: + tts_engines_data = json.load(f) + tts_engines_data["selected_model"] = f"{selected_model}" + for engine in tts_engines_data["engines_available"]: + if engine["name"] == engine_name: + engine["selected_model"] = f"{selected_model}" + break + with open(tts_engines_file, "w") as f: + json.dump(tts_engines_data, f) + print(f"[{branding}ENG]") + print(f"[{branding}ENG] {branding}Server Ready") + gen_stream_value, gen_char_choices, rvcgen_char_choices, gen_narr_choices, rvcgen_narr_choices, gen_speed_interactive, gen_pitch_interactive, gen_temperature_interactive, gen_repetition_interactive, gen_lang_interactive, model_choices_gr_interactive, engine_choices_interactive = at_update_dropdowns() + return ("TTS Model changed successfully!", # This is your output message + gen_stream_value, gen_char_choices, rvcgen_char_choices, gen_narr_choices, rvcgen_narr_choices, gen_speed_interactive, gen_pitch_interactive, gen_temperature_interactive, gen_repetition_interactive, gen_lang_interactive, model_choices_gr_interactive, engine_choices_interactive + ) + except requests.exceptions.RequestException as e: + # Handle the HTTP request error + print(f"[{branding}TTS] \033[91mWarning\033[0m Error during request to webserver process: Status code:\n{e}") + return {"status": "error", "message": str(e)} + + def update_settings_tg(activate, autoplay, show_text, language, narrator_enabled): + # Update the config_data dictionary with the new values + params["activate"] = activate == "Enabled" + params["autoplay"] = autoplay == "Enabled" + params["show_text"] = show_text == "Enabled" + params["language"] = language + params["narrator_enabled"] = narrator_enabled + print(f"[{branding}TTS] Default Text-gen-webui Settings Saved") + save_config_data() + return "Settings updated successfully!" + + debugging_options = params['debugging'] + debugging_choices = list(debugging_options.keys()) + default_values = [key for key, value in debugging_options.items() if value] + + def update_settings_at(delete_output_wavs, gradio_interface, gradio_port_number, output_folder, api_port_number, gr_debug_tts, transcode_audio_format): + # Update the config_data dictionary with the new values + params["delete_output_wavs"] = delete_output_wavs + params["gradio_interface"] = gradio_interface == "Enabled" + params["output_folder"] = output_folder + params['api_def']['api_port_number'] = api_port_number + params["gradio_port_number"] = gradio_port_number + for key in debugging_options.keys(): + params['debugging'][key] = key in gr_debug_tts + params["transcode_audio_format"] = transcode_audio_format + output_message = "Settings updated successfully!" + print(f"[{branding}TTS] Default Settings Saved") + save_config_data() + return output_message + + def update_settings_api(api_length_stripping, api_legacy_ip_address, api_allowed_filter, api_max_characters, api_use_legacy_api, api_text_filtering, api_narrator_enabled, api_text_not_inside, api_language, api_output_file_name, api_output_file_timestamp, api_autoplay, api_autoplay_volume): + # Update the params dictionary with the new values + params["api_def"]["api_length_stripping"] = api_length_stripping + params["api_def"]["api_allowed_filter"] = api_allowed_filter + params["api_def"]["api_max_characters"] = api_max_characters + params["api_def"]["api_use_legacy_api"] = api_use_legacy_api == "Legacy API" + params["api_def"]["api_legacy_ip_address"] = api_legacy_ip_address + params["api_def"]["api_text_filtering"] = api_text_filtering + params["api_def"]["api_narrator_enabled"] = api_narrator_enabled + params["api_def"]["api_text_not_inside"] = api_text_not_inside + params["api_def"]["api_language"] = api_language + params["api_def"]["api_output_file_name"] = api_output_file_name + params["api_def"]["api_output_file_timestamp"] = api_output_file_timestamp == "Timestamp files" + params["api_def"]["api_autoplay"] = api_autoplay == "Play remotely" + params["api_def"]["api_autoplay_volume"] = api_autoplay_volume + output_message = "Default API settings updated successfully!" + print(f"[{branding}TTS] API Settings Saved") + save_config_data() + return output_message + + def ensure_directory_exists(directory): + if not os.path.exists(directory): + os.makedirs(directory) + + def load_file_urls(json_path): + with open(json_path, 'r') as f: + return json.load(f) + + def download_file(url, dest_path): + response = requests.get(url, stream=True) + response.raise_for_status() + with open(dest_path, 'wb') as f: + for chunk in response.iter_content(chunk_size=8192): + f.write(chunk) + + def update_rvc_settings(rvc_enabled, rvc_char_model_file, rvc_narr_model_file, split_audio, autotune, pitch, + filter_radius, index_rate, rms_mix_rate, protect, hop_length, f0method, embedder_model, training_data_size, progress=gr.Progress(track_tqdm=True)): + params["rvc_settings"]["rvc_enabled"] = rvc_enabled + params["rvc_settings"]["rvc_char_model_file"] = rvc_char_model_file + params["rvc_settings"]["rvc_narr_model_file"] = rvc_narr_model_file + params["rvc_settings"]["split_audio"] = split_audio + params["rvc_settings"]["autotune"] = autotune + params["rvc_settings"]["pitch"] = pitch + params["rvc_settings"]["filter_radius"] = filter_radius + params["rvc_settings"]["index_rate"] = index_rate + params["rvc_settings"]["rms_mix_rate"] = rms_mix_rate + params["rvc_settings"]["protect"] = protect + params["rvc_settings"]["hop_length"] = hop_length + params["rvc_settings"]["f0method"] = f0method + params["rvc_settings"]["embedder_model"] = embedder_model + params["rvc_settings"]["training_data_size"] = training_data_size + if rvc_enabled: + base_dir = os.path.join(this_dir, "models", "rvc_base") + rvc_voices_dir = os.path.join(this_dir, "models", "rvc_voices") + ensure_directory_exists(base_dir) + ensure_directory_exists(rvc_voices_dir) + json_path = os.path.join(this_dir, "system", "tts_engines", "rvc_files.json") + file_urls = load_file_urls(json_path) + for idx, file in enumerate(file_urls): + if not os.path.exists(os.path.join(base_dir, file)): + progress(idx / len(file_urls), desc=f"Downloading Required Files: {file}...") + print(f"[{branding}TTS] Downloading {file}...") # Print statement for terminal + download_file(file_urls[file], os.path.join(base_dir, file)) + result = "Files downloaded successfully." if len(file_urls) > 0 else "All files are present." + print(f"[{branding}TTS] {result}") + print(f"[{branding}TTS] RVC Settings Saved") + save_config_data() + return "RVC settings updated successfully!" + + def generate_tts(gen_text, gen_char, rvcgen_char, gen_narr, rvcgen_narr, gen_narren, gen_textni, gen_repetition, gen_lang, gen_filter, gen_speed, gen_pitch, gen_autopl, gen_autoplvol, gen_filen, gen_temperature, gen_filetime, gen_stream, gen_stopcurrentgen): + api_url = f"http://{my_current_url}/api/tts-generate" + if gen_text == "": + print(f"[{branding}TTS] No Text was sent to generate as TTS") + return None, str("No Text was sent to generate as TTS") + if gen_stopcurrentgen: + stop_generate_tts() + if gen_stream == "true": + api_url = f"http://{my_current_url}/api/tts-generate-streaming" + encoded_text = requests.utils.quote(gen_text) + streaming_url = f"{api_url}?text={encoded_text}&voice={gen_char}&language={gen_lang}&output_file={gen_filen}" + return streaming_url, str("TTS Streaming Audio Generated") + else: + data = { + "text_input": gen_text, + "text_filtering": gen_filter, + "character_voice_gen": gen_char, + "rvccharacter_voice_gen": rvcgen_char, + "narrator_enabled": str(gen_narren).lower(), + "narrator_voice_gen": gen_narr, + "rvcnarrator_voice_gen": rvcgen_narr, + "text_not_inside": gen_textni, + "language": gen_lang, + "output_file_name": gen_filen, + "output_file_timestamp": str(gen_filetime).lower(), + "autoplay": str(gen_autopl).lower(), + "autoplay_volume": str(gen_autoplvol), + "speed": str(gen_speed), + "pitch": str(gen_pitch), + "temperature": str(gen_temperature), + "repetition_penalty": str(gen_repetition), + } + #print(f"Debug: Generate request param:", data) if params["debug_tts"] else None + try: + response = requests.post(api_url, data=data) + response.raise_for_status() # Raise an exception for 4xx or 5xx status codes + result = response.json() + if gen_autopl == "true": + return None, str("TTS Audio Generated (Played remotely)") + else: + if params["api_def"]["api_use_legacy_api"]: + return result['output_file_url'], str("TTS Audio Generated") + else: + # Set the protocol type + protocol = "http://" # or "https://" if using HTTPS + # Prepend the URL and PORT to the output_file_url + output_file_url = f"{protocol}{my_current_url}{result['output_file_url']}" + return output_file_url, str("TTS Audio Generated") + except requests.exceptions.RequestException as e: + error_message = "An error occurred. Please see console output." + print(f"[{branding}TTS] \033[91mError:\033[0m {error_message}") + print(f"[{branding}TTS] \033[91mError Details:\033[0m {str(e)}") + # Handle the error or return an appropriate error message + return None, str(error_message) + + def alltalk_gradio(): + global languages_list, at_settings + # Get the URL IP or domain name + def get_domain_name(request: gr.Request): + global my_current_url + if request: + host = request.headers.get("host", "Unknown") + my_current_url = host.split(":")[0] # Split the host by ":" and take the first part + my_current_url = my_current_url + ":" + str(params['api_def']['api_port_number']) + return None + else: + return "Unable to retrieve the domain name." + + # Get the list of languages from languages + languages = list(languages_list.keys()) + with gr.Blocks(theme=selected_theme, title="AllTalk") as app: + with gr.Row(): + gr.Markdown("## AllTalk TTS") + gr.Markdown("") + gr.Markdown("") + dark_mode_btn = gr.Button("Light/Dark Mode", variant="primary", size="sm") + dark_mode_btn.click(None, None, None, + js="""() => { + if (document.querySelectorAll('.dark').length) { + document.querySelectorAll('.dark').forEach(el => el.classList.remove('dark')); + // localStorage.setItem('darkMode', 'disabled'); + } else { + document.querySelector('body').classList.add('dark'); + // localStorage.setItem('darkMode', 'enabled'); + } + }""", show_api=False) + if params["firstrun_splash"]: + alltalk_welcome() + with gr.Tab("Generate TTS"): + with gr.Tab("Generate"): + with gr.Row(): + gen_text = gr.Textbox(label="Text Input", lines=10) + with gr.Row(): + with gr.Group(): + with gr.Row(): + engine_choices = gr.Dropdown(choices=engines_available, label="TTS Engine", value=engine_loaded, show_label=False) + engine_btn = gr.Button("Swap TTS Engine") + with gr.Group(): + with gr.Row(): + model_choices_gr = gr.Dropdown(choices=models_available, label="TTS Models", value=current_model_loaded, interactive=True, show_label=False, allow_custom_value=True) + model_btn_gr = gr.Button("Load Different Model") + with gr.Group(): + at_available_voices_gr = at_settings["voices"] + rvcat_available_voices_gr = at_settings["rvcvoices"] + with gr.Row(): + at_default_voice_gr = params["tgwui"]["tgwui_character_voice"] + if at_default_voice_gr not in at_available_voices_gr: + at_default_voice_gr = at_available_voices_gr[0] if at_available_voices_gr else "" + gen_char = gr.Dropdown(choices=at_available_voices_gr, label="Character Voice", value=at_default_voice_gr, allow_custom_value=True,) + rvcat_default_voice_gr = params["rvc_settings"]["rvc_char_model_file"] + if rvcat_default_voice_gr not in rvcat_available_voices_gr: + rvcat_default_voice_gr = rvcat_available_voices_gr[0] if rvcat_available_voices_gr else "" + rvcgen_char = gr.Dropdown(choices=rvcat_available_voices_gr, label="RVC Character Voice", value=rvcat_default_voice_gr, allow_custom_value=True,) + at_narrator_voice_gr = params["tgwui"]["tgwui_narrator_voice"] + if at_narrator_voice_gr not in at_available_voices_gr: + at_narrator_voice_gr = at_available_voices_gr[0] if at_available_voices_gr else "" + gen_narr = gr.Dropdown(choices=at_available_voices_gr, label="Narrator Voice", value=at_narrator_voice_gr, allow_custom_value=True,) + rvcat_narrator_voice_gr = params["rvc_settings"]["rvc_narr_model_file"] + if rvcat_narrator_voice_gr not in rvcat_available_voices_gr: + rvcat_narrator_voice_gr = rvcat_available_voices_gr[0] if rvcat_available_voices_gr else "" + rvcgen_narr = gr.Dropdown(choices=rvcat_available_voices_gr, label="RVC Narrator Voice", value=rvcat_narrator_voice_gr, allow_custom_value=True,) + with gr.Row(): + #Get the current URL from the page + domain_name_output = gr.Textbox(label="Domain Name", visible=False) + def on_load(request: gr.Request): + domain_name = get_domain_name(request) + domain_name_output.value = domain_name + app.load(on_load, inputs=None, outputs=None) + if at_settings["streaming_capable"]: + gen_choices = [("Standard", "false"), ("Streaming (Disable Narrator)", "true")] + else: + gen_choices = [("Standard", "false")] + #Continue on with the Gradio interface + gen_stream = gr.Dropdown(choices=gen_choices, label="Generation Mode", value="false") + gen_lang = gr.Dropdown(value=params['api_def']['api_language'], choices=["ar", "zh", "cs", "nl", "en", "fr", "de", "hi", "hu", "it", "ja", "ko", "pl", "pt", "ru", "es", "tr"], label="Languages" if at_settings["languages_capable"] else "Model not multi language", interactive=at_settings["languages_capable"]) + gen_narren = gr.Dropdown(choices=[("Enabled", "true"), ("Disabled", "false"), ("Enabled (Silent)", "silent")], label="Narrator Enabled/Disabled", value="true" if params['api_def']['api_narrator_enabled'] == "true" else ("silent" if params['api_def']['api_narrator_enabled'] == "silent" else "false")) + gen_textni = gr.Dropdown(choices=[("Character", "character"), ("Narrator", "narrator"), ("Silent", "silent")], label="Narrator Text-not-inside", value=params['api_def']['api_text_not_inside']) + gen_stopcurrentgen = gr.Dropdown(choices={("Stop", "true"), ("Dont stop", "false")}, label="Auto-Stop current generation", value="true") + with gr.Row(): + gen_filter = gr.Dropdown(value=params['api_def']['api_text_filtering'], label="Text filtering", choices=["none", "standard", "html"]) + gen_filetime = gr.Dropdown(choices={("Timestamp files", "true"), ("Dont Timestamp (Over-write)", "false")}, label="Include Timestamp", value="true" if params['api_def']['api_output_file_timestamp'] else "false") + gen_autopl = gr.Dropdown(choices={("Play locally", "false"), ("Play remotely", "true")}, label="Play Locally or Remotely", value="true" if params['api_def']['api_autoplay'] else "false") + gen_autoplvol = gr.Dropdown(choices=[str(i / 10) for i in range(11)], value=str(params['api_def']['api_autoplay_volume']), label="Remote play volume", allow_custom_value=True) + gen_filen = gr.Textbox(value=params['api_def']['api_output_file_name'], label="Output File Name") + with gr.Row(): + gen_speed = gr.Slider(minimum=0.25, maximum=2.00, step=0.25, label="Speed", value="1.00", interactive=at_settings["generationspeed_capable"]) + gen_pitch = gr.Slider(minimum=-10, maximum=10, step=1, label="Pitch", value="1", interactive=at_settings["pitch_capable"]) + gen_temperature = gr.Slider(minimum=0.05, maximum=1.0, step=0.05, label="Temperature", value=0.75, interactive=at_settings["temperature_capable"]) + gen_repetition = gr.Slider(minimum=1.0, maximum=20.0, step=1.0, label="Repetition Penalty", value=10, interactive=at_settings["repetitionpenalty_capable"]) + #Toggle narrator selection on Streaming select + def update_narren_and_autopl(gen_stream): + if gen_stream == "true": + return "false", "false" + else: + return gen_narren.value, gen_autopl.value + gen_stream.change(update_narren_and_autopl, inputs=[gen_stream], outputs=[gen_narren, gen_autopl]) + with gr.Row(): + output_audio = gr.Audio(show_label=False, label="Generated Audio", autoplay=True, scale=3) + output_message = gr.Textbox( label="TTS Result", lines=5, scale=1) + with gr.Row(): + dark_mode_btn = gr.Button("Light/Dark Mode", variant="primary") + refresh_button = gr.Button("Refresh Server Settings", elem_id="refresh_button") + stop_button = gr.Button("Interupt TTS Generation") + submit_button = gr.Button("Generate TTS") + + model_btn_gr.click(fn=change_model_loaded, inputs=[engine_choices, model_choices_gr], outputs=[output_message, gen_stream, gen_char, rvcgen_char, gen_narr, rvcgen_narr, gen_speed, gen_pitch, gen_temperature, gen_repetition, gen_lang, model_choices_gr, engine_choices]) + engine_btn.click(fn=set_engine_loaded, inputs=[engine_choices], outputs=[output_message, gen_stream, gen_char, rvcgen_char, gen_narr, rvcgen_narr, gen_speed, gen_pitch, gen_temperature, gen_repetition, gen_lang, model_choices_gr, engine_choices]) + + dark_mode_btn.click(None, None, None, + js="""() => { + if (document.querySelectorAll('.dark').length) { + document.querySelectorAll('.dark').forEach(el => el.classList.remove('dark')); + // localStorage.setItem('darkMode', 'disabled'); + } else { + document.querySelector('body').classList.add('dark'); + // localStorage.setItem('darkMode', 'enabled'); + } + }""", show_api=False) + refresh_button.click(at_update_dropdowns, None, [gen_stream, gen_char, rvcgen_char, gen_narr, rvcgen_narr, gen_speed, gen_pitch, gen_temperature, gen_repetition, gen_lang, model_choices_gr, engine_choices]) + stop_button.click(stop_generate_tts, inputs=[], outputs=[output_message]) + submit_button.click(generate_tts, inputs=[gen_text, gen_char, rvcgen_char, gen_narr, rvcgen_narr, gen_narren, gen_textni, gen_repetition, gen_lang, gen_filter, gen_speed, gen_pitch, gen_autopl, gen_autoplvol, gen_filen, gen_temperature, gen_filetime, gen_stream, gen_stopcurrentgen], outputs=[output_audio, output_message]) + + with gr.Tab("Generate Help"): + help_content = alltalk_generation_help() + gr.Markdown(help_content) + + with gr.Tab("Voice2RVC"): + gr.Markdown("""Voice2RVC allows you to convert your spoken audio files into synthesized speech using advanced RVC (Retrieval-based Voice Conversion) models. You can either record your own speech or upload a pre-recorded audio file for processing. The tool offers features trim your input audio and undo changes if necessary. Simply record or upload your audio, select an RVC voice model, and submit it for processing. Once completed, you can download your synthesized speech.""") + with gr.Row(): + audio_input = gr.Audio(sources=["microphone", "upload"], type="numpy", label="Record audio or Upload a spoken audio file") + with gr.Row(): + rvc_voices_dropdown = gr.Dropdown(choices=at_settings["rvcvoices"], label="Select RVC Voice to generate as", value=at_settings["rvcvoices"][0]) + submit_button = gr.Button("Submit to RVC") + audio_output = gr.Audio(label="Converted Audio") + + submit_button.click(fn=voice2rvc, inputs=[audio_input, rvc_voices_dropdown], outputs=audio_output) + + with gr.Tab("TTS Generator"): + gr.Markdown("""With the TTS Generator you can create incredibly long audio e.g. entire books. Yet to be migrated into Gradio""") + gr.Markdown("""Please find it on the web address http://127.0.0.1:7851/static/tts_generator/tts_generator.html (Assuming you have not changed your IP Address)""") + + with gr.Tab("Global Settings"): + with gr.Tab("AllTalk Settings"): + with gr.Row(): + delete_output_wavs = gr.Dropdown(value=params["delete_output_wavs"], label="Del WAV's older than", choices=["Disabled", "1 Day", "2 Days", "3 Days", "4 Days", "5 Days", "6 Days", "7 Days", "14 Days", "21 Days", "28 Days"]) + api_port_number = gr.Number(value=int(params['api_def']['api_port_number']), label="API Port Number", precision=0) + gradio_port_number = gr.Number(value=int(params["gradio_port_number"]), label="Gradio Port Number", precision=0) + output_folder = gr.Textbox(value=params["output_folder"], label=f"Output Folder name (sub {branding})") + with gr.Row(): + transcode_audio_format = gr.Dropdown(choices={"Disabled": "disabled", "aac": "aac", "flac": "flac", "mp3": "mp3", "opus": "opus", "wav": "wav"}, label="Audio Transcoding", value=params["transcode_audio_format"]) + with gr.Row(): + themes_select = gr.Dropdown(loadThemes.get_list(), value=loadThemes.read_json(), label="Gradio Theme Selection", visible=True,) + themes_select.change(fn=loadThemes.select_theme, inputs=[themes_select], outputs=[gr.Textbox(label="Gradio Selection Result")],) + with gr.Row(): + with gr.Column(): + gr_debug_tts = gr.CheckboxGroup(choices=debugging_choices, label="Debugging Options list", value=default_values) + with gr.Column(): + gradio_interface = gr.Dropdown(choices={"Enabled": "true", "Disabled": "false"}, label="Gradio Interface", value="Enabled" if params["gradio_interface"] else "Disabled", info="**WARNING**: This will disable the AllTalk Gradio interface from loading. To re-enable the interface, go to the API address in a web browser and enable it there. http://127.0.0.1:7851/") + with gr.Row(): + submit_button = gr.Button("Update Settings") + output_message = gr.Textbox(label="Output Message", interactive=False, show_label=False) + + submit_button.click(update_settings_at, inputs=[delete_output_wavs, gradio_interface, gradio_port_number, output_folder, api_port_number, gr_debug_tts, transcode_audio_format], outputs=output_message) + + with gr.Tab("AllTalk API Defaults"): + gr.Markdown("""##   API Version Settings""") + with gr.Group(): + with gr.Row(): + api_use_legacy_api = gr.Dropdown(choices=["AllTalk v2 API", "AllTalk v1 API (Legacy)"], label=f"{branding} API version", value="AllTalk v1 API (Legacy)" if params['api_def']['api_use_legacy_api'] else "AllTalk v2 API", scale=1) + gr.Textbox(value="Determines the API version to use. The legacy API includes the full URL (protocol, IP address, and port) in the output responses, while the new API returns only the relative path of the output file. Default: AllTalk v2 API", interactive=False, show_label=False, lines=2, scale=4) + with gr.Row(): + api_legacy_ip_address = gr.Textbox(value=params['api_def']['api_legacy_ip_address'], label="AllTalk v1 API IP address") + gr.Textbox(value="Specifies the IP address to be included in the output responses when using the legacy API. Default: 127.0.0.1", interactive=False,show_label=False, lines=2, scale=4) + gr.Markdown("""##   API Default Settings""") + with gr.Group(): + with gr.Row(): + api_length_stripping = gr.Slider(minimum=1, maximum=20, step=1, value=int(params['api_def']['api_length_stripping']), label="Strip sentences shorter than", scale=1) + gr.Textbox(value="Defines the minimum length of a sentence (in characters) that will be processed for text-to-speech. Sentences shorter than the X characters value will be filtered out by the Narrator to remove unwanted text characters. Default: 3", interactive=False,show_label=False, lines=2, scale=4) + with gr.Row(): + api_max_characters = gr.Slider(minimum=50, maximum=10000, step=50, value=int(params['api_def']['api_max_characters']), label="Maximum amount of characters") + gr.Textbox(value="Sets the maximum number of characters allowed in a single text-to-speech generation request. Requests exceeding this limit will be rejected. Default: 2000", interactive=False,show_label=False, lines=2, scale=4) + with gr.Row(): + api_text_filtering = gr.Dropdown(value=params['api_def']['api_text_filtering'], label="Text filtering", choices=["none", "standard", "html"]) + gr.Textbox(value="Determines the text filtering method applied to the input text before processing. Available options are 'none' (no filtering), 'standard' (basic filtering), and 'html' (HTML-specific filtering). Default: Standard", interactive=False,show_label=False, lines=2, scale=4) + with gr.Row(): + api_language = gr.Dropdown(value=params['api_def']['api_language'], label="Language", choices=["ar", "zh", "cs", "nl", "en", "fr", "de", "hi", "hu", "it", "ja", "ko", "pl", "pt", "ru", "es", "tr"]) + gr.Textbox(value="Sets the default language for text-to-speech if no language is explicitly provided in the request. Default: en", interactive=False,show_label=False, lines=2, scale=4) + with gr.Row(): + api_narrator_enabled = gr.Dropdown( + choices={("Enabled", "true"), ("Disabled", "false"), ("Enabled (Silent)", "silent")}, + label="Narrator Enabled/Disable/Silent", + value=("true" if params['api_def']['api_narrator_enabled'] == "true" + else "false" if params['api_def']['api_narrator_enabled'] == "false" + else "silent") + ) + gr.Textbox(value="Determines whether the narrator functionality is enabled by default when not explicitly specified in the request. Please note, if you set `Enabled` or `Enabled (silent)` as the APi defaults, then all text will go into the narrator function unless `disabled` is sent as part of the TTS generation request, possibly resulting in silenced TTS. Default: Disabled", interactive=False,show_label=False, lines=2, scale=4) + with gr.Row(): + api_text_not_inside = gr.Dropdown(choices={"character", "narrator", "silent"}, label="Narrator Text-not-inside", value="character" if params['api_def']['api_text_not_inside'] else "narrator") + gr.Textbox(value="Defines how narrated text is split and processed when not explicitly specified in the request. The available options are 'character' (text is associated with the character) and 'narrator' (text is associated with the narrator). Default: Narrator", interactive=False,show_label=False, lines=2, scale=4) + with gr.Row(): + api_output_file_name = gr.Textbox(value=params['api_def']['api_output_file_name'], label="Output file name") + gr.Textbox(value="Specifies the default name for the output file when no filename is provided in the request. Default: myoutputfile", interactive=False,show_label=False, lines=2, scale=4) + with gr.Row(): + api_output_file_timestamp = gr.Dropdown(choices={"Timestamp files", "Dont Timestamp (Over-write)"}, label="Include Timestamp", value="Timestamp files" if params['api_def']['api_output_file_timestamp'] else "Dont Timestamp (Over-write)") + gr.Textbox(value="Determines whether a unique identifier (UUID) timestamp is appended to the generated text-to-speech output file. When enabled, each output file will have a unique timestamp, preventing overwriting of files. When disabled, files with the same name will be overwritten. Default: Timestamp files", interactive=False,show_label=False, lines=2, scale=4) + with gr.Row(): + api_autoplay = gr.Dropdown(choices={"Play locally", "Play remotely"}, label="Play Locally or Remotely", value="Play remotely" if params['api_def']['api_autoplay'] else "Play locally") + gr.Textbox(value="Specifies whether the generated audio should be played locally on the client-side or remotely on the server-side console/terminal. Default: Play locally", interactive=False,show_label=False, lines=2, scale=4) + with gr.Row(): + api_autoplay_volume = gr.Slider(minimum=0.1, maximum=0.9, step=0.1, label="Remote play volume", value=float(params['api_def']['api_autoplay_volume'])) + gr.Textbox(value="Adjusts the volume level for audio playback when the 'Play Remotely' option is selected. The value ranges from 0.1 (lowest) to 0.9 (highest). Default: 0.9", interactive=False,show_label=False, lines=2, scale=4) + gr.Markdown("""##   API Allowed Text Filtering/Passthrough Settings""") + with gr.Row(): + api_allowed_filter = gr.Textbox(value=params['api_def']['api_allowed_filter'], label="Allowed text filter", show_label=False, lines=6, scale=1) + gr.Textbox(value="""Defines the set of characters and Unicode ranges that are permitted to be processed by the AllTalk TTS system. This filter ensures that only valid and supported characters are passed to the TTS engine or AI model for generation. The allowed characters include ASCII letters and digits, punctuation, whitespace, and various Unicode ranges for different languages and scripts. + + a-zA-Z0-9: ASCII letters and digits + .,;:!?: Punctuation characters + '": Single and double quotes + \s: Whitespace characters + \-: Hyphen/dash + $: Dollar sign + \\u00C0-\\u00FF: Latin characters with diacritics (À-ÿ) + \\u0400-\\u04FF: Cyrillic characters + \\u0900-\\u097F: Devanagari characters + \\u4E00-\\u9FFF: Chinese characters (CJK Unified Ideographs) + \\u3400-\\u4DBF: Chinese characters (CJK Unified Ideographs Extension A) + \\uF900-\\uFAFF: Chinese characters (CJK Compatibility Ideographs) + \\u0600-\\u06FF: Arabic characters (Arabic) + \\u0750-\\u077F: Arabic characters (Arabic Supplement) + \\uFB50-\\uFDFF: Arabic characters (Arabic Presentation Forms-A) + \\uFE70-\\uFEFF: Arabic characters (Arabic Presentation Forms-B) + \\u3040-\\u309F: Hiragana characters (Japanese) + \\u30A0-\\u30FF: Katakana characters (Japanese) + \\uAC00-\\uD7A3: Hangul Syllables (Korean) + \\u1100-\\u11FF: Hangul Jamo (Korean) + \\u3130-\\u318F: Hangul Compatibility Jamo (Korean) + \\u0150\\u0151\\u0170\\u0171: Hungarian characters + \\u2018\\u2019: Left and right single quotation marks + \\u201C\\u201D: Left and right double quotation marks + \\u3001\\u3002: Ideographic comma and full stop + \\uFF01\\uFF0C\\uFF1A\\uFF1B\\uFF1F: Fullwidth exclamation, comma, colon, semicolon & question mark + """, interactive=False,show_label=False, lines=32, scale=1) + with gr.Row(): + submit_button = gr.Button("Update Settings") + output_message = gr.Textbox(label="Output Message", interactive=False, show_label=False) + + submit_button.click(update_settings_api, inputs=[api_length_stripping, api_legacy_ip_address, api_allowed_filter, api_max_characters, api_use_legacy_api, api_text_filtering, api_narrator_enabled, api_text_not_inside, api_language, api_output_file_name, api_output_file_timestamp, api_autoplay, api_autoplay_volume], outputs=output_message) + + def rvc_update_dropdowns(): + global at_settings + at_settings = get_alltalk_settings() # Pull all the current settings from the AllTalk server, if its online. + current_voices = at_settings["rvcvoices"] + current_char = params["rvc_settings"]["rvc_char_model_file"] + current_narr = params["rvc_settings"]["rvc_narr_model_file"] + if current_char not in current_voices: + current_char = current_voices[0] if current_voices else "" + if current_narr not in current_voices: + current_narr = current_voices[0] if current_voices else "" + return ( + gr.Dropdown(choices=current_voices, value=current_char, interactive=True), + gr.Dropdown(choices=current_voices, value=current_narr, interactive=True), + ) + + def gr_update_rvc_settings(rvc_enabled, rvc_char_model_file, rvc_narr_model_file, split_audio, autotune, pitch, + filter_radius, index_rate, rms_mix_rate, protect, hop_length, f0method, embedder_model, training_data_size): + progress = gr.Progress(track_tqdm=True) + return update_rvc_settings(rvc_enabled, rvc_char_model_file, rvc_narr_model_file, split_audio, autotune, pitch, + filter_radius, index_rate, rms_mix_rate, protect, hop_length, f0method, embedder_model, training_data_size, progress) + + with gr.Tab("RVC Settings"): + with gr.Row(): + with gr.Column(scale=3): + with gr.Row(): + rvc_model_file_available = at_settings["rvcvoices"] + rvc_char_model_file_default = params["rvc_settings"]["rvc_char_model_file"] + if rvc_char_model_file_default not in rvc_model_file_available: + rvc_char_model_file_default = rvc_model_file_available[0] if rvc_model_file_available else "" + rvc_char_model_file_gr = gr.Dropdown(choices=rvc_model_file_available, label="Default Character Voice Model", info="Select the Character voice model used for conversion.", value=rvc_char_model_file_default, allow_custom_value=True,) + rvc_narr_model_file_default = params["rvc_settings"]["rvc_narr_model_file"] + if rvc_narr_model_file_default not in rvc_model_file_available: + rvc_narr_model_file_default = rvc_model_file_available[0] if rvc_model_file_available else "" + rvc_narr_model_file_gr = gr.Dropdown(choices=rvc_model_file_available, label="Default Narrator Voice Model", info="Select the Narrator voice model used for conversion.", value=rvc_narr_model_file_default, allow_custom_value=True,) + rvc_refresh_button = gr.Button("Refresh Model Choices") + with gr.Column(scale=0): + rvc_enabled = gr.Checkbox(label="Enable RVC", info="RVC (Real-Time Voice Cloning) enhances TTS by replicating voice characteristics for characters or narrators, adding depth to synthesized speech.", value=params["rvc_settings"].get("rvc_enabled", False), interactive=True) + with gr.Row(equal_height=True): + with gr.Column(): + pitch = gr.Slider(minimum=-24, maximum=24, step=1, label="Pitch", info="Set the pitch of the audio, the higher the value, the higher the pitch.", value=params["rvc_settings"].get("pitch", 0), interactive=True,) + with gr.Column(): + hop_length = gr.Slider(minimum=1, maximum=512, step=1, label="Hop Length", info="Smaller hop lengths require more time for inference but tend to yield higher pitch accuracy.", value=params["rvc_settings"].get("hop_length", 128), interactive=True,) + with gr.Row(equal_height=True): + with gr.Column(): + training_data_size = gr.Slider(minimum=10000, maximum=100000, step=5000, label="Training Data Size", info="Determines the number of training data points used to train the FAISS index. Increasing the size may improve the quality but can also increase computation time.", value=params["rvc_settings"].get("training_data_size", 25000), interactive=True) + with gr.Column(): + index_rate = gr.Slider(minimum=0, maximum=1, label="Index Influence Ratio", info="Sets the influence exerted by the index file on the final output. A higher value increases the impact of the index, potentially enhancing detail but also increasing the risk of artifacts.", value=params["rvc_settings"].get("index_rate", 0.75), interactive=True) + with gr.Row(equal_height=True): + with gr.Column(): + rms_mix_rate = gr.Slider(minimum=0, maximum=1, label="Volume Envelope", info="Substitute or blend with the volume envelope of the output. The closer the ratio is to 1, the more the output envelope is employed.", value=params["rvc_settings"].get("rms_mix_rate", 1), interactive=True,) + with gr.Column(): + protect = gr.Slider(minimum=0, maximum=0.5, label="Protect Voiceless Consonants/Breath sounds", info="Prevents sound artifacts. Higher values (up to 0.5) provide stronger protection but may affect indexing.", value=params["rvc_settings"].get("protect", 0.5), interactive=True,) + with gr.Column(): + filter_radius = gr.Slider(minimum=0, maximum=7, label="Filter Radius", info="If the number is greater than or equal to three, employing median filtering on the collected tone results has the potential to decrease respiration.", value=params["rvc_settings"].get("filter_radius", 3), step=1, interactive=True,) + with gr.Row(): + with gr.Column(): + with gr.Row(): + embedder_model = gr.Radio(label="Embedder Model", info="Model used for learning speaker embedding.", choices=["hubert", "contentvec"], value=params["rvc_settings"].get("embedder_model", "hubert"), interactive=True,) + with gr.Row(): + split_audio = gr.Checkbox(label="Split Audio", info="Split the audio into chunks for inference to obtain better results in some cases.", value=params["rvc_settings"].get("split_audio", False), interactive=True,) + autotune = gr.Checkbox(label="Autotune", info="Apply a soft autotune to your inferences, recommended for singing conversions.", value=params["rvc_settings"].get("autotune", False), interactive=True,) + with gr.Column(): + f0method = gr.Radio(label="Pitch Extraction Algorithm", info="Select the algorithm to be used for extracting the pitch (F0) during audio conversion. The default algorithm is rmvpe, which is generally recommended for most cases due to its balance of accuracy and performance.", choices=["crepe", "crepe-tiny", "dio", "fcpe", "harvest", "hybrid[rmvpe+fcpe]", "pm", "rmvpe"], value=params["rvc_settings"].get("f0method", "rmvpe"), interactive=True,) + with gr.Row(): + update_button = gr.Button("Update RVC Settings") + update_output = gr.Textbox(label="Update Status", show_label=False) + rvc_refresh_button.click(rvc_update_dropdowns, None, [rvc_char_model_file_gr, rvc_narr_model_file_gr]) + update_button.click(fn=gr_update_rvc_settings, inputs=[rvc_enabled, rvc_char_model_file_gr, rvc_narr_model_file_gr, split_audio, autotune, pitch, filter_radius, index_rate, rms_mix_rate, protect, hop_length, f0method, embedder_model, training_data_size], outputs=[update_output]) + + with gr.Tab("Text-generation-webui Settings"): + with gr.Row(): + activate = gr.Dropdown(choices={"Enabled": "true", "Disabled": "false"}, label="Activate TTS", value="Enabled" if params["tgwui"]["tgwui_activate_tts"] else "Disabled") + autoplay = gr.Dropdown(choices={"Enabled": "true", "Disabled": "false"}, label="Autoplay TTS", value="Enabled" if params["tgwui"]["tgwui_autoplay_tts"] else "Disabled") + show_text = gr.Dropdown(choices={"Enabled": "true", "Disabled": "false"}, label="Show Text", value="Enabled" if params["tgwui"]["tgwui_show_text"] else "Disabled") + narrator_enabled = gr.Dropdown(choices=[("Enabled", "true"), ("Disabled", "false"), ("Enabled (Silent)", "silent")], label="Narrator enabled", value="true" if params["tgwui"]["tgwui_narrator_enabled"] == "true" else ("silent" if params["tgwui"]["tgwui_narrator_enabled"] == "silent" else "false")) + language = gr.Dropdown(value=params["tgwui"]["tgwui_language"], label="Default Language", choices=languages_list) + with gr.Row(): + submit_button = gr.Button("Update Settings") + output_message = gr.Textbox(label="Output Message", interactive=False, show_label=False) + + submit_button.click(update_settings_tg, inputs=[activate, autoplay, show_text, language, narrator_enabled], outputs=output_message) + + disk_space_page = get_disk_interface() + disk_space_page() + + + with gr.Tab("TTS Engines Settings"): + with gr.Tabs(): + for engine_name in engines_available: + with gr.Tab(f"{engine_name.capitalize()} TTS"): + gr.Markdown(f"###   {engine_name.capitalize()} TTS") + globals()[f"{engine_name}_at_gradio_settings_page"](globals()[f"{engine_name}_model_config_data"]) + + alltalk_documentation() + api_documentation() + with gr.Tab("About this project"): + alltalk_about() + return app + + if __name__ == "__main__": + app = alltalk_gradio().queue() + app.launch(server_port=params['gradio_port_number'], prevent_thread_lock=True, quiet=True) + + if not running_in_standalone: + app = alltalk_gradio().queue() + app.launch(server_port=params['gradio_port_number'], prevent_thread_lock=True, quiet=True) + +######################################### +# START-UP # Final Splash before Gradio # +######################################### +print(f"[{branding}TTS] Please use \033[91mCtrl+C\033[0m when exiting AllTalk otherwise a") +print(f"[{branding}TTS] subprocess may continue running in the background.") +print(f"[{branding}TTS]") +print(f"[{branding}TTS] {branding}Server Ready") + +############################################################################################### +# START-UP # Loop to keep the script from exiting out if its being run as a standalone script # +############################################################################################### +if running_in_standalone: + while True: + try: + time.sleep(1) # Add a small delay to avoid high CPU usage + except KeyboardInterrupt: + break # Allow graceful exit on Ctrl+C diff --git a/tts_server.py b/tts_server.py new file mode 100644 index 0000000..a425255 --- /dev/null +++ b/tts_server.py @@ -0,0 +1,1676 @@ +import os +import sys +import json +import time +import librosa +import logging +import importlib +import subprocess +from pathlib import Path +logging.disable(logging.WARNING) +##################### +# Webserver Imports # +##################### +from contextlib import asynccontextmanager +from fastapi.staticfiles import StaticFiles +from fastapi.templating import Jinja2Templates +from fastapi.middleware.cors import CORSMiddleware +from fastapi import FastAPI, Form, Request, Response, Depends, HTTPException, Query +from fastapi.responses import JSONResponse, HTMLResponse, RedirectResponse, FileResponse, StreamingResponse +########################## +# Generation API Imports # +########################## +import re +import html +import uuid +import hashlib +import numpy as np +import soundfile as sf +from typing import Union, Dict, List +from pydantic import BaseModel, ValidationError, Field, field_validator +######################################################################################## +# START-UP # Silence RVC warning about torch.nn.utils.weight_norm even though not used # +######################################################################################## +import warnings +warnings.filterwarnings("ignore", category=UserWarning, module="torch.nn.utils.weight_norm") +warnings.filterwarnings("ignore", category=UserWarning, module="torch.nn.functional", lineno=5476) +#################### +# Setup local path # +#################### +this_dir = Path(__file__).parent.resolve() # Set this_dir as the current alltalk_tts folder + +#################################################### +# Load params and api_defailts from confignew.json # +#################################################### +def load_config(): + global branding, output_directory, debug_transcode, debug_tts, debug_tts_variables, engines_available, engine_loaded, debug_rvc, debug_concat, debug_openai + # Define the path to the confignew.json file & load in api_defaults & params + configfile_path = this_dir / "confignew.json" + with open(configfile_path, "r") as configfile: + configfile_data = json.load(configfile) + api_defaults = { + "api_text_filtering": configfile_data["api_def"]["api_text_filtering"], + "api_narrator_enabled": configfile_data["api_def"]["api_narrator_enabled"], + "api_text_not_inside": configfile_data["api_def"]["api_text_not_inside"], + "api_language": configfile_data["api_def"]["api_language"], + "api_output_file_name": configfile_data["api_def"]["api_output_file_name"], + "api_output_file_timestamp": configfile_data["api_def"]["api_output_file_timestamp"], + "api_autoplay": configfile_data["api_def"]["api_autoplay"], + "api_autoplay_volume": configfile_data["api_def"]["api_autoplay_volume"], + "api_port_number": configfile_data["api_def"]["api_port_number"], + "api_allowed_filter": configfile_data["api_def"]["api_allowed_filter"], + "api_length_stripping": configfile_data["api_def"]["api_length_stripping"], + "api_max_characters": configfile_data["api_def"]["api_max_characters"], + "api_use_legacy_api": configfile_data["api_def"]["api_use_legacy_api"], + "api_legacy_ip_address": configfile_data["api_def"]["api_legacy_ip_address"], + } + rvc_settings = { + "rvc_enabled": configfile_data["rvc_settings"]["rvc_enabled"], + "rvc_char_model_file": configfile_data["rvc_settings"]["rvc_char_model_file"], + "rvc_narr_model_file": configfile_data["rvc_settings"]["rvc_narr_model_file"], + "split_audio": configfile_data["rvc_settings"]["split_audio"], + "autotune": configfile_data["rvc_settings"]["autotune"], + "pitch": configfile_data["rvc_settings"]["pitch"], + "filter_radius": configfile_data["rvc_settings"]["filter_radius"], + "index_rate": configfile_data["rvc_settings"]["index_rate"], + "rms_mix_rate": configfile_data["rvc_settings"]["rms_mix_rate"], + "protect": configfile_data["rvc_settings"]["protect"], + "hop_length": configfile_data["rvc_settings"]["hop_length"], + "f0method": configfile_data["rvc_settings"]["f0method"], + "embedder_model": configfile_data["rvc_settings"]["embedder_model"], + "training_data_size": configfile_data["rvc_settings"]["training_data_size"], + } + branding = configfile_data.get("branding", "") + debug_transcode = configfile_data.get("debugging").get("debug_transcode") + debug_tts = configfile_data.get("debugging").get("debug_tts") + debug_tts_variables = configfile_data.get("debugging").get("debug_tts_variables") + debug_rvc = configfile_data.get("debugging").get("debug_rvc") + debug_concat = configfile_data.get("debugging").get("debug_concat") + debug_openai = configfile_data.get("debugging").get("debug_openai") + output_directory = this_dir / configfile_data.get("output_folder", "") + output_directory.mkdir(parents=True, exist_ok=True) + tts_engines_file = os.path.join(this_dir, "system", "tts_engines", "tts_engines.json") + with open(tts_engines_file, "r") as f: + tts_engines_data = json.load(f) + engines_available = [engine["name"] for engine in tts_engines_data["engines_available"]] # List of the available TTS engines from tts_engines.json + engine_loaded = tts_engines_data["engine_loaded"] # The currently set TTS engine from tts_engines.json + selected_model = tts_engines_data["selected_model"] + # Conditionally import infer_pipeline if rvc_enabled is true + if rvc_settings["rvc_enabled"]: + from system.tts_engines.rvc.infer.infer import infer_pipeline + else: + infer_pipeline = None + return configfile_data, api_defaults, rvc_settings, infer_pipeline + +# Call to load in the params and api_defaults +params, api_defaults, rvc_settings, infer_pipeline = load_config() + +#################### +# Check for FFMPEG # +#################### +def check_ffmpeg(this_dir): + if sys.platform == "win32": + # Check for ffmpeg.exe in the specified directory on Windows + ffmpeg_path = os.path.join(this_dir, "system", "win_ffmpeg", "ffmpeg.exe") + if os.path.exists(ffmpeg_path): + return True + else: + # Check for FFmpeg on Linux and macOS using the command line + try: + subprocess.run(['ffmpeg', '-version'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=True) + return True + except (subprocess.CalledProcessError, FileNotFoundError): + pass + return False + +# Check if FFmpeg is installed +ffmpeg_installed = check_ffmpeg(this_dir) + +if not ffmpeg_installed: + print(f"[{branding}ENG] \033[92mTranscoding :\033[94m ffmpeg not found\033[0m") + print(f"[{branding}ENG] FFmpeg is not installed. Transcoding will be disabled.") + print(f"[{branding}ENG] Please install FFmpeg on your system.") + + if sys.platform == "win32": + print(f"[{branding}ENG] \033[92mTranscoding :\033[94m ffmpeg not found\033[0m") + print(f"[{branding}ENG] Installation instructions for Windows:") + print(f"[{branding}ENG] Copy the 'ffmpeg.exe' file to '{os.path.join(this_dir, 'system', 'win_ffmpeg')}'") + else: + print(f"[{branding}ENG] \033[92mTranscoding :\033[94m ffmpeg not found\033[0m") + print(f"[{branding}ENG] Installation instructions:") + print(f"[{branding}ENG] Linux (Debian-based systems): Run 'sudo apt-get install ffmpeg' in the terminal.") + print(f"[{branding}ENG] macOS: Run 'brew install ffmpeg' in the terminal (requires Homebrew).") + # You can choose to exit the script or continue without FFmpeg + # exit(1) + +if ffmpeg_installed: + from ffmpeg.asyncio import FFmpeg + print(f"[{branding}ENG] \033[92mTranscoding :\033[93m ffmpeg found\033[0m") + +################################ +# Check for portaudio on Linux # +################################ +try: + import sounddevice as sd + sounddevice_installed=True +except OSError: + print(f"[{branding}Startup] \033[91mInfo\033[0m PortAudio library not found. If you wish to play TTS in standalone mode through the API suite") + print(f"[{branding}Startup] \033[91mInfo\033[0m please install PortAudio. This will not affect any other features or use of Alltalk.") + print(f"[{branding}Startup] \033[91mInfo\033[0m If you don't know what the API suite is, then this message is nothing to worry about.") + sounddevice_installed=False + if sys.platform.startswith('linux'): + print(f"[{branding}Startup] \033[91mInfo\033[0m On Linux, you can use the following command to install PortAudio:") + print(f"[{branding}Startup] \033[91mInfo\033[0m sudo apt-get install portaudio19-dev") + +####################################################################### +# Attempt to import the ModelLoader class for the selected TTS engine # +####################################################################### +if engine_loaded in engines_available: + loader_module = importlib.import_module(f"system.tts_engines.{engine_loaded}.model_engine") + tts_class = getattr(loader_module, "tts_class") + # Setup model_engine as the way to call the functions within the Class. + model_engine = tts_class() +else: + raise ValueError(f"Invalid TTS engine: {engine_loaded}") + +########################################## +# Run setup function in the model_engine # +########################################## +@asynccontextmanager +async def startup_shutdown(no_actual_value_it_demanded_something_be_here): + try: + await model_engine.setup() + except FileNotFoundError as e: + print(f"Error during setup: {e}. Continuing without the TTS model.") + yield + # Shutdown logic + +############################### +# Setup FastAPI with Lifespan # +############################### +app = FastAPI(lifespan=startup_shutdown) +# Allow all origins, and set other CORS options +app.add_middleware( + CORSMiddleware, + allow_origins=["*"], # Set this to the specific origins you want to allow + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], +) + +############################## +# API Endpoint - /api/reload # +############################## +model_currently_changing = False +@app.route("/api/reload", methods=["POST"]) +async def apifunction_reload(request: Request): + global model_currently_changing + if model_currently_changing == True: + return Response(content=json.dumps({"status": "model-is currently changing"}), media_type="application/json") + model_currently_changing == True + requested_model = request.query_params.get("tts_method") + if requested_model not in model_engine.available_models: + model_currently_changing == False + return {"status": "error", "message": "Invalid TTS method specified"} + # Call the handle_tts_method_change method from the imported class + success = await model_engine.handle_tts_method_change(requested_model) + if success: + model_engine.current_model_loaded = requested_model + print(f"[{branding}ENG]") + print(f"[{branding}ENG] {branding} Server Ready.") + model_currently_changing == False + return Response(content=json.dumps({"status": "model-success"}), media_type="application/json") + else: + model_currently_changing == False + return Response(content=json.dumps({"status": "model-failure"}), media_type="application/json") + +#################################### +# API Endpoint - /api/enginereload # +#################################### +import asyncio +uvicorn_server = None +def restart_self(): + """Restart the current script.""" + #print(f"[{branding}ENG] Restarting subprocess...") + os.execv(sys.executable, ['python'] + sys.argv) + +async def handle_restart(): + global uvicorn_server + if uvicorn_server: + print(f"[{branding}ENG] Stopping uvicorn server...") + uvicorn_server.should_exit = True + uvicorn_server.force_exit = True + # Check if the server has stopped + while not uvicorn_server.is_stopped: + await asyncio.sleep(0.1) # Check every 100ms if server is stopped + restart_self() + +@app.post("/api/enginereload") +async def apifunction_reload(request: Request): + requested_engine = request.query_params.get("engine") + if requested_engine not in engines_available: + return {"status": "error", "message": "Invalid TTS engine specified"} + print(f"[{branding}ENG]") + print(f"[{branding}ENG] \033[94mChanging model loaded. Please wait.\033[00m") + print(f"[{branding}ENG]") + # Update the tts_engines.json file + tts_engines_file = os.path.join(this_dir, "system", "tts_engines", "tts_engines.json") + with open(tts_engines_file, "r") as f: + tts_engines_data = json.load(f) + for engine in tts_engines_data["engines_available"]: + if engine["name"] == requested_engine: + tts_engines_data["engine_loaded"] = requested_engine + tts_engines_data["selected_model"] = engine["selected_model"] + break + with open(tts_engines_file, "w") as f: + json.dump(tts_engines_data, f) + #print(f"[{branding}ENG] Reloading the engine...") + # Start the restart process in the background + asyncio.create_task(handle_restart()) + # Never goes past the above asyncio as the script is killed at that point + return Response(content=json.dumps({"status": "engine-success"}), media_type="application/json") + +####################################### +# API Endpoint - /api/stop-generation # +####################################### +# When this endpoint it called it will set tts_stop_generation in the model_engine to True, which can be used to interrupt the current TTS generation. +@app.put("/api/stop-generation") +async def apifunction_stop_generation(): + if model_engine.tts_generating_lock and not model_engine.tts_stop_generation: + model_engine.tts_stop_generation = True + return {"message": "Cancelling current TTS generation"} + +############################# +# API Endpoint - /api/audio # +############################# +# Gives web access to the output files as downloads +@app.get("/audio/{filename}") +async def apifunction_get_audio(filename: str): + audio_path = this_dir / output_directory / filename + return FileResponse(audio_path) + +################################## +# API Endpoint - /api/audiocache # +################################## +@app.get("/audiocache/{filename}") +async def apifunction_get_audio(filename: str): + audio_path = Path({output_directory}) / filename + if not audio_path.is_file(): + raise HTTPException(status_code=404, detail="File not found") + response = FileResponse(path=audio_path, media_type='audio/wav', filename=filename) + # Set caching headers + response.headers["Cache-Control"] = "public, max-age=604800" # Cache for one week + response.headers["ETag"] = str(audio_path.stat().st_mtime) # Use the file's last modified time as a simple ETag + return response + +############################## +# API Endpoint - /api/voices # +############################## +@app.get("/api/voices") +async def apifunction_get_voices(): + if not model_engine.multivoice_capable: + return {"status": "error", "message": f"The currently loaded TTS engine '{model_engine.engine_loaded}' does not support multiple voices."} + + available_voices = model_engine.voices_file_list() + return {"status": "success", "voices": available_voices} + +################################# +# API Endpoint - /api/rvcvoices # +################################# +@app.get("/api/rvcvoices") +async def apifunction_get_voices(): + global params, api_defaults, rvc_settings, infer_pipeline + params, api_defaults, rvc_settings, infer_pipeline = load_config() + if not rvc_settings["rvc_enabled"]: + return {"status": "success", "rvcvoices": ["Disabled"]} + # Define the directory path + directory = os.path.join(this_dir, "models", "rvc_voices") + # Check if the directory exists + if not os.path.exists(directory): + return {"status": "success", "rvcvoices": ["Disabled"]} + # List all .pth files recursively in the directory + pth_files = [] + for root, dirs, files in os.walk(directory): + for file in files: + if file.endswith(".pth"): + pth_files.append(os.path.relpath(os.path.join(root, file), start=directory)) + # If no .pth files found, return "Disabled" + if not pth_files: + return {"status": "success", "rvcvoices": ["Disabled"]} + # Sort the list alphabetically + pth_files.sort() + # Add "Disabled" at the beginning of the list + pth_files.insert(0, "Disabled") + return {"status": "success", "rvcvoices": pth_files} + +##################################### +# API Endpoint - /api/reload_config # +##################################### +@app.get("/api/reload_config") +async def apifunction_reload_config(): + global params, api_defaults, rvc_settings, infer_pipeline + model_engine.available_models = model_engine.scan_models_folder() + params, api_defaults, rvc_settings, infer_pipeline = load_config() + return Response("Config file reloaded successfully") + +############################# +# API Endpoint - /api/ready # +############################# +@app.get("/api/ready") +async def apifunction_ready(): + if model_engine.setup_has_run: + return Response("Ready") + else: + return Response("Unloaded") + +####################################### +# API Endpoint - /api/currentsettings # +####################################### +@app.get('/api/currentsettings') +def apifunction_get_current_settings(): + settings = { + "engines_available": engines_available, # Lists the currently available TTS engines + "current_engine_loaded": model_engine.engine_loaded, # Lists the currently loaded TTS engine + "models_available": [{"name": name} for name in model_engine.available_models.keys()], # Lists the currently available models that can be loaded on this TTS engine. + "current_model_loaded": model_engine.current_model_loaded, # Lists the currently loaded model + "manufacturer_name": model_engine.manufacturer_name, # The name of the person/company/group who made the current TTS engine + "audio_format": model_engine.audio_format, # The default audio format the the currently loaded TTS engine generates in + "deepspeed_capable": model_engine.deepspeed_capable, # Is the TTS engine capable of supporting DeepSpeed + "deepspeed_available": model_engine.deepspeed_available, # Was DeepSpeed detected as being available for use + "deepspeed_enabled": model_engine.deepspeed_enabled, # Is DeepSpeed current enabled or disabled + "generationspeed_capable": model_engine.generationspeed_capable, # Does the TTS engine support changing speed of generated TTS + "generationspeed_set": model_engine.generationspeed_set, # What is the currently set TTS speed + "lowvram_capable": model_engine.lowvram_capable, # Does the TTS engine support moving the model between VRAM and System Ram + "lowvram_enabled": model_engine.lowvram_enabled, # What is the currently enabled/disabled state of low vram + "pitch_capable": model_engine.pitch_capable, # Does the TTS engine support pitch on tts generation + "pitch_set": model_engine.pitch_set, # What is the currently set value for pitch + "repetitionpenalty_capable": model_engine.repetitionpenalty_capable, # Does the TTS engine support differnt repitition penalties + "repetitionpenalty_set": model_engine.repetitionpenalty_set, # What is the currently set repetition penalty + "streaming_capable": model_engine.streaming_capable, # Does the model support streaming TTS generation + "temperature_capable": model_engine.temperature_capable, # Does the TTS engine support model temperature settings + "temperature_set": model_engine.temperature_set, # What is the currently set temperature + "ttsengines_installed": model_engine.engine_installed, # + "languages_capable": model_engine.languages_capable, # Does the TTS engine support multi languages + "multivoice_capable": model_engine.multivoice_capable, # Does the TTS engine support multi voice models + "multimodel_capable": model_engine.multimodel_capable, # Does the engine support loading many different models + } + return settings + +###################################### +# API Endpoint - /api/lowvramsetting # +###################################### +@app.post("/api/lowvramsetting") +async def apifunction_low_vram(request: Request, new_low_vram_value: bool): + if not model_engine.lowvram_capable: + return {"status": "error", "message": f"The currently loaded TTS engine '{model_engine.engine_loaded}' does not support lowvram."} + try: + if new_low_vram_value is None: + raise ValueError("Missing 'low_vram' parameter") + if model_engine.lowvram_enabled == new_low_vram_value: + return Response(content=json.dumps({"status": "success", "message": f"[{branding}Model] LowVRAM is already {'enabled' if new_low_vram_value else 'disabled'}.",})) + model_engine.lowvram_enabled = new_low_vram_value + await model_engine.unload_model() + + if model_engine.cuda_is_available: + if model_engine.lowvram_enabled: + model_engine.device = "cpu" + print(f"[{branding}Engine] \033[94mLowVRAM Enabled.\033[0m Model will move between \033[93mVRAM(cuda) <> System RAM(cpu)\033[0m") + else: + model_engine.device = "cuda" + print(f"[{branding}Engine] \033[94mLowVRAM Disabled.\033[0m Model will stay in \033[93mVRAM(cuda)\033[0m") + await model_engine.setup() + else: + # Handle the case where CUDA is not available + print(f"[{branding}Engine] \033[91mError:\033[0m Nvidia CUDA is not available on this system. Unable to use LowVRAM mode.") + model_engine.lowvram_enabled = False + + return Response(content=json.dumps({"status": "lowvram-success"})) + except Exception as e: + return Response(content=json.dumps({"status": "error", "message": str(e)})) + +################################# +# API Endpoint - /api/deepspeed # +################################# +@app.post("/api/deepspeed") +async def deepspeed(request: Request, new_deepspeed_value: bool): + if not model_engine.deepspeed_capable or not model_engine.deepspeed_available: + return {"status": "error", "message": f"The currently loaded TTS engine '{model_engine.engine_loaded}' does not support DeepSpeed or DeepSpeed is not available on this system."} + try: + if new_deepspeed_value is None: + raise ValueError("Missing 'deepspeed' parameter") + if model_engine.deepspeed_enabled == new_deepspeed_value: + return Response( + content=json.dumps({"status": "success", "message": f"DeepSpeed is already {'enabled' if new_deepspeed_value else 'disabled'}.",})) + model_engine.deepspeed_enabled = new_deepspeed_value + await model_engine.handle_deepspeed_change(new_deepspeed_value) + return Response(content=json.dumps({"status": "deepspeed-success"})) + except Exception as e: + return Response(content=json.dumps({"status": "error", "message": str(e)})) + +################################# +# API Endpoint - /api/voice2rvc # +################################# +@app.post("/api/voice2rvc") +async def voice2rvc(input_tts_path: str = Form(...), output_rvc_path: str = Form(...), pth_name: str = Form(...)): + try: + # Handle "Disabled" case + if pth_name.lower() in ["disabled", "disable"]: + print(f"[{branding}TTS] \033[94mVoice2RVC Convert: No voice was specified or the name was Disabled\033[0m") + return {"status": "error", "message": "No voice was specified or the name was Disabled"} + input_tts_path = Path(input_tts_path) + output_rvc_path = Path(output_rvc_path) + # Check if input file exists + if not input_tts_path.is_file(): + raise HTTPException(status_code=400, detail=f"Input file {input_tts_path} does not exist.") + # Define the model path based on the selected model name + pth_path = this_dir / "models" / "rvc_voices" / pth_name + # Check if model file exists + if not pth_path.is_file(): + raise HTTPException(status_code=400, detail=f"Model file {pth_path} does not exist.") + # Run the RVC conversion + result_path = run_voice2rvc(input_tts_path, output_rvc_path, pth_path) + if result_path: + return {"status": "success", "output_path": str(result_path)} + else: + raise HTTPException(status_code=500, detail="RVC conversion failed.") + except Exception as e: + print(f"Error during Voice2RVC conversion: {e}") + raise HTTPException(status_code=500, detail=str(e)) + +# Define the run_rvc function +def run_voice2rvc(input_tts_path, output_rvc_path, pth_path): + print(f"[{branding}GEN] \033[94mVoice2RVC Convert: Started\033[0m") + generate_start_time = time.time() + f0up_key = rvc_settings["pitch"] + filter_radius = rvc_settings["filter_radius"] + index_rate = rvc_settings["index_rate"] + rms_mix_rate = rvc_settings["rms_mix_rate"] + protect = rvc_settings["protect"] + hop_length = rvc_settings["hop_length"] + f0method = rvc_settings["f0method"] + split_audio = rvc_settings["split_audio"] + f0autotune = rvc_settings["autotune"] + embedder_model = rvc_settings["embedder_model"] + training_data_size = rvc_settings["training_data_size"] + # Convert path variables to strings + input_tts_path = str(input_tts_path) + pth_path = str(pth_path) + # Check if the model file exists + if not os.path.isfile(pth_path): + print(f"Model file {pth_path} does not exist. Exiting.") + return + # Get the directory of the model file + model_dir = os.path.dirname(pth_path) + # Find all .index files in the model directory + index_files = [file for file in os.listdir(model_dir) if file.endswith(".index")] + if len(index_files) == 1: + index_path = str(os.path.join(model_dir, index_files[0])) + else: + index_path = "" + # Call the infer_pipeline function + infer_pipeline(f0up_key, filter_radius, index_rate, rms_mix_rate, protect, hop_length, f0method, + input_tts_path, output_rvc_path, pth_path, index_path, split_audio, f0autotune, embedder_model, training_data_size, debug_rvc) + generate_end_time = time.time() + generate_elapsed_time = generate_end_time - generate_start_time + print(f"[{branding}GEN] \033[94mVoice2RVC Convert: \033[91m{generate_elapsed_time:.2f} seconds.\033[0m") + return output_rvc_path + +################################# +# API Endpoint - /api/voice2rvc # +################################# +@app.post("/api/voice2rvc") +async def voice2rvc(input_tts_path: str = Form(...), output_rvc_path: str = Form(...), pth_name: str = Form(...)): + try: + input_tts_path = Path(input_tts_path) + output_rvc_path = Path(output_rvc_path) + # Check if input file exists + if not input_tts_path.is_file(): + raise HTTPException(status_code=400, detail=f"Input file {input_tts_path} does not exist.") + # Define the model path based on the selected model name + pth_path = this_dir / "models" / "rvc_voices" / pth_name + # Check if model file exists + if not pth_path.is_file(): + raise HTTPException(status_code=400, detail=f"Model file {pth_path} does not exist.") + # Run the RVC conversion + result_path = run_voice2rvc(input_tts_path, output_rvc_path, pth_path) + if result_path: + return {"status": "success", "output_path": str(result_path)} + else: + raise HTTPException(status_code=500, detail="RVC conversion failed.") + except Exception as e: + print(f"Error during Voice2RVC conversion: {e}") + raise HTTPException(status_code=500, detail=str(e)) + +# Define the run_rvc function +def run_voice2rvc(input_tts_path, output_rvc_path, pth_path): + print(f"[{branding}GEN] \033[94mVoice2RVC Convert: Started\033[0m") + generate_start_time = time.time() + f0up_key = rvc_settings["pitch"] + filter_radius = rvc_settings["filter_radius"] + index_rate = rvc_settings["index_rate"] + rms_mix_rate = rvc_settings["rms_mix_rate"] + protect = rvc_settings["protect"] + hop_length = rvc_settings["hop_length"] + f0method = rvc_settings["f0method"] + split_audio = rvc_settings["split_audio"] + f0autotune = rvc_settings["autotune"] + embedder_model = rvc_settings["embedder_model"] + training_data_size = rvc_settings["training_data_size"] + # Convert path variables to strings + input_tts_path = str(input_tts_path) + pth_path = str(pth_path) + # Check if the model file exists + if not os.path.isfile(pth_path): + print(f"Model file {pth_path} does not exist. Exiting.") + return + # Get the directory of the model file + model_dir = os.path.dirname(pth_path) + # Find all .index files in the model directory + index_files = [file for file in os.listdir(model_dir) if file.endswith(".index")] + if len(index_files) == 1: + index_path = str(os.path.join(model_dir, index_files[0])) + else: + index_path = "" + # Call the infer_pipeline function + infer_pipeline(f0up_key, filter_radius, index_rate, rms_mix_rate, protect, hop_length, f0method, + input_tts_path, output_rvc_path, pth_path, index_path, split_audio, f0autotune, embedder_model, training_data_size, debug_rvc) + generate_end_time = time.time() + generate_elapsed_time = generate_end_time - generate_start_time + print(f"[{branding}GEN] \033[94mVoice2RVC Convert: \033[91m{generate_elapsed_time:.2f} seconds.\033[0m") + return output_rvc_path + +################################## +# Transcode between file formats # +################################## +async def transcode_audio(input_file, output_format): + print(f"[{branding}Debug] *************************************************",) + print(f"[{branding}Debug] transcode_audio function called (debug_transcode)",) + print(f"[{branding}Debug] *************************************************",) + print(f"[{branding}Debug] Input file : {input_file}") if debug_transcode else None + print(f"[{branding}Debug] Output format : {output_format}") if debug_transcode else None + if output_format == "Disabled": + print(f"[{branding}Debug] Transcode format is set to Disabled so skipping transcode.") if debug_transcode else None + return input_file + if not ffmpeg_installed: + print(f"[{branding}TTS] FFmpeg is not installed. Format conversion is not possible.") + raise Exception("FFmpeg is not installed. Format conversion is not possible.") + # Get the file extension of the input file + input_extension = os.path.splitext(input_file)[1][1:].lower() + print(f"[{branding}Debug] Input file extension: {input_extension}") if debug_transcode else None + # Check if the input extension matches the requested output format + if input_extension == output_format.lower(): + print(f"[{branding}Debug] Input file is already in the requested format: {output_format}") if debug_transcode else None + return input_file + output_file = os.path.splitext(input_file)[0] + f".{output_format}" + print(f"[{branding}Debug] Output file: {output_file}") if debug_transcode else None + ffmpeg_path = "ffmpeg" # Default path for Linux and macOS + if sys.platform == "win32": + ffmpeg_path = os.path.join(this_dir, "system", "win_ffmpeg", "ffmpeg.exe") + ffmpeg = (FFmpeg(ffmpeg_path).option("y").input(input_file).output(output_file)) + print(f"[{branding}Debug] Transcoding to {output_format}") if debug_transcode else None + if output_format == "opus": + print(f"[{branding}Debug] Configuring Opus options") if debug_transcode else None + ffmpeg.output(output_file, {"codec:a": "libopus", "b:a": "128k", "vbr": "on", "compression_level": 10, "frame_duration": 60, "application": "voip"}) + elif output_format == "aac": + print(f"[{branding}Debug] Configuring AAC options") if debug_transcode else None + ffmpeg.output(output_file, {"codec:a": "aac", "b:a": "192k"}) + elif output_format == "flac": + print(f"[{branding}Debug] Configuring FLAC options") if debug_transcode else None + ffmpeg.output(output_file, {"codec:a": "flac", "compression_level": 8}) + elif output_format == "wav": + print(f"[{branding}Debug] Configuring WAV options") if debug_transcode else None + ffmpeg.output(output_file, {"codec:a": "pcm_s16le"}) + elif output_format == "mp3": + print(f"[{branding}Debug] Configuring MP3 options") if debug_transcode else None + ffmpeg.output(output_file, {"codec:a": "libmp3lame", "b:a": "192k"}) + else: + print(f"[{branding}TTS] Unsupported output format: {output_format}") + raise ValueError(f"Unsupported output format: {output_format}") + try: + print(f"[{branding}Debug] Starting transcoding process") if debug_transcode else None + await ffmpeg.execute() + print(f"[{branding}Debug] Transcoding completed successfully") if debug_transcode else None + except Exception as e: + print(f"[{branding}TTS] Error occurred during transcoding: {str(e)}") + raise + print(f"[{branding}Debug] Deleting original input file") if debug_transcode else None + os.remove(input_file) + print(f"[{branding}Debug] Transcoding process completed") if debug_transcode else None + print(f"[{branding}Debug] Transcoded file: {output_file}") if debug_transcode else None + return output_file + +############################## +# Central Transcode function # +############################## +async def transcode_audio_if_necessary(output_file, model_audio_format, output_audio_format): + if debug_transcode: + print(f"[{branding}Debug] model_engine.audio_format is:", model_audio_format) + print(f"[{branding}Debug] audio format is:", output_audio_format) + print(f"[{branding}Debug] Entering the transcode condition") + try: + if debug_transcode: + print(f"[{branding}Debug] Calling transcode_audio function") + output_file = await transcode_audio(output_file, output_audio_format) + if debug_transcode: + print(f"[{branding}Debug] Transcode completed successfully") + except Exception as e: + print(f"[{branding}Debug] Error occurred during transcoding:", str(e)) + raise + if debug_transcode: + print(f"[{branding}Debug] Transcode condition completed") + # Update the output file path and URLs based on the transcoded file + if debug_tts: + print(f"[{branding}Debug] Updating output file paths and URLs") + if params["api_def"]["api_use_legacy_api"]: + output_file_url = f'http://{api_defaults["api_legacy_ip_address"]}:{api_defaults["api_port_number"]}/audio/{os.path.basename(output_file)}' + output_cache_url = f'http://{api_defaults["api_legacy_ip_address"]}:{api_defaults["api_port_number"]}/audiocache/{os.path.basename(output_file)}' + else: + output_file_url = f'/audio/{os.path.basename(output_file)}' + output_cache_url = f'/audiocache/{os.path.basename(output_file)}' + if debug_tts: + print(f"[{branding}Debug] Output file paths and URLs updated") + return output_file, output_file_url, output_cache_url + +############################## +#### Streaming Generation #### +############################## +@app.get("/api/tts-generate-streaming", response_class=StreamingResponse) +async def apifunction_generate_streaming(text: str, voice: str, language: str, output_file: str): + if model_engine.streaming_capable == False: + print(f"[{branding}GEN] Streaming is unavailable for this TTS Engine") + try: + output_file_path = f'{this_dir / output_directory / output_file}.{model_engine.audio_format}' + stream = await generate_audio(text, voice, language, model_engine.temperature_set, model_engine.repetitionpenalty_set, 1.0, 1.0, output_file_path, streaming=True) + return StreamingResponse(stream, media_type="audio/wav") + except Exception as e: + print(f"An error occurred: {e}") + return JSONResponse(content={"error": "An error occurred"}, status_code=500) + +@app.post("/api/tts-generate-streaming", response_class=JSONResponse) +async def tts_generate_streaming(request: Request, text: str = Form(...), voice: str = Form(...), language: str = Form(...), output_file: str = Form(...)): + if model_engine.streaming_capable == False: + print(f"[{branding}GEN] Streaming is unavailable for this TTS Engine") + try: + output_file_path = f'{this_dir / output_directory / output_file}.{model_engine.audio_format}' + await generate_audio(text, voice, language, model_engine.temperature_set, model_engine.repetitionpenalty_set, "1.0", "1.0", output_file_path, streaming=False) + return JSONResponse(content={"output_file_path": str(output_file)}, status_code=200) + except Exception as e: + print(f"An error occurred: {e}") + return JSONResponse(content={"error": "An error occurred"}, status_code=500) + +################################### +# Central generate_audio function # +################################### +async def generate_audio(text, voice, language, temperature, repetition_penalty, speed, pitch, output_file, streaming=False): + # Get the async generator from the internal function + response = model_engine.generate_tts(text, voice, language, temperature, repetition_penalty, speed, pitch, output_file, streaming) + # If streaming, then return the generator as-is, otherwise just exhaust it and return + if streaming: + return response + async for _ in response: + pass + +########################### +#### PREVIEW VOICE API #### +########################### +@app.post("/api/previewvoice/", response_class=JSONResponse) +async def apifunction_preview_voice(request: Request, voice: str = Form(...)): + try: + # Hardcoded settings + language = "en" + output_file_name = "api_preview_voice" + # Clean the voice filename for inclusion in the text + clean_voice_filename = re.sub(r'\.wav$', '', voice.replace(' ', '_')) + clean_voice_filename = re.sub(r'[^a-zA-Z0-9]', ' ', clean_voice_filename) + # Generate the audio + text = f"Hello, this is a preview of voice {clean_voice_filename}." + # Generate the audio + output_file_path = this_dir / output_directory / f'{output_file_name}.{model_engine.audio_format}' + await generate_audio(text, voice, language, model_engine.temperature_set, model_engine.repetitionpenalty_set, 1.0, 0, output_file_path, streaming=False) + # Generate the URL + output_file_url = f'/audio/{output_file_name}.{model_engine.audio_format}' + # Return the response with both local file path and URL + return JSONResponse( + content={ + "status": "generate-success", + "output_file_path": str(output_file_path), + "output_file_url": str(output_file_url), + }, + status_code=200, + ) + except Exception as e: + print(f"An error occurred: {e}") + return JSONResponse(content={"error": "An error occurred"}, status_code=500) + +################################################################## +# API Endpoint - OpenAI Speech API compatable endpoint Validator # +################################################################## +class OpenAIInput(BaseModel): + model: str = Field(..., description="The TTS model to use. Currently ignored.") + input: str = Field(..., max_length=4096, description="The text to generate audio for.") + voice: str = Field(..., description="The voice to use when generating the audio.") + response_format: str = Field(default="wav", description="The format of the audio. Currently only 'wav' is supported.") + speed: float = Field(default=1.0, ge=0.25, le=4.0, description="The speed of the generated audio.") + + @field_validator('voice') + def validate_voice(cls, value): + supported_voices = ["alloy", "echo", "fable", "nova", "onyx", "shimmer"] + if value not in supported_voices: + raise ValueError(f'Voice must be one of {supported_voices}') + return value + +class OpenAIGenerator: + @staticmethod + def validate_input(json_data: dict) -> Union[None, str]: + try: + OpenAIInput(**json_data) + return None + except ValidationError as e: + errors = [] + for err in e.errors(): + field = err['loc'][0] + message = err['msg'] + description = OpenAIInput.model_fields[field].field_info.description + errors.append(f"Error in field '{field}': {message}. Description: {description}") + return ', '.join(errors) + +######################################################################### +# API Endpoint - OpenAI Speech API compatable endpoint /v1/audio/speech # +######################################################################### +@app.post("/v1/audio/speech", response_class=JSONResponse) +async def openai_tts_generate(request: Request): + try: + json_data = await request.json() + print(f"[{branding}Debug] Received JSON data: {json_data}") if debug_openai else None + validation_error = OpenAIGenerator.validate_input(json_data) + if validation_error: + print(f"Validation error: {validation_error}") if debug_openai else None + return JSONResponse(content={"error": validation_error}, status_code=400) + model = json_data["model"] # Currently ignored + input_text = json_data["input"] + voice = json_data["voice"] + response_format = json_data["response_format"].lower() + speed = json_data["speed"] + print(f"[{branding}Debug] Input text: {input_text}") if debug_openai else None + print(f"[{branding}Debug] Voice: {voice}") if debug_openai else None + print(f"[{branding}Debug] Speed: {speed}") if debug_openai else None + cleaned_string = html.unescape(standard_filtering(input_text)) + # Map the OpenAI voice to the corresponding internal voice + voice_mapping = { + "alloy": model_engine.openai_alloy, + "echo": model_engine.openai_echo, + "fable": model_engine.openai_fable, + "nova": model_engine.openai_nova, + "onyx": model_engine.openai_onyx, + "shimmer": model_engine.openai_shimmer + } + mapped_voice = voice_mapping.get(voice) + if not mapped_voice: + print(f"Unsupported voice: {voice}") + return JSONResponse(content={"error": "Unsupported voice"}, status_code=400) + print(f"[{branding}Debug]Mapped voice: {mapped_voice}") if debug_openai else None + # Generate the audio + # Generate a unique filename + unique_id = uuid.uuid4() + timestamp = int(time.time()) + output_file_path = f'{this_dir / output_directory / f"openai_output_{unique_id}_{timestamp}.{model_engine.audio_format}"}' + await generate_audio(cleaned_string, mapped_voice, "en", model_engine.temperature_set, + model_engine.repetitionpenalty_set, speed, model_engine.pitch_set, + output_file_path, streaming=False) + print(f"[{branding}Debug] Audio generated at: {output_file_path}") if debug_openai else None + if rvc_settings["rvc_enabled"]: + if rvc_settings["rvc_char_model_file"].lower() in ["disabled", "disable"]: + print(f"[{branding}Debug] Pass rvccharacter_voice_gen") if debug_openai else None + pass # Skip RVC processing for character part + else: + print(f"[{branding}Debug] send to rvc") if debug_openai else None + pth_path = this_dir / "models" / "rvc_voices" / rvc_settings["rvc_char_model_file"] + run_rvc(output_file_path, pth_path, infer_pipeline) + # Transcode the audio to the requested format + transcoded_file_path = await transcode_for_openai(output_file_path, response_format) + print(f"[{branding}Debug] Audio transcoded to: {transcoded_file_path}") if debug_openai else None + # Return the audio file + return FileResponse(transcoded_file_path, media_type=f"audio/{response_format}", filename=f"output.{response_format}") + except Exception as e: + print(f"[{branding}Debug] An error occurred: {str(e)}") if debug_openai else None + return JSONResponse(content={"error": "An error occurred"}, status_code=500) + +########################################################################### +# API Endpoint - OpenAI Speech API compatable endpoint Transcode Function # +########################################################################### +async def transcode_for_openai(input_file, output_format): + print(f"[{branding}Debug] ************************************") if debug_openai else None + print(f"[{branding}Debug] transcode_for_openai function called") if debug_openai else None + print(f"[{branding}Debug] ************************************") if debug_openai else None + print(f"[{branding}Debug] Input file : {input_file}") if debug_openai else None + print(f"[{branding}Debug] Output format : {output_format}") if debug_openai else None + if not ffmpeg_installed: + print(f"[{branding}TTS] FFmpeg is not installed. Format conversion is not possible.") + raise Exception("FFmpeg is not installed. Format conversion is not possible.") + # Get the file extension of the input file + input_extension = os.path.splitext(input_file)[1][1:].lower() + print(f"[{branding}Debug] Input file extension: {input_extension}") if debug_openai else None + # Check if the input extension matches the requested output format + if input_extension == output_format.lower(): + print(f"[{branding}Debug] Input file is already in the requested format: {output_format}") if debug_openai else None + return input_file + output_file = os.path.splitext(input_file)[0] + f".{output_format}" + print(f"[{branding}Debug] Output file: {output_file}") if debug_openai else None + ffmpeg_path = "ffmpeg" # Default path for Linux and macOS + if sys.platform == "win32": + ffmpeg_path = os.path.join(this_dir, "system", "win_ffmpeg", "ffmpeg.exe") + ffmpeg = (FFmpeg(ffmpeg_path).option("y").input(input_file).output(output_file)) + print(f"[{branding}Debug] Transcoding to {output_format}") if debug_openai else None + if output_format == "opus": + print(f"[{branding}Debug] Configuring Opus options") if debug_openai else None + ffmpeg.output(output_file, {"codec:a": "libopus", "b:a": "128k", "vbr": "on", "compression_level": 10, "frame_duration": 60, "application": "voip"}) + elif output_format == "aac": + print(f"[{branding}Debug] Configuring AAC options") if debug_openai else None + ffmpeg.output(output_file, {"codec:a": "aac", "b:a": "192k"}) + elif output_format == "flac": + print(f"[{branding}Debug] Configuring FLAC options") if debug_openai else None + ffmpeg.output(output_file, {"codec:a": "flac", "compression_level": 8}) + elif output_format == "wav": + print(f"[{branding}Debug] Configuring WAV options") if debug_openai else None + ffmpeg.output(output_file, {"codec:a": "pcm_s16le"}) + elif output_format == "mp3": + print(f"[{branding}Debug] Configuring MP3 options") if debug_openai else None + ffmpeg.output(output_file, {"codec:a": "libmp3lame", "b:a": "192k"}) + elif output_format in ["ogg", "m4a"]: + if output_format == "ogg": + print(f"[{branding}Debug] Configuring OGG options") if debug_openai else None + ffmpeg.output(output_file, {"codec:a": "libvorbis"}) + elif output_format == "m4a": + print(f"[{branding}Debug] Configuring M4A options") if debug_openai else None + ffmpeg.output(output_file, {"codec:a": "aac", "b:a": "192k"}) + else: + print(f"[{branding}TTS] Unsupported output format: {output_format}") + raise ValueError(f"Unsupported output format: {output_format}") + try: + print(f"[{branding}Debug] Starting transcoding process") if debug_openai else None + await ffmpeg.execute() + print(f"[{branding}Debug] Transcoding completed successfully") if debug_openai else None + except Exception as e: + print(f"[{branding}TTS] Error occurred during transcoding: {str(e)}") + raise + print(f"[{branding}Debug] Transcoding process completed") if debug_openai else None + print(f"[{branding}Debug] Transcoded file: {output_file}") if debug_openai else None + return output_file + + +####################### +# Play at the console # +####################### +def play_audio(file_path, volume): + print(f"[{branding}GEN] \033[94m File path is: {file_path}") if debug_tts else None + print(f"[{branding}GEN] \033[94m Volume is: {volume}") if debug_tts else None + normalized_file_path = os.path.normpath(file_path) + print(f"[{branding}GEN] \033[94m Normalized file path is: {normalized_file_path}") if debug_tts else None + directory = os.path.dirname(normalized_file_path) + if os.path.isdir(directory): + print(f"[{branding}GEN] \033[94m Directory contents: {os.listdir(directory)}") if debug_tts else None + else: + print(f"[{branding}GEN] \033[94mError: Directory does not exist: {directory}") if debug_tts else None + if not os.path.isfile(normalized_file_path): + print(f"[{branding}GEN] \033[94mError: File does not exist: {normalized_file_path}\033[0m") if debug_tts else None + return + # Check for AAC format + if normalized_file_path.lower().endswith('.aac'): + print(f"[{branding}GEN] \033[94mPlay Audio : \033[0mAAC format files cannot be played at the console. Please choose another format") + return + try: + print(f"[{branding}GEN] \033[94mPlay Audio : \033[0mPlaying audio at console") + data, fs = sf.read(normalized_file_path) + sd.play(volume * data, fs) + sd.wait() + except Exception as e: + print(f"[{branding}GEN] \033[94mError playing audio file: {e}\033[0m") + +class Request(BaseModel): + # Define the structure of the 'Request' class if needed + pass + + +class TTSGenerator: + @staticmethod + def validate_json_input(json_data: Union[Dict, str]) -> Union[None, str]: + try: + if isinstance(json_data, str): + json_data = json.loads(json_data) + JSONInput(**json_data) + return None # JSON is valid + except ValidationError as e: + return str(e) + +################################################################# +# /api/tts-generate Generation API Endpoint Narration Filtering # +################################################################# +def process_text(text): + # Normalize HTML encoded quotes + text = html.unescape(text) + # Replace ellipsis with a single dot + text = re.sub(r'\.{3,}', '.', text) + # Pattern to identify combined narrator and character speech + combined_pattern = r'(\*[^*"]+\*|"[^"*]+")' + # List to hold parts of speech along with their type + ordered_parts = [] + # Track the start of the next segment + start = 0 + # Find all matches + for match in re.finditer(combined_pattern, text): + # Add the text before the match, if any, as ambiguous + if start < match.start(): + ambiguous_text = text[start:match.start()].strip() + if ambiguous_text: + ordered_parts.append(('ambiguous', ambiguous_text)) + # Add the matched part as either narrator or character + matched_text = match.group(0) + if matched_text.startswith('*') and matched_text.endswith('*'): + ordered_parts.append(('narrator', matched_text.strip('*').strip())) + elif matched_text.startswith('"') and matched_text.endswith('"'): + ordered_parts.append(('character', matched_text.strip('"').strip())) + else: + # In case of mixed or improperly formatted parts + if '*' in matched_text: + ordered_parts.append(('narrator', matched_text.strip('*').strip('"'))) + else: + ordered_parts.append(('character', matched_text.strip('"').strip('*'))) + # Update the start of the next segment + start = match.end() + # Add any remaining text after the last match as ambiguous + if start < len(text): + ambiguous_text = text[start:].strip() + if ambiguous_text: + ordered_parts.append(('ambiguous', ambiguous_text)) + return ordered_parts + +def standard_filtering(text_input): + text_output = (text_input + .replace("***", "") + .replace("**", "") + .replace("*", "") + .replace("\n\n", "\n") + .replace("'", "'") + ) + return text_output + +################################################################# +# /api/tts-generate Generation API Endpoint Narration Combining # +################################################################# +def combine(output_file_timestamp, output_file_name, audio_files, target_sample_rate=44100): + audio = np.array([]) + try: + for audio_file in audio_files: + normalized_audio_file = os.path.normpath(audio_file) + print(f"[{branding}Debug] Processing file: {normalized_audio_file}") if debug_concat else None + # Check if the file exists + if not os.path.isfile(normalized_audio_file): + print(f"[{branding}Debug] Error: File does not exist: {normalized_audio_file}") if debug_concat else None + return None, None + # Read the audio file + audio_data, current_sample_rate = sf.read(normalized_audio_file) + print(f"[{branding}Debug] Read file: {normalized_audio_file}, Sample rate: {current_sample_rate}, Data shape: {audio_data.shape}") if debug_concat else None + # Resample if necessary + if current_sample_rate != target_sample_rate: + print(f"[{branding}Debug] Resampling file from {current_sample_rate} to {target_sample_rate} Hz") if debug_concat else None + audio_data = librosa.resample(audio_data, orig_sr=current_sample_rate, target_sr=target_sample_rate) + # Concatenate audio data + if audio.size == 0: + audio = audio_data + else: + audio = np.concatenate((audio, audio_data)) + if output_file_timestamp: + timestamp = int(time.time()) + output_file_path = os.path.join(this_dir / "outputs" / f'{output_file_name}_{timestamp}_combined.wav') + sf.write(output_file_path, audio, target_sample_rate) + # Legacy API or New API return + if params["api_def"]["api_use_legacy_api"]: + output_file_url = f"http://{api_defaults['api_legacy_ip_address']}:{params['api_def']['api_port_number']}/audio/{output_file_name}_{timestamp}_combined.wav" + output_cache_url = f"http://{api_defaults['api_legacy_ip_address']}:{params['api_def']['api_port_number']}/audiocache/{output_file_name}_{timestamp}_combined.wav" + else: + output_file_url = f'/audio/{output_file_name}_{timestamp}_combined.wav' + output_cache_url = f'/audiocache/{output_file_name}_{timestamp}_combined.wav' + else: + output_file_path = os.path.join(this_dir / "outputs" / f'{output_file_name}_combined.wav') + sf.write(output_file_path, audio, target_sample_rate) + # Legacy API or New API return + if params["api_def"]["api_use_legacy_api"]: + output_file_url = f"http://{api_defaults['api_legacy_ip_address']}:{api_defaults['api_port_number']}/audio/{output_file_name}_combined.wav" + output_cache_url = f"http://{api_defaults['api_legacy_ip_address']}:{api_defaults['api_port_number']}/audiocache/{output_file_name}_combined.wav" + else: + output_file_url = f'/audio/{output_file_name}_combined.wav' + output_cache_url = f'/audiocache/{output_file_name}_combined.wav' + print(f"[{branding}Debug] Output file changed to:", output_file_path) if debug_concat else None + print(f"[{branding}Debug] Output file changed to:", output_file_url) if debug_concat else None + print(f"[{branding}Debug] Output file changed to:", output_cache_url) if debug_concat else None + except Exception as e: + print(f"Error occurred: {e}") + return output_file_path, output_file_url, output_cache_url + +################################## +# Central RVC Generation request # +################################## +def run_rvc(input_tts_path, pth_path, infer_pipeline): + generate_start_time = time.time() + f0up_key = rvc_settings["pitch"] + filter_radius = rvc_settings["filter_radius"] + index_rate = rvc_settings["index_rate"] + rms_mix_rate = rvc_settings["rms_mix_rate"] + protect = rvc_settings["protect"] + hop_length = rvc_settings["hop_length"] + f0method = rvc_settings["f0method"] + split_audio = rvc_settings["split_audio"] + f0autotune = rvc_settings["autotune"] + embedder_model = rvc_settings["embedder_model"] + training_data_size = rvc_settings["training_data_size"] + # Convert path variables to strings + input_tts_path = str(input_tts_path) + pth_path = str(pth_path) + # Check if the model file exists + if not os.path.isfile(pth_path): + print(f"Model file {pth_path} does not exist. Exiting.") + return + # Get the directory of the model file + model_dir = os.path.dirname(pth_path) + # Get the filename of pth_path + pth_filename = os.path.basename(pth_path) + # Find all .index files in the model directory + index_files = [file for file in os.listdir(model_dir) if file.endswith(".index")] + if len(index_files) == 1: + index_path = str(os.path.join(model_dir, index_files[0])) + # Get the filename of index_path + index_filename = os.path.basename(index_path) + index_filename_print = index_filename + index_size_print = training_data_size + elif len(index_files) > 1: + print(f"[{branding}GEN] \033[94mRVC Convert :\033[0m Multiple RVC index files found in the models folder where \033[93m{pth_filename}\033[0m is") + print(f"[{branding}GEN] \033[94mRVC Convert :\033[0m located. Unable to determine which index to use. Continuing without an index file.") + index_path = "" + index_filename = None + index_filename_print = "None used" + index_size_print = "N/A" + else: + index_path = "" + index_filename = None + index_filename_print = "None used" + index_size_print = "N/A" + # Set the output path to be the same as the input path + output_rvc_path = input_tts_path + if debug_rvc: + debug_lines = [ + f"[{branding}Debug] ************************************", + f"[{branding}Debug] run_rvc function called (debug_rvc)", + f"[{branding}Debug] ***********************************", + f"[{branding}Debug] f0up_key : {f0up_key}", + f"[{branding}Debug] filter_radius : {filter_radius}", + f"[{branding}Debug] index_rate : {index_rate}", + f"[{branding}Debug] rms_mix_rate : {rms_mix_rate}", + f"[{branding}Debug] protect : {protect}", + f"[{branding}Debug] hop_length : {hop_length}", + f"[{branding}Debug] f0method : {f0method}", + f"[{branding}Debug] input_tts_path : {input_tts_path}", + f"[{branding}Debug] output_rvc_path : {output_rvc_path}", + f"[{branding}Debug] pth_path : {pth_path}", + f"[{branding}Debug] index_path : {index_path}", + f"[{branding}Debug] split_audio : {split_audio}", + f"[{branding}Debug] f0autotune : {f0autotune}", + f"[{branding}Debug] embedder_model : {embedder_model}", + f"[{branding}Debug] training_data_size: {training_data_size}" + ] + debug_info = "\n".join(debug_lines) + print(debug_info) + # Call the infer_pipeline function + infer_pipeline(f0up_key, filter_radius, index_rate, rms_mix_rate, protect, hop_length, f0method, + input_tts_path, output_rvc_path, pth_path, index_path, split_audio, f0autotune, embedder_model, training_data_size, debug_rvc) + generate_end_time = time.time() + generate_elapsed_time = generate_end_time - generate_start_time + print(f"[{branding}GEN] \033[94mRVC Convert : \033[94mModel: \033[93m{pth_filename} \033[94mIndex: \033[93m{index_filename_print}\033[0m") + print(f"[{branding}GEN] \033[94mRVC Convert : \033[93m{generate_elapsed_time:.2f} seconds. \033[94mMethod: \033[93m{f0method} \033[94mIndex size used \033[93m{index_size_print}\033[0m") + return + +#################################################################### +# /api/tts-generate Generation API Endpoint Narration RVC handling # +#################################################################### +def process_rvc_narrator(part_type, voice_gen, default_model_file, output_file, infer_pipeline): + if voice_gen.lower() in ["disabled", "disable"]: + return + else: + voice_gen_path = this_dir / "models" / "rvc_voices" / voice_gen + pth_path = voice_gen_path if voice_gen else default_model_file + run_rvc(output_file, pth_path, infer_pipeline) + +############################################################# +# /api/tts-generate Generation API Endpoint JSON validation # +############################################################# +class JSONInput(BaseModel): + text_input: str = Field(..., max_length=int(api_defaults["api_max_characters"]), description=f"text_input needs to be {api_defaults['api_max_characters']} characters or less.") + text_filtering: str = Field(..., pattern="^(none|standard|html)$", description="text_filtering needs to be 'none', 'standard' or 'html'.") + character_voice_gen: str = Field(..., pattern=r'^[\(\)a-zA-Z0-9\_\-./\s]+$', description="character_voice_gen needs to be the name of a valid voice for the loaded TTS engine.") + rvccharacter_voice_gen: str = Field(..., description="rvccharacter_voice_gen needs to be the name of a valid pth file in the 'folder\\file.pth' format or the word 'Disabled'.") + narrator_enabled: str = Field(..., pattern="^(true|false|silent)$", description="narrator_enabled needs to be 'true', 'false' or 'silent'.") + narrator_voice_gen: str = Field(..., pattern=r'^[\(\)a-zA-Z0-9\_\-./\s]+$', description="character_voice_gen needs to be the name of a valid voice for the loaded TTS engine.") + rvcnarrator_voice_gen: str = Field(..., description="rvcnarrator_voice_gen needs to be the name of a valid pth file in the 'folder\\file.pth' format or the word 'Disabled'.") + text_not_inside: str = Field(..., pattern="^(character|narrator|silent)$", description="text_not_inside needs to be 'character', 'narrator' or 'silent'.") + language: str = Field(..., pattern="^(ar|zh-cn|cs|nl|en|fr|de|hu|hi|it|ja|ko|pl|pt|ru|es|tr)$", description="language needs to be one of the following: ar, zh-cn, cs, nl, en, fr, de, hu, hi, it, ja, ko, pl, pt, ru, es, tr.") + output_file_name: str = Field(..., pattern="^[a-zA-Z0-9_]+$", description="output_file_name needs to be the name without any special characters or file extension, e.g., 'filename'.") + output_file_timestamp: bool = Field(..., description="output_file_timestamp needs to be true or false.") + autoplay: bool = Field(..., description="autoplay needs to be a true or false value.") + autoplay_volume: float = Field(..., ge=0.1, le=1.0, description="autoplay_volume needs to be from 0.1 to 1.0.") + speed: float = Field(..., ge=0.25, le=2.0, description="speed needs to be between 0.25 and 2.0.") + pitch: float = Field(..., ge=-10, le=10, description="pitch needs to be between -10 and 10.") + temperature: float = Field(..., ge=0.1, le=1.0, description="temperature needs to be between 0.1 and 1.0.") + repetition_penalty: float = Field(..., ge=1.0, le=20.0, description="repetition_penalty needs to be between 1.0 and 20.0.") + + @classmethod + def validate_autoplay_volume(cls, value): + if not (0.1 <= value <= 1.0): + raise ValueError("Autoplay volume must be between 0.1 and 1.0") + return value + + def validate_rvccharacter_voice_gen(cls, v): + if v.lower() == "disabled": + return v + pattern = re.compile(r'^.*\.(pth)$') + if not pattern.match(v): + raise ValueError("rvccharacter_voice_gen needs to be the name of a valid pth file in the 'folder\\file.pth' format or 'Disabled'.") + return v + + def validate_rvccharacter_voice_gen(cls, v): + if v.lower() == "disabled": + return v + pattern = re.compile(r'^.*\.(pth)$') + if not pattern.match(v): + raise ValueError("rvcnarrator_voice_gen needs to be the name of a valid pth file in the 'folder\\file.pth' format or 'Disabled'.") + return v + +def validate_json_input(json_input_data): + try: + JSONInput(**json_input_data) + except ValidationError as e: + error_messages = [] + for error in e.errors(): + field = error["loc"][0] + description = JSONInput.__fields__[field].description + error_messages.append(f"{field}: {description}") + error_message = "\n".join(error_messages) + print(f"[{branding}API] \033[91mError with API request:\033[0m", error_message) + return error_message + return None + +############################################################### +# /api/tts-generate Generation API Endpoint pull fresh values # +############################################################### +def get_api_text_filtering(): + return api_defaults["api_text_filtering"] +def get_api_narrator_enabled(): + return api_defaults["api_narrator_enabled"] +def get_api_text_not_inside(): + return api_defaults["api_text_not_inside"] +def get_api_language(): + return api_defaults["api_language"] +def get_api_output_file_name(): + return api_defaults["api_output_file_name"] +def get_api_output_file_timestamp(): + return api_defaults["api_output_file_timestamp"] +def get_api_autoplay(): + return api_defaults["api_autoplay"] +def get_api_autoplay_volume(): + return api_defaults["api_autoplay_volume"] +def get_params_speed(): + return model_engine.generationspeed_set +def get_params_temperature(): + return model_engine.temperature_set +def get_params_repetition(): + return model_engine.repetitionpenalty_set +def get_params_pitch(): + return model_engine.pitch_set +def get_character_voice_gen(): + return model_engine.def_character_voice +def get_rvccharacter_voice_gen(): + return rvc_settings["rvc_char_model_file"] +def get_narrator_voice_gen(): + return model_engine.def_narrator_voice +def get_rvcnarrator_voice_gen(): + return rvc_settings["rvc_narr_model_file"] + +############################################# +# /api/tts-generate Generation API Endpoint # +############################################# +@app.post("/api/tts-generate", response_class=JSONResponse) +async def apifunction_generate_tts_standard( + text_input: str = Form(...), + text_filtering: str = Form(None), + character_voice_gen: str = Form(None), + rvccharacter_voice_gen: str = Form(None), + narrator_enabled: str = Form(None), + narrator_voice_gen: str = Form(None), + rvcnarrator_voice_gen: str = Form(None), + text_not_inside: str = Form(None), + language: str = Form(None), + output_file_name: str = Form(None), + output_file_timestamp: bool = Form(None), + autoplay: bool = Form(None), + autoplay_volume: float = Form(None), + streaming: bool = Form(False), + speed: float = Form(None), + temperature: float = Form(None), + repetition_penalty: float = Form(None), + pitch: float = Form(None), + _text_filtering: str = Depends(get_api_text_filtering), + _character_voice_gen: str = Depends(get_character_voice_gen), + _rvccharacter_voice_gen: str = Depends(get_rvccharacter_voice_gen), + _narrator_enabled: str = Depends(get_api_narrator_enabled), + _narrator_voice_gen: str = Depends(get_narrator_voice_gen), + _rvcnarrator_voice_gen: str = Depends(get_rvcnarrator_voice_gen), + _text_not_inside: str = Depends(get_api_text_not_inside), + _language: str = Depends(get_api_language), + _output_file_name: str = Depends(get_api_output_file_name), + _output_file_timestamp: bool = Depends(get_api_output_file_timestamp), + _autoplay: bool = Depends(get_api_autoplay), + _autoplay_volume: float = Depends(get_api_autoplay_volume), + _speed: float = Depends(get_params_speed), + _temperature: float = Depends(get_params_temperature), + _repetition_penalty: float = Depends(get_params_repetition), + _pitch: float = Depends(get_params_pitch), +): + if debug_tts or debug_tts_variables: + debug_lines = [ + f"[{branding}Debug] *******************************************************", + f"[{branding}Debug] /api/tts_generate function called (debug_tts_variables)", + f"[{branding}Debug] **** PRE validation checks ****", + f"[{branding}Debug] *******************************************************", + f"[{branding}Debug] Defaults will be pulled from Settings if not specified in API Request!", + f"[{branding}Debug] max_characters : {api_defaults['api_max_characters']}", + f"[{branding}Debug] length_stripping : {api_defaults['api_length_stripping']}", + f"[{branding}Debug] legacy_api : {api_defaults['api_use_legacy_api']}", + f"[{branding}Debug] legacy_api IPadd : {api_defaults['api_legacy_ip_address']}", + f"[{branding}Debug] allowed_filter : {api_defaults['api_allowed_filter']}", + f"[{branding}Debug] text_filtering : {text_filtering}", + f"[{branding}Debug] character_voice_gen : {character_voice_gen}", + f"[{branding}Debug] rvccharacter_voice_gen : {rvccharacter_voice_gen}", + f"[{branding}Debug] narrator_enabled : {narrator_enabled}", + f"[{branding}Debug] narrator_voice_gen : {narrator_voice_gen}", + f"[{branding}Debug] rvcnarrator_voice_gen : {rvcnarrator_voice_gen}", + f"[{branding}Debug] text_not_inside : {text_not_inside}", + f"[{branding}Debug] language : {language}", + f"[{branding}Debug] output_file_name : {output_file_name}", + f"[{branding}Debug] output_file_timestamp : {output_file_timestamp}", + f"[{branding}Debug] autoplay : {autoplay}", + f"[{branding}Debug] autoplay_volume : {autoplay_volume}", + f"[{branding}Debug] streaming : {streaming}", + f"[{branding}Debug] speed : {speed}", + f"[{branding}Debug] temperature : {temperature}", + f"[{branding}Debug] repetition_penalty : {repetition_penalty}", + f"[{branding}Debug] pitch : {pitch}" + ] + debug_info = "\n".join(debug_lines) + print(debug_info) + text_filtering = text_filtering or _text_filtering + character_voice_gen = character_voice_gen or _character_voice_gen + rvccharacter_voice_gen = rvccharacter_voice_gen or _rvccharacter_voice_gen + narrator_enabled = narrator_enabled or _narrator_enabled # NEED TO COME BACK AND LOOK AT THIS!!! + narrator_voice_gen = narrator_voice_gen or _narrator_voice_gen + rvcnarrator_voice_gen = rvcnarrator_voice_gen or _rvcnarrator_voice_gen + text_not_inside = text_not_inside or _text_not_inside + language = language or _language + output_file_name = output_file_name or _output_file_name + output_file_timestamp = output_file_timestamp if output_file_timestamp is not None else _output_file_timestamp + autoplay = autoplay if autoplay is not None else _autoplay + autoplay_volume = autoplay_volume or _autoplay_volume + speed = speed or _speed + temperature = temperature or _temperature + repetition_penalty = repetition_penalty or _repetition_penalty + pitch = pitch or _pitch + try: + json_input_data = { + "text_input": text_input, + "text_filtering": text_filtering, + "character_voice_gen": character_voice_gen, + "rvccharacter_voice_gen": rvccharacter_voice_gen, + "narrator_enabled": narrator_enabled, + "narrator_voice_gen": narrator_voice_gen, + "rvcnarrator_voice_gen": rvcnarrator_voice_gen, + "text_not_inside": text_not_inside, + "language": language, + "output_file_name": output_file_name, + "output_file_timestamp": output_file_timestamp, + "autoplay": autoplay, + "autoplay_volume": autoplay_volume, + "streaming": streaming, + "speed": speed, + "temperature": temperature, + "repetition_penalty": repetition_penalty, + "pitch": pitch, + } + JSONresult = validate_json_input(json_input_data) + if JSONresult is None: + pass + else: + return JSONResponse(content={"error": JSONresult}, status_code=400) + + if debug_tts or debug_tts_variables: + debug_lines = [ + f"[{branding}Debug] *******************************************************", + f"[{branding}Debug] /api/tts_generate function called (debug_tts_variables)", + f"[{branding}Debug] **** POST validation checks ****", + f"[{branding}Debug] *******************************************************", + f"[{branding}Debug] Defaults will be pulled from Settings if not specified in API Request!", + f"[{branding}Debug] max_characters : {api_defaults['api_max_characters']}", + f"[{branding}Debug] length_stripping : {api_defaults['api_length_stripping']}", + f"[{branding}Debug] legacy_api : {api_defaults['api_use_legacy_api']}", + f"[{branding}Debug] legacy_api IPadd : {api_defaults['api_legacy_ip_address']}", + f"[{branding}Debug] allowed_filter : {api_defaults['api_allowed_filter']}", + f"[{branding}Debug] text_filtering : {text_filtering}", + f"[{branding}Debug] character_voice_gen : {character_voice_gen}", + f"[{branding}Debug] rvccharacter_voice_gen : {rvccharacter_voice_gen}", + f"[{branding}Debug] narrator_enabled : {narrator_enabled}", + f"[{branding}Debug] narrator_voice_gen : {narrator_voice_gen}", + f"[{branding}Debug] rvcnarrator_voice_gen : {rvcnarrator_voice_gen}", + f"[{branding}Debug] text_not_inside : {text_not_inside}", + f"[{branding}Debug] language : {language}", + f"[{branding}Debug] output_file_name : {output_file_name}", + f"[{branding}Debug] output_file_timestamp : {output_file_timestamp}", + f"[{branding}Debug] autoplay : {autoplay}", + f"[{branding}Debug] autoplay_volume : {autoplay_volume}", + f"[{branding}Debug] streaming : {streaming}", + f"[{branding}Debug] speed : {speed}", + f"[{branding}Debug] temperature : {temperature}", + f"[{branding}Debug] repetition_penalty : {repetition_penalty}", + f"[{branding}Debug] pitch : {pitch}" + ] + debug_info = "\n".join(debug_lines) + print(debug_info) + if narrator_enabled.lower() == "silent" and text_not_inside.lower() == "silent": + print(f"[{branding}GEN] \033[92mBoth Narrator & Text-not-inside are set to \033[91msilent\033[92m. If you get no TTS, this is why.\033[0m") + if narrator_enabled.lower() in ["true", "silent"]: + if model_engine.lowvram_enabled and model_engine.device == "cpu": + await model_engine.handle_lowvram_change() + model_engine.tts_narrator_generatingtts = True + print(f"[{branding}Debug] Moved into Narrator") if debug_tts else None + print(f"[{branding}Debug] original text : {text_input}") if debug_tts else None + processed_parts = process_text(text_input) + audio_files_all_paragraphs = [] + for part_type, part in processed_parts: + # Skip parts that are too short + if len(part.strip()) <= int(params["api_def"]["api_length_stripping"]): + continue + # Determine the voice to use based on the part type + if part_type == 'narrator': + if narrator_enabled.lower() == "silent": + print(f"[{branding}GEN] \033[95mNarrator Silent:\033[0m", part) # Green + continue # Skip generating audio for narrator parts if set to "silent" + voice_to_use = narrator_voice_gen + print(f"[{branding}GEN] \033[92mNarrator:\033[0m", part) # Purple + elif part_type == 'character': + voice_to_use = character_voice_gen + print(f"[{branding}GEN] \033[36mCharacter:\033[0m", part) # Yellow + else: + # Handle ambiguous parts based on user preference + if text_not_inside == "silent": + print(f"[{branding}GEN] \033[95mText-not-inside Silent:\033[0m", part) # Purple + continue # Skip generating audio for ambiguous parts if set to "silent" + voice_to_use = character_voice_gen if text_not_inside == "character" else narrator_voice_gen + voice_description = "\033[36mCharacter (Text-not-inside)\033[0m" if text_not_inside == "character" else "\033[92mNarrator (Text-not-inside)\033[0m" + print(f"[{branding}GEN] {voice_description}:", part) + # Replace multiple exclamation marks, question marks, or other punctuation with a single instance + cleaned_part = re.sub(r'([!?.])\1+', r'\1', part) + # Further clean to remove any other unwanted characters + cleaned_part = re.sub(rf'{api_defaults["api_allowed_filter"]}', '', cleaned_part) + print(f"[{branding}Debug] text after api_allowed: {text_input}") if debug_tts else None + # Remove all newline characters (single or multiple) + cleaned_part = re.sub(r'\n+', ' ', cleaned_part) + output_file = this_dir / output_directory / f'{output_file_name}_{uuid.uuid4()}_{int(time.time())}.{model_engine.audio_format}' + output_file_str = output_file.as_posix() + response = await generate_audio(cleaned_part, voice_to_use, language,temperature, repetition_penalty, speed, pitch, output_file_str, streaming) + audio_path = output_file_str + if rvc_settings["rvc_enabled"]: + if part_type == 'character': + process_rvc_narrator(part_type, rvccharacter_voice_gen, rvc_settings["rvc_char_model_file"], output_file, infer_pipeline) + elif part_type == 'narrator': + process_rvc_narrator(part_type, rvcnarrator_voice_gen, rvc_settings["rvc_narr_model_file"], output_file, infer_pipeline) + else: + if text_not_inside == 'character': + process_rvc_narrator('character', rvccharacter_voice_gen, rvc_settings["rvc_char_model_file"], output_file, infer_pipeline) + elif text_not_inside == 'narrator': + process_rvc_narrator('narrator', rvcnarrator_voice_gen, rvc_settings["rvc_narr_model_file"], output_file, infer_pipeline) + print(f"[{branding}Debug] Appending audio path to list") if debug_tts else None + audio_files_all_paragraphs.append(audio_path) + # Combine audio files across paragraphs + model_engine.tts_narrator_generatingtts = False + print(f"[{branding}Debug] Narrator sending to combine") if debug_tts else None + output_file_path, output_file_url, output_cache_url = combine(output_file_timestamp, output_file_name, audio_files_all_paragraphs) + # Transcode audio if necessary + model_audio_format = str(model_engine.audio_format).lower() + output_audio_format = str(params["transcode_audio_format"]).lower() + if output_audio_format == "disabled": + pass + else: + if model_audio_format != output_audio_format and not model_engine.tts_narrator_generatingtts: + print(f"[{branding}Debug] Pre Transcode call - Output file: {output_file_path}") if debug_tts else None + output_file_path, output_file_url, output_cache_url = await transcode_audio_if_necessary(output_file_path, model_audio_format, output_audio_format) + print(f"[{branding}Debug] Post Transcode call - Output file: {output_file_path}") if debug_tts else None + if sounddevice_installed == False: + autoplay = False + if autoplay: + play_audio(output_file_path, autoplay_volume) + # Move model back to cpu system ram if needed. + if model_engine.lowvram_enabled and model_engine.device == "cuda" and model_engine.lowvram_capable: + await model_engine.handle_lowvram_change() + return JSONResponse(content={"status": "generate-success", "output_file_path": str(output_file_path), "output_file_url": str(output_file_url), "output_cache_url": str(output_cache_url)}, status_code=200) + else: + print(f"[{branding}Debug] Moved into Standard generation") if debug_tts else None + print(f"[{branding}Debug] original text : {text_input}") if debug_tts else None + if output_file_timestamp: + timestamp = int(time.time()) + # Generate a standard UUID + original_uuid = uuid.uuid4() + # Hash the UUID using SHA-256 + hash_object = hashlib.sha256(str(original_uuid).encode()) + hashed_uuid = hash_object.hexdigest() + # Truncate to the desired length, for example, 16 characters + short_uuid = hashed_uuid[:5] + output_file_path = this_dir / output_directory / f'{output_file_name}_{timestamp}{short_uuid}.{model_engine.audio_format}' + #Legacy API or New API return + if params["api_def"]["api_use_legacy_api"]: + output_file_url = f'http://{api_defaults["api_legacy_ip_address"]}:{api_defaults["api_port_number"]}/audio/{output_file_name}_{timestamp}{short_uuid}.{model_engine.audio_format}' + output_cache_url = f'http://{api_defaults["api_legacy_ip_address"]}:{api_defaults["api_port_number"]}/audiocache/{output_file_name}_{timestamp}{short_uuid}.{model_engine.audio_format}' + else: + output_file_url = f'/audio/{output_file_name}_{timestamp}{short_uuid}.{model_engine.audio_format}' + output_cache_url = f'/audiocache/{output_file_name}_{timestamp}{short_uuid}.{model_engine.audio_format}' + else: + output_file_path = this_dir / output_directory / f"{output_file_name}.{model_engine.audio_format}" + # Legacy API or New API return + if params["api_def"]["api_use_legacy_api"]: + output_file_url = f'http://{api_defaults["api_legacy_ip_address"]}:{api_defaults["api_port_number"]}/audio/{output_file_name}.{model_engine.audio_format}' + output_cache_url = f'http://{api_defaults["api_legacy_ip_address"]}:{api_defaults["api_port_number"]}/audiocache/{output_file_name}.{model_engine.audio_format}' + else: + output_file_url = f'/audio/{output_file_name}.{model_engine.audio_format}' + output_cache_url = f'/audiocache/{output_file_name}.{model_engine.audio_format}' + if text_filtering == "html": + cleaned_string = html.unescape(standard_filtering(text_input)) + cleaned_string = re.sub(r'([!?.])\1+', r'\1', cleaned_string) + # Further clean to remove any other unwanted characters + cleaned_string = re.sub(rf'{api_defaults["api_allowed_filter"]}', '', cleaned_string) + print(f"[{branding}Debug] HTML Filtering - text after api_allowed: {cleaned_string}") if debug_tts else None + # Remove all newline characters (single or multiple) + cleaned_string = re.sub(r'\n+', ' ', cleaned_string) + elif text_filtering == "standard": + cleaned_string = re.sub(r'([!?.])\1+', r'\1', text_input) + # Further clean to remove any other unwanted characters + cleaned_string = re.sub(rf'{api_defaults["api_allowed_filter"]}', '', cleaned_string) + print(f"[{branding}Debug] Standard Filtering - text after api_allowed: {cleaned_string}") if debug_tts else None + # Remove all newline characters (single or multiple) + cleaned_string = re.sub(r'\n+', ' ', cleaned_string) + else: + print(f"[{branding}Debug] No filtering text : {text_input}") if debug_tts else None + cleaned_string = text_input + print(f"[{branding}GEN]", cleaned_string) + print(f"[{branding}Debug] Sending request to generate_audio in tts_server.py") if debug_tts else None + try: + if streaming: + response = await generate_audio(cleaned_string, character_voice_gen, language, temperature, repetition_penalty, speed, pitch, output_file_path, streaming) + return StreamingResponse(response, media_type="audio/wav") + else: + response = await generate_audio(cleaned_string, character_voice_gen, language, temperature, repetition_penalty, speed, pitch, output_file_path, streaming) + if rvc_settings["rvc_enabled"]: + if rvccharacter_voice_gen.lower() in ["disabled", "disable"]: + print(f"[{branding}Debug] Pass rvccharacter_voice_gen") if debug_tts else None + pass # Skip RVC processing for character part + else: + print(f"[{branding}Debug] send to rvc") if debug_tts else None + rvccharacter_voice_gen = this_dir / "models" / "rvc_voices" / rvccharacter_voice_gen + pth_path = rvccharacter_voice_gen if rvccharacter_voice_gen else rvc_settings["rvc_char_model_file"] + run_rvc(output_file_path, pth_path, infer_pipeline) + # Transcode audio if necessary + model_audio_format = str(model_engine.audio_format).lower() + output_audio_format = str(params["transcode_audio_format"]).lower() + print(f"[{branding}Debug] At Model audio format") if debug_tts else None + if output_audio_format == "disabled": + pass + else: + if model_audio_format != output_audio_format and not model_engine.tts_narrator_generatingtts: + print(f"[{branding}Debug] Pre Transcode call - Output file: {output_file_path}") if debug_tts else None + output_file_path, output_file_url, output_cache_url = await transcode_audio_if_necessary(output_file_path, model_audio_format, output_audio_format) + print(f"[{branding}Debug] Post Transcode call - Output file: {output_file_path}") if debug_tts else None + if sounddevice_installed == False: + autoplay = False + if autoplay: + play_audio(output_file_path, autoplay_volume) + return JSONResponse(content={"status": "generate-success", "output_file_path": str(output_file_path), "output_file_url": str(output_file_url), "output_cache_url": str(output_cache_url)}, status_code=200) + except Exception as e: + return JSONResponse(content={"status": "generate-failure", "error": "An error occurred"}, status_code=500) + except Exception as e: + return JSONResponse(content={"status": "generate-failure", "error": "An error occurred"}, status_code=500) + +############################# +#### Word Add-in Sharing #### +############################# +# Mount the static files from the 'word_addin' directory +app.mount("/api/word_addin", StaticFiles(directory=os.path.join(this_dir / 'system' / 'word_addin')), name="word_addin") + +############################################# +#### TTS Generator Comparision Endpoints #### +############################################# +import aiofiles +class TTSItem(BaseModel): + id: int + fileUrl: str + text: str + characterVoice: str + language: str + +class TTSData(BaseModel): + ttsList: List[TTSItem] + +@app.post("/api/save-tts-data") +async def apifunction_save_tts_data(tts_data: List[TTSItem]): + # Convert the list of Pydantic models to a list of dictionaries + tts_data_list = [item.dict() for item in tts_data] + # Serialize the list of dictionaries to a JSON string + tts_data_json = json.dumps(tts_data_list, indent=4) + async with aiofiles.open(this_dir / output_directory / "ttsList.json", 'w') as f: + await f.write(tts_data_json) + return {"message": "Data saved successfully"} + +######################################## +# Trigger TTS Gen Text/Speech Analysis # +######################################## +@app.get("/api/trigger-analysis") +async def apifunction_trigger_analysis(threshold: int = Query(default=98)): + venv_path = sys.prefix + env = os.environ.copy() + env["PATH"] = os.path.join(venv_path, "bin") + ":" + env["PATH"] + ttslist_path = this_dir / output_directory / "ttsList.json" + wavfile_path = this_dir / output_directory + subprocess.run(["python", "tts_diff.py", f"--threshold={threshold}", f"--ttslistpath={ttslist_path}", f"--wavfilespath={wavfile_path}"], cwd=this_dir / "system" / "tts_diff", env=env) + # Read the analysis summary + try: + with open(this_dir / output_directory / "analysis_summary.json", "r") as summary_file: + summary_data = json.load(summary_file) + except FileNotFoundError: + summary_data = {"error": "Analysis summary file not found."} + return {"message": "Analysis Completed", "summary": summary_data} + +########################################### +# TTS Generator SRT Subtitiles generation # +########################################### +@app.get("/api/srt-generation") +async def apifunction_srt_generation(): + venv_path = sys.prefix + env = os.environ.copy() + env["PATH"] = os.path.join(venv_path, "bin") + ":" + env["PATH"] + ttslist_path = this_dir / output_directory / "ttsList.json" + wavfile_path = this_dir / output_directory + subprocess.run(["python", "tts_srt.py", f"--ttslistpath={ttslist_path}", f"--wavfilespath={wavfile_path}"], cwd=this_dir / "system" / "tts_srt", env=env) + srt_file_path = this_dir / output_directory / "subtitles.srt" + if not srt_file_path.exists(): + raise HTTPException(status_code=404, detail="Subtitle file not found.") + return FileResponse(path=srt_file_path, filename="subtitles.srt", media_type='application/octet-stream') + +################################# +# Static Mount for file serving # +################################# +app.mount("/static", StaticFiles(directory=str(this_dir / "system")), name="static") + +######################################## +# Legacy JSON update settings function # +######################################## +# Setup logging +logging.basicConfig(level=logging.DEBUG) +def get_json_data(): + with open(this_dir / "confignew.json", "r") as json_file: + data = json.load(json_file) + return data + +@app.get("/settings") +async def get_settings(request: Request): + data = get_json_data() + return templates.TemplateResponse("admin.html", {"request": request, "data": data}) + +@app.get("/settings-json") +async def get_settings_json(): + return get_json_data() + +@app.post("/update-settings") +async def update_settings( + request: Request, + delete_output_wavs: str = Form(...), + gradio_interface: str = Form(...), + gradio_port_number: int = Form(...), + api_port_number: int = Form(...), +): + data = get_json_data() + # Update the settings based on the form values + data["delete_output_wavs"] = delete_output_wavs + data["gradio_interface"] = gradio_interface.lower() == 'true' + data["gradio_port_number"] = gradio_port_number + data["api_def"]["api_port_number"] = api_port_number + # Save the updated settings back to the JSON file + with open(this_dir / "confignew.json", "w") as json_file: + json.dump(data, json_file, indent=4) + # Redirect to the settings page to display the updated settings + return templates.TemplateResponse("admin.html", {"request": request, "data": data}) + +# Create an instance of Jinja2Templates for rendering HTML templates +templates = Jinja2Templates(directory=this_dir / "system") +# Get the admin interface template +template = templates.get_template("admin.html") +# Render the template with the dynamic values +rendered_html = template.render(params=params) + +################################################### +#### Webserver Startup & Initial model Loading #### +################################################### +@app.get("/") +async def read_root(): + return HTMLResponse(content=rendered_html, status_code=200) + +# Start Uvicorn Webserver +port_parameter = int(params["api_def"]["api_port_number"]) + +if __name__ == "__main__": + import uvicorn + + # Start Uvicorn Webserver + uvicorn_server = uvicorn.run(app, host="0.0.0.0", port=port_parameter, log_level="debug") + diff --git a/voices/Arnold.wav b/voices/Arnold.wav new file mode 100644 index 0000000000000000000000000000000000000000..cccdf013c0fb693b82a00616dd0efd00971b6b4b GIT binary patch literal 896968 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

xu! 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 tkMqgJ^SuNoOn*WD2J$;GEViV z3t)Yhly8FInkuaV>zRlli6uurAoEL(18NP}rf!_HZZqHP?#Mx;L<)opQm36eTC&YH#DBgxI^$7O!^!sRXR{3cA!<8 zJUAv$0}adz!M9}LGl7%AOLW5$(~s-; z5HITwU~C^^QW|3f^~+2{uA`nXlRQ(!*r2Dw6RbOtCKE`y!65Zcp)N2G9>`s*C|JnH zb_^=q71{lz6#tT*iB;v5Qc*lZwfdx4?RcKemZ`q#25KL4 z2j9YIdZ4VKipt?=jE=$`)# zJHKbH`?9;JyRv(S>yE25kzhSldTwV|yz>H%UXB?Kulg9R)WvjRCyBAc)!*=%YAXYk zSh*}dqZx6K%?sB!EpMCUlJa@@TJy*=OW`I|WRLw!+yI8z03T{F#fY?zumNcXPt0Mt z;WV8kf5n(ts6j^>2aFGTF{2_lZeYN9!qMoq zzQ%~8!tqe&)JKE19-Nt*p{shCP+5JkHaFBZ*jZ~47=XTWfnazbX>hoILZE}c12KFP z-V>bz3BH&9LH>4u$iUY?7*mn?RM9hnWwm13W37w!i)URfG&1yoN!m+(Wz|zqJI}=3 zbQ@kmwh=TknobZPk!;C}afj33vK>Zs*bZOyNVdG|;MHHZO2T|94R52l{nc7a-BlE2 zh!u%gR5nu!n14KGCOCs#YAtqArHOhL`{1AKNn66pNYCb>Gkp41;8cq-t18EYVKaEc z=5)%B$=+GGXGPe#CFNHuyk2X-&G_CFn-I> zgs2URQZ=6#QRWx8S{}0&c*>sU-|T9afjKJ7nbs`_o6|XV19$|tg-vW+&VU!F00U|h z`|U__*c!fSezp*PbDNcwSYMH?Bj`+Y#@?{)iwAvF0dDL}FeKNML5h!C*Trc&X1fZx z(vY9CxZ_-g>%7bFx=W=z-F4Y{##x`PI@}qD@?mqwTlJMXhYeH=x3mwwpR?6TI6hxh zOFJ?%+3G<>)y*-UDP<12o(=R^A~_(bavr5&9X+1k-Ewe#eL=kz;rH%Lybpsat_e2i1-OSn;z;Hv zSIk^i24jFxnc3JzJR6enq}OXtw70?3+TOsuz#jh-e{cU{6mBp0Ur}AxWU_S}Kfz*n zalZ+M!Ct+l?FrqbzDlQGp{iPr*XRi*K-oqaCBvt7tCJ5`OWrK2WwhaZr+rDRx`IbF-fSMAfK2P-pnlY2%X;x#xGo1}> zfO%L(t0w3O8BLsWI7?3gFR}qGmT~OpMzRqY2QFg?J0lI=VhRwv-(ZWUVy|=+K1sv> zpUMm3NRVYdCZ*ZP`SJ9=%cNQ0qhGK$NDq>02g;8-h0UC_i|n~u;SXPnJzgmg7|r>; zC6V?kJ1~Nk4K2yK&2D)lTfp1)7%;IT*s6>KM}E<&MqDT%mJ&ZxL0n|g+RMGx z-6(8OSpD#Z;hE^y>V);gH#%+jU#MYU@jUa$?jr7U^wL#OgqaP>Z3}3xwcu-pg9%Fp zV!jxVLJ;_MzP{aAbWHwqT4rXNpz2a^2 zjJb^+;`C7M&`gw7ifcOB#{+{KgDp|Veixj|JoX5Dv3RDPxlkc!%Y?uwt`xel?dv6d z6=ivibXope-c5cCC_9;mJ*Ce5fVNQ&YH%0btl(_mYVWG!uI29N>FIHXrJ!S;iu?EC zup(h4@HF`28Rm(h3ZLzEx|mle7k#N!l9)lGfRWv}$2Q{#J;zJteF~Z%F-8}5 zsK<=q)Gl?b99A~?zT?>~SA!!wl%8cM7^q6zzn&n;Eby}1;cR4LLh+8BaBW$W?(r25 zQdjwyge_%C_Q!#nG#)BX)h6mPB6D#R;LE^bY%Ol&$%MnyItzX=l`v2|Eff`d2_?ia z@V(awMZ}@h^yLeaqXkAU}8(f)#WNhYBc zv11OEg9BgrCtNEq8MPfQZY`;cT7j9rgQ8Us z9kYDo=V{L7&LOUvE|>eY%Znp*sjwtrXT#=(UBpu$cX(`Aitx9%i2UU_;~s-2Z(CO} z=T%2`$4xa{Jx0cvi~`dps==>tez$>lpMfehnIq#PYWu6I^aqk z5K&UI+gmKUQU6}eNsSe{5`V+l?f){mn=kZ+coDSMCo(ymjZ??;V1SL|3Y1^+2X~<^ zcqdSTEo6`2do~*Fv@3}i6K!1ZKU8%S)nRf5*94rwCxJ>#*>49YFi)Ap)Uy_~!5yOz zQU5KRvU%XinhR&)UUdMypBbk1D0aQw=_BR;VD^BD ze+`0lJyZW_b}c)58y1;W>ykTY*|Lk zw%9$cqHfwR?h!jND{r9IQCm0{IY+sVxVMHq4||JK)mA37SHe<}JvgZs3*6mwnC-N*gX+1PbcE$&#X>L|5$M~khX;}#Q~E$m}I;D6nheSFZWV&{a9 z{!+^uax%Y66{r#TyiG5DIh0&)EJ zFaJs3LEj4$Nqc+Sc&mDgGizDt{pfq@E6rvzc`%YQ@H!YB$`Q)KPV|cYRG+}@?`w|d z?ys`if|aWel63|3XBMk6PbdkvkrJS7Gl5|rCtQZ7d5&%0a&U!bbsrn-5^B8ClO1Jt z$1^@#4>co-zr&S+OiPdPy&M2jlmg|*mC{`FpU%VWIL&TtK6}!5B3o0*7Vn^Qa}o@4 zI_4l1i38uz`REPbcn5hUCm8o)^mZ|1|DE7Qg77vR;$0AK&8X&gfM%`_p0h7V^WLy< zJYWhgu+3Wry7UV3hwoMtXFmqyemJ?S4ww=z{GuNqG2XzFPiy4@Azj`2#g0g)|IUZ@ z%T;zC6^wRxVGRe(z}F$^ulyeU zOz1-B4vI1ox-xmS+*+LG*E~3}*5N*lM8R;5K3{i-lHz(=M;prSY(Q{su$Q((TR{#O zM($0GcFYD8Xd1C~{zF%nxQUK3E1F-y^p+z3Zw6_;j<<_wY(3Ln@HN_KPw_n2MijgP z$14e}pfgO+@_^;;Nnc(NMq^>T=vu*-`p$%+uJE^Q3Q15PScjWIf_Vn!+!FhMH4vO; z5%DiLY>T<$C@Lts7_?eV9>%qsqNe2EK4A4MBU^2Fhyj+7{)xkl0N9U(os6i;2bI=te zOFuMHr;&eSnF?hgD_^A|sE+P!gU~}Tfe}p68-hfwhLYGFtv!C5lbI6a46V`XupJx0 z&ifR*p5>g89M&_l0=i_^;2LH`o9GQ#=%!3=yi5=Kf?5bN5!lNtA`a~)6+~bKc)+9K zpt|9)Y^7c-2oiKP+M$1>0yxbUry9=wa@V^O3mPZz$3&F6XI zzy@l%!)mxA%F&qEFxPR)aTYDi^&o{xJN|a;R$mgO$E(lbaQ9>qTalR3pV+eoOyFB~ zn?r~q>pcc;G^FG zTO32*xSR}skGu5)M#wRIY0`ozykRzDZu9v6k>nj(>21L~z>A@y%n0k{8C;0YM33)a z>Jylee5Swp$=fHe#D|!BS2xqbHQB~}9%1Ywqb3+{jXyk<%OJ(3QnAbhUy@$W4k{rf zo|oT3Z$TSpVlI>i%$Z3Cah1v3E-J(QY`PEPBQ-Cym%jcHm0~57JG<*2L!r1wKP5DdEkRvy4nyeuhoL++j6aprH|rhrQpRt6E4x9Ld7gPd8Pq+7!P=cd zo^8Wvu5DffL0N`Kc#CPrO`_=}YVIj)8^?gr`v*?XC-$m?;gatXH==}?3~bsWl*f;; z*Vszs@j}W#mTAO%ewO?mrPQ?GQ^t}xvZ&9Lrs^ssk2*|o@OvSqxE<9vHtGT8A5?U% zt3AO3uO)K?)kzLh9pyL&W^5B40uRuRU#5Ol8>#ca3zty$vGrNOK7Ii@t>u}oNy>NG zt$gD|4w6&K|ABZoA$?}DKO59(O*U_D>2vy_GnpENOdnjM#95UpTu0;R97-#0<_VjH z_Mj|Z!ex`E$`{x;jja@rT!HEuHhqIWLO zJf|7ctdyq0^zRfXV~t*+AJObS6RvWw;}f|Xd*~Cd!S8tn5`DI{gj-XH2+|bf^024{`X72N7cbW3IG^^Rooi!kw?q3$sqj&D(VQ5~k`b4ewRM1e-^O$E7&_%0~r z;NG@iKT}o7&wmRm|F8#Nqx4j^!6|vc->S2FnW0vo+R)kgT;>$rK@Va&5xzI7gwK^S zAla&_wfJuxwK~{~dg|Y*g*(9_<(kqA{oJu=(g47XMJivA$H7zvsK#u!#wOh-0Z!eCoaHO zh~v*|;F}I*-@2DB;R3z+eWJ(>HnGR8p0G39@UO|NljObnYy+k+vAE3y?F=)+mfXAV zblMw?RjBFYH@@;L)AFPnu*AM=AoIPm7vs`aW3+JW!fFO z$TX)LePniiZxC9s z20ilGzm5Z=o4k_(rd%>^yTDLr%u)6Pn^Vf zI_xLJleO}C7!WPxj`DVD*LrkTh2V94gk^q$?|GGYpBVU6yv^T_q6J)u8RtQMvOa7u zqp1-Cb^-XN$5DH0OAhJ*Q&6#oaSob+ZLPx$c?nLBHd!DW`nt_H59|5+AZDt$O&>~3 z65G-`@NssU>DVC+;4IZ+o1c}q;o|RwtO}f|Yjk9H$x_d)bo6kI$Y;&aCKyS~P63Cy z5jFA*ctO3;G^@th?L`e;7dAjIxOtOcIX2*ZN>Ky$VPi6!_qYm2Ac5}s5`2mQa3{*a zF>ef`WXb0r~@=^mpOxB_gZu z(79*DF(`~3MM3(AR!k6=vSqylbLu7k)%dwH6U#HRvAQLEWCL81{d_602|JS9#Do%T zgr-tw9EEZ4gy??$0k-QC@_IE%ZxyB2qMTVQbt^~N*FSTafe)Bo$&g)P&`%zO9VckP_} z7K~HtA>qT|m8^!>*dKSS%ijPS(-~dC&C$&>83@R#_=F$GOx{2qaxpSskyueR&wv$e zi4`3Lgm`)M)|LgHqAvKcvf#_qMl@0b-b{P=G+n^2*AD+*9js^nfjglWV#6dLuxF#{ zIujL)hUn;P45pB3p{kIYQs9*x2{h?RSfdaR}#u1+n;O^yN1Kav=?0WAI6b5f9D98BqgXR4x3sFSsJ6 z;cFPaX5i~RJ|~Py$~SzLE968is6INRyCV}{3C|vf9AX=wD7zyzQzHsFk7vsH|Mf29 zIbMfu!#jHp)N&&Ht$0X!8RQ!$;`&}#iMsgvaP0kjXxIp_5Z8vbbwKTJE^tv-AtyV+ zqj6me^p)=d0|AXr-2%wPXZU{tNJJ^f_#}!kfE6STpVJHx;AEU^ zRe@vff&c!5$3zdM> zD?u`zhYl-wFJVg#U{A&)-k*iI{w~n(bHTgR5nldWWVTj@523rYW%wTA$qT^CUxNpK z9@4Z6ybDiZZ7M@fYN8$~M2+|**n+gUdOG@zGQp431TxbF_x%ps?%ePSbhWeKn`?;J zVKZ#lE@TuZ;CJgl3+spb0^7L_Hs>0+a6W>Y&IjyH#{VtuU|_D!!jjfUlzkAg^9g+} zE_8}NgZ$mX|2@RhXQG3zGc4Cg{Cz&G+Dv@jVB{)i;!R2za2rA1mB{z+z-hV|wbbMI za~(8oIJ!f&|NnauP`^XrVa|olp8=auJ~ZqsP$e@$tMHZqFCTi zfam!QR)PfM=}>qwWR!reZ)luFg{#8-$UAn$iiFVL(-&M0`OtBFm<5Ux zOdfdm#n8$%(Big;ql!>psD`RSPn?x{>|=kdPzl3@1$Qfh`}u$|HQ;GFA)8x_{ap&w z*CFu2^6{@mWG0KihgJo$I|dr~3?8TtC)!j<&u~c0UdZlx#D$xor+;DLgs;p@#pb@n>WyS_LX8^G$ezz((sv+p!~_8?@TT&U<;vD=UE_7`x% zoWpu7!G3LmjoAEuo|B1?iKTe2^Em%60Yz^^wA~AyaSuFuI=*@$mTH0?2@mcR4F5!Z zSO^B&4!jb3lnQ$@8L!8~qYJ;g2>3*5W?A>+U#*kK+7o1Kp|s-25Ks zWPhCQ+wp#5@QjU+BR_z?ISJSbs-TzM0sTFQ>r41szX3b`9$JL1I#llufQ_OTP*+E= z+s%+6Uyo{6O|07@Sb_(zQkUS#3`RvpiZy?Yll%*Km>iIA6?8BZRw45y2d{_N!XQgc(;zw-N)DiKhE3#pzn)t#a686FL;A$Sd0>`!>^E_5)Q=X z$gow!dDjm(#dg?({@A5Qz~i6Aifl%%r-Td1&J**y;NOcNPuch`k2U4vDW8BZ??3G2 zMQH9w>`E1!k$WJM&tcjBgFiA9pZWq=#r-&K4fu?o&`4jn8uqjjGK&@PCQ|q-9%RUW zKo1XN@AAMlcO7`{hvCvV6T89VAmHO2ht+KlThkNo)-NI-xWM9paokhG@- zQ}B+%pqt-No7;gnpeby!4jJ!A^e|=v+jSmm9R+O60GwGBVZsn!zbhG9c3H%LHvWCOg|X&q#u6?DOYOz~LYFuTG>nFOz+ zJ$$QNcr%BPb5BBN-a`D#cz7N2@Gs+GvyVatlCfJ+u=D3}?-F}D6lX(Acp%TfK-C=f zDGk1-2wG%BPKtyU{Ro%A%1;A#&raw?P1u)G(3F+n{c)i7B!D-{;Y3YD&(vI;oF{O` zPs0gb;!7Sz?fM>nAEH((WF{Bhz%|s#F92aCMYWT{>3$5+NFMSY;A}!>%nTo)8G4(_ zfJNRQ_yzA`3qKo-LqCxh8N*LT-`XE=?qtB9odvI=Ied%0xbJx|mop z5A1ta_!p^=kVdF7Pe5&^HqKWe@{0uI?kVO6#6XJ2;%hH_f|2<59*~GF@GG|Bs~@Ci zDbCCLc#f+$8~&o#;|i=*FI-gv{zu98A|R>~!0gcqGD8B_uY`W?LF` zkpZc!0=X?Yhotz7rSN{HLvGJNYZ+W+!cSk~J^|RyI=I>eOS>5Ieh?Owk0&ePwzA?n zK6b}~2=G4M=P-OD9{jo`c;3=jT^DSr0q1H7pUzdhb3450WLVZo(4o%oBSzxym;XQ0 zeKuC;E_%vF!#5m>x33K@==WHu12|vbLN}$rimFk^^x$M&4S&WAe}N2@h1F?^H_t>? z<|b;dE1-W9aSHc=FQdh-O5nAegjZGs-M#?pGZW_=8A=8Zh7SxvEnu;)Lo3T+1$u)S zjlf>~2YXQRHdVmarThPPXZR4Q@Byx1-D*O!t0GqUi1R-da-l_!!57Hn6ui$I+)W5p z)*8TNj6qzGi8UC3zbWyvN9c|C2_r}UdunO0(BDq)_2hQVcL@2!=Dc4~|8sfhB_>>gbn3lL- zXRP6VJVP#G%Pi>aF#O~qe)2Dv;8x(BN_>moIFJ3nKb83TO7Q)$`1^hM^}}K3SED*~ z30}i;T-y@+-vsxcf)jK%p86*4^9pZp4gdZx7}e6C(M90U8VA3(4eZ(^oZ6GYGu9f< z(Gu%h!Zy|ff0x4w{>3x4z^cF)BOT$;V0y1zvC%x!kWB8gft6l zS%kGy!E)|EweK;W?%9Fb6i~ z4Roq8?q3SOl?U(j6J#S5`cwec*&}$4ZSV-!LcZ!lidREpSZD~C_8Wfg4o47^cUXx@FCp*P_Vcg496HaYBaG5QSBc%!fn@z9z1xTYA< zj}Yr@1=AP_uDHq9L$-XK~GEobBUrrylt2S=fU)kbv`e_V2J!D-Z?N#&3_qRiEHF zRKjXBMg_VRVuTuy!%Eouj?nI&@Rxny#Yux7+Y3^}18?ST=IVtp~J>GvTuD^w|^g4PoOMbc; zQeF+wSxFrE9riL7x>_B6M~P*dh=^t~GJHLuh3U|ejnJVvkmQ@lB^AJ5j>i2PL-NN$ zf*&I$n)d%}U_;pNSopmQ@vdXS<9(VmnT&#jp&`u}jUNo7%7^RC0YKJRJdx z_!{=ng4}}+tNaUAq5-UbA|&$<9a_3_CLp`N~6h(#<%VhQPD@hWv#Vt5FB&HDf@ zm@A?_k{7(P0uc}k3q1t8)=1v)Q7{B{lac-f+}7ZU@Gkykffd+` z%@T{)FNoo{4z%~zMPJJXOfv3;Z0TTWIaw7|Q+0}TgKS9%Syz&wR*=of_^={4M)FzQ z3Tzb#vL*6F%&pW?i|I+;^WH&hB=a9E{z7yNpOZ-ykrJ6~N9b($ia*WYI8ctQ!d3Bu zjWKjg`duuR&XZi^jTZD}&jy#WA@sim(F0f+`Ji#ZGQu`tnPiF3&;KpJH1<#*?j@$D z^bMBfPY7K>+=qJ?+8FeNdLjqALp%`Z%*Fglq4L3bz#^VvD)|2dc5(X! zKlshTF7#Ej8C(p>l8?dX;UL+DPNHiwOGM}RX{t8zT*W2%b=1FK`j%4@=y+xV>Q-wp z$8(EdkZ2dTid%&EeIEGZ#=-6nL@y@|T-B~%uTXm+69>sg$ui-|e_^Mx?U@`po*NN3 zB7D!MCCep;#E&KF@In4%ytxb$F+cL-cufT(VJFImF7l@F9|=;$9!Q&m?&&{@n(jP) zc4$AZYe<30(;9SPW`}O@byRi#4ze4QgYKC@!epHPcLk-z7U5Y$lllJM+$c)TaDm#v z$Y)7`Fdy>dVhvrLaOS?-tEAELz(pJH*p*_HNYWy<#buhty zK+u?%2+ZYh@duenT24NJe}b1rF7=l7_?&kGo!OD{DzbWVi{iNCl=MBi64wL2-I{K~ zxad5l18j#}I!!uU8KvB-sHr#}Jk3S>Zg_2!kGg`I$pu*x`5RHbxTI5iGfw#-I2nd= zJ-F%2EC0)2Z(a>)XK)pjmt~=Ddpjf!9tqbCUIhDiVW47A=Qo2Fw0?+2pIH`Wchm`f z_I=l5^)}tCmnFS7cs4QqjiZuC=7w7dbrQY&kYb|jmt>HjGp}su6SpJWJkU1$(ElQ!3SQ@$ z3nTcQ<);U3X--!ZzGOX~g12-w}SF5&`Aq<*Bhr98`%i59X++*+ox ze-vF0-K!&+px|3Lq+(U`q%{@g{p#R2raBwJHlRxdPO$0n_OdOy{kq;_t$YevsOPa( zdX4`XogVP`I|!Z@<4A88(IX7Ni4E6`==9`q;Dj83}>z%j*xckZXMpJFSz#A=Xb z+3y~guLWC!JAfIvmodMWQRgVdnvsgR!Lxx|PMhbp+vgdGio6^%<=@N4p#O8XtU9Lt z62Yv{f3%Tpi|MwB;EZGuNBrU~5ia8I6=aCo@-7SN^5%!0gck<2;rGEuy#D_9@KKHo z2Ecf^TXjL+R?<+s%3sl+4Hm$$z%FO4hdkH{Cz75fUT2liuMQ>Kzmu6vzwq!2HLi{L``lij&HKG7Wf}Uap&-d(;8S zhibzm`6=mi%?iy@?F7xMP-@s|FYBb-cZk z^elQI6U21pO@U!xUUjM~s(N6maXD9a??I1<^db8^4@_g1g=Bb|Sj1l|jOFK$Pw3I^ z$=)LW&>&A+QF}o#Nimdr>fg;wA}_Ox*>CRVp61jS`m3&q-fr|7*Gg>CWo&n@G1Z6e z;1PRVnh&M4~43SwgHAow@%AU#S^*rAhJ*7eC=X&ckZe`-O=9u%3Xt~CF(9I(k?UB z&{a1!6iya%q>@B0Dm`6vJGiqWD(JkDW|3<&oRA1ReHHUr4itVc%DTQr|Vnb7S zUraVbW6flBtfaeSKDz(??$z#pJ>y&^alBxM?q7AHyh!2W7YbRRA??f^rk{5LaTFXJ z=TXzhmrs>l(mK^66?*wxsygK?PO@6PmwYQ^T_s7X4YFAh1-KvANn3|Lg!_A%y07_; z5lUsG)UW!bS|H*}HlX*Zbm(cgBYmGq2;AmoDr1!YD8I-L^Q(pmxvu`EbUxkCb=A{1 z5aby3d-XiyJVTCnx-gUOPkO+?)dO))gYYx>`lSR@`O5{Rgj)p(qCCMu!4BRas;AfK zh;sbl{T4{oZ*_xJT{XLyTYas@dVM)@;eUs!@OD94m>H6rlN6wA#DCa28bBV#x-jCiKVur`S6p|WQ zX|ckz&h$stTv6LU0Q?tg0!=Zo=q{B?4e~GauNCwVwv%s_w?hBA4zrX$I4gKAcr?DC zE=&8bF<=yPhyBmpey0*>qB-!eYbp;bMyR@}Z-5^lJx^2cG+U9K2YDZ#>Pk(p6h>tX}SSi{xqc*UozRUkcN$_pFD2L8)Y@ubUWKFQ&eFkg6HgjX7E{ zu6TJ~?ZP)eJ#xBpx>Y8zv7vgjq7JZ~oxl@x+BVOzkO+|5Ma!g(v}-j()a8|OQ4YTV zxY`>OpUGsaa^R#D{1$eTL?dGz<`e<3D4pj}m6q36omQLy%EZa+2*km=*}*jTZw)4e zx{3M=Tgc8!W~%!rFQO83(skDz@V%iEz^8ah5G^A3^99EhH{|Q#Rp?xGY%QFWqq)c^ zQ>rucDZ*>$fR7W8klqt3hy>5GqEZD4@m#@$SYvE!!zc4vfAjDyN2+I`rz#Qczt7B6 z(TZgW8Hu$l^`iz*H+@%gd*+0ko9*U6-%v=oOuIb6o@ms}(#~+EJ7?MZ+unIR-u8hm z94BfjexzSyNYNeD-edk!DTM>`&lmd&wqaV%yZl=1k;-#dnV3%(v;iu-X$E2^- z5o*05#6vjc6O;MqE1NAe@@k34^QF>ZqD<*!*$?`AU>rR)@Io$C^_M@B35Z98rTAF> zElGlSh`DA&N9{b_HNh0gIFg|c6<#h#bd0ku(#}z@NYo_kh!_<$gbM{vICRdwu95Ek z%rs6ay&VLTfoAk8GKy_Y zHY0oc(EB7@2{MUM=vkR1DaXreSZtBXi9m)HcH<`N2b~2ZWcvIm? zd36#m>4x*HyUe>P?`!2<`g>h{RaUO-_LL^+E7IS@ZYWje&%pdmFOy%?C~REl*L~4e zi+&Y#S*=n()wa`L<&PDS1=R|5Ki~bnXCLk!sJO38votX6GKF*x<)amksICn4ck|yN z#V4(Ycol^Ssz&OCx`CQ5F(aY|>qh9F+t%3*WWWBi$^P2$3DZYK%AtxVeT=rTv8U^L=E)r4@maTPofui54lObJ@QB=~R}t9D9^O&RrO#nX8@@ zAvZNqo=~nQo{=5$PUP=k>XMC2YmL>SVxp&kfnvPZ=Cx3Bs1)YBzbtY~BNg@K$8dJ( zF(tws$_j7h{|DaE|E2!DHabf`m^<5b~Q+$nCaAd$BQd5gt?>%hHvLJFB)vVgr#+Z>V3vrLCT zgz2i`mbr;R#2pPBw-q>lI8q%E+!JOEe5BomjuA!h1AaMFwsE#yjs)Lk>XfLhFv8Nv z{2_9G)MKGrGSn08Y3QutxJ~V(zlPTFS}Uc>bn^jYBTbR!9rmEGctLT0e=HlXYM^>= zSYkdGnG?}KI!ov-I9%w=d0l8^R*L0__{l5IPWm0{biL3 zRbOp;br1O@MY7wdBSeWL5j=}rnLCZ`C8Ju zNsAw|TDj(-Jid$vytnMCe3?849p2jmA^#C?F*%Jn%g!yykE4%vDzF>1xl8zYZ*OKm z8q}$rsuQ|@wN+(3r7Mux%>`bjDHx-EgFWhEU`*g1a^}y%?|26E&R+_HMO5@sxK4ae zdWhFpkQhE1R0>NtSW1hxqARwSUrAZ~KUq`wonSt?UM7Z@am&~cB1zic8A$nQa=GNP zY_@!Fs3C6x<)Cg*Yv>k%rrbSF9^8)Vf*r`{LE>|Qj_AN`#*qG*=zYuz9{|>~o#3QE z5AOeiycWS>fyVxUoE#Ir+j2a%h}MJaDml1CTwkP=&J}MEwGb~CiqVbi1ebx2|2-rP z4?@qSlX>dzz|{0-hlT}viFOIP^QsD!U^!SVT`Qs_Z6v3H0zn;yV8-}c((b@=?pCOX z|5;K;oFgqQiU>6fcMUuW?!n~KE21Jn20YDF?rZRNuokyRlp)+AIV7nMbWW3SUT7is zzx~K6|3bbf16}p`;4Hc<^Gd`rv*NsDvn*4vHr#``N@WqRd~Ij~Y)DKZ#cf43-vje)mQn z_9*m)WU_iiEr*3y!S5uMEEE@srh<#$g9@s^OgEz2>@HjH) zg`x{UtmI*~+g<)yK|rLHq{!Zb(`mA_SnyaF2PVn3kjRiAN*GZx$pNyEDA7o3g99D& z4ny@&m;31_13SPnI~tt-ns9YqG>gS3XeOBv~p)E(MFcMJ6M zw+WXEy#k|homI@ zH(2MhB9FL~R0Yny9^xiI!Cn&{MW4((AhLS;yQ2m$4*XdKp^?EZp=$vxS0C(Hd+E=# z#kbtshZWFhroYywTcH`MlPTTGhSKBG zS`vXQT5(1>PxD7TOxISMui32qss5=wtD&`OLyGaT(QPv8l?I#ol{yDG@t6FEg3p+A zavMBQqcGE?71M;h}&o%1W@W5p1 z!h-dpjp!PS7nBlp#T1viLUeHP-g8CV`0zsB4Dn6L9_dEuNKt3uderIWaVta1+5ZBY zk&P{l3Q;zuFD>P_7mh#|+#1v_<-DWe7yLYdKzK}?$L}Kg8s5wQD?BH5$V(|H^#S#F zO+~Fs9n>~g9apEQx2n@M-S(@{E`et=Zb zsuM9i;%3BL^B_|f<1dX@6R&ut$d;FtH&s&dhN`OSzw(Nz?lOn0KthUcf?-u8JuY*} zUV??UhT^OAv#dVyEAw~@_}$O}VHF5OUj&ogpB<4 zf+$SmkbrC8AP`p#!N_rvevZiw)tJ(p9ua)y&{nXowEB$3NhEKB(?30+GpBK-4WfTh#pb7@rF`cl8>c4O-@KXRLYdn zGI>|ZwK5aRM3fe#{)#V?u*;Me(MP&nmKE#~`b^&hi=>zA4qRgaNBgf(4stp%#%m=! z-liUlXPqm`wY}J2t(~2ko&7c9OW>>NtKfI1-~Dqfx$g>E=f5kMSWu_1SW7xJKeiCv~lR$S6d)O^!v41>+P%uA!*MV7XVu>6iRT0R&L8r$jH>LiAa z2AO%MSruI_x*+~p{IU2A@dMlPafnNsTBqxzvK#L2(VDzC@iduQA^@ zR5c#a{?%2`=4)GNwYq&eR^Px_WPD^=VKNzC8C&Yo3=SossxIpwYXH7(7e@eJ6dOXi zB#_E!g8yKe^m8CJm+-pr*PvT~kKW1%bU3O}6`UbR5x&5zf${tuyh@Pw%1jg+5hw^$ z6O0fn2DX=y)t0?f+>;+y)>hU8k4G=mKBkv2N(Z-akH9@xF3{IMC6I~;?=GE23c&e0 zk30@$*?9Uo)xziU4)K;F%6QJZI=h>@SmznXKu4ifY&%*cDAE?rD?V8qX+T(v!&+_ijO;vHFw%mIUV z0<({91STC8_Vp0a-uuHl-P^`Tdb5aZ?|9FB?@UJ{XR57&^|Q6Lt%WVpVR4RkMNr2m zLOf8~&YWRhk~A=>Z22MOFIIS6VP)y8GHWblqTlO!=q_u1Yu@YP3~qDfh?JP~F_U7` z;|&RPq9VCeO6Sz~sWZzwF2hTHlibz9kKUxZrmoI^CD;#+J`dp|Zn}rMH+$9+&Ab8M zOy4iE9W@Ht@rxV?s_iD9pe!Y^9jaNg_z;|=BQ&U zW&N)>rr1!tvY55nt+R`qg{r)SJYQ~Pp0PNxsE%u;vlBU!V*Qa^H+0H%z=VLw0zHs= zZ-j{wspO%gv-Fx|x3qy`w|u!~pgP7_*7!Q2FmhEa5xXq$T;h>Z7fLNpoS&ExH!5yi zj4kF?)LqNui0ct4=EY{C@tiSPC)WwJn{o1XG87smrdkGvew(_lrkuQkGF{$I;gcH_ z-{dN#MNvh0P!NR9=&rx77ib!4#wlY}`@vL0t7ofcYL9AHYOibSYENn^srD(KOB>75Bo;|W z^w5q&XJjQHEHHgD_y#dYc5q&(6!;>hfP1qGYK~k$&h-Yzau!_)+_+!qFZ6fXOlA4j z5%oPfx4>P~)zWp-RnaxX^~lM0C%NW&)b2CHZjTpvv!=uq*qJu&Y*%OJ7smqoW2>)d zY>~TQcF};s+14S&ot%5^dG1NB1LQZ~Nv0A!mW9+kay41ocgQF7UMBi`j=HB2PR}#4 zI{AsA>Aj4C8PC>acVO<&er7WL4h)}<1Eql~7Y6FHOHjRUTg{=#p zTY0u=o&_EsTf=XIzc&T*mscV_illd&dN`iz|lz2R>2s?8OBAu zjkLymjhPYWi0d04mk^uKBVni|-_qFh%=B9KR)1G>Nqbj)N|URqt+}Xvs(GNTsk7^+ z8rB(qna&vdm`#AbHpagKoo7MmLYX4s zp83DHY4M)uuhBQm3(VEDZL|-S3gsbrPx(;=Bk!v^tQ@4Pqit_U)tgMO4ZR||n1@IG zj&N8SL@kf{7%?nzpxLOas<|c^A^IMU3Yi06*|@+)c0`~wP{=D0z2q``1Ks?8fL#B< zb>q&`edv4chwgcf_KsP$x7MNdzP7K9-VUkjzSHdd?r3Tk+0QtKIlV+7(ShzlAMoGv ztJqm=S8^xW)^pV(bL@7kwH8>*Sua@6*~Z&V&Uja6LhQ{VS5SS)Ayh4*taplgwda`Y znY*)dhpV4`rDLeIw=KbDwu>BPoXgz1JO*DM@+zIgjs>r6T96MM)Fq$*C!zZcj0WhF zl7c&-kk&GNk!urx-JW93Ft@>*+rMPC5b_b9{Ko>#!S7H%z~{0&wTZ*Ujf*?~{rb1Z z&lx`t{;2(mPb|Ef8v{;8>^d8i+w zvqg+Gw~G4}(=C2T9F^2GsZWK(^4)5bt=_iw#afCQ4XZaQ^Q81~L$u)$`p&9SnIuhA zCamD!t^t(yG~jT>)2FPesD!KI5@FPq=2;yEt^kuZ!dIbMjSrH}XE`mn%43RJM4lt&07fyOgIs z`5!qbzy!X5<#Dg*o#;5G!|jr^1kYz9Nj9b%mEa(217omEct+4xUR$AIGuZKoI`uOM3{?JvucW~p;jU5o?J);Kvz7&A5cNp!{N z(H66%Q`GxNr@5zjEouR$l`WNrz)igjU4mu6_E8O$^{$KobL28vHb4cQfj2Z7>}3`( z@b7UQb>FjE?1_c(MYHk_=2rzEc68pv{N}~gtVbM&oLAjEqS&{eY{fKZiy4k>M2}?> z$nsP*VxM=GYr8wmnc+I@%64msC~rGrsF(FL^wuP2Q)5_%znEI9Q#`_Ysqkmfx}wv?Dn~u%P2W;-A9o&oVb6ikSrfX$O%Lt@2U%sN8KY#PF{7aa z`y9L_Ex>ZQ12xT*uqD(&(3;-_JYi?JLU2cBB9phDdlXDV+_E@$1x(ayi9Vj41tao{ zva4mED{fVE9CNqMYpSURl&O>ay++?^6VhB2+b6V+Pc*F2O_M#4^p^6)CXw*njofr$i=qy>hPbc|I?>ju_;#dBWc76v;FV zoA?4LEgPbIpn9SXYD}21)`U$7eDZwpW;hNw@7dBET^ti&owm6x?meET&dzRuW4H5? z!{{2|zTs&@-163Nr+J>(82iD(yrPKw_xY#u=H;6TpB6T?9iyfz(8dol1@!kN# zODwv5<(T-hP~s3j0lUsdeiFYpFd#6AiwjHyyH#_sTR2a7L0-$)#PB?FaRd`J4UTT7 zs1DJ4qMVkbsOu3f(=Ou%{V3f+O}u85YL)Vy{2$d1#S-0Z%{L>Ve_+0A9BUqEOfoe! zNQ_PN%k|H+QjJixRIyUFSo%`jUECLI(?D=Qg?+{C1S(M)?-##RH~}42J9!~=LH^<@g~NeLp#=d) zumUxV8RaZ=4Ju44nxA_qFD7S9?!lab-0}re3TN5!?PWY>;xRGF+s-@EH=D>Oa$R%X z$Ly6I*|x>@Z;ofqyRKbsBX}EId3SmXe3Z{Yej{JOCcf~C0`r0j;Lmf=1HU4eMN3#Q zvBaC{eBsKn=Q(81vqa*$S4t0Nng`x-?SpaQ%pk~&!JwgKo3okJK&l$~&NrQ8d`%e% zvje;wx!`7>kC}wE{M*5?>@-P7WqDt{^MFy7G<6-;<6et=D`~F9%!MXZIgxYxixJ z+n>Y^5I+~Rmvt9!6fWf_Ad0Kyn?d~JJ?<&Oo7`gW(sRi;?`nI`*Iiq}f&gDIBBixjlv28CwQE7>ugjowsuKjI)!m%PTh zxbFf&Y?rlFN>tl4ca*I9wKz&9^Pdf9i0?#}t&Zbi(Y)enhzSSS9@zRgPCC{&K01WX zcFwNO<<2Yao9?s3Euu9d#NUpZPH)k^;x~Es^D}ds!P0GOQD_NY21L|*--Cr2H0j=D>o?L>#h1$kxwGi zE%Pm#EmJKUqIyJ4kK`iMrs2kQ+O3+YI2HTKGcc#)sI;nLyUeVfqpYW2sl94?XD~+e zfK;zBb~3KgzgGWHew78m_P-gdR{>;*AA;#b&hwyFvPL{qcw6>K(q3^_mZ`d{_)pbc zIa8@nTm_eXTUj0HPWckq48>8oOQt}#QiQCl;*|WTvWoJuCPG6RRvI!QKSd0Pd>x^W z{2bviKQj+E>^HPiPgl=X$dzt+PsMJjTj~|6#FxO@tK|RYCj!A&4mo#U5FG88wlN8l z)>!mTfApLus@o6S7ZoasYUDo7{g7Sh&x*gIoNM{!f=ugC>lr8QtV|3frV^itp>D0G zn&*b+i>EmuBsvi~&sfhu&v}oY_=ni*ZRWd5W>LvZGJBKT7Q_s{a5B2-*MmXW5Ns3P z$!rZg_D-S45pME}dxm$IXSO$wSmJ9!IiXc|koiA@EKLYmuUKv_COcK8H{>6;FwY#U*EB#SV>3CqGG~ldg zr4eg8TKs(hr%sJexor8~v) z;wAR!wg97}71Ak^1Ii}ytZ@5Kcd{b6#vSEaOnh-y@tuCFGlcD40xN`}SN?akkkkjcn`U!cQ+~7oqN&eIPUVlda>6(52_p86{|4uG?TDZ*R za%K>6Vu#P~Z;YoZT5Cz+LIpSNwMauW`s@fd& zH{C4lDNTEIcXd!XULKa-7ZnR8q0;z5d`BdfWk|Ow<|=AxGBjPZ>u}vZ%~Q=;%~#!C z-B`mR!&rmgaNDrexKuyS&{Eq=w_e#(HCnDw43!mN)}mN8UB;I`l=hZwmh_WO7c#=b zKy(ZOPf{cLJ$1?V!aLuS<>t8#IGfw~_IkxXi*6S-EnHo2GQVsgmG7`#DE{EQ?9dZy zJa>uF#4q<&_aDa|$9YG(W1rLD)VbTbdbq8wS6;ENG;^1k&n#yzAxb|*f5xPhPX05j z%dhkw2)tsA+$JV5u%E2L-1KzxwRg85ntLu1uf0~^KlE1SJu3>_VRr;>vn>M`=u+$< zayRvi%AoTQ&wQo+#e_sNWgsV#!^p4XQ|1S=3cO;6`GhnXSt z9qN=%?i)`XA*ZnmnfZau{%?WEzzpgEwU}@dUtH;)Jr28boa3o;7Wro-_yIEDG4d zrNW28>(WnBwd$j?qh^d|kJh4lrc2aE8LAmR8vYt4=!fVhXfw1UG<7w{G*dO%+MC*q zh7N}6CXH#b$%2}R*DypMp}(#jstu@rtG}yHt0!tkYWAq7sNbq~s}3o~DUQh6%XZ7m zGD0?A=D_5NM#?$5b)n!`$)GEPxTksxm`zb1bqKdv~eIH0_V>4iZhUrnn#>KAIM_Kqe}^Hd$DJf-L( z6-)bo<6tXzi6odQay{S=yhQapo$1OPgg-vmyWU%e*h)Cu^7;TvN8WPfjWY@gikT=BoW-!Gg&*PcrU;d=ScP_rgc}QRhV12jCk0}cjIMg)U4{)lj0e7o{?Zob< zXEFDwqyFA(6Tg<7;y=wU1-BPJ6bfEN-BAQiZzLC(`F5W(FYil1oxihk|1Hcd9?aZl zNn>qOR)xJ4x@J_W)xF02>NP7`%gYm5#TRLBYj>zxtMb&_)lCgChSp}C`6Rl=ZbgL5 zui|6k$Cvq;T398za#8h9)k>9HP`YfyWm6sDF~M!J3fY3t5?3)jvrVvWs49?Xnc%74 zN=GmQeG|woRBL)dUxxBV6NLcGnA6bGP2J)l;6>MEvLJNGx?qU44pE zt?vs5A^T@3{$uT68{}N)yyUr$9;rIsS>93J>b_#Hm)u4kVf0LDa2l5dK7y&pLEi?) zaLJ63Ug%v-1atQz%sbvBttw4Z9a4VO_R-!j&M}^e$Tl~QxM4nQ?qS|y9AfOD*Xq^U zY|Q~o^JCPX)mOEvwZ;0Q`k_XHv9nogZe(Un1;*jVMTW|TX#G{4N4sA;20Ze!G(9yl zRkc-S577BE6_4I2l%hv7w)6 zx#+0$z4V2=NWNdSLe)*v2VC?u)ju%*?L4yQ?iz&i1)>y|bQkl6$gy6>*wi z2%WdCw;Cd&UEVZbYn%`k-)Zk-?@HfRpAr*y_xP;7NOB>mrsh!{;ZJ<^8Of`@Prk+E zKJqa2lCpp=dlWTV(Nq8FekV$h`HyX=HUyWjp4tc zf5V@_&y)_^8|Dv*@(fzF)@%xY<{AauoitV?t* zJ<7S-*|}I#%y+W(M0O-|N%2vxNu8gvx$=`r!z#!sJV|bn^4(I?ve=k}Q>xgo$#N@d zMBI|t4Y8wQ5+fT#oR4^FE*E372$I(%J+Dx`LjNk|svIu2rR*p34O5y3SzIuxl@C7- zT@dXTPLmuEhk!)>mpn(h>~8xpp+XK<9E|g7+c%yqbVfp=bEo}@eZD;#-J?yNde1pezIT%ErFWq38$P=aagXRsoFvllJ0mdDu`aWk;e(ZU zqhA`R1N^`m@JKBOhRnrp0hU(=vlWL4_0oruJIe3Mo7%40H-_LwIG)y`c?X)#uTI1G|N=kyvwxB6fjCnVW^>kVS%o@u7kRsy1gPnaa7h6Q>+)s#>(qp`t>24I(&IW=>tiT zu#>Qk@Q7fem?z$j3D>dm*_fSJT{cm+O*&7yU9wPeN<2-nTHIgSPLik)$y+O@V`6rB zMKi@v`2zVhS#S9c*$a7!{1PT*myunPP7}D=_n?!2(h%s0!W>e8xiq2N@4D`cbKP}hIE{|Y zjve-}UG3=SScrc5RW2LqpWEI4xZj~JnB%EV93?ssPlypjF7YqX-TT|ukz7JaFuyC4 zDovgtpZO-E%Q=a>?OR2zrnb@TnckQSwbkF-KMV7tvIFDL0o56($x-N*V!3@mBe=oD zV9(fr4vft}Nq#{e&qK_V*#QRq*Sy;NXzbr9u)>cPUJ|ZA%&`~q1Ev65R12J*40_^T zVS>~#Fl3YizPy~^gCG;U+y~G@^N1Wzb#&A2udc!F6XZQ|ATZw3RW?;|)a|I#2}SYM zgqiPy`f%2viZ7YPgDcTn5Y&Jv(0B=Q=1z<8M;RrB1gd=Y#(cn zSry$oI^7IkQawgpMOH>OPqst0RzWF7$!U28IJxU{y}3%BzMiV~8je`I(|*!(n}`Rd zVl!rW_nS6NqV$2ur;GYAnz3V?iKc`!ebI6n4Ki)>(j^0~d zpSK28pE`hvwf`gOETE%0yEQy>WX||Zf)^=J+}*8caVW)$OOXP_y|_zpN^y5D(BkgJ z-K9XWWL%C+?!$jqRsso0NX}>b+xy+`Qx58UU1|mm)#6k~}~GW+WSGNlim0FRUe6!yPoAEh8Qu?` zd0y4C!5jCS_Ga?F@)q&lPb!*pB-w*fV0f~cu4%ei>3!*jrMr+km9?48yTKE7Pj?q~ zsm=hL=>v4=w19u~g^{w>cFFdy@ibrhH)S1@yEb08R~ z?jP;1?3?DBME>V{YHjX7xxmkXEo38B1_J)-fjRzX^u$;KHv{>CYOrpoc5r=A_ty(J z`~&?heA|3+-!K0Dfz-gC!AhYMp;qCE;pB)lGJ|YGByuQPfYZ|seK>`RSx+?%ZFn!) zhFkIKP+scd%fD3bjh|OTdbda7OF08C!HkKWa?r5Rd@m$BO?yRhhem~ z<2Kq;+=&+QIsT$Q;7;%!XPqW^RGh#&ry5TqtMCo9_D8}|aXzfU&teRM{1tq7KEn~2 zgLkliE-AM-S*)PkR&Lqm+PgRkI(?2|kgA$Eo4TsG>U&CiCMAtX`ZqaiIyv3f>2f6J zPR^3_+}n|wMJsOs?*#7GJH11^Z#=6!H=P5VdF)SZJ8hM1^U-d!w*PMLhd2KwdrwCO zSn!(kmD~g6>REgeOt>Bt!nt2m^ ziUuRQp_C>fU87y1?pRv1dc1mkEoWeUeAHiRSG48$tvA3+S=8T<7sn|Zuj2c7JIx|L z`h^qx2cEuVg-*DIAB8tqQxv4fVix(Sbl5V|(gZ?tF5407P@86*VYAu<`v}`kM}J2- zR~DCv8_hQ!uji@ffakMkt!E1~q24F}GkYex+i>5R;d$%+#dFL3z4s(tACJ7bs5KR5 z#m#pwbx-6j7I$WMB|8f_&(Uvi-!aLt+*!g|$aU0tz}ejyb38?1=yN!nS)FrWz>i>E zrf|d1=F{LuTr zv%pyYbpL(d8DAG(iufw}PWqnvcCk;^3``0{{Vl2F?DOaMPx1Hj?f32E9y~Smbn4yI z%)Y9=dA+jrcT(f_S~o4;S+NuY3Wb8vAmedrN+!l#V(`(Vw`xlnqv zFh57KMH@utL^ni}Vr9vK93`WXSDOj{`6qpzuIf3AKa5?*NLE96JYp~7iqak*ztMOH z^v2Pn3;sjB@Y&dg_BIEusgul?@a7vymwz1`6YJn=YBi6*@nk1HA7;GD%9u5je_8M- zYiO>5VzHx`NBkgtkS@!q@+QkmOMQB1ui5POrNlNtS048;?$?h!R_|goAyYhyJvL9w z{k!{D_eb{`cVlk`?>p}d?*Oma>+t^O*}+=;(XG2~I#xJxITH2__O-+r4awrJx9PAU zPg~De7obg>A zXn}gcMZq(yv2$>KKSc&cCqVaI8T}Y75&Ob~{R|^?RdjiDck~nY zhh5PV(E$DV9itVaGome{%c5_#JV z3SS>H&L%jqn9joGI1BA1BK;>xmWT3d%K=LRC5v)inXbsJu>tl{_Lq*o9hqH^oJU;0 zxbC^exfZ&zM8E*+1HY_Q&?D4%t!Jk=gOtejTd& zU-l99g7%hV+3Q*#E29+=N^cJ3sWMD?tjtzkDeDx$`iM;BV&#tIq-7u!f&i5-5iYw$ zC?Pz<0cJP)>GAjY!LGTPGTaQrIaD(u$@SgBGYFXK$gQC09 zGyD?|VTIFFn@!(xQGFI3B?)~e9^_A8)1AhP-j{frxPd!pPxLA2(Ef(LXaNO7*pDmw z9N~zdKsL9-0O<+sp)8!nqmb4E!a>0;z84~B-4&eo%gDXtnJ^?fp^@JJsbL>={Vvi9 z-rFJ7fYuq1(^+=F3tP<$sAoM!4W+MbIeMP;9 zhsHvYrO~mGn`o>qhjWw5zd&7ZeMk*03cU?o4f$D(zK|)rH?)lr{W0`yNC@Q$bq%fv z&JJz~{tzlkq+T{WJyMx!{-MZMk#doC;R)gMp@*DnD??So$>9Usm%oiUW6gPa8_htj zX$1OA$;+H)5;QR--wy@1#?sk1}UUH>kwT)=Qb|Pd*{zvy)u^K6RgPM+D$6Z1pxj@=?ew_(Ei{>0us(+3C-nY*;)L+1FCT46#mcC)2hW~><=9^57Yo@=ge<^G5 zZ~tHZVssPU2~^|!>J~f{>=C?4WD^O#4UP!44&5a8F+SWPvJ3L^vFJdu_|@at;@@*W z*dIF?dl$=1)-jtJh1dQHHuh@zH8i}ad*OfDBP|d9bj5LnYm=7M^e$~ZuH5-WSg9XnQxuDf?HBo#dV#Ktuh`c7pndrWCMd=Ds}{ey7*s zw)EppAV@c)n7ODp2YUL^wArT3xOV-Bk7Dn{cWJwf-x8wn!bpZkG*L^hch-(-5w)x~ z9MVxR-d(K`Um0%{n-JR)-4QkLgjyME9BUa%Pfm7GREk=oXTm4L*}@*i)f|2mx)$0H z`YqHVR4CLtR4{ZZGzR8cq42HnAKXe8pd4Eh-WiUBw}%Tx&Xei1LbP8IF-7M_pG9r4 zX0bsqw>}s=d3UXWikXtF5C8!Kn0!lBXoOQNx!ks7 zt#``q%B}|PHm>``dxOXf=0O>8!yZ&=Nb&VinztlCx^&J`Xzn#mRomge> z9jzQS91h1V`+NH$`yqP^dnNm4V$$cfO!mzDO}90KK>dm;@!!@9)|S?$*89o{GM*nS zhGnLusdAQ1L@T`W49Y0wp5>vXlBJksi#$pGTAm~ol@3B-af{nwv&p#0&cLmz5)Q40 z@ulm8(zudoJl=WV$H8y-Ft`X-zf>=)V-bcWgmw+3ef&Ig8(?HD%a)pM_BXceE5BqTC@UP)%VKEX2&yR>iCfB0X zV5psnNvynRyq@}5t)|(u$=Xe|D~jmxa7}9IsZcfc(+@NPO;azt+#o07vpdwRz%r~P zj)QLb1nu%8Xd_p-Z5d*!*bTZ!P--F{m1A-F$C(qZwkcv-j$1EMLf6@>-xdnbtv#pd*@Ev56VH+~Y0q%`q2c;*Q-XHDhJQg>eC z=(tNNeJq8nU6pFq_R0|JaAhSi{&;IgWdg5tsQste&REOYeby58GuC$Ym)6q!dBECJ zDW&`?U$sn=D=BtM6D6PJ2c?9imXa5SUsg*iOC5Quv_~8-%s1CJ{enl`LHrK8KoWTZ zccwQ~`T<6E$Ys^_7WzEa;vqGp9*aBGW3jyPNOUZU;cTdk-$k{^ndrU9rs$AJ(`W@c z%lbyzM)yZ{MyEwaacAffJr_9@J;Keoe562hZ+Kl~R(MFHK*Sx*82vhSJNh72E7ppt z*Mj)6*kAF(vDfiau_tj~%%hf%cT@Ysr>Gm_f2x1R&vMT`qlV(|(OW)MTdFyrTSc_% z+H^>Wx#8u!fHA!;kr}7e?c8aa;ksFvyYmw$8+Rbg_Z2$eb-h8H1MAf(AC)$7c65d$ zWl?^G>o$dFv%%t1swu0ipB2Me&+4?*x61T3hOG^)Lu|LK73~XbZ|vpm?Hrrz{T;{b zGaYyB(;ScO^&A`RhwbU@jqNjRF8jB(hn!_+Z5eHAIo0Od+_vqux>V0xwj0(VR)=*b zoly;yR*=f?Sr+2FlE;$Q@`-N3hw=`%iG}4LeW5=}ouSyDWIsM2osis8GChSy#S7wI z@rw8tJ#_I-d!z4(Ryg;(lRyw==!2O1FGGQf(d4=;Qky^Yz> zew|QrYpv8%^v?dIZjDz_r^2hO6@L)l8LJ&H9(#Zyd{OK*8n^|F8?Lvw$$ftk;!rre&salR>fnhYE5rz4ny8$O}5TarYMTC zp8l1qFylwyr#>E**e-dbyj7kjPa!U?Dz}9kH6G?)E;%NaluFRoI#f6g(dBo15w}Aa zydkWjXC@<_?7zYZS_^|{yZD`SPaGr_mku(XCFJh%DftSXti$AMvK{`EPwFCXk{l@H zCUY_`lFTr~KT2ig@zND(v~*5tLVUbg{3ISl5ndQy!d2*W{HE&W$)*>$MjkZnq&Mdb z^?>G(A6^;l5>A+1L-ZKR%8WQ87BO1FhQ3lo^@*4{_tjIiOZs=ZY|PNxQ)9nllr=IYMnN?5!m;`h7rYGo z>jQ0#UJ>^7LH(}L*;tD|+ZVFK7b439VxFno<=v)ZcuQYP%ZNMkWO9O{`3Pfu+MI%K zLrHO=Fi5;1NO(E5CzDoE-Y9jp+?H=y>QEc2#cNedRb`{4ukxRzoAT81vl6q+R|+e4 z@t7-TeWDEF{9S7OjyiWY;?4oq=GKnZOUfta!3pK0VzE9{idZeyfz~3{ZPrOj7V9Iv zLwE9=|G}TzE!V@3ucBoDca?gwPo9hC%3867^g>u84u@Y>U$BclJQ2s5>j)oBxAEm% zi@qv{*@Z9TP*W>&KT{KPQ<%YROpVRO@I!i;c8yqQyr}}c+3OM`=^@b*#qhBoktl*n zwN2XcM7gvYczs?nnkCw>GvCy|K?TuAABV>Fiuz2QrLI;N@iI&O2}WcaXwhZWj%qg5 z7ym2XGM)hy!#}8Sek0;+8`~4B6gv_t7P}U!7&}jfXJ0HEWcR(S)Ur`itUz=@Y;&|$ zymqW3j#!K7BfdvXdr$miY({)2o;e+2L*s4u_{3NS^=r73hvPTYK>QW6DV_EmeWJ_N z3ffev!A^CzT2d9Ym7K64vyh(nTMv?W}S~^m&ibLUob9wXB8- z_`5uqYR-6zPu^jvZBZ?S$=96Y{Zx5_r9Kquf|e(iNAft!X}LcP!SzHsH&HNrVlRG+ zzupVDl-Dh}EQ>5h2#bUe#Q8q>?RWei)o(Bq zp5agdC!4p?Q=En~bw|8i>zUNF5qQbo#2Gq0?$>$nuulgY`7K_fF=%sr>r%b0; zVwY|QH6jJ3_C7d~`N(xof+2MbBF)RhKKu>NL2r1J$d9vKXWWvn@f*hf=Q8icEqp%2 zfPJRC<^(>bYs@*xbRUHCwhSkt?t&Rwbt~Z?atPVjQzsF7T^E;$FUf-65g&>U+^2i8 zXAXw(wurrQ4>zJ^#8F>P&4;8u&Yw62B1(i+QPxwS)Y&P_&|O zs6!-IK`1F?7P8>VvesM%Ux~-KD?EiFbAplo!h*`m=v~L5cnmL>VSzdlAC2UMZWKx6 zNcfBg#uf;RV<7x>r)Q&t5!3Ipdyj{}UPgE6Yq)i|wCi-3Y*e4KqGsc#I-QlBSBt5~ zIU_$q-dmwf(punYRa{fF8d@@M|5cacAF!PrJ0pF6CGi1hu6?aN)Q)MD8Q)FZTV8U< z`h|Ts1N(GXyGe968=qL#Ri-Z!qhiy2)yOfN%3Elpka8 zVLr{8_{>_^hlBD~D#tfWX^=xJl6PH-5AJQ46*u5itcQiR2s-CE{{9%RPBOCQ^W=2@ z!QDE@SD)kSBTyk0nHTbzW6hb&g84m;^IzU(#`E}v={_FXbD3wq;hMaF)ix4p#7>h3 zX7p74C%;*MijhTVgqmzJyql8zobQMqSK##B8;|cxxY3U@{qa9?RTUVXec`;-Gbbb`7RN<@ibKjT*ZAYo5in79qI7oD zB#*$qz*iA(?sNPWuXu*1;1>LapUY}?xaQ28Ot`%N%&E|v&zY522phFXqC%oHB+ZG; zyANbZUJ~(dhke)&!dzdda%B={*$J=FujNh1^j=;fOWxiXMQpLum~|BDky748~^ z@dN2V&0(H#9rkZM?!IReSN=D0_vroH%b2}LNVty=A93y zUM0O@&szc0avl5LE-53o#&zN|@w^y>Sp7o0&CRrsR9*6r<@p=G);FS^tWXE`%lcHX z{7~JuG1^T<8}!T&T8-_(PFT2$gnPnMPT7iLG4dAW+3#|b!)_qd#$&OU`5J33J46); zZ>fT0?jx`zxlMcjEF5Al2O8P6v+LLZw-ulz9fxD=x$At){z;4G5^{#XSnt{qv^ z$MC9;aLcLyhlU!cIjgx7quC#}-f(s+53A~$@Lsqqyb;d9R}jVQbevWt^IBN^NbC@R zYg?MNbBuGW6FItloK+(@vzkCF{*L$aF-{-F+|nb)>~F?#C!-e^i%WH-U!<6ro%_Tc z^q>b}j{Xeyv@w{n%;E*%8S~{Wx%Wb%A!MSS{#Y2sO{5AdGAHAgRVXglI9XrdH}n$n z&uz00R^@qi)RVAD|AkuY6gI=*ZNhI-6Q*EOR%10oM5}M(I zIed;R?{BQhvqT%oP)|$1qb$RBEXZCtD`8WP!JX){et9qYD4{OCiGx^Er5N!52o-mp*bHf zg^nY$kO>u$K)jPqD8TJ5VAj~1A22#`^IP8jf&Y3A;)w?^3p~uT%KX1iI5`{hb5!R{ z`NIBm;ZpIOz2!Qbm%;3oIpCjuz_tGix5Ap1NR)=X(3Ek>1cU2O_R24(Owgb~+IVSX zV2>=x$x{RRXG=!pdtPJ20Zi`rI2+LG~m9eC8>*@*DW*2qK02Q13l_MGY9n8;o4+3Y`;m;ShF8j3dv~gK;kn zjkHCgFnq$wyq7{3bA1(tMe~LPledI z9cIEBBFdXEn_j_lr~^CZHNGwR%-PI7qJvvR(ti?-tzsVk2gjzpxi`Glsl@K%;jE5; zJvjyC_bjN+KQsTEL0BsZZ8E?qdYb6rm8m8x<8K&eYgymzSsx{+n}|aeTkY+}+06GK=4PJrUM1 zZVoqDhiiyi217dAo(Cv_|WTBp+~SU(aI2rOUsB? z9`W4;?kxXMul&L@N#*;MhF4MmCXq(XwmeLY8L*drg^%++KW9PcgcTr_d?6(EWFGcs z#SCGG=zub$485{LI4w3n6gkY=xzBy)Ilqb9JQq&LDt46tjLVPkeWr28naCZdJ|v&I zcrM20f^ngb3>U4Db6 zJoRkkwBNGBe}=mFh`nw$dqgo9C+&z$hB5adiQ;LUn4gE>(2Zsnnak@4m>|8_Q(E$T zb3-J_!(FWn5%6yAw09tVEMv@?F%A{se5h2x|Aap`hr2)r-u8mhIg|5q1XQ}A%=yFI z`=@e$s!U|_6Z3x)-Gwa^^PuikWc^M~OhZ>R8+!Nx_S*TZiEoHgPx5oF;r2Y6d9a2$ z*ni{^E^(tA2w$%wG1N$Y!Ug<&0H1pT#!WSLk+zIfVSe|@&_%j4qL-LYZJ86#nQ7y2 zV5`EDSV9(NAzyol-|aqMnTN4n3rq5A_-yZp*#~gT9r}g;$uqqLn`s`m_j>d$ux%qJ-H*r%#Cg-Xy+eFaDa(@66m7 z00E{b8TR|^WUCqRM~MWiz%ZP$EpQ2!GMhZ?-EH|Pa#Hha1#{{e^qmusDSLBo%+2@B z$JsR=3eFm4+*ID~V#U^j4AzO$>KQ-(0``I{oWu^!D>` z_kO0D(8zjoiuHpunt^%sh*9druF``wSpeI*!pE&dwws6^Hn8ferM*BEc04hF_cCziR%PwXG+ko%dIrDi zJ#*p9?8(j7epxY(dG_nsXBVdJ=4(d5xgJM8CvBcfP zBYyV3slM!hIg}aNU_aP@5`*S4*a>6*rX0~@-jPgB^W=KnO9BH&L@IU zCYP~)p5p{K$Im!}=PhwYg-!X*HQCkv;b+Xr`YOv)7TL{Cu;WLW9XFT(oq5{-KxP^V zNzG->1@&eY*@`c_;?Jz_MZ7FzWWMF5ea!Sd-}5)q8UE*jDB7Eu{^F!<%d@Y`&v}yF zWFb!`*}U2`gE1>ho@*6P;z#zpY$%pWu>y>=R`CA5kY3la_jV&|pVPdIdtpab)dsbn zx{6#nA~0dOVp9AB>?t z`AuIkV;gY$ug0yr2f2@B(9CNwXEgeL_oJq0LJU<2KgtI#;pT6lws_s+c>>O8m$ct zkJP$wW8>sItZ+eZk}(lk(e>HQ>T-7NG_n%c&4R|2neUjDov>0`Th>MMF zQ4ueXm*m5{b4Pv&C$p5XTfdslH7%t6pF+g=6M3wce6$UF)>U-&1ITQQV?{p`4hdzX+|mzX3DL$W#%yHwZO*<^ zms@5N&e|KS&+vcfYmhmc$2z~leMq4HqJeNnI8Eetjqg0n=t}-%8SCUDo^$uf#z@9!^3P7~l$wEh zQGLi_dpHxbv%ekXZC0bc(O1il>+LbEYNDJ0DJ?O|v?=Wl=Rpc9MG*1|`|vlPV5wpm zZ+R={ms?5uh1KS1rsL?Xo0{5+yM)4)1@dU?P~|B^qd%wv4UsF$O{Bt9TkA+8rP`7t z^%O@6HOza`CJy>J1Vq0c-I)?GQ{l-^p~ikDh3wH1}KZe(NW z@>2(@|DrzLpmtDisc+PNbpKt@PNT}Y7r(4djP=A7VPb4WG#Au`Z*Y0|IW|64AnuLh zj2u6W17t%qF8`9XJ*xG>PiQGsH$l6j{z&cZ2({Y&@fGUvSXMN-+0-m3P~IDP6Z>F2 z_7>U*U${e!s6i$%+Zr*`dNLA8=0&DC!YgwJ`L^V<2ugeFcs!Sv+bn2<_t_uYwm2Hu zPdI+DFF<{j$F|d2&|1m*PRVb*jr#O~J&*l_^Ni!U>jGNKs?NQ5;g3MKpPpWW2~;nC zlYf*olnVW&tyDE{i4`TYR7etedzM_%J#r3q!6hs)&mnSakZ8sF9%c+6 zvgB)h5p{#&?DZA(&iXJuR#ShWXVm}I`)bAYL+E@y#Ae2?#d^fwld%r3 zO?#qTqBj+boLWO|pt?;x6mL#{#cg#hx~Vn%A6dx&&LCU(8~6La*zIl*m+ygMZ%MRe zzply2cnprFoz-yGG=M0w8@;CAQJHN?b}T3!BEyzJY9?kA_i#7MM!j(_IgD0`pNZ4F zjQm0zp(YX2HBOW_=IB$IkA>7z@f;`>PR8TZtaUX>E1)ga=FkJ+;5Y29|4kL3tGrS! zh>C5vZI{hw?O?kjx3m0fZY@0FPH17)T~k6zveWI{<_UTf?+EWO&nb`LZh@-qfct~% zsY`Occ4V_>wKrE5DkJ27f&(Z8aM3lD{oVhz&(C^qowd;LGYu@jdZv^j8afq(eP@@Oyv8KtZ1af6hU^Gw9aXHWkKSc#P)>Yq?&vV;d9v`OL?pf|1+}Ze?8?G~Ge)rqA z+c(=L*y>XEEvgh#zOxKM(ZAGk5O&}y%Rb9!9Hu_VcFP3vtHsd%T%}IC@_+H#>qJp1 zBHPh8oi!YZ?};z>5fAOBesO?k>{s$q@6rVv?w zsabe9;b#ax3ES{Ut|Rsk$H4ykR#+#jpwpubvGgU>vSp-d(oCt3)I!Qe&Tp`26;7CI z5l=kFr)wp3;J)O;yQ4k(gZ1O3YgpAzY9;im+7RkFIrLSUMO&nfj^~dTq+3~tR*9a7 zq(*f5dROBkfPfKCsk-s+aEAIRCdWKD3S6cev_BNPDfA$9iB^d2L6v$j@;0(Ix+OX* zHYGMD{!9F7{8ZeAdc=Z{Z4p&ae^$RoLC}&urj7A0yID^@=X;a{&(y1s%MNQ1-C}go z=jhe+f%*ddl0FsQVNYWYU1~*zY{#Om$Xtjdd+TC;SV2gZaF7J%1;sCgsRr(DS=EgOafz zf7_g{Pjb8DtVs=%@_9#lOL=B^w$Q77&@s+2*)G~I+RE5E*mhV8+j>|}DD4$ddMi#R zXLC{i$;hOpsaJVo%c5Chtx?X8h%|^)j94O1LaRbIf`10bhNgx-1P6yE1eyh3`-1+Y zl(MNiab(W#O)Jx2faW$m#MH|CKO=t9kCAlsJv341)L`CJ9rKOS+(%*f{F-s2|qt;UiHSjrCr7V`t@^IGVWb_klY)h?^ z?2B#3?YeEa-DDqw?&(L=g#&C~*+yBvxSSnUH07gm6#uw-s6bO~S8UVlb?liPzoQc! zipxdY|FZj$%b^-*7WuY3+tLeNTSO^txoG*~y8j4I(NBUVxTO=~Vk-J~=u6oRQa?bh~UDpHaPnL|9U(lzQFz+H#zG-@A&QC6Ou#lbHT}5(Txp7-A zp}tr3SmF56_{jL2cuxEP&PM-?w2ll!?cF>yI5aN!Ik+THHF(uOD`4}#@o(@A^e^`n zp>sCme}eDOnc%?SICS2}P$>F?$ATq8c|xDUS{Un(NcZTFs6bEB@#snVp1+AUzlij{gMPPyK5lS6}r)!eIc5J$Y}^q~yWLdDDHD-j?BBx|->OuG#M5)<(7`a!#cbu}d-QHS1!lVB2PKC?|+F z7wENMInGsI;cHhh);D%9l87`9oequkdjcy`YxpLnzDdm;SQYp=xI9=D$JFA!M!uP! zFMlrhasJ2bA18gZe;)j~1)ib(QlF&`Og%+k(&g0JzQ(>T{^tH3!P3EX^sB#)Ttn%$ z7`o#NoF96j8J$Egtx2t=&C=45qjpi_-bsuwg&ck-Gyn_43gQ-_BRTz?)bUcu>JB8T z_nS1lk_%B&S;U;Oh$gWKky1s;A&sTBT3^U6^g`pYluR}*IdHL`@`^_;xrD~V8jZ=C z9HpKRroZABaW?9c2(_N-qAXOS*1Dd$(s!(eE<^)EWj|h8FVQQFwQjI(W_Gu;UAA?x zN9~(YCvHKl_>X;tqnSf+x*VGwc^!)#QAY=7AJ-Oi#$(-IxqG_LxJu${P|n@K<#exg zG;l7qcSW;b)v?dk3zAhOdqG^MGB_JMpRl>O+Sta2Z@ z0ji8rcsi7!KDCi`9Y9@C6*XgCp_?%COEsKo+d#dGp22WXLxqBir$jZa9bSVS;y*H$ zw|U|bTye9YMBEw~ge&ftP{!cXz{S9FcD{kZt>G-;5BQ~}Mg~T*L{^3C|F6H|9A0cY z!gZqsAwQOgdZK#dEN9oT$P^rCnn&N^OSCBdDONJxCH5kkEqVvXsFu;Gkt9^fTVU_h zjO+|QL#5w2^eH$r{5JGYq-^8@-(_da7tI#$5vv@V42`Zmt~-tK$_>W?@!#SFwP)&i zyknMX^|VotdW#xo^(JWCMkPKQE$P%c2gmdor~Mo54w85bMc_RlMf_bHj$+9ro)C2N zI&&WJ9sQi!(Gy+4U0xSYNk^nq`i4@?@6CTR6Mi&W7`gFAou}W$#qL1bF|nHDlIdV) z23;45iF5u}S&)Upmcy3H&SQ=qp5mUl-Y(v5-lJZ@)7R77b(5DO?zMP-?@juY^eXvs z@}lGu$tRPZChbp(CzVVdo;)V`ZgQQZzDfJt*WBIdD=bg2xg0S5eM zZgI89X&h7&>e~3DcuCwHvvZ!E4z9*Gpc$U3J5oc$i}Uc>`OSCAciVr-|I+`Df2wbc zuW@S5)N!eEamATHH*UyR&%eXJF_1s_F3>gT3bqM033Umr3va+7x?|)}tXu4`T0^~t zKJ^l+-iO+GZ9kgC3#eF@Xd~!FdZ!gM?&;mpqV!KYndnT!)rSmJQPWtmp(#|LYbJ6V zFUj&`)PJKQ+)!_?U!}sIk*Z=lGPga_o{(Y9fl}Zxy}2h0OJb_g4`xgm?zNq%?*2_K zrv~-D@5!3A!wYDjoKfCP?__)WV{%zvDVJ^AY;pT}dm~m-H^)zoe2!Xl|0O#My4tx` zxlNvN-nh4aQZQ*-QtjlsNt2UHCZ#6L_ts647?0bY!QRK7{@!0ankTDgg=f6S@Qm@O z9@#U_bIe)Cm7l(|?;sD{#~Z(erLgi;{)>+3hnDVg70YAsZ|S3Xukf#Fjrm{GDJn`e z&{$NZzv^2tGucoPMt#(f)6OKGrmY~;@k#g#%|=IQxlmiIhzmv|;?!wmqu)WX?@9J^ z8o9&4)MvkcSj8hX)$H-Z+GsTg zT!4cxv`1;()tlNbHKd=_awSrAg;T1ZDUvv4E^2BoJTlc5SDLFyON0jU0dWX3S3-$d zM$Qb&d$7<@7-#Mztrznv=>3%5%0#-;e?V{jN?IUIU?&|;%``vNziK!gT!qR~6qe0) z>4LPHd}l#26EF12MjQG}3*)QanYGze942~&&O%{wEz{9rW=vd9$kf^&S$o+&yAOLD z-eF0q+vdINs_uDif9tGmFYkQieCHNCI;%5x^6%bu$z{D4l9qccP@Z0S=Xu{JUGb(% zE=EUiA;&T2b8A8SBRQk;k5EFIZoVr#O7ofC8IKcgGh&9QFuVm=7BjA+40 zq0;`H{?DIRr_A`=E#(5QKd0DIzxVy+8|Po?f9!wZPY&b@v}SDX1pGKvjSWVFDZ$R6 z_MxBY6df2D9?6I1vkX18`_)cr7yX=e8vSm1GJ2_0jAm0?7)14#R9_^F9@5W&sl+~<>I&K9HE3$ZP0&D{Zu9#EYudc)fV$c*VFIPVZ{HBwe~I z^ht&by7?^B7&Y}=oC3}HepSc~JE>6I;C8f^3ayiz@CkG&-%3A7`{aFcS-d(VN3tWQ zv$wOE>!r)@TI25TD({}<%;nPXW4j0=>Z9ugKJK|a#k@_tJ(G4O-Ac-x+$L#PQhDz= zZwrs$wR?7Y3cKII{JRAq=3m@KzjF3>^l;pwFK{bf68Dsx*6WtWN`A|2NZIq04xFb` z<=@PbOlRdVwY@_8<5z=i3csm;ByF}qHH>iKZ!Lzm*c$R!LynL8(1C-z&k zfBa=kRM*7sah5F)HVn-VtfMEsx4)BbBDe2nzLLSe0=Yuv;TDt(9uKYw{1_Y;$Q4`` z_=--L2tFX`!Yv_DG{ZG(Pq=m19sWAJEp#9p4804d;9~))Eb5EMYA1S|1pb%V@tT}( z`#66uMgNQzjDLX3x5yp{;y_1-i_TIb&MN$TF4*B?J=;eOkuKN(}aGQ9ocn~FIQS=}W6Df(|#%XBn zyHOuzF?CJ+lIB9C|H@IWFFxy{+y9dU0>YLZ+b-RX37 zGn~qhJL8#*gVXOzKR5aBtwp)ob+9HL|-2@#wT{5 zVs>d4ah43>rTm;;&J4lZf%So_ct*TU`IHj)RN(WA4~;$+`#AYy#?Q+>4@g~_`a|He zKYOT8@ImNhuxfZv$OtVD#X}jwwIjbqa+90c6AeZ`a32rHwfKEh(>?UB^`FsB%_4i- z&-6#yY3dO(sJ0BHBJ}^-!JpD9QBnE@olF{j&^BW#$~7B4>fh>(j9qBym%|tsrJav& zht@SHwvJx8J+`~sx z2?>}x3U)NGUsPrv>1Dd0%u%k=2iO+>x3H@Yth`*_>0U8uqW78iEc^tMr?w}(dx-lt zSHLBCI(zPUrKCB@E0fEltC`N9TpEYq2T7YeZN2T>B|T%DIb6RxzIJwW{7Lsrs(q6! zVe4wWYR#dHQ1)8#DQD#hmVf9*oJapeUDQ;|$-oX|Rjo3Y6SC32pF+>WbhIZIzNomU zkdL6+EwaYCnJ=0}bWz>JGgOWK5oe)^drk+)22`H6$k9wBm-A3m=x7@*<&=J*8QA3C)G#9j`brx`a^q$?&4?FjT_|cc$Mg3dYE?AG>jV4QBy&7 zok>*EJEnb|Hi%kB0rOF6zU9e9|%t2N_?;zc0S$D(IqV%&(&;_0t5zSIQvqtEZaJ-WOpnJkqI zPwtX&f?Aa)u~qv{&xlTYX*@Hzw`6rLwD?&32)#2ov@GgiwHTi0rDGLh)#!b);gev8 zzxX;*lHRE0R0sOTUdHCpiRFuZ!ZYUlA1HDtAL2CaE^o(MrWm^YYT|LxP1Q3C{SXz&W#vU< zTNH)5MV+8Z@s9D|@mhQuDIV>NYfL&kAxHS5{+Fo@eJ4_qQfsA5PKkZ4ol-w#SIX^_ z22i9Xq&ic3q&7^QlIrmlr<;4Vze{jd&>L<_2e1*Y8QBrpK|D2teqU4EN;llO_($@W zNqU0*-f{YK{fyp_^|&16Z%99;kJa*!ff=Yew0q=XR%$J%Y!oq$!uZ<2KAe-@Crz8c z*OnueifS++^q1OpJXLydZfw-*YxnW7`!($uUTGGSNtj|TBAhhOGb?m86=4V3iMHY= z)G6nw<()Kjq=v1cyIwBV7SBlCq|w|-YDjV3pD1>bJJG#z9gmkEEmh>N*Y$ zYs8skl$-L}N$iRWbQ*dK+2l0UGnb|}<+}Mtp6yt?7al0ptz*2;y_SpkzZyJ(3!n78)K7hOb02Mu&zjgq*>N!S(d? zF2NhEDr_bxWhYMQb9}ua3l+n&@d>UJpXm)9$UQ`g4~j?PKhW{;P`$5K(*98!X_HkK zyW~uKg{<1ZxS93;DXwb&Y3Iqk7vlUnLms{YeF=Gttk8BI>&LZ?+HAg0HW-PSW5H++ zR`if)z39ehWBSK)#Gb~g#rnjylBr!A`G;=d7Li}WIU-HMOCk@$52GoOe`D_0AMw8- z&~A!n)hlaLU|5~Re{jBV%Djr6=*`kb(U1$sZ|QG8si@>0^V5r4!`9ld#{P%%g5#mP zu6tzCU2oRpK1shMzfC%jY)P)1yfLXv(q`{tZUo;XUH7(2%8*nqNlJR-UE=-EyVN_E zf9;$U_5S9q=1uZmCUTwa`N>_&J>EIdImxlgQPk1aF~Pph{*)NCmt~SAJM1BPge?V> z=D2c2$l|72%E<#D8yv$Gxutjn70rP};j|jYXDB)=;mR#ct4$4TgE^V3>2&5(2`OqG zDcqs5ZKJ19Mn&>1N{QZZMdze7LBI8Z&gJ&vczmnA@JllY+k`Rb+4mVW67#jJ z`ad|ImM3?UJ+hb{?+f8Ap(0^5*deqxUF$nUzhmT@ni8;@rhJiPvbbaP;Ia7 z;Eu5d4gLfp2Rw<&xHw(rY+MSlbiRH9^>xxE&?8Pe*6u& z)r)+O37T8`h1Xt$@)PKD9&HpcvZGXZO5J&usW{33rzsneLr&p7_5MNT!uV)RCg*mJ z)izchCI3f1*>#+4_u{T}K)xjjN11C%Mu_ z-qlHso$Xy=dwb^s`zc4%R?X4HS>5%_y})zSy`A{$th>GY6Is1Np1HVLcgBHevdilJ zU?1-I(%-gKI3a`*71Ca7$$B4LXs)Pr)aLO!u@t&-lcSv?2k{~?NA8DL)4iK1dL7@O z-Qjig;a|ezb6Btg-kvo>d&0kyzg`k~Khh|5lNNRL8E-Zh>+M)LELoKB@H}3A9 zE}kQv6k^kZ?kt{l?wDJ5m*wv!kJr7y{lMMSGspX{cdWN&(o#=9@@um_rQIjp)o?sH zfL?B$w`-ti0-Hjnw31l&q5cWxA2VG z|6=Z7DMrD>1-eigq63*p#=kkWYExP~(ULm#A#R&@xSPf4sp^U5r~}&Vf?A52A?A%$ zVw69_8`tq?^@cVEGX^&V4hEcou2h;9_(lItpW8Pu^>oU}lsljMrkwhGGUdO|#ZyP6 z_b9eMNx2OyKNZ)j8`eMq+bvt-VTrr7BKBQ*6h`(=5i9M8Lo4FZ`>QSR$4!iez1Fb=wMBr&yaR+o&4uw6u~I zO0rN+C`c#7Tu$h`XiuM0>77pR*L~EC%h3jop#P;YO5auJ1lFUKZUfi%3>1g%eBb-Z zEUOzgsmu0dj@R~aA=gZy;Uzp`{LQ#5C`kDP`&W}&^Xv3f5A3fK}OsX zULD#(&1oa??NRdD>loqtcn@s~l?xRJtqkT2jSSWZZNoidMzCjSS#SV5b#vBNv*_u_ z4Qj=;VD+q58>k*_8X4byYIXH3^w+=Qt+n0iN4j*<>+A6u3Zltqsh{G`*+##peInbs z()iA(ka$lGb~$}e+Y(QW8%B`Y(KNjVomRc+vs$ZvkEZ4YIgd7Urp-lNKZ)mg!Bo`z zr@1H<@ND8ov9FX&e|%?)36F#n<))>-qRI2fC={^#BX_k-u;f=#m4(*l)@imHcC+Jw z<5%Zi=eI70^O*CJV>V7;on5+fo$H2kt!oe5dY9{}>rej7;e7Ax!+KwBZ|0b8Z;oeP zS!WUFeP?@T7XH1b>xpxqD<{<8pX^pg4cl#7TRhl~Diy5{@bnMLZE??dE$621KOr@s z&-*f2snOCt@qy^Vhhe#}nF#K-c@)a$G+c;tC(?|c$Q9E0uJ7k`DWJ!-JNP1o^}p#c z`U>4sQ^Q0aJD2`Ro6dfCF}{c#OeS@)_JcNzeE%fY@^R+>di{I78Rys8c$@f+cx|eH z)u^tgfUEcj#IzJ`9(tdw+&>GV z!Hby6vsP-EW%Q&g(O5R3GwvJiPdm&7sGH@G?usi>U6qq$x}l~DrNn3EY4j*fLDO_r zEF^E1S6hlI4rQ()Sy-j)nYuWPXbUGJ`k=N+HD$A9E4QG5N=Hi(#Ua0tt<0dz!dHyR zQt^uLQG6;S#8X08JYaq;D5h`CClVfX1RK(-q>V-eIR#yDNqlP$pr1?#oy_fo!FYeY zF>Nw0q7L()+}vWu@ofiQr*rT*x?~$=t7J`68j(Lfh^JB5THadOKHm1$Av(G`Cp&CT z#c{$u8;_kmNdc$Q_1 zR(gG76g~-y^#076%bcSRIWNcBRRFzxfv~eb~8TZ>Ok;~EFqOXXhEjX0^p*B-n)2BZSvg3i+(Abz* z`IsesFt(XK;qCP2kJqMZ%h8c!WZW-)@qvrgqjJ_7-A4&EKa}(z;8<>?8*)0?z)v_f z9Dzt)j#=Fb$J492-x!+MhVRNcyn!kSCr$sdU#8GcQ%bmJzD`H?1o0G^bzOb{HT%4^ zr!|Xho>J8MOz8z>U@TGdEbAI;+`5Gt?L*sFO^MvY!M&N_G7sk;t z|8f6X|9OA1I3`W7mwY9^l>NJ1NINpdmbu>`7;Vak6>JN)gdl5-y}t8#zYP2RY< z%?|~B>K(k@fZJAoFjUrqhe{iQPM+l7wDCIES{rZ zeGo;%oAyHXyPUMklv@^;QXX$JzvYDWnDX8hw4P*T2l0P@ zZ@Z48(tL|1Ka(n0ROukjS3c>r_+ENSH)aMLWfoG?52opfe2Ff`I(Em;+IVWePq^`K z)0VJPUqtuxK-E!5ZH!%w<%W}6w=BzcRJN$x0}VKh^vi*jzu1|_U?Bre%+eQ2#^ zYi>JlJ7&9OJ8HXOn`>KauVp{zXzJMNEbUz5`U)k%T303aV%J3XX;)o$FIN*+Zyar_ zI1T=-xw{Klg*4}W*IwrzuHT(6oG%^A9b4_^?0$%E({WWDWecDvT8+l4hV3IHp?cP4 zN+zYW#bw!!&s}T$8t&t{Rg#X_>~txA@z^X(=bn{X)pIoRmPFIUb~MGgIA@2@&)onI zi=jN1tcI0d@UHZ5Pc^=wMpZ^P>rdc_zF~K3%NhHB9GwMNlWi1+w{QE_BLu__FcB47 zuv@VeTd{xa!0r|lyIWN30K2=pySwOh|M$Fh0Vc7%an5s|C_pc?jVb7M=OgD~m)-T# zRoT4+p9_nvroE;0xb>hV#M;$*+Pc=7X)SM^Z*`F?`qR+X*gp46t}}aL&h_k=oZa{U z`jfTU4G-I=h84yGhFD{M!$ZTJ+_?t9aM{qn;G(l#W^8TxWtwU(XbCZ2B>8=)IRS^V zwQ%!_@^yCNP1eJa1#;BFIgu<;yL}Q|*SGKqzk=u+N&OjTSHON-=$PS%boww!YwksZ zxwUn8c#L-Za?WyoK?S>(o2Ck?fPqpwRaOrsbV(@K)F?gfdS+A0<|F^(0nFDyxDDOF ziP|5RwJUIaAqDIYYS!p21DgDdxz-#3cD;d8Ry2{E1Fu zp(0gLSq-yuzx zHp4eSgJ!t_Sk+RdLN=LGHda1f9*?h~pp+}udENZ+7o3a7aS-ly37T&By%(lF`=uPO zGAU1xLGwmcMpchW`mFjpK2C3N@EWJss<^toKcD4Pe?F@Y5zqU=bJ9yUJBBebGTsGIT0pGZ2O9AUu*d%t- zb+f|s$CPNCWr{U6HFYu;CC6d_GjX%&uBoSai`j0Du`GwfQWcJ6UOwYhdg8IXo+BJn z(J`#VN%bjnEU*9TVQzztc*95FW+phU*&m{7AIzPx-`O5)e<(`z9&}9Uj&ORStGE@c zbsc8*)(Pj3I_}o4<8)4)U2o{1YJg1cCx5UUyveDsPSUBZy5c`&lZDG~$rSR6OhXhn zm$YH>R#ZL^ZxkawSP_b&WQ{bThKW;ERy|bpRc(aB7lBi1b=@d@cAJuc9j|Zh+YL0q ztvBlP>0jxMRMJOvmGx_N1@$X+75MdEJapITYUzgQf^{u*a$So>#S!u#alfpeyfv;8p}4y27eZyXQFOW_O{AsJ zXnX`$&qOma4$p;4I5ecuLF~j|#s`J)N!LYKYNOCF>rfMqbEp4Pkr#*K*udR}ez+Wb z@nUdG7r=e&hDvTDJcu~7SQkNKzu02!1vo<&knPi#z5L5E!is6Jbk}Y? zB=4iC-p{Mtm~-lv^9XZtA9su^6JE{y4RW2Vlevyqcql>6g^sU|{~YD$hnwM>bQ)e;Blsc~dMZEI z!JMFd*GF*u5IA=%ew@^a|>mzkZq*g8_>9siX zpD(ygo>un9i+c&2+pWw5C(CZjK2h%-Vph0S_==~nAUh^laNV;=MQIbxc^{bVHKl#f zJDp~BwU+%l-nj@2K9xkg7LK>Dxk}o7sZ7(DkbUCqfz98ZYU|DOr*|j1Zs0O-(>cxA z!;#++X*a>T?S}JMy0sy`<9^l>WWisv1lg+E((T0^?;O41eouC;cF3F>R0aj{)osk* ze>XR=9AbV@#yr*>O9tGV+`KT&W*M3qJ8w(Hd$s zSq{VU3%9&vB7cp3X##wV&T!kc%*Pj@IeCO{NDeMYLr{voWzMN5lViLv0&k51f)c&@ zMf%!wUdigt3eKj^%1(b*F*E{cINA<#_XoeajV|vK3X&(V)n2n(W}y1&f(t+p+S*if zvE?PDBwoEyBTr-4euq6x(MD)-(tg1#J6HY=E_S>)AIz`@ZZA{i-R0Hf1>|;b!Y-~M zCGd5b0e^5VzE=IH$@jw<9WF>^!BomALPwbeE+4MsVz78dTu3#0kXrABw3ToOwd^}G zq5gx>5sfa)1Q(?xt_-)R^?Skb*#X|P3{78Nm}fTJPkSheDptVj4$)rMY}af!p<9eCQQZ5M1-TP^O~arX80T+~v2R7c%$u6ToMh#Rl1zjy<^ z1z{NqzcQ~&heJgXnA7=PqghJ>@Q$hOsOw0hvr{n3+wDB*T*&>p*sIP*qv*>NUW-r7 zLuxTM_s0rQ6g@TgQLoP}{@^1W7ai@vdTOC-pVWf6gJZt>0jwYQY5N*&tvpj zd+(VPilK9{kuQ;ovY47l}sb zpbhTwo*C{ds6y>HA~iw@_uJWyS}F&9!DDW*ygZwK*pDypiG4?g@fEzu@-ms}$pqYG z{mXpYVm)s)Su5IFk=F6XR?XJWcE#ef?0~WBF_*>*bh9-K&D$`?3CBTux?KtGbpTYO zI(Y*c;{&(2}e5{0Dw}l9~IwCAV_E%Y^UIEL@pd;oo)wRIUlx1gMo=9=akKE`n8EU)*op zvr)K@LJv`ZypwpmH0PdbSky-82*Vm#VfoM zrz*?fu{i>lYdZ?AqKYGAB8cKzoces_on+a99>0gt`1NeSeeFUM&En zy6K3e_d9{cUxBMfMN|x(=m|4i@420?au@A(MB_Bo&r#FSo{vQw0zBjGIHUH$L31O@ zwS3&t=fSj}bN7c+UsrS;$Gd7Q|3hzA+W%S&);D<*BG$Hu6kNm3NiLiA}`8%4lUVwN=$$ zQwW~DLDOGbL))BWkm;yvlJUkLr5=uArjq&;DF`>vt~7^#KSZ6V9!9>|YV~9FX!U8{ z4xvX{qgGOHl~UDGbpkz)MorU)s_zJnvZJ`Sw}8#eMmLa(o8l?qp0JbK`zqhvK6JU^ z%#>1?M*46cxjbQ#M>r@=cAw|edxjIwdiM$LH3{0v2zO8Jhf%QMn&5iz9IuI|cw8a|VbD4vaiUwX(H#Fc4(Jsg0N#h4A z;vwJvF7D!q=&N_Y|E>%3VljJs1z3JT6xp$ONjJx}RQMLXKMm@ zWEyq(G-|C=@VN(|8JWgewF*Cmz09Iq^nstHC54l4{f10L^+ zf8V>ulY#T>9@r>9>5@KpPScrx=lfZO_of*PC=P_~44GXrwL-lWMM)@mt_Rf@z-M-= z&)_g#R+V2BP9Dl)cL&Gfl^uZdXP0KZoTE1xO&->J3zn_q>b>_n=ebI@7@ebHJ=2%m#~E! z$rs4q%Ug>>#q0Qu=EY_Im!c1T?haLJT*41Bn=YVfph?p_Cv#?(#-lE($qSC{s~My@ zulA_RsynNFLB;x$$&d{1U<$86cXb*a)N{2R$MP|%J|yu#%u=J^JB(r-kKpYa_r*SVLlv2N)~8Ml z#-(O6Jj*!T!q%cF^!5C9m-1NMt8wj$Mwe-z&JA_Ha(zPE{~p(_F!a5B@JY<%Svv0Y z-n8|d4{_uB#+2xx?TXEZs(zYvGRb#Yq>!GmJhI$?lQY*5$N2?=FNh)(+<9jp0dt zMx%NX-;u@m*je2Hxbg(ypz+!>8owP2-aC8od^(6fkAVNlSt^BnIL&Vol5x+xf+yx$ zDsVrrjVPI2T3nb#np6%K{&aG;f@BV1F**VTIUZ(k>vzIaxY3IQqbwI!+g$t}m&1Hj zanmo7_a*z;pWKCKIQ%W+vwA)IUh$cN@r$d*Bb{Ds7wpXfoZ`cUK|(3Kkv78N8G~Ea zMAqU_PHGkYKR40QzUOs)C3%IPMFJD_&-j(O@B=+Wb&)MSz;`_jerKBe9_Vjb5-tP9 zXNt25ld6>3sxGSuLdW?7bT)&vnuu5B_lgKD-V(-h$ zB#~S_t8I^M85LWU?Su7uSarwg*uOHRzQGz?#_!*=COS~Jp5)Pv8o@&1!%o){6f#nG0=RHJS4~$o zUX|ZKY7Wr5hO&|~sBTyCZ}Opi{Do`o3i|t6xNsf8@iUG)V;}BA3Orx~Kt=9yJ`bU0 zQp>{eQ;p+o82*j#m{8P_FTssCA5-Lxc+1Oq=28?lm_>x*H2z$<5WVbf*a=@r8yKga z%}st--BUeH9iturzW$BhU01hI_h#pJRR3Y0wslf#$Tj)PNFrxxnqs^oGpy}SzNp@*lc=RTgFyLe8%I-lUO zInY_t83MkcgvET<@rvxmStO3y?4MAVG_z;fzS&N5nh&NbH(N8TBe=68tU=ay)b%GU zyI~X6x1@5<4>J$tF_6rGBj$FN7|SboWjNk_~~ayH?g7@00o5-v!8V7)_7W8t>>7c;_qNC54ldRR9;(hs?Vd zGIcS_zRG<0cm85Q(T7QlUY3Uh);Ij^Y5Mu0c>P?&q4g}@*k9STdpN;AN+X3vpl)Mu zkkkt{kil@FG@j{~IBoW`x5rBd!YAFsJntO5$OUkTZd3Do!NX^kbP5hQPNpW+V1+M+ z4S0oJdPp(@uc7I}N?{%o+k#;8^~JiPNxVg+TAj7qN{j=G`iOJ(Z7_*R;sRy>KT(nw z6C=Utf|(*r;^%&i-lH+@!4>$~6Q!&1jM|PzWe&bd4LpgUvUs?-KhTd4!zCjWT<8k3 zvjI%2vTaKHWO~I+*2`UL!$f+)@BFSH^XN|0-|HP)QU1?zRB{w_q~kKt-cbd2kl9pu z107-15ij|(olMG>;GdF>FGxPPxHaHhoWpbA9(PojTgM8}Q_pS(+gk*>9L$~87gw7& zYTbqKRx;c@>DTIm*9@S0%fb^Z9_2+(96)d5Y35JuxE)WMcpQY<;N~1ojd+QDQyOPS zujW^UlV<{FbSnJjys{D~KKF23Ir86p zjbWt7YiyT6pxtA5*WZEmXtlfF6l;1tqeGVR-O z{q5%H?da*~N|%@)_wuP!eHtcVvtTR)f>jiD*_nY>gQHZR8n_xhzYC}Yvhb3P;wKn^ z=g|b}(#vT1WcVBXWJY?BpLn5r8k*5PZnHZZ-v56%mOMdEah5$Y3~$exc!AcEZj{cz z^VcSAO`gvr`ly-Q?<2W~qw(ho!(%%TXV;=aRT4r@3*oYEvIXES-risZzkk5p-490X zW%m7R*$<{)8hJNxfC2D}D&k300z9TYePTmg?q8ytN&uyq#$@df6~cGwhBurXL)d46 z>^s^G6Lm!{Unx*XhDoSk_O}(Usa@=CFP8X|v*L&}8KqVn-}4eQADR3N)nT=Elg`E` zSV68>SN5xpx?_iYzq}1N(0EYADqwYk(3r=Gv&GZmcNEC?;Oa+-x8#E8Pa4Wt`A+i1 z3ZqKyCXe9%>_9i7#hLg8w_r9dQE515De(g8%sg^84m{&v60~wRW480kRmK(U>gR0D zItha%e;xn%5hTW*rUo}SLScF9NGVxKUp^0~k%RE0UcgeQ41O~WK6fCD7!uE|FG#RB zZQW(9Wec+{U`0gXdD4=c*D!lA5QH>l;|Vwg?Z8hu*WSy~iz@UqxV^Kqu*#9eqHZt-m*#FJsWl1Gi%Ea2p-fuy^Ks_-5E?K0areXq^oK6vh zqC(5A-mCbouq#596_tI^sg730E7zmH$Ru6T20!tm(n8*34v72>aFsF21jSOtPqN=g zbHcl375Nq8$W#7{bH_eTmb;uPYe?^^D6S+Mp&hHJ7JlI0Sz~==U1V8QjrYL=X5g6@ zjyIi+3eW|@R8A;`Ba%iqk4L-~=k~FnVCzwAz;?uo>;or7Dr&p}IEehL4w*wj6)*=>_8|!E7~24LZw=d1>lJGi zaQ!;gaPZp*JW~=-M?Eq>M7{so{KS09e3*2_2j*%h`-h;F8AOk8lgywDG;^8s4h7-w z_qPrQH9TNFg|AIs^4e0+Z=ANhWWtw5&Q~7h4UNHyi{aBX3umrO`w{M%-Sm>p9j!@^ z`a^b27>Ip19chYlqiZg`z#gibV=yF|yLIrgt#k#s{G3C;JS2EK4&mHij@MgTX?d7U z`Cxp`5+(>Se4HwT$UNi(w?KQ*pYA=0{b|JWVKjK%J|^rv*(ag$GVJHJpg)tT2Sd(tyea6#!z9Z*YfQHPd3csiens6Siq+(e7FPHO^@Ew2o z(YSf7XPuP6Ic)^&s9>?M7=@bT2gy|D;MFx@HFXwOk=DIdd?7DMW>H!32f2Ymz$+!V z$~$G{;N{(sy}{dj8<=Hbp@tAhzQP@rc{Wr}F3w zmue%aeZMU~EG?|jFlK&O2ib;#3hZPB9I*WWs~C3CV1ApZ_GfY9$#8w_4EnPiG*`o&SPJi@?s&;%;x{;f+G#P>)h%kj zPvmkh=ce}u+uKUN)=6vtTlAXPhTh1kc(3TJtfL&JjAcI$R_<4(DueL?YeuG68&y}* zheBbc*_A3)pvtav;+^ox^N!% zV}C#4RvXCqwgmn_9=tK@bEkhM#U-!Xg|lV^)p0dk69Tx|rQ}P!#I>WBYY!-jcOGAu zn^ggu^&TD8UVi_D$6C%*eiZQ9*RTnvJ3iqtP{m#yhJ_UNn-6@OzoaQB8&G|Tw@8l~tOCGWvrZ9Ug3a;CW9Ekd^TI52k zz=x^>wSR9gj@9nLAopMClS?s?OJ*`x9&gS$qA|30K9%bd2UDL7pT|nF{!&Me?tBIN1o1~ z?Wc;{E_d-7Mv+kSjhkW~$(+kUijOgK9V_1~e+!%A2>1U_Cc{!Rxff**WRppTsLBlC z3v;A{U=5@2GDybt`Yhg<$N#y8C*k~B8>aObZs2nuo@FIR@I3bLvrRzRl8mG8bbN9n za85R%_xVFF*ozrOHRc%GS>0FZAgZ9+J^)JW%`k|gix~k!XaE(=2Jqy`UZ{sB*O+sXKA$oJ8H(7B2xcH^*Px`5i8~yE(O3Y3A%p zcun4O|2yaycT(SPMk`r~)p8d<#nmA5p>{pWosYKhU;|;?|7~n-QJW02&9{xT<*^C2 zo2;0&%!PZyZ|ud)=oS;Xg792Ra_*_(^uyz!6gYke$t!wt7M8k}Q#&_e+R+5{`2<%g zs6dv>0oNgrGvhlhF&kVZcts2Ih~!^}ffq!A19qUUYQy{MU~v_B$l)|q<<2eXEDcWJ zfa6qwYF+IdjSs?iW;xq&4xDQr&-*pFnw>}c_X?EuGQHhC`&91nn&3d?>}5DtYJvb) zvTM2FC!smYvHzsv+t0rl_V42lltpRa#Mk-1HJC!Q}&7G$*PRpTB}kQpS)cltG8y3TMA1R9Y9vesBxf)CbYBFEDH>QxQ1m4S&H||3;Vp zhgtq-cDR;%q%l*$2-edT&Xid2zdF3Cr|_rrrdzGxWGEpoE`Nl+-A%_(T3#9^KnU3& za`|O62^(Z-UXBFk@;pdzQeEdHXnF6`57h5G&jnAv2PX#t8p%k1;H#!YDQf=Lu(7^@B}-d z!wyIzs)!f47qaA`VnevoL&+RC!t9kCEdySotKQlwVdI3@Wwxk&S|tq&U{?L#Lq%yJOoeYqV7h#7VXGpDd|ol zcWDJUOCX*~#rgefGDc321#*U+GY22;!Bh@=NPoP|K6>i9OQx8`HJ)B@n7a#1y#`FH zQ*ebg<5KkUJ(7{?IQl zvekI*pTZkv1s`Ygc#V5Q2eK;$fH_oTHF^Dxi^BojhyT}ky82Y60U{pYbHNjm!0^2* zE0%pe2VLQGu)Ibr7vU&VI5to6N z+-kFA2k;<0Eaa0F1aa8J*)ooQQwr>%Ac%tuoZy#GPxeQMlFh;M*DP%){E$Wn_oM+r zU2-|Tpk#lDyYyQ4s2#{%tBLo#*HL~4_vmV76Y_tx$W5vauLJ)wD(rRS6copIWC3{} zcF7>>81H=IF>{VjV64UAc&}l~;VUc4DK;8!_t78>^|01&&2;p#|Ek17IA3$Zcy+V!=Zc9BpvDC`5kMYbxIhoOSCt&6;_BumWS50Zn3G z_h!9i!`>PP7qb>CNkrfOjFobQ^|S_F?o4tJ4|?@cbhs0p5xkFLb#w!DzK*Anoi%ck z+^~mu!c}Bt)Nn~zC)cQu)4|9CT`trz-N6_ZaDt6v^7O#fhE%h8U`?Aj-PZ6(0C`B^ z@eDjlOKM^Rw2#j@3nRz`@Meh(p`$v?syrmWIWZ%3UIud+|h1S?j?BzOS&CAzo$_m zZl-eS;~K)AO`_&p%q*}gY^5cx)|@H>xZQ(bfxTotw1(Z?8QxcKx|vvB+mh_~c1|VU zN0&K6ia75&?m31rSKa}iyC9Qbk!f*;W1_PFXG#^i$N)|d3)ykCo#&W^oaGjI;+zY6 zd%825&#FN&^_6>S73a!h7%cPQA1z1k7Yz5nPYRXHT1=5T^Y$yglZZjaa2 zL{8ayOj=gcm*$c`aED3d33nLU(|(|_^_kU-;NvxrTnXMTol&>l;S|}#ZY$1SD+f+J ziay{Of0~b+9FgpTa9Tuw9Sq^*@GAZdOdLLOdfXL` zaksC4FS4G>@-aDP>D(kT_F*|X%?6wt<8gi5NM8`gS)wE_UP6ad5lo^i^-Bb9mCcxk zRfi3r0;x1|^F5}9HV8GT6Jq%cG4PjL@Nb5Kos2~f5XNNW0^idmzT!PND{0{BZOGX& zkd9}BC!0nc9>PiZ4ld?%Q22}F5wvE_e1Mhm5by6)u)2k0PbA>!-xI~3h#!uQn=78_ z)_m4dU$O+Q^Y21I!*%3h{DCK>$Dw37cxf2@OEv0{>YTV+sFO0l#=NtZWM(Q`d4G>I z${ToTbm2bNgQ{!r@A$x3ca`%cl}TD(W(I*g^Y=O5ma=-6vwqie&P|5jIfA~T9jvUf z@MglPrmA`Bc#I&-FUgF#3iEOt{F?Ig;3An??Z~y5!yOobYUd3%UkUzZ5~y?|5LBxx z*Oi}|Jb}5^6`YY%$r4$^333%aijz#4478{RK(DuwCv=&|AMz*+q%Zi8LgQhAZ-e<& z3N4#~lrTLw|2TG6J1{OCbNwP<;4z#z-ATXmdjIzUAJ_p;W)9EhA|5w*++($gOu<)j zM_oscK7yY)283iYEVo5)H;` z_!n)Qb(oQRQ+T_=6hH5L0861TOePg9mK5%uL(UkGwAFN6-V}x3a4$Xd)0Mz#=5cpS z=Q|$DOzSe$X&`51t~(tZ)9LQRE7_e#Pd=vM5|s&0s5G_xXqf#A(d!N&( z4rfjrj~i6gCBRPV%WKki8M)^s%H*71UZ=S^Fe}Q zK4!I_<+PYjC(?`cF_*OxMa^&)eTg@rZU&EdcIHqfNjJF9C%Y1;h4=F6oOjJ8$uJVG zu|O|rrIIL5C((>mQw=Uk1aEcer>pQ@$r>u?Dn$)B2ext-mknpP+WfyUu34yAhH__Z za4Fpd$N&p~T@%1stj9?)is{rocK>O&z)o)JsR52RoxQpWX2MJuVN2;wSJ2g6#;HX? zK9SoKO!d`~phvl~cP9s1DX%!{JwR+E`=X38HhiM-B~^BLa1FPV4VLht#E_s3AppOXKS zKc;(~NM{>P4_gRjidz1OZrF>TEI|R*h6*GQ&f9zL2JdVlL?})rXW|52M_)3Qnqej` zW)ZwL4?r(gl6KLB+Btw8Mb5@MoRYcB@lwdn ztp?XOl3K4ZwO#~VfFG#+ma>;C(nl2HeRbx9HK-AO^Lm}d0rWAI-5B=oceIoz&~F__ zV>uFRGZydSKFpLFk-qG)7jV2|zL0MJiyHF-sKsm8PIkK#j$0}E&=T-Xbzt1#bfnWA z$#50+lV-Y}U!5b-;{&+Y4Y;cpm`GSr=lb9p5KNWXnJLvk`rBA0n%>m(qv*mebHd!D z#x&!lKMq9pD=5rW>WD4e5a}pM#xbeg&PtpLiy@7ip*WY(O0aG zU)(p(h2&H`@F9uD@n!J1ox^6oCFPFLH4KP=mj#d5Lfp@R0}iN zg+u<$H23kl@BHa?YD=%b)m(a&epC&G$%i;5%x8jKhc3sT`KBLh;yD<`@PFCsfz&cD z!L!bRFHR)`NW&V}vc`KewVy|R;!tkmwxkvnB1i5B{M;=(17E2SrZCfYQ*C>>u3V*Y6tl|$nz5{tdMS| z=I%n5Ur2h3+pqyMqO&BBY~b#11D5EWBF*I<4}f)2l-}6p@`Ho$6cph*TA>j46W43{ z*X6E6*FIQCE2ssVvI;A6D)gjgT?<J zzmM{_0(q(mrf^&&Z#?$NMv2fLUaQ zid5E4Dg_5`mDopPnGS5FKRW@+wTb(G4z<%(aIecSXRooA{3JHdc<#|_tf8V{9`)Iu zWq2OE>6Uw0Lm#P>n)1r+fZ_I%O3n|yOBp)JlK)VtaP$XbWoOWSzF=;Ao(l4s>>@58 zo#cPvEp7(w(#T!R(VoGT%VAQL2Ai%VIWxI%Q-V1&#=)44gFp9~F6I?oND-K(8rfRv zR2TD(ROu-ywsZ85pXh*Wa5M&R@4sX&p30p!4D36M+^cJ#;#)vBM(|oSBWJIu=Pk98 zmkV&5&V4ksw-$us70>oF*GHT=mVz`?B-?ldzxHBK^5qT$VOxS2oXz$Q(1xEui>4<(%knM03(yK)q)>a)WLYwa}d@=2Ts8<|lbqR)8l z2;tw2WMUCPf9ZDUU`MI| zE{3~)64l*KZUY0e>#CgnZK%|usg+xktMLp?UwhVWM{fBDYTlA$Vrh9DFVauGV}EFv z16Sfc^x;;#PJO$G9=$#5JBoX;Ju7_#`=}8gtMdC^WK4|(1NGJr2|UA7*pI{cTKB00 zEAttqa;`+NgFgtDg&g{dzx>L>K8k@CQ3MP#3G93mH_3gbBY|*=4xxPuROD0m;cw;; ztzs4$rkQA1K69&dkvEf{d?vR4!6ZR}R3*BnTb$88qG_d2~~> zSF}>p!X^bT#9t3E-Uvd_H^{ccV7W%}JAR5}72%T-|TJ-||ivXe^UudtULG8MFTH`HyBYFbe~nJ^paq~{NVIH?TUwcunsH}<9BX|N}SQ-xx1fIT^?{}p^h}Zc$2~lr8~CxT66~XJc|jNkZWO|iOe0#u9%+fba5+`o zYbKX>@QA(6>@pdYdMN6{I;ax$^6lK~DpU_%MnpAgw+CR9E190IVSYMJ8bd;rne?OA zk}N#FllYE1!K$pwNm7U|OprL?+Kq%wcNDhCO78Q+lD^dT?_kx=1;<)I|7HabY{vP~ zfk#a+^LD5pXLD-&rn0O;o?AJw60C*RVzRg&PThXIBKnFlQ3qea_K#C_j)_ELYKk;& z^dxGX>C8#naYj9X^QxiWi|0Nh-N|(juc{nJF3g0cC=NbwGAx9fXhab@2}kqZI1+ZW zh1<&Ga&{4?j~CXBuuY!BLLOS0kakiF0VfX{JUMSd2B--39LQ{~J{jzPc`shtQF-PtWi(?O*pabGIv4$c{ zp+K8e9xg!^9xG*(g_XNt8;yaZ;N>6Iu#fCkB55_PPW-sdhKy^XHKTTZ^>sY#?9i7X8bq_p;3}d zX3&9fDk{O7UI#9s@Pu+AbmSIZMb+LIMd%zb*cdvTy6#`pJb9>`N;C6$N5yoH*}-de z%{9EgZ&4Fn!VBOie6347jxlZ6z z_`*GZhMdVL`g-rzdCndGo^Cpcoft}Y_8G)~t8)i>j}6YAV0rnOSC(crRG;oVjMK@D z3Ot+~g~@o@?V&1viyO>eIOS%iKvmF&9-_T#D_XUqAOnrS8b@*~RN~KKIqP2W_(1jk zg|B!NKKgWSih0x)TR8)^@YqMy_lCbWx~%*>CThQIbS7Vzn*@S%j)JlLkUCA_xk6_% zh5j>zPBhRHKwlcgbJ&tve>tn zM(P15+a{nUe2!vuiQ1(KQ&&Uf7Ns7f9*#f%EaefB+G3RhaU#~S&+p-Ea7l0qcbFSK z;nti1Kkp`(SSjk}R@@+Y@!UOXyK6g&A}ktJ(J{+MOL;u9Qq3>Xn8cW$o22G^ELBO#8;ZAODEgy)s8usyA3eu0G{zo{dsZ8`h_lcbm4MOOAGS$b z9M66`2B9q&%K5&C335xi{oSyOFLA1el32Kq3UUIKHfmtFCG}yGd$W7<^6dR5iKb)t z1|D{d^KuRt>Tg-9Y$^yvCd}aHiph#raDbbroJvuBPSsW|Q@>I#R`1kw*R<3+G>5dE zwBK+PysaIHJ4%#xleQIU2Ekf6-dCeFd2l{jtZt(IsoF_)LZs>;tid6CwylaA;xKOP zU!397sh}X{QG2iBKCq%fO9IUa5+0GE-ip`qp5z;Obyq=#7Ev+o#+P(ECw2#vbH7li zKcTjIKu?fFLZT@uXW73=*jk9DqX zR7u<5Tdt&n-N4E}PM7nD-Taw-{2Yz82P8%2zRBBfS2;M^dti|LU@}+^Omes<2ejiN z*`O!gdd~_@%>3w*-f)6;1(!=DX`&;jyFm3E&ct^rE~9T?j&|c@er~O8JHe~l%5s#{ zt@Y#qHMKm(OZpaW{CijdfAE4Riib-Wf7jRY)KbQ}%KFvX4!v@K{g1tpBi?b=p`s3t zqEpL6Jy45NT44732v7Rq|F}2b$iJ<^eRUAT>@nSGb?F{*47Bit<Ym(Vn z#Xv6>fY0>iY#&68z7{sYJ@#t=XJa3-p-zH78E+{@D=f+r%5SPP zl}mjYf2|W5o%XCIUAt53tN(@@s#&)fKeo=gvN{i5m*M#K4AOMKf9sMuRkczTq7;P&e}pA7-Vcv5Ao+0Ao;b9&`W&e@+c z7ytJDIV*EQbKB)!&CSkzn;T$gVn{Ujkwuefj4}-}pEHNS6I+b0Swn8$&32KFN(wjN zxibj7q@8=CyCc0&6VSZ7u%WbcLG4-3@7--txy8a(%%RF^D)Fbzs>t_ONYYr61YXbt zRIMNRp$Twi0?@?0p^~YJ*2;^Cwgx?{!ptj5_>a!UAk2lIy%NsvD)bSP6&ITDXfkr2y+nx=seGC4~2Dp`>I4Bh-<8uQ_%Er{iLtu06#7!_SJnpOP zmkV^bJ8_Hb1eTEuc5WrJ*qcbWlil8wQ=lZ1xcAOj_(46HrboNVa-XiFC;oxL<2$LL zi)@YTmEiduw2rY=MEf=>uVB3Cgoly}`2WR#AvKoVCW*Zc zdvgFtc`YUb^H9vzNB6Y~|Mpe%__dunYJx`iiiLozT;aY>rh;ql8qRYxk6XSGRYn4H z{x#I+F-$u=Opqp0w?0LyXU2Wu5q;ZiMcR+`Aj5JK>uSw>VI(; z%!ga?2IQkMIL;X~Ek#(nx0wSfK;YJLf9zqtmO{Ps27F{Ow^a-^k(0hOf+=D+bA}1r zZW&;sW>lWFBt^ju{i$AuNrp?keU&f1mRFf*Edl8WWiFtT6vy%AC;g35mMoNqt#yw5 z_e*|AzK8tU8VVKuhp!Y}*l!ZeQguPyX6EP(YK#>QLk(D0~*##H| zC8f=z>EwTx=J}B^ugODwFu`qew?I2s7_Yi*c(v@YDs3(B@n~wgXX;`w8uI7v$(@pO zEN4#k(d?$#le7P3SIrrjb1$cA?xEb~hAW1~#!bdTrdp=v7Oh2tb|8|O*i|x3HB=}+ zq+#4>XK}LWDbt`lJ0xGmyy1>q#o0Gjo*>UeNwkkIY+|TUu0Qbvyrn_$PdFybZ?WOy_M4rq{+eX_vo4~GF z2&QzDF@9rDKKJs-F(Fd=Yy;K_i5fP7?MRbgKj#0{bpy;(oFd}`|9=WySv zqm_7NoM#NqmFCXK+LP5ZeP;T+KWG13{`39MfxjpJrlxOAPs?1N**3d#cD3yPvLmwR zX8)J_G`E3qtsb>5C-)F)zAD^}L7Z>XQGDBRPFT%NI2$bC7@E^yd8m9f z3JC8!Rwu0>?Lx&<5q#?>o&P8418JPlM0gD|C7r3>F*rCOIHoRweJ^uW06W{oSvCfQ zMC&R7ui_4Ubwx{%$y=P*}rD=_fr++6}7#NV%i4UeYzCgH@#awf&{)|{%*e=0i6TN1i1sp1=R`K7C0u* znI|hxfB#LYxU77%_*CBhd}BYF~7MM*;@RlDd86foG_ zAj`|?5uU^U`Q$$2u1;Rz0RFxte1*2m^qlBzG9}rPX51fh$O7#S3;PTwU^FM=2lk#E zd}lta9it4@DA-#Jyr=He?B(g1r-MR{;dRz z9eCCw$Uu==>RNi6=9nHEej4T&wiq;q+J<5|t#d3{)w367-N-7D)jaE7*6S>9DtNiv z;ZL6mZgMkf^7=@ayzheHEQ%`VxriGy|Nkak~Zq0I1H9i-@#YxlS2zt9P(4xHRJ1|a zqGFbChY3|n^s)Nh`cb|yzR&$0`33u{{0HZm zo#$!5d%w?Xk9?ZNpsfZ_-wuhhysmDI<%N_TG^Lz*=yNd*|hRi72QaSYk z5lw_a-yM`R6FvTCdg0n66~~YS`4BJD4~D-ae2g|eHU2gJFn%&VF+Mkr;`eG}ei8=b zj1}>tPvQI8f@(9!fqMrX(`_dBCt>R8c+P&IlzEG;WdI%*MfHvKGGD##dEeu{3BL15 z#+>fko5uv71wPgF_4PY-8+7G$<#c(qS@?{7P&dN&b3ADDAaqjic})t)-=Vdi#iZy6 zOzEXCj^D{TqfOG|r_cq?^-5-!CD@t8;0MlPw%mc*kA88#*EDB<8p)tDh3ByaK=`ocw2{-xmdZDht_^Mpw1fc*r*DDVeY+=A{c zj%=wU^K)}!ULz^_bQ$zV&fH3dIphc0bL$!)Ym#johwmMlIlK-pgIQIAy>Nor&`c)4 z#i_4M@H*YHXp)$YqF!4Aw>+Ob%*)OqePSGVvXoiQL2BpUXog$Ezgxn|G8vxAFtG9~ zG<^bB)N+mjjv_9Ns~mS^ANWCC>0{sFJKT%e zMHy95Rb`w`4y#Y8+u|R$TeCr<)S5McT8Xv{E);8(vy^qk^5Pv{=U-H3{E1uO`t?_b|v@Rj>EA~${^ zUdYpAjbuw;Q*@^;@mRlGGtD2(vy82c`*M?Vd()pz$Q_mYFy~dymYnN3IzutTYVwad znn#+e)1QvP_2`W4ldULz-7cJMK7coOh7WX&*CP?{@l49?qjSW`{m)V#r2sxdp6Xcy=aWsDxw*N| zvQ611vtDI&%bJ!I!99PT@2k9_pPj zHJW}JU+oJ`d972^SrerR0^xI`XjLfQi5t*E-sJuq33gqc8No$*rY_9upHYJq!*e@= zI=ch&ucF`@F(iC!WG{ZeF~f!nbvsQ7&1TIa%|Xp_JO+no%4lSoy6XJuDXQ+O?aE2Y z=8Ecym*9?L;UP7nqgu{PI+`{2i2XB;+2w9#0AuMN%yj*o(I?%4O>+aJ^%@%X$~^N? z@I@Cf<6Dl7IMfzu>xANPxpA8Dz9HRUGYUL&XHA>UJIzrj6IC{cbw4Y77}F{#I{9tV zm(t$oDnH}e>5IDa6ne=eOko<)SGzm~B|6yiUr?pR;&s^7Fwx-14$ZleeI&a?cCG9c zS&Oprc`>PI1?lHYrNqK&GKfFoT;`DYJpM8fWOgmRQ zi8PZ1+Dz?d?LqBzZLsEpdLcT6hOkN-z%}gPjKtfzg=3g4&Nj%}+#17vm}u!oo=~!7 zHqHQ#!3$zR%Xh+LX^$E!9L{1nI*S_27!pxEoJAp7To<5Qu3xMlN=DYyJWcYn4k#56 z8srnSAn)S5tMi`BJ1uBc(5F0^d20CO@w4e)>xXLNwJ-3n_7!$Z2f(?wi#BwsxtIB; z(P%twIBv*ekb@$PHk36KG4#gkHz{`oIaH!C*0hlPp)~U!i`44279fLTHm=U^K_!y7 z9TQL{eX_4(&+J9*un~sm0_Ixn;F3f$fosRSI|zPU1C;ee;hh~~VtYuu!+n)2cfu-l zdTL94yYjm`Fn{(%yPRPbEPIVFjCFEbI&%8y50D1Usr8WouZB! z!?Z61Un`05<{wL-8VtcWu;NWjd;Y@7St5*PJ@%5F@N&V(5nrlWqACp*JxtqDJ54(P zPw3Mcy~d80O+EE;)l^co&x3~LQ+`LU{zd)>Z>+_vCXIY6=h+(W@QUauedJ1Ji#n!Q z5%P!3mapKgah|IB2ke9s%r(5cnl31`((#*ofj8eY>rUK+@>v(*9nl>m-)7cZYSAIQ zFnu$b&40}GP@D(a?A97^EFZfq@MZVIr#8Bug1h#CyRaBvm3>qN7r4t`!5UG)Cwl-Z zs~)aI715m4Lbv`3HF7d4^#QrNa=UYePRN~-+rrSy@SE(q!IpUZtQ6MHWXw76bf1c| z(FogH+e3QpV$5a^;1=`^-A9DyKhHim0dJT=Me}tB!CNdy*BS-#H-UY;lXIdWv(B$D zs}A$MG?Yz{^#Q+4gMCq~n4bL|%VTNBg^)jsMUsu)rmis4n% zh#Br2u=Wq&@;C879EjGcF8aL!@K7%>ER4VL87=PQ@LQ~tC0|KzWn zFEU@VpyolB{eJs>&=@t}SZ;WZJSQvrQ1<(rA346% z$^Fgq%@Nj))+x9~wWr@*WH1!nDb&g8N%mzKjw>Zll|n60{^x{c@6IQ1m;IA){w`SYhRK~Fh8I?nN2|H#!F zd~&{Kf5>>BG4t<&zZZX>|Lyu^{Z-*l%|AQRkEPehUYtG4@Z1oCH?57jdX|SN6)sE> z+&}B2m(e|RqcJzZB) zcgbhA&tBhAq*|XMMgE0vOW(r2U3|*=NXS$Wv^O<1RV$RW5v;Gjs>7-Q>I&-jWN-v3 zRmuq@e0Jg7nZ|wF1lO1XctqVtoj(Qr{t44((-V_~M7fvd$@B>iKw|vpN#o#ZB!R~~ zVD1u6mPJj_tH;jLOxKR0Hy!N0;0$yPg7*;&hhqWtA+UCM3pqzPy*>0+B-fH?pVwTCMG&MFoGx?h=WENZ&pyJ zfcJUyekXh@>HcW5c^>)*7HL)HfL+m0rs3i+(UQb$?W%bU9_-W1DV)MSIDMSrgjO+` zy-0H8aaa@SHVMuEdGYi~#LK}#E{4Kfg&VOh4!=JvH>{OxW4LF3;N$bn73m(!q~(g4lNcp~K;(y!n=&5101a991x&q6KMgI6H*yOa zE@wyOEYJLwxij;3W~rP-Ie!eJjbZqJmx1w79Iv>)&UvW$=CBiIx~?!&9LOxc8`J#f zj{H1JkC{-^;56*TBp?u-VXm`*rNeU>no)Rb|I#ehsL7%_!=(2Pd9dZhqol?9$?sAb?&5p7 z&uqCI`+W-Ca59XoX38Im(yC+1WvXhb4rHw4QSVa4avSeZM!^(&qG%`<5@)dXj!?_= zf;~DEzQauP*j9R+PNb#ATa(BsUTTX3!yF50YPH8YdZW-jgtK!v2`PW9BW?TbjT{?L zDbzvDIT+^pQqnkstt+e>%sP@L^H}ziE4A8L&Gpi~z%vzxwlVC2DEmoXr_WZoWsIeV z^_jH^lh)<-CXR=w`$PD@KTN*nVul)qs)qiCc+)o1S+mjH3xB96Tav9dejk3MqW#77 zc?}-H0dP8c<7=9X2jNip6}eT2m3@%5gw0$MZqfu0y5{W9(V$ctg^4&GOyd5p56)c% zjZGTU`_E1%n$RcCr_@-dI6sP#d-e+6_giN&m9p0nc$o7PUaH;-TIJs5Qj^!-k)9=l z+Ndj4%OP=q7zb1Cq++$A4?Rd#aN{3}3yNv&RM@=Ke8tj^T>Hs*|E1%_5Rd=Y3;S*Q-1f{By1>ER z!K`!x+T_ZxzAFpMg{Mqm$}wTxK);d?{!b&g0cs`@)xZ^cTECIg;cMAv^f9?|`x%Dj zp2|%!Xu+QPnBL+7UWFv2{q`1)jrIx-mu-ptm93*ahxC;yq{Z&QQ(%`p!!Ck$Zo)x6 z4F52}_SJd;&#@w;GaN-l^#T=yLw;KRiFr$cx~O^`uJyn1TaVCP)n3=d=qBiW^v(4@ z=sJ#TPicB<{-_dFLCO@xEfm<>!G!;y$xg@Dt*GKR-cB+_0H;tq&OSYq-xUK?qN;%U z0v^wL&19`kJ5iIZ4p1kmKEcksPCpw>!oncMQ4)NYz+u}AdOnxFx)>J+-}}RxAtlbjqA)-e?_feUJ0?Oq6j2(7lC#KX0@DuusKX z=ac!JxhZwk8dm#T&v8ivs?;Tp4$fq2U0b{<*jx)qp2Bp?wAnJ1v;2RK&H}uNEe*q& zBr_9hDemrCoZ{}TrMO?*-5rWsaVhQ;hvHV;DemslCNmSA?AzTw+`AV_lgv5iKfioZ z*?Zpe!n*-A&s@rH<@Uc#N#RL-lXg4TIS;6ItrOnnN6_xx2rlERJGEytn4E2RF=zL@ zavxxJdI+A!e^j!~=y6x4huIOX+dfdwuR(iF09ouZI!x_Zr<(MCKER%S7^tg{0VOpJ z4Apx04^7F>n$TnP1$!HEQjgsuTbKyvavJlmrsN(0W>#nXwWV|t- zd5&of?nVowcj8p(GpdGtLCa+q7oo&djp}3y&$=e7+6Z0UuXL8Pppx_#ALLxz^zC4# z^rPDP0QPAX+?3-umCj@aTa3wCb3FKR=_g@-HeUC_ukgNeDw3WX?wNTYM8cx{ZNg{CLj3q z@?hXAz_IKPw_*i&pPOg^rReV#haI1tobx5q)SrfcAwKvkXaa*>hFrWUnCc?*2y3C# zaSIIHP;m2UVLpX}dAq{j{N?THd+SXHKK`h$qJIP)1F?a#a2H2_5Znh|ZyW!;gNgoE zumzED=LV85S@jEni}W#vz;$`RY&E_!T@&{1oKOHMPXjr2!M;#5x|vpOhRQNrqnQd^ijPa4jBy+_t0 zr<_Z!U}-ORwTzR~Si>zttTQZ)ti3E|YgtQE%R*GK$Dzx1iypF!;_Gd+wJLy{T!jvs zA0&4%(@<(z8w|&X%(l-9b&Nj^L(t2M5Kf{f*@JzQ$Xu-`xS$o}YN?n5rSPA(f%Y>8 zZZPAO`P_!UP~96iN3K=baG9w^>fmx_z8VPjN9eAmLWLo(kYrd5AIA#UvMz4k3-L@! zkE(S&x)}StV|-`)s{-r%3j(!pttjQq#U@dR?-n`8*!7Sg`FDU zb#8h(c>B7~;Oi0T9s;uJmS>3fzJE?27#s@HERV1_IMN`}`5Xy*D$=vibJJ`0^@lAV z47!3lVJh`SQLG(Ixg_{l8|Wc-2`1}w_0D2%aVZ!Jzfm;x2BYeuXZnDSNdxlr!Eoabz)M)bKSMzpY=hUc3N3<4 zMxU@8^^7z0DPuv+b%)uk9uCu}vUuMay+LyY-1B9t7lB z%Sg*eyng1;w~T|IHyBRE7ek1U6HV#OAaAYWZS!yD9?j6~dkQu*1E|y#h18Es{9mF< zF`E9_QqFUVM(%9t-3iVw&I?KTl5-`mOz!5o?uy3g#^uR`HcpcFl;@r&hPs%HTPueb zM^03@4s-qz$+g{nDUjcn+qc-g+kH;Sq<(SMa=mqya>XbfWd%yy$vB|Y^MrfeQqfGt z#cr5-0L8xC+Gz6n*?6L41v&HCyw%N8`_z*UwzA9`ffM01t%WL_f{8G9g<&{LK0cSZG z^yKXSGuoPfw$8%TC=^|d9mdl5#8<)zX(R}eTPW$wp$5MIBG(Crv>lwB7_f>%=qo>_ z>pv6T!g%u6?I>BdX3qB28;UMX2|BOUd}FaQ5Gvnpe4TG`fF4KWwUFotAeW_UXu%*|B`=$w1`j6@A~6(G0R`C z#;X(Qx4xi5bw~Tkq z9?e_PcL;Tq5`2bYufYA_Ux(~Z}AZNJ%+>RfhB5<-2lMTYFmx zdZLX(Duz68+;Hr&ZMF4eeGFzwwS@V9SI=Oafg7O5J0JgyO5XOUS&Rc4 zG!<-qIreQNIE}Pu+f1P!QVG=VUj2@K6J3(D;9b9i&H776C@XO=g{|Ekw$~GQdF@ai zwJ_t^B~OqmTb!twK0x^_j*~o&$?sD6pk;_+yx_V7+K*3r?UH zZta<@VYUQobFeVA9J0gixNooG@Y{PiayTkFRQp@|9{YH(&=c%!>}7F@T*M6MpY@vc zkL8^ulCSqnrDQpcoT5{mLo|yW=_H>9@f?N<&Q3TnL(wHE!(>>4`#F-{UoY^w>BymW z!>qC3+tUD?l@EpZd}JrTQSV3>@cUEz14MLT@-oMmPoHs$=PFNa6_wH;??~S=Umf&A zs)7l>==fQEY8c{+KVYBp_$D}xf|>I$;ujBBxS zP`QI|^I>g^HkLVUPA!iXqnxK_k-=5m*%!yrey)e=dv!JLz6)U^Jzy3Q;U43ztj4IH zUA+{)(nn2?I`Twn;1mvXS$dl_xGP74b?Qr;?~>w|!F>N`AVfb3PAdWoKx+81Y4xXg z8fQj__Y%3NHE=9AAh;U-%}{unvrySF;Nols8My#n!DX-lv%x+HoY`pRJ`V7!4e3u+ z0(1Hn$C42EozG0~OvNNY8VP2mpye|w-bAi186?Sk0QB-D&fr($Q*_a9pjDra{h@L{ zH$*GtBQ}P!a0%tMxnQsBqh8UJ9Lfl;rxdR%qJvdhZ%St0oPOi7 zz*yWpn{d`r!3;5T!{w#&e2w;K4fF`hGvjKA!$mz}?s#pqc9gm+i#scRuLaygS> zo~lfu0^Txc+qEVme(4*|dKc!LK8HCnnfbhnoc}kPsI_RMxyCBhQ96=^3^-y5ph3$&QGLEU>`P0e}8l0jbS=el)rwiDF@j zdr(+E#a zE0e1%NX0j8egYNw~M8U_DSbT|^;%&T zxTI64+li1JS5t+}0|#w1drc{tftC5yi#g+M7<@b62tAQD<1|uPs*YmBA3V^WpgSFQs_xu%NM?t@zei@I8vBueb-?V*R781LtUKfj-WV7;_utX+7B(`d&e2B@e!cN$z6cVeHXMgFVka=n zJzxvwr90|H8S*x2QkRPfv2!i+_|HWW-;3sCygz(v-A zEfB^W;~n+QQxw*&2A%{8(O3Baqu>Udp-brR?D{|B;EvCZp4M{WT#)YU7I2mi;T;@e zy7HY~U^-mielWN14M(`Vx1sl@=YwY-v%rVs!>{R2|5Vbef0dG|s^-#S@#tQuo}e-+ zq;*$ksi(lX4F*SBjyb|z<(D!=ja8>G!=crZUZB?z$Cb)oI)>e(RZo(>X(ZQBB&3K1?T69W$fZ5Q5UeSn{ADFj^Wj_pc5n zbs>xv#g~KIeUSe!`^Zk0Wwm!P8T%yM%f5Thq3&>n_x{5F11{iX_#tilZ^{2!qZg3m z`|LYSj!=cqbPWdEEGoj$s4$(O@7x_ceRuRBTZ6qEN;LWn*RlyLt!-%aE~X>013bA4 zcG*3U173sA@JKi=JV)Qc$({Edq+=H_S{3LfMY0lw;R<~~`L%?2-~3RVAwGxk`&c|C zcI4(fMlKVDBIqUZtrFzH{lzk39qG3?50BxZ(lv21+S6yv+fpJa9+V}_1;l6Ojbb-C zWJ6FhABS66114-59hSNvi!{?>b8*zH>vI#-X3`u$BXBI}$vbGZ41}w(9|mYXc;6l2 z1{?yd*c-L4QeaVjz$om3?(jMI*4aSVwu4o*6SQz&CTFSm^kq?Mb5n6t(GzhQS_N0| zaUdN!J+1!l*wYCHj)flXzCdc~knwP9@B6>vGw{ZL)SnZj#u6xEb!T$%4&;{18cupIonk5rN7B;7NIfI7u;Gl>J&dL-;V~TVLEu6C-is! z3P$5(&P83ct6LhYgLB?V-u=;-qSKI9vPnVl51O$v&1UmM(BlK}4W0piZMiXlp2iyb zW^JjWcL?KAlWZ(BBj=sV9{d>m7wk@r6k+;lv~bs4$Jwq7&IYH5GqqsF#ITx|aE}>E z%$i~-g!hM&NWP2p%^iFOljI)f_zR5K_uO0)>1b}Fr+*R--hcEiKfwzX^hbeWuuK}W z;xp-!lm+|M2Sul}`c3%MDs$F%{wmaB?_tgB{xqn}ehO@*&z=qR$q2r42d~uy?&NH= zQd^)Gq|yIg%jb!tCzuZxjM2n_IZR8E=m$iilO4rpp26%XwdsPfEuSd~z4LZdg(X4u z*M`?u4;HhDF0F%S(T&fzjrwHd|M^J8(A4yR$o-5qTD0&1HP&p*{d3c6XvCkVXvQx> z54{Fzqid)oU$WM{&^LHR2V_3#on7ddAL1U*!HqYNKR*sPq9Qs6yZAZT=}P|LDLx=S znTUp0f4J&Z(R15M?vj!HzZovxDez_%p2$PLovh(Ppe0&?A$n5aH}P~WeeeR{^AgY< znoCc<5`IQy!6W|T={7*HNFIwp)3370bR(J^dbwQ^pi~7UBrH^&-tDRBBU&HqnmsZf6!q##i#3mGR0sb z!FQC#E`XkBfZoF=I4&=Vaou2>_CqWFD+&RBh~i=Jsd9lqn2UZ{F?3E(1kcmyT@7O9 zFe+Z{`S&c47a!rL=HQ8@Ff$vI$vO>J;O_0DgIfVK%{umcZZH>#LZ~q%&d&q!)`iz- zh@QqB?vS16bQfe_8o535us`0xoH&i<+yiDp$I!fchqps0YMBWz=ijlSU@IS?)WQng4 z9Itt32`>P#If%pHD!9bJj? zS`qXcVhpQbE}sT9Z8PLX7b-XUI&QRiJ8`p41u6a=zn^!(i@{C$Ao7?MdTWq@B3+j9 zWc2aokJJIZ&Bb7c??O{CJ8nm1@x`oxe&Y>u1lh+u(JjQl2YyAwSWZv9E|vdVp%eW6 zPo^o{F!#-SnN!^pIvTH==9{Q$I17b}h32`YG3G|ba8sgTnGhQ+ZivGF${ifV)Wr>(>AK1c|PNWe&~iq8^)rerop_) zhU%)_&>8&I8_r0ImUANz%^Bd6bS4ML%-;A9>{lE1Y%bXIdtkPYK$D_^t_MO{hjYZr z%0}?rC}!ATC)W%vX8to#&t!;Yy4jDDu@Dc3@~EbqAu^su!!ADX1`KE$)F4h$;qL<9 zx)?rwp5RU@zn=O*eu6{T!@JALXHM3mz!r_PcAVs=yyAFbbt}{nhjHGzQRTHp zN1{Hs>Mn4m^Ks9|;=FzV97q*-tg*z*L(BvZbDmq1<1dEWpapC2+*ZOvA4-09k7?Es zW_SZY$d<%^G;i<=cm7IxKGR`c)*~Bwr*{grqL$o%2kt?>_ZGV$H+o)mQEnZ8lKf+0 z!E9nviWX@HaIvF_$0OkwxwtPnz=>PR#P~JL-Do~rc{m@H$*r%z27Lwd{V#p`oWf>9 z3>wo`(|hAKbmSVryp2ZR;61ftZO&9i{dZt6QRfx?{$0fFg4}L5sT1FFLWh#m*JcN_ zL}fQKtFWG|rW@xat>HF&x$H!ZBDxSfq;G|dY}J1T9!D5BdnHdE7{3kblDSa6D zzwiG3M4%AEUGDcs`jKFXU?}X$cr=CIkvk4T{-?% zI}DMBWEn$YZ$>d=o`c{0Jk(GQpow+d*x5LrwYr4*n~m7sgr~FsT*hj&P9HOCD~uQN z24dnx-5ShA-PMKswIg*@iqdciZmd>l43(vGnk;C-1YV;cIK_tW0!MRuc&MQvT9peyre7f|SkBM7X83@f$2OF% z1%n-q)>ZC^3-oiA88kE~?s0p3gxS2Gd}J}_!5D_@o?PHcaHTeMA#0gQ zzwR9h3O2IOmd1ck7fi(;V&dw`aS9^f)s`@v$6w%dZ~l&*1qDfGIx(A=WEKEKM0;+E`1jl#My>$V`o7!TnZlcW%3^i*!0a{@z$fW_nug(Qpx-a zUV^9cnO@vr!w`Rwz}KKRI0=0bt07bH8*1HWQDEqUd)fe$WH+EV@|Vx6(!u#ojdkB&d(wksMG%fZ~OMPH1`jCyLhX30c?s|$obMXH=UvQu5t$^&>`P8oUaLwKpAboM4t z?=|2io=%s?WJn^G>%`)+hG&5uO#c_@X47tC2E)%_3*yak&S)d@-hFf!QU%WW>#*@MRgU-wK>E9u>}@v3Y=) zoRhs>glyl44O9Gm^L>hTesneo+pd2x9KhWI}E<;2LJuQ1AT0;2H#)K zJQ?MBKWE`*uqIi0Iqrq|-XY%n=xx2F!ude%v6edY9~zyT;P_YL#<2vS=!2*ui*uX) zpmz{wOk?W9#I};29LOP5LyMq=U?d}MPEGa}1@hYFD<+M|QUc|hDxB48Mk9HDTOpdK zJB9kk$ocGvtHUd*h8)4iC~Foc0xmHWL^D2-Y1#sDHvN-Erh}ZLH*_#Uxf{m8;b?~< zV-q4@AL;|UVH910+}w5w4Dl?%`Q-PX;oC3Z*Df;qv{csLc&9l6Yq=+y>1$B~5e-#@ zFYLT{UT+^c&>xTudC)|4lD}OB8(f|oEGzX!Zt9$ID8`HjKNxg1KfV@Ks>oY1iBpAgh%wWrjrX_WC}D&Z)=#zdmnFz0k3&1a60gS z_&v~2Ubvxu3C8L5c#bnU6~ltL{A>Kv;qnc_9T>HJVR^8#9!gHujN0uTde3JJ8L9l% zfW2FSJ}nBI)O(}RSjq280}?jWe+I>pgWREGP?GFI9B)Y6T);#sgJFDdK6ytX^CutC z&jwd~8&SP7_^bugi}l$B--Tq9_of;mh$(Tf$}b0-8!EHo7BLn1OH64Q*y7ii37vrt zvm95aSv-fD^wYw*-}7_6YB4uT1!KBYN~e#i?LGQx%L2Rn7jRO@8*Id9Jcb%^?03hsHQYoFWT9O`ZH2&7St`;jMaV>XPPU z-hNPucMK>tm>L@m#y8Z%1@TzvMZUe1nDm``aRT|yD!sD4f_tqAz8NFnkcz=io&e`I&R`6h)wX^aYaX&rPDM zn9L_QKxU&;SM*|D@`|T_iG8|&yQm)eO1seJAI3i1!TnRf@GEFDE~kQi%VgsNHPd}G z%?cB<;?dU_3JQFu;i8b;c-WN3oQ_JnIWeL?e`f&h?j=kUj9d7AD>1bNIqnZ(kkO<+ z)Q#kU$5`z$V8&h%vBu-{oCV&qM(nG_1obkNaSV#Q2k?kVHY^aPl8fJGKdGFPt6=F0 zF%LdWp5G9q$ziDFx8%P!(H#hqYg?%3+M*KHjYx2ojIT5faf5^j#xPc|6+Nj?KHo9+ zWFno92b}kQLBIYVD54(V^)DI1h3&-8ZaDQErB*nI16>iSADdx+a2&Z>Uf$CnV+B)B zGNaWniR{5+cmfrrViD0F9vzIK^Zg6mqrIq8_Z4;sl{n)isBcR7ANjIVH)o=+>lN-8 zOLCvgVBfbxtIm42840o(NKiNH&}v)-9MA<(aV#BgS+f9=p-ver^~_-T2ke8z-7^U}b9X{WiJ= zlQ}DY4U>h1!H@ba^gu5%lf6g`zQ}!boKDC9a<>4nqAs2QvzQT_Fr?4OW=6E|3lD< zmd8t>53I{aDA*k)|62-9@dBKsG-P14z-sNq`C%qCQ8anNSYG=it|Du|xFqs99-vPn z2~*&>WeL8+#UTRA49!KcCQ<~J}42b*K@W1lKqpmTWB(1T9aO*Ad)68|QGNbf?G zIUH48EBSm|p4MIBet;b11^GxSVs{IWSnudDjWu>Ro}_W22@E^*}5zljb1@pA{@Cb2iLn<}-g zK8c&=5OvIGo=+mDb(rC>;Wc&Rmf&{1o9U79C#St3N<*=99p(`=yMrbf&n#meId?A9 z@;1|*IiGSGhzL!o?}pQ*DFxqtmT*I8NDUgr6H2*JbK+Z)-tZcv^Ez-DtLWa{(7S<0 zJWW-+hA!I-BK<`2&aU*~*APoH@m&3!LJt{0Tk_Hb)DE)X)FT+y2LE#N)Hd!D&Jw$3 zaz@q})6xN+XWCBmT}Cb#hG)<+R3Mvh#}8p%+KBT=?*(*iHB_HVu^z99><`hE4CnOQ zgy*0R_L7gEKsmiMes8}~tc|AP?E$~w6F=t{x-n_s8KijotYh!(A}35wPwh6Hx!&CW z(ZR^zNP36&(SQ9*ZrmAMQ3syUVa{iCur1tbt5AcFbSQ^zHnIIqe&dbXZl2*QG+;lkFy*A zKm3t;qbRtT>V|1Sud#=5HBYZ}pf%c|6;Wm}a6Zlk#=r?0L@(tWJ+Z6$FugPTbQ0&U zHV!oV!CctTmwIR@EKK8j?vl6OBPM=>-8T&1p$7lY98Xds&;ds2`53w1E^^MrWPTvs z4d)DAL;IAP8r9TAtivhl%DSL|BaPF94P?{<=*jOjWMitnT}bizi3a7cC?yxAhxQO% zp*{gAP>FjkhC6Z)GpX_Pbx$#CxWY57L60gQ%K2@WI85d_eBrrn;#}RMUP#g3`j6** zfqN?{*vYVwySW81;uXq(fBm=V7ETYS`V)GY(X8=t;`j`1k<`L6Ft~;3h3rKUbTZxU zb=2@OTxcJ;^nC7vHr&yxPzrrPewCAadjOrGG<3zHSm$kYj7AWn->@#H(2;7y8LdzE zE5LKGlSAy{UF9}x=IOTPl=fpc-GYZV0j&EGAx;mc7WzVevvKeT`PLbf(XMd27N&0* z&mIinPWnY}(ncTTK7HL!R3zD$OY~&1BA1;?mYkZM-!^5AN>6VguQdYCl`E*hW-!K6#Z9EzJ4mjS!LSfE zLuq_S$e7^Cz9QpqK?k)RpV@8b!x`=d!y(Ac;-@y6NUt-8;bibNXu9RxcWJ<&w9qr? z4}vkQ-(TYTA|_yqSfQ7}?}p0U7Ml&@xYtrNXa>^nw-Srn!@F+B`kX)+OGhoe7@C;9 zm>2CJcWMp}{v-2>Yp6&!qSqIL8^{j!#5c4J>T_m~QEmNXz4MZVJfc^0HW*G1u^M;V zJDAtkgFW?WOGr)${1;agup37g9CJNC}Ektx&Nd$aC=23|!(t~%=Cm2F3*+9=R zOE3|?g*u$|Le%fO$w0GHZ)P#B6{>T4X!_h>Ic9h}h(o=})e3Vi)8ev`$ONn`>pzz} z^D^3U3()9zO1#!M-;0D(=z`kNqc}@;)D8xg!k+&GF7G^d=%b(oKl+=2O8Ow?r{_5% zS$MW0HDQWt!8um_Hhb|Ix!!y3DwV(c7hQ<+C0 z2Zwr){+AiW%RKaJQZ%-IQ^gfwuCxfu*Z|g`3QuMT+LDJj)5+9mN&K9zboLW?_9N&$ zx1gKchNx6yhHGi)U` z>?4={O{dQlyn?pwXt;YB@tiozXX!y*bCnq21VxaMeOHs(Wf@u`4!Ryu0<_YN}rkf+~y8Qpg($+nA(-R zCWfEuCuf?*^LPZp=?|IO47%>u^@3DG?OC5KhI(kRcfql$tWh@RWp%RQ#=D2SuPZaG zvBsA|4dYXg$mh6`SMy{AKGkh<)bmUyGLdiWFwA9^ex90Tm+*-^Z55T1%I?m}lq`{F z9AHP3#=D)&leoja&PERJV~tO7RzsL)&E=fGV{ct# z<-33u$wU9(E9dV%F=aT2yu9StEy?jcfoybUDpNhIrcb<>3TL%GpQyW@O5hErygJXg z9A_+vI_NerBS`n`9(TkLI;h3a36BAJQIEK5q3bgaoMTnaTpDz5E224G8l+t7;B#hn zX@ceGR*Q70_UM=OmfT-S^xaAk!POK#9n-;eWDimFLnpyi=#9HZ0y>kS+#FlUtM?Ie z|LPXH^xeq0?L?Dz|BrH`co*52)%3=D<2HADJ#w*ybW=yue<@7%w2Qp^E%nw7{?=_h z2Qhk)9t%FDGIz>q{;Vz0D1^MLDDOGc_)Pd_cw?AI%u0)s+gCdMjnD&qN*^?o-9D3^ zL0hma<6y&`rWUD7N4YIMu8Y*FS-=i$LwTSU$`VVdZxrIef8<(`#G^i}(OBw>TCDpZ ze&!LhokwwRB$E|Qq0cvry6X*jZ8z>5KP$GI$@+|^gP=a#3cHRn3b%4*EhpO`# z+0SBd&L(>F>(C*nOAjxGeB>f~xeT+H2;%)q`nolF7q>Z2Ex6xOw7U)D_4DbZEM1?jq2wVN&PCI@EV=6^_>QN!33lOQ@&I+nOPq;~biA^$;w9MMRfJ@2N^r&Gwo|Bg zsuAHvvS)s>8-8#j4<&<|&U>ng?vs~ntvdLy05@(|;;)_0_8GSX ztCwa4_mXuFrzd#_?pZo~3Kw%`Bj~LkV3K-+Jt6VAQoIt{Gefw<&6jef*As7kaz8HR z>AWLXYfcOv#XXd)7Yj}RXCwz>=r3F7zCGX_Z6!)yBa6FBw=$(ic~>9L>E22%(4YI_ z4K;Z$?vu;GWK>3@Si2WQ=h;+b`RG7&;Q7(mBe{Jle*Q<|<$Y@ANY3p!o_iPS(^$PT z2-0nwgHL?jqi=ErJ)AP^*doNCNKR5D&*U%BJQTd%ekzEXWK-qgR0^oj?&Rb|QTc}R zncs72Dv=Q$W%be0ggO@*It|Fu`_XZnN+#Wvd-!`W zo-XtiZW@u=VFRx{pXWT6eLo8>@Jf2$o5?Jnkl%D;ujOQK*CF<&A!htx4Tn%u3+(w! zU?i^6gTG8B1F?)J{ghAl1XacH!HVpSE_~ujy#Gz?(IVV|4~U0l?yu?MMV!%f0-NJiiI=ME*Y}W+?sWhUB{cm=<?c1G zc#d^=o)f9nd*abFhVPon-)IjO$xhxqi+pqtbNGTp-!uHlEGnanRH`YJ&0tnDkzR0=9R|s ziZ<4nX$ z0t=ZMn1!J{)h65<-^k~)3GIb-Jh53skdE+Jo*91gQ;KrGefhty(=y`50OHC8_H_xO zbpbolA!^CgW&-QFiAQ=es@x!IfX{M|+5 z0B-j2On%m9{STA2I{cL7oS&uSHM_Wf9>d1;a4O!jT5G6_+R%5u!2U9Wr+P^Kn3jFn zo+mMcs9TzIeUlvS2{9mo->pW(NX7k~i!8Y}|5b_3@*^sdW5MkF-Y{;c;l!o`JcW-u zmjq7mRG#l@^3$F4y|!{Uj^TIa^HmhQWDaiKf$ZpVLGUhUMfwDe>-rR|I$NSO;>Ud)p>h;C$;`b5X2e$ ze^DjN>bnC6_b3Xy)x3GU(@<0$;c4eN$GWWW41{y?%YD_o7yqe)uvH$q8^g0-317Y` z+`k;G>wfnJ_XF*cHUSm9aav<-JM6MUaEoSWU9<|C2&YI_%V|llz2~S!HJ@sBztP6H z2f|2s3`cP+-c=<)zAy5wgk$&&U(*qASHAdcOh%^QTlEx0%s78Pkj~HWb=bh%&<|eb zD}D0;;K1IHSzn^Q%S6two%$;a_vuV>4l{mGvp|f7^7IDs^m-d7qYyrtDbzh&M6K`w zZLoOz<6%+(yx>~Yd;75m%EPMvz&wAlX_aZ0DGdyghVXt}=AgL_oRXA(UooFHAB1ak zg?|Qcq1^;0X`OUH^1;h(D7Qy%CkLvsc`aAaC(UcAZAoXXY3*d)Xgy;63rj!IYJ#8d zlY&w=c{$wFudraQ%D3dd@_cs30CwtjgZd6UssjYapujjq@U_Xrd;D!6BB<q&i#L$-l)2y z^&wQ0Qvjb7s80R0(s$GCFmVkrw4A3}sR_uEq zj!0II`ahg#`h}iA6#d$nbp9kdfL%C;IeFT{%?n@#d@%nr7s8?9oS2)lF#uk6S7|Yf z>?cxII6vEP6-<`XT1r}4q5Ag3^2Xw^#KH(XVtHf^0s0UY&E9%Tt27j zsfoW!TX1l%$?G4Zg}RQKJ3GCi>7b&Yg9BON>*QyxslkPb8 zADHv;>KOF{9u{Lzi#v*5dS=z5mcOT-+Kg6A?AD(ozU@v@uXFLh*xJbOkD}yUM2mWghc>1X@TS_vg ztx2Z5fSWvmu9FY+b}9Jh<2g~MQH?*2+Vf9b|N6oPdV_<)NLU|L&_a2DYfWl6o+i1R zoG2OP1L&vs#iynce6fCf4dMU)!Xlh=Cy6|lHCvoC5 z^ivv152f3ZllA{CyXDsw(c0QFo->;oZ^|c9S-GjaNji-}>1N*1RB0QWUl~uN7~=D5 zqOnT0l~S8uBhOhy$Dk?`zUgqZ<9*S-(kb_(&+2R7EABhSnHf*aO^;etX70qf?xpVM z+H>s-@v>f)}5uE_@qyWyM*L)K9sRh($T990y z{O!P&r+AjO!~wjbUWr<7E6%>z$vb|~H%XaPd;rOOUa;b?eA)C3f9`jtvgS_a8)7!; zq!f^nP%bZptLJf9lN(zmTaqp5t;MX(td*^;t*flNVab27ezFQSmo<~kZ_Q}4z`^ft zn`Vo(#o2z@{@E(n>)Jcnd)n98W9`T7r{UQTvp3`SKHDDIM%sGW#@QlK9#SP}KCMPQG2TgNL|In;5fP%^m zZ>cgX)q=_BNV=2;<9v|bZ-skkOZEo4GJt;RNV4GcRQMWh2GMZ)u7Q#L1;cM2$kZ+P zus%lxvK|WcqupuX&YImt+@ImhI<>4Q&Fo?&G(4pms997CjNPIxlWQpo^?Q{Gct}L3 zP1L&TE>7Jq*9X@{=N6|o`B`!mXBlUDS8<#M!jxlZM5a@ltMk#kIp=!I_q=xgaT;AY zm4Zr3eB+7}r(IfYw^ysmo$J@mX^*v^sA)vFTew$y4tQ#yWR#lsIE_2A5blo#@Wc1e z5ba3*HV==GTi_47Qln0xC-Iu@w2|8AFBMWg>eHrh=e`M|@eh7?QFvXxHk(nUswmzi zpLvSgOr+RTye+;I{Zg*~N8f;)11AC*O~G~Y1vFEd!lC^LU%Rs0Mi$X|8^ax!%@S@| zDaXslaNuiuUwwK21Sas3%Im8?>GH{oPjQD6JD|Px)o*0gD|oetCP_|dE^#6{mG`>o+@Z#r18D*X7?5K z_V>ytr*-9SHN)rZ4C|`_ey#>MSzEbDzu-|f4P0p@W@H;+=P+T>FH$p|rJiX)4bqig zwLwKTMiqK6H9!QO*kxfsjDug_R2(g4A*v3Mro*T%M*bNhy~n@ziu_!zWoc}&TGLtc z+49@&+8&~yeAxEDcG;HEF4^+ktl47TmYbz^(|P%H2r4>SX$m9p0(R4CV?L zo&TuSj!@HoW2#gy5X9Xp71;D2Owc3rQ1Xv2zURKzWGoxe|IVR(Q7dTKwaV_2tX*&S zboU~6h&!KqwmL=az*$}D-0h5UE_Uv4o^TF!ZE%(3PE4zGRHnI3yB^^QG8bK=t4Uvz zswdY;F2p@M1P#~JY8Uk|dN(Ir4rRXcD$3r)P@y~Nyyp7ns!h%{nEZH-`v#fS9DKv3 zYA!`rY)XFa^33Wi^o};6N&3!X^E$X+ccFuG+A!Lk+eNtkEQT7Smx#{iVL^K|kQT@tbiz-WzG)&!#4mY)c+_-E_&ci=6c|o{VdF z@-HoaP<)z=uIo;2w=b4Ymh+Y#mO7R`as=uMW90fcVV1QOv2`TYzLMX|k#aNn57?-%+6()P=fJ!z0uvC5f>UjDx%a}+%ny_48+Th9Sd%^cll(C_Iafgc zWC^;+>(vCc5Xu(4$bEZpR-da;T1hhBA#kfdJ8QZko!gxwoQb&1ly+rTMxe`^Lkri& zXgScbIZD>tggk7zx&eN6F%&cw;bPDT1<`Vz3!XgQ;%Lc^cb`IEKGwZ}b$;oVJl|2V zpMhpV5uBio`>&z#`U|%GOYYrx7|3z{D0F%!;@3T$K5r4an7irojiyucn(pBR*4O|t zt_2z(9(W%Y;TkPRX|;^_%e{ODA5!h`J!_v%;s9eZgwJ@5P+S0WzTq$jV`K!+gv! zrs>pn{!#FmXZX&;rETjsQw28iANP&%$-a-?Yo0xxwP^PrRbDA=l{Jb*?V$cf0rZZN zLybfuZW@~QHX>vRX>Piu+9yV-zQf{zK&Ye zZ0AeoEY~4db7hqhuDX@w>L_$3>$+ZW*2m+p;dB*J-YW4*KXsSdR_lW@|0DeV7NgqG zkoxG77UkaTj$j9zLP2^0st!%5QfGh=^arBomxL0x`=Rd|5r_};rrZ4h#$hP4-)v0n zixZn$fw2As=AsO$jzg(Vd!g$*7ruLfcppEC5I1p_B zFFeSvOdiHC3p&Qcs5(9P)yyoMdQ@-_=!50HwEnhmp`W2R^xm`H`_!|+n~m7m0VVxh zoGS@0)w$>;{Bmtq(xKnJg96akgca5^#Kh~e;|yVS_B4Md*;p_y#+iZ)Tx+}C(&tY%5;7!)xZ@TK+fRV zIhu7{z`Dknuk$okqRm@SZZ7Ya56M|MOKs5Fyo!oV2WyyhKN=Vp@YgMd;$|bqX?wCg z(mt9KSinBtw$!fJN;%fsH#)xAGlsNx48z~AY)A*k8;9WN@0e+C;OJ>z>NsgX;&^7S z?HGinY-W3H`zTwC?ViRODb7NrPa# zl?ZI~A0m_LX%DOXH{`+QQ};E zl;5t6im2>Udecfi;cVi{<$UCfP44KNkX+TdB{|xe8y(&+&eyIHu3^eN9F1nXCMXfE zqRMS5+WXG^RKm@bzG#kBVXZHygR~dwQnWNmYB!ams)*y9jd5=4NwY=$lgS-uVk-jSaFTT^T{a1oMi{jI5)&B&J>CV7G9luQw=H=)&%>}a+ zg}w|pVwCy*QPnPo$!>**`V5!UJNPGB#TVx6(iQrx-K4hiF7$a9OKs#~#OyXwZ@Is; zLY^%RvviaT+x(V2ww~6mwj$OHwvU##)=id%*0h$i)|YZN>nGW0y(1T}CduzDS7ntu zcoeFVb;NPz(qc4z-?>OHev-b`w;$ z8czSJm%A}4RT_@UpEXU}fqU-i&U=6f+c^+!sg3)EJ}BAtpp(Ca z%IF*w{dyr_sA1eI)G!@3Cekx_f)7nLX(f8CJ;jpJYH^ihrf1MiT8{pgi@sE0+j46c z&Rt95a30$dYTrmI;IY=!w*A)G{K&h=<`Mw$$! zRX7G-g`YJ7y_DT(kC%Wm7{jgm1MEcyP$<=zY1XHQ9?rxe1p_i1C&UM+jbB3R=7B#| zU?#qOBDdHUSfkf)I@ruQmOu;g7JY=r|JS~D_^#np-j%Aw?OEWhK8v5KP1beWVx&Q`7g&b+S5PKRqgU8*szM%254Hk=NzuAEed zDdp6Au4PJ$tE=+JwVpdZ4VpNesBt%<xTZ6>|3N2tUf_t?D`z1{xL zTG@soZH)h+cbYFN{tLO#s_O0a;h}!kcOIr(Hu^DX=t1^lN_`yc_d~rfxQo6p5MvCV z1i{$RG|AKe?)X_cQ*-J5pEX@Gbu+a_ts)ZbpeNjmZu36w;)a%GoX? zrFbTUN%=T0X{@6yF3Si@YU_WN-qyWTR14%a(i`-)r-`T7BL=xT-J@ILB5AsKQ92|} z7gfodOtcjz4B z9-~0dGBbZ?wrRI%IobxVng6YYsXPo#lGEO_KDW1uFAOIZ%^!(!bSHc+YWvI6rO%F^ zo1HuJfm%kh(C?7kV}$66X;6Tp?=z(T)^4h`NA3Js;sobF;myZqEd9g z{Zwo3{;iJC%5VpFP=o4ot*1NAlaHNL7p%v#-lm+5{0rMZnyi1rv!S3 zdwh-I{~1}udjTa-1@`k``pgk%K)?6r3rs@Os4(-|2_S+efEFmm^n3ub%zt_YW|LmM zArs-hV3I1LUsM5onat=E-7>F3!K#yaBAuhrD1OeDtI9R-vOh|9s=K`~PUEfYhwYU) znHO#8?Hz4zY-Mc~?Q3nX>{ab$9jokV9Q{yl-($;XAAqK0OIsfM7~5HUMtglS=g*Ex zj*cN~9d2sj+>V^~Y4#`I7z}UAevJD*WTt zT20NNl0nyCMmX8uk!Muip93%LVytIt=05-7omqzaS*L5?lIMEWQ`B3EUdC^2lY0ia z)-J7$I~5sIB_)ZRYLs%rxyMxo7s21o(_~l6l|D*6b%4@C9f)^^Rmr0sb3Ie;yEMhD zlp+sbtv*)F+C`kKUa68>RBLJ>N)vUo>z-2CwNSaDlqAv*L;3rH*XZrx%itZ2uKxhv ze2>+)(^JNm&$|WnvyT2lzD$8S{>g!+L#Gu8fM&Hn`U@xIM>lx@VaS zGNE&si%3VsM<{4N;x3Gk7K=6L8bvT6%_P+qk8^&LEZ^jY*3zgZua<_%xuuD+MUtcw zbjYTfHj7!!C&kj{T;g_9buob%Yl3N;*$$`lmobZZld+ZQpWuf_eAG19_{g*r_V`92 zy~!_}flu|ql+lz+Y;Ard)se#Gv(j4h2MbYSAD33+=CECQ&0J{@bBzYv9WyPrEVJ>1 z%uPmqgx&ke)CG^tEX;}mCKp-AbD=Ms#8r5{elxt)?*y*}_Un5CBT=}yj+)U&lp1d8 zWngm8_hs}CLL)AMzS9!T$q7EJJ8>)0snkw6r!eq=& zwTre!v%2fJ&(ZT-<6epX`A62)rnN;$@`U!0j@UhP_UC!_dm=o|(IM^buEL!?9siki z?n~|p^rW--n)$X;`(}ZMl0f$=TvzF5ZNl}W3mxb_%zGEGruD%;&A|8Bsc+|&8pTcB z4lLCmZmz6`55d~_p`TzAxPtircwAAeTSHrqPG`r8t2O|+z<4?UYX-!-&&t@0izHF3AL=pZt$ zF*jmw{Xw_v68z#xWMxIs{(lBXH`Z9#IK>!3C-O9|X<5NECV>H5i84+xeK$C(t|?qE zI(;wj>U~eAV32RGFWFmw=|O2QAgMtaB`_Eq{5> zolv9pnR1&?qVGKut(sBj<*ha+m?O|bEx=U&FASuH+;}p3;cZ|Ri1d-*aL&UI2oJ6d zgy=QU!k+C7QX_ZpEO4(x8T|~akcp{n66dt4JD~pL9M@Fd(zl$+m*C3g+Mw)EDru2g z1J8O-sJDyv2NV6NnxZ}CESJ(2(-8}3&vA!c?7fGRNmk!{9K@@7T6%OUr)OHCHqPD6 zy~;D&a}e*M0%*birsFXaj%pYB=Xd?nacL}r$bOy(=9d6PVur-YZiCO4cx;|&g zIKAxkIr@F{Ku&_`YJnF~Me`YYlo95wboy#>p3~sNcaR(`5x>3?at1j+K19dx2Yg0P zdcF;xC|gzAZYw@S)`j$|pId*}7Te;el^@#2*hf(JR;2Is8?T~i_@HFAud^lD2jLMp zg>Lm$dttO-(>Pv}XB+Id(B|!j&SZJq=Gz6bch+| zNjmG%oYz>;-(`$Pm?2#fuESxu1cE9Z$dXPV?>gaV(;EGyN7NMmfgIclZm=|5{_1co z%P~u8$?hMGew!2T-N^dGL#n`+KHc(|BP zEG?!IEn*!p4gKW;%yq|!MdYE+%6Tsp;l8`WWw+ z9?Zv^tPGWE9y%FgnEDhETcFK)+I*FqFH9U@PBgVJeS~9YG>tOWH=i=~MZ++=G?{)| z7!&4K(qX(i$Dv<&2&~Ttd5FB!5^Wi2?Z)&nJtefQT@~)~7z6hPwAD*t>Pg;FK_WgQv15$&)lUd3kat=Q!s@m*#S)b(kUgl;N(UuI7Ijq4cH4pw-udfRV0;XGJV3 zR;8Gsmc|)A7aZAm`q*XYyZ^bWdI&PeZXa z#8#YqI0W_A?)JU>3b$Xd4YJ9$pO$fGWM9K?A=*;k_S?GNUdvt+75oz+?L#((6bc}HeX9GRNg;7%s$f%o` ze#4KSiZ-R+^vM*5r%!fnmj9R?bpw5wA8!5$;W9k@MB^`00kdGrg(k}7R-en)1s3f}&hL&8RiI+vW~!n? zcf!-to8)@uDsK%yl=r)7VP1mirm2Pbn5C=rH+v203vTCg+cf(QbDsG|UIWug({s}; z>wD`F=Wgdjlo8a_|2l)QT8R$Mbk0e|P);zgyKWV(3pa>+)BVYTYWVIEU^Ln|n>e34 z(i|mf8 zP;FB^lIs*DKzWo`tyKM|Hfm182V4Y>beDXUd?uCQd#Wj_GP=^bdNI9XeDUXjZinJc zu_t2ZMh}c`6&)L$67x1jA3r?)?>HgufKH=-s<0|vgRoBUR`+N@Oq{0fRvR2eS;uXA zOUpO&lbmxo>obb+QfA!CNyrth1NjsfV|&xF6DI29g%w}&zsl9 ze9W9>E@2sB9%5FT_UH99-OUrsJDYv^LUtySnGk?%DVsQYeK#4FB%YC1_@=Fc#s7({ekQfqC5pFD~#)nvI-=93>r zmuM6#S%gyQ2*pQmjjQ-Qv3#uTp!BI^q-2da3#@A$5Z`I=%v}s#46F`K4YqEMJx`r$^4*yg%~ho4=W-Sms*}Se@2V&auu* zo_pS_0s4x>716e8#gomEjv;HZO!NYlt+{mQtP*9wP8Onqb(L5~LY8C$Xv%SD%{YWi z;R5-z$7n9!0TneIRPPOH_dV#_eowFVG`c0kT#$DOjW0;M3JpECeA6A$YGIBK+RNF zty0dDUy}`%s-&&R7wn{uVJYL15ojHZg2ield{|mKj~=7@WC8=bNOl?hIIFyzvZ8XY z`lxz2IGjz&p2|k#HtT~K9vsn7)E3Oobn1YQqK8FyNvNLCGhQ5DA-Z7nA?-Qs4DD8J zh4_MTkCRkM(~CYR@-A_D;vdGY#)Bfbqns;UZ=L_Ts`%#ne$dr9ii~0pi_<*wd%GVO zKS)0|{_x<#x*v6Z)HjXG`{I7!9^g6QZf?`qdgPtW`dh-~g@jSp2s* zicI_hDsWTC7aF|Fyd~((@uKHmMs{2}i(bK(bmaCX4`if^{Chj*kenL7Li`*OR&>^F(B71`s{4y8T*5&CgHZDpD+>u6@ToUH8Qc`acA<`07gZ3ECOYbIBdk{|pAh7vpB*$mp@rpN+EUM8hmYN>p3zgvc+E6(hGtenfF( zgyx-Qy7Id+4@6`hJy$=Wcrypi{rA4wC@9tO6^9A9j{i72L3v>%S)MHV+ggjui0jKb z%8DsVDg$a6nk5S&hihkRuju#dD;X*qR_RCTC+XsJ)zN{f5IIW|f^9uVJyt!F__(_2 zqB2iDU%nYc>;f`NUn>e=X7jc&*i z_W(4G54p}cD>?19t+t=dWz2=mRn2D0Ez4K5>udX}`YM4yPouh6j~ad*;`@pC$%eAN zvSo_jz`ov83bVYCBCS;CNPD@-FM@zCXyOb_vD&WR?}8a7hzr~o!xB2EDdU6tqf4-a`V z)RH(n4^(jtK`%JHkv_k-r0;iOJMmJY|2iW&5p-*WH_`i^>i#{?XU{8``HvDOeI}1w zi)`{<6t6Ej`|`AeyecJAMnHS z6coWNS%$qh1|_O-%IaY2(v)>%BV@nRxgCkFQL^Hq;=H!7Zee`Ggdv4S7y4B2MZp?z zedAJ$KI7cz-=nh%RV-AhO21o(q7R zxo6VrgKD_M23K4&#B&o!r_AhL(E z%{Mp+CJ1+hY}ZkDArQqQeF~v2v3>!f^mWuq?DRkV?O*ACK(%Ef`Uss>9;H084w;nR z>RNKIEKXDa&Vzlyl5~2Az&-SWkLS2|tM`jJ$J{IHQ&vp+`}9|->(hFsZAzP*_EXyB z)Mlx_{xJSH_@mp8P?{{gM|S`0PPSq;8~P@%=_!aJ4(&ttsa?WJTG2weRP#Wi&^FR` z(6`cm)#vET==J*UsN)XN#%kYd2WtP)1+RajfyKK3#v^@Vh}2b2wTVcQp26OqrOr zhEMv%QB$I-sU_;miaj9c*3vi7Pa#F?sXEL>>**!m1_JlG(3G?Huh_pK!UVoR>r?vT zT*F;s9JkRc)jE54Vmw1&l5a-@+kvd!B5ND#T;h#fOKYoxoKgvxBBv-)=}tH<-wsBn zA-$__BfJr9(cfOE+@_qYE{yJ!Qn{VprH$_Yx$dHYe$2GnbTKc|RK&E}l$P5v?`XCr zr%~42EJfCUtVLPpvs&eiFnOr+97L18Kf36@q71Yc4yu~sYobqJ@G45bg65haF`$f9 z2d4JNaC+z?9>SH-IQRmN^HrXk9;vg0v!#6;N<{HwtK5!9&V$bF=J{{x{{3qJHO!bq^xCH$p0VSn{|IbY8Y>;{Ki03=*5bV%-@>C=M@Qcw9! zS##xNYN`X2Wl(Rc!I`6irjVu_+HGx=FBSjFn#f%2HFM}Ix(5?!Tl)0|(XT!XulR$m zmXdJSrVD-{36AmWWSQ$rcS$#JmiUd@!+Q3($=G}+?MPjpgo_1?MF$n_l$@O0pz!OY zB8f8#wl4HM@t03!$x#oLY(%SL zlv!y$@cr*^u9TlsntZJPu|=vowRvt*UMI`HmI#4;uklv~VUjBSg%fitSqnIJHZh-rK`FO}SN$h-8+G}}iID@z zj_lxkTT7lTYb{Mh^W?eYHhJ?BiRS9QQokOUKveO=cY#e$o&4}d%}<5 z-xhu=_oeHXtDjeYZuHgnCHUjy4|#T4)?({XYZ{tw?O?)x54+Sl5HGFhEqVeve}?wE z_P*hPp|G)zalT=hp^pAPT?Ji8TV5Zhzhd}cP@?^PH~K`hIQqJ=fZ?HjgTA=FzP_~H ztt+X2tgEK)qCcUZs$+-MMroyyPc=GK0o4szj%*p-Ku(xzw$d$9*!RkNknWQ@R3V;u zmU^0aYkE(6UwB)fqp%q4bq`qXH^RU!Qf^ahj$9PkPCrL~%aCCF(^xjTSxncM-(suB zZi(~89*wIKHz>Ai>}_MVF-139ABe0FH6E=Y4anE~Xr>S5y!!y`<#xFE{u9>ucc5!o z#g=Y8XzgshXzy>|2hOA!XULy9Ydr-k)W=cIk!3AlodS~ZE@y&{u%uiivpt9|w-mqC z-`Km8TzmvgxzDnfXP3=M$k}DOX8L5C11e&jvkthmAR3A*(U0jSSbc+;&+XV+CGjG0iZn(h z$edue_Dk!-m06fx{|f$Ce{If}$HClWyMnG{m&TQWW>`J?2hLkpShrd>SpH`|VV-80 zVku!CVqZvow;MW)GGVAt%?|@B>g8e1(82J}zK7SYrgVXHC}-}O;x*!uqAPTS7m64x z{#R5CY*BN0Bl)kK)9vVPRRbZmMU)pY0Cb<1Z21{cg!o73P{eO=Tx9!`P^XR#h(ycb zOD-j;BAqFHNhLLgEKqYed+G)yaBqAI?m!tLPS;$&J)vKL*@;5pxWZoxuSt58bSbG$ z(&wV3iq&oFwTFX0L?Z zYip7bm$Btj{HHtbroVgiasJ1}X?N59%1+2xmiIj`lzS<+O78I-A1AqYwxPC;=yQj}#{9g?d8_Ccu%YSr!~eUMWVd9KQOC;F zmD0a7Mnw;ao)kUHIMTSnFy1iEILa7|E)X+5c1>){xXE#U$G(aUL}x}1HFh$pjZwyO z(OsjzM7N5u7+Xg-BzEnjTcA51`8cwix|;e2Xzy)Ohg1eGrnEoVuk>E^oOaD}m3BRK z>YaY@Ij`-l9YY;+=ut_rpRjkJgJmi9cn>?AA|EeruHL3Dsl6ICQ(sMA)hIV!kKP(> ziM7N|PB@q#PK-^Qn7BSMH~!!Fuf}u6Vmh0)INE%RG&eO>BgaNQ0E-?)Ze9v2Kx^~@ z4+gdc3c|(u6tvxDdc-nO*D6VG(`MICuHIgww=B%}-C1|70-Xb8$+eVl$z7vCe>QSn zakTY5@?0iAn~CPnFrl(wb=G&K+R|)ldp+AGm&LgQ9>1o3zfedhE2O)F?#9mQ;8l*> zQyjG%&0Y7LIi3riF}|_ree?wJw40u(8DLTV@uqpZd0pVk{zQZEF@5u8*q0`gce2p8 z)<57Pei-H(3o^-xs{L-_>x-U4oW9>Jxmmfvyr-r;x#jZ;WM^f)&)S+LHq|!mL2EMA`_VU8sEjU?Ur6y@ z@`k{6Z47*-Cw3C(=>G7cSwel`@qkHJv=$6)S2V2)>L%!3=^VOwQGK+Ls!U~DYDSmj zT1Aesp=zl5ocd2$Gx<5cA+U_To4dJH^Y)~d%y{)Z`iJ3b?ANZJwtZUrvBSsXA4Yvp ze>jwK>%;L6W530Io0d^2V?a)YoM_8LOCB1U6VUfcq35(0x$G^~H^Df`c$wX2vZ1A+sNpYt9{XZO%+{D`@yhry1#1<2l_)CIs9@`Y zeG)1poQfM0XODdoyEEpGm@S6=2BWs4R#4_C4bqE}n4l{7m>TVO@HpL_jhyf7yY2U^ zU#*E&v*n8QnDwpws=cVYq5G;}60#yHin62@say6{R*Ks9e9jUZ=*MZJU8i;Ee=-=k zmsh%g?wa<8wwrc?wxNEk{)fJap}cmwwyb))x;)sD4{EtatZSe9^)0I{ z?M-`4vvXeLoXEVAIVrtI`Y)LcGGFH1$xF4~w9atY91hSzS*{e<23IfFP^y%5-QQgf z?|rX~Zit%Tr^DJaTlhKy6F~-O%}(fE^bVE`=7`co`y}f)gT_cBsKIw4|8YuaCDikN z@|?5kIc|6SP;&_3w|yX1EWM6ktO0hHN9M_ zzWw2QD+~5{44MjQFl!b;YiuKm3fpRnLdtJdYPeKp%aD16>U?bbKxR|>m^l4(j^rx)VpK~rIa^SSJj$b z>q-rGjs4|cm)~0WaFWh&Lf=7oT5(QUNO@FcRQnb0lqqxs<>Z|*?ffSDUhUJtkNrN! zeeRy>Ol_7uBy&M1+46LjX=?C)9*Eyji%^^#%9q9ZM@E*&IX&_ zB2pH$ChD!Wg$_+*Z3FoRxe{DyWoHG~O4E7M^{jH)4bqd+lYZ3xapK#WZ(F`K_%`TU z`qzD5bzcX5bAJ6JRh(Ks<7WDytdUvLyh*v!EKAKF9GUiSbYi{nPWK)bKKrKmcM4PJ z?x{?-z;)4I5zokT&r^+4&W{|VS)!d4^+RXU{%ova=pS1<=C_2y@rRSP7OGi%aB`y( z*NWdx9-F+NSWeMWMV1y`kr-35ZOA^cd+ zLz9DLVD^0yswOHWJ}6o(&VjKM?Tyf6iCYqoKT&AZ4Ky$G)r=!zFU5^A9*W{8rstlH^Tm}t&Cl2(>n&+zdJrT*3oUT*!`<} z3Vq9Iu0g2RHgT2mw(?B!xxA~wnz!T=dcw}}40f{1Xj@bdBr%%Z{DsiAP{Csr=201h zy3-o0<>>#kMv1Mhe>WY|jJPpM+>Ja~HR|?d(e??! zC^CXGOV40>zygvX1}^R`%Ja&CD0d%?Ss$|?sc}+#(Z7q-C|aecwwSiq!xG|>tIMUA zYg}o5r6&~&R_b1MLD?$BtVREhONra2x~Q%%X)HYqs^A-E%R#UZ6>z3FU*yE)?##TA zxh{QM`i#tyS&dCYP4P|@_>5W3?zU&P+SVLvf_0g-y=A>6*VNjao7cfKGWUCKR`%?i zl&tpI^|MZ89nXx(s-3kwD-EH6g41nPvmOl6=f;$QSswI$zWS=EALoWUDss$aQi3ARm(t2Im-^~ zEUVeJ##Y`QvMsasu;RuIH%xkgvP1c;Kx6e6U>b3rrd|@K;q8FXY`KUu$mZo9N5LT#0@gH!yB+ zLWu-d{K5E^ai3xj#5Rg`#!Qd7PtE74aiZ~8LmR{Ix@tOq0pPrA>0pVZgYLo^LED$RE~N4uymsSl|qt4FDw^ojqVr?hJ5nM%}#@$fbIm5TnuJ8%5VuU!R0--QB_muomTE>Ub?~gQn$Vc^%bfVuMbaVXF4( z56Z!+_2g>DC?C`7zf)ybJy1VZK2a^FLgFK$iI&ci{w}^F9xi%Ix4Ta?Jz}^>4`*pJ z`t_=zz;M*J-B-xd)id6eO7CD}mz17`Vzv{uDc0rIHRjD`d0wHsbvYS1MRNA%D06n@ zD09c>9?N@@*UGFg-?S{TRJN70)v$N4H*qX+*qxO?w+G#+C_cvfj|s)md@O)UQxku0 z(0@OnAe}9Q=tl9OSNF63A!vg=XblbkVQ@nT_uTA&MWAS?YVadm3jcr%{*yhl0kxW1 z=q~n?JQF*~s3u67id%{QVi&6j3g!TeC>tXhvED0E`EL_C1Z(9&^Z=%VIQsz0^#C$p zd#N+*jHm}cW>wfo4#Q-#hMql}xG!1zCz2R)Vn?L2r9^an=>N7+ zETAL2hN6{1Nq^u{crr%9i}4b~&v&}=i^`{ieomwce^Yu^nk!A9hdWdDL|#qNT)AD@ zLN!74P<2^V5X@JyvZ&InXsO(xw4%X0SSeGKQ+$?vlAY!Af54Yp6)e9JKBTVjt~P_? zx;@=vCw$L+5^n`>C(i*o$2^`@bb4vwyZG)^_?r6WqUc!~4B{iQo(6JGIl@GGG}oir z8wC5_Q`jhs^IZmiJlOXi2%AUrc($M}`wf-lX6_O0-|0Uq;Hpml$tfZkyQ`_Eo2L>i z3&VI_@m}!u^Y!qF1+yOOm!?y?zgoj|fPO{F{bIr-9FMlLw{hj*bXFj!n|Gv$nwa>shUX~1#q)RtSZ=uF$m0y%+(ZBT{9d|brV~Nj> zDgLG>Q?I&0XW$_s-(1G3ud*xS9%hO;s~E@MdaAnX37d2cxT#Bc4wsA`PCCT)bC0oF`xDAxxk%siL%;r0afYo?ei`Yn)rI5;(OaaNs#zo`HuT;dyl|?(+9<0 zsqd8c91I#;eC;{$CHo5ae4zEpg0@QW4G@|UmG2b>aIXu&MlJ%++dL=-RrD66((Y)t zJ@T(a7k&cYPiOBE$gNctLcT9__7C%Qf=#ENZz|U<1q!gDuQDF26sYal{&{q<_Xl(J zh-d8#pOOwnvPh9aR2vjxH*}DllC$W#W=Pse?UEWYyL1Lj30q*kSSW8OuTF2~JH;Kv zOGN}3uWZ;CKJm^4#WVR*g-yOg@m{_NbWS71Gud7C&R+7V(mk>{pl&-!+Dm8h)d02D z<59Dsh7b}um;++>R>{)YAFe((WI_L^+ z4;X{>0`9=?fnS4Vg1tjCVe{J++#h;^VogbSscule-5pVsevcn81!cj&dKT16ebKk@ zHPBf)4Sz=~xY?J4a$wMr!D4qVus!HNd#@!JFLV-NBRtG{+r_8u2lZrwD{(&DL}lR5 zd<9}KR`L}NnsU_82E+aIg-U)sbcb_@fF|K>4+r-JilI}G4XaTioJx(r*-VD}K8*+^ zk@IQ*o=q*D^c6U|AFxW*rwgDa{ev;0op4pYCcoV%B*A-mg3+P-K?yo+C1CH~gxv^q zWF4a$>n8h*IJh=o2l;oti0ZLb+C4H#6ostX&ZM6y% zv{}Z((L(>`s3MYMW=R{ZNkb6u2V>W6*Dr$Ax#rwpC zLCH=ePgaDE!?oZL5~Q2yh^!^4LvNym&m0an{CVzr7EBFpIEY)rFxVAdx9-7LL>1@g z$y-U6PeD2a+M!JKnRhb5l|I6=Kd17(g%0X_!A7w8^@5kPB|R{eU?`J@?grlkH=}}7 znV%^H3t=cwJ@_A5jO)NCw*_s}mI`BKB6o-X1o{%A0=KC!d;>+jSZMFRCA9LNpv$-f zQU6DuNZ9ThNbix#C!$yNnfEvE5;}u>dtc+%hjJF!;alW0vwN%%ChFN*wAE{5f<9)Mr|-HvLMqLYcuPaDLW@uWl&F=uR-F z-GEPdFdP8W!4-_;Ny2(bW#I{J0?U;%G(O@Tj61tw%ex2Dr54;$4QwE+>2!#kY2naE zMs5q}g>}JVXfz&xAyCU|9F4NsRoLm;h`bRZ@ek%^lei`NicO?RsFW?C;<26{{TpCa z3(K;k$7K(taIoOd=c93U1H}6>aRo_haS3!3-%<5>O*Z$ac$ugY+U(DmZ71x)Ma54= z(I6CjTG^05<1t#w0th>Kq162~Y=&2}*VY6LGm+oD5sT*`i zexP^vGLd{282eH|`Rs#XvKhZ6um)!_t_CbH0nX|5!N+hrjzEpAjOZu$>(`+i^d`a& z|KCX)v(P9^i-O!dZ471YUV@fS;7W^fxuMEg~{h4KDazunF4WC|QFq zNfOr;b)^5Uj5sCY6^w^FVLV_6{c?%zlR zy94gI+x}(#H2zftMfR2So&Fb?8i)=aVejyvOp6ekRc)zkrwnq#UU5uCt`|JV6<_@D}ftgJ%?j!n4-2VU!g#kp>02oXTf)wv2 zJ_&Yc8r**k*~2XC9Iwb-xv7&II3fHCCu>J^7~^1WT?w+duIOyUCfJ0_i1&zo2TQja zd$}QA34_@O@lR-R(;+0u#UiVN#4G?0|1(r6uCTARgFmte8K@xa<*=0FJrZEGK{E(e z+vfORM|@V69eP@9mz*c4cw$#=av6F+K(UU&bonSu#bMN?r3*S0tZ%yu7(tJ zst>`?agKSq4UhW{_Ncr3&xqP~Rr()Fp~YMu1kbO;Wd_#%Xt+90viC)>=XYX1t_6eR zSG=1eR2zGn4tL8DI4&Q(P$L*aZvFbm$xaXjI0VxQ`;XggrLtPk2{42+*W;6SZSt~0E(_#52LDe#$pWsWP8 z9|^CwO`)owT*IueZ(xs}N?&BRpp!nyTEr05Q5o@pEt&}rR8?ZJ62Tv=tygq}J`F?! zAG6D5!$hOwdj(OVsluwiOdoAEqRZMa-Ij!Zc^Fz4pU|C7gt@m{#A_H{M=`eZQKQvU zX*dr@<5?;U(IOqFgJj-|U_6pw+>8-zVofB#^;?tqxe2>w5q@F`Slzp#6!;GBF;bfu zqv2GwXY%etltx@c6HkfX9<%PQ!?w9aRG4_n4*%F&SjZ-EPSr6wdiX*UU}Q_fMm(@j zlw&unM*gT1wy}w^d_;_OA7$2k`1R9p(Z-5Ov-&%Wp28bmp7U@B+iT2P4d2@Z*3@Cx zQ0Kv0noKUs#AwCC95oZG{m2}&;p)HPsrP|z7zcKs7r!%+{kJuK@)4dm2OHmsPy8SD zUV`e(BY6Ct2Ud^`ZWMTePg_V2-zIVsIrP$x!uwsNM|T$-K+~v#PDizQJ+-SftfhtE zEB2#}b{Ic725m?g-30f@Z0(`HZ!LcE0)M`SIrEDDl)nJAnrvRoCGQV888)HC>N*PgS4|OgmoI+h7>P8?zU$hcosVD5rajixU>q+r;k!;JS_`yRGDT z3i1D*FuolkW>$!95oP|)n01BsyA8YNMi^?Y!nXbbrME=(Jof#gE!V9zzN zgEIKrcKr6b2$|?U=kl;deGj5>I;6l_P8XG=&Mv2BRv&H9qF^CaYw#iOkj0~^v~R!t}TMVNCpnNOR_zemClJCMJp!v9(kp5uEc zy&Q)t_8K<(if6K;(Ic=c~nn zcN^Z?r}(T5oEOHynA;x)@87xdE4)rYRzY7zbUdHdpYck@yB7x?m&j*0VY>~h0bhlk zYdn#ui@jco6|6$coHwu!PpJ)^4K`!9oCoXPAMBiq;e_7J z%B#rLKeLmRgE_keqcRbhGxBgObQbHl4?M@+iOfdhV-m1S z32VLx*Ez%Q^?_4(9I@I;)^0swXc7C&f9Tf_XJq~CM0ctCqVO3A2BhpqCGmdAsA1Yr zI5@%TTuo=wP+pTjvYvnq@Wa0{=v zqn!6_L4R;E%*j8%6;%a^-+^`16D$0kHL#44>5R8ZVkK0?V~l20*3juYo!E67D=0HU z4yyhG>u(d>(7PF-Y*t$=yM7zK+F|d>=)TH`0a9QLea%Y#iVxaER8xYJX)@MU1^t>+ zc>Hoabv3xxHE;|+hSNR?q{go>=N@LCScet=gB3r4$@&h=#4c0{`!O>gxtbfEbU!R7 zVQ*cUHGU43?kd!>+Thj7N1O&{yqlSs!_{gKSJVo%XBU_YvTrP0*+aPg6|VaR9#bDH zECEL5s+`x8A~wU7JqWhxY19K25z9BE2PG91){DW1#DQCg3_5Zq?gN`w2edp25lwbx zC))&<<`EQN-f{v`b1I7CL_Lmp9sLkkN^IPDT}F2aS%wqvJukxY{IKVr#S+i39>=pn z%fN(?z@HjMqELQkngAnp8Wk8l-<<&`_II8>8@BiVV6T3Smm?ZSAE*hweFrl$hq$*8 z8lz%*v5UiWF2O>5L>BF_zW#VjQYNs_7lccG7V|KNIbKZ8bTT{oTC!In;`}b``JIWW z`_tdQ4b{5!!~$}5$JB@j>h!zd{qD|=(VkB%O*A6`;hxMV4kV7L#^=@IKF;7@9ausD zANL*9Zh#pojn`|+4*4@NW*;Jp!Fy6`J(kC8Sqj8H3f{{z@lKjwTe@6Y8m8QUn2?>PZiOgZ?$ z3*jGsCjQyNXYC;px`BUm!gTJ1dGtf@E@!tQ)DV_1w+*>3dvFlelY$R9jgRO_=4%-1 zcL^uQQSjhZp!cUT&)kmqvn5v43J*64tJ_YL`+``lDswl9eS9l^;4bk?SVJ|LT$+|x zI}P>Wc;>4qt0fcvd7hC?gGD+oB8LA<(Iy|9zmof~X1cQinqdXg(LA|8yt1CY*0WqM z2Q{}8=K2%!Q5zk2ITm$_-RvlF(>0>1@mP$N{l~=q^^!ZjRm_v5^UfZgVKlR|h*fzHE$Xw_)d9x)0W9o({H7Oenea8j zQO^pz-)#Pz44?iSeCH9k_m@%|Y6DNl2<~G%p1KfTPR%%kzaDZQ5BM?=C6&asv)D1; zV_Q;uQFy(41kh_2QU7irn;i(@0r z@F3-}tukbJ+OZGT!V^V+<4(h(b2%Xu;b-=cmw3a>q@W>`#&bA{_1ZDUQyA|~jCVt3 zVico1l~M1)9Ccs>+u$?8b2Byn{rPx_I5at)?d6M^x+)kI6b8V+C%@&&e$0 z3^4&6o3-p5Ubq0uGwrh3!VgJ0#{C>fTzw#UR*&hz^BnNn&ux%G&zA6yc zm1Z_wC_VT&y@xHV3D?vyS6i^lfAN~XVh>Yzu7$)nXE?)OBMWj9#NOX{y)&G`7GSdj z^G7?Zyl{{^UW%7JhSj{qcCNAi9wZ`q!peKbdVa>$c47t9S*Kb?EfHN2KPod%8JRrp z@)1_Nhn2RR)7la&bwAem36AQD+*b`U0pUpA&a*Tg|mUGN*BTYSmH{fYP@leoVyzt@2=YDhHPgNS($E21SUbQ)JX$!i6_8y>6uJagE0tzgtj63yje z>o=H-1?;WMxT|N(Ni=t%=U!-K!tUL~$1-NJa=x`ZAtF4)=!O+?-f^yejn~@FHJ5Y! zOYBgW@n>P(?{$2?Id^Jg922ppGVE7lc#etOMLlBHj*Lz?zG=lun1fC2B^KSlRe#}? zn17}*vI=@Kwynu1T3N@>*ym2d)_IXTa$!4}`71M*e@pN(cbTUv_?F77#PFnNDVu)4e#?0@BPC(pT=uUXcQ|yi)VPo z$O(*EU3P?UTzQvua)3zg1)jDNtEmZlcuVYHME=e>g*|8&EA&0F&S(740p?*Qk;)D% zV=1%Lk-2J?@6St7;}Z2urURn z_l~h}@OjDDVr)8W1I9nYr27K-ux^IZ84atWXK zED3j(#;3l-vaVxi3wed_r6#}YVyF6(IlRTr7uN78LoC=8Yx|SkIfymu_+6kp*x6%F zOOuG6Mq}p>*=G|N%{Ul#a=4QyX1*h{I-ftg=Ia6i(JVj6ZUt7jU zP37qmD_O$KRK^qjj14xxO3E^V;Zsm8-Yu2yS?VyCChj%7?kn>Xeeeh?x#JPccz6tl zGtb^pnA=k}=xvu!ZY95iQ&7k&)O)8oOXNS@&kdXDe7aW7(TF zlEeKkfBj6rci-jphDdQAes(7j;tBlj3O+Bale-^JJe!~IfL%1nk24o>7aOsmDOhTE zR>TTCWM8^>KIQ9ygkz7v#06)tl|MMQNmvItXgi%{ekIs!HO4I?tP6$*Du;K?<=tob zexM#t(~_A}FxxSBIRhLHx0%=d{6q*%zJffffL-5ZpIgd|&cJ(4!lSgtht_5EW)fYu z=0p)oET!k2WFo=3tntd&T}!Hq&4{%GYA|W!s7m3ZD&cjDv2V8I=V}q5YxzAf8eF{@ z$x~c^Bo&GB`EmUid}9qb8tZcPUx<-sW2JpLQP$?1QVcdXBO2PZIkA__|Li2H7XdN_ z_c^=g1Zxt{_2bii;gf!4y^FVKO^|8VkjNu2GnIQ13fj9LP2 zp>v!a<`FL+z*g2W_c~VKdG><8@dpC;AJ%zH<+*NSg^#%_Gp}4cmYeStWNkIz^>coF z+JX75$^RN+KMkXj{|lCG!6!+0 zz8Idj8GHLCyygKcxII3$3~MwQAJPCHF%NrOi4}*(XA0-O-CX@PUM3tvwjr{pfF;K9 zvlV%bXLp~&b1lLC?-AWSV|V$T=um|(c#p5pFkj)lZwUUh0XueQs`qWNloFgH3zI9T zgl%;s>+mbN0Y4*Bj?pg2XxGGtR$xbxW6QZb%Smi(GrP|b{L^LD>l4Q63{Sp@xM@G{ zy<<1rMI0OEp9)7E{g}%feCx>!dzzCKs$o{f^PPg+VSp}$G33^dvqD?s$DPag ztb^3Err{OJVn0Rkdt=$pR^yBM;N_G&nTRoJ#H%EuAKoM1@=X7-hri%ikU_>TR>mgV zU@`G%b^gas*tpxrjN|~$;*)si8Fy}G=LnzNw)3pJ*e4G2I>J>R@&qsNYEJx|oHN3| z*vEF(;#~Ihu)^nJ{CqgtnaAApWgSoE9B?*&|2xB2hsXE^`@tn5kPM=mNNlD%{_Hn= znFmV>k7*-pu`c%*KCOJlZ+eNb&+$877}4U4qm%o+!x#qGx0GbrF0xWb6aU;LmI%j( zk-P-#^ELKq=02p488U0GGb@XF!W=KL5atn*ly zbAmX3jSV0|ZjKipK^(Cve>E&7B3YZi>IXBEbNKwx{2e~u?@94an|Y~EcQ9GSFN{y!mZ@<^W!NHM2ApFSZT) z4gc&#<|BNa4XlFa%c;aHB}eBapPd?9&dw12`PQ5Vnlm~r7=gC@X=YBtdq+4obe}nsGFv8mXxMgc zU?C3v_XPiWnpgPRUwEy-x6J$_)aFj|1VeDoS!*aPPSn^ zU%wN}jN$L?#A(G@ef9Zj%sda~jye-(7G%x&slmjPAIRdV>}WRD;u)*5_h~poTqT3m zo!?(a7iSrMvmSYr^$|3OiX7O%W6qn0nf)HTn(=$TFl$BGKQ7=iv#{+8c;gY+zlprn z0P5$XKoV^udwmQ9<}dIagroYN?#b?At_H48j9rS{DgOt}jrz(yN(*?%TjKBH*JP23 zuy-z|`kjh3-$b{}4fbj*+yr}t-ogbmKmMYp`L*ytD8T9NCCUlWN~=N-N7)kWrXhSp zVSc9af%t$i``yP1XW%s4ilueZ=;K_c4tL`S1*F((5NcOdQ zQiIek8!qn*dt32f(cm|4SMM|Mhij-<-XNYCAZ;MMBl|-(1r)?+&`V2Uq&$ho35spv zWwPzE39>n|Mkr`?K!3Xi8b-f3$2%>;FG6{6$NlAD&fFvNifHt0V2^x+Ht%A*zzWes z(N=WYob*bzW&a#aCoD|u!V_54ex^Ry2lSX(`cC=|&9`gpQ@60R&g|T?I9 zi{Ulg=N}&E8n_3FVIMkl4YB#YMD@kknKlOxQZ<(cw}Qf3OK#K58rnrI=KxuYad^@9 z0W%1RPJvTkGs^}WQFCZY&A2=3e=UAbkCyLR_O{NvCbKGE=darttfn?ZH}#1>Y7irZ z6^rNMv%@>=GWM_m?6#eFo)zq3%XzisC%%wLZA#RZ%o)$c4&0od5>qd!Lj?AkCu+pW zNGXzm^lJvXX_UAa@kcQtw*};6SKvW1IGbgVnHfX8kcJ(P3!eKMNFF46u3 zPC8C}UM-)if5RqiQ4UnrknNV%fMYR|uD4~*^^h-( zN^C#b9@(_^b@t2lL$)Wjch=&z0%*exaP4)K^=#J;Q(a?Bl zYwVot{05hQ5pK zVwJ47Y?N}B@*T|PPt-LvlU0vU23wAfR~uD3L&GJ-W~}1pBgUwk;>nc+fX<-t@%r{39X@{C@H8w``1BJ z;T`%h|AJd?r)Z#fjrz=Zs%v5FTbK=cJ^R&Oe90!5@q6(1WMcPKtg}AUHU@#aXe`ta zq~N>N-tV4Do>FwdpY+^?Q@o$Q4Vb4dXhb!kUpLh^8y4dR-m2caXh)p#9`Mek-%JYj zvyiVKEc7M8@D~t@!GwCqf7HJS>{GZed69pr|1NqVt-T}QSw8PB18?7A`V5>tyRT*7 zr@$0+EfZOPS!hfsLB0*~kMbXYgK-voz1iM$Z#36DgVxP`&TU~_(tOx7%8I*)|0VW) zM>pBZ!2bfbgD-+F$v-|6r-2pAfGun(IKfh)9z^Q#M6J(3w=F=WB879t68wHLJ6>PB z$_1D+GX2`XEjre|d6eEta8h-FEuoN5SE%o=({6Uqh()*hOm;6e*(>}%?uz#RSNnu}QZ*F^Pn`DWz+D+@sE%W}#)8_my zCogM7wkdm5PBZ%6isx<3>u$PZDs1j=9%%l@JkEUEyb{j04d$EXWb;^aSMwxuNsGpE z$eLnpin3x+denZnF1XU%5olvx^-M*#^op<=w#6MnqW_LiIB>*o0u?Y9+~I9}Z~^fm z(Goai8^YN#Ua3-#8+v2ux<5Lzl5{vWmL_m7P^Pps)on zJ7YUzs&SUFU38A|hOxLY-SCqkXgFqAV({vx>+QN|{XyMOyzb53$#I;hAes zC&4RvOzMJS{@{BA&(u=iFTUx%E#5EQrJgRHMV|Vex8Az+Mg2}s`)n*VQCNok*Y=em zGPvpe3GK=bSbsNP2j2`(%^gt78%U;d3;RW5BGTKqpQF?>mxFm50CU}2@aCh@aJmg9 z_y=ESz?MIh6i53rgt~4g*=)3TzoJ-?1aiKoXs5^@>K@UQsMi^66H1^W8ISr%BVxu) zM1w!Gm-gfAKhA%{|EKSTuby{>_ob&K9`J+rt;Ymc^>n&-V!aDIyF9(%Q)>>#T48r} z_Ze3@>Mu$+>{YII&XLYMdojmE`+AhSs@dx~Mx!vY+IKZSR7J)B|H z-QC=GTqj+_(1o&N3wfT89-WZqtLAUS@v|`9hHr%iLZVQ|SI<`wey&ZyPQjJrhpk{j z_lT#8HK9migWkbbAzQE^I#n;h#5Rx?g_pmd>pqY1MHTaz#Rs`p?2WBk}LgFS~+rXLBAhrZ}zC@G0u zL+Bvv;rd{|U>|N7Z5a!PSA0&boJQH*vODMO%bA(GF*g!+FO9jb`H|UU{@rrOBC^I< z9p(a--R5)VHRc`W+2$?g<(37Oveu5)4c4>P_qMmT>dvklaU)=yzTsJkqKsQ`(pw|< zKM{7pV82NyBeW6n=*WtogMv=Yh+C2?5)VoUXB2Z3MbUY6qY*m_KDfbf+b!i^$I#qq zqf1;aiXl4i*vJJzGMT|ciRmLpCQ$wcVx#75>p~0lzqgUxeIB9~)&^Hq8v69~1&S6fs)oMMBqSbEqR`-~I+25ELcDQ7_WHUN( z3Yh)nuzwGC)N@>CFH?Xcm_bigA$fIqD|Bnx5(iEV9uKZ1r*{cN(GAewML01PCztjB z{=$-E{9II$yMebGK>oi9)pi-kPc?k)|M@k6!a_Nr4a#+G!kUHf?7Z_tct_LG^wnPt zoM_izMxada0G-h9(faV(|F-Aa2H00R-#OoS9(l&o$+i`ag^u(h?n80J5hVWW3oK<&+-x_>`pTz;Y{^9YNq2rcRwea^nq@YE4*`$oQ;E;Sv|1@jg@(v z;nbmv0OL-bbaOMJ&*DS3-4NIXJR*WH)UKZD->LgFbG5 z?5fyqv6EuP$BcznG0kw&;MB?WgLFl8Pl+du+8Ww-aNE{{A@CVonZKde_YbjBjNC;3 z;}_|AIKj$MORC6u;xAtdUnh^oBcPje%k_tAs=K567R>x1xPV7{5d-8smBGPG`old_(DNtLR%!EOZmy@Nei!#Q8Kn z18SsqgA0QV!8LW|tZ|qgzwvMmRfb=Cr|3PW&IKsU+C|OKU=bJo2X zcuf~q<=|{^)1%3+RVEX4mfXUh^fMF(7atJpFyoh}S7B=40C>YoU~>N^dW>hh{-TH4 z7)T6MM%$$|QBQF)593)^M)x+?9Q0vFc$#=}$b2+H-*&UKzI26XpXe4oqY~T`=g>@- zqkOoG6J``0C6}PJ~}U0#5%!;frr8z;Q+mhFWDoPxD(wY9U{jJS5sGK zkHVAdS;ne8iOPF*&v|zv_bvBG_a^wW#P0R3+pgZOy^g9V(oS)lbT@U6^G0~D3!Q}? zflPmO;SLIma$k8t@OAW=y*=19~2Rkt~jt>N6b4`ga%`h%LIa#5H*ux?<1FN5_y z1&i}A={)IFG-X?$pS~5%*i@9bERyC@pSY%^3~Mu!z6&{Bq`$%hnMfWcQQk~Gi@v2E zbTc<3|5S)h$vfVLD3B!jUvm09rASdmq0_!6+{Z*OXhqj+S2cWZj^rm3Tq34AL#NUYD7qv913jNEe(m67tDoXWS z|44t*5MkULwL9uP{mJX;du>Cn^E>))`>9K*rz)>0CrK2Nfr3`>!S|fP9-81?@5zD# zIzYE+oNK=Gyk()q4?nHaG05KCb;bFEd3fYl-_63$a^TgciIg@hsWLGz@FvZy8Z8~Q)M`717I`n%xtGn95qq5mG4F&2O z-YBnJ7=YsFKv+Hp_`Y!t>PAE(z{hcy9PeeKt>&EZuh7-k{It7&WC9z6^Y>(jMgkc>+W{s z2Th;I>+0T`U8;8K5oko$SEtdxZ`7Qn&pu1JO*Me``m1A5=yMq@ zd(;n9i_~{ib7Am1pzf}UWsNUaol#CxIhBXddbgpTm88C=8lnECTCcvS9H?rm2*F=` zThU4Gk=tc!(8CSL<)|UXqbR)-_4g^Lp>>q5lNuxgIP*88SK|(~nROtYkCW?|DGI@g z6wm&VPCln_=v`1jf9|qC`@nNyp3oM4ih}UStoKy)v?PDl5`~Nsp1<7j-g%yX;d44* zn{VrA{$Y|^wwcwI<>ms8&Gw1@No4uv2xna;XII-Ut0Z?&jwE+=&RkTW&!I(Z14n+F z9*yq4tKK$_@AeUn9rls#ELTfmsIPorg}*tBD_>c8mwl~$gXm2h%et&ezwCEnQj2?% zyNg@yo`7yz8E=Z`5DIr2;m@cqyrc`+>@Dtl4#RS$_a5u{20aLEi9!Ab)$D?QP)u*~ zbK!_^7cBY@kflX9HT+C(U3s$HzXVEybw1<&A7|RDpvs28NBsvmp2eaKqT+Tjb~{h{a3^5K7n(S z6{YqdN(;5HpK0&~3~{z_dhHqZh3E)J+C4Ux?TpQBJ8he6PqsI3h#eQcEL8o_Md&5y^l-bI^kL4x$9kr@?N}ekgqgd;n^r_cJwu7US}}- z^#nPcs1<}2!gQf62=>lYQZJFswo=>t70iGcEM^H1>^Xt+fnUI2_aw)D9NbMj=l-YQ zPY+PRXiPUmHL~mpASthiegmJnhYqIt^bW}Q8Y)^27i>?MCx^+WqVhdYzDvGDo-S)A zUn#pSn;=h+w+_gGM(f#>@OJI#G+v2xK~>M%CyQC;cccntpd zH+ZvC=?pkUp7~$cAL_ymQdKC)iLbu@FmY%t-w0nk{_`z4ogr=mYD%B^yCZw-V#gXZ zqZiq>*;d(h*yOI-uHXHUfz85TVYaJ^Yo=|4ZDL;Qywj#dropaXT@A^r)S`a&Ggb8O zz7M`+*BV#Bu#%;>1pNPFU^pw`Pxsz|#jc#!1XILHFz{8`CsRazQFoXSes(u@-*On7 zKBvi94es#q{#pJx!3D%0Ed%$^!QMw)JdzH|`{?s@^pEwAg)>(t)ZtkM3Kasa$({ER z4V3JcoDloObf}3tlQ+!_7G{O!gyNamH{t@4ZPGi^Hqr@F2l`V-rEg%1ohLmApT;P1 ze)EZ;kAmcJf;(L=3F~jf$}YgOTwmV=3xJE5d>iazYd#3D2C zRfkaFX)GTu{|T!phjdvdSwFb9jz|~4QC$qZ+-PM96bdR}rze$vtG}pIHKItJwwhL> zljsgdJ&d}ldZ2nKi9avYAW{cf9kgZH}k z{~VnKcob(Bg?D6U)*=LgySuwff#UA&R^0i~;wkRMi@Up9aSK|CI|K;Pm9hQb?XwRp zB%9sM%=g{z-gD16cOr9DV*>XBjq%2R;+1^GhzGkm*~OafNwZ zbet6vlV8Co52bh5u_I|N7)m9s3 zQTAXe>I9rS!oi<(=@@G#k|}1RnH|xLXdvT1JW-9t<#dnQ+2L~h?kL23_?K#B$5Zv9 zW02#fW1OS0!>_h-h)ht*;aJLk_BvKN9y?|_#^8ya%khD!;T@R3HAHEwNH~Z!Qhq2G zl^e_|D5>OB#xc+I788XA%N^zHvLOG$jCluBhB8a}q#9x)R$(5oCH3dJ>o5NDfye%WxXsnVZ)ha$fK!>X^E>_^PXduz9ULQH z<2GKGIh)a(&<=f@_E@W~4b2_2jO?T);RZ{!mqH=**K(s*W2ogm~{D7 zcd?ci`e(hlQP3!a;(eLkL~o<##6@NdJ_cp*$VxOy z)3N%B{xe_jie)b3MW5+tbmV4&&e^oumXXz(#20r-ZaDeE*Xr1e@XraF*WI0M4XRbe@jFm6%7T z-9eqcmp+b{`JOe2qCc%j)c9vW3=dFWJhj@;4}ToY2$I!=YW;6|_W@W4r|4vqpaxCF zi(;g>RD3Vyk$U0s|4Ay$EVn=9EKIS^OSV{%dDr*I9^bN7zo{#khi*7Ba`G>C?!o;j z!R2&s_AK>0V2XMfPgc(=_fq#&*G;BIHg?52KROFJYdY(54($L_d#Airk|0+6kVX3h z=C}5zr0j(4y3G#*3uz%}RK6}$j6&hXCl_TW2;ZzT@xjhMW<+&9)=8)u_^ z{!x%FX5ve87SGL}zEQr;U<7gaA*N>nc5eN$R!@J#JhywS$VW^KT*q3>sa4WSYQweW z%n+KaHPIdVTk6lXc;O!~wj1q;WmV}puV?)Y$8)qb80K8M^&Mct{jilJYTpz}vgeAU zWB(?k2!DXZoM67hTJphPaCf?*d{oX;H{4PWsn^s8R8hOs>9`e1GRG5dUo z>$K~cOJojbX7@0+n>^v3E3^A|*J0N$u6C|w_?)eG{p-5m%EL6y=}Z~wmr*jsa$89Auefk8WlG)W5YwXu|>JONq z_5>FYgK5R3{H^`3iQhk%n3w@qsNejV{U`B(PV(JkCf81!p*&;-NvSiudAwkzLxa4o__xq;$)A)z`6MQ@QN;P^^=ZGV5c$b|Fbi-qI23{kd$m`ePg4!JC zkv`P>%LA7J;{zY~06)7r@GLNdj#QlgNT59aMBVY8Dy84U z|Lh6qLRR{qvN;d`lTv8FkD6V<{`#W@dPIasVmD1DTCRp?agv-V6@LC~STrgur~_dB z`=|-3;4v$UKVS^3B~Dz!-(xW`_B9>b4gcw)iqXj(jmq>Hbz=_BiyrvJ)Wa{KFmo+R zp|mfHx4{cBLEI~y1&Mhp&8GLb7oXAn(ruz@1r3J0={{i9` zF&3AFSh1nh1Z-ZSKOQD_5WC@r(hF>rW}iHkiDU)T?4Zo`nP#z=Y&IR!kbYNQDW8>S z=DQoL+8g*`?WGntOGSH)DU{V6B^=qAL|8y6#}w(wpuvso*_q)zlT50p6egX-GvXYz zPz;=%f!27uO1|S?G|?P}=fy_6#`Y5DFMxj6V?IuCJi*2W<^;;%A$HAw+VApPzD3MJ znC0uwY|dxw_c7iWZv*cQ??i7q(40}ea9?BJOOV)E%$3^fo$T}YO8C$DeEwDbu7RI^ zHq0a_=@M{ z5Im0yGEsdmXHg|12mY3u(88uSyWj=B#k_77BNl}8mSJ$&-tha~!>_#yJ(14hI69e~ zsNZbTW$Bi*R9++3wYQ{)_{=_vS=Ub0te`PKQ*c^8Z?+}Q%oOF35oS2|a2*8=AjzLEn3_JJcm^UcfA zA^sDF$syv-SKO|S!OfYe998P!6PQ71sT{H^_*yNqca(3-bMPW7L%rDwZ=?3)$SGn| zX}6e$*!_vAyzRuSD6R9r;dl=(sv`>3an>$&$yzGSF|Ys>>x1DpQgCf6%KVY$S`{4n z&jd~fLenmW5`ovS!(TCnb(zlrUeJzxzQSL?zrgQclH)$#6<=jvZr?t-P_4X?bgzyv zf1{D#<6rF`=fCLRK^N+XKgQpTxKNzQeKuZoPv8Zvoa2eo_ce`>yPyb#yC34cZ^-eVZ7UO;AuC4yr7?+(KxQRHxl%B#&qK~?4yxzn+)@* zncuu;)G_0Xjj)Zzn90U_aL9Q4AF{)(D}ZWl32O1ac<$sCcA!a}Ne1x12AN7cC0-V< zixpfi}QptAnvnpj%Wi<wvfIZ|D+`>0B$~oD^zmbWo7J@>I@RE$>8N875=%g2- z`df)JzzLjq<%HCV4%6#dmuo9Lq zIj9fJgdJ*Os)_W@XlEAYY`9$2UCZ(4EbScQ+~j!g$OASg;dwZliJ~i5gFC37Hp8u0 zMeJ)X4VDUvb;P>lQCZ;lG-58rVbeuU`kFg&1toeb=Bw@oIl8H@)*I_3*^?h}!`ntK z+EI(vUI&K3CJ3i}iXZSKE%ad2#-~i4N;kP8dPE$r>wwtOWCHZBSHv@Q>g=U?JcvIU&v+b=j8|{P0o|wOC`8RLE^-5X(k?6GOIlW zzrsI+T;dlTP;TS8Fg2vhJS2`+yl!R$WcDONBr#{Y#r&nADYZzY`fPe2|&gcuR0q1@#oXxTu z(}@k`^^we;`l(&ij)Rl8!vCkFk;J1to(IupA@f5he!v@0=zCAcf$<~Usr6<#vySz| zY(?iU9bRg$%@b5hPt9ZI46_B!bkkt)H>LtOh~j1d^+Y4F7d2REaTXbVb2ztmaE7}L z3oIM>Yi)e##&DAV!FgXtY9oDw{Uu7N^aHBm4L1iD*+xw3Jl zE;v{mKsRj%&pE_y?;*T{&-)(L?_JoPHQ3E#;K2m=cRuow@woma@^jZw<@9sLJ*3mq30k>~s>9TqjIue6fcrUmiY zj8PNu+kB*ySCf@lAk#xso4TAHRd2AwaOZPJDXNYY^eT!lS22Y=cB>MkXK7Q0*k{{w zz^DAqG~(s*LHU|wlU-6Z$;P!wfRAyLswo353Y+10H39F*0-w!J^?Jtmooux(F0r$4 zja`*Hqhc(6;sG72L-aTuHM4BiQ%m2;eSRy`Wv&oE77N&O$>QYrdbC1UuVrm zj7beFX02}3?ob6kW#!z`UJ-jFeKcpzBi6A^?@1(SK^4)FnP%&?_S#-nwiP%Z*a(y4 zF_~;}aLPzxMt7dmQqKk(uLel;KK8+By&SBYuJn5|vq#n&CqTG1!_0bMggBMG!Is;L zUK>|vMR1x;K?Z_q*94Ja+tXnQyN z0{dU~(T<*uPOhr1d(OwsX^xW)$(g~q8LnA-cLR4zrj>Sg4Rq~w?u1tm?Q}V6I&#xP zEXL1VCx7^r36_a!6i8$>=M%>x@{Dv2KRt#DOocwJ{Hb&%=0woDJ&q^+8P;|);@B^e zAf@N7<+8i%b>Sx_aFX1Y&P!*+ZTRN3W!7LKckbsUt`MIMqeTS-@bwTeXu`0Go>|uq;@Y*f%-u6?SaW$-S^J7&sUQ=qyUj* zjJ85s!hNX;SFI=hY}bkBJK*AE;ohbMoLW&3=lpsVylQJQp-2KZ8IMC)O>+iLieruD zAYez0i})>`w&q$Yo`l`-wu!+ly)TZZ3B-=oWKkYmT5xCs!PkN=;hF6wj(pLq=`Wny z<8h#oz!dM?G?BS_=k43=!<5cSU8>jL)iO-is|mmSG0w-I)Rj2+_J*ey2TB&@{L3-W6?7hE zigsStNiyMmOh78d%+f*jzvW(3ylv!{T(>6hr+;uw&f?ZN0?g)pNE=TKKS3`!57DDHt({-^`$Bp`4e_B~?)=5M+u0S~ z>kDUHvc1`^GtSJe_BbX79krcj9hM`#qpV{Tnc*nry-mTNd6#-tO=fESTy=|jpO{il z>8`A@A7yf4e^Fa9f6G8Dh*5f?L%46fHzU(-Dy1GwEtgshjzS{$b&4;e@3gmux2rG7yN`TiYoJJ= z9QomLs?%KlcqS4L^o79=Dyx6h3|O%HgCkMoKjO3Pp<^$> zadN_Xt_Ol!9p#FXn6XcKEy+qgr5!7+7-!c9XLeUT)@^>ruZ}MGde5iNxl#S3URN#k z5J>w=M;YfZ=U!*5E3131`+!>{aujvcakNo-E6wDUc>VUIS5sA*2A_H!9I=oJqMcR8 zx=cr-ypfKM^jUp~UYFW)y>>V-f{7{1{1g3^;AXxfM*Q@R24_(G^Lz(DFn93tRozI+YoDr_- z&YRA|jtJ*K@W@j1H!iEC9Lv;nj&|xJHLcoREr)iehWe}en%8Wk^kr6eEcM4vqIO+a zLD}T|vL;=Swn+oXjIW@h$PbE^4_{p$S@m}Ci6Yd;`_RL5N56Ig7E>kM;Bu3f%0#`% zAmKMyON&sQ>_T-l1>RqIkn~q*D5inkRK`~|g^q`aFY6b)&$`mbzRdppjh;k)SmCdj z#rTZtR*ijp8ceYRm~sLLRDRzZ?+$8~kw&;t!wizOUD0ddhu$PLA*ET0H~Cg-UuIRt z`XaRXfz}`)kKrr~_nF?_e!+hw&?C@WkD^C;3y1Z0;N1oM@qulDzD7=?6FsLg=!9p$ zyKYPWvIv>Rd${u7$OWs?ugHKR&WrBrI9jrtsEK9N!|!oKS_4j7lew)mnK?O;#~<)> z52M5VNR+IKe$7iKE6j?-X}BDy#s=#kdYaKx3@=cEWum`v12xJ}_R?y!BbC^X`NVK4 zg1tCc4}n!Z4z@xJx`#P<*}s92kOzm>%VYp`#5-tRTGPjT&wRKB=vy9vOPoOy(-J=A zHO|+$=;fk#PHl3(fp8s)iwnhC_=42}M~%1rPxvfu27B_u!WafuxS+HQEOQ55i{rpe z&k9||ro@nAASB)StjDQno`PO>mj+2sIKRG$g{1n_MzJW_Zilo*)@w736%G6NHO@|p ztdI0)*0Os3hKGC#E=N|-mOZ$&UN*9uDtfC#{8SgCii%cCs)L!Rp@l6DAI0pUQ;`+Z zWQ|x5k=?VxlO2q{7<||5j)~0k-s6h#)C?OR{vdpjCn_wf`!{z#_eS?Qr`r|Jyf!y| z)UiqjWxo(BT*5_TAgb_UTyxy-^Xzn}LLsW*)|4V#5P- zt~ru;n2P?bJev2v=uK3@=kEi*Yer_lh-B26t&2RT0E+6>_)qtt2lJFwzuatVI1EAG ztZku}9EY=aUCy#muBzzFK#1N2M#q7^8P#xfiI($e%N3)=fop)61`gFIv<8lNOW>~^Geu5>t^n~B4Q zW0`Y-)6SHxMQ$g(rWnsVPd3kP&k*L-K88CL!z71+)Eo`zW#k3#$WOO4($UKCP|2!l zU?NAsGP5&p!=SfS6VBFs@VJ<v+BXUBxEiM6_H(==0qt3N%8aKN1e`9oQh_QM=~F zVKCn2M<=@hg=HgK$k(Jbv0@F+S_9v)J^z}E_g@J#q@_5aa)FekrQ5dy=1nnnU`d!# z59nn*gGb>ai%d(u^ayzNDYCX<@J3^`bMVd%;Gg~=kcnDlyf?k~&y>z7!&ADZ^z=ph zE^y7uXfCqD{DBaj-6G{$aul=o#xpOro39iTHgw;3I2Qw{Px{geGni3bgdV2@)k+Yg zb2Y5sxyA@)!;UgPv+{@XdzQufCnq|wbg(9i!=JoFWShWhw5YeH;fq-kpST!uryn?1 zj7MqSgnno`n9;k@^j*RgauB_qBFvR;iA&lLtFzS$UO}4RGuG2hoc$BcjQEz>=_LDb zZ`^@)`yMLZeyCapu;+K70@mR2=SNeuf;?mn*uz@(zb0fBpNn_JT$06|sVR0KA2^Iw z%?=Kklej&P_)~;kJ^=iv8h6Qo0xreYg#P7j;VuzrB?$Xy-sb@rQw~0R575nBqAorb z@`xF6raQxl6^U;70I^~*xM(l%*916`2XRhsMYkmf3WMXs!&Y!m;)sP^=|i?c*}4`S zyE4e=P0o>4eCEkuFZ<}Ll)%aQ7tqzNI2xWrEBik_<1akUal#w|nfsq}urqgf@9;Tk z@h?C9$_W}k1rDs7Pp!XpS1RG|o(*M7u{KK}OpY2f0&c#o%!@xDx*PycM1 z_g?BD=8|7YnG6f^w`3Cy+Y9En-%9G9bUdj#JgG`anNt=duTCwMy2v}0KHGU;KltbO zHJ|nZPWnqS1=0M08tSFdm0I+RnFF8Wv2aWtqOPim&T<9X-}LB*D^ZuP$7{7F-lqb& z&u^^$7~7p}=1KD0LF7W8i2$`wi|hr{$g5vOD-%m^zOOE#7}>|Pku_Ql zl)HD}gXN`yX3{%VOl2mMZ-OH~&}e98Hm~BSeuY!23aZ^*obe7h6DR*hc^%E92v+7Rkc6esWapnYp8F|D$$BZ`5(Acth}5PB1{fp7DvRR;w`2|J|NG$4__$< zyqh(6bY8;yT}S&|EtrLzGYcvgAD(_TR%vCJcFFWbs)Gvd0DCHlYjHEP3Yxpu^z)PH z48_65`vrf8d+3Vos7=4%uC)WL`wTLXUYt>Xn+5PBZ(!K7!=g&6>&nU#Bp zeONs-uK|`rdnT=X^1fwS=jYV7Xmu*m>+EI9|8X?!#v}a<$aQVs44>U6`}V+i-a>8? z>!0ec%QX9z-sh?Jyc4`n{CE8M;l*4u{V=Cin@tVX_>0*p)ntg&aDRjpA46-I641X(8CtEStvxILGUH!bIwntAGuq6A~uCr zljc7+@`B=gIw~b4mlQ3hmA8P5&j5e;O!s05>iMqZIM31M+Nl!C5EVk2_J>RqiL>QL z8L5b=sCrM~cX1JJ>t?W(VQ@MsgUKd=hLi>Cw1fss2QDnG!V&#uNS{l_IT+sWOZlAq z4L0v+I6bA{)jUEo@sY|UpIA=(M1OBP-U!d=wY2863F#@$^4KG7Ma7$5x@n6Ls>2v9 zfXj2pvn-6^qO2?F_a@O;VC7Bo|3ule{iDM~a!;l%I2Xy{X&1lf0FDrF}8*D@t$cxfkr? zL{5by9;Wb)sRH{zx1)L9MVni=PKEiGEefVhHo?Lru#4>}EYAFR;+WPc>j+5FdveVG z@eb#hUXYhMvMgu)0ob&M#cSlDb*OIZk+Cjj^$Zk0h)yYv$z1v69!!YcCI2f&+q=-C z?n#%rJH4z;%yBwT&C$+2(*B9>on?M#C;A>yavj#dT)C9JJPh69_NT0jXprbvtd3T! zje;ObXQdaQoZ*r{C;b%b=q29mQKBf8V4XQd2WzGj{lBuJi^o!Mr)+R#$B<|Dg=uyh zho3*-CJn}?{ye#II3BSNtUEB2X5j=pm6NF>o}$rkWe%HuLxV-R-Vltm#z1Wi~wIkO$%4y$IY1 zJR>T9)gS8Ph*=kLTue5O=8Eqo`jtjMF_4pbAm~m*rbe~IBl)iN3=h>-_yKHS z@5cp)<32Ki%B4KIltJWX55N)g3Z=+APOxJ$(!&no?!6U<*?Gb#I8hzpomap~btW3A z->Df3fjLeBVSNiv>Jk6FN$y^j^>hc1h4NA*PNN~C?HeQSMh-~ly(6Vx0`Uh{?fulb%*;k@=0 z@MoZ}f6m{Ue#jPj`C34vKcZ-P;Ia;((|R6GksI|}S=a<8_3a?;U&$vf>c5gxN2B@K zK)s@wAI#jGm^E-9Z%Zw^1k@r4tx{EZn{}z|dr)&-r}hfR`JfuSxotSqq`?!u4_&xx ztcm9I=I_vFmEcCVpe|ekPwfnMcPIG58TqXIh)(M}dz`(r(nPteJXF%D`PFzuP;Bz` zWDQ5pYh)4&s7D%6nIw>hT!*oA3NBz@YPy=_9RkzFrr_zG!z{@B&}wE=oZKr>1LPp5 zcn?4N3Yy~8;2RaG9z)mnEZ5hq3wm3vCw$`dOmg}_H`@zC^CeRw*YRgH(*Y-GySV=? z;CG(^d;XU>fj@X$)$h>1+DN|lkO^~nL92cP0o`c$jAuq$W;z(=TXO<;Dde%-i`h>R zU@iZEu{<<)5?%hpVPqR|XRmn*KasQi_avOty?k#Ok9E|vD^UJ7re8wW3pHh~5S!mD zOy=^I?#ds$&s~&|9#b=%bc=?8yS_0$G1H?gv$6_UkIiqq(tdnQF2Ewts9Vxl60yop z*ESoqQ4y;WSxPVB?n#&}Ub48i)B^LY>0rr^aOtiB7dYgv74q7uPh~ic9OW;Vl~3S; zRS_zK2=0bsv6JZ>w*(m9Fsmkuz3Js1V`^9ud#@vB^By?mi|EV!lnr^IeFi&zJTvHK z+s~jAuq&CAhDv|s4?6JsIm9e%}0qdu%RW{ObTd7n~Iw>le)^bWmy7L*8 zS-isU_PI)-}|#3FKWV#L~8~P_7A2h`E`Gq5aWt#&BIm!G9Y=ujzMK zaCOAY%-hUFO_rPaGFL!?+VL~3z>v}kOTd8h;_UY~o=y{Sg$Z%7>(ePJL2YVhw#y#w zRau;CKAD0w9L#dDvDJve!{H?i;+0I4Y^BemYqOtI@j6W48T=Wmw}4+dfv@bNm$yOR z4KsL(o=QdD5HFudcn7uNjklo}Ga3fyBKpJo$)UV(J@UgUp8!+fA-!WCe8-z~YnQS9 zm+*Qz6AhHAm8(V9? z9XMgdkg0wG>t4f^Dn#$?94ORhrs)0+a&ZuZ>kN#5YvOp2F}M6tnk+ZP_2;jB zJ}pb2qwVd5Sp|*lOYCjz>o`RmFmKx^&C#O_QrdyehW@`p*#%NNN6CghXN0&!GD?jJ)g+jl1USOP=n2|uXa%pw{CGwOX5n|458>n!I$9X6K}erAs^~u#=A4GI})!z_T6(+B5I+ly*eh z$g^kCh3`y%rVstx5%?O^*Hn1z$$=iMh5lMbrrMRzveR$gs<+k!V;^Ub2JV)Y&)=Tt zwjEsl6j{nm;|Mv~Vjlm1&9`P=&06y`5yrzDnl)Bhu;%5|%(rpBZN`0%xBW`iRE8Y5 zI$e<~bafRmk!+)`I9(hB()v!!3JdQFJ=#yWyTmcuy#`v8Rj_b=$d#Bs-Q1ol#JXbg z^aguI<(a*S;)dln1Xkt-<-9URiBmQyMb#flA@~)Q=$STDi}A>ZSSJ}J?Bt%iDCiBQjRc6DO4e6Uwh_99ZR&#JQ7n=nz_k|)bI(WI>ah3_SwK#AH1 zF6t<_sr`vBDPoYRP%}YuDl(bwIjea(UF*(d{+ZAb?kBtIi0f9!2RZ^Y=Q}=vFWB2t z@DcuSAQXpjiuo!f*;#teB?r&GRN?ZJb>b16`1*8oB=1} z78gVII0iq!cI?X*V4_2KMg!b89#FFn0K+Ut_FW$I>p7=KBf9n|emRLcaUKn3-fCI% zq4Ab|pVn-{4AWYivrZ_ffzunkX(_r3#bJ&<1CcEN zdp{%kGtI1o)~6xU#M;ooY{75d-x@?5K8{{y3N=AXrWWk9Wb_${R0X&B`wRYmoGAvU zP#@l4uGvA(t)s9q&%$KvhEq!fQM(H6AqOo7OsvAV+V#hWYb?rvUqSh1fNgH$`b-C- zUBjJtN=~ohuHF}J^KCGnALs`X=>L@#BEa;|3N@Mh72+g-icl%5R5@SJDsO_L5DU*I zhq#0a>onZqFVtSqRKtCx>L{Z6NW~=?#)l=gkn&4~rL>$x33LZvphCDzS8_Ce#^RO| z13p_HCbbK^wi#G&VdH#^|D*$F=aFRXX>Rq({$D=A)cKu(Lj*m|jEc2XK5fWp3bP-wFkPZ5J*xpc=39HY?;n{d5=PxvnRC1k zcX=wlf&IASwZXUxGeM>*C{{bJ$r`@yq<2&cY;O$SW6yDCtjx5Ko}d*CVTp#~cv7+z4O8Ni_FbHKvn*VtBAqK9GT>B`|>XYyg)_gpf+*)eH(X6oF`7@Kh4Py1n zLdd%^lJ!*;M7o$N?V?9Z!o zBBL07QQP08<1rJ5z3q4$9b`4N;q?OSmN!%xk*u#a zyhE@5T-d!J6*+nTCcJ-du0m*TYf<7$=sBZ!jZE~J9#E6rXSYT0$vWagCh}=N5y$d_ z?vLOMSj>u?kMrPJ>Y0yVgzNb{&G6>y33s#xuUmqhoR`uGqm3NVW3Inj~%j(6uAYc`nn1Zy>Y&Y_?y{dx2P$8Cep(oF8le6q7H z{JR!AsShX5dd`tGRFWHss;|%or|@{nRZQgJ;*&d2$Q9+&G$0#|;fjU4M(=aIZcu4P zvL-?^krMe_Rp4MYrBB(1brYIruooYd$FLS8T={^D$&;TDW3RyIva{=opwq|?Gqe&} z^RMi;zU;z6pk0Z?-eT~)yOI^xV^0=jB^ta&1Snca!9$M#_eq9LRDhq!LEr2jTxOQxB07{)W3x@g z<+&;dR~s;u(fB^Mg0q^H{#s^1WNuIkcM-a-(?mjE?4duQnJUNV!^W__ zx8pc`iW7D@|J}w)-^?zXM4!4e@%TQw>IuG|SD4IulK($okG*8A`>f)u=?cMTmOHqG zb88md$O}x1`f3$`Qym$+%o(@j2>APjUgDcn$o3o9Ga~ zf`AyoHbngntk0&lIR0Lq`!#@?ts4FS(Ol~?bhi4@`)rRUdI{aF(`2c`;p0_=gHx9~ zQW8Js`rMUu^wQ_T393cUbQGvcXu?TVxXuOP>xbqL=D{;2!4<|4*H{vYS_i66>CGPEA z@-xA9lm3B*_okcAmk0J!Q}|C6*=05P&N>~!V>++8fY|aYHDg&KP3V>Tuv&_6f*0dG+R}?|#(6WE_&SP} zIRf|8jeN?H)XLR~j)VF4PR^v$I1u0EYU}8G-@_KUNA4TatyN?VM6+5$ZrugJNi(vy zLRCpIyvi%G)6&uVF2+iz!Tl{jU7rnK#c%XnBe~06=+3qwqK#sm{15cLJu0`3-1Crk ze@(u#j@=qd4}Ceics3}>QM3&=h<3M#BY*SX&&(jrO+TbMktl?Jrza{jqJkVjcF~?{ zK_xyEH;Z-ePM&LbACA%a|kkM;uo`c-m<)v!!gQ*SOHGL9uT*}yZG@w~aP;upcU z?~8h-KChdTSgBHddV8*Zq#$#xv^*`jcp$Qo4_?;*4$zyPHUdV4&o2yV1c6$z( zbTV<^IbE)A?Aui0%zdKC1$NUOuJK&%(O<-e(EO#_tcDx(qE+^PIkg{+z}ASS`a?vmNbDSzsbkymD2)de|g z$rT8B=~w5f*CeX+=egavGP#&b^O!4nfe7%DsPK(-dxV%djZ^+I*Yg$o($Ag`O^$N1 zYhU2&eVtfwKjb7$l)K1JydtvPCK8|Ib*}P^Tl{%K9Dha3xl2VC%Z~68R}|ZMzV`?B zZwv8!CqFZvYr2H1ewb)&!jsL%d*tLE)!}oN;x~WIPWr;ng#3Zmv)e+GcS7@MLRaxT zYr;pY@^bYweBE92FkcZhj^V|>jNE1}j~(32TfEm-a)ku^fumVnHn6uiKG7RKV;qkh zAiJU5;SHa2ANPDOD=jqF?Qh=UIX{!YS#p!#289FO;mNG5AiFy>3*j^8R%NbfLAR{&aT*g?ld$6yK?+ToNC-xim zukNg#a$#cFK6RXG;XyqNF7ABqac_V6QI)9^Tp(E;Q7r$V=hnC4S6quefoW?lOqAp0 z0aO{iiIA_1xpcZBjlOt26ro0ZP4{mi8rro~t$X-=-IkNQypR?0LAguRlBj{YqNG{F z>DPg5Av7H*RNFj9o!f~zH7l{H0ulKVJ=T+~pz~yPe^DnK2LWzL%q&Q5_?!we6z9hi zV;7O>oFpIfGWDSe_vaz2A~ZJ|ck^IoGPy~_tqSB>*~y+lO8xoVje*44x~y^m?DIR< zsX6;@J=*f4uxtmi9u>Nup$vTrCwD42$g{^UzpxssL1 zqMEU4I&t5ovGPNcry3H6`m@$1(tn%APplwfP2~*g#c6$%-}EwPT7%#Za_Dn7ex#)? zx=O^fQ#twR(_iP4)aO)8q7JA{RazGx?NwCsXNi|5$juf~JEi4>oW~U_@t=aA2ddhc z%;w2JZz?jljj4)>#I>93zBWXp%Ea4PSbU4wiQ`z$ML8)a5!IRzsXDQ8PlNYlpi{Dw zDV&GM`Z{t-XJpbyUGmj8!AZ9I?6b7o+xDF4SGkIziR{(LJ<|}$?hq4(QEAW-v!bZ7 z;_zGgMsI%xcjgxFwUVn7iq)ZB%sk$=CSR4vqKAQuG^LMI+qRFd4x)0&z!jcKOm~oR zt+NdguCX^R2K(52)&TBpMcXE!mo*Vzm*;TkCK%UkLxWH3zu8}^#U1(Zin@rW+ESQ} z9pKPBMdKO;KJOP=h#6%?z6(2IO0b7j$}DY62eH^}b%AU7&UQq63;*GwAahEkHGOn` z+M6e-d^QPJZB^+e{w`kPl-y}cu<{0v)1&EQjkk(1k>ofYK_&2fY>b*~GFQqITxTgl z7TX&X;{9;XNyX*1U+}c8rjgyM%!x;E|J@17pij( zEg?&+jH7cd>W;FUK^y7zo&~9z$9*p=*vK-%YzLU$av(T_9^WaLC6-X1v!*cT<`wSR zYcR6qc)4U3ezP40NlIj*!&a)p`k*X{WY9LU_WD#$CAn7JaeVsC{MYPe{ci3Ss@SfG zKDY&K#SX#0Y%6g#EQaUiM|40HdAD;gUsF*1{z7&UNp&7(+%TTe8yQNE<0VLi1HYJF z^eHl09%}&_aS@KyH&*Okaiw^K`V1wZ`CQAWXJxwbD0&_?P_>18`j*6k!(^oQ@$*Ut z7GQ%{bd^XPBvRxf|J_gZZ)5Iq$RFRN()!AtIuDL?mM&mvR(us$!Cm>iGO=&#@e`rR zz#(^+f5|bcu+jr&YxqVpKn9m^t#1+gE0a5SV(wB|d>#_~0XHQx9D{;eCvxX45 z;jo!*ajJRb$5J%Cy?mgj=~1H{?N`7=xK^ z##D_1R$8-}R8<_I%u;gU5i#62V_xx1_osTddJCBQ^<-s)J&${d>w~gK9b&Gq?s(^* zJsRh4MDM#H4ge!nS$)LS?`Bjt)6hMMghi6Vis(mWFhbfOO{QO+AU2a$v#zh9L5S2l zXewNfN?e1laswqCUW|v+B8&FQUsHEz0WyOQaJ8#SqvaTULZ+jU>!6(ue5d<)L9MHf zvHxqYKo{^&Grg4wMfP|6J9^?Q(N1Zi4iol@eevXeiPA6GY7bweo0&b>#I{hlAUzZ| zO5^Zc%N(3yR5R0ReavjeX=@Qz?H}n6u`hmA2jzwmQ#7p>`iQ_q-)McPaoW}d*3Auj zKYSNo3N>tNaA8CJt%*Yk*cK)?lDrt2EtY}>5t@o%3S*+b+WWx4mskt(OUX*%Fl!Y>IJ1U zJ=}t}-9n5})5>e~GNWuOgZ*R$U$9QnWLuYD5p#)o4u))O@K++zEwQT_sTL5w+j0av zzQuUZ%qGen!!>Gna0QuIRqB@)LK|?3(&k2k-vh6&4YrxoJOTND-B4z#t-#XiC%s9$ zs!h>8mdy6=F+aEd7tHe}2f6Cj`48GfekV5_@ zD%IH$1Hy7eqzmhgDzsYsl%Ksno&54^isW-fwvK#|;ji@jJ#{_Xeg4#l4_7{%NV$?) zD^0yL12cBd)DPeIzG6KgHYp}K;oGAhRlI9_HsbAl^s7I@E_uF3WC$M&C!o*gO<${i zE%9xh**!QvY;D*)_n(gCN}{wJmGc~LA796B{eBM8*O=uZQ_@_CbVjUmM>`*w*Y%`t z4Zf}Uks-~JRZ#=ejmmZ?dsca` zH17L>@68g^{-~|z@hw-@$z9dS>R87P7ygP713}93$3OWV{C+a-S3TB$%aK;C7ga0G z*NA>;jNlsS)VDkdE91*1Si%5X^RTDt!HBEQlkSPmcEPh^sl;u*nMoJ?kKu3hk;+*u zT$kkgp4-mflm(9QfrV!0u?tYRbdJTR1SbHai4+OZ(+VN;PG(YmQ^N_^0if_iD=V_@nWM^>J47 zuqkPxJzc}&z)2qY>U!(iZWvjOvRb#qbBV)ow)zHFKi(D1_5xKFLd zTqDO(^}I8^<6m2UOY(J3t%{?sE<4pFt_xw0#RMsu_Cj|5A)ieyD|I7>c?gGT7>s~i z@Ht00?l@X#;o2ei^BY51y5N*fitA;Ylta?B^MQqduKqcoSNrir>S%@80@gI40AAwb zIM<59Y>l+FwvO65a>|@A;^k&AfDSnJ**=NAQ!n^L*eo5LeVn7rR{H&&8X*dFLC?Eq9!BU;d(JGdl(bYAd{XeHpzaeCIl$@p|kjn9`H{8c5l_6*7w`VIg;aWBA(zr=7}JGYb~9V*2oj(oO&H? z_V+V!XTO*F{)Z=>=XiD{=Z45#QOER{!0?~iw+SgxDJOzMh32SkAD|>#WP+tTMmcla zZ_14l)cA2fGyU9WODjwaD;d63jFz_>Cyk!;lU55jj|58VOH*H`&e9VDtKlXG@wKQN z?T@Y=^)jlxwn|?gH!`kkQm3Eq;a?n+Z`k#Wk22?oDioPFAvr$ztMF}I>Xy`gW^LPc ztC4M`C)U$E-IO%_m8bGzCX$RwbS8R}{zy4&w6zYYPFI)6nrUW5j*Q%b13|QRTS~*v zVee0TpY-jGl`gnBgOMpN*N}X@J;AW1KmPZv!OK(s+hUyf)4$LCBmZbm zmWT=osqs;t+P#ban(tFxYqYT{qG41_baaM8X|_bIK~H`8+lRPvU)9gg$OfiGR*A}! zVR@#Ek;T(AU~P6vicK_9x1?P3FY^A+Y-hCel=loupCdyX=W6%kA4h+_eb???{**&W z7d`#m)gp>UT$PVYON0gZawpop_>br>QwDh3_=CRwLUG$rm&2JH*4&e*yit}~eS&BJ zjZa#7qgkMKV2E|oJSu;}xy2LZuW!X0V$)|#i*$_)27<1$aB^2%5FNw z(-~&`Q!B225Hd<@lul}*d_=y5TYh0HJ5g|lwj?mhzmh5~5rt)^v`f;hb#-!=NO=9d z;40bJ$op%>If9^_RVtw2r)^1YAH59^$W1wuA?d+Qz_(blNA&9i(ky zV|l&w+FW92$;n9_lAb5dql!&&|MVPimkG~-N7BDcn~hEU^z*~_adB?n&D3|w8};v~ z)N~gjyQd9G|Hvm(tE~@(- zi=7w9kT3e~rr5npl5z#o_%nzRaz}UHh+N8OM+t9|_ifUY#Nx){Ks9x#a#&fY#!Er@ zS8$#29VFH@GMKKJeL&4oezE}~$> zzOWXaO+p8ok-92n04@tPjTE!H@xqkl2<4DFpL>Pk2QthjsJwr*LIjiT@@Y8zj{WS*lV>xr-42s-5+ZJ9rd(MiwA?5~&dY=CNI{{xb6hznPQqRWV^)3CenPxpdzC z&D>;7!As~R9#-+zNYm#$p{@vD7WQ0;b+j@5v33Vq>pA_$P+jy2?3Gpv6FkM;O_aMz zW}|}H7bQkob6ubo^~-pnn4DLLm7k04;M4peMTwc{uZ3oG7qJ?1EsM$7>=(pXImOyw zQ%t{}q8|*TLrq@Zwo%xqRCHc+8Vog2HtAF zdF%LFS$AMLZetQv3r98gL~DZ0j(WALw`0n6YhmDjiY_d$Pf_A*QOaH;#`XeU zRUiMe)Nxu5|8DsgsQ@0vN9}&cQvG+T!E<_g>3Z-oHTVJR1PEG2TOBx3d9-r+UpRD? zvDLSF%DULeF~xaax~J^d$C~4{>VZ`2qaG>FvRyVE!NI!MoGA>D&cWKBB}}lTa$m;@ zXM$Okf9$34yEqw~BMh_BbAtb2v*@PnH(kbaYr5Hk3b+k;R6NX#Z>ZJY3Kyjlwrt{f zROG8|udSJ2ucHJ%jKty601)rdW*(e@q5~C~Z*!I^|8#JMxQ$-dZj>Y*xq#G+j>A&4 zwee_V4#Bc13Kn-?NQUWHNSZ+JVn5o#7kE@9>xYfCpg}vZU)(=jk z9&KX_z`0(DTE7tWWPO-TKSAjWi?8twT0}Q0GnvNr;9_e>unyJv8M*+SjS+fdTy;ID z2`<8-c?@oqOjofFJ(ET-FJU~Q4nJeOA_W2MPV5FVL?m@9u_oMveSf4w)}z@jI|8ja1X2)TLGax-VGJRfd}E_g2$LC$}|L9T}GtS=pb znqdF$=rD{T7Jaa#105O8!?Hxy#b&znvshi@(YuxeZ+ePT&QUxSlWb13@ocE@OJj2y4(n6 zTYxioMreW~-HUVdlk16BgvwG!aWh(-4DjkRg1YvHaj%8ux8qjR9q!B=uGuQ^=xLy{ z#ZgYyq_;MME<_)G6DLS*YkCo@;2WH#;}=WE;uGAr%6#n&n9mN>qMPV44yDJW@tIfC z#|lH&T!PgXDSbxk`9;vda=*Z@+zO5{78JY+81f7>t-r!ix&rd$gi}?P?)e086~yPiLkLz5PLa>Y;c?^rE}57}Py9h4mfXi6(IWs>2=WZWX6{joW-R?7mA3r zxQaDU&gSAX&E=Wf;aOYoOUj{A>wx>t_h6K5Ell+!nD2AIr-SrSv!R>5juvGD=z2J~ zTxlzd6`K9LgX`Xlj`sq(Pzyoemx1}$2lajkZf<8SRiZCCk=Y`X=+!R=yQ^TmHeJEJ z)*#mDOIBYe{6BW1iE9sjp9R+}FP*}2oqRdg|8 z=%DwavvY%fUwJ`ezTV*A4Hz;L>37^gf0c6`Ux7H;5l#%simW`x#~Ydz9-w`f;D<`p*BGUG2ZF2wnP z=bgi7V*CWf{Ylgv&Z_E!&r?(UBO{Gg#tr=HTjNQU0T1EUS~G1QuEQr%?cQK&Gw+%} zm=Pz1JL;?NRKK!Z z{i?2Wyzz_;TM+RoA~W;O>N@W`^P*R~0ybAydj$7X>63VR)gRlx5m&ndPO%y5az<;8G-Wh0KKM{ z)*gB~d*~moW>;1vCS9e2atz+uRM_#iQEa&IWQ*qvIRqkG6U;w9__+t}%nAC}pWr<{ zM|GZTRzRmw60X(=xUgkeJ#(x^=wXJUh8l^wVmaD|%5rm9>9O)W{P|lmXYaK*2xU!Y z@Y`7VlwDK;_#D4Osnt!sDsMo8GeAB?x1_e5&pyf?4?Fq>z5zkGp?w4Vq!D2C)$K1^g2J{B{tQ{hFf+AD;lqobi@u5R%$X{4@Iowra>=G=US(=4G#WF#*j5Q zAC=%d^C|D%t0)@ozkG@9vmQDobg6*QJ< z8dUA+Na%gw8)85*?cit4{2Q?1N z_5ba^ks6?KKAX}jWnRkWlxr!2yi2`@{TKY}@Qkg9?sW?|K$tf

fMD^5rdagN29Gllrtu=!n?paIK-*lm00zG`X(31b}~5oXl1-|z}ee5 z!Zp^F&DGj<$aTW?#TDTe-C3!w>bb|eH@nk%N_qSqTUasXZT9z!_FVDY_cRRa5Y{tn zQdps|3Sloj-#qm^jXgP;InvQJ(v{v--&M@j6SuU&u7`MZ6;#`z1IUjvXbbh5BB@>Q z>DY+|?!Np%?#|D3uV~;}L$3SkLr$x}>pmtM8DRc+gqyrdu`{2GB;% z!?pCA9YJ?+4(iqe%<`B^TrN-7tvhV>zhGs3qD%Hd`d8XPTLuB-Y{97=X*YtVOe*5(A}vRYq(_O0@rNIjOCHKi#N+lHo$ zPVJUDB(+%TSj7AZMEIY*>!^2U18 z;Xpja*BW2qA^ug`TCER?)cR<7-k>}yKN=N23yfnSA)Y)y__~)-~spxb7%1wh9f=|mUusO_Dj&bUPISdTJMdn$Yl(M z|2qSInHMHYF*2nt)cm#Kp*(?C(U@$iCjG?jQhC%MyQKBZH?1mnlV79HP*tBYQ0<~V z#r>{`npIr`ZaD*$p+z0PlR2X&aExui911Uvyv!^<2PSX|ZO7H&S znxXbm)8igknm9I;Y#~}okFvxiw<&b+y94YN6&t$?0|T)G!w5=e|KDR}^#{ZG zO8+_)j^1ZZe;*=g9aLcca31Hvy}rOTZsll*lIDkF75k$yF;+wWVFJ!V>6XKmzt+dr zIrsvv|=N-a1c{ZN^m#lZJSMaq+!Rfm*GrlU=O548S-abrfDK)`0wH>foTLD)bZ*p}fx{D+<^ET9aM~EG}nDe_uz9nanLq6bcKSD#g2nG5$)aw_S z7d#lf&r4?#dJqTGN|l+%q0VHu@+IJIHs)+-55MXfr)~$_2)?*fpwhXBPl(xNI`zP6 z*e`3~FZaT=%1H(tMSQqK{d$UgxjMYWFDO~s;sH<)zJsFM`G|t40oSD;*=iVU-uu)j zd+3+nrN3%aeT9Mh+@-gwI&6|hWb)IfZ|bR5qkd4K5U)xvu9e1*>h(4g_XJHfW+#ru z8)F!A1Ot>ueT(}u zw=_4|Xg3~pUFWLxcIl>%jIb}JALsqhsEv>;FumhPvpxjs<&HTzDMAvZC zT+3h=dZMB%4aaOhkLKv}Jv2U=2y)kp+C*(PW-jFDOYLcPB} z3;*3&cp28hlWZS*eZT%4&Sf*nXa9i#$Kv(>lfRGZKH)3yfX7R8#_zOg+U4j4n`x$N zZVMLS9a#1Q^z9ZrzEkmF>?#aKJ>y^wWkpm-`&I8&8GM%}DM`iEL z*`CwL^3NPAt&>VA*e0{WN?E_-cav%!XYOSlfq(M@n~6xFvoDqoNNsTXe97HfW)HS2 zoR;Z$L`6{(j)iNH%YJ(dI`Wlz?ihT#w&>y7FuODZw~CMWfLCQc%~I5XGPUYo_?mN3 zk9;F1?f}l|iAvN9ALv)`cN)n<QFP@B6|PDhCe6q%mp_KRlt9!7wV4`w7lWLo^{7WG}HqpvEeR>Rv&EqG2jdK~czr zX66W#VHWLiO`1lgzV*fLrn;-q^_}ZESA)lC_tN?5=8MihFTY!Uulzc<)^0YjhG82% zvG1tocIa*TIC6+4Vo&iZK2CqMU$rZ6ymrO+xC_1q z%5#{DsDxcA9`oY;; z4EN|1@u49~g|WQfuAJXHP_#DXN{uCVtBhC5RvhwvNQIe{H`3OeInJZ;$6Ll)TyG7u z7PJ1eT(@jsdfsNHmvplfu>8W&tFgH?({QeuFPd92i*~PNm&IoJW7*GCj8Nj+X-=xa z_SWPZ-trxkVrR%v9+SyljDds=s#ij+Oo!MuzZ{m^Wno}#M7QW3s;3S=i$uHs2L^7vxjI}W?Imej?aYZuQ ze%OxL&)P5J@jcD9%(fk8i_!SWF9X570^X)mCAxHgwY!G%%9lO&0i5mv+`J6JdX zpf)F&I$ji|=~st4`IExw)xzT%jb`Bu8Ha-B$1+2pIXtts_}-ZX1C9U>>HI9vjzI7K zi1`18KMU#9IxWs48<_AkkKWk@GC;f9C{)0Ca}Z4DzfAe~>GGLqa3+t-?F*-`0PA}J z+{@1>lGI?&MwnO!oClm$z+tA47p+5uw1&KGH1D$kxJ_3&3=?p2(5OFfJ?4WnAJ2^d z9~=N4qByT!LO-N%-MwM_Wsp<-C5|o!S386Mk)F6v5S+afde#80?MArf)rmvCxPk>U z^YNcc3SAp3KW{p`!%$*SjH)KJ$04pqdtU!~5W2spP`!jYAT@O~v+!XmrOnh-<Lb=r{^jKle6A7}ndYk>8mlq%h4n%!mQ0@Pq8yf^cNg7BC3 zXNvo8xKDra;H|_=>^FE(sd=lc57YcR!K~;HcG{$;jGshmZn4zAIo}Pjk}a#?S@Zh zNl7o=!NK~e^@_D0voKKYKzruHIOfdG7B=p{?EP+2Wdrn6vwIeJ5Skg3s$u| zTB$wwP>jb3trsp?CGa1J73SkwqQ&QE6+TBbaUMx0vxwAh(|dwY9%Rm25#mT0=7{KU z-*|A>euKaaSoqhm~2QFzlvwY8=?uU;jnmG{HRZ23fcwz z2N2E$JnyH@MITDs3c>MYjc%i^2lr3Ht6~S9o-uF_eDFYMf~!dk9z8RdqduFOCReQ& zZZfyR1b&wSPyYyhjfK<&si->Q0d`28g-694&f667@T2q?M!?nfqnmP#JfIqU-P?Ey z9C94NNyZl)_hqIF80B^LAbT^eSC}=(+TGHINdiMH#VsZ2nlCn6O|t1BE^3QSQ%uh6 z*V$1_J?)5ODX?k1tOK=uLzTQAuh9VJ?Z(>-_7u?8ujmQ)5J?K6{QFK9WG!d) zRXP=`(OGULo(#o#B7tbKUbrH}DCgOev3mOV8Qk-4g7ahZ7It6Ba*J^qM<-m!rbAFws%JIatyB+c4 zA03jrcV6*xn%#b9N z6=mupIKz$6I9#FjTF38x!h1@G_k5NpHlMzNj=sfS;z~KrlG^0|K5&Lt(k*F79lnpg z&m`*7G%}NHRN%k(S^el+>?eQlVCqsSJZe(O&K@d!4^~@Op*-^{7ONlA`+bZu{hjWb z?u#+O=;qPWV{^WUd`~^nJ)RrOy6Tyd7SBw@88~KaB(HnJoTUADs%*l?a+t80sj@vZ zSG6CtpNKk#_}qSC<#%jMPTI}X8s%{O?1ksm9(y2}gsZiZwWQg{yw|+bd|AOXZ4GUn zoOl*F6Lm|Zd;>R{8urTe;mics4rZ@-bls;;31zOLru1{7^nKWn+vqL>frt z^_0)mvX!(w0RJ#b2FYPnOGTyfQXq5Hr!gU;pi^{K0*QVB+q@EepZ2JR#=>piMV_f> z>qUGds?rIrA~eL$W`o90+fw@soMMA+0iGq^%z~MK%jXe&fH+Q>WN3&Jlf>@gAn~#O zElAe{y+fzQE8G+J&fWT1;zF^Zp$QWS4jbZ_Wzv9uuNK!a|Ii&gvz5My&Yvk~fkZ8v zt`R<7*Qtbbx_r7jOuS5F=Jisrvi!uiw@kne*X*L3FjS-XnbcAHsB>J3z_?t5UfaPQ zS;^^hhVw>wWU8#p)H34jH;S`t9yq{8R#Pk-lz3Kh41JjM)bhir>Q}IDpUHPXn9IV8 z)G@F0F`1&ojHw#7`}jaNVoK^Pc-pHhQ!E$E;pR0t0XcG(Gizkd=$snna%KbfDmCbOhC#1RC;|T)r~7 z{7?|d+j;u_qjVC(L1fJMSv+GN(?hu~=yeIOvETF}JAu^9;z7%m9)^eWAe@9g%n{D# z(9`D{0FQD5k5l%s@_Kn8&IQfDuuq{m7{N|5qM7@PmisI^iuat>+i-JeB9s%#2&I@n z5+bx9_gez?w2FzNT|gz@leecb|0_=WRNIIDpT-}nDS7O3;XZy<)r8*ak!k@QX8|gk zhExvI=ywhxUX>xjB%<5<&H8EwG8K*%>Nwrofz%*nQCI$?>e@`Ke}kSajtnQ6Gr)zD zBA8R78J;A8oaw8DnL-ZpO*&~BYK}5jB8~n|E!=DL=&^S2)BX^T-=mE#3Bt9LIST91 zYR$;gskWgGxLka?_&m<#1cP5KB=jA6o1!GJqcDLg+PdffMT@3Fw+u*Xu5 z)ouZ9hv}KL*Dlev1dBfjN*W4hD+|QHDwNZt(IeQVIim5_)h6@Xs|&{wtQnpdivPnS z&WBcHn$^I`ZW0~zQa zG@&H*#VTC=f;Fq@B6ZPD(XG>Y<2l})=_S#IJqD-YFEfwAnW);%xQF==x5T4jGqHlW znK>ne^rHTZ{*=BGk>`SVm+$Fq$T8#^+>9Q^VTN&rw%{%msiQ)5yKr0Vp$pcAXdl86 z^T+G$2eWf72oD5FaI(I-lD9PD6lg;BQdRSk=>_j_Gbx3Rsx)qY57{Rbsg(oCQ6#u- zJy^qAQHT9w1vcbVeU3W|q9B(Ktm$7UJ}s~yGH|Z@k89o>t>j{Sum*y4Z{zPnocDw1 zF@43~>V&kHtnruC$6C$$jJc};%+79M>R@_niZ?wn-!$)}7Tv>4#(jJ!I7>S`#jl&M znSYqS(_w3E*+iZCg=vkwn6uWE88>Y>C;Hn5)03GjcS4bJn!eROddrGKQ4sN>0{gBb zdaDa)6NiAbCvrZu#pz}byW;Q%NANJ7A3nC?Y$-VJgUchmPu&pj6-RWf=(=71VUG!4i=%Ex6>Jqy; zQrE`fb<{$S7s4FlMTQ8dry{A-OE$44cF`m!dc6eVN5C;@i~2)PNq7hn4H}?$4&E10TzEtg7pSklQ5=*7bHj7z`R5^CII%cKd?Vz;@Mr? zCpGALrb|t&b*wR#bTSbg9ot>j;;iPjk|#Q%XHo{flyB^^{V4VFc08II&`%6!-DIJG z*hYV71JfGc;vV{i+3;!fjAh$X+YtO@P4*A=C-Oyk1fAMTI4>nrbw$(V+Q&Jz2aTHv zv}_7f$8X|_xf)ET20i>Fr#?^VKY&waGIw6dTtsRkJ3e?7HSNJc8jvxJhC$F*dzRc{ z5p~i&?L}>6T@|{gGj$(yXLP6aEA(^4q2e9tqfl|a=p!~3J(yZ>2QF?J_^wJ!q5?Y4 z1UHl3otc>l`ak;K`f2(UW-x6amb>f9pyE;Mc9SDTp^d(USKn&wd9s!^+A!g{5CH~1 zA7`Tw=DRE2lVPl`nat{_p{|INl8tP26E$@MRXS59$FK{ta2ZgzPi;{B%H-aaoh_a7 zal2}OubJWxx`6y)5%s8zzQ{z*0ztOem)hrmhg`Q+1M@s1y#)U*Ac*fKJ1tqI8PLyf-J~Y+zwv+g$nZ^-e%v_S|NzNaFfWQg0I|&_-%boj- z6K!E38wSu5c2z%CS#cDVugI3+TH?2J5UuC~c$ih#(cbjfMYWEJYf667@j% zV{=(=U3nce%*79)>#Cqi5541s_qERj=S`#=oInpKo*ZT#b2o~RSDcb&O8uBv;)5sTcyf#uM4Mh9B}=Jns!Bu2 z$d!4;vzZAwiF)S}Cus!p!uru;7|4Xc8PaH;dz?9=$#|b@nbu}y&TNA8nc1S%IeYg~ zdo{p$^ryWFET0W>8+<{hgXnqS={3qRn?Gwg{-7SNgh${|_F7*@Wp-N|VweF3w}nm> zoWaNF>CaL<2f&IlsDGefJVq6K5iij1%!F+ztf%iX5Jc~x<{zAm!_sOXzzt1M(QL<+1)Au|+QiiNVZrtSz3>UuH7&0Ol!(;J)9O`1V8B zPhU-6h3e`GdD460Rt_lQaos9BM4RAGTbC$g(Cq;qYfQa%QgaQoZ9Nfin#KfufqxctWls$1M*VdJii%fb+8(C+&Go(_|R4o#-3<=A_%ou5F1cXbjP}8`t6+ zwa96CHx=YyCNrP1CsE4`Wx}e=c#J{9sb-IVzwq za+y@C%sDZFJGMhwKwR-760Kye_aXd0hcE$tnzT@I;s-hobYu_tYohHM9s7H%ljF>h zzQDhtnbk6!$={V&Gh^uEH-)8f3kAh?rhe}yL$=u4i_&L$uRFabw;N9x)e=W>t`i4xIO?AjV6mC*HuHQLA$}(aox2Fd})QYbOx7#YMqYNix2mtWwv9(cb7XzFWPfXsX+vzaXnU~X)8p#oRFt;QjEY2pPz zb3?d?pY#R1zU_Q>XU!k#>+101Ix*dQlBTfsnx?fjg}+ZyX*I^zUKZ}-gWpQ~1{IK* zI{1KQ5B1O%s<7SkmG_amhS5)Hf`hmR8pdjxEBxH$^!yq#Q&J5ZDh%7{NtBfU9v`#?cjA z1f$y9hdw{023V*eF~eYL9_~Z(=^eHMp&P@hy1(E~Ri^wYcBRqpR`@97ODlp+ISPEw?f3}!C5%x1Ef-Asf$L8LxF_xP~3yw0lqth=ro1>!r9UXfORif&O&ys0be67ikC zr(32ACt8H*I)Sh#RsClC)AtbVmuV|8`*k6|r#?J|lkoS~2m^7rPXr751=liA7)D&n zB#-HZ2k0%l=qKRp)P#HH2FE1FMFXE~165EV@I<3aBzpb?+>S!v@3*2K`wT2p*>m2G z8Yr=T%Uj`>_6MsdoHvQ>6P533W+M!NoihyVrLR4~=3!r8yGWfm4R2sK+Z-bJSbTvS z!+F$8J*B$b(ZNzACqN{T-X!HG3bo_TwYF^~{?xODNgCl4X=Hgeqnodd>HN#F$h|~OkBaGdNd~TUhXl6UE)NXBUpT=+ zm~s3$4A<%{%o=-0FY_oXt||M$n<>(LI9jG` z1_!7XZwL`gi}z&e#T-!HHSGU|AXG;*2|S+Qho1)K>Zk3lolSRXF`S3#aNZ^`Lt}up z6`%ECYDQ_eDOQcBRWS?p6W?_i@AJ#Vs!f`4bdnn|k>?X?)?l!_5#)@O@REA2z6=s@ zn0k3OS#mygIJ||K+$p7}xPy+p;zKr*=(w7kw-x*)D;_IPal;D6mnR3!>qa7JAI|Lh zaJb9S^DM~Y98-ZC!JEECUE3RcYyfjg#)5-1h1*vZy`eii?L<1b52!F-qDQ{Q43lVP zcn8}z*`2ns_B5NG=rhkghGI6)`Y| z4&wp%rd#kNKS3Y55Wcc$cxX?+549BUOHGYbhxa%Or=`dAdL7QnR6}j3h8EI&T8k5F zB3zNnbXdH|yldea>W_oV7F0Pq@c;d+8Vqu|6F1&i_=9fj;!4a%u`nC71%LmCPf--? z{E0l36hO|-@n9!F)Z z9k%FsO(^%d7i*}3CK)s*1g1cL*41302It1myb9bE-dh&A&jaF25?twrd0#Hx;Y z_v0Wgn6Zks3Jk3Sc~W28!dg)yv}84pfs475_;Ubuz)2hqPlFw{r?yj*ZyH(gisSkv zx_<3(q%23>pX+R#`;b{=hn;D3-A|*E*$A6|JKc&fW<9h;eP?3|$8#`}mvEo6z)Akn zC4G-qc{*oOVVHo`m@MMzOhO5F4*caj8qT*k702+bNd6y7WI5-!t1ys2SQL-rhy0{p zOa{y1Av@}zM(Tp!xj!9}$tbM0qkFiDv*|W?iLG%uE(q>7o#_)v^itm8Y5j@Lgc{CE zHj_DS@ywsj&v=#9<=WIDrjLfdbqvMU1!~lr_?_h^{?{c6PlMU;$i)a!=Z$)C2FlB) zuv}|XmFxl`dBMuPf;06^>eg(cd`(#GlUXV2Sz8y#onz?Jt>>%?A+m&#XopmEICfl?{d2GP)U+a9Pe^-ri|c9T9LZ zCo@T<3HPcxZ2B*FnQUQ(+Z@LVuJ?L4tk0Mk7tXrt!K8)3@NK)nI&4qHS<>-_3?rPl zupg8wf+!IP^K}P0)nEA3f1-l9%p`-4=&pau1>izGrh?rkN5fY+jy5oiIrbs)F`j>n z*)j2Qj;w*bTNN#eC*K#(H`5E;=W)c!Cb+))K!t}+!SW9WV4gYs%2F$Gp^&*Q7{E$bp`HAYf#`dR8ZT5 zr6?K7Q%Th!S`6TS6S>#(g%kYiH+MXP{>mFVH_^g&K0l9$whW%qL;6N9Sq&SAYcq&s zYlMx&nDKmnKQK|)>s0ESK;iuJGKysG{6pg8ZBC>JywJO#_cg-#OaaTeMOWz#6Hj8n zcEaJagmX@WvQE&2_x8+uY6f^fIcDtu5v;kH<=OYZx4_NyO6-J{Q3~ zK0wcY505l(_QrU{HdFa3nmUP4PjL%>OpU*TYdV68WEj5uGeN|I zoSnGBp8TsASGKV88@jElAemRteqCd~rju(`XG&9k=WmCH^Or+#CW35Eq{i#T^H#Hq zBbbe}mVYk<{hSTfc@{;S0UnkwjO}4eg9t^3>c&-_g#tW;*SjBY$>;bZOSmg*SSh7A zA?Csxzwh#q%dbiCne8REQz0#y9jf)av`Ndy}XnYE#n>2D7Y7 zw5kfvtPPWUW~+~aX6{85d>Q_4HhESuxZewu$NR|!=7UF$!j-=p%Jf$1Kh*5U$rP^8 zW4WsOhBNsl?#w9gfCISp?gwG*sY-Pzqq;+PeL0!sAbNSD@d&MqX7Dp^sE6U&F612z zAa8F69@dlpwSc|Thcj$7pYK7BL?lL(WsMglKh1~cwg^hrbk2)J@|o9o;GSkG#zOj2 zwV9OAi2E>^>$Vk5#{_VhhMZuv(1lDRhVF&iwG8AqjPvL%+PGh=>r|ZaGO4<>IC{1~ zzto)Ss~YRMaPCjsxRspP?Cg!QVJW(my(lroo~BE_ z6QrdteY)8wbMNz0PP00qaasHcW7mWO=>wQBDSXAuPAN!*<*rI{DU8p1LvkK(RUG`D zgLmshnwfE9clUa;Mz33+-7XLv;3YfJ)}KFh0F&hH(|JF3SS zP>Ox(2ajhW@1Ps+^$%o)gWQ2Id~Q>xQXA^ zj_+!O&u~6`CyMi`on$ljSv#M2U77s$_q^V({O!V;xDNMmBPh>V^y3-yQMGU@FY#*k z!lyq0vtt#fK`8mC0lsJ{*3K>7*Hyl9iH|)ny2FVR=Xh7o$tKV6{3)Cpiks_PxKgX( zo*m?Kv0Rb!tm6|rV=Mok$LHtMuU*Uk0$`FD;BwZ+X{3jFJLt*F6SLtg%iLS7Qk<70>03m=U?Zn3Sm!r;PP7qlxj1pbrH`E#p5G^GyDqY zTnImJ6YKW}yR0hCDs|EK)a8ut2}U}TlWPO}YzI>qVwnJOhBIs-dW+*=VENUt^r0>j zpBIudj3c71BY#*)hi8JS3_72IYMZJYOoHFkXNB;^D5$;yJ9sg*%oq^nnJPgYg<|6z z8POt~alGjow}o{uo8K`3Z`e_J?2`uU;Iinvs*+2UATqncac;tnZco+Y1(QF6ncR57g|5tecDEA*WeGhl$)f;mAj_&PGvBv}bneU8X&Fux`xGD*UeIun(KV z3-rxfLmh|=HCS7%+0iqI1wmv|Z9oJ3@NH;`H$)5muEVR?Nc@gxEj>e_8BL5i1GDNK zn8*uuXcB+BkpJ`}W zi{eI-&0T2BGZyf>R`S_U^eYS5*}+5>CDI%x`kdlQ-QYX7@e@b!^XKv0Rs7_MTA@m}JHelqjN zKd^5<@UMR`S6_qLePoALA^IE0)b4W!o^n+aiG(jXeHE8<!45Ry#lUD`$cmG2kyNLzxEBfoC=146j6O8qRLH zLR;Nl}>J zSA#WEn{&>GTq2M@?ht;9;+vtk&le%9ZO!ZU;&n9U`{ojdM)BQ4;L^<@`xr00e5&cG34E`?DEH8eJ_bxvE&yqoL(>4?PiyEE`>OuOOd^)Vaq<}o&1CU z(Fb&G7FyBv#H$+kW)$G7Dg1;Vod3nCy$!HcUhtDna-xU9;hR95R3-yVBjbmkhdpr#{skXS2d!KyUP)- zm9kp~vX+LjdK9xZWOmP9&WClZy9&3!{8NS(NW;!mH@Ru9};-TY`BVE7$???Eh=*`+?-Qt$3v&?BX@#9m>2U z9l7T;a>#F-Q46V*4s#81IitR^7pk+a{;@y8*z4QbjTvM}-N zkT;ejK7C_FR_3hoC6j!{Dml$n{><*Eo;RJMEphr4Na!;nRtebK%6`cQwsn%-i_bOB zT}u>N%)`#lQGQDn`wh4DyqfL?b)7q_vKnjm9kFp0ac3&8Jd*2tgKXvu_wxpkPMMaJ z!0&#{@A`R-SoN5hCT{kR(+ zcr^*^fGMb*r-5*0f}i!}Jln|kmxOy7!-}iNx~$9IYRl_e!OnfeS?I>u*poWFD;$hU z)bthLSK-)2G-yl=$YgzOB(8SMJ9(P6yMp)T9XLPZ;U_o8BcKfNXezmY z5uR;7X3}pUMkkPKH725F!{@!~c;qMw!^cRDkwFjjEw$JQ;^rc>&X*mx9U^g}2tAY^ zN&aDJ&EPDOkkEJbs>vJKhfV&TRJ4CU#0!PH*VFILRw>R(0&jGJHOS zwV%NG*)Mkw$YLiR2gyV`vLo-ajymV%mv3Olda|?UvQp=E5MY1%kX?0bhcjSoqZ1S7FS+x zy*%Fa2IBuus=1=nhH=F8vC17HI?v*KTnS6N82(U;sWF0yvOz?+^LXuT=iN;wQ#5cE z4Iz5F;jOfWTp*YnV>pp+236WVvWjgy`zlxe2UVPB9%sOxt67wlp2vfr|k{(+9Wg7AC* z<594j!*~Ol`7L3r(nKO?6V4P1x#?g|fkB)W3E)WofqzZ_Yr9URw2k%Gm?%9hZz9(% zPSq#u?V8N0QRcmTWCdn&9o&iB?Z|7~srKuzk_Ncka(N3{>x^xP#iAuE%Y^C>FvCty0`#h z>R@VOLp0%|af}E-=WSD`s#kzvZioMRkIJDoecG;cRa(NtP)0>?AbJdEs756BSibp`PdJCoeBD}Hg zfbzFRLG%&*dn3bm!*0WO!w&66?O1BEVRZA3<9(Wqo6-&86kV!vf{8ltI?RDJ=;ahY)g+9?@_=*F$v-dzcukhN2(Rc5IA4ns3Iql%aHHVucz_?Pw?a2_{30t{0 zWAU>3toyC2BGyAwrxAZKseTLU|I@llx{@e)Z^0Ek4lDJ$<~@3s$vi(my9U0-SX~e^ z#hb#_D2Y$VX_#G+D86QB*J{^mr)WoNuV|uR302WJLAHXrqO*15vpry!&6IPigYVjW4*Lbcn!bNE)*5? z!glpW-0jMPm5-u}ct%}Ra1my~k3I{srNl}nc+-9~5#8WTwo`XiUnS~Rr{|++fLFoy zy-tU!8~viiAPR3eC*R7+^dG`t0XAW;P6vq4Yvd=5o)XL8l$@cbI-ci@qEGt|C*zj% zaa-Ga*n88#4T9(K*ml-d*`|djWRVWit3S`W?gW?3U!H^`#Rj=Hy;>VCGEeFHHKRN8 z0EO@%zPessK&RxHY{fHR0P$=gv2qtU`dnhjE#j0izp@`3`Mb>cHKUVLaQFmzi+A$Q z_CjEnOP$zLQ)6!cUo6In)0fEFg{Y|}>NTRKFASsRp=t+x@qKWm{zE@G8AXn}rZ|j@ z6R<2Es`CrQ=zEeQMlu#A}hrZX&)ano6hRyJI$a)@L{Z1yK!V;_DMfN9BZYnx7CU=+I?l8XLKG zb06cL3Jd*&;L7WO11o zrjOKH_*quYt0rLXGnmQT8njoLZ*~cO;RakgK3go7=H}5jfT_*?=0WDRsP1=|f=qLA z`sOsxu9)qU-6{KBPI^ujy3PdCU(+v>%3Q|O$TU4?d5)ZunbY6g$Q)-mZ#fFrP_%xs zEW!JBmo?n#YxB1qX3sujChB5xmM7#MEr{iX@l|bvgJ?TY1b<@nc~0Oc^1|k5If|1h z&VbG0kH=wQbrp4C&f$vGq-&^cj&P2b#zm5}hDc3azztA+!@&K;$U9iG* z&Vm+HeIaB3JLo{aB6mH&E?EmMucz;LneO@txI0HRw>3L7XW{0Y*Ia}#u~Iuudqa0f z*B*xFYW-Aw03IU0^cnhi@q@VDaLkZu$S}M!d^0>WJU5IrOfWDBL5$Mx#a-x@zP4CL zJceF(v^Y_Gu2054poG4y&QG_Acp44!Cl-EUjyj7ey}@L{ZtBzcMKniKu?4)jGP$8r zXB_5~JI#8%L4Wu?o{dEu?v8VG77HlOA9e?d*!^f&_QGn}4txJL%zdlvqb=KJwpnbm zZF6vJyN=4bfwbGY+S=UG-?9|F^%(Y0Tl&8~sMV{$V_AkL$2-e^mN(Wk>pP~xuYtQ> zmwa;;HGtyXp-gFeN<|&O8M}!XbD1@wXlcCiSRSsRM<1NesXNBfGk5|Q^))@sR6Lxj z!Q%4dl?E}5el+ZwviQt2w$`-zTIyRKz<+Ou%4VW8S6T%3OXO>FZL3fmJVyT%Y*X}@ zpU^fa9Qrr%efcFhKoM}@<}fM-z>!Xb;bc*J(n0P9+c}X=%4Yh-FVwD_wsq(#o79@SfjQ15WO0az7Jz|2rx-W$I;XFu_1@#c1NgGPE9ka4bLI%Ql#uz7I~+0Qgot z$uC~u6fl*lrU=ZDpWM$5=vnMMl3~Ob!KcKDvuy{sh#Kd6M>v`7bugY8^tGqq^YIaV z{cml&cDsJNzPmUa71ji?sXZ4VTIRy$f9&xCrcfLq7MTj0UCoOu%ZU(rc*Fm!+oVlW8f)hd|Mn#p zF``B}%?VI}d;h?G92VaU`xjQlYS8TV)Cl8vY$02%1VY%K+%TRqC;<+H%p9gxblig- zz&lg~hO}wsC@=)ZNDO!(G2rKV3hJ ztGr4K5f6!xqMgS$L!cpxeO}s_-e|j5z(H*cE4x!9( zC-WZ9B>Qy77soMlA-8QYaNs7PLGiUcfv3=guAwjWKr$!I3C`_1Xnn@O@J^F%NN4k& z+sPIHv(^E(!Q@b(F{|ecgeTe^PX0#j>tg&>X4_`io|A*Mu{UQb&x_mF2qLgnd&8m)w%XQ%^@OJ~4M3q13(tUAtI1 zul{fwV~HmYItVs2%caTG)6t3+C+BTM$JP_RXb-p(&sA}%=4A4@FuXepJ%p*$5;1T~ zzfk#I0i9Y1Qss+EwJ!DVZ6f7S&UytY+>chaBd=BF9DGYg7EZ5Pmn%Ep!HkK7KYUrY zQ+Hl}oryu~!~k)zm}^wIdU{CiV?26$v~h3e9_1S4I@K`4&_VPT?-W;Xrzw&*k#kg2zn>&T_>=eUmg=mFK8r=uJm9T&*od>reT&prVi(g-;JN8!mt z+7F^+8^9DX1I)g~_MRwd2gA5L1@kx4mSx+7E8#rbLUfwPIoncgemq+8Xo`;0isq>h zIclQ)p1mlH!Z|DhjzlSml5DosJ^|}mnk=2nE++Lb3Pl6(*jMoIRh`PumD)?^ZCUVQ}uB!zwO>zn924aue-R6(*L) z(61c_vJi{1AqA9pJb6hI*!(Hf(<4AT*MbdYQN8M^XzPIcDj)wq( zG@9Msl1S-7y`4&Ic*mn3+VoPgC@)6ObH%<7h44dLaVg!p9=*KLl5GBKzF=;GM!2xt z9IoSFITdfeVv^Z<#WKq>8U4Jc`LgM_xvx0_ACITZ7fqJ7OMCD@80GLF(##|u31s5O zWH}svQH-e8`4gNPLc<`4xwQ3Uif8#MS5XvIb%^aP%J zm>H#&9BFcMN0uDH=YI3`ws3ehtEZ_aQoHo0_C5k8at&0rCS9nVpib{VE1SWsybG7O z6Oo{h#uXKrm*yNQjx+F&&fu#S4foIkg>YH&#Eo=ti_`n81fn^Y4$OIS!4cpollXp5 zu%Api7rQu@KcQb(OuYT*ERy@hSqN|RZ7#LR%|7EnzCe8y@4$X&I(BI0^Lt)W<9}B* zQO~B%Y6t?llsch0IO13eE0R$;U4A>=bEm^tc`g@&Yo>Bk;JO?j{*8o7@=GYd2~tt}P3Nwkj(1%H!$8A( z*L-dX?#(?S-LJZTcl+gLa@DxqHr_YBF+4S>UEkv)c*%91>u}erh8Tl4Zg<5+gLqp! zCtelLh%Lny;&&Vb{OM$jb__u`Tm#n3Vor`zcwXnqGFqPDQhwO|8>Me((gj;GCqpRS zav|3C7B5Q&i-%>VwIyf0U|SALzl{AGCqPYj)H>T=w2rCN=aV^uzHny59993W;5qvZWJ`fhYXHgY<#U zRqrIiOaxcht9=Vs`?9u>cD!~f>Y~>$`zM1arJ^`43Ab?yoVRCcozR{&mkGNzQ&ozb z^Ef@Bf4uHXR70of45ho&A!{(ZXjLod@#KKN^rTbSj}A&YjE8H)jKZLGBdK-o!cBKa z-4{je-2>O<33xjSRNJj^4VXgheUXg2G@08MJPiUY`7Ccu;b1e5Om@pYw5DyX^`sPQ z68gR%$y*Ar>aC?M7tMClF{VqcHcc|+=Daq|GJUZ`TBb;4q+@XDJIcT9L9iODIg;dw zw{OfqdPPlc99pm^$A$DHw+7XKNfaz*Jlr{m~&Pvz!yaXB8B71N@oR=rrqcHoqkf z2ZO2l5xZ)Dh?fE#P{WSj2m3HIuXY|xmN}ehQuS3^QO-}rt6~~l*H<`jr)kQgF-{hi zfd>ZD3+SNCW#IgY250=>^v%8CERd_PY|~Wj)p1PR%yenXG}b;Y?{P7H#5?gq_4t&l zwg5~vo9;mx)rrCc^nkG;<+g-lv6x0-X(l zlOSD|)=L#_CaJZ}6?KKtR?ns)`%9Om;W-H?A@Z0v!7EZoWjM`uNGTfKzN0kc`a{>xHNRD?_19FA%NwO3=#?IZF| z&{Qjqt6jL_*Qpdr+ZLkanur%;32Q;?el((Y_?TrGX8CN|XR2X(oAWQ{NX|4x14gaW3!`7?k(qg`VA97Cl>Mw-EiBP>a6M1dGY8QG3Z3w$Y33Lg(l%y|}4h#2e{Am7!~K z1n!g4ajF2+y-LcUNBRzfPw zhk^8q3()O41#4g}T}P*SG}D4=3mw%<)ZO9h7v#Hp!Cxu_ZsJDYwIKOUKeCl)ywA_f zi!q?(cmuvM123OL_RRDK!??(2_W4pAy@OtvLyoim|L`4>2DP zyIw6?F;6q$=(R@|!5P{TjG>3Fi>{5X8s08rwWUy%PJq4rfwQYAI9+G@OWyP-$HAs4 zfP$)kBZK%J0G`_jO^(@~j(_9{@B$xu2`bQfI8Q%7+xdnFv6TPU!rQ9>4snlAb``cA zz(aO1F(8%yPobWyPt7uoHT#hWR2qMAFQUT_>4lUb-9l~XX`9HpD@P zkKlvdPD;YtXC%6!)*#bn;@Df1%{H4S{$RyHuu72ObhVE~iL?VG!;4+gfk^TKq~Qqc z;_-OiX5q}%n;z{w*4JLLc@QdA!~oE|JLujfvR6~o-XK-V{EcI%Z2r=PsKlC@fLgdD z{yK+=E7!F-T0MSo&2__df3)s89oMg;ZWh}AOS)v8hyJs!Gz#pZK>Ec0-7HDI&&9(m87U)yUXgg}tnRn}=b<@V+ znL7`cl6q*I-=YLQj_Rj8D?1)6?IvCdUGPqMMRj|U99hwzZ-=>73XJ+9cuF^Vz#3SF zrQlS@fJ<7y)E|OC|ie^EmEV@&}AersI^T6B+i zvCmo?KUrU?FkX`fbyy_pRqJr6B01jzkiyQO3!eB0Op!j3 z2{z??i2#Ra!HMx0%@;*3&gJjXe1-CH#J-*$#1gb)1yPEop{tlc)p-lS9PtQqK2ur*hzB(H{lEiYiBYf#v9-8Z1R({ zXj}(^Ta@M}7*XA%uvX)6OgIGkF-yG~H;wx03^?g(dKRAK8>R5esLOl!O0`o19p_%M z>2CDEeTl#OsdYNSl3WK9z7CvAe?Ft5s!gQ|ccITQjJWoSuD2SM#$~it0ys@E`Zmj9 zwFXhuPUh?y0q3K;R-mJ{nl-vpQ&srRyPUuk>j&N&rLKO)Wd7->+EW3)r+8qby0@5Mc+$x+)HP=$tM8H31WHiKj8SwGvEN>JE75*LfU_*%BMOtiRJijg6QSz_=EElxbq z+27%hoJ?n?Bs#tty43*vv`OmU!C1aFM{ z_^3xPQDGnMg9G)0aWJi^|EP;65-rgA(kESwyH6(`v$$hJ@%wp3U$ZHy=)ZI>ZMgC7 zr*_t$sOSzB;zHje0VdTVcu7vUt20p-oB$mzNWXC^O0BCXZEq8E7NYeQ@Mp}hXAxx_ zsL0pg9zD`l8?Tb%=zoJjlzJ1p6X-28wf&L0NFI1!46`?z*Z(ieKa*oPo2A=fK z$ZK@g2bLg9P0Kj^q#s(gS_a~VoM7E!toh^(oG|p6FnE$__bK4nuWz z2gP4U(3_{Qw@;#|xB~y@H`sh<_-x92G9S*%U*rVe!HAr6waS2vl%?-*k*F~nSFC7G zmoK>AbbwEgP8=^!Z?cd^q4zn3y7axLv*$B$xSodpT|uok9@NK(2j@VkvX~T`kB3e8Naov+M>qcV*N&lY9Y`kJUOQR)Pg6*{9Oe5^w8^XJ zn7shuu8)gKVQ{YU}lDow*tVj_+bt%NITGcJBkT!5N@;?@%m6JrX} zS((Mo?M^)w&1v(9%p?v@LNL9STU5Ihh_#pKx5UvE(Yjb*p=W{RE3DOz;7P79_L{?O zaYGgG0bbN6bO9N#fwS>dt4f5P2?wY(+|>+n#zfds2bov$k-ak%t<^R(ydzL?Ws!qk z00HUgka3r3LGNK1=R-NT4*R)Ze&CRe_!tdF=0OGIfbp^%M(cN8n>)^6^;P+~BU#ks zh0sem;CU9nHzEhFNHrqy7F3P@V4T%bPsf+JAl;+h#Hd}w&Fj>r_hET-Mr+lP%yA7p zj%ZFMrRVNIRak}jZEtuT3+ZJq0KaHKzWxhs=o~bG6Y#xRN;f;3F2QN^WXqiE(Oyq? z`s3!H%mv7ge?tYiI=D)hJOHe&Dr{~mXww}!1b@kn8}t63(;K+RY3R$jHx7h<5w*ZT zu16}p=Q-4#J$V0JiH)IPd3VrL{o>DGRPr}KbC=<(vBxo%pSA(?XcS7TDQL2uI0h1* zB2Wt51ea97CG#UTb%3?D4PIkk&d61CY#UHlHzrFCfP)nQpEm=Bjlz&mVr>V)tzXY7 z7)pLRfm~O?KCa`4>4}TLT>5)|P#^z-U6YB|ivw2^SGW*w=%OX@nR>V$t_>O(+fR}1SA}0xZ@vl_P4R+i4p-_I%)A~jsW!7?6=hU;)PY%!dh}_nT$^`}Aaaam zc|4q=AR#Zo`*zTwx*=!KUrPs}J_ind4c@{r)S=yp^mSze9>l41LYC8AX<_e%uX%|) zU&lLiat3Nn3{UqAtGPT2p$Tto||16Ff zf61QXabe$0mA;YB+(Qfh69v1oK!}xgY@WF$2IO@BVaIC)4 z*X>1*E`Xk7BWkY7yyp!le+trZUj(`t2O^b?#%L{lbU|H>uG%oPnu;UDVLS%i>8Xbc z&+re-2EXi1BwB&*(FJneT5w^O!kF2^RES&(3d`h;~9x>fKXIxmnk#7~lt-dLdX9{)S zLt^SZcx4N?UjaOpqw?HIhk70FeGv%NO3vW5^ht&in|7gkxy9PwO+N8}e_!Srjc0%Q zvNNZUQ61wh$)z3iDmx$J-{)Hh}If6plsPrhxj|{>Qd~` zPJHKL@`*@RevG34ejb4^7bCe-{kRM1^a5Uj!sR-?IsAx`72wNtrPnfsEKJS+k5T!^ zjz*{;mkYTM&@F6PGa9ortjYxetTD#vnN4kedzEk$*UGRkQsMn4;|$k z`3o=ly-PLK0~a68lme=sM8(^16yx%+o27h*i7Q)?xg-C$&Ue7D_k$#y2TR=I5)Vgq z2@Kdh)FW5H8AgLYjN{+2bdqL*_+;QEotnD>Uf3oWvXwb4U*~bTKfy=U!Hrn~r`ro1 zN_#Muv3%5lqpu+=FHa}78El*}u<6@@tWM!`Q(=Dog1`C1*^2+Qhm-k~&T2Hh)w?J@ zAF~@0aUGChFc+iWQj_>!n>?lu-#;G=u^ZnrfPeplNvs1MQFMAHs^&(pPZjORCo~{x zs)8Z#VRxXg2<6XF=$e=CF8lM^OOOo&aaLZYcY2uXwh9K-X?E!cPU8{u^`C=iDD~E4 z@SDxBbXRh|PG^;0W%YgqO(}%;Uk>hC4>(oqsJ^~4A9fkfUy@gMU4`rQn6JFTo#h|j zc{a~Kuo3+9W_hffj{JWxKX(;*^={Qj9uBmglfj@={9Fqhj(hBwb9i7p!!h9oNaAGB zIGH$7nf=#_UX&T^UZfl3N{#Xi-DW)d#p;p^B9sb~DI5;#TK+r&%XbCmOf&9|o+;0t z;KUz*mEH%{&um!Yx9A{0gBkRKK3XhM;0e6jZN%nUtg`$(t0`z#3$DLQ?q6pLT;0Fu zZJTlz`{4Z0fNpwSSp7ZNeUtL^78yjZmne2Wkxl#pF^hvU5l1|0#EP9w2D%uIv7(3S z&RSM<33vJZ&*6usfLCci1e)^LMMe~dL)Zg2RmxiI1*3Q!=leodcqk{u9#HjDtmMnA z+UcD9G6;4e%y5x-)tfuKnqFK8@j~$^IK(se@VpqFeUG1cjdlDLuJk?5Uxgu^&Z7&x z(_&oDWIDSEJR^0pMW6St(EX-h=$kvc#W1q{8XMpxZhm+BKVEj=m$p-C4xEoTG0(@0_T4Skz)c^t{H2pKC!$z`@J2% zVI*DJ`CR4Qr~#((XvljH;H#^M`pa2W3;61PtmY`j_feKKAWv^VS3_A7EkFoY zvXaISAL|jZF0%i3lXKT0b}b{1yvdqa!pgeAn$V)p$fS2J;9^jPx@a_~)CKmQ0KZ07 z>D8&Y9-Kn8xgIX{A$)2cqT{H^T!ii*EQR3}{-8tjf-cNkm4b2)2|&^=VsJBcQ%I62R89zG+Uq!LHQfJ+>JyFF9Aj_+&E?@Cj>%R^PY)WhlL{g0%x z0E=R6`}odm081*^ieQ7?2`IM5K(Sk~yW=Q!i`{yBMO19;E^O@X#O?sLXJ)_O!*_9s z3cIsU-0{D=4u1K+k`;}+1MS-fS+kBB{;_0(#AHW|r&C2x506Dd03BFb(9yCaS|J08uamAIIX3h404ZXHJI*8bm%(4V(f2}bh^nJ0WcRP2 za^O2wQ#6?--QWum?+r)R4hEBZklz=JL|zV^Zz3ixdVS4>T3cs-HHCunlAC!6s=1&Q zMXo%fzIYjZ69m4$4&A+hE}tMN&OnKxkHt}FHU*k`1XbQc?pUcctpc63AUY{#NxY%I zfCLv*h59B!gOiE-b;Lqw0_}8QC5goCo`PiFB3W`H_ezq*BkDfC6BR6vZs>_jnU4gx z%I%B2w&4E_uqB!zZEEq|g%`vMe}|ISGz=}V4ln-#bVd|ZQvh#&F?MdoPAmc^x8(IB z@!fR?Ej5AW`cat@25n_fQRTq06#ZLIadxYa34f6kd5D39@aH_(WgHwZ1^S(V$9@xe z1qoP{smR3R)P6TcTjoUyw}#d$vHSMacP2vVtw4;0(WX_943(*22tf+8g?E<1BWu8u zhmql1kUKNTaahDT^yK;F;iMXPmB(;D(O{?Vnm-yj0?uoL{0Pg=WoQkyD8qUFA{Qi( zPZ$VBPX?ii+3|DvK8Ek(kXMOhUo3(rJHnYAk>eA&|D|Baa-4?f4gP~u&mcceI7%-?~n9m*aQL_#(7lX6GcDHB5>b+=yM)+?KpJeCG6T%G}CyVHJ<9rr~F&S z2T&BAE=lcB8MIhFJYPT9$6n}lBkMYVTzkoP8yZ!IHS&U+I88?LJ@yzxR|$XW%O7*v z*U*?Bxve9tEP;D@$nI~WLrv0k`Wn9EeQWvj={#pQ7$XT;IiByGSzCElYje*)vS#uA zZAjTs$k=w=PYd|2Du^SR^B)199OO6Gp@Tl~P6zIzEk7&Ed#mue-kd{ms*p7BNiI49 zSiuB2;lfg!W+_gv6tB<2sft=h3sL>NaG{9^y>x^VD9 zIOzv#FtL*#U@X=zh*< zI@sUeouq z{)NAq^1mL)v-0=__kmpdAuk8;*-iMlK$U0VtJgfg8aUw%Xnh$GmuK0P}*yt z2z^qLo1IASB!O6;AeTCDhF_t&`5>SOPAV3DdE^!~ZATK8pM@gf;{4G|Gn2lSRQxZLlL}!&VP;o3;;w1>O8a7-Qyc&6*OQ(cK6^U1@=lp;&tQS zVVuPtD5)j7rY)NMCi*Id6^up7K1Q~6!JGM(wKYRdG=!#0L;I)EKf-$Wgq9Q4*N^#x zBsls4bUPL)DdyG*yq?T`ox=970!A<+HHvWZKcMDwoc?XThQd7#q*+6$JoTE*rFYnT zGBNx#yeF~9k4#7|5PNN?b`P}tl#}1e+6yB=lHh}`(36R??vLO09X$i{;Y*mT{fGZ& z8XgZ-8v{RIU?@!OBKV+5vMJm1L&oIujK6e)c1w01#59EJMM7=uPbe|lvXtd;U_I4Hd z;bbp^kUkfXL7mVM{gB~Pk%S66?}voA1U8#VR?}P}g{z21zQx8~17DT_1C_&vRg2zG zsrYy5;Z=A5E?ff&If}imA;&HtZ!6+|>PZz_S+MaPq-h#d-WnNm6{}9vl()vS9tzJS zBGpsSATo5^gS~%7i#n*(uu&{z0W?D^>df5mlrPo1VqW7Otk=6>t?Ka42ke^@tjoe`J3@yxBu8udBmLq0fAM`H zD5WCkp$Zv4Ci2$Jl8#796XJkDQYH8|mYvt(bF#2)O5h~~ zm-`7X#Zz1L3a^DH6}Hppot*`?Uyl|%k4<@yJnfTk?n~?{!AD(?HKIdETh46^^mhsj zmzr%u%!0F{K)MdCp!=t`3@QocwqFVq!OR9f?5d{3k3X=ddc0}`^l8P**PF8p0>%E1 zwJiYe)a6{}@Y%(XAX#`Yr+{Tj3ckb}ItrR|#&!pU{1rd)spmjgr) zsC`mb!=EduQ4S#{Q;27F#(w<>;*DiLweSMn!*}y97C;;9?QlLhA0ESb_<7^NmVczS z(bQ}G;H&?q*v zjp&cn5#BtHq(4bra}i|s2sq(Ccyk$EDi5-eJ*YYu0q*;SHh+d)>W7E$vHFYb$&+ev z@ah<7vo&>_SWl6uxOQIHv}+X$9TyGzI;-pZ=x! z$fhup$xr|*`z(@j5%#Ew{tg}JIa?jtn~a8g$l8VPJU=nKDOmm+$hn$^w248MFQNN% zB+-(ueD!8J%2B+$pRro{;#=^S`hm>zO8;=)Hsp>QiJJqi4S@#^EUfcKcsWE zH*ofT)s>T$!JBrifV(&y9cSUCAHZv05-CYWS8XC6rX(?&Q1YpK;O7CXOF>t()Pl96 z$ff<9U14;D4}SB};E8|0r50TWsRGryHIX$|JQSOhUdm@;r=#(9l_1tuiQMG&cwU@L z8H?xKCW4avpvjy}o7zvMz6LMNAXd|x7=TJA!K%b)FXL$$jpi11b9>O@Sg_VmqBV7} zDpq5=y}>KmQXNU{%OpkAvQ9(x6#*$mph*VFk@%hMQat(uAPJl0?=~)sFZB4>^RfN;d#T+jM)Hecc^N_fQxB5vbfedX9qKg3I zrGOVFgKMUsvno?Z;RR3bLK7MBs2xGuideV<9I}|#6d;b>mMW-9VAyMD-Q{2*BfNf> zS2P7*h#ngY@gugPB6ks|a23B!BM{PWg^d1;XRtPXO;XTjCy4!2M{iz73rFJDeFq9@ z$K7n>)lMnT)rSjyqhT@1R$f%Sh2$@rAcWJmEyX=G3~BPx-b6?hWQYXO!EVixwl zWJwK1)_up9A1%Bw-1#WtJ*T`k*~iLblHxthal`}_)^n|udXKMQJr3~E06(6tp7V0b^~4U|D(ge zK4>NZk6|$|d3)};HN2gU|4NtlZKcqRK2%DsqsCz@a^WX*`CD$OA41QL5!}ZO z^58~MxAQ;Zp66U=T(g-EE8?gBFbC!|^}2T?vpj)pfSJs`JBa?@0KQoQ-FF2?`?+0O z9Qh7!s6Bmz91O#n5FJHI!XM@FfNUf`!BZ+KwSh-3f;%Rci!kjjBbCm@6BlXG?)KAjEilE4Xe@YarC z8Hb}mKR`pT@GgzQr*ME+N*8SC5%BnEd{Tw5X~q*rmJBQPUCHd}h5T$obTo_z@q2Q6 zhN7>I(oKIW8uDMHN(Xvlm!=M7Dz%6*6OS$!uN&IwAIb%#A=K-IOBIc)4ZHP;`rB$N zt&Ost8qtPY6n^hpc!(8s0v3+1y92!IDX%8urfzl?*?siHaC|K1v4L+Bx1Fo5Qu~l` zF_Fx=QOK?`*pW*?AxxbI*J!$yWV(ivt1yC?VGb;?!}RXnMZ`r+(MiS@@RGLZ9+IoM zl@1~&$d#T+Tz@tFGEOS})tT&NlsyLT1OF?w5_QwA1 z2NK(g@9L1gv|cv(7~30`>FeoEV37rYGjpLYQ{7hAJ*A4XrOQm*y(9TpebC~E=taMY zj^xGg!A#)2ugJXlK~7UCIa8_&3inrLD!<7j%EZI<1n*=7c6=~*Ru#FLrB+3D&T@xK zKXtQ-Z+zjC0*RVe0Aq&IdteNht}5Pm6P=DblbMkLo>@&s-~#fao1n9{ksVinyrz}# znGH;QpM0pA$d21gL)b%(M+$hWjWknt5v%7hv^1JY0C~yd{h$qUmq&&)0gHk@-7(nu zPswFCWDGZU<6I-jqFq8<_&@5bmg6ZMiXL4}h0!heHW&mVQ6)G6yQ3~L(IAhN0!@+R zy=^vJ<_x&XckM7%XW7NJb1i~ZP3m52=0fF|}JPZuejkuEMJ5^k zUF|6vJO#_}pX}y0 z#qkVQrc08Kp(FKBf$~srODdlqj&0rpt*-|w|6<-th8EziNe1g(teG5SCHZrwf0@57 z`jp(kui!5~BF2AInkO&}5mylrJq&hw!4&u5*e7%7Ape6n<$J}X<_0?-WqQFV&h!oZ zxr`X&8hl`V$x676^pTL_74RgrVGdwB>NqT9J5?Yb_nE7$62WsH;O88GKC==X><*m` z;PsiDe-+M9Sm`NRkh?v#%6??^79{s$4(MkZk;fI}-5RAr(tdDMPwA{KuiQ_1CNHE~ z$6GI|NF8{jHW5=f&dE+DH|#ytNx8wqqPOoAe4Q2DXRu7#Y2VOQqnRJHhDhQI^yL$* ztN|ds8c3YZF4fhM>gpQQr_7*gs45jfCy4R3#x@Qjo={c)O_sk1)IrV!*J9S?V=8JoL1&^R(k5)&mF`x^d%eD){;+J9 zyQ9aBgK?H~uENWHMtP|gceZzZa<*`l)Frwzp!xgw;5v~}(~w9|fZ@5ml+;f*M!lM;WTWi(L}HO`Pv3wi5SC4A~iNLPpu%Vc#uY#>ZL7b9)sq3nqE67@CfyekC;@C^+ z;V_e^xev2tc4KYb!XGdW3^#}Tb`@Fv4qXyLWPUpIU_t&L0Bf&+?}DlOau7LOhegzk zI{J9zfrW0n1Mm(e5IGY$I{m<`iP-yVKvkWwT%wSQ=i$#NV}@agF|V;N^ELwUiFH+yl{0kU5Z%rb@E<1NGrf!7FPu=4x)hjyg+L ztEd@21~#8btnCSsOXR2j)_>DKqt>|*{cF}Dv5j;nm`sn4Gju0-NTz8H{5SonZP-Js zZ8dmu1UbBWrMz+>atcR*kNb1SbHHi+m^4t09s+SnJ7zH@Dd&h8wZQ`%Kn&nHvs%xR z>D!!s8>2wT3z7dRWLQkYM-oiDq&c0)M6SKSa{cJHqi5o(dN96C54Tf`!)8e(rnCs& z6CEhWVh6URV)GRKluK$sc(j+6LYJAL=+QRRR}LaGIEqT15qckeJa%6>Y|;04kxt{8 zTuTgj0v2Ic>N-5|)!igQQV82Tl)8!y+xRlrYaP1$JZD}NALmsvZPzfLuos!8 zrSKzGbB%NbDg~4l_(UGkFKP_l-zE5CT7iY0!1+7C+xG?5qb4Z_-3y9>)-3dYxl9iD zEn;dvh*Y`oZO7o_>Vu3OC#pso4P zC;c^S^i+xkySkA?rNO+%kptIMgC_DCFXKfmMYd`(QB_ed&=zzZ%^6kUZ_%UvGG{x7 zb00t)-KT*>d_@h0X`ad}4U!prFutRo};kpu^LTO^gOVGtamUTn_6~?YO3*B5~KedP+ zttH>;DY$wAXd;xE$Ca4vn1Da42i03|sP(Fap8Xd;ktg=4h#emw&m)!Wul!_mtw*MO zC3f|YuLa~Duf|`xk$!)(@Z*bV04dnLv&bE|3_d#o{yIrM?N2qoW@UOtc`Wc)d?zoF z=2y@yvG_wYYB9?4WEVO-99_PJ7}^iA%<|DSLM9{DA3sk#zQtR})NVvvYC+qXI>6fP5!Gtf6S2l=K=h_sBs=jtMcbcW9xi(Gw-FJ~`$@&S0s>_iqfa}w!5}1J$3B>hP>$_+Ofn>)izYD63XhCC#cT_}(|;Gv5vBY=Ms6!?e)^{1#&J z8{T7SCmsC#@r%^PZ&w}s(h@m;9{*n~HcuCP|9zz2+1`bh(C9#XXrtklc+Qo`7v7PL z*upW~*=w~oa<3FQD2IsmoTPhgPM)*`KfjL1UO~Q+IQt1`)3xlW1HQLqXkdVl){98{ zXY|w&5s|=)Bl;uH=A6nPv(_+^$BAz3h6nNuF^{YGEjr>O?t-1-g$wG_N_8LTAgeYT-5K2RYPiCu0Y%34;tsYYn&>K1tT34UjPB3U)S zHUDK}x&p-L_7bDRpGlR)NIYf=ajFjRcUf}tJ+z1FD)8oFeBiaYw?^ofLG0%@)SpD0 z{ydmJ5qrN9y^2<#mFJNElwbZqmfqfMUsP)_at!Av@^5;8%x|Gf`j9I!7GG8t*!l_C zZedtP7swubi2j-Yt*yhK*Nr?Yi{=2awm4*Yi$~G|6Q_UBx7DaTWG`{izU^}O-J~Nj}QvvVBkK_;5 zT~7_uePR_Bvi!TaZ)@Mk!Rmkv4j}3<7vK0DP~tQEeeJ04Z4N!v#f!37`HxPFhg?6Y zN$5fUrNj6}CJ-Y#Kx{Grz1xpGhcob29X{t9{`|gRQX?M1gU)r%ebke8(Y~rj(1~}5 zx4ojqw+8k4x8!%S5A|dl!LZHnTaRVWda9AbwOmNZZTR&U;{p4M4KWxhzfYd<^EL+F{{xn~iP!K5Cnvf;9RlyvKtC4ZPA$ZCJ()N?7N2Di`oXWjezp;b zm;kN3!yYID+HMKPYK%@!*BL;T&7=g@^o!4K1Roc}=KRUrN+%O2k0K9z@xeaU`CxUY zVkNF2Co7fQ(q?2EoPjzoy1SBp(H{SnLRC@$IiK7UyS*i~P&eu6qg-lQAf&LPgU zJ+v|%`ISyAErI&?$I!wFq6HD4X@feAJGrmcs1ec1(#-3J_W zoG8Ltm*zU;%uoMANv#Lo4M&&E0SgT#<|bs#9sE(DbODb<_Lf2dj{q}-bFRr6{n)Y3 zhNHLUQU^Yr{Nf-yK6S{c&B^_4BNjT0thpD&8ZQ&;9fWVq4wabk{ftH<7h$e=OLCd3 zqLDU$opRA1u?M|>D}Y&|(d+)y)E%IM`Zav@Nnn*ZWW&0k@VA`ZZsIj&Ubl}Ey{ik6 zdT}@ZB9HfxYxo6QZVA0B+F=DX;XSvpQ%~Vn89)r_mpg|pC*B?xzL9NYytTwjcaWTp zTTpEcaCSFntsr>y2$3!mdLRj#@dz03I`?@O`dUu>IFq=t@MWdoJ32ueE*7m;0*Mrj z@AE0y8|%S3gV3>ssX@ykA}V_Khhr~hk||vazMClg)Wo+p62rJk41E&v^g5W~6_gpO zy9~dq)^QccZBZ~InN{HrZpx;YFC3bFXZwqdcin|!Oi5kzp(f! z;oAv9JM6;}^B|8R3%e+T4jT2Th?)i*qe>P8Xbvg)YN{fJILT~PweF_wsJhPTDvlh{TjMr5;o&) zdptm|--9XMm zPk7)Sr!y1(#aHTY$LbsF@8Iv7flur(^@+>yVRu9xM3L<|9lQA~HgE@I#v^2SKX_eo zKh$jGCe=X)#4rJA40(h9V9!p&?#N<|U-7W$=^SwZ8_P`GrYQ05*YH+1^sB6T(DCO3 zotr1(v&#z(nd+{^1iS$KcX=>1WIf0$?SUOl;w$+s3+Y8%2rpkxxXOY@w6r@zElM52 zC#^C5&njRyJGSjcbbc^3a)3`@wV zz6@^)dJ%}ZJhoYW?3%M=G)*FVZ#u}nAH1hQQaMYEqA?` zxV*?W?Ly8}8o5&gk#`|2i5A?`b$4Ng>XA_?iGuBM`tsv^iwH94sl;_S0^xbSA0n?@J)^brH^8rU&ybjj5li!F-4J=@lq?y4yF^QEkjiO zIuh&%aj0Bw194A3fT4Uy7f#^)-sY@E8{=qN?kfEc=%*S!H8 z8b+3I8S)bv62Fk)q~7F`Gy-jgz|U{UNeahjCMGSW@|hQ~0D6(LI*_>MQ}Tz}pxaiE ztLLDvP%?S-t&w%{?AD6KT>zCQYE?R;gNKu&Qxw~&05-56@r_Y@C17JuM`yq0^m}k? z?TIh{fmZVpTmOkB9!a*>6fAGig{d@h_%t;-$FW^ni`p30*NgRT1ltVa8B5ScSIH;2 zggn>F7HKKiZan?u8jzjv2z`8*e7PR*>sFroliaBj=$cNv{|bE5kNvj7#@&hE?i)FE z$UCGWp&EO|}L9y3BH2txhn-Se{LG`{M z`+qkOlmh)A5In%HXg4jF#JtrPGdi9VX(DJ30UV;I}{ETQ~L6?eW&F z<%T@7t&e8hSRe9eH<4$%0Z;WMEg!PWhaAOBLN8b4UfnBs01v zp2W@*`P3?CXcamxik#P4@NzOIKM z2$!`2gB}Olid?8XR2PZ5z;#%aWAFicf@pR_7d^2AYH;TwzwkPKpWqT3tDKvX?_G5eSwk(;D!9bjn9Kh zHbQkTq5gwltOan&C$LTx{4)=DYFlzEKQn8n6E{izFsLC1sP+TcusM?VHCSjUy0#!Y zXoXiS0bdw5mV8* zMsl+f@%?XsG82hetw3%$kN~5R9Gi$M1R{}Zfy{G}gCuHk2Z8JIkY!sJ|ML}a@*4Eo z4&HZ;SvjTgWCpX=bL4Yu=d6xnZGAu<@5Ek;fDcEY4SV8W(1A*Vm?-9i%fv*~`*2_< z&f^s8+{?NSA{sB8^r#x~# z9L*?vd_Rx^--v}xC6e?4eSebA@W)@Yh8Wm9_$P^TeUH{X2Zze!DvZZRbOu2y=4`};6SnvW|u$6pEQ9m7tyc)?Z*5Ro?v0pYIcRM4ekC2B@0X_~P7xNA4M(YqE z*WuUstF1w1MWWYsV{KkRE{R!QyTO!QIsH9ELPA-4E408FPPG>ns7efB7xc0f+jR^$ zIs+Oj4lidwD|N_)oCE(3fabi=(O&q$bCEgv1I%0)8}ux6l7^(5%X4GVAOqN2AD;RD zbMr!ZcM-U+A2!7vc;^AH=!=c>6g0I9DN~qrZ|0{@+3Qh|M-lfGB8P$8c{lWH3MZ?F zqAYk5h9Q~$P-pNNx#fhT>XQwypZAtQiq@g(t2s9~9*UfeJ>CvsqvjQ9~FpQYLZ55A}HYT zhK{57{+dq+;0&t68P$;pqE^(7yspZA(pg&wRR0i<(nomFrjx*Hd$68*P@B;g%3lSy z-auF1#aatP18o6oyvCP#ikz8BwSLvMVG{VkM3Mvo%9zRs%n@ z!E+Tz)H4BWwVJ*5K?7DtUU}%!*zrT8vk#Ig3#60A&6=r@6P0c@&SN{zcIpaBM)r_J zOzWKX8p^w`MUm&S8BOq$um030rSR-nR$%2B86eXqV4)kVXTt z=0cFY6$JMlOx%}q&PnxCL8M0+G;=TRX$W^&n;DOLpbI}VKq_=TjZ+ZlXBcEsw~<38Nkr}vR}&H*9dLqh^CK|1}*t@seLxQU&% z1^*CUb#&fbZm$oL)(SS=&kFyN(>$D??dOSC(STbyrzq^chv4Ow%JTM+m$GrPtz8M!>cAJ6 z1DvsiyIW3OXi?CRm|QUmWKa^$)N>Yvp?wcdFbJszD|#HDg*^} zMx)F|Zgzp%#dOzbxGR>|4&mHxpvk^*N3ZdIg<>;xA*xXn|IA5lAq7l31Dr7i?q~?5 zj>q$Sk#pP(75@vGYfF~)Mx^dKIH)zR>i{}y$&<$-=@#%=rL(b42jqMTxJ5{<#k{sY zeAyBCKMMIe5s5sWuNJ(gJ(@F?C%LoH%ug^z33gZA&3dZtijx=O+;9Ly&Pg|GLEA`-x!CZPQy zxoMgImx7OK@EKmL_Zj-40-F2~oc;jX*#WN#N@$Kxw>CEKKdgHi+&7E+ug<;Kh9(D~ zN2{@NBl<6#S9gSNn{zTvpxzAb^aJY_cl(XCiL(^5ZJo$MHnB zhf~fC?s&oqlffh3*|!OVb)B^(!QYv1f*+^p!Mbm-pLme|9@hSoXZylk{~&i-aF3$b zqtI=2xT_!R;4ZvsfK$FgKmP-jY~Xu3KYPO`B=R|_tWaPkA!A!Y@1lNO==qY|mYsKA zh9*C99(}pNCD6|RzUpu@c{$@U?4mxr(2dWn$vry2OINWhUhy71r;?Kum4*(B@ibvW zmF8z2RG5C|_vxIt=*cky-W7A$AMsiDz?en2>tGPUF*L|!L^cAoWSaVi(#zN^Tfs;smEk)=1xQqP6oqB%C$OaAu~ ze$zPlSD>){Jo^aJ^AYELKl}ddoLxzFSO|VB!Rh3OcfazyGps2K?N^82bc1f2BU#EL z5k$QvO{MX3z2);|kf+$`H&$^Sxx71D16*UThuN{182o^n3FJOyXeI;f{u2%pp3vW% zj>z%YimaZG?pVdEcXCf#xVNQfij`oZ`RsTozVS=!GMH!FfgVJj%`DC#Cvu=IyUfd8 zZz5eXc~$_j{3ZKwvaUYZ@8gkbA>2qB`&kD~tmSm?pb36)Dte+esnB>^EUYq6eObJ8 zg|G_hU{y{9Yt#fUcgBx#i`QmAp<>?hDbVL~_^=hSurq(idPd5PhT6-qHVdn`0R0)E zl0i^IEa!iobz1R@c7P^wpevK0->M+0)o@cW(DV!J{7|@iHt%WA--D6DeWC1_7%cTCRy>1?<_priGCs_3Y3j?W5aFZZC@VQ>TUKB2WpsL2HP zePT6DkYdxg>-A9J0d71AM9>!6>bI6jIPq9ga7q9-r@x7px_ek;Zv`<`xekzjh&4Zt=YuXV-|c zy96bQKE|)0u4VAx0M;>=TN1u_(NFFcnz%L39nLvaLNa7ROX5AJdDbj z#&Z*Sd5w_c8t3ldbcIiS2D~&FzW%~{gZWIVwegtE#xg#OH}^YebR?%+fjeBttxe|{ z;n_Mo4&7Ik8~zUetbx~3;X7ZX4OO}P>m}MUjg?QwQm=zG6vKJmXU0wk-qi~^R|^Ub zL|^`d8c*@weXKYYzAz$*8}Zc-9v2x+Q_-*Gp}aiVYZRI~EE{Ee6MIPKb3U-gr(h2& z7$qMkQJlRNN7ButJHZ?N{+AVf;S8LdMmk#HKcuQRPiX+Q4A0iMq6Y6HGHwmJrY;(N zEfQuhI=eo!{1WsT_nR&?bPMlc-w3`8ZEFyL<;g`ys z+&64x(U&HP?38zSW{>mQ2)-hrU2pW>IiBv1-L?>aZyL{B#OXwVCF^lQ&AHJQ?7K3k zZZ@YdjFZtJ>1(p8(b(wB6i8CbS~@5uG6_ojVbZQ9_!D|736M&y)pp_lF0sqUVZ@YJOWh}Vikjs zo6)>J54ZT8^{rvO|3m%=BqsbHqd~_nu24%YPHuQO99)OrnzAKNb@)?* zx6Ysic0gehSkrWN5C&DWLmCOqW8kYT{?*dtIeul2`Or-x(bsWkizi6sD^S%>kcOz^ zo`>Bfuv#Oi*_Y4AMBdkgwueH6rJA8LQ(zDS@+<~wZu1mAmfC-Hh~XHp&M+?TL@*Fv+u zkTLDx&V$gdu;aQycUi0?o*ni@tUWl^Sr^xvyPyEJDk9Co_?9{q1>~m19(o3Zw!&0=bVh5 zH43|1%;!Fj4vfPqUkq8&83`|}pz2Ux9_U9r-;G4i$0>@~VNs~V38#oSPI;u_S#WY$ zBx4rbG7im_0f*P;Gp505qK>LKd%sBB;w9+%CNx%_Q)`GvEsk{x&+&KSZ0Xd5Sh@XQ zXtX2jst5cmyiprLDL;4a}m zc*dITtR{n7J=3;Bhk=yBg>496j|Gjr5N5+Jz4A9v2s#<(wyGXzp#SZODECeq0}SAk^^^__nF9p zNG6+9%=7TaN-oEa0*NkFK_ai@)>gp3v*4yeaO-bq(JbAhwlSad6R9sS^ITADX}sJ9 zx}M#~Hn{-De+6%h1H&u>DLbeYyH1{#H=PkfWR+-IKB)v!KaM?*M*0mU$It_co&qW= zPn@kB`D%^G6FbQ7pCi*pVB57O#@>QFu;%Q@4$|qu&w5HKeP2H5DiSZ>ge+}Ke)kFT z?F(qX)V;(iT;xjKq0T1BUciyV(!)~M8fV?=NOG8%G}POFso#6wRNtk>ct(0xQ+8yQ z&HA3H&$>$9-C3_WW{01T{}!LMKD(I4yGmK1+;;AAJ^@*K8D--oW{o{FUNNS_OUs!1 zy+IkQBte<~%2VW2y+wbDJ{a?vA2))D2VqJZXxIFAFhtfqEf7{n2!6^ z+R(npew4`y-b`p1$$Xh__Mi3>OgVSj>o5t~;;88A?3%8gQAIAtMs!CwJro8}LwW|@ zY)-y>2l{vPWQNE)S0g1}`KC;lKgs8roi@dsY(8qP;@!_{yO$r+R>pF7^PuZ=xv74e z$7PQ`KKp&7fW-kz{eJn)F{|d>OkLaQk;?q{*`7_jCwjm0jq@wwJHt2CyMWIzW|6;R zmf%n(@*FW|nm>3)`Mmb7>hs6!=iQMBJ$tFc%gHJQUeD}=qK18jk%sz4#qh|u z*tmnwZ)>P)m_klNeku@Ny9T%(F^{N==2DNNU;c+&TZqKor3_InJ9{|4Gc$A_(?f%p zy6&I`v9wAaCo{mmI*vNJGF2^^xjJ>3nie2t^N>&Ps~XkU^xQb<+`&v&t3$_(*fi%| zr`2h5{&szIy`|TLCpqpRRFSlz9_B1rzRi_JOeHQr$A=_k1|1cKpe1@hqeIbpX5`Z( z^r@(248?XTiZ0906@gQncqRO$E}-vj$oVf?BRUCoLgqWrK}&Vf%oMpq?M)^~Xg;*+ zQpQtfHeS8QRE~o5-q4fh6HRUTHoD?8q=xdRQbhGr;*@Fhi!-7j!_cf%sY}YEOjqKZ zeVxgU1jk@kZ`V9>agMTzHt^Rc^_x0?N%ZMV9y6=olw|UsI#Zi8fZW?k%w(xV@1f)1 z@iSCBrZD&7m@&inMqknpf>u@OMGz`|)txsSGej`sEy3fMM|nea!x7F!qrY7e)tMu` zOL=z)j1F9y=UbjO0Zjq|j3f2w^c)+eyiyj@;kvNTPVc5cYlGqfLjtGz)$^_78R6lk zezTT-g?x_rOle;6ULQPK@!Ti+MDp*Bks(wYp74ey+8Zhxrc$4NfOS{4ZM0Ug+{&70 z?PYyt^R$<+huBwSg=HQ1m*vPzv8}W{vqjqqW!B6X@N>|Q++Tyg ztp9TAbC2&0zK!^^@Au)%ff>g#XJ+KcJpXr8#*IIZ{;v9C&v^a!cGmUG%&hdxaam0> zBeHxmH)ZY2bXz)E4%>^_&$wb-m#HcKrnS&=>Xy3aqbYr*U%EZy;kTrJT#7teb}+|d zE|h%Jw8T`Nsk^6{Wg6#~;XA|sy`Qgtq~Bb>O}^27(|q&#b@v_Sf5XowXVV<{f~p7J z3i=di3(6IAI4C_ZD5yhV-k|uvu|f90jzPcp-LRmQL9K)K<{X*xYrwvM&;YLheZX)3 z)BXqjs{~XDIPZVe|D|tEKgp-2&n>gd{M1wN^!2cta+*FFQw)m@Vy53x`cs@|E@UG* zf(O#^DG+NkncT4Z%pA*dWH=%nQyue}3>M2AI~!7@yS=VG&Q{%Ku|BYVvOcvYT6bC( zSdLjrWyNJJ%S_KyGwNlY%ea=&FtbHwaF#jiNY=5ew^<&RhL*{eaLWiwSIc~h-SXG6 z+}hsS%BEOv*;d%T*e=<;?Vd>DVoX6??8xK1??_|vVF}k==R$g|Y;#Ru7OLH~i{3d| zbmMYS)3cRcJ@2VPZo}73HIZuMvSje4Vpq1H|6j1X8MW{C$k{Kzte6qh3w|aO@HmM*;8u#EKBo9FPqM1ew{6O%3n_9>3$Tu5HTENuat zG>VLsbS(vZA?(iWAe*k#9p63YAZo#luk+mI;R|=*FtONDTU$N5tyboG4E&0 z$K0sjq`yQS{zpk>O4?+7XJ%IB@bvb4?49f_`?-9V`E~cJ<>&1;(s#6PO>>M{^JwZB z?Xl7$*kchqdfB5Yb6%gAv&?IuQZgUD< z{qNIX$AZMOxqRullFw;yOtNR#X4rmM*IUn87F#Z49p#=+WxeL6t7X;7T97p>tFfgm z^Hxh*K4;y_dYAPqD~F}HzH-9)!+WwW`M%N zm}M8v49#}Tp9^-SI%hEb@}^^fBNiEKW2WX3Dgw_@quB@CdY5?@@2F#FVF+d-WNkyb z{yBB+Da@-((|0f|G#oO1GnQe}Ad_VfW@G0th*C)%z;p6Lj-RFu=Tc4Ib2~076YJO$zYo2PpkUg&Yf0;R+i}|{`vH55 zeHl|Of7$Od?Q*SctxdHm)}6K!wr0$o`|d31n#;_}*UWRWJH9!FIU<;1y4n%!`ss{P zLX?9{XsSfLL>@HJa%OtPDy5l|+D$1>HNj-Hi~5AxSGv$^`BpKoYYu&#Q+shh}llButH0%{xu8g54H;WnH*A77mwfBs=z8G890ClZ_l z=G}oFJq3O(3_?8vJ{PqxPq634;K{p5t>!Q4?B@6iV02A^cR_ec?D~w9Wr5tGDkVZiqqux)GbDlgZqs9ldWKAaVCMB6CG9Qo4T30ll|&1<&V-%Z4HX(qNZ?1Zl-H> zaMg8nbxvkN^)}?~C6||yhbi~hU8$~#%*_7b^krtL!C8jtzvoP>Pjkk*dbsK;x#)y- zNGXeibu){yCH(@fGS}!FbLno;BPx`d%dY6dS>X2u?@Q)L?`!&%}g&%g-xqWcZ@|%afWk- zft-1kJPAJiNG0A9YGC%u!{{HkAB%JY_Hk`|iSg7h)&=*q1M&MR(R8zum3yvFbT}CA zTIgKj?Bf{hC}}Tmw^>cLB-?b`fA;D25%x&?H`^)O0DDz?F2^JLE`AbdyJ`JvId3Up zePDTN>1(NJ*_Tz*ayYAr^}402^{M5eCDIaa{bQMJyI`$kn`JF;n{4giSZx38sOm^! z2JIJHTl8r~+dX>``z43VzS8;8F~YTvDY?{{3Cokou^W(ktps_rNW7EYfAvUw+fYNl8>(R0qpOz+=g?FP3mTwB#=%=anc&J+@Eyp4qf_*cBETm1y1FO~yzs`Gn(;tu% zLv`)7T<(W-z8eYkuA_HoDF{zj{zF;gqQ8>$*R$o=H5>~kG*f=P32`+rSeo zsFFUfT%eyx6S}3%V#@FhC5HZ&BeQ!SouEVGiPQveghFX%6AcF;X zUnA&YY^9DVB)cLc7u;NySa1_O4@dCx#jCrna!qW?{}$+yqtP) zA1XsD=|Ahejn|DmOnE(inNmDDdc0>o^fr$PraT_oO>rIrJeqsX@aXG#!efzVP0uXP zFt1}?XFa360zFT7rg<*#n&8#NJlU(ed4^|{*H(`x&wd_nJ;FTpdL)@@c$_u$^N^YE zYB42xv^S-jG7JrkcbVt6U9UlHznK|4PCu4zi{s_ba#4Ah+*}$eebiadF73&QzUaP6 zPoMW{L2WEpqb4)imMa65C$3d4D@b&et1XB$m@ZmSs+LQ(%hpY{OV&+Rn`Nl=p{1*BlXas#(Kgy% z1?@Z4I^NdDdf5KhcGpo9o7Ch8an^OradvieblUChUFDr6lrl`IwmFNt);Z%`hn;Pd zF0Qp|tTIb&kNtMmIYLQt%~x&w|F5!Ebt##2T|7v~u?Tk#EW}7|_c>K@%hfdEj$1{o zAHK4acpqO7-_D_n!$X>>?Zij(8PAl6qhG;uY?k`#dQ*EHCo(O`CKnSgsOZP;EGzBB zGkgnO+y#$pBAJ&xq05K580iGnR!^~8J5wh*8#*lr3XaED@P+FC#@xOtr|A3B8{h=_ z{0_CSHU;DyfX1pt1xAW)o)pJ)fz@cuI=uf6oc@#vq+fMArNY!EJkVyl8=+Za@WsU8 zpVHJ}sYS*^_YHh7pKRvNXz={h4t7PRET;F;Px>Wh=+89?;TQc!tn^uUs@Sof4=Jsvw=~l|;u}`MBfN5hWFy^d zDlyHrxBQ4o#VKSEoIo}`!{7D>ta6U7K&f=vN@sF$AHyza@3g+Cp@5+xbIhL^jxtF- zn(jUkOoom^&mCsYwVyGG>9&^*#f&!$QN~rwtIf^a+wJrOt;yWCgLngmv+4*Y!%d{_ zK2GmzSfp=b_%83%S7-Kh8~WIHfcL&5^K80q(ktZJKcK6@R7lRoC$<<*=z3)6N&E#e zRKJ-{8jJB@)}jYwJ!YZ0@Gk_BO&UZTD;F6{3O!jWYO3m|{h^a)I{u=PROc?yx==4d zmlbNbhiZ$M*Lu>m+%-(eNq5NhN-n0+`e+xCny=K_+5>em9*-aRGX@dyi>12Ik4muF z#KHQL`5H_7c^J977WyD81#5NV%&y~)+E2vc1bE3J7uWw|7)D1bv!M+gAztwROu9Tr z(+9CV9b1#AG+fRM;hFGrZhGcEqtC%PtnMH%Tm|_YU96hO3Fwj*#9)Kb8b7I)tj_fM zF5K09GDBvA76;(B6m#x8HU;I71wLDexN)@3L>&u zla6RT6`QN2a^Lj=9JmfYcTu{HcEYFhUag^SU{>}Qdh%`7wj)7msRvxeUEQ3&9WPu} zTxm>9{pxDzs_%U1$Z(Byx#;!u%MtJBrmISXtmr0Exo(x35Xq{}{YMa!_(T`f z6`bi|UNHbv=S{8k61k{8AM>#1qQ&nMpKON({z9#&J&^+B1Jt9wBl=XBXSbnZVI(>+ zKh;N(`Y5`?&Z1YXk6a2*`A4-9-KGMxYVKrBPxpe+L^KA2z3VZLwJJP#O#Q2F$KD^I zG*G4z&znWZ1+!rVJ!KZ@Jm|=|M_H&OayBEV*(*jIN=KwOAGKrK6t~h3U(6q7xOAhZ z^*-vEwyWY%ejXP%7(;@@MI$ zKAEoKR{0IK`V1|HmPg-2wi?PB&PXQtD)k=Qh@8(Qjxhik_y~XUZt7p7=+2QqPmh`S z*5je?e)#cofkgChYXRePLqS6`gT)YP+zQ9Lk)vP8O#3RA(pyZQO#d1GXWRredds1* z&SRQsg6A`jmBvZNC!k-Gp|s(mJYF9s2kF!GxeT6qo&G!sr~wm%*MK3eQ!)KUqW_Gc zqG66+8GN}+)s;|@>6tRma-3ubicd-yM@j>Rs4sEW#peL(G zmyZc6Y3je)4`n8`-*dIyAf+;7XWo>T%j5Jl^}nb=pWyiAIBEN8E9PwH%uAJJNBHPF z$S5B+z&_VaR~nYWOlP_yhpV;ISM8#F#Qq4w|9{1K)*0j|?ik1{`GrbDaOGb26>Ncb z^Z;2-5AwhCL`|nxZGSu>4!R6h17{2-@=}iapJ~{ZGwC7tka*)1Ri~X&mg0YDti=kbp&1$VAHLE%csaKs`wBCOdMSR|2ly4E^>y%_$ogFRN&5Fx|8-=> z^l>$k$%7lT0Q8LmAHp~$fQQN^Ih{Q9%f!p>yXq?iT&G<_h_+2K>@j%LrDBtNrfxnl z92@?a4{#%N;(F>c~wL2YTg( zGERM^oKQw8SFnz^5T~vP#b04=@)-2YcR7w84OiqL)Nzl)Cq0YWssdzaSy}HwSC;b_ zU0~-+t#wW0{ZcA?8tqDQEoHiLK_w@B0rtBUosKRO1)!GYQiLH4nV7EY;Tq%`f^E^n zk=J3Og5rw&Q6H+CAzf2G(8K+R7AsW*0rhter62Hi<)`wP$@P8c+I|;}*~_@d*i+gd z*H+^+9q8{VSa={kp$dX8xAP_DWUj$N+itjO*et9}8P8!=(qPTXf2uZ@$78fKdQ zGp+PUGM+bFkt6jrXwV><}!5;c>oHhXpUTI~7TW2zy)v54-D^uu*V2_!<%hyLsZ&|W@ty3A?Ft*>f4 zuCD~9y{Wq<-;-|1y9_(@m$AQFIsE8*iO&TZew&N*lLp(4q^wh%f%&xh{ zDV>Q@9$-#+S&uxXavo0OQe9iAhx0BIzB{^#Y4?>jS|^omRrEn!Cp|Va*8il>bczK0{_tFWuBdRp112CFyd3i!(fe;At>N_m8vj$`+fWB$l<@-f=#-^pvWiSE*l zFOC_uakj&bdyYc%YwK(L$8g42)3BT@lFrVVt~<_y%D?m&NTw&yP1kN^rQA$^&FE}Gqgvd@)Df15OV|CLrjgiV7u6a%)$XHAbR2gsBH~k*c*<|%0K*Kg z+s1NoQC&Y*9p#(z3mvdmxCdzS@iA?n-^xNLuc>|q2)4I-lr~(|srj8pTyvb^$|vx2 zpq$Elk#}0OI$7HQ#%yUcGf}*ieix?^i42^DwY!pBgQ83q8}FRtDr4{DSgV{-_K8UE z|B-YJ;BjqTbgqZdWTK|F&D2ht+DL8NwwvPBwr%&-M#_{)(-`CHJO7&ZzkGR3GP*b$ zXYaMvhW@i16TA+i-pM0EDA+%CC;E~buxE{fc3dHT0zcJzp8qaB6x+!$(j+KJ1#&l- z9@G>%M|2IF z@lDenyWe>(c(?Gqpi*^!eM7GyH^a}^bSIP%D$n;3m&%O%o4Da)=u>1p;L|=p<;te% z)w)=@rRBP6yyo>SBYzTy=t|UF#KTTNfeb0@?ccRTOcoM1}$A03QZlcJ{jGBhsrOdKhRMV znflB*{UPoEvTO->jF+0~o37N;s-XvU6t#jyVA3`MYBZcJ%|6wS*Vocz6I;Bq#3TGQ z5sF8;>TC?1#%^Z5G1F;e3B*(Rlrl`1B)wB__*$?EdylnpMRc;RF800;G3Q{H9525_ zb>I-Dv)5y0pi4OfHLJhWYw|KR7OFkr$ozUkeQgDmiF{xPu><)-SK^#*5)(&vL!WFT z*GV76E#n?D?U|>j1^=UThNaw7UIE?nFP%c(VBGX8?f|#U9B5KaCSw8{!$QYLCnzPg zhv?abkb-U}R@^;$7d?eOja|fVsy?XRT{w4E_o5y~}K7q!x zig!@x{ets&1LYvU9zqNmg1W+V-z;K|t}gwY%Au<;O^H+F7}cQrAicr$B~^x4>pKob zg`FC&y5s;Q5_N%Us587&BT=Chi1}0`^M%|`jR(T+hO|uL#m&+}<*51(Sk44_QdbTQ zk$1Y`#6@38Vmhh}1BE|AXVi~F(K&hKyQAw5y~8eaduk)rUI|RADF6=iNnlmtpy^>o z{ejR9sN0a84T28GTJjP(Tlbi_AjK%p_yl2xTvMJx^&rne^RpkZLbs0TLp`JqQng@H zZ>0KaU!}3S2sp3`R4i2p`nDNBl_t=Qp&mN{z4(*lE4D5ZPj8_nOi=%`?o_U@O?-c%{)L*Hsmef+v@7hK$AX5wqTbHb@ z`zbz`7P@Ei(XOgqMj*uLP_N2hCeu@mzYLEJ9Ss|S99tw@=VytnQ74=$DbiFN^#fle zH4VC4eSEvPDr}3;q~NBexB6V{?v{$A>~ZvQ2j{iPce^)wzUtNxTTQvf%)m2&B3py$ zCcl>nalEu%uBKRhYqVkXMe-=yj2S>Rpr(npL{@4i{qY@vzF8zD4Zpl~{^d#CNFK>QAi=R1FQZi@HkJrdnzF$}#o2yjdNj z>_?w&GU|O_F>PQGIgMU{DQ2gD+7qy{_UoRa(tbyqhu8QsQF+oadT7Uy%5HTpP!qFVJzRlOgdj1Usp@Pwv4d zEUGazhHS4(qlS^uTs#*EJjq<&abU#8>-tjT=v!nYoe4F-2~;U67&h<>UjBoY?t7rS zOmw8zQH|JR^djmfxzx8$cS$R$leAvg)fdyfpx?-yxqU;joyxLW^%d~n#`K4Y|nrOw}L9!*Sx)tzKJvtQVTTz}sk-wbiG*ib2to`^!E(j+s|kik_k zl{1v4Pf^35ZgG$}NjiWwTLIr1s;p5TkRHm&9p_}`67vu0G#2t6*2y~ZKK6}AF_mQj z6nNS}{j#*KDmjx-h#8oQ@(#V4!t``{5bS4xbX)A8byv4Dt=YTGamGS$sE+vm>q#Ve zdEpH@`(^n8LNB6@ZUHluI>QL4!)jy(s$@q!HgCMUqbEonuB?=^Wji0oua?$`l&+F* z5B7&AgtNkYehS|Mng|;9ohOv_@+kDZVkAm#>FvRv7OIIA)aKAZhNlI}^S9JPo~~8& zRb$&QFQE2R$FtgfRcI)BsISxzsGv0GpYd(I2l-Z*;?bQc#Z)t_VHLfd`L3!;zN3bF zrsJn8L2fE1Lv1P(%=gY@3bm82$FA{h)=o)>h5Jwf?tyDG3%%(~s71~7F}{~7W=1ME zeIDhtR*%|64%4q^?L@xrsT4225R1xXunQ5PzSxx7MxEjY>kk>e81fO5Mq_Tz4#6sp z;(H6vrF0opEUF1AtLqW#64)y2e0+@oLOoP$C64x<;5Q1{VqMg29-_YWhpEDJLp8Sw z`-Clydhk+pv*Og+Yd3(;`5~F)V6aLGGZUF+=+~Zw{##Gz*G>kit`a6d#VdPcr}Ry- zV&29hFgirkW@zHDZXx>R@oFV41UY}U)&v@HNy=Thg=|u~Dgw}V{iw&}ZlWIgr%kj+ zK!lZ`a;RY7+jaocSsrR-LzuVBFm^8+5BqgPhp9NQFEyZW`5aZc9b6=L$@Ii{+t|R^ zj%mqKx^F}WwUky62;n!-!d}IcX8Lf6>~(GcH=H79r#4D=RBZv|V-r*zHQh$)6nPOk z*Go{BD+e@OEb=`bIs6G|B^HG){SwsO9xCObGCD_{1muq2aec~ynNSlwnLS|QaNvj}p!&a2S+BH3O*k2Q&|g3jq+l||En+10 zJp%a)vl7-|X2N)&H924?j(|lsAC<6VDvoZ>?8H}1wl^25&!!(UyT~b2E%b0ovytq3 z{cL@AeVo1mTb5mfYdZ{mvo7pGmSaioGBcNJ#Wdz3*y7v^b{=~XUeH4QA+|Gpn5x_r zt{1mU-;mwJd5O(bC2b?nafRFJ6o(29 zVF`ajUM_LyZR+?~p|e-xhf9glWUU}nv#-c$-e#Ve_R;yV&R335skszN^+a7YmuxA{ zm);0*(lMoudQ)jH7Z!88Q^d1;Azy86C;EWHq1?O1yPl8r4EEkt2WqKg7c!e6n48QJ zx{%MVc9X|RbCnme1nr7Qq6f(mHtK^K;A<|wk}fK7axb8$FnqrxgX}QKv*POHnTRpS0i=lh-Z_01GEHY zD7}t7&b*^KppSTp`T>>H8oH^3fc&fy(0DW8S6@O!ewlJct}fi-XG#ymXw+kRP&KHv zBr4D9GHoN@LHOuQc7Ahibp-KCJe5^J&IM9vHZV6IWVh_|4&{5f4moSMemhyO&$Cea zDVD{2)<3{C)FZc$Z;4LiQ{bi>LL1>EbS~GD7sxiuzf3qfU2XLthy?N6 zQ?@WSNWWcgH&iz^G#)aB8$TI)8oQYOHGMI6wNwt6V{U4xkG^-f>AT5g*&i?|ATscI zz>&b-0kMJ40uBcj4Ga$AEy)43A^d3c}xfLXE8w zB4tf^iF8tOi<^OqJ0#8$@5qbgzd(_7@&4nP=^EiI=Cn9^yS6$<@SD7pyjAKB%vTfF z4A(a20%yAWyDQxN(b>|OV^48DaJ2KrdGfsdfeuRW7V~o6i{1@h*1Og-%013i+oQOm zJbzswp3d&(o?q?hKbSw~4VKGGz2T3ubi)Xq{=)Rr_c!cedvZ0APqL^*4V1b|O;A@9nStyq zeWYOn7o(3t&!UiK)&k&r8j{aQ^nQUYnN4;wOacC&v#A2xkaYl6(up{au238*B9(pH zF?VSOS4!U%ScTPe1Lg^N6xqyYqMELiFBiJit<)>%-NmcxP$Q?f`d zE9O00nL0<6MR)5NbRKn7KXNBml(QK-p@x-Z{AfOCDPti6`WxyPZ?dJiQS1=*m421} z6&`P6Y;Rm`cxmwIM;lD~nfh7mYxtrl?i<%s|A{qo)tMg57wRSI`kROtR1f_;O+SzE zDJokDu%W8xCJ$CusPln6*{|GG#sd)%BfX@;uga?e5UEpGz< zh0j4ww!?eOd(Cy-b;B{$QN#JtG1gVUW$~dVzn)DEqUW(SIGz5gKHo6HSQq%^m8NtPXWU_YY1n1#W}0nY zV0jT>3S@&i1&;_hZoMA**ZMrPUT7CvU2BifSHaQNrojtB#s+T<2@VOf{u^@H8ez4C zb`6g;bX(@3&JhJo6dsJT1mJj! z07uC4EBRyIlZmC^SmjZ`LK=Cu5zwzj^>V@_73(l_^Ram<*4Hv z=osqo=}_tly@U!R8xW(>KP-is&l}jPj$B0c z!+eW}^ga3-@T^x*n|%vRScqR^j%qUgN%lk+ zC5djzZQ-`)3+tyb4{04$3%#4pu*WrEyP$7M{zTUN7*jO&Qhk_C%pGbxWrs>%J}@nh zm49$;y9#0AMDeRE$WY1E?f~VhQ5|S2j$t71&5y;l(g^veOh6?pj#ZiOhB}7g=5pqh zMzbk~+z$Qv>%=f>5q*eBVkN_1V`xy3p!A@dK{lhu(1lse{6o2cV|-294cClAf=&e0 z3f>aj&2q#t9(GuSzDPUCOVn>>4f}#CsxQM)+-s&9Qya*nMd~ADoUfH;sC|?N%l)@@ z88cg7s0o-(+z}rEiRN!OD&{&QkXC5y5W+FS8i_$;T_c63E9yY!)wL;`NXQ2Yl1oR0E3xYEVE(yDO zYAt08u*HSd44r68wHC4sx2+4?YkLw_&$c*Bwha%z9%hah5q3QMw(VnB(Xa;LAz@v@ z>)Q^7b+kG{4+QtMo(yUgLIh0>HU*am=^s+UTG9I4x-+P4a09bq9;_d0=*pf$K0A^d z%zgpN{k?vRzO8}Lx6+Sf)-#vTgI^#fIOw18j5*T6tG3R z)lZn3HdZ_*4)FHya-Ku(b;w_1JUiXPJUiSSJonv+uBkwuS9I=m%y+DGL^`@TpE+n( z1?N-8Mf(_giTwHb1@gw{jm#~dS10$Ey_Wr)tF-GGuKyVKC|7$I=Um}zn0BMmWTiVvKNDdL?d0 zCElf62L{k9ZIT~L%YhObhsmHnk(=hCmOchkIg0t}Bj=lsj@nlBC^W;Wqi5R@z0T>- zP-qM_^pezjG8r>Kx?+amRQfQ~z(>&klI5w@$Zf)CnVQblVkKrPQwd1)He5e$BT#)u z$zxPG`YHX1nocJIDY21V$TnuIOkW^RuA^JgkUR+6Y>WLOgUJspjR`?S4PXY^f%P;} zE9|R{T1Z3Hstth9<2dM7xAE@;`lIm zrL2Nm4HgkCMJLHeZyPex7cUMlI+#Wgl{FS*DN0!f43tE{uEv!SDkbFw4B z>2yT8COAb`BiCa0R@XVt7WW(P4*2KEo+IAdo=U<9J`)U>R`O@*IJhzcaeTee)5`#o zGaTy6(LnE2^Y_%iyO{>wfW>fDe-WtW2s39UEu}5BEjujTET1eVEj&J?eZ2g=W+MA0hl6t3`A zzM(gSF91yQ880gugh{|o{^pJRS&!!42lm1$XRc$FqoU)IW1z$Byy#rwigBg79=VFS z8TWqII@cBFE$2+<4rd8xduN`bgfqeM$nnk|=~(Bu;pprd>#}_&v;sS?|PPbe|kUjt%PpkBw;^LA8VvYxs6f-Gg%`sOZB9BMboLZwLd_AT$6Ul zX8E&xTDgSTH-SK1K@SjUr$F>OZ^O6r15U9y=CZlrYieTt`Ak&Om!glg0lN7eFx%{_ zRtcR!Pb*(D( z2bh}TR0c3kYtW}WNDZU5VFp%7AUkYeinIWB=mZcXW0?Tv4!e(yqwCRW)Ll&1WXP7_ zoJ~<`Dtm}~u(H{@zQh~M;QLD^AuDOEjFGo#4%I&^@)fXEKeY^W^CxKY<+JGYv6vA% ziuABuIgfd-Wp`k$ph(kIQw+^9jS%M>z;1JN38ZFxZQdT#$l4<$(Ha^2Gi0NsO5h5^ zC*y3cs^P7^vC*o(U}&jdZV}~;V$S?e7gyQyiaK= z9+V1+BC6Q=(oA$UK4X%LAXia7i+|w>I|w)UPrU4D?!D{!;M(M9>*$xi4-xQpPUF0a zxg8zr?d8C7ncyG@&#gL0|dnmPKM0omzUFLP3}YvsFgmpeY>_i){F zjBuM>mt04kkDY*dv%Skz2Iu_d-x>6iPJv#R)p%Fh;xh`>9H|3=EODU~A zSAL_W*g&12klHt;o^GZVNfy%$p_US>n7@=xf1a&xXr^CnY-y-vdT-cinqo{ahnO#$ z7nyCAU1nQg&48i7X@UCCsUfy7cj$?*urO2jzObs{AH#CP4us{0eGBUsb~@~(t!P-b zO|_lJZ*9X5g^i8)9DXn2T*QO$>JcNuDuo{poom|>k{;zCFD zH0F&Jf-=1iNEZK;+cMbkXM-PHO1B%G)G62{l>u()4OoA5fUDe&s^lIZC$~U6y&!P} zngHcst!s(nz$v;gN46$;2uO%rT}AM69jJCWbUTT9s15@HH9$EfLt~#>9Ah+7zOOR#>~G{szKPQ#-&O z<^sug0gT}**oR(6U%Li%nX+TrC#RfOUT7BIC_0=us*f|AGBq_9HGMTbVGDB0P_u|b z-dzzqiM!k{F5lv{)ClYyc-m4T;E8#erLXCy>4)LC@w1_;vASW8L1J5S7Pc$fi|xn; z>eIP`#@~j=rv0Yh#&5=G#2PF4l&Gh?lz)MDQdwyzAHy{&Ogz)AfXdYq#Hf+r+|?Ef zivxs*{3ziSU!Gs?t>T&Jp5vP7{MXsgSMZxde<~-tP@802h?#Xfod8)auyBE4{x`%=7``KB`o#~AB?04Pu^l^{% zw((pBK6kfpfUht97Pd=;rD<|IbVA;USEX<%O>QN7fPoAIVthYvm-WdF*gw1kMsX*m z{B@$%(DUgUYy)8-%8X{t10)t8dG*xk6XlirH@228F&0U0_YKz6u#< z%?iF7k`**KxLMGIpb3HJ1Dgii4ESrA17=}lKtHo!ZfndiHZ_zr^yI?1-l)SjKo9u| zy6jz;1B{3W`U~sDi(HQee%L1m0sYV(=+`sK5Fqh7$>DOII0dX9S(qop3ugYNcL8wB ztx-GmxWBq8d8)cEfPXoFU(LJu5TOch-~-$}Trp1CQN}UX9s@s`?ELEFT|Zrmz!!9a z8+gLK%{|d|-&NC<@6w!eUA3I4j;hWcj>gV;jz!J^&Ma4JH|L#;_q@U<@PqgZ-g@4% zo^BquC)+cKpU?k5KY6D(U5o=uB}aM*hDswj8uRilDoxd$m@$$Mbo)PYGx@nRSL!BD zk?$)pn9LpxeM&v?ohV19fq%P8i|{#+SEM1dJs^51bvSjNOq? zPypSgi(scT#dkF*kB4e{XwZ)U2R;Q_|1U6SZzmM@ohkw5Ky6$Zw>B0EvNV(!mO$0T zub0>!XxZ`LOwGlN7%MOjH-P!s3cPb$@cXYJpD0W^h#%w!GK)$D3c^Rx@G&9KD%lBa zX$O4%C)7Fff%)+Oe|S$;(s9ni9`)LvjDY{TsFI!alE0ZU;H z5VftqJsg2as0&eSlaMV86=#d*fG3=c=MR-f%A{OM9wFV3B(bYhQmO%D zVgaeLlqU|sKGP}vlIF1>9X1rH4`*Q*PVg+pLO;8+_6UT6d^V zeAT)^bt?=yBVD0uQ5Y2!BNTxp=r@dnUc*}8Sy^-=2a3MVuaG$+Y z3N@V?LrtbuQZ>O@AI?r@c`gGrh~D}>`a}BfToru_ZZbC-`yP>d0A?nocj!;(YZI>?t!gEIJ zH*puaE?hOv!X0DFv#*&bMx~d6Kjp;zaFH)iC8>(Zl7oPr7(y09HrO2dk_lit+y*w= z?AwHy8aIHsY!5w-0lxRZU$}tAv12CQ2*sovR2nOpsN3yOwqv4g4CWve0(0oIoPauB zEU?XwrK3_=DO6g8sv0Ri7vjW9Vtc8Mv_zUJ-4(xz-Nk>vOzI^@iP7R<;D3gSbHp?u zKui=&=+2K2dq8txmH0?}BKm;nsw<_5O{CXiVJTItCjG>}qF5CS{vEi}KIxQXkS9rR zz~+B1-Ig@zxx~pu9I=dk}^;UnPi|5nZa%>wO-$(=@UpJden9`IN&he@!1Z$Tf$ zhVFZ1Xj2S>vPYzD5s>Yxpgz?ZiZUm`W%~;Sl#b9O7yyjjT4ElMydqHz6FoZsFM1R4 z@g8{!(O@Ncp4>ye1hz8^Ulo9QaT<}%5(EH&X3eyIf1~>aDR#7a~pNgS=Qx`Eu zwJ2?5uG5v6TvUFh(QRofJ(Vs7L_0D6^<^hjv7sUMfCqlUI3gw1LC+5CT%tVv#L5U&ZCIY;Aqt&FB0!i_gX`gBvxToWkJN*wa|L01^t~( zSSK|J5i@mCpaj_i7~4cd;sH>dE)HFfLC`EHKo4QAtv&zrMkfD^+PXcKGl^< zphmzG{=v?tHYW0BAp6-)JjR@_wPY*s)W)NO@d~V;VB#rwlHi0u31$M0%Y-uuM<;tB zbWZ$zF8>s^dcJe0na65h)e7J>=(U^hNDDB%^ME=9e}9bmUD-gHUqCg)qJ0E|yCD#D zLFk~{fo3v;3Astl2lHwSR^S}e_CH|nwgPkEx?rbW9$3e!;0+{T(%CU&Ul*~byN#^z z8*<1JS|d!!_D=}Q29oMD)W37F+p7*F=QpquW?+`yR`@ABlyMFrZyW=UdI_AjSJ2bC z26oy$Ac=-TouxPWGn3Gjz6tf6SRw%&*VXu5h1qaBp)FDmT!&mRR&t=n@)h5Sz)IVo zuQCHXo~6(!8HW`y3|FZaSTsHG9SIK5b+B%?q2}@$$`vGD9}0z%?T8Jz`04`o#C!Bs z%*bHlpvW?fm_=;H{LrbyGFU`ktgE`jBXCqM;0V_Mo0$Q8?pg3+`w{&yRiFWsT1esm z&f_qi@fs6pQ@{iHj(1y#&ua>Nn17CgUuU>Gu!>R8@VNygo|fn{w1QIBUTF8+0vmAw zVsjAk>YJ$jOa^y7P8$p+zy+}RZ{qhSs0y3{f~zDZeg&a>!ve$HQVj&QbSUOG-$cf6 z9XcA5aeq3(XLMIv<6omX7_ngm81OCBZAwja)5k(bq^+6=wE6-dxtAit=%(Z-b-}Bh z4OIFeWD?VrlTe!}0Y+#B@N%=%b4p)uF1G{UIuHMDR`)8&YO>M{h|nS06m>t;1kPYr zTmyCRlGxqHYuiz)+Kuk&BJ~<(XLa|T)n@p9X|Yg&Zw$5g=D?UYgwjB1Fc~pnUYiPS zNWacbPxzzTu&+?)5mm>XkHem02d?5mC@D4u>UpuQD6v)74jkn!nBKS^-PONfyv)Py z-hry!bFwfH=dolhibIXW z=Qv(j0N$-5eG~C2pR9;l>P4`bx1t``8BtaN>MH<|s|7id>`v|g|27G^#yCXZr(i;k z!Mb#SbvPT^OqIcP?t+-z1|7-r;Ixg!9%>MB6dO2A$6zU8&~d1Ph}RA4;}7E83rwzR z2rt$ftLPB8P22GO7rrbNy?QI2hY*9mo$zNT$dT?qG3O?D33{l>t-w3f1{U-W*b@3*4G3brn>N%bD&E%1B^BQ+#nH3QATi8!=RO= z;&(eTi%hTyeE7c}>PifbKNjk6m61c;0dvlSU1nQkBK3g+9tOr+=6}jD`@r8g2Cq3E zI(v2m>zfwo})IUAzZRYmGkrwFRSuePsn`d1 z$Hd8IVDcm&YrG7NuUBAIpYs7{fz|&U$opsDpIy@qX-nV}FQdX0h*-kIJ6^$Lkb`)1 z0iH7jlap&9!@Y=pLZZ4Gld5l^%Jdz+*@P(c6CPkb=6}xwf@Tq{e(qCz~BP6t2ydcgSE=Yk2TmNtu@q&V4wd53Ly7Y17-l1(h7l% zRS@y7Ff>Q}Q+2N+m+%40+7cMM;h2~85B$$vXqx>-=id&E%3nB(pE!n0XjukB(H^m>8sFHqrok9pOV$h$;kaxePQFNtEPV?M`az60^{`(dB+E>u+K8qZIMr_W+M90&3{a-w@4JN&tP<GwlETLFd9B^Eov^?kf#raYUDy> zuj}ypL|FG|=;Hb3xqU+y+OL`E1iqF4S3MKzYR(b?L6<^rs1J6j1 zbHSPDgEQy@f6*OZWx>IX#_@K5-a-!?SvUOO|M+ygM^AXk06gk}-^s<*@@t@<0S@>H zuHIvKrBv9g5w9%*wG093j^_|}&ma%<&xZ5wBRAj`^YL>uY_$ybj_YxMB`8*!@Tu#; zS*i>DL=m;JTd>equt+Pa*%P2C>7NgmgZHBFsfWO`Is??rHQax{B64%+x0VE6E)=}6 z+P*yOSEIm0Gh$Vg$Nde0jl6)>+|dRg2F^!Tv<94@!}#n1(2?tnYY~Lq%?BLSO{}4h zPzn41J2L5>V9nWJE0v%TP!LC#gEM}C@6TXmWP!7Y`G8n24jjLVe+}@^obET21s`L* zW+Ge7g!;&N`067-3tWd^zKp*U;Jr718rFCG^$?iTw{T8>k%gRwLfS!G!#7xor}4;n z977gzOA*I<1V`%EF>Q(%-U~agx!}Vt0OEFqZyH{I607_aV#rvm{L%QFIPi48f{nQg z%&X^G5mXFI`+g!Dhyw303g?!qbpUg_72-@MoP-E*ygmWf;p+@vOP9vd+)}s0dr^2Wy>xFTYClW~`h$c&r_mzo|g@7X!9E0Sb*9a0M>`Ss0F$ z*cO@}BM_MeAzCSTuQ9ksYjMUuaSuquok?I)K7xKS*bvAFbMf0!tn3TmS|%dmBtXq_ z7~;th)JjXk!yH9V@gaQJX;d{$gDJP=VW486-zm@gU)@7W*R@$JMmjV69tl zM4xdiCcI1Le@f5q@r<*u(G{@Z-8jiFeE+oLbo7NQV#Q7YoAxRccuwQKK0vg8iydFme^V1eU}uroS1MR3g`pUE8J-F% z9N2xFhL`((QZBTV>5y4V6hX`!7En4{-Pi5StV%bea5wa zgd8UyuS&vtp)nPz9i|31#D1kVqK}bS1CQ7gdj=@p0bwuBzy8TpbMZY1SHX|3Ed_i0hF!&btr)IW zTU_fx;9EBUzr8Q+MIBg3DO^7fa9T;ghos=@zQd031F*i8;4R1CIVGWt8S2Y~73OM* z;K6>zp05cqfj)SjS-8_f@%l*L7bpjQMXvK0ckw&=1y-Q^tH2k=!Dp00ge(W7RU_P$ zlJF&wxL@UAyMA5NWSq%Ic<>9jZ!>ULn&Yu5s9i3D7J6aijD?_Ce-5kdF=B8Dtk2Fs zewG4bnTD^oVNdR#2vGsCY!I$~F7VE^iOpEob)m%67LmIGeky^Oz6C2j9rF|(Bl?^} zHn>HtZPd5(9}GT^Ml@`Q;hJ*ky>I4Pi_1;M|SH`!#|mDTntjhkM%xme~yPFA=*R z|0Hb!M^*^C0X_CYiSW|rp!?!i-hB)0RS7GP2djA-R9I&sQ+R>Z{1Mr~19<4*|MdM! zBiG7AUj7;@-~qhXW+=n`-?#6BS6_)MKLvhrH$3|rJnq+z--Ww%0?&L4D>(#zHVc-w zA8SRyJI5l{R6|U%VRbctokxQ&_Y>dlC*d!P`%0xPcacmFKL zSO0yVhA0096(1**-$g_>J!+YLonjh4Rl~jPf~=$x{td^GG{A2(j{6BB)_X+2r^uFa zU>o&tF9)O6H3`1%6>^tT$VG}`M^O*n>b;&d5J=`7Z9VhU}m=u6{kN*48+JQn(LpD8xH(t*p>h_OFW+DEm5~;O*DuC7|lb zpc+^mXWJVV;-3NHzjO8QwGx@#N~}?ThBXc=bts;(7=Hf(v=IKqReFOQj)RUb_y;)4 zD4ekk@126X^vKr{pMMtiv0=w{sq?1V{{#F<4Pr9ui>v>u7DrA2Tzxd zM~@+c-U=VL6_1a{JNJawUxcf830LhZuF)H;o`10(5@AbzefKCFecpffQUtrQ8+?L) z_G&Dyf`3v%9KPc5QxEK7mnM@ zkHzbTArJ0|m{{z;HMj>J`4JxXPhm~MTKopf82~@r2)_0lj%q26y#*>k({RKGVHLZu zp056v!G3~0_^)09&i)ka(Svs^fOY4>=iR_Hy9PVj3h(acL~TGGoq=7sguC$^DjGpJ zr$(?68FpI@Yu>Ly?qAuRa3pMsS+kxTx; z=jNdo(g?QG6+X5aVofXTDyHIf{b6-oakjmXDRjl1-~C_4u@X7YXnfiu>;n?9Voo4F z-N0_azxU6AuY3TzJBhgY0$4;K{P6p8?8-kP7Jk9&lkvB7-62HL6p~kHpXZ89hgl2d80I$75ysb@cO)McZ-a{&_DiV6)TVF>9d?vIJSp72L-u z@Q%}9i;Ho+`(q7uMI4-nRl6F|b{TSvnRvw^tmnP>UWMPMg%8Iz;{{YAtXdY?vdI3V-q%>(qpG`hVT~bm+@?@b`S&T`!KU6k?zr zp4LD6vNXI{9e6$etfFRkpHRGuU*EkXR%tz~QyU(qVe@u)uMC{s6P(#m`2FuVzx@Ap zn5pn&9$W(rE4VcLod>q|5Z5IK_VO7k_b)t50FI?7R+oS7)&rd55!mN$T(4BDI}SS+ z{{*rWoMQp(>+E>-BRn$)G0CqKUl>=rCM>Qx@)-XlyVl5r$HSUN!OHq$MfQQsHNsbO ztkco3#-{jgjk`GtXB3ZE&;s|bCGO}FWLgKXnzmvc)kNpe+}JT8v%$r1ik=qd0a%Hu&xrsP{|( z&#fQ$6G^Dj#Ur!wPdt>dru=iEzTq1A=Ux6p-sMLA)e}BG1G_Q5&pZb$^mv@P{~F(e z=Ng8rXc{U6w-Eg^aZUYGJuczv5q9eR@Vp#&lKY50w~%e~xYo^ZRmR}T9)WeOhaWG8 zJC=?JC}E9}h)8}d=OXy)40!lCu;3^h(Or0wF382q;H?ZsUho9#>^DBkKUc|$K2bF8 z+I4t@|IhnbfJX!{`X?b`w17^$2`jif)-a8J^KN*gd(c0+4J2tV>|zAi=wW=O71#6( z*2*p%qkp>FU*rpgVYA<`hjHOtt|JydzzoxLSn3#DpI5M#nXsSLc;=ZojJFaSftf>lEUBOtHyKx74V$EH{G5Dtpw!;4A3+%8BR?!SRKL@rl z9FGsdx%7lLn1~~65C5Bv2zDGbJ@P;0-kzw-9z|SR0DYn)C<$^+!s4k(GX#R|I#tmu98(hOoDp-6UQ z_7M9TdoPA%&qQ5{9$2huvA?!mVXt%y8J=&*TlVKe%9OOM)L>Ujd#dtPo~+L@3=EtU z+zMQp1>`H;T&atYB77D4ishwa(A2mB#qhyks3rkpJ`)_@+w=ow7B!h}pd0U-uk-;f zU#swH0&o5|bcDQX+81-s2$%W$1bW@70(R0i1>sDRhhEcEJC_?jrK1hfX*YxmXn z+Ep@+N(7Ez2srR1!9Kf+3gb$06;YQ?B3Dsu$#KBJJdp;a zQK6**-v>@6g6YouYoP@Aj7Dx9_r*}q(4I6AYu(*kTfCh;1Bj8j3?`ZB1}(lEB}r?q z{G%3!$D59G91Z2GvGy;HKk4T)?#Qo%mNp^eX|ypaE8<6Z23O5cThN5b`HA-Co=o?3 zWsBN?m;)?AU52H*F>TbI>J)K?kRkSiGVV_Pr1zNTHm>#=`Wt=P6k?eaI4P)?@tU!a zv_w3gwm$V+#=Z0}@;G^+Z9{11QhiGmD$}oQj&+QUrRFn(r93I#^TB;E-=3G|sp+n5 zZfuH)`V-kLdP~9bA@xFd#DtOgoAPSq&&Z`5363o9Loq~|?5hT@K#+baYvgv*54A8Q z(EHid*Ipp6y<=luA^wv)8TPQ*Pz}huhCzcE4|^;-EGs1C@b8rDsI2PL8S-Le->4PE zx#CL;-ieG2NHQ!`W93|Dw5yc8mNQTut9=d33Yi-*B_bv4O4wXuX;TEc;>~m4WDUvj zX1vK;mre3Z+;4$9{t>V+Xt^Q7sPO`yo;fD#YWjkVPMLQyH@U~UOB-Uiuz)zrUity` z+&jrz(lg%E3VzlIE%mibWu_GvNBbBL(-_@n5BS~_v|Wlx<&?MBeNJQgu#FAD#%QW2 zy-XXc)BDzi{XsXL)un`Z27eqiWos!nqBDPfHg-W`s`u9EKO9$L4UoNpXx zE@MbF7NaAWEvO=zWp%0&|lQwy5Zz6qAvB2h=69p8|E}U2V9mOM6B+j+Ch0MP88yx+xUc1>00b4 z{d!_FbrI^w^U3Q(DYiXRl$p=8(WMfL5XA(7^2HHV)jPiN&{-*|hDsxqy~y8HQ+cBX zb<6~1fV#tV!kgwvdC2aZ6dGn$&9 z%_Y+15^4~T#Pg|m@~bpO+5l~D6Dk>l!Tp2v>FY28y$Mn0yzoOb+DF(I=BatRTn}Al zXef*c{t{vjZEx#pG#dwE|Gh;CS0Brrl!4L~=?+waeUv~iHzk{60{R6m!F`;I$X-e= zA@u>Dtu8;#J4B3^o|9jw(%d`l12}TqmE}q}pT*B{P_A>{UwjdI9MzpmVVv}F>J@aH zTS$kbSnon_Iq2L@k>|a-(;Yy1XNxU`nq*zwO=dSegMG?O zU|VxGN~S!}E!nN6s12b$Q5WcxJl8JIF?^Bw0DW6)uh7jwab_!5n!O^=l}Ecqx*~v^ zZ?DEGeaU_#!&&r+`fQ_->!aU}p5G+!@}lMP;ume0+7g%n4?5|6$v#kaI1k42D#EKA zMignI%u<5X3D89wF6D}2&~c6hj`}h;n|nlcr*5DF)ZEtyUB(XD8K77~fWx{0&b>h& zt1oD-X0EKSqhGHqR+f2Ix|gZD6$6t;e`88;GPruX*=TkxwVUj#r75@h{(K=`g=+U) z!KKVl-WX~9XG@UzA^7kK-a|rp`)IIS2}gtw?L9(f>C#P0&34O|z-G*LMz1@m-be4b zm+X>{tJ8fB!yCiYU|rA<{SSRj-$dOaAYn)QCTmr(<6nrLaa-mbecV`3zeGQYErA_$ zH)sHS7siOKpy=5Uy`kYc6B#abln?W%e4g9|{O3}@dBynVU~P<3cR^ow4tnJ=+B)5S zA{!c?%cRFr6rNiJm3@v|$Tl;y(;uZ@(93+Yb-6%icN0$uv94;a2Hs&jPX;rG1M3Dg zv&=PTq3W3J8Q~o+v=DXZQ=X+xkPg&9hha*`WzFr|z!qg#?jU1;PIW4uB=i*83Z0dw z(pBP_t~zaIzLRchD*C`5r593)R8an)?$h=l$A8R<|G}0I__h1Q+E(Ubdk(QYBtjudi`(NQ9uqX zMUUt#x(n^0g}#ldK}SJ{vIO}C9mVOo8sLUsm6~D<#9ws^kXAc^BPb8t)m`YA?vgvp zdbP3o6q?ghfvb9e9bIXafKJK>wG+@PHp~#YjC#sRD7(9<3lxuzC+icmK;Wm7z+;$( z9d9X|vmQO(L%Qz7T>2b+9on(?kf%rEJc~n*xfzo{&m^}I1%1)lQ@M`(1n189ert13 zvs?vMVlVVgM}S|xm>NmN08evEdLUiqNAfSB@4W!Kn=0%yW+8W$W9c#U3}`mQiW5Wz zcd;KT@a@2vkbvgCPJAMQeIK+9Q2uNs&6YYrjVv1YweOg=c8-nYUg$IR=bUn8N0G?z`u1wm%*>sK8mVLeI_~*H=yiTPP{49Q*O%b zP_?Q@Z=(t_AL#qwqaFv!Y9#Sh*GgNX#>oBTX<)t;rJUqOwmCbUt;7xoI;|)4C^}-+ z(K^W~UQpU76|qj=(ivcSc1Ar$|ngZrXE0mZKNyFkJ&YB zAF?Y6o|w8!E+KD}Zc4AUlD^pc)rO#gYP+J7MO{-x*EWnB@ngAKvZ2y!=}e!Ud}b*7x4xddLJ~F zx~o&wj@aoWqJRDbINoH|#>F!RW;l=nVL(&Xg-@KJxwIC*%4ymg-)5+Xb|G$Ke~C#U z;PP&S-`om?_Wsa@Y>w_-GwhZIsHL?ed4=)^6OOt9gI)=>KpcNV zd9CCWIAN@qEJR~MN=H+?kq_8lY0kxRt$@Q>4m-Pye7_4ife(Nb$c4uKAM6o^a+SEU z(BJz8TM5Te%|(6nIjT!BL_TUpC3G!;WqU8RlEc*o>TJ|?M`_W%t}?AW2fy(uv}|I8 z{lW&h1sF`Fv`Lu5a!MYrc%+3;t)2keoh=`fJ1RGU-rX;@mLkQ@;$88xSP^LRO6n!G zB)IL(gnr^dXmXLz$1f}vm(s;w3P*}V#ZIfc;!t#76O`0gZlM2gG z@=YlLG4_yT#{C;cWI!1zKx?Twm7A(fO#`0mCVD7FRK3?hpZqS=7OtRf@C?_zBI5B$ zdMG`GYD)#tKcPMBqs~L0W;4}}TE!G+#^7EJW@<16SR>mE>f)ooBfo{^kGXM)pT(z?n^(3?fj$M=v-P;5vQJ(M zo9`MJ8B{N#UwDzQbG9;UAJ!|37as#7JjJlZ@ZGFhhM4Y{mI4WPDEn2`*RC%(l<`^l zS%tutUCj694L}q>bl3De&x*)7kfx+9&zg~4#Btp5P#h(eA`*4`fk}S~9#4Q&8&*FD zSmKjXAnC%$#u-ot7-sBZ41}7=Z{tXFrs+G_i&KLa1y!`R4XGZw z$-2+h+IA+Qb3~&^A);c~F56-2?~q^CK42?%37s9eC!$=TGX<*@I$dy5)ThYbw#&Bo zpvgi12CNMj8O#TTTl4Xs8^~_30h-1gL8V)1|;8=*QMzN7IAp z@4#cyK-q3b3_AuST%H;WHSZc418s>Yb+!6kZ35&$4^)VH`TY6Dc3w8uXep~O}5X37au|Eixc)LcaNL&Ga}RYfnU5 zqeqsb%9bc!u6#^kvdBW45IWjYHlRm9etR?y#wP*c z0k_Q=rfJMdW|SByS#k&E4*z>J?fRc@srAz`(tW}*)Os_~yjEszVS^KiG^DOxv?Ts8k;4#hgmi3mCvc%<5ruf{`z;iP1PTr%8 z85zYhYh)I+kF)oNW?L?pqF2Zo(1gsv9_hC(T$`!3()Osm(Ob?y4e>PI;XOfE1fI;TKl z^z`VYf}0BJqmLGt9n~i4WB9}Hfws=J{L zMQ#o~6Iw1LCZtWsjo^4|0qbsCN1GD%C2V8(lJNGnKDPS74T2k323firOB?$bD;R5; z!_2V(RRYq$w;pU>Y~F0#ZJf_uXX`>AzYLSW9M`|nufg-2hNXsfhSvI9$SF<$A)f%O z=oIj+LxDrRiYj0;WEV4~nsNkjT9-tvBPHfKw4^E%6~tY9VS9G|y=*ZjBja#(gWRF{ zzZ?f#1zqo*PduS+TB^wR^_ZQX-3v%_1JBt|U+C@fGs@ntl2o~PrS269 z6rWghyme=2MY1kk3cD<~x&}yv9+-o72eTB~5|_EN%pkpknMbcB7Xx8-Pd=waX%zz`~J}XXr5~Oqs#JSbk6@L@2m5jvpLTSCEYVTPjX#(rVJ`` zN^+r;xSvaY4oIGxd_UWoGvDoY?N(kXxw?tSgM8#(U_ly)TgB3t(bY2Ndd}L6rkNG8 zt7d<23eK-0C%s4K_!BDFt)SOd%bVma>$>JLc*}Ty@DW0$_rCY4W3l5?MuW`9$)!^g zlRKw8NV}Szn%6e}sJp!<4}9mw-Y(vIn4UKvzh8c-?3nDSnU>5pS;MkE=c>8QTt8gz zp$A2v{`?w~5WWLD90;^x7!aF`GFGXI9^NXHZj9uOVcHuPb*A>waXczC|GR_N{E zQNfD>%LR4{$gybVyO`m%&-^)HP~gRoO4c4>uCU4xFCrF1q(=;h7#{H=bZO|RkoF;) zLqkI?w(X(LkoO_OLcWEBhcym+86Fw&G$J=*P1NkD?~x-TzlE(2>j@t`GWc?Ezo6h? zE+{u>b5NV$^45vg2wS8rE6f^pC1gj)Wy?MDQOkA9GE*mWtm(38YrxOI9f9qGPU!C$ z9x*agn@eI74f74_0^$OQpvFPBENub~7@8YHp?Ovxe%8b#uwj@i!}!WFSJ*yF+0##8OX2o>~}wRPRXB?a!^)w|s6V&m)jYq7un{3;r}+q%2T>#75rXSaA&Exm@DK1MeGJ3Kk- zl9T8~k!i?doy6We( z$bFsT%DE{{lL7;m2R?~d6WKW|H2gPrnVZUA@QhE-O|AVq=7;lpt8W2c8+{q@W%Ad; zpSUm6zts5lJ=K<078Bq$s?U^*sAlh%oP0%liCilE``@*{&;9P0((}*U3_9y-PQAR# zPPelvrc%Dp7OM%=|2R4e=qS={ji#;Is-;?!5J-YcaQ7gCySux)yE_c-?l3U8yURe3 zKmrlsX_vD0yzjonf?;M|a%a+2znt@(y?+ZfDn`jmYJ1Y1m&?4yfnCRNYD=qbl z#uY8L*S5E(w|Eg}L(mXwhs5S=5&lE-u*EwMB%F32)x*?uhfaqnlXKDrK;|T2; zZFluc^=nN9ZL;p1ZkRqrAEQ5@-)y9f9gP!=ZM6NgJIQ8btn!v(G3LllV|7g>JF0GK zW@@`@=4-c*TUDEgTGCYEIT1)UQJavf?tmm`OU$)Zl1#@fYk=gKB!p9MM~Mqvr72*U zbPn7NwCB%(QEB12bBj5fr?a;{xIt4q6Fu8KRXnws61oa!;zqm5xq26eicja~7W~RT zQZUN0(bCs;!5Yjzlh^Wh(y#24`6*9+rl;Lv%d$1}{fu>MR<855ZgJg%agX9!VwOl% z9910exN5b7j=a8XheSo)!*%D@d04kfwH8TL5}qYyn!;vD%*^O-#_oon@;TCf{SWvx zj*j*MXSy>c)FbkRT&Ip0PnyfA#;R8EEW0cBYmW4X{~Pf&{!8+Y>ZxC{uV#PDKU~-% z_d?#O{BH%Z)(zHb%v?G*>Q1C$lp$gRw{D}`?^;}3zj$Erzr}Ujqul@Sy?n#aksK-f zB^Zq9>h0pgq9o}Z!Uuot1Ib&-c61NRW3Jq9pXWGg8EIMN*yR{VZ}zT+C2=MA_XM=gge%^Y7Ha~*C6 zTRh$JDo>r?H(QoHJM(77q3qPG+yW;5o+HY^GB=r3*wYggIr2fOi>mfi6eZT1^ggU( zk5w+Rj^eO`LM z^-J_e4T}vmj8lzQ@uc3>Cm7@);T+bIR4YwQ%~bV7^%bnUt>tm@dGIu?k$sl606DI| z=Beh3ewyKjaiggVW|2=D<)%)irKWGu&0-wUU1E~W*UUFe4b2CQlnk4yxr(C4#EHL5Y0MGFNI4{4L+zP;@%PkX!dDf0Bx7gSFDk@RE(3Hm3)e- zBY1;!T&Li3%;Kv8-GXT#;3o!4!B|N8w)y4USurl9)uYz9Rcw4f4 znYEVfgl&{KUVuvYGquWVUux_VYs1O%v1AdDpNZkGB(u0)z5jU_Id-aoOw zr~lfKzAH`g%bw2vy8P?epJ#v8S;km2E}5&VH^E!OBlK_%sgufoocG{&@81W~^U|c* z{jy#bpD&j2tGMdu5!?gUX&LU*f1>82&h#~`799}YRgO|_BHiQ|6;AM~HmX*NNs3}} zH~Gx)uR$9BA^u*4o)w>$t6F|p8AW`eZWHw!j6x^&d{!T87!aKpV~Fb<*P*ns^vF`p zN*#{97(2@J)6_|yu4lh_Jk>HnxHGt zMXAn^zhw1gmt_^@#}tQ@eaL>Qp2`F=S$aw2j|)`epYjt~1veSg zwUr@fXa^E)drEGUjD<1j6CdEk-s7I;?y7Fu%X(|_tNF2f8DAW&Wac@~yFOZ@ZRd(r z#py+B3NI9QF6wI$TLOh6i=O9SE?8)pX`STk>autSdNXV_?d|hw2OjjF}&fzgztA_WSfdZ?ji2t(aZG(ZM?Km>6A?Ty5>AZ6)5Yw{gT4E*3oyYJ^FG z_xxe*Q*o!F3WZ#O$o1RR4_v;@k|N1##ePMMtgE!Gpm|hL=zQoC(2cZ0x0-jl6Ncp_B0jRa+NJaaxx) zL%T`0LRZb;(!2B`LtUyH)m7UCYwHF>)9Cgw7vdD9^W*xIZW<$rS)i|}FR%4z-l-DR zPE~vLY|RgFIwx!5H77LLS`GC~|56`iT4mx4rHyga7^;`@xUx`|D?1O)RGfN(dWP7${7v5|g;{w?L9XswLW=-cXd8QvSp=(p;}sV}P!lS9dK@*Mdx zsZ>@;nWCISeo)<4&LDfsE6Ot^`z1+8@03HGZy9`NCd@AV6KE9F1Xc#9lGBk{NYI}_ z9^+rI`INp8KgUzxDYU29Q{0^U5_23~@;v;g&UroKydRJYh%a20A6vL5-%{u-sA|o% z{IV^z-?lupGR1E#Ev;Rxv#<`YwAQm$&L5E<{_*}tgCEA!hFM!PY zvYKS|K9y7aKs?B2;ysS)jv!l=n*p9R6@4n&mq3=S6+bFrfbgtnefF&EU0>8G<5Svv zo|E+~vx|GG=Yn7d+*1QYHNkhC!3$Q!w)fJ5u-35cAdIku82>qMkpgyRHn#5I6o=D}t=9}xB=v-;vVw(;_ z_KT>#g46ONiVgCA?Dl6&_A6(3S8cd|{)p>J<`6rin5Y!q^Y!y7 z89lQS9LA@CZGix07#~TlNp6!$l~j|VaZsgoul0$B-uesrQWQzq)i!lAHLLmuw&Ru5 zZ0e1^g5h6NdvmvFSxg}MR*Wcmc=S>8ZS!!PKR4<+>iTH5X@;mH>U-+Onrw9o%~QR} z@Z8)ax-@uRCrlob7Uza7KI?GVY1WT-Q zl=Ft;mg8dahT@l5`mC4f&C?&HXQjQd=30Ab?b;Dl+f_M{RH;Vi_;Lx&hyesylu+0& zuVe0ZT1zibXQ<=KH>mJ$^_SHzR{2_`OuQi89n&v%t$wclytbKEB%Mnf;J&a@M~01N z3`{;|UUwT88Mjq(R7x#Nl)JAOt|;rWI{r&0z&ab=v-1;-hJC$CIRM`|_1F;7b zfLZXsUGR7H+u=!{6kH5`X1zczGn1+BsNiUe%2OXcmrI6oQ=#gp+NT<>Lbpfs8-xWP z`-5rgd&)1xeLow%(u(MZ*DrlQittBPva4q8P{&N0k$%JT?o{#y4lcXvyiWnRXc-@Vg^ zr!~$xnHjR>*e?6J`S+kZ*Hipm>J&>ac}W)MVjKH zYNgt%Ekljfe$+0}ywK>$iDW=tC|@N{l-F1FR<+QV*XJ9@;)z;gu4cY#{%9I#E-=bW z$>v0Jf3wzn&v@L}SGQPqS*_PRCL5~ysMo8nP`{{5qtR3+_EK!s=yTC?aQDg}Z;(>Z zv~#3RX)7=|zN%ByA!?y+tKO|=^ivHMJ!Qz%`M`)&YJaPERjN`;ZdN`(2mK;>U;R~G zTBFu9(sa;_R-aH8E1D@4a1zfV&Jmm8%@V;L+!p+WYr_A8qtOxSg1O}&>YUZVOzwqg z^Ru9ATnOcWtkFC)-oM5_n{CG4q36>tJfl3LovWPN-8DQGD%8$>VpWm#=P;|x7+9~&1J&jOzsh9KXPeFR;U%P*o{?#of zI`1m+LcSwWR<>q>A+e>owy7g#UT4}`{fX2FuP_7+eJh@?m{;X~l~V~T5?`9K zOcji^jH?XshHi#@ePzug&B5@6&>LnTy(dsTFa+nT-Erp9d#lW?GBt5~Vs}}xyq_ar zKa({qLz+=8W0UQ=?J=fP9>}8PdldcUyG39+L@vTwDhrK54g{vR@EhL*UsZ2&PX}bK z_Q11n4!*75lAk_>RR-<@J`{R{FeE>3rg}I z6u&Co?{T{sXADO=(^Gt>=Gc)5s;q<~A-ag(bfja?9cvYlAphKX@ z`_(%bH{N+nFJ_DHr*8>zMBT!jkj{Gtcd|V^73rQ%N=&$Q1nC6=*M~{m3n%t&*J*)qtwP-797Hclx z{{O|`Gb}K_Fjp|2FiTCN0Xhw|6Z*6rV(ik`rZ0x;HrYw$@G2(VFJkWYt_%f?|$h7wW6) zrR&k*WWkjE2Y)RG=4m@ZBd#Fsi&XINaOdzTWU2CS|0;w2>9fFp=mnGhC)|E+Hq(^( z#vEiCF#Va)Ahg|gDc$q!|Jm!Jww_r0peVs|wRod#l5Li4nC)26&7xL$hP*T z-_DP={$oAiusM>g4$HILkGVs$qp~Bpy>jQfHaIVfHVf5M6>6&XCN%;+Lmgd>e(QSS zBH*v@ErnmrXg1b~dmMK)Ivm{--^nG04~8KzUt)Ha{#Lq8%<7mfnt7T!!nCNU(12jC zlD(1J zwdk7k>5@@Vk7Qfroe4d$7aq)qMz1MVl_SM3O$3t5q^NdEZ)T% z=vj0rXM5+(;#0+!^Bd+r%v0yRFLD(QcN(0p*zT+p_k^zODK_3Nv5&~vnxo5_kR{1k z^`~O7qv)qg<{rl;?WAx2Y{jO=8X`EqfVkC^u^sDu?s1j`zO?k~Nb*{R$X20f* zX14aGb}+S@O45DNCQ~;xHdLjyYCYO?tyP<;U8r5H%~A){3)LUgyEHyjS>I@TX)bDl zWD}J@nW4BTpCR|i4$1WLQ?d@SLTND!6k_z{B4Ue}6zjxxp#zk`QG%VA9#{raW(xZ2 zhXb<%H~p9WeLx{{fIXx`&+s%$ab=hb%yv&huhf0a%{s@rS~=D^;_Zp{V*7P_Er;4M z%-+@h&Z4rGDVkcep^z<<7tbqBvDhuI94{QB9aSA~ii1VkqDF;xi$52QvKQJKBYn3@ zv_<3>-4ox&G*w=BZ@5aRPADZRwIoIABHk;vC`YJS$?y>KfN2&=3?9% zZ5XA%5nznic z+Y3(TzRpc5^cAeIHMeEBTDe|$cYA+&k7K1x@Rp}*&;`s?b|Xu0jkvpkXzW#(zxLOxdV!jnXaG>8X}DXD+8)x(B+ZhHU*|g9f|YH2r*VXN`t+iFCc2qBX4JkDdXOt*vr>29p zfjV1#1htBBid%}dibjgsidXUuitF+#3aO%@Vw1d|?45KX`~Zt2lO?^utZfJj$4zjO zjp8s8LlKyhRzw{_-Ed>b4QIrJU}ivvRMU6lHtUDh`zHlH^B;VB*)H6Fuu@d=^!BJ+ zO4nZw%E39FIb%e)lPF-^F-lLY!J!BZz9V} ze*3?J{$=oY5B%~^f){8nvQCG@IidvEuD1)<39n+BqtF-d`Ppimiygvg0>%FGn1n4a z*ci1j>vIcP0a`1~=}df1-a3%rMv35=INh z!~i5k-k?tS5!v2)n5`HNr?=c+)<2J#!)$VMt|LyrW2cLDHuIkLq%ae3$8X9dFgKWx z>!rJrE7^C9O8w(*8CUP z--q&Xyr4IhIHKt{c)Yyuv$Oa5Y*SvU(+3=EZWkVo$!79A)l!V$rx>A%~IVmYPEiv?!CTH z7txhRSGG3QPHWIsSEs6elk<=?U9Wtv3@dWMko~Euq1vLlNw!oalL@3ssaI5%PmtZ0 z<`HWMCGk}vBz__dLrTtoz*P>u;sKZ*st(r5Cb0VS;DvL@etE(%k>{Y-W`HD4a}GX< z9?X3A?DzihJoAqBwxfrFaQ?_;bzg91y1F}?fn=?5N*n`ly0zHn+64A`*6Y@jw(@qB zGr@V!{kJ>Q{n@?F`NcWF{>`3d8)PrE_jlxZqv=Or9jp-7LAoYG^bAum#mGrz2WJEu zf}Rm4KQC`Ujn|2cI@3YJHG@nOr&%ulAS)-!C)Of8+f_bZR#o}0A^?gtmNs&*a)Gjm ze51Squ?Vg#kDvq2c3XTt8yp0dtF*AjeRKG=IY7CFv2t~=*Ab6l@o2i$MmQ#>j#!~@<-^n7L| zV?_3#0!uNO%mL;ayOX`kz2Y|VGkqsv$Vl)r{-8e&^|mS?NsI?&Nh1Cv8b)MEiiq08 z45C;8c;1%@<&*?|wO@rAiF8g2?2 zYME5Va)wU&fx79`KJ6^cPxZg5Zt8NXW$MN%T6KezsopBLlZ()qovmb*m6czW3CelO z8;YS=b90f1X)H}8h9g_GUQ$KURO}aJ!`HGDlS*kIAN<6mksU0%wk1umKGZ7t5sHL7 z;1FKs2lyVd7de{AW0TkgTxZxbmeQ?Qq35CZtaF6Bsbi0Gs(qwG=E!waa27bHI-9$U zPR3c{FX|!sDLQ~G zUpu&+#)A=e0))2uvOHNA?O3Y2uD(8sYDOJVjaQvlv_=>2gS;xTWbx!BjJRmYdq-+tM-EwpkbCcfA)aNd78+~6Ch3=TT+# zTPQ-mnQE-RPbC{tb-#>L3{A}f(-3oW(_CX6!{0hHm92>Z4ZAyeM4bjMd6D{xt~%A$ z;MDy<)@zbsl>U+KC^bhrN~2O&R-GbmDobE@89}m&W2#bQRrMXRirPXxQf(raki(UW z6n()ke}IXAo1kYmBFsdlWQnA`YIic_RR2w z$eO^l;1|A?U&H0{kJw(YZoK9z^V5Boxo`Y7JikWoKzgU^f;+{r%lX^3%Kp*1*j8YD zV^i1$+fUho_Fs0X^NsViE7djAz0B=&7r7d_t2@d$R$6CR?^rqO2*-K!GcVEC0&L(q z_$h8tw&)k!Gq*7lnjevs^uz4u1N4laqQ10=(o@@zp_rmpYo?Ms`4oKUY`l|8$)3tZ z8!%mbeDj%VEuN_~HH^7{*AhaboKg@)V1vUhP{3iY(BW8Ee2f*pqFo*e(d}+VTzstAR z_l^(oIea2)h7m&Z>|krlU6V)x8I$H{YvR7gC~>rM0sQAFP<##zwX(drLGR{I<68I zv3x6t?^P0%~xF; zJgd)iGmH=Pxkk7Cym7O>l%W?^=%X5o`nhVCY9qQ@HOX3PC;6AAwtA@MFiyU4>f@>= zs(R#UWlzOQoLK^J=UkU&NGnKla8`UuEFkLO$$fy#{z*X}OcZ>@3^4~&$eNNtk!K}e z!y`%_z-q1!4he1X{|Nl#SNnM`)7OHZhgSy?IB3AIfn)4ioOY4>WIs1z!T zvb}PJaxfepOXNcp?`2ly6-5HsLD`i2pj<|#D66SNWM9P!S+c03U|rO~$m^2iNN>1o zuM6%+DTrwjJ2=`};cvln_^wI^F9g#34g3cJ*Zeg=!fyq4`uNbn;2{51-%LK4PiJLZ zc{~{l*?Vjyz9+wr-^K3$QTsD?;**$vvf&ngj9=~>f&9UGevuF9E50Ajmr49sUlZSX ze}voQ>&1TM9LxajU*;!!p81H0zMI??E{lJ{s`!WWOXj!dyLY4es3+iRiiyzI-c#N& zOlA5fGu8Wz?&g{A9q(%IUhJId`r!(>W!_cvQKk(yko&}|;l(?`t>G(kE-sPV%5CGm zb7na1b_O!x?D-ZNfq9-KAfmkz4iqhdLvWRN5IorTa4PC8dL+&lRhBj;8k3odN1A); zUes;v6zVB%`ct%R;UlO|E!KRaQZ%b{nc6t4mt&0m3`=kpcpsf^IuJe5)WKZW_|xdp zryDYGrnOLOkVL3&yswKhdGxfYr}3D%mZ_HcoH5_{6IQJQ@c$gvEYr4Ax7S`#-_@Si zPcLaoDr{sU22FZ1cR;{ zll!gVhgufmLw|x0&MEOMu@7}NvPC(@TYa`P>qvWPyV-f%k>VQZdH{cm+WXlx-80EK(skTk z!%+@3v5PjBZK1>JXyI{qlDXDA85$MZRFV+IM;4Uq3LOb;4U7vs3{(x2h217qazb3B z=%To*9;Cjj*{Uqd#b;a^^ukTe+*B^M7DwjqMzQZg^mpRnQYnhCOSB1#FL38jXH2fu~-1-IcGQ6W+> z?7Y1}-Ixv0bJ=w7Xy%Y7fqv{Zde6I4Jz``Qn=q4639HFJ<&u5%`7^%#{AhT2 zAMnR;zM1F~`EL1l`RBv_Tn*ITLQvo5fk&%=bFZ?H6=*;?oFj}9%EgOB{fM)Y4)U3@ zXws#4rLvH`s*_5u8iX9`bmbSak8-_wKRH}`Ty53;O?mYJoyr(*7+|6eH%zsRbB!DH zPxY6m7W$2pNbo>TypGVSKJ;~T@T?N>sjIwc`Cb3y5BfO z?pe+`u4)e1`sW+S&E`rB?B|L0L(9bTyiB;e~?yHH!&{NLIm4PGB%#LHrajm&}{9rzl zH~OaH#84O6*Vo9^j-r#8jqnom_0E9-v>~&X=3z5i$x>_st^+%O+s>R~Q}EA{>A#sf zUM=&t*F`s?*E3mkX&9c*v3uBYToB*u%WM_6??$lGnK*VTGk|Tu#&Zw2^}NdW*tf)I z@%8YXLFFY5w#gJs!|n+z4PFVRh2p}KFgx=tJQ?)Al#+C?d+P{$2*a2p{3hBZ+9+-d zk3g>Y1knsW-eIza%4LeiWItsUoU^i&&6W3*R)tjMRK8PRSH)=w%?j$g_NXpQwb38b zY4o#oOLe!Y>be$`OlPDz>3UOgy;9e}5Q`dm1ARpQPFG6*63GSzR#t&luJx;TYA&gL zny{MDT2S9Vc+~NhOCJDt3%%nCKZ4x~bBnTb2>Fxy;Z5ZbFhNFJ44tJ8nfh2fC=LS~!V*~&B zM*02xS)U6jHlfn>z(c!3o(b-*o~^E7s5!KE#W=4xYdLvmT~}%MK+h7dg090*Oaj{ypHXWj z8wu%rMvi*W7vDRdE4ULrn60oc%>zTYH;6W?L8h2jLJ2lUHN?H@m!!62o$Q%ZBkv=N zgOjJZ9Pg~Ww)`aC;XO#K^KfZC#ycHNnw28l0WK<^DaI&X%O&#d_*3Jh&+r*`C+{z6Boy z4+W104+o#%)bS>82(@mLznp)K?+WafhkccO`+Zsba9?|PjXraO_&%r{6r;x0pZ$-W z$FR(Gx;3+uuEwO%7jc3XusxZP?09Aez89m|BlK;?@0BnIyzA&p?^Sv)-5=fMs%$0J z%GP7G9LromI%Xv9$;a65Y-3byOYs%>v*%EAz_yzY zde8_EjsM3UF9^?t0nQk4ffD`(o{=@7Wuce2t5Si#13P_#{8{{b>|d*RCl}2><9>7Z zI3Yis%i(siN!(0E!7jng#^POz`I6G~B5z&V<~>Qzp%a*{Od9SO4cOAmM5Yowf*$DI z30tbxyU_E}6Y@0omU!c6hW<@AVBGXUx;xgeTi$Y*nQG)s_BQjvD+kBQdi-ol$HSHL ziYbLG!Yp3HH-T4Yj;}TMyp`;Ze55QS|1KRScM-#6*CnaMR`DUYIF*u1 z!bI^yK_^jb!3|*`DnWQNYQNxo)C$3Yk_}P4Kn>!Vdk1 zY^b)867@IoKUJ8tsIJ4wRtCnu-RL&AQ&u9A6*^@RKBMZOcPONP$!Ze4r4J>46N^z1 zEDx{EWaK)eqBEjff)zpm7)6`Gsx2Ma0h0X$Ox3jqVcQ&82kSw*P`gl_pc9i#+x#WI z`@RFn0ZhjoqXP`3@xFsdR6Dr=`~<8gZ`rr3jj73wK_ALX-(_CV$C)$q3FbU~3BSLO z)8%qz4Jx3q^dWSz&d_Pzm$Z`B!Q*s>!5{vwbU`nwX$>5AITKEb%w=ROYaG1zIdm0U9;ATt(tOL#bMd)nk zeDHEG1$pcBfuaECUyJGq?T^AaswFBi4^bhUi}Q9iSDo+1HQ=Xk6_EKog?+Ohr{E0S zZT2(UiapGRm?dluTwJ$N#rujAP!fBZ9nE^#<8Twd#qD7c`9o;;(B zMgPP|Zc{cP&nbP%p~_=QLfKjQSaD8KS+Pz*C@w2%!VRtgC1tC8o!ln-B&#ethFQ(= zgo?<+eA^YwUJR9}Bv$c0SYUp^!sr*a6IKz<1goJxNNxK-Wqcnw3VP1vaN}?s(uwmh zh5t5~3>Vskz_Gw1|1rPMC-R$o4Sm=7Y<@0(9(xJTm4bKq8cf-BaT?8H`m?3kli0UU zVuGEM}{~wOxs3-%Fp?$qc-;g^|gA)18)i537RqQ9|N{R zVq_eqOO-f7odNxc12yn}j;XC6yy}rcT@4Do8fNtCpivDIbraWv0r{&q309-YlCF|d zlKGOb;*a7Xuq$cAjl@NwDq@?ch4`5$T0CF$1y!%7u=$)6eS||}7>rADP#~^? zL$OC-6HLOi`6+Pv1)$))0!@7yawP^(z^6vm!x~e7+i80EK7QR0o*!1jH}XGw(LHp3 z7l5NM6{e+fL2n>G@NeK9&I?nKyW;&<{LB0m!CYB{wJFSZ@iF{5Uo^h|b9@{9mHkxU zB&PY+V()I@KjBYAYD(_k;4ktW_W$-h^XvTTz;r)qIsPueMS&uG^b5V4}010r>Wvyg4 zar1dCGs))2rb^SKSwvUqEkZ6mMwFmaSq#(ge(atiqBJ;4H^e4%nv0MaKO@c-H59KE zrHL|y4Mn}cR55|(^i-e{b`tDE*RYvjE%+*0knHY&Be(|n$U)$T?vA8HhJXt7HdGAH z>Hd%>NQN#4Zw2QDmj~+xYl6h`9yY9x{Pv9|EmjSV~l<>OPJD|}_E0!@M+aR-zI3xczQ)kANBy>M!o z7LvnfB@7J;i9miS8@i6)l?i_i?GN{bx$GZIXG_4wn~N%EW~5z74W#v(gE8G3H}HpG z5O)J7@D&)&onYR%DM%G~1vLJ99eCHCzyonh;09Sq0-D!w;R)nt@`VZi+oRxPsU{-8 z&f5gOTr7-C^GC57lVea9@h0p!1}=wjqz>Qn>v7KF#;;5JUc|E3~bBInVOO$8;gPoy(`-51#j8^~4Awlm;m`5#sC za%3hPAZ6j`NP+9?24>jv@oNU`oJz1K7lJ*r2MNUFh!SR}OW|?hx=3UffC}{;6@$;P z(tZz>3R}Rn5ro@?4WQe|(V;67K8UaL1YhSZ>`uS&-tzEf)`&EQC+6=+4*s3J5gwfH z?~#)rI;DX6O@Yf@7TrZqcF?`ifp{_tRLB-!CiX_x{4(4UHL&-tfT3xPpc~9fiv-s| zQuzdbSY1@9uVW?27Lss#4ue~Brf4UOymRooow#j)J|?b-r0g72G0%xpvBO16nn?y? zrJN~QiK+i3nD`!#?4bdj&svhsl8KW4IUh&jj7GxEeHMJYH)1cy1`^3M@g;E=ILJnb z_rPX17hiRXxH2*zo$;)gRff3pnpWOdDoRA~E1v}4Y zc%EEf-#hT99!0L;t1N`KYdW5cuK1I^uyS?7SD%J7{6w%L{h-_Y&;0g2TpEtnU*Nvn z3cm-Lt6BIXW*`n>{$wj0U*C|~I2L>u{J_3s+u$6tKd?4%9aPn@xRa!pY(7?=tFn>A zHlhvorV_Bf9$=L%#6$LG!pG^m7jfCI;%@2`5ms7%WYZHY1i0VswSZO6ExFgBV)N z*UEQ;%jJSxI(OT9-}?a>@k6lqmM}%k32p;-I@mGvOehyAh+mR_WJR)MWi#b5)iG6$ z+NW-(YNlEu>mnoZB-ceo$^wJiC#)wYLCSfx;+V@%|^*81c zJCKt}sZ=Sg6*>@X$`WjKZ;bc5JId{JrMaHaotV;r9)bRNCN7Cyi>6A4Nd0oBd_CN> zHKbjoqp&CZ9o`dWaO-X2E9)DH?AuS=2FwB0UmG681E8^v#X49bE)c&VE)j!e<6wAf zCz~xBBMV6rWy?hiMZ2*^RK>Y0(|;4}h6RE0SYIB3zdZsTtFPkw;(_39Y$c`;z2OZl z!kXI_??vCx{LoT=7k?W2FFS_rLr=mD-R^zwJ&KgZCtl;50&gL@6sTkG6`X^wt56g| zLUyk(2v=3dP}R^ef2Mz$Z<6m9=jMRb=enZLv@38mFb;1^jzA`Sk2&*e1Vh}C+?7~G znWAFBZ$TlL(5FDrE*GvGHe+_;VDKpB2ztP*IV-ppbNQX{@7*U-Dk8?|B_b#k92AX* zu`5^9L1YxIM?EqgJ7%jARmnQkq4anLQ*c`t7^)b$43%>Eg1qMaAG8AvW5X{>`)EnM{*4rPc z+<{!n;jDl%c+$TcXUYflSa0G~n8(05-)wu@0t^?t%jFkfS2?BU?icLl*muE%BL@wg9-tHUeJHt=s-(n4UOW;M(eAbkw z8l!6$Pvv2bXSTeP{2Z#41Mq%T)0(x#cqiMSO8*+~xKaFCbO$?7e{_CFOD9O56OV}= zaEw+iQI|wOD$fyFMPG>mA|xvc_N+Z9h8LLtBIJyxZ%U1w5?KgIgWuVA=-~#Ls8W?(o=VX$9k^c&KY&>@NAE9he zwdCPs%=DeYel`q*r}5IBFtk>e^+)}+1)hOhprLOBRr?3l?e(HjaJ$YBxxi8W5ndCn z8oCxd6q*%kB#IJg6ldgl%8}$a?nz`Vr~ zcq7}w3w&MjNRlL*g|3cAx?Iu_dvFtRE-JrU;C9`mNP#O`rnn(VlbjPS5Z)220>wC8 za9Ws$vsputMA%F?5?PEGoUd0P*K$_+M!Hx2PHvP>kdw&mZvT&AIx$Nfe0174x*7@0S&^s5XQ~z zFmBx^;A3ACToIH->VmJ#M8Xj<*yNEC4|wz=1WVu*RSMGt0^vNEKURQ6_W=a+A`s_) zfg?BwZ2l{-pRIrqv z=$PhhKnv+S`W($M$C%rACO&X4xskq!zA?T=J`U^TG4D`sz?15^hWzHMVC_&T**)oM zeXOo_bV78jDa}}4`$w}+c?Zd9UK!MH)K4q5JT^Nv7<17aF>TW|)McwIDjNISTKz=* zHRCAb7yTOjBGnqzbK)oQP~w%GmXDV2K}~J0`Xsu^AIJruRX26JU6pK0tjgj~MV6u& zMH*|8b+B!kZKh?jCAH{jQEZXCXjM_iqNSD@7NbpWvsf$G8e6wphg;WM^;WTUrfs}! zt1HPxcs-uso;@DDE7A4c9_LtPUuSO)9?&IrJ=-65{HI{rm@sK9m(`LD1BVhsv#2jP zIjdp1c!fEc2gDDeA-Ip@aoX#FI`l$x3>IMS?r-^f`8UNSMJ#Smsp9iujW8luAX+4< zC+#L}sSqj-;yHPXdGL4P%6V`;p>G;uNf4XTg(O2s2|7umbN(Zc2tI)QSiAK6*9j znrJGCl2BDCi$r(@+jF=xkfpd+)5q=Q>TumtH!UXrZs8*(zZmZY7x1XtgCFG zq~!JFGo<^Z4+$r+4tKe#L?SUqyh*Hrx5CrIQDcC+>4BSSxLg1BquYu{b z&UVCB(N@#;!FJF#&R)-6+I8Q_VV1^^%BGA-rJuW|x{|CraEudNYe>bk$ z#-O1fQBd}1;{L=k@fG63(NChgn&+A0;t$79uQ<74e#O%jf0fNITPLnuTtkz=G+y6c zKf^f8_}<*r{LFOD)Q$>ki)14C74UbFZPcvR7# z+&MXCau)w7$r+n-DW_vjeCEQ;R%wgVj6Xi5p8Prf=lZNhS+xs1`CTw$Rk3JA(Tw8j z#gnWztrwgJoF~1nyt`>BGauP)xxI(|c+tb6zYBjBHnXj<)kZhNhMx6D(G;;6xBS`i zba}K)DN{;&V1oaww58l3uMPfscU^DYdrGdGt2wWUK^<<1tdH!jC?KjYoGp~Yd*A`n zcUNd~=nigTjo|*Z5a~oZzJeE(oG0j!hfxh_!VlpV_&WO52WtfXf_q>oKC3BsMjByG z;iR{XcawLdw>q1`I8p8W2VI(v@Qs+!uk>QxEK_w{Re)^UBJDEmVD(USSF#UMZNrtj zFwc=g-KRvxLPNZ{xmjrLYwl!hXUy08^!p8m4Q)-MOz+HL^Xq6LW?anjnA0(LV|*rw zc^bGb-Kf3PD%CC3c4X+6;65D(p6Y|}2e>8ghW+SWj|>e9J@7y9*WerS8JMyj&QxVa zGRe#tb`~8vhsX!JLoY-`igoEax=jjQir;#DfDH zFRqIY+dT0t-2DWoKIef&nSxs&DUpFxv|6$g^)0h_GXB1au)JzNw@s6T(|ADZN$9xQD>Yp$@Rcl$MxCS!@bY_ z4=rLo(|zd$ZrU~1kzpTer)@*sI(M0{Dx^f-xJ;Q}rO#AcSAnkhvSO`rf0dh^P>?XH z!sH4ssyD6ft5;kvs@}r7^{bYydNuw+{8F>md{ZwseAPeJk4Et4sxby3_8zY%PC7?-huorxd(Fx6|5^@@}}k;%g|+RO+ApB`bqTJ z`_b~TSBm5F=bzJmZpyxt-7|N2uCGv0)W?3#{uh!~$)S^>cG$PKpa&9zF8&UGvp_fg z1_=2=KN%Ku&3As*LIaqO#NgwrDP95(|8vd?C!;E%RJ;k9EFwbaRC5OB^d4;~jTFR_x%sZ7F*poeOp}Eqg-jA^w*YtQy%B zejF$hnCVOQ4dIs{yOx9*jDhYw$ol75gx33(>Xt2zpuLkP$K99y+uH*Cph^5@z651`e~u7vrn$^K%pU zWZFXSM%FXVF~^Z;FJmv|cxkWg{^p9N4|`3t*DLl`^A>w*dEdILd(OHN-L+k-T_T6e zuCji%kk+M^GMLO+?)c9x@&w&2(V0#44x@AE`ph(X15LX2J9jwl+B>>7JCD%?-Z$vv z>optHZ2X{jU3pb`s!~Gb1La?qx0L-^c5}t@6;o=J)coFHaf953pBoZ&n$|g3USDBD z?9awU%^g2KUvjT>|k?^MQC7d4;#E-=HalcxJ^M(qiluCtb z3OW~^F1%!wSbtg`ShRVWxmVJ>X|F#|P6@wPe;D?u`=>uY1V7R;@_%p3?vefN&#OOw z3T=fKT<=}q`B}by;U{W=x~_rfLOjCy5y8GaRv}VcK{s->=80yLIze+%{zUE-x0Os2 zJj0xsKoAcbv<#&q>&AH*x-gSe7}0{Lp6?1gNua*T2@I&Nn%)%{#M zR$Is5)YppfMAN0mm)V`zuk7UV@fH5A;HmJs{QL6i^1*WEau>>)6Vl?V#np{li0Q{% z(m@(!f6Ho#w}>YS*9cF-FmZVbx`{60J@v)Sg#gQx74xksGDIq%LuH$w_d24#QQu z2@Zj;p$)i0ZbDu)9W#=P{U`k{|9t;r|32i$@_D^)8ctUgkP21$ocuI@9ZVlq^1tVP zaDUNba5u|xcW}*er68Gm+_}^_2@~oAtxc_)3pW#dCGhHV#cKn z_NOn{i>1D7{sKLX9^)#HL{751HTK@tkr$y$n#=0q=(YdH(OE!8k!@YLw5wfWL`aYj z+ylYg-QC?~aCf(dyUXD2?(P;ONFXkqbf>Mn{yqQ7nm4m%c+gV!-gD2{``ZzFqVE)b zUbsu)kcgCUD+m<6qECyyuUNF=uA1v=9IZ99R?%u5t1XF3Ecu`?8C^c=XXMU^xQNH$ z<-)tcV_k+l&J2W#(Jp=yaxf#T4^H$Pu$mY9m-?UN)Xh1XQYdxe-@bo0WiHIP?&|28 z>^kXUvRY(C|7!nh-luz?_IwcEpFnLhG&v%hGj!fy7vOW7v z_N9Wk1rzxB{6YDZ{0%wv^YGjcG%hmcT0UARM;*sRu;1#~R@>fMcuPgI)m+y^oBlDC zGqr${Bu}4@%DfXO&7Ji$*P3g?E?~F91^6605zl?&iWmy?$(Y+#r{bu-@&NfZGG{LO zLjwlvk9EM$Zi!xGf=lmuiaW)sjD(C*8ACF{bADup=eNq=lK(h=va6TtM8S!IbC|3S zmP^ZhnKATK-B#q2G~ z52C}2VIv~;M=Xpw6je2HMr1;GNO-FVIXofC8l@J_D*P_`WpsR0hp2Xi_7)luygS%t zZ(}cPxofU#2=|5yrq5jJZHRdm`mq)C*W4vkPrBW z2*(2(gz0=6!4xR)H~vpQkpCs$p36FyWxvl|mu1VXkaIV;Bu?PAc~hJn^Bm3-`ET+% z=Qqx;o;NcuCU;=&D(6OLg8PHZ!1oUP$ME{)$h5{s%?fuFmLjtw--cHYzhCHF zv72JQ$JeSlrPh)JDxqte^>s8>=#*SIjwUV=I_hP^~8F9xER;5^o%q%N%>yn z^MX$=KDGZe_IvdA1u2hHilmQB@AEf3WysH4zgm9}PjV#{`OzT#XgcL85>@o%y-pv~i_=9(oaFjdu;4sh?q?FsV`34EdVkxf>Z+)Ny!j8tFhH(44) z`Vnw$7z>6L^vJKDe-}@Aio2!zfH%i8+jr30$8))$sw>Vl1pMB);P387k6@ItUAclR zUy0g79l_05(9PDdrVgg_)^WCNw!_#Df7ymv8d+;v-dXP1Hrr2y3<&V;oBlwMNKYzE^27u@8LZn`UmSmeD)rWZ}xJI6OOV$)}SXr z2cbHDZ5m;I$i?Ur=^T17^1)gwrIZs$opAel`|5ih7ktb=nQzaVl=sXzCU30sh%?f; zIk%QGI=5$DG3Q{{*!_}!G+%u$ZKJ$XLFtO}NdNlI|SvGOR zEpma@m(*~2B&$P-Cm>gl(B;(+Y~lxdOZw|Tt3AUj|L4FCy!N{TFZ>SP=PMIf=bhlI z3NFcFcYk+dWWaQXU+a%^YJPrRJC~YY+_e_W(k}Ut&ZxY4xgDK@a_Kyu(}|>{Ea!6P zi=3(1|I68&HQTv4JK1~E{hXMlzA=9_lnq%Llm&NRzmS7Lg+uEHS1J5B!c)3S$%yK| zs+emns@}b7NTr)4L*t6Yj4M1RYI$U0k#aGUOPne;p?GMKf5O{__D0@DeI(mo1@mq> zU4;71t-wA?QaMt#*svh7;7_i_xz5$dT|98vzlDDlsO&xNnVh{idr$J8lV>vU7*@2tf1;hArLto^0`+%l0$T$Okr>3&k1)c2`**;jJw07XjzP9cax1JL@+Bn}(6*cH&ayNpIEcMJQ8$kp!=|yLm>3WXGN^bqk~s&)PGhb+cV1VNW8krUjk`fl>Njx`X?uqh zosuKJmmeut(XnwT%b+2fA)E?y^G)?86ePJvy6?NMc!PXP_+tE6X|y;?zAJi=a8Os? zDEX9F^*Y&z8iV^zBIo4h8x|UF8;2QJm>Zhw*`L~6;NPx5%@P`NB4o4UZ_ra)Jx6PM zNry2wFX#b?ji144HUu{eChQv6q4lf+0oV7%61kszwySR zrkciJ(|7%C1HnD#XeOWO4o{#%{31^EPYE>gHuaq-IPH1qdhBkSXU}i%%yc$!u7Oi^ zcwR+USNAo~C@4q`{LH{1emy!jk1=1rfT`|DG8h?5(-}SeiWx>(nQ`PD%<4t-X{yqn zm>{+uR6RasH)@)>^lXqjkSIqWjRUl=`OtN2W+j?rZjxuoBFMbUfOF*^ObEsjUC1d& zzw4l^0ehpX6oN@jH_?G<$v9L(L&RR7nlJQq2HmlZr>Eyp!58l=Zv%h8XZ9`gPAu5x zzL0-8k9W?^)xn|k3V&~&-!AWFeq8*?{VM$>d=6tV-?-)< z=-=<&>~gqo=Z^$I;V7ndXMGEO{hj8#8L4&BZvL9{``6#;DK${1O#ln;qI0@4E#r4a z$De0^KKpX%>yxD3KO6k5nzACpoHaT7M$WO!GFf|5pMluEKkZdk#q3-8QLYqkDSxQ= z3QEfJQ1J6pz2Bpl|PP;%sAV{lO?3;#ldpfq6+q)ZPj3GlrTrnVNxL9x#u$bT{8Jw*D#m&3fY#J+bmUQs9UA;lE6Ra2L+hGyTB0;+-C)rz!w~gZcZd-ep}o{3I@YhG1(X7 zKgE|5dLq*z6TBTwyaBS}2u!+kk{>gS+sGfi1}BSyZVGZlAzC17Q7OnFNg=yYbI^|$ zh~wlJVgp$NSBzC&XNl-+53X;?TGvgIu<(!6T74z(sVgjJ|LGuo{uU& zk%r4}rS9?+=`GTazKT19??MYqP`>f`{4@RqUpsK#f7|`W9g;sFKP2z8bFx#-9hV!L zTRS%~$K|Z)Y?t@dSu+1*UUm0-S2Is)!Qlc^K}~mA*RTBCyjQMg`6E#eHbu%yxbd_8 zqSax&3BS@%%X3o`liSeJ7GnJpp@lCh`6g~^#Yz=sS87plNtr*Ty)n(Br$#P|P@~&M zyJG9dPAJ{3)Y(|E_?+-Jg|e()EbR=3_0J7Xz03TMxenZ?gP?|(Cry!T-g}ek zzxnpbS@Jt6M$Ymkd5h(GbEljccGkOIZKnNKW)Fx{Yrgv zejAs3Avrw#T6+Dg?%AgFA{ol>2g&@;7r!R|8T3jAe~ajctr)Owp!RmJjC6R*z-5CBYJc|58gok=w#1 zGe)K-lEW&~TkuaGm|1X<8kh-q);Vpa`T)Iri+oGk0!7Sfq}+y3XE4u~Y-(U5>u0p)^#f4d6r<(8qCLUDtwl;eg@3 zfwR=GT(|DBIxX3j3#LCNqj9jY0_yNC=KE$A?5QXAoAzS%K6b&9YI$!Ij5Q4t3~|^Y zu3^^SjoZOJry1rQ=9$%?!g&VGf(xpsQDS$oJh-&yeaSvQ{0Rfm;dFRoy{(~Wj1W@! zJHi^FiV!c{!sk4QpTV0%R$M3#lb=J&!66T{Gn6I;PyxL}#!iAV3dE5BlvC@VI{qnl z0D<8tRBoH3OGt`bCl!N!%P&@z;-t0GX6VFUOLIZh^T?BBhw@JDq;yrzD%F(T$`+}Z zybFAQ*?a?JVoetc`15!TZ-i{VweU9ZH9!V3{Du7<-y+{=-v;zQPvRACfL?!#yHr7I z*Bw`Eevkax`2~5OTy<;`GHz6#ZD3 zD_lROS9Gh`$;D5{?JBXh*s7v?BmCi=?fY!ajUGdqv7}M?e--O((`jxrHxkO^e*?_} z`QF>!S$rY>Ic6#g;Xi5==oaYcbUEv$#-*)GjZCYO8JATfZ*yKVfH78Ko^|mLm(o1x z@{h>xj-;VK|M%-p%AHgxJuBl^+U@iTI9urC^yKU45Rqv|(>mwg%Wdb9UHv>yJT{Np zv)B{qod@+uNvPnQ@I~YzmG&^^>&wZT@Hlm&#$)zUnv3QLo3gI|K+G1f8;>UXbYwdWDW|a+0ZUMK|0tqnHJs#ACAk90Gp2{Qy*2;?$SjiF}fi=JswCYDhwzSu8&(?z8#-f^c;Jn=k7UpUvuavm>}l+;@2F44oavHo zhwdV18v^^89fbU<#Z+f%GV;uxsZZ6b&^yygD%?^#<)(6ZumdCHY)rY1!Bc*j-^AD9 z(%{W;iZKe`{m78 z6EEO}Zzm3fDsjI!Njwb##A|V`cpl2{tHKxFBJ@Uv=0E%czLYRc_$sy0R>#5Q6( z_$_ZCe|7=1+Bne#jkGV zpX2ZDUE|$T@Uq}rK~6ziZ!geEzG9BB&s*GE#hc{G_T>0>_-^qVkU%s7=g=AWJ^w*B zN%J2UcZ{(4dHt5#dFS#C$3Cu-Mw@rqN|Xfk(v-*W%mZYt%|+hB6jQ9}pza@C zuF7du1JQvs-Xq?*{7wD}`es$7QqmP)m_Oecoaaxwl-@jTQCbd2w^#D6=Cy&QAvN=N zrtP=#%a+tLsY=qYq-)7LlG|sD%9xw|JbP#6s!U62q13y`McSCMHs#-}4Oww+huh@6 z@A>X&?(KoO_mzSN1)F`FeR|9>&tdmk0!_yw>~R+O*xMsldmTNOzJnRfF>V&7lpCO& z{U4WvdaEmXo2`*W@Y(vunq@s}-C~_@O+{{i9n{u0;8!KU^K{HM%VxCywgsU_tP4s- z*D4h5?1r{amK&Cl<_=J_4>#>JPcRFXI~E-%L7b_;XhRNC8`jHQq4(00kiXJ_sgJ4i zS`bE_(4DCIR0=c&>!7U6gf2~kGW9N$e!nnB`-!`360+np^va5mrJ)n;44r6qs7^~m zrQoClx*XKGAy_%**bQ@Xe8L##YI8w2h5X6go2pBzT6)mCUPm0!vl_^$4N3$O%kjo~;C zUy4a$E6^C4^G*0em?!)Xe|-qtz?$jJhoJ8sgBo%@I1>H&9^gR8NZb1y7z1Y7b^auu z$*1xAk-aybpU#)#%kWnMXFxCQ0vG?nKq0KXfA~rK{{mYAU!jrn{inkZI07B{u6!x6 z3|3dZNJz9aOPodwq zj6CvI&`;dN^x7g?#cj|SUq;_n0dIUPw8lETntp-70W)-KKHeY%;FIXD99NDgx0UVE zOQ{I*Boo1ZuL>{sLg=hU>Q?L0&6+vPUeCVDw!${gJkY!YbV(RL?SI0x@G8j24#b6( zj4V;8#Js5eQF}wShO7&|9^4|VL|C`NZ=%f6Jqq_Nlo9sO^4xL;-MQ1q@XJST*-yi7 z!(RPfeLo}wmjTPWieL3j#=WGXyiDE>)o%y6ugvD2FcQM?y_kE@Kwmd0^%m0&a%ax#Kdkp7FWq3zsqkkSuCKC6dXT66! zk(JOcbbzw8Doe0E;mxpER-5y!BdiTtF@~2CRntG%#huR7X(FS8@<9h7%Vfq5@rf!3-AG8{+ z*~V;Js2MsyBXpC!0dGNo=|s1uIjFq0Xq&aSP_Rx1!??FHNGYpUQT3X3e9?c>F99t#)$j``bx#dV z4NVN^(TSLfpSRpAoP7;+voH@HNl&A%(GPLM9?m?0mZLTDPX3{$QQ2^4)K@#fu`wM< ziDAfePlb}~t+p6FO@!7$ORNVKPaDXWd}BOQHv&%r=0IqmmcO3=8g#P>{$_qX zp8aKko&V8emgf~1N>XAsiBX>aJ z%|aEar*sP1f@|t|m6J}29r((8bifdZ6KLVFx>7Bn-^u-JA7TGu*V{WF-L@> z3j8Wv>6-LjsI|Sg%ilM?Hg02rnYY-fZu-CYpZah38{+-$qDb0_Y}Jx*@+!GAoc%Kn zXI#s8l~LfVn%6zxL|Pc>AM70EoRU&I^}~-rKllG?_iIb~n)J4qvG>Vummh-J;=HUU zSqm~#GH2#o%317s=o*83@VUN=zODsJ3tGBXyQaCHxIcQcyx*|L-9VPcKvcO-FvD&m zcjN^2$A9I`vIafrLDq}Cb|w1_eVAF$q28w{=A!CYoN6tt2J1%IOGsh!Z{CNVyy0koQHp{#d6rIM-B$KKyBK___Ru8_La(Vh>V(6X zea@gC(V0Yj@;fpx@5_GqoRY7^Bjb4^p2+f0rhi7yHAgUtR>1+s&Nx&?l~EDpiOu9r za#!eppG!Pyqaspku^0T@4~6E!FoA?$OT|^0(antu161~ zn;R<|b+$v+iPmveH)x3EaH2Ogr*_hP~MNYsbT`%2TR%R~Z{xb*q(z5Vh)HU=m z1Y0XwuiM{(Jz4}B#`$0qRy5?H5@L<%hR>#prUl@fPP4AD-nDGEY__bnEC7F8vqw3C zg1ZJ^3zmYf23dpu*xQ2qbk(-gUSN+6+81;`s8X=cKE<)wB3Py{!@bPn>MtH~$id}*;nNR0GXyo>u(vh0%2K_OV6)hAY} z)wK8WHn1*gzysY)8KNMsNWGwisx!5pa$9ud=mWV5mFVYjYx{A(j%!J{7ZMiO3jzEBnkPZ?~pdQi5^4kFm^Ib zu*ca31c~-aP=g!=Lov~Q)ixlkQRt7t^P)->n^&}Xky$an!mEVO2yPU-05^d_LFIyi z!%l{tE!48mmEd8)b*!=0GI;(}E?PetbF?SW7;Lg~ws_DHa+ujH0S{9IG~XO$qzh3h zH5kd_5&S!TPkwGbgPyT5yMNAdXZgI{c^mT0xw~`qX?xQa{PF!c|0nU!pVaWQHrchZ zmpWfKKjsET*Q9yrT6Pk{;F z!F|D%=_=!jb@z3>bQg2WzQVrV(m2r%&qD=rF%ckpk>S)dvIYH=s-(+hyXb4_ix^ov zeN~JxhVq6wTnnxzawQ6MwYbs-_zR70<2hqh(=k&M^9E>80+!|0T9$z=MQaP2XgO+~V2-dHF%&gsU@m%qi-3N& z4sP|E^{?Pe&4lJjW}hI9^)2gzhQ5Y=I`>5XfUBub;QH$hBIEidU5B{=U3WBH60@P} z)EH7Bo@h0+i%K2!n(S6oXdFLcO&(IeYJ}EKTMu96Xrw#OM&kVktsGT|xI8-CQ`Bi)rZaXXavjLqb z^X;T<;snVDH)Jjpg4ysQZR3}VDFPwSg3oBN{9P`E9vdU|6yv~?{D7L=EokCPkw;!h zE$EY$3txrXVB2p)Q2cmCrI8+vcIqOwA zg15aLees8KyyC;j-vYgoOr+aciQhyAq6b+EE<%s`UE4=Af@5(pHH_ZGsI-;6NY`Y% zs5~EwT+npK6>{ zwl1_+bR^nmI}&VfY){NHENw7jD6X%Cl;?5A`yeJ}nmU-Bx->3_{6Pib&))#uU~A-> z-y_>oG1?~Wvant#hHhhQ0f(8vfPx9|bf;Uzb-q&*a*kpHZ-_pp?(&tp{Cc zqGze6sAoXIPES=&E?CiVuIcXAweG!3eU+?gIh2|+jE?J|Kn)EK88i@skIRG2$KML1&KVy{*MH`G@PV&pQ;~Rl2+oZu)KKy`64A^^l|PG5 zw;b_F+oH8abvPck@XhG^&IAQvAkLiaxKCUM&o}{hjM9onnS%uS^~ySRo!m#MjJw2L zkQ_-6ZrWh|EQJHAIh;_b!cg%lUjYP_NOZH0i_b8(DUU95mUKt*h zDyPm;c7XXEBae}Sl?w8FaM*ss&vZpDkO~O{_)wue|5Wq}@mP1^(mk;s9Di2nqew}a zVtxFcv!%h(S@DkeP6|jywXu3#Y9Y5poyTB}&B0x*ma+%TfERKV+@olIEGU%Qg-=kX zC(A*~B>0D0qfXXv<~K$E=9v5tf9erQmYXQG$$I1$)~ExOgz|}{q(ms$gQ)IgPxK@w z!12Bm3Wdw+ag~A(Y$5J1Y2*!3L%+R0^wme;0=Cfysdzeq?n_vRdPrMmm^t)Qcon)3 zjfgPyk&>bf(=y={pNPDLhNO{}3P)MWII+K?Pv#m7j6Y(UM0)*%~O z*@vi0DicOby0SpTx=B6M8WJ5b!}6o+*@7>@8|2H!VDTFF~I=3H?Py zw^tXXo6A@BY-%z2HEwIb^y9`s%{1|lby_TV^1Y!&f7e4k+^ilc* zS&_VotZ+)XESJSMzXZOfW$1oAL!b7vx<>g7pT;ZPY?1=I1C@Qxy;uAnd@scHVgvL9 zo1lkxv7mZ^%e&V53-#1yVX-(akRJFbCJXUuTg4#Rq`|&cP-{j9-lKQt!u>2(TrN)J zqlLl#1O5`oS}Ndk_(MX7Xj4ikHrXh56nYB#;Tpe4j3!&a&DR{d%_m}WsUdpm+rY6~ ztIy(AYO9EiS_(YvTwS}9z zKiz}~){5cz!&9b`bZ^Eh3r`chMQ$?>Xj~ z5SS7ej8^CqrO&-6JNE~ z@-Jx*e~({|vw|S+5VO<+a9$2qw^D1U{*0CB3Ws|P9Y+tv?{OIC`9JW+U&H)#nzmYd z0DfP8OcLDkN9D3QNBbXK5}h=MMziM_6Y^DB;aT9Ym!2W|l8r!1ENWh6KEnR1%h77U z_xOp}2i;k|&ZN&`ChHbZcc|&=3`M6_R=UH>+MJ!u-lzK07pQ@BG0+UwFf-^2Iv$KpTbv5Ga?fX0#pk3K%dNX)TP2Z{SUE< z_jK$FO_1@E0G)d_GPp;G2I5 zv$9=_)B^Yc%tQnE*dV=!|~B4e(5xYyZk^fK;z4IT)BH9BIWHLLM{cd_~nt{`Bw!7Z&FdN9~Qd{vQ zrYY<3-v%-(=$-0Lr4RTs0i2>2m6pmH_~R#2!>O(82xbu6DW)HjV(7rlWLBE)RY{2g6nUNi9>ms@k-+>?>w6wU|mGdXl?vT1|xRbTc$U zWwkR}eYn~^xHqlA$+}-l)>`96Hj_3pg8W&z03AnZOpOv8br+f~5~W^H~MC?jk;q_d6G%o2UP+>qEqlSFk2Vp&P%Ec0y^n zhAgT*QO!a!-_RE39-^ZhKyN2)uIi{GZ{G|7;i!z5Z%01T4_I@L^2Clzj_s!;he~nQEM9Tm*tZ1I#}LkyWTe zn5&hS4uaKFp!C(3*B3G!F#V?TXq$Xgv4XOa1n+LV`~-}dm1=k6Gm}i8WmCkWiW^nh zTy&b-;5{5B*P*UGOvF>g={E9er5YG9olM(}rL<-0n!r$AkEf|KoJwc7vidNPZOYO| zshLP-ly54p@PeaV~qodK-ycukZe`K3lzj8(<)OVCX^j2=EN4P<&V@?x-@F`gCNAz#GetY+?3PVICK(+=^CNZ*)5b3 zqe(Zh5ZUP)w0cA~{If5~zQkT=G(_q!Jp)s<)8r|#wf=wHV|p!W_Dtm|7&_IE*E$qg z2eQ;pey(*UB=nS4gY~hUtIa)?C&Rn8L~5lAcmkL1+mzS;vdcz3R zE6a%Wx-76}Ie%SW8#Pj?<@ncr9#gz^$P&N7Ok}?rS{e=%@a~krCx5^+#(c|k z-7*b)v1vjBVGgr|8H#sPMt-Mg%p&$4Y9+nrt7oyu%VrSnf(#*s>Aap_l$VOg z;7dXKK-!p^-YsKA?teFIs3f5)Ji=cz z@Q6DNUt?+8du9iH$KR8$DPEQ&?wEd({kiP~I2{c<_X zgzwTWaRwK{b)y*SrGK8!j{a~tdKlFJ3ZYMdA^yv_Ba8+|D~6g)YVsC&4W`e7)j8m= z@I(#WGq!--ON!vMNODzWC>S3Tz?$2QS?nCGwpLPXB(?*8?lzmxrbuCO19iM|P#>@F zL zry}Xgf%ZHt_mW;J|Br{KSpaZID+=Gmzib4L9rdR3ADUs)QJ+yI7mpt`$cD znUT*5tmZfKL*V=mC&m&R!4SHmd{t`TZt#M)@QcWWWLd1OMOtyxX~70@?n^iqi8{%L_xxGk@xteCNnVb0L!>6a=^AVZEAiy0e%HKUMosdBnLx&)+O zq=7~ChbSQbXv4{2Y-e^BeTcdXau@+B)laZw#-X2g0n>)Vas%Z)@r3AZFKTx}mr`CF zBTQEYYbUT{#1U5F6IGZ#gB;+6;##3A`HVQDb<>8DWy#6hX6_?y(9wY~|7#*y8>G9= z9>sY)SZ*Q5YYu2DdPpDt^9@2bQJR@buZFhx23WE8;7a*P%pm@#N0bWEI&lXW?B{gt zxyQ;IWtY%d(4ZM?0_N2f=v&4hIWkUaAvu&q%1P!Y)05rE>d>#56Hxp<%v18XgZk+# z%?%cM2&>?&yTm55Rlvr5BfXL@gXK2}J4hk0-jC_(aZ~ASv=doW0nE(((rGD`t7wcz zqDorefWNo@u8(GyF&Cs-NG#|nPs80MhbT?j@j5GNtx@rG*Ss_tbiN7JLbBF^5=!9c?GrdN1|s43qQ^^x?!6t+et0{pzK7 zx?gMa>1|X+x)u7;Swz0_LbW2JP=ep*FzSgQWdmMK9mQri#zjF7P}DuoH3~GM+F%kS zvQ}oBubuZgKbhBq|I-o#h6m8-g@IAHMtUPYMGt8Uh{Q`V2YQY=s*G|`jwN<#C*k{f z0F6Wkv7XqTdQGMvXFdxx-XJL5ydX~oGe4OA>Th+W_y~+7LSxip@ZH~3!l_$Sd-aF< zM(irpBDN5n*g7CtU1k5fU!q$S+K~;&4WNddL&q)?l*ZM>eN+lPwG)90{Cv5N zl8FBDHQbGxNKN29%@vz#g|wrbNq>v5kkjFAtF2s7B8X$!2<8c8rB6`JggR0`kQu9^ z8`lt76wz4gG1_OPEb&yWDVx>a!c=6J5Dp0euX?Ow&_#;M8MYU|LCK1p+GVz#<4*)wOo-RNRT{dw;yF<)@LcD-n$3!!Q zF=^O^PE$)LG1C}7U6sm%_Hiot2>wu)I$H}uu9A%~5g+KWR4>d;NN_L8`tEqcP)9a| zAJ0h#(=S2z>!H+B%Hw9e26UZj(BTe4onHz*-zVxDb*z#A&dWy3G2W;P&}}cE4^xMs ziLNefmW%N{g%U(PVmxN~8>vt-R(6U$=o~G|Ftx4}sk9@`YW?U3;0&I`H~*WU)xXMf ziBvRd7SmSeW%epb;%rRmI^p+wK_^mvwYySJY9pT@ms3vNd%UB0RBP$4G(+wwZ-d+S z3OLn$$Yyj+WhwjuBLqEm?CEe4t|ZS9yX7^~aG{*^27Rf++zxh{GEIIgIwe2IpdUc8 zs-oT`&@ePvEyA>RU-9CP(;bw{Mf;(E;9XW;%hjXF$i zQ`>4M*fZ$7jV1bl`hFDar#MKrMKJT(AdgihKtEFiI`3Wh9?vNY)T?4q`IlCUs1L^P zF7P;yft;Zu*l4$tBc3)MC`Qxmb0jwJJm>;v#854>lG_5(?_(I>c!t_}nM= z5I$nD+7Kk5gW3G;P1Csn3yMP?9lIqV`e!B__*x$Tvt}bE!yTlJ-%s;t6~%Q)&cU z91GQMWESOx|E;DvN;yj0B@YtYh&oD=bc*Oh=FrKym0Dr#t5Qm;393*L)Rk3{u+3>} zG)lZEHv(nQPe&oAYKqpFEJ`n+?ou6<9{APmmH!CA3Vnv$g)aY1VIR18MWg_6PwRjz z!#dE44MOHgJvxQlM|GuNfV0+`X-C&XKjEvYBc4!?DX(@PnvT};Eu7zv!Bh+d3+=32 z87#=Xio(35x3R;Sio`PQ2ADId@(BcvlM|@$M)qOa;LEp zHE+DHo>Ez1v8T5qn^0EbxYm@;Cv(ZdRFIOXw$^^3u2@FqQ%T@gHzO~B!**U>qqPw- zr0w4NzMq;PS21?gOPG57g0iGy;Do=INCkH2g{7QNa3X;Y8B-! z&XE}8DfeRHsc~!?^GvNshVf$H2Y&Y*`k6+8P0^hqVznOHdbt%SYaf(N#C&*DN`iWZ{SI)u!ET9|Aa*mlehdON+DItV`PU2>e(S=Gz)Wg{5GFX(r4AL=1Fh@L<_)snRT zl+f|=ODU9UNL8cX;?^+@u8IZ3CU7W8wTvc0`^4yeGbvJ%I16B(yjsl%4WV?XI>L$qMhJ zQrJCDD+kbr%V$(Pl}G8lS{9hY>$E@WM=go|PTxi^p$OB1ekmo$Jnt6*+67{VuAy!& zvw_|sJE2;7B#)p=(|yoWZiJrl5v_`P7Vo_oC}a^zx>8F0irQAeZF#ILX^})_%t5MX z%`{o4gh^2kVHV~j8`v7$H6=((fwFuda^6~EzB)uRX^U_dIza!A*`g&AqtVx?pe{jA zU!^C!lLI9qRf=t&5xcaujHybpx4}@g=##w!A7bG6%BqMi5g`#X6dPFxVDnYgtK`Ze2NV< z54>1kQBzOG3~L*)nn;I-WvNmUJ*6F59P&jL61$1EU`F;QE08%zRhOIM%gsAebD(|OzA-yOsD5ypBb+0(bf@P zh+@h+c_ZqZLgX@XH|_}$$T43Drs7$6&33~DaRdAK1gaZ7Nj;$K1n2NMD1Qf_AqLNq zza#Hc=8~T&20d63ukk*3@Nwu>&w|Ef8*;#UumjmRYAAJ9YmC`&Eod?iE2lM8m5IYR zQR-0?csHdKL7oH`>vZ%Lt`Ql;Nwxu4+%mHSm}Ee*P!QA7JJH3!a-CgcWW_7kseO$A}jlmWD%#P7@VYbs=?Ye5k*|J{! zqLnAUXfN?8e^HxgMVTA)XG|nL(j3{vFM=bes@M}`WsL!g02JI=*nMh)F?>dDtenA} zDVfsX(fdf%fd+Mh@&LEB({gu_771mkQcgF8>wp>1Dsc1OqmLX4^~D_GD8V9gIY4iw zZPZB0L=+}wfMt;Yddn`%BChHa^<$yET!}uPSKx$n%$LHLbu@=*dk8rGjfp&sCsvbN zaYxDr<8(9<_zc)%PGN>nli;zalXcaL|<5~jv4VHXaRX?j`m60${fb0wScw|EKx~2qIM)g z2w58fvio&pFoWqo zYEi8eYR`6>R}Dt(xq$Z3dvVtM(Z*@9xZB*uTM5&WZ4U|ciQ6zl>ZAZojyG#d$OViM7q9046%G!!5KMXxS_SCWue=<8Euj-Ge&kCnMkroL@XwsfJ1w_*bC?CerQg%s`u5N;JW?; z*0=^vSxZ9G=7NCS1N|xsvR2Zy9)t_e+#uq;c95t_{FO80{?fmaTiLIU27~ql=C1#u z<}0bLP%a3^_z6-?>40{WcuDpE#V(ne09Vy#WNYH7f~V)95U&MmX5D%yO8oj2=wpqB zA7Q`PTU?-?QO<$BUj+KQ!{jXLtvVQU=w!8}VulZ)rj(|Ht25~y%yIfIb4GARc!zjieLLytBm<|DD7ZM5PyhIicL+zJz@&D zNB1?i`UAvm3)brbtrXD_&o`q^Q71x=(3kp`>`mW97SSKf42IGwK1YP?T z>P%`6>0<^n6G4<+DJ$}1Bvl1KUAKUfWz>~GHk+9(jMJnh9CQsq46jN}CjWx(+6GVT zQ*gbbp~@-+?fHJ_&S$7Am2T*S{2-r`Az+X`AkUF!(9hY2iIfp@saDiw@&tHozv=z- zBD~gU+&k~d!Ad`eh zce!HfL7Yy%KrmaV#!>^Rvs`noB6Ev=tc=6^=p%XgE^w9+!d=Yw-f|`NU!k%dqxMoQ za&395SV&^kF{&AR(@wYz?Cd-y4nCF=QZ>07xLyB3H?jko_76DUt1=AkRs-2&slD{l zzb3Ftj>TQH47m~MS8M2@)On;TSm14skSi#>+(Lb!jX_8CGI3NZ2F1i=H5#mJul9;AYqmc7goq9m7rP|Tw=t}qwdTI5rvLt09^Z}LSFlB^xjcCGDVEUoTPbAMk z2~?lBEccL~io>O7^he5P09X8Rpe^CIYX-B9`}zofa+2B-(`(k66s3$x`Zjl88)Q9dCP zcP^jEe~~)Lp-?{EAUYGP6uVMd_DH0hEiFdP>4tZ!82)_{F^qgnltQPxK53vYT9iS!hCU%eeWEwRH6G=UC6|Pd9kOw*fnd!ffvH2899<%9w461&r z1u{*tpgW#`D(DsFh3%+0^nCcjPN>o9My0hp56}Nz?FL~|munZ%uupg;s0q>kDI^sa>mbv5PT*T$Bb-qGLkF{q0v{vht<}MP?~A;r1<+({f+zA4 zk{TLmd7#f9QA4HgVjTR%BLYhT<8XI9C5I~a@MKg$?#*^J2Y%mqa!F_rmx^|&F?170 zac}L1Y}1}(d14-D)urJpIw?Q-FYQ{3!FyRliR4wJCRC+AQ-AU9@^B9+hP&t%+Cy(L z1VBG1W!$1Gr|Sln++1{LUgFcK!!%?kvXQzLx_Y{)ItLV?3)v8ycTM5xiN`&0oNl;o z1H3w`p&L!aOl=!|fj)xgbO`F2493amkmeJ^PJ?SHgze5GFmI6Jph6>5hdxX92DkK~ z;hbR;x04HlhT;MAQJMHWGte77#m+#7`!uT%XNbml-t|gPB@=|OkBd230ZbYAi zzt2nDM8~Iv)*m{WdCx3ypV&Sm1+YG z;0inq9guU92#=&w8itB_ku(gxtB>#`+=YAehR{Yh4UKh7plBc#^R+4P3+)%m2{V*o z%1v!PG@B)fs;H^wfVq7RN{segJ#K?8ge!;awf5Wr?hf+jmm}Ap64=TisB040ojNzu z0pv-{I$}OE1 z6QnOfZ&3r|=nL|Q_JR0R9**uC$iOY_@9N*+U+CY2ES(mVomuXl4tM9r{Vr;MZ5-|xf-cMqRbJ@h95A$ z(If8&Ufp<*#`}WieunL*+lB1#!Q4ykoc^W0kKsSs%q9IAeK=T>2aTOf@n)B~IFi9y zAg%E?2p4Zm2tP7kF@G@kw6sC4-c)#8_nLMgp-nJ{TB5Cw%|k7@NJ374PI`f9gK4VS zYwicP&T;bzbDH^vxsqjo<&veSwV|b^wXV@>>V-U`PhjVl)jbEDqZ?ZR2`>|&=08ur zp_9Ryn?@cYXA%d&(_VxpC<7@gzmeoo9D8G)))Q6F9C#XCSk>>~>v|8)#cP~M!$E{U z4pzohXnz#(q_|CPB~Mjrs$JALwF~y}0ZMHsj5eZjj783;Nhzd6E3M?}vQK;qUGcpC z&%H?kQ@Rproc8b>-vCA9U-SSoF>8AS=h!Cbm>Wtrk%6;Y`VHOiS%p*`aQ^QQt_yqk zNBlHltY8zkp5TPMGhPtqn+F9)b)m{pAQ6AMr3LHOS(iX9wP(hdky;!dL&rYv?N)!T1r~ifi6+kGQzURe9=4z>=TEz zvvoAS*PTf5d|>zskNOqt9=svg&=xG8rd(M%n!cqpQTqzJgk1kQ{~f;>sa!|+r%ofoA? z-#Y&Zn1LVihUdM@Z<{~3;Dh^=zrfdk-xP>|8>2!X(QiX0;TL2}&h_>5?e-q^-uLeD zR`kohW&s-f&tk$>=sns&rJjOxsdCuw-ys2}xYktLPaGjS;5F|9cfS|*j%A<+gy;+F zWnCHW9=J3feIr9(gUJ|+Ip%FkS!-9@YY?ax+G{$xJB~RnIyC!8#~6pt5pc{2igg@y zwdGt zQpq&fw9jzCa3A|{EnQJv5Lmk;R_-F?05oH_vWt+5(2*WVHzk|Fkt!1X;8z|(PR7rC zG6nPd^5{=ABvX-l5QFFCJo?PrGzr;q&!r&fvNq%UZ!DGsz2c>;8g13m5L{>6Nu?UK=NJ&VesEdh+B<#gKBuX@k1CSli8}qIH!cd_GIIK~~ zMl1!TzZIIX0D5Lm;O}~cJI4Ze)80vErRrEW2F&$efeA23Y>89(E9m-zq4dAQ4~Mom z3yhct@Tk0jezhFf*T2MXs6WH-J(Ypt;W1og{p7{cB4~+UNQw!11b(B{5mZWUDWAnd7Lnj(pIQb zzT=&g6Gq|Z82tIu_$B-rVW*%Iox%p3H$9=(cn0@r1+kg+OQ`@#}#K|PXtM8ZZ$}Z)-%~fH z-b(3^{7=%3gxL7`aj~(U*uALZLV@{p>DR>Hrr&Mi_QkeJ+?3EKc~w&P)I%w0o;sdy zo}r#xo@c2YQ`1vErOr!Tm^L(Rs<(=Fp)bF0CT!h50|6AHU-=6JQvB=CRVjiZ$_V&< zs}&F}ns{M5Ep!ox44Y%!R~kN z^6u^K1MZw*L&H9Xl}8)<-!M7sNBHoFERo|P7exwD#;Cbbvm!&03nMg<)50SoW`$J` zZ}0l(`fab`n2ncZQ`-_-PW!*`Ky8kdcDp0Zw%GpF+Q@c@8*P=br%{1Fvj7M8MaIQs zNPCUNaZ>pM4TODg>FVH>mz@siQgC58m=C;VkCaDkAO^3cugX4U3b#ZyIR?J)e0;qA zk$Mt)E8$mCTPjOV_Y3saJ<%#HA!E^s{X*F}8x>$Wj1K+?h2fB~3m!~=s$m^Wm>_$# zi+GJbN(0d>cHkVgho!O&AHFG}k)a{X@?D{4+#lD2tx>#CU;%W&>njr8OD$%#Metdh z2`d0bXD~B$@?F@PpV5R`5LgXk0KP5keK#Lg{M}4A`>iDN-4t91ZgEcNGuYvHIRD$> zf94H+hdc8$bQKKDzu;<*qHVJR?dgiVBO|%|A^Ong!TDap{iv!MP(I)RG)m|tWOxeo zK>=uv=D6m!;D)*KT&<2{WlcFk-UMoCCGXQ0ii0P*5jB{*cnrp%$`ixSS%Yf+1#uWZ zs~h#jetL#S(0Ry#AJZ=8z&89;cEUwkt@}ft0MmDVSa|r!h>el=A{#^vj@%Qu1zprH zZhP2EqUn_I&*6VWtcaK$@hxIv_?GYn?kVm&PP=P{$c zvFja?j)RT|_>mT}cSQ5yjkdb(BFv0;^m4o6-(3=Y+-bhGzTUopKBS$}A9)sgqEa>| zPfgY)-%r_<@;&ugYBOBR&*B-9H|0(8{iLBucM@yCIct?*PuLOvG;T>;_ut~L-#@4R zocz=9^Y^bszjDUki~EwaDQR$OWa^^S7b)>%b~RIPr_@Njl+qusr#?7C?eLB8-9zhP z16q%+;M2fDVrkA$T5ulhs0L{LSCr~VE$Dk4#Cz>Ln#(2eb68_tgZ4{SyThK{-k1EU zK6=%=Z5M3w94{Re+;iN;!yAUL3;zZ4WqbH+?ju83qOiutmB57-SYGpphB`SZ|WQ^1WhM9J(zJU-y#5_RzlwEl9->6}I`C-DsXZi`r3`U4NP2IOYfK$5Ox zQjlNHC&h#AssswThM1iSa5+4e&cyV!MDvRLxw}-3SMx#~i4$MHVE3RL&8&EFJPO8i|y$<)aG7n9{dA`L~o!b95YEwpu;*GKw?Z=wTwE532=tf*>YxM)zQ?d3+G}k@#X_nOjWR%O_dJ#JU&53 zsuZW|J&2&e^o|CibCm#cY!&gKlh_RXkN3Rhlj2+|+i&6yu+MGfDO99OWgWTkLTavU z^wD3SIbhW*+Jg2=_5tB_BDO@ojlLZHEBZi0Fk+Bvor~7DYrw{$!u@ z2-^`h$vMHf$$rP4Y%9-6T5KO+KWEq58=&!W#5UeG**4oY73Hp2+eGUetKMWa9fZfD zm&{V8K%u}o_{*=;<@BZA^Ej?t^tMSakzNQFub0Uyk`E{SiSqNYq}$2Yk_)6};=_`f zJ>@}i>Eta*d6QNrR!BUR@K1s(;cMKsxY*y@e?R}V{nyi9D}U{ZEgM@Y;dFeKluyYc z(#qr4`y_2zS~1)vvU?tS)_OLeSJ)Y5dm5S@sW{K>1B3oHv^jK>_|q4D{BPz{V|X?x zF#UeRZyAZdNqti$Qylv|9{ueVjx#ugn;qrsZTR@xKFx8&k=@nQ_0=7Q5BQU?j%fFF z3tPbN%fnWOrG%9aUmJcrJR)Lb#D$1Gk)I=vM%{~=6umY&Ci+{nGrB=^`N%bqfv|Sr z72I>(A03&U&xlAGdr|v+`!9Pr#}vmEeqUjIW8G&?Fh9q8@}&MGnmA8%UGyz+tlnu* zK}9`AH>w+byOLm#&MN1XQh1477RSJlxQLqW9oS_B*D(s`s&Ri4Jg*<$Iaa5eT zhU8#+@H*N}>+q)=LylJ;$E+!2L`f*m?59@R%)VJq^jx1gplg-W6cP>~8_ z5RCm5+&KsEr`*i>J`w6j&X<|*e~UY*RnQom9LO1n47~8)4r~o&a)N33T#`$_J%hQj~NFlnfIoN#f?dheP6@nlrGw zW(%vR5GUjP7)!PI6!p9wxQDHyXB?(YhnZF!l*=uqX88p@xP_YZWe#)i&1N<~SDGjl z!_jevJRHUM-_i!2^)#u5^qm>e4 zU+=}Yt#|s1^euQ>)#hv!OCFirI(2wz_q4&N5k#ifPy09RMM_*s41O^^lg1{khsT+m z_$+Zx{QdZpSXbP@*xj+4V{gRXic5|AmiRDn6xrk5v@Gcj(;B7CBnOO7&FN{D)*>y^ zAL~m-o9hh>-PhddFN3#X)-FS<>tXOC9GiROG(V`1Bk<0gB=i?9z{~kYhw5+elWXuj z$!|}ywX+qq?WJEZ&R*Ew)oF4bb5(aea(8!64QmiKI;;xy(Ny;r*H+gb?s(VYus_0@ zM|=*qMa4v_QLm#M(a)nsM~6pGjuxV?MpcP=7cn*Bru&ThpmVkJx#I>(Zp9sW$^6Em z_0iiBZHY1WG)I|#;jE`e4bN!a!rZ#8G0xCcUs<1k2mM;+e~We1b?-oLKNeb!o=rfBWQQr6nOS3-v@ru-&8Qvbg(*;o>_Q(C7UwM$P zuMr%DGDwqPz2HCmTz{}8Rog*0(j&!{C>EYV-S=y#4LIHM=z`29YOw6fjfH|efgu{68qy@X+syOvTKN|x;yCVg050$XA5VTBcEfg z{j+_cBiT{gwcb^QdVHd5yX%zwt^G8L$~wzH5XW6DR%-`q0KIX+mfNOM!xyDT(Zn*{ zvf6UnQUk3(0fzlN;iAx<6<7r);k>s#J&8BI`ToejUX-sw-Wk43X`9lPq{OFuOYV{4 z%*gCKS<({Is-$O6ubBSDBcySlQZ6RXOAaLcN-CLDG^rXIAvfZ`#+Q#D6hAP2cl_l9 zA@RTD2g!px_dTQ1x24}n&khSaghJ);^a}XQKlR@7CIqBF8|s1~!Gr2Gy()jaZsO}Z1h#_-tg;UYQNI>cI^_jba%0~f8|mOZFQ{j$%qe{%Lj zv#p7%tosAMKDw^DI=H5|0?u;ov#y75%hyL_ig*^;CbCoX$*2R-nWHt)?V?sjnWD-@ zEr{$A`86UXd}#RXu&QB`+=4s1Ym>8|^9wHWs~vaIdi&EBW1WD*@_pQxZyW0xA9Kdm zbLQ$>)|)Gsm*Jz-OMjW(L=j;$yWolP1h23L%*SgfaddrqNjC8o-L=)Bbz+oQfoMJz z9gKQX9!W1Hh&7}fQc3vo5va-zld4N~@f0h}%qbDp>yE&Mz;tpmAN9_UKp>C>+<9s4 zm7VTy9NadqrwptIuRTc z@`uLaoc)M1Vin7yJ^hm#t`~Ycn_>S}7N3iK&^!$1J9dUWeJ?ahJS%pk3e?E~zV0~8 z=x4;@ZLHnykQ7=B2Bs&um!QO=kLzsRGyu}sYC!I$2xc~6a+fOG94wVk?L zTbbEXaebKKfc^*yd$r*F*g>J(l`qOOl*x4P+v4ZAPnGey-7BGH8+y9*SFmD$h&oo`-Dg8M$ixX0=(XqT_tjqP0}AjI%7a zRIxO)j5dulEu!Ds4GhXqZr{A2?kE(^VXyxXv(WFcvjUp~-vgt)5502QcuvcDZ+ZV1 z|NekAXvfRECz^G&y+ghE(z~V?NSmB?+mj2`U{_jO&tIN$sd-atrBp(@AU36u=eDPm z_mj61YJ9WNu~U6c{}6aTT|h!t_fPe=B<9PZiNwGb(oS)lIEPN^R8)}Klc!_}<)xne zEH-A|ahCp4b7t*hH4lZ_;BS}dyXnuO@l+kp_-4iqDDmbrx=h22_03aEM(bG1J=;h! z^8yr(NfIv(EJo` z4X0vsI6gAzoQG;;N4XkjQU?~f3Rv(ne!u^Qudjcbuem>)e}(_KKMn_gc7e5MAEx+K ze-Zy~|7G70e>eX(ejNJ+xy8YLRt*j3 z-V>yJXz?rx%@qIQK0JY{RejETC#8-uj+><$xosc5erK>~=r-$9nI7Xb^wz&ivC?;V zU~8l>d4_0~T8Mv%GtftfrB8O44nqWJKv9{m{$K)Ln~wWcbv9hm?D81m=o)1gXU?xi z5KnK@+joF{GQc?+sy0Ty!vQ-aAp^Clt)Uq~$Ky}UNNqrK6)u@x_fUIR`-(r6Wtv(6 zhGc8)a!q@U2i{&YO;)gK-T8N~)&cKo2(R6bLuP$6!`{$G%B2)mhN0$V2D`F~DDVeL zNt@Baijq!?=Xmz}=$i;q0g&viz-iwhuYM8Ih-X5DB=D>B)#ho|!&leo4;bzm-Wo(E z&9e;+44IgmR5#Q&PBCVozp>kFuvCL*bj`HJbk;c4Skq)SWn#`!*}TD=$-K=RKwoAj z9(mhL?M+FhW$4H(F@G{!Eji6|%$toGQw3c^-F5P}2j~PmR>w1?t|A=8ZT)~!iy6jm zc@0`4kC{2VGh$PSU31Eun9HSCG_`G{mH&U{@31?zJA_0 z-hAHY=^wp2ynf$p-%Vzy1L?n<^riWZ`F{Iu`ZoG1qMc0r#;v9?rdH+%b6?8~^Db*y>sVWP+hDuFKAtM@onxXy zbR2Uub$)c@L;L8LW20l8qm82xdSSgBnH_Z;0*cyG?I!zeIwq>MJATp?;Ak(P%Q*#2 z-b(n28LaOuuhHIepf)!Kje=a@Jt`Ti8)f*T+w?2+WpwRy5ybA^ngL`=2~5;Sf|swt z)TaWy>RQar<6xgmLdCI}`W=kNQROGdlPyX?rHe9*TJJbGz-7{V+$g`JPrY7Ri}vSv zy7iZW(d45B8X^tpo)ir|pao`0iSBnF${lxEw?I?hCe{ zTI@*HIh9-WL$FB5M?dQ-r}ita=5$b{zKkWK>B8Nvf;;s{(^1!MOrNK{l;NPBPF;SV z(@_=PP&s(rZ^0jZ!M%Ml_^q6%Fb;!vUKG5|H54U3sV~&Oc}7>kzbW|8&I7BrU2|Gf zO*4=gNN-%6w}VBy$lqRM{@D^9ZHl%iczBN{KmXrL`$BsJ*78q&dC62ifhW-DJk08S zaNxdc=it&g0mXlvc0K$Mo5lhgC7yx&O;4)k__i$>gOHh(^_9KQ)InR5)}n zSUI#LSRqs=m?M-I2e03OUcu#olQ`E^2psok362Up;}m+)el8R0AB^Mo58MU0LmObX z-v~}Xr8z=e917B1keD8wx?$ys#d;{&8W7rjt+(G~5{a&C96Vztef{rme&Z9@W-` z5mpoZ--d>3`XUA!IH2tG_n#Pl7z>(mnY!VN^22o6wAkF-To`>;(Q@to`l=7mHqB6y zFK2mg?qs=d9%Q*=-fc1ezY4fXZgR?!AI0y|7M~@TWr<~vxw7R?v%~U-ImKMcJjQ(4 zB%}Sc+Vt7j&2-I}2Vb4`aA%_pK~zxd=$oS5)DT_pGWuUA<6YIQ#NWFC>;FreTUP{E zq6wNsn%ppC%$h2iqu>lzgF8tW+tn z4VsI0$yF;81OLIPQ}*u(+(ezx>R;+V<}>-<`;6SpIs6TL2Yna3<$SHZC%nG&O5VhD zGwO=Jy?1;oaRdA2s|$9*%`N>2{rDevZ&n3c(8m9X-#?-$zsWZmKcVNop0Mve_+tFw z{uqBI|22PWe|X>)YI2JI1AM9t)VF^6piP)Imk!+t9>(Kg2vey8%setC7|-ebM2YF4 zjwsrlMzyF8JHSS*cTqk=2jvUQ-D0eEm>LhRU0}|#9IV=G?zRz{6;zZvP+hQt3>4w~ zkJpWZWALZ`v_4+n-_Q|lD3h@V3TT4qp0S;&fN7eklxaA(*d4UcM&XKZ33r4G=5Wr` zQIo@b%%qwoz@b@#x^)~Ll7~#W%yrlkc};Uog;2bWLo0edH$u80ld*|ms9~}GlD@Nk zy1uc#y?y~0x=Y#zp!5%F%V;}m_iH|CR^maw15KfC_`=77RZ%r@nl?m=jbLCZq4jeW zclKS()T_d+6?BVWgq5Sa5Dqf6Aiu&u)la7zbwhYYU+N9&Vjg0epy?o#LJwrQ@P>>& z7pn2a)jGlw;@dj4x-f*i-JsrwF>nJ7x03R7V&xXeBKHR&M#05_(sZqN2K$la?hg(O z{SIEChxeQLZVKJJGUB{YJJbj_v5J5Ee_9?dK9UBC1Ery2e`!9>A7#KlMKH(70^08d z9Icbmc)8&JtDEkySFLKS@(;=pmr@Ff?&+5(6xTN2Hr;{On%(lRxwYjgo-dhE#Sgbs zv>X7hvfg~qQo{1hG6WRDG|O>IAIloFFb$Ts=Al%grO{C?Y>qQYrpKmgrlO{%#+t?( zXtG`~95M7Xlz~0ENk1Ad^(J~Fr}wyS2%0BPwWG=8(pcmFaA7aRsuxDhq5$W2A85M> zChOV=zCB0`vWq z{Uh7P^`jL6H4N8IG!K}<7?MyQ)e2<;zKpqZEppQG2 zx%Ply#o#nLv1;%ND*Fk+Nw`j%smE{OW-&m@CDo@2FC={u&q@mF`D0+!P>bv!Kb2?47lk>X-9yn?g#f~3|xSCaE5+- z<^L0Uzzq2ZFQ?kDDEq*4wR2mRQpc$^QN?S3((_Fa)u+@MsP{eLKCb}3^_TjAy5W)P z6C|NEaUfos6PE3HZH6|9g~%|FpSKfC^=9-sdhoNh!Z!RRJQbWMFjmH`vY225 z-AZj6-F0mh@ToO)kF_4%4BazwqKf$G&M~~ye}^ku$+*$b$avZ?#Q2l5FQJLN-|*hh z$}obM5N23_PL!;-8<*nD7=?oJAOFvy3Y%6_^?U>AR}{6e?Rrr^OTVAlNm2a|5XIef z-&vX7tkhm@Htljcy|>sWSK(~R+&C{Z`^cI~fB^2#>n?zTlf(_QLGx4i!8*O-WRE3s zox$N|0_e{;^j5nmQHlc|LJRWm9?C1Z1$cX%@M-ta5&8+n!_RuoH% zF=WKsn9`pLrPKf24VI>jIE8tN$V9Us{pGljPQ1pNJq#@bk>o?EqP#Q5x!)0I#el5Mfw`v!)@grXW@bRL;20#Ovsp} z2r244I=d#Ep;~BN+H>&Fjp{e$0MYO@G5a}{a2NOpZ{Qri)IQQ0blG)Xh?1W{>Sg2B zj??AS4+fjQOcSQ{X?DVAiep-w1~bL2i$=@F3}>bZH{lzhKitrBC~VXKo4i@j!dp4T znY#`a)(H2b2j?;;+?ZSPc)7cp14UAwYFEFWrh_&Mh~oNqK+1RtUZ8&< zn|fQEmN(|r=6>da=6zHpoh?}`v6kO-%&S?=){55p;CQBj=ILd9XK~m%<1O{UD%uLz zKH758=}NNJvPIe+**vy0Hq}-YJZ;@l$T7PiS*r zmBukQI3&HH3eH7F5@&nHvR!B+erVT%g~^k?(%%|Eo%}M?p1yDb zo!&8G5`Cv2U8*sqw7vB(<74L)n0%-Z`}yxN8xAq{o_roWAE8zv|(RDJT@y*VV5!^fo-w z)z;OehZ(JTBh;avyb?9cc(s?18KhuQI$8bUU0ve5OK>>)C>xb}aEQ!s?|TWW)X7S9 z<)C^@?F7za1k8i|!gi3}6O_m3OQuOZ<+<{AxjkBR88f0f#!ZGO%K-B~^g~)%pIPmw zgIzaIH!nvIuc76pxr@1jd4Y)vm^^*0`H1S9S7|doesxUXI7`*X>e_H<#o4lzjb#EyBhW_ ztXcSuumF?hn6M9FtHN@Hw+fTp4_xnD*PPFtU`y>e95-zd_U6`{)=|{8i9G+)tV2`F z2Xl3*;TNVL-p30K4ba3}&Aquy(-rNzBbt2L5=_*yszzlwJ*HwzF_S`1!D056>^T0d zl`6>=`53*w@uBQuN%9hlbU@sM#?UopSOY;O|L|)9k^VH)ayIzmz}}ug54~t;W>A86 z5yU@jhge)HjmGRAW+{chYn}?u54{ZNLp@PgchhMo3Laq?DAD0KQ1uAC3w8qUIg+m^ z4lbr2I=h*`Uz?@Oavo0FXU^V9>8^Z^tThz6hF8Y|kTK;rk0T@>TGg-EpXa34;6l4n zLsdgZYZw(w7P+ltl8s_DsZZ#-cq-@+eSrp{Q^9?q3!#SMV(}L4Zk4HED{uq<2dZr~ zYdeJw^K-u2f2iHRkgWTm z-GxuDR=EW^PzoLt ztE~mBw;ekjwei`of#iurpS_G_vUxQK?#}j2whxZwj>3*V9X8ubTbMP6t(mpBZJ6z- z?S-SUzipRiJ zh3Kw-kdN}zJ_bGp&Hj`A62A4mN8WgEoOhSEQ+mVnkEumH^OB3DSd;Q6FGVcJV02g#O%aavwwkWd4zFvg^S4WOPGsgR+S8bNDYk833iCJ{ zIhwiaxz>bjaxV%$6SgnnWB9_zR}nR%c12!@DiQSxkBRQ#7xBC;;qK*9oL!tM&R9bo zzwGPmMmx{ddeRzi$zqK~D<{tU!(7+$#GJ{}5=Ru(G>*P;BcsLG1IET1-89_;v@9g~ zsXT;8SD0t~H0Olez6k#H?K5d*TazY4-M>`InaPQFgvlFsB}C*0$o%w%0)#fO2lYs5UeF0o@D zeaPY{VsAm?r-^)k$;NGQ1o?61;Je^0|Bk>he`hkC+wfW{fl_)*_j!-s893#y8<-T> z8{8l2DZZ2riOuC}Aifuhx23jXq*NA6iUKa_F>}_W;5(eM7P7+m(35$pOp*F4$K*ol zE_E*%W+A#T#dR&U`sn z?tF*;a7Nk$o??J>TDY&?FdB@*z{3o1A98PXFLlQ`RytPOUR!J0N?2Rl?KYk3r9_KZo z%VE<&T~+NVd7QW)G$#-dnihBy+8qp+s))no-qPPva;S5#um8HQnRh;Zk^R$urYW9J zo+X}Do?yz;l;=qk@%7D}_$lFc{M3Z8@m~@i#VZLV6V4`dPH3AjJz--)nZ$RA>ypkV z_enXK+R!r**S*!Lzfvv9?~__3`V;<4%#`R%E}UH0lP|52w}VgiUkhZ#N23FH_01s2 zo`yz+hNGq9mkTSIiIMr0H06l0gSF`_T*L$7KeRrt8zYSkO>N*BCmHKoTANSULe^P0 zyhvcfhl5Fc?e@7Pr{J20V*3*3VMjT4A=kOERQKhG5)o&jsznWs)<&z*3#0EvSBY*L zeL8AH^bYV0%Of8~+zKxr-Vi1Ies0mV!&Sgl-j&Ze!1>so&(X&|hUxZpTYu|nODjtW zbCflnS?XbP46LzH#%jh>`V;!v^luA-xv(;a6X;`KCU5M@r1A%Kw?|aPV`QKcr95(e zNs#l3zr|-Dw{PH;=qG=y4G!olk*Fr_hpYVO0~h^)K$F0sV3y#aP)YGPXzLQnf09wD zEY|}iQ&?#r&yW+O#&SCU_7B--n@|iLcAq#b^pL8c9i5{Ba&c*)Ttb>BmqUxEAGgjH z>8M;^Y9-g<-(Q8kfvepGW+5v$^Ob1FCombUhi}jKP#ds&yMo==2W7Zdt)VeEV|Ah? zeH!=~&`^(*3*^K5WH<5Q0W%_9Ab}}e6@O;`EZD0{=m2vWS^_{X0&72?bLlfzyPM||` zLc0|8iI?|X#&@ckug>AZQx}$jiZPN}$ zf4?;PKc9qjYMkHX$fs3{=9JKkZs{}X-QH?8DT7 z)v@Kb4Gl|kAC3rxH+FAv^|5cajknIW?6$<3TidrVqZgeD9*A*{u8xk5XZG24pKSp? zLqEbZg%^*wAKnEo=gdyb3oJdYC9QhcJZG(Asfx~+2buTl$Lb#`HI!kj`)GVGlY+HF zb)?%;6~(DOl^4Q?iVg1f_VndUyPNh0zReF)r+AvCR`RsPlWteyj-=rUEfROf??~8@ zFflPa>2XrMq>{;x67ME$O}L%dA$~(b{e+c?O_J6m*GyRgD*do0F6B__^Q1+|FB1wR zKE*%Cl3YG{iKk@RGv8JJqu@lapdFdgoM#TF1b>6EYy_UBf?SNr_ZHZ@HDv=@KC9?I zRYzlE2^#&6j1`QlO_H$??8oiq&!*Glj5(b59i80e-1)+uyU*bbwAt~uqp2Mz`l zJ`M!;1bf3kYK=cnSI|7gx#x0%HJS)McrJ6YddwqFk@M97+x-u{l!5fy+T*9#jN7ys z`==otxe3&08>l=JP&2r~YZwitCMXuA=DUWM!!!`A)yOoma`zfI9j8M1`13zt1zUh; zDNVok2cBJ%LkpO2yF%0OU&Iui{_c~EsSdwVVd{MW8({;5m=mm?J(%G)SA^M1MBt0R zJv`84rgOXTGwn?#eFlYTL+Cm4*KzEs7*Lt3g4>zwHKiI(=PozN@lqocjZT9Fx6s)O zq7gBZ7}koK@ewW-58#a_qV1Mb>(ClBlCX}Ms!`)ZdnguDd#8Zy z8%Fn5LpP+DrZKpZw`yl*tuIh|+y|!mBENrTrqi7sQ!es>9OR)fYGL7#@~664DUH{_ zV3C#|v85pd^JIMrXl zj%+}m{E2v690i&_FFme3N>8N}n%t#enJuKJVn+}0ar#i)y=SNA$7B4@R9$LJa;4-e zNfna*PBP%i+9GLXa=GNWDVbC9!3|lNtR^i<@g?U-otUyVRY>jTIi1?wb3b)b%GKm| z_zi7L@+7`a&YXNVH9EDScR_l~z#0F>Ao41q3b=Z7pdV-m{Uh!Q)nI^vUThLti3{QI^n4$}&!KP=HMV4W<61JV-(pNdUIIfVxf3e@T544T5 zb+%2j-2wx-(Rta~#eLd+DLgLxVT3+1Q)KJN(vjUF9g%-UUXCanX^!X>5gXPaysmqv zyD85w6Ud^*uH8hsPA&=V=S=4_=Um5S$4?MlK3f_4ZtE-SX-mANu6dk!FxUwP9r=>@ zJT`}W=whaI1jgzM^i-D7d#f(D{6F&`2&a2Bv;0|b@SckAc*1d^n0HCj@c9`^lNxO=WtJ zigO-y>IHf{g+uO8j!=*;j2Px)v zqRD4+;GpwYumi880x{Li?S2>z++8}cImF~pW4eCT&?EX29#0cuZ58~MH}aaEgV*m0 zcl?-qL#{x-<{bPf8GY-L;D?&vbhZX=eJ%Q;4VYf&wfRt<|D_qu#9{+l`6tj#Xsqvv zgY;PaJM?erYCAFI*r+|n1kIzXs=v-mq7u5+J#|ZT8Crc$m@=$E^IO3Yr6E(Q2C$4Z zAOm*ucSWcR6JfeNRKnG1a0j}RZ+wvpC{^j%ztm@?4^hJ$w93}*_R02GYl1b}Qr@!7 zw8zv4EMPuM16+X&EYN8!Z&?dZg9+1zo~e$Rfx_RiMZI?LM4 z`j7P>le${wvgYC70KVd%7TIsHAg8NlPDS{IBbLM526eGGY*U48x_&xa1E}j9` zy&IFQO?bebN*|d1AZ=e-oM)>iHFZg9DQ?YwJ$CTvGgI58`ch(3H>9@5&*-IRwx?~H zA#Gh+)3g_93)B8d%bM1}qviANrd}n_mDAp*E%pxdM*4sGvT*iq;Kw@y+;k$Y)ce_0 zS?SVuV?W+wx;hYDt$eVNTH%7Rk}l+OV&ylDmI|Vot`oBcjj@SwHthM;=C|hZmI;;t zOdc;p@-*y9c+-G>enVC%NXKGw0WWnDt0E#Fg)C5dcKRn~Y$s|4omj_cg$(e%R z@y*G=`knWC{pbAU(HQ(E;PJ1dQ~d|=?mND%+*bbLtmdph0Va^csmPB7OgMhW1+E6d z_#AKWYOopn;pd#XL7|4ss5g7|P3N;f8gHT=0>q+Nt`-E1A!@vmtBMpRSG9PSo zZaG=ngSLAi&?WuQy{ykX;|(?OZ9FP#t7i2&J=OX!g{Lw<$>7viL&ttH&Xm2Rk&=Vy zbRp&i!@vk`Q)2L__^6x#@pgwZxQ1(UFS=w`;C&(n)FmimW z>waq;%pKn9)}hUO4)%^tjZ}loPRg)ax%jy`;QnP*a`KL9D3j?Gmqs@rjx*XAeK-M~ zfa-A7>wuOxr1R_Q7*`pyo4T3?m`|8DS_EruFlhI|J6zV+H}q$o?bnwxG-sbQF-!7ZGk48rtxWDXp$CO2zc%QEi_*$RW?R}D-g*r1& zdV1Q5^m^&b(#`2D;452vZ@iiP=X`Sl)zM=V0+|BOm}$56ANO_ib@e6EY4v!Y;?4Zn z*U$IVKgZuYP&6=|PJT5>B#zD@e@#a>Bpv0v3}=^GWdHk^+YX}VwHLPgIItzLY8CX> zG80K}=}zfB8L}C}@xsVVY%7Y#*I4xCkJ&2Ny>J2!ThCiZ;@Mute!#xnp?9`)E^>}{ zzQRd!zVoSLh_kcvhI6uOfom4$_pYm@Tj%QRx&;b;yyKOln0=>xD0xSa?-QU`7QlmT zu_e+v2`}qBmUfm;=Bkz%^j5Eft-NUXVweraq^ItsE-(9ItY)0%jOLA|C)3hdcz9;U z7waTCgxi>YjaD~vv)ZXRI|z|#3H2lzWToj<9wwJ5NSAvQIq3&DSlO5|^@m&kJah|; z`C-_I8qkrygCm*ew+|K#I=~2M0#9Htc>E>EAuIS5-*4|~?@RAY?_gr;0Et<> zg13bKl5Z*+8@q@zDJXB02t)_|g-^0k$*Z&xV?(8aU4lhr*d<^jdMnxSp|Yws*gtF0 z&ZxqBSR>pO{^iEI&Uw8Z5P}xrp4yT5!JoW&t;5GtDd< z)#~B*br@a8k}$eY$vu@BAdlK=`f0u~F$g!t8-{{(ZVvJ$Gk(|KKq5qtTWNI`-FaP3 zeG$H{6^Qy3XmQ1(Ir2B^h#z#F^}7uF4X3r&wWGicEYLjA^fYWYi1Yjh}P{%cz~;u>PaW1uwi-o+@|4 z?c@a-?4p`UC{AoHgi2y|_Cg+f8-{>NKg%<~a#C7}Hri?S{SD!Xuua{h3SgfyaAEJj zk5q?M6ci$G9*Wh>CEo7Qn&@^d)c%R<*LmhDxrv7(LEbe-xAX#jjE8g$^nHx`VEOAz zeVOjILd`lClgBb3iz?`&4UdJUnvP&VpVD>OuU~HXm;b-0sjhvgUueiY2V1E38G2xsmyZv5{$@?!7Kq`wYdT%Al6+fou7#JB{uyZcw^-&UP8?JXYo=dQ129 z)4@5Z=pJ`g52*R!C*CAFRbo!R15C|owIq`PgU|r)y>w=kQSckr(o1zHcTn1_B_%S? z8>56Nh4JkU`TO}lQpHunVP+)Hcu;!&^gO5^JZ_+Yqg_*>i^x{Y6 zyf0P-a`|thHcrha9tzFU57aeP_b9Px5osk;w0ZRFhxo2(vq_>-(ff0R2C0{i{>q%&eA@LYGm!t?+eI|s#%xlE@MLB`H7 zZ8qmHq#E7^EP<;2slG$H8~O+kd6jenwU^*+JPS+=ej$(CZLMjaq1mIYh9ApGlx6#X z==)-vXKoHIY!1`$RC0n{I2zP~!M8+tB)^9z-v+$%J#&<$9BjVDbdxGmK~GRkYF#=u z3Rzf{K+fPvG?$JsxBRVNX`Bg{HpCowMeulFF4K}r`tydlma~>)WZAQP54|axlG?4z zGisSmn9BJy{yE-)-Xt($)2+qr$50<_lf0E135|t1u!){f|8LMG z=u*HAZfBKF`3`vtQU@%@7rG^$E;pDoWFg+(XU=3a#u$3@jK|OexXSq%q(7~jp}(eY zNoD;J6`{(ZJ;9vR;mdU?xJuxH(AoZkZhuG4S%2|oXdLmOw0^jLDmlh;bUG8!g4)V`Qo)ed_yIJfAje9X znA8?xZ|;C$+zyV&Goc_ZjFQmZc*pqDq&J_{WkGN4j>fHTt*;7B`G|2XIf0LvU<&!b zzuHH-N&3fV+eH{pqF(%`p)>C0HH-aN}y@UTvzjh;9MuZn^aH$Rpg^AzGKF z1KNpQHQRIpnXdTtABB3FwcxBKpdWS!luwF&m7zQs>KZ6`KLq{zjmTy}%S(#_BU5F$ zxA2$nFPx{HM8G-B+CG9ed<2%eDLSpS=qVnd(yPY)?5sM~S;Vs{N;Ty#5Of8kba5}} zG&7pJR{4T7J)iTP#Q%=sT^MFtLfydwW~Wla z*w$E*`X*oKSnxiv-(xsx+@_nN-^g9IH!#9~jGj>zV}Dasyjz=t6?uyf>mbl#4Xmpy zhjmwU;oRRoda?zCal#u78seY`^P&J!8kGMBSSkzH4-P4(bP$Z-SmrVJ(C$78eon$C z;4-QOhrucRsh_JqiVxatv``;|M~ESRM$S*&50?6wCK;XV9q1aq7QMn2VGy5L1|;=h za^+Ie6;TfkV6Q3ObdlH62fp1Ca{kJO+xi`*VrDP6>}_I8u_tbP19U^t7t3pS&z|dv zcF9rd@Eb(mIQr&|;VOLaYXdbwvuwoYai~_(oFmU~4!U6`Sp4?ja%$m=;8cQg6HpRE z@M&3x?&VePP#1{y@A#vJp+7rBvqU2kn+u`FJQSZ*rzX2*H}AC?oWj;{4hjZ81m=Ug z+=!m)0q_!Ez|fT8?&uHC!iGk>jj2&_W>~Mlvh`$^b_hhOB{VTuGVq^&G(Jx;#Q2ij z&NJyt+zW+56+wC?;q7Mw0XQePI5>pP;y7x)>Y6_^Rq1QDL#r~H47~*!4v+Ce^@&BK znrMkW0r8p6-B_DGWiw4n^zhFJ+0h?6j9zFX?t*BvAJ)^=NG4PDGUZJLL%D`p^R?Vd zIZhsU&R{n-(Yy2yz~ud+MtFob)fKc>UQy5I*I&lle1K4a{XJf{O1ILm!ca;du6OI& z=wfxn^&QFDk851oy84NFzoESG6gq|=6Reu47d_n5iY{ql!&O)Yg zXrErB{>Tf`DFL0Uvs&~~grS_c8o~uU_AaBS-3AV)4@}lc@|~vOtBT@Xu!+83L$I91 zSO=ew1e(2)W*TRBB)NBgp`Eaa`z{a9#sTtixU>)Dmxa;@5SZ)u$co3qclsW6b(7HE ziB&g%WsIYPI~T-!n0|mBwPm?4*wjDO9_m$8uX<_*X|BtP+(*rf;_zs-1hep+ps-z< zMBzL6e@|tgk_AleQ0}kW=(g8t5i%q^|kdY!17+BS6q@a6HZ_A z9NeG|tX4=_q)bJ}#HqOno+MTBz@d?FBa9{no~F0En~eJhybr%N2U?0xHT7Yltb`NY zR~e$zhp|vj&4-&!6n&hE8nfzAmf}~KfnD<{_0-*9D0jjL`9y{C7up}0(D3XFTDAh5 zm>^tHKRMV=w352Y-Q)=B-KX$g(qXlfV-_tFXId*Zou&ojQX4cV+OBH&CE&!K~(&f39D_*VJUp zM=o4NH;buI2WD97saF3o1PsrDLMRM1wi7i%-}DH4 z^A^RRC?Iru==bQuw0F4!+cTvduG}%eq0rccR>2kYwYLYOVN>ije>Q)m7g0Q2mtGAG zvNk%S?k`P><`KR*Yx!OomChirY+Cvr3qW0`_`dl%(r?> zW2tMstacUF`Lg+YD(~g$rVFM%a3GhWh18$kS_wEAyU|HI4wvK@h;TH^rL;hwU>EMi z5thZ4taQy%J&!yFUh4y=&#}!i$DBZKvOHR2F@_liz0qOJr?=|Ul^bwcnkvuXFErB6 zBchZs4B#$Uj6X|5cnH7D<17ZI#txomW6tz_OH1nnFnHC(O5!Xy?<);Q4SDqI^!>nu zdO--}RyH=uze=soti()!GE@1bRqKHC1&N(&wf7nT1R+O)>SL*FRFp zrWmPfMr$r;E`wzmLvH&@pUto=I6P<)KZI71L!8o?bO-R}l<6F;M}xWr{+GY0jb_SS z<-e6ra(89~C-LGu&-u5?Z_(!XqLcsweGsJfLGJB~VBY&`KXUd&T_19S#Z2#9a*C9V zQ*;e)^=|q``djR~GT;R&g2_BdoO&z^O7rv;>3K9`g|(*frqblWFU7o4QRM&#P@5c0 zeCQ6tF%qrp+IV%%3{(tQO~;J8&3{?SgBrN!UFe-c59W*^i?KY6gfFnSeu93@=rzr! zzuFJ({A4PjJigk#LilOdGY&%;v%0A!`K1$W@=RKd_8kbGznPZ&1zV&wJdN&wHU5ly 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�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±j;f6o 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%0D4`D8kvBDB7$%M5MSXLIK3;n?89yH;v^}u5} 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

SxzW>qJEI}ZSb$ph+s8@~VW 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 z ziXH5y<{^P^R|aP^eI_yQ689BP?v0BKEK%jUo(&V34KEk&`+-jBW@4Xott#UuYnC7iC3=2E84;& zy+piMP$A&YZxR8FR*a^Lr8CF3n2dTe9Itrd zf^gn_75=>l+>&TG@4v7g9oWGRtj`V@^>aZH?eM$;Ju#d4JQ@oTK`a~S?+n8pd||CV zW-rgj($wInzG3-{T;v41bF9WOtm~1i$8YR~_k0+^Jca#u}{TV>#=) z3zncDNW*_5gm++W`+bG{*ZA6wtY;ZM*TITXQ9(G(ni)X+_X2O%o@g@yPgR|jGKn3y z8Vgewd?GJcMOD^+F4k^9lYIzY^d+k;hP zzTk`tU?oMKv-7%OViYrW^%Q@nAmbsQd5*d3}4%B?><@o>g}RZfGhNI-s9l z4BlL2nD(RC%THNtgL&5g$EXBXWdcXIk2N{-PtMv0PrU%oRrgQaxQMG6SkFuGk2~1w zP1)_Axke=d5h{w%JITlf!eS`J-uR3Dzjt`nmF%gdSc=v7+GE59foPyRF@G?}7EGSt z;_l~RM|@|`PlmObf%jOAZ~hLR{er#JlcR6T{jSKqY0Y~5O7}rIn4!J6uNTI98hsW5F7<^tDKCcKnWdSQE z6St;elVQ%Yw)qH=pR?WyWJe>o59Sg3Cz7%0t2MMatXdNnpL$09hO_v zvnrwb{szXQ4XdjqqicdC8_Q112Raf9x>17sbRj>-;O`d^L9_;`9}NOf726cf?k$P` zTuk4_L3VBvykiaQ*)y!$N#5rYOz<7#x)S^G7;*Yr&Z8% z;J>D@@2~QFD0#F%m)3gDxD`J039-UxcIkb*U|`nYRo3P#)>CyX`eSy`D6aEVBDTA% znH$7(1K6*b?2A315B;e;Y8^p^@7gQCLkzVke3RQ@Ppc^s7T2qLCw!vRdA=B`)e_!!kIimOh;2D>( z#9>^wPH^MLDyGquJ{^^VstOCLSqapQ*U*QOhqG=7)--_Hpk7%X{jV)>2|n_5v9b?n zcNMx$d(vS#jLy>xSk8WBA*S?2G9P=DGB6Em6DYzW4y1&p3+>e6DImJQ6 zD=_%FJZcfEv?jWl0Q%6FD;-VT5eu5W7KArm@lBD)Wo8Y3 zKG8rcRg_ODWk6hk%df9`GW|GBEUItXQi^F)(1sbIwzql`23pY?;4 z-xY(U+>*)t$+cd{C;Y?u{-zGsWHEE}mM&5k3@hy)uEa3ZZ1!nRQ3KzjK1yUa04|i* zqm{C$?o30|#-_`oyN2pvTY3~8qa%b$t5Cx2cGW@^zpT_+dI2)q8U?C4qDOd%9?Vzw z1$QCTf;PfU?#|5gZt$kA**n_{=f z+4%_0cz1UdcNV;>pN{d46#GVdX@_X<;tYmoImWeH7$7*&v6{yW(ZZhVq6qV3Bv)z= znt5HAEh2a>dy>$0xP-daJhX&gW1F|5m~kFfK^*vaJ9SMeyM@%%!OyR#Z@?7#3k?`% zA8S*zYxF1e8x2G(}U)j-&aWVO47#YO^ zD()#vsZMr=y5>6{Isauc{Y8{9V#S-V)|@B?zXj@737x3XtGPF)#LuFhiPrC6tErq> zjwDyA>l!o7kJB@|9HpQF9=&J3FcbB!Q`BhBqQg@Z^|w+~{&&Ln7)R}25GSJUlnnx( z$g1v!%{t7i&1iaP9rW4A>BybMwZ28=@gF?IK>SIdUNRROKh$3m|Mk>=4o~ODvrolO zZ6QM5$Nm@%<1ElKu^u}(7>hdtbTkR%|0R4kGahUOR%i>^;t}$x`tV}Dq7q-(Qxc}X zLHa2Pa0=4ULpumx&I9LY4U;M>p^CPLS5}Y~qEP&qX%kOj$g5C0I?8U*&_%q(yNABK zP3*hf?7%QzZ>r{xfGP zI^26R74#U))mPZ#t@!g6WLcky@k-O@8;%ZcB$nzlb=@Si~(l65AGn|7@8iu;%N<%+mZsULYgZfg2Ono;~anm|; zQ}ddju0hv>t_D>z{bvl)Pt+}8rh7b)yP$jE{xC4dCrNj7Q>x+opl_U_UqZ<*%dRlWK_+3l_6!G$y}S+ zD$|{DHDhbWKN(xoJEjjx_x-Mv@g@CG#`KJ~nI$tRJ?9Dam|NK6-^`S_jrQFh*mP>a?{3Rn=}xXeu6fQmP8({h zXB^iYyWosx*c0tda_Z;Y&)%HI4fbC4 z!gjMW+o8fDE`^uZ8vd0D-SnPfJ@E?+%f_thfPzI$aG(Fds}3j1Xh|mZf;=cN=X3y^ zl;yA?=BV0W{idqC%BOfEyJ9HHnx9dg=|Ww(EWR`a9PS0NK?I&upr>jy8Vx3eM?RZq ze++r+67MjSaXO>v_yi5NMqVWxqP-}`&G7X1q%fOzJS?)W)NIwBL@^9)!LD##6Pc+# z77cJK-3b|R$Sb)kxWBnSxT^^j=?GFXA=u1RmBPY46lwFppResM;a5e(>m@Wie3W%L(~ z{~3qSCt^3J(J7)et8~3}@6{O`=|r^>kM&lQt+8qcYLBa)sGRiNMpL87Vg0$Nca#8m zEdfdpm}`GlI44|pj&ZhU9U0u!-8Wo&T_xdks~jqaC;NAHV%Ev5(46G#dO6yhTG_R; z+h*0v@~2xeUZ#Cbv!s9ieKg}#Mr3B?%(hwOv!b$cWtGfK$!MJ^%Y2x5IMbQ=Ei)>s ze^yIALbD2G*|T)n`R)1a&m0#WgIqOTlKY)|gzy(k@dLsK@s4p!gB@tyPEq` zh}>ZZmA)W!^9P|}G*Q!8Ggmu88>`!^JHX7guX>Xq#L(2BLEra@G0|AfT+6JpXf64z zC9T)3*Q`ZtwQc!rWl;%N*+$rA+BCr>Q3`Js9BaE|6RbAd0_#reH0vho2J2~SJ8QJ{ zyd}Z1Kj>XhKl4O$gsGjWGc56{hT4WI`X>6ux^6l-?7+it{?2nvkHEQINyUB@HLP!- z8ZktsGf^Z<#XkLo&Qvipq*lR+OGCl#7Hs%Y==|0shOxNvx_US#IRA4fnFw^-an*j_ zKAguU`#ihL{=wec(Td;XIBGa6I`24MI>H_O9BM}a$6y}u&il?Y%)^d=N2%~8vx?74 zFW}FuKoPGjv(1-yR(LK@>G;XMtV++K3WmrgvdF=KdL5Pe{HV&!Li;*d^Ia3B3DpdN zwN_1SqqCqDooy;+l>JcGP*qo5X9i0{x+)%_qg`Dc3K#meN`OPRgPip-Rg~-WPmKpz zYK_NUM{RKi{mB;M#;HONcB&fQzX1)d!7#*{zyb>rn&C70qA$J5x!O6Cxo7X3kDc34 zrS9(P?E2umWKea;OTS2znUhzMFK8ywp_FwjnPltSG1$0^hd{ ze)5d!p=u#IvHvIOEWn%Cx-Oi_%*2yARtm-4xwyN#7I$}dcXuf6?)u?+(TlrWoC2j5 zPbTuex&PCr6iOSJIcJ}}*IsMwE;v0Z?C(F!mui4ZZ!UFyb#64`%czgGvfs9$+AS~D zl?sdH#8L1fii0bCr%pVBDmMj=##>f!ev{vr-xx5=(bv(hH7qo&F}jUijSG!dV?px4 z4@RH(J^)>ev;%uyYyyK7~8*@GSWc11y zgRlQ6>u76dYeTD;@jZQ0+NQMPDLGOaBxg=O^Jng#GO49gW76`a8Pd}@*}tbIrmjzI zkk&PASK98hN$JDWMXQeA9%6N7Jk3zq?AC4e!}iSRFm>+Q?g%1%BDrK|IDD7!c`FGE zeGu0wAKd+(D47q#UfL{f6zj?THiC!oHi| zns1m6o2Hr;nhKk$n$Gj6T4P>gJTas@Ebs^L$9v)md=j_EJFsdZ;M6~YwO|IDTuSdI zgu&|Q^)-b1!>};lQPyCLH>-DvXPc*qXSnAL{+3PME!?wQi(OM)qq)MDTxH$GIGNtK zCwu1NhTjeL<2Cml_ep#&Q{5$S$sYrUz96;9Ek3d-nQ+sORBEB17{K{iirh4n$!Euv zy~-?n4nvrx1#Nc(Zqd(JTW9GgFQm6H4`k#fILS?L>jUt-@=1cUliGGB-M2ohc_R#n ziJWhnn3p~i{pdOMDiF4^>d7D))j;hhQ-em(W7q{gcAo6GEX=IIOsFdhRxQx?XvkdY zJTR~da=r?znD_3p?(A^J&%m}iji2vqGy!|@GOxpX&*Lt^B!hq5*HH=F_FVEDM zvW?;T1ktwC!4Y(&XFl4156tG;<;|<)fU%ySZh1OMN9@UBkL zVQC8zCxaKqgXd-fVKpWs+$uUsvq5fi zfdGVXlI36`S;cVisbB^7SS+~JnZ?U^?H!_*u$}yTJucwY$=gG|d)>qVV(6MR!p~v} z{r%DOck>fhmQ$Go(Wv*6YQq)XDXj$;FwxI^2Sa8py*3pc)kWk}F{s*4fQxjczWG8P ze-#X6J~*l#{`CSnRk1=jVJ6<8HuEdkv0-v^S9CKn|({7Okl zv7{AE%b6aR{)jWbo3)MAYqQ%v+i%z>JG(nip!sVCPp=BumjM3L4MhAI=wurl4ZU!% zbK}EYL0ec`RvXX!xgNSr%m}sWQ}l}At6{HkgK?{Aw&@!C{;K&L*-nc2hsDYiqmp4$ zEvuNU)y&e~($^AY$!ytf-f3p?oVg=)cUMz0Qy=3%qu-F(m|_ST{Dv&XErwHu&H6KX zoj!;Dr1qhG%X>u&}xy`LUj!L{`?`9W)yIeb;b8 zo{bXYIK06j|9Ru?h9!LsSIXJw$xq`vItw55s!T(8gBH3pnZP|tmyk1t^kT%(OA1zHIU;aRnKNEe;;;>md^4e>&R)c}qU|aTb3)pjGQJJ)6 z=ISGIge73`-{_FWs}wqg{{|C4m}dGW_=+p>C_rZ^U)hTVaVFeItzf9}fyO3)kk=_@?fZahBUDW8<4{CpR@Uzg+e zb(@Of-(up^9_a*+{%9z=J7!KMeFD&|3)=7g7^QBF76{D z!Ua%pH&|#pP&q1f6h$qB*XnobSU8nsr4iCJX^Zqw{3Ol*1GLcc=Uc+V8rw*zg zgUMcoQB;@i#5i2#UV!AyMISZ_4rC=_Mjcp@#pz#l1iwgCl@>X%W_ARe+Xt-6fAK`CihKWQ=1pv1K84Ad>NrRJ_|SIKHa}x##y)Cv zO=`td&7XunNxyZ;InjEbPC1rRHnnhS!?c2FwbJaVZBq-Rj!12k`ZV=n>OZOPQh%ih z>EqHDrMuE2GP>JF*xuRQ_C<~{j>)bmE~h(!GvJhG4R_S(OY&(0R{sLtcQcq!ZR!1X zA+L(VRsWUrPzuv%neD67jzqU*G&uFu4aE#!$&*?esv3%;1=Sj2@K|se<{4)gcNq^7 z>ukoqOw~Eh3!1bhy-CA0=)%mTmd1L%%WB}TekH^HWk)A2k5)2Ia) z)GvP$jtkXr3hM9wfCF_oGzsg_Xt`ma=f*egHhu$25hd6kjd`w< z@C(M`fH(-IcPVvqbv$`WRrc9f-$*>|e*4y=0}XMnR&WMwqT3t^f2slgQ=8CPrE|76 z_fH)@WGax3~%NpU7+2*t-j3EFi%jI_4AkUPk=X@mp;)-dQ7><3X=Ti z{r8D`198*c+!l+*7-{9{Hjv7)9d}mHXMUpB+eE8X;mGYra zPt%)~UQ0G1g!MO6*H_CmZ?XM)gwz6lI1~jn2X_{F5rtr!2sE;-S0l z#&!M@Q!7@}KUjg^Na%4k&|fV@PBwvDO)F=SWqn2c72{sxd-E3aW-w$wnA2kORI}Us z(VW|y*PLOr8;=^F7#|xy@%hl$+ceH}*?fZ2ueo`*ag}jD_~0e&7HuwO4b9aK*KXGw z)x=8$r4XB{1?bEL^2&95+(37G&wI)H6|Mev<^)Z440n{Yo9t7qYpsJaW@TheFOpt} zyuVk#NuPHmh^nRsXP3xalBkf4)s?;p0hSa?L%z?CXY56jWXOy=VwNB$> zul10%h&|qZ#&N)r7r%fr?hWprp3|Q1I5uaX{@TqyiE@2y{Im}MAjm}IyM2C$47YSG5(#!<#OR7^QdSB=-G zgJu{@QB@r`>@kcs3^dF$OfzIQQ0QRrm#ob*HKzX`@=)pvi)jWmzzY}?73o6{;(Nc~V_al%LPgHr&#=0O z(b+BnTlOpb{R8+Sdr046jK)MUA*Dlr8PVka^u==-iW+w}6 z>G?GyqOL=KF&TZ#Xk4zliLJ>IJK&DJlKmVhe?n(E6Ko_XO+sHjSS%}sW?TIs517S@ zF-ntgr8|Nu=ZHE5uLe6#6@B44z7!jZ<<)D1YVa+3;!$@29#e>om>KT#H{ov>5JQEN z;4izy4q`vtY#lg(_vQMFa5JvMkRGZ&q&_BT32 z?r14yGMN(%tBrFE^Nk}6Q;bCo9moh~n-WZm%p!fJnZ^^QxB9Hc4!Yy|TRN-094KRF zd55OIv_dX`&a7?VMDVab5SZZa6{z8>ox{p?$q zD|p>H4;=qa+N89RXfKnl{zIQPnspQTY8B! zf7JujtCjqyKW$at(7fbZ>F}>+XSWaHPkiJon~eK5d92 zKN)U@hED$zdMTypU!0f5$Xnzgn#S6qA^!$_ZhaL)n7*_jMqkH}p*Qp1cNiBN&zlre zKFfOZPD@jBSBu)5n@NJ5EpNnt1UsFbK9_I31+| z@N$O2KsX7?ybTi8n7w}+=5cX!UaRmR$8~=P>UwPHh84J5Gc=E6FZ6=?XL_V{I7}bfmbO65iLh|mPM9RgS_5-NeucIdS1?C2K26_f8m-blC`=r%2*<0R3HQ}o=w^HrR^h3WNnE6EBlcA%a2DJ}IhR%HDH^4J)k~PJ za1xE(O>vdFIhwks=+8$;8DcYB^hcu4>LG=pOD{!DnG-*X4R8)_qF1;F?l_uCp*z!} zl36u4T2e9Sd6p^s%Og}&?-ZusjqAYo>HzNRvbrs5aSh#xU#bsqG2ZYh=kW^jh_lo; z)J;%=Zc)eMN^zOEFrA)FRUG{H;CWF150i2Dl(pA=(KW;~>7B8W>7=ov$!mCOyr<7F z*tI3}1GGbRyR{Q^@j8n>o4z0xiM0$CT?74V?Mt0e_ei%|TTfR-E9q)#s%U#j&E+HN zp`u$gMQB29xB<212Y-*i4W)z68|QoHQo2MvnNofoIvxC&t zQN&g%C{sz(cT-y~Ve44!QGG~hhPtbDQ z_Zujd%5loB05|#zX6a>E;g6{6$Dso1NZr2Oe}}HQ4p-4BzL!d2-)XoOx0FmM@@q3S zc!$y)zorJ%o@+si#nzVT<0(T2PnctH}=U7}Ir7Gh3VKdOV7%qu)2UKQ&|HKnWcCV%3UbREywZ}`7-zz=E? zIcrJWp(^p`O56x4Gf(%fv=MKEt5Oy@gJ|#yrD$K=aH>dUP>hyj=0_eWH@QqJ9_=tl z(p_maoSm{#ch0nMX)(%R1J8a7Cev{=sr#5g)rCHnidXnQAx7Pf$W#u6R|yzRJ5Y1X zB}cqQ9@!5*qC!M{PX1Mro>Q92gsST?9t>u(8!KIy>u}0u;fysLCR7`$q%L&MrV2Uv z-_1-lysqv83KK%98V?USP9m|6J}s7fJxI4%*hOQsjRQ1Z@6zd6X`0lXI?00@UC3S%4!Hv_BpzPEy+Wm=jU z-gcB{1@?h%Y&zUU37iLs4;4zmU@alY6O~&WITK?!epFJ zlvAl~!U|56%dDp-VAy4t7j+XpT2qv~uei&faU6OeZNT3$fFk%S-KvLDC)p^!lGo5D zPQ?MfEOMKIIX<{{p;d))y^wO+mX4Oe>lE0Z?rP8j@bifrwgA-_14PP{u zE6VZ-q%U4{Y@sYCf40ZiR3jysH8@z8?1Q zBzQYVc~@)Th92Z=KB}n;#EjAG%N}3}vcHjk<$qYkb~*#o+563XGeBG)c|}FRZDbVj zZmMzut@vwvZ)E=OH%RjaB{Os9;_$&S;81eF`_kK&c|a|^WB=H-s5qFhwIMFo(d(6$;%1>y`m(k~#2BU5l-K$H?7&?#Md@t;UdtMXO z%|pCPs`wmAJSeOa#J7_2hX32bY{iBk!87@|$b`Ec|*NyL{E zsHe87=EF8D$T~2olkkMG3x8k|%_Vxw1IKWRBCZkx=>{BN_RmdbSuV$+W9F1qvJRG99=Qxmxd_zeg6x-KaMH>y>*X%EXgy>-ejv8YU_NVOrkV8@bMT!G zyuzGf6MWVhh(E|@7OTH8N$3r|z+K?)15lKw6EpXaTTg|1+DJHo@?@$iLKur%!agEx z$bJ6|9%f^R!SjMuaE-32+5vK2j%y?^18_9>_H5#`8IIY{z;a^vjSzns%}gKqU6(ms zpTJBTgwK-0zs=u-oHctO{gsRs3}H<;VQvsU*E{zdX1@#BrjX zgJGNpe(cr|Umw4;foM7oPyxi!cUuh3{0T-_8S1>wFqN7zF`);Upc9XWBTO_n#^)qd zbL}}VLVge;IqE%>P6vpf^*LA4alew$OC_ML?n_+lN55bKS$<7$$d!Q{!EE#lOk@eg z(F^3{+&%6u9vFi6d}(;Kk@VzG&~<1)Mm!z=sAgd0H_?2D95xDbK0l=({`%i{M%{g@e}!U;3#q zROR3&6vqn!A=UjHPS)Af;}5{-VtJH`aCarH^fRWnWet4y*TV&3KDdD!^rJD3B<10W zdpKu3=$keZox24J5UFdTHQ7Z+?HL^VIDF*aFw3Dd3Z^Dx?PKB2Hvs);3VUZ8d*HUp zjPhV1INWVA=F)hxmxWh15RFk;*uL#S-mEab^O1MA;7mD6Z_f$OE=^&sK0>XY!mg;8WLU zm5T7NU8*YZ=rRilXgABC8>+~OF4F61Wo>-=u#Ni`W%U{U<5zny8#2`EQP#I3T5g=60VPCuHpN6R&(kO zgB3oRy|5LI@-ehfepEYF>diWw`EHn|NX`2{^=5T>CJX&Q zQ=UY{)saUTPbBIMLtzPh;Cp;LpdU1qY@{2jX&%#uw&CwJf`5r>2aW`Lc;$8e}PYlr0H7`z!b;&&XC*!J3{$4pTz7j%u|RT)ghA?P@40bKoGOVoJp|*sQzI zA)Y~Ju%EB3&|-wN6qATu3yB7EVA|(o#oU4qKMOyAOiW1h!nJDvCNPb?I~#t^0k{FX z&}gqhxfRl0L3DC1$JXDRiZel8tK+ zQZCQKF<>h>@(R9oV9j(!>)Z{+Lu>w4k4MXmO393_-3dN^55?R@G@+e{c%j)AH>n&n zWOH3vTisY;S$X#t=)+v2>NrdHu^>@!8Ll!Rudq*kCt8EyDCO3nv>Z*xV<658i^=yE zz*ag5O8AH0_<+OD2e8-AuqUqJq_787%U!P39Xc=}?ZOn)DBbALbR{B9!i`}hJ1&Bb zXu#iz{kN6B8Yea<;_^)g9GSHnmC55>QFZpu~=Taw5!5Q4yWX_RDu&QdD zo}IX>;au}n&X?0v&Z|+aZAS02me1BGQSYE7KFmE{i{7F+d3{q(t5B_zKtFRH70*eu zC1<&x&(Vnv%qZ?L+(BixspErbb8?dI)vr6?(2SP^iSSy8I~4i=tU+#NMeS<2g@&a?LJktJP$fw6*$C6RM>1x$>3=;EAcy6*BWL)weY zMB)zg+`FUBoWSbq^PjS17`?O2tjItxG&65ADDf#&@_pD3-%*FpW1k#B4_NO%-QslE z)04SUq3KwwiTedqYVg2TR3rPT2(4rTHeTC3yd$D<|7ipJrXu^s491g>_wGRnADXXK zhIdthb1N@gvO>I%66_!gYE(Z;up_*J)u{45qUXQBI}3S8^ybf*eDq*9l|%^>Qe7H} zBPGH9pP`-Z&&NvG1iw+HJ>k!Fyw6qtt%u&c`lVzVciHEkK*!Z+dajc%t>w2Kb3(Z} zuP$*tMzG?#qH0>sT1w?3$k(^H(&_$t&Tjk}NAL0fwcxABPHvN>WI}~Ek-L5c#o#t7 z;bmO$m8kuOaTeO?tp4QrBsBCNK;_J=#fq%MOiX3E$O>Iad|OKQd_S*xJu7h&uX#7` zVl02#%?bLQ-%lqt9_21=y-x4lt@g=Xi4=H<=jGc=1V^z{PWmk;!I4!|f{$Fm>iIbZUw-qDi@=@A}t zze}P`=*UL~*Uis0#DVVg(T1>k|KhpAQLtKg@1d`siFuESOTPmOe^aBAxJWcy2QqVnIQ0O$ zBNpXc71r`K?ng1zYE*U>{H)wW-8}T3iv%n4Yz2Z=&ixNO=Tjc54-q!x0rG|3ii+1$ zl=spTTx2ir`5&%UDzWD|cWW~`$_c!)v+yr=@gAF@jvK>AXeP6TdtaE3VqB|Cd|(=g zA~=*Sl|*wsis-VF{dRz;v6g5vSyi4LaSp}X0J6G5__nlQ_s?SbU=OnEUgUeHKpA2| zsDGkxTS7kgfKJbM^0V#es%D@9Pv^9s%(-0~4*OknT!;8>C})UJrwKuFfZF5?ondl( zgAdl79AgPNT}!lkuUN;Ki7!jhbLC|s+YrvKBdqKV?8nTk{><$0dBm0FC^~l&?E++^ zC(!i9QR#+0yYutySpDIg^9Q;2`MFj!OB>l6FHqn;B);6>s$F629O526C%;T% zC*SAlpW?AXv%0SH^(g;4mR?~zceXYe_#kqM5D%$6ug6Qa-2pr&nm=>E9j-|%4}E<` zrPCelr4x1M-(>uHa)ilFp}fBO?8O$W-QhfTC!RZsch{JI&EeT5aNpfn&a9tGM*=v4!3+G^8t{nPGp5qw5v4XfhncaJqb(j_`gf>!O=Gre_;cX(oLcU($ zx}7JojpOT4D!6Y%g{Ay!0oQ&vxz-$3^Hj2+J6y#S>c*$!>vvF)ujaS6@e@agoNxcj zkaEzeHNh3R$Lrj~{k_07-^b%^@6J>%j{uMlIk9R$!J+GS73K2=gz|v=*mJ zCC;MCbah7%#aB@^tRQ~$B|?_qy8q(cgnT_j{{D$qaEsU*!}aRHof%3z4e~19z>oCt zKmQ|AJqRx5oO`KyOXs)->i5);>J^oC8PxM4GughdVm@*=bFv~k@)H$QCprB?z8C4d z$NZdIvE+AOxsDm!*V4TDzO1*}tmIp~t0Tm~S*(g{#P^WL*>WQN9=@tRMu+iLI{pL0H)B351?zW90fv)CV7IdAgA*hwdP zzUFEzWp%9MZhj-;Tqm|q;E}fQO0>Ms^W+8jIB$=0CTHOpZ!*d50q^-Pj~h}StLW91 z#b2N$XDlo&klZr=eDvFtvhJL68Rcp z4Cwh@AO7z=z2RpZ&>Xk-?2%OT!JD`bIjFRLu^u`T^QypSn82EN z9EzIklnUw;;SxE@4d1`MNqCy)L`!QDo2Yx~MSWBAeDf|-Wpi0w9la9#OVv?%ONVxg zrwv}mdB93)Qt|ClpHcT_J=noK(&0jNq+gL81gR*`Re;X*49=z()UVU1fyc21?r|=b zquY}ezoY5wuKy7W1$M(x;=zhQ)xaX^?%6OQd->G9S=2dqg+}m`6mc00#lcJl8qbM1 z9VGEG-5VD*!!5Gpa^%A=ae7%qWNV9J@fmvd`t)eFvQtOm?=p;?+l72Fzxpd#r&cHc z+q5t4&Ry|)KE;`lhE5>lj@O?0;{_a*d$>V|W|+-E|9*p0^b&rGb-i=FwR{%eDNfuh zoR2%HpH#TK6r$EUK~;1XENCrJIz5J)Vyx=e3FU_N&S+962h}3w^`fmiBa5Ta#fQWZ#(sxBWxBchRPf_Kj38 zPz#!HO-EW}Mefw?hG;zC(;ISs^SVk!)sS*-iLXkR9R!IZ+^&@RV= z$)C}5Bo}GmKMeDytFJq~v~R4D-$ac{C{EvlS4EQT9_KpyLF-be44u@fU2*2w3Z_yl zcsOtZ7swI5^}ZTJ!d|$D)}|smPQ;!_l^HMGRQ;j*@|5%Gi?@VQ-P_pv8{TLvyR@)6 z9n@>JFo&qrjNVB}lC{vR&|Xv_`(Wt`AV>MZ1CGnRqZZw}c-=+q z6w^>sbNyVsLENrh!t9JT=|eJNJwH78HFY(GEXB-^=!Z@AZuev`Z)bw*peu!wVv@e2 zzMOH8aU3;UighqEjgDl@WB$Z$?GDXQbF8^PGq{$Kzx%CwZBrO>wq!tzdf0L(2fmOG}!$0bJx4X@}A(rpoEBng6i|&0x-mF5w#U z98;pQ-dEl_)w(p}Q^p9ZWV_&-=`S9(({eT{Ir6FWL#%I0w_W_5p8O*1Z2Ci02jOtU z=CDDT7RLMoBmS4;Z~M_d>;C*>t7+Q{cj~jgl_4QwV7P3VVy;T3BhT;A$(7Q+rFRcz z3B-n9u}rjNvAh!2sIn=E-Za}iTXyT&jNe{7cF`VWv*;{KIE&UfXS?F<+Z~S`#~pR? zJTQeV3Oj@%eur2>Z0xw}sEP77YiNp)94Ezxt1YF%Cx#Vd21~kavwc(Y$3J>_rOymM z^$8I#nC_$xYo$sH)ciB)&jlvZXzAKn^^f(1&<9jtuXGdhi>tx8H(O8Hme~&3{?%5| zOh5eE(EZvp1>rZ5Add3&)-fWJ%lA3AF8i7+3zXizYM-Bc6~CVOu@mR=5z)t@dWn^h8%_2uwym3#m-#7F(&dv~> z8$Y%A_ABFP`pT%?maTDv;`&9ti*^W?#A(R~($hco`4avod&&aM4EcEM@XR;j&&Pd= z=^wo>y^O8ihgDySCWZg$MlbGNc)B?(i#2+SxrFH+`*GWsF5kqr0JikZp?&~OSJ*-Uem`ph>vEj91GGvQUaoatgGa}NuxGUQY@(Ho9cCD_S zSU`J7yU1uFlbK;3VgKr^V&CrD;(ZCZZTMYO`nyif|p>yS@K&n%xO5qpJjL%Gj8mG0w1POBQc_S4XRoG1~3* zxO^3Y)tm{giLSlwtI}Y3Q$&Ht`)CvMt0n~N+O_t|>DAM-xX!ptC~%raTo2#FWX3$d zJ0;I?6mfmhb?QEYqB{fFL>K!YzRQV*ESTwwGSTBQ3 zuea-McYgKxnMl`tgZ8O*foY7n9o)yAbf?WAA|}Ulhco?RMsw@Yj2SRePepIw>ns2BB7Z;jw$(!Xe&b+H4%D-KqH-l%NrL#9dp0ZN0ayH=DFn#JEFRqf5{~ zv8cn60)kX>@Am)jwvma9m&6vm87LVYQgd|{%m9~%W zU+u6S;qx=s%d#0ZX*u5#&l#n!XP0w_bsQfDWjzXxns76*_y@ojE@Wd6rMBV zV0xc7SKowvDgLdp*jYTC$r#-|{#cGu@pAkmLj}{juM55lubaMIopdc}2hIcMv$e~r z&r~aVzWSzWhpUMDwQZxLrc3SlhlrX90b2x97e$=&z(& zr;H5@WST?~&kuK-KwIB@{Wb0I=!20_mI0$*N~eWBL|!A`s7UXeOB5T?&xiJK}n|$3s=R@G7u_>S?K}H8Zf% z@VXy?zH*B9kN0w5WN^DsT78V1W3M5>kcqnfFZV0gCh}9In~UyrvK7 zqtdUZ_D?Gl$gUb;NHe(MznR1TgbkNZX#C07Qi}by{%#A0`c||mYG_=mtXETJ+`aO`mBlQ{z>aLmZM_by;ekIjx?CNng_vnSYWp^ z)3ukQ0iBk{nsHJo({V$I@a|zPnZ=Quk|*QYw}d2j`ZC)&^LA6yY-O_b&om?^kA9T) zX?kMD(NB*)olUurdP4V5?~hf*RgWu?-4Z=8YOy=$E%&<7>$rcbe)z5G5_l0mI&NUT zy!qy8Uusi-=Ka;|>(g(Ce^pLSRQdcRvVD)97S|)&ZsR`v1M(-&#|B^je3<@ehb`Qh zH?ne6n>a)EBU#I5?xBy<)^z^1&rcqheEIj*-%CApybH|Z%q?S4p6Pz-cY;)| z1nIu*spw6%RkiO!dwWy2U0*N!a@ZXv8&wOc0#)4&Tvsv*SliosIzlre>YA&XnntgT z{16r%)>~XG_VU#AmUOrAJhgXpu5es;tPZ^MZI_ozRZvcK(b;tIxL-W-Hw^9y6+Ne*r%XHEtZ}st+miX<&UW! zlQT{m`&FAy*D>X+wfQgcPgwfsKc+xs*L{5#xq)S8ct69^usY%wajSQer=cr{a~m_x z1_xqm5>+;P4%VVxMQJ*vs9JC5JOUG-7CTCBFeY}34J-8rP4@?*_J z(im*})leFS{X@!``BrCIYUwjUB z-j>>_itmK~k21=)E}-$>7X}3~1*^i3YwGJP{FD}I>lmA8%IO}#)mq}-=osr={OkAz;T!O|eHpnORjg(~=wG+$FyoGUwc|CL-TT{D~yoo`|EAr9{ZO1rzrzHCw;p-coqBi!B9RG zm@ah1ZLE^|yUMHD>wg@q6euTzeD>7BQr~-j32y>woOoaH;2_mO=KjTKK1wR>CV3=N zrHr6TU%Wl>a~tFu>&@eR3$FE^OmLobNrDZo4$TW+$F%T?fg{1Ws;p{XptWi}Jb^^i z9qwTDKxyGeungQwmHMzCF%8+{eW+Oddjb~0E94ja%vkTLI!#}sG?PgV1s(th(aHwcuNnm#PJi3jg>rgJ9YHlfiBGg17fq)kWJs3oXths?(wH9~?fl zzlg6NES8Pnvh&57c>7$E&k6lS1H6?As;`0J!hGD)%Lu_hQqbv>0+ao7S>L;ZJ*6J% zGh(#l6>RDjxL-QqR1FS1^u^Kf-w+%sG*;J>GD(+Y8PqU7;8tFv@i+p1a~Yis1vIQ5 ze#Nt3w3yHZz5)MS3tqWi{Zt57f1$V57;ne{bm~tArv|D8=Yng^13g_$&!svz@dJ1X z3+dJg;AlT_>&XU2s9`L1XP`9{uAp3cJ%)nhR0R8iIMDHf-R-3t_Ld6CQvlUk1~Ef}7-5R?Adj2wpS!)b~J+E~_fD zUO%WBs~d?k;WKvw8TZrW6NFN{$6~NFzQa=52tv7?ch*<+R_La>0sp4Bur=5@@UO41 z|5V^|@VC$n4P{=CwV&cs9=ivc*p~2Q@1V8qstOCv7jA=fRe-^>Qy5E^Sx?8g9X*Xj ztc5JXM^$$i0d}zRC4nNr{$!DVgMzIJwhDk`s;0t?%m-(vJ(=z&zr0=C_-xn^-peOknj!a*8xc~Tm_{P#X?g!gv4t&NW^;vZ-u;b?RP_Kd@pJoNkp*N71 ze*RGIcqfqOy!3}E&^F0; z3s>9b!r#39)?{#1g{5>1zJtE1QG9F<3=Hmvt6v00%Oc`Od$8p4@Sls)*W5^NFgw3d z9Djg^+=(JEp+5u*tER&sd4OZxd>Ak<;1;%Eib|Atm^p+wg}QW!-+=KKq7$$gjz^R_ ztNJt;^>$pMTfiCmm$k5fE_hSUtcLXZ&){EMnRqb;rkfXRu=Ri4=TD%%KVhdeVJ^v4 z|26uSLt%vUrrW<2toawck6y4wLfx8raN7@vOT=~fb;K&Wyip#9dxGzv?~AlR8n0ce z?I1^Ks^aIp4a}{Vf0Dl*cz9!RhkCf?q1;2xkP}rFK}PX6in+Ue;L|+E%OgyxC6*N4 zsUD&|tm5tIDdRotX#o;EHZT-6P2a$Nc-32(NBjcy$mEO*8TB*PWz@$XZ8^M_ocjFw zW8v+?XNENj>#eP?eGc>F1f9VNyn~hMG;yNloVKmDt}dUxB`Q+Ebk?}hRM~jh_>X?N zVFmh_6m4bQJk2kSUe{gs%5c@#NuSAJ7H^ApmAbw;PPcQr?X#`1%k3cWJk8zc0d{f=^XBbq8jKomPJ$vh?+Pagf^UdrG%@q+D0d98w6QV%+5)=^vz|G28Q( zS3*O!S9~VE*6!5mJWJ z704PYYtCzK;-$Bodp{pnn@L>T%aSN(mKTEbK7p&OmK)-OIgNAbk#JI|E@oy*RU*^N z9H<9^`1+RT6u3%nXcxUsy{Zmf?(FzDE`t%7C-BmL8NSE}`jz4MCFg-7p+hIz#n%Lv z%8kAQcy4_1%YlV(%GQFt*Mzg$7Qf1ebQ^7feSyZj|K6zoccA`X?QaX;tU8XhM+2eB zR9jG<48YX}MXPs^qE-r$eKmk(I~<;^9X9xG-yBZU`^o@%4k5p~#!5Ej0GfS|f2F?+ zt^(6=3phw$rVjJaYB5W>zTbo1XNOV-|GRbW%I;W?(en{sATu-X=5Y=Li7=b+={V>s z;EPfQd9%QHuje!P_E5W*V@<@u^qq;$W+E*0lCXkr(qBrW)BgfSVG_PVxruQ5(eS?a z#|O%?-*qr4Y^nuhBBhzPyHb5aYAf&8F4E1@Pc!ID%S~U+<1IPDiiQt}7!kQFvQ1Q; z@LmyhjAu-z^-m2o^daYoD#m@r{N{7UtEN$gTE;BQ*iD!BXpHd8pNcx^CTiD5aKFy5 z)2{QpiAp0y_AGF>a=vzqaNM;Iw(qlTvZY%6wsIgS1?&}_#T=ELy&YwpJsmnn340&g zHarkJTc+`ZjRnOCde``HZF{q@Ax0qBc5aup8v z((q_Gz?{HX|5_B-SMXqe1?M@yB*_%zfzlI~)2r|($H5ky0b{Q-5M_*4V)K9LLv>rjh1amJ{YZmKWw{mf7ZI7Oll&*$}oid`iTc z$d?gMBjdwMMa1LxvDq{Xt!fiZz-z zA47D@i~fJSR;&3Xzm~S5$S5c|P=-uF(Og2ji^g#}~16f5%x{g4^+obzYRt z#gJf#Z8U*vb_U+Ik$!$u@JFB`YbG=!CW?OFO4dp)7?wNe6YhhP^bwru9BXJH4h&ZG zYN1KSRbi4}hY9Ev;?>t-%!H%iPWFEAzICU$yLtM0DtRZ+UFu4_yX)EPo&!=o$CXBZ zUf9U^gI0&rGXq{2jdM%@b?UFUt_Qd+YI^9~xdMD$rj4SCY({iQVO6!z%B%?$| zHTyN&axj}tZolh^YnAJkbF;Ic^Od8Kvw*WI)7W2NHq-&8R1J6xBj6NBFr${izfASl zV#Y!((7bm1Pgzd76i)X=WTInnE2OjewS|K zL%jFm1AqLvP>E66!-g{RQS z9YTEVXfnll(j%$4_MEn};euft-YVr#jbB73oe;4hVrry6(iwg!;-mS7MPqnuIHwt^ z9Vka@b}&bIj;^kLJg&2gbyT?h(%Kj%2Xf zNatL3?>u`w`&(OIdx}lAud`*h->_YBOmWP2^>KCel<{ahdXUp%?m;+xcEwq6KR$r- z*`FU_@y>yJv<7ZY4A=TN4BDBnS3i!ynuR^FhO$g!klkk;J}g)T-B*J-iQv zj~NwFSzmdk8Rzzu=JOEWTZtm5oj0$y7%{s6UepfU2ReGPdk&*$ed!s7U&RjZ7UtvH zn5So;2C9etAryLQzH0&W0=JkTI}=saSbR2aB9FSN$wGH`x^^_zB_Ft6PU9Nm z9u)h_jVZ=ohStVLhV!6>^$aTgVErj-{Av2b`uqA+{T%&G9Bb<8J2J_5pV$;_MyGXVh6`HCyn^X-WQP5PquWpg_>Va8IOvot+88Tj8IlnL%+ zGMEj{yv~0eb-^@#lNaKiUu4GFBBu`s|F z!Rx*SSI9yg=cZaN40CWee87+%V;yU;8_)TQ+F&xiQg$J`TEWGzsXAQ!1cv{7a`;JH zkRQmz^l=^hlOQP&q z1@|Ww&%pdryi{K_p|l#UZp41C1~1|ST8n?F9cz)N??9!Qf-a^7`mg}*i?4B%$uQTj zvH?4xN^*6C_7M0dklzPi?M;z{WXWwhfY-?+KW^HUwwv}}}wAXO%bC{jW z9TOcQ*q7Te)m_V-A76obSx2vaXr!&Dh-Ov z?j!cbz^j>ux@`k-JVkSh$X*!Vo#)yJ&g1Ot=laHmxK;U#0}W#hMf6kgp_{E=q8C8% z7aMLFt{S=-Y8j^Mhv~ymX3K3MmiJK6R&3b)#r{s#K>_)7m!--9#^DMr!2wOvN20^}&BZhoe_-`llzz z^_r1qCom0Q2Jz!5WaEc;2ehOHiU3!rNG^Py+|Y+F(nuvrx$GU{?FrUbL~(iT_~Ffl zOSK(!NIO15v#@u=3C&Es{u=gNWt2mTx+TtW)$oQ%B4eJ43+oY_m~+ZMaFuR~Ix>m* z@jv9-ay3m!%_Mn=tYNlyBUpJ4K~p<&9aoWiJz|oWClK==XHf@BEL3ARq2Co3xQ<4C zvp?i|zZP`n035C2u*ZjjDO|#1E|wg(C+e^UU>4ji4$V023^uffcR3H<=0+mpTM(ZZ z^){h19HNQLxEQ2vj4Hei%Bq~Gwrk^;yd1v807~N)w|!s=ucHX1--E z6J8~}QdpNTe^^FX?}+gciIIyU7e=j)(nPe1xNRzFu4*`DsEudE1MOt0!OyxSx)(Z& zuD>pew!gNfJX4;>taK}J#sS6`E&NaAMv)otocCP97rBqCyQ_#N!<`G|^$u@SZ$EtF ze>?NI&N{QZj=S%=?bJ&>xx+vFL;P;eh0|!YO-eyj!(WxG{$$@<^8NVWYjoD|zL-9~ z7?*?HXu?Cj2Q4^3bV{;!vb&!9p7V;cnzOxg2yx?;^Puw*f8XpV>xi@8wmGaHaA;p( zy>2^TJLX7mJadk6u5>nc8XeE=7j27eyKM7p!|d(s2c6TLo!u4OH9TH-QLod}8VAE9 zG@7;GwS1sn{Q;7yfR86|RpTTr)0*G2o`$oc=E(#3$i%90Gl?QbTTNR-J4L%#`$&63 z=h8LPFCum{(_PXeYdSHTzN==1CKEdD37V;zFL>MjrOl}=s?DoiquHuSWUl>B=0)$7 zZsSO}3Rj_QxRpEPewvwh;I7oXl>MyOO5~x#udL!)d~c4t7jLfq zyoTJ`CB&v&WVCgeC2e6gg-vQ9*X3C!^SoX7+5A#2X(*h$bY@xCkqSsoy6Bm4P`M~v z7rK*gv?rSmX`dESL7S*e-=Q*mm+&oPUn1Qd1nuN z3(u18Z*n%mvn;{!!JcftIY&ERIQJ2|Cp%u?KT_UW%K9L~o$<|Tw4KJAw|?+{ zfos%0*@bPYz5%~K#j97s$u(`BNbh#0MBD{|ZV!943+k}i)IQ^UAAMteJAEfnz_tly z4HhTo>V)e{tmtMZWK;Ko*C1{QV2w39DfDE>YiC9~J{*oZLb#scEAz z6aSCPH{|j7JB$-2i0MR}#W*G`z)PeX@w=bYO>&WgzJ_V~A(#Xva3FAqo=9QP_pfjy zDuXe0LCNdD^KYoHKYsjYVHvbXr=Gy1m@K}Aa435z!};!EywGW@16HJlw@6bg`P?IPpeGlg8kG{ZM^}n2-oVFc+Q?yFgiUh{MG#qMzPP z8hBJIc!9^5^pzR?RtaVb#EMS!5}|`|7Y4Z|csEc3KC7GS71A~KhnZdx4sUr_HhNpk z^q3+snPL`1^p5bEzL_fNSL!Ed_iHEPhnJ{*r;XS3(*4wy(6weyjAt(tqdJbpKkWF0orfm3 z4t0W#9Cnvy8@^_l6_5pA6d7e%>=6Yw!Oi=W|Ia^9uns7sWK$|g^QcRo4s zeRAXC_+?)qZcTTucOP}#aY4Mi&2!OH!P~{#0bEpqp;-a1lbi5%SD-k`fd3uvHOs>rU%t>6UY4n=+N43X$oTuA9C&|Myj=)vNW5^;Ptx^#%0n zb@O!vbY*lqwRg2fZAEQQ&3s%YCgZCsY(CFGx`rzk84OCf3M-gb`1CCiBt3Sry1HXoe zICy-;|6wV0eMPdBja;KY?r`Q56?NZq-gGW5ga ziMB$vGfdie8Q!D5D~ATc$<#a}nx<9c1c%`ZuSfHG5IyR5xZ7WF z_ORgVeI2i-(2TF6@V5f)BzF!x#20y+dw1cEQw#*Y7#*YlT7vO#(L;037NWG@jt(OY zl=HsuMJOcZV~WQSQHEQ!1P(wwCVDg$d*M_y3YW{r;t_m8DrlQ%SLzn)`sv2%#%Paf zYse$y=3rQb(KDaKzu+0JxH<5?j+UFtx5#aNquE|U99s`ok`Jx_MU=HSP^2uOLQlhg z^r!!l|BLUY@2Ik$*&pA$^YHCC2iA56*QPk)&NsYDC$k5vel=*)AWq=Fz*SoNccNo& zfP(KmwTZ0$TQG}n@QElVo}zMX2LE^vov)ejCsxz9pMe+FS^RT?c$O`oZmLb3sD}!B zHmdP#LJ{E^%9b$nB%i^o?sLwhf&3lCKcNma33xx+ny10J)N4iX1enPTu`wG|r!yRo~w5ye2UI}u@QPi=hv z`P+~8l^Wag-1oW9xvuM6NBPbS1&8yLazUA_^=DqrW&IY2_I9QkxpX@YHrJS!;M7-8 zyIPrkG*eru-BF*QK3}ia!L#vz5~HL#b=1|loYCo9(udjG+OykTX*KORsE}^h9}{by zrSC^!T_pXLeV=`ty{^3s_{~N88v9z}(T((7>D?X89W9*!&M8WSQXGG~&p1j(f+N-= z?mWU*=>(lrPfcGc(H<@6z!IsSyVtZh9S})-NI?uYodK*L~v&AW=$+yW_T=GN9Jj-3rtR+i9%Px5v z8If#xAv@$fjThV@@Vseq2vaqJP~g54zq4+#f}V%LUA5s1 zn@Mj?ZYriw>QWziE%zEd@L+Chi288-rJ7x9!P%0eY-jRHx^s^+1f|dvP|KW-6^`7F zMvgmFLLHb0k|%wteKcz1cWI^Vq4w&;rU8!rj&Mga#}np;Oie4E)+X(7YC!s8yN}vW z@o~>{%{DzpX_er9MU^^UyQ$4qy|pn~iWZ3j%_Y}VI@y!l=lQ=CE+fM|o_e_;2ufqH zqK+AVa0-!dGF^uQPk9vn=Qsy%f$ml!M-Ikgd!+V6Td1XLD{wcDGwvCc+;8d2nMNn* zFM4#kxB=amPksx6UbNHsgX=cTJ z;0(O$Z{k9Bb1-c4S7up{&j>MaqZMt0g(q}rEX#uy)KKMZF6H19`I3`9=gHIJ&i-*v* z_`o~0=JjQT{qi_g9i_K)k9i_92CXo+At1H`g+k{4nNrE8l3|ooyveG%FS)|$&P#wJ z$R}RKcOr=#a3__U8QkIq^Hs_*$8))uZkOlOq_8|LGr6g(XzLt zllLm`L)lwrH*y8#{+2r>_t0G1a<$GjHCv5L^E1UV*RO|HXRmr*?Kyu-d;JFz5n_93 z+iA&bjkA=sPO-eTG?c^Tad<@brtZt{D(!NBxdnpB`5B3*oy)6J$S$0{-BFA=er3{*ru{EXN!x1w zWgp3|*x}sZOm}=^I#Diat}*FVz-y|ezq9vB|7h3JSEffhGCQLAUTvzr?n=C~pPH(? zR6DEZwNBbs=1%2wUw4f|r*nwRU>R%i0Xb?CZXQR4XrTn2XDSYuCj4BpT3T4@TcfOx zZIy^W+r6qY*K4s?e(#^S4WIPtiO1+EuN?3#@wT2`18tveEy;I!+4k8YY{!T)Z)~An zgS^grUG&Q9o!MLU`sg*xtB%)KzE{!YJlvA2($_!5_V*(Hd|6=j`3@_?9iBPJYkqjyY;hwUl~P zna=E;*-k%aEk}I%tn}dYTBM;5{>t7yy#dn|rxE>+FqQ0JdMGvT9s4S>o&cs6 z?X+jd-?JvaUs%hg-Df7zCF23UeRGT_x|^ALopCNqgj3CmcTyGlale5`@4$!i6mBJj za4;I??#9~dh4!T~7@j{T_F1Z+LLd-#T|Vw5;A|^kSWI|p4FjvM44!|Bx!AKoMMtCa z*n$co4ZXn(kV=8pJF97qq{A1Ol`CXbMF zk!cRF47XGw@69BalfQ_5k^r(cU3iA0Zvxl%I%rxj%*|IY+3Zq&Jk3Phfp3rl>A3lA zLg~{V2Zy}qfb!Dm`H&boiW$vz`jPivg71t!^6eX9eV)XjR=Ca3I~AI zD1A!e@{C#;Ja*v^J(^4P>7d$I<1e5qGZ%0G$!jdX&lOE8y9p=jC8U@qhLNOhT%U1^`l}*p4WLuuST#nY+ zCTBa~_s6fYkHzNze5k)ynoabw+eX@&*y>xeqBXcCy+XyejJP_D=kG3^mM#lr#6spX z<}ms-PcT*fj(NE7-aJE?!qv{p+_?9tz0$7y`Sxd4^2y{8DT`Bz*+Da6?3{$?Gw`HrJF%0vpQEf&p78RQuE}_T;Vx7YzcHtB1a4VRh4tbnV$@b~1pfBkVkUHVv8;_q z(AR3hT6&W|nj~{ayf75p&_byOT<-E@^9}L0a)4gmqXYOGUBS2U)fwtu$xKHHPpU9# zXm1=BpXn8hQ0j$7ObB_TTD8sU6|&Rn>L=wV3W!chBlujW!`Jzr^PsaK456m9WXepM zdS9&qPUNHYAa71rs;M)Xm)1{NpgdC2nZxv#?Di5<=X9m78lhfNztIs=OKYTUVe(uB zy(uv!C)$rQASPo#VsE?3x}E6JYBG5sRnJYw&;g?`5i6BlIE#Gd*uV4RHQv3E?3AV; zqCvd>+QMZpnMOp3`l3$PY7`!tt?|-qOpH!LPk9S1YaDv6W9Di^kQC0J_Ecf_z%s_e z+ZBRg8UiN!lii$(Ds&(<7tIppyyOuxg&|adXVC8~z=LeA;Ks$QFY^OV;zj&~*mi|H z>9ly1T&as#0BmI!5v&u;NO|%Kf9fZ1=6kx}rHb-z4J76$o)}GV%{j~5$M$rq=YVI5 z#k->&jt-aM{(t}TlBH40~T-}k16QHj&lz^n#JYhw^#86 z`2d#Zi&kbR9NPtIRf!y@Fj;UQ-TawxE0~QsY&5#HC%l#@yngE83YG`$+6`QDP#B^w zYy#Kz1@~SnNK78OM2Emi{GpBP2k6pr+(OHPT$kmlcjM$+iErR9TuS4azPuI0?3nOc zh{N^wEm=}=R;w&V@-x%$X1^iqXQIn4uCXkr^x5v_3@V0GOc`daF68d~mYh-|SW*sK zaa#qDi(b~*O#BP7Ua%&DuRi9q@8h-Kw%gXqTEhB=dSQVSDvhOnSwpYvj(>BW%fa%6 zqx;-Mm7I(UFO&+Ws}PE&?iU_t)2NH*cu-~Ix$!|yg<9y_BQj1MBh|CI^HPOqioG#S-$M4V0(R#a3b$s=4*6{415*sgb*41@$J5OLLUY_>yAiAO zjLNtt6*n!X$1;rd+YOCU5^g)S;e3+GMb@H*@o4GxpyNt6OsIlSyJ~|X)Bv|0jPH15 zqa;eacpQwMFgxYG{*oH$F<8w=Jq&c!lfU%iI*!*D>GN@a9ims~T*wYrmKzQroJRz+ zh>udox7EsMN2txea`s$ieszGJs2#)O_!f?*y1r4*XIz9y4bmg=E!~9AsAg<5eiNZu zxZWEJ$>AHg5{y9C4PyrWqEGP#ED!hHAI(w>8gK`>!~-Jm81SMq?B5<>+Cy-8=!OPv zE1oTxO_!OY))uwp8CaZs_-#E#3qAn!Xq~ybkZe8;f1E&1?^kw|B>oc2V7VbwKMTYa zDF4RdU!040c1PGo=5z@CcyV&;3dQ9y|-tn;wRlHVLq;UN^z>+tmH%rIKgHqb3y{;^1jnn+?~RAIzs~vc6K*;W>WU*^;w43Y6popgu3j58 zWuo|pt5g@h{u%3dw%i%EWhxrjN^&Xu3cTgFcsBQy&f=cBp19?Ujz13E=&5Im6{i+B*a(cxCY2L!D(HE>lNvQoh2dgBae5YNZax%LB}>_I3Vzv8zY2Pg4~Z2goz zmy@s(no^hck~)8krm8R0%gp4ss~%=n#~$@B%;_{VTQ4{@J#)XSGwW+H?(dOmJ2i=( zofeuG4#!utHmvG9%%N|9Mm13TqLyWHNF6Pgc3#`B9YD|6g85+|@uTd4GO{Q5P?}K? z|L+q_>#d0EMWE5gqmzUOY7cKRmpNmDQAWP7{nUC ziEqgyTuR!38MOsFnu!0;M?6*%VQnkm{CtP$E*qG4e%*Bf{}c(HOlM!m;?fzwG>GnW z+XNEFd*V|4muMY=t8`vm(M2Xr_-k*_Je*Y9Gk3AFIz=r?c669I$={ed9j10?K5Gvo zDMM6WwKnby3)Fnv?Ga3F8%2K9NL|hM$HL$DR-Y(?L8=a+^7$XX8>DYUbNO7mhQD$( z;|#9yQTiw1mr6wHY`oGhfy4I?96qbyX%R-GUW*fFHDbwI_D3cuH`#D;>f|cY zE7AKOPP7*saTcz^34B)(gXzy`4@a;c6`cYn8B8Bn3VP&?QXXl5lqmX32dVd;i$U;_ z&2XN`CC%Y{8ceN|k4Ux{FO;2R-rt4sD5}(3I{$J3*8GqgLEuK86#Z$a(n=U#fFB z5*@+s>K*E}2{;Ddg9CWPREjv*fbZnb7x~SM-yOgpu;_3JT|V7MLffm z_6oVg0pp=D5B)_R&a)_-)-^4UzJ^#ahnYdM@Cez?oCATgvV`75zm3|rH=4bc%o(nv zb+2AwYU92hiH}8HxK7y!V5-=BrqA9r+Pa$Jg6wt; za)+U@s7D=QCBGG@)QdBXsT7raA>87v{JRD!(U<>bseHlFXdu3H*SJH4=u+Da%9oXj zrw;2ggc_g^InQe9qhzKBc4Z}92D2$mkN$G0pX4InX##s+8@KHI_^|hdJ9Ws3a^HWR z>)V+~w++s|p5?WCLH;b?lzo}VTmaU0xn-gy-g4Bk48A?Y;zws;0XocOOF4$nrplL5 z1%%1%;qQIr2TZTpg`58b>8KPbU6VG^#aB)`g9m$Kc%KLGA_KTkdKu28x?S%SOoe00Wh_mOp>Q+6RQP8)C7pu>#sL|+>p0UOnqt(9-9^uDbZh^P!9?)$8 z6=`MA@*eO&vFwvNU^qA73@zZ+?a4q6k$sd9%CYJ4R>m@GPiNkNyWAA7>H)gZGv zNdzpzD>+Kdn?#j-pALlUypwB0r~UujlO^T|G!fo$w$C(QK;hJr+|NW8-)(rnTR5ZM zB8uKc(fWf`ypbF&t0^1aV4K~aneOohwHU|)yFQ$=vmT!A@5nhe&>yn|{J*2I5Js#i zGu5ree&(mFV?Bp6AFma&9(r@Cb|Pm_(TeH^w2#_btpK_EI8@E^i8X^b1t*g2bmgNZ za~-Pb8CozZk7>*%*r=~TPZqM9y#uO9Bb51 ze9P(eg}nTYP!XL?7wX_pF@V*1NZbljzKQq{CRK;Q&BeqZk%*=U^o-)laSua2jPFH-}))Es1 zmoM2_IoEZt@bkufBOea!9q4T9LMA&Eh1pZrFC6(xf%-a80!U28*@!=@j83Ehu5r!T zHO;BZ=HYhto0I-047Na=j-nhnpxXQ=S;h4a4J91BE zfS(@Z6uL}Ynuiu=AyMlH9MTK8w|8LSY23xnM4Xw_Ze6&4jp-v;38v?S4JpOh5hRtu zJ?aNc#09XW^L!@;7Q8=LcsMcaB%iOv;iDbgTrRk|2i)CNRE5`I#QKXh#TsG{Vv=E& zI2~KS$u}0hfSD(F^hwl$u%nydGuZ|w%xG|- zo2-#-)adQ;`HQ79aX%{~Grg-lJUjr5>ufw3Jx;L~n80(4kE49dB$FPE-u(psj)hz6 z^UpJL3>f+md_<$D@CKr4oXTe&SHx2&31WGkDRhC9#Lv?+^YIt8-5O$9d;C#LP(h{8 zeLDqh_#~Wgt;~7z&4>ZXjHVtDS*3%>vOF^w+Y#|5lKcE7vmJ>>;W%;954XqG)Y0wu zC`9D)!uPs0=gTnOeJ}po30K=uDDUgi&zYO|FHkdnq+2we>~THseKW6Z9Uskj59N8! zAIL?v5D(U|OGeTQ;m<4dc%{d=pQB@}2#bUjbI8XZB`Y zqX|xxyZG1# zURs9^vbk`oo$3D{$YiBW^vuTb_b%{vzf-sT#W(OUe|tW4-U8PICdVFv?KsKzkHSSC zpSK~A8m47M#bQiq^P_tB#aBr3 z#A;G7ERh$SzDw)^uGftSS&JCikl2`$*)}Qs&RrPS)9i!<&gYZtp=&&L5L5l(P|h&l zCI)=53fT7nH1(_CXD-7~T!k~9#j9$_o&E+wc7ewR9ypEh@aO|(k2!a$8CPLF?TxH2r?S-|Dt#b=H-5lF@`czH;Qcd8r^aVEJrTR#Tvw^ z5GF!&WQyrn5X&7*5u$bzViH*?BmvgE--jC90*fGd%90n^?Ub-+3pGPwX`Vw74xhd>MQ5G(Cc% z*@vEqU${SSWZsM0G=!RP2D!*lcpx{3wq~{opP2w92>DSXcV=2tV=}esOp_Y-FI$_$ z)P~wbp1#a*h(SBGjQ@^+zd9kDhuaDyM)oH5Eh2(-qAU6^zt^ANi=os0E)4Nh0Vy3h z&}zKsqyO#EBJANRux_3S6ycn{UC5`#f-&Te?tN?u(U*JCX6TvR<@tNPqYL@ugU4HWn z*Wexhzf86j3059M?sc7?c*sW_suT2Y8HSm5t=9v#DJdvpdQV zGYU}A&VnUffg5>MvZrK}@`c=)_^oH5<KgJu@0Y-TU)PUij8KcRT>cg3v z@m)@3=M)09bm3x^2dC%3oMAgTGdxoRJktcma;_W!r-c(>D_}}vzI+HkLo{&{q+Q_?KdnvYEkM&7P3_zObxm!e<6<5& ziQzrjPd(5Ck6;Hy@iP;sOgix!BY2b{H*m6=i*q_=XWhm!i(v+*`x^3u)#L{waKsMb zy%z#8c?Kq%KqrJh9i2&JPcck9h#}ToBHFCO!Micny(4*6QTnHoJz6N@l814RC)Unl zjdi5rUCU&Zt(@$k#J7(4kqiX0n#}!Mj!*F-9y`!i_|iqHvR2o#`nJ;Z_JHTO4`=_8 zQ!E*^gJ;T00q(Ac5ewvR?t}e*4`#fK$Tt_vW;6BXB6dd=5E21T;!t`nR`ETL2Yek~ z<#2XN5BizRoJ}Duo`t%C)l<*ytARaw|@NmOB~My`k$Qm z>F44a*g&jR@alZ5kOVy!*p-?2oVGsGS@^_N5)d6tUsCvmSN@l7Iv zydaL9!Jj#eoTe60uRi^U<%ubMsI>c0i`s}NrTKgPh_HRQ?@h@DJD}%SPYixSMfixv zLRRk-R@r#gM#q1Q+i)fl&gS9yj%UK$UMkc@sHQwWwFahk8=tLaWqGFXg!A8tMDV7( zo&a8<4gBgiuSevybmS}b%+LA!7;!Y3csZ9CyM)MjiWqx^SHF>W7zp;JGY`BVTB57? zHcuzdy9a`o!bFRMpl}P|jl#hH2NUl$gUoqmS=6B0)=EdJnLVGKRcA1V!80kwMvfED zs+q@HTf@Ab>);X7IP<$x`$bY4kD*2mA(zVnPSp}5st2e=PIm@M*}tyd=xukQAF0AT zLpw1p0IaGbp1dibtcUTTF6Q>4-mS*(YObQh!`{r?stl%O5S4JIX1y-qw>{H>S`wFr zp~g85L%E&5R)wgUlMHt{>v|jdoQ16Jy}Vi%6LQ{hx?jdk#YHcXjjA+1S#Mc-o{Nwh z`(->v->K4%RE(auY922T;(Rl%MkW5;6F-z;tkSWp*~xq?WSws%fAx6%S0~fkN=Bc+ z$~{Yb+Yc&wnJy#-Pm&wC_}*c%z?)zMwdkm>L5-N2Q5GNahMYQ1vIz+X`D%RLj7cJ; zxi2-qSNnqFjHNeY4SlVL(9yl(g!D0gWo3Gp=26_!1IggYz#pUNZfNpBvEmEMkqeB7lfp0j&5aqHE;sT2!AOqvj1oAc3_ zbzBghDvaoQjJXui#I@GMVb46f_58+Qc2oe*(TcS@ncr*A^HyOscOt_X!kVv7muW%v zK_`B8D4tAN!Iop#p9hHNHqPfXVqPS#I-LCC2bfKEUiCw2q%*AL&*TUf$)g%@E{9MR zjpHh`B^r1X&^E42Mex0%c=+UlnF=POE>4$kIj*z}=a7u+Qgu%9{$SME=_%b$+>B)% zALY*BNXUA=#7UGyzBZTYqYC%cGmGc|81{cKO>?N0wuAk6W(_%seV%pEj#yQc6DN4Kj-J~6D#iVGiL6@BhK>O_;#FS zQpz39gG+dg7pB&!#z?1&rjk^0CzppKi`7q#hVdKE`uhJuA8rzDOe4k4NyfFS*+{iB5}%V(nN%Q@F04SsPhl zqEcBQAGt57T+!Ara$9*XM|j_Rxdyw4J0p1SJvl)i!voYI3gm|Wxd;BZo@+ahy}6u| z?;zJ!H&q}?EaSwrv0ldTOl3LuT2SQ=VRp+0uD`FKo3q1lJvZNm>nbe>R2`Q%RTpqN z*C9%j0oPdqy1N2zr~I(JDfH`vlPS$0y457sUFP+SBiHZ5XI;43O}QiG;a<9san%R= zD~5O0J;xD8LuUo&Jz~*I`HmcJ3AG%eGk7U|WJS>;R-g}QHyP^@s=WbBKTDz)Rpd(D zAPW0)Wmj-DcEf4pL9f~X40{NBER<{efC)S2!F`?+m+q0dSAr|SZ5s^r0$AA~eKT0V z4c5grP;?XiPsOOklc_=u@%1U>P??B459qlsNG$rxqbl!r4E083G@U=F{M+!z2@+G2 zM@z2yOU~e&=q;DBCewMI#dLe@p!Z`KF>@y?ZzA*F>||co`J07#&cW0on_1NjStUI< zM_9}A>|xcOL%B4R8e;7~?d2=?Iy?eAF)@{$?T=5$0&wGgJj$`o zj`KLdN;wJpUx9eE4&1IB-F55mNANuN9rkoF_S{=md=6sW6VA+gJZck@-m)J(^Ny0K ze^>F?Kt1%4yuVcNg zHF>-#%O4 zi8Nn{MEf|cW#VrmRW8{9~)TY)p~1Z&g}RIL_ktT5F%068DbTc85YLrr{#S6P)P|CP9q zl^UWYuOOb@Hr>thtfIveo>pKji(Mc~ak4zt8!5 zk6B|EVcI+Kx;+jl(}*q!WD^^?|DHOsDmlRrGP4%sVT*9cNaE+4aF?5NUfkgsu5#u$ z$ZtJ$#Xdee$0@mmU67NSHHpgIGbgMC@1Yoc&o#2x+r)x0#NAN7I*Rp}$jMii`|0M@ z{>K>+#y&}<>OVzi#xH(lG$rxh&H`ZMQXW$j0>r<+nvBcNE{M8a<{k3?e+?;8DS;ron zcno`~AFR;#3Vp&USiNVw~xxq*dv-)mQ`$Q6N+H)?R<5j=lZ;T z-PO9%8fC5@2YBQH&m4aRevor zpDoeOX(wQ&M`@Q}s=upVxR3>Do$0Zt=p5y2<=Emlnf@|;U3y&l4o9Nnr&3(Kj{k%R zSN`aYcs?J2Exk-)GW@^LGGZZ&!;y&@k7=-@mH(dh9!OO<8X8W^}XM?>Q z#@oLc>nty8!}I^2Otia!zGww}Pj0EIGzdSJO}w8d`J&t&AHLhx@7Ar>W7gu<($;#O z*)$e^x`8q*0XEro!xn{G(Pp}Rt@JqFvxd{PvK+7e#kL;w>e{WZP(Fn+Ej*4{;;opy zaS>(OF?lOf;3wfyRZhMl?Uh!dc&Z3$eh!77rw+=++NufPeg)*(b5`zRZ3KxG;l;zn z2H>^1Ij8%8uFL{$UIs#!0~Lk{D^`qpb_gt}r~2^lI3qbJ&U5NsB5HWJ(w=zUl_TQZ zBeKIUo97|kFUH=0k97vqqL8P=(nTCPF4Fb2D!@Q6P_=~e#*#*WP z*uy=jUz3c>Xi-Xn4+esO_XSB`qd(UV<5$**yL(Lgt0l)Fa2y8$;q@A#EZ+^PJ%H%$=~dZ-N+cYN>=FO( z$h(y?i_(7j$iy&Bjy+Q#CD5hXrD zRk0t{`%Q7Xv{~B8nzNzeyugg8&uIQzDutAM+EaA_@gNbk<0d%y`bsM$48Mr@v~y`S z)9RA+E>{Bruo@_rFy4LOkI<@IPGlO zbmGu1=Tm1*btDd9wbXY`hqH{cymJoyX{(ftN^g4Y8yhW+8~6wgL2ugxzPbZ>ac8on z4dg#1m=rypS>yBQz%ET+Ot4rF$0re8;w`D3Tt}WJN6Hbn!u7EZrSpC>z4rmA&Ue#0 z?1lb(lPw*EbUn1u)vN{RQX69pvz4=*@H*|)*t?u}Hcy8Ko_`7doPD-h;+aG;5r5LE zwgR>=exs}GBY=33BI39Cu=`eje-cmA5S#xHfM+x;oes_YP-R3+@ zF}+6L)f^Q@oH?4A*Gti!oCKk*050*8v#cl?o0XZf!-?gm!BqNi&-<}oJFs?+lIvt+ zErfwpG$F&eiTCh(>a^YHkOR0T5v+Qqq-D$oZ^{BrwFRZ)TR6jMAW);=l>VYttqI4q z$cV)K)oct$LoMh&JTmJi)vKzYR!|>k&$Sr5JF=p~uEl)i-TDEhRJ27q?@}(HHS*Uh z>#vQRt_k#w9e3SyEd$x_!t*tuA8`_UzcF#=kn0|({{QgDurh@#7tE!dc$@4R00&mc zRmOFIy<7lobtmd0-CdBKdW1}AOU6vlv2O4ObBG6%dA1((v0UeLYzc-NOMdeVcE2Ai zLpGkXG;_@!qg*IPm-`JkiT~h8Bj67%@qU-W8El0ey$-+T(FnXEio8Q1n*cvL4ApK4 zkmM|!kz2qCC9>|R>^(q`jIY!|twCrDf?VyOexDEGbDFB>KKEfS`EN@Q`~RpP_o2)X z(QD6v@j481xr*9P5mXcdQS_4h5$vdp2GR{yR;n+3N5ACp7;%y$XGM{ni*vdISk+-P zKvTe@s*#`cA+yR!Z$~+Bj^5mDCpkuSB2qj%elodwCu*8r|P>2bM?lbxsMw>SFnlVtLx1ULO4$IXvWu63h6 z{vY_;VR+U$tij^&1kK_0wt&ICC!>vlI~iiU(alCo{3qN=8^i74fSUY{&CE6EK!OnE$Or`g4Vu2Ybp=Du=5?O z9cA#0n3{SfwGRFrn|avN9BGa1A@;}i-}WfFDrY!0II21tI=a(q8<936ZF1_w)Glc) z)5@n;O`qXh?YvC~Q&Dn_op?UXS2id!)#>U8lywGu|Ks6lGl36}K|#_6NAxb7w#C7S zdl7RwQa@}X=S`;b=ObNPNpwXP;2PdROMe{K+|6K-WvH*5WTcH)KfwU59f;`tnoBmLTg(>uc*AV%7(8i4sygj+I_0<08Z# zXm{_*t7U8wEUk!&=TRR;NlEm_-X&K4AzEEU$rM3;GYIdSF#JEhpw-o3sAdtJn$hL7 z4sBZ(FxRT+araVT<}>|A{@akOwIW?j!#S%}e8a9AX3+9&=!nvd-}J7o)hcM=xKHNM z?y7~+6s6%wbBS6!5LR#^^V+(pE9gd3)K8kIHz13+Vz^NpjzK%t9{sAP!+(e?E3Oxd z(YY=+N*e`@1idJ6E2k^7E0(BiCUAaLLn&Vg^^iAzqXjCAvwC5s&eSkYkbewB?-WUY&L{mRD#+aA zH4#Q{B8f*|F&W--Jb6tnRIWY1F&>b+KZZjLCRT*9Cu2eOYf{(FAkTdXU*acTL_>BJ z7Tx1zI39MdKYE>m=B{|~#Bm?b({oje`&!uJ_axSl+Mx?7ipNtIJkl3}F|B|DPeZS_ zk2{dv{GE!RkSUIe^%^MO0Z;}%D(Sye&woHldyy$L1T*tY9PLBKH-acUj2_=Gdd(j3 zH3Nh^M7V6OExZ70nhy@P4#%<1WFR}y&Yv=?RH{tDfv0Ltj3_JQM*9>^ZvVJZwWnF7yU5aj1G%u7XM zGD_msL!Z>kC^cufpE7ycO>l?vC(VSY4_H`nJ?L#<|yC z$1c#_Zq{Pe9ApmP&?=^CHvNwCzH=W=gn{Yr?Iy>%bT{$h94=UQ9q$}5_;oB&^U~G5 z1kLjUZ6>ux5v7fi>_~HrRz@l>@i5v%w%MQ4Y9IOcH@cH%s5Mx_Z zC!sQrM5CXABS%H*wK(P>9{JbX)kc1gqPZ3GR$5bk{3mynpUTJO9M&Ax9=36G4NtYr zqju|W3Aao_5nUdYb)x)4K43XziREz^FOTAMVSJ>6@;-gV+dT?4w2hsm5c+5qi+|`( zi$&XBl(o^7^}d*R*q(Jc0X%0cc+O*TTUGtW>+5959ZQ~pdQ1~ z;Y6yjsz3SZ7A2MmY|FJ|Ix5cSxs2mlTYWs8HJMeH`dN)-MeN5X^^SHyxxq9iyVL0` zptQwPxq_CA&b^LNRI90f!G)}#;;Tj~jny0KT%y$ts+m1>j%_sFYe&%0C!mvDjH~8b zpPgFT7JhaEg3H+=iURG3G!f$_?R;9-|xVDOdPD-35Na4fbq4p%~hNDRii=K#jAP zmC%OX@)T5otIhtxdGkiTpU&QWOaFd;Iy5TMXL*On^No{Z9I<_iR8$9D(_D?vc@C!*?Ms#P2NwPf=v!$p#|cd1ZbGhd zj_%Fw+HJKI4)NRM26ASdoO0$B&cE9JH3^$UaPHNSAx_H&Zf!*XB%Y<-k5jPj!Zkssg7c1*cWGna#_>GEAMT=F)=k7+TE)^4{o80?=OU#xXyV4xkTuT~5F`sMDTO z4gaFX{%Po(N{Mt$9&qQ(XoB9NBl+$`x)(F_(ex7})9-Z$70pGY=En!P#s@z#?Z`%OtJ!^g|Qy+04+irO;x3&(q)Uqw4 z_jfEaAS!x&v9-YLrE^ECq&m6}qjZ4tp%2<412gwFZWS|6<$9#HcYyHWw)xnImG z&P)8+tQlHUx^Fts1y+?a<%sfBc}>4YNjf|Fqk^wb58zhSq}5OtbDsQBS7>qC9rW{u zxZl4y5&Y2-j$$7?M3WGTsv#8oMFP7S27B=dt-un_lY(Rd-QlJK>BLNU$@eRmE@gzlo}48r`BMoYlm7ME^R{6Y+%9Mj9j+mAA-4Wr?o6x{@qy zKpW^o4zvtS)E2TcK3Q;MiQFr|T3BE-=^bic^ zA-HE0D9UWOrWKqf&&i@o!a00Km(m9u<_?O{B=C?H!WA?Eok2v8pqG09BNLG^44h{; zcy|?IOD(!zqp7;ik)PBQiWA8m@Hgpkq&82a4*VaTI&pBAn}}6w(G1K&{Sv~@UnDYG z>Df)==jZUfEv_mqEAvcG(_?j&x+}=`$htLC&P)lJM`x~`>85YEEk9GS|FgEV<*+p% zm$7;KdB3*CTl2`-zBRTls@jgFYfV^O7z|wdFN(118K>vW&(%u`T_>K6u6FLvh~~_NzY_U`=#bVZthN z2+jyoh)1(g$JRodQkN`!6It6#*4|1o^@Y^wk>u-vtgRX3;saghs8T$=G1c`t`Xj9( z4vGc!-^@`fr0r20N(FGRK!=yJYI;$em@YY9agTH3gHlszpnP@4J1;x8I7d4>IzKp4 z9H$*co!OihohKagomX&lwkj6&tP;n3lMiZ$vQmBR%%N^#CSX(IQ(x|7S0<%w!K)>+ zX3>JxnrdM+L_Gn%9z!NHl#ckS^zVE!no&VTp>;a#n#9cUSJcGo>3gq;15Y}A`r#;` z-l1G7h*Bho&LjnCx|_lXw}5r81%|%C980&;EEtz$vc45?NXN)}%Avyb zg{6-Z5{240eO(m`iWTLG(oOk}G@6(Zk2~>mQ1%J3kL4(JYj?|ZInvTi_OevOm%vvJ zldedu`Kivh#aS(n<++yLcx^slhQkec3jKk>(rT2*OK==ghzmE#iUx{BsbQwW5mhi3 z;VR3c`w4ruZqt$?{YpkE`4M#<15o^XiJY)qh=EyLr(r_^$;W%cdA5R^KSNJIQTk3a_}tx`FlS8lgjCZRalCoD zxXN5mY>hMB2zq;3NVny2%;>yiNwA%x7JWdKG}`N?)z@npjL%EF3_r@3r3~3Bm$vBg zBTIg38s3(wt*NcKcOkE5#D3AcnRgFc6h4)kY;DMUc7wxYv6RKLYzB4NNI8v;v9Z#4 zX(%%ZAJb2f4=4GD)Y)^0du73xBgDdD6m!K|k{Pdr;jaM>oPe&W18b+Bxw)y1(9Jv@ z-EnoYqD$tcLJ9DK6KL0Rfh=}K`!JqdP5|$S$E7%edS#*hf^Isqu?lbHLDaPZp0=m7 zCVIFwKp&``150^s9Ms1ciF6G=B$`}R>NqLp`KA9@rHV?l+y|^`=bP0)&yAqrQPan2u(-9~x6xwzl_Ngg9D7E^^-YKLsp!{^-A zj5~O(pEqjK0oK_)4+opc%nax$#t7p~gHeeVa(9KnE=hO!W#aZUDx9;zB=L4tJD zJE+Myvym~}TpD%IF#`pw@z9+GCF(X;2iB-SMj!9~iUuSTRee>IXwh)=OVAR0XHvy* zV(WDile$b_%uP)*&3`irn9Q_`YKqSI~ouqoNElh4E~k z=%`sGeC0KNHSeO2?5c z8%($p-oM}I<=aQUp54{P?df?aAng{z<>vAoOKv7!m+%Te4bf1b*v5X1gvHIWcz6?YAtO!%k|D9nj|_$q>=JA%MnXSYn0qgE+9?k%C|FT zpqW@p#WRTR<)*}tKF(>59n5qqsZY@IfX_}rGjYUq%{|Y^?mnh>gg-E$ww()hlAT$G zff=h@rCj6n0KEbkxxeF}<8b;QoK^jp-#kUJXa}?$u557SD>C{S%b7r%+fbal)H9Az zOt0{Fo=`e7GpCHY9B-gtXDQ`Rdc0%3ql9yxa!ZkzmvvUFhZk83qqr`(fOm|#dW>PA z(`z6uj&*sBWpIEEQPwCM)uq~4=Dt>=MvKEO<~EqXTy%wZP`!ON1q$PdHbuxHB5+`O zMLv8}7zIms9bU17`46aF5ZwA-sV?f@ChG$0E$d-xCff<>+>Oi$lz5&J{H%qkNF^l}w^UF% zMzkA=hw&EXJ;+ip{apQ+VR1-|l6rv+kHR&r63k)=T+^1&nb@EDD>p88z2PN_ak>Y< zUlm3vTc28^2s#OGc;>z6uG)cLmCLx{Mu+dtpRtyjHrB}EnhnbniqFqIGLm(${LgT1 z+lNNsKDCj8uUJDId)5dB+blX?P zC%H7$a9)%g|3g>(hR%|1Xf=AmGn?SvZ=)01h013d6^hxs4eiQfa)s9DEDd*Nv>%1x zXu_zTri%lqhk|&Nm%>2d|C*}`KdDxdOc|yD)HkE4Q;NeFCBh_C1fO}17teq6lti2F zp*X0CV`4qr)9--^_m{@vKM=%y83We8jXb?KYLcR4Dy?vssK;|`=UyeyC+ae15;l>Y zY$eW>q~l~eDBOD3s@`;?)D|*WL+i~wU?=LCe~`&MBNrQhZgre#5>asoSnzOopMp4G zPBo{)e785(B7+O~S5vRR^inu!T&>3QVvD(Co-ilR>~mixsU7sD+-qGypD$S$SmRf zdV(jU4eZ(ADvhNFw=Ej9CNT9OAV)>ud&yn#Dwzv^cL7(F-JaP& z)+S7)jAf?`vQD+sVVZhxX*%v5`^{l6K3?D;gQX>MfJLxIT0?L-J|b3-dQ!1Ej0k4T zPh}RseLaf)l`1JMFWQSb?1<60ejnll4)~|v zOF-YWgZeehY@u_n2wf+I@!ETA9)Qv|i+ENDl75I;$?bPh>sAMOzRRqmr}+AeWe&#_ z{ORxE5A*^ZQ3u?~-dhrwxDjOuwgeI7vRGbOc32{;6|DQ20Vd*NR?^bV(gKhDFVZ@E z>%*kg)NPBH%@=B2YdMUwSx4(TOLj{-b2N|RXLFAXt^gQC1Ke!Z6Gdm@8!?GEyIqh# zSO>FbOPJ20`W^`b-3zqDOawcRkJVsPn!8bkjPq+3(C1hlb2-Dmxw~fkhl(=>G;%K5 zmudQ0xTVW<#kXP-foDQe3s}ShIQ0}`PW5wrJnpdZ>M^{5+Jowt=#Tf+i=gOzs#VwT zQ&ks5LY|71|G+mtRx4+@~+79(YhgTq=uD zXDtKypNGeRKfS%Nc$P(@!8nSp`7x@DE>bos_!#D{MB=m642G+=RE^$XvviZQWjC(N z*Ti<5I-&RrWyM7y03M+%=SvWu1vBg9FFnK)c(!J^p83I%J*ETsEG*P%;i7O7e}qjq zc(kRzRDz|vNNzU^O)(J3&uSZys#;~ zD?7ljL($+XoX4Z-uzHL}!$}Og#B+QAg9C!^@-o!h7#{Hipamjz5VbM zc~SU2agU;o7@4uxJ)GDRjWYB-nbbOG;~DhS-Ig=iLA$j7C<7Pnl;I@od=OthMOKuV+*j7LAx$>Y^UmFVf7ULp69 zcQDtrJv{SO>casZJ)z;_+6}t=(BMH5ikoS%O`GRC;FlKmghis&i&GPH0O zSk(Ev(nlG8-Ezhmvc?wwb1Wxs3_?Cq+`){EVqNXWF)q&b6Z2|o3G5s4%*#^B9dV)@> zuHIC_)KGLK6>w@Sqz8jm)rCb4!cWBCs zKxA(uZD;-IXzjK$|ItoFio?%%2lFDMh~r#8B2IR4uD7^R&ypAOTXk`ve!!HObxea8!C$D$E+{L#z_F$g9B)6k zyYsBt08{}J;KOpzf$GmAKXIu)54S0oxe|AKKTK~^^yA5Ng!iK}U=v+w{%C1D-M1a_ z;WC714j7uDfJR#bvRK`w>XDjh{%Rj-LsqnTr`fr?g(UB#tA>EBX=R z9KU_vIH&s=wQ*N`ino1fGOZ(;O3l2K$)i=#?F{9PWO4Ol*3EeBp!Q0cjL%t`>LOMp z;y#rRjHnCKp02sJFp;H_s}XTggKJARwi&bBHhN4Rx!V$30_hSGVLj7aMcm7cb+8!Q zj49|Dzf-dWgTMHouenbSbC-TG4|dxhc5ou^%+N>se# zsXY#XGgU-SaRuLiJz^xz_$$S9va1((-wdTscQ^kZK_=7$X8i^JiFu^gsKlPbh|NZ! zRTfXO&q8_ht)6*Go(OddRnHnK?#5yzSga^w%NZPUwwq^?S2^%lEQfd6Xz-YUD0>>h zzU^b3?J~cBtABuorWd*$H=Y?csm44C=o|biFZgmJ(C1v}hm*iKWn=Ovs$E2vzy!Tl_T<6TED&27~0ufS>Z!ll2USF{@Xp-S*{Er}sZcz<`% z^_=HDUZI!x1|4)q_(L$gfR9Jgr?irMv=mw)1@(f* zP1~bxe*#k(%}Lk(JQ8lLuS@=d|GD zy&mV#MtDxk*1x!GDe_|K=Lf{i3Fy*tp&e~P@7yN1$8GX2cE>F_0#0c#S*X8DbbZns z+7P0{dDjnDcKTHIlMmja``{1kh6UgAs@h=urGKf_@Kh}5`e8({p5o{ieUAd;nsLK$ z;cpe;e9lD6e99L!izXW7jHS$;ZU#0buv?ZBZyGB*lqSwWC=Ne66VaXQaLsWYq67ZA zi%w8#gLH821f?B_=w|gP-bAg?q4q?plHhuS3uwAg2Jg}5I8mqJot#;faJ~-Img5L9 z4p#>+dfw0C4UrF>%Ng>4(RlPJJzK+ zqw-NA8ZvHa;_hjrV!sY5Xb6D*Wvxbz&}gS^HB-DcOHC2 z8ok7G@dX}==ja>|-#MI~>rpuDM#JjDkz^hnJr&r;?ZKgbxU*)c)Z4qsTaN3J;fu#l zPvTiDeGZ;J$8IR&gNazxPy(IArFAK}&_FzfywL4P_yEmA<2M$C-y?F_8@L7C(ynSI zW?8=0GZ`z1V|(zzv*F1xof`Z$_2N3F&el=)QU{g*GfmUhvBoMgL!pG>hlX`O6DZp; zx#+lF0v;y~PW3QVf}W_II~ym^PIn*K|f~$V)h#Hs~KbrL#R$pQ>Q$q`{4=ugI6 z7ystrbm@DM%}l1s=!FxW33sjpqSs4ybRbSolW^rQiI;?a_@s;?EAqk9%n&k!GGYy} zG9N)W##W>=3`Lk23of-9&EE&~h=1YwZxb6mvyUd>{9G8tPeEKhL|DE+^79tdqa#qF zj>A>z8PDi1mKSeRKNdk_a1gChed0}49{tIsHq#Tdj91;9*!762tMtE)qtaAn!|2!8 zPcG%@w3tnn@&V2CJEGM=-v2fj|MhrsF5qO=P%M@~>*^rO@^nnP{`GNG;=9A)`_@u- zdefKI8RdgNJ%3+#cq+sh#E~!LTnC9z9={WhC*xDPA`*#LbE!QpF>CHV+MI06DWA$Y z6GIGLOC;6kt**)R0B=_XJoLw*HScYFbXnai;fAw;*nLJJ*$|JdoAi8iL4#5hp716( z{~t7dD(Aswv~xAlaXtf;nTLaJC>qSh)V6zxmnDh7d-1XB&6#rox29s?mTq{EJ$Uj= zBeqn>)uj^}A2s6{8TWd6c$2`pFSx#-S6j&Zmygt>t;k88L|#9-an_N+#L^}Hnw9*K z9BUn}Xist9T8JxYA5MG0{SyzMr>;Rb%Y=hu#Gz6fYxo#lIdzM<&%0L9%T~bs2PKR* zvq$dht8tzF57)IV)CMtR2Pg4Mj^w$XqQ4Et<>rZg2S=hw`eA*C9z?v{f=9=1*q^)f z9j*l@sm;9ZG<3TwP}&Efm<>g%l<=>jn9H?Jbmu|$^mzLLaBbV$tMv!Zed^csWY`((st z<&I3i`7V{0C(&P#ie^DWjoXjs43~B=_p&j#%muMKIKxu(n+tJ7n9q56i+>m4JWt03 zt~+b|Fl(<6XWTE|*IoL#e~|C%bTmIkowS%fole9w0qkcbI7b&WS>a$uPsmFZ&a7zq z9OLj8ddT_En3>sASbNKi*?2uILgBTR{)U0L^FE<&?2l7gE~1c#mvuEF-cJ!8@w`Frpief6qY@c_V^kyN4IbAs8!^looMDV0KHbGpC4`!F zC^LkHl9T0kFF~bU+x3F;$=kh%&tqK4xCL(J&J7@j1!f#`ze2}(fVFcSPma;tXD8=> zBl`1J@!pr9ptucpSqi=MP&)Abvim%f-J{U$9H*0PAp2!Fd{-|N24!*i+6bys2Mk~w zI;K_Rw&y%(GuN^ed&T3!nuH_3R#rqMR>Vx0xn9I0k+^mlRObl#*xmHxp2jOEKDe~5M# zp%s5?2Qe!GgzF_;js?g%oAADt;|7^Tr}0lF5G*BT6ecF-M#JzIOecVd{tBF`H0WCl z9xg|zEKQ)IJ3+!?$!&8IH+R8?j$)Ts=$>=I{>>$-q`G}LH?O#Bz;C>wCc8!?iy%g1 zN3xl3p<$(`XM z+tOQkj5RwNtTKn`1hcpgbFZF|Pd=g}v$iQ0ip69!CYQ>^Uu!b>QUEt+IP_9dx=kex^_W1y@7O8JTbY^v_dNg4{ds1d<-X5-&b9om<(zZfs`ZRkP3w;DGo|iJ zc{cT`Dg?tIRDTkf^1##GRqSbJRsKuK`BJtg&$DLbWfe0{lP~Nozq{8dF<)j7!<~R6XTm zG34=-*X&%35`nFg+k6r45=hDnKL2u=#%%25D^^*)B8J%K8Jxvp>dT6}s}^aWnA+C% zzv?-<)vV;6Y5nTSm^|XUtm-Bg_di|Qx6MR%utVTZOnz0{tE&MRV>U0nO17Eh+Lwwm zCfGqRpQp9b?wdn=zP)n4^F2rKJ5RItDCPz`w1`zcU{Ap*YXon5W>yAkZf2102CR7z z>t3$Vmrwc2rAS~sk;R*|?I~+R&$G`H#wxdWhYpMWDbf z+)Gqz=OrsK3ak8d6Y7WBWLNpUYgA-kGF!Jm_!5 z<~TLj@~i$d)_${*5h+?=r`HTIWf!^4S@LaV?0g!?7JXxNlddokU1it+Re0 zk90v6KBKik-K>v3Z8yg>Nb(_C*Tnxz^5ZL2qsuA({+~1@;mmVQew_RR&^eSC9Oqp52+Y*lm|66?EmC5)v=cLD@Z(y@AZMTTn*&(i?P9{ zX?U~@es{kvB-Qimd8=a&QIt8E7#Yq`(cU#G~4R~!+oqI&wn@E3J@OrwpE-m~`cuemynQ0wf2>?9V}`U3`|`E>G_aPYwtkM5 zzYCwAW_!Xe@dm~?niZN$!l!!oiSu7KJ8=qTuC~wdqUi9vecyjuOWa3qyI6OUU*)Fx zYUQL=QRSp{`W@}f-=%`oT>G`_vxmQ`%`;4Gs*mh4o5U8bw~y+WcZa+#+bw$A?_b&( zk}Kt?=ii+)S9IHI$@B;Y9K#S@&P;X4<4y^b-4-611}` zxg`|M8>u{W*`CbSDbJ*4u#dj6${&|R!iQCM`Pcka*3={wVdm=ZHT%Qz(eg@ccL&X=-7;>tu z5k>yP=ij5FJx48;1#jfJq1#0+AFJHh)Kf!y**!AMEOISboeEYO*H@1tdzw40DMqq; zThCe2+P@8ULq>@w^O~o6)IPZk+E2C8?oS%H+Wj^Geyd{f0Q{Y0=0@_IVfI zEMRqzynf{Dec6_h>I@W>D=H_We?nyNAF0Qd}@Ogv|DvL`JQVnm8@4faajXv%^Hch)A4#{!j4g_ zRUP!HFKSw=@zGi&upnTa#JXjAm zn!$!#kRq!&?rTPMP4=oLgnHM`{a5AL%Ujo3!KXbu%7NAdE)>n3Q5hkly+y$v%7Kf; zwOZC{)i-E+4f@`Kq=vd-;W@tPqyL2Gx83haD;@gqSjSqawS#w_s>VSnM}D4ZAsACu zRlgJw;*aih-725a@^KqPq%$E`f^2`N3VW68FM?F<%t}6^PiNppmI&f3Gz%~Sl7+q1 zyJT{5lClIy^aIR24fAT^NjwRis%MR1OhXv^rm;Qmcm@*x2V(VwhgoEEL)C#4{_i2N zY^Y#)(Vau}@51uEW#m#4$Z=P?*a=Ej0bCpyj$qFadv+7gbJ# z^|B0PEqGVMTxG29Z_6n47i%Ut#-U+$^$#=3wO3UosuYjwQPJ7!j)iFa7miJmwSNQM zJ3_)ajva^$D#hpuOvFjJu13aR@ixtJpTysrs4A_ z`>ERF(g3;g*^V=EO=r=6ja9lA@FrBPYY1Db8OLV)SZzMDi0?+hyuQ4*%dS}HyCdcX zLS44QIGNKu%d2UySt}#>+OuV@lC%}FBX?C$iPG!8eLe@bPI}#^T~T7sQ{vvvBqNsp z6>341R|6`Cnpnp}?v!WMf{qtYDFzj)sXj5$Jl}4+z7yd=f4=@aD>ZZQT-urot7vV< z9v<8Z*|ue(<;DIlP%CGp?0P2NPN)^NRZYjS(4&ruvBgAvHQ45_T``M2o&ZPsiAuMN zGpvbBK9KyjGeb@M?xN6dT{lx5(@W~=WY*i$qTp@r@Tk6a6)(-_Iejg+SWiu!!YaBv zZLLXHG~R}$zpFWsfrtH8#7{15J>CYC+o!HZNfx0j32MYw?aL~bwV!_#T%RxJm|3NV z6tVtJb1$KK<05qZ%3RR5?lf83-OO4KnhZJf8jba~zZI~rjmmfxSj~pHKrZKBChRhx20d9aUJFR3%;`MK3 z*{48|&a6v1YfaDCV|v@z9@v$YhYW^FKxIf_LrA%VG_Q)FQFszz2YQrU6_xa&l_W92 zMS2;kmKNu|Jx>$s(Z^bRj)5Ydp>Qr#sU2mH@giPkd-G>Sql-Yd$JJpxukEE#;rTEl z#7#}i%=2nw#n3OfniUH~194lGQD~T}dj|k*<@ZYoEC3FFokY za=gK(OKYr`Aw^o!lu`V2M9)HP#!2#0dtLp9D|VCHi}e1s=xwR?`lhE4W|8ZFQD^wU+u&CV9?L*jGFNtN2&z@#wOnV1j;TR--k$Mok@d6F zX!&x!%SKw9=>2>;+glX$4r{eTM*4`?9)5n3eW2;(W@F^sGimEtTADBQ2tA(Z$|UV& zV#N;G_jXR}TX_;aVa#vhr%*%s342KYQv2>XK15~q?@e~GafEYC=+SVz`Uocmi7Vn{ z(z5G&Q=|DFMSidnq^+YJZ5>A2CK~Hk5O^qB@8)gX#HagwwZBPCpj@a#{kup#EnIk! z42}>XCwNzv*0u94%%ltuN%yAPE$Hf--t`sX_rm8Y@_n88phtMbOME+kotn>Q+2xy~ zWcUv;|03%J+qtqi>76cG+93X+NxknG#f~nd$$|C**!zxE~qm4TpWZ$Qdi-2Q~(t&Ga;ilQJt7K^h2@bWv zhQrK0s+LW|vDhne9V8&*$C*+ivii(m;Z( zbUHk(BH+V&kSoT@&IDr*xrUX}M29-k9yvyQ`*|NBsVAMwU z86yUGRTiQNsvlB2zL{QMHKM0sLmX82M-9{CwBk5DyTTi)j(Yv{I$-ryI<%ekFQ#2f zSk&-Z$37e;BLV00z}#n?ca|=pl|3|bF$gm-1^I;{9)2qlr;+PE3=UW9Hq&A zQxe*V<$ak>z38{Mt*m%4^(7gPf_`hPl^%AVydXk&$W@i--w@oIK$<6$-BA(WAz(~` z_X%XV8w8qzXBYHtvp$}}!^fabc+N*%zQkAL>3yC|8T^aGvk@w(1p4eWCpw(OHAk23 zc=Qu#{MoUEEH3b=rK>_c)p&AVmTdJxonLTpIBz5oFaE@}pL`xCCZ12af8>jOi__Ck zelcq`-Y=a=L>}^Y5Vl<-OVMoOIX3f}zZam?X?;Dd$3L=z_0jGXUT_T_MbPkoTYda3 zLhlQp&NJeQHTKnR@k&lfqf$%?RJiSxtme)v6{O=Lb@GRWyf-A-&0~od@0ao{hwcz% zF^pQnZ<)iFnP$b(VqVP#*!8*d`--!EAWG+PFAc-`@Aj(ftlfxKq@dfWir$fp8}3 zIiC2tDqV$Kb6);p^_L8eLcFXR$ih;Tw5gJ0gluY*ZS zz{D=TJ40JT4t%ZI=fQAcQbb0=^R*@!!5HmLAwg5L-UW8ND(=s&KI3-2?kslj4BWcR zqTWtz1!F!Ut$A7WP)~c3-#@1Xv!VMw{_;_O*O`xg$y{g-M;q85Z1oN?=K(r>hy}c; zwL5J38e9vu`!jMjiuR6X@8|ONCVTzD$KI-~P-FjhvbsvEU(mtbEN&Ke|DP(92Vuub zzQEsF%O%rQnr$x!qk~;&M|<9dh@Ye4Dwwo_Ud@MGzp)2b*@9T zsPhqhts(1H8W*~tc0WCO%Xj~Q^7&|T@O(?!b$kF7{!}lvwixAv@eQDb6Zi)|iBVen z)WN9dpxSbjST17k$r5KzJ_b;HT%N-FH1t;1n+)o@EcX_MZDTWZ&y(HHQ^B*_`!+dt_JP zF|1wct{)fdY&^=pD9(F(%^gd@hhoktriZ2FAl`77rqFmQ*_ex?8zJ-`_`Sr~PLP7I zw(2-(na2YQ&uSS)2Hqhp-|!JulAk297AqIA1NQ?8&2i-+vM}BM=CC_>9EskCy4R=3 zXL$ZWMR@R?TMe|$U+>+dpS~r_OdIxLF+cS zA7Yb7WTY~>wg{eA6RXyRC(W*uS%REY(v&iEr-v|GEu`~9P;kGcY18fK}`3b&C@b9OP z*Jdsj3Dq~E5E1;340vQFzLnxr_Gdr8!;djABY`y-Ck6~F(YDa-?@(kiEnm#@ z85W5T&qcDN8KT#~gLx>nmYp~b#c!Cyx@DC|YE({f)IPkfjjv&!$Ort#n&?@G92AWB zgK2m$&+2P#)x-CoXYd=M(QYT1oQ=wRj49Z)&v+jR{+Y$`Z9gWHSL3KSP^_G`>0ieLT7~g9!!bZydd>1Pg+$cJ!%>-=C2UZBBDm;leF6 zpNqa@@nkO=?}6!4MIz&&&vX>;Nx#A~U^A&ge47XHjreOg59l+T=?{at%A<9PWWSm~ zkJ519Dc{v`*BoBC=y8Ag`4;cuCHx+V#|uS+Asw>c_T$# z)m)X}By;`IysA6i|7lG|Rea2+7X3Ol;4XbB;*3j1QlC`*Xx&*wG`XVx6G>Xor%IyG z99jq!_8++SZ+wLd-X)W}*$=>VRMEck4H7x_Fx zZha8V>rK;|Xf2M_7{rsC!Jc=42O*DcFG<9Tv?5Dyld7gX>ngaOPyC(Ts~~+!Z?sqS zECX$OQKjq(dR^I=a~kn2YpTKsLLKVt^f>e~ojJzSba)BG3$>Ux;^(LMyBu$}(B~}> z_kop6g(7V{3B?}OLJqCwqghR8aaa1C+uhER!JF<}#Qoy+Erxd8cXhzoWZcRQ30t#) zS0K=@B82v?4SD53T6kYnRoD2s!oqRJ{5j9+6SU|7Kgv65K$De_Emm%#1A6?0?u}gA zQ4dN$*RaYX;Ab)Ytco%r2l+JGSD{@+^)BQCH;B0^)596G^(nt>=Y>3EG?&<+&5qr) zDZO*6!^G^Q>Z;yn(_UtDJ%^@g&@|+Vx6zLv6AAR8yeh|W=1hA)u?}8c{h1tzu?aj*Y)R87b!~fXMEk<#U zJVmgJ)KjNRF7d5?4M^bWo--=Cpi7W;?o0H_U;bq34@e0@#q@;x2 z&iCjG(&b$m&S57)J<^4u@k#W1HxGM{*x`F^H+9EPS@OAT@F?xZi@}Qc z`>Zhrx`i6grlG@BP4o)of)(R3|JnRtLe(lup=Iz4%zQn+|_LCm#k{|?tRp6&R1!q-52O;Eo1D9 zN8x!E#mQutQw_PB@Qi^EogIgsw<8(#FbjADz6HcBCBDn3uGli8?y3Jju>O0Eafhrx zOIp*HEw~1$(#Zl|h~%G|kn_-^FppS_OpSGHm(^Jar>5)U=eRk*=zql91b<&9>y0A1 zF@$8baL1DFoD+{q;7l2xLN>cBj+P~V8O*0$z@Z~>G=py{Ldzm>z6TVl>v>|ovg!+1 zt<#RZtkziH9E7DA%yXWMV8dZn__{WBu~CcU3ztLY{xIPO+HuS|%W$+mo{xYUr|5GQ zefbBrABgy=*R^{Vy8T9TlKc;Cu6NHh(BO}V^lYPV8{Ksb^dIR^)fAluh{wLx=4Y&R zs|X6Mj(B{F$jr}LJQrD)l8tYB!nFnAbP_~;fdoD!2AD~Mmy)k|_*h1aP(p4cj(mO! zxq`>PRvW8H`Dzw(0nPp#stv-gxzKB?>%MpInLL?8ku1;(5<47%wsOTH7!_8%WKyl^ z3<@mJ*P*Uk!j|79=jZVIi20?bX-y3}-vURf(6kg*C>DpFBUP`_v^w|}=BgUw;m0Jd zlW$vk-;XEQhmMbnwkE{!Z_U8=KT#l{ROgpK<~z)z`v|OHhtWL!`;xTyA{SA$m}5R zCa^d^qQPc<@s2(3C%09-?vl~) z%gfpeR;3jGYBF^Fj-EVB6Hej9ZTOyx9W6>Lg00zWY)SYNp0jWTzpna}nbkOkds|_C zdK#UDt+@c7W`&BN{$W)3Up)8lX;JR>v%G)?w&jz9GArgm!Z^d_R+TJcl?Hsm6o zqq=c^N-kQX&FlETg6-G@^@D#moP>;r_altH7sMEb)?HCF9$qyeSK*l-Atq|!Q%9T$ zPtYocFYQRud$3Fy6KnZ@GL}s|spI7M0$Qyy@09yWtI^UgX?lpZCZO4V zl$kAC@H(&eHBym)qQ}ww8ow(%zws*C9zo+2wm+LO#^6m_R{lP`%!mf@Y(h-b7wEc+ zlpgmt%#$uf-+%c#=N&syFJNj|i*pk7_Uqw2Xm*sWhjsr$AjNjQEy&i#ijYIzvmPm| zOShhab=Bx!DWeT*?9%c%g4EoF6-CKxh^Bgww|uTm#{GLno=*=4qR~k4Y-_)UyjMB7 zlVrZdZJvHL)US_@9)`|F=8DLDI#zQ9y;z8bduU0R$vI5NW=BRdkvxnh89$JjrSx!u zh+z_mmj~LBtn%-GI=Q(bKu7ImE>o&30Ya_b_v{jckPa zdB36UF_QP2ejkA3cS+f!_`Kist8gJ3%X&uNC(+V{e!oQ)!<=9j7$5NdVe%10$D`?9 zEyr`DFt_`c#MgLQ(~VS&#2y09Hza_M)B$Y2{ON+x^ZSxn(MY+1B>$@NERN?zaPaD;r`B;0Qo(b`7h z?{{fvW07qfEpCs`!yx->qT4vJ?q_~!%L2@R=FxIq7isZ$C^npB`wC}|q?R|nb`d=( zto0Il*@<6Rh4n2=8e$_W3<~?cAUz8aTF8g)rTdHdJ=yUl3(Y%;d->2g%*h6?f0f@h z_ve&AiBh%|=GSXh10+$c&K zS4OY!Je`VO&!K&?I4sE+LcII9-$D$V-FQnx&b=p-r$U#WE+>6wtmUZWx&nA}JYr+= z7=Qq>l$5TSJNv1*90vN=>3! z{dwR+@n;zip{Mh*;&&dl<5eC&7w3c(*RMjH);QQ5=J%mnAK+jot@nc6VO`-W(fdz) zi=oaK>DTRYl?#2}L3<^QGt5tY>fEj3g~iV60Fz3hRsr7^b>u|9;}C8yy!n^qxrbi2 z@jfkH2mK5_`=idT#6Fkd^<6^Mhsj6-?OgT#5cz(Xg~{ODux2C7cZIoyL{k47EG|Yy zOQXOVR2=09E4R8r>vlYe#&TEl$i_HFB^j*dyy5rE7`7GBZ`4MZ=^w=&e?m{^k(WJM zoB{1R)9KdE=?J$s>iIu<@H^}dl?A%_?q?Epj|~iK6Bg5sx5RDT9ATbhi+%(PKSY*0 S_}`!EOE2#S@xr_4)&BwJn4T#B literal 0 HcmV?d00001

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 yHnK(fkE1i}yeGgr!;3-D#_C7lBU;GIl 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