From b7176cb53e47f72890aadf87ce4b4b395bf90f8d Mon Sep 17 00:00:00 2001 From: deffcolony <61471128+deffcolony@users.noreply.github.com> Date: Sat, 2 Sep 2023 20:52:46 +0200 Subject: [PATCH] launcher update + icon (#1085) * seperated languages into structured folders i18n.js needs to be connected to index.json so it fetches the common json files * Update index.json * New Launcher + security file * cancel locales feature temporary * added secrets to backup * replaced download with winget * fixed restoring backup bug fixed bug that creates sillytavern\public folder inside sillytavern\public * fixes date format * launcher update + icon --- Launcher.bat | 580 ++++++++++++++++++++++++----------------- public/st-launcher.ico | Bin 0 -> 125279 bytes 2 files changed, 335 insertions(+), 245 deletions(-) create mode 100644 public/st-launcher.ico diff --git a/Launcher.bat b/Launcher.bat index d56bdc6f9..347554786 100644 --- a/Launcher.bat +++ b/Launcher.bat @@ -38,11 +38,14 @@ set "node_installer_path=%temp%\NodejsInstaller.msi" REM Environment Variables (winget) set "winget_path=%userprofile%\AppData\Local\Microsoft\WindowsApps" +REM Environment Variables (TOOLBOX Install Extras) +set "miniconda_path=%userprofile%\miniconda" + REM Check if Winget is installed; if not, then install it winget --version > nul 2>&1 if %errorlevel% neq 0 ( - echo %blue_fg_strong%[INFO]%reset% Winget is not installed on this system. + echo %yellow_fg_strong%[WARN] Winget is not installed on this system. echo %blue_fg_strong%[INFO]%reset% Installing Winget... bitsadmin /transfer "Microsoft.DesktopAppInstaller_8wekyb3d8bbwe" /download /priority FOREGROUND "https://github.com/microsoft/winget-cli/releases/download/v1.5.2201/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle" "%temp%\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle" start "" "%temp%\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle" @@ -106,33 +109,37 @@ echo %blue_fg_strong%/ Home%reset% echo ------------------------------------- echo What would you like to do? echo 1. Start SillyTavern -echo 2. Update -echo 3. Switch to release branch -echo 4. Switch to staging branch -echo 5. Backup +echo 2. Start SillyTavern + Extras +echo 3. Update +echo 4. Backup +echo 5. Switch branch echo 6. Toolbox echo 7. Exit REM Get the current Git branch for /f %%i in ('git branch --show-current') do set current_branch=%%i echo ======== VERSION STATUS ========= -echo Current branch: %cyan_fg_strong%%current_branch%%reset% +echo SillyTavern branch: %cyan_fg_strong%%current_branch%%reset% echo Update Status: %update_status% echo ================================= -set /p choice=Choose Your Destiny: +set "choice=" +set /p "choice=Choose Your Destiny (default is 1): " + +REM Default to choice 1 if no input is provided +if not defined choice set "choice=1" REM Home - backend if "%choice%"=="1" ( call :start ) else if "%choice%"=="2" ( - call :update + call :start_extras ) else if "%choice%"=="3" ( - call :switch_release + call :update ) else if "%choice%"=="4" ( - call :switch_staging -) else if "%choice%"=="5" ( call :backup_menu +) else if "%choice%"=="5" ( + call :switchbrance_menu ) else if "%choice%"=="6" ( call :toolbox ) else if "%choice%"=="7" ( @@ -144,6 +151,7 @@ if "%choice%"=="1" ( goto :home ) + :start REM Check if Node.js is installed node --version > nul 2>&1 @@ -154,20 +162,26 @@ if %errorlevel% neq 0 ( pause goto :home ) - -echo Launching SillyTavern... -cls -pushd %~dp0 -call npm install --no-audit -node server.js -pause -popd +echo %blue_fg_strong%[INFO]%reset% A new window has been launched. +start /wait cmd /c start.bat goto :home + +:start_extras +REM Run conda activate from the Miniconda installation +call "%miniconda_path%\Scripts\activate.bat" + +REM Activate the sillytavernextras environment +call conda activate sillytavernextras + +REM Start SillyTavern Extras with desired configurations +python server.py --coqui-gpu --rvc-save-file --cuda-device=0 --max-content-length=1000 --enable-modules=caption,summarize,classify,rvc,coqui-tts --classification-model=joeddav/distilbert-base-uncased-go-emotions-student --share +goto :home + + :update echo Updating... pushd %~dp0 - REM Check if git is installed git --version > nul 2>&1 if %errorlevel% neq 0 ( @@ -185,39 +199,76 @@ pause goto :home -:switch_release -REM Check if git is installed -git --version > nul 2>&1 -if %errorlevel% neq 0 ( - echo %red_fg_strong%[ERROR] git command not found in PATH%reset% - echo %red_bg%Please make sure Git is installed and added to your PATH.%reset% - echo %blue_bg%To install Git go to Toolbox%reset% - pause +REM Switch Brance - frontend +:switchbrance_menu +cls +echo %blue_fg_strong%/ Home / Switch Branch%reset% +echo ------------------------------------- +echo What would you like to do? +echo 1. Switch to Release - SillyTavern +echo 2. Switch to Staging - SillyTavern +echo 3. Switch to Main - Extras +echo 4. Switch to Neo - Extras +echo 5. Back to Home + +REM Get the current Git branch +for /f %%i in ('git branch --show-current') do set current_branch=%%i +echo ======== VERSION STATUS ========= +echo SillyTavern branch: %cyan_fg_strong%%current_branch%%reset% +echo Extras branch: %cyan_fg_strong%%current_branch%%reset% +echo ================================= +set /p brance_choice=Choose Your Destiny: + +REM Switch Brance - backend +if "%brance_choice%"=="1" ( + call :switch_release_st +) else if "%brance_choice%"=="2" ( + call :switch_staging_st +) else if "%brance_choice%"=="3" ( + call :switch_main_ste +) else if "%brance_choice%"=="4" ( + call :switch_neo_ste +) else if "%brance_choice%"=="5" ( goto :home +) else ( + color 6 + echo WARNING: Invalid number. Please insert a valid number. + pause + goto :switchbrance_menu ) -echo Switching to release branch... + + +:switch_release_st +echo %blue_fg_strong%[INFO]%reset% Switching to release branch... git switch release pause -goto :home +goto :switchbrance_menu -:switch_staging -REM Check if git is installed -git --version > nul 2>&1 -if %errorlevel% neq 0 ( - echo %red_fg_strong%[ERROR] git command not found in PATH%reset% - echo %red_bg%Please make sure git is installed and added to your PATH.%reset% - pause - goto :home -) -echo Switching to staging branch... +:switch_staging_st +echo %blue_fg_strong%[INFO]%reset% Switching to staging branch... git switch staging pause -goto :home +goto :switchbrance_menu +:switch_main_ste +echo %blue_fg_strong%[INFO]%reset% Switching to main branch... +cd SillyTavern-extras +git switch main +pause +goto :switchbrance_menu -REM backup - frontend + +:switch_neo_ste +echo %blue_fg_strong%[INFO]%reset% Switching to neo branch... +cd SillyTavern-extras +git switch neo +pause +goto :switchbrance_menu + + +REM Backup - Frontend :backup_menu REM Check if 7-Zip is installed 7z > nul 2>&1 @@ -228,7 +279,6 @@ if %errorlevel% neq 0 ( pause goto :home ) - cls echo %blue_fg_strong%/ Home / Backup%reset% echo ------------------------------------- @@ -240,7 +290,7 @@ echo 3. Back to Home set /p backup_choice=Choose Your Destiny: -REM backup - backend +REM Backup - Backend if "%backup_choice%"=="1" ( call :create_backup ) else if "%backup_choice%"=="2" ( @@ -254,207 +304,6 @@ if "%backup_choice%"=="1" ( goto :backup_menu ) - -REM toolbox - frontend -:toolbox -cls -echo %blue_fg_strong%/ Home / Toolbox%reset% -echo ------------------------------------- -echo What would you like to do? -REM color 7 -echo 1. Install 7-Zip -echo 2. Install FFmpeg -echo 3. Install Node.js -echo 4. Edit Environment - Power Users only! -echo 5. Reinstall SillyTavern -echo 6. Back to Home - -set /p toolbox_choice=Choose Your Destiny: - -REM toolbox - backend -if "%toolbox_choice%"=="1" ( - call :install7zip -) else if "%toolbox_choice%"=="2" ( - call :installffmpeg -) else if "%toolbox_choice%"=="3" ( - call :installnodejs -) else if "%toolbox_choice%"=="4" ( - call :editenvironment -) else if "%toolbox_choice%"=="5" ( - call :reinstallsillytavern -) else if "%toolbox_choice%"=="6" ( - goto :home -) else ( - color 6 - echo WARNING: Invalid number. Please insert a valid number. - pause - goto :toolbox -) - - -:install7zip -echo %blue_fg_strong%[INFO] Installing 7-Zip...%reset% -winget install -e --id 7zip.7zip - - -rem Get the current PATH value from the registry -for /f "tokens=2*" %%A in ('reg query "HKCU\Environment" /v PATH') do set "current_path=%%B" - -rem Check if the paths are already in the current PATH -echo %current_path% | find /i "%zip7_install_path%" > nul -set "zip7_path_exists=%errorlevel%" - -rem Append the new paths to the current PATH only if they don't exist -if %zip7_path_exists% neq 0 ( - set "new_path=%current_path%;%zip7_install_path%" - echo %green_fg_strong%7-Zip added to PATH.%reset% -) else ( - set "new_path=%current_path%" - echo %blue_fg_strong%[INFO] 7-Zip already exists in PATH.%reset% -) - -rem Update the PATH value in the registry -reg add "HKCU\Environment" /v PATH /t REG_EXPAND_SZ /d "%new_path%" /f - -rem Update the PATH value for the current session -setx PATH "%new_path%" - -echo %green_fg_strong%7-Zip is installed. Please restart the Launcher.%reset% -pause -exit - - -:installffmpeg -REM Check if 7-Zip is installed -7z > nul 2>&1 -if %errorlevel% neq 0 ( - echo %red_fg_strong%[ERROR] 7z command not found in PATH%reset% - echo %red_bg%Please make sure 7-Zip is installed and added to your PATH.%reset% - echo %blue_bg%To install 7-Zip go to Toolbox%reset% - pause - goto :toolbox -) - -echo %blue_fg_strong%[INFO]%reset% Downloading FFmpeg archive... -rem bitsadmin /transfer "ffmpeg" /download /priority FOREGROUND "%ffmpeg_url%" "%ffdownload_path%" -curl -o "%ffdownload_path%" "%ffmpeg_url%" - -echo %blue_fg_strong%[INFO]%reset% Creating ffmpeg directory if it doesn't exist... -if not exist "%ffextract_path%" ( - mkdir "%ffextract_path%" -) - -echo %blue_fg_strong%[INFO]%reset% Extracting FFmpeg archive... -7z x "%ffdownload_path%" -o"%ffextract_path%" - - -echo %blue_fg_strong%[INFO]%reset% Moving FFmpeg contents to C:\ffmpeg... -for /d %%i in ("%ffextract_path%\ffmpeg-*-full_build") do ( - xcopy "%%i\bin" "%ffextract_path%\bin" /E /I /Y - xcopy "%%i\doc" "%ffextract_path%\doc" /E /I /Y - xcopy "%%i\presets" "%ffextract_path%\presets" /E /I /Y - rd "%%i" /S /Q -) - -rem Get the current PATH value from the registry -for /f "tokens=2*" %%A in ('reg query "HKCU\Environment" /v PATH') do set "current_path=%%B" - -rem Check if the paths are already in the current PATH -echo %current_path% | find /i "%bin_path%" > nul -set "ff_path_exists=%errorlevel%" - -rem Append the new paths to the current PATH only if they don't exist -if %ff_path_exists% neq 0 ( - set "new_path=%current_path%;%bin_path%" - echo %green_fg_strong%ffmpeg added to PATH.%reset% -) else ( - set "new_path=%current_path%" - echo %blue_fg_strong%[INFO] ffmpeg already exists in PATH.%reset% -) - -rem Update the PATH value in the registry -reg add "HKCU\Environment" /v PATH /t REG_EXPAND_SZ /d "%new_path%" /f - -rem Update the PATH value for the current session -setx PATH "%new_path%" > nul - -del "%ffdownload_path%" -echo %green_fg_strong%FFmpeg is installed. Please restart the Launcher.%reset% -pause -exit - - -:installnodejs -echo %blue_fg_strong%[INFO]%reset% Installing Node.js... -winget install -e --id OpenJS.NodeJS -echo %green_fg_strong%Node.js is installed. Please restart the Launcher.%reset% -pause -exit - - -:editenvironment -rundll32.exe sysdm.cpl,EditEnvironmentVariables -goto :toolbox - - -:reinstallsillytavern -setlocal enabledelayedexpansion -chcp 65001 > nul -REM Define the names of items to be excluded -set "script_name=%~nx0" -set "excluded_folders=backups" -set "excluded_files=!script_name!" - -REM Confirm with the user before proceeding -echo. -echo %red_bg%╔════ DANGER ZONE ══════════════════════════════════════════════════════════════════════════════╗%reset% -echo %red_bg%║ WARNING: This will delete all data in the current branch except the Backups. ║%reset% -echo %red_bg%║ If you want to keep any data, make sure to create a backup before proceeding. ║%reset% -echo %red_bg%╚═══════════════════════════════════════════════════════════════════════════════════════════════╝%reset% -echo. -echo Are you sure you want to proceed? (Y/N) -set /p "confirmation=" -if /i "!confirmation!"=="Y" ( - REM Remove non-excluded folders - for /d %%D in (*) do ( - set "exclude_folder=" - for %%E in (!excluded_folders!) do ( - if "%%D"=="%%E" set "exclude_folder=true" - ) - if not defined exclude_folder ( - rmdir /s /q "%%D" 2>nul - ) - ) - - REM Remove non-excluded files - for %%F in (*) do ( - set "exclude_file=" - for %%E in (!excluded_files!) do ( - if "%%F"=="%%E" set "exclude_file=true" - ) - if not defined exclude_file ( - del /f /q "%%F" 2>nul - ) - ) - - REM Clone repo into %temp% folder - git clone https://github.com/SillyTavern/SillyTavern.git "%temp%\SillyTavernTemp" - - REM Move the contents of the temporary folder to the current directory - xcopy /e /y "%temp%\SillyTavernTemp\*" . - - REM Clean up the temporary folder - rmdir /s /q "%temp%\SillyTavernTemp" - - echo %green_fg_strong%SillyTavern reinstalled successfully!%reset% -) else ( - echo Reinstall canceled. -) -endlocal -pause -goto :toolbox - - :create_backup REM Create a backup using 7zip 7z a "backups\backup_.7z" ^ @@ -549,3 +398,244 @@ if "%restore_choice%" geq "1" ( ) pause goto :backup_menu + + +REM Toolbox - Frontend +:toolbox +cls +echo %blue_fg_strong%/ Home / Toolbox%reset% +echo ------------------------------------- +echo What would you like to do? +REM color 7 +echo 1. Install 7-Zip +echo 2. Install FFmpeg +echo 3. Install Node.js +echo 4. Edit Environment +echo 5. Reinstall SillyTavern +echo 6. Reinstall Extras +echo 7. Back to Home + +set /p toolbox_choice=Choose Your Destiny: + +REM Toolbox - Backend +if "%toolbox_choice%"=="1" ( + call :install7zip +) else if "%toolbox_choice%"=="2" ( + call :installffmpeg +) else if "%toolbox_choice%"=="3" ( + call :installnodejs +) else if "%toolbox_choice%"=="4" ( + call :editenvironment +) else if "%toolbox_choice%"=="5" ( + call :reinstallsillytavern +) else if "%toolbox_choice%"=="6" ( + call :reinstallextras +) else if "%toolbox_choice%"=="7" ( + goto :home +) else ( + color 6 + echo WARNING: Invalid number. Please insert a valid number. + pause + goto :toolbox +) + + +:install7zip +echo %blue_fg_strong%[INFO]%reset% Installing 7-Zip... +winget install -e --id 7zip.7zip + +rem Get the current PATH value from the registry +for /f "tokens=2*" %%A in ('reg query "HKCU\Environment" /v PATH') do set "current_path=%%B" + +rem Check if the paths are already in the current PATH +echo %current_path% | find /i "%zip7_install_path%" > nul +set "zip7_path_exists=%errorlevel%" + +rem Append the new paths to the current PATH only if they don't exist +if %zip7_path_exists% neq 0 ( + set "new_path=%current_path%;%zip7_install_path%" + echo %green_fg_strong%7-Zip added to PATH.%reset% +) else ( + set "new_path=%current_path%" + echo %blue_fg_strong%[INFO] 7-Zip already exists in PATH.%reset% +) + +rem Update the PATH value in the registry +reg add "HKCU\Environment" /v PATH /t REG_EXPAND_SZ /d "%new_path%" /f + +rem Update the PATH value for the current session +setx PATH "%new_path%" + +echo %green_fg_strong%7-Zip is installed. Please restart the Launcher.%reset% +pause +exit + + +:installffmpeg +REM Check if 7-Zip is installed +7z > nul 2>&1 +if %errorlevel% neq 0 ( + echo %red_fg_strong%[ERROR] 7z command not found in PATH%reset% + echo %red_bg%Please make sure 7-Zip is installed and added to your PATH.%reset% + echo %blue_bg%To install 7-Zip go to Toolbox%reset% + pause + goto :toolbox +) + +echo %blue_fg_strong%[INFO]%reset% Downloading FFmpeg archive... +rem bitsadmin /transfer "ffmpeg" /download /priority FOREGROUND "%ffmpeg_url%" "%ffdownload_path%" +curl -o "%ffdownload_path%" "%ffmpeg_url%" + +echo %blue_fg_strong%[INFO]%reset% Creating ffmpeg directory if it doesn't exist... +if not exist "%ffextract_path%" ( + mkdir "%ffextract_path%" +) + +echo %blue_fg_strong%[INFO]%reset% Extracting FFmpeg archive... +7z x "%ffdownload_path%" -o"%ffextract_path%" + + +echo %blue_fg_strong%[INFO]%reset% Moving FFmpeg contents to C:\ffmpeg... +for /d %%i in ("%ffextract_path%\ffmpeg-*-full_build") do ( + xcopy "%%i\bin" "%ffextract_path%\bin" /E /I /Y + xcopy "%%i\doc" "%ffextract_path%\doc" /E /I /Y + xcopy "%%i\presets" "%ffextract_path%\presets" /E /I /Y + rd "%%i" /S /Q +) + +rem Get the current PATH value from the registry +for /f "tokens=2*" %%A in ('reg query "HKCU\Environment" /v PATH') do set "current_path=%%B" + +rem Check if the paths are already in the current PATH +echo %current_path% | find /i "%bin_path%" > nul +set "ff_path_exists=%errorlevel%" + +rem Append the new paths to the current PATH only if they don't exist +if %ff_path_exists% neq 0 ( + set "new_path=%current_path%;%bin_path%" + echo %green_fg_strong%ffmpeg added to PATH.%reset% +) else ( + set "new_path=%current_path%" + echo %blue_fg_strong%[INFO] ffmpeg already exists in PATH.%reset% +) + +rem Update the PATH value in the registry +reg add "HKCU\Environment" /v PATH /t REG_EXPAND_SZ /d "%new_path%" /f + +rem Update the PATH value for the current session +setx PATH "%new_path%" > nul + +del "%ffdownload_path%" +echo %green_fg_strong%FFmpeg is installed. Please restart the Launcher.%reset% +pause +exit + + +:installnodejs +echo %blue_fg_strong%[INFO]%reset% Installing Node.js... +winget install -e --id OpenJS.NodeJS +echo %green_fg_strong%Node.js is installed. Please restart the Launcher.%reset% +pause +exit + +:editenvironment +rundll32.exe sysdm.cpl,EditEnvironmentVariables +goto :toolbox + +:reinstallsillytavern +setlocal enabledelayedexpansion +chcp 65001 > nul +REM Define the names of items to be excluded +set "script_name=%~nx0" +set "excluded_folders=backups" +set "excluded_files=!script_name!" + +REM Confirm with the user before proceeding +echo. +echo %red_bg%╔════ DANGER ZONE ══════════════════════════════════════════════════════════════════════════════╗%reset% +echo %red_bg%║ WARNING: This will delete all data in the current branch except the Backups. ║%reset% +echo %red_bg%║ If you want to keep any data, make sure to create a backup before proceeding. ║%reset% +echo %red_bg%╚═══════════════════════════════════════════════════════════════════════════════════════════════╝%reset% +echo. +echo Are you sure you want to proceed? [Y/N] +set /p "confirmation=" +if /i "!confirmation!"=="Y" ( + REM Remove non-excluded folders + for /d %%D in (*) do ( + set "exclude_folder=" + for %%E in (!excluded_folders!) do ( + if "%%D"=="%%E" set "exclude_folder=true" + ) + if not defined exclude_folder ( + rmdir /s /q "%%D" 2>nul + ) + ) + + REM Remove non-excluded files + for %%F in (*) do ( + set "exclude_file=" + for %%E in (!excluded_files!) do ( + if "%%F"=="%%E" set "exclude_file=true" + ) + if not defined exclude_file ( + del /f /q "%%F" 2>nul + ) + ) + + REM Clone repo into %temp% folder + git clone https://github.com/SillyTavern/SillyTavern.git "%temp%\SillyTavernTemp" + + REM Move the contents of the temporary folder to the current directory + xcopy /e /y "%temp%\SillyTavernTemp\*" . + + REM Clean up the temporary folder + rmdir /s /q "%temp%\SillyTavernTemp" + + echo %green_fg_strong%SillyTavern reinstalled successfully!%reset% +) else ( + echo Reinstall canceled. +) +endlocal +pause +goto :toolbox + + +:reinstallextras +cls +echo %blue_fg_strong%SillyTavern Extras%reset% +echo --------------------------------------------------------------- +echo %blue_fg_strong%[INFO]%reset% Installing SillyTavern Extras... +echo -------------------------------- +echo %cyan_fg_strong%This may take a while. Please be patient.%reset% + +winget install -e --id Anaconda.Miniconda3 + +REM Run conda activate from the Miniconda installation +call "%miniconda_path%\Scripts\activate.bat" + +REM Create a Conda environment named sillytavernextras +call conda create -n sillytavernextras -y + +REM Activate the sillytavernextras environment +call conda activate sillytavernextras + +REM Install Python 3.11 and Git in the sillytavernextras environment +call conda install python=3.11 git -y + +REM Clone the SillyTavern Extras repository +git clone https://github.com/SillyTavern/SillyTavern-extras + +REM Navigate to the SillyTavern-extras directory +cd SillyTavern-extras + +REM Install Python dependencies from requirements files +pip install -r requirements-complete.txt +pip install -r requirements-rvc.txt + +REM Start SillyTavern Extras with desired configurations +python server.py --coqui-gpu --rvc-save-file --cuda-device=0 --max-content-length=1000 --enable-modules=caption,summarize,classify,rvc,coqui-tts --classification-model=joeddav/distilbert-base-uncased-go-emotions-student --share + +echo. +echo %green_fg_strong%SillyTavern Extras have been successfully installed.%reset% +pause +goto :toolbox diff --git a/public/st-launcher.ico b/public/st-launcher.ico new file mode 100644 index 0000000000000000000000000000000000000000..b6a5c9931da3311a76c4ddc7884dacbcc821beb0 GIT binary patch literal 125279 zcmXVX1yCE`*Y*O%p#<0B1p>vLqG_=pg#g706n8C7k>U<5!JQHuio5-Q;!@n9Kyi16 zFaLSJ%w&?AOm=hco;~N0a{&MazySXDKmq81Q&Rx2K)w$M_`fk577Czk1_091|9=bt z0Dn6afQRS*#zn6Ips)h@OZxvm1_8i_DHH&NeEr|?tX=@X^*+RBoKl@d!}TyGA24!OGQ9_dDL=QT4HqbgvG_p79a#10?lO4K0v1ozzI+R z`6y;&M!G=jOpt03m@t4Q;99tt7cdEoqNV^mFFzA?k^s8ks6x+djw9h~z%4x7a zXMior#gw-i_Ah8CARabHFaF{$CE!<%Sx4y}h(aH(eI5iHp`1tpz5o?Ur5*tn14@8& z>pKeI#I2|IFJ6EsP%;ywALT6syy#>Aj!~S11JXg%fx*GvmM=Sr0Y8kt>EUrWZq`_P z<3LKd_T8$S`0b_GD@#b1HyeNw;0WBv0|aO%HWEdMsi7Xm@K@dqC^yUjvnW;-mpMd4 zgZ+2`m?&S#I)4I@MUw_Hb>k=x7y)!l^-1hruYV2QkOH2cPg7@yc>LYp&~zFDMyNbd z3;w(V99~-If-N@(bP)V^({*Qg`oI%brxD}JZQZ(N6l`q4E>tJd0AU6pEN;e8(Z;eW zpcTFI7Z6<3MyhH!P)cjKww~dMYr^U|U9|O*9{ukJln2UndxG*UOcjM9Q?_-pdLP2E zfkHy+kVp+qG$*{yXWYNng#Vj%aAH28eCJCvPfF)y8QJ1m6ds`URp%<>%hPG4IbMd` zEYUzuVII7{;_J%Yk!p&_%W$I&Jn;t@D6sfLy5txDJ(N~T=kMbQMe&41a1^T-C*;5r z#c4eY1B3B-N;vLHGm3a14hfZ37f_3GLjd@Z|2lgg797miNvPdwLHHIkYO~d|316BZ zU<~C3M8xe6fi&fWN3B&rK7EMio(&nY24YcfH~`1@e7D3zgZLc)+x5qhj#FzBPhK3n*|ynYzim? z&lsIj^8cIa9)4hBv<^coo?Snih0a_s!vtZBRJuF>?hlCjAYA?xMdpzbNw&> zvIDE{GLAb8rW{nLTPFoJ1=ErSU}=I_UYi)hN}}8Bq)+|MEQWa91(Xc#T7S2gnKg-~ z2X6bR-;{c0Rx}7|H0S*nQwmQ=sJ;n4Cinl_9Li*_jo#}_TSYaSCjadcF97{-6tL2^ zJf6>%>2JyIcEr`)*hO!)JngF-UKJ)W=KsfS5rQCk^DK4Id&mCQFzw@SQ$4mKS?q)l~P7X5obJ*&Csg^F0DGx|HJ&r5pSKz^ zN9W{SCtP;f#|J!d_h`xMv&il)`Dhg9&Zce2B*d%eipXKT?ex-PGP^LN5GrPVNKp#| zb+#>6kG3z?6Xb(O?5?g=Akn627Fon5?t0-a7PD#LrEVP&jj!i%W{8eFIRoC-pU+Y< zJRKH@-cfanSP_~yZcdf`?>7AJjq-K?w}7aFyvT+K8z)k3j9%qPUh-Sfm}SdZQrM%eJW!^}f{56cPE zd0&4|o({g$qg?!MgbIKHXl82LKUnaoCrvcz#jzUO!{Dl|Qi+2`juc_;d;c(j1W;)h zukO|m5pXQ~hTR*xw&&STYOwOLUk&O8aepY8@ADd3wDXx`&M)&mz~1a;X1;#X9Bi8B zc{wp8{k=JL0!kyw*@Juk`r7h##0KTW8*bd9#FfBVBOC6PZhX)-BJhDSg0Sc<8@;3O zNbW3!941G%=mTFU;7PnL`h+ut-$@!y4YH#)0)sV0GgIrBRIIm_>wQn^lBUOqnAC)w zAP@U0=Lli_kN0x?$L^>bFpR|xsGGxNT!KoofIjEK15&92DqsB+e3&k^;(ujeVp#rFowJ z?XM$t!qQXRVgBFu>f2j-ii7I1UYAc}+JpOXd8zY*%QS#AhiP6qZ_T#}(v4AA+M}76 zisa9!eq5Q#h94UWI>c2`=U=iF3KzvFY`HHnw87h96+TxG3L#AwdNRaH7_4{{4`Hsm z?*bz`hiIP7d$R^eb(?5>M_~LF0y51X-t`U{7cJYS8H=`7Ye0s5bJad?sB4ak13{qM zHCOKkp~>M&qSI#qM5+&`t@y90lUtsH|IF9-=M-J}lkS(53vx{p6IV3`@2mE+o+9>- zz|eWkfhr!zL#eCpjzzbE<1ET9o7O|swil_ShzH{g&JE$oK4u1E1(i42;EnW{Qn4_f zdwueG(&0+RJ&omwCxtur-is4x8>94o9OK0AIZg8I7)0*`#9Byccc+OB=M{o0Sz|Od zC$%cXW8rE}t9d1iXso0Ves2fLXdiRFW0$x^kw&qDg@^d2B{{NJ*)HL+b~_z}RV>o5 z)gfwc@$;BI68OCcXtn|-!b_iCCZ2O+OQ-*U8Cp^du6!o_9AW!@3|;2AA@X;95j25Q zZBT?TR8@GJ_%K>9elwRCqQkmfUOb28nFS+VwqWVefseNFCyMz;8Pn+4Yl~9I@*A;{ zq-~e-+>$eRfvK4pYP7A=MzH5=rKC~Mlqs_At2g?=49)8E2Crq76n7SZz$lCy^r{u3 zriNK&ZgZQDgSqe0dPh{KP|%AuWSow&BV~nH%>^44d$idFSvC*2de26p1-S@pi2_`C zXHs%q*MIX&Z3-zB5YNalnXRb~QGKm3e`ScMf3JeYdpZBLornEBYe_nRv|Pv^5}taa z$q6{9d7P&ab?P$-{_=72cq;u|X$k+4KtKnkTB8-bISatBSRgUa#;JDt@A8qH<}cBjJrQH z!L7)of6`*_^K27h{u2`I->#M-Mjnc(9<+duO;OnWhlbE3Cw1a0t||4xw^oW5mL0G+ za;!mr)e>2xK-?EnfYZ}@%$;wKTn?;K6wE({DI*E6*g?KVfr2;}xfG?np-rZcVgFS( z`3{XY?wk2`viPs;MZwhD`JWnBc%Tl)SkhFK2^BEYcbnv{p3~icm+~z4gS*(WZF%)s z94@b4_Qo(RLEyXUdO4kRP~Pc#3Nk>s0E~zR{l;D+CnrE>(*}Ed3hyE?@Ys>;+s%ly zRVm5*PXy~PL!jsW9hzOoo#Q(Y{oeZ5>SW$$Xt!Dmg((d^E&Z6B`c2^R`5Id_8LMBL znR|$1{oyx{`KyZQk2!=4avg?mRHcsZ`^-#U4E9Q@yuJTV6G}T#i-xG5Mg<`QNA+Ri z{3RxIdh+EPD`UHY%!!lmiW-bwh&J?y?e_;PI|71PNr5tANF ze`C@XfC^W`;mf*kBiEb68d$d14LYtnL_bvUOS?XR%nD=H}7H)Tf5txjc zY<)+qYbzI^ZEQp?xeSb!zL{7ExZU#ifwy-|1HV#dt2g=)EH@&R+oSM3GtISqPU?A@voR zNlx6C@0<+i<%D^cE?F@FU$%etL+_}{@L%_|tniE?YvY1eN%~9RA7c2~AeZM30y=

b;cgA)ZCCC)M1}eFwhF!h_;Aie@(C-6IRok5Mh_jipU#~7e9_qR(^6ZB?QQUiy3d`x33c7 z=U1VHmdG0JTMCyfB@g<0G5acvAau?9$5cUZw zRtjA2n07DvW19Wm8%@0S1{ZcY{d05?mEeKMrHEaX=OpW_&;*iYuTTS8;M%7 zz!u^Hquc53mIrSv)OfKK-fP0T=|b_soDjA%T^lh=h2c%X@BU?F6l={6?Pa5Mai<2m z2x+J(YnNIZ=!FVD#BAE6JwkT(0*Q|fMv~lW;rU6Zn*J0oeJj+$d-IA26!S}nhCw~$ zK?$|feB<4>x7P^Rkz2E$Y;m@dwD{q@<+G3E>N}9tlPNTs+M7Bt!xiGm6-+!gJZE zQh!V|$<1C@uoQ?gZC*%`;Y^O*KGln9u$Fx=0oVbQshCjSyTx7CZW|RQCVH2AS64_a zjYj%%gI@&E3oh1BD;P3zmja<36M-o#WsAYh0;i%u^n4cOr%6{#& z4-sMfU7hg;B{P_5Vwrv{&gBponZnksdQ}JrV)3$1^+pQ77MzqPsi-NbX^0s0O1ZwF zj!%a=uQyEY7D$e^*iP$lXtI0upQ|owzj2RZb}nIOej9+(g$-UYPJ2YAW#3(*`M^>_ zl<$RbZB3{*>`V>3k*9~p#4Lb)3JV4$fb1pwzX5qhw@*B+PkO>@7~NL9AIXCDy+K8r-k`LBCTez@@~ z|R_pOL`?+>&Xk)Ps7iXyPS49xZVh$D^`EdQv3>#_U60pwH0et#GO~b zOp0n?qkgOBq3uYNfiJ7RyaWl)}zU4iX{B}2+ioX6t*V8%Gp?f z%4mq&ICH-Ixbq*@f7@Xz8Zu5>*);NP6ff=r%U{zF=4#pqM5d|Aj(16pKH?!>%NkRI z1z8ap6tQ`soDZ47oYe{V0q-r*I$bNxweHF{j_8z>x_M$er z)NY}?gM&u;x}DmCsvxYU9GY2VTG5AK@cl2o=%#%)-{g;7GP~@X;yYff#~frnEWtbT z4m5@+Wo+i>H8S)P2-Pc>EJNC7%it3{1a4thrB2z05IR{Po0v}t8ypz_xk~C^tg6}q zuRM?$Z;}MtPB9)n%!PB>V6$V#qcHSfuR0pWPh6~5u)7(PT-oY97xJa{CJ~W3BtV8A z-{n@Gz(5yyt%!2=ce}%MW;H8>D*J|6Nv%cDedmD0NYxvtmz3)=v6S2LimdTW^^ZJ( zXR*lx{}y{X{io~K^!{sJmd{+-t46XB2ZG1ukrQ7Dwrhm6NB96rm&0h^5zj~$e)GyqJyfbu6l`gP6s%yIkaam7=)& zfC(!epH1D0jPA^UpFg*$QTVJ}6Xfvm&6K28RUwJ%dQpLW$>_#=imPWWuGx%)YA^nd z21-6S*MqarKFy!nicKkGblw|nZ{y+$e!S0>uKh5Hv62p*_Yrl}H3t!3h zG8{PGMp8jx-YrdUJVZ`_rw6;>6LnIZt)TM{7)5Z3_TJrp|5FQCO>yfe?#ZMaA7y}N z?{1Mt+QpT{R=KY}g0SHHRqMqt2i_5sp5Llkue;}V{8Vg>Xz#D!E_7F|JVuC#k0>W$ z65RX@?;YB%W8aVOjQL72!Ak}!6xk5ZOXsk2*eLh2E*ipJczaU6@t{6O+Ns={wnKfE zx*G1F$leiE73xs{>t;cGnWlXvllt-=i}Kr+hoFH&_-k3+QapnGuYs$<_A!vnyP(;I~;=fv1}gb~1)5&Sq70 z^Jh(5Q{3a)vZN%HvWFpF>?)-E)BS7w(yRGfrgnL;5}H$-`G}B4^P!qr671e#$VHSv z>z)zoFYQzjjX-fZOR`Q5a(;gSS8oTGxxmn%EXN2iJVt+vvj639C z8Fp>~RnTgfXh_}C#57$L`h&r+MQy(b)zB;3x@mwcQvwMSYa9aQb(-NeH9P@E<<^{F zh(&`>d5nqL-r?5QkVyp;5jxqll5baCW$<1&+@vo19{OE|!6pxzmjj`$Y4aPpI;_KP zAgkz>FcE1lXHoW#FoCIasj+1LN7Veu1$ zz_$6tsenl*R^T+UIprY2+;axBYH}R%S7uvUy3C+A+R%Y?hoOGYw|JOmY zV^Ow`R;)SeSUCAkBI5%Q{hN)=fqamv=2oT}5;EqFqI>MyV@g}h=oHrvzEAz72uzRO z-YnYtTv-@M6(xG@->|=PnBuby-f5uf&3()m^PhKC&AfPI+FamO?SO0Zz59@u!*7G|`ViUOskVaMbn`dEX=EmQqN~5|Ul}h`1}GHI zum*jGIkbh$;H+3L-utm83<&ZIRmRMG`W!6MkYe#HKe0O_k#Rk)veaSGt4Af8U2^fb zXl=&EX;IG;k2C4U^iGLLx)6rMYdMr57h7h2xcU6~`+`Hevg$aE; zTS*LR<_CcOI2u+TF+9vcH<|SKDYxeK?QF#4le&Qv=I2R*3^|2UIb@d7FP_RO;QSXs z3}A{Tv;8z~p|N7_se=ZqyhHT7YnSq5i0swAUl!_JFmlv2@JQXl4vPQG@1G1j8LCj< zkk6Mj4hal-N2e2-T&a)QVy$zjxTzQ&>j9c;awHe|MByOvyv)ozJ9^tcQXndWJwS>O=$WY> z+iTms=#f#`*QLGl<-)>{OdqO~diBEYW3k4)$cJQ{N!{Q%iRda+CqK>bvgqtx!Hy3> zplzWcvBz=ElAj6Zu`nWYeRHIXz)c=SY}tJR?0xyx7VP~66%`pIIJHhxM=E z9Fj^XX^cI7QRc6ZcU_wz!<5{6E>1{~->4GQ2Uj`+r@Lm=gT{*yj{plXY~;1FOYP<> zD`ZM;+8R=|`<-o}_GFVw-fjjqdoZCbew%twQ-@0 za|(UEJY<|Qpp-iFMhVNNp!SlpUgEy#Ydf28m4sRFKdB_>X;9i#WX*wF!TbbW=wqDs z$~UM#xssZ1^ho>f>X-AubHE=3>kUl%`@fzfF`4+?zSM0X)*k<#=IDs%Jvc}suK9=~ zRD~_kug5LU5UYEwVgBlLA8(`o%+r?%5fgJ4IvXKaqvDHrU|=BILeyS4(+d8YXntVK zf*m=LjQHj13?u1xqD`2xUrsE3C*#E?{oLC(J^!dV_b=+2S5_d!2;wtn{pWm53Y0u4 zJo&h=-1ElcV;J=NTh9IAwt^-p{m_yw*n4OQf#*spCQYHK7iBqz`F)hJ=M!1C0=EZ= zA;LOSd-v`Dx82cE)1)Q&yqI=WduLNvg9_BCC0+MJrH5AKXK(c@-K2?7BmrNyqk!5u zEw*qZ@o}eSToxUF7*%SryzMXw&&#@}VPy`!Fe==~6kc#O`>7xu3PoT2l93xG{%c$V zy1({yt1gtcE&a>SxbrJSlp0Xw5g2z_jblIEn(GmuOxyCr#0% z&0d-8HGFNYmqyG-4X&%;&iy`d+n|?ZWojpjGLZqV`EcLkG03gbc7}cuj-fm6Dp25d~Oj`dXX(4?Pp4_Oa_)e#JzWLu?6|#UGzEOP)DGx{yZ~q@#@iA(MZllElt-uv$@c z(T+_#7?68L_G3p z>9`p!OmJktLG9Ry(*?#Qess?y<-R;z3krjRiF{!0mqSC`0UFnagIb?){*c@5YYUp- zd^T0D-B${MT*-{Rm163t-#FQTC_hg*>qVZrJ8Cf^_~N_`Co|w2MDY}zhClc3SF)j- z_)ylF=2#W1W(xgN%I*9NN}TRq=*mCX8--K}@=y**V%A^*I9re*G;QLxh12%0TY*XK0-i>TKE>%jT^JNC2glQs^ri1IvGGgpWHQ(Zu@ zOKpW47_pOx83{y_uUamS(~dT1CQ*Y){n~VfRj{0`n2zaU^R~vwaQdXaLnAg(6EZ-D zFDJ$AVBQaYeb^XXmH9-DkrO;EJ5Kt88SoJ4VtmU#iMYj@?$E)3&F4{+73JOE;$cd7 zD6g4!KHJ?e?Yh=xpZ`R>7p6f(N?nQzk;?iAi;z5S((m}T*xwgx+3>i)M#F6XT@&E& zo}%?BUWcub+F;t;B?oDTpy&j*{=1iF&9g%KGr7|%aFeo|2+h5dv+$r7|039^s7M&2 z@GFRL{*1o(Z;jl|cZaJtP04=a*JSNG-&Ezb^w=+VxAZ&Ch}xtIhzgu+5?+zALkyFH zO&3Hv<^?y$tA?)>TK`jAO(t*nLxRN#wR9AUPJOGwzu4zBP~KJwzvt`|y@!G9L?QtI z9nl|@C48s4IGR+l?jwZ7(y=X4dNc(=xFhwd8MVKv8`EY$4qy)pk5#N{mh1LY+2_7I z=7$XXmFq;41sC(9A{dt%vAU}B6jW_9d9pU<*20+excwRoY`8=hK}0hjdBP66jX5^NO0ox~&S zr<%pM&HKoseoM3FKeHRG>f7+;V+|mk(<#Z(Zfh`Zkh<$yAP5;DN~#&Z1t!xd0AYu( zRe_Sd2S{xp$Ty>*o_D7ATkK|xdeS<0bLF_1)&Hp3=N*EofsYL3BwH+296lm8Q~h&7 z-Qc*NM<^kRI+Gbr&kHF1!8)xFiqp3?nQrW{F7gi(I^q^c3By7`$rtHblh?j5%$TWqoys7QtUP275nRQ z^Y0NP40>-7%&dEQiKPY17@x5zp^BJ@*V%uG)$@(hi5*xXUw&mtPDk3a*}gUAm-Y7V z{QU|Ufm0Ju#_hNLvq>4J-zIM_?0H|m@PO-mKa~x5Uu67>2(9u32AduuToCEDsfJgx zk+whurPjS>qT$<;DbR8E-fBDC)gW5iE#W+jmVk1&CN6y%p~=%ceTpAalAjm(_c5so z7eVz7@p0*0Ca5j_ydb%|vSP7+_D2u!Cigq6C3S-II-ef#v%dY&==1~~s*6PQq?X-I zXD=rYIz|Mj-FfSa|K!VBe*^IAu+UtcjvTfgHz3gx#4i%!d<-|7NDev2<@Ax=6FZ-k zxfF^mf_MI7i4H<-d~@oDqxJ=#?mYylPog5bl6ozEO|cq|-?i&Vnx@5AFO#UfDH_$i@b zaaIe%EwJJ%cj&cku+=x1AAu=r$0xRvrRv@sRGzJnox6yAcgl9DWvI0=`SzFDz2+Gx zxDJcg<9GE|@*h)4OF0{ealAkN*k`NWT-m7Mtz~{=5C7j)U~rJF zOEYyCfeNQjq|Q?HKG>>E&W+q^DJA&1LZZ|0H%bUc#~#^|f5LeOMUz8~r6;*Yykh`K zpw&T^oy^&e2XG?8!4_jiG=f0tMFzs8Q_4*W4ehDoK8O4Im~P>D7HR6E0^K; z^A%*(95nIG5;tV>!v|G&<$o^YH#eSSL$DA^23$QF)K69Vje3)jQaL2(;L-)STcNbt z=F7569H#t}F}~DOk5UNju$-(8(F)sfc{M zOrDD{7S_kv6?f`9bNgW`3hG7J{*Em665v|-LIOMbuZp3@+c6tOz@tUG3?);S6 zwau(6TqS(D@AgjwePa)x6a24&Kl%x2F!+wZ+kZs#+EceVdK15V*mBIf&+xgB4#Fb^2PPfY4x?lK0tw*u zULJSu%!fna)#$g+TaK0Y<&G*W{^s=H-h~lsj zshb(fRHFf1`mSv$jAkmvv2Pf9k^CW#H!$e=nO5HrbN;Q^tw+w#zI6{@8qM^4mZGz@{Zf`+cTCclh$eTa zaQ>e~W$XHcs+rB{udf=GLsx`5nr7%;8{=b1AJvs@P30w-L553LfF)~P8Ji%C91_h* zr@ujT!Sflxsrx7)(*$=a@I75Tu*;visM0`r^sLRajVK z0k(Hd3b;*c{h>CTE`e#i18h2-$*8_5gVhspk?0r!k-39f|FX8xV*sH7zR}}1uuT4%?rHC-bgo4`-**xC zWBmk=F7A$P_WC(LJ#@+aN*uA6cYK_2bo21=aNOGw;N?|+=pt|D5tEYYKv1z1>f{@V z_@??<1%0sOo9xkT;WCcg7hk_cYGu{ zDsUlT^+<#Hva5joted9oOR^#6^&-L_9lr&X4EN1I!J^_^?crKP3%W(k}1$3c>tKXq9OXd{vv-><{#3smQn$s%R<_!!3seALj zRHXNb4_4NWEV%%Ltk(x5$qpo6Yh+Z21r)_`9^W6{r-b!cxez|912VQxBwGVU_ z*aSsDYyqu1_o1azkz&{w@p90iv!!(S=#s6jsRvc>_mO&Xsgix)j!fvOTrY-t_X|V` zC4gGAkF)~YlBRz!GPfE29NU}=&Ucu&%$iNvLT?{1JVE@yR=;D<_J5D{?KcGc^L=a+ zvhp-;@9InZU_<=V?zo#K1DgxB+oZ_putv`Uq8Qn-+L5)PAzb zXnh4pPAXBVsvQYr@s}Gmv$`a2z@OL#sC}3GB@(= z#Ut^|+}btaH%gM5UX$No_KR&R7R8Y$R%XLKHRkq;8XY7aXBU|uMq{< zZV~yx@Y?6K^>G;LrwS7wjZJ0M%&wF@9hFW0pdkk4(@~(3fmQEYy*zZN=@l$g*h$H#H6TtvjZ;R(G>S)$OwH)FV`&Dg6^2na!mgz#fhy06(Ayn%a zjGwToc1=kbf}aMm9~8e;R7bup!*xzPo964AZ-wKkV{fiy0<7<+8JVo)b^2{4Ms@Cg z^pd-NEGDJ&4pJ8o)n~-3qm+DDBe0ab8;^VGxJ~uzVmbL|BQhS3AwS@^Y8?U62NyPdL@Gmm0Mb?3?GqcxsWZJ0INPtsQC)^cS-C=@uJ2@G*IfLvW-OI(Y|u9L{lNCt}10yugc6>0{d! z!XuM-@!WTQ-g1N5E@($B$L+gPkCRf%Kjc$D5QoOK&?9Px#$1{PSulc!pZ_O50YSp~ z_E<~y(?wxlw&!|8EV3`l{hhS!r^ljzsW=*WpW*XQa#&}uBZ8z0`bsdq((9dID7w^T z>-nRxRWaw*S|OP9xc1PFA7NgM5(mc_3(18E^2}-R0+XgMq@srPC zo#*1>iiOnezk~$;D@*_0Z2z0JYV-8@w9r_)`mN1!qCeZ(idZ%*!8)&_;lMwQc1NVB zkdz){6)e)0LC~=xK&?m_J5CH4CXgdU?zaglSw~}orruWVZ+%77m-iB}lZtQOkCuV- z*}Izh6(}sW5g8npH9}Bqp%nJL=8DtOK03Nz{V|IyX$7Z?4lU*PrACi7lOF9?bw77k zIHk^$Kig8-PhVDZ)4l+aA#gdPIS(cUwo@uT98U`T3aJVaK!`&7CmT2L_Th(txnS|&OKFsY0eY);?eMC0qStBZ#?ZlC zqdPx~mh!A6k@PXgH>Wi}n;nou2=_b8mR45)!txTpEu{5{Uiv!3X|CkTF1+ii*YYIn z_ikSqaneus#L!yomJXChpbGtovibso;LPsb?bsJYNFtjnz;yx;Jtjn#DEKiCc2-QE zLLJR`Xh)$J3zsN0h(g_~D*z7@!Pb}{!{i}zM>CljxZR_Dfq$nCL!BGpN1bwBym%j; zhtH{Or<==cHapwlG1(j>1(K<%ahERbi1K@+-<{1(;!*=CD@ARg6-8M2Q#2dcZTdwoWfdXxPG zX0+UA4QxFgBJ9Ji&zx<;VrBM}XLoxVDe%%U`l!{1J&w%Fj%Y|n@+Cdl69wV=#bc~# z4DNV+>o+zex~qr&UX>;xC8@MG(4kA{=t6C*n0C<;dhx)aZv-0$SvvKHTAc^@@l+6yn&mJhvv#C!FD7b6o9 zt_Lgzj^nf7;@4FtRP)`pM~iqHf3gJx%#h}}iW%E0h7P~1DH#>&V-vgI%wvj8C&9#ZU;WFSBi3R%YEVh-&8agv%0;Q@D+uj!rMm{7Ytkz@2$I$ z7~#H3*`oc!Bo`2l2RUmrAfD?5+BEN{fZeqZ_-e;iEh z^L@V1#zEi5UX==<^5Cp!W{gL@3E^3Ke*WjuM2&BHqh~Pt(rLv8lxIYu6&}#9JxCpy zcUu^ggWO;uycImBe>62J%HSS{#jC@va$8w(jkG&Y|6_xBq-^!v!-@@UW11cPjZr>4 zI6hN*vWHxyJD`@TRZX}vz)e=~SK~JPFSVUmS?c}&TS%KX|b_OE^KhWGP0bKLgH*EE0R~LCUK+`#;0nBo-B|ZLASRrSPvv zjRJ{1#YtcIu2h>Ul@}$lv2iHOUsUc3NgUm4WWveBM70m26;X@O!2=;YX2dWXSult7 z>)YET;pF?5?#qf10I=u{=m= zIezicQ8Oe#k^LY?QrBw}l{)ys9 zj4m{Ht+@vIKgfx{!=qz@Gl)%u_uk`OFbW>y{ZpJ5qJNE%XI0EBB9my6hormhAlWaN zf`>n*!%#0O3(Dt}Co~4L2^l@a@uJ3V+xZJgI7Ww47CP>IM>&NY#N7Qia6>H?YA$GIje;)d6F&!f~C*%4=Cm=imLRcmXI=zO@bd7*@R7Z z`dD)>SRUkX5}pgV3E|0ST|9=ce(f-pDJDajrP{s6_bHULu}^7GreR;Fcr zyuB+e$Fjb(xF7zQw@a$8tE;-Yy85B|YbA-SB?TG!6*xH_vIQRe69HDoPy z*gHI2o|>;eJy{!RZCh996d`_rIr`@QTDmwZ5Ke*9y`#7~MmJTPie%;&>MHvaLXGlO)675-x_F(S<%!uZiusH-CK!B8M4#9aM@Xak zFRy=gbkONA4z-ba=+E@@DY=qAsaB=j7i@gWTNx6KYrpx;{nBm**hw9>STQ7Uk{>MC z_U+j91U1ULJ>K+9?5@mcc?-SSWX%$G62ogq^ml3cp^1iil4$eLzR$?LnPy;0l4FP$ z_v7R#_joGKb}G*gvTI9;%DHIU~o&aW;^qM#YsRdjC06 zCMM6CrQsy=c>M{A6i3(s+CeWy#xVZd(K~)i9BP_9usvM{Hz@jiQ{YT$9R8IOF_=;@ zYoBkzq#!Lt`{KSs?M>{6qNx6!L_6%i>sNiLq|B-SBuhp_Kpj51f|7g>If3uNs zF-@YMVe5Mc*;Y}(I<=KI;_Pk6UlL@HWBX0#L?gky8M$N;1bVdT4rf!_2B+0AA?0ag z`+k8wr9Q)mI8)DqX}crKc7Jnl^!xFOY_FBb4Qlkcy0n7bVCF&T(s+shSu7CEzgDw? z)p@qG<|057|6>$AKLjdcWFrnz()pNAnL$4I^{KqnK&ZwKQ=zKwwjJNWiwYLJuh<*2=n}!nlBm# z-YC+F*stBwbk6rYq2s&^&^xDQ3Z>U!1ajhz zA8odNM~!_!L^sMuga!lvYg)~tN)ZZo(A0K#DHYJo(_bj{xH}UX8cMn+1B0fHZJz^Q zf&T6DwW%q1^3Y~pYHF&Lg$0XYVi$-rO)k!Y&&L%i=+E_$ojB_{(kVv~aTKc}?m8)Asr4QJ+YDAY01l@_q@aRrU%zHXRz3kk|=Cq87u=f&C5 zZNd#vD-@^}nY@5b0gQkk!sp6wZ14=P(j$kCu#lTAI^Wta?wiW0UId@RKdWP^YOw&=Ni-~6#cQ~5@KY_XD(vR)?WaU*s3O#r^W z#0T(gq6sfDZ3eCLWw4Sr*-28c_B25zS&%B=4vxy(PHf~y`c2`V$XTE7{pFoqU594> zU=4IMRq@Uadl`xL!daNVlo}tT|EPX8o|Pa0*X?G6Mx~Ux&Iw{y2`$D!Q1&)hojL zum1qAQe(Vj<1`8V@gw~hxlAR(b|*Mkn7X&AVa`1P+fGr@%y96p9Vi$d zTHfEJppkYf%}$ChJAP6N(%-Els^eqX=qvbY6}*G&`uQ#g9h2N?9vw2CtNWw_2P#yG z9l388(GmIF2=Ko03s=!gGr){s8_h?Q;Ha{!R}Mm9lyN{yf7i|9y>uP+Al()Q z`}cWxyFPcH@qWKv@AqrJUhmseN4;Hi)FFOCkas|P^OrNu#wNCkNS<=WYe_rgL@Ec4 zt)f1~jukK(lGu00IF~zL*GGUMS?aA~O?UO%^l@Kw&aM+9-#1q1GsnEw(~P{Z_qq-2 zSB@RnZff85J-SwBy}$YHRV{}lIY==cckcKEwec4N4ez`+sJ*bIe9rVIxvSvSZ2QLQ z!Oh9ehYWS@y?luCmiGZyzo{-ec4p9-E0_1!w;8*JeeJNq zkEmwe%00gJ*65%dh<_2D&4W%Ka0q@j&&$tRZ({KIiNWpVSQuBc?ada=_^0~aJ6*dw z4U&?&*{@Z=vFo|9GoF545VF+5N_!s1L@wmR&`&qsy$f#9JbiIc=f$lDcb;9_GdsLP z>+GbUnT9Po)b2I+{=C>ehud{^S+#1F+2?tWXLKI0Lu+;tVgjBGJFOM!Jn8M!5zzxX z*4wplpM}@^LCziPob4ZbaOmFkFZ^8ntj~rRm~EEp9=)6$*}-z$A!_`SYo^EL8mdnI5Q?C-{!PdCeq%J$+NsW~v$=8|_WaY3t)W|G zy^6P<0!w9V(DsQho!>1OF(l)hY4<~$LRyW}(v)d+EzH%sFxel-Al7>>L#`KU%KOMjl0v7e0Nq?kvU{? zxc&#{F)KJdT^9H>4v5zGRe2k|I573HD$AkPrSR96uP)kMX7;u-FLoQv;WM; zS1(xiKY5PHuxTIss?X%%Pv0t9Lf&zYztR%nqdlH9lMT&1Uk82~)lsuo$$!Dq?z!sL z*}Zf2e)~c5dcMrDuCsQ{>RnK}F1Om?qU(E6{g$R_edQhHN~X$2(qM z@Mx4a+Bd;0sOHs>S)1)@4frhO(LO8Nz5n<%F9s`Z@>W~<WnWHPdN=*raGm!5uxeJ{ed&&YbLa5~Lxir-|7an~N7S3~&D+N$Fe&RFzt`nqY2#spml z-PAd~4}Wzx@XWUDHsibRv`;aqD=x0Mn^^xxr+U3sE$I~Sk7re##nmDL&zKrcAA9V% z%9_^K*Cto#WtD8bxYZiFpsVV;J2%N2wAY}6`kHES{`wBBBCd4!&}v-QX{OdleL1mJ zw`Pp1t5iGJTd$|Fpb_@3Hh$ChtKo=g8q=)mz4!&5*EYM=*-JdttG<>t0dNp^q*=fT=X54BYcjcf>@PaxAb9e%ddMziHU_IjUY$0{{$ z)aT?^3)0TFM0@83J9gW>^R!Cvum=r%J(hpTmKk%nU)2B3xV8UyAiCCUkJy)IAEdua z`~3Z}iIR2rvY16Zl10TuaeW2@3oxywDa?jgI`Dn{j@_Nw@StZ=>o(Cz)1L%) zn-m;5+G5Fi&eUa#koz{hng8PJwWYt@YJcVvtG?xtFT3x2U2(FSOI!O}GiPQ#b(On$ zX}#{0k5Q?stu3C)ux))?c5;2xw-fiyxWtba>O@#}e;705WPsbY?$5%Tox3$G)nLay z=SRmpV3wG20PWEE4J|eILUp{=;sq5DIfJd95o1X@a zGaeFbH_CYE=4gkVBdW75xwL*h$Sgh=5t7EUK0Qg){c!H_)7uC#jzd7%kcaZMpQnD} zHrN)q?D*u-q0W!?o}JUTUCX1r zUY9A?)m6saVe$8o58HNsmiKtvtRFVjRXdx@49r}{jY!JO*>-(-Bi-?<9#7Vb^t5%~ z`7v-&bTbuH4Cs@HLJZl{gVRnvKf5X@#Gq!c{UNhHovQzRetbKeBOCYXvtj$QpkT$l*6vTkleLg3FQ+zT zM92#tE2pz<-{gFm+j*Yv3D;#u5q@R-OE^v%$dwZdbd_ zKHJu>>W=$6BAp+l&FaRj8r(##(~N?JD$=V5b+u&EYZj+oBnug^-SC^PcA1n0KKHXVm5a zk)~~ZM-H8>x1z6n8|OW5P9J+6!e%uZw8GR&);uW9)7;58B0GDo>41ROr_C03YE>gI z$Z`rqv?Xx{78}i;+l)TEa=$h*!(UZ(m-qDu%DvRV{M4EgcE{a^OzCx8rlIq-4%^M8 zJ9BN9f!)HhmrRhEKU_wyoo+8nGYbv&p*^Z8vPa^imD%kYPZ-{#zLNEmr}9?w zrygM?dB(@*j`RQF6`n`^~wSM6?eX_g~f)T%E+heYW&UzYs^mdq>lZoDv z{_9Q;k*eyp!Mw)xDT7k$m>h7++Z7@6cFKr7J0EBavwS#eW8a;1*a<5-);3(Q%C7cu zmkIOET7I~Uj0jFgMcsZG)6NWYKIT#F+34}@4y0M^sQOgCb=UoF+~ea~cdWB!RPb~4 zck-r(H&52fzF@uYVoiuwHdYU>n{Qsy@Kpn?Ef$J)oy;@88?ZFh0}`%AejT@ZtndAP z?^D)AyuY_w_Ha046U;J#cHHV-Rji2 zuUdOT4ciZaoy*KS!KXvZXVA;@>>f>9mR z*;|})rSADJ=~S=FDSb7^w$A3O2WBms-e^PG(9DLXJk{%T(t(Z3EnR~%;6BpA?RVGE z>M&`DUwZ@Z5^oO7xE zq!Ic7Co;pvIM-GS++6Qs+~k3WTdaulV&_i@g2?V+!|vOK>1<6=F%`S)|0p7Mcr_v&6gl@qdC-d`;`tIxT6b2iy+{6}xp zyx03!*G9Y?@uB)r%eN<97`ACYd)tWx`U?(us|K#VG`Qx0H<~cX%WXarfzkGtgzdfzmcsmd4>pK>7wS0(pH;MF^4(BbFbQ;svZ@N0- zev|&G?$KtzyJNbZ>gg?CdR}~B(6SSULcZsEzTc`FWm;$11&%?ho?E->eLv7E(s76N zoEAE}`y8HWvu^dtsxIFKX61Dcc#_n5%5;|Yjj9KxEqjr^U&-{5mFdI-){C~Of7{o3 z*Us6~J8o#Q?8oJAAqz%jcM6GD7~g%<+>nt9*OZ)cWv=A$Qw{bsAGUIAe^y{#dhh18nZfA2KuVy{y&l zD!mPlFF0)1tk3X_qmIjdAlu>avyhfX((0b-4_556nEd&`tMmhgiq;dQw`iLC*UUQf z#y8x^X@a_p0sDuy_4}1>7Mra%t+3Xs;d*ZRjIh~_#!BDFX+5fGziW4;>(?-Ud8MQ4 zfZoq@#*H?)RBt{!E~}AQziE``$%L)SJ)egq8q}WR_i9+PCFeSx@84nkrJaH5*R2=3 z-}AF}d*ax|EA8Z~)X%=XhA3JN%+3qz;r+I8luh>qRSroHliqd0T4j;m?oqxqrN_4H zc4nT#{iw$*+aZtoxlf-s?YwL9qomF&Cz`(;8ofBdwEBRK)_#_LUM!iM(H7C%dZ*uq z$7ya`ZoBSqz>|no2bTsoob0BUBiLgAp(?Wp&C;edxJ^RvE1I%`ii+?betz`Em+=xaf_8Zvrbt*W?u?xUSL z{abR=X)A8CY^o1E9OI@w=boX(d$$wvTth35PB%I^d~=*;`p~nX?|O^QF7lx_=UHq;0TBW+hyXM}XwK(wIO|uB!Y3_rjTy^pPI{T&)XUoL9r+XV(oHJ;T zx-|ZK-1fF_-Ci+ciJ?PS>W+4K-ZoPfG#&2{)HGnfO`^|+JBcV8V}HiS$S(WUZmopV z&YUkT{1)XcXzM=swUbQ!st5G1SC<}-!1OTZANQO0s@5)SXFWCPrU$m@^h}vNBCqqP zbj0ArDf_l>G0Sb8(~r#h9l7qdCmy&Cn*88@{tsZF3GJY-1W&_BH%{Ewce4?*8~z@3 z6=b{b-ml%f*`4jyew^y;E*$x7FLZmX>+BbuJT$7ak>BJ|p6U;WyzlO*9C(HvfaPM2hb_!xNE*T(sX0Ra&pMXC-3PW_L@e8=SVdQ~bUOakf`#qWHx{w=>96@UMq3hvoiC z&lfK=pD}XbKuzryB5n&3bcAPzrlumE8XTyHdpGb6Kp*zZF`ce zbM*;M`h)xSX1%yIY?Z3AmurKmt-1C0DmLovL`3{+kHa>3RbPG_X>QPy_1qn{p!>=D z>fTKWwm5UAf%C}5ogbg*eaOb3@%LLVuNx;Tg>0>kkUB81p)$-&WzE2X5@eWMB_AKu`Bl%uXM9>e z_Ol5ITGXNGZME&Ug1Q@c3^i9(Tya%BR&kPvgT}gQTU8pjj&yde*Z1H()KT$%Jzt}j zuOe9D8RL1L``-t>uiPCdrD?>~F2A6c??YqsyB ztHQq3<8odSa;V3jdl293d(NwQ1C4(y>bm>gXHAyPo#uAKN4mV;u+r@@;t>*T)l*KU zdF%VStNFcj4Dj1DBm9HH?pt=Oyc$lI2fco8w=UPCea8C!ewW|@w^r$i1O%UpaglPi z3tWfV$$ay2I%zY}WSwKHh_)6-oofwp^E>Ufd5rqLVOvhKcdkf0+E!N2GCA!ZBX8Ba z;oWu&u)ka*df4$L&oXsuE_yaE{kv~}>(Ltay$AGs{yDz$W_V+zd_M=W=AZM6U2?&p zn!foqFOy6?OP12Px_1WnZS}vD?q}W5Yvb{#jYhTBd;>}jMof97wa2?tU1_=a1*06= zZR$E;-TZBKwuyUfj*K1Dc~o@b=!qSbZ;WKy4v*d%)3c4+lk3mVubtj*W1y@~^9Fh@ zibh&oOI>~Cd%h=(%$^4 zss2Y=zU{@ndq};r(;O5w(BEz{VbGKXb6Q5Y)vW8X&#aNzSR;9sk3DO#dMzi1gPV8M zQq-U1-2eSXi^CWFoAj=;&g`R|N5lAm2bTH!T>pxjdN7`Hu(IK~LlQvx+ z9kteH?W)h3FLkkAyZO>>Oi+F$@4~PlQBHpCPPV`4ba7IcuYo6b&9_7Dx>3jf7jydK zaTIDY_YJeN2p(y^s5d9c3MqBxOm(&$-S&Bgk+%Qt%u*)1Fv+fR>OSg+3(@blSXZ9*Yn0DCDZCwt2eS5-VO*p zJ>c5o)AKtZYv<10`nS6roBR(Xx%CSVTDN+7w*xyT;cNRh(g}M3BDfY zKVF`clbNJ7e$ytm0p9Bx+&gZv;drlg*}?9QKF(Y7{KAMY=G`CWK_l*KX`@bII3Ql|gTm3yl79d;z9j}t1=j5Hdrb*0l&OVc4A z$8S=P-Qzc*j_=)8J+01r8r?KAw_j$w?Mt1b>vm1kUZviUvnD(6S=DpKijO!MA?&c0 zpZjw{>)O0k+jGJY;oQUCcpo2-=c4X(KzDGim0PQ3+s8Q{ioI@VdTX~ua@cPDsY72j z`&wm@-kgxxpOT?1jov<~nT@i{mNQn`?W{XLzjEwbQZGZ(g-X7ev-IX9Tl)niDjS%- zvheFP`>5SqhoLVvu@1Ofr}kIZb~)#&oTGWen3K?I*&&Y881}_lgFoDw;;fB$-qVLQ z+70@Uuzv1h?He;Moj_K{=QR^l+P1Xb(uUjOUgYvu$*K=}Uh?~@?K_QY?q9uzvnS#O zRFgH0u8n@O#MskZ#idO*DOnwrql>aT^lLue0SwJOUfbpM)pD|p zwGVBmI&z2gymNlrTR865*oV3oPt#7G?S?$({U8xmPmMe$y&dd|VA}Lf0}g1+PD6&? zn1}KyGp`?g^Ucqhr=5hIUpcIm}>+MvDk&W`8mvJD0ww=yt!Q76iv*2aDB>veq6 zvV(ih>opsDJ&%hw8ZgCtU7g`IP^8Vv@X4*CRobpwkj-k@j`fXoeduv3!$BS&jto6F z1QkS-16Kq*j(BZr{dP>-tiV&zE~{7i>})e8+J9PAMP2hgmVr8sYKgW19liTyv_H~F zV~EYe=H|m+20oi;=~Q#WzOB$?<2I^$z1w?bXAoQF6sAh_?#*p2-`Sa&aE`3mzEQQH z{;3kn`_SD!w!Ush-G=V31KpL#^$Cei)};T{>otXWm!UHXM{) z=&3vSs8{?+R+oU3dOM8oqYAR@%xcZ9-uiyv_91nvTFqTs+c-7r6Pd|cVLhQ$|#B1k1+oLQN;fO?IA{Htm;OtX-`+#D}-G(?h3KAN?ZlvTe^|lFak88g(Z~WooF*R6YRL9-@QoPtLoM*rzGc=ew2nAS$C!T~heBytE!MPNYWdPS zxbLt*PK)2A_ddA#(4CgnI^HiMc5t0eB!#yc`+mq?&4uRYjDK97-LCunO>LTfk9peV zB#5TM_a;pzM6ut_3mf;*@o0bf)|qbc_JJRqHy>o@NSU8y+dA|!;)K?;>E3XxjeLuf zHmKvHH2tOh@lJXX-3ICQS6yTGKNlZMg?ES4TQt#$K(U20n&;%BXX$KMb3LqM+lcWF z_eUhOU~$#VtNXw1*57$p>#$Xa5)N29b!*~Vg%goJ+xz+3=bVKToXmT*Ma`(kv&=}A zJ)+w9v1ZF!eU@umDfBlq2=~*om=V@-4+|*~<3nb8eq2AS*6FHBHmuO)(lf8WQhQtT znY2?aR_$Xc@~f@GFB$Y7sMI?6);rTd$COS*siU)@t-rBplZHMts2T*dnOse$K?Rc9wmyq)KC=8zJ>u+V$_#=g@L#rvTY!0iSDi z@OZa{ouK=_x+@hFj8;UbU&tQW!D#k=yY;Lajhs5{Nz%K8r;J3^d!KQ`pFf>4tx3yH ztUVg-{--vuPoH<{K4y;pxVBFUe_Y*3{>Ha;bEMLA4zC^9=TK8^CplJ*M*F>y{_h_h zP@m=htd@GbtR@PXuVS+T0y08W&TM~m+wOM6#ttmqeqM7;O>dpoZO|>9JM&Dy#n&Ih zmfeoJ*zU)@e~*^u!^W$X9UuQUIj#O)bUnwm#kO>HC7o3hR~ zayjo6)u^7oL21(KWuDi;5uw}hWfaMTVkY9vENlX zVLXe=sdYa&ME<*tuDfi4y3=@+l5fpXQ1~9U?^t^L9_Nb@L-a26w5sdB`n0;eauc0f z&d#w7)emOm^_!ObD8SQvl3Nvxp{nN_d{${RYObc{`OR{n@vNMww-pvn@U?ERy4zPT z6Q_kux9DaxYBbGz5sO>*MnI3%i{}rq_O+?6s?p7L*tn}z){m*LW7n_`t5w66F`1fQ zWzIFQ8R0jK)p66iPVW>#Hz;ziIXeffzy<``PGk1nGPiyGLeEEbrtvuLjn=I79y3gD zncrpS)MMq@v&O&9SoM0E%}oDgp^I)W=8WpIPg+6Y#>sQ-^BR9`5im5GJ-DXStTurP zw-XPVfE$gE~=zi8`*J1OI)xGDw(y@6tKpY?GKt4Q@|} zo5QNAZvUgJOla%dM;+O-)l%=BL9u*U#aXp@`80HzK{`HWl)VNh!hdVZw zZJ=YSKXvCA$13UrQ)=9{n3<)Key8@xoOtah$B_Xw@|ORjsMM+EId(r5j=sGH^gLlY zcBL-BlcUWbn2cXamt4(e|S~Knp>OLCZwr{y%R71A+y?gkVE3 zB3KPTBiIoP|4j#NDTDe_EElv_XxV80-*H^t@e}L_h8xicrUctR_0U4cW~048%Rwve znE&1<8g>Lzf-S+AVEv~Y)R(1bVQ7DG_iJE4uqK#mqW!LegBOoP`-1it@4p8I1be~( z;o?^w4e+w7XnAOVasPW^KsX>=5KeyfLG#QSEfVc7-v2BZ5Kac6{VZA_jb}Tf{gvnc zEW8V@L&D7}G{RM79&&itF0{Y&{?EldGY<$yJJASdm2t@9A&1cZ;{MOaz2F=moDuFS za*(~j2aS2|-_L&+EC_eywHZm_UTie`7x({i7!VE#mt{Rhynp}vCmh)Oxba5NI-<-7h+Rvr4}#ZA@HZ!0LBT9STYFb}l`4CuCBf~ zip`eI_&WzAo1+|#aPhrMQpWu6`lCNWSF7#a?`A0)zc|4n~lwQ96m3>ZE^gSGo zT9T&bhJ->GctZy0^8?S7NN1CkZ4revkX?9xaoVY>Iw=}DV43-Kk+D&%2;ttQ$oFNU z15#3281LFdQT-*{7w9SyjXl2~Qdz31lfwj`hw*-6v!(xd9g@vffZo33M`7Q+bCs2C z5TnT{L(CLA7jkuIl`5j=fV#S4EbKtgr7C4^Q@q%Uiav|YR!o7-?}wI_E9QZB9(2MC zHMLpM($e+H#lNB3q^YUR7MKG*dCJPR&5Wf`aVYuVWtFZdFtBDyIL zN1&rA&~pXos1M}n?q4ft`}#@vm&#UF9{NR4cLVNzU>+xnhZlqIl0VsOPI5j>S+FCN zd|f$z^TmBZ<-GSN!Lo3Ska40lHC^JFHKncX0o#`$*#^qMPYR#+bH>SreXAeYK>2z* z=50L50YB$`l{y~EH~gdXH)LdVAP?>2>rvn>nKCks%f(lI20kz!g>X-DzqE8M_`WI? zPd{s|g`%H-dYnfdU>pXWCzGKApb2qA8-6#8!K0zC?nq_&1wAjF^#0%7uQI%!*3lm? zSEG;M{XM{63w0sr90~9(3dq6i4Co@UGBVB5;UmM})k*fM3>qww?_!N7X=%AZHe>qa zl>_;NaQ_GKrc!CpzXA6Jw2uuPU{pB#NqG#+VSD%?BU3+GMP*Ecmey7QSur0cv>r7y z9HZssjUwQKltd;)9D`~i?6%R+K}q(A!TN?jZVT)(jul=?B?( z6&3r3{>l0Y=H<`gA;0XoSkD=%suRBn&VfQ4FzZnCC-kQn#86;;azw6YlGl`#N5W=X zNY6z-+dEfV+l_DAqia-DCcwTURZ)A)FN5R1c`m@lf;GKT#9H5-1^YuP>D+2+Gtg$o zV%>r_7s};iSA!h^@d(m__QX6{S$)utEkZtb(lxZSHm7Q6tj@*U${b^8z#| zQbOAD7r&K2gMfeF#F=kzBwM(u>eL_7(sh9c8Nw^WfAi=ZK8k2Hwds*`T|VA?^1v^! zUh`wqn!tRm=pCsnhboe|9=ajPY5R&yp(v*Mm zI{P#G&dya)83&(gz6?M(m6K~tcEM8M&&dVt|5`W)JhKsF5Ki%Rh4CxiIr;HwrN!8> zbL8XHE}HgU2!97XtQQ_|8pSjYKxanR>XqT6M8 zCVUa!m^nap1kn5>hL!{OF<9>s+iKC5=zQDk9xnJ!N+rZ*mVg6xF6@Z(eArc`$WO=6 zw-T=ZwQ?TCAt@;hib2d8>~tg>d1h;9tbo6_BhlD$`V~cvArCyA?{9{`f!2K)VL|j` zjEK0(P08iKpMpX+zK;Shkl4p3*_>tPz!w+^e-da^zU>3^EFL-#^beH^+m$8jgGfB^ z=N)))GVI*N;91CLM3YpEs69I z#y$<)B$3~$JbfyD4?9OmX~0*kCy}v3kbk0S9L4VwkFQF;9{h45^l{Pp7BdHs6Hq1^ zEzn2k;wp)-{lzFN4~~MI&G)UTVPo>rd45T-VCSf-&*MLfe3gi~E!SM4zGB@MJj*8! zajxO83qfv_6R=B_)Q^(Chnxu?a-obV3dW>&RMy%OfH{9{m-ZdzAAFOHOkMIEKnxGr z;mX7Z=-DbN|NNjBFhA6RmM>se;Ljx$72AUK$j*k3IvTVE`bs{G zG&R?N4=R)j2k1=DOSkg%Ql_7xKIP>*@yApa+*QW4u&rf)ck;(Bs(<<4dFPUS4s)Qy zcy*EwG&G#}aURg~;I9#mok5Hla0$cn)GH3T=AGe-wga!FDpL*==&q1mW8%b#2~kl|N$EIpad0beBD3gG`;eDmcO8INZ2X@Z6k+6Lb z9CBe#h(QivEOM<-1E4K@T$0ET<;SHsJeTh`st?eE{3Rm&r^0k&4_8K}sSy5`ELoB+ z5(yRf^3$h8u7SZ(UabNV_{Z8{=V@tKg@=SB=81YuTwDgXNt1&GwGO;6zMfQ9p~N)> z{SPv|7e79<=$M&vl2w$HEFt?ym&kL(z2{H<4g4)uUcL)*z=}3w$o+-!6!7B;@wK0U zf5NG+?+0$xs(ZMi@z3H)OUtDN2Ztt$$G;ck3@gg-5F7gee3I>TL&eBB=Qej%MkaQzei&cKnHnws|g`}YLkC+69+ z=P@r{d`*4!EQb5wK_oXYFoJva>W2(3FR!?J_wL2yQ>tqZ5(OuSYtH zL~9kioKOEz!zCTMvjld4el=R&6shgT=>V_OO}_H zm)Hg=E2|6rh;IiXA7QC97a#q$*J1AJzD-Cb4HfgkH@Yik=@ z68;x0dhko|ucTzb_mLy6SZIEWgUkPy-=w6fz~_HNa3VVdLqni* z^69drrDb$U_+P#}=%?eKbYtX$7uZ3_Zq@!T{)^~Jq#H2!Cmd3o59BJr7~K+eD`t%# zRz?8-4t)M94*yG+KK#k}r`*8auqQEg0`i4cDbY^AjOG8=CnpO&KE4l4U=1TqTSiD0 z6bBdBocK0KJdeM|#Npq;;r36&KRXw8I{30Z`1MR^Z15MLcH5t0yAub~GWF=gpfR=jZ2_aOcjQ=(lg*#s>!nCr}Fw z{hAaTo57_P9v+|Z^5v`8moHz&e*5+hn=M zb`Wf(g}!rIGj;0h=X!g;MUa{Y2W#w|4Ha%Ej{DVe;zpv%%FAV)E{PaQX zhSjKL;LOi2QB|ElG(eQEKqQ~T{7QpwF%rHB)PfxiJ6cz)hu`Y^qj-A6Y81EWk_{96 zqZ*~9jt@11fqTZ+Nj2@7@^otQ2f`*q>nE4=xm~+ni^XMmemr~ji&*=gIQx&F{s*5Q zWET&9ZgL^sNuTx1hVO@JcBEm=gU;p0^ihr(;*BNYZB*wk4)P=4KE^yBxk>TJeJIga z_A}`O@Ps&g_Y%fTeoo4XXjN+5C*r61G8_2{Nmge1O)!&}Zy(XI?E(jJSHi9OI&~V8lzBfR>2XiGI%aQbMsB%zP~RNp;L9Mnqg65XZxZ zhnkuL+5L<0jRgx9q?L%sGX6mJ!@$76q#ix~$G10@WdE0uQONrA>3fQ(R|w;u2Yc9| z%{M)`W`>T{7l(t+|RxaZED6S)Q%ynOofDLx<| zAnw|=Yw@Dm)vH$%{r&y35gU+TWMq^Kn;>#PN{|1Ol>Uo@7x-H;^1@>QGoDWizHR<| z2fawaoKGmZ&E&^B64=b}Z6%2gZk*Wh0Yc~HxEumV2-{yC`YW+J2uRu&wwR)l<};^t&Ue}iof z_>nB;t1RP#o`*TiPJ>LzivEmZ>WQW9EkC#qcN_;mY<)WPa_aJ z1X+Qd0=)BLA0hW-q4pW+_F2UiKE4PG3rm!hmHlJ!57=V;uj1#GOG&9m!|%_RJ1FLj zY6~ES7Bo*(TTOKoON|4?HJRnfT`UjonR}?Fr+68_2QgG##Ky$Xv!KuN^%~@5()!QR z)ZECctx+(pg!k{?i}c@SXJ;e-Otn-Ulj*bI=dW1*l=})DmR~0XI6`i~5P`U}Ma1uD z{xY_+VxNfb2Asv`fg%1xY)rA>xGV2((s|5LE5)N&o(gooEY$FYPEvZ!Q}BEN+s{I> z8zDDuKL0!95J$Xv^{Pap&)m6l%SHEo1^%gi1m-Yr{gZA8e?}H+lkn*#`XGVK#sQC` zx{^L3W5*CzA69xCeC5f0MduG<9)BS2H463#*eKS=QO+A|1F*eImX}Sw5XMFdx{o^1 zHBdu#Bj1jXSc#0INAF~aqW|2u-X;i)%n+=wYlYtts*ZuRhCB=_aZ@XXt{Z$}qx z6g!fcnJH5CpzrB-=#tT*+O=!fqpMb($_>$;owqeWgqXigi{iYJ&k_5zfv- zjsrh7f{`T&K8#JZQ6oRddLqp*;!q&=x8H$(W^D8c9T&WgSIgsfthqnxozN%26NUXf z;CT_qorZtGjYltSZLe`tQnJP3v@AdV8vOeq?_*RLC|-uu|d z@h!}eBN!Fb&!ybW80b(u{?NDYIqu!NC5G~q1^wKgkN<4=vj;*3mdcQpt}QgbsXnl% zJh49yFO^H@#f=ZSvV6H1_Ma5kv-y4l_<>Mg$O^PzS9&$GMXyA4{1y(LQ#@ zj2Y4J55yF-=!FXxMY*_~O548u6_?t!ZC6qdKODPw@nWIYxbZ5U-nn`6b6j&XdEvr^ zF-6;!Effe-_NIx~RxH zF_Pe)YF04(TJV$PQpE70&QA@RH$0mS>fR-a(Zi`8OacBW#-UNEIpr0F=fCZK*!fXw zbt_*tM*SbL@)2N-Jl$c)?H6Bv2r(BT?SqowpX@h+crW@l@hRGmr8GMi?EcBf4d=y5 zkY2;#Xo{SZ|2CXea(|KYI-S4X5HriC??vB3vH|eNuNOdgfv+H$_$qXUXw>QE+gK4B zArjV-;lB#sHcd7u*dk*Pw*?!F;6B&h*sshoglsfL`^lW658yTVHr)Ie7b$*>3v!A73^mrwP#3Q-t`hSGwMBS)t?*<9*j4%K7JgAt z&)`aef6B#V);#jD$yURo^;DY-?-a1hd&93wbfCDrOmTaHxsBuxge;2~$NZ+C&>MRM zDg0OG1Hp^&Z!k6o@IRd&z%_quF)%LriM58fIgXI51YHWb!i?{k>Nt;vk4g9%$Y6ZD zp`N=)*-jGtQ%y*wPk2rdek7F*9ELFK8oU6u>sm#wVQ~=$Nq#c1K3~M|U{8VC66X?% znrDB~cO?IURz@NRD+%>XsQv@$?zf^C$aJh-)ZZ1X?^S5$Wnf+SNqfEx{wfel1s+jo zQ>VSrM9A7)_!NNue3&B-fbd_;M=SyU^Wa@wX%f#{NM{TP67Wu!NUdd zFARNS=7~4#WAjiCM76~FS%qUS&Vzo{Zxk1zrZ!KY&JEN5;-BQ}1J4Y{+Ggrm^LQ)z zicdE7(dh}FXW?AIoQOvqExvvL{}<_qCCXf|yFt#TJ!1>?bU`>sf`8IM;iEyVWkr52 zncy>+zY(L!x9>s*rM+lyUf6eb1YYd$f*J`hiyV&sA%pR@<6G4wmpyaGNWk#e1+Fp&)ZlC351G`_r9blmXs zkiAIkx<%|}B=iD)oJi4U2%bZp5GiL$I_{r&9r!(8e-rF;(Z8{dMbczZeS@73vSRVv z8sybctVoeLBl&q{;vY5!zPwpDRv*X@6H(_)QKbG^wC_|mvhd#GYoGZIbgx45zUX@^ z@f=J15f{XdgBOHV(Z8W*z@C-wR}j^g-}xQJAQ0PF@*IYYP_8+Q zm@>XRj(nSntbeK_$*0+*p95|p?SzuRQ&!f1|18Alki5XJJt4{cbPaNXh2~IEyff#} z6^WNfymlmge`Q>UcqZsVqT|$<{*&ECUcOtIYdcW?@O=K7g>J^!-pjmh$)5;aM8MXx zI|n!u%cI4?2l=W3^Rj=r<~HT=F}8$4SQTGGWHS@jm*4pt?A+LwZ8;wnqQ(K*51qYy zdt^`zc}6!PdkfWSF3)(8Q;2y~Xg{QW!cSN(pDfv@3gZ>Mk&D-$T=<7vpF#4yD3~$d zAyyuBb2Z8}=JLR)Jolh~*cWq!2>pK#m+D``r&59W%jVU^WZ(f^OQIZO!Es>jrNUpx zr`OE0@^k3qCCSGXqBoF3`1T+05#+DR2-zzI-(A|@upOY@tFuVhQ5+QPKo#M6Lj5kS zFBSQna(F@G$xk1P*qu1~M13dPBeBAEZqf$|eSTip!>tqfi6rEQQslQ4piiWu7xF96 z)^7#&2#H_?e8Co7n7>GN=Ze6M?uDI+VqLKB>^k@icOW))Q!4BUQCK(s3fzkrzl69E zmWM?=rvN9k2k;1zGYb6aRD0DJG4SH+w3Gc1_E`b?N_+M6`vIK8kI3*@?_4|^_GbA~ z!aX~HuG@txNcEGcA2KWK&)x!Iik&Hrh2e1~2*9zzb9N6Y- zqW;EE*rkN`rzzO?TOzvgD`E9tdl%Wj!M{t;m3$~)4sj%|@HK3vm@CxiEE*re+xr!` zm*vN3!LNWl>=yC)IJ2fH*8=h^^0Q~h;P+VaPc!l-a}D!}_hEmRY89sc|22G7=6FDt zNk$gJJ?--h+bN$8Gx!koNxnGL-lM#Nr5Zi3W1+Uq4w3uL5j~-r7Vz&;?iFgaTMO+)58F0;TBW|H zQeaX^I3hY&t{lordcOp);6UaZM)a8<`5z3)poz*aO54@kq?P+ymdTJz@n)uL=I^;3rnL zB6|gDn2Wte0v!FU`+0sqs-ejDEs*{Wo?Y5n{$+j6=SzkAi4fgE%@@G5Fc##`g)a~H zL4RofXpbl4m>1R=gB%}6@jZW9e~Dhe?j>YfD6gIS7mtl_@Ar$}Dbd=5o(FzjSYME6 z0Qt)Q#J*CW5dW7bSgVct{_AVAm6;9`?w6MzrW9WzMYak7J-N(%C^jD`{y$&7&gZLy zd+_5@>xq9v51{e!`~4i)*S3+Zy5CrmX!Te+AjT z;YS6YwkD8mUrA{QVqG-L?MGw!z-BAKM!&A0ZW6DSWESN6ulT((##?NzG4HLcPvj(_ z-gluMN%o}5h}{FsVOQ@8{bV|PEKUiks?$*a(-6E+yzR4;aarN_>Sz-CEl9^LskSls zRb^$HlsiU={4>z$dHe6>%hVJDJPf`$(Q$mGjP0l6x`g+mHcmh2g@tnfIw)fI1`mX9R-+t#P$|^P zod6p>V^bkp-8lGUise%l=~LyAN`D$Qi&KDAWrvHp&MV&>bav7U{WI??QGj z!RON76z^OX-&Mg_AK{a5Pse(+QsIhxe9S=xKZRo}+8>%Du*XA(mb}3i1Nph|+2AdR zyOw;99ZCBCE3bha2=$)k3g`rsD`x!#cH)GxH0-A-Wcw%z>-=-?9NPb;jN@C2>zShs z{wS6wf$xOo1bmbH7#z|4D0xnl<$CD&h@&cbzv!a<`cuy-{u6Xt$nTiX7l=1V+6vc% zI2eN7l$bLq0zQOm!Z~xu;*U~!0BX-mWNR1K&(eO&*YP#W!9RrOD#jx;cYoJ8a$>L# z@@9$RyGw(OxZmNYDvKSLa7{QDJZ9oVEX-gJ{i*Ap{Hn;i{LkQ?fhTg6BFO(F4u2K> zjrKHW-Y3E53|v$6(8d>#QA(Zz$cI4!0=; z#qdZ=*H0*G1J6YcX=yyb2m7$Ml+-Rt`WfL`)UgU*ilG5)$S{N8?*fm3NOg`#j4Jcpc#x-$~jlOr6LbdW7TtQ-M51azCh@WmFN1F&_( z!#@9Sja3sf?|<+7Lk=0@&DM&X1MquCmqAu0+*U0K`32vP$7iXwHp;)HJuI+SLo8~* z!YAI2m%ogA|5!NwoBIZRGK1o1p--UJ?wUBnDIl)F2)W_H^$*01k#K5tt3ZNTvQf$^6y;vv*!xovWX;!7r15+{{G`*!_ddSb5A@B2#18rvK}1V zK(b<~vH-66i-SKC2826jG{R+h4)PDUqy5G2zYhk4`(0>^j|YF2>yXD?htU4gfq%~& zAYA#O$)Q!oLC>MN^mh*Y`E!6-_mzcvX8sTzAzo5uA2#m!%Rhb%3QV?V)gLw-CrF4UKmhpEa9fSvL0@g_-KqP1JM5RgWrpDT62Vh>u3$pe&s>)Y&2RJ z+TXSRdtgAYw?+FEYaXu=c~rr-E78cW_;()s8W<3)3FZX*Kjk2w@+>rpEBq@XR{lI7 zmYQ0l|)7NU$WB5^VoX2k9Z?Z?-^lMB9({ z04)TK;#DNhJHWO7)j32kAXpGg2sQ*Gf)&AxVE40hIXoIbs8Olnf>}rXPya&TF9iNV z;4cIUAmAhniDLA$=nLv03%;KMoV# z|K&tcnbPLzX|e2 z;*}zBC52ke>rgYWF#j2~gi#BH_Ub6wO3$+v{SHy@755$0A1nH9b|&f&2<0K7b}?`z zwtkO0`a_2rn#g*3*wdQ7=XN0ss2=O?+@cLRLaA)FqBxj~fUmf57XJKR^KQccVbuE61 zj|BB1P@{4=-s7E%y;e|9MYs>BrzWuH9KpaR4>?<<;bR!aUc%hx!36a<9r!hS@NVpF z))Di+7`&*S3$GS4<{{u(*>zp0KFM_S!zWKkX&@;+#qfo_$ubS~^-@Y%`^-4+qfb%g>sRqUg9c|IZ;dxcvG;~Zno`zxVNW28oz~U@;yt7# zGkvd&PZ~RDdF4Hm_zq|k_Iuo&joKYF2T}iDCKI(mvayE6(W7GHLGB%BI_)31HVw43 zQu|pj=AZFQ?A2N=9W~N2P%{mCN6yB4VD`TB&LtX#y_JOKhLltd@a%CZsHXth?g98Y zV;}h8*ek&!i}u(={jmz~F;ST~mgHI3XPC#22@crfDg`yF)3BFB8ut9;tq;&kqLZ|5 zQUdCa=b$zU(HPo46M48J(ok=SR~uDMuB|9~TWqdK(x>uYLpjLe_T>~_Kgeyy{yAGv zXMJTF)epAqW(y+wT;?Ws0;3h8cEARbIY>sIXPv>nJxv6oE-Em ziPkb|P-iMC4j|dDMEc9X7r5u)80!FZSQs|UId}zcegN-)kLdA1-r>;^?1#dmBh0-e zd;+e$6REyE)w2ix!@e~YlSMEN0p6c4S7Ggn>5)&;i)Xtz?y}+fi74>gHd;r$A3jWlX#yX|0j7(QE{LUohbosCC&l7TS)e&XQG}} zvHqeCAm;ii-uqE67HfBFHfrgKt(_?=tIyjT5V$S&Ji&fq-+RmfchW-uFK@^gQ)oXT ztViK_g&I`FWL4DFuMph?-QvwrM)svo)F;H87SsXR;LQtDAQxvA@H@yWqtZ1sHv<2{ zav=8hg4{d<_4*CL16uL=OXHW8)=7h$37xGtoyW6NAy*TOus@3~c*1tn<{npsCUSB} z-V^L+KCXza2*ar?=is@R$4-2>V!tMyJ_H>Ta@HWw>p`g)EAPG7=bJy*6ck#e>FXcn zwrF9Vtgo-1-nnz<^nU#;vc`@*o-uOdRc@n3y-`n5aQt<^FSlms=pko*Ghiqe_ zX$|%#qy6c4^YO%q6RFJjuU!i(ar{Y1NvMlmoPR@(WgdsK1m3 zS`8W`Bhsz|8I|OnZ0uKqeTm#*8=9ChckbG>`}gmsM?^%V#l^*?Cnu-nq@-l#Mny%X zWn^UVX`{FI+fv7mx@n{f!M-<^Cs*Me*#E>m2YZr`Y$-w(;?RC4kd+z(7oz1#N#KE6 zPnr2LO}^ZR+9as|swBiuQ2UC9d(glXvi(7CNm{h%Miw)_#eHUH=W_e>IVUv!Y13x# z*FQ7=$&NtsEXm)fiHrR|s;7}YMLdw~fr4WpJ^`5rzvcHCvKacMAk=5U>&5+z`kZ{e z&pc06by70%E2hCN!+RIz2i3O&d{i=nf*uKtA9El*BqW62f`fyzPMtcH(W{pOZyhuI zkNV=^FtgbB>3fU|wgYMCHPSgm>t$v2cr-U(uWXkAI{~l3?#&-N(`U$qCF&sJ#!vH& zc}8iUp#8kL3H>!WCMG72!Ml%-Pl>R{y5c=waQuSwpTWOi9~BgOK+bf}#D1*U4=5kU zrF}xrDi@tZ|A3!Ddm_CD`+v~>F{w<0EX2bh_VC2`-60!UrpCs`<}%}Vbadp)ErR2q zzsos((7rvmw*{|WC-zRtf@}!AFTbHyJMVWvn4q?Jx$uuZ!Zu-yec3ibpVAGz+1VwJ8Z|1F8r`q1J`?!giF!%-wiVF0qPT@z&=>X;H=gYYHTFnf z7psRA#Y-8_^B|vM&H3=`?If4^_`GA#FZOfKo|oKJs~(HJM)1d+oIGxwI{Wb+s+~_f zU>EI?Rnq(-S>vb4zk)C#{hj&*y$&|64v9^g?8&-$GhDFiBL6P?_;axr+hFY5H zpzoD;Ui0O6!Eu!LZ^$G(T7-GWn~St2)YPUXwP>+Cv2EM7sa?C8#rEj2AllmcRJOIX zXS$J*Q5v=8&4=RmV_Y+{DM`=|Q>j^5xu;oMAIs?8eL{?pkx3$bXKlSB*~Z2vy+;oV z9>0eVmiIo;Tp`|9-u_qgKFCFwi@QPltc$EgHtOZ~1@HFY`=wy-8de#!P&xQ0Q4F@B#s@LK+}DmsSp-OoX7?$+?Nw1e*M3Y+yhjK9z>0^SVU zCfQ3Ipr_SK!SCtN1Nb_NsPU7n2X<4)5=~ODo_PK)$RPrC7dg54^5)JA*g{fB=8(|O zQ{g#}c}{zS;JuBK$sP|mi^uyIe9>dAx7NYSa4yV~$@W1p3Q|%v$)*CEhp>!VKHLiHaj;K; zzwa!NIq3c5&+vk6*cN;-pZ7u*#C)bPPfUc}FrBU^J2>-x>@iF8xnOK8uBh?D7mx_} z^647MedGs#%`Fx49`nHqa{ugZ+4lk{h1yhT4j>v{Aawp{+2D0&Ui67r>j zhL(5@*@G}%{yu`#N7B=ZKT8;{W%-@PLAotyGyG92pj$T;JHMcR^K=KS*&=r8{63H^ zHGiFu-NYjsI<3g(f!^}wHvIV|j-SSX{(!cw1svRI9~Z=+D3%EKvW&YT*Fsn4`R$dJ zha{5S2G7dH+Qoif?UPY69sa?s>Cl_v2zTJ0_`4P8NxqK}e)3H6J&{~N@D}9%V)}%& zA-IQU`SC609TM?TvcCYY@Lg}Gy{f@0h(_F0?v6jrMW_Dg}%o+&jjr# zm>YCXen(H*14QKfsAxY6?&tHU%6J~pKj0U0k?esrVG~g&eGPsRTkNYl7`6+2j78Ws zPka)7Z^%3|Ay+t(?-IPcIphp&q9a8A$hKG_y{SOIY3!9&4>dpbV-0Z6i~Xn+oaN6Y zclbeED#@QCv@R(ArIh%m(*4~8f6z$S-WCzv%LUyMN%zW&CngRCemBsz5_R69YqJ=y z6!Cr`+h~)SA_fqWFWFD=Cyk3d1Uxm1Wyv2)e1APZ< zh1ZW@|4BZg*b*(Rjp@J#`KiS5j$OESh~WM7cYgfFwjw;$0qe0k&Vs(gqL4QHt z3U#%j&#l-w=>wy9FovBAa-b6Ai{g#BhWbMdw1}=NiN?{`DOX5HmIb{nChs!OE9nz5 zKb}#j|5a?Pg?JZ!4hQo8%mR6rf!SlPBdN_#Uz`6VGDqr%&+c zOvJ(f2cp_=*rydrvPBhLmlZlE*?{cskQ)(~Uc5n8FD4H|9}+cw8Z&b=#UDa*1h!qC z{!U{j+b-$bxTZpV{}uN`7Nod2zRd-CH?7H{w2;PHG!LX${sU+S>>GyQ;i_V2-=7B) zvIme}1wRS!E|MP6Sc@Kt_~HrLACKb-_L0V@fF|mo9I^jm?iYho8e3_3a4r6$Frcy1 z*d#d!M*pR?Kw~Kl??vH4Yh*3jzl!#uzsy{xPwG33p``VWpGrN5PY|!HRGA*n6YOVY z|4n_RJ{RS2_^RB8GVUCNwgc@RS|pl~%z*RC9)~2)qdrhys87^4>Lc}4qJw*bE<-_q z{HvKV1Wf&%dIePm)I#%rXX@ri-N-+ea?1Z?GoSgVfB*kk5MbcUeBQ`^5g#9+`R8&B z-iQF;s7KCV9L5Zu8N5@S2m`dSX#6@6f|-%{UV?*alrBKKg!T=M=A4w65G=nUc);aBwH+gaet z#&ZTxo>4*T2iui=CHZpLlt+LZe&*Q&;8(Wi`&P-$0h_xh8$0!x`o0iN2==fA3fTx@ ztA`DEX(rR?9QG>c;9~R8g`QdT9R=se`?ZEGb{Fz$3ZD;~xX}AycNT)Lz_W-yToyQI z-U)yGc=#c`;p6>Z78AqHTnAqU`Ke%U8bx-5qBa!f8Kr*07J2GOhY8+W_%|D|FdB$85PdKF2k@Wl%0?b-x$IYnHKZIght3V^XvCdVC&3W>>!9JafafqVbT!IbacfeQr zg1!jz5;}*UmLJvuq5+VKpA1=QSL>Iu%C{7Hq=^e?Z4LYGJ07o|Vwr)mw6Qo3{b{RNuUP2 zcjC_+#J=Re6Z47kcK|c(9Lf=*zCL~&E!cm4eq4tR9eDGGc^70%#Ffnv`i}XnvOkHg zVr?Pkp&xQ+q!Hh%oZX~JlMDlcwi$i;oX9pX=$88E|Jpkn*ea_tj#COEFl-lvf@P+g z5k~mj0!Rm1EYtyhA%RT_j4u=Ua9cX$D}r>{6v7-jsT6BL1QQZW2GoUROJKkfi3wRk zM#Kn-%}^Xcsf^h6zW285_doAF=f3Z~x0l-%*p}=~PTzaq`<`>2^PJ~-&hvFnPo6aJ zfAGP@wD6A|JJyUJ9FPgNY3{!Sc4{Ot!`rt3hU0& z{b{i4G?3rqrx|fkYLANEZv9Pcfn8vY2_3_Hf%iSKX($Z4%OwW7wE`e6pGKSThW$>d2bD(XIbNrm11o9WbJU&0SLOyuJ9CBJ>a)q;XooBQ=!&zV5E z?5)3z&o$_I!_l2{$?urn)W3ffcJ3n1NGSaJjyp=o{VrmC&rv=-XQs?=%SOB*dcNjO z@=bcX_?SJOX09cNM4#+S;H;hnlDmfH#4qA|_{Zoj$jWV;2{AOTbLX`3 z9N9BhX9>_|c5*TsI+7lTo*W^+UVCNPd!XDEUp`0&m8~c~?$c+XU}@F(&;yK|ONJl# z*kAgD84Ef!`qb}4*X*-Q zutrK2$(BGq5|68fHi9kd1rm?*iBt* zk5IqRT~fc9<%`8Xu`kY~s*KxV(s!oD=`~Sb@&X;e1Ai%NBhR!BUc*0?qPtTsrgf0~ zqm;3+rv>@u=L5&_9~xf*z62a?JyX87^i3a!>G`T>&neK+CS;D!&uU9NE&7P>DUz%W zj6E0oVgA?b$pQBCZIUC2T{(^QGOQ1^1!rfTYp=7fUsU5`Tw@B~S&J7+KSh2%PTtd- z$j!CV5g3fM=Yu1KZO-K2+9?*U*1{tom8$#%bCY z?0*VA*PN20r@bNUN%MVZ!Qb^6xeSk0V;9RepLv{_erHb>YuOu|Z z#>#N`1sRvZ?<;{l6u)49hpVHy_>u4nY*oIkE9~8(t&X2T5yY21Bb(u)ZN|0>-u-pi zw*kPV&Pi~#AoVmKHiopD1Ha6v9{cc3`zJnc=3kAoK2goXYiq53GsMx{7&O|ijtxS@a#VVcZPli zqhL*URq*h?c?^P0FlM@D^W*<&{(v1<5g!y2PA7A3H9ZLi!BRwN?xP)TY{Q>r&2XHRWddTGY1sxSbNb zl*@mF(%G?QTVH(zb8O$Zg?(EX)u*melsL|FIKTZF#UY3{6i7aaoK!lZhpSCfA6;H{ zqwHF>Y5Ujjme$NO^b@xa1wRV0?~OXoQ88_3C`HG#?WEkXOVNe5us2rqH)8k84sTc3UZ?2Gsx?sR<-18-)(7dRc@p2h2{ zZ}CUU7{bpqFVCXyPZS=|2h-`To~+m-t}oi^Uge_ z^pC#}o9^*+_z&S7+tvAqpw&1IbII8%7yW9Fkm%XffiCf7gmEqZ2m3#XO&7X305_&x z;_~iUupRpu+QC-YE?=b1y2j=jf;~4+wmT=O+4+zX883G43sV@8z94 zcP{0e(pO$Ni9dRvH-7x1CI+*4^ZWQLzH8(L;dRvQ({3n*P2*LHMqFf(J?+@ z;W0!%;l8^dpXM7ISu$ATV*Yh52y*kj##5)xn|LI#F=CSq(evle$CfNPC_k(>X3YI& z{OTV+5WeS0#*Z%g1b4tONbu+kFk=7x+QbR8WBkha!lJ6HzQMoog*P@fww^d~A_Twa zFNlBjuQB20quyfqambUYAg5#%H0|5l-MbHIlLzo$fx9xD6=M3q*UNbxF9Q4P-Y1_l zv~tE!81+>n9V zJFU11@up$KW_rhEL04ii!$hM|=1F){T*2YwI%8AcAK7>C%aZ?B!hDAOQ^YYBnS3<+ zUZ%UR1O3v-&)|ESSNyTS9nziD_v?BOUW4v-7(G#PPr9OtbV2S}>3+69t>en&Atp^u ziC>fx68F~yaihMaf454%BGwG8?&N&VGH^VS921oh%w5+^^OrPNKJ5|br;SmrKrcqN zyyvp7*3YD;a}`R1d4eZ~JYJBm_WiNI9xpWeK`wx6T)slMf> z$fp!hoS&i_U(#QC{UGHk<$8G0I|nGLqiYDIBmPU(QQd>kF!Ax<5IcMXonS&*K0!_! z{zcv+JC@mZ1c!+!!PCgiT=dL-oO?47UJUYfF8dayv+i^!UZ1aX5sj^5>vC6&%IRR} zdC1H0$hC*D5hhW7C>z`KDOlk*Ti@Ucy-K!)ayJz}VlA0LT)%+4+b59U!?6{5a$d(% z$nO!Xp^vf-ZgzdCZx!(|IzINn!_lg$s#tApUF`Jff41Ip&j|1M@l)8Qy)*``%kvn>M$4)MsBA}@I?vA>z*DCLu@{Ukbbch?5` z0Cv$r{eLyBf055VyV%PA2xyr)wIa5B`3mp!>C-J`Wph}AS1Q+B|BFsKx2tc*ApA4F zNOAFeZ_b<@kx7%Djm@07oLsEx=7|$$F!slSaw$07Y)}q(b>zGgK^}=j52kw+jMq!aQ<{=x}gh= zLvsra8a!z{