From 8e2737ee9822345b3237053aefbd6205b1c8f422 Mon Sep 17 00:00:00 2001 From: jeasonnow Date: Thu, 8 Jun 2023 10:38:28 +0800 Subject: [PATCH 01/23] refactor: remove security dangerousRemoteDomainIpcAccess config --- bin/builders/common.ts | 8 ++++++-- src-tauri/tauri.conf.json | 11 +---------- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/bin/builders/common.ts b/bin/builders/common.ts index 594ab3d..7fe7b81 100644 --- a/bin/builders/common.ts +++ b/bin/builders/common.ts @@ -38,8 +38,12 @@ export async function promptText(message: string, initial?: string) { function setSecurityConfigWithUrl(tauriConfig: NextTauriConfig, url: string) { const myURL = new URL(url); - const hostname = myURL.hostname; - tauriConfig.tauri.security.dangerousRemoteDomainIpcAccess[0].domain = hostname; + const currentUrlConfig: DangerousRemoteDomainIpAccess = { + domain: myURL.hostname, + windows: ["pake"], + enableTauriAPI: true, + }; + tauriConfig.tauri.security.dangerousRemoteDomainIpcAccess = [currentUrlConfig]; } export async function mergeTauriConfig( diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 443c74b..b871205 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -5,16 +5,7 @@ }, "tauri": { "security": { - "csp": null, - "dangerousRemoteDomainIpcAccess": [ - { - "domain": "weread.qq.com", - "windows": [ - "pake" - ], - "enableTauriAPI": true - } - ] + "csp": null }, "updater": { "active": false From 9acca818fd768007b27b0a920a2edb4b7f75493f Mon Sep 17 00:00:00 2001 From: jeasonnow Date: Thu, 8 Jun 2023 16:48:19 +0800 Subject: [PATCH 02/23] feat: pake can use external scripts --- bin/builders/common.ts | 23 ++++++++ bin/cli.ts | 1 + bin/defaults.ts | 1 + bin/helpers/combine.ts | 17 ++++++ {src-tauri/src => bin}/inject/component.js | 0 {src-tauri/src => bin}/inject/event.js | 1 + {src-tauri/src => bin}/inject/style.js | 0 bin/types.ts | 3 + dist/cli.js | 67 ++++++++++++++++------ src-tauri/src/app/window.rs | 6 +- src-tauri/src/inject/_INJECT_.js | 1 + 11 files changed, 99 insertions(+), 21 deletions(-) create mode 100644 bin/helpers/combine.ts rename {src-tauri/src => bin}/inject/component.js (100%) rename {src-tauri/src => bin}/inject/event.js (99%) rename {src-tauri/src => bin}/inject/style.js (100%) create mode 100644 src-tauri/src/inject/_INJECT_.js diff --git a/bin/builders/common.ts b/bin/builders/common.ts index 7fe7b81..d091290 100644 --- a/bin/builders/common.ts +++ b/bin/builders/common.ts @@ -7,6 +7,7 @@ import {TauriConfig} from 'tauri/src/types'; import { npmDirectory } from '@/utils/dir.js'; import logger from '@/options/logger.js'; +import combineFiles from '@/helpers/combine.js'; type DangerousRemoteDomainIpAccess = { domain: string; @@ -64,6 +65,7 @@ export async function mergeTauriConfig( iterCopyFile, identifier, name, + inject, } = options; const tauriConfWindowOptions = { @@ -298,6 +300,27 @@ export async function mergeTauriConfig( // 设置安全调用 window.__TAURI__ 的安全域名为设置的应用域名 setSecurityConfigWithUrl(tauriConf, url); + // 内部注入文件 + const internalInjectScripts = [ + path.join(npmDirectory, 'bin/inject/component.js'), + path.join(npmDirectory, 'bin/inject/event.js'), + path.join(npmDirectory, 'bin/inject/style.js'), + ]; + + let injectFiles = [...internalInjectScripts]; + // 注入外部 js css + if (inject?.length > 0) { + if (!inject.every(item => item.endsWith('.css') || item.endsWith('.js'))) { + logger.error("The injected file must be in either CSS or JS format."); + return; + } + const files = inject.map(relativePath => path.join(process.cwd(), relativePath)); + injectFiles = injectFiles.concat(...files); + tauriConf.pake.inject = files; + } + combineFiles(injectFiles); + + // 保存配置文件 let configPath = ""; switch (process.platform) { diff --git a/bin/cli.ts b/bin/cli.ts index 35777a9..dbd426d 100644 --- a/bin/cli.ts +++ b/bin/cli.ts @@ -41,6 +41,7 @@ program DEFAULT_PAKE_OPTIONS.targets ) .option('--debug', 'debug', DEFAULT_PAKE_OPTIONS.transparent) + .option('--inject [injects...]', 'inject .js or .css for this app', DEFAULT_PAKE_OPTIONS.inject) .action(async (url: string, options: PakeCliOptions) => { checkUpdateTips(); diff --git a/bin/defaults.ts b/bin/defaults.ts index 48e4972..830f114 100644 --- a/bin/defaults.ts +++ b/bin/defaults.ts @@ -15,6 +15,7 @@ export const DEFAULT_PAKE_OPTIONS: PakeCliOptions = { iterCopyFile: false, systemTrayIcon: '', debug: false, + inject: [], }; export const DEFAULT_APP_NAME = 'Pake'; diff --git a/bin/helpers/combine.ts b/bin/helpers/combine.ts new file mode 100644 index 0000000..d2c030f --- /dev/null +++ b/bin/helpers/combine.ts @@ -0,0 +1,17 @@ +import path from 'path'; +import fs from 'fs'; +import { npmDirectory } from '@/utils/dir.js'; + +export default async function combineFiles(files: string[]) { + const output = path.join(npmDirectory, `src-tauri/src/inject/_INJECT_.js`); + + const contents = files.map(file => { + const fileContent = fs.readFileSync(file); + if (file.endsWith('.css')) { + return "window.addEventListener('DOMContentLoaded', (_event) => { const css = `" + fileContent + "`; const style = document.createElement('style'); style.innerHTML = css; document.head.appendChild(style); });"; + } + return fileContent; + }); + fs.writeFileSync(output, contents.join('\n')); + return files; +} \ No newline at end of file diff --git a/src-tauri/src/inject/component.js b/bin/inject/component.js similarity index 100% rename from src-tauri/src/inject/component.js rename to bin/inject/component.js diff --git a/src-tauri/src/inject/event.js b/bin/inject/event.js similarity index 99% rename from src-tauri/src/inject/event.js rename to bin/inject/event.js index 9124802..41ffde8 100644 --- a/src-tauri/src/inject/event.js +++ b/bin/inject/event.js @@ -264,6 +264,7 @@ function convertBlobUrlToBinary(blobUrl) { // detect blob download by createElement("a") function detectDownloadByCreateAnchor() { const createEle = document.createElement; + const tauri = window.__TAURI__; document.createElement = (el) => { if (el !== "a") return createEle.call(document, el); const anchorEle = createEle.call(document, el); diff --git a/src-tauri/src/inject/style.js b/bin/inject/style.js similarity index 100% rename from src-tauri/src/inject/style.js rename to bin/inject/style.js diff --git a/bin/types.ts b/bin/types.ts index 02955f9..778a07f 100644 --- a/bin/types.ts +++ b/bin/types.ts @@ -43,6 +43,9 @@ export interface PakeCliOptions { /** 调试模式,会输出更多日志 */ debug: boolean; + + /** 需要注入页面的外部脚本 */ + inject: string[]; } export interface PakeAppOptions extends PakeCliOptions { diff --git a/dist/cli.js b/dist/cli.js index b6b78a6..4a4514d 100644 --- a/dist/cli.js +++ b/dist/cli.js @@ -9,7 +9,6 @@ import path from 'path'; import fs$1 from 'fs/promises'; import fs2 from 'fs-extra'; import chalk from 'chalk'; -import URL from 'node:url'; import crypto from 'crypto'; import axios from 'axios'; import { fileTypeFromBuffer } from 'file-type'; @@ -35,6 +34,8 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ +/* global Reflect, Promise */ + function __awaiter(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } @@ -61,6 +62,7 @@ const DEFAULT_PAKE_OPTIONS = { iterCopyFile: false, systemTrayIcon: '', debug: false, + inject: [], }; const tlds = [ @@ -1629,6 +1631,21 @@ const logger = { } }; +function combineFiles(files) { + return __awaiter(this, void 0, void 0, function* () { + const output = path.join(npmDirectory, `src-tauri/src/inject/_INJECT_.js`); + const contents = files.map(file => { + const fileContent = fs.readFileSync(file); + if (file.endsWith('.css')) { + return "window.addEventListener('DOMContentLoaded', (_event) => { const css = `" + fileContent + "`; const style = document.createElement('style'); style.innerHTML = css; document.head.appendChild(style); });"; + } + return fileContent; + }); + fs.writeFileSync(output, contents.join('\n')); + return files; + }); +} + function promptText(message, initial) { return __awaiter(this, void 0, void 0, function* () { const response = yield prompts({ @@ -1641,12 +1658,17 @@ function promptText(message, initial) { }); } function setSecurityConfigWithUrl(tauriConfig, url) { - const { hostname } = URL.parse(url); - tauriConfig.tauri.security.dangerousRemoteDomainIpcAccess[0].domain = hostname; + const myURL = new URL(url); + const currentUrlConfig = { + domain: myURL.hostname, + windows: ["pake"], + enableTauriAPI: true, + }; + tauriConfig.tauri.security.dangerousRemoteDomainIpcAccess = [currentUrlConfig]; } function mergeTauriConfig(url, options, tauriConf) { return __awaiter(this, void 0, void 0, function* () { - const { width, height, fullscreen, transparent, resizable, userAgent, showMenu, showSystemTray, systemTrayIcon, iterCopyFile, identifier, name, } = options; + const { width, height, fullscreen, transparent, resizable, userAgent, showMenu, showSystemTray, systemTrayIcon, iterCopyFile, identifier, name, inject, } = options; const tauriConfWindowOptions = { width, height, @@ -1869,6 +1891,24 @@ function mergeTauriConfig(url, options, tauriConf) { } // 设置安全调用 window.__TAURI__ 的安全域名为设置的应用域名 setSecurityConfigWithUrl(tauriConf, url); + // 内部注入文件 + const internalInjectScripts = [ + path.join(npmDirectory, 'bin/inject/component.js'), + path.join(npmDirectory, 'bin/inject/event.js'), + path.join(npmDirectory, 'bin/inject/style.js'), + ]; + let injectFiles = [...internalInjectScripts]; + // 注入外部 js css + if ((inject === null || inject === void 0 ? void 0 : inject.length) > 0) { + if (!inject.every(item => item.endsWith('.css') || item.endsWith('.js'))) { + logger.error("The injected file must be in either CSS or JS format."); + return; + } + const files = inject.map(relativePath => path.join(process.cwd(), relativePath)); + injectFiles = injectFiles.concat(...files); + tauriConf.pake.inject = files; + } + combineFiles(injectFiles); // 保存配置文件 let configPath = ""; switch (process.platform) { @@ -2109,22 +2149,13 @@ function checkRustInstalled() { var tauri$3 = { security: { - csp: null, - dangerousRemoteDomainIpcAccess: [ - { - domain: "weread.qq.com", - windows: [ - "pake" - ], - enableTauriAPI: true - } - ] + csp: null }, updater: { active: false }, systemTray: { - iconPath: "png/icon_512.png", + iconPath: "png/weread_512.png", iconAsTemplate: true }, allowlist: { @@ -2591,8 +2622,8 @@ var type = "module"; var exports = "./dist/pake.js"; var license = "MIT"; var dependencies = { - "@tauri-apps/api": "^1.2.0", - "@tauri-apps/cli": "^1.2.3", + "@tauri-apps/api": "^1.3.0", + "@tauri-apps/cli": "^1.3.1", axios: "^1.1.3", chalk: "^5.1.2", commander: "^9.4.1", @@ -2623,6 +2654,7 @@ var devDependencies = { concurrently: "^7.5.0", "cross-env": "^7.0.3", rollup: "^3.3.0", + tauri: "^0.15.0", tslib: "^2.4.1", typescript: "^4.9.3" }; @@ -2669,6 +2701,7 @@ program .option('-m, --multi-arch', "available for Mac only, and supports both Intel and M1", DEFAULT_PAKE_OPTIONS.multiArch) .option('--targets ', 'only for linux, default is "deb", option "appaimge" or "all"(deb & appimage)', DEFAULT_PAKE_OPTIONS.targets) .option('--debug', 'debug', DEFAULT_PAKE_OPTIONS.transparent) + .option('--inject [injects...]', 'inject .js or .css for this app', DEFAULT_PAKE_OPTIONS.inject) .action((url, options) => __awaiter(void 0, void 0, void 0, function* () { checkUpdateTips(); if (!url) { diff --git a/src-tauri/src/app/window.rs b/src-tauri/src/app/window.rs index 16c7f3e..c2c6c82 100644 --- a/src-tauri/src/app/window.rs +++ b/src-tauri/src/app/window.rs @@ -26,10 +26,8 @@ pub fn get_window(app: &mut App, config: PakeConfig, _data_dir: PathBuf) -> Wind .resizable(window_config.resizable) .fullscreen(window_config.fullscreen) .inner_size(window_config.width, window_config.height) - .disable_file_drop_handler() //Very annoying, otherwise dragging files to the window will not work. - .initialization_script(include_str!("../inject/style.js")) - .initialization_script(include_str!("../inject/event.js")) - .initialization_script(include_str!("../inject/component.js")); + .disable_file_drop_handler() + .initialization_script(include_str!("../inject/_INJECT_.js")); //Very annoying, otherwise dragging files to the window will not work. #[cfg(target_os = "macos")] { diff --git a/src-tauri/src/inject/_INJECT_.js b/src-tauri/src/inject/_INJECT_.js new file mode 100644 index 0000000..cfa374b --- /dev/null +++ b/src-tauri/src/inject/_INJECT_.js @@ -0,0 +1 @@ +// empty \ No newline at end of file From 3b2e305a0c05b5b823d2c463e7571f76d624ab0a Mon Sep 17 00:00:00 2001 From: jeasonnow Date: Sat, 10 Jun 2023 10:35:27 +0800 Subject: [PATCH 03/23] refactor: The injection process does not affect the logic of the development environment. --- bin/builders/common.ts | 9 +-------- src-tauri/src/app/window.rs | 3 +++ {bin => src-tauri/src}/inject/component.js | 0 {bin => src-tauri/src}/inject/event.js | 0 {bin => src-tauri/src}/inject/style.js | 0 5 files changed, 4 insertions(+), 8 deletions(-) rename {bin => src-tauri/src}/inject/component.js (100%) rename {bin => src-tauri/src}/inject/event.js (100%) rename {bin => src-tauri/src}/inject/style.js (100%) diff --git a/bin/builders/common.ts b/bin/builders/common.ts index d091290..1995fa5 100644 --- a/bin/builders/common.ts +++ b/bin/builders/common.ts @@ -300,14 +300,7 @@ export async function mergeTauriConfig( // 设置安全调用 window.__TAURI__ 的安全域名为设置的应用域名 setSecurityConfigWithUrl(tauriConf, url); - // 内部注入文件 - const internalInjectScripts = [ - path.join(npmDirectory, 'bin/inject/component.js'), - path.join(npmDirectory, 'bin/inject/event.js'), - path.join(npmDirectory, 'bin/inject/style.js'), - ]; - - let injectFiles = [...internalInjectScripts]; + let injectFiles: string[] = []; // 注入外部 js css if (inject?.length > 0) { if (!inject.every(item => item.endsWith('.css') || item.endsWith('.js'))) { diff --git a/src-tauri/src/app/window.rs b/src-tauri/src/app/window.rs index c2c6c82..83126ad 100644 --- a/src-tauri/src/app/window.rs +++ b/src-tauri/src/app/window.rs @@ -27,6 +27,9 @@ pub fn get_window(app: &mut App, config: PakeConfig, _data_dir: PathBuf) -> Wind .fullscreen(window_config.fullscreen) .inner_size(window_config.width, window_config.height) .disable_file_drop_handler() + .initialization_script(include_str!("../inject/component.js")) + .initialization_script(include_str!("../inject/event.js")) + .initialization_script(include_str!("../inject/style.js")) .initialization_script(include_str!("../inject/_INJECT_.js")); //Very annoying, otherwise dragging files to the window will not work. #[cfg(target_os = "macos")] diff --git a/bin/inject/component.js b/src-tauri/src/inject/component.js similarity index 100% rename from bin/inject/component.js rename to src-tauri/src/inject/component.js diff --git a/bin/inject/event.js b/src-tauri/src/inject/event.js similarity index 100% rename from bin/inject/event.js rename to src-tauri/src/inject/event.js diff --git a/bin/inject/style.js b/src-tauri/src/inject/style.js similarity index 100% rename from bin/inject/style.js rename to src-tauri/src/inject/style.js From 2af4c6c5a39e3f58533127dae3a5cae6fd732686 Mon Sep 17 00:00:00 2001 From: jeasonnow Date: Sun, 25 Jun 2023 10:24:57 +0800 Subject: [PATCH 04/23] =?UTF-8?q?refactor:=20=E8=B0=83=E6=95=B4=E6=B3=A8?= =?UTF-8?q?=E5=85=A5=E8=83=BD=E5=8A=9B=E9=80=82=E9=85=8D=E6=96=B0=20cli?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/helpers/merge.ts | 19 ++++++++++++++++++- bin/{helpers => utils}/combine.ts | 0 2 files changed, 18 insertions(+), 1 deletion(-) rename bin/{helpers => utils}/combine.ts (100%) diff --git a/bin/helpers/merge.ts b/bin/helpers/merge.ts index d4095a3..f3794e7 100644 --- a/bin/helpers/merge.ts +++ b/bin/helpers/merge.ts @@ -2,6 +2,7 @@ import path from 'path'; import fsExtra from 'fs-extra'; import { npmDirectory } from '@/utils/dir'; +import combineFiles from '@/utils/combine'; import logger from '@/options/logger'; import { PakeAppOptions, PlatformMap } from '@/types'; @@ -19,6 +20,7 @@ export async function mergeConfig(url: string, options: PakeAppOptions, tauriCon identifier, name, resizable = true, + inject, } = options; const { platform } = process; @@ -68,7 +70,11 @@ export async function mergeConfig(url: string, options: PakeAppOptions, tauriCon } else { tauriConf.pake.windows[0].url_type = 'web'; // Set the secure domain for calling window.__TAURI__ to the application domain that has been set. - tauriConf.tauri.security.dangerousRemoteDomainIpcAccess[0].domain = new URL(url).hostname; + tauriConf.tauri.security.dangerousRemoteDomainIpcAccess = [{ + domain: new URL(url).hostname, + windows: ["pake"], + enableTauriAPI: true, + }]; } const platformMap: PlatformMap = { @@ -172,6 +178,17 @@ export async function mergeConfig(url: string, options: PakeAppOptions, tauriCon tauriConf.tauri.systemTray.iconPath = trayIconPath; + // inject js or css files + if (inject?.length > 0) { + if (!inject.every(item => item.endsWith('.css') || item.endsWith('.js'))) { + logger.error("The injected file must be in either CSS or JS format."); + return; + } + const files = inject.map(relativePath => path.join(process.cwd(), relativePath)); + tauriConf.pake.inject = files; + combineFiles(files); + } + // Save config file. const platformConfigPaths: PlatformMap = { win32: 'src-tauri/tauri.windows.conf.json', diff --git a/bin/helpers/combine.ts b/bin/utils/combine.ts similarity index 100% rename from bin/helpers/combine.ts rename to bin/utils/combine.ts From 80ff9fae0f403e7d86ff5fee324644af60a7ac47 Mon Sep 17 00:00:00 2001 From: jeasonnow Date: Sun, 25 Jun 2023 10:29:06 +0800 Subject: [PATCH 05/23] =?UTF-8?q?refactor:=20=E8=B0=83=E6=95=B4=E9=83=A8?= =?UTF-8?q?=E5=88=86=20utils=20=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/helpers/merge.ts | 2 +- bin/utils/combine.ts | 6 +----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/bin/helpers/merge.ts b/bin/helpers/merge.ts index f3794e7..409a099 100644 --- a/bin/helpers/merge.ts +++ b/bin/helpers/merge.ts @@ -186,7 +186,7 @@ export async function mergeConfig(url: string, options: PakeAppOptions, tauriCon } const files = inject.map(relativePath => path.join(process.cwd(), relativePath)); tauriConf.pake.inject = files; - combineFiles(files); + combineFiles(files, path.join(npmDirectory, `src-tauri/src/inject/_INJECT_.js`)); } // Save config file. diff --git a/bin/utils/combine.ts b/bin/utils/combine.ts index d2c030f..9599669 100644 --- a/bin/utils/combine.ts +++ b/bin/utils/combine.ts @@ -1,10 +1,6 @@ -import path from 'path'; import fs from 'fs'; -import { npmDirectory } from '@/utils/dir.js'; - -export default async function combineFiles(files: string[]) { - const output = path.join(npmDirectory, `src-tauri/src/inject/_INJECT_.js`); +export default async function combineFiles(files: string[], output: string) { const contents = files.map(file => { const fileContent = fs.readFileSync(file); if (file.endsWith('.css')) { From 3c97825b5494ac813ef044fd579d23c4d13bec2a Mon Sep 17 00:00:00 2001 From: jeasonnow Date: Sun, 25 Jun 2023 15:22:46 +0800 Subject: [PATCH 06/23] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=20safeDomain=20=E7=94=A8=E6=9D=A5=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E7=BD=91=E7=AB=99=E5=A4=9A=E5=9F=9F=E5=90=8D?= =?UTF-8?q?=E9=80=9A=E4=BF=A1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/cli.ts | 1 + bin/defaults.ts | 1 + bin/helpers/merge.ts | 44 +++++++++++++++++++++++++------------------- bin/types.ts | 3 +++ 4 files changed, 30 insertions(+), 19 deletions(-) diff --git a/bin/cli.ts b/bin/cli.ts index 7f733c3..1b7033e 100644 --- a/bin/cli.ts +++ b/bin/cli.ts @@ -31,6 +31,7 @@ program .option('--multi-arch', 'Only for Mac, supports both Intel and M1', DEFAULT.multiArch) .option('--targets ', 'Only for Linux, option "deb" or "appimage"', DEFAULT.targets) .option('--inject [injects...]', 'inject .js or .css for this app', DEFAULT.inject) + .option('--safe-domain [domains...]', 'domains that can call window.__TAURI__ and use ipc', DEFAULT.safeDomain) .option('--debug', 'Debug mode', DEFAULT.debug) .version(packageJson.version, '-v, --version', 'Output the current version') .action(async (url: string, options: PakeCliOptions) => { diff --git a/bin/defaults.ts b/bin/defaults.ts index fe3aaa6..6c4aec5 100644 --- a/bin/defaults.ts +++ b/bin/defaults.ts @@ -16,4 +16,5 @@ export const DEFAULT_PAKE_OPTIONS: PakeCliOptions = { systemTrayIcon: '', debug: false, inject: [], + safeDomain: [], }; diff --git a/bin/helpers/merge.ts b/bin/helpers/merge.ts index 409a099..1d8f1fc 100644 --- a/bin/helpers/merge.ts +++ b/bin/helpers/merge.ts @@ -21,6 +21,7 @@ export async function mergeConfig(url: string, options: PakeAppOptions, tauriCon name, resizable = true, inject, + safeDomain, } = options; const { platform } = process; @@ -59,9 +60,7 @@ export async function mergeConfig(url: string, options: PakeAppOptions, tauriCon const filesToCopyBack = ['cli.js', 'about_pake.html']; await Promise.all( - filesToCopyBack.map(file => - fsExtra.copy(path.join(distBakDir, file), path.join(distDir, file)), - ), + filesToCopyBack.map(file => fsExtra.copy(path.join(distBakDir, file), path.join(distDir, file))), ); } @@ -70,11 +69,24 @@ export async function mergeConfig(url: string, options: PakeAppOptions, tauriCon } else { tauriConf.pake.windows[0].url_type = 'web'; // Set the secure domain for calling window.__TAURI__ to the application domain that has been set. - tauriConf.tauri.security.dangerousRemoteDomainIpcAccess = [{ - domain: new URL(url).hostname, - windows: ["pake"], - enableTauriAPI: true, - }]; + tauriConf.tauri.security.dangerousRemoteDomainIpcAccess = [ + { + domain: new URL(url).hostname, + windows: ['pake'], + enableTauriAPI: true, + }, + ]; + } + + if (safeDomain.length > 0) { + tauriConf.tauri.security.dangerousRemoteDomainIpcAccess = [ + ...tauriConf.tauri.security.dangerousRemoteDomainIpcAccess, + ...safeDomain.map(domain => ({ + domain, + windows: ['pake'], + enableTauriAPI: true, + })), + ]; } const platformMap: PlatformMap = { @@ -96,12 +108,9 @@ export async function mergeConfig(url: string, options: PakeAppOptions, tauriCon delete tauriConf.tauri.bundle.deb.files; const validTargets = ['all', 'deb', 'appimage']; if (validTargets.includes(options.targets)) { - tauriConf.tauri.bundle.targets = - options.targets === 'all' ? ['deb', 'appimage'] : [options.targets]; + tauriConf.tauri.bundle.targets = options.targets === 'all' ? ['deb', 'appimage'] : [options.targets]; } else { - logger.warn( - `✼ The target must be one of ${validTargets.join(', ')}, the default 'deb' will be used.`, - ); + logger.warn(`✼ The target must be one of ${validTargets.join(', ')}, the default 'deb' will be used.`); } } @@ -160,10 +169,7 @@ export async function mergeConfig(url: string, options: PakeAppOptions, tauriCon // 需要判断图标格式,默认只支持ico和png两种 let iconExt = path.extname(systemTrayIcon).toLowerCase(); if (iconExt == '.png' || iconExt == '.ico') { - const trayIcoPath = path.join( - npmDirectory, - `src-tauri/png/${name.toLowerCase()}${iconExt}`, - ); + const trayIcoPath = path.join(npmDirectory, `src-tauri/png/${name.toLowerCase()}${iconExt}`); trayIconPath = `png/${name.toLowerCase()}${iconExt}`; await fsExtra.copy(systemTrayIcon, trayIcoPath); } else { @@ -181,12 +187,12 @@ export async function mergeConfig(url: string, options: PakeAppOptions, tauriCon // inject js or css files if (inject?.length > 0) { if (!inject.every(item => item.endsWith('.css') || item.endsWith('.js'))) { - logger.error("The injected file must be in either CSS or JS format."); + logger.error('The injected file must be in either CSS or JS format.'); return; } const files = inject.map(relativePath => path.join(process.cwd(), relativePath)); tauriConf.pake.inject = files; - combineFiles(files, path.join(npmDirectory, `src-tauri/src/inject/_INJECT_.js`)); + await combineFiles(files, path.join(npmDirectory, `src-tauri/src/inject/_INJECT_.js`)); } // Save config file. diff --git a/bin/types.ts b/bin/types.ts index 9bda71a..db15cf8 100644 --- a/bin/types.ts +++ b/bin/types.ts @@ -50,6 +50,9 @@ export interface PakeCliOptions { /** 需要注入页面的外部脚本 */ inject: string[]; + + /* the domain that can use ipc or tauri javascript sdk */ + safeDomain: string[]; } export interface PakeAppOptions extends PakeCliOptions { From f70920dbbebc70118c27c1f71647c4c0be54fa49 Mon Sep 17 00:00:00 2001 From: jeasonnow Date: Sun, 25 Jun 2023 15:24:10 +0800 Subject: [PATCH 07/23] =?UTF-8?q?feat:=20=E8=B0=83=E6=95=B4=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E5=85=A8=E9=83=A8=E9=80=9A=E8=BF=87=20rs=20=E8=83=BD?= =?UTF-8?q?=E5=8A=9B=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/utils/combine.ts | 3 ++- src-tauri/src/app/invoke.rs | 27 +++++++++++++++++++++++++++ src-tauri/src/inject/event.js | 19 +++++++++---------- src-tauri/src/main.rs | 4 ++-- 4 files changed, 40 insertions(+), 13 deletions(-) diff --git a/bin/utils/combine.ts b/bin/utils/combine.ts index 9599669..0fc1939 100644 --- a/bin/utils/combine.ts +++ b/bin/utils/combine.ts @@ -6,7 +6,8 @@ export default async function combineFiles(files: string[], output: string) { if (file.endsWith('.css')) { return "window.addEventListener('DOMContentLoaded', (_event) => { const css = `" + fileContent + "`; const style = document.createElement('style'); style.innerHTML = css; document.head.appendChild(style); });"; } - return fileContent; + + return "window.addEventListener('DOMContentLoaded', (_event) => { " + fileContent + " });"; }); fs.writeFileSync(output, contents.join('\n')); return files; diff --git a/src-tauri/src/app/invoke.rs b/src-tauri/src/app/invoke.rs index 4553d74..5c13f36 100644 --- a/src-tauri/src/app/invoke.rs +++ b/src-tauri/src/app/invoke.rs @@ -1,3 +1,5 @@ +use std::{fs}; + use crate::util::{check_file_or_append, get_download_message, show_toast}; use download_rs::sync_download::Download; use tauri::{api, command, AppHandle, Manager, Window}; @@ -8,6 +10,12 @@ pub struct DownloadFileParams { filename: String, } +#[derive(serde::Deserialize)] +pub struct BinaryDownloadParams { + filename: String, + binary: Vec, +} + #[command] pub async fn download_file(app: AppHandle, params: DownloadFileParams) -> Result<(), String> { let window: Window = app.get_window("pake").unwrap(); @@ -25,3 +33,22 @@ pub async fn download_file(app: AppHandle, params: DownloadFileParams) -> Result } } } + + +#[command] +pub async fn download_file_by_binary(app: AppHandle, params: BinaryDownloadParams) -> Result<(), String> { + let window: Window = app.get_window("pake").unwrap(); + let output_path = api::path::download_dir().unwrap().join(params.filename); + let file_path = check_file_or_append(output_path.to_str().unwrap()); + let download_file_result = fs::write(&file_path, ¶ms.binary); + match download_file_result { + Ok(_) => { + show_toast(&window, &get_download_message()); + Ok(()) + }, + Err(e) => { + show_toast(&window, &e.to_string()); + Err(e.to_string()) + } + } +} \ No newline at end of file diff --git a/src-tauri/src/inject/event.js b/src-tauri/src/inject/event.js index 2beca4d..2bf8afa 100644 --- a/src-tauri/src/inject/event.js +++ b/src-tauri/src/inject/event.js @@ -164,7 +164,7 @@ document.addEventListener('DOMContentLoaded', () => { e.metaKey || e.ctrlKey || isDownloadLink(absoluteUrl)) && - !externalDownLoadLink() + !externalDownLoadLink() && !url.startsWith("blob") ) { e.preventDefault(); invoke('download_file', { @@ -257,19 +257,18 @@ function convertBlobUrlToBinary(blobUrl) { reader.readAsArrayBuffer(blob); reader.onload = () => { - resolve(reader.result); + resolve(Array.from(new Uint8Array(reader.result))); }; }); } function downloadFromBlobUrl(blobUrl, filename) { - const tauri = window.__TAURI__; convertBlobUrlToBinary(blobUrl).then((binary) => { - console.log('binary', binary); - tauri.fs.writeBinaryFile(filename, binary, { - dir: tauri.fs.BaseDirectory.Download, - }).then(() => { - window.pakeToast('Download successful, saved to download directory~'); + invoke('download_file_by_binary', { + params: { + filename, + binary + }, }); }); } @@ -277,7 +276,6 @@ function downloadFromBlobUrl(blobUrl, filename) { // detect blob download by createElement("a") function detectDownloadByCreateAnchor() { const createEle = document.createElement; - const tauri = window.__TAURI__; document.createElement = (el) => { if (el !== 'a') return createEle.call(document, el); const anchorEle = createEle.call(document, el); @@ -286,9 +284,10 @@ function detectDownloadByCreateAnchor() { anchorEle.addEventListener('click', () => { const url = anchorEle.href; if (window.blobToUrlCaches.has(url)) { + downloadFromBlobUrl(url, anchorEle.download || getFilenameFromUrl(url)); } - }); + }, true); return anchorEle; }; diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index e51ca4f..129e3b7 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -7,7 +7,7 @@ mod app; mod util; use app::{invoke, menu, window}; -use invoke::download_file; +use invoke::{download_file, download_file_by_binary}; use menu::{get_menu, menu_event_handle}; use tauri_plugin_window_state::Builder as windowStatePlugin; use util::{get_data_dir, get_pake_config}; @@ -41,7 +41,7 @@ pub fn run_app() { tauri_app .plugin(windowStatePlugin::default().build()) - .invoke_handler(tauri::generate_handler![download_file]) + .invoke_handler(tauri::generate_handler![download_file, download_file_by_binary]) .setup(|app| { let _window = get_window(app, pake_config, data_dir); // Prevent initial shaking From 03d7a2c7ffadfbb4554cb9242f61f80c1acbf02f Mon Sep 17 00:00:00 2001 From: jeasonnow Date: Sun, 25 Jun 2023 15:30:11 +0800 Subject: [PATCH 08/23] style: format code --- src-tauri/icons/zbook.icns | Bin 0 -> 507425 bytes src-tauri/pake.json | 56 ++-- src-tauri/src/app/invoke.rs | 14 +- src-tauri/src/inject/_INJECT_.js | 486 ++++++++++++++++++++++++++++++- src-tauri/src/main.rs | 5 +- src-tauri/tauri.conf.json | 76 +++-- src-tauri/tauri.macos.conf.json | 46 +-- 7 files changed, 599 insertions(+), 84 deletions(-) create mode 100644 src-tauri/icons/zbook.icns diff --git a/src-tauri/icons/zbook.icns b/src-tauri/icons/zbook.icns new file mode 100644 index 0000000000000000000000000000000000000000..16a492099bb060c100087c071be20e22a1eeae91 GIT binary patch literal 507425 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�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�>a)FgK6XQ(er&Zyf(uv|pZ9Tp+W7T%%eTc~M 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%0AZ z%{?3g#9*R)TS`w!OS2S_UPOIIJP{G}4*NqvzegnPaDYF6zskzOR|bKi<1N0lYBNbM zvbcxxEMb6W*RMlT9s_1e5Mh?^s@Ahzm)&<`YkRuoSV&joQ_U<7sL5~+^v~YZ{}Z?? z|HsRUqe#(SH0a;W!{dQ_9x0&Wq&A?~Z)eY(2Ed6nMdP38a{#*e8%6tp*@8xp;TE{Y zaQo9ViFsQ$>hcvii-o~@EKK7<@tZ9lbm}LSx&Y=UbU04Qh*urb1c$~#660)?4pmiy zd%?w`4rA<_sEuay1Ufes-w+GX|Hk4al8768H_FteAT4Elruu;*b zoXo*o-QlzZjW_%!rKeeynA#tjFvNLAY4QUUt^nc+b036ic73{;%|AdN9WlUEuv1&e z;M>fYCo7$wua+tDUx6_(MS%zUbMfkpV$`(cO#|b8#r8fK`_N?c7F*!A8&68v01^m# zl9eDTUKl{o!1A6UhuFv_k`|g`O_g)((B+zV(-=2VR=j9;d{cY%%+xr+dIOquUIsI8 z6WtI>L0^>031KuRR%jg+b-U3TS!>23pwIFip*VBsLEXs(razsY)iqhw1(n zq<3qNgc6I$C`;Nt1;?HX25d3%Ioj!6#=DLHt;lteR!Yz_Ht;3MJ$5&x z6zzy~;D*U|wVK~iLaL6vOM=2mPYT#CSV{K;6i5o7TJ{*_8-HDWzMhlTq?Ec3yqfe7 zI$Jj)0n&PLy>SuZ)b^9|3(uQ};}QU7rr*Wy0^%Y!H_K6lob&0x^j0fYS#{_`xP4ia zP(gLytSX`(V!B{k+Pji|VW-=1Ose8G1%>^AxmtdRmB{haj+ZYYm1aEz&;b&homkrN zC+9UICgqd+|AZe0AzE%Bv^>C?Ja_4j<%pG3Z$KJt`nb1YbXw|<<0DoDk~_CIxH+yR zm_i>>?IRO@S+M*x?C4?9&OW0fXnq<5$eXq83g@0E24>vDdj@=T;U#y)XKsDA5OjtP zB^V94Oq-dO+_P$W|66aIyL-&MqUSx*p`)OtJcc?P>(oyf7nve=n&VIoR2iYDy(NW? z2>5_JO2R7WVJEJ9I`zOS3^0A{GjI0s3lMf#V}J_{_y0bf)xiL_#2BMpaSAQonM;T} z{N;lNcp@%Aa}CwVrYi@|sC%Gp9=F2fEyy)fgV9T&SC_f#=)$jibz#pd-UpvG=B>bL zSRjxz6qM*c2!cLc<(VDe1Zw@BMJba1_U_Mq=c(Wr=9;rlV|L(krUsI!xfBSX0_`f1 zAKw2(-(A7+U-%ES8-D^_r_5lh4k6wbMQ23`W&{6eu3I2(R-ahpr3rKmV2a)^<=-dS z_e=oVc3>5cF5K`uu2%jv5G>Fk4Mm4g+zA^eEBD?5r#@!Tu9<+*XV4D!u$bg1mB#)mH^6)XRkH>tEU$-jP~4LZ z1&)5aqPYQxrJl1usn;DTfENEl(^Z8<-F@BP(9#Gw4FjlvG!jx0g3{eNLkTD; zAkEO7($bA|iuBMO(l9Xd;s1HQo4J_FGiUZ*XYIAt&S-`R1EeDloP3);5X3supc_v& z-i2isqXyoH>=f?z`-5$qr&QL!-}Y#8HFZ z<`Sqs95d3jy-JvvFMyER5PA)xYkOZw-tTq0nvZ25~*KWz@7k8q+7VKJLR3oZLW71yV^e>PrAK~|G; za3u^kN=f-@5x5i&hL1~iKzYY7>x_8KlH_D!Z`{<-n#J!a2fJRkd(zWS2GgDEWOBwO ze)Jp5#C}1(rxotNPJrRSy7@&J!bL+)N+&>i`76YgT`3F;Sm6M0&SF*sPg#gVHM31Y zcOR*5F|OZa4bO1d{atPfkMBV1Btw(sLa;bR-Gq!S>G4(mjHQpw6E|1RcWV3n1_n0E zKRI`R!F}RpLCYdoVW*6RYs?2m-|UD}JO;f}-n zyi8BuyI<$T5*K`r2u*m1JyGe+zb@(cuS;$P1`1!Ac7eLy5I||rnpHC3i9wq*D@#G& zK6%Wfn9tgUT=&==v;3CQ^(~qAcY$WHs!cU;Sk2zyZMYR9C{BaGU*#C`%oI}T*Sy*G z>+G?7hM(29RFt%e>R4img9wXcbN^%i#&EGrrLurvleMW-x`;T$WJ+Gt@prTD(i0)kfkU# zErcDq=5M5;q=apo*duumq~&`M7HkZ*dO$@*4ASh$U5V%2QPU~<`k5v(jF{heoFO|NkH)EGOqwVR zjo9wnk^SQWwH4D0eI*szX^ZlW9hMZl8#L|WE6%ua*~E@v_GP{PI!W0AUhjdaSL2%b zNqz^R9|Q0`=pG~&ey7H`hf2UE{p}}dF0GQhaezrGyJBdp`z;wvskU7zAa@o_7nNZ` z&A{QwePtsUd)Dl^j65~*fMlI`1w!6}fSi$nK>7_z&?obt_@*AG#VFa99y^vZwMdBq zf+)&dI1m4p_{x9(!rYoN!ed9cwdai2c}Yul6Zp6f1&G2m>dwygVX0&b|vv zm;4oUpjb~mjcxDr4R64e>2VmqC;fGxkI0c3hbt`moZ(JQmwUD-4INDWkDV)8_g_9H z8UmS)#JmdE2A~sOMC7~PxSgZdRAT4eQXiB^KS#r?5X*l)>oXvt?y%K<@4|jWRRy8L zdW}W9p}+UEOrc&_#@SKS#tYc`F9^-rj_WJLraU-0Z?xy=&^!w%NspL`Gk{Yy&r!Qt zKYH9VVt_UpuU8~5=z}#Ve-<$%;_;`B1>wI<*2#04&Pa^6n^h(zXgK0eTYA&;gWd>G zJm*=)3jv450S`7^^mdS#2{b-TKA9&FB_a#(zAiMPA$Pl2+H|Wh7sgU!zS>zWV=WO@ zMS5WsNTm_PkddES^7rCQ+ypQ+AN1<{g5jgi0LLBA7r=RiH(}n_>CRwy6B_ptooZr> zV=mA|ypt#UHaC?Xwf1BIGqnD3SbyQ?Le+v93j0^J%4v%sZONCvX5AkznE#s=G_#}^ zP&;c-+Q7hGobU!}lDHGF9?cnQKz^*l4@TD4+wt4FyJh^=;`E4-fDYKCQJKk#eD0HE z39OiUO%6}d@JvtNBe}t(r@P)ffcjv7f>u7-MWAJW^Kq4Mre!$6!okWU%>+sa2KRk- zn%_H8IQLsO#1b=}S{+`i;%4S>Y86?5_;^o-^ZeojLm-y<15q6z7*cTjPBy}ZC`*f2wuQ>SVC$0jd5nT$s1SQball~r=l$CRM+&DP zZ7C=GyBKG*ULhzQ_d|l6g#24lVonTrwQumC8I8cmU75mcCq5sKy(4YWsN&*Yzv7~e zxeq-9DGvV`rOeEu9_r)fKRr}`k>2!ug&3Tyb2MGlqVcCG>TZtT7I9cR-W^s!Zpnx5 zO&hF%B`fz|*%>)AM(N?^XOic<{yVJ|h`Y-Jm!+Q`oETC6NOsSjMc?{V`qh9mlcj)P zmEOxUVlEe{129UQtwIPAy<%`EWdos0X(B*RoZS}M4?@s0iQ8qe+1FX zqjB7zJw{epoW2VAY2P<4T#7tBq<|A?N)Rya;-#F9NvOP+>)lOOdf*N*$V^UtX$$&v zL@Gbd8|WhYj%c2s<}05_7&?;!R`ol$coRnLz~n~>cxcIEA_34*&Uud>8uvOZRa!1G znQnjKXJe*JdTaVssC>pGOW1LSE_~ z(u|uF(kVoiyjfO+(wZH%{`l;<6jTyy?xI`J(#ggorWjdK%bqq&o@&d=fRW@J%BWF64gkXmZVs)7(qUKV zx`4KE6&C>DFs9oA7m9eIdmk)wjx4=XrFYQgY{jT`_ zWX)M?`6{y6>~s+xCnEN)#jK#bZ{$7md1O)R z6dkg3{)t(FqK87VvCD_bzWRIUjN7_qIG}7aq*iqYJCG>UWeNmh-mv}7X0Q-H{$2No zJo<88z)4cjh?70`$bfekzKUm15?ch?r?srPEP05!sMF0U%a26AD z?Zep$(Ix<#dv$a%g0*K7lgV8g{oDZ2d5bj^LK?UJ0 z_wS9I1i9T3MNB{!s(snMnp|IqbY4BQon{vU&d*$j<^z(1nT^%w{bxULZkqU>%_j&o zLeE(}$!CgdJ;{W+Ywyn9I{#~&eHNvW_p#2h*`By&4i4N8`|moG)6>)Wxw9o!ef;H2 ztAa|eFwdXv)XN9`-6C$qjq?$qrH6kFw3B?8Lmf0iyK67b9ydJ;q8K<_vj5AbjuSy) z5C(RqW$9;2h5VQxh{MhvV4wAYfJ9>N!nH9#z8_%15{#pH`Xh*66^t%J)HgMCbF>^br7`R=OlHRdTMY62*}BGL?3U(8nB{8|E> zO@EqsnI)x>RZrYJ>2&>m_gAQ{7iK0eF3D-MPtss1LC@h?eO+Knvdo=>D zSP(>u-`?zb^u<|MS>1y-Z~e9U2WVQr*v|VsSMf=_IM-ff95#8tfIh(W*@P}ik^V$Y zP*{Tmda6~m5K8&*&GbkPhY*??X-g!*wqc)i@Vyy_j^`KY1ZbO9Idj$_GFk#ta~S7% zRteTVU>Fz#yOBE4;Hd(6orn2?7f23k`Qi?;@wa9z{pT3zkeNx*De;JN;cd033&&!{ zSLv$QBV!vl`wRYthBAXj=nS2lf5^IH7GmI;QrdAJB*JuQMABg4mwri$(PDe?xA&Rr zthe5^kAl*x>8mn2ArNKgx-eg8W=C#EgI@R}vJk-@GFlsOY;>&J?u;D*fm(~NhF!&; z44QSSWF>o2wWWFqRTwL74!$c|e&Z+EvUd(%R)akppI_V`d+r}H>FZOZBYKtSHalmy zWItn-dIICcb<}+pT_?FRJ4npxRt(Mjq0&8KvmRQF=&dXqy^4oTo9SbW&(CY}`WX}aL)N6<`GKdWpBrbu?fk>V z7K}ch4Rys_Kkr1ZLult_#wy$GDu4aLcH2KwuHQXK%Rv?$KG#=WoB)>fiBb=9=Pb@1 z;1cg2B<7%2r4u4XJ98BgtnMW+1+Xa@>FHaBpjR2)W?nLLD|k!I4aHG*YvpK$fZpZp zL_AR|Zg!Ds)IHsnpfaHuA(LE?tQ;WMB^dCR>n9BTWa-s}amqJ@oXiInXOh;&n1~D7 zcrDXcda1lJc_Ue+Y^Q42a-a8ZK@Gse#TuJ$uzh~p(Wiw0gSS^z*~HsCc({NgMLF^7 zRp#&A0>AQXr}1F#PRGP}t@n373bs-DrT$(udbwDg;rPQPu0{0sKQsaVhbBH3=}g~* zxR{aMcQ~;4&e%0BJURh9e=z+{7vjG0`>oh%bEA7kObXVnfb=&Q z@dLb>-TxB4@v2_U^;3+{wEFAHhbOU73a>ISZ15)3u-P8!{(1{m)KHsw1YkOJ;@|(; zi!b?y3cmjj6-;4kCtPm0!Pf`RgmJz9mbrqZ#FSwV2UdGXQ~E+g2V~^gkI_!{)mt=6 z_8SYKNLE^6Dyz_{Uj|r5_`9GKko%J4zOYu@6ZgMH*-!GB0x?vXhj{7cHF@*qNW*}8 zY;XNY*fU4x*cjF+b5f953^^fX*+O$S`sm&885Odf8C~;j9+VbSiQ6-#pl6Ebsqnfy z!{IXxA0XZ9ceqD86xH@a&wDfbfXj~qOnG;^c0MUIo*G`l|#(rAoU6I`|;$o}1x#nH#Xg?9@~Lv5L8Fo;QPQUN+GT32w?>2fZ1WPens z=*3WEW!kQU(D=(0Vb~n3kgWvAh~sd7OPZ|-*Xr_}{o=zcY7mwJ_0MZ6chz%S&|+L~ z{^A>*gMZuYDck#!j;>~%4MvZ|Uf>ReZtEKw|8fWmmkC%cTNs}Q^{c)Foy)iEQ1tVl(OG75r!M9U?Fb&-|DRyIVd~HM8;OoR*@0!hl9!y{xn-pPt)AX!VlI@;shs}ItZe{ zUa*sb-y3A{e`k;mQ&(Fw>H?Xb@}I3Py&*c0Q8v9lXsbh5gD-11 z#hbG*;{j?)+BUx^7QGX+P!~ zlG5{RMCs#k$0!H1Vzjqa=%VqiJQ|ybifZ7gG?X7I2rLejx1g1mavO~$=l$*9mhZ`x zgVu-_4!tL@v@H?fTuO9Tgd4PU8h{w}2yxm!aZsrom(pvq*eE$%G~Qf#eNo73=b2`b z9#cfK3F7Cy`*mXx`67U zh@Dz~l>Qt)Tm@3s8T??g4hHgAQ24gp@}IHHl_~0qtN}7$2CX+(TJGnNM?9f+u6rf( z*%Nt#!NJB`NjticC7`aqWcqc`ZznS^<3djL>ElXIyoWkpbR!TZzT!L+;9R*I5ul!DN&yGuJ1R`G5`r>xuL!IEKH4_P3ZV-~1of`GIRm%?R;Ts1V`eACv$s@_I ze2~3=Qpm%}6LWWXgdbsJXNj3d zF1$(0>d|z53t~do#&R+mb$Io1_MKzEbA_O6Tgdb8SH&mwBUW0eddfO#7~>hiny<&6 zc5BWGsy+2ke5jiKc3bX^`CZUy5_EB`v9K3s(Grl7hQE`J1F)4(INNPn039L9VEpHq zzJIL~82lm!}`3^$Q_v zA!@fRJfe_P6}HcIpc>%qT&iAe)_i#H20!}WY*TtXw{VktLw0p5aDeODuRbYD+CQEi zwOIS-sh$M_@ZTk$!8GmSR6t>FmDYA**1gKY|FDh)qkQj|)YVhzm$|{IfC1N=b18+E z0C5gtx!8TtU+y*}1_sVV>VR-;Yfyu4$*ja1H?}q*nTiy^_suzRufn3ww8z-)b+u3B z%eZDu#a}+ZYis4FtXn1<3?p){c>nI$g3G!%5!0B1=}<&qV?u+(Xx*Gc!Mlnc_mSd` zuxGOM9g1HAJ)6LCeu8jKCAnUu!{H1p(dwYx8V^$BG}ajXF1a&eT~%^K zpvVAn>qIO0_DPu-fli4sXJwPHo{)-{p-=}}bnc=g54~qirCrGXmD&D(WpsgnOOuTHX6|#HOVFqRw>&q$i%VG2GB>?EuYNfl|P6wtDUf=EYO()cSy+jK)@lI=zaY_C_vs>pq_|Dx%266pZpd zHg7v+c!yPh;0y9J=d{(3?!V=3iJru0F)uI2ACqBl0mMQ<%*)C@3YKfJ?=ic zcq(LEqPM!J*dmx2t5=$p>S5+k8 z6iL}&1Hv7=41;9oRaF%p++bOcj4|(q-tZgdwpWUuCb+?eZ~&*X)2jrxMppP+SJ{wi zdX_Unj0*fM*p562HNqcLVD*-6cO8wMVNsum#1RiX(sE`$!fN*WK2tNf6h#} zom(dK6}P=GT}OUI%gv34P{P=rT^Qt}r7$3B4I;$8z$WNie`EM_tawJ5U^2EeKHDw7 zpJQBU#31Ia3`Y&o)u`sy_U6-TQv zapk-EUrO(vy`Vuqp@q6YRon(r3mlE2)5;n(>fp{jCKnE}rNA12XNhB~HA&|9O{;Gt zAN9z{u|V5(!EQPd;nwn=Svb%VNpBjR_56Cgl^XQ2Litq(^+So@-)ZMgEiVedhF)Yk z&o6cwhPti2pcU;Hpi!qp$8S9vXQ1lEy(cJnM#2;NmZvN!sGKqfZ_YC29%NzcoA<&r z23(fz$1j{ay75r~Ml7E}$XCPoZH|`h=7m@{&gp!DXIfgOYNO1q0Cm;}_e=!oZN(h1 z0%%gUJ+^5{uTpd_HLvVuFtsE`<$yqbg9l;&>1(m3obC7=!JiS+fCu^{O8@pIR;Ii7 z1nPt2P4|mJrtcZFP<1-JCxvo2-dG%kwckrxV;J7p?DEY)rV3-NDKJoBePPvuuymM; z_KjSGT3YZkkN;eiOjs_=0XRpnenk)r1u_i6SjBjlrl6IiB$2VoV+#vrQ9gTz(Ztxa zFK^ZO)$;?`L3&kP^5g{0XwC1LgpYjPe|I3@20iNA;T3$yt23nnL2nl(8z-$94i3`L zSJTjOffl2vdj@F@Q{=6j?|o5GNqt@{s*`tR?KNOl7p)A=xX00-9bOG`k$^y|YE=t@`^@VEcD)J;Oj%sn7f)K@xbsGkMM(-k|hKc_3W=gyw-L5s2 zK3LB#%v?d`XI5&A<^N~=8@9mr5d&$gU8%SMfc}sirHA}2cqK#BrOCvMiZ3edIOSG& zz*RdN>A9e7z0iEVzn%_B)Zc0_W6 zx;x>RSlOyYQA{}aCQSJ5yOM^V;|vbJV0&CiT63Em7DVqDd1JSR!G%fFaMR0swzdIO zqs$g3No5q!IXp3^`}lsnpQXiN;ZZ>OdAs=`cV91f*QH+33s6N3iH0}?_V^tQGzMfe zk6epzXJioZCp%?*$fjr(@K4*O4z#N_TcV)|2itVgo4uVFBwuvYYg&BUuW|Crh9-l> z$v8Dcxy1DHW-<`gKHs5kXna)gpD@-8O+j13gK>c4FwRThXXNeGlBoN(=Gan_gn*0H zJRV%~44lk*ozF}m)s=mc65pW^ICcp>5}9VwL$TEftJC%I$Y!5h^UYZHuF7w%I@S{# z>R*o!LY_4aoS&cns(@J$dtxA+LtnN0z` zjprh-`Qya-V0*z`^rC~|0s|7ReCV8Lp0U&PSV44kBvS?&+Ru>2$AW0L^Lgz{@0%sG z0Ym$_M^I`y3PKiOetY!MuI-@CFUC>VCp`llZf#U4#Z=`uOGBoUI_l)F@VD^c!A}FD zYWypEBnKLO%FEBGIo-ES;>H=j4gYMH25^ZT#o+KNF5%}a!d7dYp_7eTb(Wd5`@Qns z)qn%7um)v(Oo1P&eIUY}8t>A_b0qy0XHG1dz&S-?U;VYvzK1o*nUtRi8wExpFK6tJ zPf24m9d#vTFc>g;2WhM%Nut1I?`QN>&Qtx-zPVaet%S@%B>R2ax8F& zXYmE~H*n1T(>*7hg=c4I{{NpfxXi>%O^V; zVG;5qtid*=t}B+Q36X*O+>D_ks`*Hd=iMFV5^%wLd~oN}wLokHkoDj3=l7%5(zppN zM5zt>zNwzbqGh3IELrqkVwvEyyMw20ov_iQM>7<9=kV0r%g3AOZ$*exNBz+JYh3#` z0^EUOK9ZJDI=+^{r(*DKM6Zn5Y#x`BJ#!MOeEty{xx81Jb4d)a=TUd$EHqQEsf34L z2V!uguaOy|jsN#U$SEs={`N`$&}HTn@4CAn{PV#CF?;T52nkI5?Ko0M!!VMc>T`w7 z$bDxXMw|L<*!w6E-7uoK+h5N%4wpq-cgvObZ&;_8UllxW-&E$wAgg7TkH-Q-KKk~J zSIi^e-u7HLtZ8Q;3Y3<8pVV<#7KhWNEc;2K^A>5*AbnUZxFM$Z;1+e0{Qdj%{gOWx zM30&sr>`t$omA~LPEa@}j95oDfhyZlh+z)bYE9^gL_hXY4*9OjMbYW=8#m?gQ~aVA z`-#9bdgar|Qp)F^u|M~m5fQT#euo3qDSFOC_M{%g;-?MHaE>QH9_ptP9>h+92ZWvR z)d`Jtk;eW6F~B=rJ8lBsey4qc|F*pj{kcNNZ9O?tC&S9^^-qAUHJurHm+6L6jy2s% z7D0xlI-Wg@FXZAvY&ROH7+ARxgY!l*)}UGDTv;E>=)^VPH~f1KTXBVGR)axaVBEH* z9dCIyGi+8lU?`a1wZ4Mi=IuE=wdXGX?QA1%koMBHatF6}l*zm=VOBHV#5KO@I{V%d z?!;-wqD>Kn-{Rg%m*?HalY=|Z1V8?be$Dt7%+eh5B7P}fXvacYUS8e=u>0P{^OFqs zBT-in_PP@yqLw@BJoK8P?RCpjcMON#;f?GJyPK!2buSACqT#&FxQtg>C7|(B%M6>K z6)_QzSF!o`Gr`S_T;s0|R}o(GOuCng4>Jo61!{-D_qp#=M?{X{BJvXZ&OYLuh;CT_ zzl#W%k;?`Wy^kDt>$N_x4u!7M9!-a9XhpAT#G>wn=%g&dJ7oVrL-46u>ja^&4gRtW(8S=rUyl$JUGws7)aYs2>Wi1BRiV)A&L5lP#mb{r6^WE*aTEE3yiuk_|B-ONW=U5lLEqm>q zO)dIIFyuml_qaZ#HCxsS?8h7RGjwa5aJgDyNMGDD%Nb)0`AZ(agKGu?u zWpr8gw=e$coDC;&2m>bAAe?j-r$tz@YYuPVrY1SOUu|rsW(mf&tQNSbUnwW64O8a@ z^R1We#GSBwYiLS1W_{vS@(PT!0+P|AAOb_#KRg0=pV?iVgX%JBbAFcF968v_I7-I_`a( zR6_(}SdD<8tA6#vP0yQs_RBP}?!ktgk7phq&?>_P}ZF9>V zQ^~V1o>z#;$AA%^)g3=ypK@VHKQC(4mv?|-PNK=KhQ?$TW)qS3?MXQNU^cT4f45Jv zKyvkr?;=$};*V4}P#YQlL6VkuFH|Y!AMc^@sCr`oItT9|2yM4IN7R(Ftn>WhvdTC; zSmPRbG<*T~ihXNEk#J1Oy8W(hwPuDF7*D?H>p9i~x5b-gZ{1@wNq)gp?dRAqe~p&Y z7wd`ynXw*6K%JmyDv2ZP^BQ)!Ew(F4`!|Cesk}5Bu=QQl9VG6JO9!pT$CPwS3 zY2R zxxAuw`e`rNB?QyBU}`7l(#HheYsEB0VyzPgG-|M^6eF7*_`t41?oeu|wx`*lg?IC{ znW#fRYnaL&opqNe2rI>uP4=w^-O2~T8EwF6wP#H_9Tm1JGiCc_MS-wb!t>~+%!;NM z*`Ye#;hjndTi<_oTD)@FzK>qb%zV77Oui$2tbBsY1ttBfjsJ>Ci;_hDQ4o>zHW}b$ z4A*4z&eft7+mao$(KXPpnpL|+3GKh|;4w_hvCo4Nz;?cv%C;8;@bgNcG#n52EYX4{fMr$j@X?{U86`>@>{+-c0to-D`zhp6uNicLEnziIk=tR z(CW&Y6>SR99`ULdl^mSgxCRiOnyR`n7^`SU-B~$u6}WJrXrdZuqH+=Lg>R@DyN@=s zs=}V;ht!x|<&3j4*xkKRs8m}z7UqYhgYGFvu%7W_WPG&Bzx}J8W}b=U3YLB8TzU8H z&3ApjO|R|5y%=O{?CC*AM{-uv7(-I<_xl9Gxi`sRGjUAz;etE}CJ=xq%i*hf6qS`i zx>k2`STU(sYoAk>8RDl`DDyFy26~zhQz(rK8-$$bl6-JI&-kx1cD!fPyWcov0B2+Q zY`#dmA<7p;c(L~)Zgtu$T^}RZ;*eVe=1_PkX*Zedn{Jl+E*$n~Sp9?x=McBLDS?o^ zYYs47p&y`(TSnc>`Ci;6)SY{SJ+79ic{*m!i^1b^coS3+0n4$p##w!elRzY{Lg~S| zk3gp-pUVXUcJ88lXo-yeb* zg5<3vXg?I9y~GA)?VUdhpH1VS)#4DH+y6T7Av8DpCSxnf2#+mM272?r{=(^sHs`yH z(gzGhqYAuuENIQkU;JH@6*{$G$p`n+cR19g*K95yr6RjlLl>Wrq9tl|5DBU4*sZza zLC#n=an3d0BV9KgB}n?I)M`Lb0!zho0b@jPaq`u#%sr+Kmq2;%2yb1K#UE}))mv4e z@_USQTw_wz>aK}j+9CoAHenVelHitT`1F^(uM7Nf8C5+Rzy4L>nHXr`5NvYG#t42` zt&(AfWLWk4W+J_$T2UdQ(g-y(S-;1$j=&?w$b6rALm-z;?2N_?e3^_pxrqVi^vCAC zSBN4X+;mOkP&0_IlT&oYhkjEBNA=UtlHx(vI0BDd4h8E)VB5##j6gZxf>k6#w=DXO zaI{T!8gBVm)e^Y++kbWeGk=dWc335X%Ud>|+~WcXICzG?H5mDDBDB7B%lp9Y+=J)L zaV?%Y^z*Ackp#|+iN?L6%gHA^4_u;B{yz&qRuY8R5dzVf=Z{4+d1QE|qW$?;fnrht zQP&j}Z=FAxsQ)iAk+=62Rbj^XfXh^q&R}(fJHqlFbWtk58O!GPV*1eQ@=!hm{WKgX zxF;3O} zPexLZo(Z5W3M;ssFxD(5OpZlI;#asrl;@Q+b=d*gn$P?6G^MyNC zNl#BwhV_WKrYcwPZ9x_%ZR8U&J}pWyypNXb#TcxqIU|SCcZnNowT?lrx=09%2JX>@u6HhgqTe;MY>}ouPRFvg9SKb-2=O*Ew@0IN9^L zft|P!>Rcf@K((&!^t390s)h#t*?9Z8M~+|rS5+hSo{hI(XsppsSBc(p<8QDIxQI*5 zzj5Q@HGaiX9bvaBZVQuBnpo3-3ExX9BKGG01}=QGYkPL7F$_I4V+?WYvj{ST&uJx0 zi=ed&#aM6>o6#>NU?DzdhDGgY_NFq3CSL6rQ1_244hwl*$%G7DY>H<$Yr;e!zt zbFY(|$t0}@JNF?MZ{6ZEkt9l=CU&-`qXx^9p4tjr!rZ4OKM5W=ZM}cg&YSc^ObL^F zG=Qo=eY_4Ao~CEK4QvPE?7TF z!;n_|D>$|$SPC;4ID3EEQJ?Y2(R`_~KgP@OY8+UIx>?>FfJB1IfOXT5gWNSr!2aiw z?$N4*1R+H-vv-}~Icy$D}Yzy>`zq?b*fZ;s;2S-K`^k0?C~}e79yS5jH6eMj5d=~ zO%ev+7WnY+1)0BZ%d%F_@`0PPjLwSJw^v_X3l*bD+&te^+OzFMeCPhoSuK`46*oLqBvpE?g;M2&L#+G9jzzcqB}AX`2qwpr}9+J~Xc6e=!tx zw5NSbALy>Gw$-_A5$j&p7AvcBKTq!QT>}+Wb=!Yl>407(b^aQ>Kd13Qk+J|fP|{Sl z%s@PKYGldNSpWFOG#ngEJ**?jXxs=re6#4BK$x+)Ba8$!Rn$1uJ#b)i{9p$~y-jPc z86@j;&zf#D84^pbFa(c5i)7hP#lOA7aUlqx*-?x^l7De`k|fPT+Kf@ozOet}IQ#Nf z1dY1D!IDE#qJgFIwz8GIK>Z}np{V{xXn<_lxPtUih){H4PS`+)8U~bL>EY^qd(oOH zAkax0Z5T`YLA45PjlQ5^9svKgAAEia@t`y?ouP%IBZYJrP5|WN&`+H=^%~qu(Qfj0 z3~pc+_x`^^-=buSmdn%0Q_eu^oF@^3{!WuPg|0ds3PF7&5WSaHhO~Zn{NA4V;Lco= z09O%co`WpJH*D0Ga(;ZZzvCg?&L-x(Tk*h#n!9sz9iJK`a+W%UMxTbkoL*2#$#17L z(6*11Iv|3}~<~emV)-#m-IRf`(7ps(g_E0QIo5y_NL&W!zuYM22)@&(4^MzVxrvS^yS4sKYY+88! z%uRfsZSn%d;=gp2|Gp62J*OoEUW0DE5k+hzAqBdl6G{{J?w%?4stAltJUdh%WdrYV4K?oL4!kw)7GDj*}?Lv zyxyNdm9q9+nmf!CH*b#*EucR=KH=y~Vt(66=FtInt0-REVVHgb!4JWSj(=mlkCF9R zze!HGuqDdr=H^fjk7FS()MDF=e^`g7VoB>E=CTypMw+RneiCdW5zL8P9j@Z!X{JIh z`BNmm!t)&^slrk0F-Gfs=@gvbpV5)se?=ag4tt{j*XEi_Z);0?25HE8MzvRUe@Ezs z9J#Lgz&~~mp}f>p!~Z$YEF+423TVdM=Q&!ZJHL4kNCX~GUACO%_;`=-_%57mOeJe| z9J^WlRo-!}OQ8u@FX3gG+6_JmIEYihiJJEX5rhgaC|XOHDfweC%k zFjU^0J%5Pjk`{k?Iy;PWI_p1`bR==e>mw*9K4wE{Ef{E@we*$tkZQtQxU;L@d|`0~ zuSoXm@Yl5GGi$CcjHqlLiczQhD*-%UM?&ZE6s6A~ocA*=C+98>Gao^}7NfX2$-77GBqU;XrF8GCe$U zv}$gGVx?K|ug=P=6pIdty{9bG%^oSBny-u+{}_24+JB&k zrQ{C0S9C|-7JYPPM|@9sML6}fh_EJ1KFbesN`Q@8a zskB{>&X;4vZ&Qia@QwTKt4Uc%MO(3@$={84BVE7$1eEf`0>Lxmm zBqB|S6;CCQlg6RNRzMaDioyOLchm#mL894$y@PmpM0E2BTOz?Gi*C=o*{>myXYTT- z<7o1rE~@`o!nk*(|xG=lw#c+`7q*3*NL0R zep&`tqtTvVJIovybcK2Ps=HN>clAE4Z}j280U7Z&ScJ>gQ_LTCfBy#`2evvNnI`?! z_efKSG2!ouwj^3&F$w+V4(~Go>F!gf>t80eCuz%>X2nO9$T@ryu~Aqjkra1+&=>XpiS_=8JfRu`ok$)lxJ zIbHlzKy0eP2gj<^|KYa9B1@9avluN0I|+gBaq!0~_{h3PjPGKlpyA}eU!mym5{K^< zI$S6eiAAQ`Ev9||=@PU0;@|bFv?FIW+xVhth=sSDcYEQ*?(ajxOPWLVd>8KPGw;cX9^N7Lc0=-<+sXQqaUK2<#w`Dv-L~EOCoE%`Mj-9A-3(a5&eUS)C~VumrMxUI_8m*6?oYsP63Rq78jL z#C}Y$NShKMfP0CR4oOXH*eT&x=LU|KK78fq(8&0WJkFTgvcD&L_GtQkzgm^8xqaJF zc-O&P;>_$d@96g@R#jU>{&2c+qC4VG{EOIJOg+R?%+1VB>W2i1?}JR|B0B}o0p5W( z_4q`8s4W9~ljQpqmsx*RS&Pk4C4bMQpBicnw2VEIi;DekDmSNCW5tSzQRl&O@M8O? zQuLj?Ur_(Xi~|{)4Z6c1C>_1|b+!BgnR>E6t4EU%ZG>rGLC%#OPMZLl>=8EHF6&J4 z`zDU+R}?l3tO~hZUcNYm(d)ubxbCUqbVz}nrXIUAglK`zyej>Zm2Cm>w-cuk4(>S? zQNmZ+ciUE@$Zp=sqCV3VRXlJ@%ri6o?`Iz|n8B41d0EA)$_muY&Z&yX(t#Ip7C(=o zeIT-GT}7kC9l!2>C9TY?@&aCEt)&mE;Io}%wgr7I#uEruOFV)Q9XF6 zPbf_^dxv}*mw81mOt0#tuNbuy$p9n<6oN0R#tFL&w9NwiX??3SN2;s2>USR3oQ-R$1hldgUPgDTeaK$ zKXZES$cQP^aZX6JXTmb(b_`CW7t~t7t7-^IL~rerrwXayD9vZRzfD(pvCoM15fzWA zgh!9Ufcx6_so`e{_fIR8@=B8zo6?rMmru0uQJz^x`B&kg)&`zay&u_)L>EE63 zcFSA&AI7Ry^TDZHmaKFk$F-5q_+ciL*o+S^d^JJsMBGDr%Eox()V}oL0>%D-fIM&=fu-SF zoRpuZQj@EAA?9oTO*b2V3+QioSTi_3F^5CwV*v3M1xT8Mx7CV~dRfOU*? zHPfx?IjsUZC;a0o8XVUCn$L*q@~h`AX`YW_J6an&ZRgMVQpY1C`)<_(*HA$*C?656 zg(1yFKT|y4im&N+tQ^!-iq!gH81PQ0I$rZMR_65}(V(*6AKz`wvbgm40YFCdY(lH; zH9mihtW0k(trh)nYH_F5?1s1r#Vhd}irPFfZBl;Q#@=dLpW9;o2q7N^hT%B19L6D% zGU5alwc=3B{a&b68p8f*Z{V9hU|CKh4AE;Nv7!Yv&I3+4jSA4o?o1f$4=2N-e09$UvJ4|TvK4Te>{DSs+Ws9eO+~zmJD8T z>H&9{b=)5q*&q`xowo(IBm(^}zKY}&e{r4Rk_h<9*qJn0!f1&D$9}+g)RI;0oBFc; zIrB1vAoAC%CC;Afdan;Wc^iT>G-b{mt)|~ z6*q?9xc_?9PoA_#x^&tahq1v*LSB}~?%?;DobhE13YUuQa4CY}Ifm#DmsJ@v?dMBq zt4O%s{bzp#$f(I`@<$tH}oOA-XKQ8efq~jbfLC=2X2muH+=?V9L!aml&IXwtBs_iBtI{OGH$Hx zK7&`uF8l5L@*7FE>OdaSK$ALtBNK4YY@Y-s0yLW;MOq??QP7AuGTRG4(JeZ3smsh_ zhJ_@T45ih&srV}G=Xm{qBGdp#h74DmY)_AK5E5>m(P3$LA zGzP-lA#~jnmG`s^f*9IpmZaKIV#|nY-sv8&v^us1Ar&_o z?ku~{1z4n`a7!lwb2a`W8k!=et;v9b^doPwWPt)Jck1HvO1>kx_TTl0_Q1X^xV2TfA zi?}!+LI;Ke{j=h)>J4O33TZuqCkv~P(0UXu&CQ6_DY+0D4*U3}7XhZbJI3a&_Maho zWQs=NO77hW|H4dIO@ClbG_M=#KhwQf4}zDGTqN;21?eKbrf02xRr@Df>(>zEo;*i9@h|jQeeY;qGpp?xyp&f4z_TE?bim@{{h6CfeTbM;Rz+S|F7ek#QpiaoxQK%z|>>Z z@P?4JE<6?>J}+&xU!`5SNVxsk+B!lPG*vi^SW2ojYgYBBz-@3!2UCl1yoTl)*sLZ=b}{|+)I|TG{%-bEKgREC@ zRO7*5216*Z!r2L9GLsh$)_-H)qsrDv0BY%E`ch3z+AhZFyT3Sp790k~pm*i^#^yG~ z2N?g5wBr8`D)4#W>}cz2+6lhl_egrM_cs~TT+802Y!^sRuh-qCHX4%cG#ZT4$PjIR-j zSXG#^ax&kOT~2g9e}BNmWD5q<&|Xg9Q=Sa2Ze-Y*?o(eaD~BiT+~vJECwB7d)q9eP z0~(1tSr=$`wMRCn8Yfk`#&|mx-v}uTm!gExFr+w{vZLbMT6ER4=znXm#umPCqU%)& zuXr+4lMa)Y!`Ne+{jt6E7%g&@)s8v%Zf>3@d&o#auigf|;UgWBx4}CchUWhRu|Q70 z&Zt}AK>8y-3nsY?H1pfY2A&EJ2Fh87Wu%oqSU{al%a{YYiR-o5p83e-fX&eASh5Z^ z2YxILTp0m?f6DT&{A2O1Zs#ZDfG<~_-W(kqrWcQ2r2Bt*ln!4u(`lFSm8ySV{=U^m zLi|7|mqSh~cO%)(Uz*=P&SO|{Ph6W}N#AN({a-%_AzH^Rf88UY==2ox0poUi9w z+*wqdwk?0oS=(S7BU(oOf|){r{nqHu;I4mJ?Vp_iS;sJx?#l}j&XTGtPc~@2avhgv z=|R)5LN7|%S$z@XmzizHv-#p$V9bZ!00Su91u?AqbD3Nd-}E^K^U##*h+6m(RMiWB zqkK8KkCd?U%bip(h`6e3Jbn9J4m)Wc?sJgNTqN#I_ClJ2-sB!v**Agp3;~oHoU4}+(VwU>*C+0V z1fU_Ly|E2Q_1b4$gn(@SK&;>o|3VAEb%XX*7Mu@840{rn0qD{inuy$|_!itpgo7MM zS^I5TS+W>E1>?+Nn`n+spt;3!!Y5Ti0J4|<+3$9btj;1F!vx-cmZh zk*q5t0DNOl>kL0WwuPt||70)Jlm)hMsL*5m#DUH@f$c{|di z-1x#&n*aG)TELC(%HQ3IWqva(_p_aN$(zsPJA?qu3;9c3Sp^Mf0A8WarXBm7J?Uku zb=UgG$RBI}lBZPXSUJz5XJ`{_s4YH`2e8cS$ltHgan43{1OC> z;!BM~+`tz>Gmo0N1|)kO`qHIO2r}a?k+ewU$@Pu73^2!11rSOd4f(4;r-wfU0eetA z=j=*Atq_vHV{C!fr0fH~?EKh@#iE8T9>=i7-NJ?P3W2Aw*eRGUM3W-qa$-*O#W^qX3qjZQv9^mO(mxkAH;-#iR==EMH^_3``#4nh9FjcG8GlPZJ(T=;hp`Mc!L zG(zkjoBX)L-%)*B9@q9g3TrbgIx}n+s&oOv9?RnnxGXC;*_eT&cmzorTotAK4-=%~ zcJ%Da2I%t3$S)GmU%E7Q04C2G-AVw00iYdQ6Ldk*UM82*j6xchzhH&{;?!>dUSS9z z+z0igt@V+)ah=@(^;FuPR|AxNOi#wb=4CM%5PGtVf4jEr@F0pO)>yBC>) zm}!hKlues>5jMhGV&m!GFa!F#U%(z^+dvAjO};PyGzD2FkEG>WZ5{$rdY9aEc$B&V$c3cC*^pSV^o9>W*cnsf+ zI`o{uC66!z*qXQkpgZUZ48{=r!c&gumS`WmfC@?ALWrBjFdY2iSWIY=Fl#%q_; zbanyT9yCHH9k6WT8P^0fmObovdfm-;QNIY&)HCAnMj-SLyNv#W4l!!BO< zv(?MIKb>m>YR5i=0lEo3d9*(KK3;qCiVi-%ZOydP9Ljzx-}YEK`-eY-rvIrlwK5wb zTj#N3l-Cd4Usf{pc?WVxR@0WtD-7^%Tu z&G=~~2P+4A>C!h*itRlzR~#SU z&SPLZ%#Zah?+qz~kiDFmX{G`Up#q-&syE@N(c z+ds!?>Q4=&iHuND_KUfH{M!4B{&$ehZ1Ro5uNp3x56evWy^THg1K5gF9Bpftbe3<~ z(p6I_@SrF#HVlA2oNC6G0s`b7Oa87re}&!to=>-4xScw;Sn}uS%8uPXdVjm++^5Gq z2$Efbf{)F6oeh9QXUt1GW0!eNpPf%L9N&BPd!LHKd=_8?TAZpEihg$dcJf0er`seq zb#ajDznDMED%m@EHBWFSm=&(S{~P z!DIqL4_2s*RKpE!OW)HyCh{}y4Q!xGLN$_f+U{C}jMtw?)svzxZ>?4+ITo!HTG zZf?#Ls~J%Wz@Roiz!5FreH3eK7=Zhza}9a|DX@=t^v>?y=wy`+CF9fY#;0F2XAu6Z3yT5=bt>2me}BD=_41@+~w2wd4wB%dC~MY z;Jr*B0WTW6JRSq7@;VA8!x9(~AZ|I`=qLODl5)zNU?^h{bHg!;Z89$z_$U_uv(W19 zr*?N&u84gJWEv(}7MapC*A&wO>IBS9^wJLY4gfj}8gDZ_u!D49Uq*mUYM@3#H_|M5 zgcCHw1mFiC5)y(I@i-3wj@kkKf+2v}*WVP~nwZOV`#ny>>#_#E--EW!kvCaso2N8W z%Awfay7yu5RhVnZs2G->3vU2Fx4mVyESc6s#yvulrQ_=G% zud6+J6ySS|mLI*6-G7P3h5@Kk0QcYcCm}|3&UB_5Yn$nrr@xlI_PbwCSAOT!7)d!Q zj+5W)^_vR?a=T{w*v8RR(hfVIH6uj$3Ih?0^j(kb*1oRsKl?o&Vq4!2q?rp#X>wsE zqyo{Y8~9C3yd4VSwze5kjz@}o@dEb1NyYq(Dyc#+F@UyG2sPxph{`RlBL7L|{4*dP zPb&ZjuP&q09dreDP$b*wC;YGNIV3-ygIyKxvlrzc=eT*Gxkz9Oxw2ih#D-;{e%k-_L-;R!`H-63Bf5df40%^y@ zCgs}1&FDWqKYQJ#n5NrD8nUW^;Xu zC4V>5OV7NVR$p0TvmZb)M#78^LkvvE9X+d^Iz_dA4!h~N@vv*p9eMVP3dM*pgO%&~ zXCGTmr~bfWY3ak~S@XY`TGNb%1v5MMpFuYfZa%)( z!)p3y{2u`Ro;$DD-+K4R(@l-?;WtfcBw|&qo)wKWsYjn{7ybXW!*-fy)Oq%>n`X(U z1=t?|xCeqI>C0rOEpGy*ILC7vWSU~MI!As}fSHWI4orb*n$NIOUnt_4uk?rus{zRX zy#j=?H2Ln7`=`BQ7d~hcVszf9 z&gj8ESrL*P2n;(SS%Nm%&d%_$y)oWtgu(ss zQpb31g3cME-7#jv)Zx4BJHDg5q zJJWqS#oO0!r>ierO)oxuC2hUB#ki2p+dI9tz)-~h87}BQ?O*Lgd2c7Izt7R}wYIPlKAB6Bl_qF%hQ z47#%<06#$wAdC0m)~}He5IA%IoWE!9fh# zy@yZ+#M|g z&FM;;jym89P%E9Q9d2yB3OG)(-0$>%_JMTj+Zp|{xBn#T`~`o*l#V`KIYWTtZ)SQ9Zt=pwaH#uJD5+`x3<$6n2E>d4$|TjV*hCn zk!Ka>`k<|V8l!6JA8rb}Ncm;~uz47P<%#`tZDIyR!CV$WImF+D5ud`sFKA>jaC=m4 zkp>t*#z6il6da+w#~6D|@f3R)bWn=x!n1d_Y#G+RPfI-94RC8KJt%A9K+gi z_{$x*Inaa*1yclaNc>0JM4L-{%NLEsga6^qjp*ro`Mbf6`sB#*g+No=&Nhs;GahM~ zcy3GGq@SbaOwG%3Sv0~~=LvOGw)nohI?_3^jCjO8W)5Ncw%4}vmcZs!%_vh~Y#L}B z7=UPux(Z;Fe=ql6HpSp>kLu|Ewdbyd);}ujArezJWXBqj=#Hcfv1JjH|4VfKB&-&fNL_SSN&+7mTY++77 zoIu3e+TKo6+Z$7p_37A1Me}U0_r#;OkJ}8I*4n3ax0N@@Y zd^PrE1RNmC2#~6{!?QL}*R+`F+` zFc&K4DRGzqMOW}s)UOo4)9HHX2Xp~NmHBc;0wMW9>jH>jlZT*PqyW}8U;0TC7&h~9 z_d@D$$W%qQ15?C&ypk3H(tt7(k$l8y+FXS|_dbYhVJ?_LFl^|2C|2h`c%de4Ah>R> z;0y>Jh0r!^6iBBJ<(25ozr+l0ZkPybI>w2sv3!kJ@sGR+7c{_D>94hol!a9Qt)Aa3 zVYx~)o+5gDk)+$p$YA{eTgN`VJMfpK5}q|6~B1%Hawi~$8yirZy>^q0PV zh4ublO*fvsnf9)u-OgxO02vrM&FF0DM&r*;T9=(Hoo96J_+%INrbBg0k;ZgV|}Z%At)OKpg7}6VPHUxC(p+Y?jk!ilC3!z7KHjz!dDk45+cc4`O!0 zZo??Z6mTpsb(&aNN~_dyZH*0+)>Z-ZUOGS7O;65Grc;q0<{045I6U?ilU1{Nmt0YXYaT+=vU6Cro$Yr)X8U>sWHr?Oy~ zCde_llSVKmO=4LBfWOU^n=HbV@Zm+A{25t*rV!!cZKPwOO$m$+ghbS8Jek$ z=`?+NI!$h){OCLf42$xFaY+~ zDv|*n)0dah0t~>y@40{uz&sr;VstuUJKvI4sde=IJ~R&VD37^Mw{SV{64#&ux1|Eu znBol}oyDF-8Zbp!R0s?}1mF(<|32W~=4wsP#C*Msfk*u!KTlIk5y%Xv*w>X202I53 z^xfgFM?pv_?J%M~jU;2cy_7a4$#)M;|NTz71}N==L(?!U3lx6V3RqwM9Q0Zv*(;?A z>Q&58r4_D6c_v3DCMMGzw&bN6M2lOlA88cOFC%`Z1N4)b>v1X3i4_E-+eU2fr2?mV z0IfC(a67cgoD2eOCj$_FVqbnt}{D60h=tskg`zli7`rN4y_ol6TJJe%5_ z_7}{A=oUE*_y0LjvlxsbBUj4QJM(XT-79C(1gs~Lg`P`NPECg$^H0Aylz5PMUoy=@r*fD*35xDwIO z(y&NwWacJ0{jdk)bO<3;mJEhXmW8-+u#i%W2FNKoh6HkQG<_r*UcL!_zzm8Rj;FWp z;=c(q%s}W*IRpH)Wdy7rd8qK$S_k|$*|>=l0OQ+hrYUk3*5ocj{GJMtFaWVE6dJ-N z-4&=ljtB)_*L)*VuKO;=*f0Q92jITje&iysl7l6Go3Yu?7k=|g>BiS?#v19|foCv? z`Q;1^(b+n-itagnl7^8f0F3CAGvMUjKQ@#hpo(vT|MU~5(wXmig6)2R!vzla0i@ic z{;0#xoqoZGVn=|WTz)T%n6+2rCkPw`&LIU!F2l4C>vvYprB?y3Ys?YPY_F$<-Su<| zwLdUBEqlrz;5Y@i_Znv4h$%oEk5pjNwf!&x!88y?#X8Rjm{mj$s2=v!_-9Ih9QS7d zSHgCdmH`)(?Wo`)!Pwn^`ST3a6WF<++;uZzbrT!L*kCDJ40B!JnsZeF`T)0KHm)## zzl%h{I!{PD;t7I%Cg)@15AZwc??O|jKDq##2O0$(C|f8$Qf_BY-0xrqDNml>VXPbz z`wbm~mN0Fk9VC{UH933njw~(7**N$9R_0kZQKgG}CgWV&(ASJMgE0eR#$v(2c=>HVp ze???c;n8@4m8QfAX2kUIm;m%9<`>cq8{zEiu;#lv zk)~19TVcKU3Ltp~P*n?mw%toJlc@XwmhS(b0TUeo7=ShmKwCxtVE1aza2dw5VF231 zoj_DC%FW9VfIlh__RzEsz@{vr1@E+q1qHvNtUPFkQkvyg{7#|U5RP>b!92hlq#2Y4 zcVWD4@NQcsU?2k54ajqOfKiP60qCx7>Lw$gPJrdIoC2fmM>C~;rU3Stlfaug8YZ{9 zG_zEp`49L{Fx?@e&}M7qm@9|DaK#1{GYV~J+FYegB6=i(tErjE>u-I1WxNOyxBSez zK@ufQ1TZ_@<+CkY%(6o1^L#I|* zx(jI7p)v~1#;2yM#xndNfaOTEr*?fG5i~p!KYQ8H*zYLaTEECAbb&`(Go0BO-_e`zUpAKU~Ywo&vu=&!Mt z|6V%9lz>Wm%WNTc4kf(B_I_Gw@4^fy6=2R>(3b(2kr9|plQT>cfSi*&D;|gy0*W!%gKctmgCFT3Sg>EZ~PltdUBVE z66j$7CSd?nEbI}b$23CtH}6!QQ^8SVyl|OJa0vPp&j{j+#$hJSd&6U>ayEWf@vb~; z=k`|m!Td{_*k<&9b23e@bFrdhiq#y}u`ne0J0-zL6uZeIQljjgwY{{<(ZEUpWSA^x zW^kK4t2HVVC||{>l;>@iV{8}zw5OHBRdWI<;0Sqrbt7GW^+vk(!u53fT-aAw$g}5pOG}aaxp#pJym#$+x*ge+92%S zJj)Mz-C$PMVFWrT26npJajfqW`{2(*qgeoTjxf`VdZ*DQoSNF_G(C0{oI?~2unN3N z0bD^4`UK=v*7ye_ASgn+Qs$Q8gDxYa0c_7K~Ge z?R<9;h3`>5P(Fa!(Rt_q#K<3@wtPqf^oyimJOpyDgtX#-a9#Gxw}|jKFgKKeydu*m z8)dQV(4oc1I?wqd-9TE)Y@#N_i!7gV!Fzpy@qOZ0#-u|29k9 z?1csN@S~c8j&$I_)1Rf`e2YDWxcKmJ2F188OW7ESq3J(+>2xUnO|j3vBgi=6Z_ukZ zX<$WKjSU87)BNnqV-y0v00N`nR>bc1yR!$3-jP5ovA*9QS!P-k>!SDu1F(&l{xl-* z&g4wmg)!+IoJxCu=`H}!K^MZ453g-(rYV*U&hKrpz3(2(zE%5IO(=vj82V|BwpsE)pcZ(*SWcfFpZmLy!Wf z*f+^i#wlnqIcpi3QNP8*P<`qNjR}*N6tX;0#Xxq9l!=g;P@6I5=4blJZDks@RO9EDQr8}OT9^nRhgoz5L}f(dZa!jXS$ z$xD3<*OT! zF3=qhMy3Z7;Ar1f5jdh;D)}9_*^kd$9-*rpU?e@g2#II>d&^Z9cpEdIMGhllVEN5q z8L!DH$~&LZRhWXWv&!HmG*vm!k$zm%qep$bic}z^045(aY05)_PL;Stuu}mt0xi;1 zA+Ru5L2Jrm8AAJhigFT9NlGvZ=82R6lE4HRm$a>kg~c>80Qq51ulyJl4w^(rGr?hI z@!tf(Eny@8ObF{a)8Pi!D$EuYhQc$wRH9QtLgUFZ>Ro_0G7cigFn5upw;AG z?CfEenSGA?<1I);93cSFtUa?6#)w&aC|gai)DUI)&3_loHEchlnjdRj(=KMO;k7u@Nn}+zrpU>qE-XXQ`cA z|L*nJfv-20_CVNR1dwvc7&zLWfXSFU6_{L-L$=p z7#jeOO@NRP$n1DIsj;1%IWmkpq4v zZgH*S-k=P8TmBug3L#h|10wASU-Rd$`Hyt)!r&{72Zp)={OV5B@yviIBj@1vJltp_ zSHAlxP-Ot_hgvo4yG8*!Iu)JP@2sb1pMEagc%qImGXPq5fS3UYwZ+K!+IH%^v=(A`me$8otI!hwbhS+(EalOLG`HRC;?$M=ijPfol$m;(e4 zW&%V5NEP=xSIo%2x4i{}fYKy@7+_8@LWED<1Gw=o&l&73D8@PVsEoB~7!zw2bK=D0 zT>zBNx{VX73-U870mJV!y9>5?IAluT`uaw?b9EO+fNg#m{`R406vr9U{dRKsk zQHpwyf{aKoM1(nnVNjo;4}){a^2kFJ4i09Kkjx@xV1EPm{|`fXdW^!=6A=6zYPXpR zu$~A2Qg_=a5!o2NCTJX&%z}J`!}2DXpih)R4{L~BKshR$y<>epb>#Hq#F2}v^Cy`# z(%s`yB5b;pNeN7kX^=k008T1#$rC`>gySB0lyuFDIKySJ4OO6&5vpc1DRAr7t+mlC z+5MMlY#4y5191P1|9-~k0RnFLv!U|ei#O8FZN%ITS)@b~&r9|O(;O~|6Q~Fm8vNLC5Kdtb$S2B0 z9%{HBBGHiHh_QKZCIdX68cYWMmMTDmu%#-3V^GtGQ6Vd1T881BeqIB@<+=qv8;(%1 z>LF6Z-O$1JQ{=Nih^aNEDPG%5hg;;2Uu%XEPGd7w;BrDl5|kOx2IN{YOGso?q??cd zv;6^6gSDN@XSU-2slwq5l7S_K;Tfy=8_+=|D?=^P?~>nLL0QQRy&FbR>&V z5){CtN2w>a&dl&wzoz1Vc;*4hGvVMWCOp!YWq$2V^5B~6QfBl_+Hn|>`4ir_$}V66 zTD+S?x8W%0Nw>!)Fj?R z3b@(H>g`pO|8Az&zH~Kp*%RLG(9XI1mEs)hHtmxmOw&1+K=-gCUb)!^!vGv^F}i%2 zktN`BcpjaAvkR#|&!~$|d=gN0Q=J%<0~DGZ-4dBC_izAEF_fgg*9(73qtrKc`U7aD zSl{34^jX)x6C3Hoe6(N=6F>%;8IUQkF7XVAX*Y~QOn(4mK4*>o!XP+~v=HP+hPu@J zKScR2ie?#cS(XfJfG1^*d;pc0b^tiTj}dBK0w{12-W2#Rl+CraUfDmFmGb*o^1%-A zJis+cy<2xW>F^5c8rCQq3AK?9wAg>Z%f0@4^f(i)9snfO#9*EvgDrdI1F0dDkUN{` zQf3q(Jtc3V4Va#0M860)&QoSY{!M|S%uy~z_wEGffkAFF%*jWo2UBps#yowt8)j%u z<`$i}T(L}0W}vzBwk<78Yzn1KoCz5c>gBe+6P#c;De&*Jiz8*6MuAg>KfjxtF46}S zH9Z3%mYq@`bxtNj(vsVN9KsA}Y@V2c_cCp&Jc?VOsPVD)3;;R`@s?b~aY@I`o&*!rD(R=96F~H>6il8 z4+TvnLaab>*`j(E5ODB~M+u{pL$1tpI1QjAz_vAfHKRp=aay44CK-V;kR|CzD@z`ld}R;>|FD$==%1f+{ydv^A(-WnF#vF-mH2DikUqu<@MJx{ODY|;lB8)xlExCm9C-)e`cCOd zwnO5NTi_KyXBkOPyM7)7x7=M;Zgg8R0?eti3Zl1%5~N4wa)P2)&piNO0{XU{d=9HB zz*;iklBi^qmynWeJmXJU+$qv+pYupxenAE-)6+I>0s8GO5}^*|=>qtG{*0R~k#O4) zJyS*ke_Tw(xXL7$IpQJ*0rcf?&=iz8qaNmG{bT~GXN2akf)M}R;&_W zWDG-a1pYZ(Fa@O7c1vKcm^u*sgPgfs6h6uyrL~TtGbZE#y7||g|FazrC6pv-;;0m; z+oOY{ER?YgL1UdiOipG3Y%C1nq?=ETPk6^GJlyQB1#;(iZj_|T9L$ls0D+V<%&GS$ z=Q4=K(nmK++DCbmixmPrb|vh!`A{y-=f61DPD_Z5XXxnXh`-1tHVXi| z?iNe-+9>ZG?gM&`Okn~-^PYTLypOyAQH|-w=+OC+@ZiR)7JzjyoxxXq0EWVPQ+|Qk z@>`J%f;ccay|4wJ!6V_Vt92fDHqF!2Cu0=>6r)F2pp6KzBEcn!WlrDtO}bi^VAu>l zm+Ym!#`YIvqab)?xCJ)xQ{#RTfK}AaWB_(Qj#QQb6KD$q;1rD9kGwvyMlmP-D3MM{lcZv?xGZmIfQGg1wE>R0iN}5Uoae`xNlEv&HCt?eb%zy_3O~Xid zNYK>m96*U;priB_(;ZeMFxBk;+9pG(hOy71B*{quidN~A(q>Fl#% zQ9jRJ!sYZz8a^KDHiy%Wccw=D__N$GqHanOIpLQM8Id1M=TNqhbl_6yF6&p+MFU&uo~7aBd#xZ)^hkk0i&CMFNy<{7ER@XmiP^Q=6g*b^6kOA<>-#Z-q(_!=< z`?uTcMdwEcNJklWpD}jA@j9OL%bnt&Ys9OBj3C^asQEE^;Sxr#oSr@{fNOFcU4UDN zhA&YTw&Xozy}hT{fwIxrE5cSmFGhR11q{>lBBKBo($vrSUV+HNZ?;(iIMLZ!%J9oz1mP zPB`47{?gC9n!s<-G9~G0ni_#Mvp>09*3q^IT99{)?ya}9iK}4%Ob0pzy(ojek)&ao z)N$r7X{c_}#xiq{4C9&b1>_6xM~Db(NaJMN$a#u{Je^LEStKdgG^-OPN?$f-|7JLo0P*%f;iOXfK%q|d}9fi9Wj8ff|*OKuce&d`S#6KK>08)>^dbBBlX#54gPDK{a9@D9j0>pc<$vTSU`OwN z1Ok@UDw)>+`~WzQ05-f5i@xG_{E&mke7s2*%Xl%Rz?jp07D6!)K*}If2-4WroA6;w zAozs*F78pTC_=s|B5^()35I7EY;&CRKKmc2kDJrUHz&Ra`Y&?VlH zeu&a3B9UYOEV*(#l%2z>$YW!E{C_$UtP<&j%UeSlELL);sq zXx|an6a@ja%>|-;ma7T;+uI!u^kFoPNd6Y{$}2c$5RuQKz~;=gn*a&^j?76gUrGk> zE6V{Lb%y4@Hen(k^CJJCSLBVt8pi=^`sh_0uqCj?avH&s2NMH*1N2dJi<9>Z97M>3 z5ZHVim;kl%WSF2D9s@##QyK@oB?NmN>}+nQo7Z>J`g)hT=R70r63slk;(0j3l9x6w zgXRYEDtY@Z8|je!BOyznvVVjI;(3?-)djGTq6JA)US;r|G+~-XEC~;h0eUyN*@fFz+gX>6Gbf+l3}rR+vunEc z+{s58g!XqC|Hd2&OcHjy@o$IRbkqUzPNBO#-06s|4l5MqqGJb&n@-y-bi9Y^B*Q(*hif({=>_=T$cLXe;-!KOQ2EYmg1Ckj6;UsFR?tt|b%%j=@9{FeVi^4|P)d<8C5H&ehHVE>? z_%4#j0mEC`9iwLiz$fU9q8m)l?#_PNM2ga3>7z3!E^&;qnVRVzB}$ruhmtLJE`x7! zJnSGcZ$#Ss`Y625k#sJv_h{oLU>3y}3PICIHAl+18#$*Dj-m9ArDLk`E(aI}Z{rQ3 zHI68=1&i`v5jhk_ZJY2P#Nb(@PvjiR#8X`mBA&_kTy*^ zlAQmz;_gH9r0eyDv`N<^mG|NRpia7jK81%C$^gW+zeH+Cm{W>8EK?*tWardpiE}1UxFrz@s=C5N_x-s6cs*T}pH0 z@MS5>QNU=kcr%D`^m5>8;t|B}Y|uV~_tjA;@a|J!Y#0FMUSI#qd-v&8Q+%5guv2$_ zd}oJ)VmJYCdku|oj*blzEeD!L=Na%UG-L8T#J4eA56`$2kPz@)3Kko#G`3puCdn)B z5k4~jYHXt*r&65DyG-A8;hpHCc-sMENK1;~lp{~V_ar>?5v_3bN)}|NI#PkZQ54O@I%7K%;PMSuO zf0p(0(=G=DE{R3@eHa3kw~>cwdj%!1t(2C~sFImi9A@M+K};)9E2k1z&)#abpcUl% zlszB|x8?|71e@^DGrx=b(M>?g^yHq&*_1(jgKpZ`*iCC|9P7N=LjoWJ;)#YxAShee z{Vp#V%+X7BM>*WX75NC*0&xcJYzHMG|9s1FBUDqiuyR$%PzR}4w?X|1TjHx6FjKY3 zr^Jm6vLBHn9djGFn*8+3d3w(&>37_eL~|s+UyZika9qUoRLW@%HHrg{jweu`MuY-& z6~KrzL@mb2qCn^Xu!)NYH+4}KbN*j|aM@PupcmBv$m|;dFFSl7ln1(Z{OrGd6&EAV z(7I=s-ox$mLSY2#vV%d0^i0FfmpkC^Uz@aB0IX}g+X4XB1VEPd*v1zIrSIu;WG3KG z*&&nO94PE;yKKP>g<-KkVq1DH7ywHIW3a>4zx#mr9&Gg<{(JB=TQC9p>=)mgnC3LR zNj9&UW|JDG8PMFH*xQ8(*iTcO=r^ew9f2vHXP^hi`=nXQsVJQt0w^z|cxiyY`Uc7| z+$hI#%n->!1%Awbmgh#?pRF_r-ptmHJp!_){L ziLwz7?YWIE#}=pWZLw8vx999P*%i7HFqi=1G%*V%lXUipWJ}uAE!r-=3E7-z9`3jz zcm~+G^K9{aHvm*0hfR53{7662D$hBAoR8`0KM11Z^=9yzfUggc{UV*$M{UCAI{G^5 z+Asiq>amd&OrwlIHI)JnngU}Z0eH}as_DOT3PfkeNZAcr`tBM>@0tAo4FFkVhibPk zL*N{`+x7uB@fYFkba4dWH=y5T^ep)6Zwg_V7_qX+-Lyx|D%Kb5T!TMHM?1q_@zZS7 z(_WZJ^V3XGAex^;V}G7R7GV&U0M;cIbuaTvVb|ca0N4gIfZG%Byp&y-uPX?YJt&LX zqZS+3Ut`+i20*;Y9@%yD$OKA~C%|Fx!{)yZu6H>@JAbEqHGI3=`CYX54yX8rW@b2JfN!OmN`VJWfwB3@>N3Cw{i(e3^aBVS zh1+>Ez){oReqEEtw2aJgN4M{?JAy@rZ+OGdQ5syyL9YRQfnR1o5o*&d4?1T}j^-U1nZ>0pMOhY`wrf?x)xSmZRrqW)A}F@xne#^GE=^X1Emp zPa%89i8P@BR7)Pk%)n`axz2R}jE3xC(%2g+sUag%N2JW}ahlr&+r{ z#s2mpy{FLm;|vJ^^`BxS?{nlyyZ>1~0;!{7`HR24HhPZEV3jp#XS5J)^m7JgPF>hC+A#%TqMvDZtkGf@njdDZSt; zkWnCwps0D0nC~(}ksGy%a=h?nonMFlz}@(nMmCY?@wny5Aje)G#VSE8Y4hKNmEPgi zL~h&^AeSN6+mzya#Z#ZqVZokq11Uvz|YmbM^0Xehyj(;hg(gk5QLoQ#wNhwdT5cEP{t zTn!n>V+U-<8W(`%n)FEcFfAanUtVsfbLZOW^y#Ve*rW65?AiIWw8Utc?Rh6a+dgFz z)EW2#^jS%75-Eh!0fIH$O8`(&(zA4tFLe|6GC09ta2nhc(J-+%G>Fu!-~fND(9enY8=pFzmAN&&}K2bcf@A_c%R|?T})+B2PJ3UhBeT zlGx=>Fb`Vk?H?aNRtC-OYetqNq(Qo@haRQ@lM$w|^25;GyyQIIz~t}2m!+P=?xA?Y zuLo&0o?&q_xOqhdO|e8eo{s(@f#UT5^ogT8m{dNk$$3s4gbA2N0uVW7y#fq5(bty<_zUUs#YI4WHZ3enr={gt zqycO%D?`$Z@+xMb>Fi&|G(E*r88UT^ZnP8?ycmc-rO}hb30))v{6qq2U z8-ZXr?4uk-hesrnV|drENuYQRJ%*DY5wpaPa5=5mvjGOf{SNM|!vJtpFAF2|Tv9lZ#yRz6$=g&^1k36-I9)ENt zU3_FEEi>YuQqvkSz9~dfN4<1()R7;4Jx9}a))6RhEI=zZ>;e4q#yu94OQr_kbt~Zx z^ZO{pr)%BWw9cu3o?6#7jX+4MB?4mhkx=YW?_HDxJ$p`NL=_bCR>71mlGe^lgZW6N zD0ie#Zh&IcL5{`p>R;d}=VcMYx4diWlzp3*h2VG=aL$D&p$vz#0S0G%qr>QbKiytG zNL#ytd(Ll=w?P{q4rgYMqU?DtKi4J7)wHv@7(bvNhh+#F;1>*p&juPcycK|!p52tev_fZ-pk71w2FT5IB7xz#wodx{;mOQ&4*qos-u1;|ZAjJRtMnc+j zkMdNn_n!hNG22}Ywch(*rng&yabN(V?rN4-GrAP8BUej(n)%JS#ksU_WXUcuu$LKrZ$(_be0dt@v;vt!Zvfrzy@H4A)2IM* z_uuR#Y}8b=)+!Y6+)sO)Pr)ngA`L9>&=i8LdO!L}q|C)NuYD?l zJj;HN@x=S6%?Y|p8YDKFhupM*KNDc#&>hznz6|{;y%@H{Ma0s>J=q^ud;MB~llbm- zo}T0J;HpQI^_Q_0!LRvTk^)Oxln&j}M^)^N4%5Qg2hoVVdxkPf471S-T{(v0pc8Vc zo6a*kbHhV|iY2b=;*nHDEOlf`vb(GTF*fu92VDyX1>NYCr#y0NPDn1wmo1(`<%03~ z)=z-6v@fJhlrGA>BOC5Wq1Z5b>~ddjxcG&CjEdSD1wQjPB1frMuZ6bf)2@bfwHdW6 ztrvLuJp3iJ#&4ntGiH-3USFp|`$ z)dQo4T~XyXy&wDS+{F!?y(YQZu9Sv6OGKIH{(ArO=Hx|2?OMj!d3uhH2O<>2Mg)g} z{c)8KpBv#$1%bw)we!6#>V}zVnyKp3zKPgXia|c~a!mrxoWbdZ7$=S10&dM~Y09ob zZlyR>rKziN_}`bEY3AK+*;H;k*~6!<^iIk|NvI13=e>8aHCJbQAV=N1uRkFgQ~FK% z7E|z<#;2f`sxUaSp80219Y&k0IrC+hZ+bkCQu!A05+AvorosOtUe4q;EIuOlV4rWv z_+2k)f=~{xl;~}H53x%7Ha-1PRgJ9nOFN+>8fB|Q+-j&-@8_xxVBuU4Qk82T%Ze(v&qy_#eU8P4Mb zU@lK!5p+kSwcRSf?53QkBdO*v4lzgdPb2{xD{a-vUSAod<` z`(}%46mPTTvW#&cb@1V7jhJ-UM&%T@EX;y^ral5fswK!s8TGLLVZk$@Dn~Ay57~R{ zaPpRw53WkM>hSZ9WcsK19CRcsLEiiHux6%|ZGNW@Kz;8`x9?`2rx99k!Dj9RQ8NEq zmRyaKDjP5KhO-Y^Rr+$+D206Ki_hbG6$Aa8CXB*;G}Db9Me#)Wbq(F*i^AP>SmuHk z$3f!EcV8YX`U`KzcLPiue(7L36nXEp88W+GV~Hdd|3%k}i;1x zvD7*xyIh_J`8{<2Y!IYr!9CBCeHeO<(}IfM$kF1<<76?`w0>q~piQ7IHE3-uS9cD@ zdc>l<%_+6tOzCJ!r-?rgAMlLD@u-(UK*_QYI87yG9liLawGjtH4lTDEqYcWJ zxU=5GxwfVw?Ll=*mhMKEe3@dfG28H)q{e3=_GfpJlg)Foyf?#UGRHgqiDn7dvZ(idv4 zEqQ3a84-q2MBg@c$TMMakf|1>y$;;Ae6qJ7KO!qkEkBv2!l`oGCpb}-Snx|R7LMq< z8g@0a;o#$PM;D*f=?(Yu1GSAq0)f1l9?e?xNNV&kl1zy+Q+l9@a;VJhc(G4YLP}X) z;SGibI&L93zp@f>97r;>5uCI-6e?1_9ZgVw5WxE66&P&mv=DNLa(M>a8$<3sePaM8GIA~*WGHv3(`k7j3K1$MSdxwX@P$Ok| zsVA9$@0Yw>`Tc`Y{O3`)Y;?fSnm+isFSF1i`YVgh&~LT3281Mwl!KlI6FiX|)UbQ# zHlUI4LNiV3CN&u+TXovS+tD9N^JeM(cN$MYfx7N?B8Q%)Arjg(-YPro9S}9y7F=Yb z(0Mv}oO#HIKzGxDPb|{~mp;E1(Hd2fC7Bzwl$OrIqngym8p*#FFY^q~QBOpFijf~2 za&d!vfmwYHH2D+ImcwL zKV^O@4!zE0_CZmedc!S>AL8iV7DU5b3*SydIm8V5FF^VIz0D{*WcIio5$=_X%89 z{xAzydtcn&fj+3Hh>OsgnLs6>7}~_q7PTKj6&^I)82_2!1-zC2ssh) zfsxIf)4rbkQ{mLHtgHUT2dy-n1ANpxoZgV0*J1>u?@vc1nAekUzQLbYJW5x5cgNuN zK!tp~NGwh4x0dx;VN!K|H=Uxul9*3X;!D>cm)b+ftqSI!?WLlcU!NZ>THJk8CdjZ+ zaL1~m(i060V!dC9$2eJjkWHw$3?RC z>2wBpHVBCaTU}OMb_8pbm=2N(Mu()@cSYT?m)zCcK`9PyNMFz2KJRCia_FQ|xd5YY zR-G_s(1>(ui7Rxsi$SAkYY0Q=*&g>wf1#<)m(Lf{&EQ3gX@QkkgeCIhcc1{SjmiRx zGA>ffxr3r5U!IGSMcA0KJ2prE=Z8k;A`VQP#}e#CQV<>8YEYN^n+X*^=kRqCtIx8{ zy`k`Bi*Acd<&Gh>{n@#l+?}5Eiq?ZZqe7#b2NR7AiZ`Hf)R#tRP^%mBj? zuXwKM_CRzCnlZ7(mDu^tXKnx2j~>McgKW~-ux6tr9q?*$t2iX(F%_?jiD#ELqF1^t zMq1^8JmM-f+3LdPajCD$m&QF2JUaVp{!DvrX0v9eoCzR0bVq2NFtE3;=0%=E^4yK& zXybFNpWrFp`1H7{>E(3!#!5j+F2B(tzKub~!ZVuf4;fFK##b)VGZcN)GM zUD*+~$YA?AD3#+7K)p-8?Wo;KtQWx4DX<1v?va+a__PbUDFklSk#|DlO53sLn4=|G z9DlYG;x3TKq_*spZlX z`zQ~0*K+92dl(y7PsiSbSXi9W^|9l9_u7a%PM<>&{M@;tpx1b;I$6_$b-uqPe(z(7nwmJO zJQmz`E5~iEjuY5Ot|Q1L#>pD>Q3pZW9_qB*nSp|xFJ7?YIWHPO)Lo>-{Ua472qx03 zgA{{IUhHBRp!HqC5RmG^D|jyZX@2zW;t5tYX%lB25IZMT{}z`k{uI7@6zs@Qv&4nj{Q7zs)xkhBd z=b7DIb{v1m-5e+SYpDHNi0$T6mek0@WE`;{u|dC5!-pSq><-fSTx+uhlZBq_IA1N@ z?5y(*l{l1kO&A~imb~bCx-@K2Fqp&I`2Lw@Nv`DjGjY&eT?P$b2M3Ll%rZgFbP%2B z&xvwt<`etVz@jRxc$TAKkkom09v{y!W_&I6fPfgYp&gmrEeF z8;7ci7kO!Y{XCx|%{zC`1_5%}7+fcAxl8aPy$~tsz#g1s+CS~*o~puiXmIb^{rhuf zG?r~TZXz4qgXXosIBZHqE{&xDNod4ps!A*H{Na(CTbn}k;j1S_(-X6gtb5b))6d5D zpm$C@$p@)P2O{_mAF1;QXKN4w8s7N=49G6=br z2ERzt&yTzv8;KkHI?g}4pALv@3~&k*D6MZO8w6yIMDyc8fx}p5_b6ndnizIb_~78X z&c|EWk5yd`kn5ls8n1}+MW^#oCuPq0=NC;nu?0z)b?@ZPwlXbpvfflgT~8UOG5*9h zn&v1za=JdlU9mJ}>s!#(cx;ekY$@57Ex>^WUzH6#hpJf-60Z{!Eo7eH#z@UVi9V=| z?e)3H#{67ZZ1M03sXWhA8EZ;MKdY(TWEf9T9H8hRQPr6KwW#58gCbmYMT~IYG0p6r zS@zlY`1S?=*(Lyj^@{VS=d1|KxnGNn=*H>Tv$0_HrgW|7RF zSao`Abf9i-<$^$7oJw7jlXflk`}eh{8D_V>D;u-I;x9(^IFvyu(jTcMAW51+QhwVJ zZHuC!Kei?lwl-FI#E0IjITq|zZJmoq&~ti#U)-AYRAkY-F}-~}C=;pM?TP~he{<_@ z3ZGZ^I>#RY;r@C{I^WH~SG$7bjD}hW7zd2XTymAe&0)aRbsq9ws`*FMy??h)3NO%^e!LBg}oTsceoEYY6ri*G#X(&2VmUs4h8$1De~)=2^_@ z3V@9NQ$YYI8Ui6}9=ro6(EufC{}ZBxMC!@%jfz250|QlStXZ_=gJIgfbc?Xop^byC zBuTx6`-Y(IBwE@WGE;)9#B!m*mM#s)#D{y7`2nX=z8xrON7K4^$9i`Whw1Sb7F_g= zG8ah~=Y0>dZ+{qOFc;PGG;%_Y(mK8EX8a{|@G)t^Kqh8;@vdcrm@P|CzJ{>XoVnfl ziW-yZ$#}}~uu7(S5=&isHSDg(7v6(H*;;CSQ|rsFoRY=eeAbzuxtteEKY>!R?P$`b zU$UF}4VnPn3veRnwRhruV}PmGt>Nlt*T#8?TwnW1SJ8Fn_v10`y4e+GL{BFT-xGH8}yiaF=>=@)XdLt#gR<6y8JJ zJ+DGfICiclYm3$_y<`2MrJ49E1uEWKmi%RsC2 zI!v$WVJi>-4saVb2-Th0jTJ1HNtfFnXdA@(w+y5^H}yGYZ_~*n4joVPX^0iZvQQ*0 z^nKKMVkee`;MV~$n{hw2%Hlxf7%(_oUA}Q#J?t|`VRfKQpnwx{^`O=p^~~oabZlG> zsXY0;=EpmQ;lmq@dwsb*=_a)boOQwk&P;4XP>8>evF{wIx_iC9!d>`X&tK*$(fl3a zO@_xLo_BhHeumdg)|Inl`37*%_m;}{QXA$UB4$7(%<3FuHU-A~p7<|()5bOW0&BeH z^HL8yKastFdET?nNZnTz&z3+k^1x@t$=a>^W5vA|=Aw~DzHT=)aZbI7;npf>6H1m^ zrPYbK+!>1XxV%vJh`9BYqqRYf@Y6n=-U7;V(|K=8+mx>fYeO=sFCD#(HCMkRPcu%^BJHiATOpNA2Gmh&G=qZ%Hq|nj ziJAg8QTi_`5byY5^V(8m{>H@8vBzDXOJ8c@<5g8xYbh(t-REvwC_Jjx4~WIe1Clp# zn+kVQ+VpO|G{c59&Y`7*m_pxw2LL|jck}6tTtu@Is+aasLzYJ=!NJD+0g#-Atkq&=9YrorhTmRP`sXSkZVMO-4;v zM{ID1UM|-!wP>a(di%rpJ#&bcVdST|-c>39)mBItI zOwyOY`z&U$1s*P?1 z60pJEg=7IC`&``*wWTV*y|aRrTK3NJaVX}QG!c`&cGv+uiTu%LEYTJDmOk;??4u#K zA=@4NOGW#d+al6zgQKc}7xq%`Pw0y<2iIp#l1(R}_2HwU@xf-{%lyId6RCcW*W;!bmqf|+s3iW} z@?L4kx!2@0G-JHSvY%^ijdW6Wx)=>Jp_z2NM9xU>5PUQt5FE0bQyLsghM+j25>Vda`pQRf_-KBrC+OlK>$C`> zfEte5V)bJVIVpG9Ym9FR$QYDHHT*bkz30y0Shli%SBLmAF=GECEA+*WM$pxEB0WIL zhya@Xx>DxF8YPo#L%rqCelGgehS*@haNmdlREkc4#JvM|!@z;-+sqqNj~PEPq>r|j>B1lc(0 zeI{>-lbbFIkgs$wtQVooMz-ynWZqBq+H#{pepk{Cl8a{bxpP#oI=DS(|H0HM1QxkL zp>jGd{Kf4^MBU;hcc6C<>DGOqp_W{gJ00vY5_O$_%lHR^0{vqA3hl8sT|;Hcc$@#U zgX>CG)f;QXt&pI5XVKiu<=)Z*kn|&!M;;lwjPo9!S$da7`*vgJLW$OQt>FYj^3Re3 zXL>69SD#NxdUEfS%srY(?-`z&kiQELqAwtLNs_k93=MPQ+>Qy%UJ1L^+=WX?c1=#NyWoAA4`Wsb+2k&oZ3{m9&UXtSc}SkGP{zV>Iwc5J zB_PJZuH7Ei$&ISHlIc84kI)_#CF_}%^9r=1XUh!rI1vzgn8v;gb^Yt`ch|p?W z2Ye#Lp69bNTNl=E@#|A_Q1{ElzvX$Spd&o;i=ryNUS~VG?@{G3h#x&SI_fd0pW`qg z@zU2VH7_S)r0JtZ736}H|7OqBEo-8{F2(fCetu z*TG`T7y^B=5GiUpQaaY*9E*d)c0fLp9#NAr60dM-*m;>J4vA>FS};uUp+5bE>K0CHW0Kl@$nVY#W+d945tXZeL2dMmBk-ecea= zY>Wu}5*%Dt?*k&O6QWlnv)B(V#gO@u_dh&AOkUTfDetujeOahf4`zPNo_0NuWQV^E z{c{{Z+jT>^Gz5*?=B_=P0X@lzjR!iaAKg8qYL~%tAp)duyfW})MkY;v@XcpJ+{Bd6 zy1Kf^#yNswp4ghy>M7?YqENzl>3mVw11*zpfTk7W#&_bW-ksf-f>#LKlD`xVMxK;f z;s@Q7XUIjQQnV^flOl&Z_i}2A@~p+V7ATHMs22VF1o1!CC(+})qIvNE55rzN))&{1 zn(eos0t`7%odLhH>vx^d%hV7=Gq+O`Y-`B$~`fJ=D@ZL{{ zY6+pi-GkW&q&Qxm{rBqY`g9`C6k9SCc!-7As~0?I^zW%EUAtD)%(S(F=b>^r-p`R4 zvu=}#4OAQv2V+4Ij33FY^D_9*zRrri5XnhY@J*(S^jKOwyA{ti-ZmUw!DvqLx=V)r zMNz94Kn>0Eo|&6@OYdi>7{K|<`yD+H!F#Y&>wRQp?)~c`;-eqmI!+Ee{XkSZh+D986L7On#I>RKib2RRBUN;*S^5N!q-#$SsX=?aCLppwO8t#qMaeaIJM+8 z{r7_<_m8n*$22)?a08lJ>n$Ll37lzf&nD6fO%X4_H%#)YAn?hXWQaMS4oy|+*a4H! z=Nkyf`7)55x3Q?H2@1PKZQq9)zbEk01f}kE_p-mlKb{F!F>=?Cn)gI z-iuVD*L)Y3Xc;1>_=5zFuw`aDkrx)Fc9tmKpoyoiJv{z(>YOHi?de=J2j1KJGr1^| z-8AIg40rr2QF+n!H;mi2v^DbN6$2GidbkEFHzR!u=#*G_#q5?WTGl@eNLsAEvm};K z)qkWw&KwM-W8hY>cH`J_D9Y=V(jk04^CtD??e!feOF`OUM*Jqc`Nha{Ew)ke6-C9G zk+1onJAqs!UDg$y?f3RZv?iPdswDXie&)HKp81IyqZ{UWwZFO9(%?4@ILww3S_-%J zl6~hvlb7A|HthT4)a@kg{kH3Rj8F~PLknXS2ro8KC$iOo*!i#Q6&!=MU z#DTU!4PUQ z=ce=Wo_32|4o2=BP65?nN62})nK>29qSWFUF{P{z;@a{miomcI}Fr1->M2iOELqrCQvRkyv-1xI%Zi8hE(5&PFU3r%P{Bz!! zSm}TXmSr90zwW_<*LbxeP+mUXfsZl+|L*P1re<|5M0`E8WtmLHFJ9>p*H2MP;P(P2 zE}uMfwPJpdB5h|aRgw7fVG5Yyw-&wW}N0V;*TS&z=sSU zJyRa;xwz&D=`-JR`CeXrbmf}{>nX(Ja~8iO4xN#_7K!W8!K#Dn5IeK^kLFv53%PvdN>%JM|myN|8xSU zLNqpgaNjDSWbf}&e*c{%#=~lx0bxgMySG7JJOe7i-H)sQVg&+HfF%rp-a-U4)PM58 zcG|yFQ=J0n6!5~o15E~biNEtV9l}GbEtu(3Zdpyu`2^Jz zd*%FZ(0?ZmrN96LZ0mGqY8UkQHo!3`T!I5*414v#U(61v#i9MnFj_V6??j~;DDAm> zg-}frYF@+yDR5SKa2kWz7P{6U_6(c*w6FtOQ>ijOZ4#4zsv@XO?X?g}8-O(xH?pK{ zV#h0u#)Bz;sduXUJ%`D~lSulxAN&W|T!5h4pT6}F)HwfCaIJ;PCXEhYY*pTbZK#=U!cNOGQCAU8 z>4yJ2yK3NB0$AK}8adM1+G>U`f2J=8T51B2F7JPFy&1-EVx4ji^99b0Woq=)|J6I^ zmv!bzOp!mGIG*f2iT_4gI^PpfGL3x#d%`y!AWSLj%oFCxI?$uHCiJ#u&+Bg6^*@;^_pn*=6hhn!WG_Y+Q!aZ4!+KmVsUs8J*HOfT|GAH-cb9$-pw<+~*ZtfuMUKXIw! zG+=giTfn0xi0r^uT@uqj<0j+D{QNu=RRFsvaN6D84!_;3E*~d~u(tGmOaF!nhb?{A z3h*guI5niz+@&Ia7k+Q&PbCjNHXZdrFhUg=0-Q%L#dy(>0}jlfHg?vGy0}OXh_nr| zix0kJge^HuZ=PM+i>sSk2^G3Mpe7sB;KrEz{!Be9!gL$v+I40OqB|6qM8-b_ybsK+F1(7>5HFYv6SrFi`ps zbb&ZALY#2C*$xDJ8K8oR#J1vX->fq>jZ7F1z9Yn{X8*?M>S30P4!Tx~& zqbRjZ@$;H*m^Jitrf=2Ih942)-*#rvBxZu+VN^uU_5c@sBIjffo!VwJ56?Ce>_lAkQs0xkSXc5ifAgqE*}3o{WzWC27nt; zj~*!KhJ}E+LYxA&sspxS{m;8hXY)FxpIgo#`ifBkLx4pW5M781uVUOLfG%}(aQAXQ z&(MaWuwu#`^V1Yb0tu`8_o`vxV9eFJ1a9Ggjp0%b7ofD~t!A1+F?E=bV_nBom)U2Z$sN^tYu< zoEBkBtXusx;M@Jy=yKd9DVl*EtknN`@ah~mh3yl-_Vu0+Ua8(xt^A{p{7MAhMWbR> z;h)VO1~XoMWI#>TF7*QXDm{WYSzc@UIfWER2$cQBzrrD!4^QqWrSEFwwS8acn;Je8s^i&o0hL%+f!jF#NF2yMPRVnunsB*$5#2 zcD}m}yO`ZW&BD6BK?njPubv{0Tp8pM!WhVCla_3=4DWS-$1d1Mvf8bBu}w}IcNfzh zd(~d@gVZnO46Ez@qmj_!QDgn4zj^a!;Rzzk^cKi77&9&cA}7Il%%J^Mv&0NbDgnj? z;DF77fK3=fiBsd~A3*|rcr38)o6u-_h8cr{SfC2E=V(gL=fM2RA~Fj3kvowB9}@|rD6!`-fW8suHl z>>T__){}YytqxMxT;14qYPymH`mR=;(5smNixHdwY5$=YO)fnBg_Dy#WXv9Nukm7} zgl1kK6>TGpDZy>Bh5rO(MAe&`h4JL4uBlV*O@AeMEYXY_Gx7a;=|6Yoj}a&4K*)wa z{Y#7fO&Oe#;IObTW=$9>O5ACd_XwSrImVw2D}!!}qiXb;W$m%@Zab16P6q2Ew|Moc z^0ELuoOxl##8~em@bf9+&lniUZ-QK?VAc`mo|xUaSB`Uy{+~p64GCZ=(a3MPp85G00dL8vD+7V>=3o z=tf=g>agKF&iyID%70Xfr4&lKs$kH(h>eTfaSK)uP5EwqE<7lg4xK<~$MR(WaU(#V9@sLGH$5vIfH{|0xi5+bEQyOX zqNWh24f25fV2B`7Y3-l>uN(!gcAU9bn>$aRI~RIY!-TDUp+H_2s%drbg?-nzl7O)j#U`p2&k#Y zC65}~@2vkWnyh-bIUiTz`Pt&LZJqbv72+o&JL;5$;A|dYCm_c*P7NZPS<+}c?Zj_cnh%NsaLGn^$ z1Bjs-9lwrumBfnP55pKu|2szN`>3H`F(R;aa@0q}dg3nA0e?Gf8Nv?LKuq=c0mgD- zPLTvHW{?0daR-p9fv(_8=d|4N=U&Tfmvbk^b0<7~vS-tnnE%k&Ssa+l4l_DEJq_Dy zM}RO30aJ~2(N{dkxe?6-P&+R7b7;!7eMRo)xvX!;#$>t)z#e;he@-`i2&a`lGSJK| z@wi0*H7H=buyiSGgb%|!uHP*BBjKBhv1ZNiI94jP16~#!wyc^kx}D{5q7m{+lFrD-&D&&h^N1X zA>lo_ycB3S)=ru+3{yd$4Ppf_mri|RK@e={ZUV@LQ0T>tJ6Yq+&n*rZ1ws6j%kx=p zR)vQ+?`4mngow+py_!y05ana&I3z;=Z9VAbP@Ak5=b zU3_RbouVcP&FIh7mJFXm@663w_HAgP*JIJ^)fyTa#&oKMQh&Pe>`gqG@io?~VAy^< zu<@sZjoBrdpC%I0 zOg+JfYQsC+)_OGpE`~DEC6d}mttGubN=uV;E?ngTodP+s4%nQ-T*Bt)!I1fU~{af9N4i_ zqp#9u?!SeAj32dp9R~AJ080c%TXkR(;%T)7tuh!M=JHBrle$U#PO`c@B{SJnt8ChR zLDC{M4aBJ(!h-|_$Lx_?+~MR*3d4E&FUN@IHvO>13MT}*4TEIGB&=n^8msH-F0JNE zM6<$CTkROecVYxw9MjcwS0Blqt?S+b32RzPWvLTU+rs-aiPX~}utxvQ;m@ZCBrRr9 z1#HyvJP0X#)=m+_GEc#H@;MphJshZYCJR8S_Wc%(UlbEWMV6P$ZN zx*T|4aOc0m2%6sk774LM<0Wbl4WBtF4Dw8op{B@5G#U-DF6@L%J60!|(3blAkz)@7 z=}s`1opj@H-8K3)YpW%dE8<@dl!jktRaJs?K5@}F8RiWahWpG!J*RGsq7iss^_XH< znv(CKqdotZ`;^>oK(_rs)h3^)i%e~AKgg?8CesLhVtsklhAN4*?%VF&+^rQk@?F?I zs_(mW>AmXhy_!2qck3-OX}BOi$f|TQKc8F7MC|p^UK(88z6!?(V!~v~nXSr;zdD*2 z6209^07~$^Zpc@`ZnItKE$ZR==4)lnx*aZeoXrMY?woNb2LZTjK%g90$n4^BwI>z! zyDgm@r@t>u)H@x;_g{)Z`YtSG<@>)OI4!y_E|afW>VxPa`upxu1Im z2m;XEp?S8swY|RC-N3V;l3|fa+U@+U52>j|B_#U}K^JJ#a+oP26yXvk-(s2~>1O3H znER;G|MHY?y40-MX^H)ZBqgT;0H#>K13pnp;zv0SSATDmbrVTl;Sc0)(`)&Q^-XQ4(R_oOI=jSMYY5rTN1Ez89PYMP#bG|UpS z?0i2tkfQ=C^*cW_ZPmfO_mJ(c8`*$e)aEjm*b#G?SWVIF`7$SHOx+~A*q}iy!r!H< z94&Jc`z0K~Mk;R5@_H)fLW?jtlK^B$w$CPSz8eVF!>O0b5+ejoO4_6 z|Cq^ZQjc5{qL?pC0Ti)-NJTX@_@4DLNjT33KQ#SybY*dZaiM{c_@(R@c9#cK4y@86 z9ISsZ1nXIV7=w*p9rJfT84U&^z9*shuDoy0r;GrVM&F&y`icz7UlNeBV8h`NUa{}e zC65jad%0kN(WChOYHPG?rp^;16rgaj<)x`An-RB2U;n^3HR+TO-Pv`PC4Vxb9ON`m z{f5H!J1+0@W(O5iAa3_yFhGtgGt^fIVjz^*QwYK*on*iXEFGaEJeBn|A80x z7bZ5G;FChVl7Lc&sVc;8Me>PXo2iyaKtxT_RXLJ2bPfmC3YFu$%4e9<|4PrpHsjkY z?>3DO38IJq%x~v+o8sV?JR1x5^wIi2PG@hr^jfhg0^Q(MN&%6aPQW~?w;`+`2gz1L zGUm?~uv1VNkE7L|3+qgOtAkVC+3XCbgCn-4(O1bQv5TLpp>G!XYromKC7c+8zg_o= z@@F9&*GthOm2v*m8cX_gDI%y6yC!Z7>jm#<=V{?H6fZx^mC5k!--vr{;JWjecAr9~ z5im^3Qd=yH*;DMP=u#|BIo#;VKQ6O%P9$K>(pc}A+SO)T1lFvC4rKR{A+UHoTfWKO zvcX{3vI`#^X)E}ciSU@5eX%$2!l2m@mDsDibC}>eb8J8506!RW{h}JW*eSJ7>N((Reti>v-S^q4Asgbf1A6 zO!GNzGd2MKx}XI)n0M7=_e{QNaSsGv@>Xhcuq<>LfNDTwD$H9WiHxcpQO}-BAeZ!S zBe^{(No9y0V8=f#Ck3S4ZDX-D3MS>c+6KEyA_Nqr0|Tse319RcmcO;T*JMgIPD21(xx0i`6Ted(vM zKmQ}RGm+28s>rB%H@$k+$IjC4)xKhefZ*M=_nJ5R4{(qD19(?3Cs*f3w5Pi>m*>A< z?Y=vCn`YY&B#m^>{1ligNAq5tmaqGcmQ?NPJnJ}p6ocT?^M8Zc79e2DzRSi>A$FJ^9HCiK?*PGN}@v3W#b9kt0D& zeJ4LFTv9+@_I0jH(c})ykTlQ|CHqduH;MR@_|w41@m&pE*yce>yLAj>M7mgB)f*yK zxDqzAocLxb>ms!9K7mKC_f0}jsM~7y`K}#yY6wL)gD{ZMKg5nsYl{A})3WEV4Q#hw zv#`SSAzK^z`mj^rnC*#ja_o0=o!A@AUv`IL*ABMujNX@5Lc0uGqJCz!Hga9u?ehQb zw4+6I0Q+gCjy4Sc^}>4l1pqqgGj{-0my(OI?aQ-`J@s9g(b|>1luCXXy~}eG{lzFk zJiw_N{KZGu?D_NY@)sTNIQ^O$XXXw(AD!-8UH5Rhj*{Wpmj^A73odaRz<&)1y;>?m%Df0n zbQ06^YCPxsBZ?PsFjVH;&$!C&)hEU_xBX)=rjiV8Xzeu4EzguedD@^26^~eH^f9rc{&zGxp z_1&vtmMbl6{d~BFlr84zX#y9$U5O4fYxXO4<#21ej{@b6Nng)CA0@>qc@Ik5Y$Di~ zkfaP|dfoS=>X2_#Nl0&21Z`DSq_L}o5}$Ja#2;UhTmNnc8jxe&kvUzJn@oW#6$w{z zDW!c{v{e6faTI|;)wz|+iOzPj5VQ7xp2;Jz%b1S4HQSGNH|7?8WmdHW%U@onQzz}}bnOmE=@B~j zE}xf9Y&9uMW9{_xH%ccuvg+aTAn|DwkpoZ8*W*=S6>u=wkA{chH(GplrpCsUD$^{y8%zRsch43 zyRjbgm^CRS1aFDH&`M*ZEsJ$3`iAny3A_m_r~-K#zp|V`9U?6i zR~q`vW!uV_HL;!T8srDZ@u49KVp};&$V@XMpT$E|ad-Ud=$2|YR^H2F#WDQ1x{4K) z|J(fkLOaOUQ6eFnm7j8iF_Q}b_UDn3=7Zw<&>&k2!FvFJPpF`+a(@ZHd6d>N2p&`|lEx1!>`64=L`O zZ1lQkA%7i2(tP*!(D~Zp_-Ksa;Xg%Hx9_)3oS%)x7c&k1Q&dP1*_zvViQLWu{racq z3m#AN<=OV^o)vl5KSiYkV4S4=*5NX0lih!c>Y1+L(gtRxRW)a9|6N47n2=+p{iSW< z=>hh@a6a+Y_Z=$eubPovy>YX!3HdTK`0~xW$mxFyTb&(Zzh)H{ zxmo$c-70?<24l!q9J~s@q_uy}F@I|G{BbNg5L+CCp+JT?=j0W2PaR~aD?fOk6nOkk zd7F>7M^O9J%xbfqm5%O9*ug*LCB}X~5iXfkh``78PLB3ICx4fdUlf-&!c3(^->=X4 z>+Acr{l04`20+2D0CXgFI|&nl#pg8;kNLkr%fv+gKWOpEDk!O{KKyUAZt(F7@bmKi ziP}zH(8nf3$0rX6E!7y?={%}gBC|pgTu9d(V~198&R>j(CGvI7cJZy z!Q(UC)t#CY|Dr{R1GaBZ{*plRAGDas@rmvmKXZK>vGxb8#4N#EuF-{KOK-#{{y}R~ zLqht+^zg!by|4Y%AGBUc@(BeE&-8uk7-*XOr?5fn-k0Nr?XAjBjV<+M|Dd%bX1ue# zyu3E|Au%)SUEm+I&Mai-mzztw2RlLnUU@)`{-D()Cz;=pR#1jWy(_M8PegzJAG8Yi zb<^{50z)EnZ;MMxi0S`xJo&{ZZ*L!851Wjw8G9Z+>z{w4g?n{=e)<0@TCz0%XS77` ziE`e)$;R?uXx+}NNs0`#6JYueS~Olc%|EkrRSEw^>-t>>x7422LgRnYD#RrxAn8|T(aLL}&2uR=jgH}Q|R72k;qNXL>Z~h;&wgbKVVRe-) zKNBP3|3xd#&(=A!y|wst_UFu*f6!|4a4TOKo10Jaf1mQE_8+uX-NNVRr~9TxLu{N~ zEaLy5g^czZ883fdR@n&Cef&i8^&hm_;qb2rzu?%6DD#(wM$RFB##Y%2Xh>A1jfI82 zzUwP@SJ=O3m6<)Y_k_7*Z_bB6q417>(L(-T(XzD=5(ID-lp-E$s*n*g5MxCI*`tRK zv;hDYyNL@B;$t%yGY^(&0gxM3SOCSnOdHsp2bTJetTZ%$yVz|)02F5X*9jo(9s~9l z0C2KE01h?>VH1!A{_|g4APeU|+rJMSn%QLj<2>98wB0~dZ~4@J&%3v#+ObFX#$#&T z8^QX~p@h_*xY)qLxc&QCf-i^2Pd?weW^-N9glUPwLX_d~A@vD;@Q2s|_r?CbSDfkY zX;P@kih&1BT!czb)StGiYv|5gq7j%0jQ`k#b*67$darD=r`}H8D#mcDF034bsXU!b zAZGmkf<*tH`t?8E^M5+{|6V};_agScx6uE+jsO2|DnhUw_e=1!_r*03;W15MSy|aP z-)9ETb=m^3Yfh`VH7WP}_k7#fKN^0G`sTy_rQ@EY!^oJf^E*O2l`bYz)TW-%XpQ&L zYQF2-#b`CdVJ3F%xpxNZ)jR>2ZK{|<=a3@;<)I~g&_Z?eU3#y6Xi3a|eBQ;V%D$tE z_0{kbmTK&`qRoqwtr<)cHaZ2l^tRv`gHQrz>S`EQP<`LV3N*Soy#C}pLR7>RTSn}MNd}>_p<-(HKR>h?=Q*N#GYT;+-?%mm|1ngJ1(PdV8 z`U5|jMAH>&Q}5LjYZ?C^L3kOC3k%&PFRCVPvQ=H$k12ijAC}OIKC-z^Yr8w?@@3rR z&|SJX@vE>^Tlvkt-I+R`C>lQP3{~U~)8}zXVVdG}#k)FXM_iqE*8`;Y?t09=3AJ0Z zZ0+qUb1wJmEODzbUpq`rpSmGk-M0O_WV}Z1w4Ec?tJWCD!b3y%nj8{Z(pQ`iY0R^$ zhhG zrNZ~V;)fZnLHiqZnWDJ`5gsL~!8LQcIwtue{t|r>BpJsUEQ_7HJ5)1WoVBcB>TanL z`m!1>j{@p{vwm$5JOJwh151D1M1ksNPT%|1L4w}$I)*(gs&=PujmrtfZu&~FR5=97 zs;dnd+K?Zq?R-?dG>=MBF7W@n(}j&x6s8gJ92&5~T(%D;=`!XTTcnvRJ`Vjq$olH2 zsJiy;VF(dWKuSbPBnBiT6^W6QMv#s{8cFG%;h~fe6p&K71Yu|-2T@w2yGvR+28NmM zpuhKd_5IfJ4`i*g*=O%NuKT*-Rq7P{9zURJ2!o+v_0^W=j1lx zqfEWyY(lLcZ(vO8_V=kqTBJmov<0^DsJ?tOQ12*-CpaF{m0!u}2=6+2e+FbvtWeqy zdT^C3)kRFbHev71t&Jy~!*ct#CTn6+SlOfWY3SLMqpn(vaFCG@#a;nZB$CAD{F`7$GLREj%{;0XEndx567*aGh zuu(GV=2JG7_OakLrD}WZ$;4-<96#%Chh!olke+bi<)y)FkjJ z@01nNVzWYz-&Hm!aCA$|REQ)=r%xn2HVkSONNfg5V*WWq5`<>yQ|@Fg_j-~zNsVFK zVl~f(9P*c*3r@zQ#3*QS{wGGMP?!t1uEae!3&1rsY8_JAF7TQ}jO(!gr z2;9IgY#H>KrL^0c9MiZpD~kUaHL=+QuW^!gs2{l#%L?ti_Vl^{e;eLIvtXz+MKh?6 zT=BIOnIIl2Z0nLSS>gClKBpY^)>$7-my1Po7qzTfbl;|D_wS|x``W3W5dqB z@jF51&n^=M`P^rELK0Mcd5J_}lD&f%P)C{|jBh2g#&Np$!b=@L zFZg?%lkRHNpl5)3%zsW6kJz0dhmU*()ZDlqPv&ak|BH|rta%aRN_cF@1BPSq= zhL*UH8Md$S6VxG~Uk>vh2igyg$&yP}TK1%f^on(#GB_&ZhE4j^Q~nEq@?@Y$V$6re ztdmeeQrf8rb5F$5Zddb@f;V*F3TVbdyktV37r@*)8o3(jZq{#Gx`)} z!?SKG60?>4?BAHIPYEpbpqU$!wS{|Df#0_2foDpyxx`6PWCTdP1Nz*K9wf<($Ag$E{>J)BX1#N7z)_9Y3EM(RZE~)dRo9*@wfd z8qps!p+_i%?r{!uo7}3Im9p;DY83%T%=~p!Iw1(QM zo-Bl+yY#MBGnZ{_y~pAtws~{#{wr=Z#1c+0YVS$F&Y||!G~m8oojl<6D{Y7w@x01v z6<|SrlL3wtydWoF!RfJhY(yg}ulMi@v)9yfx|9KUw%V?A-QtU;}R8C=rk%1madVGbR>zbROFvKm&778v3+q!2YYXqzUs{|<}ln`un zQn~^r-ClRCcPysYF8Jz8tn9yQUA=blZuszf5wgj*y)Bx-fF~n(?nB}6WnqX|<1D)` zD9C`d&)sp%?_A{UHGR1qR`2SSD**$~4DRxXuwK+4{U2XpCQcA&i@el;wTGQe#5@@z z17{Pmek0}ru@VPyuwS}Oaoq*1HX1^W6Y7<4vphdNbQTdsNzeJOO8r+XMZt!`I|=af zQTVynGyRvW(EjWAazT!Bz+N8UYY>2fl{3~1V;A7x@2}i31iFT{$Ih%#LIq~4V*g!( z60DKJIybQ$cw9d_R%X$DJq*Eg|Cw+_HbF{!+N%+DD~cpIun`0`j+F0{*?0sEkCa&i z&gci~W#xa41dvfP5(3X;*12fu)Bczy|4|dKXmjEu@cr^5$sms9{B1wgORSoleeOS1 zcBKKx6E5a3w)3=m&lCEuL;~PWI4HoH_|t&tl@sTqWkkdlAd5ryO|Pu3$*L~qD`zNO zPALTK$!4?@3%}pj!Z@bD4>v1%1FLv{=IdD5OO9}+kp8PIEPW}>BNrtb<)aNhL~3eI zo*|UYiEVpg;-zl&<&Ygdo?Rs&&;qNi)CII5t^JlGcuKrK@9gY|-PsSa!^8Z0Ng!~5 z{M-YegBo=@Ig35|a%700#%2w`$c}YZ*2oCtGL#@-Qi9Vc=-_>9({Urxcha#&$GLX- z?H4*e~vmY@}3hz9XD=oeWvKUaSd{=l%aHgz1L}=2#;M; z0#zhBjVdI>>J}Rw8d$gvBV02l|J{(;+~ufOubS4vr7`n1<)PqYN`W1luVx@F?nlA> z_P*oW1Q9D$JXpiI?Tb>8-s*Ck-x(w5{1@(Ui` z3(CqGTAa>At{R?cz2Eo_sPlcvDK0P_jEN`1VlxTDgZ2MdK&HQ zzxb0DNmxK&PeA>Na#Ip4+c;_o7!573{4y*XTcy{yu5-!QyUtg&xaXbW9wShzh`iQRM-ilhr68={;L10MGvM9rxSnNe`1)kK|=w>{5K{P$`y1_`PqkH#!)X1y1qzY(np`>dx@fxm&0s6GfuwmHLY~uFBV0e9(M-iGW`2Yh9a>;MHSxn@+!Qa7LI`0nhRIF1l}+umZCqDper7( za9+Oy?Z5pW7sArlPH?qjgy?$JI0#2xfp>cH==k|)M1&5rS3=1lOV9!^aYLtN&1+OGvC@mf^roAOLbsW}JzU2V0uim*9_zwV<8eKy zVtUA?)Afn^+4G;|V=L!U!$#AYRsZf7&?mV$1W;*&{Sj$;kmWq#wszzkuwit1$82!l zp7}7bevRY)}|OvC4&K4RWUzOHh-^$lZgVAC4lWfl^|)({j4x zOR_hAyd6v5UGVU;!>n$86sGdRcEBG1rmEdR6tS+JZm$h*pOBZQ;9^7IWkiuY-+!3l zZSmyOX_#2U(+*w3=?0)cY1`0y-d{LM{LeK7E(cj?++U8zxwl;A#GuQqx;+ycuFdsU z$91sKgWUj$a_{j8eF6%)243@74OBx*1Cgk`o~h4r`pC1Y(S&$bl0W6rM9~aromfGw zsX3qi%$Gi2du)FbN#H(Bd1I64F1}f549@?!$@X$j0!|NgI;`?teB&c?(jI)?U+m54 zpWEu=!}AL~j{%x~)=C4ocP2aY!Kp+I6A6k^#NRjofLx(OWuVO(J42xJJsK}%59fzE z_Twx8DtuRtq=s3wDIb~sD^mdCa>vK>dnGwZivLAi5rwkRlNi)F$1P}Mf ze*{B$mQhDQx7*%mSa>+fDY~#n@k;^KpKn$nH|L^_ojrZGBC)bxoi_a4;dyh`>Vn(z zyYB@EtP?;)2!qy_fZFDW-Df_m5j5P?=)%=IbPa`1#y+I|b2A6vpwK)Fs;B9yOE+7L z#NN_HvqrgSes8Bg8J{JvWpI0CDgx@$m*KG>3umN+mSTLK}-rl_To>LsltP zmB2trt;G43GyDw29*JMbYg8WXsh3K>)a)|@U&Brd&I>TVUYtUB11n2Iv-{_{_|r-k*q$jd@R`o8LY~X8 z)V`kNVw4cAF(9sR`^X&QDGkOv{y#Uy#b#!2(s;TM$&W0U;>!wMPWFIyW`% z(&a>MobN1d%B`2N_H?}n<=lnaCt{#%{6lfB-v-Od%Ay?7FZ-{5zQl~d34qB4UT?o@ zG6$``TI`D{w*7!X9aRC@>KUJv^RMEKnamH=)BnX~fCdUs;xQ2Tt+6K>mk(KkF<*d! zx*~u#fmriPsn88xmNhdZ5CEx?GK6xlYBoHDZ1S8>4&i8krbx^*t(4_8`rH3PD!{R1 zIA0#Sp>H#xipZ`88fnx#%0nqLPK>8(Bv$opfJktaY~^7gd!thAg7f>)2RK>LE%;}^ zBruil3_JwO!2XnNO@(G_u*5OYxxY)VA%$Mj^W2&c(KRQ~EIUBgsggaXuuTPVYEKq) zj1dJL_>-VwFsQTXZK(^0H97G=!bC=WK{z>2Mj;X>5aVMtO^3VzR|SsZ@zXD>+RdfY z22E5dKPCqE5Xj8yDW902aXaDC{sj=6QEDUw{(t=?pd(|d2)gZA6pmI1WLxGSsnVX- z^3rBg_^LEPo*Y6Clot~DjTaE^?49~O+$*mJi{(0xjX<$F&dqnWUq<$u5s zs9DD4F}M9THvk%Dq+^yi;a+E3H8tjxy;H>lFT|!YKLGtG*&GxB)8G!5FCGsG1>h;#T*p$k~k_V z3NySSbzDoQDnP}O*3NlN_6C6~uujM0IlEx!F41BHDxs)pnb(>AG+P?@SGAqkRDR{Y zWzc^;72rQ7Sj-dH*x59)E zfZkrLtf<*R zosJ@n0F!g}knoQ)214>HK>**_h>n%Lie6-V;3+X^u7+3;I-3$E_#mkU*dYz(rdJ|T zjmb-FIA6L>1+0c~o%`CT_{cTxUws+>w^*~;wSr>6A9Mlq=rm^M3wey>PBVU%fVJPQ zL4d$o-$pfYDY2PR5|Oy}ZrB152!gu^FcJYWR4e_=;tx0q9LtZi<}d(>VTDAgSk5If zp7Bam^aiLDWO7~x^uF`UNSOki^X(Fh^F-x`y1?^OR-;2)`bT!s2O~HB-V%bURK5o0 zh@5NcqMdIe7MNRUaj)y;0S#t~Ubj+CfN%I7W<~PdIK61RN!@aTuaFaw_+I|wbb@}e znngOJFh0G0Gce3ayL2Gt`-ANvdyoT#Z6t8G)dE+H^Ro8%K@mlr1KxvbV&`2z%;0zF z6$#^C#y*ikzudC3%6{Y{dJ%x4+cuAz`R;Q`_K}(5tp)`T5vm=0z-eJ;_tTDVTJd1v zO{5cYRDX&bz<9q+gJaP+KzG{?bU<(?jf@<8KPBOrhwRN{h=-DU#b@tlZZ8mN4QIiT zzQaYd>Fxtc(p6b(#gTE~KVArM&Ho@8-}sFIIsV3Hz~BlvE}QwhV7LghwjaQmBF|`| z3MiF{zsrwIyR{xxJ!~ml1*}zO=((l)kY5l!xmE*YA=c z-?iGDy%~_ZasxnFWD}Im)3Xa#ZaFdOOsh%(kzn9gCqBJOK6R3R(f&pBE5J;!Niz+* zk6wzCc57$!+O&M!jJ^kM)aE2Y%-q*?8z0EpL)KwTZb5Kjv;OwGN>2KaD&n zXpKt0>e;XdApf|K0D3cbfQz^KXTS!SIKDuH03ktS%@5NQ=+1wbZJ+C1Q2%@YX^!r; z>&PJfYcqZK!I1#q+v9)#yp8@2$=LlLl6q7`h_nZm6*F@~*SO%D;$mUy7YNQ`#9of& zuV)1|2pk?acW=c_+t7{RzgRgd;19sY+?&EJ|X zZzh~EZO$L{D{cF2;xOKSAIVQn0smngy@0hLZH+7V2-J>VRUSnCFkq z=){87fnW=*5`~I^7UFCO9E! zo)Y@mc4HvY1UqJ5r{w=bC>;$0+Jj-U(O2@-{=_GU<|P6L*6m-}38`IY+>!Gclh4v? zE&=PbCv-2offEAc81H_clGq@r6gAw-aUFgb#^9uXVHP#m(YyaLH@}3rQPJ##2I<`j zd*{+}xzzwb-f|d`YUb%jqiI&@^8E z&jp|vikHb?{=2QMdUz2gN*QaNteG ze_{rTBrEXIjb@mM%V$D14$*_4q4&!Z6r;t!@wsojPHyx}fZ!qq%aG$;8DD^`&?&M) zkMYf)1_>0zcU!<87=_-Xf{z#xT?2neqv+v{j1-=dVrjmG2ymg`T$3^WI^Wi6TEEjm z8ZLeEnY^hxkKnz~|AbheASO<;-gExSQMhy6;;RQo4&&vyI?giAwh8L~Y58??^+?me!bo`KftwrtvaLVPw2O{V^ z9npKsRfFmewkpmC<$eD)imD3DBiOo4U?|RJg*T0vpw@ZvE4&Qpm?B@A>~lME8oi3h z#=OXxJdjBW$HE_&88BX_>CHeg5Z5(=7pWH<860{}ZieuCftP_J58VByWZisJeimnv zAO80RzD6{GjxJih?-)^iJmH3>R5?KJs zQfH$?@_*sA42{b-z2|~pQox+W2pECOd)77ARVpRw8B-2GiV|Z?eI_I6>_R*~+Vkj@ z+%yDCV`6vYwLcg!0E3bd2hjkeh+;_AZrFNGh(KI97S#(&KcWqLGp#Gr2uo6p>fr6B)U9O`}r^s z{*9D;T8NPMd=1Y+)u}rFElF$Fyq9@k=*%k&qST{c7e@0sLC9$1g(z;9B`b9={L?c{ z*SIQQRa8>9z9>YgZ1A@lp@{G3m(E3t&3G@atEGyfKR(@f@BU&zmsana?59f?kpkdh zt*N^Cl*K@{2e{J>q;xaiPy2~@c_5kfCt(RCc9{CKtFfu_bnPERiK6~-w|f*`=0N)N zS5P0kU8GTe8Tmf&bWN7u`!i`^4X#c(=I{4NzIOe_jk+ZZ=CiSfqNEuGDmhsRZ6k{p zS9*f?Ed|zaeV=qx0apajV+@HC^5^NN*+mE7ztz$aZ1e7U8#A>vUO_}3k9EEHQV$gX z1osI7UlpqHYoY@VaG3pG_{z=U@c*$ULw&GRfki)i_cKkf81&Z_wWGVsS4d}GHmx`)B<^&P2Lhy-QwgazJB)M2Za zC0NMtED$eDmIbecu65zMO^?bm0k->8Y^79P?$4kNU~^=eX|JG;fN>@@Z;=KSZHJdP zbU&>>C6fr7q1k|-M zi7u{n8tiFjD~6!iGPKYSR3@z#@S#;smoI4Iitc z%*K5vVMSHDY_MXF$S#hw{Q3CeL|2c+95M)hnqx;V1OZf_*ge&LSy!S2F`GC-{Zo^wOS7a@ej?QYUVgEZr z*|ry!Uz<|yFIosVQ+aTHn(sP;hWJ{}f<0(JcA)sW`rwWiJ#Z@~p3uCpcSFRQjdTBy zJ_9la(<=E~!GF6x5J3v@7!L^b{41qm4iTb{Sz9va!%fO*6_%@J$JMcKa|v4N-kQ4X zZQL92+@3Kps&!os9|WKL&!wowLANeuZD@=_vlI9S~It zslYXNR%_{)w4WBsAif;0J@aOz?eE|pY8FP|aJN}aY|7<}D-~NK+pxSfSMtI>kkf7U z*GzveJ{XDgJ?K{ivVYyLHFuxF?leu_dUOukc z5=^?sh=Htg;C^cFolX_%zZCl-n`Tz=YPQLymud8&s##&;w+R0b_b?zD`|gsa#M>IF zGVecI@8#@xxIT=Mj3eRt+vPz4B7hCRK9q`#9`WuSW3v3oIb5C7G5{W~x%u*Ff|5@E zQ`JR|DAM5+w?E0F&i6l7VUW#bv#cFE0e}UEMk0#SNBs$Atz{mN3kmi$E4OZKrJ{SA z^#%4||C>SBO(7!a%J(D)rK9o!ERAUg07TVwhq9`39`Vokfz3;+Xi zVk}n15!UpkTKBnwi2`t>iHxx_ZUdwcjH~^HRe1v>;cQu@AO7zPDVqTjgDf|xTe4I@ z+;_axk`Dw)%|po^S#te`BN@NwhNB3*hJSi-9t)2&F9Clyh>zV&VJ^b+|BwVU|MJ)h z2-zuhX*D=b7k(NXfBIlrcs(@)I2R?5$HQ{Ij4+dQ+=Hc9*^;e)s{09kZDExnNb{sS z9_s{XC7uQV`1l?-f4nRs>8q3JHe0s>thTw9a2lR}TTzMeplgkahkIUVO z(k<^`bzo0tY6mG3`!ibAe}y~ zmf%~(c12@Y+5nB-C;`{Wp^a!b~H!iA->NXL#dzAQ-Fy?jJ zO=kyaR1G_N=T{^MC8tVy^q7f}u{eI~?06gb&5}Qk{(0+BWw5T**e_USwnGfuMY
    tWU5}&?y)_Etb126&d}w&_B@{5VprBf|QtO@+w^!op1#s+mZy@cd^13-=+Jl3^w^4Xz6RSUR zGWe3lTGCDBhJi`D3HEIGzfbyrDJV;eIihhv8y>a8qmBgziulyowIn>Alx4l@6ZbmS zb+g{;qqTAX*D)#WodPm)a=*HT78VL@2c6T9&XZ5sYOhV*BiCA8?!r6xe?*>`2QJ$u z=zdeV{!2`()h}Q>veW}4<@Bb@8t+leXJP@jZx!5l_{|>|-g!Lzum|&-Cxz)h05W5} zNr#3MzpZ!$ke;ekAdDcFm)6;%L6#0ws?3w;;()ofAAq+1e8IwloQAHDhFI8-(-@_^ z1C@vBG=Au<{c;+5yro1|sNd3Si~#W?PaZ;}T`N0oB=6Kt;&QZbt+Gb9oN)?gbX@xH z8X$3%=0KiT5^FheVNQ*QBLTV8PlVXv;kCXL@{q-vq@YQ2VY$sTO7F~^6doUW;yGQu7m-@h z;JLxh{7V@sIb3=~MsFT0^TW}2-Sd%eQ;V2$`z#g|q4PVbiH=Pdo)8?MDJKw2MoLi#iNy00votWol#6!v736B(8x&@y51=K@3_ z3&@5->1ob?=B2q_zTvYnt*5qupn;L8nkTa8nzi?}l+A&`63BrkratU!n7eK))|7IF zL%E{d>VD&S*spI-Bhis|cK5mxYvu1-`MmgTaz9Ys1M-*}Wd@*0M_S;dKQQ>C)dHWH zcS_mB zK5>D`ZcpU{92j-Qqal4>ncpe0Si(RU&%f7!ve{1SN}CqlnqBICRNB6@RpC8&dM<)k zZJOwR1-`Sa7xAfDGlb@?AU`{-s}bW$$7{HR#Jgiqo?|}ib5y$ENNad8jv|d?S$a=t zK9P+6+HF~<4()qn_=S4&l~-D;74Jg9DtiVFuJ(M7Q z$zYKeduId(GVK+rvg8E8Ir#RERTlRU<7b@%f%`~Q8u;6AS{dhDa zu%EgIJ}3Xwev&M6XW4(bD}e@bme~+)&L0XBqK)SWl{#eumOA8AIQxRgEX7R7qV)pN zRxT7`=;60xiy@>VlxZIr_OfPMcT|_PnSN<2x8Nx@ydJQCHPNBHhN5DlPrpe|r{C%O zP6^m@Hv-QT^F{N=yF2xMKt_28m_>ZtV%L>>{kM!Nu~7Th-aTa^DUNr8e9qid?$mon z{WN;XUeEU%C>AD2{T7B6Ugr-+V7QTjfU@v)aj92;ruueNP1LzcsU+1x%Z(Z>T5IgORe03wmt_k0!=$v!oKPcETZL7CLEMa@C}>-D}xA>z&T8r19(TbKsX zBIf+LCL|T{C*jP2V~V>pflIFyxnrbG3wXY1W$7q{{S!+QxU5qbuLT+1<57FMe8oy9 z475e5YgoifJ*m6KvIa(wWtdcuRPrFLX>*7OJNrx20wMxmKHN-8I)7}uq_p^jd6QbVsk7zr)!(i; zPhk%5aK>KyJz}$VD9%h&N3>cXH7?_BFCP)YM+#(c*h+f4#WkR&A6F>(#BuZ0j{%Yk ze9)-DqC@nBU#~vi9J1^xJD!-uCvTttSmwp&oVy9-B zxzxFft-bF+*Dc{w=B|KbhUa`=s2#eE`FbrjBy<$&Pni^`&=y@NZ*EhcuS&b04I)rv zmm*>e2wkfbaV;#dM^B8_HiIC|t3jRUZy-)ubN9L#QWG0@b=E zmu{zx%b@i(3Xcq;*DuCg$JG~osJw`Spxczh?ELXhAh~r6h@sCXEDE6cx-LJ|GM zy3BOY<#1LMa&U@-d$j5q512T{l%COi-%~){GPzduGH8NT-Ec{xg!)7ve$@lCm9mE% z2kmX>;59O_SRfWe?4i4Y#9SZg@!#Z@E(}VI+85(=jPmN`$IbM~H1znEFTfDlHN5(m zbQ=_T=9ds2g86i8v~MibGXn{Pe4yGM?sW~%!$>*#1@jL~o?}mCMML*;9lKb6w|c5V zp(JVX`jC&iPAG+=+~)R)@DPh!jONL-P8|d%D{|(ab}q=}JkEW}r%1yM*LsfqN~7E~kR!meIU^p^f5*gO zNUU}}9Al9TdtN5*8#0U=TS|N`=lF)QIl)VNDf}bqZaILjlpj!v-zljaRIl*PGetR!aaN*zQx%PHFV1qN!I8 zF$G#1ANn{DgOFp`&;Ka5rk6r(s^^=#WD^+L`smQR?ru>i%#OCiu#R02nK}&5q)E z{GH!HND_SzkixflujJiw^yx#F+BsTd;M=pT1Jw&Sa=CFF!ayhgD3X+YDn%`(a^?L5 zfoop zySJ^J75^L__(6|@z2A#e*=Lm6D|FiV>9NsN=|H(llmn02b4q?f(IYN8<>Ho!t(eiY z@L{r6n^b>n2s`_ONYYT<&oA6idzK`w>s`#+*kz3b^!0Hs3&isY8)LSB^w5Noa#tF@ zw_f80jSCE6w1;kT8=$cX&;pe*iaMZ}E<+E0q{L(+u$VprNwz8yBtYCjoWZ;NW`xEr z?L#Z`a*UcQwfgj<{|iZ6!PXxo$B%H+TC$0k^#~U@3mXK=7%$4$EDAV3KB5b$cKNc6 z1SR2_CFJj2`eh?ih(ogIE^9ra;mn0~1w_rLbdDClqcAFH6o5*MKabj?@-RhFU3Iro zxk6ZtyzD;AX^~Z}O=C30bC=GDn{sKcfJjvzUXhMQZCx<8hG?jCf+xgP1#AAP`OL`Jty^{aLvDB|ZJ=eT6U!^9w!;|s4S z*?yakwu%d*le(v0A^%!^GtGM7+J$}H*I>+O=1!>ujh4ut31{)k?*iX+`QR{F z-IJgM1T1G5ErF_V8SZ7F>L)%?k9}H|E+3XczPZvRwa~9U1-UE_4p8$GYSp*12gdYr zld=y6zg6rCaG1B(JW5D{e0z;F5nFd1wd}Yu{+c82u`{1ok%rw`i3lFGuAlMi8kYtp zimrw!0Z<437exH&9McA|cav(m=fqWTR0wkd@ z8lY9DT^V^z4z<^0nYOCLwAzOSfoH~)!KouEX<=aKoB3o5ui%+BWACG`xr@MGAeO+mzcQ^m!L`67kRBww z&U{97q=Zsbdm6t7Y=T_(XVaNe`V8_we~dqYQb4;^J#b4)Dz_tCkUw`oalhikI~@kZ z8Jcw(aW#UzS6C7j#g64lM(wvW#K;ZO$}5Fu9Zq$OCL-d4*LO!O9j}RPO)NdTD?^?t zO$H)aL6RiFx=Bc3Y z15!}YKUE%2*_BYs=PKQQQadKI8^;g`L27Z!8Ze5o3%1?IqtA!l(TeC;bSd=pn{J_V>vF*;;voq%3P?lC-LDr zzx&>Jw`3{x8a=w@3Oz~qw;jI_NZA?(q1Qmqgig=inqsE@trja~hqRHxYmm<$ZhiDu zO3iAZ(^!x+(p5hkc_Um*$U@IuBu}t79S9TXqjuBV&v#I&xdK-+b0u_*mjFz*2=g^ z>ji#O6hHwLp>fQwuf^bOh!Dp4WnXv1FkcbH`xl-w&8JMkglvtLF1-GtMDH6N5UP@7DE!RbX?5RWtd779imvlpG&6cl%>!{uxD*46_DR)M#9mQDwdRkUj#fT- zO%ii)t%fm$7}@dBm9<;E3j^iz~2ApHvtyJ-w|- z55b6&KdFg74`=f2pb3N=hckL6p|~>)K)^2wc+h+8hM*Lhj77$+t9q`SleaYDlkZ5c z{UT#uBc>z8#wCwcM!e3AznX^0*u~BIcPn2LW4mAyLYzlP+ud}2rUBns3jglQOB@2o zMqev|O#d4mE6tL4IAl)?n=>SB#fFKQEI=v*kf6=V1}meeQ{|VD zl!55nG5ga`12p_7p7S4x8`wK)Yus@^3wfNTtPb<+TJzt(9O$y_v43|sdG*l@K~;dn zlNj2>g}hJqN-`1Qj}?3*zfV23C~l~I4Hd#KFOP_e5}?gl3GKRLQa5Dd)R7Pb?P{|A z$2Jb{p#rFftS{>7aK6PvVKFz=Rsw1`Pr^#jaGCRhb%3I%O8vG~em3l@duU4&?FMTe z(80w|8CCQS$uHUtUwz`bF%_pFRcp<5z1>rh%8n2S?Sg7KV|fDe^p#%5f$6$X@%|9N zF-q8KpB>uW>j7z|h4=7hHw)#h+Qsn33)N1@zD@+MYM-ek$9SO+15pcXykrEA+pM^z zmy${gZh0LFQ)wSb3iiaEq^kV5wa1w&!2wBZ?~H594`k1!C$+QFD(n!GcxjNl8h+f_ z^7`j)vMO3~Iwa3YmN681lUzPOj2bfV*|dV)ooSVn^zI&Wg|rMh#ycU>O~FU_OjZbd zpp5v=oZCJG4`77Wli>?qTeSy2J+QMP;}V_?e)EC%JA{1aH~x8tm}VdcDBSF4*72jg zk2fDG&U?ZIv&eqlp=t&RbVF?(8cWpcY}L2v_(AXc&|2QQNb5sKsU9WVkH*-4olWrf zYlo4%*WDj|a4raPs9D1)$H5}f21L$bg64YRxj9N@LmccH+08&yY@dRnhN5#F!m^N< zpEc!=O-r2TM`YDJtonP@GmYKCjLo`ps;MT5?QaDolfkuw@^-((-(YIHqj8;N>UwMl zdtC{KnBJ|opS4S9pA7x5CmOpOu_%@`if>6Kpr^pdX!D*<3oAk;haJ;VSbKVV;BG<| zQcu?X+u3cRzfWa@h@v9E`_)BM&Uhf(?j=mLHObyb|yb!R2^IhD-jHC zc=`U7b3aX7{6_3@5pu{ZN^Q61tFjsq=)u(mZdqtY-*d872}_lOUWucIaB}N^}Y>T+}5CG!p<}M19-OBBLIc z^jYkcaEuW8CB0cz#iR$&0n+W3H?Yv+GMdM|UK@@CeT(N_2CRJvJBt%jAp9=Ky%!H+di_@&_+bohn`fD1StR=QEuO!HIBKH-M__je%`cUeT4KNThV+?OVt+C-3Me%pu zmEL}N;SYV2pj>u0Iuiwdq#q06BNWh9Ab=mx8nV3pDE~|`QF~dlE2YIXcgg-4E;i3K zRgg{yEZhSdJU1ze8%g4FtJ_sSAP{_PSjjmkw?F4DY2~3d(e&gw-xFgFWNd42SH5p$ zuGOuQG%ak+Sd;muk55uKsW)6y_BWEyy3*hG3MXY{Ej**FKm|OT0Jr`b_)x)JHt0&i z_q)US`)cWLhN?TrK;rx!SM5e?*@B_K*D}#xu2XEi?Y>|x&H63_p>6QApNFjK@xyk& z2DgKN2?Mv_KfCzjsnqX1^*I)fd3%weNsy{l9K=n#G@)ofe}7I}tI@L3 zLfqRtc9nDOP9yFNisUY;8sT?mkpa9NNq3UU_bs#w+UX4#4=woEUX^yPvbD~VfvZ*e zz1U*V9^W@>UI%o(fo%=l`sa+=+3%b1>wYB<`z06>bf?VCrYAGJ?#_F~(~yjX^P7UT zrinUf)p`Ni`gW8s=X|YS`A{+@JfU}KW*a4|v^Q%GTnJ?Yr{8|jxoLFiGC;7iY>E~} zL}p*iD$yN9!cck9f|eHsp--D2=QhBtbKoOrv4g}Pr+`=}-*uz7##g^wJ1&Jnhd> zlo^oh5W~}9Yfv$vHx}U&d7op+>`(!l^-e~FH@HMD|APU{*lA$q-jS=vJH@R}MUGlS zRVBgk{_l+<;%0kA;*6@?zK;@=?yD(qE)UmH9W_3~-OiAr^9HJ*d;$T8UrL5o$a!=x z=C+Y*Wa_}Lp%=jPg?c(>XVls$r0>dIr-%>m*xhe_vv)z?dRZUw6I8J@vPh_r+KjCy zhkw`DFQ5S&c=IM@Y}S)0S;*i4F6orH0wlbL+^)@!#Dr?G-`@)t%zF)kptUeJJR`gJ zllEwr7k?OSnn>hwH5D`ze)k!F;>^%xIZ?NxD9t7@eWZwv6*IZ-Q>&z3{YCthRmafg zRYz`~P}7y*J+6{R?+j2uW4b6oC?n!7=ik*jNnqECkaw| zt*wu%AmKU;9`_pL>3?P84+!uevRX$L{UQ*U?<_2RcaXR^9$RcwbJ_yGv6Z-h6i)cS zqb0~RbZ7>7l5$i`34>UF5nTY(fDNZLv!sl7(2rBSOvbLNL67dy1y|9;ZyYGekq*n> zGv=qVlGHrWj$OIJZwa}ge!D_G<@8N8&tbluoxk=puO;1n?p}nQV`z5TH=Wc56Utec zM}ZBu;BWX}6=mJ-js|%;txfgSk&E|Q-n=0s7NsUg^mP*?2DV&D!iY;RufH3>FH$(K zf@bty6G%?c$(p9E+8gIMbSsl8x}Bo)1jF|6ptA8b^97{|m8L4yOAbfvzu(^MIlT@@ z{aNjX$*dSq|KRl^f)3Gwb|Sx}m5r9X_7An9=<~6CTTqwTIpEIp zEXHkb#&6pLzZqzA-P+x)g(m1Rx?1SzZ@m-^mHz(OWtig^Cmbx(++n#)S` zgsN+A?m{DRod8J-!F>><5mBLw7hK*xN_EW-#SYlvv^wIMNGv;c_L2vRD>Z@tU<=r$ zVkzgRdX|>vzb=-?xdiJiU$d%aEmp*jI}$rh5KxJEDWpCSKfRbWMQw5(yFU0&X6%Lp zeTCa?z<4um(boQe|0_ZmZ(*I8~>!fYze8_n$$1N)tUEH2nWa+`&gknmIV| z$&g)m>z{zPepDYH2*J!h3&GK$PC|L~Z_LNggSxU?acR}#AU_8=UGx{1zOinHQP zT>t3xP_=}TC-kKBnIC^B=f^*{w<#*Nis*_@(0NxaXHBaeqtSiaCuP0N|H|^429JkA z7>2Do5y=HmQdh{R5S*K*bcA7)8wmRB$No0u*eKzxXM#Ix0ml zug5(w-IY-rdze<^3GvYSQR#Djqw`QR&obrPr_a9rTrk>gD~yJ&3{a-Qk@fjNl1w9#s z$#~G3%>_q4@fvKCg)oe<1tb7lO5KQ#{4%Yrem~S=@Y{>)0COC9`BDG#WeCIL;RnNl zAX{pkbi=b`dOTq&=>H??s)M5ZzW2LJH_{D?l$3P0fOJcTND4@IEhVcs#-znPDo@ibZjFX994hn_W zI8F+YCZ%blPGWADM_HE^`|~-eNtkA-xj1U434r*XaQlAJC|9Jeq0`iT^C**h;uF+k zLc?1zt6QW&bhVy;Y$?aInCn~4P8L;-HsLa9QBvYKJBT*g~<$J$;)&XGxH zOj&~-W+#oQ;aAB;XSzKcL%L(Z8;eN?MHtS@^(waH5c2@%oda&nOO3tJzvq!|Bx2I5m#ngFH`rhi5t+S7UtDktK=N zl=>@%h+Yyo?e!1tb!TjfvuB|+{6k7iH0z9EWrqsif39EwNf2s{85@Eb7qK@(QL1;w6giqCvi{G z*R^<~B;TM~e(`AQN$-_#qx9(V{wk)-iYiAcPA7t`s3L6Tt&>40s!+Wv6`IPO7XO9Q zSyc=DmOwYkyVQ(x=u$mS`b^kvAZM`e^u4>BwXU(o%jB`wPPyYopC0D-M`yQqXgEal z%~u4Kb%6+P%1*A^4HOPCB?=Hp^mf!6JB8lx4D0`)~HWYqH@ccgts!ud-H)WH);> z#D*x{!>cZ=*awZRO?ZZ667hLSU3mM{Y~NefeadrVuAWSF?vEA!Zm>CN$wlX=DAG@P z@iF_c#xm`Niaf2Pr0EM&1&JhSwf<@LE|k)&HQkcf7F)Z;q<#lkbQ`P`efmUm>k<_L z&E{O{K{kS@hAHv<#yta|8iRNMYJs86&`%I9Ep?<9+G$Ff`@q=#zf|v>3e=8O)3^m* zT(LGJTKz!jPSCu|uxC9YOo;}AGqkl}ePkjg_+~IZl0hj z&9ZK~b@79VTj!tp%*dS=@W%9HGW)UvZ0eaY!9GRW|+P(A-+i&k#Zl z^5WSMg3M=7XYa!ZGc5xF3Nw`M1%N0|vM+%ve|$z_XbVDw*UAKbhiuzv{Y8oY;B-x^k&Kk#?ZUBNUgOzU z<>Z&@aNggN)9A$w@8y}hEpbt3r}MV1?&pNCf3*k;Fy(|h1+N(}Q^*#O^0KJ2P%@3Ie1_L$tf@4}c;U2x%d%k(&vxVcQIu$I221xlAMayD@7dH712;>X?9~n*3H?xVM=XgY>Hp+_}EDmot`>em(Pr zhML9adxI3ZS3>i=3KyXOj4e%e;7AC-||jU0Dl0T%XHA|*6@@jD2tnGBK>508~;gL07G~$>w zz;Z(1y&fAm`}mQgWmOn)Yt>q7bBXdsau9)wLE*EItlEbb*Cf;olle*9sWLiys%PZ8 z><^A~Nc*epGaf6y@E@W8P0|4JU#w<_g=oLch_N$=J>CxD%xk8(i`N1V5Px~qOIWL0 zk7k2yWEBk_&@QO^s-`rT*2Bqrul@MXIcqPGew^q5=ft`xasvvp@$U zDWpab#{G)W;5*)CN=lpLd)H@kf`!lr2eqIrA>+d(QojZ@sw{@vzL(0hX#GMa@F zZAU$Z5jNYt)eXbBSwSJwY)<6Bt9DLgnti_XjNQvcNrkvu?qLJYjgcno_}ZsdIBWfh z)#2H8F{a+0Cz33cBB~rqWjmbGdfR6GgYaDi=R6TGX{+&E-*PcKtGC8uCC7(9Odoh8 z3vX1bt`Cudl<1KCTUKtSYnW9lw}kFbGr(?{B(gi+$`Ky?%i@Ny z!fvZP_Y&oldQw@7r)|kBd+MdJU7sE`qYju;dJxqag3>bhVA6Yge^}Jgu4X{G3bG-G z*>v@)!J(n2h-GZ4tY7t z_MR}i6hG?zSY-%+b&VQUQ08*B*a@pezKBNgfFMTmXz&xuu1srY45jGmes3r~usO3i zpt0$zD8ot1PgW+0%JNLwZdb!pMf?lhbrtoo>NUS;18|S z39Rd?FyASal;f`Rv!_A3U@Nb3?z*y+OB;-B=?LniCvc=VeqqEQL-Qng{j%eRwC*&b zN3{PliCFwWYq zgG~CqRJ^DLvj7=6R8Ne^&S}XBnmP8zihgq6ibCZnt&b#xT6Yw68b4ywa#dF6W?_5W z_X}juf_0^>XV}Y9s5Si4zB3!Pui8*0$dj3}3wQ`s>>lZwTE8!GXwrAC(o{RgmgDOdxH*#qeT5-K$ua&7mNA} z1KSDw%vs&uQ>E)VakatcJ`J@-T3IhlTEyy>4g-SbdpC0gB2?zf&#XVW)Opd%xz-DO zrd1-_!sL>OpP1uxk5em+0pmLTfwf5g%E-55MkNXp_&~q*68jMj{6BKd9v!8*EGSV) z_u`C|itJf%yf3P21g+k9>F77PF4sKxSj0N4`sDr~wz4sGE2(ypg|?cUSmNEG$Yk!D zvfETUkmSX>Uej^DG|uOd(kX*3ZMWimF2NGz0qu(8_emQA3EthV5aaZe&7&K8=Bj`P zFiQJm-LwXdlveEu{ofll*Fnz~7f5lNVyFj%`ll1hjY`cRyBfC%GX+f!c+Cv2Z}v8# z{kg`){ND&<^cgJF1r`3LG+h^Z62EcLFzNb8a?v&o>6kDB`;;J~5r1Rd(KBm77*F;8NKY5_o$Qyg`0jJEhI)tBDR!^e7r+6mTaDefC*GS32y1-w) zXO(B$p4gXB9fmEPYmwfQd0%6ar8}8UMY(BgWd4?SJBOI4RNqG_6tzPad+hWYT6%r& zlOuhwJOi`@s%;={4=*`JRny0lIW^}T%3tWu1amJ1rzMfLr+i+dAxM3TG76cTx)KpD z9jTovGuo5AI(Oo*d|`1ilCew)Zm7d8!!=+}8sE?@sW{Y{?EG0NJ|OI>MSH!I85i3rnpzO z#q&gZSdSXCJJY?G8s0<*DMeOlrhesxUj+a+`c}U%KZm*$NR!Iel}#Y~uM+NMjaFUQ zv%#+2I?D7LP8hZ>&qHZ8D~-`Cc`+e8k{Hfy>cLZmJkGQls6+@e8bU_GAyoL=>2*D7 z!=e1_YPS0rk7RnWKVz$KRLloXqIiB(5{#Sd(^<>gt#U1u-(8Y@{&e|3t24y(&vKnn zVozK05cVIS(oC@hX zg2ENvpB4wJp(|7H<_*$NPAAlOkoKwmObh5O5oWE7d*L`Brjw=idQ3#i>7-1*G?#X# z^sL5_GxAi@-(oKoLCcm4orimdWsdcaJQ(C;h6v|IxAAyY?>A=(@MrA==yXhDM$Fiv z%05FeFaHbM@#xNSljL^rc*g6iYZdcr)5Y-H2P%f=k(RkNqWFmCWq2@OTD}OpA_)^^ zPSlwUVRxh5N`-5X(W!@gB8XuXe~?4GUs5f@4Z)EK7Kk@q+8RI|6u&D%E^E|@Z3>=WhnJP z{cCl)?(I300k>=;Y$yfFo{eE@7yrKR=;c(t%W3Narg$o?=+D0mY*pqWQ0hR1Nhl_c zN=Pl+_cWOfZ?XQWFs{OvrI7BaTWzFVRGa+-!8HN@0!9wmzy{esQ`F3LW?6}czV!I| z5Q4>CEpMTfw&>x4^3Z4Ut%lWZDLZgqt&{SHdOriDnX&N_wL8+VERLcPj9t{VP7V)h zH2FTn`SV_5S@02OR>}jFpU+PpCr|w_-;FMP1!O>f%$~}R3d;RQNS!G%rBJp8Tw3a7 zH7^CaZs_R2FW#J?)J4XvDA$K4?LLPUk|*n=sf&R=GpVMxA#GiSJj@U>=G&=S{DtrK zC%6z!wP_AZEm#WkGFNR1L#j@UnZ{dR#UX?PdSjl2VSz!p|)e*EG_Vt{b_G%r)2k8NvOWEvp3RDbd`27$+T@(wMo+Egh16dN%_E&1H7skLLb-%NKMzyA+@ zEq3MCuMjw}s-dW4uBpwa92=u7xWNW*U*B5-&A#~Ou4?G2iwRjQ6`GZUG^-E%O}QS2 z^QZLc>r2_wOni6cpOQ|`yr}NeWSQCw$Wzz+N@_e;YEpM4A5T-?S|uM%Zdg_HRbT4y zx5(oURuUTq9T~jo>48~Jngf0{)-7L+{pokq&^fk5dkqq4KY7L3^LrEaT#(lG_qBxf zJ^XkD&Uy`<{yEyn@=A{9$82R>DZ-!dKf%&AH<%xo-O~(bj9%JRkZGd02doC>WM3mi7g5aV5QJU1-vY zNvWl=>4Y3EEjsosDi8Xj5v*h0XyJ;*7pWTp*cR$a?}NNd+$nh8RPR>cQSl~k>Mi%i z%RSP`Y}lA8F5$A+kW_fZcp7KxNI)Oc!k&InO}t2^9Ls=snYWP7G?#=N`3Q2y1#>EnQ+#S$oS`Qh9hrK6h!7 zoyxk=FS9Uh^}LVYq_ZZ$_$gUES9cZ}$Ajb+(h`=rtd2ijN2SAl}Hdk~n zTjFF;6-mpQ@~rA-p1oHg&h>4{`>nH*@sw)Cj}J7?p2@&F8u`VKl+?qPU8A7WnA#SW zjo-~g%;s9lg#eTp;qJ_E5{udsT4CqUeFhz5q19Ml0xn)d?Ixf0Kaa0o{jc77j%v9O zDLoPrfqR_m%G^{}vu7=OKl6U6?~hT?PKa9_1}k`QObrO1LKjM}j)YMqbhyxlObX=? zc7)@gf!=(ufQwm(MmQnMZ*#mdRrSnM7Ta;}Np+nI+Ltvs)5>=xZsB0o@PRTD`+?lm zsm;&Ic=)f;g}?u)$bI)MWPF#=hexD_lqO4TI%0;fau4YnWW! zz^UzloBtSz5Lf(XtVgPEg4I$S;v?uN*e6MCJrW-lCh$i4ut~*foETd^uKklrWb6D; zAT|AFPqD`|t<2VA^|vmg*P(L2l~j)Vv{=Q1&|o12T&M-k=nSagX+g{z{*0YATwkpZ_Vz>jU9MgL08kGQV`x^ds9fS3n^xFJQsa3f~xA{(CQaIe2 zA-vH)pilSxdVeGLDf{q`%+>8MO?c#uJ`^6#ox55)8Ds;^82LU_Qm?-2D%Z3{Kxn+! z#Um&8#(&f_iKPTl_gl`SmlJL*J>_JoBmZ#bifD_x z{sz)ATDs8j*vhg>qn_Cjk+VI|6n<&HBzUHzx#>&E32&BH5Patfg=q8v;sPgi4>--h zdK=Tf=)?yWCjQb9%SsuFJI^kkmWi4S@RT%Qg13@Xs_FP+r6YtnG2&i|T0n{}f0FL; zsCyk%*sGRAO&2*_{`%@8FQUwELyZ978{oCI{dNq_$E+5O7ZEWSRTvvK_f{WBLbQI; z^HsRkkt&3!$c@*ChU$K~k>@)TY~(~MF$BGyj!#$ZU3aLouqLA-+gO!E;aGLF!*GP*G8{tsLs1uJcw=ieg6lw(y@ zuc3Q2?Lj4>s9rtDG@5qTQy^l>js3RtIEL#p^zvu`%8|(Tc4r_p)f0o=vxMuK=V6VT zFej3s_Qsk>QT3XeXE~)t(35;GpHR^7f>X2TYoeuyMYoU(>K?mljnG~m+~stf`Fv{U z;`T1AzAoZ%t!Sw!O~5b=+zq3w>#Mb~q}J*y$79Az!Y;*ySDMriDjs!ox=gVQyBN| z4Y8k1E+Y%6BUzT2L+!~P$zv{!(sMeA7*RtDjSJ-F&ovK!R1J@ol6Yq72)p6mm4-$B zV!6gs75qM`v|H%6tGWG}l}LDWV~Yp%YeBsG=(2Hn8l{M>eHyRzz_eSm$46$DHQlOd z7z1G2us~PP9Ysj>vT%sz*@$w_rN!mPDl0MI@bBSfIz)6r9Teo%{Mum8HmnYoZU=%O zIYGq2cY!sr10fUVHcEFw-Xjx82_gh=3_|Sx9eK_I2_G9kM`FqjMZjBPNB2M3{wZOw zVw-St7nj8x7*_$sHnsBGn4d*b+JBgNiPmNHx{mz_B%qkSqjcS-fMoTepOZqG%|yEF zFyA>9)+!@iin#P8IgYl|Sq!J#E2~|~cuDI%{kkmWHGRn2_qs%gY;1NnVc>>abBuDn zAKX1TR5t8UV`>O^_q0zzb0Jxn8o1Pig-ztZS({e`>IUb+V96tj}v3X*Bz zw_$WBl1J?ZZHks!ic!}|0lM7u_x<@_)vhWWVky|MU^KC2!>v;#+Iu^NPLZQWTOb3nqNn`gCox)9y=i|w~b^0Q6_Y4`CsRuK0J(cfXl!s zUCLvlozy?PA>d+kkz*GZ$HfNgf#KnvlNS!691-qEPY59Tplw%5P* zGOsCQMmNO8&x4B7<)jAt`7i35BbF=lmHOKHc`=-m4FZZg$GMF2;X!)e)~{#%Y6d0q zPZxXPOqv^$Z1U5Cp9(Nr%9g2n^owln!XAq99NV_8I^!i>>vruAdup^o1p+MYB%=sp zw^EKsnGueAC<|Mp56v-hO9tux%>(E%H46+3d?VyvZ@yZbStxzKW9nd1^)Qs>URf*@ zHIBm}6*_&X{)1O5*8}){Cv^nHr=_`Do@Bhq0=ZpYmI$)r1wEhuWZiOeb7^9p5@h1R z;+dJ^;cD8kIshHcyvV}ypiK@n*(4_0@`v5&VUupHUBcP|FL47v>V2#h)Fz=xGk1F# zyi?_Cw<#)+)!AD$6J5*i!~|yJN5gN7J*Seu%@a2GcRgJyPCmbGQ%~u9T_l#9)#li+ z-^FPl>Rwx(yLIR3x~ z;;?KSfm`s3Ur|ngDCmZoS7f|CWAML+rZy4KHh@`-+h46H zOWmahhnNroAdiXbED#1-qZ7FF8(7|}xVVpuzzJTTJ5Ytr-CQO{hJgs2hP|dj&LIb< z8Z|BRnzIjy9TaV=Yy4uIduWKP8j6LocAtPb%)d zvt5SA#ryG*ivshGE(8Ju0rN?i9|DZ0cXsQFIfv~@#yhHBwTJL~8%Xx;jjOB~Q{~yt zSCa z`}ZHbLYY%<%fpdi4vhgY(Kr}FB#TuPQ>C!^ybcOKLh^JWdoRVo$E{i*AYlb~z5;dt zMeH|~BSZloAF&&)iEI(U*HDfx9C`T1r1))sA}6F`W;dGh(CcwdK3dYcvos`obsn@V`W7x5tH z)W8$8Aaz968UPf04jIRS*_0Ff(ynPkAAD}iU8>H+GYD!LLLL3nj{{uZm9u#oJzBjCxlm@%=HBC|^+j`8ZI{a`!=5EWYCQS|BV=}~>Z_}HyelK)IU40Q8 zc|0Nzwk47uI39yIGhfG+)yOozH%#9A8b#1Wu#wqwd404phk3SaK%n_>Xflvj(AJg&vqiE z>+solbKFzDEiC6-*p>W?CczD|Z>$3ty>E5BpJ2fbmi?DN0_Qu$CsYzj`& z>7RO0i^_fM(9RP#o79q3$OZxjU(9{oeR^SukEt}egZ0u^nU{*Me*Ud)&k6u3-%*mn z3Fq%AW)V@C9)Uj|ZX;b4e0Q#6!kIlKpyhN1c4ZsB@$o+wM4BzLLNA;@f34t6Td+wu z^xmH6G{-D-Qa``B*cr^CI^T2tk`&q_Fj?|;fb}|6K8@_xp}lKa7h`Z%;M#3b+s|JG ze~i`XS1`^|bIC53^50DWh`VLvVlVhK*h)dx!KG=1q$EoJKhSxYj?C{ac!}Ry&?#4h2Bjs zYdD}QO$1nw?)|$qf9v5jPy^RxP7KR>)r?Ih8$iqLZMG%4(|E_t+M5@?wU&J$>s?oI5Y2gzmwCjdoXjvIsrUSN2;IGBm62;uLL+{aO(vvq1B9n4v|JpAmusYQv3a z9U6Zd_h8Usf_bRs;L@+!DQJ?VOQyX_;I_nhtJ6Y2)k<01yY;``$#6ctOS_uA)Vrc@ znKhhyzpetz&sw(~8B-7EP3FsLf?AGdQ*KM@V#dNGmkqkgL^rQO>d+zO$m2g`RCc|B z)Qly82LJAg{66qab=$sH@3H4qWESsNH7;#J2#ZoH^Z4<`DC4CG*iBiaFpC>c(gqKJ zi2Wtf{-zWPi9(_rN=_O=$5FoC^_Lh{g28kr%TGsVCq6Sn-WBz=JP#y=ZKA{80Ld@Y zgF#eUGaseflMKn9o5XEOw|3zyVol`X`~-q|@g_VOhCSC810(NC++q}B(vKKR@;B`pnBdHn|V*VN95nfUG6} zyr(+Yp20pQX0o(T$8&y+y*%q|Wo{)2QtGM1SMnb~+b1eiE5o-w7lO|B30`vzA`+Ch zI_iQFmPw9D`IX+GdmEQcyk>Vwr6btU-1=(u)HK1N_QX~~>S(~r&~@1Jm6#_eeZBr@ z=JmVV(S85OzCCgk&86hZCspGvK1Yx zk8%Oe?Y2VgKu_=TuX3%+8V?z@zirDvs1ov-4<97E8XjUXp`928Uk!GFso01=jOfk% zDI(z6ZKl#rslyC7_5M1GA3$<7%Il@YbTo(aDKY!8bK;N_&++u=?wL}vgyg$~_x^K_mrurK zi}&ZNYwbE}I`D!7I$60t%&qP2Q#p149aU7goj<$8Hbov+^uBc$b z+>9;Gg5hm90DYLBmSi>Qf4MgZZ@asY7yd;I}ynbi|0U}#kL8{+S z(P*(LmsmBhRi0A~NDD$M@TsPTrQ~t`h~mE#;T+qh?$a8PA8YDsq# z3ekIBE2;e@w+ zo^+jG?2o81fUnN;qK-z#1`4Nd1#?snfb$zMfFX4@J3T(7JE^44f`q8twrHF1W@6tF zp?={i0Gc%#$=(wpUP8O5j7b65fBC{uV{BO_I z*T<`_$JksX)>Q3fdphe`jc@Iljx2kA&0p{IGE(w-nXx&>9jr?X*5?j_6Qqz`#rskJ z;Fr0HY#?yn3;dPw^(~*KT=W4A1^V4yD4SuK7~W_1DD?FeSb^Xb;EQ5DTfw$^&F622 zd0rqMhVE`5FTzbP+It?aQ`?_5I#^=k-!s?(vaF6jwBO@Ql3KG;$+cyQZ$lF;lCse? z;4*lB z*UsOS)WJ;ZU_jGahE7jF;wDr6g|gQCagflT^1-?$%?tWP=jAE0o*(C-<3YZOVtwYU z1rGnfQXJP88%!9zqwY{CDlbh)Yhn9}fH=K)%?)Z{Yc85ZCF6f705X8M1%RVo_pVGm zK&4`{E(1cJILCpcy2Ra0q=Zi22@Gr(Aw3SDs|?%tE2U^JNPnm>BzZojM_g|-mB$mB z;T~ty=!9Bp?bzEuQ^g92Zv2!O%WLv}vG~A%%wHMNmr#9XX{Uye` zi*2~@(gf4ldam)&FHM6S%Pgk#v%8+{WbPa9Bq(Ci@JuKZeS`TLJlZhpZmtNjwY0l? zUWVg=5(-O?J6`5VJN*`KK8>vE@im`U-_LNVyA2diY<(t@u3)K4@pj=-sdKCAWjwRg zLJR_V^@GS~^(5CyPc{yF-T%_}nIL#1@E_&pHiM#gNM)2R-g(W4d~$-)0l9o{9{SJy zSWch9hnTidPdzhUQTqbG$RYX6NC@(t;mAWE-^rpAf(BO967XlS;79u_0Mk$i;Ev8n z7zXMXgpekHRvfH)WE=)aX}22$g&B7hCKTKEiGbQmG6()izjZ~eP(#r1&5Wjf5vbV?msz_s-KL1S0 zmCat)$6PAFxZdmUjE$EOizm4``Nu%<9vcYf0a=C=9$Qp89zP2nVuQ`4VI)Xww$H%KJB7HJ|Gd^0(6l#i-(b^rNO z2(71U?)L2-3C68x`4?piG1d!yu>f}?j`>{*2VK8PQAt_g<()Xu4d#T$MQ^(>sH5{% zmpc`Mp#cM+6+;8Gf6a#~5gQ|ku0}Y1c0K@z%rF$V<+2zRj?j9%Pak(bMWXPvb_K7Ly_sLd6;sIN zNfhoEZu{hT%Dm8`i)d&pY2~!_x`R@<_Cg!v9!T}R#8^&ssUmKxvKYU)O>D4Gm#&u@ zay%pou=`E5av2G@P!R3NAWq^DglE6bg3US3i{tn)COyN0dd2v=T^aa1<*4OV&Zy~vm|j?&*h;@N8eC<<^=g~6o@O*CLveK7 z)-#PI3k|5k*wvCZ6fU$(%N#W7zI{-q9IJ4pzV}seUN+x(udPi5>{68?(d6d%x~42M z&^*OrUi0)$wvvnJu8T=iIvm$Gjw)Bmc+dmDNEIe>d?VT2s&ZI}1@^!%g8`b*9vE5x?e%5E>J= zj{7}Vu0sI;TQ$fSxaU5j8eoLXUjeb9>T9wJZ$lZ;A`~Fe<>zfFksQ~ngB)jPjJ2(G zIIrve7H`3vWH1TRhRl%R;UADZ|o$R?bZ6 zhJu+Awe}&NY)78wd`RNa>T59ca|`UF|f3cN)gk2L#V6BW4#u%&qGZ4Hamm z{9n(V@pqL^mUXU!1`rh%HJ>cY|Khf5tZxX6zaJVrw`xJZ`Q236MJ=gC-9vUI?QtgR zFEC6h>4y1~6cQ~3cpODn<-^I-|Ks@E8)Q)kc>HE?fd>ob(f*sd@c@L%CM4R?rreBI zUK#^W@wHc)S;EkY)>?(Tu<+2n9LhF1dM2BJGPd?b`iaE3%Gden$N{+1t}OBk=%jp? z-$T_LO?ZR84Utrq>;GJWfQ3FH`%E1AtVg#?Eka5(r`{MTc2XfJUMp8ynPqG$b|Wk? zVOgWHefTZB4rguAM%svtf&YoUq@GN^W7iMS$*au$fRgYJozP-xf0L>^+NA&(#*7IAjxqDLn6NU@w{f0*XaSw9^A$;R8OnCofw*u?3U)q8 zyYt}q)i(8Sv3$T0eYS<~;|1K1Kc8s2{fq!*WbhNn+->Zloo<25Yv@-rsLeZRpSLuW zXAcyLa9(Ih@w&LHyqu|JDPdI1I(Jo+AkE8eXp(1m#8uA;ZHOfgqRh|HX}y+eVUoe2 zjyL$IFaGyNPb%Zj8LBSD(}lQkI=fh2EVO3%cOJR#5q-1sv6G-k@ItFnxb^ip#VF%J z7U+0q$c#G$qYE4F>7!X!IM#F2P&E;x(+W%2IWgK7Zx9oviEFhQ%-WhlRufF$ORv4F zD3*K5{{~-S;ZriEdUok47wv9s0@2FI+4>lol@c@qN0!l;bmT!;-yq`A!~w^!wCvsw zTcCEUUCZ%s$b2Vvq`UFp+ueHJRUMK!x z4Oz+q3kr6jUh<&yepyC3aJDFBiyQi9u;8gE=t&C3VK@d42wBd!?2`6(Wp+(Mb7`b8 z&sJU>oCIC{uj=QvKrwoxjRHh2MV4b0s4U^>s0-y8mf4?`riJRi_pjjNt1xr`hmeZJ zW>=;RcuLEZ3t&!yCve~(XcsU`FQv>&8m}%ZHT)j4Z{klv8r{{;WLw}s-Ci>0v?+>{ z9;CrLt7~t)Zj?$S5h$F*|4Jei*#6WKK@idS3cta!NYQ^&?Heq&&LSOI@`k*kk?fa25e!=#V* z!H8>%yzi2CuMo!a$;%);{|4|3cjvyCsA8fNuCcn8{sd35}waU4Chob$IuM~KT z)j^-B0pB2jit9Sq*6T3z)|kJZpsP^$NpCl5)Dk5c2I>cmBq6Esr=$?H71k>(eA=sF zeBitfx>W3Fj}7U?|75Rn`gj{Fh01}G^+2+rs?rbKWDiNHn-sd{_o3C$l=+|~HUSry zy_S=pxn|3~Tbk(GiKGLsgEZ($dMvPw^LiOdb4K{`W{v5YTnE=Xe_dte)_3^l`ZE~k z-lazlZ`l~nH98K?clvC6=_Z)1wK;GJW;x3V%T5w0BYjT_Nmzc`B_sORuV-##wLh6n zdU0*8-hR0LG3q^COMQjh{O?A00NwR$@y=cKUQsO6mhzaOR)NyRql~QM`bNP#8(7*g z|J*YO&TqybF++39#DJY!#o@kU1)zL)tUO+81w`zK zC~DrM)QR2?RA31j952_i>@j`6a1=T7yzI@-7Va+wZ$s8Wh_Tob(AK%u!*8K~8$#cy zWKl!U;}4B9GQa`#8}Dn>m*U0lqJNz|J#pJmNIk)QWhG(v^_&^Gz7Y8So6Lys|Db9* z#pv=hVuZEg*O_nm66Kr^Du&OwY!NkoM@Z>aPTps>(xi9*E`Y#6ztVWAdc3y@K$hNt z5x8f~{&O2VY8I=+Ha|o_E}vK!-ADEWH~Jh5OCzxmJ;{QU4e?!4;}Gxjql<&r)-=yVjpOX<+&Lgs(Dyp&)oWejegNV-jI_r7cCtuqL} zFoD=-*{8#N>Dd^ErRhRN>u-*30!(=v|I0+IxG6r%;5+fH4ZTl6Te16lv;N!f^diYv z0FZ7isYKNfe>4CPAb|)QxDrszDEf{-++F@~1aPR}hRq-&*um2~%Yw@~D}V>{T_3tP z(7{un{5Jl#74KQf#qZ)X>)?CIU^{n7 zi+68qnI15=iINhe){XLz6ZF#1Xw^EF#mX1 zSi}^$jWrCx3qzPQQ51503Bg;hAGyqxl5s=)Szl{E+%nPl{-fUXe=JE8MpJY1Uhh^@ zY=~kY3f6v?ZPu2&*8P&G^*<3rA;pSfetIYj03cWT!$2vzg4UO(>G?1pO{||cBvf_+ zoh3~2E|TmTcFZn~Dt+MSb>GJ7l98sR zCn8Pbc{eQO_T8re#C`kj6=V!~>5>Ma%E{m5zxHP|kyQ$>gSBxdWQUZZK{{ppd_2W~ z5ocsjP5WJv;eXV3nz8H=!yuAMGxJZmOq^bJP@S0=Af4$bqkcS5rX^ElJ@w?jD+L9` zNJd9I9@S8`SvctvKZT{jC|-duGY;Qajlw_;IL{L#-&urN%GMyoZ?&$;Lq}*MG-2xP zQjpAa0Q*K5BOO?l+? zrpHI zYl!xW&CB+;%mAaTA5~|IAM;_GWzaJ6BtGs}w;@e6aeNhcT)I zPWR?R3X|H?bfK36&VNbr5uz-=Gj*}9CqZ9!-;x@0@J=X5>SwX)dhFURX2p4Cg*82q zU4DSQys$KG0gCR<>i`ziu@XpJwMHmhOU4nR(_;G@T-%AF3PM_64WZd z>}^310Ft_c5WBmqD@UgLydl)*we2c?3OZ!rnt4LvrXovVq^W&q1O|HH5L{n8I2v4t zR`v%n(DWGdV6lAqg42^VH^nTc(Hpt+`O5^U2T>DghNnC%P$)qY6o;ptJ4<)0UI#LM zZvp+)ZuOV%dQ5o?f4pqwVLu8xrx`<-Lq@ zKd6`Cnc+Tkt$&?@jau)@EwFE8ASjxx?X#J>yN>+^oc$xfI zW|RveBfVrE)CqlM59lGGfq`{?Wtjk*DpX9`n}!WG7AdTetPJ!5lyTtg&cn}k5>BYz zR8KJM3&%=hWBD8~bn+GrHV8uhu4{SvBNDXOo`A&ub=r{m@`_mwt6MqmG-OWU^ab43 z6u<%ogZ!rb4l^FWNC2L{l&jYLs{bMe3U=3Vqtb_4Z={Hzi>u#qyJbbH@cr8gZUi7S zR;u_{SmyQ+%zE#foPj4L(%7FL7FxuiYv6?k>EHy;9ee{%yj%lM zLPIY7PF%GvJ0Gt+JCK=S03f%%brZa`S`@tTUM6o(d6yHXKR9~ee=&pwj=AF&xX-6a zyA>+GkL^Aw{fjBfCPwe$nYC!7la)s7_M!@_IU{@#@`i{ zY!rs?=9(A18jGA`V@4cuNvf8?sTa~SV?VA8?g!2|(HR6SxB4wbxMPy6d0Bt>pUmza za4#z(TiXwODm$m{wVsYaR06>~Ju(_xq zi`$}}Fn98J1-&KyfPcA{$LN&L|07ih$H$-A zXk*)om6I=dA@m2>E!CaC`}ZAxkr9r!sxs2EC-{&uR2tQ&bf=}&NGH33+*9t2Zf47R zz$E9|s1MK(g6Pn>7$c<6D6;rQg(d!vuD1+p@_+w_uWh7sNH^OE@alX&Ucx2Dm8j1QHFJA&at$f(7azRPGD%I@m&Z^N6)zb0uv>(a7Ipz1gK@9zKz1O#IC-VCI%U zMht$6SBN4?Y{;7$WR5qih++EuFbN44Pkq0UYg=4p7YcF>y7Dx+DE~>^eWNsvT%;QSF+hhmk;CQD$9-$kc{Ikc&1UkliogTz+7OAnOQQ26%ZBL!9O}@mAAn4&{KN5%ebvYrVX77 zv?L182T4UEugj74Y*4BABmX8N)zAMVCeiiq`$Xd#wyRY`PV8TmC{(1(BHwV00~5hb z)tvhHFQ>fLE6aOl)Upe?1_2TGu?Owpa@6p`piG>=6cQmY8A$w-9dmmo=qK)N9tUQH zg7I2OlL7kW4d=SiLjnl`A1L-$z7~*7H83Ks^jnnNcNgbSIW5Od9N6Yh4J^RHL`X)S zuM#p0(}AMTqjmwaVn72e>fstidxabqznJd*^RTSz-W^)H{(eRm5i$OyY6Ykn^63p4 z3UVIqbsWNF(3EzxUMP^P>kU|wcG0wZ9^^3t=TkU7y_mN;WEr<19PgPB-QRtZ&pQ&j zvCMRkpI|+(MmhVrrH0w#r`z%GU&*5Z)}Tsqtl_ct_MmpzMT_g0;a>mAw$p#@lvR+X zO^_?#CovZgvsS2?W#W}}#US^h_%GOEj(Q-aQQEh&175hScRKiG2nL*Zi7z#ULD{z5 zjE)jRu1npFfE6PEl?FO!_43H1!0ml3Z|_$VxaSj3uzp< zR2zwu&HHpa*Ny(f{}h1l>fra*c(RKGO}Sax8z^+pQ`BKANv;R@Vfv?e{F}kw>03q+ zXU&$L_r@sVeuD$>0NbYefKzTI)A`NVcp;iW5KXJ8MF%h35M>2&UMq~RaQ$600>F(d z8~CatA{8%mwJ)&bc=fc9q+^dKmcX<>EHPMRP3D_Ne(p_Gqu9gV4N_1?BfM2YVJkQu zQs*vDWgzf&>2S0)iI9(ZX)!9(HVdA7j8wfrt1toz0sNp130=N(EHiIJr6%#x^PpcV zzE|gZeuKne%$S;rHt~qn)pQl;iJ;anHl~rQs-qfXIzSD+7h}+q0NONZvP;C#c=|W* zTU-w2=d6h%-u?D5P*Y&Ltj>S==co9ca*9^&k)+eh0_viI(R~K*{4wF{Dt#OdpYl=dsjOa@> z&Zz$yD-`Ib{I@3lUi{hT`|Kx5{XzYV3Uy`Ka8MNRKHx8MJFv5tRv*66CPSV)>2o}Kf@>= z5HBzyP#KX~lVGz%z(88W`twbQ!Jt|9dOsnahSMNh7BoEu-;7MX5OYK%_Z;w2I&ECA zH3brJ_-2Q>;2X~7<-nNicL{^rFMcD@&wV>v#0Xl9psptYj2GrwbDLj%x(sPpl6xLJ zIIKFK3bS^erX?e#DB8>Aavv41XR+o?N^#-YcjsSMbQdZO2t^Q-R{nbuzgAhu7G z4||GTP?-P6MD%P~-k1CtlKldu9d+#t{uNKYv?cBk^eWgUB-Ve%G>m-uO7qzG1vxA- z=xqzkI`gfkAGdc->*m#<(ORo=qgLR#YF(?B z7XhS%KELynCNfT8j{+c<+{$cF9-`nhbr9#@3;1_7NU{q8r(Nu}I$%K4k#57MkKO-% ze&YZ#Ii1v(>%cvm_7so3VU5*D7yIbg=ltfI+0$|d$0NM$BK++vAs|Z)eHxPixSv@``sMtc z7oGt!U_JbF2U4Z5pAQAh?>f^Qq><8o$PVSH3f37WsfFxuGrd96`#FZDf{5&mk51hXKW zp=HX7(K%y^Yw}6IHkASzwzQ{S@3>{s0xX|-m^%7s>P_j^#aB^B+XM(TPH|lMcxSNO z-Zl=mFZuPP)xDo6Ec6*~F8(P&L>@QZq>X#HLAkP0zkGGFf%Dyhi%vG6MNCR+;%z=2 z?@6%GhEYG8hYdY15mTRQ+hR8W50uc0e?*n0i7{CSmo)+X0^-zjflMb`D6`as$+-I?k{5VH+Ngj)m0q;)a zL_U8m6)t!;Qvrb!1v*)?&!idf01dg}CRL0q^$DYmV2o2Su?5Jk=-gcrh2{o1{avMC zc5P62Xen`aXz-^D#$Yi#>)d6T81nMsQm*k;X~$uWZ%O!ENj4e!j=FBPZpR$uA5#>+ z>x$(IXtC{B`KqX40xfwjLr2Llrnsqx%_f*K_D=0olV)7q4YlK{5|6Y+?pb?-CK4eP z_sHV_u6W&lfC1`UWB;$dEc6{Y=kMQ(bG?Xd( z9H5Lb9ntaQq%oLg!iQsp#+q)JUJazr%HDoKciHQwiuS%@ur!Wiji?!vcsu9K~N?;^kvYKUZ{CYGWCLxfU+07{(tefBH zu=iv1X89_p5$8>tB0}k~r>B>IR>0jz>3!}uY*^jEDgQ&f$)ICz?J4|_DUqtw3OUvq zj8l%)wU82ODQ*}tw~=&EX%{J00(_ ztL&bu_0s8lzT;M^P;@-`u}yws^Y$!4#0j&$(` z^jw6WGJkroUhG@|e+hG-QEBX5t#BExH|yI<%53)uOn8ZUmNoodvds6jg;0O?6QW-s}sTp}wYhy{sQ)!W^w33MN6F)y;w5w6^ z>D8c_XgYaV&fod79n0^LA=I?+r$W-`lodyD=dLt_XX}| z^j^yK2RhSSt%iBtydrqw{xUm4SEqR_MEoY~ z#LE2#)$5_`4l%NW^t{E7=BNMSXO(?2PUv@Ucz9M* zsdhh#?eyU-5c-am_luw`n$})`UeZXY)a;k65(RUXW`{Ue_I@4EOX644&|eBNgp>Q4I*~!kj-Ht%d{!nb_`byQ!AkXlHjj~ z8;(nuT(AT6Vf<`@U0Os<;Dy2|N#uRCo0+B{?gH&Wao22)C!cQ#7^* zC{nisB9OYvAQ7MEDC}guBbFO|$(yMAm3@Z@6OM-+=8>XZWXs%9f1% zxAYi60o0DA(-6RhQ3HO2)i+h2|Ll|Af8-NNDBkzCAenmV1n!(+X#eBVj9!6g0HARG zE{pt@oY#bFVN(q8%N2tUXGwxFNQ|Ex&U~l_B@6syoiKqWU{9AnPWBArd4H&1yt+(h zjE253rBh^jsgh}?{B^?%J}puKO9DV?*t7PJ_e%}9anP1ietp9jC_Bqg1boWs49?Dp zM>|^F`=ABr+fQWAP7BlpwFiw2T1FNPn1BESuy&rgkGMoNsaycCrT+02Va_Bxt+G`@ zdZu9756Om1&7}s4qXBmI%%Pc)m=RpYsm5CJZkDzVEZ z9E;B2WKqdBwt3NQU`|D$Fk1fVIt=QKQ8<}sAv~YduHgTbBx_6j=Q@z!?Uw!7W>(2b z1LC#$>ya|W#c5;!y$hlF37Z5)3=8Piqe2u#BL3&&{>Y6OHu&Ic8Fang1`~z6KuxvM z&5Ze|ibjX3Xg4imln6EHEl|R5t-x){`I^g+$)u`b{ys#WNJ$~|Cj#PR)}Y_vOmPhj zR5E9diZy^gH=$0Y1)iA`z#Su24{>KHK4X3qxlL>`^7FMLt+nc6eF15Tl&~?TZ!8Q+ z|AqOcAoq1YSh)^v)dO{qO^^pSCC&!@2mS)6>=yd%zR(1`nk{>Ew+Dl&#kao4!$BX96p z=m=S3)Hk7-rIw!ZomZrr#9y6SNd^v&fp_ZaVlhn0VtSoV(wed7vQ`JPz$SQ9# z)=PO>{Mx)=3eG+E29J_r{+{#g25@pulNHddk;#K>yYB~Xv^!6-j=#wh zpk_Tn^xh6c2ee?__xkb7?PtyGG3VQjrswjy;h`e&N^dv?haV7r=9(Dhvy2lm*AvV!{qTUI~~5P9*#;3Tp%z8hnS#O3SO>1KF9VzCgv>|g{SDKyDE zF7xWJyk55HOR*&U4nu^bhWTaHp|HytV=4u8KdGb9kWMrWTCl|ToHm*gM$vZwb2TK)2=%5pZK~Ys@g6VeN>hG))h&DN_F^W<~sAiW?FJ-qQ*J zU69X&+$XmjW$a-LEy^g&a{;gW?Y))44SwR*VrfDbFyAb}(&D5Hrcrvqp`xHz=I+7e z!b;KfxC#DltXbt4iyK2!NUBo55c7=Dy$h|IwlMlGi6GOM#-Nv(Df)G&E!t>oD(hFQ zSEk>W@eswFrJN662cqWcu8ExV@xPj>zaydME6}SnI%kiz*I8d`e>Mftg)A)aXd=;Ll{Cd`ZarYJlhO_1B+b;UlRs@_n@ zyYoDfy)Q!}3g3hS@|Kl8JyZ95ae7{c1>cs5Az*$GlGYs_Mk$#Bq(ttSe>bQ7F8mC-rh$cIzLtIK>Ad=IyXB6?#`@K8=%!2&FAK z9{t&LJG%b;F_D&r_x`x^q}!0214^C_ZZteC1MaJPZoHb9~LaJ~H9+L(no3w<8UYG+%fWw++9xWl%1S(`OMfT9QjcyZMe8QOL`VcNtg~ zPqARzh&BXg9yR%-WV*Q1xawV4zTCAmfmy3$0+;r@ffc^GYaI*t@tnZ$x=}%Q2gXj} zmhR_AzKMOjq<%Gx+vKYfsys&oLIuYjjaDXMX-7-TPYb@MXuP?(SzzmQo%mnPtkA&O z6#aIiZBn=vca}qz+{)%xl6o*9B-Y?n| zEFyG!nJM&Yl5Y@hLa%g|S999jupxSQ?s2Ff6!^Geo@D=X@jbS)pK@7wNdcSJCZd48K z;14Q`X#9qE>Zzk;ketHQXD1C!W=MlF9e-r$(7EZ0o{!yLo4xiASc^P60AW?K+_6%S zN_g-bzYFN2x5^BO@oYHzNSx4=P3HII#ArqzzH&V*6(lbB1pbO=3?2yOWQsz|1WoWR z&~Tf4pEI~UUMW4dA2IM$e`RJNyHC3<(1Fxrz8|LBP%S=C}O#OFP8Ks%kar@@2a?1 z(yrT>Rb%9Dua84(n-Xy(W;UUe0RQzcN{~l&-nDtjssCTYGGzt2Gg;T1Xi`i}kN&In zl^KKYlx619?<5)?|9!nfQ9=q318|s?Tg3$tvuLU+)A_^kPU$_?Y{}X;Jm4`nMp5{L zdZeaht457(!JCj9I^AM6Xj7Vh2CK_220X#pHOwsYiE}hFDG!Hg-gw+@nA;1cA-gf) zu7Kmth_o^2Sonh>5GKTM_H?{qu`QYfB(G~gm+eWG(|i)SbqrVZ1JzA13FSlb;I5D~YL>W`6pzEcS$?vGH zmDKy62!GW3xaQnM;8)>s@nHj9cb_^9(mKBBBL)biE{KpmFQx?z<6m%x=+i7>p9bEX znjI-?q}yoXlbO=e2`%wr4&(Q*hS2eIqAk(vZDYTg^{3bkp57(*i+qVqgW-M3gdas4 zS;UNTkIvB$_ee_kX#1RG%)OlJN#(Eb4AyyPL9VZwlLBcS%Po(e?kCc!IvLZ+?gIMHlSxaT4HfM7};hRFoDAaa`ao7^bw#7ph zfe(Zmqsp~k#pU@hHPxNseH z1vcL1@8qeH(lS(uXz2r$<}%wwP8UQn?$S0miWr7aMZ4>TgdR)PxBM??5LA@w)FjmC z&tQi0wW_7}42o;}B1%;t1DjxC3TdUZ<&D=774`9>&%+E#`*4Wzn`neJ_Px zNJyao%z*vS)Y0e2_-=>DYshV&_m#&{V4z>?WqBJ)NWwDf?7YBj(&}#`dAonKu%fx> zx1k-Nbcf6)LOQRbO~)&2K(Bh5TtfhRG36vZVtF;ylVV>ID?fR=tU4B{FCV+>*f=CE zgsizx>oN9`A2ZQy3#pa^FEk|o?1)=f15r4M;3eQveSjjs%YBUn#4D_`M9;g(ZDJP! zN#hn+mlaTl=;)DzCO?= zlG~o2quFJm&H5(r0B!2Vx z53yRp=LYzCwWXBq-=Y#9KnZ6-yFl_aIDdJtZP5R_ocy;CWy4~Ki}K+MoNV}Lj4dez*k3B>E5a%2qL|%EI zYT&K)TL4S_!J5N%8+0ZGnoSj^4+i8vJ8e!&IMYmDf3g75vLV2jT@w244+%R{ehxm` z)+3IM+SNmbFK-NJgwiA}b*R>@BT8hrf8#~)$=X2BbT(Qj?X6VmlF@b4<3BMaYViNe zO@1ekf}hVF^UQgTZOI|6NJM8dMFV;K^Jry*+<6V9UcCWmZYbnLXwatV_xE`2_dGSp zOr>Y*NtT-b0AZ0pEn{{fx)(2~_A`{y_a?=5IH+_|9AH=2(&Ek1>;|0PIZ1$j(}7NA zC|#&Dm@r}V=jr+4Q4W@y+=Z=l) ztkRbKA`TrXt&tE09&V7?+Gq8#+5D$@I_gTM)X7!(F&wjGW{Xzf%PQiX67hQt#gtE@ zuZ})qHlulwQZo!nJ8tk0qQ2Yh*nF+VpjH*b1 z45P1^%Se0o>vsxS&6(JORYYFPa`9sZQ4w$i2a;EK7P-y6b058nwKM^8#A*oi%Z{g- zK0WAT9$r9z5MiHgjGI!dFI9Q2tx6dm=Ej?>mH$(6)_SSAt27hkx^K4%6%MR@AenF(TA-!yi0O4~PAl7;&fuKK(Xb}(vs7*5lLlkuvNw$Ro zlBVIuG?Y#jOh z-W1Rf1o(c05cqmBhrca73J7f7IhPVBk&wxvLlh8=sTfqF1J_0};@P00d(t2=U9H5U zUI8NJ8Zn-UGHXDQ9AwdveE6PfG+?#UV}cT_a(bTOn4&xVrqQj4newXu#%{AvNp_l4 z;#q0jkcZs|n-Afwv^)1MSy7rA%a>k9Jt--++13Cp(JLwY`}@v z(Z)fm0gZiUTY2q0QnPJ54zJ)EhijE)iTJke$E$qAK~1a^OaiO!n+%PGG`R=ARA9U{Y=;)@20CvW9mH_LtMDq*2g;*|$dEU4=0^i* z@!iE}6{ZZsWm%>_3C*k#1vDyyXw%w0YQwonPnBhc@M$zpqt4|gFI)ex%QhX~c`kPG zEo4++dvp+Wlqwx?^=Lnl4&c<2=pqJ=qv>TcQ6*OL;K%>MB>Y;?S9;D@*Aw0g|FuCl z2v~mnE1d5K*IS`X9yAu7dASo_Ic<4b zTLhT5T&w$uLAc^dk9qgV_vHIMjcVdt9=9flASN0DFTQ{Ml8tN0k1rc@f`k4Bf@QR& z7&Ni$)?$=!vnvWOy7G>#O%KorU5)6PYjg9{BflDyy+dAPF@x&cmi)0_nd5D4k4M$Z;5 zBk$@D$TZg*#3!D@o!uOn8Pd#>uvt4rrbo`1X$8g-HzAP(Cu7RFDrq^m-+>ErT!ZS; z^+sB9{lI#>Eab+yihp@+S_qo!73!1=#?5hQ58dcQUx%n@#Nbtrxb+a{Zm5 z78r$$10P}r;($z4XqsqFlJVAmFb|49L!omMV$L=Hmj!@{=xoZGO#6#4;8X&F=9{887-RrJExK3(K$zDHpAXydpD5?1BmB`scwxEI!ooyT=Shl}U?SNhS>_G78 zg3Ce69vj0#BsaX7RPA>dD4lrs=d8y9#~_R~jO@^ABGnDo4+ z3Z=*HwVrm;6P46&8{(dWD+Y)V242R18Bd~C#cBZ80Y@MRx~Ls(%O#c7K(uHuQ|O#7T8Bb;|YFgyr{P6@?pCrq$pm zx9{UyM7!9CHy;>be)E!vlv?^@@)#G=Jd$jwUjoQj(nNm#S`_s%$UMI@hOSjH=$M;G;b4)@VSb=4h!&<`V z)RrSAh&za0{UX2d+0sf4HXY;Gph%D&;LU)O>DM)`wLPo={r zXoGfwqKIEVW^@Mu!iqB)kO6YfZq;V>8E6=71UG2jXowA0`J%$9`DK6C^S4U^P_4b9 zXc-QuiX?Wbw8DjzG!|b<)>jWkT=%3Gn%}s%n;E_mnJMYZ$7i19^RkFVtR$e*eq&4X zKT}qFtZ1uk2I*I*JF%*&&K#+F*W%RqjioWo zg6Ok(x}D5@hZAL1h}fZ@_RAaXX>9? z_0Zr~<|flAKL*sKcD#G+T7GaQZJPtkQ2+rL6N8xW3l9ajLP^}E!wk+ih|v*}4_*`G zQh}JoGp|}^br~Di&p@9>FktHaL1l>G4A4mlIP%dR9>gj|BC}6c+9vgn0xwykqHa`s zdT6)jFKIu6R)Ej!7G{g08kpE%tLw15>Z4ZkIokt()gk^*7*rF<7KsnOBO2gmymO@o zB!Pq;5VSD~Z!`0i!n+oXQ})g&ehKO!JQ~_eF+MJpitTr=HQea+QUacYDW(cFC*{Xq zN_?QzOsb(U_~c7-(e6(Ydq1+MQ;_ID02Fj1Wf!F<7jQ#oCp0yv)K3DhFI_6xFcCW3 zzb^l5<_dlqp5Y8iOU&rYGw&VgR3W~2?3nF?C9i)1OoL99$E1H$JXj`$ zI*-24=(V<$%=9aQyIVi%IwkztX)}6{6$%JawI)KgW34l3_BX>cxc$9aa;-p)4~kTI zqi1lS4@V+l>d!Pk`xm;VqxpczB;LwvK#G;auUq$Q^>Ng|w;9=`WG?u83f(_Xc9nU^ z+q1aUsl}2va|aYRJl`!w&VLfP(tjs%YFqod zRa_RgN+?4XcJ^^t6CEG)%Am(dtH2)!E)!ma*ZcvdV_HtsMW{&W)j$nJ<@b&ZBo*Q5 z1%;XqNdKJTf<~XIu^3YL3i37&`Kxn$Th+FAPRv|f(oao!tHnnAW^n?<(Rt_1L9~LB4NZBf8=t1vODwQiE-XNogXX$aKG-&lN`CdInv;pYjZzHH zwAIh9E*%8bH&M7#{Rf;@A>RE}(9q3um*W2g#R(?CSFZS%Sz>_HV>+GC>Vrcb94(Tk zidV|~Znl%=KBrhhao--!Q7&EkO9EkzHHB<@AxAB35$QIIAZ2*jbgXf18I^j#7rQks zRDcs%6HFEK6t4mAr;QCp$2#_|)dpr|ItXLqbYkcJNy2U9#m`Zw;i<7%pn^mDI0%9J zPCXF~YwNqLO#yTWgK!D86mE0whQuQ%8gF%%i%<+V?Oc_UR#C_v89%k(-gOVDzBJU6 zH+Uf=#j7BnUd9_7`upMAgBQ5R@t+sNhiRwd+Wm{KAd z#bE#Ih=@?yG}nlL0Tu9}4FsyR@*AtWwWB>d?Tbe)epZ+(Zd$^FkqDDsm?nP>pP%Ma zdpD*tPUWV0tmjLVODPhf@TBx0O(~y+C1&f10MlwZy1m!^IgFTLPk~4lKun@eNDVOQ zH*u)$V*YK>zp%a9tujcFT|Y>%l;U#pI_+NXp{GF2_DzxeQRLG|PqJk$w9~h5qRp|j z)1N^N=i~nw_E08^-mGuJpSZN?E&d9dBhJ45GaWTN!2xu=yf>(nj@%M{QLAtLWC4ot zd5<9tlvTg2fM(^R)QKtIMa~GLSQrLx) z{ltQQT*=$*5%I~~#hTo9WcSO|*e?rd1TOTs$k~!-OGu~&;Vy8eOpjuZN8cWV|T8*zk~@Dnz30$p86oj9%}#IQ>~7~yPI#^tptTUCz2{7GR> z2^12Jm})?lF5ZPh4N)TZg^B+ee(4=SNL+uHy{`=(s435EkCi*c|zIXNLYsQOIw(ZFkdS_Wuh zp<}2cB0t72cc)dwbG#vR8>LRyIl}dZ?$@1*A+VtaNdsC&NkP`iG?t@O_!vpe?;<^w z)pQC!`W1do_KcMn`2rvQxXzkV#^WjpLvyTY-;K?XE`9Z@1Q(3(s;W$1|Dd&GU-Q*( zR^(I6pX(@Z4EL+6cw@1Jp=yqQ_##j>wIrC@)73~q^XT~Ej9{9QR}iypY?pl;MKJz4EtCAG`?11E*lSe37}k zPP{40M}tv&VBCK7NAp9jvx~o^7J}c}s#R{o7L{w=$kV0+i+Ijg>sRq$zzURP8uRkx z29z-xIM-1A^8f4J|2wnZHDyeu{O#BoQPk{-8$fu{u}|*#y(JzQL+-h4geFT~>Sf#- zE-ahgVO!8H%h0$(?_vXk+rD%t6Bo>^{RI!80j+`3J0w643{ODomuUN?oI)y}m>y45VGV~^RI!nlZLM8YyS@v@uh)w9VO3IG-$~(vA#oj~o z^yhre7hIOK?O+HpqaOtpgsHq^PUU0`~g8!oJubvmrSbg>A`xbP~)!gxg zwvowOkjL7dWH+v__jGi)W?wq1ni^ zzr2^be}3#FEEOFw2Gl?wep`K7*qdz*XL0bBo5Xpqfk@tMW>41qhG8CJA%7yYPGm@X zW!h{Ekh7o zPUR7$yvY|XU*(dAs7JY#8pjTA%*Ekj6X8G6N6AwTd+uD{x;{(Rd;<4S@cqi+SoJE` zd^X8);7KO&7bRI2V#iH7=db&Xh`T>i#oH?MM_!Hag6orLNjctz3TzFoo)wG7vNG>I z*(AfW7Be^30F9RELxG@|5>6}1-%M?zH+%y%sZ?#`b;j*1(I;mL9P$*#KV*cU97>Yt zOEwCKmL(}MF&F8@>LP=ze|N@$YXte!KO+5WGwa_9rXIq@|L+SOLjd}=9h6P(eGZt3 z1BlUVMTR8>h*OErk?6d(_v^3?kp$#)%-(2SdmPC1=?jcJzJZ_sU(07wbK7)j_x|}O zs|2+vG&X~QXSRVy&nt)HF)2U~K;93gBuR?P%s(wF$H8isnH49MO|QkR23r;VXP&v| z`ok?qgs8t4BFtVKkquy^zFRWN9>tH<&AcGzKeUm4;UaM|%{QKau6$spEek5QQW*%# z<+8K*W#>-DC2%v@Z)ez^6=@laJ8IYu_^#!-zx?w1Y2kjw)xt&zHoPJ8jifYMl~XR> zZb$^HzH7%QQ`{~kRk2ZY$iYXbbPsOo;(15N<2TZMhed7uXIhTiaSlqzl`BPF8c=H< z=J61)@RhmJgbs0f&F!WjawEkTp!wEl3gg}dsE}i*F&4)^Undls`T>_zMc#G)Svezm z{5B#x@s@_!rjyNR*PZ}9N`NL)bkfuII!5VF75sZ9@;q&4%!7{Q6A65V%J0|zFnUx{ zLG9o6ZvT5}=6~(oAQ%HCPe_@y^<-h(lafWGw^2Vdb{rDs9grdfeL}F7cvSN4kBq7o z0i0wcTTrLiQ<%i;B{cjDwYNI?23({AmNn96UUj$iP^T1mrq`eKOwPV`gqRTeeqJ(P z+8|v5C!%W7_&In@iQX^zQTO@sy|!sf=N-MR_75cwsGMPE%i&uUw?Cu(XF&g>IYBb< zK$Ae4$dMH3t`otXGnyEjlfY>Ip}_BA0DI)NxvOGSEq$3G1t#ScmjF79ffqnDag zHyp>C-`ktFYp2oqo{=xBx4!>GrKy6rOswO&w9~6Kh_l}`ztJL)$EnEU*;JtOS0?f- zi4}oJEn~sMS|wA3gZEr8b}ODk{R{zrVWnn|m_AVZ(_oq{*mI0R77~*&|K>i02tjOp zxPJg_tTMS;(`P~TUlbAQa{lGI=%(&U7XJ3n1QTHF0-(z%;LWeiOMVCMIjpO%Np}m6 z4o~4ZyoR4el7VhZLKl}!JAID~u^l#EZ%dA$Ry=+Hz2Zx_YYjjlJ;t-6S#w1HYdN6g z&c^<H7=CLN;L_pF#5M z^8(nbQ;O>5Y*Sbsj4Kagr=9~PWRUQ~T7Pb6@5jh3FpufxagfMApI95)j!}~G(W{bW zqfdCkXy5C>*g3ye?f8*{EsqtAR_e!IQ(WY}hhJEkwwpIFLANyZ8t8+mp3XV>e3IES z7mvsn7{-XD+3Dz+7T}2g9A?4$P~p+R`<~nNu&|Be)91~{4hAxdqQULWYxR#m6)VSs zwvEfkR%Dt~h1l<;I2Bqh19r`9yOmG0gPUd|hE_Lc6L~zIBc8sTy;$7)irc!J;_TWB zOS+pWGFC*6K+<-apJX*?d_J!psno6dKMf+v1_?T>*ta<=Kz-tcAOo;Y;xb_#{8kr} z14*qeXkKnwccOd^UHHd?9?gJzchSda`f#ShS_vSc5z>RD{mhkt=$*A zOKq=Fudz}zO}*pbCY|7Q4D73jK?%arUALFYV_{i(63m)Q4{7xkGJSHtRkm1RNUzlk zMH-NALr8PqKz=5QMAjf-Pgy@vH$=#fCO9(|Oog^ExNphTvFM9P(ZW>i_+tSlOf3r} zcylb>qcryve9P(Fygjqgpx7_vQ)+|8;CRD+&VlpTH<|bwd&ctoLM<*&h3`XYBOo^@m;IE#xw{yRxH%uyHSLkXU28}VD!$8 zStlg!`?43pFIcp4_WAwSI<~S+%oc#DFG1eHm>3k#VV9MeZ7OxGs=(4CS#@GZ@Y z2H4-RU%H7hU-e(Qz#zCKVWZbe0v?_vAEVgZ83xDRH z%_u8!mREo846-4z;Z0z=3OpY3B-_g_k@FQ)vEBop%Kf6r^hasGC48yXdozFnR8+p_7pmtXx2eNGs8YYk-- zJo!6e?IPrIvhGGLqpmT_8Fw422y%*-<4y(Dq52r00Sqm$6J(^C2&oyU&$O=gwxwg# ziPi(oG56nOoH979EpL^31Y1cj1MjahV81#3oMKbWjR^M1Dj{Pvn|GNjI8rLTvk$(k zyVCDv$KZ6>=Mry^P*pt&w)xG5v6*811E*G-Dr0&rCSTUB-ida-{_&-^{tI>qff)BZ z640^dqji&KrJw%6XzE-DO{2d$!^uG5{n)tw-Gs|AZiJdRIX?U&36%FBv(6!=j+L{R zHkWWk2L99_`E#-aCiS0vOUn#xRjhY1r^C$OM`71?d`y%Px<9A_MdZeLHfL{9SehAq z9}zT@$Z%(VYx?;fRSshnND6Z6ZXnzpmOXTq_s6O|u1X-{JKXV)0LWke8}&-6RtT!u zp^#33igOHxM7lpANr2J483~c93nG6!N*Eq`o$wL80=t1_x)Bl9v?FJS{s=qeg?BHO z`S>)~UFg||mtVBHvlQ=n(uab|%KWjP9$_||Qt4O+QagVX$B~+~9Q1-9jqfDL1s=njMn=-u&E#um zebpP8QQ1NTw;F5r(p>xItPxr+{Kv$rOv|npockmf%z-!p){r(-l8t%9Ly)*f)s}B4 zGhFES|NrQ1N#8gPTtTgM4!m0FUin;bAmAhFJ-X42R8TOj*JO*?v`ea~r1FUP?8Bgd zjEWK>E^Y&&+VCC;J7xG%lD- z^WK~Ep&|=UX`1sPKWV>qAd~_+GJ;#pRC!jg)66l%nU9otF!a&V*)!Fm*cC(#_zV z)s=Fu) zJc?YDwwf>iNi!^o|fjBr+dGP#1FYg5h z;4}O{;5K13sTnF)jd86sP9<*0wHoc%%we2|uH8uNFtp>jJ@6gcLEW zdTj`aUxX3JrPqeCX6n?pzp}5_M1FV!qneW3YjIzEdWCeBeNjEOZ}8#Wo|% z6Tu^6@%^H<=+(h_YSER_a{Y;?Y%(1fp^Wvg)wWFZ|J07O6W)1$yX3+7?wJchC9Gi* zJ5Gj~UL#DGRq6G|7fg7(^v3iI`b_da<0E*&qCHFvl>GSWN5)FK^9&LN%_B3#_!H|p zVkXvRTDjG|Wi<2Dqjb5-Yj=DLH-HQ#ZU){FjZC{!u4q1Elry4p2$V_7i$_RL%_yNx zy%Ng|uf5OIUlIZPF_-I)RB=Cjf!EFvudbbR`%&cHq95sO68$VM!I$prBh0!5u`)9ccoJhkVcl0?ylW?{rLa>9^BXK(LUR2 zW_RYynVB`qqtM{zX7A4Bb@sGBAGtrQ>$mY8Un{5#%=nB4&_p=l6pYM6q_lTGVWb8;kC54vsB@XDJ5W`V*#)&?Bl^4~<&9AdR~$xo+)0 zxHQ&2Zfo5=WWI6u!nVrmTCVI9&6b$;tta#PtC@f=!YO#?RQ2MbgUVVx>ps{FOX*BqP*HO>O%y>TCZSsZuXK$sS5^`G)x9b$X zW!+Qz*t6+iRW%ccS9d^y9%xARtdEdwUZNSNQONdOb65?BaWRP=Ys{E?7!011%Qpu^ z3aO)8s9~AIXMh^D>kjjqXI2E;H}|2_RaDLo`v)EjV;~->K~+qV@v-_m`u|Pdp(W41 z{e{9bOKs2F|7u&*@LEB~Rkqq*rd#~>552gLp!f=iyrqc5qfvFevL~UvKE>L{evF;> z2?m$Mpp4$cIeagv2$2@uC3J9Vcg$EEqq(!+Lmd!bP(mi>Q1;O|y9d0)qU2Cx;PE3( z3mm^1nCQ&gdCVTXs8D^`=hF8v6j-Zeq1yC`W*Xh!fzL`nS6_{k3We>dv^hkv3Yr_5FC-r@`3iG!K3i)L- z?B>5uh_(z;aX)VvfAr`BYp{;?==pY8F+8N16vxTcaFYW6FrF8fzbTgYqLNiWIi5bT zlk~U^8sLI&N?iOg^X}Q~fE8tCybBsQ34^~x-#vgcq{cSRMXW?DS@2mn%%LnHXk?E8t|V?} z$PcZFI8o(_4=@zQPPZB0!!NdT-n+4zFF9C@Rx&@or>HuRzE~nfhB$;51baZ;^XnGYTUZ> zUMUy=SMg9>C?wr+8p9KNoVEP3RZ&c7(=QtTU44`8Z~Y~#D@4?JxwSxYiWpIrM~7g{ z_uzgxyE|vimasg+UbX}pB02saEvNJTMOA-nHI|9+nQV z&BHnuqth7gqx}?3_KS(0ye3IOnx8;|lWr~q`^yS=vQ_}-k>T7sR*5ZWM>BJz6G!0N zoD9ZtkFYQDAO4h_Y}iW{Q0peJqT=fap*xtL?U}j>0r7&0~UiQ}2AX4#9% z|B61dd5mjQV~cJl(;Xjbw08F+pGt#&IY1RnzhPAO+Yzu&x`a#T^ zoyXEcCCSl0*b;{0M`|Ac!K#>x4IBAhX@JAJ>p`46A9Bg}K*r)(VF8 zfYv7WxxfW{yx)LI2Q4?|8j}+x#+TwqDay;3IDD}uX04q$j+EF6NjpYgs){gTJ0xPo zzkpkw%5lvp>b?TjBDcTXwfAJFi3;*%5)t~=<$xv{w@z#yC``<+Od*9})2^~6pQyZD zNX+8wtx_vvD-(Q})LZ7*=n@Y~W-PCe{yrvNuecL?`3J~ZZ)Vi(CSA_%ZaEoVntV99&_D0hE?9z-BDFcA%X3e8&z(U0(JKh5_`AW@S{@) zw;>Jf4*#|dcCLhT8kdBd?R&l*$(#AuKchAXD8ffTpG@+h50wz0)#s5&ReIYkwWT}l z)4b>Dxwk0$1KC#Afls`eMUlDc!Xi8xZ8bg5Mn4INpisWM!?TNW_C@wBmc|d*p9sDs z{1BMqBR`4c?1K^;9D}pd} zzdQn-;tqZ@wIw3b(BQ6mpBFos*jgfgk6j);@ap|E_rncRmNAq_?j~Yh$coo+LdqW6 z^{WBvx)HPE9P49_(-LYru*p2ZEL@@d9&6mi)2`{>_0pGzh?T_>DSV>~{F0m!v zNv$@oym{80qbV`;vm8kOZk%h zn$y;&0ep>sRjq+$R|)WyrqoM7&v9`_We@1}+WQuME<+)+)FSgHeJ)1Jgd$$ziY@mz z1!N><_+wO}6)i2di`w7;y+QYaV)j?eP9QAc__>kM(Uz$5_MDL)tu`YYmLUNX42(J3 zV=(`VFu9uxHwa`x^Mx<}?|@s(TU9y8N)GJzK}T@Qyo;mU#hF;Niwl8KghKx7+UP7Y zzhCCC$v1X)rP^mMv@T+iLSI8tQbRFD!z5G47%;B8nnVo)^{-4qh$V4Yz%V+T`gLFB z+z>q#cDl3xbCQ#cTfq(wY`_!{G&y7k{M=tEJJGi_q~ClO$xldP1{`WdXvh(n{8` z2Nsgfqud@OA1~HbZ}$;2rFcD=A|iR zqpj1ba3#;Zh|ZUZIFiXH-@dPLSCA~c@==veM^rV0f34RoOIS7E-fj`GM4(}^^`lut z;AiQrXC?m(i8c+hziVwooC@@h$jHWv@T@P%6Z@(R=NHd;P*5ZcmgR-IDe_%B-F-Z| z&_bjw6R2(5=KuACLlV+ZNcKIdEf&v9tiZT;uEb}1(^2_jLVpzpMZ!nTh60L3CXxB=&g&dZYBpOai2T-r=A zQd@1CJfVX%JCFu7e{swL_x3*p=;5~C_{^eRZ_5^2u;_Z`LOJ0!4e=kpy}6}@#)_*v zFK@y3$})eQihA~Ba1}WcEyo=4ko5AnLMt?#z^{M=i%g2)&J2MnctmN%7I%YcZleND zfr`1+?}=%|i*CDD2QZ=p`j+U;C;P&0Gq7tU%PslRxq~c0p79J$<<6^2qDi!Q#WEVX zFBNL6tG1nf14!WV6lm(Ed&N%zq&pFdaTEx=@OfwzSQwC9FGAz}s))P-nd8gxxl6(= zp;eCt`0coks;`ugK6NW?&MeIq;SiKQI>T$d-62(nqbiT*)oWe4a&jhjjbHy1nU=AY z8%y$^eiPt0N|!o7UH!ERgy0&J=MWOTKUM}^K7MxcB&NCY4F#zwk)r<&L;LZ~N^=p@ zj`G&E8(bK?c@*%Sw3-n4rXy{>F6h6Ii4K}YWudQtORtSewcmgLN$(wVLv%OZ-^mGV zSdl$uQWe)xp?o#VCuG#qzxI$elqmV~AtI0ZFf_IxY0+^VL<`*rIAcQG(+nd)-yb`F zv5zcoW895xF$W1WU|JCx*?-d4_|ltzVZMW57=~##wzAwlHs(~g#Pg-Hg$$bh2&Qny zRd$OJTZMJG#Mmq6Zg7nr4W7<&KuH8-XW~mnBcJoHi<3Ew%41{pf(5&xfQt}FxF%Ym zZ))Zw$1zmi4Wz@^h>~r-adUcRN}C`{Iw-S-JE%~e@ZOZzDbHQ%jX?goiuhAA0W4@KR9{Ki&8;QQfqmo#u{sQ~6PuZ@>u<_E(U9_Mo~q_G-gj|CvKh}oJV%)jik#B> zZrMf&JiXgT#iKlK7YN@6@G5cpjceLaV&=?EW7cdX5l&A#e2b}=l}y%bwZTtR*{Xyu ziTg`DW6=Ws(+~%>FJ+=X6ek}4OM?*(3J|@szHjdn)W9Raq0op*a-m}``XR81F73?W z%$CCqBk8+INx1cN$gK zwcNK|WfB%!s+D4)28kUr{hB5?Fi-*DZ-UiZpA$TOco7=%VHyXisMKs2A~l@oLV(s= zTXj`krHL7RdPWV%P!9BnV?)xyEL zfW92=4=dfWHf|elCNSJI_<#WnHNTNUXe+qmbN<3=Qf|=n9%gaPoP+T}<)72CXu>k|^K9fZzeQanP5g{0NqWru4{RUz%{k#?QC47Gw_vRB$m&G3$(8CiJ zgwzCg`>2i%gMvhMoDq@z6Z$nL!RQUBgCOP%05JLC)@A1mL^4+orxD7C8{y>)B(FZT zmvHxE&8Bn1x?bx4mE*#o`Wa$?r${zzQYOj=oqUsxIq79?tY% zt+1S&V-2hp#YLbOu$yX+lx^0@-`&2toSqJR+U0z6Ww+pgVB$x;#El#!S-EGGMabv+ zERX4$6`mHfNyr-Z$kRMnMDtT}0mnmIvx!Ep|BI9re(lg1&Zl}j5R7F~OzOEw09 z{;!tjH?`NOdNWjx)7e=wbcXn*QlAM2C^c80AJCc8xZfR$V@13>qUg3^$dPYMg~+(7 zZX~a`u7Ty~BPE1^>Kv4^3iQ)9sAyjLaxW+3rjt3R{Wp$u!Cz=$X%(zd1}{GaUp5~C zhw89v%v(3-_;(jalDKe^CRNfZIA!y>ulHpRA2Xj3_jQ=zl3R{D&71AYy3fH}=_rEcE$~9Z(l)dwy^3&3Ta3i*^bAYuH;i;K zRzJx6uC|~#ssi{PR!4-Be`HK}D~EY%e6=B{k}VVqLZ5C7-(&1sOO=~=EsxqfReU@U3t|-!|f`RdyzV9U0EcKJpJnFke#Rrh6^XyqGiVMNP z6tXAF>!hRGslcTfbC%Loyk+}-$mK-Nsai)A$;wT#){^{Be}eKkCZ|HA5zp!J2mVBE zIFlZ~+%?~&l|t$W)<^%ZZ4ism`z~r58>h~qV>9{a+HTxb_;}ZW4!i6Q=kw~4{L+LJ zxeb%#RcgnN!}$%+wbT|<0#P;rPwlX271`^ zs6Wl`d%Pzp0A2b{cqnjZ1t^ek1o#wDi`bIVWGCd^c@Dy`?g^&`T>SM%n9wc z*e_h%b-lD&h`EwKb1GNZ8Gw$C*Bcaf*>c|zl(&`81tQxIEFFmj!Gcn@W;M$ErGr~e z{8eEhdDU+~#g}XI%7Nb#_CW4z>5v7~@{s+amp~aZsM4+V(aii2{@qC!$Ku2thsp9Z z%R6qSfnfQIJGX!yOBbx;DUT}wg(XV{fY3w`kKHB|hdq_riozUo2EQHi21)MamuNY)EIio>qlL;Khnl@w&; z1@UZv>l3u3BWP?4fnK1v%3oE-7n?L7lhr6cJqd~vwG6UbiCVaw02GEPp?oyHDy6HP zVXM&;K`6b874vM#gr^c%+1i}cZZsmJyjO(mB$_GMOqVPo;oNYfR0Q3Juk<$IO&!{T zmRs*OP8t$n2h@hK30{BPoaVRx)!b-{^ZjRWF-y(4uc2Q<1zv!!gc+e8?!SV0z2Qtx zSB#k1SM88^O2QVEOvfNIMA)#!w~)`%0v4lm^`=%Pp1pWwfHslQVjr8 z*Hak?1NYzV)*)xxlL^iS%pywhblQJ~9CEE=E6-WyrY=fOYP&9BU$x3*CLC9F1k42j zyRQl0K6wmIJkX1)+RxlNqvAl-;p?8IvbLz3u|mumpXZm4trPHmXi~?u{%rW6l<3>@{*S9F&Xa@eehu4`^7;FbIaMwW z*wcHR^3%6jPImN(!)zyLfZ)D@eD4L@vZoxQA0@Ws#z;1W6^JPvGcN1MjkLE(60eze z8nPb(ehrN~0-CY2X?eBuk{ckzsA2;B8m`C;%|eXSXhxo#kj)pS9`+K9$6RdNC_9s1 z>j-%h$K|EbP0Z1VTFI*%`>Ak}USq$EJz2N@&V$kPQ@by?0XDoXktJQ^MW`&w>p-8M z{r~3_#lKGBkaW~s`_Cz=;5&jKf8C8b*K^4?bIq0u1f(l=$nPK>T?Iz~Ls0Q>AY}QI z-2iN#Ycu~V_PuYybQ|}XIc|{6$AF~6d+85_HpF+UbtrSQTC9!^GQq%awX@4eSZmJ| z5Gt$NIZv<+@Iv)LODW6yBOS=AJmS*{#%;7X^?r!-xc%*5#{oGFuz7CfR&|pOxedN> zhE&ZP$XgN|$|v6g(%k@LGKV?=8^&Q{-DnQ^jg6bUf+ZDV;5m7E9gxLGItj(TC%*CI zXzZbhC#(|ZsF-3`Zm?p?@R(2EYoq#wh5A7(P<$4|*18_v?l6S;LJ*m4Q6Rh z)h*LMo**kw0JaWHOi2w8>BRO}YVU;o`Sj_ShuOYov4^Q^B z-HI0HONe3La$&ahcBP_G9aCzq{0_|{{>;pMtvmmza6atYlo6EXU z88m~h!xK|HUQGIOBrh$dH0qrOQFjp)FsjOajNT8o);qlwO`z60%p5zZ?uu?}&^>(S zwy)JfK!f>p4g)?-{V^=54O6lpsq0p&;j%4<5Rg&rA%*4wo|fayqX}>kB@)byr@M{` z5JvjuJy}%dnt&TPYdc|H9!KbTLaV%`Pb8id@-bE+_x%14Cqi3Mz42x71A*7u-Cg{sfN;s%1Lb+@-?*1B>0h%rb2p<>fV26sM3`dO z!*}DN!i@|5lvhN5+&(S6ME070^&rn3T5`C%IjapKKpFh{A2Z_k`Y)+9;_vkQKV}3( z+fQ|PU6@IA-B!b>&nDTV$tM;(uA2t13`Oo7OPfysR>BHhFv2w_Df22}p?Ds=GU{7A zYH-ssGGQLJi#~!EABGADGO6E6ex;G)SxD*rd0-FnRcR8?jup__O`mTxxHbN1Uys@f zB@WTcCcnCKl#^TK5FA_%&cKLix+Ev{#|30kbuB8NVBlpW|7>K{#g7u6pDx=CRysfH z*n=$l2t}}nmW^#*JrA(#;$#h$xp&DFH|jOEk~Ue88YD|%FHF4qS}e$LL*O)AfPvfJ zn}TNxdttb?x074SGSR9BQqVx1D2VO;?K)uy^7X2Y$ub7l1{5LfNpJa#n@dM~=%+*Acgp)n5x%3*wF-<)d0j?? zd}<%Q=+BIN65KSky%Pzejik8SW4F}(5BuO2SIz$e2#^0pMpa2J&4Ry?@oVU$!reF{ zPG*neb<;%cYaHb!9yZ)?EoxgXzyZt#)}qJ6&(#2crvNji5vOQ;KHuYl%%C(rEz4=* zpaC>z>=Kn^`0h@uKR*R&lbZYs39gu{!Lrg$CjshM6fj>88bwYM_2V}^&rW?|U<=ZV z;E$*0^nTZVc}0ysQHMA z13b@56Xf1;rgg1`DxbZt;V2`(V8dp3dPrMg%D&oZ{b|!g4nHj>nL@bTlC&@N*}-Vs zpF56&kG0uMZ8R`0Yj2CPTNx44xd>P*1Ti{2Qr{_0zPW+u)gbnqOiLG`!MPpgfozfQ zoXI%G3u11fzon3sR-64}qov0{m+0clNKb;>Ko=_%9EiL6{wK4UN2kKdD-sXi@;mE%+H(GN%s0>$V?=J6AZT` zv6lubSSsq|*wYh27y8{4Q`=d2C)V9&V2UAKw(eQU)?!0_%P^E$2dv zB3HSGB&q%rGC4z}U;$<#BtcZXsmRvCyr19|aGOe;H2-_)m&Jj3^M`~MDuHYt)R{c$ zTOjh3S?jbhMk=r!Yi*da*kOUgiYr8&9J|RvgTec*{e{$HQmp(Ma(IAyd?cLaaijxq6Js6>X)X$I$OrxNAFtx;+V*4MC9&sCnA{Ek?ho*zV^6~*b zwOP2)9*U=PwFx?Z60$<`;7aeE#1(*otKbq6`IMKuUDOJ#l8+v=k?~LNKP|gc73uJF z|9!W<_(BDskzgai4mC^`al=svy2FuJ4B|LLklNUD#u~#d+7KGqAA!vcb+7_5B+B%! z9~@}?Fp1W3GE}X88OenIO-e#_Gk&6I)>oA17K0XH_gi2iAnAfYhI1Jddft977Xy&( zhb|FW+2rj#&H%&`0$X#s)Yw2{Qhj~m7HQw4faP=?{>42|}$xF0Py2_rN{sGv&V zYX<7I)q7)ffN;eIsmUN{>$Zy-=r?3M6qqy}Ebej0<_Nhgd?j-CW@8dU2&B~V0n?DAPx5<(s! z!%OzP{glB(?Y8EZ0~@p#h*I$4~( z0c$HVVzN`rL7xp4_u7l}XxyZkN54bJl7yn(8!oPsGxIwwz5vkFieaCK zKgfL?)x09&Kj{7tO2{DUt`SZxt%&7q^kdq)vGC*o%Z4orrV(OK{jw(L%2&gm;D1mn zC*kj}`sCA)_=mswV^jx>&Gw7n5s*PXamNmTDA1P?oBW?p$u%1a!ZBUe1A`S~f1KM{ zdw0b^FffJ;0t#qqc&Pz49#ddg)tie+h&2AA&;D~7xL9Bv2xTTaqY}@?>ybr4fD?|s zlXLsZ&D0h1i>uzv^@U|nVK7O0ao+#50M>7={{*cyuHzv>lJucNz=!br*i>gR{XyGR zDU$nm#k_UV9~?M62EWuN)+P7W;(6TH51xt(6C9w7q+BbXUq~@fb#$i2_9H)vK7Jr7 zcfeS5e5YWLxb(a`k?QgCD&t@r?&W+$sXz_~fQWdS^BY`^ap;ddeShP(4`0rZ4k?1+ zwEa&PMvwj;zaTNN`RkQ=#BN1J#62R!XlQ~nICuZUc>q$9z$$Aaox-08s(o$l8kuBG zh|{ve8=VNcGaLDtyhbj>f$B>K*mJgXrwlMRKPH>rrwy9IOh+_@vrt zeYKD5&VfBLGK%w}z}Vb8r(nQlOG?m{sZtI#aLGWv;dZwy+d%n07crInb&*Zhr-z3B z*zyn9giU8}_fwzsKvOS>UFVhJtdu^5{$4Z-w8|BKnpE>sc*0m~_PO?bbCL&dD?2L5 z7cDRnXYcDQjH%0W41+Hly^<`ZUqW{KRIIP7*V^%I>M8bvb+@8rP8%ay^uK;dciJ1) zkpMgWl7_^+Ex;h(u+qo`0+K!Pp8};KIZ_agKaHv8K^{@|oxBkT%9Qk%y7O(ziW967o zWHTW#y+PExJP(SVxZf=t8U0QT>G$oDe0%BDAM#uK?2n0cNlq94&<*2J=GWc*i3*;DJ5>@w`Wqt%tW~ZHC{YF zJ|4@x7~mbsPsySd{IHMev;oc3gxUZ(CgapdeWtp?k#J&?!ybJ5W6smGfxStK8TU=V zLb1GcmM2=l6yJ?tjMJ#$DWT)^TE!~^+Qk7G1Bb4YU}Mr#l7p7E?JiF7n-GOIxX5}z z21YTJ*b8byuj!W3^;QG_gtyU+*qIBQsXlB(>@A`e&%HxFPGeL_)iX&m#*fE`F=utR z0tX2iv0ybSZzqi1Eq_uu+52 z!O0nZ8(6eiCPRYUQ>UI+jV3&dJAN4m?{vFtf8_C5t2hJN}OyLb=Qvd4lb*85kMxMRCEs5dmBa*Em80918*^a z%#M!OPYbejhq}$-@IP=6FA%vtDlIxL$0z5cE5`yoFxPdJqVoPU@uZPUck0n-1&I)L zid?MhpgU>8fDSmJ(QS?Q$;$;G<#`chQ#OgMkY#YlCXdR8t87F(rYCRmn5nr@krLT= zwV(G(qAflQjaS$BvGDWV)L7+>mp?VvQ~o3%9Gv{LSVW^}#uUf7jx-70Za=ptO6w2W z#G{Nm-;K#*z{USK9abUzN1e*M)U1y=7tqeZLlD*uhy(ofP!(*rOI#w6vyV{KkC%jx|qaA~;qb(Uw}0VNg654i&qav@MCtWInJ^I`9Z7J$J=7OvEG8B2I(L_9UmTVwr%A#39pUAnJP4$_;_)P43xV|Jb`j2j=BAGox0 z5_h20Ik(_einePErIjME`gh?m3zQ!#*65zEH@Vtr+l_qjsxO_kAmo}J&7>&{P0bP} zQ*C)g*Fv&X7MekWMv6C+O58aUkUz7hGyMqPDdMxm-}Dp}Rf4KH`yvpei0 z4-Y!QJSQf9G9bW7tY2Ln=7bHW4$jG~!f;V&mkDd4pjge_l zwYx86#kT(!0}_n?>k*D>C0G2%4&;sl0;^Y^KMVjISht}v$a!-K1{ z6j@RY_e2F2oAislx2D0xmhiYx=7`5qf(vI|6{Hxx6ke?H^uFn7HSa=6(Trqu9Z$Mz zUKJp!!;#Cg;FgfaPW(FH&tT%Xt?{C|j=HU#vpTkFvXr|L1R@(kacla{1Zd=({tngk1BCNzK$=k+Ta92b4pu(#t! zX3aY5`Fv?P$i~i0J~N)eJ7a>a9G$+Qt=mT@wfN&7|5o1r;ZyFvV9WB!Ud6;e%iTCy z-Q(@XTP#OjxSr#MM+Uy&`fc1XsoAlq=j>kl0`^fXKh!gCMz{p?!p`7UYAZ*0B_#%X zmTLbtaCO90BjWH|w2SK#1G7BsQwFb`e#`CR1V(W2$8^&4Zz-Wv!$TCQ+dQEi3#C0L z*5>o9m)*jE2F_j`on#s5D0I$B$Qw&Yp9DAq9k)D;@Q<^KrgDqGnkim>6ChMGKvZ zo`&ePm%d)UKIJ>56$rrtkB&zkP2GKba(qv7yW>Dy+yY2H zXC_r5)S^w#dGyP=X`mfNkI@f;ZunvN(btKkQ6U5HXEdST1v0$ounLJ%uzxH{|x^{iw&H`D6Xt{R*p7vm7Rb( z&y0`pA`61P-?y+U$F5ON=Uuez4gN`lT44C55%`&{F{sc>5hmNt6_$Tc3)N1YqXzsi zcn1OZ(|vPa@eDN>XaWA5F5}iMsDjST#j!~kV6I)Cij#b=b8I5GSU*1gs@Sa7qPzde zLU>D__phW6vghKVy`rT2btF@Te9A|gk&0YpD}uk_oL(Qj65Xyxn#Qb^2KQM1f1vEu8U3ObVA2WmmnE(?(&fHN?*@ba_< zq+k##31-G>VH8jc%0htH2ZoM!UIo8?C!-w_uCF2uneIkv%H}3yJf+G;Wkj0z|HTj+ zrJ=~GqYY`ewu>1WTa=6#B{%+^Jc#+J&=J%($X%el+0(DT&|@x zqDriAAErA4Jm;PhT8&6g3ue_+r7t*NU++yi&P@~JMynp>L3?FzlZN^BL zJWvo=)cB$6JtuKA56tk*$w+b6ppP#WELrkqoIa?+fEA zz&}-d2cy4rYdUZD<2kG8^LkM3q&OI{WjnjG_5dhIO@jXqSeS@>`A z#sLm_2uu7HLe}Ms4b`^({5kP2XtgZGPP2sXq@P~=#6wYGr`v9#yP>vQ<1r9@oZtW^ zKX3CgWcjV$ek!B~Gnb<1s5ZL2QEa;-ux7D+W`4WZ#Mn*){?V;oBQd$wzp!|{7U}!7|tV3(CGtyyMKKgw!U|G`ue1NDKK2_t-6AqIy{ca4so6E5;M!gefj99d%8pcMY4pN zx!YPoEo2oxvt67Xy=V<2!T;Uy1*)RSHdRY?$88KEjOVO` zPanC`-Fd_vmkX7DtkCBS0>7p_YY2B@^B1DFlYHK`XNZI{`FXSWR~y1UBlXu+VKQPc zYQJ$@1&zn*IUXr;KV)y1!y(9Xr4jxuNZ)PRU0_INY{FG>H&5-;X+AAbXmMO@Mfy_)}Oj%TU^Kj_BH>Y#K|!YDwO4$S4f^XmOHT zEaz-~iP0Mt*izUH_^!O53WCfwVkq(q4e*&Q?88t)Os(=k7x{tbySahaD?B?)a;J_Ir&;<@<9la6!zEMUJZi&g!q(-~y#_}I z$zJ#IHyQXiO^Dx@^Ap?P`{vd@zN7yvNN1N>k+j+J0<`AwJAIfs$ls13oc+Gc~NadLo{+aM;qNDm|#Sa_`U-bhXjXHd4>aA;H z4oku|+sFGx!LpAgqK~%f9!Y=liclpFMSa=-wbSLQ%1FU6M<)2_(Fq63r--$#G1qjG zK@yTi54A;q-P^B~R@Lfp{2KcbWD8@LUw_olcf_=@QYn0N#Jzi2&83Jp=(yp*W#fME zUALsv;+1e6QFGQr+=AJg?qx_O7$G24%t|N*dzBk#tE@17w3|w}j!)DU!8q6cuif+J zKRQ&acD8r?Z(-_q6w^Tq9EWlOBK6XO^H;zBi`5IVphSs*3A&eTN+ z(;XM_Gy=nllvx%wa|#Nrt&qx|B8c4*y*RCGuk{d2S5PU}Cut=O+SZ`!L zm2pM0-4qgvr1X)^B1!Dj4HU$ot~Y;>!zl9#kL3on9!C$p2||jVxnAYf>eVOBplCQV8YHWs(hxj;paXA=fH~ zW-8a3U7KRosvyl1#yZ#X;xA6zZR%RjRKANQ?GCB?u#8g&FzP>9B03WUL+zO;7}RRr zjq~_q%#$1mLUm*}95#6+Dhb*5I=Ga;+Y+#m`Wvc;#u~;+B}G@Mw$6*<|AT}g&fu2 zfm_0Smtn*2 zDUj`RgM%Yo9HJ-895J(P@Re2ir|jb`Du1r(TioZ5bINhtgr4YdM*+Vv3(ZYR%fmi2 zXw?#R+WOb+9#He$1~DgHdWwU;^;toyJbfcxem5XH@oW`#3wZn@jiHz?Su^9s<0#Ff zyVQ*Vul)}j_mMv#)FOzo*}2@zJ&y5=c~-SN4g+!&nLd>YwO?eGM*Xn>cr@x9Rl8`H z|4{&_uILFb8OMJ8HiCBGqSdq`ucU`_HdNw-iAq1j^_1>JoF+~LGM`Y7WtI4~@c$a( z*#Fh@f&`l3|DZhuEiSVmJker!0DS*s@L}7`Nxpm=g6cL2lf81soGm06kW3T+tU;0~ zA&c@>CWdb@;SKX=v94Os3epscT|R$c7lD;~8?&g}*vf*))5iGm1L*PS0O5dyi!ViI zS1t|CJKbg2Xt~rNokd#bsQwZoa6>N5w8|Zv|)y#6WJ3p8(HPpiO zHieUp;#E%*DF8d<(Qh_f!dTydp}3~C^#@{<$>M@Fc<4H)z`R{OIV z1V#CA=DBwyD$+_5QGCoYvW{&cZOT4!&atGvy{Qd+t&JO|SWxy-`TJ<_1$`jfxbAK6 z08DBKyD!Hyr5EU2b;PyEI5o-MAj{|IgwBkTUY6zhLpP&MA=)-ByD>EtmT|2QQ9%ReNk+yh7e%g{(G3qHAE`~5 zfNo~!aCdQ3AI5T$?;UJNCp)1seESxMB-~naEZVnzZz5p6CPy15kliz;16SW0ZJ(B` zJ&%iBtE#|bwho}WzP+N0^2)L~;2xw>j4$Tx@g z&{f-8liVK4usGoNlNs-x7kBmj=)LH%{9!@PKc9C}+0?7p0)y7-|w-b=|ss6ngWKh^NM=C&NDb$Oe-#7>ZNk?~B6 zXxFkMpsXEvu!e-pwd-A>uI9BDm+FYD@ zmc$wqkYSx|=pLURb1Sb_N?7iWIbOim-1aA0+|Fs8;4?oNN$R*v*yuUolB+91Ruy9k^(BWZxu^FLl>uhxKihc>HT_qT8E==&@9z!c>F* zw+qALlpBKX+y21<>`COlSr+&!ZVaZQf?f*vTO9iz`S!PP=P<*c3@CkaR$|&Wy}Jjt zGA`tJc=!ocz@8&;bZFO;tWF3-%%R#urb^D{B1Y4JOYs(#%(;`Wn`@*5LIa9v zF%`yjmgO_hNy>Zj7V)5H@~r}?)kE(F1401FmfH)En(3iV$*=)JlDT*&;U;uQ7~Z(X z^`>94RQ)9`yC7a-K4jIKvi;U=E7Wd$>o9znVI@=haBm-7jWupK=}73O(@ z)>rf>3F#$rB+q-qklbhO7}hAVA9As0xCprsKrP&<2<0GeBIJ>kHzpf^vuk{;-mEml z81BqjoW9%pPIWx&ls-ZIr;GeEVT~vJ%^^D(M)u>%M{9y2lOHrUlZSP5UW;xR3SHbk zd}q}iRo4{5q%a>YV7E1jXw%Uln<%1f(Rsxui_e)GI@8*2E@AbUMYp?Pk)N8P>n&GP z1#Ul;@MkPu{kI^*Gi;y|z0eVVcFQyXgbP7OQCCu2d=c4()i7;c_CQ(U&kqk`4QrD{ zkuQ5Bb3H=DJa}CGbwv}gPf^y$>PGb5+TV$f`~ipjf2uK01Yl|1h0ExlnNm>XkJJvEm87{}JfI07$*@3Jj%z zj9NU700CA6%v`IlPVu~I!4y)YMWn%DkEpyo$r~5JQXDF%nUo3HMrM}`*8G3<>tl`Z_Nf^ z4k?MzzGWzjubDj^mY(@Aj|yEt=IkH%jAqOI%ti&9<1Bs;J->5WXF7zjTtG&nPInaF zi+V71)2mmd+9~#ex8SzW*`fNzb*K2L3t$S@RzM`d&wCUh)EMqJeJ6GgmF}wueciSpzItYV zD>O7`>x8!V<)s)iD@qkD+nOa_JSyS{O*mZx>|MsG|x%8&t5-O!%fZpLwC7zXi&f_HMO5vHgYcJk;=r?ZSNt`Fd-FAFG$-x+$Kr0DmnZ-wMY)ZvK8!5OM( z2{L`R+*)M^%9aO69^LZwY zYw*uSJRT)mnsmzc8Sm!n5zlB5bKkdwSM!5Qy5>v&H`A8W@wbaNk<%sq_Ah1|H3ExW zlDN|_lM7~trl0EzoETg7VbkDMQ*vWp>Y`6}Ko{l;8KAu_+`)fR%lk8uNwJ|>@Y0Q+ zTc4=*i&kUyoto=%Ub~5wUKo zr?>J25(Y6lF65Yw8vR6guMfk9n(cXtdOGym~;&hNwf zUiUZnG|zqAd#}CrT6-7!rz(+IgBP>m@UNssckkXHus4O7mSn_ot=*0ubIZb4PsVc3 z!6<8yHS~3|GxqTs4)eEUk==uV;e2s$PJw9RFDMdJJ&ty+`i)k`y%86m+(TUlUCQrW zqj9rg?hCi;-}gz;hoTIq^LA5^Uh>lK>G8#j8nUnN?_x*r=aU<}PQU*^YDE9ww@gEO z>EJhsnUkVKviKc>UmGPQrf=sa9wQ^$cHNtdBWZ3S*^<4wc(R_Jq(#}e`Ebcj7HeDR zo5(s%JaMwFie;@*+`(J+u(+z!ULd#>_Km)5=8b^_6r~5z2 z(pf%-uG4J0C(Y659-npMJ}a-)Ug2@k!eLEmQxrrEXm%m9IHFzRo9F8j|3x}XAE)027%ft=%VJ|)d48>Rgm(PS44ViRs z8_9;jk@)yFN()Mw9AtDE>z>EtuR6YA8stCPG@g&rq`@;`NOQ+LE*>&+CdALL&IJeY zXEz7iS?GYCw&0+JfZHO!-qs+4%LS^7g{iq=udOv!7EYyX-ZB=A0)ppvw1=O)*PA%q z(k8y{Wr?@w`}Ksak%id{lDiX9RQtfh%Cv8>(&^KZN`3p+51U>@Q%cWb<*pPq<%vszxwqBl_{J+}O_do3nwe#YQe>IQc zv$#Spn)7z3oaH=N@bu}v;^8q&N(k5>ANjTI-*qm!H2fKpG`2d^9 zfG_wEpb^Xc;=Af4Mkk9l>WuK{sTci(zWp@5p%)Ih5}TaaLggi*oY!#R1?UNG0F66$ z&k?lvF33Si&v3;ae>0+W{cE3DG2vXnvWcYZk4NDjWY}GKr;xneMJYP&Qv$(kJ_^Q+ zG&N(z8*rl~hR+oD4?@>BeWB?iyACNK$D4(vuAV8)y0Qe_8}s z(to1Zx6((Bf4Ot2oM3FKI;Oe8VXP>+B4y-ANwNoK{)R2WEL1v?$?ipKU%=hZ#UuXg zvCu*R=Hzjw3tzNk;e7oKhElMi5bouByGoc^lIRICl^VKS&z{XhG}L^-ki8sx4F*T^ zuN(6n0bQ)>UpT-GcUczdohab;1!98?5F$B2w*Gd{B2*u+lQhK7SmWzlHFR;HA)_&` z|7ss*!hEacG*!Bg>dqaT3$fq8g1X`HFaUH?PD7;fC;iz57&GN_zdA&3Et_a^1SlPF zNXdwO2MS^mV@sKWKpB^gt4L147w^{LQP$U3*M3*23rQq5Gdrjw(w42}fTPBlaS#*} z#%A^#oLi30-p4oHs}#q2vI$eaPYx_}i@q$uUaN@gIOx|{=e4wCDfNC75ve2#b(_ml zr6ObC*sTnqDY+=}?W$NQrW=V(cpb%E|C{ZSHzMKmn2k<{G!bXPVPuqtaeMLC(5GsG zgk+z}&LScL`{QnIK37@Vh5&l<{G&W^$WNtoUSzhP4q6m;gCR)zp>1R)jNbdg+EiiyZ~TlcDY-QY*(OON_TtCkFh#AX8m ziwh6{kM)bR>zvI?+7Gp42&Z!yxuWQDQndQSV1gPA0olRPbBSQ=JK#nkK^$7bZsU74 zy<~FuCwH7K<{6nGfHMDG?tVH5T|#JOC8<;uiSG8y23r|Bhg6`q_t@>paW}{Lfd!c` zxt^>;7K$gzajJ>Dxy^?Xv}v$=8LgfJX}flmq+ zk5)922c8U;e85-AdYz}(N6VX)BzueFBN*a81*@x3$D&X7D2 zKo1CyR+Ci&hyC@EdXf+I=C7X}>M?86(VaTkibgvvrY*uQe#vl;n)5pN|BwEeH~iZG zpD(cgufQXahIqA)pBFwe4^)8`KU?0Wa)l~Qj_5)lQ#Bu>aL|H z8d~z8qB?7^ozl0>PiNw#^**NFnlkMhyh`#wzv_q5f=K0*Y_xTCNGP(!M?tw)5|94 zfV`gljlzej-ZaG3-3fsyt`+hR!a+z|Y=v)>|LdP)R2qN9iq>2+3jYx+@?)IH=~TYP z(6`{AV_NH^qYombgA?XdKxR5z>9z`BHz8=e82!Dd3(P%6Q;|a5Z*xCfo7nkjQkuU! zvuNI4F(SHnI^Fjr<@*4)$MG#nr=}+R9ia7_I_wKhvw7;fU~BW2r$n)nSQ&|0pdt>M zJ6t%GG&_kz_{>5_^oySCl=5%ysMl1!^p5)G;`S*5k50T@+8;EpI zTug3{4>mKzMT`5Pie~=k00-yE{#1v5q&9~?k?emB#HG=od>gMsoGF^jvG=>k{Y{;| zT7jBQ0E1DjVxHdD$^ymDJG^`aS^+?wI4-r?P_9lJx4ZBU+^kEJFPZIc71b2>t#uiQ z&6V%S4*iH>vmk1YW8UVB5-mRFGP)~` z(KA%OzV$lCENww+s`q~qC`OgPZ^ov;A^P7dVpPL8yHeqjtwFGj4wJP5UHZNOunQA<5}gsDlyk050%cBKGX(**pv%{?6cP)qeuE zNrx}YpQBO-%1S+YBH_i|i02?pQg>Pb^LUC@WfiEOs2_>}|Z)W6EYch@^Gs~M^99r*ROR<73i>cFx`x|oV$2D|qW0hK1 z_Lk16hpR%)FTfk|Jvge{>u9!5QsOPrJt5W*1RjDPF%)lvHr=7=igPbINp&Q3>KOe( zB(wT^&v(p={FaMs%p*lE{ad8}B^@uhEDMdm9}`%%__5FTn03~{g~%3M*_ot&R&sA{ z;-@#ZzT70m!$1GJO&GP)V)XxYGZ49;(1#}59&hlxi_B&pT7iCmMqFEAClT+j&{zBN zLa;cl^UV*l`zs0VL?Blv6BiO+1)}*(_bg=9GbB`f3Ftkb~IOsH{ooG$xmI^){rPZ0T zqAdv7f06XZmBl6A=}`8y)VKu0R6Qx%J_!$JrkEO_il6{AMa~}6vMi*4E|8Wi9IBA-E^b$7*NcdyUqgE|eP zTq-hzCQbryddjsD>XqFuuebVsyz(GDZ25@$;QpCd75xB2$-HA%kG&g4z3(mulM`<+g|s zN@dZ$=uYzgE!)jDriK(Ocf_6$#cu4+ve4)($WWusG!$kK#72-&D(4P+(#xa87KU{YN?$L zNiXeSiMR&leHznX(Z>sQWU+es%2+$0TqZ$t->Lj5-P@ldS{F2+6XcWb52`mCi;`So zzy%hx$+RdgxJ_15>1~~lM1+NcwTt2<8*Ohz`bTo>%(R(Ei51r7fa|1xMgMvdqCqQMzOnfJ{G?j+_X)61+rT{7)6ic z`c>UiNccH*mz&eIUX+l@?4fX?8dkGdN-tibTi(siTAE z#seP+Uf9ZK|G<1se1DXh7=Whwj0h)XB?1YIOT5 zO2?6n|021)J4S-1(ITV2^=;xX??Y`fY%}mr_cPvTiagnkf{09LYHNWqVV}4?u+G5ln0JDn$_aKuX6Uz@^ ztNxW)#$);*oOF4f5L@zaudWdQex)W!jK1v0seKF;ubqTQo&UNYO%&y(r(;2hP-wXP zXb7cc-^5bK9(o_tt_a=-y&9unR`X4h-NyFUev|Rd_E->)8s~lyDw%yci@%#267tMP z(98i2nEjN^d_WoyO}gcTM_E5c!SIrcqg>ssD7CaGH*v(NvpB)9XT+RGJN3y)j0ySY z12_7rHe(f*qZb@+)b0*AqAw-kJdmg3#)_mntHaWs&t2-D<2cSOvN#STx{k+mCzsbx zRu(!9SxI@Gq5Fh$T?d~DR>vGh!}`9zcLbfkP1)6H_i*;8>hmG-;EZ6S>E*}C7w53M z<$R_ZNW-mNINSWh8=FuB$GBMr^d^50|l_QP3#t?cx!By_j`u)=c%fb~tu*sfoy?|SOucD)A^XG_-x-sFH z{R`3n2rl$_#O0J!aQzD>#GT%rHy!yQ?<&`xFE5IU3A$XDa)~Luy$)aJekv3uyY$kc z*;2jDrXan*BEE{Tw|jH# zxJTkMG+qc#`MG^PzjfmBmC=Aoeb_rQn1&um(G;r0q8UJ-{xq7aB#3TBOgPpZw{sW_=5^13orZ`oh^_!HrlVJomt{3o* z=p>4&RGi_Ld3R52T;E+Gmxm)>=ZyHc>ZPpzMun}H#PeTw;4mO{z(~#zF*O-d+myDo zLWXT$et|vxQ+ok;J0lQVM8i^Z1xcRcTc?vdENWWovAOc6fATx zoahg~0Qc$Jll|K3qr(?7fT{;(hSTRo!n-5+lVMzmwVY#D$|BgONF9P9!$%)_CUoQRo1k|m#^9I~TLQ!QIPxKk=x43`CjXJtkT{#OVFvi#KnaA$4)QTc~} zO7lVBI95BOugNrc3<;m!-#3n`w;V>l+>r@x@FyMBBw|TJ7=GO}f;G z);xgD3K-+|e3^}wqoc>dtHo!eqB3}s+gnq<%)L*|#f2>}QHrgsf1ATdC&xV7{Q%c| zyy_z05-SJ0ti%DEjPz_Hx$ROoK4>oDaxE~>=th5yI|KjRn-vtlUDaZQN1XWLQ<}?N zgWtf~eNx=^$JkvCvdUr0cX3!caSA>^AO{9VxaQ7Zjzq}N<{n0`NE#Wa-!zK4_BT9*Z$9w==tZQ%uoiHBRVN0eO%b)U5)96yB ztf(J6qUr{j>XCkhDha22^Vy6^}kA}|bUro@9wMLDR@)y+bWd(JJ| z`V5;*ONgiG=OluRA$wN4K7sWjVpQgvKbn5kJ5wX?;xtuT&M(@88Y}WPRX*yx`TG1~ zzSywse-EeY4+bEKRm;(}{QHZk9{7XOl@lR#<%}l|QT~DLlZlSLI@6&K`3Qdm5t-{d zg}_&`5~GC%;~v|+FxBsNr|$06CEQruVFnyIMc*K45))nQS!8UupiYz9`xVEar|sBs z-7yhRsg|yc;gf*ZrP2GA<9?A!+L3nZ*cNwPL9!67-HCHnsrT`~i~f%iH}nl*#B_&I z8GM9`bO|moX3{!Y6)5RnU+WNygOgD<%Rl%CwS4z+B1vYW=>+PJl?cutK+#XNf-UGn zkyd`$@UMKr1T3$~KqrU8YoX|mphX!D6xGHR0o12gIP>yscG#ImFk*Eq`Lzl)`~3q! z)|5K}uMQvqauoV0(d8xWNug)j&$s%mUAGF?Whk!RBnIUaKdnW-Tcdgyf`f3XW>?<- z$bPk!l;TBXoH-!D=UIoniNrd=mV7W3WUQ9rJ++e!MK?Q+)YSe5abi;8mkG=#_CMB~ zg#3;2huOAp?zOe-g~=>{B3G%-L!+0!>Ag7-cH=RJNa@W=K~ZIE3N7mpUYw?F9cC&j zmcYt|_LqdwPZXDgjyS?28zUDdj7!&Tnhj{A4?HyO^*LPtt&38IpDfg3v}9vj zR!WmhBSXpYg7gxH-BD0|-kiM>>d_$GmVUdQMAqHO?sM7YT@W>rp{XSk%`cA~hqdVU zkmymKP0r%1OOy=qX^%<8s?vk|(-ylHONIsH#U$PPWHHx8DfneG0-#nncPCx(vZ|r+ z$Q`KwuAxs2&Eij(6g%7@*5Az=CBU1 zqM&Rf)UI(KL|skeu|J8EYO#Fmv86)YbJFZJhS?fm$W^6e%Z|7GLznDW{yzH{*M$*+ z5r+2jbDM6GNOeCTH*fDZll{yi63f0c`{Ugc-c|AROch!3%vk3S3A*=Wq~ z5i2KAB)aR9a9TnJ0UD4H5m1K%^<_FqA|?n(G*+-$=(`=e%<2gjjt9S(oIpFd%`=qR zuW4m$si{4ZV0Q6poVvAY9&MT&wFb%C6{7{Q$zADU9SIzC@yzhJ8p-fDLPvy8E`LWI z>x)Ye*MhupDsgQdc=ll}56PM+=G7;Ov3!2p9%%@Y<03QdU{z1cTwh*(%B*=F?`Q-| z`JLUXF=xGVW~FO4b(X<<{$7Iob+Ju%x(BwqWOJfwztkGvM;A&c$?kW|yeRrv-PzM7 zUp1H=QylNN95Jn5*^74{MDfkbEG7mXCB)j-NB|Kdq(dTq(sc!LdF(s33=81rE^S4%gO6cte ziSzR-?~&V!{XEgset&A_T}E0r`lOk95)%D=`ZYWau8~`95h7n5b79L$(UIdbkZOwyv!3CJ0S{ z^8<_+F$kruuaI{~2J<3!AXGny56YY;$yDJW97mEGC86Y4Hk|kTTwxZl)DL- zO6op%jFeysI_N|&G^=yq`AUnra|y^cwoMJtzE#(vqGLWb!mI2`zZLE554tE7mIuPNdN&fr?M@;Ez>$_*+P}3U0-e}$zhqy1JL`0x%fa(~us28HvLbUY z`ibh*#N(%@yMrgYs#cbSz*WQdIo#J-PsJ~|McnH=dbrnp6@16Ovm?G<_HY92oc}(G zSO_F=Uos+=c{#b`2My3%bm{c-uh!wBT>$9Tt9=->e!!owhTa+ZlX+-~Gmm@xq?s3w zd{(33uEj%fUgn1@yKPWz%S?4!_?W08E;YWlL+tuI!J#59_WcK@IFq!+J7!V=Kh%i0 zDNKzW@$BCc;eBn}=7%L#$cK7^f+o47{LE>tIFiq6W)zqu_#O_e_s)c^g>VUJu*Y$!a>nHcc3z6-^`fj(S)VJuTy--CrX2rzoLguPJ8b7wzJpoi9h{OwIPpe-$vUAxXnfb`BVR; zWdHw!?86~aC>NBrn|*$H=U0J0&YyfX2oNWhp;i;r-~@(#k>n&StNq~Y)>tU9Wu`w` zZxo=uPT|+V4=P}a%{c=mlN!)rtC#CN)zuKAUOKai>oc>48Jr73sJ;&G(ML(KpRsV!_#$)WbD|-U z&#&R?gaMpeMG))gQF9%7ma0}gEe$D2fzTa47VXvQAz@~zS6uQ1pDC|2EE?QIvw7U# z6TTdi?^291xoNC{9fAJvRvKZ7Z-G`himk|EAbCW7)9^;>_ohUo(Y|u;l7RX%lg3lIAJ@ zZ=~i%F)8h#(dkD#k|CD*je^Q|H1BZ5J+5lXaF{=e%Zoj*pO*O&EO>}@6Z=fk@ah=H zRTP)`+1P(ei~mnyVVws8&+(OnRrcQX7q^-G00kV^-i8^?`o>9<*u-TWmX7KR!ExCr zWd~Ls)qf+6qtHd0*Qp~0tClgH90rHjdRZUrva6QXg2Jz~LkZpt?t=x5I++{MVL|QG z{6Lt@_8)zk+$Gou`)=PrLNRtW@q>;BKq&NPGN#FaKJGP$wW!!s5hBg4(;RHZEKm9( z@u9-PV=2|mt@x-jRzcAPjztEAG1p4c@osUv z7CLD!3F>|*3-lMtcCt3y|3TQjRHhKnl;v(^U}yVXWXY#v53O~Lek_80sDqWXcR&$R#Al{{sxS>b)u4PmR@a#Gj=v_nh_ok{n+?C$ry6wY1A(hl_Bk3h z|6}PM5pSY1uU6)NcV+!8k-u8~?D;FF$CSvS5Tf#O5{pa@(!IXrhGlHgb{|%3J{Q%H z2I@rL?$WlXotWgQ61x??7+VsTx36>vk-5{lF(9A@GwC50%TRP00+^K7NSJla;n%Wd z=EPGm(Sf|zGKMG;TEA2HJ-n-T+G2B$S;z8`F4NG6s(>H_@353G<2p{126wgsekD@4 zeezK~>%~geyU;)xRf>7qF(%_Vc%=FNW&ym#hFa$^P?2PB>j(X-J<=6XKl+FO3?v!}sl{W)1&OH(s^Z%rK(ODDe)0@D{Ov3{053xa zZCn!ANEF)&4cyAQYyU*Hc-N%)tdVe()cyeG%( zB>)k8OQW#PKb({l051|$CQx#8=$G{Qha^T<&_B|b6X|=hGEKJG%?H1iTL>c-R4Y z0oKEgQ0-Pdrcc?^F4F_G6pT)EZYfoTI!MF)2kTV{1_D((-|K(owYvm|k5LsO9~dF4 z23n=mpV7JDwqPx$5BOigC7~s~R}vatKWZ8z<*)}x9p!J+gX(TM#HZ&!j0e$R^9W=p z1yMkSJ;wV!M1CG$-ky>ok2i4XMB8*~!-&9uIgAjS!D)*?SEUwsiud|1#-vb#K zI~lHaFA$l-Y^%_7N0rw*eQo=>HC=P(rJpL%LDgkf3$YJ;9_^4T{L)Xpk*ObJjirr_ zNH>G%k;0uss#?GNaMnZ?TbR-JbF{{4s{V4T zEoVfPsDB+L#)9DEw}`$5-uM~P{GBN&9taOq5c-Wv=QRjj_st;cS9@`ZfpU}@13((Z z>fx9r`;EXK5Fwx`x#{MgK&?*j0Z{$tq>Bx=j!am>qf2&b?u=5ampXOOXgEiJ?}1o! zFSVlrnegfh-=IJ09y@&A7owYdJnwm50IyGsD)~2MDT9^o;BDH6`L2jf4^hD*eVzPY zOW{Hce7y+=x)eS_#Ml;We(_1!ejLFre(`xkBd=R?@IHaLws!P}=X?|c-$ufwT#na%d% zdX=(YF~u^Z&O!leBwOrMn!=XuZC+?j!gCc9q}7#1^N=7lQ2^V)f@I5w-yEwR=E*cS z$W*H4vRaN4vHklFr~i|!wABBVt?0r+9{t_AfT6bLFtdB+GO>W&(KS|a;AT$jm^A<{ z232vB?U^%@NDZ0y9jfRrp(c+zHG&^&;TGdpcy+m1y~6e0!@Y0P z^kSVZRo_Fc6x>K=mCFZoQ@;U2bDJ6}~RXYKqv_Pqwq&kas_+)v!! zhTQBfgy~%IV%ZQvb#9;E2K{J4*P?$CO6p>Em&;TSE{OYp&sGa3J=({#Pp887cLXja z9y0Y1s-Qk8Oz5gD-2L~>4@!e?zMP@x4f^E&I-bP}MCdC1g}km&soVSWxnBZKmzjX4 z96B8!yZoa9;YAg0RFy&Guy?cziy+#3RT@=obr= z8%w!L2EFdyX9((a3k~EO*>=8su@FwWeUExf7?c{W0M)s$J9rL5n&ZqBZc0gHx{I;= zv9RUglF@63<+wY?I)gVP)0M(ZRQytAWMW8JswO(oSlA-ML1amo{%!ICp$iJ5FgFnKf_Bgw^R>B5-cDoPFI! z7@B;?)6!I5ew2<-n#YF*`Oxq3Cif?o#&rb{$-d~lt3!T2mdm~9{Z{u;isI~zTGa+j z6K%?r?#}J;>niA}{_-k%l_Smg`@M8RoK<#<_U!56jYQM3GQ20u0rXfcYZ!I6@$cR`=wBcrJn z3G!xWXNqBo=qfDwVZsQKX|UAo$~rf$ZK+%74iU8KooIrna~XswjkRnr7kF9o>5i0R z+)R10PcJXHEh%^uOF&76+=G+cF`EOVKP+k=M|&yVR>Q|%*7T=CCU{yYFjjLd6#lj`8 zZ}g{f9en*q(ij=pC3ilN#@54{(V3!&EYLu?X}hv)9|mXV!qV60H(u0kKbSn)l@(3z zk|alm#ra5r+UOI1<-_He#1-$Vv@rCv=Az~q32$0N<9E<+&TEpL8(MBoszv4H#9_}7 z?z$0Ux!6(5(NTq9rW$d8Y^!YD-Yni#SHGl*|}c%jOlE*tIqZ*aryB zh<@`a#NIu9K-;}pf^Esb*604j;LeAFLnuBYsB)=!QqWKDsd4LJ=lz;7vjL{ESCVXs z^Tg0M;NGv~G?JCuPEQC#Ycvh-oXy`|zQctU5UfzA;C#kptA3b*HEkGM0=nH8%`ede zA52*+C!+ajupf09xF+8Lz<^x3BPhrMyVi}F8AMZe|EFI8t73RV=Mp=D!Tps&>K1d? zJ)F28zO~h$Srh^zPJFVD=6gT+(`wP*yg*^?N_)%1bG1f-u<-Nat_1-13z0eT=V1G7 z=;uHIr$WIiDuj)g(#e`qWfReGUzHzfPXRT7XCVEbOoPca^8Z;^VUwGK|IhAHCIh}) zE-iS^cKH^@TMWSiazKma26PzVZc(0JS;Y?+=~IKGFn>Cg5JDI2a zX@rOS0)tqS>BV#jOTRH}90dAUgbwrbV5GB>4ZEIeEM@s8gLUp1n#(oMoMt<^*k?|f z13a)Y9`m^+4=;vPX&)PGQsx;Met8_y%wD!G@XYOlu4RcuMdvm*&gS87ypNz}i`un} za*@d10LwSF?y?N;x+*e+^*9*N6zMgdwL{lc(U(aY-gfjS=5%la|2wUSPxWxy1+2)D zSXKpU0L$Wck7GQAxKc!4$*q6OoQFsRuL6$}2Q(V1xLF31?W`ZBYP<|tvfO1d8zmFoWACM?{~PU?X12zOU} zrp79^6cY-){nG?L{mW{x7`^KO4PC}VulYr!hTFKk$ll$HdvrGVLoY4|GFThDZBh#} zAT-d3kDwp(gMYH@VHM*r?Z1?MHl_aRRQ>0AKt>AE-TE7_ytFL= z95lCv-rdgYUbCsSwefY#TkTek(?uFjj~2s3w^9>t2}Aus*P|aK=Dg<9R8;HpjjlHm z2zL<)UE}E+Cq}0m)_f-l=eZ*82PevMpre#-y2WCQ7V3kE>CH~{`RX3ap@@#vLuWw3 zd@~ec*}p{A6_;$ykY@R`RWVT#_rsgtGcPF&eflB^7|5`JVCVL`GfKYr0eX#aGre1ID^X`E#hIWp3Zmgs+uIoV-y1 zX}>oW)V90NId#2l5@r<^(Nh)HBWs_6s2)T=>A(Zfl>eG#5--444Ox-}oc_vxWqq-> zg5RG0yHhV4v&%4gptXvg(qsmFNqz{1f3WxHvs67u7Aku^n&2p%Zm9Q2{9$GO%p0Rc z&X6UeUJAbg#lxO_c<;%w;x(#@$%q5(jpq<6SkFlVxaeEsU?JRAr-Ib;J4 zm6#OR%kZ3Cbsq$yjt7?=fr18dwpFv%NfPG6oI!4ni`jaqmIWtl>f2KQPSHGms6pNu z9bsXr`Zl<1Xn~S7ptCByB3f8>L7#H=4)-uvprQkdSu#Ta%cCN(pCA4xmec#SvFktdWB=hK$_&8x_bKg&9VivAh+Mid!oQASxn1#5X&kvi+Lhuo zloWi@iKQ;Hbsefio0S#%|OI~02d5sUwu!p)tkxl~ZMj+lN zQP&bFj5#lLKY?!jk5$e1bixvKnYI-=0g${-O8!GfU10OK5YOYE@?rW6yo;qsGH$zFvNu>gGYHL^R=AH}`NakLc57y{1-U}Ztn=f*BcANaUC zZ2!h%UZt&<62uIc%`PT1Cn~5wnN3G@XL0dJ^jH3t{9=@gb#pHO2fk>^>xV}6gAhVj zEga`^Q#Yv!+EhD7HxL0H zOfHW9_Otwj1Ak>){$o+&8n8MehZdaZA)Yj0uaX0T7L$#UpBm8Z z1r3ZKj%s`dSGBf*jwyF{_sHw3(5?#b!A z$HJ)iK42tL13aw(xqqvyS~zoW7S~A_5*D<*5o!w(FsQ3PChJ&PF?aV7a0a_X^^ZJY zChqJSg8w~gm|E;7a&-EWP7n@e9}e79IzM#n-@mwXFl`CCb*78Nw7w$6Dk(g5u(3|R ztjoazV97)uaTe%{l5amV95SEVG;V=R+gSZ(H3rlR@%46W-x^o?Np94Bqy|8195p*LYjq;EkJxML;e0mKn^JXFf^k%y?rUBz3sR2B) zDUi2P`8=DHOKZhyTt0Ip`^WJ9e&Eti#|&YIdS*6zdyG*b?ga;O4HI67FCs*O0~i(~ z3MH;@D-h`4e5!-i8+uWUfgbrFkMtY2QtDrz5D=n#6PdpH@F+?G^vhWrN5Cd8dsF#NasK&1ZE_IU< z6JbuHAsF?J|2J+{@EhO)`p7(zPk;w=4kc(WcqQRDg2;PWrxN1+{sP1`6iyVYtYkGf z)0;$#6<+I!jy0naxUi;G_SR&hjYrEOjgvS-zZjS|@zQV#kUJI{XH{B$G)V~G}pNJ|2>kOV2Z?Ug~rlRZp(c;~L@Q z7_SfC+x0+~asu9DW>aMYVtGCe0zFckHnEqdi}s7FD|2w~xpOqFPv0Iox){*)DLE9_ zvR2Ug2|G-o`cY+XyV2(Lj2E`^b?kGX)4E?(ptDRx_l!g^--5Yq46*G?6K;SMb??yY zJZP&PS0=LSzi(;?{`lwL&u)?9Mr2`QX0xa{CKWh~G;i!eu^k}9=4s<jJh@rQUJ< zI9O3&T`8RXXh+7 za4L?mpSF5r@3}pQ8hOks)g&chj&)M++)}cR#J-72vbJRMx>b^DfzKcJSrL`(J)7aY zIt}y%cei<|sex?QtZVKSUW?AqFOX)KGSI7tMvww0smnp$0t{l8SftQ2Z|qH8*S4zA ziHT(T%1Gh$E3) zALXCpLk6BvLipt?`7VRV-8Fli8<^UHSWrhknj2%J&dWS%t3J%XR8B_9Pk1hWgO2!p z-)Jmsn&lg9BH^ko{87Mh#ZGE$KRR>zY2tQ#MtzO_#<5jG2}J>4NJKYZEnqyahEGNi zGkVeGnZbY0`4E5(viWm(&dm6*B@z;jSx@mAx%u~gF*n?0Yj*jwAvXpG9gxVybtJ9j zyupwm8-UAEFNI6QIqg2b#JuedGrN|%hBWFOCMEJw?^?gISL^e)nb)xLA$3-muqYGb znn`oHGb2ycqdl`xbX6$iOrTy}n%?}4kzqG1++%ZVvI5Y1jf&Q`LJ*e`I^Q8vt1p%0 ziS{fBUzk5^QJ31Lyrc#UtWzHAXpMVCgLtMEF?8lEL3uCYG$fsqER6?dTiAc1Ep+#x zKF;l^^oSJ+ft(;~{?4n-z&QS-!WHYSyUo^Sj0o>;!d+y@>3s=g-ED7`6iKnd3Ab- zSBd3Ui0hhBBESS(yW{b3;MPsKMC@T%#DU4XJ$jC* z{guE$eUKCGprlOU>>>A}NX$0|6i4N0bui4Irn#cTTC7|eNU$v8#c23iC6d&LXkwV@l3;qdCc;)qd zlt8_%Da>BtQpNbz^r|~R1`J8z*;iR1heC~BQrfy29Q$d8SH} zL9H#9Khbl$gtb@>BJes{c5FN%g)vYo!{=+7i&cU~6RrgqZ+G#llM2_po1{kLv~xzE zCXfjT+U(;h!f@a^Ey{@H3#u)hEqhxC?;W=%!6#xO1{nG9;&6|#0!tNDfxrPmcW;7r zQE)kNs|2&KNK|6RbkEM9*vI}|7DI@IE#rruCL>c5&OS^p*`KoUEkq@$rqICmVOMEWS)lBWCbG+%%Zu=fuSip~zaj9ADo3{0{cc|l+?Oxwo zdnSTXO#+a)-hfe~w}>P248bkl#W`cyHsS-?&jEB;4Is!eDk_Obv^|=?JMQL8kYa&P zkixJmA#Z{k(|1$w%M(s6G`9(i^6>E=vc+dm-}pvO3$AN=si7v3_2*6=nDr*XzKRJJ z0lC>t*9uls$|)zx_ef6POvU1BTtl{0#+*TikD%b{*C&Z+C+rJef84!);4*-ih!lEF zdwGg%0}gi(t#N?!NJBg@6G|1qJ{NXlx8&61XRW{Vx(IDK^bVD-s z)n|&PiSrm_7SloJ)|loIJo$3&y4p~n?t8y?p+cSUYazDn9c1Aak(A#jmc^i(Ezw3` zFb6yccppQXR%_9Iz1I?E$ksd7;N46wcw;T^%3W-0B|zA1hZbIwcsxL1HgXy4@`V%2 zmmHgDWGP$@3yC$z$!IZZY5YJMNcA}&ghE~+b@>$->u&ik@KYV1{2bBX#%G`b73ZF9 ztOjL_8c`~6w4`0#=5-chZGVk4uT0E ztmrVzTho~NCsUw|q0Jn~{XMU2)58NwsN*1T2yJn|H@o>xdly*N%`MHH2tuiyEmVx4 zuGUU&NLyg(L8naKkIDuXZ``MAMOMn{RUAlgN87ktzLGq@4Eo-*(;(kPO}E&Z+OZj2 zr0SAvIzN~aPHKF^pOlbt1_8f~COmo%FI;+3c#A%ZaLze!xkR6rHm9L3imidh{vI?H z^-Ch30e+QdkF`C8#5ayfFkZha#WdvJgBH|DxtzU)%~bDKHT|lCuv6!k!)N6`ic(Lv zSq=;y=w+fGMDxcoNv?}@$k&k!aRTS1fKg!bL}QSF-4t4Fg~xyx6G}0B3^gObH19wR zhDQiJmi_TB-+I|GOQv74pd}=K+zy+N?h-T=n|~xQBLB@p>;w98G9M>D(!?w9|ET)v zsHXq#|JOFUQR!4vK%^ukhbRUj7=)6F2uODf*Z>721QkJPML_A2A+;eA0y4T`bT@-B zR=@dve?RYYeus1TgTFYtyU%+caqk_H%5ygPcD!*r#XR zk9?=LR@LsKp2-uL87CXt8m&jjhHP}x5jilJ2*t6ko2`-+W_Cosu2XmDF*}UzbU9uMIeWqc*z&hT!;>W?zI0yf65PZWd5|9|@X|@F2DWoI5SDti}v zbb$d>p?!ycw_}G5;3Q2r9H0U>+mh}bU%j{J&MDIE+*NF;>ma3Ii{sbr9T8|tEZD-g zv!ai9qE2W7A-aPY%SfM_A5huvzg4EBJP8{o6_~mdk!oyphJ3ASy3;8Yr!~wO>4?Kg zU)NDKKo+RC8LoEenbs#!vA^X|AEIjnA;I=u!`0z}sJ=D%5wrq8TGS90{`(-)o@8!z zoY?#;O{YLi7VFFnD_sh9cw_3~OBR=21)p*~$VrcR{OOdE>u+D$8u)2i&$Wbgc5d;S z(*+x#btJn{z>c==*kTI8Sz{cP=8r5Zct6PT@H}8=j?+8*^8Jj-7K=|01kLYRl4=k{ zKggowK)U7-;tEZLfMk24ZS?iPA_fIUSTlTD)K)(=7?r??W=RCBaVm7UNI>oCJ{>VO08BhCYrH#ib%qLtplQpuhvHUaNwk)A*lqUJ zr*&!#<6uxeLQ$&0No>jRdD|%6Hw{)e%cb zgkp!n!r{6k<1pP<%S4=}(?4PG`8T1GIsdXYQ`#x~&K=nWf z=Wi>OeIp4Su0vb|&-QABEC>jQr7VkOg8@u|eJRr^QqUezE-E|}T@Zj-j#bvHms`;D zagshBIS(MNcwVm4*n0lMv<~m0Zj!Aw$&#~m3zxpO1cwFC6wP9H6`YuKr3Dky=P;DjTRwYEuOzN>rkoZ7~I|=wHJSzDC`^_|zb8KR_ zT&HZ}Gf%B?r#QP(~&% zdG;_<Yiv3G&|fu43aLwFsMUf1jVLo(kV ztLrV7jjaD9C=WG_1VvrZ)%+RIyJr)iTXHcbt2EekjK}~BxZOoF*yh+{fL;kS+#@Bl zNgit(DaVjC>@_k{cDjAV=ig#!--n(XnQuR{Cn@hp_C8vOzRaNhFUa3vbYrBpQS7!c zWU+ceJLDK41~P`RET01ovW6G7xM9k`mk4yq(DDac}b?wrp(J9J!hFdZlkoQ;6fub%dOx>6t_ zbbWF?)1II#`^akS!nzw@>)WS^n#6VOA2bYRj>$5@G?6(t0V}MU`GATHNi-h`i#Jqf zJpF7)G?ijxb);PZr~j%O<3jb~FqniOSi7rO5|NSk-|OsLk3XmP|NfIVLkY^fK649I zO3@lgsX8}{TOBFJ*?+KWr7qNaRLzz3AV*)%o{lfYiD`!^YZK(*oIA^|pm+`<=NL7y zD>x#QdF^9dhB?}5sNR@LyEN&oqc93ZF>6x<2m=ax8Jk>~z$}zTW*8=ji@J}8XElXI zY0;j2P|lw}dzy~NVKzaRczX1*8CUQ1tynf8Q74r=ol_l#s_{H`c>jEITHb(3E-av= z>nN-gvCjh%oTg7j7oDxe@GvFvOXlq^WVdD%_dh8e%D&^lOob-yoc;%hd>NB^cr4$* zX$xlFU!=D;%c$X_=K}(%p3R(|4VJRo zc%Jq4-tn%`yMEg}nL7_MKu0#-Lg?>Zb0#{=b!a}|NpmZ=LAbUSNIj0D{9^AiJU5?S zh*r9M)N^2D`V8jsAB#C?%ey7ousEQ3ALOnm?4%&x0tY_}8ZT>(%3stMBH#;CR|jHNG~`{)cEe z(Dbxak`j}G#>zAtaztx`a^PNjpUucBfEH2CnUh$r0ei1%@dNnm@L=??PPc}8qw=^6 zAI?a1dm`LRV>7Q}+=g_6x=1ebH$ufu<|drr^AilXQw!eXk)xJzQNoiX& zQ|vRHmkL|u>s%5FU%zkC(LcO*|5}1YZtNOg;wrhF+EWBxg z4!Wvlp3l1BQHoeX7VGL`9lo`IRhUfjt@hR~39t@Y{uo2RSnUAk2!~mIeXw*J_cjEb zNv*=pSCi&3sD%fVfmaE*v99e4$Mo~NGn&n%d#)AQk6YIoiWYLb{y;KBJeQb5Ru<_3 zUZp%6)H-z)(GK2wCU9Su);6pSK|@ghpXVF?BFyF3%z z?(U^?iWSS>BjT@nM24E>;l+d@6nuWJq;bA>1E>EFkhnQRVd68pS9}Iqib>T1;OFTe zkIA13y^WVbs46B4o>!-+w%NCBz51!yO`*K@m~1a1{sQ#Cd$l>HFZMzY-GgM;`wd|H z&04WC%a`Z3qurFuTMNBpd8>`5)m{GxY_(Uu%g?fDT(T`WcATbnqA@nva7xf5*_wd& zTBIgT062ynY|1}L_c!r$tpBp&1)4~E+B#x=NH&6jq=z+Mh$ruEJ-0U7Ir=0zvdi#7 zxK!a&WG9<05MIe^*!St`8lRXnqj-bL=rqd{y^0z8!4QrcB>31#xfQB;X$-Nx{rbRsWaH{= z-!v}KRx8cy`lNnh(J{mA8Vj;xTfU|0;QH&*CMy+GYdYEzoFR|z_Rz!p`fLbX61VgK zFY{gKTzF|W?UsEIf|e6azHBdE#q~jVUD;=%kyV(Hf$2AxA;=cGzOl-9_2jnK2$2VU z2pR!}9d4}R(%b+(E9Rq(bdQ2mY=sE0&4{6^rCZR%AQ8th6*!4dAE5wiD?gE#?-5rtD) zeO*N%h#4xvg$kw&uxmhjI%2ZuaoBRvDC{^iMnv&lVcQ> z%sGG}FOPiO*3}JdUZuIy=ILi#*8JnTulqh<4s9sOIK!;3)b66O>N8~@`}CfV{TZL9 zp=Cv#IPS1yKI_=v5uf_O6!oF=xbq{}fkpg~H=Y0|ET(!9beBSV`Dr*;r=H&rN4F9x zPf#A-7V#6^o|=*5qMQgN(N!3{`xl>ZK7!DotDZ52%l$8KMV5wBAS1Q9Q{ugFyu4qs z81Zw8n9z(^wLPh{m*77R^Q{SiVYW+uw9m=+j8pOPGmS@G^MwMYlY%pk5m|Kbp3HC? zzFNsZ#*V_M0Y<)o*)7%iL$oehTU^HyY{ldO&B$|Gk!Ipac0bu`jBQZX`8}2&&wvzU z*D@EEp(c-=U%fLnk=z{K*`}v)?88Nuz^Qmb@pYIK_Bo$;DS)sy;#kfo-TnjA&Dd5h zlTScEU5BpWNelw=Zy=luMAWcUxDaajnp1D>5ZX?cP=0@9)o^E!LVR0&lUVQG4Hxjv8(Ock>AP4~ z!qcD9JadB3BQFQWX_GKARILNsTnxQWD0?DHPv$3Io7MVkGAu21PW0Q(bP9ozKbB_P zDOB|NO=(uSqCN3ff&y(bN%`09>NbIZA|D4VT(e;hGZfa0lA$iqlS5gd9;g|exBsFO zT7D+|C1y{ibt@+SjS}`X!=6OwZZ4Ja`n1z_bJUNIiw|#R84fc)wjTej|HZ+Hgt-5* zq0pCd+t0;<+wRMVzo<4;jhwo@|h>4m?lJJs8|_Cr%#hEl-?y-qOlY2+<_enUaZTy*d3 zNU(V}FW1>k3zh1H1a{Ezdm5+DTYeg9(#XoB{Gq80J^Si7Vs7#TS|vP%`3wEeF-GiC z)l9LqILP1y%Y(PuKuF}S``RDzgd)<$m^_AIVs;Y|^7?N1_H&dCH|#p%o)vj&Kid?} z`6bt8#x|Pu__#08fH~Wt4nzT{S^gXSxOT6VV~kHkbIVDJEto_lO~tL&^GOaUxr5cU z%Ul4Fsz0QxKM3^;o4Fn>HU|CYJ-V}fk`AxZJSi^KvbKMo72avwg2{b*@h4^0#{VIY zXz+8bz(C=0>Pp}IYBrUSz3c`A15R`wwBwHJ1ERY+{wtLi{+3E(hx6^~|GcRW*?oa0 zlODiPQ)t~x3L+OcdzYzu?pZ^Vtt)#eCk7%Y0ZW zR)R9)yVo~h1xsO0yZ$|`&u<1~6TC@X)kRc6kQO@y>z-w7tF8O-P(7zd2;4*u)w#TM z%C84}R3I;A1SiJun8t$`5f<69oGhnS=9l0u8)=#|-g73s+_f?V;;^pH1);_A3!}rbZw$efvAgTT8&_ zP84)XWO*-;>3bOm?LB*$DiYbI&z8eHKMYXrN4sin;PKQr#D7JUtPg&8_F$K zyNp)~+rL(~zBg|-E!7!WO~w$0OI2=09`+&AMpdJdrlXEE2{zMn-OfwpzCRXzGo9?W z#+bY7K#fzd;0rrY0y?}xj~W|2D(7fNXe^QZ!Z=T^cnC0652wWP1U^N1Ya*g)?0%b!oeTp)#)=T$ zSKg+C@L?a#o6&%?-EMRH0vHqTAJ(*sg@Fyt_pFDoed^#9>;Qm1@Uc1lb%OeMVj1=O z`wL4~Ba7L`vqy3ATC3)H4tchji_$r^&eg^rm4n(d>Qn9rY4PG*)g3rcu-)h0DC!7i zY#(y~$0#gWIosug?s_t*Fnl;0g2kU-ds!GYJwDd--P!<8@VE9$+g>jixHykIc--D7 zhGDym{?Knt71It*)~1GPqC@diu?gzElsBS+{QvwMm8&SwZj2m~*jE4MU=+jjxA5#e z335U8Ll!$?kZDr2__~`zm#T*mvIf7twNqzHkXeLW+_bb~f=<#sa7Tm$)UxhehI+GB z7twChO5+<4GKdP9GEII)_aEnbaST-C)Tv+ksfsK;-SyP$N;|W<+Oela2<0`Nrpv5= zmVDHoP948t45yU5CpwC6wL=K2in@iC==YA6pTi>@WXsGEd$y0OFWYBR zf3H5gLxQ(`s?G3|qNajl zj_+iqHBQ`TD3VjLSc^cq$wApKM`;{n*JVxxf>u8EE!MX$V!+~dCmMPSMEOH(=)6&Hb^CqXXaqKMkQns{t3G4B+-rQKV29H7-jIKpFLQvfF{+7%{*!~#5e(jns`ENnlZGtYvbd? z@K8p4iujik8j`aU)8RtI$R2O~@ieF4_b8kuV+Zs&>b*CTZbL*nW`Y#rCprOAzF3<| zd4vqsQ`edc-ew_Rd9#|WqkU3O00|t_9l3axCk8?m*nk8&zmDvQ)5&)gveQqUnFB8r z$Tvz9-u8GwFaQR!3}-$J+Ap-gA}wa+cMp2L5RV#P_wi8Wn~t6w z)7~pNJ1h^CdT2{s$I-^n_z+vvl$+VAZd;o3_`YieBD?=8620j5yuYe_?UKt4&A%*) z&@hyd-mzYvzVief9SK@ofE(0Ci`>R15IM;}Pg+SBUzkwGkD!(2PsW_Gv$+^!WZd2+tSu zv7S+NWUS4}9s_YXZU;jSEVz2V&1Ap#7%=}O6Auisrc|A|6SVYJi~jtll6}arX89X8 z$RQ{ufAb>BO;OMy3$sWv5x+5_JbQsGw>8Ic57^40a%^eK=Ri?8mJ(0_AOo4P#~J#P zAp2nvQyBPvT7V(ZWYUe%NKS~x+2_{pG9Aj#)?21ul#VXgRV~*KIR7N5t+oYzxK2@7a z%WFB<8MRvF1=qd=Wj!2{15_S2S;-VPTQA%q8C0_GxgaGxG`T5 z<%(^2kTj$}KM?e#Ex0SS0@qlK482|)FUAURD`a`uWz5dSmVi3KdI|}kXh5_wfE>d^ zeRK|$Wh1s}L_|>2h44Qiqx3e_sK!<%t~i9oJc^y5h!O-JL7Et8D>0=&Gb|ZHez;N_ z=I`%v`un~w5{&I8`{$nY-+Nz?(>aj+yRFEbB`LP_O-m7FLsuMDZ$_5xC?viI8pF52 zv;I%ILXz1OuOy$oGDc6(=@cl7tUbPtc>C!$w`f8_=;$&Dr<1Gia6fg}(7YN~|YB_)GDT{x99zOTht+P3 zNcXC3!UhNWaRVf`q9Uq(kNJwRH8CKg1XS<(J*n+b;(r|(sYaPr4NxTn(OeN)c{qwu zp5Y`>r2LJswiSj`obg>XnR3$mKt6{C*yz!iQ1PP)wN7XGmCashQP6@WH4x&P#VV@A zcA}j7xYG|ULXdM=w!FHaQFe+HEN0y#SN4`k$DR%?gT^6U*+-v!Cy%{~0`MbM+JM@= zHX9@{u`J)dhR(HWZcFFL4WwuZQSCgzmGSkCmYw|8!50tE@BDcI0Bh94yCO+qEO+5I z(baOl7ISBD*0tIjBa6`cV{UY>FxgfKC=j^F{FHcBaS7O5L1&ZA$ZvOm(oLyB& zJ%NNbQwD#EH=LIi^Z83bRn=`}#EF2RZ8LEMoef$4j|gxY46*ybzVB zas5islK9QgiD084%VFYMi_9Cd6!JVHC%E4nfZ^AOrF09BY5M(q`rWJ@kBwXy$^gN$ z9Y>^~NPAt$H}`?CZ}Xv5ZmV$KT}LC5N)WX;g5%l0Uw@R|-?HK1+25Y@SM$~pWk1p% zFNh2?Cx&d15Cs(C&%O4ekUyi1s!N%8ST_9?v&;6ZAn!15T6Chq8%EJY*npfesBMx7eH!Sy<_?-k(muFU zmdsi+i}Gt-lQoDelqri?`B*0es_}hpJaru-+hccIiAlE@6L@OXJy9?qy5dv4<tmG@ z7G;WP4KZ^fJ+WV4onG9Cjq#Tt^I#)2YY^7AU~wTQcAD_R6@TaRUB!R=b+oe4{5*$> zJ&xq@WK#X-Pdk<)2;JIL-8z^~Q8S2dyWrD~6E0lh3%yuAy=dtutC^tc$B(6-;$B=+ zYUfqSlFrp3T~wMn`ZEo9Tkk2Ln5=o@&d684DcH44qOASSEACwJ3y(1AYBZ#btu9ty zYl{TTYsn}bROd%P^h7PP@fGaYuk_^L4fIPeC{^f;T>_AG3VIRni?TZ47+lJMnjiVh zp(L4D(C4CuO+&0nDnFTMN2%7=g%N3z4pmyv^jeH@tVB>nWXETgy^rtKt3xhbZ+shg zw_Yk!$o%t3fqnHBfn57*zR~lVZ?y@pUtZU)eI&M)zig9L!9ucUQrL2*E)V#`1ICI? zTJ$*hpF$c3h-wk%Lc)>q9n|P6xzf^cwa7L7o6ZCGef!&n9~yexMX1Ae&iTo7aEP83 z9d`^bB@YvY!AJD_iU2U4nE1Mr6|kel-ww+Tly0z6^1df9fZ2hqT{U@YHSr4*pbJB%oxjsK@sBfFOeif+Zj(+crr z%&zxn8bsaOZg3u0U!pjQoBE1eZ9Gl=th=5p2^8+T2d$sj>ch|3%9xpryoZ>)lDjN6 zqcRODx_{^J`f!^V_uk1U7YD>G{9RI+MF|#?R z{cciod9aQ91g{eJUU$*bEQdnkQjTnI_P3X9iViT~b|nwmKQl^o8VtQAViEY;G=9>? zvzZs*q}JDpV^o1jaK6aKIiiK-TH~oAl)gM#E^-v#i*0rJ@$&H-}S3h@yy3- z^edgg$`-zBJFyTjY)Y2bp`OXHvXg^i{a$8i=+(>M+Q7&9db&ZJ4wK8VSFx-K^z~M` zD}~gJ!);z5@FPAL6;_)~QaL|bwtWS@74P_8-y23#A{h|a$>c=PUw}wc`d1L+qhfmz zkrbTRAvi$|aZBh6*UPBiFZrrLUdfXnx)dy zE^%0X_TG>wk)!&`w9c7{N+w|u)V>S1JPH^2?CHCXZ6C7w1Rj zzVmE_6~ecQ_(pdFwX-ehGDbEQ3vSDYX9ZA(?v%w9ugRPp=1&Rs@RN2w=yi18keGBm z!Eo=~pirMrrhL%5I^pgvV*i(37A5AUFc3jHBAv$MWmNBK_h#cwdof3i-_SK92y$1| zyVVnsUCcykXwMF~c7gPA=wJ~iFwIx*8`^3FTAqFa*!qnPq=|XUL638d+g4N(c-BO= z&%nM!%zO4A6^1ulfm(XX$~0l0xT=60o32RUi$Rb)!tlreUGji#n>P0Sv3%24?c=b5 zk}@7R=H+PCA^o8spup?qbM3S8p+j*vG&g+TMtR6qjeit5gRP@%UlsZ#+=#(HCFo$- zuRr-;TICMYwEmF60ks!me;bBmm6^nC3S^QNOmZ}t{JwFUsEAsqpmUo|1Sh;y*A7d+ zvnc;mX_BGiO&8qx=4r){lxC}(lYSlm(d;~Vvhd*aCMUxLRlHB$u=l{VY)wXP4-> z`G$9pziK8bI5U#k6N51hxw8YzxH51^hm^~hEDtjrUv5=uq3y`6Yi54E`>SIZXlp(X zuA9?(*|8jWA^B@(=~i!e5w(=$6FT=ia)`)|P}dlHe1~qUP;%q~c+~m_95*wIyDSRS z?TU%%eh9LxP-@A2v?Q7f1bp^Vsc zzx?A^9$h>T6%_`Si(xIk>w=A_y>nDLs!FHph^Sn6H-1=g(PMLolHw}{9rv;YtBZ{A z;1Aqx*A_rD@amA6Ko7?9+V}6B+DRuQ(4b|=2I!7;MS#j>bYdjvJLA(P&wZ@;J4;B8 z;%Ky=4%C;D=7siVW@@;k;c<#{rBbSFON#Y_>>s|0Y}I5*_$N0n{;}v8wQd+^NrIb$ zAcJhl^()5@Q}f&KpTqlV4aC)xC)E~8Zba-Wzn!o`YQ z=1D~TgrKY4sWuKVgs0=zq9n}cU&$+U7ONM`#vZyib5*;X;@WY90SEa*smeybT0ivq zpqp|sc#e&&1NrXj)n7@lpf6wun)X(8B+uqbP=3G=)H6`o;h01r`ucNXJMx%KfL#)FyI7C_sG3 zQ>a8k;bgpNM{~HgQF^u77M<)?L-%2wCpR-FXA6ABMese(o8+47-&+?iSc*@N^G z=ol5idrf^?7l5s6$tt;-Fuvlg{PI~xaH#GJ(lV8_GWd4cTPwecvB7J@*Z{EJ{_qKfz>(g~ zP4?qKai1=;1m|o<^y}Aj$6F)j7#R-H(N-Sp5UFv(x`BPhw~hbME@bh;EUOSZOWm>N zNdI$Ti`Ac;oXewd2-}`jzKdMCg@oY$5oEMS4fMC&=9F@J@NW{49trM5hr&}B08VyR zbpUu2CI);-xWY#{k!NZUMqxfB%Y9>~LAD$Hy3?I4sZw7&-Qm3|^W|=pfaV{j*BW@E z&sYz_Souo^5{933aY>iB(AHg!3!HH=ER!BS@f&M5HR*UOY??C&Pa$UDbY8kQdKgpj zmvi?{?Hso|ZjCVHfY+!yxN{RAElxYwv3v&S4l=!1=1ZzTksO z&KhrzkT!(A^Ym%ucl@}`*sw+qS+{B3C)Olu0?Hs@>i`q0TS{Gypp2C5g3$n!KybN3 zz*_-qtcf)RtEa^uEnFrOX*M}gL8InPELS-Bndi91Uw$yKnPA;ilnfrEJXrpj5 z;T>d)GiCBb`Jejoc4>;>@lpV@jW(__i(0X3J5FgoR9pGi2Ta37!hhoyt;DDQ_TN-f zqoLUY@YT8cN1Hr1E>4A~DuW&;bg}W#acC{QtDe5f*;VZjA>0{^x(B{{;f7)3X;REP zm&MHW%8S47IvSa+{c`&OPjkxzX5^1;Dy!UXR$ugs862g!@5*P@E2#!E8mG8(ZwQ*e zwmP-o)4b(frvY<>IXi?n0bF5&EZ3WZ;$aK)=*#R)oATJFEoa6?H zBWyfNEnb*#X@EGrE=A|O8nJ{VXGCjINo7l)Q}0_R+~B&n)v3DWyuS4^_+^F=B}0NW zkZ!BZ^!$p)VlYttv&<2#QbaVbB?;Nu1GP`{Xd(k5dHxXoJ2w>}E;Ol~_=fw;OL{j4 zEX7U?0%*j602Y4+;J6EzIRq4fSA>&}l@HHH$&_-(fW)H^nXA6znWeOw6CgX6@mzSk zJZTYnolQ}ct2Utky`-|3+TlfSJIPwQx+BQ>T8K?Z&0W8DRB!UYE-@(8DE{wE(Z4@C ze9vhPdCC>~*GvC`SGXJd(LDA#1R)dAMRR^?1LE~U{bn-~F;e1v1k*7xLqfTlILA_j zBEmVJ_e*h?Quq>moqhFKyO^AFfY?QM_j(Q|#% zJh0|aNl$_3^AnnBZ={^tvo=ACvF>B%qnQm(urWr=T5S8`go#P^}kOJjzT7$Uk%_VhYF zyc+8I&VVp{(g5ngm=AQBPYCPO(g$LH2_X)rm6$R^-MY%-LNoOvG}P$MV6sq_ zm3dneAX!^cP$A{IWOA-Pl&Z?e=x$8iTL?U!W6Fs!N9#B;Zop)PeckCT9w816Rrvrw;QnAarSH6*J)cy(M zujF%NqAXs{3^-W=;CpGF!}Pa5@==dy-pBGVLUo~v1&decsPah1ciPf7GaMx4+Vj0j z=NAS-yccdV{yDfb*Ktly@@`4z;>*t=r^jy(3Iq!WdtHb>vr(N?~m@gi=ljbI{b!f7J9#zD(kXaC>JsZ$X>*NhScTSLwh<}^T0=q8>kus zW@4g%nn2#76kyq-PRKf&XAB82pt`Z&NkCG=L2wcHTPYCi^%vd=Uz(0 znTNL+j5ujp1NDDoCFvT}bWHm@m)Jrc**1P{Z`J=G@t`;e*a4#vPvE+A~ zwHsJ7inbLFPopn*K*%JWhA>v`kjHmW@*wJJC_6kfOJ@9~3=g71`B zkj=liOwyIg)q2f5FlK1Gv6^5OzEdE3Gjj0!r)TkM17mSjtLGT6d}eA3eUlE7Q;1Mc zbq9^>{t`mN8Iwv%SuP4FZFiS6oWWi>jBoBS_%{r+CeX;`?;|-dpv$03D{VU!PC3*M z+qA^G1ipdQgQA5YMgn#Pknm2vse7C$j(Iho-Zkxs#ybcAa(1m2@i&_0ca_1rueKbO);vtcm<_qYN=^lbFv! zk^L&Md^Va` zt|ve-RI^-!9K~y2?T-Kxc*atTZVg8rzmW7gE&iuX zd%l-`kP71L9ql0VUF!p+93zfUb3CZI@jOiH%qiW^F3Dd5w8_wAuLRG#r-P0ITpXAE zHFWB-4iDYO@*~v%`|+{9oC?Lv47;z*PF^i*x=SD}t(9zh@b_ygrgp__iV=1fJw2LN ztEyJhX-1#MV2Z{vC?hk&h|!99Rd}mnasFsF5`ZH?K@u+vfCR`7kzcan9m^rXs#o!@ z;%_P@CYb)G8=?O3?Rf-jwRikOonN9+=QawkXK#IHZvw{Mo-6NaOA zGh{%}r<(NISruNCas5>QEnK$DSnsF19=G@O(ZjMg*T)~pjo01J=G~NN{I25$iMiF% z_K9D0yv=27(s#b`A_r^Hqgh*)BZvEM{iBvf&e2O*PMz_l2L0i4Cm{wxmxlEzR%B{? z=0dHj91?p1Exy}w+2HUo+#+J{((9PWs5pYCnUI z`)TJW!_oXZA7JZ?1A$*%{M2BOvqfzel?so87C7EY+8fb!+uh%MgGB2du>ZnVp4p0} z=D`T`+!{i5JineIgDX$u~2gRx*p;F zGQNOA#TVXWg4MNEUuls@}O`_VzMu z!<#q~50VEUd4TXpVWt&-00o;+tm}9Wov^Io4wRkwon3o=Z*jG{8CE_%k=7KvH&pG@ z@i>tm!67DWlug}yC(KnFP_CvOLQ*gQah}i$@%*r_mtnp`r1E?d0QGdp+kLRF&yh9c!MZPXe#SM8CW}iKD#M?`y0KJ4QE031Tbjb z`^a`t_X!5CSV|QHIBGFHGT;E(UfnEkL4>nepGa8_PZW67=uSE+!tUL`N~U4LB}LwE zi7EcH5#d>pq>ik;3E5#}Iw%LmAZ2bwxHj17ViPKv4-Njz(Y+iH9kwCoLwAIfU$bTypULa z;>GLXd?nG(yie>tTTzAy0%^SuZT3yIWEutHK*_JU*BZ6ilq@*p0IIM#S^&bY3GByb z5lr~@@~EX}iO-KKmzJzXsC)6FlVdaf;c?DH0F#tivbwi%!ZYy=lQEER)<)^8yT8AD z7uOlbB~y9U1W{zh$yrkS4zwYwMew~w2fxxZn}5jvt>an11iR_`UU(FG9z`CvA^MvO7J%hLbkWw&$dxJv#D7j1v)Qqy<>~ zrY}B}ESG1!Dd=f>I0+I|pu3V>czNZ^Lr15ytqpjtpBJ=!#^Q^nO2 z$T0|?dx(A%M0a34yb@V~^WhlGO;py-bOTkNJjEJwpD_lRaeFRk0^#c{@3tE&_vj%? zR$QZ;t?_;Ii*1-PZG*MBvgoDjfu>eA55pq4XM!~r^AY=1>8q`AtPN_wiYuhHX|WoL z7rlz?`FQI)yZ6rP^^Y@FHZE*4+iPHnKMZP&uC&b+KeT65M1kc=!HTXDKr=9~A!O%y zzYJ79Mx-WQSUe_6tf!12GRy|8s>c4*C5C(z?r=8d?3?Dn|K8K=&wn%Te#Veu{@(`1 z_zna_2fPMUngxv!EV{$2%Ei&HHvEro)b&{mvxC361`YJfHWxR*rY#VM!{WVF+HfS; z`v^B93S)_gjcvp53T6(DIW{_t+`Ph`xWgvzq5&svI>(lv#9U!z#fi>xTi!3=cMYqA zqpKUOBR~1OYXC7EavtEsQqXcFe^s?IlVjU|21cyP=xnI^=>L4T@=h(kblVzPyiNn?o@V(1;zY`hjmZeM zpqJT|>?5r8+MX=MkU%O^D#%^AG0T*{%=nRxEHX-z`+?Q<4rYL^ec?MwEr1FM$N!Yu zW9i5>Uf{N39Myb%82VMCU8_r%26-9T0ePDzOlT&AQPl2m5Fn_Toa-)- zlzpq!MZXN(NI$CTd8dBDT>0|`ZnYJ+mu}v%$eXyiD((oBH$oD*G0dZoBi1$iP2Ipf zU>>k!1W26OTJhY_NHq5dYnur|XQ3jXybQN$`975`kGOmJfAHP;pSh9}f^e?DUw;3W zN^kfhMi&kw)nZ$*~J%E_+PX85g@9}g_MN_m&k&5*XPx&L|#)guzbJWtr9wKp0XY#Fs>|Max zhlg*H^~gK}?ePeLK4i!dOR9w&VVC;UJ(oB3t|GkKbvjTQmp=c2&?Pk{eid9$*g4kpE`id3D`uX?1MX3!*LOS|h zF?qtLZeGIw^Cc+LifItXfs43p%ZoMyB23U>5fvG>kC+nm-OjG>H~cC0{!`bgg;cTE z`;c?;i~Z6{$|aBc#-r*4)tsrkqzz4M$#6}e)75hM0}yoN9onm)7^n}Cif`DP7<;<0 zLBR7OSQ~)X9P(#5cWm9}(=b7CSueS!a!!sMtGS=HJDSa`&{Wl;SC03TL+r0v*<@K6 z6<~5l`892Jb=(MHK|1J`Mt~w44`EEi7sS0|MU%IxVYNkplcMEf7{FO1J?d1@^HU}h zDkIOEt|SyK8)*G6h|*4fw-mg5C~W_?ojo#g%88`yvY@I;Aas{B5hl_PH(k+ZnR1+2 zF76ntIMi(C?CRWImc4yacyey~B9khhQq*0$U+(er?f5Z^^FvtieMgl>yl?KMd->DP zQ*7&qIK!VrKi06Wh05QRleo!(Rb zCG7Wk{n-{&1F_?-xRu@QRknWCq!GMcnvJ|&nd+sk=d?pI!+Q+Vc_Z_mhCWXJvbgW| zaiD39lbp}E-U^tIyS37?k~NiHhffT4apI`@|Jz=iE<^x13 z-*cX@KKd-Rj9HVk2gAp5Zb1lf?^J_Vv-UCWO7C3RdvE;W4gX_QbH|g?GE74s%)x$V z7|wF=`Q}k0E;WL1w?|=qg2rc%EVT)CLp3ZL8(V|46G?24aO!l@+2pO;|H1j4-M?&_ z&h!tVw|}{4Qk$~4`0i7WZ4kzJYXMd+H*+C})eb70GoN^Ld?0$2$E2zQe@OXh8&L-K zFr6UyQX-PT2bHHjm?T}XWBYiAFDoJq$LDMA%hm4G`_u@PUvFh3^-%EHVSkzB<0M$~bc?X|T@e$`eHL193`y0yvk8STJt7?1^sa2UV zWp3U1^oi5iRpy5B7ZGQlg9ktSw(i?<8vVYAL%pr&m-Wazeem8@`wOSx=du&Z-d|cC z;1X5k;|M$2z58gpIk`c5Hk> zLtVItVqmxlvoFWq)EA>gn|5q*5C6xQC*y>{Q>DQ@8 zWHDhIa8Fr*c^PfQUQ%sf#Mbr>UosY;qq-U$dXca|wvCEb@%coP4(9FubR!*`zjSuHW`O?Q-%^WBVj%TxO7t@GJ9(k) zi%$C99Izi6fEVJ$Hu3v+KW%QWRt{KdMcOL$vM8riK$VG9M?+}eZ=cW`;zs>FSF*0H z_|C#m4U76!Ut!x%Q%4x`v652Dmo8Qs8ae0yPF~xLr?x=2!|_|xt>ALh`b1x3m)kLOb|-Wf^@!y zuS=Jr_Z}U{MO-re!% zw)+{t<5Cpy=#!q*); zj30he`5rp%RIoH=7A{vNzYCyaaxS;K@OT(w1o#+r_mJN;WXZG6m2)}2Woy!0AAe8} zsZ3-&<$(zUhgd}pyw9>nv7nnh$L)xeY1*a z6-DX4?rB-WJ^ty>+%@iZv*;A&>XImaPc%SI8%wxlt8pU6tj=tsYZ2}d_x=Ii7J>`7 zNnBx13Z>NHkwcV62b^k`YuwY?#`!g7vZu(OZkcwtv})bdgPVGmm zyU%^P`{!ka7l%{AN!bs6SxM(UlvQ3^F6rs0BZ%A>@2~%~pJAU|Xv3ao`?%D(i_aJu z+IJ+vWZ`Hx_M~s0tsIT=8FK1{$Ae~v){LUX1f9HU7@0PlQzIcnUIafd-V7Ij|^ikT}F6*sd7N30EwAiborRDiM(GS=LmOFF}xU7|z zuI^yqL$;wcTN@u!^QKSF>VCHfb6-fWkmyngnox^uVGp=w{p6Na%_ zZ1iz~w*6EeeC257>N5dtko{~M{K@q{)R<`acT&si&q$L0-$^aCVvt^rx@v8ui+ zc53!<7!DPfF;dIb;BEk)Q4N)$xuXE=9+@ql~9ddW#N_QY`bWmnW4KoMHD2Z zyGvR?x|Qyh9vYRDlpGqRrKAT1L2_v6k?!t1_`cuwogdD1ooD|E_jBKS?X~t^+yC1w z_6@IwF`7-w-q!v!&^;mnvT|CL^hc^O4KOQYu>~~63L1zvaJnB58e9;xyzqZ*fXnK& zHI6)u9^ooV#Xz9IbP5%v?QCVydHcq+KDufuYkTWhWZPdV=)ZI!)r}SOJo|j`xzeqW zUq0^VGueh!O`GdI3L=$_09$)=D>bnBUY=PF576j62Fb(vg6|=zI$jY z78D>(OS1#qR2A3O@)jeXJ&-xMCTdk?PSza~A9);sw@>DJgFNp_%ycgd*7v^@!LCLY zklxT(YaE@iA(5Fz()bXb&DIFG;SjozzxQ)-leTnS3a~exnMPGk?ivCrC|f1EIMQe#pS9brbQJ;s5fj_(p&K0*m3{gunB84>2hv_%N(= zaL5jAYZHh6u!1IsU$O@6EBd03{8Z7L?_bAje>yUYwu_QZ#&!H0jA(#sytedRR}?AB z6vxkF8$(r9!j_@VWsYysn2lJ>Cj(|h)1?Ej3TxJvBpNl*5{I)j;lJ{gU+(|z#omkI z&vAs{G>Y40e+}Ec-8r7h4$geF6gCm0e%Po^)&J1T62EFDev-aG5`pjSvOauQWeFfK z;O$OZG7y8b9}}~5u40NdDP@Ox3Jn?LJX&6=Oq+Z-3GWv;l*H)+@xC)f9EE$2=n)#J zCs<8zO1m?#v6&+%Ae5S;iyJ2tlJ~QE8RbjT zHV^xpvx!Da?`CTzwe8TA6G*zPpj`wuK0bo1byRmjfpn~fuq>=3(XIg zl|mBJ>-Y&8k~3IK1~5YSWih<*14%elXhwJ+`a#F(9FT5oVybFW#i_~T_ebx~F>Y2TVBx@C3Q*P8Wmg!-usrAy7U^f=fuddXUbTe z9}cW&wJO=64GBJmtHLm9luOABSGT#7*KotDgw z2Xlgx^{tLoKNS6v5BCjhU2d0Y+TT`_@<_~}29a>ZO%e!@63Q25rS^a^orBtWlh(sUf z@;zX;ghq`r80jmORQFhrE}7cMpxv5`rjZ6OhL8qpRmvR?#RV;Eb51;s_ttro&|;pm z9D*XD#Q4?&0`(Oan!|!?2PXfKqD!p#7B{hkDZZ-R zar}fj;9={GwuaEi*#(?U?|D{7=>Z)iZIsXvk6xrfE0dV5N9KbJ?vxjB%6Im^&Wj7^ zKch(pD>x(n4$L&8UEw>PFM8tx500kz(3!OD_@Lk&Y@Dr<_Fe06pms%ctb+mX{AbIb z_yct+%C#U-HGWu6XslaqY8+9>>$K-@@?>)3z%YLr$q7)lh)MO}= z_@IfjVgV*k6CO$A<4eS(xUHo#=L4jLP@AW^ZF_lr^_Y7rXhrmj3p#tM>Cl3IOW= z^J_{JbdGM|Ifq!0^uuSM{)TaQOu_Tl~}8suK+JpxRf^?Zaje zoCB>d<6QJ`h63KpGc-{7Iv(8nD@w94sJEx+oH_=}|1BDglc6A7|#!zddyYfyX`K%BZRlzdLhi< zj9$-4FgX8wPG{EgS~w3(3l9>&{QAtuE-%RJbpPr@fXl|mwVcNqPeJV`I-Xl?Kb?}O zf=|b->}5J(D_TVSWq3FqnN1oSkD2RAdF0!j6?-0%^khS?U~TkluuH?*M-qBchyvrG z_PiCdgn8Rfim4zw>eAspv2ZIu>NwfxsS-X*$vUA$=@9dj}I{t_OZGI^0t+}n4)QwcUNL=M}lO3~s zXpqRz_24!@P+}Mxe*EFC8us+U}1o)WJ1$xzJ&vR|xw#HUA8l26} zp6h3D2BM!HHv!`*V>t^7YYpIo{(R1lznf~6_M>DP4e@1+lDf(6GZzOWrq#jB$*-aC-pK`m?|zc z_avUoo|4`Q<04e4pw#AENU~OJP1J2FY?L)tF1THDFxT8US0LQicIq;}WqoZ}Ibhd{ zYgq~hp9(YmdP&~@YLFsDubV>j%QRr#ba_V6^j)(HZ(8U)+2rnrha`GS^ zQgUTKpX~YZXZ-JmunR4G1Jhw`^cC&Z>Yb^&+9Z5mO?2NCX$*;9q57lT%~Asa@HgiG zVq(!<`u@&xqGRp`WDGLF6&NW(mYwei`B(PcIM(APd@@N^__FZilRrHzOIQ;|&Xs8b zm+&>VnXa!%iiSu=bAQoh=Xa&oqU#aH8FE~2w4c1Pd-l#gA;@1MN^m9@l}G7O{r*j_ zzn#+?>EIL6u$1R;p31XvRG0^PAkg8}y6s%cy}#wY=#s-m3hARhD3L(FdoIZx(oTuS zM+L0)Ys2~I==|_5Xdf+{!8)LU4>Nt2E_KuA@hbi^cE(VNeQKVH4i&uO_1JZg0zUgB zxoLbT&4;ZojsB2=FkG<>x6FOl1;4X-dYZWhxSEyNvC0j%6A|vjy(bzbTaST&sti8G z-~DpHu2xyZT)yHn3ziE=J9*1GOtF|FqNBM_enJwG-HM@ZY%z2y7u-m2d$knl1Tv-2acdr_cFI-T%l;`qwH50XO1DGy>m7pBzYv zh%71B^yKmHl@T=cWnFrqP=+n+s-3UbEh>v`C=7N5f;^NGYU3x_P zg7NAwX;5guEb0z9w5Eb*N~kZSg9luT_RVjf@#ytsI+G-?o!7gSm#5aK*7HB48n-#< zs<~ja80*AORzOM966Qt=Q5+_RPPyiaq-#Ng&m6{_tfoA_2F@Cj&1ZNt2z|Q|CHG3u z6M1$>6UM<7UbW0KdsQ!{tMRhvB#DDOVx`fuFh@{n{Uo zL|IQ)=6Yps$Ij~mM)J@weK%w}{4uM44n9oX+xvC(UDev`bV!OnIQac&pqr^qyI-5R zqaaV*m-p<|nbTbNPZUgIL!CEW;`7LrdstTsuaA)bKFj_H?b7I|UBkT`=_ph|dTyX* z(QgX~1^PWVaW_YG$Riz?pM`1cZgOch;chG%O@sth-qAbKBG-neG0QKo@4PO# zlyn$MWgngEqbvQ8;G9nU_3>)EEw$97TAo(E&n4XGW_ zG+n;xXIzHFmfh11pckUI>II%{3*tlX7SjBKLrxB&=PbtGf)g&|4o0A@bSU*!43!Vo z7Zk)7L$)Z@s!Z^{u)F9VwSgUvg3-o*Dm4!;i&e@8>Ldqflf5jK6AVy~W0_|YJ%+xN z;@&fW_@S3ZwcWDC_^nJ!y8hx1iH=T$IsrF!Cm#J$LOf!FmLr_ER(qveJePFJlwoik zIux?E0?_N5iu!$@2vJ#m#7IE%k~w^vR}5RI7TK~neR4HBH8!#yHTGkeUR^Ohu6SPj zifPVxzvII#%io!be<=Huzfid22qk9k-*a40gwXC_IIB`)U(Mg=@&blUtze9WsLlAo z%>Y!MVt@8bu;4kx`^R9Ry_81Bigkc@s!I8PrT*0D&hi&3EH!C(`rT=3{gWEP^M`NPeGh4ah4-3>mCdj7&>> z*Xfu>F7)k)>ja#T9t*pu-KkiqsPtTKKc+lh;KT){@t`!L`p%|x8Rt0@f&IIRuS2Xb z+piH3RdfK@ciV{`T15zLb>5UfC@0Bo!+z1-CwJm6Z1ziJ#KaNU*<6mTXNSIdFOgE) z{3TnE8QA*KZNXNx-&S^@MmEtVBcL~2W$rv0H1~1ph9x()F~fcdgYgZUf8$)U7-%chDMav?fuYf4;TZ2{ z9w}dmI;mz(-EJxNhMwT71s4p0m6jffx;nFm4ev?!tF;l=x9^)BpL6d^XLM0wx@%f| zM87kEkX;Ls>(}(MKO-xOnDQ{OOdMVS2%Hx7R;W~mAH1^KIFSSGSN)k2CmV;9``;%# zgBqTT-|kV7U#m3uZ)^>F1NeBVi_G{;Ho7K%*5{?-?(n)iq%6`K9Go$JlQbQ-JId#* zsmTN~vBs@kr}Z-qb&|vAF3qz2>EOGb%_5mOcZZZ)KB7N{JZ~<9YP|gPcl-*z$GOk+ z|1VW`H2h7KQ#m0c_y2ay`rE_l5upJObB9+BzyS@ExAJ}ra9u|~GrM~254vi3ORIBo z!_(lB*E#!rlmHQehGF%@q|a%S=*fWI(2MLRK?h3XKW(p}S7=vl--jW$C^w2mQB6x# z)F{8XUz*cHm(B1)m*47_BuTBB*2iTYa44Vi$6)As>h$U1S>fmlnw5~9n4rC1@rocw z+c`CD>U;L|CI52&7rtXof+1wfMjh+9D-}Uj!CfIdzWAvqi?5N|`tzg{a0F{ca=E0| z@6RjLld&Dg1g~RsKC|^Lw5}JHxk>+gJJ*=|wU8gsS$OV`_k92x5^Z9T3jq~{JrOhB zOyjDNTKtN4)S@Vb0|;MKZHW=XVz5qRTPht&P}GBTHl8>622|M7azsx?q-bqaA}Gj_ zLvnM#_XuQSXPI~rTA@ELfbjJ@TH$|W?8bn^MF*RD$irqqj-3-he)v+$eBEy&5|x(| zk1n75F0hf?I5S%`0`rmajU_vxk&ABCqtSZnsu9iMdXcDpugzIeoYhO85@5Pvm! zhT@j??fuS}9|K`9DOa@i6sy1QhDaved7u2wmwWyrV?|EC5P@aV4Kx<6HT`)hY9w_; zT}?EK&E;-+=xdX-#_vtdo1RaaMDHZdb*nPvzGYzdq54^CxzK#_TS)y}Y+9fY`{UIz zg9jWI*8>Z%m-%&0M}w|m)}~?8o_o{TRm*+?E?w(picx;{(N6P5 zBtDsR;;QzlrRj)vq#8;NZ!8%jMSD*=OXeN#U83E9vP174$WW-K=N|*2%y>F@WMX(s z^Z9>A_jhjUK*i4Qg!doD;DFce;TD4L+EJ0GzcBry943x!ww9jO*c~uBVLxgG34U-v zX9rV&u!}-6aS@Nz-j%hA0zzT0b3z_nQWG3;_~$!SJdEB|-VQ>L3?SAH@Z*j|)UNfbdCNK2pMfmSfZ$3CM z9_$ag%)SK~k42$@aB&3=q<-KtWAxB)34bW@P#D zOj}U?w;fMvbhqMNQt?Q{x1;Pp7p{Vvh}3aQ)#7yyV0>LJSh}eW8Z6yvw+N9AT0jSh zEk-=F#~u&8tv1EG<851habMJ!byHP><7wb!Ln;;^KZ!_oR4RWi)pD+JwcyLhyJF6lzBhf)`0uK>nhclg^#(>d6}~&F*sv+ED5C zkMnPhLX5z@S#3zNu&P}7v#@2z4wbWkd)!+dy&u#JeboOki|+XN_chhiy4m=vyF4f_ zB@ex{2%l54^Lqzlw|Q{&aEdj!ONLxB;yB)JEci|@6QKGSst6CMe6DZo32SSE0u-$NO-I;6g6V&q= zOSKv6u8|J_>CSXC6aHqRmK*FQK}%a+oW{jfOg>yyyxsp{b7@Jy2Hc8lhWD#jaaNJH zN%bB|EIkL}?aI<_Byx$eDP z4@(|bwVwH>Ix_6jC+PEKOp4tzPnBNUv`1PB)Yc#rS8B#k3VUHBIF+PD1D>lNiqHCt z1oVFA+Zz68@v;y;RsuKQpl*=Uhg>}=J8Hg~ZEt{ZpRe%)7j#OpJNE50e4tzLDiA~2 zjr`)+(FZ-K7@~+rE=mn^<%)sHafPd9aXV=e(|#UtoMJ>?-v7dG!|phdn(`Z6b>;1{ zXs2$(ZD1wq930UdKu6`UQc?!S+%Y$;XcHY-;&{UbV{XJVlf!08S*<&(wzzL zD`jX*71)B<)xSd6t$$yzY_<}G52no83KZActdAW_wx+A+WRLE6i(E!=6(4IiKnVDZ z&w_J<%HyWm;>PcX7yNBsxHD~L4hvynV>u;Ccgs6R7~{ zAXjhiwK1UmYKu)2wK#*&)!%=ce#T6xtz{7W4eL}N*wqmki;@L}t`FzVhJ+A@8Q}J? z+YsCv_S)3wQ=D(@E`{qR>YMFKS_Viy zA*ndg+&3|}sGQbIIcX@fPQ$_%8-h1z+M(p!)1h0H@ihwu0i4)DDhOOoL**~>Mj0FS zx@^>SUDC51Zmfg+S}hxUr+3JpX*`DQRn!f2(HrenR$m>j%*V$1r&$q*xDQe~D#7qb@3q1fFx zN(+lWUh?U<&d#QM>TY{8yB|y+NK|b+M4oXM@ERdWtC2Z%A24Rz-tH)1c;7lsaA^oc z3txu@egkmcfJ=ZNunr1=Vi>GiLWJ+pk&vys@-VnBuS~@E?s-3hZ{ujc_F2LB8E?CsM0&)c2^A8w4pyWdlyUZ%s?vopeJ)1e}&)U2w?Wd*XKE! z)!~@zXJIP^{hG+iiO&c**WZB)w|(7~mz69HTU`y5H5b1iSGO91MVB6~v{;W8+cgk* zO~#2JNijyY;_xV02)a~5rz40?oLdrUFe-EB4^ri zwLx;nm{j(>e4{3}u~dvT_neHJi_FUV*zBn3rb8!w%EcG=mpf*IyAw_xcT44$f4L<0 z1)8gLDN%sGKkB?C^55%hA7VBHo&X*6Pd7K{aA-cn!8AKu$53Hpnq}X(U~PSUo$dv? z`S7}jM*Xe+>p<=cX;UDC6AF=>06`7Nt6{-IiWvdMy(@|mo!Zwa3X9}irhHsx?RCVE zwvI$zq;a5y!o%470s48^*+$R1Aty5yI(qetPXaPVaj8_4Q_jl}5QSPiS_~}d@wPGp zqa|kXV}m-SpV>8<0I`f1>TIuqT_VpghJQ@-m&&e3z6E!g?`TjyFztq8NHZxuZv;lD z`p7+I5+6A}eZRTV7SbVLZ-hxwF)4y?S_`CR-Bx0&hw;v!Cp)}p!F?1l_o$2yhePIZ zv)HI#-XOy)$0pgNn^BPy<@E3(KW^#BJDNrWS09gw<(sD3Lr!@r1HeyV;}xFy1DI=l zy)bRYz!MTUfCsENbai+E;j(b6RMJcJ9LMmTeCp?yR}H;G-kZ4w}$UkpUtB=L%&&h$iTW* zx-k*=!GrUtfQ2&h}N^Bi;IM?g-nTOSm4*|ES2PD%$6GCA3tsB9`fY$_V#+>5K zciL2Zu3VCRwYUJP(#Izd@WQ&3FogchJVfJ5yA+$_c{^N zf`WAePkhAib-}tlFwA$4?4d-6puhET#e*{;HYh>)!d%>xwIF5j!|)vD2K786hbn*7 zgZ`vy-1u@a5+0#fb&Rk@@zZ#I#*=F$e=tq1?U=+NO|D}-yOcV>Q8pDy;Y7o#IowQ$ z`hf-Wg-=dTMA-)^6~3rrHd-K#6@!d7f!&a`p8O-eyJWWGbhOTrC$w8<=)I9JbG+gL zwz)ud6PEhRfbs3yYiIQ-={>hI=LJ zJWUf6(A>@(3heG2Ie+?DR?c1KG6M+8Q4)!-?KlZzV|&kTQ}1X$KIf_7r@)MTd0B@> zGIB!B3qk2h&gZ#g=k?+Am~(Rm55El0Tao392o>P4MT#rQW`y=KC1hs2iSa64^2vNhnvKymaiQ3 za%_{X=ic-cJtJg|?@a$NB^mJJ-b(S$V$sb?4W~0d728Y+%C{Tq=yWZ34O(Rv6@5vc zb``_#o<4XYoaQ0rRPMbX5)y`bX8D3a5@7dImwbLnqve_9>jEHuq6;3esOT{_j+C=l?#ewVB@p z{ywV@534T+V6Ftm)wf=5y}yXR=PvyTlDas~y?2z7YrcOSw14gk@TOyY{NM-`(LQ>Y zh_Am6E?=g2t2?^l#z*ku0~6R}poIRcsfpf72o1)B-=3@}L5oT~7@TXr7#bmPWn@Pt zTfjS<`6*7^U(#hw#3OeR@LAVP)8}rAFB_woU`m5h)1H+Dvbpr96nCMWWZ_WU8kU?ssx4giD7&%|d4njrVP*&-0Tg`zkoR zKE1i3ryXT}iB=@Q;=P)0S;!=t*&3yzGh_8tBxYqK>f6dS9ssm;ij<@60#d)Rd$~@3 zUoNI$i7%N6oHOlu-Mz2nuw{u;XUuGPIqd@OW1C;d3OqQ|Z%0Q(Bu9wB2`7E>Qgr(E z(S{Q;S_PHqpG_J@l9e%+sp9fm_^>76qVXWyx# zrf=B7iS@*U$9%f`kJm0vz6p=-poQj|%=}39EBgmvJwPmBc1>D9GU`>?z`qGMcNz@p zTe9&6I~LzT>T>M-Zl}zG=WkjB&`?;a>KV;}LA(U5T*4sWZ85PBGmA}|MCN(T6adTh zb_I|$N{B`DqfLN2mj)Ql5ud^^6G8_r*&$M5ILvwUB zQ9H~QUJ&}sde#yzo4xU=v16WtVl8dCh{!WgbyU2-4k0Ygc7@fwoX;tf)J6)lLhv?d zlSXp^4|oh9OcdHm_gRsjQez6YS6T3Y!<1Ekh=ebt{`5Bv;irfHsh($&J|+0DdhyBS z&^Uf+($)9UI;SYy%?yF9G0)2%u{09TeiFI{46G~p%h{gL*LtwSvbCKtjO2K`S_^_a zuwseY@gH32Cj_isD3@5aTA4_^5r4b?tG-Qzy!`!)LI1lbStl4JFqUb+d-x7;*ayK? z0h-`edeh0Vv{Uo2`hQCynBo6h3^{_N@TD?Fye$QWGB+t69J#CR?eC5y@5lNBg`DOt3X)i?8WEdz0wM zhghM8NKJ$&n;+qANF@m<;faMvqbO03%X`x!zEwQxIYCj8hS(As>pV`J#VWME&hxFy zUm$mWDIc1_><~M^S%+d?I0oor!QG%UW@`Qny>3jL0Qc>9*nzxwW2N2l9tp}TgrC}eOLWgx=`zBGg z9re;m7`n*2aj?ZBQd}`wIdL=?C^N`Kenz$UYi~x}E5@gUo6IOf+Z&nw!`i>RgykUk ztK(2ETLn6Hw4{jT)8NSy6`~;m)SMO{_qw8y$);6kvZYdJTjWsKWi+Zt zbgazI<94rDIKvhK@k(I=$9u6O^JpU2G0n|@4#C{o-DhS0scOx89-ijv*KryDse^K@ zKtb$~;^3;~<4N!c5SRs`sf}WSGK136(!5a+wSXQ7t27Nt%P@(43q3}$5dv`5aC_Z} zr2u^)LL`%#YMZK!QC+6kXW6w8A0E0{x6YTr!MBpZPC*y5_#%=4lXIqVnfv!g3NVW` z1JH-h#q7K<4FH1j?@A&}pQN6gVsvf)_5-|um(9wb756OcLu#O&p+~s2U_PQP!az4U zc1mS`2*1Ma?QpD|xF99$m%FryF;@He7{MR%2m72Kd3;yY(X6SLmi$uHR3{qNHD|#* z^nAxf)+*)T9s2i_=upM^nx?n`Z5s~yrtrJ@aQyk|S4KJB#Cg9F$T>7PhT9*x{J`1Y zo1StH`?yyQRpj~SkJKVP#+M$CBxcW>+y$?;0!UntV_jq9m86g{|GFXV@%6pKT$cD44plbV z!QSn+rnZTi^o%F&@ET}y0{m&1&B`YZzYaY|*k_`J``;HDHGR{zW9mW+_c~>2UH()n zZwo%I9@dvt>*!PVp#<)MGAkKG&(I7SE)SQ?3EsDawPzS#HaiaG^Qf3GnE3VfOK{BFot|BJ%HZt;PP^n)Q2#u%pf0}k zKXwnH|Ak&n;0mTd2$dM&+oG^uR^w)&JO`Bys5B$wpgrASd9)W2?{Ue}UGb8GJ|jfW zjHp6O9YUJdG3@D;-^nwsVI~VCGGf(Jyu*zl_d=_y3L1Uo@e8xs6kp7*1@R1z2Am~k z>$?QX^q74jRQwzrORFkcZI5}r-aM{w7n{*<_xI6+&vv+}aiYzBsCT&O$(eeCIpYnA=7Ly#d`p<1-? z*!%3lZW%U_J!RFP(oaJ|^|4f%HT;eb4S+jveZx==;6dW8wRndVyF-ZBdGDlUDU{B0{m~}j{JqZl(7c#udsCv0ndeOClG z6$a!&Ao+QiGiDBuYCI0fCjp4PU7uFzLo{wh8V zKG?q^e!+5WWW@#EdT>4dUJHi%8fd?(FTQcW1_qH70>s%53!P7F;~)WN#&X4x*B=)Q zMe(`Mjsc;R^{`USvXqQb`sjJa{!Ux{xq?eEpF5nsW0UCVM|Cg!Iq2=iWO9Q($+58c zjf^ne?Y1!c4lq1OBjE0Bv6~3|ZgC?(WklEJxw7{)GnpUWE9+UV`PD!M8%^UrO%551 zf>VKS+{esAj{RxFpzax&56D66%j9m`;8qu*79C}?RSY5Fc|J3{=9_6@(XIGQmte`` z8b4lP2q#yA1S@o!sh3Ktr1f6)ya#MA@4|~GG&5G77n_Q=nV%~JyTF^?Ota7PvRx=j zi0Fd(G@M>fddE&Cv-E2$R6HvChk9sFMg>e`t~>~Vxp+)8$9VGq_QfbUP*9tybisZ3b@26V z=Gy-KI{m`V{+1{$<(c&w?fq_b0*vOe#K{$fAW|E=F$1_(qKJN4#081L#SLna30jK$ z1mMKPx4*g#p^q3O?^_)@Y*U?ep%lg_@Yv}r6^4wWC#goMz8HE))%Pt=t|@2|((X>; zy+if*QYt=yU=BqF05&bQ5VTig=3K=8y`M-)>ZMP7_}u(p3*SQ_<5gDtVXGQH8|h?Nl-;QTx{aK;5kB_gnzK%i3`7`}q0rexO^#dt$TJlbRCWqI7WJ=?F>j3cEv42B! z_f)5$i=ai;N4B{$qZ`33Es0-2KlhZso`x%>WL#@P5jaYYnBzn_}x{)9II!xJ{$QS@_W@ zWrTTUGPy-~Me&=d7%`IA-%woHFM}3{X#??tuYWJyezQgHmYi8%PwSZbG#oFrek_5d zuf$$qRC>vjQ$9SE^=m}Jr}=Wa7h);U&AnDy?L)ke<5bX6*~jSk)L`%oC9{nrG-*sW zxY8BC5h8@1L*^5mOiJTSn1OYvyiTO#f>}E6zGwgVrW%&O`)Ex3>RpnvOBK{J6#c>a z`yS7{BJAcB0^@Tr|6v0j_<*;63A$ycSHl0EM$iPAQi3!0 zC8hs+7c-dl1+@adh_*nQ6+f6v`!X~$-L7SPylT~Y8IV7b{?_mPxh?tBl5DOHW5 z3pEGH_LAiG?8kb7WeS3j$>k|5k5JG(6^M*MfqWLtYCUK{&uR(yS9D356vp#nbi$P` zO*8t)Sbeb9rqpP`D6%a4pB(aCIO3L;O6`sow8Rl+jzLV=oFT>qU6 z`pWV~<|60K9(^{g9T)W7Ibb0G3}?Is;ny`W>Q?>x!aWpz#|957m_#l|S>eBT>E4Zu z8)JTq$`HNb3@cbw_edxk`uRTQPQ%$blm6~d_V{j4-lIV6e&KF8(Bt^F&|pY+&>Alb zUkVg?G_)V_oh1MYDj?pZVDPK>+`kt&!RU~+ph{w<+k3xN~1ZVhRip4w@M#V;B8awPyQShMO*XyUhrWM(5N!H?* ze$zcK79m2oD#86fw}Fg{{Q$S(AzuF6m*)@X2N!gDv!V5ZQ9(8zrIFc$2BQ_-n;XM1 zL+!+qvr9Bz3?ED4I5OKi3zW=+FL2i?#;~1y#i^Q+N#rr^R>ATNl`+bn+V59tLlW$~ zbG*n8XG0(SYl9ethm!5j=HU~RY@ce9%qkM;M{?frEL*q3p;Yps@_%k#=5rSi?++g! zHLtSyexwxNNiGVQ1^aUzbd1bg%6oX#*m1^9A0!z7hYJTe;nC^8mJHbQ4;4XHt?@gk zP;Fdv=y?IljLmi8tL&T#gplmnN1wV^BG@W4uL=T~Y!*-E>pm?GIPHI!A|D+2l^7>D zeiZq`!sBkIJkaH=Yuxd_&{E@{Y=yEs@#Vjug}xCAQUKjMDhW;Lm_a2aFCGRStlfp3 z$OOUnGbi!p2{3AIM(K!7W>|y_=3{G39f}^Q&+t#FX5~&ZGAXjDoi84<7ZhQh)bXSA zVXJhh{)jSvoE#9jgi0;lLTxO+qOL1Ml1~JSd9d5M-@>+oo0Ky87D~VVqNcJSsHP6h zI|KA99#v6}=UhTNXK-oV&?p?Aa_^tWsLZ&+<0fNhyidh#p@D=*bBEgKfoZtLelKk2&EriA_1+Y{fo-jVKA>8@z& zUs zTR1$STdmKx&y`O9ORQa7ZBJvF`KA~7~}{~@CIcG30=m*Sn;O+j!`V({(E{-5Yj78I1M(ZSDT zwm_*W&Qk!Y-KMilH;|W~@Zyv7XA4rwmqauzuRKbTIllwsDf4x?id49R`c)h9 zzP*;O?6IUQ^U7#t$W>*Ocs}zSimTKQ>0}3RZyX@quHf?Uy~t(-AqAofNbx7k1ctWX zn6Ksp<{!(#RCUIhuIU9=NbO%lwT%=dr(Idd+LS}^ApM0ozW!EZl%9Po#e=Su31qn5 zQJhxAkBM6#b6pT4RjSS3SFiru>nq*G{NZZO)FF{u|IPLtXCz1T<&pTV&quORa=iPV z(2LJ9vwok1E+4)5vWO7I)^b=8CQ5iHa*qmyNfRU{BcVMaWCV0^sL351QsRTBp1Vdf zRkhB5^TvSUJ5u!BOqty%*{^w1Ju*ibRjrV^rg2B;?57TL7Ryfr>cEMGB#^7Bx$rBV z|7HKbIp+(igyUaKP#tJ*_peG+H3{CeJs3vFzNuZvjqO{T+1Vc~YaHyJ#df+7bXaH$ zTD)1lzpnJXK0hBc%!Cedt_=!!*YgIcW?5!I9-|>MFfc-~GJd6h&^ZX9m!HJ?hkvNN=K zneDR_0n?Y=3U z+E4g8O?mzzR&-JY=GQ7%u&j1`Q${}ct0ol{r({sCYHhIJ#druNBM1N%`RItgpHznYrqpzMi z*xj)psN#h2u%6Xsu(oQ*Yy3~Yb)b7Wv6{kQUKS10V1Sazm8E_2e=ZMl>~GneYhBf6 z@~_}fRu5mlaf^k(6+dA9=KUzxPA5oicr4kJ&C-5!_^?u~^-#ea8V(0HqthkCzDOd( z0KGk}z@s&n#<4|1K32=Zw2wZQRl+h)LVhtTSRN)z{PU9}B|V=+Eu-O@vEPs?oB{1d zIWqtAR+8mPiW+WhE#~BgW&sv4OUms32W84UOm* zQREWn-O$T{L>8+cvNlf7I67gNOGfd`s zPSkGO;EVitKZ4$7Gi4?1PIRcQ=yYqR^yP*qhlD_Z0CPVv@D?+nzla(U$SpFC16{T* zWxOWd&2`JC1fC86h}o_U$){ixL7x-FH1*ux<>XMB{oG79>du*UvQ_7e!$@a;c7t|B z1!uCF%k`Dpy6JM)Ag9dfw`;^8ONjEI*Y5+5l%R=!wVVg^rp@t}*q;ck5BhIvp~bHL zL+@}qed6+Evz3?wWFEM$j|bh{)uF!Q5Z~34MWR)KzCf8km_)^I91koX6IFu_k~(2J zm-aKLu<0-rTZw1MHc@g#A zo$OvsH^c6MyiLi{1o2Lm!YhpO%=2olrmT`x4ByY932rfesuF9r(4WhFGVZe~qn)Iq z{-qn-B63UXT|lE-ip3sF>k|7 z^7@*D-}0%610`IGH#AiQD`6QBCPVCZ%t(%^M*UCImWW6F0zn@Cu2KFEaZ7Ij3Yt5Y z1=mUJmJ||;RWIBR;=7111qXVK-P~&2+qPf#pAW9s&kQ)P=bX7fQKLat8}Ca2;&sr9 zsx}@AncK#q1yKqsujQ^NQa-rc>a6tJ80qeoQL8`~KHqV(h1gHOALXh<FUqdTb@KGGdFD3R&I>?-yxSep&b{6Ad1 zWmuGL_dPr_bf)<$Fh!O;nfZb3q>2JYAlkAG%L(u6x_f>8TM?>utc zp|8-SN!+yJ&EE+b{+H~a|0O$&G5W^;^(WA{0wLT}a3I|9iMk#{XKi2gtO$W0_g)B0 z)LT@kt~hQkg12O8&&F^rfr%j)(>be;%u~^Xm;UBpx9^&`0PlSbD`gduND9wYtmrmV zZ)W@qzc5?zlIwGn(eOv~F-<6bJ3qaeh zkv?k*Cd=scq>q3SG$e?NX|FAJf|d^fmMNlFjxLog5)W*Q*XE{1K>b6xVZEWK=Q}DA zuBA1MJ*f>8t-|XVoNpJYdABzL{R&9v+1<-;qu#jlD-*MXi zyL@$~$R!ud_w8Mp#B6LtsolZK!B2Ft6R3gSX1tcLJ8BNPXdXHj-WKw_aD?(ATM{*_ zTt=a4ZA`;~mF>*$^#blNTI619`MrAVhl~0feJSa^lJ)l-z5Q^cgNnF|>5uunMXv?g zas@@wTXQiWHQ6*D;N7~XQVkpx|1Aw0f00)FQn~wIS?=#g@;gZ5!EOlQ-*tUy?hU71 zjq!RRxL+GP_?C3^+?ISz9=wm!&Lk2%Mj6dKuTprC=%DIC4S8A~Mu({m0PxbkqjgI- zQKy?5OO6u{tc;W}+k61#bkrs94M?z`LAOgAy2dFRc%Ak9)5MLD58I8D05m2%6r-rx zRhK53&$0p7rFhYFOHW}QR9(#Kk!g%CzSuf74)tpLnl=!k_MggYyw)VW?h+>sOmvHf z?sw zG1wozxa;~P-_N;|#AP09y$@_%Z6vz6J% zk@s*{Y}#S^$Fw&PSbi0nXSEc04j4rSK@n#C-FzLv1sAL7;x~bP3n%hFj8!|U%^B%I z;YQr@&$E(RetnNgo_UAK-S^(ln;~x6;V4DC5eMo7$nt2bpmG{RhraYHY&pE9Vb|5tE+~$tM>- zChR=lp*KHvgYI`szCUlvxJRGZXtWkc8eNxAou`9Grat+XJ^V zdvEm5?J{n%wnHI?)LD0ofGyo*W=cD)IQ1iXp89W2-G~c35F*;Pssix^qdywh1TZh} zi$?%no$2LvDD|3?5zBPR5*^a4`+OJKO{1fsHT|jK6H?qfEB<95#66!-#x~!yiOj~9 zJ%Bk1vjc;e$djzIwsUTfKAPcplx{NpMh_OsPLp=Yy`X zrm1KK^$<4w^qTBPAt4{lz}$VI7|~(H0s6mw3|AD%ii|$RQ{_&$`wBK#pZNqomWl;? zS2E*>U&*`&Vtf7{aQdgY1OD~4+2CK`1mUt=tNgsTQ#ECS3eZD{9iME&UU=LsH$!@q zPA-d9B;Y6ckpMYiCK-)SBq=C5P5rWXR9IDsXxc_fv`xmdxYN(WO=)AA`VtBo$~}Td z<0SMX8j4%o$Z^P23gRwo<38kn!>899_#~X1M8#}CKLy7_-uJ}J)_lsNd{+(hYX8lq zi(l}ixk&NjZ-bui)Bz>2mJ7p?_CEqV7H}z3YRac!Zf_{x2<QF5#QAIVplL)3w-mp0P@@@P*&k_Y=A^RQ&{)gId_GM zK-wZ>!7`eVv1Tpm$V1r8o9>=V8b`a(x_6fV7k1TmojvNp{L>!`)Wra{CYW^`0sykR zRjSI9-O-E6|J_o_fB!Ri&J8C2{RV(_${4`RglS~_?spypG4sRA~#^ojn7K#9iQE<8x7_n4jOXuIXK1!F6t3vxe8 zG(^%BZh%ZL@6wd-FvqClJY#6I_aIm9SB5-O4NbQTigp!;_qd|qMT zz41x+G}6idIW!XSWZ=vOiURcU$UAx4KeitNAQn#YE!pV#_jCTFBx5L_4U0a*gDc+! zj-p!jc2x@}zEQ=^8%7!>A&c2ENFW+yL@eYGKFp|Ujdlw#`MnQ>T{6k-V)>ZwZ#ve% zhcW8X;w}c|G@sxr>!OT4FFb(=Xj%2&r@p5AS4a#>S#T`*SCj_|KV`snMrXsIGrRqREzlkEFbY0z403R~6JJNQkW9g=5d{vP~LF>{g=eO(N6cz9EGfs%R%aQ zCWMg$#q)_835xtp+pUeZ$YS#>NAfGbOSmrj@KCVM8lpF!5=l}M1I3(>2c*0#WZ?c{ zuAle8q(`=VE~U9oc;qB(M3ooCeTp7BLIHt;ShIMz@YMm|9o9%SegRyO*&b+j%?6O- zK52J75uS+0v#-WMf#qY6b^%Hu`6Hku8noKi)}Ocdw||3Ui|b5WwinV0dza~Ufe_6L zzp=VPaQ{TTud=%Mi!|8kr)1VoXJ6Ih(sGV30iX zUqTEOv^V#2AYK`TyA9eJIKdo$b{3mKNXO*eRn>X6C&b`4DJbm^Txf$*@k zMrQ+&cs0{RwtSi-8(m@SuzBc1F1%mPzYlEco^R>g)hU#Yo}wpxz8Jh8?$R^y>WC}q za|h3gfVuaF-$XYQkG@D^5lZ1>c{bTI?B&_6R6T=o7BedVI4_mQB#_`ilo_qy3#^b;i0aJi>?FZ(rD)E%th|jTr9guo9`g2k@6NkYcm`hk(I3MNSf_&$h z?_*!RcW1v(k-5V2thJcdTAfq4-so;9US>sFM0=kYK5=GwJzVf1#sRwL>;TrJxBboQ zDg8tF^?JHHR*3rw@Lt)!a165%K(^jvGI|8~%o)fjZUcF53*aJdT%cW}q2SAFE0F=? zB1@pAyc#l=S(Gtyu#x~2qYneoyYW)xx!C(So4@4F^=@yj+wdQ95m1N%fXCbm!19C; zweYJ-znlFo5yX4MeM4K27ZD>O+DI?E2ljwZD>%C)K%EVnKvYq3*xvD^@+07+^ETf* z*P?BGu;@hdEEynVS((60Pu<*5J`JXu<8OJE3SZR=l5O-ss+BS}ozik;S+bu7l902` z2&I`Oe?p>eKg2@0gc55ZkCQ)dvph5#ns^6#pO-&lsv0pIGn|UnWcOq zzQ&?VLgm7Q+H!3k@EdL`<)kdKVA40mp0jO8A1;iWlTgaQm7LDVx9kLizpM0=!UP<_ zL`Uvo9{#GY8i8bYBID_uvCadOp+qV?R3*I_fHAd3G{Akpbs7cAPUFBsXUMPJE@G?X zPT(*l@$SJX8<2lkeYf_03=3wK|EdTP@TLWX=w030$zP$h53O)6!C}EGhOX-lqc*uh zfdXioRAjrC7;(f3ZJ`xSoB{!z{SlR|@m%`&vLRh;_jma#U0KQ^n{IkZhK?046nHHx zI(nk-8t(ReECvU!CclWHn*8KT*!hAGYvcT?`(L(x|Ci--3;mzg7)kZ#pg$8nHhE$xphw|QJgUL+s@Tju&MX_Gyox-anzW-XE%%geXlymk!E=GVCB znVAlffj9r5B_VR%j6hmb`vu&MIc=;7uEr8doXK&;JGJAYElaiaRAC{_4?Y^BEn1U8 z1LO%^PSmy|g;=%slAy)h;|WckB)W&%Jj-`NOtOUZl2%5_%bbjVQ)qAl0B-FjRr@ji zU_)i;Xg^%z;^$=pO!r=k+hBG^r>QI1zNKY$xf)f!ivYE-ZCwUebYZ+*)tdIX7q#Ek z%fX~W8_*66O=jd>UdJ1(viWZ(tNKYD%NP2Qth$MKuccH_sqzoN20+s4NOp~QNM2ol zr<#IkAIg^DWg-;o)5OcoN<=vDSh1U)U-y18;vt{)dqz-v-WqRc%F@%(H(_Tamev6@ z2=Y^F%2nNIUFY2O2j9)Iz2sJRmoCk!loI!Z`Q}HFYtwmx$Q(%8l)_QcJo$($3vhrD znfrjR*gVI(ZKO#FIZn~wO2uJStGoxiq+eU} zS0i|6LKma#G^Ia@jO3!6*bbg<)|1^s8p9t)GZplbqeT6qkx1izvpG?B0X@ebMnhT% z_^BP|N$JhcebtS8EmJ!aFvI1^0T2L)`XRHT3()V@X0_G2m;B|YlFzVCb!yfz{^Gpc z@m`r{FAg?(CjV71b7N2lo$&?Eh1+s`Z-V0nf~L1zM*=3Vu!hWNOBS?1hOfF3OriojCyuDSCv9 zl|eL8u@6yGTIsF7yTXRbydbM(nS$Hu2WhZc25!@O}E~tjY}RD;4`71CwLC z8-R4q3hIt>!fbezE?MuL>sDydpg*i?$N`H-7Bfh9u8yUwL5s+ElJ>vS5E9JB59tOdQ4~3q<1vO#H59v3M*ccmI!Jv@NEuEu`W6 zL(?$EIDuH)v+!lrl(n6NjE9X_+j=f92Ix2KVGd6wx(8t04tik!9-pLmgLyleM^Cm| z_1{5Aevx3!Jykc!~b`1wBxr{530c!TE^R5iuCoV{x$`?>$-s%SMKiRI3QYKpPp zuA1Uyn@0tVVOY#lT?y07fGmk`LUb`r@Tl*jy$bSxj*3Z}!K?AbjwMVbqYpS@m3B*( zc&Y|KesgW5(7_CYMf#q}X%}HdQzwP%ZU5!YU{2*2%-o)N;j%Hq(Tj9BOL-|$mq%OU zB>WJ&BnPI{@k#$!BfOzxFjL8>*^;78P}zx;>F3sT-Xtzl5-znv!4d;zk%Ojtuc{oA zCJP>h5a$~mFWhX~X$px4r9$+G|>c`JBFwFgjDU!--RggNWdIO+UwJ zuxCKk0!`-6T6TCpYri*W+)n91c?4aX>aJW>vDNTWwlvT1lLIfcpEu?yzmDw5g24eC zhobZA*utyvTCR+6NATa?*f=l4|cMjH9mt@=rpLUNTH{ox8 z0YeH~eE&t)Lbu3c(p~inleoC3r<)9Pjx?80m9%X_ zu|EiC+PZ!x$JfsJFwOumne_{ZF^>vB-edUQr0BMUrztGMjf0P6R+&qdaSxs;Kb$b4 z?7*O^8N!BeOSB`MMv*C^hI0=UCfcVJb|p05pYaR_d7X#hx3PY;8(tfFKQ#6j@dwSf z@wFi{QTl2NNK#dK;OiUOnByI5Ot8~!n=NRk>Z)h<9=^vS4C@81k%N*tUN>1B@q>Z~ zumPU*DRz;nzT#CEB6M@|HklHP2+Goq4Rr0yS9oMsH1-=3A+IK5&S_~JH!UmL=RB?dOU!#N-agg{RN-u!IR}oBX{%#zqI&;&m$rEOVg!R zE7kPwZ}&P#2kS9X3&C5t>RMC35Ad~$H$$AYB3QwEGnL|hOJa{K763SZ8PDG8{3vo( zAFLOO7#y9}^JsMzocn;VVhU=r z=S>YFf-Mv*s#3AHgHr94!g*NJVeEnoLuRk|Q6fo^!Xk4zG89$AzZ+}lC)2@<9@ltG9Q@BEj}1Sdw2V5dKJH9i_g8^mko z3^dQNzKP>bM`))7xn4a*apL9sFX@HtZ;9$t1Z4vtaO*4o>gKzM25L$)cXx>X+&cQ1 zlukEi6#I944#x}TPl1d0EcU`w809d4t=>}$AXv+WHamHj7IxNEZ9w$*s4P}M_c7-^ zDmeXceWCwm0cZ{UbrXltpjJ*h@M|50=zBdK`j@AikM0ai$u?>cSBowumW@xP=@!C> z+bM9CVX)uP)mNeyqvm_q{;G~^0ZPPzIkvYiN$e&z#SwS0b zvQo0}eh8i)NbI2l4^;K&H;r`|dk1<)gPed2UR>FO?DFk8=JYo8I#fl7bk}B#94dgv zi@Bfzf~m#}KM(hAhhNQ859_MVxREs&w_L@nOWaN0RU>sHCmh*5Q)1H2LzblT&PzDc zGF~)wVd}ULZNc)@R5(&|hKB~Y93bo`+16cnHCj23)M}Xr@ceIH5o>>Hyx^d=R`Fl) zUT`x*lMRG_O~oDvW(~Z);jo5*Pv(<$%ISURBwXwsRQ`08;Q{8JH6nj@uf3GRZK=?l z1w1wuTQmDPKb9>55Aot9a}X+L3wLb*#6Z>~HEjbjUFm&1a@4{j?+7#r#X0}y^@GXE zYqh%IPOLLeysMw@sOZ(&xlS4em6qVHTPlB+UmXk#R$p3gkEJ=l+x1_n15$d%O#ofd zra5fSeHmGQzTeuyp5N{Iy)r-q9gZOwXY~4Jbmyxb1Hc2Kg%*ZCDUn$R+na|fCl`JK z;^Gq$@aCh2(Jfr>^REV7|KKYi7Wxt~=?al{X{F^~+DY`DV4o1edM)$!Pv4`1b=sQ; z_1}E54OuuXBCfWYXWuU1^1u{oMT8t2 zev$x{&(5JL1~zOKtgie_%aJGxnP_rQdIPP(1c z?`&I(Fl`Znc@vmH835trdR?|9WFq}MZ)_fWz6h=Xv%AboM64$Y-&&_w$UG5s*0Qou zl_|LKMzFpu(%PFf`%a@*5bDBcZ)s0kp7`Wzod_QRvYeOhMa+PYOKSZOHDumTTeNIU zy#-Ds3M=3%wKCyHKf~NnsqD#z3?9y@>txrAo?XG*@}pr$sG0P28RZLMNTS%s?<1yL zt`2_8$C3l|a>U&|#9A~*G%(Sk788Ol!+ZV#T)A;5``D1O3ohN{eSnI(WX?PS4NUD- z$@0&&E`;UlskO$a#MXRlfD5S*Mr8fgxZHTZzYI47At;}I$r7b+lUXHG~bd!3R2+Wj>vlHcR^_r#*izdP3&%bj=rY7oR7w&@Inz#g?y*&5RY2) z7M(wDfcPs}15(=qXf~=r#U?zmH?6Ck!ITH*Obf!H9Ggy&nB(OAQ-c*$NAy^6E-hCh z7!5Ztx;d<6=h)o|RsQ}%>sc0^I9`VwdmW1`#?Pcm!mq?k{rfDgh6j3-XMTiE+0rS4oF0G=d|lwuy9fapO2j&qB`<(y@1$q4 zoN-ALGm*Vzr!Pd~M*pbM2=}l8Y;}KO;|u0OtCv(JlWGRvd%GQa;9h2EF9?+EP^`?2 z0J|WgmKBl$sPmLEzdn4%kwH>BSk1|22yW4bxQG%aOaXA4=f3GWq^VZn*#yqmScLuO z^wR!0y(`J_(kBiyFYtQb0_Q&z)nWv6PcSOBWc}h{%nMQ5^M3gsm&QsEqC4Z2R@Rb8 z>plIiNXnl38@VKa8H~YBTrFn$iu_o;ca@@mi@#LK1cUPXtV3Oh{u>?*fAnp0#Zu{;r&nkuOQ8@E+$%7~LMeqV0x7Y$N$bjkiPfwub! zRA{%pv$g;Lg$w8V4rDc-rfdE@^Oe2W!=lL`*(IItnPvksBAm}}YBPkp-z@h45c(&> zI0siHLNMus z0KVRE4JVkE(|3g_MdzjGD5&d1gh?`6J5k-2H4X& zO#OCpV;uoBvm?0UToyF2Yn44xj;R&8CA)k59MujmdVV73?SHiJC zWaqyusuJa287WuB1d(x#P!0l7ynOaoVhU0xS?iaQc~dzGXK4jVQ^0xxd}ccDAF{S1 zz+LA$!Hv;=q5v9x4InlE4ao>8InHRU#1TzpEJ@Q$_qrPwNJ>rghkAVBNHjtt71E6< zV56DIgkQk#Esj=;rU%JP=4K+b(`Haf|kU6lo)S6e{pf{qaG_<>y^?Wj54iK z!4gBs)nU%)vu871Df+M`{I$Ys0R0%PJ&CC-mCu?`-H&&vcBQmYa)WC=(KvG4TaJEy zWujAjCoBgzez90VnxV^`n){dVG0L{QL@S>0QU0H-b)Q4_K& zyG0m%(JA_rz-dr-S9h4$6%9s3jo?+G?%NrQBXS50S|-6-vO*N$ ztnyJ=O?m6Yd&!PJDhg@J&Ny&8@uzu-jIr&+I9V$CgWT@Jo9gXUNYa}Qd<{gH zVe-cI*+pNS*I!%YF^hqW4rp;%&QvVk0FE>6^C)47G%2xgE9;)~kp$X8YDHA5QZ}xP zLNo14r3)u{L9nnuDy8s21OrI7e>e+*MYn=Zg|tqE4#N`^P)MNa(eZE_APg_>luFH# z!39bH=ZiNKQ2HIACq?HYAh(jqa)u^$vCt35x$siFz;M+NBjW3B79c~-v8f^B=MIS< zZ^em{dh?V;6ERNdOMkbrja6AkN9#i*Uox5^D^F$=+5t+)6kW)ZU#ljE>_=7hTX;VXrRM_nDQQx_t56tO)V61ipPhvwDh3~B|z_Is8kBwahO_}mHlN4>R zS1o=AMN}Nu@|*AVlLAQ4)$F7i0{4Q56d@m(zds}N+g}4%egvTSKNG5!^#j5~(>aXG zN&1mjcJ1tcp?{rxM40lOQ_EX#ZLA2Z$#Ymbd{er52jF^|wB6f8rox;LY?Kzkn{oPk za(_QxSDz@BTaS4+S+h8x`}3Yt?-PbL#$tN@x+(7pad`VwqXWwh-q&hv&sQ%QJ}n5$ z8oWzy3;N93cmAYseI_DiJ&ig)KKAD!rA@^)s!$L{A$CuH>F^!1_02IdlM3sL5ziys zH;h;C@jD|F25jPI>P-hGycFsBgQ2ZmQKCC9HS^6Ox_^k-?6br(Ds~OUsY{ZucoFFI z+>`I(gKRjzmCeo@uk^O0^y$C5olx!428B$1D`b|Z?&z9C^~$u8nw@ZB-Pzb)xOjbW zxTSM(zT|Z=bJ868SP_?IO#(?%04$&z#8Zy$iiOkkH8k(3eTq!uR%67gjb#sPF*%5> zsi~rjfU=f1F_{dtWV?5#mSrDN=J49UA~ltQ*Rft*qA}cTtbNKXRv(&a)VK$JFOiTq zx6tYz{c;d(%a9K@P=>*5{5a7dN}0^w>=2q09B=7yB{hs8X2UBS-@Teu+KD%8N;esc z@g5;WLZSxAR|rV3v7@R$N1yph>(iPT(sJkK=Lz8rsk zzf0hGShgK)v!+10Os{lE@vhg3r-%eEozr2f?W_~#YhDOHP>dckGg>{tbJ;bgP($Oz zOdvDnxke*%+=QEc3W|g8Lu^Z_?1g1Kn7=sCLPmq-4N#7r<-Z`wthS>Fr+Jra#nzNL zsFOd6KvhN?9etoY@;K`jlLEW^%F7cPvyk>!LNgs>mc0^w^0@UA7LAoz=>Fr z;`{Nh*y4zFI@8;3B7;F^Q$>y7wQzcB`pm`gHjzSIMgUOsGY`a$NJM^!tm@AP?w@na z`5$XX0izg-*M0)DokQeY%2Fn(`6&Sp@1{4pZ=NlGO2Eu0@IEhqS)cO-} z4pHznyBQ#*C5yHO0=K4fZ!O;`mLK^ z%o;+Dj+Qy;(r7}6-h8v^KiIt~tvJCG!lLmiI}8 z`VOYCO&aIg45bHc*@byujXm4Q`6Ri8J^~j0bNTk!e!2sdPI(FNK>kgXp#V*0`ed%7 zXhD8IeBgTAvFVZ&iBnw`2SG`w4#Wldeh;QD5~(Zr<7+;sDA- z#Lu<#oJqyqqc>X7J9;XvkX8p+oAoPz#jn57_)I3<@bOhI-(`9#0#LryC!q#K4W2Y1 z;{c{UYD~GNrsDd&p`;HN*@tEsa^}BKFm?0fUU69cO>Jj_pYS3x30qdDhB1|4la+w- zi{c^IR%1|$49YP3_b@S>x9K3GDbv`uPDskL+E1dQqjei&4(ph$2PlW)9gTfx%QT+f z0s|rAXkcyF&MIHam~2dtp!uqLSthXWOE)d8)l7Lrj2OkNm~OaxU2em%Yk}Di0zFm&= zobNvEh@13eKx!JX^Fv>C(GqNAFddVEw^x!FZf+)Kj>M0f;R`Gf6nefxyQQj(O)GdV z7Up)EdjDmCW2r)>)3)j>-wB3H#qQa&H!rJ8vxSH6bo+Jz*f_j6 z`Tqa1su|F~jlU_CU1ht6)sw05az~vfGs>w`Gr&RwLafBFaD}+Ksm)qCSlZr)d0lMh zxn@P5)KHWzxmRb@WUvh7lJ2rj#NRPN5{P3%Owgi^3HI2#qn*a~(4Lz*f?< z*V~2a74~aspqF7B#zY72GaBs;$}S0L&@PLhSJn!7b{!Mto$ZyQh?b|x{<2JyF8g1< zl*N_J1;mllnm)ISB{HsE9z0Ffco@q z#X<=+HTTqYTF{#h_|&+_l;(~Sq>3ynKAZtTF)h(_Pn#(fx*E~c_ASmUjjwZxT(V!C z)U1jmXLvuPBdtB$72jQKs!hR#6fKHoFBo4uq)XO*OMhC`gV6V3yv!UMkU#T`0H@w1 z(UTwLjoQMq-;J#53OKtV12h-*f<-ADktE_^5-z`f{pz|74zrdq+zYXB53?k7{#{p} z{CisLKCO<@P$#tXXIW|iivSe_Lp4z6_`ehisCNZb8*M9Yr8GLQn$P&T%XV_lH)a9=w zu$nzrNe)crji3#paD2)A4;Kq3c`mbF_BCjLx9I?}^}tDc=fjN#IDq%p{v0*waG~@$ zjP3U7sW81|#M(pnBGgR~h=57hBMfy5>vY3x`WZ2xZ+EQie1_bu5rUWQWl_P+>j~HC zfz0n}jjI=IMX6R9PmQ8>G3kkmCm$csG&h7baE&H$an_?0;|eBk6+c`t&J`L<D3fiv&m2rKbKl`g%c;d1w{QPVyPBA#Qo4EPknlL9&; zPmmokjKVnOUb^S;Q90JBqaYm+ z?}zWyu&=km%Xdo57Pk$sD)PXn#gxQF9NC5H)ia;Yn~C;GY8)>2vF8&SrXiDY(;MMN zfW!w3!`Cqj_C10Ybysy;L z!O=?#z2#U>!}w$Q#0;nT;GannHe?H+E@pHqjr6!-wxH8%c4hFdqwwk6v<|7q@gi1& zU9~jYDmDL>_1d4HfSKo4cS?Fs&C!#UPN!F}jnvXl7J^ewVxSc*DR(OHy4M`IJ9~gq zk67KeX-pp-gX%VsRtPI=xcxGy649(I4-4pz?t^4%vf6C(D0OvcQK@xK8;oBj6EhqX>JOnJY{ZLlt*N7A7tP7AqPD>L~hQRbvTxZS!_ zKS5)vw3Q;URJD~>M1(eLA>4&51VyH|Z}+$$_lF9pbZ+B`_aA!gX708gFqa}+qeH=6qP?8akAv}x!`8P)NVc9nG1Y_atFuEcs<9p5LMz7{JC zrlJxtrM6zEqlJPM=ddxe0i8Z(lu$(MHP^(?553k$Id1%u6{M}13+^k~1NDPk0Na=O zrvIz|Ie(2mjX#oA_P|cCF@t}_lrbk@x8wZL)55AD#=kF!>nqqz*7m5yijaCWo`qwt zsP~d^AzM!#j$o9DY*ZdBurAMG2xc=|I}OK2@PP;9(+z5_Aln9EXyWtV(XE4$QH4_C z1bx=g%-508N06V%Sly9uMp>!1I=>NB{@akNB(lzz^`ymXQhoO(p#)f6f+FG9E@|8|7kwM-aaj3DDH z$l7ct#Ud^YS+i($^i3?IEXc zxzC#Z{Te!e_=C-!oz<+B*9=H_GCBy7>;#6QNjW}rZJ1v?phCJ$(W3PEgUp;#e8sz6 zY%h#G#HQ+l)e!l<^g9z8*TxRXecYC2sMPy`-}(OR7&}iG3J4y1o;4xd3sD_T?s+4S z{#xw&fijYWYhZEdx0>^iL?J|jnA0q9kZTpXEeWWN-3doI z`ZRW;!`8IO9eXv5kJIEIf0=K+HLOSZsym!0R($>oU*&?Uo&U<>T7ffLX@qS(XMVS2 zK37NnHM?mMzB3huZ$ThZ%?trGsY=%of41hLX1?+7-3~PY0BV2l_O02;<5;I2WuipOm+OYn^{>_`Ca?01Q?HhH|e+VU*Wp&o#- zXJ;B&hNN|>sFm>M)BKlIJwocGph4w}Gy|w<@yimsP6K5oF^{qZtkat8lR4=mC_^=c7}G3uV_Cq#!dIOToRZm z)5TsC&e?#otZ465*H)|->Q^;O-`CZw-++Li2*|r92NuTXF+mf_DPmX#@oRoD1Qw;| zQsRf)lC74BB>XO{v)r!|?F(WbLi-H&Si>=6G&YPZ4U}qL`o!23BXh+sGrZx*RX)dG ztygr)D5oqfS#HXm4D2X|v{X#S2QhYeHnfo^bja^+Rgo1ov++edP@_!yT>S99R!s@| z!v^L1{?N1~3e|ge!Rf{GKBpYVT;=8_YSzw3Pwd;Q_fQ=bq>E$|-;y1&vM1ESD~#u| z-}M*5VHwl)aCK{6G%p1HZGd(wcDua-Q#@64EO6*zz*AwE0X>r0_6IBNxC!%I%D0){ zfO8!}8`!X93}loaO?u{-J`z8&xb|w6mM9f+M(ZQG`|m#)LjV@pcU!74o_aHOQ|k0O z+L#cx8l>m-6DDO}=7T>bP#k}1aaYud8t+1RF57AwQ!1dCm*}re+Ixsyi)Dk?Ot7c| z4RT|Hu;Y6&L4yYddd_saz1G!U-+Ij;gtY3n~=;sYPH6pWD0uT~&if}g)ga;+mAKU}#Tn1djyLbR1Z{G7A=c+}Gta z7)w&4!Fgc!EN?EKAzVM+jW#!~P zIHV&7U5$D-XQhD^B8>UQ0j4yectu+BcyGU z0W5zridhf&H#YV*_8<4)JkngS{$sq+zt_24D*zgH1*ekzS%V;T<;g_AgAprc-Cd4v zSC)l0L^f=N1}hMb(m@veCmtp0X?Z&?1qJGNKw8WTBdJbV<-|9otZuZYkaBJ5 z>BYC%KzZOc<0MD#G(;BZ)Cxodd-Xbju9Cg%{OLu|h=W|(S!*tUfFR_IUs#es<) zyr-x8El=|UqU7hJ@eTO;UGP4ZH?ioAXP|1N7eet9HEm!^4G9yN7gDBNcqP`@D;qe? z5FCH&A-FtIG5h$`{9RAb0~j6Dv=QubqJ^Y4>{91rc}h#a@GLlZaVhHmvqR#PE9TJY zQbesH?I+O>IrXkOwa6qCW)}8iG%>V!bCOT7HZs~Psk*NuL%vhN3M!4*2X%ARDyPf% zh#*00{pS-2tPSBJXUW`gFNNnEutz{&Q?0io&fJ{yuL0=GW);So>7z4CP7B_2tkA~o zlDL+>^-o15u#u1LmD>NlHLi1iO*BopU5Kne6ONZI|1i8~B;&1E;3}d=-p&Jrf}OpE z;7QN>+E|3`=pO^3{P35zA-F52u7N(%(3IfI^v6Kqwv*N?o+J6T2d3jm?`}E*lmb#D zC>3!t`1a|-?8QF|qXdi(+521*iNlz1Cp4cW%F0H4;8Z-HxY1?pQ)DsWAT$Fgev)|s z?EB5SrwI1CsDVeg0|2MZEqTpjMYYK1UO0lywEfVtIXj9Y!?tr}-d~$k;}jkt6-Zln zf{P~(v!aB8IMfj!m~F}m<58=)1b!9gHl++J=K1uOlEe7yp%N_d&CfwaJx3+~|)7j(uqAgIx?V%laEXs`K z(B;x4`id%W52mk}h6K+dcsJ3%PTV6n&7YEh8s(2Z(c3J@oT1n8bp6qChhaymQ=x3OZepjB+4(WSn}4PXa@le~NpEe_MVa}>p0RKDq2lxBWnW4u zu(41#@(5F*mD_zd%5ZT%m8$_N!Tglc@00%6{P~R9t{M0$wS+1=b5O7?W2n9)kZKdM zo>7N~G?v67@8e|jPefx+Hp=bk+-cZf9;mhZI)BK$qWA5;y@1hdE?ehBSoI%)4PwC2qU=$qJ+`UrE5ub(k?NpDhwCb^@egky61t586SZ)J+6 zATT5(Mwi2z8C3zvIs5Ki2txj7e=HIVMVy8Y8KLI$`+jr=4Y0BClWnz{0SL~4rwt*1 zl({dQq*bjGEDf;LANZUZ^0+1V%`8Q(+ z3Gm#;9vHfjZV-_M>1HTt3F(kd0qKqzIwYl$4rzuG5a~v`L%P$U8|IJC^ZefH zz0SuoU*Aq}?==bE@rz((mKrRPq zXU^Oe=2l!iusI9ZE7_6cDtq^ihZNQCBV`i4@BVz*JGdKHC79mnNbhCT0xjn(v^+Dx z^&5~0ix1JaWI`+R#end%e8bci^c!3V=0H))ywbA4!DLgV85O8>{t#Y-?2F*!wLd+t$Zvw|VUebzpE7Lj13-61+Ij)wCk(8hv5eO_!X7YR7ZC!}0WQ^P^YcmxFK z%rjdVnQ(r4j6;$|HRQEXZ_cyv2Gcrh^9eCAEpu&S;Q#n?E8xZX=YAjXIc?JwQHhR_ z?lCTIiY1IbleB0|?`;hgsc!pTf`53Z$>}RiYE?Og2Mx)GP>$9{DAC*Rf*%u#4;5>3 zj-)@tT+y@;>g9q(h~IIJBgi4gTJGA7)Oz)clx?#lzH>eIu>YM%b0`DZw=mls%gg43 zG1qbY+%d#M|^%%Vgm}bo_;_ODIX__$81;j{wf{?fx1XXC=a&7M*57O_pK@W;kx5?H?@SE!~u?*Fxo8Q(R81o2DECI5&WX#EF_KNS5 z(J^HRwuL4?*{Ed5l=lL1TU*) z7wSf8&+@nyant(gAV8D6B2-CpXkcIpjtvD2P-0VrRcJlJ;gMqTrHd17dz9H zOTr>NmNxepg7#U;BEhzXBZgwMYI-@TOJb{mE%1f9kEKQC4Et|Z!-l*m2h?QO`xeF| zHO8Y@tn2X9FhF;DHg+B0A`^x4yW4INMzYmr`;L^TkHDC66& ztMEj7*oCsEPO>7yw*Lu+(ftDrPcZ#U1*>m8NiQ`3-BggyVUssrNTy-k-#NM9S)bBO zq%;5KM8>@bo>IGz32{RNZ*aTed&$vH1ylQ5-&LOGauYI8=IHqXH+^eT$UdQ+ByiDR>zO&4%QYx@bi}j8&`83-6mxmkCJ4cx5f4s zuv3VVW(_a$6pZHi`#9uW!|Z0ku*3VQ>`VaVN`Gg7uM6T4Wi`xLwh8BIvjc>KU|}a= zuo#!*-zweQM?8C-b9>9VA(VvysiW2bB-(YL;B$TRKtvfX>>^4|_;5xvI zg#9r{kX-i^_9^7w7|@(b1e6t}<6H3M+4t+-Hm@tQyVIX?Q`hjT;HyWw*B8BmZXSi$ z^+E$XAh(52D)rz6cGKVaE=29jCE-$n^{8D?;4 zz0AWXm=ELK%B^5k4AxPP|E!IyorJREe%+Ce^g-ITK*mJSY_=;7WCd=0W!#6scEH0*Ycv}C!PPUwUTrNKPR9@6!Rs!O?VsBGfg^9z?c`nr$@M|n#Kg70^rie+N?lvz8baon=@ zN{ZoSSpXr2>euar4naxXGwSW0s@D975k*ytJmlP+?b@@2$G3w2>GUf0UO~2CekXCYZTECjAwbv`; zNpo38Z5)n2^hUB=nIk3FZ~PH0+@*-mX;5E=viyttlKEjc!(3u$Z*?L&;OZPUv}TW1+iZ znVW$l4kXq(!kW7Q#Uu&#@yF9s(SbI_Rg$rd`8XB5h6ElCG6iC`XD5y^yTXEFFu zZ$E-l1rH!Qhx#4#d6E4OIK2=+#U_|V5HFpWTo-J_g+PHU$4=!!$B7(3U8$kfdj`IG zJVaEfHVPphg3o||=;wQr^%OoS17hgX2^>)mzPJ`@yEr-J&yPN@jnq_Dh}cUecpm$7 zoniBpe;r{EOD7+!Uih$gL%ik{R#w46#5$LXwf}|^SyNfw$-?H8GSd#gkoh{cj(R{J z^Q7Z*&psU2;>1-vr~%3TTwkK0W6jI-3a&eLkw7WsQbyG-o*ipM^P@J{7xhm85!DZi zrLbpg2}23+B`3v!U>~|-<2}F}yL-qt{-%@qS&*Y`B1x;({p1c31jJ9(q#8oq&fuSm z`nK=tB!6&Ajinf&8fYP2@D=DXI2N-E;}QrINYg(GiOnGogKCdcQ)CR2Lg|13(t8o~ zdJLcJEF)MeU-@;tNl6G=&tW{7Q-&i38eI86ER(YA5Wn;*XG8E_8?*+1F!jflgQ`%*<0riLy zeR*SoCYX>+1SP81UayPs>W+=H+ZNF<7c#V3u-^GMbdB3G5hG;_DKEwgk%q=9cU4Zj zG#w)43yFQ@+1M#yS{76Em58NoqB4G&*pw89fT7CPScus$Zg9dagy;$V-do+7gX2S+ z53SS z9$Eg1@_vlx#}iLCI^H2y5||NVk&?;|2+u(FEh?%GU%YRhwyXUZ>4IHhCun%8`iUFs z4&m|Fp1=Pqnh4fCJ0cx2e&x^~QAUe6k`b06lJw{0@;oR4rw$e9{e4x^5(b!oij=U`C9Umc8Av-e$?Pkf&%E76N} zeolq1a5gF3H*&ms`jPqs!%R)wTp;hjfUu5Sxe9|E`2@v4Ut_}H{$DSYQKit38@0TVs&ONY>>6R1lqU9n;iDDwOG^=x!&*sBzQ6m<92in6yE+Gy{i zv{zTVSb0IaYo$X~ygsdqM5scD4LCAhRYsi(eZLVd#7vdC7v8hJRY{qO&9>~*_Ha=z zA`N%_R7piI@^4%>#YBe_z+P9*Zf&%^5&yp<`2~e^$>oG73?w^tUOZOZ{se3Hfx#z+ zHurm1jX&zuM>FZ+39V?03ElOTInh?R1!?EA=nONpsy!agz(ds4ZpEqASV|F|6p7Mn z5&*)%SG2C8Itoz@Jv5geY%#`VD@_8vr(vBFe?fQe&n*69Ic@64N5zXF5NOrRTr1VJ zh7$j}?91>dCyvKADwW>U&KfB2{z^PGZ*0Z?_!e}txhuS;D%+mI>KfF3eRX)!mUTaT zHnbM5f)cHRQQb%*v`61rqRU^tNT_t-Ks(scIU!w*;v}9X!%L=tf)gg*H})b}e(Y_> z&Le!ybniS$7|YM-ym5#O$bZ+3zIKkOX@v?1BbF&5m_!27lidO!vSI2Ab3>Pz3^*v{a_-)fkFfJ&KW-*&)*AqN=3FqX*jM@CeYta(cp7LPa7En58@Ugu; z8ot{fK2=bZX{wLl#6*>I-u!lP;9L@QsPu)ynsU$&u1l;GXDZ(%I#@&&2{iL4J8Lx9txn~ z#=q#~$<7QB;ob$f@t$0GjtwWPr!Sydxd8vDO1(8N)}KcH(hgF5CF7+CL`94*KY)D3 zu+ETK`-$4zMy+$5g!eRK-Rxf)Fs%r2Xhk_W(;d5uY(CpE6ZZS&pc-d%^A3R9?v*ym zIU0rLkIM*%qBi}T6y8|!Tole%8_}>nqlI*spfr#s9fh>Qc;L-x-Y2DF-`Vo&Y|z9y z7#tv)MSZXZPxaZ(iIzh}IajQ}3E5S@$!wNH4^=zGwn6wddWf%)VOQeF!E96~q}Kv` z5f=J~v@eE7HdF~I*z?2IPV-&8vwdUm1J8`+nCn8PcH;K85MOvO)3yb*PPUZ>$ z@e3YP*lD&hyRG~AmHu#18U%A9gt|QL7A^4bh23QkB_K0nG|&AL0oRx!i_2{B+s{!y z=zWa^Q%NZ~G9|F;y`HRiNiR%C&EtIs#e4ZVia3!+kxp!%JOF#u0^2lFVQm)C<`2f1 zd+tsyXqkKWPOnfq^PE&H)QoM(g|Z(B7u^=3ake~u@Si4826!xSPSChFNVTkRVLMIS zr!%!OfV}v8guljl=`|)`Bb2DR$VyxflxN=3qNZb|N1NeUNeocXO1rauJl9Y^)B*XS zQD?5<;B1Ft9(^-;;;10c=Lo6dzVZ4UiqKVVt?%|}@!fE!j&l8pblsy=64cVpcuvf+ zkj1O!EwZSQU9;$W@Zs|x=Bhy1Gj4z0ge`#1wI&Vxd*wXi1JI=V&e_wm@oCdB&Ej8v z_ik1KYn(4vJ4naG^d{#(c=imQC|zXv;3~ym2gi!%GGC!|LJhh9Y6*f~Mqh);$H;GV zS~%qD%~LWnq;O5lqBJR)tqF*?#e^RD?0^i*EFLcPh;^HWH^BbZrP0*EA43nb% zsySgZq#;Xb*pU$97#zVvJG#J;JEZjVjx+3K#De1ph&AREmiWZ*S+!g>JnZ(R_RKcM zpFd$A6Wvo06>|$GU0=vcayeOE)gc<1D*4_E(W*gTSa=voOn{d7W}H%OotrJ>PGHB_Ih`f%LkQHatx zGD!vpyuPT)oW?+8z250sP8%J3mCpG@^c4(4N;}oj5c_V)jVW1Rs^|I3MCgn7R7z2> z!R!nAbb{mnARoq&%-X;!vIk0(J=8VBSO5-s4^8ea+)x&t-T+`z_4v-B2t^)t;FQlR z7Ry9to{abp+m-$;w;Ztb&sJB$(D{4Fp1<|;y4Y{tSP_4b6bxRP6F!B9!vZb_;c@L? zQ8D=Gw%f&)SF_+ubV*glTDMxnsYela>a5Y0O~dXt{z^FnrMBC47z#TooYKHz4kTU*?&@WH}Vz%B+0&x){l%OFB{p*n~aDWCK4YA0}!F|MSw(WaUK>kZ5$I6{DYp4p_ zlQc~#B|v|>W=Y@X@Ot|~-xtl};#WsjdC{7S-{1)d1j>rNX!R=70)*!a&-NBxL_er2SB+L~tHZ#_!T_ zi(HWlLon?5X2kgH&x+pA^tz~)uodCcS@e~yc{FBH$?3O(3;JS83D zW(+CO_35du>kOu2d}GV`+Zx5#cgvH8TKT$dW-?&p!PN!+2=ZrU?64MJ&S7}+HLe*p zmi?}cHXR7j)RPsfZL-~aO)#S=gRDK2LLU>|{Hh1>Jx*ivZ$z7{RRVov2Fzq3X#m z^!WEo8-5U_!O!%7O@H5ALmYrMknJ1&@sPFMa!oW`=lLt2f2KheTS2(m3FyIp-@?Ws z{Jtw+&NpkgmOHxBd3BEry&r3AG}?B*Y2Rh>!kfUk^%pM2U5|XiK9|9wU~+J=)1!Y- z9~}X4K-I*U(z?WSVS14}hyF8lbx#FpX(o9pA z2)Yib*qr|rf93xIgg5r91Mpgy!hZmviT$RjEj}TbuIuL#*G=p;k_r59aAMG{Dv;CH z%o4t}W&pHcjHGwyxL-M#E8EDXZs-8N@cjyiF{pty5xF_dSZM!m7XW&66R(3K^u_Du zh&RNyiOlTgiqBgTC=rm_ed1;i{46LF`y;Gr;8jL*jRlrZKQm@_WxzQ1zbC}OD(9<@ z4;_{*lW`i4jeg^qA5DIM^`=RA9;U-B3v?BuK4JrpAbz8Gs3l&6tQ$<2lvZ$WoEx2u z)~8XDoHt=>>&KYf0d@-@l@Lhz@rK@m#ur@TiHd6<83~R@-LiCYzO#s&@+mLrj&zPJ z)M5s>&Q#>Dlzj6%$K?H5-H-BIpV|Nku(m*$Op0DJs+Q8d4t0vTI;@IS>cDW=9 zhpQnPMlLL5Y%vuS*u8XGGPHR48S-;fnJA3ve8gRsxm9iq=(b7E;HpBwNcy0fY>pC?%X;3TzGLyOml z`sZ_e)1IR57jUau$Zc<9STtmK;*s2lQhBmFznk&84jvxAB~*IYJm zamE`vA<+HZwO3Z!?MtBR=E>8jTKT(tWeGAGu;+yR3O&2t7KQ=x8q zkDK*_Zp}h&m)ovikax89mB?02CZ&t6cZO}*l4#$_h!wR*y<-=jmTo7*L3lNzxQDnA z^hb6%bS5yFu>JtTugjlwwZu@UzkS5;@9>Dq(Ej6Z4DDKP}MV6M~MW-W0B z@>J>4F*CFaeMVw=RCtz3TpO78@faKc61#1*o?_rJ_TeKocT^?`TX!DQg(Um2{CX4b zh~)?ew?*YGVdPpHA@?A2>atyVr~u(Xqml9Li+GsLu6hDDuhGhMYb#l*L7HkxOHf9>yN607eLd zH@ftfSdn&-6<2>8eLVyYkZ)$A{;-U ze-#JpKz&X=hlm0m{$vf_4jKSrzmrD+)o)kEL+){5BmNDq{|w+fOJC38*TKIKZ2IV0 z2KSIPOU z4e0OqLvnpgxwZxW!2Za1MZHy~O&n(Zr$&9!{bE46f4WO)dvc^yH`hNtDj z{R5@f)mJS5X@PBgm%Q8fxQf-C=T@N!%$NPvQ?Cpo*^d`NZ>9yK2^BEz(I9DadF@tp zwTXom4#@=4O6!n#quK-m7h)X_z*K48I;CF^^a~KzObFkX5fHTZynZcj*8Ngo^%1K? zI#(d((_3>k3_`71F*0#r|UOq?X|7f_fV4THPw;OQZE@Ke?u+D` zur~`J)V4~daVyU|dHKh+JU-W_KolWQd;k5+0zQP=8Of=QCbd^hXq3w#($qk?1w(C> zq*L1>uB^}h@0)G2CXn~6A>3Rx|9C2{l+W$__5FmXFySvVxp`*?L1<3(8Jh36y?NL_ z--p7l=Jxwx)Q4GfL;L&JM~|QxKpK8^^Z?~Pw>XX();JfVPhx&iu>I`m9rS(tS5I2L z4rL&kFiB-9YPa_&-vm}{txze#!|?Z_**t!$&^>}Pt^H&ih&g{I0?1Jo5^jAjG>mJm z>kGLS8dsHtOF>V3PmXn_T37w6{GWV{4#4m@V;?A--x_eE1->^@JkogV1#W_{Y-W0W z&XXoxLM>m&8Y%dFpwE5riPW&?SDj2o2x6E|OCP(1dDxbF}lsJo57&VdI^!A&1In+utRrAx!o&< zRGcxNp%w+Vf{(^papzx3&*UML)YQzxj*4_$2`-Ulms#1wJ~Tan7xxmEEI*5Y@W$98 zB_ZiJ;~Ztq?ADAFA8{|0wwq;=C;$0bSdXHwLARXQzpu#D%s)!yYAg|eVwUc&@_;=9 z!3L4}yKjJ?_xGoufXtMB>#6m+g8hfRr7$FE7u-XIH!Ppj&M?B{&K_Y{>!uRQCG}>q z7h6<6osNlldjq>RxEY1#$uE5xl<7D0kxeLMf*BgZb49s# zbXpUnI}DQo%i)tZItYDoj|WTo?)iOc_-O&HySm@ptCnP;gb~N9Ys$i_wE5PmP1-^C z@O2<-nym7jGz!bl4pAg^s;laP zN^ZDN?bovY;8&aRzmmsw0;Ri})U3&Bkq~P@l~|NR4uWJethx6yFJyiwvf)oBpa3>K zu?5!Ob5YU{m);6F`R9^_`hIuFdVO}x(N(mhUZ% zfrt~pIck5liUS96+8bbm45)0Qw-&~WuT;8kyl&yX)oF5u)r`|>Fz~`eHd*W`b9#(T9D4Ti z`hLuu2!a*lpSAN`XR5%jdshM~vDPmA143z(cBf3t&$zzDLK8SE674Xo#-rc&C5OiG z(+VGP-88YF6+MadxPZk_?Ge;L;p+@YiNp8zzgeFwF76A#Zj&{~3p#u>(o43z{wo(D zX6~j->y(`*{mdJ#_@Z_dvqiD;6(>KwtydfLJFo6r6~Cz2gY+K3hmo3c6==LpFq$yw zQ5~%IahaUtF8FkWY()EU#7^GzMZWS||B<6$VN<%Hh0Okml-Xd*+D2OQC5thqtNT^Q zNK;IMe|(POZ!uw9oU;iUg=$=vxc`M)`WZkNC=8V+GaQOj410QLHG+Ezih&>e ze9oTB#dY(M2fJ^F8=7HpIISPUkj$U^&D~92{eA7-P(piPB^H&}HE^FI?UfftR`>-E z+g3Ecj874kdESi|vA7$M5#?N@g+`fY)i($B&fuEZxwif46m+9%{2LuYzxLE<95Rtp zjv%_p84OmEMKnP2$}%Q9%&>^-g zn;2VeIqM2zypih1|L(5vmYErq2P1F<;3j6(c5JTgg%nu^(0A_|$bP+fHY~rFn>UcA zvS$^Bl81^;y#1vUCwPaC=^;8)(d4Q{0J0uv-&4;w;nNv3-lMK>@S40zMk4O@FO-bL zK*BThC(?~k4IO{Z+KSURZ4-t9PIYo>m#k2PrO6>dj!Rj{ejCg5=_xdo9sC%cruFH`oTZknc?cLXc@EQ)XvC4~>clbqZMU z%1N7uAFyFXk6b`X+kn%zeAN)`N!I0?IS&uDdR!QS>OFBj{caSVh6QE;aE}09xq6b7 z_=4jMeq*%nkw+jj=(+|ubM+$;XqTVp=DT!I^0*b9UBxc2Q?meW1Po$|0mOnx>Xu+wtL)w2^dYw{pvex7^Em{n}=dRw6lYSq^72j);+;} zZvl+so9K!pM>h7>J|;eJAmhYOydr#>E7P9mYq)EnAq5kI!gTgn2seN149y?f>W7oa zpjY;bR7MhKD`GrGLh&~@^c^KB+RMo70Zvsgp8b-~nl{5n#~;+lq7<+wWr$iV+PGtP z7YB${m6nH;nlW?~$mdtd#-ngrzVug{NO+HQ8Kgq;HdTXum*SN~Bw4Ee`L&kb@*%bP zS`iA^>LOcnMId};Y1`}Xck?N|i8}mSXM$${53xo^&#Li*9*-t(*S}aV0*+LM@XkdiSbT3x=BaWNkPysI^F>(?cbzsWt64XW7^fkI?#IW7NB2e>zl1$_?z` z!`jic^*6A!P95Y#LT4i;;lpLRqji(aThOM8Mm~OJEcerX%j}1>eOwA2Eb!z&*m_7p z2-bn)h*`t-)3DVyo?NSk^>;RYS@&+AiWKdX6eV@`O36|e686sSB+wtLCcn*fU_}*5 zuWJi8hksLylDdosw8~!e*%Yc2wVk|dUraXG=g3XArQei>#{ztZNZ41iuId9SL z%o|qqGcB32X$!5+xyT+#yHTKu*q7ZzZ{2I#vzjCXUYnQv*p~Z-fCJuGKmcmV&$h8U zhb>CLgI5hQ#NlNoZeB3(Ht4nk@Rt5Bp<4QZa`812o(s#oG`S(*dqW8TsXKehe*??? zbNl%RRR~tOs%~Ys<*86AkoSd~&%Vd9<~`P(<;-{fjIgggW{z+v6fxiXM#~4-<9eO#>22Hf z3C+Xlxh<^Rm&0JMx;+@QcNwsFKK8u6`S7`yy)c%&zN=;WhSzalZWiUU z^+T{a*|%z&Fz`37mAcKN5EEGn^Bl6{B9;1nuJsu-v)r2Z_-quWLJCH?L+-}9ED!C{i1sqzVO4!i|eGGU!o`mz5XriX=MA< z$c(cd!o2>J!Ll z6hL{};hEG7#$O5fz|*XrJml8b#sXLzFuzk@S4#{xd9u z*#HU>Ea9pFe!^6(;+fQs#}gOb?Vyb8r+yxqJ5Oh}O)Z{oF69(D^#b3)F@R^A+-R=B zC!rKaQkd+_IDO4%A*&I){)oHH$na@y4iJ`BDNTx5NYRIf@&@&0-=w{_`*FVx{A9Iw zFUtdW!C1OaG}Y*c2 zBn!{JwCC!P&yFVSHH>}t%}?F4cG1Z0q4>s=wA)=iu&;1khtgv!B5lfJ0lof~+`4cc zKT=qK{OQzXyq|b(M=Bu>Kkv`G{k_M zDMr1+ECOLE9ITPKfzO5s^-eiEm9yUetg1lm&X}FwOC3h%CsRS9e9N+X@5_LTGZy;0 zyZ4 zQNS#IlAv`k&yME&h}GmA;~4K;Ks{e*^zNJDZ5w0JWxT^_XRKdfuB?#}tOR##DCqUc zr4duGxO(_aCe@%M3(}cf`&?P6v=G9DFN+JD`Y4g~Z-evRrnF-3UTwS@S>Lov=DdBOf5u$k0VNx4M=DLb#h6!|7OfWUbIt#K?V^)4UeFBdH zIuxdToed|Nu>Vz>7XKE9Bm2g1D1|k^UL_n$;n|VpfNk>73((@xUA&Gv1z+4TJ)1bM zqJVJi7|J*=29MsEpi93_u-PzlhN{l~i;Y{(js!Vk*>HPo*_VAWts{*)m|Y)*xl!Hi z&m22jIL-GXcpVT5n4ii9PX@#obHrS)2fS=-bLlYdYsZeNC>V4`jXa>Zk!y}7`HqN+ zQkl@%X7=E_!)K+Y_h*bqX{7sty9$l#Zr2}9`e<(nN!4;gorJrvsfn4bQh$QwdVL&+ zebt$d{}bYsGOQ@TJoM;7aY$I9Rz~w%T2Jbp4v}p5<2yCy_AWC4K~wCQ0QQG;yCy^% zr4)=%{;m*ionpffmQp_wfgeHH8B#%H{cnKl0bHT-mWTml)q8rtLe>$l8B z3R=ojT~}WVqQgIC+Gjhh_utl9nEUBGVznt1_jCXCCYiSbkg8Wkf2<`o7qByxxP2jC z`~<%RKUwdU3Gi(D)mr(?9*Nq~_KE%aQ$O zc3>)X@!Jl_a-Hi&H-f*&^};UH@*xWLxc{sx%?-C*otmGl!uwYj@T*;`MUMR|x8Yr; z-&S`KZ=66}2}T^=43vSwiXka%&#tgck;i^+8Q5wF)0#;I#`~R@HDj)7ln=l- ztTfXeMmcIk8uTH{umPvPMO)>UhPdAV0;9$8}Q5CI{IS zBHMB2(+rS&sC&Il(%{ za7AVR^U1OQ^~nWbwu&wa{`I`7e}pW+i&m}!e3~zO%Zq_T%@kQ$a>ljEIcR@D(Er6>c>G-h z!t*XON)ZzAVUDXBU%mDUaPvIsW6gDY>w#*sdK*?x4$~D>rePA@F;#NUft%_`&11?@ z2%*JNs<|iPZOtDPYK9l5k-Qjuiff&<@IPoDvowk;TzuX~_JneRcLwWH=3`@$oA6kn zW>^%e(Fh$<=5Y;{Zrnoe2XUL`lXs8vs-h}}nV86G{{S`Swso&e-?(N5)Wd~vvr0y}ly-n@zJ~Wmc z7by=__kB33e7G@vW&7GO&+-ZDd9ZE^4D-xbn4^9c%3-Vb%iXpD)^`i%V`Ts<_@*X! zBA)>HC{(DBxfUbyGmKWNf_~HkUx8AYqo=H?46{J?W6Ac@Bx;zw80OjpwKn!Ve#b8q z4k&fnZ~X`H{U&fvo#T+#=QQzD^%72`Uia;(H|2f)`38EkZlrHeNn~pe>?{#=GMYH5 zvvyv;d|q$FkEMFI67MCbNh=sjOV1!=yG4SxnWN3y+=KZ#*_I=?g9LwUjz#6fwwmqR z%4=NoHJ_{T520#GsZhj?kKtyFnD4k;1XPg2U+q&#%Q;*=dam>YhC-0yOKBsLH1lnE zExPn1n|cBRtMs%x)qeH0W0)y~?k`*AoomPN2x+J4D{MMwpHTk)pXvGPSZag+Ilz{Aa)+|+tv_r4~yu6f)=d(6hW32Iu&uJkp9#?UP6 z7zBzyrTL!Pz}?ZfpD!u$&eWkE_cSrD-M>1*@(I3em$Nr^_7v=R>C^r^PDKf!$~uWN z@2GpqH)o4G4^it24UBlVPK7d*VQ>36hG17OKt-Iz{8k(##rh$AP*rLyi99Z#{h}5e zO>p@3B&*QCCK5dIJTCz5EPv9y$`Mt<(QyesHn9F)CDweo$* zM^Y;yVi|nOB4pl$D=n#duRJ;8IvfTy@i^e zbMig5U{~on__7fc<@AClHmm=uTQd@m|{@oaTg0 z;I)S+FRe~D2Ci7TLK5Tl5=oaiNjI`AJl3e8ga~j}S?>zS58%?`3P+$m1kC6xBIX{| zPhYWQQ^B>LN4nAeV?%yj|5ODBhEF8_+W0AE06=4uNmA%;bJ{6f9S715zeOE;06jh} zT-?=A0)%fteFLPJ(aA$LCTkhNb1~H2W_WwMv2kW&9y}d#9^zO_eBC1z@HQ-em8(_w z&ichI{PwsWem~~dl%smvzc;3Hr&SkhdKr6-ul0C04MrhL*?212nLJ8eJz zl60riZS2C3k~(`saE7dtFVlb15Ez^9kc+|0 z!WSUg-yw{WBDZR(S9l;cNJreFq-u-hW3Q=$qq_d`8{P2AAvZYrg9P-hTdz<@1fx~T zx1j`qpCvbK_Zu#qG43GmC2^HPiH_yKp8<)YiBLKY)g+TIO@!62a#lGaC>XYX-DHN? zTTFlC=qvbvG>756qZG@eS$gLhMkaDlBORC$QJ3;={81AFL{znD~73r7NSm8l6oaUDlr~iov|L~vc6+@0xiq{kWv<%l$rvbnT!Mr=e zd-!)%E$F?7pZAtt*;Ik$@PoM$o;_ZYmIUQ~5UDkRBQ<<(fTlq1#bMV;T;ikU%|~4L zM&2`-(YaxF`vtnckNn|L&kooHI6s>&I@@oYwKhk@4{spCxnbItP^uY14rjxUGo(!@nLE^U&6&85Ck7WDJO@}MyaEd){VQw?AuLtYG z>OtzK3T_-lP|SE&>L&&59Le|FJ)!*F$a&y9sqN4GnGk%M!XnT}=U5>7W8Xacbjnp< zXX%??dAoWF`?^FDtvkpd46CX$SDvA<-_L1fKUN<8)2n`P))`O5PD6CMKR` zBnsXagR4@DWo3&6h_`xOOcr<2fIze5@D0Ww$+8%U?*|UR+1~-0;#=VDWFIb>kM*j; z)|g@x*ZV)F-}t$I$a@-+SY1 z|9k;gy^#Cl#SCwPgC|Kh{i)%&4wl0cvj5h5Kq~1UjJGyljRe}`a8BdjIe9hDqbW{; z0lliH4On_may$+voP&bk&b0+J>%a+vtfW2x2`6Oxb#_p&8orI@w{rg|A;Gco7m)ok z&(}nF>V!=SuSUXuK4IXNOsZG#H@K}eA(1|IT`#9a(r9{zgIc=q;tW0I#IK=tE(pGl z=zCjVW{50`1P;4|XO2K4vsyU76ND3wh^g*p=i-@{{?YN`gwMBN0Ld=bt1A|W1oib_ zS@h>b$HR6jML_V-*z{jdg);IA->o2Ut%^_h1{>QCiF~|WHmn!RB`!9$^(cn`o+IwV z|9CjZBXhzYc-{zIK~xrnBAPe>q| zHb&0T;Gn2jet3ZEy%MM5Zw8fA{%8JI_`K;+g4Aa|#xGtW>(hhL{ z#C7I*8SAp55qnOn4M?M7ckqL?InOyA%_uZ4LM@Ezr6OMhyvO@c66q*YPK#y9bzu)R zn=f8DMyp-nqIE_bCQ<6*!bmK-@5@IY=c8Yzt6O&?m&AAJ@x=0WGc_S#EJ#}=`4pI| zA^eNT05C{AjI=`*#y1uQ`xWsy`t0NwFvSDFwUP18(pbcVQ-ZI4$ICt`|Q!0teJBAkfVC0$u5b?u=-7AR$h7 zrWu!B&hDX?E6Qp7M^#vs3@O|L0I6b;s6*_50ExXf5m!r3qC2!|_dPGRwj&o{du-U5 zRerdh$+DjIja(#q|0~at{_1@>CdIL@|DIw$L-LbcZJ-Xy&=DLoGYIc@LAtpBJ0J-9 zmlnYpNyxu0vJLcc2|l8smgr)ho&uIo;xhq8vrvr(q2cEO5H9i@XXbh=I)5JB9%EzA zIN^Az$oZS_7oJb>Yg(FzKN+@|k=!1cr2+f*@~y@8yvDVxri`+^x*W1|F>&!fe%&xq zoqQx7$kCOE)w;lJIY{1%Lbq{~>Ff5jMre;cv=&x4}>^ZV-pu}lu9 z!PEi16{d!rrL+`TRId35u^afl2;0MTf%$NFjI6?Xc|H$%Wp@o`5tc7p%YJvLm?~zyU zI@#%#6vu?$gnZ>F<-R0+ZQM!8$d?o&yYGpE7nv5|qDJ|s5*r0vT19ZKl*jZZKs0Yq z>{fHfZ+W-0Ue-}K96+L=g;Mo#W3EFM`m0r<%L@TJ>6K=f==`_n0b9k)naV{Hygw+i zKVUp;H%!L0o=X^3cOlk5X}nIwkd8_p$V=Ch7q^omG~7tNA5WG9B&2czCA~NJ0ua&s zA_*kQ<6ACe%LxtyZd~wJ6-1T{`~SyceEwxI8Y51<@XG(kVoZ4zp zHxT^L_?z6SSh|W)mNJxPUrUR;q82x^sKPMX)`75Z@9Gh$E|e?L@H%*ti-)MiGwlZ# zlXd(t0;n(0%em9zRHFC}><_ZKZEt~1JziflgN*JyVKi-%tnfdo2Koo>mD{iiEC^c7 zL~z)jPBaK3a^SMop7-*2z~YO;Xa_GR2&uoWY%&$Y86_~gep>oOkY(sn5h&6F*? zu-hxocww{sm;oNJoO33!*8#m_)gw%eK>k0P&MKv zxH}0_+}+)ZTX6^!cXx_Y++9L``n=zNl9P;)gN*y$d#$;yIadH92a&;#!CcA?S4+6I zU4!6R-Kd;WCcetAp3G10-fvTCQ@dz1%`*FlVKNn!t>V#}5IN*q{^YOkbSl=nToxKv zn`B6596Nv9xqo{A7)kqs(>MF3cK?yxh47dE;t@Ra<-ixFDi&%oF4d+Md&lc`hHk9| zotIQ~84Wo916D|Lvgmb%1zpaWhd!lKpSy50x|o*7XLx<=SaYR3I8{W2q}GmL+IZ@H z>NAbs)r>r7#3JKb%ahm>R$JpA&*3TFALZ{4Ez~oU-YMRuIF2#$<45GzW{Z^)Q-^T{ zry63zeSz$)g)%=rN??3Ch~b4lXOQkpo0|@2o%nV0_a-eTK^Xd%bYydwMDxD$-R<37 z0Yw%`)Bga@*Qwnrjzr|U{4x{u`kobh3da2egajcGa@E^s&b$~x1gwga*1rG07TK*6wVdvbfe$O6(y88k z2Ax8j0ENyU1O^|k)=bdEBZ)V?l2xq?E<%9-LTNJ4e1!R{5Iunbn6iDC6x9$5(zAm_ zy*Hp1MUe8L*1yO;kgq!WY~Fq}QtdCX_49y1cQ5Z*pj3sECnCTfgVKcJnNIBH^FB$B zP;4_v(|&bS)QxnQYu?MpHFZ+GIPs5$-RnuIfdUm9`xGY4q*xcGgd;xc$CYqf;oZyA zzt1xejuCUoWql$IA$nu2?Z`$2r$@fu}9rYqJosE z9m5>a2`4S(L^o(%jc7zmOObO6^ssR@Hg>rzX;368&JyY!l7RrPV&%nQF@66D{gh?= zbe3C_oFcG*)Io0_S|3LmohH=p zXt3*{S5*Gy)AUx1NOH$_bQlE`etq>+5c_XZU3av8Z~ZQ+?xkIpNqz{I%?MM*v2CLG zVjmt~?c`I?Q|deZ-Ua8cB1Q`$nJ2CaDPlIUh~XzUL)=+DlAGq&QCc4CJKU=;AeT`d z_ToLf0v#MDvhW#IUP?kUG25Z=v5^b;JL?PZ6o~i51yrBS-`9&rYry*tJ?e5Hd+aB+ z-=r?i^CNV5dr>tCS&i>l*3bu*XA%D(noCV_r1Gbum~qp2%f{U{dcPqnTElKe1gl!d zN|CgZ50<0K7lHO~p)^nCW%BK}fA4kOByW)(;LM04{-0sh^50EQVY`6d{a2D%a2 zu#_$E&c5pMYFtZI2PQ!ThQKyhT4p4p#)R~~+B>hF@uj=sB#f8*c z?-tpC5p)x|HG87B5L-R8OsSC(PUH<`e<4`jgH$I#`6pu*p2+sUf-qkWGOW(t+5#sl zU>%~qcF17mdjj;4<{3YSQ6o`_zBK5M{4(-_-e4ilBtjT&q3r&6_0bn^TV9m$I#59= zB<*4kJm3J&cEw6<$d$=AUIA-dK4At7+dH4a*?tk#{F6r8%Cl%W8gC$(8&X-dNLJ-gK4 zo&I5Y;U!|J6`kGCTg7!InSR5gegGyGG``}rK?;4v!ZsMxASSO2zPc?&AT zr+xo3+WAv+8K!*kaH+Rf#dNbg_r;gs=5Q)dIIK+5G5!1h`NTyO|C7yc$_>!J!j^ax z>i!v$C%g15!ElWIsMT3pUmfTM=w`0yUj3@i)er^Noc44BVNYQ)Vd44mG7nlULYSF4 z+s1%{59hu`0mYvx>U+&yo*>tNoLCF4%9uN71nD+Kft!3kllRN3Vjgj@amR73{g*Wm zwkZnhUIDndeO#YG^|wsH-1{ve>zCYn2}4L*3k*7ZoLuQQj--6&O8}K2h3h!{Jy`&m zhTG7bT9QTgAr;vZa9l--d161;K7~vkqU;~mIg2qZm>ur6MYsrS_A#24uL|~-g8!y4 ztWh4I*0D=Xm5av6Y4X1{|r89HvzV>DIeJMX5@(ELm8m_wWn>0(rVxi>_DKf78MXNs&ia!)Ht?R10$SFKH_@(|$EMwZIo~BzhjTMZy(2Vqc? zCVnAq-260D?Gsy13AtmJFeE9l4-OWJPo{s_{pR+?N`Lh4+3JjepTWi5k~q^H>@qtG z&RgWbknQ%-d8;E5l-!NXh_voG^;_{?N|IEvR;#`{z{8How~$9>rCVKk(0I}~cGODl z)Why(K1hw3*`mBHDWy!5rb5EE{M}s<9IkWSr$&|AMfk=O` zYzcF*H%v0RzMIiO%ypnKfZte}a=)Owl^GD1p=$09I4kD$=O0t=CPXzF z!YyAES5~alQMs6p9yQo~_~hq|ZAjA9U!9)NE(IrJ@M@zrAo!HqrJ8pUN^L8wR(@I3 zmWJ)1LLHpi;D2rd8mA#rfxlDu^l1(8D@L@KwyB=LX9Bh-fL;pm7d||?KVF=1QAt{S zCfa$<{@cItn#&wtv9EvlEX}_&kz~Gdn;ZOp)TH3F7&?RRd7^nnwy@{nC)nZ>?0D+x z;HJLkVE^HwL1=ajMD{{Z0xdDNBI0uSMfE$>jkzM``$s?E33}I=Muza>yUZb)P(_?G5gvgK$Zneg8N5u0LB~0lky;{AHiz`aB^=+NU5sJ{2uzGq_BUH0GB;HG|3#=H16UzsP?GCP!AZs##jDbOP z0S;^f48;RD^6lvXe?|W1{&D8YT}OZF0Aa+4dpG?nINIj+Hh5l@C^jyK0wgwuMFKw` zA0a5TjiMxF!tn7N@~Yd096T5rDh%j6PUL}7oB% zymPv0R=Zx>QK7*Clj@{gAxVWPuf`_ofDgU;AA?~E7r%~7NYBpK@=i`4V?D@jC@~mp z&O}t^75}W)@G|1nAtkwOMRUbGk-)aABg&JeAM-JuKCJ^=wT)$2f}uX{@58t)Q)T;i z+2`C#XZr#J54DyR^-(n5Y&#Y-ay~Sj4reu4hO?`!rSE1|A!I@U`*`34GQe~}CIANm zzyk5-^wMpaWnaesnT@>$08=L~*wv94Nr|BRCt=)c6HmhUd{t!@Y5v`SA8z_%&HgbF z3G?8PO5*l!q~sJNdX3whbOns z)gy>iffqjV?{l-@Q8C$2%PHe`atY1Uvh|=f$nRr=Q*3FSN`(lK@L4?B7{<4@cIu4c zLc>t~hH@971@m1bQ?7aM$`Q#sC$)bO0K|1>-4mGsBDr72^KX5b6U9jXQwm=Z%K!6* z@Hf6jWrUzP1|yw{0SUp`*djA+#h$x4N}16MFJz1&S>sAvM}^%M=*lzrDq~`(UdRFM zNqvH|yW(z9W!!-$Jx^Q>^Zp>FlXX~N@`Lkaj`RdDpMlA1F>!c8@p$#| zwxvNhyXk}M>>kn&Q~h^x3nZj1U%Z22OD@mL8-~BQ_j5JtNNP{N4f*;80VFE>L0?R@ zE&>th3z5k0Hw_y^d|`wrEcV>#NNatJ`}#`SQ-pcH1*SG!}_ z58I|7S6+ubt(Od}i>8f7PZTf2#1u#1+&+EhZy9(XzVzNWP_W(>npIT6+(*7DFIbhP z2*b<&#Zkw@y9V~|!o&rJ(~hD=o6VYR*dOJJvOX;wyyQR)*AHDm%XhFjAmlJ64Wxl^ zY$*lkrVBJdPn8mqdK{#4O-w2YSTGaQqKg1AuR z5&T5IjDuuyftO>NHKkV*|H|0?!DCW0^YZvzI=8`8ejO=SHu9_RosW*$v`J3{hbEk# zJ|MAi>MhR%b$_v^Sb-4wxZednK)9N4me7NMFnBs8i(RMk+tOy%jr6MXY&G0n|2=iZz8EFJuznntgilY(=sbqr!T zNYCXpZ5qgnZPpnpd)Wp-T$#d;sl?$vkR|3Dlh*}Y*gv=QdfZ>S z?g0s<`#rzTn;*iYOP8y4s-Y&N6JU|x(n9R6CerH{1poNe#7Hk)N=}0DpTV(VG}DwT zKyMOtQuC6#MT(j;&_w++GU(pM>)sF&cL7?Lf5E&y6g9ZmlQt^7u;>v$TKhUOb`wzh z-XT`&c%`%|@8|FuEk3_*u%iq#dC93%b0_bD{FtlRCKXKmM{n3@yW-W~IA}vdLrdEa zi@tj@QKz9W^`A&@HqEOCiv1{b?{%P(FMb^#$1EG8a$MyVYT^uqzQk$PFE`Pf27Uge+|AjCdR|R2A@X* zNKR=z8Lm3mb-8nIDj;II1RHYk@(^G)WD&kP^WESNwFuJbe^nnq&|CJ!@$ROOu~E~v z4V6Hs*6nMWU-Co!faqoBCFIp5YVcSM*EB>F8lhS9K2EWIH~zqoefY!sN;4ZI>qNO_*jGyzG}&pjV3XuBbdQ!vy5}8;|%x2U^+P_rh3c5&|pe%1B_JPWY6l}e<&@Dhf)TOou+v#DgUUiM@JaT9jQFsga}q8%hrp z{R20fAFXBoP9cD?OsGkV4lP(zfd@@WV`FjMM&&>s5k8Z$}Tr{50&aBaT|D;^^ z4H2Q)emr9M;!RMtrTt1z#WdThcmX8e&Zz>+XbEI%U8?tHNoK!g&r zBc)CS<{@RDPo02(Tt)t*q(NeLTg#8cJTu`MHWiZY!Om06yBK_PsNlCnOT-RUUaT(u z?msyik&SNS?3Iv|YAt~-qt>bFavzV>y#F+^Grq>+|Eo84c+kX zBL^ivhg=zrJi!jE-CZs$)h5rd*>qb{Pe7#yhpg4fGgTECz9*kMOCl-(2*Sb-!S$5~ zT1aQu7yw6Yx%mWUW-|?9x~`Uu6eqexu%ZRv`YXi&N;8T^Pn+ce!*^2i$4TYgDcc+t zVS>o)9jZ9JV|HXc-oTb!vv&TNg5agizdI@!e+1CoPHLpB$dTLGWUfSF z^fR)!@risZ4NYR0@w|dzB5DIg%v4{KhSnsB08B{fMOmrqgG&-?#)riLfyaclNb=r< zALMbT`(eV}+tD1V(31xr6yM6!>R1!2Y~*<{+M_Y*M-%?i#=v_1zz1klb{T@J`88X_ z446!o%Xpt}zJ7!T@Jk?YvSU%6hNGkdL<@HI=>2~|UG6_Y{U@)C?mt1@&lNqf77X{3 zQ&_0L#p~Vc;?+*R^jAsuAPHnK)Aw$quy@Yrm-GR7`(9{A_&V`G7u41gtzv!W`2&s2 z#?=OCfBf62_G4Igr}BLhwHO`rsR0)F$4cf23Plwgb2B+xq|A>Z-x;VO*ML}h41C9) z@|CfHv*?&SHCO*RI)e9o+PXIc8&yvPeb)`0s#bIeyf7DCaC)TKn>s_ttjs_pyk`neS< zzK`j39~kXdV+$~BBykTp%W&W+aU9}1rTQ;bRj5Y7nI!#1uj@@a&igR%3(4R+oLIE@ zQvkieXs>HjdA9izJocqNcP=s`08MY^dZIGH68m-NuC!F|$xQ<+^NWYC0^dm~$*xXT z8$Eu!aYE~JLt?v{*j*>@Bcd!x^4$=O3=Dk*gMOh?P5?Ie(~gdRN_+ipPQ3jutHNg$ z%3DbBszfbPqI(|+nd)T6_;vqZ=sESt??1yr;NK}eD5}xIM?M_x2SnGh4d#qGHc%K`Bcux+vL7C?h zmmu>ON3`SP`W77u?Q8??+-@JjIly|wRiOA<9*fO8NEx%E?I?Bik8p1yXtZiA^7&shqNM5c~NXMsY= z%Vf3uB2CmmQ?V%wp|>=Y@8iygTSNDPC4=+19i*>0llrqPU|%J9#Qn^@14%OCmv-I? zr=(a+CoFdsEa_X?HuNlmD!65hG!AEqVRf2%+MX>9eM_j_QyRfDt&|W5m96YP9Dsw{rDIwhf^w1-I-B*ua3_ z*&VLn6EKg;fSbZVjgUZFNy0=(RUpf_&5)pU*)j*;784*BEt9nPrrXnjdCjP z!`yg^LqEp+mlt>s9ww{!SH=115*zgo*2@Z9+y8tuD2j??z1+c`>}MFWUSP)|dox#% zj?Czs%w@6Lr!wa*GVdPyM_6isk$MYO#usR5`pwre_wp3@?R(syfnUs( z6hR29!H^gN!So0xzqC@^4`!n4^&eaXbw+r{R_@kbG{YaoMf;CP;-WeMV%{6ok2hKV zZ~8?m7q?=?^E}>$ecmW}hZ9?jhCmmXO!J&8W0_=@C>w`70O#a^MS7(mBl1{>pw1te zD}OyGRvIf6r@A8W@&kDg3P(}mi@E%JB4Ej=g!Zw#^<&A)Z}&_hhr+sVsdETbBd=G* z)V5oY(K)N@hpJrU~>qiJd$jn3SU(1w7QOh>50yWHDU+;Q6u=6o-&l<1l8ph`j z_A;65%cZ)M(`cFQTzvD4b@<3$f7YSCW6wuuVAfr%$vT)V%So1*!&ojP5;W7O`ZD?w zSfZlAosp_iGl*E4Sk@dl!=_@f<2h*IyM_yJ=ezF7kw0qO8F4iLoWaMn0%viR#j-7mF0B`>S}`Ez`O%}uw83oGX-0nV>o6~RH zeWs>H<$E|L-K##e+*-_2V?2-RKrGEADJ+C zQyCleqJ*&DX0z8nZ^*w(SB@6@6aS6pZ+RgW$619Pq51~V7#`@3C_U_NT!Vb2)K{73&W5tyVAjPoK<>E}eD9U?@ihJi(f#npDKwz29-+acti`G1-FGLt01hIJB7H0Q zbk_DjQ6$DMs|L2Yh5R%iWqrZQfcf~YrQePl($+V@*;M8Op82UY3b3)`FHjh-$=FerApnIRtFXDNa)Zl7q zLO(Xz-FI%$;xVd1*Rf$PEh(EF_a;-WEnhA8Fb{H~azW)QMDkvPpItyo?1g0xGZyjZ z>BAo$13+M7IZACA9dT-Jc>C-}ArE?t^e!IaeureD@45E=iFda`)nY@V&CI(zsx-22 zj6847W6Q7M_$0a*Ey%}dNV8Fgx!05gbCP7;(IXHrdDd8x!AAFY{i3#K@cY)3;=P!{ zRGjO)g5f&=taI}Y7X=xo|5XIkGyf_AQ!<`jvVRqU7`mnUQ0|4+hzten+(W>}*A%&H z{bm^=1M(E=@bfB#!bT3{lmPwE^pU8ZO~UZUo>;EnA~Y2o(lp1?>-R0@#DCSE(lQ%cBv9TZ$Xq{&A99uI% z@qjg8b;M+Ltg)%Y<^=tMIR(+HnXdpGW8uCRjA~JuSq>R>b+FtP=9E_zMaD9})(ouU z#k))IHf<&h>YA32N>Z7w&q$#18fYr^-C}m)T5wo`91X-`V4#9epG94yh~~o&fruuA z%yL}(x?Jg%>JDA{CQlF-ZD{2o}+u>IPK0kd)du2&p*A%Mq;MbFqQNs*ZR>Jg&y%=P#RwpK zvOY*87x9!i|WU zR%q>unQkWrW~H3r!`>ys)KoY9q5Fy_#T(deS?}dKUEzv^N1l~&5I!&4HTcqm%{8si zF&M;aM1BEBhgF9zt-7=sjZE)8xcKGQ0~+3eHQ`Pzzv7g@>UZguopEl!nEyL9eEyvp z=tuSSoVIHJc~UmErvQOkP-B|99oQ=@C2)S$^13do6C@xE9jQOqzhKu`a4G8k*dIEu zwMxj2^YAxl#D?pd_`Hi(74d9fMp!53RH2c)B0ZlRd@_I(j8+$?dY+}v`~WHW1U;?Y z0clp>KKZm(2g3Ny?Yoa)o$Y5F9!Bb({H_-s1e=sTx|Y9hLa7YDe`iU};9|5w{~9Qs6$e+d;&}urCe3GS7_W>amjP?2Vad z(wIZ!XPb4a4M&PP*e8#$dt3X-XnFo=(h6*rG<8IiIg>3hiJFEak)`?`ib4*egpZ1s zm2NSHUm545=JGBUy+D8H`qGE$lXHTrf=1tnFPYZ%+2P@<`m426@W-|9(2KQ_ zzZe0pj+t$$J52wVtfRB`5I)hmD-NO;*fDs^cpxstZ*q{KlCVQFL!IUE8+IwD|IuzS z=K2pxCXsN}#3|qaZAVSwR~*DU=Wik#M^3OFYEuTULA_I1egt)pU2P#^f#EninVWyg zh{J+vzbMC_cb0!__I8?B-+1~1qx9~|A!CE-(r3;dIuHFCG1lWv4b2u?<3beW znr33bnW+--qQTkTg^<{=wqN#zV8jV|B8N_OmUUE|%tlxIWIDE=cGejml`PrzJPE`u z>zTUAj@OXFOMqJQ^m?pN%`9&Yl{;?Nvg{NSBVBt+EW_Gf=#*vrFm$duDOZw5KHU$FU^*!ETQ z`CRrvR0l1*Kd)8t$}*0S>2|r)w&c21L%^Yny@e8yGMi>O{R_!LzWra)ghtQCbZ3z; z+Ub@5PHH&)s5sXEJ4^TNn+m5A@LpXj4oMuZFb((CkLwagv&9Vh5Q`3@bf?gNd6OKC zmYd6HBbz3cgqkZU3NC-!7EmprFOAjC-LMRoRrRX|{#~Ue;(>d&1z?cK*v*>jzo`3j zKVrfVKxa;;-<#vt?t`|$$C>Pzk>sBO^)C&lAHf@{9If18bG@{^Hxsiioc@{>P<#8F zqs;2(bD;S$blilk_PU#}#F(r1yq=fRWVMxp$#&V;yqX9*pdWMaZ~`UKcCxh}X?gL8 zyqCv(4vBM`&r4GV@}|L_%1SAjnd;A!UK!U z*xlANq)z15(xq8zF!ldLzDVOKJPphKRS`~}V;!GJjHbOXmQ4SNrq6t5_PK-Mver}m z!}jlyODXrND>61>Gm_>pToc~uCWDVg0z_wJQEmm+!%sEocmbbM1Ago++)+godN7~1 zSw*gYdGX)*>k1yUL?4NlqDawd@GwpMaCQRd{rww!=Bg1)W~PH^Zvpnw=kvM(dt_Rl zT>EFj@gXdd=k`s`#O-M7d~l)G9SL@F2;Wl`Lu3tfm*6ExypSb5aI5~ycx%ym8IQJ}cNl1`gYmKRAncdLHBw4SzI`8E~j}EX1+wftxkiG#esBr}IAl?Y1FP*PP*#NGr#tTB^8S;>#K)b;6E76b;;xHtCM^1)oitakIrValM6|iFnGLCRrd4X@V$e) z@c7=bf)=dqmz5uNfP*IHYG#Rpso$!3K7D~L8I*T3>~foawUTeDtt~nSELpNIMjLxg zwp5VZdMS)GYxMDOC05je&=%naM-z?Zjn=tdUDgKFem_66e1CIJTO4y$Rb^>HP0GouDtNWbUA@qBEG)`DEGwe z{u}a&QB+CQP9R_jMSem1GE85b9gBi8LCXHl=zNp(w%8eBQZ`r?zjv5n7nnd>*HWhlh<3Iz9UFtq}ao zE*OI^#eV^=PElflr}|GJc6-s5nr#PP!iQg@E7dn6ny*cvh&#e_0)YZ!WgX+1`40}# zLdE;H1C9ro^Y1AF2t<>*aga$Sq;G%|B;BO0&Lo-GY$THPTl{dvBiPEG!ASBVX(bK9 zffBd#fzQ}o+EaWeACp@nY6`L#u?jS_X|TplSXEJmDd1LJYTCS)qG7|eNR zqT~NZg2#ORM}qTraKH4}C>j0>Xt0|TLpNs+n&6f-#p|j~exaZsKXL`Nl2bfnZHqYR zZ>y)he=!+k5)`{*>wIrkN@-6~6o4&?Yb>&QU4Y#W?}~`Dy_wG~o0gAg_l7O`Sx58) z3aTNXdjUDxFaNy(dEKnz)4gy$O^A_}h?8Vybd&JjBiqw5d`Tkqrk&Ye$m;`ksG9AP zbaTJ)NX10pcusq;P=+?%UbBoVyFy{d9aio%yzx~Bktp$L%VlLHZ5F4(^_iSkFwnS9 z^OdpEI;U@W+gI9;yr;FJSM5k1ud?9JL^(AzeZT=mmytOe;RX%bk?;0)vE^`3ck}jA z0TBHmOPWY(mM~?Cc!Ze|Wh3Qb#auFps)T4)Iql0=&a=08p2UkB*B*C@9855dnlxXT zXx*J9&Oo1`??K)!_9Ai}Z}1(_<*j_Nqy4bfoqFT2fEhuBh?SPTSjjT&Dvo#jkF8wT zix}B^^np02<#Tn`%MlDz7z7}ravjg2&MT`;nO!j%}RYp zKK8?cZLmk+oD^Wt)h#a~r|olfOB(|}glZuP6pq8ME{x{co>)Y1p_HY~e)V%NFoa|e zjKb0Up86RyhPN5_Ipl8V{b!`UAyt6h`wxxuW|*+>@w4RBEp&*cO2R-d5zVJCpV8qd z24uG_YV+&wVV*krl5k=oJElbmau&iZs9giP`j6|6a%5-!9Y4TUL!#OqizZhp-y~^*Mks$?c z5Q2l+^_dhuMzza|G%qxksF#qogG`HGD@p|ShO6ya<3xbaixFdYi_u04Bxu+7C}Bnb zDN5J5pO!rbR<5t(=d?3VrdIjuo6Yf&tJ_M%5tDYJKfPXmX0^oUbS%R;2xAPVP#=yk z&N~HrMlEiA1K}G9cSFY*z`*(|8{}L$mMlec+yI759u_lX*1AGr%A)X|^DIqdLVHdK zQj()V01E)_de!_KF_7Fc&>yLm5SQ{a88ENBW2`8(WP~MYcQM`RrSO7R)jBnZ?-De2 zZsg_>YreV!0D88-Q@WCBp~K$`-v??HAz$wgBU{}2N*qP9e`iNV2CQP#EaMtZbntoT zh+2uC?^X{Y%07GxEdaT`GkGi=)_2?hqo=7;e0F1tdCF`8^N~Cg zh#u=S8kXfbVi%kM!pYlVW7!DR^a=Gor;vsbz4g?%^8pGSdAm&9Ms^~Ki5JYX-8ZB> zb3dP*Eq>@V+UtRujl=W(3{f`WuKD*cDREDV{Qa^K>MMdC2?w4ic`9)trx^UALsXOJ zZ&3&*7|4R{+YHG$ePvOhP3y|A%k`J1>z=0S;&O_r;&O=IZlR-Ky~}5lpkA$9-c~y@ zsLTDEyKxsHKxHi4Ew0ha*BZ`@9TPf1bAq~^7^HTzo0rSg2U=BNgL8!b7E^AP>qA;_ z-s>5;2Xb16i7FBhLbGpS@w+e#_{6w`)qPTvUxW1|ym3G8uZ^CyW8XoH=m;g>cbi-v zHn{s+3<)v|WXuSlDd}S>BLCr=-8WocQy}0yE56Czh21sHENF@OV(7qgUg#DOkn7qJo@4m<#jqOzkwrf$=~1 zI7a7Tw3)`CR)-2PMQ~0x)*cI{K={9x!jHJYZOuFX8tifL_t_It5&(&RG^jZyi+c5W z@^qMcfOjcdq$iCNiLv6SjYg8{h;)N=**<@ron3lYq-sQ0LQBvg{ZW!?${y{SG?hKO z6^Yfaw^SS(-LcwH*I7S5#%DFyxl1;2T%Qut{ai9d{idN)OqclTFzmV_y)-iBp`3qu zt4mjPf*S#WNDP^n6j#E`hjID&C!FlFyph4-;2ceEoOWlWKxm%Uqunw3tRIv}C9T17 z=j~VTj{qy#nDyA8H`xWKSX}L>1n_JStE?UT+$k=Vcp4GAukcdBu786ot51_1JXzuc z@@;-!w`F+B0%|VgvC`rR@~!T3*a`7r(U5ZYBdea|=(#G}!93z*8^NcNXWHybd;YfF z=p#M6jjgTsfgQtkYjmKJoNqiv|HH~4IR73`3k}t6wAau7GG+&eYdAx(vwHH`hVAU^ zN;E;f!oGKV6va>OcQZYB&IPwx8C3Z748h5HhiSz#A1f|iW}}O2s3K+>_OIPEP729q z#6G{wVJF+UNd~;7#F;1b(}^h`xpBD|8$knP)?b65c$xsOEztwFNM}NgvyBn4k`gSs zDST`nw0BRE?o6}Z2pv9Wv|QkaG&3K=DnM@ZIN!bf*!9B$^p8t7C72P8!x^Jd^VqoM zD}O1UMK5Nru%;*w(4Q7IkT~k(G5@ythS0eX3E>poSXi5agB^5MQ2lLIkb|3O1gCmi zecqYl;dS#o)Sms@A9%3mFe*YL!04tb4SF5hS$!Ow&&WAB*N9Ct`R+z)tM*qoQ0?@*Vaj`9{&$1>pR>y+^=6)I}Bjn89x z(sW#gsswBW5vg6+0 zinac&qH=1Ulzao7g=-SEm`|vMP};*fN3Mj(2p+&$o1lUm+1n2LjrL;{i#2ALDYuvl z&)cU|uipQ)0)9Efgg^jf!iz-hp9M2fvwu2(k;3m+#D%<&rDpw#QRYn~ zIJ>1UBO6_#`Zcrk)OB&PM4T*rN z?@g*-xF=eo6K8Ud09VZkj)^WGD=o`&%MDJHu8)2S zBg=Vo{(*4yT-gpvI4PnY7J`wI=u(53;yfD)mGb9fJ$R(VV1Xwg$2%Q0duXytt_+g7I<4iAwvBJ^=pL7#WokygSEB+h()_Y6cvB*oq2>k9iZwONpU zR@-lLmT!S?Fy9-V(A|%sh1rj6BL^z18+Q4za4zWdE?(~-tMg$xe7TTSa>P1o7cTKK zO){XF2tmv(>ocxv-qH43A)$5zt9 zdk=U_B^h+Z0o+CMtG%nab5Z9Zh_Mk}KP+EXl$MaYSaEi)>ZP(;Jo*DK$6|8u|9LDr z{wti;tQ`hL|3OaW*12dPfhQM~Gxirl*y|nyL%-CjbpvJ4?l8oCU0=CLl#O6i`hwFu zpR3D-rMil?-bE!Nan66%VRDN;#qPAO+FH4JKi?@f^u{m^!+y(vb*i@`U5=*ywd zxi_7lPQkIT$X>@_K~KJ-C9}O~!DiPe>?L})J@Xml(LA8?!N)xW2JRS9^TTZ`PNn$6H5U zN?`3oGDdoLZbAyrS;deUCF*d#l`WnIO=cVduX)`foSdcK?7EYh-xD7P0YgE1BACG%XW5;$c&>UD8|zNsup<7Nvj_y}jW z=z3C5V*3)rqXF3afOaz|Ho*KM>{lIuD;bPWk2klBxf!nEeNln5T~#O+`IBuLQKB^A}CJ146kd^fhKx=-73pY9~3X(}BV#tG{J{9#PUL zVes$Js(oU@kjO=($I1iSD6%D6*EdEiEs2c_zi)<$EtZ~x1&ufS5vcO;PqahC(ggHC z;yDOLo20_LlEzW8>*8!j!kjNmuRe_n_uK4S_a6KYcd#q>l;sGFuU}yq>?0SZxw~e> zNq?2c0nNU$!k+kIFUgagq-Zt5V|AiK_Wy|#+0%e^sF-n0vm-`vj!XUR>?gsM( zfrkFQaocyB>reTAcW1)(M{gTkY;-Xj9w#g56eTK0Z5^#l*fvIFfuFTZXxzbE2wb zvL@2&;o3j23-sNAMS9pD`E|uafv9PfbP7bL>^u~ywRgC_$beH}R)A1-++JwyaUQ{G zmze06E;uA~tGPUE-!3Q7ir4Vlo8LfJhY>tCOhzPb%Rtf9+Vss}UG!L3%+a4~WDO)e zwGzXe97UKzZFXm`sLUJE~Q$|$2VSm=j&_y002whjZefc&Y{C@(&2FB zyw~8*!|vyik}Us}B@1I_!xsRdmDZpgKdB{Hjp#YTNPq9_lhGEhmun8`xl-n}3;`K; zZ0poR^rGSfHpj=4IVlcQCu+lQ>dkaqnco(i4y>|tvdw25Vn!u>FtyU$98@B?z&G~3 z_-2QVbwB-c6PJiUBHLqlfdImnBa-W%7s|qAOZ9$){dE;GdH7V${H_lq6LKu*prigI z1785;$!M#e^3M_>X`6qVt1miRtO2NfU70v`qR^imaGr(>%d}TuemjccN#%SIG)gP!ACw{5m-<5LE0(|vM;JidOMdD0 zw_sd0!q|rA^3)}={rYK+6B3P`>5rILOr>4_a+tX!g_bCsv~k?oAMRoIx~6r)AHL~r z1v}v8g!z{_*9l?l5(l9}cF!?Akn4`rpxL6!I3m{o6+(f z3w*x8cRUmsJJU&A5lwaASQ|m%xbx(q1G7 zcyJS)M`4$}K!jMp=?G+_0uAaomWB{j*HhqREdI#GjMPi*)9-&M<|9GOUuxWDpvtFn zcbl`~XpGYX!dlscehP_1o!rN4HBqwlDzsg1Dp~pL!6v82OlqMWi)CAY`DQ?xB*AN> zT_8K>Lh6{c#YLMB5f(X$I`-_X81Nvap-Wz{>M)=ucvwu4i9lU->YexGz^{A3jwTj{ z$7k7mzwz5WQ`i46^HnI(=k6b{;_TGz+OdhIK1exmZq6AEoh{hS9;m~KR=+I+U??-~ z#k>8AB36ORiy&RX)^v;*fX?(GzOQmO1?|n{pPEpb`XQo zZH}8H{isioUU*Y^pted|P@VH|8t89$FH2*zcA+eGR_S?X1XsTkRu0MExW8QuTxDH@ zbZY0%+2TPA4+x3N4gJ8E5?n8<-OF;P#KQpwwIi;7tytho`!q{8W)st%@Yl-z>ahV>qrYs&Yy)v={ufIK6!4W!1#VXw69@ zjQq1lnc<`MlRgIWV|yRo04Xl)YHPp76z5nM%c0c!DM)A=9*Fmxd;JfwfD1i7!^izc z0MM*pc!nvKq4``?Tss3U?P&|hsJ8vlF0({n=C@JGH*qR74W-y`ev)1aHBxb}N)iEv z>!}%zz_*7f=~NuoM-^2vv-sQ>O+@gyv8N3aLF8vBm(lH*ktt7pkCA~*jZje@jCap$ z!EVCLxPsFm)=r8Go!uTodJ1cL7v+#JqiC%GY zFp`=Gmyb3M0vRJ4ClNHy_yQM+wlt=FM0|Eb4o$HXPlM8e}{(N$uv z*u<9M{&`-gNG5q{m`&+b`&lmA;_&IQskya*`fi>WaOPOkeatt}^(o{ca-e>hGo^VF zi7`pO+&iZ+B)hqQIS8zU>X9BL1}RJxJ)7%Bh=}kUFWk^{tga z1%m+=tWBC-m>6Ju58ufG0;--a`x`UxDduF&+1)gQw6N}6R%PWD#@Q{L9Uc1@N%Rg( z``02X5Y#O5D=;!AW&cadp5{F(96y;Bz!)+52r>h#6Kd`n|8oVOUVQu?_O(OxeIo@n8D6UE#E2X1(Kl(+0czS z@Y_sY#WluoKQRiD8^b%o_|`Mp9#V}sXt&v)qd?C*&+{)|)*w8aJ<{Jvf@H-ybHGS9 zi_eN3p1+ym;KuN(Ad%%c<{}Up`ALPQ^z~r3_I?vSwM@nQeJ*F)A(gV_&%w2h8{wpyL_>Fyjg z^q#5QZ&&M2NRezR|ClnEw%R(mwpSQtko(DF6Dh6DHkwuxHjlJ@srG(}z8~LmHV}g? zvdsX>ik)%%XChIa?IjY#lkz193=iX)<~eb|@%)Da1IU`h0*a2g<}uDF&OOceadk%) z8DI5UF}~YdYfVAz@z@=DElQ=S5V|PT8yl z5tPQ!n4LTQiif3q^gC?}3XPhN0p`~PQPut8sh4lZXGS!LyUjpuE8sRGX2HRHFBXiu zK07?EZWZ!PHLWuwf6J)#s8!%fazOTKyUxGcPOIB|&Hrkd%V4VmWr+HONk=uhT4^S- zT#}0jDyK|o9Hn1^{V&Dv%=x8LGB3aAmrWOp2lA5$Xf02>JPkdpPoHDwCSh*JR8_gRhaLvTjy@5cylnJ#jxmjXh1)C zRx6Y>!TD+HxMK@7eOmZpUa|+Q&OsCv+UeZa=W&&B?PBQ^+U0+)YNSF4ztfEI!-hMr zLG(bT%Yu6H$o!uPb1$PPe}AHNW!mkH)3c1uM4nnD?=UX;o$}*e+gqdnq3&*r}$N?RRC%BEd(RA9{@P_~otf_2CF3KZE=0UjoUFpw^_}3Z z8=$wd`xcUY+(N3kQ_HiUJRFao-;lMfnh`bn*^B#vcPdByR(9<>{6e|;zC;?11>m$! z{vtR>tl+37z43)T=A1KP(^yqAn#b;HXZ5Q=qy|!cv={>;d4+L<>G1nEQv*3SvWh=$ zOuVVmX0b>zxMDHNa0EhZPYdwwZ2?xps#Z1^M=HgPlqE?nQBX`#}@>RlN_gPg4cJQ9AI&u!Zr{^Um&9^=JAAT_5Dh|Fe)ePeF+Q9xA^A zSzLrKAg7s;y#FH8+ol3?KVUz2hi~}1I}71(6v5^{!` z{tSesw41aj9>$~Y2Wt1fLyqB^)oECjPtQKbH-_lR;w>;@szf8g-vlD+nB->nzcl`6 z?15!74jL5=xfh@<$o4&c{@5@fct3k7JG|OI%kX(#td4x$r}ZwJT?h3nh#PpPZ7iU3 zku~C>Y1NKiZ1k0dI+Sz@&(S2@9H>2a;^mphmwQvx@=ApFqeX;zGi_)nNxAl}75VEb z!O1)KYCcQ$$1O+>h5ocM!?W9^saI^FyK$b^=rMqh2%ofK8nYbG*_+}w_1enAM6)gP{jDK>(G35V9j4@8uKM~rTYiUtol8v2Q)V#mj*AFUM>fC7xI=OWxe<}0 zOO$k9=q~kKR&>L_lY;28{EJvf5A+=&q2r0jEKH=gHl}XVB+E$~Y0pXsz;6KloD=O+M?FGjAP|fk~bJ#}h&snA&HLeUN=T~p4f6}2d8>r4B zr*s7r7lLUpB@+I`axZT(T&0qT;(z`+A}l#mOW=Vyv%ruhOhT0h_``X<-A^h&V_427 z+qi7_`!wq5Ih$|q>^SU_4dw9+$PZXw6X79y`VQL@m$TU%oFd!yeSL9ym=?GqgylB- z60y-T9t&87)slw*d(%pRU>)`S+{@hm4YW)ur_{fKLk|j)h(wA0 z8M}gZ+@ZLF`ez6DgZ-aXE*h8Lc@GORBxYA?*~w!%;nzBa30$|bs0)AdfR%squEtKS zX`}5veDE05zOal+AmA=@?4@H}(v(i(up8VbFfvW?+ZcosCVM}xU=*oCt@(d(}#_VrIrRtvv*-xGT&X^ z>b)=C?uo4#$Vl=)-{WLaaU84D_ z@qMJ)`neFIDG7x7-4ml!R}VXCNH5=VPV>|ODqls@dZJ@^awF~O9koL7_jfRXj(&8f zvHrar&G9188$D$3C8OCi#1&dPe1qZAGYDsU9B&Fwxi0#I;p&dzI-q(^{(6ZUXUjN2 z73`BR{h)JjRC-3%{2t_gN@9FA!tT{<^&dnM^Y*=ZA8){Tg=84Nzcxut@NTk2!N@~1 z+Ikv3psA?|13_3x&+@6`V!WrYSLoQ5!W-Hh>$(PAmR8pJWlN8*g21pm059PzQJP?CYsunNouZrAGmpF@FsVfXrW}o^ z4C&~rv$DcIz0+6NQ8xoXKjuG}Vkry3~V1Q`3wYt&6`By0SJD?wr89b`0PUU)~Z95X9OMXv|vggx!T|j!rMWooEDN# zi&QpT^ch_W>D^b z=m@#>i;hD$UP17Q{Z81N*3oq|T>DeXg#x{CO;eI<%e+Vs6;>kes81?uPU^yz5$eYVXdL)w#n&#HeFOwaR;SK9iY^H95sBqZTf z29b*$CMX^js%oKPJ5f&QpfgJt1LtpTCi14#UuOw6uTCrQnd9Y9gJlJJQ}O9NVr(#{ zFr%l*0Ry;SBRgS9-!EDEMPDvU#_C(3+WEAA9>P0eW|jbS58wAg=ss|HzsN%WuD^LO z!n@s>;K%(HZT}X}h-#JqSe){bx!a5{=K_dZ7Q5c?^804g^Of<6pyd}cjj z1@r@f=}+?oIWl^d_P=-c$EJ$oChEia<~#w)@x{lmk{6JY_<(dwdEwGSnu>wsQz-xT zj00OD!kt@~k(gJ(lLtkxS4foeyXB^_w>T~knK|yX+g)!vE8>AkTcC~%dm<6!0MDZl zF@sIPlT~~K{8CQmY-^GklOr8P8yg;pgkSh0nrcy#!ekbgmAL`<%iZMN&#Gui{z(lG z{x^^NUonL-Bf4Y zMuAx_y~~A+%cF64W$7^o)v4c;{nq^#Ce%S_Ua%x5RCM)!^t$#x9%9XI6tm?&=bt(z z|M63o=l{yODU)_+PHSz3NQ9fiI4y>Jz5Z9Wco`^3&k58-x^>-Nn$s36Gv2u<+`VVSkv{#kyEE@F>gzlY?W$($I2RsCgxxmNo^2Zhq5X z9h;Wzi~@O5Mf^ia1Z%LlP?%!0At*=y{i5~y~TF}qSiAR{2B!(o>Q%Xks z0LLyZz?jFnZ~$pcln6*He1*5~6`C2ud z-OXb-#A0C!Mc1Cz$b6jpqd9FfWJi4Y0|$ft+=r13Qug8Lt8!6sDV7()d6k{~`vpeP zJ&8lW$FuFybFIIqli5pvc50~e>jq&5k5vgXQSFEIQ)`ID$a}>nbMz3R5RqKCIRM(l zei=evU;hB8fZu--k9p}`HblT<@L^GrD(Iby4yXI}NY)s!+B;YQ@%$$2pzE=YGaxcN z#>ZlIhJyM*0aN+8NQI(@38dhdDx3DRobd7+o2zLxf3M1S3y#S^^erWlx@J{Kqx-^~ zodpnJ6|9;V!#j4h0(1j=@dY10GK{!?2orO)X-iiPp~lg!*|a|h*HTNMJ8Y|6MJIyN(gHJ-wT6eqpe%svbMAIvJ( z6baIF4ra=<9PP{P13A@mnu-}Lf{(3q>$(l8M0~xxUP?c|62w`ESsOD*)R_?(cQKzm z3pHbI|JdqI9#wVYkl-V6jWS;kpgB3&sMO%Pb`FIngk=B`1&p zUVnrS9X>h!C=8jbcLlN#XIfH>GDOgr4SlY)lj+!`wr(d&`OyWMWJ1=IO3uiwBVXad zm}z$%#Jg9M919JIcd_kzc8b32M`!u{f2&7B>w*{~Ywq`uV5TOM`Tf7N+CHj?YJhiLZE`j1CME_fr* zVv`NdfRt~@b0oYs4thQ)hPU3F!u%hiGW}Ix{dcoJqIf3-+ntfuJfv(caw6u8OAWV< zE*RvqbcHYl5@=m!QVI`^O^m3968ntf^=xlb?bz%X=X)xe_j=zG6b%wPT6%O%3mjJ0 z+80SNuy?fK@MDWKBVFhcwerZ*eulE$y!5y27q6u+$UPa48~-<@HnO+I>vCCrek_Dr}w*W6Uwt z*z(apB7kL;Xr1MvOAj%pGAz6qi;PGMaxqD#Orw-jj9)?5$E+OT@WXWb*9#2$D^z6z zv-!-+YmkEh(D=pn;Krxd#c>N=oKTqbPyrx{e5zV)6RmgU6~D2)|BOBMpqIG`?0-=3 zunDo*vl@i-k$7B20c<8(7@CL8@-;b=hRfy4;wI?OVyX>oC zpbIS$22#I$!~iULY{H(u^MR?xxyH>|=6bW^;uNrzAn_uqOt--=pl5R`hTpLqn$?zw z*wStjOhDnxQC-|z11?TCrQ@~n7;a>!&GB}Msf;!7jHK;ny6n170JPV}qbp&g`J(Sv zZ?9g)gOK%^hIuTUJ3Vw+@}<2B|4~~1;k3|S_h#HNtI7I~uR726)X#{Z$e&QNB+uqH z8zq0;;w=1&;k$S;u$B!?zH}_8is>b|k|G0}6_M#9ByM4F3J1hREdgmER)Pju( z6R|D80KG8(M>+TYmj|O)r|<{L5txzc+Oz+fiWuyE*5z_Od*meqi1d$8vxT?j?o^yr zjGxfA=LP46_Xp_iSE{_9OMfk2r~)=DJ|4K#NMlX+X(k6^*o^v<1X z-BI44n=csj8PhQ}NG5g(q)%7C_C;u_M4pIq#m$PuK}H@|#Y+Mau^K___zPa9>u0}6 zkb-3_VGRw57ftQ7?n$-5Jz(SuaCs2=761lt+|2K7leZQnm9+VU&!sO4G=p*k)19;s zte1NlzyRx>kWlu&oa>WDf3WU`3eMYi2cc5a+AP9NJ|6t8h}x@Y-V^|(Nj?s7JGAw8 z0BwgF?_w~pm=kWUCYbO`5Vh^C6fRbUAO5J<;2OGien7LCko;O}Qr(u%E8{&0VTjG) zTz@6%3l{kMXlwEE5K6BdFOz}7^ZqT42_b5(({1`5rt&GqB22e60iYm=nwEMXBKQh% z@2^1GD~4(z0887g%Rs$$O18)wE1^zIOZdy1R2P0t>K!gDdR+~bJ&Z#N86#Q#J#$@GqV{Ao@4#$xV zQK1vNlLMB8ewK+wIGyX0v~%CHu{G{@{s{RnaRUMb6z0j_Bls4ojG37MpzmRG)1ba! zPut7uK{;fAJ!hYA0h@c1ne`DTI7ip=nV|FJ+Da>-KXZv(L9?;GN5p2xCYP$d5AnVN zQ)np~qi=h?QV#jHsGirj8XpvQ@_BR!^mpd3VbSWt%t9a}d1em6J$O+&(l|=ulC*jQ zSnf=V?RN145XVU3o;W=Xr9pGvT=i5fPz(}eu$EB`%wmch4uJ4n2`=d*nh+{Dei&_f zk0BTlCqrq!IY*PU6loYk?Kn!hiJ@pp`qNjQ0oM&^d_K)|-WRN2X85vadFH-+lI_K# z7G7E180pvr+{v9r1rY5HtPH>LLz^AI+f60*o@RN+{-f$RwR}g#@DC?J1Ld61{L3OxpYWRfOyY zNpzd_v&@_2^ryDR$u58vpg4CL{JB4GZ6gZR)oSVX)C3mNrL1tt`hJ%cWj1_?Q0!o9}#naXu&eh_1xvgoCFBSGmd$fvRIS ztNQh8`I&IOHArTap^+8bKkaE6T?vw;?Mgq5Z{Q|`I$hXLKAm1mJ6a}k@9 zk~|0*B`_vOr>l16rXk|R(o-PwmZu7oOA52 z3Eu%mTkHY=T&D%jG@*180~;7M6=W05?SDz6mm-EQ-EVh^LU@TB!yq>Dju~TBK7k_4V!0Tb7FjdDSaGs?vB6}G9PX- zda67!kw-qtoZ59QTTi~u(&^$Gtzj#crxt$Cd>nxzxTJn;cRI+rMj#T4ua@CDVOE9W zVMDxeEt_>D#@%*;33QkoPOE=+QbBmO@@JDe@H?d^KbIOp`yLhtQ>#E9Re92Uz?hWT)l3VWNt$829vANh&T zQuW@B1K4RlY@*iXb~2P>$bG=FRywjl+R^k0oiRr4r`+(5LCspQ(0OZwY{5mdsYLEx z8Z72xBFo3`FWnn^7zAwb#h0HR8ueoRO!nMbzxj2L1mOda)8X8g<5t{lA2m#8(=1r* z@{2AVj9Q9s23~D2guGS)&)siI(3{@hqmF##^ilsGUI(|~ zHQpU#&Z}BARCdpKfX8LRA+US)X~?q}JeV0?Rk}3aG!2@6p8RV!w(5;!w^sHlmZ&W! zBv}h(HuQ*G-X>()Q-2-BcPdcBU|HeUuz*l-C0=K*lg#HHF5OrZp>wO{FOY6T5zr0* zkOm54$l>^rCtXEU3Ymq6uW~@T-1n1G|)hepPzDzoe(HPaIKmnY`7> z$ainW|May(k<*QV08e)#$upZ+c$bI_gc)=Y=ZF<+?hVE25mRhgq;T{wew*xK`o3*Kw{HX`d6%MSBGXyZ#Pi^_C#`}n0!E>;En=Ax~mpLgXeJ{lb2sn18XZbw`gdJIk~NElP{4`Jb`tz^2u@ zw@^WKGK^E5&Ao>4&bAq&r{Chp^6g}Z$gQCFxAP>=14FR@EC5;TSDeiRpcpKhEn@T! zKgWTFYsl*7?1rK(%vc|7GA^7&`MS{@PLy>_6fE&iG6rCj1Uj$&)1|ni1!kI87mP{0 z1YJoi0d%i$VPAaAqUP<+FIEbC1al!Eh;@86pZ4%>^VEY)d}0S;()E?gYwcehc;yrvcxyR zJiZD0PLrxkvi~XW-v66R(c;W;WJ(YqU-edX=OuwfxGW7wMsl~!D}Jg%b3zgP_asdN zPKny1!BL^WZpwxth@<@EES^qu50bToY3jgkKqtyZqw-kF*WI%pU9qiZ_%>&H^P zn2dqIh4=21%^;v13>^%7QLwo^;TA0i25=$14pNIT3nC(&U2Iw|Ni7*s7ors?PabK1 zr=M^X~sHw#zh&~DRfSiXuOtEC2!$o%DG=jwt~KykWb;H%oW`qdv4pM z%(a9=f`M3Q<`#haa^%H=!;En z$dv5E?YB;&&YTw!N&5W$`hWe#LK6YxLa`0{_u=QKRM4kfZ9pAjHVD3B@smlBc&Oi0 zbN-UZU(f{>pU!qnLu(=%BO56uK%x?B07l^Xm|@{e?-XCy`t_Z9)k!%LJD97}Yws(W z)d0Z-TTl{Y*UM|TO;+_>N$KRy@~svP$|k3uLUrLG0B~VOUGbwDzkU}B#Y5VN92Z%d zg%R`3MZlLzz(f$oPl;sX?$0rDk>4i+Dx@retjtrsMen@@xWUYNk2vmXeh=h(Z_2xe z252uhubJ%F?HAeEq&tWg@7tkPandzo^3=E%pVTR@uw5g$USV5Lr^Rm zC=ArzjW)hs`0keQqFlExmkOlF+3P`tvHHcW&NUd!$Qx+uX$f1IV-qWNA=|fd--I!b zb_Jx(!6@SWx}_>-@VYM5q08-7@>YW5RoA||EC5~oq*m2h)T#q=!S>@cdWmj_C4>}>s?=x(5;QJ z{-tO%gX?ne%!U{BtY9y~IP9EfxLd1d{}KGwq4XGYxMeXM18r=T8e3%QAcaIV#REG% zKjcQC-vyO}jK^pg9vnuR4;89r5cs(3LvQ3FKW!7%{Bh2jV25P;Jz(3Jz0PtZaeVrNPR34>(RhO~>l|ks)Jz@39Bdh>wXGiXBd?g~ zLBFl(D=9Q?`u4PnC}Tql9I-MkW(RF`>@&>o2L{Zj#tVt#Xz!D=BOhhbj}qj14EYsh zP8VEK(lM14Vs205)$-eyuYU_=nQ!Vi;>-EC{>N?0*|F?YasEK4IdeG>fHVJ@Sf@UT zdahsz*+VH>BW<8SAL&zP+v*6U>AQ6djQ7ROamZ2!F8_sEO;lP;PGl2dVnv}Q#93aQ zeg1)~#!K=8a}%OxC}j|%<)d2CM}46*KQjbR$3Q8Eb9tINi8*#%-wi4#LE!VSrI>GU zXO*y3phU|dpSx~kkylP+|5!Li5o8pq&FttX!zdbG&U;}d0xj1GG$d z;syhDyix?zIGqz;v?=O;H;=>w>8FbDCL`pZ7FFO0hZS%jr+vLE)su&v{ih4Q6Cm-p zN_`?D2;NDb33$rd$V&uwK0nxfKNo9*@Bio3xeMh@*zO@hq5yb|0-#MtkMNT<$T%jT z`uXp5Lx-i|yv0wypi#$$B5T>UoDDBQ+T0_v1F|gdM()jNpzin)Vc~6U*Fnd2zwhJ$ zDPd$78u=V|Bj-`4X#NS@D;B5>8+Nt_7nqZ%5@BKi9PjnH`BTKXZ*@BD!7c)Eg4PKG z1xm8}W+84th6HC)v3ttT2?Qy<#q=e>T}mi4=e(caPypr3G5Y*0Zo3Bq;q31g^^KIk zp^Ztq6#&{X*Gz(84MG^21|z3<2&k?9^6JwdI3)Bdv$~$NmZK#b>gJ9%*8n;Q9)y|Q z*qd?mipNq*gycd4|(7@u4gcY@Y*7=xNfLlQYEH4WMcRB{}* zDtW564h7mSHxY`oXDbTU@|;De1ieNp(dYMe!nL(41~$CEce~#fGXuhI^8yJm9ll5+ zn=X@Y9Q|_J9%~kWG6Zup5?#bo_oHE4pA-c2P!r=0x?_QSw~Li{QPhMDCJUW9cgey* z$1m`MmzZ$@B|jCH_LYNxv8-k3O2Vdd^) zjYi~~dsPP%qw~AT)t9KJ^8yfZxxV_}_>r$+k<{NVHmlQZmD>Jr0@i;;$k$J$GP`(0 zpCskDoO>6GpF+G_D^&E)RkCX<)l59CNly#&CSnKvshBiK)_u4k&;LfU4*=!<8N-GK zcj0%Bm~Q*Oxs>KL4zI!hVt`^49RSTOt=k8X!~MX;K4dGnT@>g2pT#5JUfeC78>fvl z1L^%3?fwg2!D)ZA(|$6NFJ2GD-{+NdePUtv)b60Z0pD&nvC!@h$& zz>*~R8R7mNMoP}gl!G}Spq_G(dkhe*d$)FuYi_lEAN!~#JlApq_yOA7A5(n1*HMi;T`)aMZ2cAA zo=@s6(-|-~94`lB)awTyOrMFF0pl593`Ygw{1fwE=m^vdx1t<4n2C3eM&u&1PVfk- z*CmqWhG6u#XZ=P~f2AC{1UdoR4r;@P8Uo?t9{<9qq(Hm7hMhwH&kKBQu)ND!ZR(4AEQ3RTxe}>}3h1s{z+ZFBk4eekxJn(;BsQ$jwa6%<$wwhi)xer~ykR`T2=y zBR5HHO2bVFIH^5(31N9&BR$0WqlYO!if+wea^#C!AYVrhy74hmmb;GxGu*%?-K`kJ zKPOiN!*Fmuy-)Lox-`-9OJ2n8C#n0TU&SIq05girj#BbR)Pj|Py(V@iml()5)=F!A zECi3jAgg!Hd}1D0Gv@Mv7MB%ZnJMEFi4-erjD=>xuJ)YiR;z%~C~=DM-~pR3#L9er z;rG8r3&eW?GIle_o7eo<88ZPgua3oqS4%7l?r}0d?ozaga zCRV+7uutIRj{#`!s_+vXLS98(p1yb1M0gYQu@T#(`nB+1DgX4l>WRrAV*kx3$m;!* zn#nzF*{P4}(_;wPGaYNpr_QvVFJf3j0{lBalYa$!O~w#sIWhk|0zE`%@IE<=Ay2;U z5`Gc({QVw^ofH%DZ;vYsTnqkpGF?{C!Lu>{QvsvfK~sDi8?JE6^~xOLA#JORN9UB6`vRLPWg)I7^3Rj=s5eQO8>_mF z!BN2E>vK2#wPn>dfA3*eJy?r>{{y`GOhi0>`f#2I|8W={jKINF6LeG2-*`j&5B4(kwj!5gQc>NP8|?<8Sc_P{rPI#i-)luW z^W(ZlBRSm64vC{8B=7U?NZfd8Ms`4Y!7d3z^A^KLVqSS1pPnqW8oGK!)-akxQ>f5- zi~|taJvwDF(6xS8_tvLutS5o}F29Nw$m)?+r%*}7+Nfd)2Qu>R>7b;>Mvr@>KWHj zPJ0rX_E#p?4abnFSlESZK1`+tGZMi`!R=FhuZ)!~G>JZ0q>zv2IrwA;5}HC+NdC?y z*kO+re-VgS7mt5SPatTK z^lKfs@IA^466w1~JvVdcjDWc-BEJg{=SSV zs8+oesbPw}^F$Up3@AaU0mrGC;-S1;=#@aE5u-Du7wb|0S41ywWorGKfwJni_F+uH)R=m|A@C6prf^`man5F6h*lw)y7bDHI17qEXA8ri&0tB8@onIl zyucANOY_^5!P2fZ2dsxR*AEjdSm|A{c*lN;fpH^Of65sq;^I&X266o)vvX^~bW7M6 z0&*oKH=+HI`BcA$GyC%BPW{p-cK`R{+*)dY_LikOJ1q z%MynPW%%O51KtD@Yu%&V_E2yGWLEpu+`GGvo{I70wlz`a;_Z8#b2;+a@jhrzTGM8FkI8L`#Klj{OfDrbG^G%Fl z0oeYO?+??JfYT{Z4Z-+%(LesCn$+u@BY-=S0ffsyTL`$6Zv%*>A?2!cy) z6F?K%tpsrlwB{k*Ola?>4k(jQ!=?Z0?c_TBaJUiCQoiRE&Xw zqoS|VJ+Nq87T)-gde)AVX53aRr3*GFAc~@UEuP(kS)P=`Jn?d#nFg~Hv-|D-p;aw^ zue6Wy^fdculLU6?*U*gsBSVl;;0J+I3uzSI=Vr z&i>vuz69aB3{BK2-wc#SnD-QI7zG1gfI)4it@P$#z$QUSXZ!1kv;JJh9rb~JwRznS zG*Z(Rj{SE3j+|2K0Eb4=s(eWvM}N(KGBzX4j^O)$yS?+IxL_u)>mA6@>VsY9iiqI1PcZX4IhJwL5;_~pC zS7dXaVNH2I$6k})RvkZInf?(V3iw^u_lBRNzU;hWvfVwis(z)8rqX@ACvDY@PsvgY zmCEeZN7QY*Oudm}w0DE8C2fhO>A7(o^?nobKPB1?YL~Ml0+2B}m!hjVIXI{&PD%)g z^mmE8?Cen%jLF*9Q}}%eos3#}hzwtcRxY|W=jdwdzV076Jud1>mdxf&YEg$K#*pk&YqsM` z@y)0q^k5brV5$VM^Q4sD5*`*lR@G~%{I98gN)>mw^^@;JZhTU{{ZYWpO^mWYZfNQ#h!TK0#C5$A2jp#0k8fF#SS8xgYeev1Ea2WB zsxkYnJVsA-1QiD(F{TA03A~54)?`%K7sL`@Ki0QTX1_t3>2mhnz(LyIGZ`;L-8Z7? ziIb@P{7Pc4tQ)t{UV%E+w$v(Oe{_e~-^B7LNSZ zBOPCCXiyw$2~;;40t*q+vEh~%xd7Ywh4>AWVcPPae#7}dt#RP+%Iou*#T8l1`Tv@) zpKSk~Z{w|pA`QDtD+#vN>+U~+LTP%IdLn?co1J%hfMsM@k^Q3B>%}`&x7|Ea1GTX_ss+)zvha(qR{c9_f1|=JlW3@){QA=!5cyBWrhCbn))AS)QKn% z&Ob5QnLnrPE4ntxr-cl4#J@8SQP^|7;(0fMJf83_4!Q0njFf_d7OR|<+!upf=_!^w zM%W(N5ocEz1h@zYyRgHyo|m%p`5Tef?mON`utAhba=MB4QjCjK89fB!f-_nJ7IZiulOBpRnC zxVWg+M@eiNuUEDX#ACf9_idz=NU1n57lzu~eM8H=OYr$8No<87{tO1@bLVf2V3vP#ri@BK+y>s%q1*DQWv#^-ukf zbSaaO2k~jf14E)kcYjaXA_GMr0o#Dbf5AjQ!FMYC^Ot2q53y%2%alX$UgGG#^J{lH z0PcM;p?)+E7g?^2$-!%P{{mPqW82iIQDqOEiHGk#eIXMQap2T5j8Nk~4`5*q28eQ! z@vE;bc5_oEb*Sb(bDNq8+l3g@Exd|9VNqmO5!@{pt?Dts{fcWI`h`Ml#MoP}ywj}*}2ThZzb>yROFwS}+gVYnf-6GO8x$N-Ms&D&E<>28U7 zV1&P^p|~VmTR+<^^=;Z?&9-UdChMlHIj1anQB6WjMnc$jls0v#0h(axhN&PFw%+Fm zL#1nG%3u2T^2qJdv9$1j;@6b^VT2Xm6IOHhTP-BR2aC4VQDhqm7?gARifWm@^()1? zv*G(4D1SjLZ|d=@l9DKNs7qB1rS%(ui{$0jFbK zQ*L|0)sO$_Xq8wbM4Ejtk{B>dJ%f<)Z$>1Z4azm-+rDUe*zU=$%s!s{`^g(tyfpkp zuqk%^uDRT^IU+F9lX|%&+LIDK)ib<|J07g1MNlj8*o$VG|CXu+X&>x}LXuVq1Ms=rWNPJe_C^ zG;Z*8TG;Oc_z)c3oUD&tPYtizZg&U6=9ddbt=wuDJr0YR~*!o0+w<-2A1_P7n1aUpwak-=>Wtq<83S-hg z`6*$i8a!eAymZ!@JnU6-7Gr2nrV1WdqjYljDZ+LT^uM;OV0{tg4?u!)W<+E4``@)= z1qtxEO;pmaCA=7cbt{{MES;%RgbUaOytja{2W&Narp6wD*kR6-iI2Fqe?*UMD;ot( zh%0~oR`J}ML1D^C%2Vj=xraj2IwLU80Al{}VKt)DUDP z_#|9EGH@76`M3NwW&T>u_t5S8xK-&Gm|+gTZANdo+%~=o`BeRSUA5f6Tw)H7V{$Wk% ztwA!8|BClD*E_Z##Ix^6H5-Q%wguw%+-zC**^Hd-Q)4G54mJXyY6<7V?j$i3@se5I z<16g8d=R3fMvNZZyIr74=<7LFYZVq%F1a{KHwiHaBFMyS|zT%fEjtz zQVdv7`!Xb(RC%9lVs`(f#KnQSvcpNTG5U1{d zqMxw+*XDxQ!!7=U2%v}Xlq(c6;;<2}9L^g|^N~F~Y>a`GRPIjt2I-9z4NQ%UF?*J} z80W9P`_ZO9Pg@pM;lz!aB`Y#gYqkL*U>_j#aNMzCga<9-hrulL9(yGPhE5h+01SM1 zhK93#&x1?1mg9LoQQzHwLwTE%bRjm^F7mvW;#JawD>PeOX-?UZv04?{{j+}rBYu*& z)oQzb^#(YNuOs|q0{(l`qW??}bkqk>O#gN6%QM24k82`s6&=GvX~97+*)PX&nU~O( zAAdc*eKd5OAkH6`PlFKbo~!ZDH-onADe5q%XSZ!7y)LiHZYzT!9C+6#uJ8v^gfF3^ z4G9BY#@&)-q;9erSRuc$kY^ zH36LuILw-r!(m#t7L`Fe%nRB<<&qKz@KDUst7MVVa$4YtVFWizGXUbg6oo^2s|>t9 zBVmt&X0M!H$719XIYq9LD`GfZ&(mPY&|ms-jEapmeqw9USqJ=d)Y6rvuIcC6NFLI+;x z1V{Mq3smAfH==q|>EDn>^e;e*Sblm!MLvk+S0f_<6aJ6}o(_F_nxG@l<@N;;q-ckd z*TiJ3e>Ivl+hJMR%dFJgnsFOt9jBoE2-8s1-Wqw$fxo_8ZGfk4R@wWI)MTo#kB zOgwM9Zw$jD?hw|4MU^M!p)<#W_teAn!o1rP2v|M+a+xyqJ-MNfV({u~Vdu@a$#oWW z*^FSMHaUHCny%fZ$EL4q6`m;2PpmLtH*$kr6M=ONId>l%l6O#Y2^`Ig3GofXEYfAi zlyuOHzY^M?5&z&w!>n77xCwSzjD^ZI8f_y{29auV+|V+}GI`!Rlarh-Qe9sM#Sgj~Mco^_Ws zzWZ(C+^w>6G9}jV8Ss`HhJyr3TA`Bwgb_Dli=XxArxv8lR)i{WL92V|D}iZi#KP!Ad|}u>bwWw&+~O=n?zDA9L@Itt*5ks zZ(Hk^S0669l-ItW^?c;yNgO+B+b^kPN|IO(3%n8SS zN*Y7;{jN0wmG@@hR;c%Dck2fo@q<=}&3%>~%IfmzyE|fnu>_}R*Zjtv_Ar!WymZ-W zrjivmpva?>QW7sVr7Z^Yl67j0{5P+Qy+~ftaKaDw-Yb@Bd6rX_^96nUG@$!@w8m zhFV$?$+6SNpQ2WlzQYg(W}MGZTddcEI@ZLk?RSB$-aOT`8Ct#7T-cbBmW~eG#S<2z z84O}HV^LaFGb#M*8GKZh6H8t3b zI;}nfV3cznIkUffTSu$_!dvHnUI#EX3lKE=fdOcvD862Me<>v1nzuhu$aKx)iDj#* zjbwVRLaEPeX*sF}0gZ{Z z4-h_}FeIT`8ganj3XKgSSiQ1p4g0Rv&AG?K)^qH)Jcp{-BrC4_6#*5?>+e`I{*wt3 z!PbJ4a^M^FRgeftejb+kx=y(*_fB7q;PK|WO6i|s$H3-}?(j%gYbgCp zMg4fW6@!yf7Dwh;*)N-{$8NcnkN>g|@gjhZDcxvQ%2{gHvG|{)Z2jmd*|n{8JD}#( z?!`PQ_&&@xQQ;%qZ&>YK$ zECl5ZNai>N%q$oz{B^rlpb>c^1CMcJiFuyc3i&R;fDT~K25nWqL4nZW$qVEI=NW=g z;2B_Or8hDDVynmx47MofW~fR$|8k#J1#)DIqgNQP76j?h2%dit|7Ar zID3UK1@XqsP0T_Mv{wMo2=t%cdQe)cNoL0?r$N z{`Ta8+eGj;-!tF&8;jjAS@(*|P>KSIWh8i`G+?F2l_HR`+GA6%ZFyL^#b55N6nt4r z18^Zxv-;C!9Ya*P0ST*){lf~?F?0qQiZ5=YGpyQSec(e8g?3vp5CF7iTrC@aYMrX# z7Gu-><%eVhLQn39=!R?M2qiIeyE4?JJqa_(Cx`keHpiN=>FHHXicO1=XmJ27?gWV_<2_I{gMaL>2%Q( z&sd3B@SIF@gqJxH@s)cv1M)o3sN%2xz6hg<`fzOINp(kG zF|)aS{hKc|qp2}X3@%!{ez$3z9LPw6(uezM@_k# zYfosf6wcns=v~Bmy-f!Ebl8;ARgTP#cEkmYN5Bsr6KIo%C8kP1XP)bLq4$zE5X>5) z{z7NE$UUH^(UI^mmD4w9|CTW5jN%GxItB_G%M9GY>VgEE_5f>VY&St#>oh#4~SD1fY%RIrTJ1+tq zu&Um;tzjj)z5YdcI`|uimX+ z@l5Yl3otIQ-xXW*@=0Q9CI=*vlzKX70l)*{8M^}{X{idL0xphqoGIEhzWgDydP=8l zLbOMEauiL*52jlZ@NRrLQnnXEq=}>b>(CV+kb6=s_vhGJ4Q0G2T4fGEODq|{KFfP_ ze1^WXNKds!p*tQ0F;#ghH?pznTrk@aQ9}SmU>8<5%o;EE30jTnA(%mfFB!HB+yC-? z)S7y}h0(JD0OE8t5WrWQr>jaH0x3waLC)-K6D^b;`f3c(4M!#6HQxqyifh?_ei5Us zZDNxvO%(NM#vG+ct{wP)UH~s(gsv<34IgwM%{>(r;j1DU8!rq|F?I_P&VvS^-w5~j zDp^gS3aHkF5+fgUG#i4~pd1Y6v&KPoO2J6c?KG(;8D(~8K>KF!la!(A?zC@0frsG7 zZM&k?JF%C3g_-|yGxEJQt}aJUcyxxPd2ji_dI@vshG?EdLZg}dc{)<%`F#e0t#Cp8 zC|^{4r_-pk8LaY_u?20Ovcci{UN8ZHGUt~>~{mcqON5#mcOMufL}1tH1luS^3giaFojyvN3^C#rkuIl)P1 z;Yi?nH%ISB)reU|;1--Wu=JCrKV5(p@!z4ko+RMW*s6`&!(ui-->`Gs-P0pk=_PzP zKjbatJ^!wK*KE0yw+5=B@%^HeILh;p=~yo<>1XS3x0AO!QH;X$v5HV0EQ*-8lFaF~ z0Y99nHc>xcNjZG&!K5&_{kJf)i6CXSqtPI4-r0$UC!Q)4avr%p7PP(Oyn&s%tUdf? zZ4YHq@9Vh{Cm6dYo5e?z8vnbp7j<3RFAYbQIgoQ%!Gu)(pe|yxxyN0rKzBML3s}$H z2o6uJ8ct(EuLqV6P=E4!>a5?sn&F-C(-|KR0czWy2?j^DHq~zB@U>K=Nkb$dnGQOc z*zZDYr(*|!G!+BHiSB#jI%^aRbQoC)6`pM`vO0_6WEzo;efo>vXD{bI=s&QRvP_%A zaQQ*{Gi+{3vN8~LM_7gB>V-ZRCSc8RbB^=%){~fq@$Nl` zTYJno2Eg8Lgd&(X2Hw$YYmFi~Hq{UFQ+!Ph-H{zebx1-k7<0}O75dZenG{v{Z;hzy z>%aPl$IzkxP~#o93|pR&ZWMbb1*e4rdVPP6VE%Wv_SNv;e>2Z&GB&aPP=`tE=hkVMy%9rQlObC;jGWJc6<@rD>anv@xDdEE5e_e8(+Cm`BTJc4!PM(Zmpbq z%JCVVgek?^$O+6~!+8|HqWl7O!qo;x{NP0i_t|m!QR1e3hvA_}<^2lWmk_&At6@CS zDj{SCH_YC&VAyE@N;BouYWO@y?mOY|beqYX0CMl!jg{4cbF)5= z1W68W^hShURz1^Ih*=W5^TBlE4wZcMgQv@=oWI8p{)rLvk5VBTem7reDDe{euS$t} zF3z=*nIFa#&d1plh%)U6Boqq$X(+(1Qdud*;9&B<7TPm&lQu=U;=Q_aMBn2&gG(nQ z(mBh^q*plB%&g3lYh=Mt#gU<5GDx!*I3*dO4;O;!$E$wjqYUjuvkVZ2H^8 z?U-sk$D86A{j$d7=`U#sH`J^+eX;NN8$@rhp$VwXS2Xo-O(W!f{cloS3i@b?^fml< zCStl$FoOMG`_~f$Wd81k`v{8au&xB@nvfxQZr*lg0qh7V^)Z>wN2-WHC^ zQjzTgcfN<6N#~YR-@K0gU@A7x`APc%AMZeQ0n)% z>ZbRNV`>6LIdEJLwA zS)Xg2-ulhCieA=H&CLFL!e~rpz@1n_THio@V8BRUEX%XO(9XRRPMG~}?_bDr=W z?#alv2IA#}Yc!xwGl-)S%s3Y;i2jhP*nAj9N^7cr6j?D^FW+!L3j#c;DHwbwRw*^Q zwI4p2E`Z7LFS&R*JeJo!`W~!~*od(((tB|X^c2Jjn{}#;0@^1w#JYq9c4NcK@%t9L zDqg>B1&C;BKg>v%DXl={E%6Zbc^>}r(ij2H=cO@oapqRrarGsSj*DZyzaJk3Pcw%T zZc1AxAdm!Fy0KICUvETUBy=c7Q&~M;!Uot1FqDTMX5ddD-7%1u2GSCw4f>|M9Y=}%_caqj_TrRR)lbJFi9 zU=nLtKMWRO3y?#lhSZz?d!9GTUm_pqDonxI-R@CSDOc^VHR$@NS-2lp613j&Cl+lh z_6y(wXnQGn0)K$RFWjbjvQaWMHfS++sy{t?BFMuqn!YhlYS_W#V3e4i%J#l?@Q{_x z(M+;(t!-*6@fgU)_7~uy(WOHWghtvu;$}0{L;iudFibyXIaR;ylLF?aZ<$!%e6$NEF$89~P2qGSMw6*-}gu z73Zc*99aciss$m@rGpjJ)VJHdb8Ictsmb3)ea@N1pYi(>$o}sI`Ye32KNVS->x;tonjqfJ;pNhZsFFv z+UMj3GB9*^wi0L_R_@4-M?EzXfKik2Mu>AefU#sC(JN|tFdm3U%%e_8Juv)sU)FNKcZ=*Le`vhr;2DWfcY=XprRl1lNWxirZzn}TdAPWe0_KP;fLg8W6W*l@){Q=lU&*g}1{u7S#`w8B-GiW!Rg3kud85G@i0P|5EV zv9nv?28jxinl9=Qea$f{D9@6FNxHuH^bf*keht>w)D5dAYrw-v_%L_lF-K64;hT%) zHWAUkfZ_^n!i8rRvR!=sq9Axlsn#G#ITQ91{(eVTN`Ow&*J<~|)}2k?I&kD9>9BS! zDs8-BG-^^-&vgwe4b5D#tEj4TK*b4m4NuJM79JxXjH6^D%wIl-{ao74t|VU!oM zt$Sb)%q*4Mm^LlQZvBt=A{oeDCoG>9cdhh7U#BD^u~k7b>8@3;KyO?qK=c=OS6dAFf8P{6`h z4L5VEfiHo0rWs+)Pm)3@-e$(5mfF`GUY<7gdw6?ywRcC3YmJPK&lvfD7DM5w96_Z%DB2Lm9XX{2mEE9MP26Cw?QO{|Uzqxa- ztifZoi@;OgQQ^OkDyHuhpGZq^+`v+Y_P2q*0}Enu*kSDX_fw@_Z(MjMkU%OQsz6Ba zR1Og)g#oZyyI-qxyd*_0>=A6n(Ytay?%EnWlN+ynM@n(>4V&{Aa=GTs467ejHiYVt zPE|vs{$F{vl>}>tkt3ql1sEQ-QeBy_ojsL8v6ct);aD>ISY2{nc$N}3i2w!aJcLQ;A4OpprAg`hKgo-w5zeFHbTak| zGJ^!aB)hOmN@o*=M_7n;go%0!*@w0dX^e@e9M$`PfQx0~paoZ2Hz!ItWkuI9fjNgh zc=qsN61AJS>lE8CB{iAUYm66`wiFEKKlRm}T15(#+4vb%Qky#DIb&Nn=bV9#u(<`F zANlh$XE*%oD~5^2T-r+JWteIrzXpE|j;{kCB|!uB<@LuyuUdw91oBGv{cbm321aUp zxz*hs7TndRGm#4TX57G|+2o*^x7})s#d0o`eq<;gNPmTO0{+}MctuIb=7o;E7)Hg` zPlP6f3JU{Rws5&I@>n>n&$7RVLpXf1+C;Tiu>c6OMRDudoex-QyjiT+Nrh4oM0j#( zIUG1YnZNei2Edx%un0PrBY4NsC?j!sW_(W`HXch1fL{#fc0%2|n|7nwXv*=>#L}l7 zuIOTjbIAJ>KOi_i`Mg3rOMMSS1V}HhDtqaiFE1cVZ{2VU>{v<}M0=A51Renz^ z0cS&%zTh+pVN*1euW&1^_)f8b1+B8gnzv*<@@pS)GbPu8%esY<796fVks_0oD6`Cs zJZHiGgf?Kp;yXEoS}_vrldAIx3ZEC{$7l7IQJ{Z7Vjn-_P6^~etI1uv}g9@y4>X9ZaO2=or%(I0QS zH?(vA+s_b(%aDe3nX>xTC#1uLAZT?Ag%ZiV%el&N0V65#W_a;8ruki zBEnN?YQ3AW9n!kUlwj|!)-B|NqoMyNbNO4X6WJJ-asTyGp)l$_`yPfv23 zR&*OOVBginYOSN!=DCV^%b+&GpwyEh856NX3q&_b0tf|z*Tkj~SU%{3PaSv7Pu1Ry z3V zQ5ZN7A?hl(zty&Z2dzFWUMU(Ca|=X+1>NgnE%Di?v>&T1{=5!AYmK~{N%EPgs+^Kh_G(iuyw2pO)>X#M?(oFGFb%VClT#w$0r^0=Q3=%eUY z2U+GlWDE|{>NqD+$bp5ejj1J4{=zNg;M$pgl~gf1C^Ju_o91A}_pvX|@2zjvnMQ5X zshv;*KPCt(Js&J!=A8Rk_~e&y+G5e2ar`&F2mG%s8`hlKZ}5Mw2mN1x*%}KyvGw?D zSonW~yKR4UB0IS9h7U3=*Rh>IbKN-}{yf;go7sJ;`7(t8tt>t}8P01hB2h4)^X(g3 zruER+&Z=+fY2Y2V42O5V6H`XxZPMQae0C9h(Jl_saJ-WCm7TgG#d(>bp`wnc?2~ga z*+h8xnIeKW2RrgZP~^D{@2e*MsSb~`Z)q?Dk1;_SS2i0>aD&l4N=HLpX=1v7wq`zi z5-tR-i<`!%{vG!?JnESY`a2*oz6~rjT7dmjXx=nn&f{&+HB>RG*3Fq)NOomMgQvux z#&n9cb6&V_QIvB(NLax0>Hdabs08;mm$2H}__A|`ItM~T>kC(RAB1%xRSNn5 zKd%E;|Gm-G18~26tc`!TGlprF)VY((kxQ&{ThHIiK`J}VUre5w{ir{7TOUM-N2+UzITiCIvG;TID>X0=|>0}4RhgdJ0 z-0nZ#J(9AKdjA|5u!zMIlt-V-lhl!u4DO`&S%A?S^wkkuhb{Q8#2`2KLRbO(>T;&8 zp6EZVA_emqgvu#=qy*ePL&L8MY9Vr<@L__NC7nRX=;ZeruBR2_?{8--vj#{wxyF3; z7sx-!4F~`oh^tZhZfSulTG#DWgAJ;k}T zL$<%@+>hOy^MXVMZKxjI0`>}Lg_a3_a{i!7+LMdRoQ9ksfs35{{R>T)`7&0EG%ux$ zeb%=uXO}Wc=O)~oJbm?DV6oqZ)VW9ipgad%#^6^p6m`^5xq47(*ZXYBanyzRfPfTcLuP_N zi>kJh-U6V|`wSG7F?eLpv?k0+5&sm|eOYc8f2%C>R5-=p4N1%rVryv&jhUFH1>2&! zYF{C`_S%uOpo|_1X)&Wrsw0Af{(!;Fjib}6D~j;>Wd6te?I;*4g)-=eFGdE3w0v5E zQx9_~aM&3g%^xP)54eOsNa`#fPKBjc=v1r*|eP#3>^>5@&~yq6OEDSh~} zhcP`^dq ze9*j*CxZGE?h$p6We3$;bFF3SLmmIDj~xm*@ml*mx+=W+OF{Y4*-6_NxbIJ#htvk| za#u}l++Lp>e1Dehvz?9d!+x0-dY7^B8@j$`Iv ziJUrDjX*Ha!I|5dKn5u}sHorq0G1`|70@;-_@qSJ9l8M%B;cWtUmfufgxkfwlMNUI zVMT1<^)@|`+#BT~a?^itA^T!X{*eKWewT=MS&eWKr*NNg{%Ukv3Z2X0>|Ce>I6==n z<$wm9=$xSbzN*m;O%Q&;5$kld2_3XQF*|@~b-D`wom>todB3h5*B#=; zTuZYk`LSzPl!lrRYcIxWO5bk&T~eNM3mik^l?#4ZQl7??xpR&lm8F`IJ$D1#cavmKlCdQ{z)`q6)E%QEq(<@>or%-QwSuk$fIz#lwz zjLt(4eU!7aKrejVq83VgB@9n6`X5mOOMVG#AvL$2-j3=X>K4zrV6a zv4=zag>Vnv~_~BXpbPW^d2G1Db*cbPeK3(kPtoP_vS>pv8BG1Z=uw7 z=JM`LjeDZ(KLlM2L`&+ON||~2YyN;IV~!PG zsgM$T8*yKn^JJ+X&g|glcM{u%bJy`XP6Wb{(NxvytY<~#cni+`Se;T`Z*tQV zOF#Z|zzx47dqv|DOzhtneh1Ry+ZHSUb3DiO=K_+$u(cT5SF1RU?ahe=z&wu$4c06h zS9+)ZuYDfCQvQ$&)b@Q$`!D87%UMoD^PB(g93^}XP~?qpy8&smuhQ~j{T3#O8}Q1= zI#SSsTtx)~&*ewwy(9lJq=5tAP1A_-$>7c_j3iLu5#iC3c$Q4BU|?%oo1*$Q+M=kS z61*!)2y){Ab1FBouOVbhrw>hE{(jq4*#o#0;3>Qjw$d%GZMco#Ggy8w9k3Z%w4nV^ zbsyf@ns?XUZ3BYE?Jr))P>p|NUQ@@bO#u1|=REF)lnnO}YQX3ia3E1ey(tMJ9pnV` z$@SJ~E&nnd_@UZGe_UzG4NdD$v)ZfKkGo!DgHy~m&lW&&{JO_MnA-+U38+o@ab98Z z9}-$~^!|>mDT+R)(7A8)&g%hf(;mbKS)#RBRN79lgi2>UUt|1wsR{B7lH=hPwf`#{($Z)fMVfo!B z7-_N@^=mIhM|E)|#B1lmMbnpo@((+FfE8e4Uz0Fq-#Ge_M?4rU!l6QI3F>zPZ#@Pl z@xV8VMP2&^A)64cynZhw#v_$V|Bs^W#6Wcl6DRmAo!!_vs74V~U8`!&W3Jo38AA9$ zNs^Tg*!a3%mu>hkc!IybJotQ#1YY{LRr8-#JnU-d>!6+2zQP|G@y?X}AeNYIzJmy# z&(|XIu=Rdh`nRk%hp&3-ltbQ1fqDk?a@})-jLIIX?psQAmdiftohcXrJ)`H^euht5 zNABj)%&)ktKn@xiBV=iA`Pm_4u8{;ML-7Rt8DC^h(VUt&Dp(-j`p7wZc6XE0YlqeAo^dr-LEU}Glzz%wKlfF^Ihg2l| zj(Qpp@b%!=7Oj87Ld7$6^p2%bO$~1^yu$e|!48cfn8^32sgI$r4k9hXn3zVVr!VF-ZKV(5LKGPG zWB)cn(Jn)=KRX9djVns>QUhv+GiSm>9;!YfB~wXBHKwT}=&|hK1e}Y~d>~dV1J$!XGLn43e-#Vum8ZM8^f&Q)~1g@9JI}3-UeQ zY;T73S>GH0`Z=q!|C`D6gd+hDm;mCh%}k)#&rZi#u!0xcc4OR9_BcXC#iCGbXl4QmBrXa>K`r#&cIwFduD72z zb+tB6$!0uPCo@R_PcDw!+%s0y=E)Ea&q9K$^W`=BN8|9n4@v~xT?AkXL_+j@o4Mb0 z-)q_5X-IM`EpMG?aZ{~O3#4f@}nT*vd_YpBd3fy)n%77vwSP4Lks7dxe z%sD^VdX`+bKSkIl=&z3MA>B|cIL4V6_NVH!-0#~n{){izPd!f;lUMeCUAR|yZb^FW zJ;;3xDsHFQKm{Pu(plv4O*-6Om^d+HOt|c<-7&hs0^!ye2F8-2;*b+{t%$HSKrA>m zG;V~rCZs$NP+w56*%}`uKbDnqzEB_AYF+w${4nu}lW5$gu;h)gP0{DWt$8rF=3aOF zeR_EyyXE*@UJLA{b62XZ@1YB75egY7|DT$2hWx2{RclAS3s-;)J%U1XPsmXrPw z#rzyT*Iia(DB;6H=TCfB_$@V!Ohqn9$}RhFkbVtWop`X)G1$Zw!k%g_iQifmXmd(` zHhWGz9wysaE~6EzxhqF^IjylQ*($q}0v!9X;Opf~Of@1ru*q6hpgwG}{L_~bP(AuL ziVmBOhiueJmg*h%ScJ=o9~7SUd`WonS0ys#?3{`Hk!QJ7JF?`=7RC5x3d*>jbe2uDt0BmL-N;0?V477H4h zp0l?c8UCSH_27)1idhX=`kOe(daP}E6&IN148M&Dm|z=AWY*_}q^gix&17Kd{2?do zF@ZwvD35ROP2GU+1fJ*aWE^z7%<5k~ZUlM~nu&Rj#=hMVZg_V^j3D?D@IVg)aBoL} zq1lJ$AE@1{j6J}Q5Z^wQ1bVk;ph@NP$1!t;a`j9b%G)H9l>sfp4H`^tC$QzmBpENB zWCRIp;;4-E`tvXr6OmkYp%M(7QMx7!qP$7F?L!2ju#Z?9?A@#?`}^rIzeb{0Q+XB6 zLq51oHWrx#mT3T71PjY!uOxzDVAOjVqdEx-N`7}jLS9ss!1JgeKFRM@05d$s`a;jx z4hxsX=tS06OV1B+NMwri$JI?_GcdrZN$6=042bPtljdA>3ktx;)(9?#P8NpQCPBezy_j#F)Hp-o5F%Ag zhUs)M)clp18C{m1l$}Kg{0bcVx)=|Ol;%23nL;3Jv;P;YY#*%+`iJs+#T`Q~-EBgz z)ONkvP}%|vjC|D82}Reju4w=<8%C?W($9LVy7ULWYW(RhJY%|$(`oQ-!Z%zv>?i}? z%|7@1I6t>U1CRy2RV6Bz25k8p{R1AI{;h0~TUOKm{DYj<`iV)60>6D0HK~>A1~+(l zdSNRCEswPgPl&L?$nxQ{w*D21p@UI^<1>t?$T;#KnV>Con9Q)0T}5iv-?UJ89|cMm z#suMFCMDkcD5ZHI-=p42m_ev+7?U#p9b6yF(}OF!%#Ybb%liEtqAzc+PyG!a<8Mz+ zepQW@?>b<03$j7smhIAJ*t=&2w>$!ak%%lh-18>g86qQ$#eXEI0gLpq`>xv=-8jL& z#Lj0kLdr5=b{;Jlzi2aiT@bL&TbxrheqdtW)g4^lCpQa=OzTa#3AEuZ z5=j9#l_**dFMu30AxzI+4uusTUR|A!wsf(h#SK~{5iS+!RwYics5})5A7543Oi@ETWj*eZ#S_7%w2b#wQ(T~?F;wN3W;7|L%lY?GY<<3>gV7cn zb2*a%F<2#K$g9Z202GpOjlnA(fpC+Y-6O_&=2W8(8P;D#Otum-OPaz=2eO#HW1Ugk z4<}#<<;#kd&=pXSr&^%Q*E|v4*?b)QO>yAf6TYz=6WIFK;$XlZq4YZQU(zDv{)yHr zKnD0ZqX%k(`9TTif@>SUj|MuY4kCUSt4uJ8BY|Bj9PxUV*)+hKr7b!gl!cPcB5uhx9B>W)pv{=-aOI4am9mVl8 z-I<-GBH2-j{2P5);7#&$61q_4|vf%Cx9_yXVW?oZHktyUUtE=WwPe^9MeK z@H%9vdIp^S2iuyF@6Ml2Uh>zXZ1cYL*ZR{A#2KJLcATfUfxmT700Q2S1Bp5ABn(Jh z_7sVWJ=Lr2qw$niP9p(`OM zL~t^!Q1~+K;iaNU?S~53RdUXSm*GE`5hZ)6?Rw;?+=Q)W{yE-|(i~M6ePOiMHnmL$ z)rN`3s8aMzt1t_RHRV%Hf2l&~n|BFO5xCFhr7Qn%1p<2F^>d(Rw7^R4eKr`bOt7@8 z8wV>R9YOyH57|Bhg)x$#e_ivVe!FZB6Z}k1eDsu^o3Y$S;F`&Vt%%SAw8Xr5flUL$ z4shyCVYZ)`?cqG>gVx!aQd=P3%j% z-k3|{ip;?CPja(A{q4v5y$kn(ywJ<5QXT^bGfJfPwG7?mXX+?S+U+`RF{1Br4-ni9*ei>i92}JT@P1ku zV|!Q}quvnmQ(6SBE<`qj_o6Ob^jE%XY+|-NS(?+K*Vm^6FzhK=_-s+-d5@?VKwPtR zZ-FTZS{1yKAQ|N7qE_?+xYawh5Q;L3o(rf{_mh7;>E9h z|2!4s@?m?-`TpPC`Vth!#Fth!;%)aQ0dH^SKlxoIo_*yodX(PJzl4@#BUicHi~k#@ z&Hhmv;&l#N`tCoWg5it!w4Xw{{_wrUSSO=jga7K0@NVxo4c9BW@9wtVgX9kr+4g@6 zXaOUGh4X*4e%}XA%N3G_i$+bxZ(NNfEI4(J? zVzmaj1t}`F@!do%yAbFgI@8wrPL_fJstJg>*^s0*UUp3y*%WcXdBgZG?vw0^$f1Q? zoSinBfGC#jSI`^_#-?{H=y|j-)2MV`c+2)2rPXrmj@m;=gY01tvN!cHniI}uh!8cB zj8RjlY5U>o6=_=%FtdtG!O93o)i%Dt7IG-<5+(jxau)sTMa5n$&xnY9{PZ**sAUgk zEYVvHY+9Krv_f4(46f0#R#_kDDyrYCt}*FSP^DQR+LlThR->{oyHDY~d8UoiSsipi zfSr1NnN@~Dy(gq>#?zc*=!FA`52qdn?7~v~%@l;#zfD<}cCH`O8%f%N6#5a^$yea* zxci%yC0@*>tY{R93`o6*r2Rg9Sz>Cu7rsE${*U*x0R9XE=((8Jx)cj{d!Dxaw-45t ze46b)kt-BpKe^oeHwZa^rdAjVE^>Gs+_trMFVN52LvA;BHtQDL2et}b{Vxr22b_TY zrn6A?ypIi&H1nudz|fX^>#emp*jmelJh4 z&DB*-&oW>X(?vc{9_DP<4!pVj{DA#GG+kp{9q#)+*|xoGEOWVK*RpLaoKr2gY`46) zv|7fp?M}AM^KakZ=l}9~|9tM}dM@41FL+`?M(DuD8SW~;VtpaxYBxyvO(!62d7Ir# z`KR}*<^!vJCEhdct!hfE>6Biq2S8FxtLRV;r9_y^Q0#F2$};n6aw!N_kOL8HQL_7q z@!WDYl;1+8vafi67G6 zImH2W&*mns`b{Tq&bFM>k@@i6^;ps9GHVw~?y<(tpcLpI3^43&5Z*GXg)UF2rixU$ z=Gba8$~v3BSU&qTVT{e+I3W=T@ySP&_2IwAU7}@L@ORZrqKdIl>N^x3G5lEJS zmufWG!`5L6W3c+*1*!yq(w$d zv2*Tmt1Y6+j%x>N27k`Fq3aL&tK`cmrSjh1&XTvr7exBb^!r_I6L@LpN4k??dsjV3 z%0TqOpL66V70{pAum4^sPdwTYAmql?7Z|t>>+-4%*R9cU!=Tdy%@Aqt)(83jx%leE z)uvTSu@CfWC%^OT?|OMsH-N6bee7-&CGshBgnGIHG4UA=w`FQfQjJvKN2K zVN@xEpO2({2#3b+`S2})?R~cohpHs9_CbE-P~S&a;gPUn?1jFfJC5FN?&tK^nlFkKm$r?E-XgGoP(?|a}NIFIq{ z5`I-Kamd=mD#p5pLmByX<$ech=SPg{IGAxTc2d`sL_1}4W-Y5$m4`uGbJKA-i#DhcA?qV;!LC0YPsB4?DXJwzqK zwo&XoD0)*k+M9LHfUL4J6@ZgAJCO!M&1`Jts|D+_Ijr4Jz_B}uLtG&1wRIRIRCIGd z0yrS+CwdU~`c{3dbZe0TVp5=g&@N4%lK09~<|LBrH<+Hhm`I_vOa)t7t#jp@asY~u zBD9R9b>r#YmcHD9Wqquh#7Lm?f7Fjt*?T>~nF4`3yxf(2PM&3j)0+gAp7%z_!MuNwyU9?>b~S_ zH_F|s-yTJ#SxwoKF4S&xn3e;jEJL|Tp-8M%2P8}?ZPuKupPE~mlwj5nOC}Pj08fI5 zFrUVgw!RPECy#aA@!P1A_Z7#lYF*+6bd&OF#!g~J-J4B7H3cxNUOG48^*2?pG_c3rY-=6?B=uIFc; zOc$=qGiH0S943d2L?O#NdnQLZ6`v)>(PUw^C7keJTQ7T1_dQycQ0(WS3@WYD(?3q| z)CbUpL!Nc~1lNE%ijUsm`}8B5yY6HMr4p#<4}O>a8;1d7cif72fC^$SBl`7Xp;xQ5Sy zZyWx1xlsf4EczCsqB>4U0w0q4ANUid;+2Z6Y(iTpb;e>u6o*C2Yg?y}HV288s|&u! z@_!s%Q~y+Ds~snBuYYb>?Njzti2ck2UTIj7xlc!R8A`fDWE_kd{B)4s5+4VrKgdJC zBfqq_%=41Sx}O(hW(7&phpR13(d1_BT%L1g25Pj0mRlYl{+luMdf=$@_PdMEdjCG( z8gVqqhcJK*u+$;bs}qYjJ-M|{`EHiS>cO%I@X`NaQ)T1Wr0sRnu8}b-1Nn>c5q(MlS~9Rc#T8aBI(4Qjbc-ZTjni9a z3emp^<@9nC4;$~c?X}?FcgY!}sRrB^ljWfm6-O$<04|~ANnZ@1Bv9Op;I-$gFNlf${% znn+KGkh6iPZXf;7<~#T{`_|)US^uTC7@b7g6~gyN70n1 zLR?TeZT1n*5jEXUP!VfX!kDD}k8UCvQB$JQY(8a)$$0W(Zgsjb#FjjTKn_RWp_Q$3 zcbFiqO5BI%OkBNBjC^v(0a4T+6=I;!<#}t&mb|mlKNDv9JtvQ=nb!J1Tm(qPgsvz7 zD?`GVs@gD`(qDi4GjYh{Pk!s$W4@>DP`=syPY2C*%wu|7e+Td;H=%z2afxy$53|4) z3-?>-$Gz8e^^rXcPx!7U!MlEY_>8WRv@h=qK6I|uqa&q+4{xZc{!9-^=p>=P$2~a- zf3b@9ZhE{clW@t9#zp6n)|G+p`4yg}<1Sq5WCt)?{&Tzi zvy8y18c1qEICUeuM^ip#Zco9Qa!E8QDymdD_3Gt2T##;+OW_2|x{C~m^u<7wb5I5d zoD=6we0ONGLMzUh7W|P{L<1bG!XMLxYyat^6vsu&rI(Hr<<2kr_NRpyWSwy&MKa!T zRC$w&N$N2u4s#*w2SNx_a_Z|?ZZIi)36t^P`EiT8Vk#Euf2T|$$%thmiVDqNR5$#o zf?|Ui-K>G^uS>P{*RRFaQ?WdVBc>3B;jl39MAn>%o~InY#pY zrO0F~z$?3R#q^?RbuBi}pA+$t9GP-9C7(Wvw^PDAUbC;1+R3$KX=dOXP$j|0Ftn{#K-IRKmSJ+yuw) zl_Tq)0a_i_Q{CMLx_BUKvO1+?^!XmD zy^T!hsjNJ&&pU>mnN1m(dWd`KM4_qgIhTil(0b7sc(2b+Baa(XLvQt)yOCA}xMB;U z5SY`;4eKTYG7XAPmJ+V!&W(-IkhUT}wu#>;!HHmn9MVWa4(?gELoBO65Di(zU~zri zj9)1ffDImcuzn7t1vPuBPcU-lis||`VX2w@V&9UVy*e=}R{w|!FdV$>eN4kG)!UoM z?{2XXz!=Zlo8fu<4lm#XEksOMo@UZit~L8Ph|71cI>Icner^l}$|BNxnuvq8ZsnKmdH}gRZ2e{PYdVGp9dWK#47N2HY=7C6({r#~9IDiUGCyk&$AyF{g9;8c1H}2Fcs) zgzQtphGh8LVZInEWMgAN9XPbvvuU*pXrCgpDpCZf<9bsgkZ8hnmuoPUYBIsh#tdci zL?}=f>)siYz8M76zFJk);DR5bANBcSpuVRczDn1(r@7fZ2yfJQ>ua;8rA(Y+84tY{ z@t+^2`D9DM!wzcTIK-IS_!TCm?wlVz4#^n>w@xBQv}C&iGZoj_J#WC@#;UL8pGYfxCy}V z46MS+vu`A63O1C_FsQ0?dHsZotpJq@Uu1(hcqtIf&X9zECKsaUt3a?$IibzkwoDZ6 za8!*)RJ1+Z4J!Hsm|%XWNG)d2|6CX`wL`C3F{z4YBn=;%Zu84Lkakpai-BP#(oaA8 z_D7{zre6$|Z?ag4!*{N=oq?-MIIlgu0pnC4u(>3C&s`aRoE_UmG zeAceR^Hk#8)R_T5bopz}F9S*zaBLeXW*$O5`r75~FCkY1eMuF1=Mp@C$J4>;T1vO= z8#bP?Rc}ncLl^b2vgHiaXKL>-PetGO9l8a*@VCvu<0SV?yX+Ax!BvWeKI3PI%HC7k zhI*`6UO^^G^=_H|8-+3)44~O0wL0SFRduca<@=FGn*GTqj(4I-UPsLw89LkO?s3~; zL%})^DnE}AouF+B1YpME*bL3y&8yiLDz?`7{YkY*lsL%8O>h? zB3VLclZ(G7F;-`W8HQZKbHAV?BeJ_9gMHA)7l*>p`K;a^Lmb2PI0c)WtmZKY8+KX< z-G+i-eG(^Zk($QfoI^Z+k_|oy^1!>tBa+#|1LFVgOr($t8W&Cm zM&(a3MUkNeo(_AFI_aXSDii>UCtGxP>(^UNyN7_W9pNABM543;YAoKu{nT zN=7)6(8fKbrQ@xowL?Y3tCuy#4coh|E%1W1+OgU!KJ-56HE1~G0aK662U_uM#f`cE>?}9`*j(JrC#e_>1aa%M7 z7a@`5a+9)2v^44RGw{!3l>U|MsK+D<=o~{#nUDL-!8$?j2MblbLktWV73pOcY|&~G zh=0maA52Sx6CBypGbWc6y^V0(dK9klZ5iESGrt7Ni;m4A!bfL1jr>MfDwVB&>2KW#{1W zA2ur0H5mbPX)Fqk5&V}35AJ^zpL*Gi5;OJoe%DD5h-;F(QG_j^NDo8;kmG+xkAtIi z*uy$sj`PB4axPx>N`LnPzd!=`_ml6Zmu^_Jy@VB=DeiYV+)3%4iXD-EC&l*=^N-i1 z#jUu;>Zw?L<1MIyfp~?b4fx-wq@ly;9waxX`=`2};@oRRc}RXd0&{(d2VHhD9tKXs z0Hmj|BN<5B6&zb=_`snbP*`m|dJ|;fpP!b_CpzA|1$oY`$wI@oJEtoj|DLJGc8=Gi z_3mf*oG|c_ilL9x^Fz7yQ$(H?748J1J0;)pNp7X_|La03AkK5dwp|<2>BCEj&-!Y5KKHB6V+jeKG1G|(9Q;2WFY+n z9hM<-G@{JH$mGV*9J4GzZ!VHl3(2|7r+Z+M#D4y<4jy0yWU$R~JC|VD27S6~lL}0Y z@G1Rk;+HN#v}|F6<&zc>8a3m*W`XjZ$E9Q|r|A!>AXq)mozRKbj%Nlxv9*zu6{&Gt zK%KIKi;w!loP=M!K=E2=#2vmUZh=FxyXsf$AL!k<5k4hX^ys27%! z)m&tx1=1N6mB%^BIaT9Y61D=54wE&Eik#;I6tG&|SVhKkm-ml?4x|Pi^Ji zs8+4Z9zE$Yvtg&I4kcgIqqH>iN7<>9P=8n&mdF~E0*nX%Uhag48gL^2*C3#uujB+x zY&?;gU)uTS-}un^`1p)6OEGRGdi8pf^Y0U9(h9dal(s#%4upr&m3(`}*uVh3Za}!& z{9oN3Y9J3ao2O#y=+)OhACB2)*TLuk2x2e}hOn zb?YWH>+@t8=^zh)tnE+kjAVXJu7f=pxkHCA)mi*n9}m0XP!SUHlMiWFH{3>-kz_Ye z@sl#-9T@SZm0`oDe&{WtuHwcwsy<(t1`SVGMz8qt-&7(t&maXaE(&MDtE{z4Q^Fo% z)mK4hk^&e~u-Cb|3P4j-(RJ;_u>25P4RSfk3Lq+5df95W?Fc1J$kQ*hLcZB z5%fzJjnb_>%|qQ~?7o4_ig6!RAX`Xc#_WR9@#qp~cox)M1&^*?MW}<6^Mc>PF*JWY zc>TfUO^sbjH9X=+&Pb40CDFNgmh$@jU&d#(KMp3;%IzQgp+7|K(k5`>{27xZ_LWje;a4R1 z%qK;4$g0c!M_=pbJ3}ot3_9nXzxU0*axa!hh{2d-X$e*ufN5C4=-FRKSs1OY_Lriq z&sKACaxmB-4?XoK3vNto>y=@1Bsnf|IzmWUk4RVYM6}@1rGg~3hZg?06UaWbN=$tS zPN=z!eriJ6I%mgw8`&fko}pVj=hs#a=H||$ERkSsKOsvAt#fcee{D4?cdfMBW4Cs-IWn^(^Q=ursF!h)L^ZF3&tS)&kC@w zWwq||rs^v)u$71|@%b_eAmk{9A>zq)ivu?d2SC$qMrhA&xz-o?Pw?&8iSB=AzTcH! zg^J5~Hd{*Fy9o!JmNS|V4*8F zTvk&IJ~O`Nstvn~DTM?-dicRt^I(w;n<9mYk1x)C8rhGBteAG_gY&P9uDQLGB3jCF zj+-on?7h0|vVjO1USz72=9mz7g^%jr-8N)D4wGo$YSX3Nl=RgkEszxO4Zg31Ya($4 zfY;p$mLQ=Rl)KI{<|Q?S>g>e^;Ji`j($Z4L@0k?A_^UI%-*+kn}C^a=X@QNo0L; zQB2#~GtoAR9Fn@(B~3Z*A>Jbp!wL{$c}@F0TKS+(Uf*%`k@SGt%Al)}lt@%$FJ!xq zoDSSjR;Yg)<$t>j>m9kvcNEM7t<7uy?$%QHa$E9o!$lTa?xR8v-B*_t#%2f;Hd&_(pF+$hActdZG1O!f)K%I zl>A7erZ!uX(U_)h@iumNmV_CAl6124!DYQ5;2lIPDbl()5!=4-D zrvx9N>}^&ol9bmSF9YhZxJq*SZGZYH-2$( zk6gcT9ogKnzUv+C?|R1@>$~fCd1Hv{I`q!F4iEe|V(ms-9Tt5(=kj!X$YC%n(HsNQ zAH}Z0^w!sD9PfB@9ip+OgS69g*!`Htxm}(?Ujxm+aUZ(daM>cZ`iV{vQ)V2QyOga< z&zhP!drbk%&w5vDg4Knmc0w7%sF6S4$p$M!@7ZIBNHkQh^p|w+eUq!z+mt)wqWWbA zTU5Jb2Pxe_Liof^x<^a@r!r~QVPIiAN|m#M^`OO88MSTphhAifH5^jaHHq||@_2&U z&j&>;Bg~Q#$rdp3S5fw|?7_8|$>$m`7F#Z}b!#_x7h zpzk)Qw1t>3G7JX`ahItjX=KQK!HbA`QQ%3)<#Jz(2t8w4hBEoJhB6i$)E_1lk&J-v z#Saa1jx$R$9~XI_fkhH6X&dc?9e%GlqH!%^ZT@fmKDS$;P0%dD@5@;8n4!j%Cxp{~ z|C!9swQ?dFHDFl=HUA_)?0EqI>AbgTARQEUiR4F;Pz7NK;y|nB{~W@@ z9>hU*OyJ*xArY>6QKC1Vl=e$^EA`Tg%8Lde<;e{yQ71(i6*MUuccJ%mhA|p*}_y&%%M_iwry7JKDf5j(DhHKoH(#!u<`i$h_=1tOS;(~2HrFJS zw7Ji*U~Pu)=0RK?E z0trY`mpkcO&L;kJM2~58fqa;&toU?jy{>@a2BX8UdA9h4$^l4Xm~|#Yu7?tY7-L(= zHq2Q^?O)5REjrP85fr>LCS}0Vu!EAP#wrY0W&LQTz(S{zMX%n1*7IM5C;ç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 D@+-mR literal 0 HcmV?d00001 diff --git a/src-tauri/pake.json b/src-tauri/pake.json index a97dcc7..41df6ca 100644 --- a/src-tauri/pake.json +++ b/src-tauri/pake.json @@ -1,28 +1,32 @@ { - "windows": [ - { - "url": "https://weread.qq.com/", - "transparent": true, - "fullscreen": false, - "width": 1200, - "height": 780, - "resizable": true, - "url_type": "web" - } - ], - "user_agent": { - "macos": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.1 Safari/605.1.15", - "linux": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36", - "windows": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36" - }, - "menu": { - "macos": true, - "linux": false, - "windows": false - }, - "system_tray": { - "macos": false, - "linux": true, - "windows": true - } + "windows": [ + { + "url": "https://zbook.lol/", + "transparent": true, + "fullscreen": false, + "width": 1200, + "height": 780, + "resizable": true, + "url_type": "web" + } + ], + "user_agent": { + "macos": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.1 Safari/605.1.15", + "linux": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36", + "windows": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36" + }, + "menu": { + "macos": false, + "linux": false, + "windows": false + }, + "system_tray": { + "macos": false, + "linux": true, + "windows": true + }, + "inject": [ + "/Users/guyifeng/workspace/seeyon/pake-patch/index.js", + "/Users/guyifeng/workspace/seeyon/pake-patch/index.css" + ] } diff --git a/src-tauri/src/app/invoke.rs b/src-tauri/src/app/invoke.rs index 5c13f36..60ec511 100644 --- a/src-tauri/src/app/invoke.rs +++ b/src-tauri/src/app/invoke.rs @@ -1,4 +1,4 @@ -use std::{fs}; +use std::fs; use crate::util::{check_file_or_append, get_download_message, show_toast}; use download_rs::sync_download::Download; @@ -34,21 +34,23 @@ pub async fn download_file(app: AppHandle, params: DownloadFileParams) -> Result } } - #[command] -pub async fn download_file_by_binary(app: AppHandle, params: BinaryDownloadParams) -> Result<(), String> { +pub async fn download_file_by_binary( + app: AppHandle, + params: BinaryDownloadParams, +) -> Result<(), String> { let window: Window = app.get_window("pake").unwrap(); let output_path = api::path::download_dir().unwrap().join(params.filename); let file_path = check_file_or_append(output_path.to_str().unwrap()); - let download_file_result = fs::write(&file_path, ¶ms.binary); + let download_file_result = fs::write(file_path, ¶ms.binary); match download_file_result { Ok(_) => { show_toast(&window, &get_download_message()); Ok(()) - }, + } Err(e) => { show_toast(&window, &e.to_string()); Err(e.to_string()) } } -} \ No newline at end of file +} diff --git a/src-tauri/src/inject/_INJECT_.js b/src-tauri/src/inject/_INJECT_.js index cfa374b..999d1a3 100644 --- a/src-tauri/src/inject/_INJECT_.js +++ b/src-tauri/src/inject/_INJECT_.js @@ -1 +1,485 @@ -// empty \ No newline at end of file +window.addEventListener('DOMContentLoaded', (_event) => { // ==UserScript== +// @name 全网VIP视频免费破解【专注一个脚本只做一件事件】长期更新,放心使用 +// @namespace http://tampermonkey.net/ +// @version 1.6.1 +// @description 全网VIP视频免费破解【专注一个脚本只做一件事件】长期更新,放心使用。支持:腾讯、爱奇艺、优酷、芒果、Bilibili、pptv、乐视等其它网站; +// @icon data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAkACQAAD//gAUU29mdHdhcmU6IFNuaXBhc3Rl/9sAQwADAgIDAgIDAwMDBAMDBAUIBQUEBAUKBwcGCAwKDAwLCgsLDQ4SEA0OEQ4LCxAWEBETFBUVFQwPFxgWFBgSFBUU/9sAQwEDBAQFBAUJBQUJFA0LDRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU/8AAEQgAGgAeAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A8/stTivZLhFV0eBtrhwB+PXpXc/Bj4bXXxy1ObTdE1XTrDUE3GO31PzkMyqMsytHE64Gf4iD6A15TrUx0fUriVQcXcBUY/vjivpb9hGz+w/GLTocYK6dcbvqQCa/Q6ec46dWth21zUFNzdt3zfuvS8btng5rwnkuCy3DZrSi3DGyoqiuZ6JQf1m/flq2hG+yMPTf2e9X1nVPEFlZa9olx/YTmO9nDXKxo4LB1G6AMxUockDB7E1i+Jvg/rnhzw/peuRSWut6RqP+pu9MMjgHBIDK6KwOAe3bBwa+g/hQEPiP41CVmSM6ndbmRdxA3zZIGRn8xXkniP42Wdr4C0Dwp4XhvPI0/wDeTX2oIsbyvhshUR2AGWJ5Y9h71+cUuKuK8ZxVisry6KqUqFSkpJxSiqc6DnKUp7qXPyqKV7pv3WtV8NWyzLKGAhXrNxlNTtZ3fNGdkku3Le/5njU1tDcbfNiSXacrvUHB9q3/AA/438R+Eo5o9D1/VNGSYhpV0+8kgDkdCwRhn8axaK/od0abbbitd9N7bXPh/rNflhDndo3sruyvvbtfrbc6Kf4j+LLq4uJ5vFGszT3CCOaSTUJmaVBnCsS2SBk8H1Nc7RRUU8NRoylOlBRcrXaSTdtFfvZbGU6tSpbnk3buz//Z +// @author w__yi +// @match *://*.youku.com/* +// @match *://*.iqiyi.com/* +// @match *://*.iq.com/* +// @match *://*.le.com/* +// @match *://v.qq.com/* +// @match *://m.v.qq.com/* +// @match *://*.tudou.com/* +// @match *://*.mgtv.com/* +// @match *://tv.sohu.com/* +// @match *://film.sohu.com/* +// @match *://*.1905.com/* +// @match *://*.bilibili.com/* +// @match *://*.pptv.com/* + +// @require https://cdn.bootcdn.net/ajax/libs/jquery/3.2.1/jquery.min.js +// @connect api.bilibili.com +// @grant unsafeWindow +// @grant GM_addStyle +// @grant GM_openInTab +// @grant GM_getValue +// @grant GM_setValue +// @grant GM_xmlhttpRequest +// @grant GM_log +// @charset UTF-8 +// @license GPL License +// ==/UserScript== + + + +window.addEventListener('DOMContentLoaded', function() { + const util = (function () { + + function findTargetElement(targetContainer) { + const body = window.document; + let tabContainer; + let tryTime = 0; + const maxTryTime = 120; + let startTimestamp; + return new Promise((resolve, reject) => { + function tryFindElement(timestamp) { + if (!startTimestamp) { + startTimestamp = timestamp; + } + const elapsedTime = timestamp - startTimestamp; + + if (elapsedTime >= 500) { + GM_log("查找元素:" + targetContainer + ",第" + tryTime + "次"); + tabContainer = body.querySelector(targetContainer); + if (tabContainer) { + resolve(tabContainer); + } else if (++tryTime === maxTryTime) { + reject(); + } else { + startTimestamp = timestamp; + } + } + if (!tabContainer && tryTime < maxTryTime) { + requestAnimationFrame(tryFindElement); + } + } + + requestAnimationFrame(tryFindElement); + }); + } + + function urlChangeReload() { + const oldHref = window.location.href; + let interval = setInterval(() => { + let newHref = window.location.href; + if (oldHref !== newHref) { + clearInterval(interval); + window.location.reload(); + } + }, 500); + } + + function reomveVideo() { + setInterval(() => { + for (let video of document.getElementsByTagName("video")) { + if (video.src) { + video.removeAttribute("src"); + video.muted = true; + video.load(); + video.pause(); + } + } + }, 500); + } + + function syncRequest(option) { + return new Promise((resolve, reject) => { + option.onload = (res) => { + resolve(res); + }; + option.onerror = (err) => { + reject(err); + }; + GM_xmlhttpRequest(option); + }); + } + + return { + req: (option) => syncRequest(option), + findTargetEle: (targetEle) => findTargetElement(targetEle), + urlChangeReload: () => urlChangeReload(), + reomveVideo: () => reomveVideo() + } + })(); + + + const superVip = (function () { + + const _CONFIG_ = { + isMobile: navigator.userAgent.match(/(Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini)/i), + currentPlayerNode: null, + vipBoxId: 'vip_jx_box' + Math.ceil(Math.random() * 100000000), + flag: "flag_vip", + autoPlayerKey: "auto_player_key" + window.location.host, + autoPlayerVal: "auto_player_value_" + window.location.host, + videoParseList: [ + {"name": "综合/B站", "type": "1,3", "url": "https://jx.jsonplayer.com/player/?url="}, + /*{"name": "Player-JY", "type": "1,3", "url": "https://jx.playerjy.com/?url="},*/ + {"name": "虾米", "type": "1,3", "url": "https://jx.xmflv.com/?url="}, + /*{"name": "NNXV", "type": "1,3", "url": "https://jx.nnxv.cn/tv.php?url="},*/ + /*{"name": "听乐", "type": "1,3", "url": "https://jx.dj6u.com/?url="},*/ + /*{"name": "RDHK", "type": "1,3", "url": "https://jx.rdhk.net/?v="},*/ + {"name": "OK", "type": "1,3", "url": "https://api.okjx.cc:3389/jx.php?url="}, + {"name": "OKJX", "type": "1,3", "url": "https://okjx.cc/?url="}, + {"name": "YT", "type": "1,3", "url": "https://jx.yangtu.top/?url="}, + {"name": "爱豆", "type": "1,3", "url": "https://jx.aidouer.net/?url="}, + {"name": "猪蹄", "type": "1,3", "url": "https://jx.iztyy.com/Bei/?url="}, + {"name": "yparse", "type": "1,2", "url": "https://jx.yparse.com/index.php?url="}, + {"name": "夜幕", "type": "1,3", "url": "https://www.yemu.xyz/?url="}, + {"name": "m1907", "type": "1,2", "url": "https://im1907.top/?jx="}, + {"name": "MAO", "type": "1,3", "url": "https://www.mtosz.com/m3u8.php?url="}, + {"name": "M3U8TV", "type": "1,3", "url": "https://jx.m3u8.tv/jiexi/?url="}, + {"name": "铭人云", "type": "1,3", "url": "https://parse.123mingren.com/?url="}, + {"name": "4kdv", "type": "1,3", "url": "https://jx.4kdv.com/?url="}, + + {"name": "1717", "type": "1,3", "url": "https://ckmov.ccyjjd.com/ckmov/?url="}, + {"name": "8090", "type": "1,3", "url": "https://www.8090g.cn/?url="}, + {"name": "qianqi", "type": "1,3", "url": "https://api.qianqi.net/vip/?url="}, + {"name": "laobandq", "type": "1,3", "url": "https://vip.laobandq.com/jiexi.php?url="}, + {"name": "playm3u8", "type": "1,3", "url": "https://www.playm3u8.cn/jiexi.php?url="}, + {"name": "无名小站", "type": "1,3", "url": "https://www.administratorw.com/video.php?url="}, + {"name": "CK", "type": "1,3", "url": "https://www.ckplayer.vip/jiexi/?url="}, + {"name": "盘古", "type": "1,3", "url": "https://go.yh0523.cn/y.cy?url="}, + {"name": "Blbo", "type": "1,3", "url": "https://jx.blbo.cc:4433/?url="}, + ], + playerContainers: [ + { + host: "v.qq.com", + container: "#mod_player,#player-container,.container-player", + name: "Default", + displayNodes: ["#mask_layer", ".mod_vip_popup", "#mask_layer", ".panel-tip-pay"] + }, + { + host: "m.v.qq.com", + container: ".mod_player,#player", + name: "Default", + displayNodes: [".mod_vip_popup", "[class^=app_],[class^=app-],[class*=_app_],[class*=-app-],[class$=_app],[class$=-app]", "div[dt-eid=open_app_bottom]", "div.video_function.video_function_new", "a[open-app]", "section.mod_source", "section.mod_box.mod_sideslip_h.mod_multi_figures_h,section.mod_sideslip_privileges,section.mod_game_rec", ".at-app-banner"] + }, + + {host: "w.mgtv.com", container: "#mgtv-player-wrap", name: "Default", displayNodes: []}, + {host: "www.mgtv.com", container: "#mgtv-player-wrap", name: "Default", displayNodes: []}, + { + host: "m.mgtv.com", + container: ".video-area", + name: "Default", + displayNodes: ["div[class^=mg-app]", ".video-area-bar", ".open-app-popup"] + }, + {host: "www.bilibili.com", container: "#player_module,#bilibiliPlayer,#bilibili-player", name: "Default", displayNodes: []}, + {host: "m.bilibili.com", container: ".player-wrapper,.player-container,.mplayer", name: "Default", displayNodes: []}, + {host: "www.iqiyi.com", container: "#flashbox", name: "Default", displayNodes: ["#playerPopup", "div[class^=qy-header-login-pop]", "section[class^=modal-cover_]" ,".toast"]}, + { + host: "m.iqiyi.com", + container: ".m-video-player-wrap", + name: "Default", + displayNodes: ["div.m-iqyGuide-layer", "a[down-app-android-url]", "[name=m-extendBar]", "[class*=ChannelHomeBanner]", "section.m-hotWords-bottom"] + }, + {host: "www.iq.com", container: ".intl-video-wrap", name: "Default", displayNodes: []}, + {host: "v.youku.com", container: "#player", name: "Default", displayNodes: ["#iframaWrapper", "#checkout_counter_mask", "#checkout_counter_popup"]}, + { + host: "m.youku.com", + container: "#player,.h5-detail-player", + name: "Default", + displayNodes: [".callEnd_box", ".h5-detail-guide", ".h5-detail-vip-guide"] + }, + {host: "tv.sohu.com", container: "#player", name: "Default", displayNodes: []}, + {host: "film.sohu.com", container: "#playerWrap", name: "Default", displayNodes: []}, + {host: "www.le.com", container: "#le_playbox", name: "Default", displayNodes: []}, + {host: "video.tudou.com", container: ".td-playbox", name: "Default", displayNodes: []}, + {host: "v.pptv.com", container: "#pptv_playpage_box", name: "Default", displayNodes: []}, + {host: "vip.pptv.com", container: ".w-video", name: "Default", displayNodes: []}, + {host: "www.wasu.cn", container: "#flashContent", name: "Default", displayNodes: []}, + {host: "www.acfun.cn", container: "#player", name: "Default", displayNodes: []}, + {host: "vip.1905.com", container: "#player,#vodPlayer", name: "Default", displayNodes: []}, + {host: "www.1905.com", container: "#player,#vodPlayer", name: "Default", displayNodes: []}, + ] + }; + + class BaseConsumer { + constructor() { + this.parse = () => { + util.findTargetEle('body') + .then((container) => this.preHandle(container)) + .then((container) => this.generateElement(container)) + .then((container) => this.bindEvent(container)) + .then((container) => this.autoPlay(container)) + .then((container) => this.postHandle(container)); + } + } + + preHandle(container) { + _CONFIG_.currentPlayerNode.displayNodes.forEach((item, index) => { + util.findTargetEle(item) + .then((obj) => obj.style.display = 'none') + .catch(e => console.warn("不存在元素", e)); + }); + return new Promise((resolve, reject) => resolve(container)); + } + + generateElement(container) { + GM_addStyle(` + #${_CONFIG_.vipBoxId} {cursor:pointer; position:fixed; top:120px; left:0px; z-index:9999999; text-align:left;} + #${_CONFIG_.vipBoxId} .img_box{width:32px; height:32px;line-height:32px;text-align:center;background-color:#1c84c6;margin:10px 0px;} + #${_CONFIG_.vipBoxId} .vip_list {display:none; position:absolute; border-radius:5px; left:32px; top:0; text-align:center; background-color: #3f4149; border:1px solid white;padding:10px 0px; width:380px; max-height:400px; overflow-y:auto;} + #${_CONFIG_.vipBoxId} .vip_list li{border-radius:2px; font-size:12px; color:#DCDCDC; text-align:center; width:calc(25% - 14px); line-height:21px; float:left; border:1px solid gray; padding:0 4px; margin:4px 2px;overflow:hidden;white-space: nowrap;text-overflow: ellipsis;-o-text-overflow:ellipsis;} + #${_CONFIG_.vipBoxId} .vip_list li:hover{color:#1c84c6; border:1px solid #1c84c6;} + #${_CONFIG_.vipBoxId} .vip_list ul{padding-left: 10px;} + #${_CONFIG_.vipBoxId} .vip_list::-webkit-scrollbar{width:5px; height:1px;} + #${_CONFIG_.vipBoxId} .vip_list::-webkit-scrollbar-thumb{box-shadow:inset 0 0 5px rgba(0, 0, 0, 0.2); background:#A8A8A8;} + #${_CONFIG_.vipBoxId} .vip_list::-webkit-scrollbar-track{box-shadow:inset 0 0 5px rgba(0, 0, 0, 0.2); background:#F1F1F1;} + #${_CONFIG_.vipBoxId} li.selected{color:#1c84c6; border:1px solid #1c84c6;} + `); + + if (_CONFIG_.isMobile) { + GM_addStyle(` + #${_CONFIG_.vipBoxId} {top:300px;} + #${_CONFIG_.vipBoxId} .vip_list {width:300px;} + `); + } + + let type_1_str = ""; + let type_2_str = ""; + let type_3_str = ""; + _CONFIG_.videoParseList.forEach((item, index) => { + if (item.type.includes("1")) { + type_1_str += `
  1. ${item.name}
  2. `; + } + if (item.type.includes("2")) { + type_2_str += `
  3. ${item.name}
  4. `; + } + if (item.type.includes("3")) { + type_3_str += `
  5. ${item.name}
  6. `; + } + }); + + let autoPlay = !!GM_getValue(_CONFIG_.autoPlayerKey, null) ? "开" : "关"; + + $(container).append(` +
    +
    +
    VIP
    +
    +
    +

    [内嵌播放]

    +
      + ${type_1_str} +
      +
    +
    +
    +

    [弹窗播放带选集]

    +
      + ${type_2_str} +
      +
    +
    +
    +

    [弹窗播放不带选集]

    +
      + ${type_3_str} +
      +
    +
    +
    + 自动解析功能说明: +
      1、自动解析功能默认关闭(自动解析只支持内嵌播放源) +
      2、开启自动解析,网页打开后脚本将根据当前选中的解析源自动解析视频。如解析失败,请手动选择不同的解析源尝试 +
      3、没有选中解析源将随机选取一个 +
      4、如某些网站有会员可以关闭自动解析功能 +
    +
    +
    +
    ${autoPlay}
    +
    `); + return new Promise((resolve, reject) => resolve(container)); + } + + bindEvent(container) { + const vipBox = $(`#${_CONFIG_.vipBoxId}`); + if (_CONFIG_.isMobile) { + vipBox.find(".vip_icon").on("click", () => vipBox.find(".vip_list").toggle()); + } else { + vipBox.find(".vip_icon").on("mouseover", () => vipBox.find(".vip_list").show()); + vipBox.find(".vip_icon").on("mouseout", () => vipBox.find(".vip_list").hide()); + } + + let _this = this; + vipBox.find(".vip_list .nq-li").each((liIndex, item) => { + item.addEventListener("click", () => { + const index = parseInt($(item).attr("data-index")); + GM_setValue(_CONFIG_.autoPlayerVal, index); + GM_setValue(_CONFIG_.flag, "true"); + _this.showPlayerWindow(_CONFIG_.videoParseList[index]); + vipBox.find(".vip_list li").removeClass("selected"); + $(item).addClass("selected"); + }); + }); + vipBox.find(".vip_list .tc-li").each((liIndex, item) => { + item.addEventListener("click", () => { + const index = parseInt($(item).attr("data-index")); + const videoObj = _CONFIG_.videoParseList[index]; + let url = videoObj.url + window.location.href; + GM_openInTab(url, {active: true, insert: true, setParent: true}); + }); + }); + + //右键移动位置 + vipBox.mousedown(function (e) { + if (e.which !== 3) { + return; + } + e.preventDefault() + vipBox.css("cursor", "move"); + const positionDiv = $(this).offset(); + let distenceX = e.pageX - positionDiv.left; + let distenceY = e.pageY - positionDiv.top; + + $(document).mousemove(function (e) { + let x = e.pageX - distenceX; + let y = e.pageY - distenceY; + const windowWidth = $(window).width(); + const windowHeight = $(window).height(); + + if (x < 0) { + x = 0; + } else if (x > windowWidth - vipBox.outerWidth(true) - 100) { + x = windowWidth - vipBox.outerWidth(true) - 100; + } + + if (y < 0) { + y = 0; + } else if (y > windowHeight - vipBox.outerHeight(true)) { + y = windowHeight - vipBox.outerHeight(true); + } + vipBox.css("left", x); + vipBox.css("top", y); + }); + $(document).mouseup(function () { + $(document).off('mousemove'); + vipBox.css("cursor", "pointer"); + }); + $(document).contextmenu(function (e) { + e.preventDefault(); + }) + }); + return new Promise((resolve, reject) => resolve(container)); + } + + autoPlay(container) { + const vipBox = $(`#${_CONFIG_.vipBoxId}`); + vipBox.find("#vip_auto").on("click", function () { + if (!!GM_getValue(_CONFIG_.autoPlayerKey, null)) { + GM_setValue(_CONFIG_.autoPlayerKey, null); + $(this).html("关"); + $(this).attr("title", "是否打开自动解析。若自动解析失败,请手动选择其它接口尝试!!"); + } else { + GM_setValue(_CONFIG_.autoPlayerKey, "true"); + $(this).html("开"); + } + setTimeout(function () { + window.location.reload(); + }, 200); + }); + + if (!!GM_getValue(_CONFIG_.autoPlayerKey, null)) { + this.selectPlayer(container); + } + return new Promise((resolve, reject) => resolve(container)); + } + + selectPlayer(container) { + let index = GM_getValue(_CONFIG_.autoPlayerVal, 2); + let autoObj = _CONFIG_.videoParseList[index]; + let _th = this; + if (autoObj.type.includes("1")) { + setTimeout(function () { + _th.showPlayerWindow(autoObj); + const vipBox = $(`#${_CONFIG_.vipBoxId}`); + vipBox.find(`.vip_list [title="${autoObj.name}1"]`).addClass("selected"); + $(container).find("#vip_auto").attr("title", `自动解析源:${autoObj.name}`); + }, 2500); + } + } + + showPlayerWindow(videoObj) { + util.findTargetEle(_CONFIG_.currentPlayerNode.container) + .then((container) => { + const type = videoObj.type; + let url = videoObj.url + window.location.href; + if (type.includes("1")) { + util.reomveVideo(); + $(container).empty(); + $(container).empty(); + let iframeDivCss = "width:100%;height:100%;z-index:999999;"; + if (_CONFIG_.isMobile) { + iframeDivCss = "width:100%;height:220px;z-index:999999;"; + } + if (_CONFIG_.isMobile && window.location.href.indexOf("iqiyi.com") !== -1) { + iframeDivCss = "width:100%;height:220px;z-index:999999;margin-top:-56.25%;"; + } + $(container).append(`
    `); + } + }); + } + + postHandle(container) { + if (!!GM_getValue(_CONFIG_.autoPlayerKey, null)) { + util.urlChangeReload(); + } else { + let oldHref = window.location.href; + let interval = setInterval(() => { + let newHref = window.location.href; + if (oldHref !== newHref) { + oldHref = newHref; + if (!!GM_getValue(_CONFIG_.flag, null)) { + clearInterval(interval); + window.location.reload(); + } + } + }, 1000); + } + } + + } + + class DefaultConsumer extends BaseConsumer { + } + + return { + start: () => { + GM_setValue(_CONFIG_.flag, null); + let mallCase = 'Default'; + let playerNode = _CONFIG_.playerContainers.filter(value => value.host === window.location.host); + if (playerNode === null || playerNode.length <= 0) { + console.warn(window.location.host + "该网站暂不支持,请联系作者,作者将会第一时间处理(注意:请记得提供有问题的网址)"); + return; + } + _CONFIG_.currentPlayerNode = playerNode[0]; + mallCase = _CONFIG_.currentPlayerNode.name; + const targetConsumer = eval(`new ${mallCase}Consumer`); + targetConsumer.parse(); + } + } + + })(); + (function () { + superVip.start(); + })(); +}) + + }); +window.addEventListener('DOMContentLoaded', (_event) => { const css = `a { + background: #000; + color: #fff!important; +}`; const style = document.createElement('style'); style.innerHTML = css; document.head.appendChild(style); }); \ No newline at end of file diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 129e3b7..2479de8 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -41,7 +41,10 @@ pub fn run_app() { tauri_app .plugin(windowStatePlugin::default().build()) - .invoke_handler(tauri::generate_handler![download_file, download_file_by_binary]) + .invoke_handler(tauri::generate_handler![ + download_file, + download_file_by_binary + ]) .setup(|app| { let _window = get_window(app, pake_config, data_dir); // Prevent initial shaking diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index bf8bcc4..b3aba59 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,34 +1,50 @@ { - "package": { - "productName": "WeRead", - "version": "1.0.0" - }, - "tauri": { - "security": { - "csp": null + "tauri": { + "security": { + "csp": null, + "dangerousRemoteDomainIpcAccess": [ + { + "domain": "zbook.lol", + "windows": [ + "pake" + ], + "enableTauriAPI": true + }, + { + "domain": "zbook.eu.org", + "windows": [ + "pake" + ], + "enableTauriAPI": true + } + ] + }, + "updater": { + "active": false + }, + "systemTray": { + "iconPath": "png/icon_512.png", + "iconAsTemplate": true + }, + "allowlist": { + "all": true, + "fs": { + "all": true, + "scope": [ + "$DOWNLOAD/*" + ] + } + } }, - "updater": { - "active": false + "package": { + "productName": "zBook", + "version": "1.0.0" }, - "systemTray": { - "iconPath": "png/weread_512.png", - "iconAsTemplate": true - }, - "allowlist": { - "all": true, - "fs": { - "all": true, - "scope": [ - "$DOWNLOAD/*" - ] - } + "build": { + "withGlobalTauri": true, + "devPath": "../dist", + "distDir": "../dist", + "beforeBuildCommand": "", + "beforeDevCommand": "" } - }, - "build": { - "withGlobalTauri": true, - "devPath": "../dist", - "distDir": "../dist", - "beforeBuildCommand": "", - "beforeDevCommand": "" - } -} \ No newline at end of file +} diff --git a/src-tauri/tauri.macos.conf.json b/src-tauri/tauri.macos.conf.json index 66b3711..da0c8e1 100644 --- a/src-tauri/tauri.macos.conf.json +++ b/src-tauri/tauri.macos.conf.json @@ -1,23 +1,29 @@ { - "tauri": { - "bundle": { - "icon": ["icons/weread.icns"], - "identifier": "com.tw93.weread", - "active": true, - "category": "DeveloperTool", - "copyright": "", - "externalBin": [], - "longDescription": "", - "macOS": { - "entitlements": null, - "exceptionDomain": "", - "frameworks": [], - "providerShortName": null, - "signingIdentity": null - }, - "resources": [], - "shortDescription": "", - "targets": ["dmg"] + "tauri": { + "bundle": { + "icon": [ + "/Users/guyifeng/workspace/seeyon/Pake/src-tauri/icons/icon.icns" + ], + "identifier": "pake-4269dd", + "active": true, + "category": "DeveloperTool", + "copyright": "", + "externalBin": [], + "longDescription": "", + "macOS": { + "entitlements": null, + "exceptionDomain": "", + "frameworks": [], + "providerShortName": null, + "signingIdentity": null + }, + "resources": [ + "icons/zbook.icns" + ], + "shortDescription": "", + "targets": [ + "dmg" + ] + } } - } } From c37db9a9180aff72756da3d986b0c07039ad8988 Mon Sep 17 00:00:00 2001 From: jeasonnow Date: Tue, 27 Jun 2023 18:32:05 +0800 Subject: [PATCH 09/23] feat: the pake debug option should support build a debug application --- bin/builders/BaseBuilder.ts | 3 ++- package.json | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/bin/builders/BaseBuilder.ts b/bin/builders/BaseBuilder.ts index 619181c..5c96a8d 100644 --- a/bin/builders/BaseBuilder.ts +++ b/bin/builders/BaseBuilder.ts @@ -98,7 +98,8 @@ export default abstract class BaseBuilder { abstract getFileName(): string; protected getBuildCommand(): string { - return 'npm run build'; + // the debug option should support `--debug` and `--release` + return this.options.debug ? 'npm run build:debug' : 'npm run build'; } protected getBasePath(): string { diff --git a/package.json b/package.json index de6933a..8b78eed 100644 --- a/package.json +++ b/package.json @@ -33,6 +33,7 @@ "start": "npm run dev", "dev": "npm run tauri dev", "build": "npm run tauri build --release", + "build:debug": "npm run tauri build -- --debug", "build:mac": "npm run tauri build -- --target universal-apple-darwin", "build:all-unix": "chmod +x ./script/build.sh && ./script/build.sh", "build:all-windows": "pwsh ./script/build.ps1", From 7bec1a62904f63378d0c66cb1540e21099826e40 Mon Sep 17 00:00:00 2001 From: jeasonnow Date: Tue, 4 Jul 2023 18:06:30 +0800 Subject: [PATCH 10/23] fix: absolute inject file path support --- bin/helpers/merge.ts | 2 +- src-tauri/tauri.macos.conf.json | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/bin/helpers/merge.ts b/bin/helpers/merge.ts index 1d8f1fc..2d3fd55 100644 --- a/bin/helpers/merge.ts +++ b/bin/helpers/merge.ts @@ -190,7 +190,7 @@ export async function mergeConfig(url: string, options: PakeAppOptions, tauriCon logger.error('The injected file must be in either CSS or JS format.'); return; } - const files = inject.map(relativePath => path.join(process.cwd(), relativePath)); + const files = inject.map(filepath => path.isAbsolute(filepath) ? filepath : path.join(process.cwd(), filepath)); tauriConf.pake.inject = files; await combineFiles(files, path.join(npmDirectory, `src-tauri/src/inject/_INJECT_.js`)); } diff --git a/src-tauri/tauri.macos.conf.json b/src-tauri/tauri.macos.conf.json index f8cce2a..8294815 100644 --- a/src-tauri/tauri.macos.conf.json +++ b/src-tauri/tauri.macos.conf.json @@ -19,4 +19,5 @@ "shortDescription": "", "targets": ["dmg"] } -} + } +} \ No newline at end of file From dd66190e49f90b9d3da4594610b29c1ab31d4a7d Mon Sep 17 00:00:00 2001 From: jeasonnow Date: Thu, 6 Jul 2023 11:00:15 +0800 Subject: [PATCH 11/23] feat: support cli development --- bin/builders/BaseBuilder.ts | 4 + bin/defaults.ts | 8 + bin/dev.ts | 17 ++ bin/helpers/merge.ts | 8 +- bin/utils/dir.ts | 2 +- package.json | 1 + src-tauri/src/inject/_INJECT_.js | 485 ------------------------------- 7 files changed, 36 insertions(+), 489 deletions(-) create mode 100644 bin/dev.ts diff --git a/bin/builders/BaseBuilder.ts b/bin/builders/BaseBuilder.ts index 395b272..608e4b7 100644 --- a/bin/builders/BaseBuilder.ts +++ b/bin/builders/BaseBuilder.ts @@ -71,6 +71,10 @@ export default abstract class BaseBuilder { await this.buildAndCopy(url, this.options.targets); } + async start(url: string) { + await mergeConfig(url, this.options, tauriConfig); + } + async buildAndCopy(url: string, target: string) { const { name } = this.options; await mergeConfig(url, this.options, tauriConfig); diff --git a/bin/defaults.ts b/bin/defaults.ts index 6c4aec5..1d2b6d6 100644 --- a/bin/defaults.ts +++ b/bin/defaults.ts @@ -18,3 +18,11 @@ export const DEFAULT_PAKE_OPTIONS: PakeCliOptions = { inject: [], safeDomain: [], }; + +// just for cli development +export const DEFAULT_DEV_PAKE_OPTIONS: PakeCliOptions & {url: string} = { + ...DEFAULT_PAKE_OPTIONS, + url: 'https://zbook.lol', + name: 'Zbook', + safeDomain: ['zbook.eu.org'] +} \ No newline at end of file diff --git a/bin/dev.ts b/bin/dev.ts new file mode 100644 index 0000000..f4b67cd --- /dev/null +++ b/bin/dev.ts @@ -0,0 +1,17 @@ +import log from 'loglevel'; +import {DEFAULT_DEV_PAKE_OPTIONS} from './defaults'; +import handleInputOptions from './options/index'; +import BuilderProvider from './builders/BuilderProvider'; + +async function startBuild() { + log.setDefaultLevel('debug'); + + const appOptions = await handleInputOptions(DEFAULT_DEV_PAKE_OPTIONS, DEFAULT_DEV_PAKE_OPTIONS.url); + log.debug('PakeAppOptions', appOptions); + + const builder = BuilderProvider.create(appOptions); + await builder.prepare(); + await builder.start(DEFAULT_DEV_PAKE_OPTIONS.url); +} + +startBuild(); \ No newline at end of file diff --git a/bin/helpers/merge.ts b/bin/helpers/merge.ts index 2d3fd55..d5fcb25 100644 --- a/bin/helpers/merge.ts +++ b/bin/helpers/merge.ts @@ -183,7 +183,7 @@ export async function mergeConfig(url: string, options: PakeAppOptions, tauriCon } tauriConf.tauri.systemTray.iconPath = trayIconPath; - + const injectFilePath = path.join(npmDirectory, `src-tauri/src/inject/_INJECT_.js`); // inject js or css files if (inject?.length > 0) { if (!inject.every(item => item.endsWith('.css') || item.endsWith('.js'))) { @@ -192,7 +192,10 @@ export async function mergeConfig(url: string, options: PakeAppOptions, tauriCon } const files = inject.map(filepath => path.isAbsolute(filepath) ? filepath : path.join(process.cwd(), filepath)); tauriConf.pake.inject = files; - await combineFiles(files, path.join(npmDirectory, `src-tauri/src/inject/_INJECT_.js`)); + await combineFiles(files, injectFilePath); + } else { + tauriConf.pake.inject = []; + await fsExtra.writeFile(injectFilePath, ''); } // Save config file. @@ -205,7 +208,6 @@ export async function mergeConfig(url: string, options: PakeAppOptions, tauriCon const bundleConf = { tauri: { bundle: tauriConf.tauri.bundle } }; await fsExtra.writeJson(configPath, bundleConf, { spaces: 4 }); - const pakeConfigPath = path.join(npmDirectory, 'src-tauri/pake.json'); await fsExtra.writeJson(pakeConfigPath, tauriConf.pake, { spaces: 4 }); diff --git a/bin/utils/dir.ts b/bin/utils/dir.ts index cb5a697..c46d9fd 100644 --- a/bin/utils/dir.ts +++ b/bin/utils/dir.ts @@ -5,4 +5,4 @@ import { fileURLToPath } from 'url'; const currentModulePath = fileURLToPath(import.meta.url); // Resolve the parent directory of the current module -export const npmDirectory = path.join(path.dirname(currentModulePath), '..'); +export const npmDirectory = process.env.DEV === 'true' ? process.cwd() : path.join(path.dirname(currentModulePath), '..'); diff --git a/package.json b/package.json index 6ddbac1..f5cf7a1 100644 --- a/package.json +++ b/package.json @@ -40,6 +40,7 @@ "analyze": "cd src-tauri && cargo bloat --release --crates", "tauri": "tauri", "cli": "rollup -c rollup.config.js --watch", + "cli:dev": "cross-env DEV=true tsx watch ./bin/dev.ts & npm run dev", "cli:build": "cross-env NODE_ENV=production rollup -c rollup.config.js", "prepublishOnly": "npm run cli:build" }, diff --git a/src-tauri/src/inject/_INJECT_.js b/src-tauri/src/inject/_INJECT_.js index 999d1a3..e69de29 100644 --- a/src-tauri/src/inject/_INJECT_.js +++ b/src-tauri/src/inject/_INJECT_.js @@ -1,485 +0,0 @@ -window.addEventListener('DOMContentLoaded', (_event) => { // ==UserScript== -// @name 全网VIP视频免费破解【专注一个脚本只做一件事件】长期更新,放心使用 -// @namespace http://tampermonkey.net/ -// @version 1.6.1 -// @description 全网VIP视频免费破解【专注一个脚本只做一件事件】长期更新,放心使用。支持:腾讯、爱奇艺、优酷、芒果、Bilibili、pptv、乐视等其它网站; -// @icon data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAkACQAAD//gAUU29mdHdhcmU6IFNuaXBhc3Rl/9sAQwADAgIDAgIDAwMDBAMDBAUIBQUEBAUKBwcGCAwKDAwLCgsLDQ4SEA0OEQ4LCxAWEBETFBUVFQwPFxgWFBgSFBUU/9sAQwEDBAQFBAUJBQUJFA0LDRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU/8AAEQgAGgAeAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A8/stTivZLhFV0eBtrhwB+PXpXc/Bj4bXXxy1ObTdE1XTrDUE3GO31PzkMyqMsytHE64Gf4iD6A15TrUx0fUriVQcXcBUY/vjivpb9hGz+w/GLTocYK6dcbvqQCa/Q6ec46dWth21zUFNzdt3zfuvS8btng5rwnkuCy3DZrSi3DGyoqiuZ6JQf1m/flq2hG+yMPTf2e9X1nVPEFlZa9olx/YTmO9nDXKxo4LB1G6AMxUockDB7E1i+Jvg/rnhzw/peuRSWut6RqP+pu9MMjgHBIDK6KwOAe3bBwa+g/hQEPiP41CVmSM6ndbmRdxA3zZIGRn8xXkniP42Wdr4C0Dwp4XhvPI0/wDeTX2oIsbyvhshUR2AGWJ5Y9h71+cUuKuK8ZxVisry6KqUqFSkpJxSiqc6DnKUp7qXPyqKV7pv3WtV8NWyzLKGAhXrNxlNTtZ3fNGdkku3Le/5njU1tDcbfNiSXacrvUHB9q3/AA/438R+Eo5o9D1/VNGSYhpV0+8kgDkdCwRhn8axaK/od0abbbitd9N7bXPh/rNflhDndo3sruyvvbtfrbc6Kf4j+LLq4uJ5vFGszT3CCOaSTUJmaVBnCsS2SBk8H1Nc7RRUU8NRoylOlBRcrXaSTdtFfvZbGU6tSpbnk3buz//Z -// @author w__yi -// @match *://*.youku.com/* -// @match *://*.iqiyi.com/* -// @match *://*.iq.com/* -// @match *://*.le.com/* -// @match *://v.qq.com/* -// @match *://m.v.qq.com/* -// @match *://*.tudou.com/* -// @match *://*.mgtv.com/* -// @match *://tv.sohu.com/* -// @match *://film.sohu.com/* -// @match *://*.1905.com/* -// @match *://*.bilibili.com/* -// @match *://*.pptv.com/* - -// @require https://cdn.bootcdn.net/ajax/libs/jquery/3.2.1/jquery.min.js -// @connect api.bilibili.com -// @grant unsafeWindow -// @grant GM_addStyle -// @grant GM_openInTab -// @grant GM_getValue -// @grant GM_setValue -// @grant GM_xmlhttpRequest -// @grant GM_log -// @charset UTF-8 -// @license GPL License -// ==/UserScript== - - - -window.addEventListener('DOMContentLoaded', function() { - const util = (function () { - - function findTargetElement(targetContainer) { - const body = window.document; - let tabContainer; - let tryTime = 0; - const maxTryTime = 120; - let startTimestamp; - return new Promise((resolve, reject) => { - function tryFindElement(timestamp) { - if (!startTimestamp) { - startTimestamp = timestamp; - } - const elapsedTime = timestamp - startTimestamp; - - if (elapsedTime >= 500) { - GM_log("查找元素:" + targetContainer + ",第" + tryTime + "次"); - tabContainer = body.querySelector(targetContainer); - if (tabContainer) { - resolve(tabContainer); - } else if (++tryTime === maxTryTime) { - reject(); - } else { - startTimestamp = timestamp; - } - } - if (!tabContainer && tryTime < maxTryTime) { - requestAnimationFrame(tryFindElement); - } - } - - requestAnimationFrame(tryFindElement); - }); - } - - function urlChangeReload() { - const oldHref = window.location.href; - let interval = setInterval(() => { - let newHref = window.location.href; - if (oldHref !== newHref) { - clearInterval(interval); - window.location.reload(); - } - }, 500); - } - - function reomveVideo() { - setInterval(() => { - for (let video of document.getElementsByTagName("video")) { - if (video.src) { - video.removeAttribute("src"); - video.muted = true; - video.load(); - video.pause(); - } - } - }, 500); - } - - function syncRequest(option) { - return new Promise((resolve, reject) => { - option.onload = (res) => { - resolve(res); - }; - option.onerror = (err) => { - reject(err); - }; - GM_xmlhttpRequest(option); - }); - } - - return { - req: (option) => syncRequest(option), - findTargetEle: (targetEle) => findTargetElement(targetEle), - urlChangeReload: () => urlChangeReload(), - reomveVideo: () => reomveVideo() - } - })(); - - - const superVip = (function () { - - const _CONFIG_ = { - isMobile: navigator.userAgent.match(/(Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini)/i), - currentPlayerNode: null, - vipBoxId: 'vip_jx_box' + Math.ceil(Math.random() * 100000000), - flag: "flag_vip", - autoPlayerKey: "auto_player_key" + window.location.host, - autoPlayerVal: "auto_player_value_" + window.location.host, - videoParseList: [ - {"name": "综合/B站", "type": "1,3", "url": "https://jx.jsonplayer.com/player/?url="}, - /*{"name": "Player-JY", "type": "1,3", "url": "https://jx.playerjy.com/?url="},*/ - {"name": "虾米", "type": "1,3", "url": "https://jx.xmflv.com/?url="}, - /*{"name": "NNXV", "type": "1,3", "url": "https://jx.nnxv.cn/tv.php?url="},*/ - /*{"name": "听乐", "type": "1,3", "url": "https://jx.dj6u.com/?url="},*/ - /*{"name": "RDHK", "type": "1,3", "url": "https://jx.rdhk.net/?v="},*/ - {"name": "OK", "type": "1,3", "url": "https://api.okjx.cc:3389/jx.php?url="}, - {"name": "OKJX", "type": "1,3", "url": "https://okjx.cc/?url="}, - {"name": "YT", "type": "1,3", "url": "https://jx.yangtu.top/?url="}, - {"name": "爱豆", "type": "1,3", "url": "https://jx.aidouer.net/?url="}, - {"name": "猪蹄", "type": "1,3", "url": "https://jx.iztyy.com/Bei/?url="}, - {"name": "yparse", "type": "1,2", "url": "https://jx.yparse.com/index.php?url="}, - {"name": "夜幕", "type": "1,3", "url": "https://www.yemu.xyz/?url="}, - {"name": "m1907", "type": "1,2", "url": "https://im1907.top/?jx="}, - {"name": "MAO", "type": "1,3", "url": "https://www.mtosz.com/m3u8.php?url="}, - {"name": "M3U8TV", "type": "1,3", "url": "https://jx.m3u8.tv/jiexi/?url="}, - {"name": "铭人云", "type": "1,3", "url": "https://parse.123mingren.com/?url="}, - {"name": "4kdv", "type": "1,3", "url": "https://jx.4kdv.com/?url="}, - - {"name": "1717", "type": "1,3", "url": "https://ckmov.ccyjjd.com/ckmov/?url="}, - {"name": "8090", "type": "1,3", "url": "https://www.8090g.cn/?url="}, - {"name": "qianqi", "type": "1,3", "url": "https://api.qianqi.net/vip/?url="}, - {"name": "laobandq", "type": "1,3", "url": "https://vip.laobandq.com/jiexi.php?url="}, - {"name": "playm3u8", "type": "1,3", "url": "https://www.playm3u8.cn/jiexi.php?url="}, - {"name": "无名小站", "type": "1,3", "url": "https://www.administratorw.com/video.php?url="}, - {"name": "CK", "type": "1,3", "url": "https://www.ckplayer.vip/jiexi/?url="}, - {"name": "盘古", "type": "1,3", "url": "https://go.yh0523.cn/y.cy?url="}, - {"name": "Blbo", "type": "1,3", "url": "https://jx.blbo.cc:4433/?url="}, - ], - playerContainers: [ - { - host: "v.qq.com", - container: "#mod_player,#player-container,.container-player", - name: "Default", - displayNodes: ["#mask_layer", ".mod_vip_popup", "#mask_layer", ".panel-tip-pay"] - }, - { - host: "m.v.qq.com", - container: ".mod_player,#player", - name: "Default", - displayNodes: [".mod_vip_popup", "[class^=app_],[class^=app-],[class*=_app_],[class*=-app-],[class$=_app],[class$=-app]", "div[dt-eid=open_app_bottom]", "div.video_function.video_function_new", "a[open-app]", "section.mod_source", "section.mod_box.mod_sideslip_h.mod_multi_figures_h,section.mod_sideslip_privileges,section.mod_game_rec", ".at-app-banner"] - }, - - {host: "w.mgtv.com", container: "#mgtv-player-wrap", name: "Default", displayNodes: []}, - {host: "www.mgtv.com", container: "#mgtv-player-wrap", name: "Default", displayNodes: []}, - { - host: "m.mgtv.com", - container: ".video-area", - name: "Default", - displayNodes: ["div[class^=mg-app]", ".video-area-bar", ".open-app-popup"] - }, - {host: "www.bilibili.com", container: "#player_module,#bilibiliPlayer,#bilibili-player", name: "Default", displayNodes: []}, - {host: "m.bilibili.com", container: ".player-wrapper,.player-container,.mplayer", name: "Default", displayNodes: []}, - {host: "www.iqiyi.com", container: "#flashbox", name: "Default", displayNodes: ["#playerPopup", "div[class^=qy-header-login-pop]", "section[class^=modal-cover_]" ,".toast"]}, - { - host: "m.iqiyi.com", - container: ".m-video-player-wrap", - name: "Default", - displayNodes: ["div.m-iqyGuide-layer", "a[down-app-android-url]", "[name=m-extendBar]", "[class*=ChannelHomeBanner]", "section.m-hotWords-bottom"] - }, - {host: "www.iq.com", container: ".intl-video-wrap", name: "Default", displayNodes: []}, - {host: "v.youku.com", container: "#player", name: "Default", displayNodes: ["#iframaWrapper", "#checkout_counter_mask", "#checkout_counter_popup"]}, - { - host: "m.youku.com", - container: "#player,.h5-detail-player", - name: "Default", - displayNodes: [".callEnd_box", ".h5-detail-guide", ".h5-detail-vip-guide"] - }, - {host: "tv.sohu.com", container: "#player", name: "Default", displayNodes: []}, - {host: "film.sohu.com", container: "#playerWrap", name: "Default", displayNodes: []}, - {host: "www.le.com", container: "#le_playbox", name: "Default", displayNodes: []}, - {host: "video.tudou.com", container: ".td-playbox", name: "Default", displayNodes: []}, - {host: "v.pptv.com", container: "#pptv_playpage_box", name: "Default", displayNodes: []}, - {host: "vip.pptv.com", container: ".w-video", name: "Default", displayNodes: []}, - {host: "www.wasu.cn", container: "#flashContent", name: "Default", displayNodes: []}, - {host: "www.acfun.cn", container: "#player", name: "Default", displayNodes: []}, - {host: "vip.1905.com", container: "#player,#vodPlayer", name: "Default", displayNodes: []}, - {host: "www.1905.com", container: "#player,#vodPlayer", name: "Default", displayNodes: []}, - ] - }; - - class BaseConsumer { - constructor() { - this.parse = () => { - util.findTargetEle('body') - .then((container) => this.preHandle(container)) - .then((container) => this.generateElement(container)) - .then((container) => this.bindEvent(container)) - .then((container) => this.autoPlay(container)) - .then((container) => this.postHandle(container)); - } - } - - preHandle(container) { - _CONFIG_.currentPlayerNode.displayNodes.forEach((item, index) => { - util.findTargetEle(item) - .then((obj) => obj.style.display = 'none') - .catch(e => console.warn("不存在元素", e)); - }); - return new Promise((resolve, reject) => resolve(container)); - } - - generateElement(container) { - GM_addStyle(` - #${_CONFIG_.vipBoxId} {cursor:pointer; position:fixed; top:120px; left:0px; z-index:9999999; text-align:left;} - #${_CONFIG_.vipBoxId} .img_box{width:32px; height:32px;line-height:32px;text-align:center;background-color:#1c84c6;margin:10px 0px;} - #${_CONFIG_.vipBoxId} .vip_list {display:none; position:absolute; border-radius:5px; left:32px; top:0; text-align:center; background-color: #3f4149; border:1px solid white;padding:10px 0px; width:380px; max-height:400px; overflow-y:auto;} - #${_CONFIG_.vipBoxId} .vip_list li{border-radius:2px; font-size:12px; color:#DCDCDC; text-align:center; width:calc(25% - 14px); line-height:21px; float:left; border:1px solid gray; padding:0 4px; margin:4px 2px;overflow:hidden;white-space: nowrap;text-overflow: ellipsis;-o-text-overflow:ellipsis;} - #${_CONFIG_.vipBoxId} .vip_list li:hover{color:#1c84c6; border:1px solid #1c84c6;} - #${_CONFIG_.vipBoxId} .vip_list ul{padding-left: 10px;} - #${_CONFIG_.vipBoxId} .vip_list::-webkit-scrollbar{width:5px; height:1px;} - #${_CONFIG_.vipBoxId} .vip_list::-webkit-scrollbar-thumb{box-shadow:inset 0 0 5px rgba(0, 0, 0, 0.2); background:#A8A8A8;} - #${_CONFIG_.vipBoxId} .vip_list::-webkit-scrollbar-track{box-shadow:inset 0 0 5px rgba(0, 0, 0, 0.2); background:#F1F1F1;} - #${_CONFIG_.vipBoxId} li.selected{color:#1c84c6; border:1px solid #1c84c6;} - `); - - if (_CONFIG_.isMobile) { - GM_addStyle(` - #${_CONFIG_.vipBoxId} {top:300px;} - #${_CONFIG_.vipBoxId} .vip_list {width:300px;} - `); - } - - let type_1_str = ""; - let type_2_str = ""; - let type_3_str = ""; - _CONFIG_.videoParseList.forEach((item, index) => { - if (item.type.includes("1")) { - type_1_str += `
  7. ${item.name}
  8. `; - } - if (item.type.includes("2")) { - type_2_str += `
  9. ${item.name}
  10. `; - } - if (item.type.includes("3")) { - type_3_str += `
  11. ${item.name}
  12. `; - } - }); - - let autoPlay = !!GM_getValue(_CONFIG_.autoPlayerKey, null) ? "开" : "关"; - - $(container).append(` -
    -
    -
    VIP
    -
    -
    -

    [内嵌播放]

    -
      - ${type_1_str} -
      -
    -
    -
    -

    [弹窗播放带选集]

    -
      - ${type_2_str} -
      -
    -
    -
    -

    [弹窗播放不带选集]

    -
      - ${type_3_str} -
      -
    -
    -
    - 自动解析功能说明: -
      1、自动解析功能默认关闭(自动解析只支持内嵌播放源) -
      2、开启自动解析,网页打开后脚本将根据当前选中的解析源自动解析视频。如解析失败,请手动选择不同的解析源尝试 -
      3、没有选中解析源将随机选取一个 -
      4、如某些网站有会员可以关闭自动解析功能 -
    -
    -
    -
    ${autoPlay}
    -
    `); - return new Promise((resolve, reject) => resolve(container)); - } - - bindEvent(container) { - const vipBox = $(`#${_CONFIG_.vipBoxId}`); - if (_CONFIG_.isMobile) { - vipBox.find(".vip_icon").on("click", () => vipBox.find(".vip_list").toggle()); - } else { - vipBox.find(".vip_icon").on("mouseover", () => vipBox.find(".vip_list").show()); - vipBox.find(".vip_icon").on("mouseout", () => vipBox.find(".vip_list").hide()); - } - - let _this = this; - vipBox.find(".vip_list .nq-li").each((liIndex, item) => { - item.addEventListener("click", () => { - const index = parseInt($(item).attr("data-index")); - GM_setValue(_CONFIG_.autoPlayerVal, index); - GM_setValue(_CONFIG_.flag, "true"); - _this.showPlayerWindow(_CONFIG_.videoParseList[index]); - vipBox.find(".vip_list li").removeClass("selected"); - $(item).addClass("selected"); - }); - }); - vipBox.find(".vip_list .tc-li").each((liIndex, item) => { - item.addEventListener("click", () => { - const index = parseInt($(item).attr("data-index")); - const videoObj = _CONFIG_.videoParseList[index]; - let url = videoObj.url + window.location.href; - GM_openInTab(url, {active: true, insert: true, setParent: true}); - }); - }); - - //右键移动位置 - vipBox.mousedown(function (e) { - if (e.which !== 3) { - return; - } - e.preventDefault() - vipBox.css("cursor", "move"); - const positionDiv = $(this).offset(); - let distenceX = e.pageX - positionDiv.left; - let distenceY = e.pageY - positionDiv.top; - - $(document).mousemove(function (e) { - let x = e.pageX - distenceX; - let y = e.pageY - distenceY; - const windowWidth = $(window).width(); - const windowHeight = $(window).height(); - - if (x < 0) { - x = 0; - } else if (x > windowWidth - vipBox.outerWidth(true) - 100) { - x = windowWidth - vipBox.outerWidth(true) - 100; - } - - if (y < 0) { - y = 0; - } else if (y > windowHeight - vipBox.outerHeight(true)) { - y = windowHeight - vipBox.outerHeight(true); - } - vipBox.css("left", x); - vipBox.css("top", y); - }); - $(document).mouseup(function () { - $(document).off('mousemove'); - vipBox.css("cursor", "pointer"); - }); - $(document).contextmenu(function (e) { - e.preventDefault(); - }) - }); - return new Promise((resolve, reject) => resolve(container)); - } - - autoPlay(container) { - const vipBox = $(`#${_CONFIG_.vipBoxId}`); - vipBox.find("#vip_auto").on("click", function () { - if (!!GM_getValue(_CONFIG_.autoPlayerKey, null)) { - GM_setValue(_CONFIG_.autoPlayerKey, null); - $(this).html("关"); - $(this).attr("title", "是否打开自动解析。若自动解析失败,请手动选择其它接口尝试!!"); - } else { - GM_setValue(_CONFIG_.autoPlayerKey, "true"); - $(this).html("开"); - } - setTimeout(function () { - window.location.reload(); - }, 200); - }); - - if (!!GM_getValue(_CONFIG_.autoPlayerKey, null)) { - this.selectPlayer(container); - } - return new Promise((resolve, reject) => resolve(container)); - } - - selectPlayer(container) { - let index = GM_getValue(_CONFIG_.autoPlayerVal, 2); - let autoObj = _CONFIG_.videoParseList[index]; - let _th = this; - if (autoObj.type.includes("1")) { - setTimeout(function () { - _th.showPlayerWindow(autoObj); - const vipBox = $(`#${_CONFIG_.vipBoxId}`); - vipBox.find(`.vip_list [title="${autoObj.name}1"]`).addClass("selected"); - $(container).find("#vip_auto").attr("title", `自动解析源:${autoObj.name}`); - }, 2500); - } - } - - showPlayerWindow(videoObj) { - util.findTargetEle(_CONFIG_.currentPlayerNode.container) - .then((container) => { - const type = videoObj.type; - let url = videoObj.url + window.location.href; - if (type.includes("1")) { - util.reomveVideo(); - $(container).empty(); - $(container).empty(); - let iframeDivCss = "width:100%;height:100%;z-index:999999;"; - if (_CONFIG_.isMobile) { - iframeDivCss = "width:100%;height:220px;z-index:999999;"; - } - if (_CONFIG_.isMobile && window.location.href.indexOf("iqiyi.com") !== -1) { - iframeDivCss = "width:100%;height:220px;z-index:999999;margin-top:-56.25%;"; - } - $(container).append(`
    `); - } - }); - } - - postHandle(container) { - if (!!GM_getValue(_CONFIG_.autoPlayerKey, null)) { - util.urlChangeReload(); - } else { - let oldHref = window.location.href; - let interval = setInterval(() => { - let newHref = window.location.href; - if (oldHref !== newHref) { - oldHref = newHref; - if (!!GM_getValue(_CONFIG_.flag, null)) { - clearInterval(interval); - window.location.reload(); - } - } - }, 1000); - } - } - - } - - class DefaultConsumer extends BaseConsumer { - } - - return { - start: () => { - GM_setValue(_CONFIG_.flag, null); - let mallCase = 'Default'; - let playerNode = _CONFIG_.playerContainers.filter(value => value.host === window.location.host); - if (playerNode === null || playerNode.length <= 0) { - console.warn(window.location.host + "该网站暂不支持,请联系作者,作者将会第一时间处理(注意:请记得提供有问题的网址)"); - return; - } - _CONFIG_.currentPlayerNode = playerNode[0]; - mallCase = _CONFIG_.currentPlayerNode.name; - const targetConsumer = eval(`new ${mallCase}Consumer`); - targetConsumer.parse(); - } - } - - })(); - (function () { - superVip.start(); - })(); -}) - - }); -window.addEventListener('DOMContentLoaded', (_event) => { const css = `a { - background: #000; - color: #fff!important; -}`; const style = document.createElement('style'); style.innerHTML = css; document.head.appendChild(style); }); \ No newline at end of file From 363762b6962d72abf99586573c6a15992b4b2fe4 Mon Sep 17 00:00:00 2001 From: jeasonnow Date: Fri, 14 Jul 2023 14:15:40 +0800 Subject: [PATCH 12/23] 2.1.12-beta.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f5cf7a1..0d89175 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pake-cli", - "version": "2.1.12", + "version": "2.1.12-beta.0", "description": "🤱🏻 Turn any webpage into a desktop app with Rust. 🤱🏻 很简单的用 Rust 打包网页生成很小的桌面 App。", "engines": { "node": ">=16.0.0" From a597af490d57d099370f19d91ca85c0446948090 Mon Sep 17 00:00:00 2001 From: jeasonnow Date: Fri, 14 Jul 2023 14:51:25 +0800 Subject: [PATCH 13/23] update: 2.1.12-beta.0 cli --- dist/.gitkeep | 0 dist/about_pake.html | 16 - dist/cli.js | 1357 ++++++++++++++++--------------- src-tauri/pake.json | 9 +- src-tauri/tauri.conf.json | 11 +- src-tauri/tauri.macos.conf.json | 46 +- 6 files changed, 736 insertions(+), 703 deletions(-) delete mode 100644 dist/.gitkeep delete mode 100644 dist/about_pake.html diff --git a/dist/.gitkeep b/dist/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/dist/about_pake.html b/dist/about_pake.html deleted file mode 100644 index 83cb1d5..0000000 --- a/dist/about_pake.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - Document - - -
    Welcome from Pake!
    -

    version: 1.0.9

    -
    Project link
    - Discussions
    - Issues
    -

    LICENSE: MIT

    - - \ No newline at end of file diff --git a/dist/cli.js b/dist/cli.js index 149c43a..d7421d6 100644 --- a/dist/cli.js +++ b/dist/cli.js @@ -11,16 +11,16 @@ import { fileURLToPath } from 'url'; import dns from 'dns'; import http from 'http'; import { promisify } from 'util'; +import fs from 'fs'; import updateNotifier from 'update-notifier'; import axios from 'axios'; import { dir } from 'tmp-promise'; import { fileTypeFromBuffer } from 'file-type'; import psl from 'psl'; import isUrl from 'is-url'; -import fs from 'fs'; var name = "pake-cli"; -var version = "2.1.12"; +var version = "2.1.12-beta.0"; var description = "🤱🏻 Turn any webpage into a desktop app with Rust. 🤱🏻 很简单的用 Rust 打包网页生成很小的桌面 App。"; var engines = { node: ">=16.0.0" @@ -53,12 +53,14 @@ var scripts = { start: "npm run dev", dev: "npm run tauri dev", build: "npm run tauri build --release", + "build:debug": "npm run tauri build -- --debug", "build:mac": "npm run tauri build -- --target universal-apple-darwin", "build:all-unix": "chmod +x ./script/build.sh && ./script/build.sh", "build:all-windows": "pwsh ./script/build.ps1", analyze: "cd src-tauri && cargo bloat --release --crates", tauri: "tauri", cli: "rollup -c rollup.config.js --watch", + "cli:dev": "cross-env DEV=true tsx watch ./bin/dev.ts & npm run dev", "cli:build": "cross-env NODE_ENV=production rollup -c rollup.config.js", prepublishOnly: "npm run cli:build" }; @@ -123,7 +125,7 @@ var packageJson = { var windows = [ { url: "https://weread.qq.com/", - transparent: true, + transparent: false, fullscreen: false, width: 1200, height: 780, @@ -137,7 +139,7 @@ var user_agent = { windows: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36" }; var menu = { - macos: true, + macos: false, linux: false, windows: false }; @@ -146,11 +148,14 @@ var system_tray = { linux: true, windows: true }; +var inject = [ +]; var pakeConf = { windows: windows, user_agent: user_agent, menu: menu, - system_tray: system_tray + system_tray: system_tray, + inject: inject }; var tauri$3 = { @@ -170,7 +175,7 @@ var tauri$3 = { active: false }, systemTray: { - iconPath: "png/weread_512.png", + iconPath: "png/icon_512.png", iconAsTemplate: true }, allowlist: { @@ -191,11 +196,11 @@ var build = { beforeDevCommand: "" }; var CommonConf = { + tauri: tauri$3, "package": { productName: "WeRead", version: "1.0.0" }, - tauri: tauri$3, build: build }; @@ -239,9 +244,9 @@ var WinConf = { var tauri$1 = { bundle: { icon: [ - "icons/weread.icns" + "icons/icon.icns" ], - identifier: "com.pake.weread", + identifier: "com.pake.5b8ae9", active: true, category: "DeveloperTool", copyright: "", @@ -302,690 +307,740 @@ var LinuxConf = { tauri: tauri }; -const platformConfigs = { - win32: WinConf, - darwin: MacConf, - linux: LinuxConf, -}; -const { platform: platform$2 } = process; -// @ts-ignore -const platformConfig = platformConfigs[platform$2]; -let tauriConfig = { - tauri: { - ...CommonConf.tauri, - bundle: platformConfig.tauri.bundle, - }, - package: CommonConf.package, - build: CommonConf.build, - pake: pakeConf, +const platformConfigs = { + win32: WinConf, + darwin: MacConf, + linux: LinuxConf, +}; +const { platform: platform$2 } = process; +// @ts-ignore +const platformConfig = platformConfigs[platform$2]; +let tauriConfig = { + tauri: { + ...CommonConf.tauri, + bundle: platformConfig.tauri.bundle, + }, + package: CommonConf.package, + build: CommonConf.build, + pake: pakeConf, }; -// Generates an identifier based on the given URL. -function getIdentifier(url) { - const postFixHash = crypto.createHash('md5').update(url).digest('hex').substring(0, 6); - return `pake-${postFixHash}`; -} -async function promptText(message, initial) { - const response = await prompts({ - type: 'text', - name: 'content', - message, - initial, - }); - return response.content; -} -function capitalizeFirstLetter(string) { - return string.charAt(0).toUpperCase() + string.slice(1); -} -function getSpinner(text) { - const loadingType = { - interval: 80, - frames: ['✦', '✶', '✺', '✵', '✸', '✹', '✺'], - }; - return ora({ - text: `${chalk.cyan(text)}\n`, - spinner: loadingType, - color: 'cyan', - }).start(); +// Generates an identifier based on the given URL. +function getIdentifier(url) { + const postFixHash = crypto.createHash('md5').update(url).digest('hex').substring(0, 6); + return `com.pake.${postFixHash}`; +} +async function promptText(message, initial) { + const response = await prompts({ + type: 'text', + name: 'content', + message, + initial, + }); + return response.content; +} +function capitalizeFirstLetter(string) { + return string.charAt(0).toUpperCase() + string.slice(1); +} +function getSpinner(text) { + const loadingType = { + interval: 80, + frames: ['✦', '✶', '✺', '✵', '✸', '✹', '✺'], + }; + return ora({ + text: `${chalk.cyan(text)}\n`, + spinner: loadingType, + color: 'cyan', + }).start(); } -const { platform: platform$1 } = process; -const IS_MAC = platform$1 === 'darwin'; -const IS_WIN = platform$1 === 'win32'; +const { platform: platform$1 } = process; +const IS_MAC = platform$1 === 'darwin'; +const IS_WIN = platform$1 === 'win32'; const IS_LINUX = platform$1 === 'linux'; -// Convert the current module URL to a file path -const currentModulePath = fileURLToPath(import.meta.url); -// Resolve the parent directory of the current module -const npmDirectory = path.join(path.dirname(currentModulePath), '..'); +// Convert the current module URL to a file path +const currentModulePath = fileURLToPath(import.meta.url); +// Resolve the parent directory of the current module +const npmDirectory = process.env.DEV === 'true' ? process.cwd() : path.join(path.dirname(currentModulePath), '..'); -function shellExec(command) { - return new Promise((resolve, reject) => { - shelljs.exec(command, { async: true, silent: false, cwd: npmDirectory }, code => { - if (code === 0) { - resolve(0); - } - else { - reject(new Error(`${code}`)); - } - }); - }); +function shellExec(command) { + return new Promise((resolve, reject) => { + shelljs.exec(command, { async: true, silent: false, cwd: npmDirectory }, code => { + if (code === 0) { + resolve(0); + } + else { + reject(new Error(`${code}`)); + } + }); + }); } -const logger = { - info(...msg) { - log.info(...msg.map(m => chalk.white(m))); - }, - debug(...msg) { - log.debug(...msg); - }, - error(...msg) { - log.error(...msg.map(m => chalk.red(m))); - }, - warn(...msg) { - log.info(...msg.map(m => chalk.yellow(m))); - }, - success(...msg) { - log.info(...msg.map(m => chalk.green(m))); - }, +const logger = { + info(...msg) { + log.info(...msg.map(m => chalk.white(m))); + }, + debug(...msg) { + log.debug(...msg); + }, + error(...msg) { + log.error(...msg.map(m => chalk.red(m))); + }, + warn(...msg) { + log.info(...msg.map(m => chalk.yellow(m))); + }, + success(...msg) { + log.info(...msg.map(m => chalk.green(m))); + }, }; -const resolve = promisify(dns.resolve); -const ping = async (host) => { - const lookup = promisify(dns.lookup); - const ip = await lookup(host); - const start = new Date(); - // Prevent timeouts from affecting user experience. - const requestPromise = new Promise((resolve, reject) => { - const req = http.get(`http://${ip.address}`, res => { - const delay = new Date().getTime() - start.getTime(); - res.resume(); - resolve(delay); - }); - req.on('error', err => { - reject(err); - }); - }); - const timeoutPromise = new Promise((_, reject) => { - setTimeout(() => { - reject(new Error('Request timed out after 3 seconds')); - }, 1000); - }); - return Promise.race([requestPromise, timeoutPromise]); -}; -async function isChinaDomain(domain) { - try { - const [ip] = await resolve(domain); - return await isChinaIP(ip, domain); - } - catch (error) { - logger.debug(`${domain} can't be parse!`); - return true; - } -} -async function isChinaIP(ip, domain) { - try { - const delay = await ping(ip); - logger.debug(`${domain} latency is ${delay} ms`); - return delay > 1000; - } - catch (error) { - logger.debug(`ping ${domain} failed!`); - return true; - } +const resolve = promisify(dns.resolve); +const ping = async (host) => { + const lookup = promisify(dns.lookup); + const ip = await lookup(host); + const start = new Date(); + // Prevent timeouts from affecting user experience. + const requestPromise = new Promise((resolve, reject) => { + const req = http.get(`http://${ip.address}`, res => { + const delay = new Date().getTime() - start.getTime(); + res.resume(); + resolve(delay); + }); + req.on('error', err => { + reject(err); + }); + }); + const timeoutPromise = new Promise((_, reject) => { + setTimeout(() => { + reject(new Error('Request timed out after 3 seconds')); + }, 1000); + }); + return Promise.race([requestPromise, timeoutPromise]); +}; +async function isChinaDomain(domain) { + try { + const [ip] = await resolve(domain); + return await isChinaIP(ip, domain); + } + catch (error) { + logger.debug(`${domain} can't be parse!`); + return true; + } +} +async function isChinaIP(ip, domain) { + try { + const delay = await ping(ip); + logger.debug(`${domain} latency is ${delay} ms`); + return delay > 1000; + } + catch (error) { + logger.debug(`ping ${domain} failed!`); + return true; + } } -async function installRust() { - const isInChina = await isChinaDomain('sh.rustup.rs'); - const rustInstallScriptForMac = isInChina - ? 'export RUSTUP_DIST_SERVER="https://rsproxy.cn" && export RUSTUP_UPDATE_ROOT="https://rsproxy.cn/rustup" && curl --proto "=https" --tlsv1.2 -sSf https://rsproxy.cn/rustup-init.sh | sh' - : "curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y"; - const rustInstallScriptForWindows = 'winget install --id Rustlang.Rustup'; - const spinner = getSpinner('Downloading Rust...'); - try { - await shellExec(IS_WIN ? rustInstallScriptForWindows : rustInstallScriptForMac); - spinner.succeed(chalk.green('Rust installed successfully!')); - } - catch (error) { - console.error('Error installing Rust:', error.message); - spinner.fail(chalk.red('Rust installation failed!')); - process.exit(1); - } -} -function checkRustInstalled() { - return shelljs.exec('rustc --version', { silent: true }).code === 0; +async function installRust() { + const isInChina = await isChinaDomain('sh.rustup.rs'); + const rustInstallScriptForMac = isInChina + ? 'export RUSTUP_DIST_SERVER="https://rsproxy.cn" && export RUSTUP_UPDATE_ROOT="https://rsproxy.cn/rustup" && curl --proto "=https" --tlsv1.2 -sSf https://rsproxy.cn/rustup-init.sh | sh' + : "curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y"; + const rustInstallScriptForWindows = 'winget install --id Rustlang.Rustup'; + const spinner = getSpinner('Downloading Rust...'); + try { + await shellExec(IS_WIN ? rustInstallScriptForWindows : rustInstallScriptForMac); + spinner.succeed(chalk.green('Rust installed successfully!')); + } + catch (error) { + console.error('Error installing Rust:', error.message); + spinner.fail(chalk.red('Rust installation failed!')); + process.exit(1); + } +} +function checkRustInstalled() { + return shelljs.exec('rustc --version', { silent: true }).code === 0; } -async function mergeConfig(url, options, tauriConf) { - const { width, height, fullscreen, transparent, userAgent, showMenu, showSystemTray, systemTrayIcon, iterCopyFile, identifier, name, resizable = true, } = options; - const { platform } = process; - // Set Windows parameters. - const tauriConfWindowOptions = { - width, - height, - fullscreen, - transparent, - resizable, - }; - Object.assign(tauriConf.pake.windows[0], { url, ...tauriConfWindowOptions }); - tauriConf.package.productName = name; - tauriConf.tauri.bundle.identifier = identifier; - //Judge the type of URL, whether it is a file or a website. - const pathExists = await fsExtra.pathExists(url); - if (pathExists) { - logger.warn('✼ Your input might be a local file.'); - tauriConf.pake.windows[0].url_type = 'local'; - const fileName = path.basename(url); - const dirName = path.dirname(url); - const distDir = path.join(npmDirectory, 'dist'); - const distBakDir = path.join(npmDirectory, 'dist_bak'); - if (!iterCopyFile) { - const urlPath = path.join(distDir, fileName); - await fsExtra.copy(url, urlPath); - } - else { - fsExtra.moveSync(distDir, distBakDir, { overwrite: true }); - fsExtra.copySync(dirName, distDir, { overwrite: true }); - const filesToCopyBack = ['cli.js', 'about_pake.html']; - await Promise.all(filesToCopyBack.map(file => fsExtra.copy(path.join(distBakDir, file), path.join(distDir, file)))); - } - tauriConf.pake.windows[0].url = fileName; - tauriConf.pake.windows[0].url_type = 'local'; - } - else { - tauriConf.pake.windows[0].url_type = 'web'; - // Set the secure domain for calling window.__TAURI__ to the application domain that has been set. - tauriConf.tauri.security.dangerousRemoteDomainIpcAccess[0].domain = new URL(url).hostname; - } - const platformMap = { - win32: 'windows', - linux: 'linux', - darwin: 'macos', - }; - const currentPlatform = platformMap[platform]; - if (userAgent.length > 0) { - tauriConf.pake.user_agent[currentPlatform] = userAgent; - } - tauriConf.pake.menu[currentPlatform] = showMenu; - tauriConf.pake.system_tray[currentPlatform] = showSystemTray; - // Processing targets are currently only open to Linux. - if (platform === 'linux') { - delete tauriConf.tauri.bundle.deb.files; - const validTargets = ['all', 'deb', 'appimage']; - if (validTargets.includes(options.targets)) { - tauriConf.tauri.bundle.targets = - options.targets === 'all' ? ['deb', 'appimage'] : [options.targets]; - } - else { - logger.warn(`✼ The target must be one of ${validTargets.join(', ')}, the default 'deb' will be used.`); - } - } - // Set icon. - const platformIconMap = { - win32: { - fileExt: '.ico', - path: `png/${name.toLowerCase()}_256.ico`, - defaultIcon: 'png/icon_256.ico', - message: 'Windows icon must be .ico and 256x256px.', - }, - linux: { - fileExt: '.png', - path: `png/${name.toLowerCase()}_512.png`, - defaultIcon: 'png/icon_512.png', - message: 'Linux icon must be .png and 512x512px.', - }, - darwin: { - fileExt: '.icns', - path: `icons/${name.toLowerCase()}.icns`, - defaultIcon: 'icons/icon.icns', - message: 'macOS icon must be .icns type.', - }, - }; - const iconInfo = platformIconMap[platform]; - const exists = await fsExtra.pathExists(options.icon); - if (exists) { - let updateIconPath = true; - let customIconExt = path.extname(options.icon).toLowerCase(); - if (customIconExt !== iconInfo.fileExt) { - updateIconPath = false; - logger.warn(`✼ ${iconInfo.message}, but you give ${customIconExt}`); - tauriConf.tauri.bundle.icon = [iconInfo.defaultIcon]; - } - else { - const iconPath = path.join(npmDirectory, 'src-tauri/', iconInfo.path); - tauriConf.tauri.bundle.resources = [iconInfo.path]; - await fsExtra.copy(options.icon, iconPath); - } - if (updateIconPath) { - tauriConf.tauri.bundle.icon = [options.icon]; - } - else { - logger.warn(`✼ Icon will remain as default.`); - } - } - else { - logger.warn('✼ Custom icon path may be invalid, default icon will be used instead.'); - tauriConf.tauri.bundle.icon = [iconInfo.defaultIcon]; - } - // Set tray icon path. - let trayIconPath = platform === 'darwin' ? 'png/icon_512.png' : tauriConf.tauri.bundle.icon[0]; - if (systemTrayIcon.length > 0) { - try { - await fsExtra.pathExists(systemTrayIcon); - // 需要判断图标格式,默认只支持ico和png两种 - let iconExt = path.extname(systemTrayIcon).toLowerCase(); - if (iconExt == '.png' || iconExt == '.ico') { - const trayIcoPath = path.join(npmDirectory, `src-tauri/png/${name.toLowerCase()}${iconExt}`); - trayIconPath = `png/${name.toLowerCase()}${iconExt}`; - await fsExtra.copy(systemTrayIcon, trayIcoPath); - } - else { - logger.warn(`✼ System tray icon must be .ico or .png, but you provided ${iconExt}.`); - logger.warn(`✼ Default system tray icon will be used.`); - } - } - catch { - logger.warn(`✼ ${systemTrayIcon} not exists!`); - logger.warn(`✼ Default system tray icon will remain unchanged.`); - } - } - tauriConf.tauri.systemTray.iconPath = trayIconPath; - // Save config file. - const platformConfigPaths = { - win32: 'src-tauri/tauri.windows.conf.json', - darwin: 'src-tauri/tauri.macos.conf.json', - linux: 'src-tauri/tauri.linux.conf.json', - }; - const configPath = path.join(npmDirectory, platformConfigPaths[platform]); - const bundleConf = { tauri: { bundle: tauriConf.tauri.bundle } }; - await fsExtra.writeJson(configPath, bundleConf, { spaces: 4 }); - const pakeConfigPath = path.join(npmDirectory, 'src-tauri/pake.json'); - await fsExtra.writeJson(pakeConfigPath, tauriConf.pake, { spaces: 4 }); - let tauriConf2 = JSON.parse(JSON.stringify(tauriConf)); - delete tauriConf2.pake; - delete tauriConf2.tauri.bundle; - const configJsonPath = path.join(npmDirectory, 'src-tauri/tauri.conf.json'); - await fsExtra.writeJson(configJsonPath, tauriConf2, { spaces: 4 }); +async function combineFiles(files, output) { + const contents = files.map(file => { + const fileContent = fs.readFileSync(file); + if (file.endsWith('.css')) { + return "window.addEventListener('DOMContentLoaded', (_event) => { const css = `" + fileContent + "`; const style = document.createElement('style'); style.innerHTML = css; document.head.appendChild(style); });"; + } + return "window.addEventListener('DOMContentLoaded', (_event) => { " + fileContent + " });"; + }); + fs.writeFileSync(output, contents.join('\n')); + return files; } -class BaseBuilder { - constructor(options) { - this.options = options; - } - async prepare() { - const tauriSrcPath = path.join(npmDirectory, 'src-tauri'); - const tauriTargetPath = path.join(tauriSrcPath, 'target'); - const tauriTargetPathExists = await fsExtra.pathExists(tauriTargetPath); - if (!IS_MAC && !tauriTargetPathExists) { - logger.warn('✼ The first use requires installing system dependencies.'); - logger.warn('✼ See more in https://tauri.app/v1/guides/getting-started/prerequisites.'); - } - if (!checkRustInstalled()) { - const res = await prompts({ - type: 'confirm', - message: 'Rust not detected. Install now?', - name: 'value', - }); - if (res.value) { - await installRust(); - } - else { - logger.error('✕ Rust required to package your webapp.'); - process.exit(0); - } - } - const isChina = await isChinaDomain('www.npmjs.com'); - const spinner = getSpinner('Installing package...'); - const rustProjectDir = path.join(tauriSrcPath, '.cargo'); - const projectConf = path.join(rustProjectDir, 'config'); - await fsExtra.ensureDir(rustProjectDir); - if (isChina) { - logger.info('✺ Located in China, using npm/rsProxy CN mirror.'); - const projectCnConf = path.join(tauriSrcPath, 'rust_proxy.toml'); - await fsExtra.copy(projectCnConf, projectConf); - await shellExec(`cd "${npmDirectory}" && npm install --registry=https://registry.npmmirror.com`); - } - else { - await shellExec(`cd "${npmDirectory}" && npm install`); - } - spinner.succeed(chalk.green('Package installed!')); - if (!tauriTargetPathExists) { - logger.warn('✼ The first packaging may be slow, please be patient and wait, it will be faster afterwards.'); - } - } - async build(url) { - await this.buildAndCopy(url, this.options.targets); - } - async buildAndCopy(url, target) { - const { name } = this.options; - await mergeConfig(url, this.options, tauriConfig); - // Build app - const spinner = getSpinner('Building app...'); - setTimeout(() => spinner.stop(), 3000); - await shellExec(`cd "${npmDirectory}" && ${this.getBuildCommand()}`); - // Copy app - const fileName = this.getFileName(); - const fileType = this.getFileType(target); - const appPath = this.getBuildAppPath(npmDirectory, fileName, fileType); - const distPath = path.resolve(`${name}.${fileType}`); - await fsExtra.copy(appPath, distPath); - await fsExtra.remove(appPath); - logger.success('✔ Build success!'); - logger.success('✔ App installer located in', distPath); - } - getFileType(target) { - return target; - } - getBuildCommand() { - return 'npm run build'; - } - getBasePath() { - return 'src-tauri/target/release/bundle/'; - } - getBuildAppPath(npmDirectory, fileName, fileType) { - return path.join(npmDirectory, this.getBasePath(), fileType.toLowerCase(), `${fileName}.${fileType}`); - } +async function mergeConfig(url, options, tauriConf) { + const { width, height, fullscreen, transparent, userAgent, showMenu, showSystemTray, systemTrayIcon, iterCopyFile, identifier, name, resizable = true, inject, safeDomain, } = options; + const { platform } = process; + // Set Windows parameters. + const tauriConfWindowOptions = { + width, + height, + fullscreen, + transparent, + resizable, + }; + Object.assign(tauriConf.pake.windows[0], { url, ...tauriConfWindowOptions }); + tauriConf.package.productName = name; + tauriConf.tauri.bundle.identifier = identifier; + //Judge the type of URL, whether it is a file or a website. + const pathExists = await fsExtra.pathExists(url); + if (pathExists) { + logger.warn('✼ Your input might be a local file.'); + tauriConf.pake.windows[0].url_type = 'local'; + const fileName = path.basename(url); + const dirName = path.dirname(url); + const distDir = path.join(npmDirectory, 'dist'); + const distBakDir = path.join(npmDirectory, 'dist_bak'); + if (!iterCopyFile) { + const urlPath = path.join(distDir, fileName); + await fsExtra.copy(url, urlPath); + } + else { + fsExtra.moveSync(distDir, distBakDir, { overwrite: true }); + fsExtra.copySync(dirName, distDir, { overwrite: true }); + const filesToCopyBack = ['cli.js', 'about_pake.html']; + await Promise.all(filesToCopyBack.map(file => fsExtra.copy(path.join(distBakDir, file), path.join(distDir, file)))); + } + tauriConf.pake.windows[0].url = fileName; + tauriConf.pake.windows[0].url_type = 'local'; + } + else { + tauriConf.pake.windows[0].url_type = 'web'; + // Set the secure domain for calling window.__TAURI__ to the application domain that has been set. + tauriConf.tauri.security.dangerousRemoteDomainIpcAccess = [ + { + domain: new URL(url).hostname, + windows: ['pake'], + enableTauriAPI: true, + }, + ]; + } + if (safeDomain.length > 0) { + tauriConf.tauri.security.dangerousRemoteDomainIpcAccess = [ + ...tauriConf.tauri.security.dangerousRemoteDomainIpcAccess, + ...safeDomain.map(domain => ({ + domain, + windows: ['pake'], + enableTauriAPI: true, + })), + ]; + } + const platformMap = { + win32: 'windows', + linux: 'linux', + darwin: 'macos', + }; + const currentPlatform = platformMap[platform]; + if (userAgent.length > 0) { + tauriConf.pake.user_agent[currentPlatform] = userAgent; + } + tauriConf.pake.menu[currentPlatform] = showMenu; + tauriConf.pake.system_tray[currentPlatform] = showSystemTray; + // Processing targets are currently only open to Linux. + if (platform === 'linux') { + delete tauriConf.tauri.bundle.deb.files; + const validTargets = ['all', 'deb', 'appimage']; + if (validTargets.includes(options.targets)) { + tauriConf.tauri.bundle.targets = options.targets === 'all' ? ['deb', 'appimage'] : [options.targets]; + } + else { + logger.warn(`✼ The target must be one of ${validTargets.join(', ')}, the default 'deb' will be used.`); + } + } + // Set icon. + const platformIconMap = { + win32: { + fileExt: '.ico', + path: `png/${name.toLowerCase()}_256.ico`, + defaultIcon: 'png/icon_256.ico', + message: 'Windows icon must be .ico and 256x256px.', + }, + linux: { + fileExt: '.png', + path: `png/${name.toLowerCase()}_512.png`, + defaultIcon: 'png/icon_512.png', + message: 'Linux icon must be .png and 512x512px.', + }, + darwin: { + fileExt: '.icns', + path: `icons/${name.toLowerCase()}.icns`, + defaultIcon: 'icons/icon.icns', + message: 'macOS icon must be .icns type.', + }, + }; + const iconInfo = platformIconMap[platform]; + const exists = await fsExtra.pathExists(options.icon); + if (exists) { + let updateIconPath = true; + let customIconExt = path.extname(options.icon).toLowerCase(); + if (customIconExt !== iconInfo.fileExt) { + updateIconPath = false; + logger.warn(`✼ ${iconInfo.message}, but you give ${customIconExt}`); + tauriConf.tauri.bundle.icon = [iconInfo.defaultIcon]; + } + else { + const iconPath = path.join(npmDirectory, 'src-tauri/', iconInfo.path); + tauriConf.tauri.bundle.resources = [iconInfo.path]; + await fsExtra.copy(options.icon, iconPath); + } + if (updateIconPath) { + tauriConf.tauri.bundle.icon = [options.icon]; + } + else { + logger.warn(`✼ Icon will remain as default.`); + } + } + else { + logger.warn('✼ Custom icon path may be invalid, default icon will be used instead.'); + tauriConf.tauri.bundle.icon = [iconInfo.defaultIcon]; + } + // Set tray icon path. + let trayIconPath = platform === 'darwin' ? 'png/icon_512.png' : tauriConf.tauri.bundle.icon[0]; + if (systemTrayIcon.length > 0) { + try { + await fsExtra.pathExists(systemTrayIcon); + // 需要判断图标格式,默认只支持ico和png两种 + let iconExt = path.extname(systemTrayIcon).toLowerCase(); + if (iconExt == '.png' || iconExt == '.ico') { + const trayIcoPath = path.join(npmDirectory, `src-tauri/png/${name.toLowerCase()}${iconExt}`); + trayIconPath = `png/${name.toLowerCase()}${iconExt}`; + await fsExtra.copy(systemTrayIcon, trayIcoPath); + } + else { + logger.warn(`✼ System tray icon must be .ico or .png, but you provided ${iconExt}.`); + logger.warn(`✼ Default system tray icon will be used.`); + } + } + catch { + logger.warn(`✼ ${systemTrayIcon} not exists!`); + logger.warn(`✼ Default system tray icon will remain unchanged.`); + } + } + tauriConf.tauri.systemTray.iconPath = trayIconPath; + const injectFilePath = path.join(npmDirectory, `src-tauri/src/inject/_INJECT_.js`); + // inject js or css files + if (inject?.length > 0) { + if (!inject.every(item => item.endsWith('.css') || item.endsWith('.js'))) { + logger.error('The injected file must be in either CSS or JS format.'); + return; + } + const files = inject.map(filepath => path.isAbsolute(filepath) ? filepath : path.join(process.cwd(), filepath)); + tauriConf.pake.inject = files; + await combineFiles(files, injectFilePath); + } + else { + tauriConf.pake.inject = []; + await fsExtra.writeFile(injectFilePath, ''); + } + // Save config file. + const platformConfigPaths = { + win32: 'src-tauri/tauri.windows.conf.json', + darwin: 'src-tauri/tauri.macos.conf.json', + linux: 'src-tauri/tauri.linux.conf.json', + }; + const configPath = path.join(npmDirectory, platformConfigPaths[platform]); + const bundleConf = { tauri: { bundle: tauriConf.tauri.bundle } }; + await fsExtra.writeJson(configPath, bundleConf, { spaces: 4 }); + const pakeConfigPath = path.join(npmDirectory, 'src-tauri/pake.json'); + await fsExtra.writeJson(pakeConfigPath, tauriConf.pake, { spaces: 4 }); + let tauriConf2 = JSON.parse(JSON.stringify(tauriConf)); + delete tauriConf2.pake; + delete tauriConf2.tauri.bundle; + const configJsonPath = path.join(npmDirectory, 'src-tauri/tauri.conf.json'); + await fsExtra.writeJson(configJsonPath, tauriConf2, { spaces: 4 }); } -class MacBuilder extends BaseBuilder { - constructor(options) { - super(options); - this.options.targets = 'dmg'; - } - getFileName() { - const { name } = this.options; - let arch; - if (this.options.multiArch) { - arch = 'universal'; - } - else { - arch = process.arch === 'arm64' ? 'aarch64' : process.arch; - } - return `${name}_${tauriConfig.package.version}_${arch}`; - } - getBuildCommand() { - return this.options.multiArch ? 'npm run build:mac' : super.getBuildCommand(); - } - getBasePath() { - return this.options.multiArch - ? 'src-tauri/target/universal-apple-darwin/release/bundle' - : super.getBasePath(); - } +class BaseBuilder { + constructor(options) { + this.options = options; + } + async prepare() { + const tauriSrcPath = path.join(npmDirectory, 'src-tauri'); + const tauriTargetPath = path.join(tauriSrcPath, 'target'); + const tauriTargetPathExists = await fsExtra.pathExists(tauriTargetPath); + if (!IS_MAC && !tauriTargetPathExists) { + logger.warn('✼ The first use requires installing system dependencies.'); + logger.warn('✼ See more in https://tauri.app/v1/guides/getting-started/prerequisites.'); + } + if (!checkRustInstalled()) { + const res = await prompts({ + type: 'confirm', + message: 'Rust not detected. Install now?', + name: 'value', + }); + if (res.value) { + await installRust(); + } + else { + logger.error('✕ Rust required to package your webapp.'); + process.exit(0); + } + } + const isChina = await isChinaDomain('www.npmjs.com'); + const spinner = getSpinner('Installing package...'); + const rustProjectDir = path.join(tauriSrcPath, '.cargo'); + const projectConf = path.join(rustProjectDir, 'config'); + await fsExtra.ensureDir(rustProjectDir); + if (isChina) { + logger.info('✺ Located in China, using npm/rsProxy CN mirror.'); + const projectCnConf = path.join(tauriSrcPath, 'rust_proxy.toml'); + await fsExtra.copy(projectCnConf, projectConf); + await shellExec(`cd "${npmDirectory}" && npm install --registry=https://registry.npmmirror.com`); + } + else { + await shellExec(`cd "${npmDirectory}" && npm install`); + } + spinner.succeed(chalk.green('Package installed!')); + if (!tauriTargetPathExists) { + logger.warn('✼ The first packaging may be slow, please be patient and wait, it will be faster afterwards.'); + } + } + async build(url) { + await this.buildAndCopy(url, this.options.targets); + } + async start(url) { + await mergeConfig(url, this.options, tauriConfig); + } + async buildAndCopy(url, target) { + const { name } = this.options; + await mergeConfig(url, this.options, tauriConfig); + // Build app + const spinner = getSpinner('Building app...'); + setTimeout(() => spinner.stop(), 3000); + await shellExec(`cd "${npmDirectory}" && ${this.getBuildCommand()}`); + // Copy app + const fileName = this.getFileName(); + const fileType = this.getFileType(target); + const appPath = this.getBuildAppPath(npmDirectory, fileName, fileType); + const distPath = path.resolve(`${name}.${fileType}`); + await fsExtra.copy(appPath, distPath); + await fsExtra.remove(appPath); + logger.success('✔ Build success!'); + logger.success('✔ App installer located in', distPath); + } + getFileType(target) { + return target; + } + getBuildCommand() { + // the debug option should support `--debug` and `--release` + return this.options.debug ? 'npm run build:debug' : 'npm run build'; + } + getBasePath() { + return 'src-tauri/target/release/bundle/'; + } + getBuildAppPath(npmDirectory, fileName, fileType) { + return path.join(npmDirectory, this.getBasePath(), fileType.toLowerCase(), `${fileName}.${fileType}`); + } } -class WinBuilder extends BaseBuilder { - constructor(options) { - super(options); - this.options.targets = 'msi'; - } - getFileName() { - const { name } = this.options; - const { arch } = process; - const language = tauriConfig.tauri.bundle.windows.wix.language[0]; - return `${name}_${tauriConfig.package.version}_${arch}_${language}`; - } +class MacBuilder extends BaseBuilder { + constructor(options) { + super(options); + this.options.targets = 'dmg'; + } + getFileName() { + const { name } = this.options; + let arch; + if (this.options.multiArch) { + arch = 'universal'; + } + else { + arch = process.arch === 'arm64' ? 'aarch64' : process.arch; + } + return `${name}_${tauriConfig.package.version}_${arch}`; + } + getBuildCommand() { + return this.options.multiArch ? 'npm run build:mac' : super.getBuildCommand(); + } + getBasePath() { + return this.options.multiArch + ? 'src-tauri/target/universal-apple-darwin/release/bundle' + : super.getBasePath(); + } } -class LinuxBuilder extends BaseBuilder { - constructor(options) { - super(options); - } - getFileName() { - const { name } = this.options; - const arch = process.arch === 'x64' ? 'amd64' : process.arch; - return `${name}_${tauriConfig.package.version}_${arch}`; - } - // Customize it, considering that there are all targets. - async build(url) { - const targetTypes = ['deb', 'appimage']; - for (const target of targetTypes) { - if (this.options.targets === target || this.options.targets === 'all') { - await this.buildAndCopy(url, target); - } - } - } - getFileType(target) { - if (target === 'appimage') { - return 'AppImage'; - } - return super.getFileType(target); - } +class WinBuilder extends BaseBuilder { + constructor(options) { + super(options); + this.options.targets = 'msi'; + } + getFileName() { + const { name } = this.options; + const { arch } = process; + const language = tauriConfig.tauri.bundle.windows.wix.language[0]; + return `${name}_${tauriConfig.package.version}_${arch}_${language}`; + } } -const { platform } = process; -const buildersMap = { - darwin: MacBuilder, - win32: WinBuilder, - linux: LinuxBuilder, -}; -class BuilderProvider { - static create(options) { - const Builder = buildersMap[platform]; - if (!Builder) { - throw new Error('The current system is not supported!'); - } - return new Builder(options); - } +class LinuxBuilder extends BaseBuilder { + constructor(options) { + super(options); + } + getFileName() { + const { name } = this.options; + const arch = process.arch === 'x64' ? 'amd64' : process.arch; + return `${name}_${tauriConfig.package.version}_${arch}`; + } + // Customize it, considering that there are all targets. + async build(url) { + const targetTypes = ['deb', 'appimage']; + for (const target of targetTypes) { + if (this.options.targets === target || this.options.targets === 'all') { + await this.buildAndCopy(url, target); + } + } + } + getFileType(target) { + if (target === 'appimage') { + return 'AppImage'; + } + return super.getFileType(target); + } } -const DEFAULT_PAKE_OPTIONS = { - icon: '', - height: 780, - width: 1200, - fullscreen: false, - resizable: true, - transparent: false, - userAgent: '', - showMenu: false, - showSystemTray: false, - multiArch: false, - targets: 'deb', - iterCopyFile: false, - systemTrayIcon: '', - debug: false, +const { platform } = process; +const buildersMap = { + darwin: MacBuilder, + win32: WinBuilder, + linux: LinuxBuilder, +}; +class BuilderProvider { + static create(options) { + const Builder = buildersMap[platform]; + if (!Builder) { + throw new Error('The current system is not supported!'); + } + return new Builder(options); + } +} + +const DEFAULT_PAKE_OPTIONS = { + icon: '', + height: 780, + width: 1200, + fullscreen: false, + resizable: true, + transparent: false, + userAgent: '', + showMenu: false, + showSystemTray: false, + multiArch: false, + targets: 'deb', + iterCopyFile: false, + systemTrayIcon: '', + debug: false, + inject: [], + safeDomain: [], }; -async function checkUpdateTips() { - updateNotifier({ pkg: packageJson, updateCheckInterval: 1000 * 60 }).notify({ isGlobal: true }); +async function checkUpdateTips() { + updateNotifier({ pkg: packageJson, updateCheckInterval: 1000 * 60 }).notify({ isGlobal: true }); } -async function handleIcon(options) { - if (options.icon) { - if (options.icon.startsWith('http')) { - return downloadIcon(options.icon); - } - else { - return path.resolve(options.icon); - } - } - else { - logger.warn('✼ No icon given, default in use. For a custom icon, use --icon option.'); - const iconPath = IS_WIN - ? 'src-tauri/png/icon_256.ico' - : IS_LINUX - ? 'src-tauri/png/icon_512.png' - : 'src-tauri/icons/icon.icns'; - return path.join(npmDirectory, iconPath); - } -} -async function downloadIcon(iconUrl) { - const spinner = getSpinner('Downloading icon...'); - try { - const iconResponse = await axios.get(iconUrl, { responseType: 'arraybuffer' }); - const iconData = await iconResponse.data; - if (!iconData) { - return null; - } - const fileDetails = await fileTypeFromBuffer(iconData); - if (!fileDetails) { - return null; - } - const { path: tempPath } = await dir(); - const iconPath = `${tempPath}/icon.${fileDetails.ext}`; - await fsExtra.outputFile(iconPath, iconData); - spinner.succeed(chalk.green('Icon downloaded successfully!')); - return iconPath; - } - catch (error) { - spinner.fail(chalk.red('Icon download failed!')); - if (error.response && error.response.status === 404) { - return null; - } - throw error; - } +async function handleIcon(options) { + if (options.icon) { + if (options.icon.startsWith('http')) { + return downloadIcon(options.icon); + } + else { + return path.resolve(options.icon); + } + } + else { + logger.warn('✼ No icon given, default in use. For a custom icon, use --icon option.'); + const iconPath = IS_WIN + ? 'src-tauri/png/icon_256.ico' + : IS_LINUX + ? 'src-tauri/png/icon_512.png' + : 'src-tauri/icons/icon.icns'; + return path.join(npmDirectory, iconPath); + } +} +async function downloadIcon(iconUrl) { + const spinner = getSpinner('Downloading icon...'); + try { + const iconResponse = await axios.get(iconUrl, { responseType: 'arraybuffer' }); + const iconData = await iconResponse.data; + if (!iconData) { + return null; + } + const fileDetails = await fileTypeFromBuffer(iconData); + if (!fileDetails) { + return null; + } + const { path: tempPath } = await dir(); + const iconPath = `${tempPath}/icon.${fileDetails.ext}`; + await fsExtra.outputFile(iconPath, iconData); + spinner.succeed(chalk.green('Icon downloaded successfully!')); + return iconPath; + } + catch (error) { + spinner.fail(chalk.red('Icon download failed!')); + if (error.response && error.response.status === 404) { + return null; + } + throw error; + } } -// Extracts the domain from a given URL. -function getDomain(inputUrl) { - try { - const url = new URL(inputUrl); - // Use PSL to parse domain names. - const parsed = psl.parse(url.hostname); - // If domain is available, split it and return the SLD. - if ('domain' in parsed && parsed.domain) { - return parsed.domain.split('.')[0]; - } - else { - return null; - } - } - catch (error) { - return null; - } -} -// Appends 'https://' protocol to the URL if not present. -function appendProtocol(inputUrl) { - try { - new URL(inputUrl); - return inputUrl; - } - catch { - return `https://${inputUrl}`; - } -} -// Normalizes the URL by ensuring it has a protocol and is valid. -function normalizeUrl(urlToNormalize) { - const urlWithProtocol = appendProtocol(urlToNormalize); - if (isUrl(urlWithProtocol)) { - return urlWithProtocol; - } - else { - throw new Error(`Your url "${urlWithProtocol}" is invalid`); - } +// Extracts the domain from a given URL. +function getDomain(inputUrl) { + try { + const url = new URL(inputUrl); + // Use PSL to parse domain names. + const parsed = psl.parse(url.hostname); + // If domain is available, split it and return the SLD. + if ('domain' in parsed && parsed.domain) { + return parsed.domain.split('.')[0]; + } + else { + return null; + } + } + catch (error) { + return null; + } +} +// Appends 'https://' protocol to the URL if not present. +function appendProtocol(inputUrl) { + try { + new URL(inputUrl); + return inputUrl; + } + catch { + return `https://${inputUrl}`; + } +} +// Normalizes the URL by ensuring it has a protocol and is valid. +function normalizeUrl(urlToNormalize) { + const urlWithProtocol = appendProtocol(urlToNormalize); + if (isUrl(urlWithProtocol)) { + return urlWithProtocol; + } + else { + throw new Error(`Your url "${urlWithProtocol}" is invalid`); + } } -function resolveAppName(name, platform) { - const domain = getDomain(name) || 'pake'; - return platform !== 'linux' ? capitalizeFirstLetter(domain) : domain; -} -function isValidName(name, platform) { - const platformRegexMapping = { - linux: /^[a-z0-9]+(-[a-z0-9]+)*$/, - default: /^[a-zA-Z0-9]+$/, - }; - const reg = platformRegexMapping[platform] || platformRegexMapping.default; - return !!name && reg.test(name); -} -async function handleOptions(options, url) { - const { platform } = process; - const isActions = process.env.GITHUB_ACTIONS; - let name = options.name; - const pathExists = await fsExtra.pathExists(url); - if (!options.name) { - const defaultName = pathExists ? '' : resolveAppName(url, platform); - const promptMessage = 'Enter your application name'; - const namePrompt = await promptText(promptMessage, defaultName); - name = namePrompt || defaultName; - } - if (!isValidName(name, platform)) { - const LINUX_NAME_ERROR = `✕ name should only include lowercase letters, numbers, and dashes, and must contain at least one lowercase letter. Examples: com-123-xxx, 123pan, pan123, weread, we-read.`; - const DEFAULT_NAME_ERROR = `✕ Name should only include letters and numbers, and must contain at least one letter. Examples: 123pan, 123Pan, Pan123, weread, WeRead, WERead.`; - const errorMsg = platform === 'linux' ? LINUX_NAME_ERROR : DEFAULT_NAME_ERROR; - logger.error(errorMsg); - if (isActions) { - name = resolveAppName(url, platform); - logger.warn(`✼ Inside github actions, use the default name: ${name}`); - } - else { - process.exit(1); - } - } - const appOptions = { - ...options, - name, - identifier: getIdentifier(url), - }; - appOptions.icon = await handleIcon(appOptions); - return appOptions; +function resolveAppName(name, platform) { + const domain = getDomain(name) || 'pake'; + return platform !== 'linux' ? capitalizeFirstLetter(domain) : domain; +} +function isValidName(name, platform) { + const platformRegexMapping = { + linux: /^[a-z0-9]+(-[a-z0-9]+)*$/, + default: /^[a-zA-Z0-9]+$/, + }; + const reg = platformRegexMapping[platform] || platformRegexMapping.default; + return !!name && reg.test(name); +} +async function handleOptions(options, url) { + const { platform } = process; + const isActions = process.env.GITHUB_ACTIONS; + let name = options.name; + const pathExists = await fsExtra.pathExists(url); + if (!options.name) { + const defaultName = pathExists ? '' : resolveAppName(url, platform); + const promptMessage = 'Enter your application name'; + const namePrompt = await promptText(promptMessage, defaultName); + name = namePrompt || defaultName; + } + if (!isValidName(name, platform)) { + const LINUX_NAME_ERROR = `✕ name should only include lowercase letters, numbers, and dashes, and must contain at least one lowercase letter. Examples: com-123-xxx, 123pan, pan123, weread, we-read.`; + const DEFAULT_NAME_ERROR = `✕ Name should only include letters and numbers, and must contain at least one letter. Examples: 123pan, 123Pan, Pan123, weread, WeRead, WERead.`; + const errorMsg = platform === 'linux' ? LINUX_NAME_ERROR : DEFAULT_NAME_ERROR; + logger.error(errorMsg); + if (isActions) { + name = resolveAppName(url, platform); + logger.warn(`✼ Inside github actions, use the default name: ${name}`); + } + else { + process.exit(1); + } + } + const appOptions = { + ...options, + name, + identifier: getIdentifier(url), + }; + appOptions.icon = await handleIcon(appOptions); + return appOptions; } -function validateNumberInput(value) { - const parsedValue = Number(value); - if (isNaN(parsedValue)) { - throw new InvalidArgumentError('Not a number.'); - } - return parsedValue; -} -function validateUrlInput(url) { - const isFile = fs.existsSync(url); - if (!isFile) { - try { - return normalizeUrl(url); - } - catch (error) { - throw new InvalidArgumentError(error.message); - } - } - return url; +function validateNumberInput(value) { + const parsedValue = Number(value); + if (isNaN(parsedValue)) { + throw new InvalidArgumentError('Not a number.'); + } + return parsedValue; +} +function validateUrlInput(url) { + const isFile = fs.existsSync(url); + if (!isFile) { + try { + return normalizeUrl(url); + } + catch (error) { + throw new InvalidArgumentError(error.message); + } + } + return url; } -const { green, yellow } = chalk; +const { green, yellow } = chalk; const logo = `${chalk.green(' ____ _')} ${green('| _ \\ __ _| | _____')} ${green('| |_) / _` | |/ / _ \\')} ${green('| __/ (_| | < __/')} ${yellow('https://github.com/tw93/pake')} ${green('|_| \\__,_|_|\\_\\___| can turn any webpage into a desktop app with Rust.')} -`; -program - .addHelpText('beforeAll', logo) - .usage(`[url] [options]`) - .showHelpAfterError(); -program - .argument('[url]', 'The web URL you want to package', validateUrlInput) - .option('--name ', 'Application name') - .option('--icon ', 'Application icon', DEFAULT_PAKE_OPTIONS.icon) - .option('--width ', 'Window width', validateNumberInput, DEFAULT_PAKE_OPTIONS.width) - .option('--height ', 'Window height', validateNumberInput, DEFAULT_PAKE_OPTIONS.height) - .option('--transparent', 'Only for Mac, hide title bar', DEFAULT_PAKE_OPTIONS.transparent) - .option('--fullscreen', 'Start in full screen', DEFAULT_PAKE_OPTIONS.fullscreen) - .option('--user-agent ', 'Custom user agent', DEFAULT_PAKE_OPTIONS.userAgent) - .option('--show-menu', 'Show menu in app', DEFAULT_PAKE_OPTIONS.showMenu) - .option('--show-system-tray', 'Show system tray in app', DEFAULT_PAKE_OPTIONS.showSystemTray) - .option('--system-tray-icon ', 'Custom system tray icon', DEFAULT_PAKE_OPTIONS.systemTrayIcon) - .option('--iter-copy-file', 'Copy files when URL is a local file', DEFAULT_PAKE_OPTIONS.iterCopyFile) - .option('--multi-arch', 'Only for Mac, supports both Intel and M1', DEFAULT_PAKE_OPTIONS.multiArch) - .option('--targets ', 'Only for Linux, option "deb" or "appimage"', DEFAULT_PAKE_OPTIONS.targets) - .option('--debug', 'Debug mode', DEFAULT_PAKE_OPTIONS.debug) - .version(packageJson.version, '-v, --version', 'Output the current version') - .action(async (url, options) => { - await checkUpdateTips(); - if (!url) { - program.outputHelp(str => { - return str - .split('\n') - .filter(line => !/((-h,|--help)|((-v|-V),|--version))\s+.+$/.test(line)) - .join('\n'); - }); - process.exit(0); - } - log.setDefaultLevel('info'); - if (options.debug) { - log.setLevel('debug'); - } - const appOptions = await handleOptions(options, url); - log.debug('PakeAppOptions', appOptions); - const builder = BuilderProvider.create(appOptions); - await builder.prepare(); - await builder.build(url); -}); +`; +program + .addHelpText('beforeAll', logo) + .usage(`[url] [options]`) + .showHelpAfterError(); +program + .argument('[url]', 'The web URL you want to package', validateUrlInput) + .option('--name ', 'Application name') + .option('--icon ', 'Application icon', DEFAULT_PAKE_OPTIONS.icon) + .option('--width ', 'Window width', validateNumberInput, DEFAULT_PAKE_OPTIONS.width) + .option('--height ', 'Window height', validateNumberInput, DEFAULT_PAKE_OPTIONS.height) + .option('--transparent', 'Only for Mac, hide title bar', DEFAULT_PAKE_OPTIONS.transparent) + .option('--fullscreen', 'Start in full screen', DEFAULT_PAKE_OPTIONS.fullscreen) + .option('--user-agent ', 'Custom user agent', DEFAULT_PAKE_OPTIONS.userAgent) + .option('--show-menu', 'Show menu in app', DEFAULT_PAKE_OPTIONS.showMenu) + .option('--show-system-tray', 'Show system tray in app', DEFAULT_PAKE_OPTIONS.showSystemTray) + .option('--system-tray-icon ', 'Custom system tray icon', DEFAULT_PAKE_OPTIONS.systemTrayIcon) + .option('--iter-copy-file', 'Copy files when URL is a local file', DEFAULT_PAKE_OPTIONS.iterCopyFile) + .option('--multi-arch', 'Only for Mac, supports both Intel and M1', DEFAULT_PAKE_OPTIONS.multiArch) + .option('--targets ', 'Only for Linux, option "deb" or "appimage"', DEFAULT_PAKE_OPTIONS.targets) + .option('--inject [injects...]', 'inject .js or .css for this app', DEFAULT_PAKE_OPTIONS.inject) + .option('--safe-domain [domains...]', 'domains that can call window.__TAURI__ and use ipc', DEFAULT_PAKE_OPTIONS.safeDomain) + .option('--debug', 'Debug mode', DEFAULT_PAKE_OPTIONS.debug) + .version(packageJson.version, '-v, --version', 'Output the current version') + .action(async (url, options) => { + await checkUpdateTips(); + if (!url) { + program.outputHelp(str => { + return str + .split('\n') + .filter(line => !/((-h,|--help)|((-v|-V),|--version))\s+.+$/.test(line)) + .join('\n'); + }); + process.exit(0); + } + log.setDefaultLevel('info'); + if (options.debug) { + log.setLevel('debug'); + } + const appOptions = await handleOptions(options, url); + log.debug('PakeAppOptions', appOptions); + const builder = BuilderProvider.create(appOptions); + await builder.prepare(); + await builder.build(url); +}); program.parse(); diff --git a/src-tauri/pake.json b/src-tauri/pake.json index 41df6ca..96dd6fb 100644 --- a/src-tauri/pake.json +++ b/src-tauri/pake.json @@ -1,8 +1,8 @@ { "windows": [ { - "url": "https://zbook.lol/", - "transparent": true, + "url": "https://weread.qq.com/", + "transparent": false, "fullscreen": false, "width": 1200, "height": 780, @@ -25,8 +25,5 @@ "linux": true, "windows": true }, - "inject": [ - "/Users/guyifeng/workspace/seeyon/pake-patch/index.js", - "/Users/guyifeng/workspace/seeyon/pake-patch/index.css" - ] + "inject": [] } diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index b3aba59..c4df1a4 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -4,14 +4,7 @@ "csp": null, "dangerousRemoteDomainIpcAccess": [ { - "domain": "zbook.lol", - "windows": [ - "pake" - ], - "enableTauriAPI": true - }, - { - "domain": "zbook.eu.org", + "domain": "weread.qq.com", "windows": [ "pake" ], @@ -37,7 +30,7 @@ } }, "package": { - "productName": "zBook", + "productName": "WeRead", "version": "1.0.0" }, "build": { diff --git a/src-tauri/tauri.macos.conf.json b/src-tauri/tauri.macos.conf.json index 8294815..76cfbdd 100644 --- a/src-tauri/tauri.macos.conf.json +++ b/src-tauri/tauri.macos.conf.json @@ -1,23 +1,27 @@ { - "tauri": { - "bundle": { - "icon": ["icons/weread.icns"], - "identifier": "com.pake.weread", - "active": true, - "category": "DeveloperTool", - "copyright": "", - "externalBin": [], - "longDescription": "", - "macOS": { - "entitlements": null, - "exceptionDomain": "", - "frameworks": [], - "providerShortName": null, - "signingIdentity": null - }, - "resources": [], - "shortDescription": "", - "targets": ["dmg"] + "tauri": { + "bundle": { + "icon": [ + "icons/icon.icns" + ], + "identifier": "com.pake.5b8ae9", + "active": true, + "category": "DeveloperTool", + "copyright": "", + "externalBin": [], + "longDescription": "", + "macOS": { + "entitlements": null, + "exceptionDomain": "", + "frameworks": [], + "providerShortName": null, + "signingIdentity": null + }, + "resources": [], + "shortDescription": "", + "targets": [ + "dmg" + ] + } } - } -} \ No newline at end of file +} From 3c7e7f6acc42aa27476614811c6b2ef0b68bf7a4 Mon Sep 17 00:00:00 2001 From: jeasonnow Date: Fri, 14 Jul 2023 22:14:01 +0800 Subject: [PATCH 14/23] =?UTF-8?q?update:=20=E5=AE=8C=E5=96=84=E5=BC=80?= =?UTF-8?q?=E5=8F=91=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + bin/helpers/merge.ts | 22 +++++++++++-------- bin/utils/dir.ts | 4 +++- dist/cli.js | 24 +++++++++++---------- package.json | 3 ++- plugins/pakeCliDevPlugin.js | 43 +++++++++++++++++++++++++++++++++++++ rollup.config.js | 21 +++++++++++++++--- src-tauri/Cargo.toml | 2 ++ src-tauri/src/util.rs | 9 +++++++- 9 files changed, 103 insertions(+), 26 deletions(-) create mode 100644 plugins/pakeCliDevPlugin.js diff --git a/.gitignore b/.gitignore index 43ac11e..f8267c8 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,4 @@ dist src-tauri/.cargo/config src-tauri/.cargo/ .next +src-tauri/.pake/ \ No newline at end of file diff --git a/bin/helpers/merge.ts b/bin/helpers/merge.ts index d5fcb25..4f38e20 100644 --- a/bin/helpers/merge.ts +++ b/bin/helpers/merge.ts @@ -5,6 +5,7 @@ import { npmDirectory } from '@/utils/dir'; import combineFiles from '@/utils/combine'; import logger from '@/options/logger'; import { PakeAppOptions, PlatformMap } from '@/types'; +import { tauriConfigDirectory } from '../utils/dir'; export async function mergeConfig(url: string, options: PakeAppOptions, tauriConf: any) { const { @@ -200,20 +201,23 @@ export async function mergeConfig(url: string, options: PakeAppOptions, tauriCon // Save config file. const platformConfigPaths: PlatformMap = { - win32: 'src-tauri/tauri.windows.conf.json', - darwin: 'src-tauri/tauri.macos.conf.json', - linux: 'src-tauri/tauri.linux.conf.json', + win32: 'tauri.windows.conf.json', + darwin: 'tauri.macos.conf.json', + linux: 'tauri.linux.conf.json', }; - const configPath = path.join(npmDirectory, platformConfigPaths[platform]); + const configPath = path.join(tauriConfigDirectory, platformConfigPaths[platform]); const bundleConf = { tauri: { bundle: tauriConf.tauri.bundle } }; - await fsExtra.writeJson(configPath, bundleConf, { spaces: 4 }); - const pakeConfigPath = path.join(npmDirectory, 'src-tauri/pake.json'); - await fsExtra.writeJson(pakeConfigPath, tauriConf.pake, { spaces: 4 }); + await fsExtra.outputJSON(configPath, bundleConf, { spaces: 4 }); + const pakeConfigPath = path.join(tauriConfigDirectory, 'pake.json'); + await fsExtra.outputJSON(pakeConfigPath, tauriConf.pake, { spaces: 4 }); let tauriConf2 = JSON.parse(JSON.stringify(tauriConf)); delete tauriConf2.pake; delete tauriConf2.tauri.bundle; - const configJsonPath = path.join(npmDirectory, 'src-tauri/tauri.conf.json'); - await fsExtra.writeJson(configJsonPath, tauriConf2, { spaces: 4 }); + if (process.env.NODE_ENV === 'development') { + tauriConf2.tauri.bundle = bundleConf.tauri.bundle; + } + const configJsonPath = path.join(tauriConfigDirectory, 'tauri.conf.json'); + await fsExtra.outputJSON(configJsonPath, tauriConf2, { spaces: 4 }); } diff --git a/bin/utils/dir.ts b/bin/utils/dir.ts index c46d9fd..8e19caf 100644 --- a/bin/utils/dir.ts +++ b/bin/utils/dir.ts @@ -5,4 +5,6 @@ import { fileURLToPath } from 'url'; const currentModulePath = fileURLToPath(import.meta.url); // Resolve the parent directory of the current module -export const npmDirectory = process.env.DEV === 'true' ? process.cwd() : path.join(path.dirname(currentModulePath), '..'); +export const npmDirectory = path.join(path.dirname(currentModulePath), '..'); + +export const tauriConfigDirectory = process.env.NODE_ENV === 'development' ? path.join(npmDirectory, 'src-tauri', '.pake') : path.join(npmDirectory, 'src-tauri'); \ No newline at end of file diff --git a/dist/cli.js b/dist/cli.js index d7421d6..aa4585b 100644 --- a/dist/cli.js +++ b/dist/cli.js @@ -60,7 +60,7 @@ var scripts = { analyze: "cd src-tauri && cargo bloat --release --crates", tauri: "tauri", cli: "rollup -c rollup.config.js --watch", - "cli:dev": "cross-env DEV=true tsx watch ./bin/dev.ts & npm run dev", + "cli:dev": "cross-env NODE_ENV=development rollup -c rollup.config.js -w", "cli:build": "cross-env NODE_ENV=production rollup -c rollup.config.js", prepublishOnly: "npm run cli:build" }; @@ -88,6 +88,7 @@ var devDependencies = { "@rollup/plugin-alias": "^4.0.2", "@rollup/plugin-commonjs": "^23.0.2", "@rollup/plugin-json": "^5.0.2", + "@rollup/plugin-replace": "^5.0.2", "@rollup/plugin-terser": "^0.1.0", "@types/fs-extra": "^9.0.13", "@types/is-url": "^1.2.30", @@ -362,7 +363,8 @@ const IS_LINUX = platform$1 === 'linux'; // Convert the current module URL to a file path const currentModulePath = fileURLToPath(import.meta.url); // Resolve the parent directory of the current module -const npmDirectory = process.env.DEV === 'true' ? process.cwd() : path.join(path.dirname(currentModulePath), '..'); +const npmDirectory = path.join(path.dirname(currentModulePath), '..'); +const tauriConfigDirectory = path.join(npmDirectory, 'src-tauri'); function shellExec(command) { return new Promise((resolve, reject) => { @@ -639,20 +641,20 @@ async function mergeConfig(url, options, tauriConf) { } // Save config file. const platformConfigPaths = { - win32: 'src-tauri/tauri.windows.conf.json', - darwin: 'src-tauri/tauri.macos.conf.json', - linux: 'src-tauri/tauri.linux.conf.json', + win32: 'tauri.windows.conf.json', + darwin: 'tauri.macos.conf.json', + linux: 'tauri.linux.conf.json', }; - const configPath = path.join(npmDirectory, platformConfigPaths[platform]); + const configPath = path.join(tauriConfigDirectory, platformConfigPaths[platform]); const bundleConf = { tauri: { bundle: tauriConf.tauri.bundle } }; - await fsExtra.writeJson(configPath, bundleConf, { spaces: 4 }); - const pakeConfigPath = path.join(npmDirectory, 'src-tauri/pake.json'); - await fsExtra.writeJson(pakeConfigPath, tauriConf.pake, { spaces: 4 }); + await fsExtra.outputJSON(configPath, bundleConf, { spaces: 4 }); + const pakeConfigPath = path.join(tauriConfigDirectory, 'pake.json'); + await fsExtra.outputJSON(pakeConfigPath, tauriConf.pake, { spaces: 4 }); let tauriConf2 = JSON.parse(JSON.stringify(tauriConf)); delete tauriConf2.pake; delete tauriConf2.tauri.bundle; - const configJsonPath = path.join(npmDirectory, 'src-tauri/tauri.conf.json'); - await fsExtra.writeJson(configJsonPath, tauriConf2, { spaces: 4 }); + const configJsonPath = path.join(tauriConfigDirectory, 'tauri.conf.json'); + await fsExtra.outputJSON(configJsonPath, tauriConf2, { spaces: 4 }); } class BaseBuilder { diff --git a/package.json b/package.json index 0d89175..698dd36 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "analyze": "cd src-tauri && cargo bloat --release --crates", "tauri": "tauri", "cli": "rollup -c rollup.config.js --watch", - "cli:dev": "cross-env DEV=true tsx watch ./bin/dev.ts & npm run dev", + "cli:dev": "cross-env NODE_ENV=development rollup -c rollup.config.js -w", "cli:build": "cross-env NODE_ENV=production rollup -c rollup.config.js", "prepublishOnly": "npm run cli:build" }, @@ -68,6 +68,7 @@ "@rollup/plugin-alias": "^4.0.2", "@rollup/plugin-commonjs": "^23.0.2", "@rollup/plugin-json": "^5.0.2", + "@rollup/plugin-replace": "^5.0.2", "@rollup/plugin-terser": "^0.1.0", "@types/fs-extra": "^9.0.13", "@types/is-url": "^1.2.30", diff --git a/plugins/pakeCliDevPlugin.js b/plugins/pakeCliDevPlugin.js new file mode 100644 index 0000000..2932c51 --- /dev/null +++ b/plugins/pakeCliDevPlugin.js @@ -0,0 +1,43 @@ +import chalk from 'chalk'; +import {spawn, exec} from 'child_process'; + + +// just run in development mode +export default function pakeCliDevPlugin() { + return { + name: 'pake-cli-dev-plugin', + buildEnd() { + + const command = 'node'; + const cliCmdArgs = ['./dist/dev.js']; + const cliChildProcess = spawn(command, cliCmdArgs); + + cliChildProcess.stdout.on('data', (data) => { + console.log(chalk.green(data.toString())); + }); + + cliChildProcess.stderr.on('data', (data) => { + console.error(chalk.yellow(data.toString())); + }); + + cliChildProcess.on('close', async (code) => { + console.log(chalk.yellow(`cli running end with code: ${code}`)); + cliChildProcess.kill(); + const dev = await exec('npm run tauri dev -- --config ./src-tauri/.pake/tauri.conf.json --features cli-build'); + + dev.stdout.on('data', (data) => { + console.error(chalk.green(data.toString())); + }); + + dev.stderr.on('data', (data) => { + console.error(chalk.yellow(data.toString())); + }); + + dev.on('close', () => { + dev.kill(); + console.log(chalk.green('rebuild start')); + }); + }); + } + } +} \ No newline at end of file diff --git a/rollup.config.js b/rollup.config.js index 0c21614..1aaf44b 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -4,12 +4,23 @@ import typescript from 'rollup-plugin-typescript2'; import alias from '@rollup/plugin-alias'; import commonjs from '@rollup/plugin-commonjs'; import json from '@rollup/plugin-json'; +import replace from '@rollup/plugin-replace'; + +import pakeCliDevPlugin from './plugins/pakeCliDevPlugin.js'; + +const isProduction = process.env.NODE_ENV === 'production'; +const devPlugins = !isProduction ? [pakeCliDevPlugin()] : []; export default { - input: 'bin/cli.ts', + input: isProduction ? 'bin/cli.ts' : 'bin/dev.ts', output: { - file: 'dist/cli.js', - format: 'es' + file: isProduction ? 'dist/cli.js' : 'dist/dev.js', + format: 'es', + sourcemap: !isProduction, + }, + watch: { + include: 'bin/**', + exclude: 'node_modules/**', }, plugins: [ json(), @@ -18,8 +29,12 @@ export default { clean: true, // 清理缓存 }), commonjs(), + replace({ + 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV), + }), alias({ entries: [{ find: '@', replacement: path.join(appRootPath.path, 'bin') }], }), + ...devPlugins, ], }; diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index c7719d1..b55995a 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -25,6 +25,8 @@ tauri-plugin-window-state = { git = "https://github.com/tauri-apps/plugins-works cargo-bloat = "0.11.1" [features] +# this feature is used for development builds from development cli +cli-build = [] # by default Tauri runs in production mode # when `tauri dev` runs it is executed with `cargo run --no-default-features` if `devPath` is an URL default = ["custom-protocol"] diff --git a/src-tauri/src/util.rs b/src-tauri/src/util.rs index dfb38a1..8fc31a8 100644 --- a/src-tauri/src/util.rs +++ b/src-tauri/src/util.rs @@ -4,9 +4,16 @@ use std::path::PathBuf; use tauri::{api, Config, Window}; pub fn get_pake_config() -> (PakeConfig, Config) { + #[cfg(feature = "cli-build")] + let pake_config: PakeConfig = + serde_json::from_str(include_str!("../.pake/pake.json")).expect("Failed to parse pake config"); + #[cfg(not(feature = "cli-build"))] let pake_config: PakeConfig = serde_json::from_str(include_str!("../pake.json")).expect("Failed to parse pake config"); - + #[cfg(feature = "cli-build")] + let tauri_config: Config = serde_json::from_str(include_str!("../.pake/tauri.conf.json")) + .expect("Failed to parse tauri config"); + #[cfg(not(feature = "cli-build"))] let tauri_config: Config = serde_json::from_str(include_str!("../tauri.conf.json")) .expect("Failed to parse tauri config"); From 79a4860f3557425ed9c07b11483eb3a34181cac8 Mon Sep 17 00:00:00 2001 From: jeasonnow Date: Wed, 19 Jul 2023 13:29:40 +0800 Subject: [PATCH 15/23] fix: fix some child_process problems --- plugins/pakeCliDevPlugin.js | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/plugins/pakeCliDevPlugin.js b/plugins/pakeCliDevPlugin.js index 2932c51..367e4ad 100644 --- a/plugins/pakeCliDevPlugin.js +++ b/plugins/pakeCliDevPlugin.js @@ -4,13 +4,19 @@ import {spawn, exec} from 'child_process'; // just run in development mode export default function pakeCliDevPlugin() { + let devChildProcess; + let cliChildProcess; + + let devHasStarted = false; + return { name: 'pake-cli-dev-plugin', buildEnd() { const command = 'node'; const cliCmdArgs = ['./dist/dev.js']; - const cliChildProcess = spawn(command, cliCmdArgs); + + cliChildProcess = spawn(command, cliCmdArgs, {detached: true}); cliChildProcess.stdout.on('data', (data) => { console.log(chalk.green(data.toString())); @@ -22,20 +28,25 @@ export default function pakeCliDevPlugin() { cliChildProcess.on('close', async (code) => { console.log(chalk.yellow(`cli running end with code: ${code}`)); - cliChildProcess.kill(); - const dev = await exec('npm run tauri dev -- --config ./src-tauri/.pake/tauri.conf.json --features cli-build'); + if (devHasStarted) return; + devHasStarted = true; - dev.stdout.on('data', (data) => { - console.error(chalk.green(data.toString())); + const devCommand = 'npm'; + const devArgs = ['run', 'tauri', 'dev', '--', '--config', './src-tauri/.pake/tauri.conf.json', '--features', 'cli-build']; + devChildProcess = spawn(devCommand, devArgs, {detached: true}); + + + devChildProcess.stdout.on('data', (data) => { + console.log(chalk.green(data.toString())); }); - dev.stderr.on('data', (data) => { + devChildProcess.stderr.on('data', (data) => { console.error(chalk.yellow(data.toString())); }); - dev.on('close', () => { - dev.kill(); - console.log(chalk.green('rebuild start')); + devChildProcess.on('close', (code) => { + console.log(chalk.yellow(`dev running end: ${code}`)); + process.exit(code); }); }); } From b28509eb7d4ad7faab3f2417facb19bd782ae383 Mon Sep 17 00:00:00 2001 From: jeasonnow Date: Wed, 19 Jul 2023 16:51:55 +0800 Subject: [PATCH 16/23] feat: support datauri download --- src-tauri/src/inject/event.js | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src-tauri/src/inject/event.js b/src-tauri/src/inject/event.js index 2bf8afa..b9e53b4 100644 --- a/src-tauri/src/inject/event.js +++ b/src-tauri/src/inject/event.js @@ -262,6 +262,28 @@ function convertBlobUrlToBinary(blobUrl) { }); } +function downladFromDataUri(dataURI) { + const byteString = atob(dataURI.split(',')[1]); + // write the bytes of the string to an ArrayBuffer + const bufferArray = new ArrayBuffer(byteString.length); + + // create a view into the buffer + const binary = new Uint8Array(bufferArray); + + // set the bytes of the buffer to the correct values + for (var i = 0; i < byteString.length; i++) { + binary[i] = byteString.charCodeAt(i); + } + + // write the ArrayBuffer to a binary, and you're done + invoke('download_file_by_binary', { + params: { + filename, + binary + }, + }); +} + function downloadFromBlobUrl(blobUrl, filename) { convertBlobUrlToBinary(blobUrl).then((binary) => { invoke('download_file_by_binary', { @@ -284,8 +306,10 @@ function detectDownloadByCreateAnchor() { anchorEle.addEventListener('click', () => { const url = anchorEle.href; if (window.blobToUrlCaches.has(url)) { - downloadFromBlobUrl(url, anchorEle.download || getFilenameFromUrl(url)); + // case: downoload from dataURL -> convert dataURL -> + } else if (url.startsWith('data:')) { + downladFromDataUri(url); } }, true); From 571d1bd6b18c825499b8864f2ed4afb8f4ec752b Mon Sep 17 00:00:00 2001 From: jeasonnow Date: Wed, 19 Jul 2023 18:04:19 +0800 Subject: [PATCH 17/23] fix: convert uint8Array to vec --- src-tauri/src/inject/event.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src-tauri/src/inject/event.js b/src-tauri/src/inject/event.js index b9e53b4..b132cec 100644 --- a/src-tauri/src/inject/event.js +++ b/src-tauri/src/inject/event.js @@ -279,7 +279,7 @@ function downladFromDataUri(dataURI) { invoke('download_file_by_binary', { params: { filename, - binary + binary: Array.from(binary) }, }); } From b0bf5a3c2992cc666d6a2f84adab3a660b83571d Mon Sep 17 00:00:00 2001 From: jeasonnow Date: Thu, 20 Jul 2023 11:15:56 +0800 Subject: [PATCH 18/23] fix: fix some datauri download bug --- plugins/pakeCliDevPlugin.js | 6 +----- src-tauri/src/inject/event.js | 11 +++++++---- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/plugins/pakeCliDevPlugin.js b/plugins/pakeCliDevPlugin.js index 367e4ad..33f8f16 100644 --- a/plugins/pakeCliDevPlugin.js +++ b/plugins/pakeCliDevPlugin.js @@ -30,11 +30,7 @@ export default function pakeCliDevPlugin() { console.log(chalk.yellow(`cli running end with code: ${code}`)); if (devHasStarted) return; devHasStarted = true; - - const devCommand = 'npm'; - const devArgs = ['run', 'tauri', 'dev', '--', '--config', './src-tauri/.pake/tauri.conf.json', '--features', 'cli-build']; - devChildProcess = spawn(devCommand, devArgs, {detached: true}); - + devChildProcess = await exec('npm run tauri dev -- --config ./src-tauri/.pake/tauri.conf.json --features cli-build'); devChildProcess.stdout.on('data', (data) => { console.log(chalk.green(data.toString())); diff --git a/src-tauri/src/inject/event.js b/src-tauri/src/inject/event.js index b132cec..8907880 100644 --- a/src-tauri/src/inject/event.js +++ b/src-tauri/src/inject/event.js @@ -137,6 +137,8 @@ document.addEventListener('DOMContentLoaded', () => { } }); + const specialDownloadProtocal = ['blob', 'data']; + const detectAnchorElementClick = (e) => { const anchorElement = e.target.closest('a'); if (anchorElement && anchorElement.href) { @@ -164,7 +166,7 @@ document.addEventListener('DOMContentLoaded', () => { e.metaKey || e.ctrlKey || isDownloadLink(absoluteUrl)) && - !externalDownLoadLink() && !url.startsWith("blob") + !externalDownLoadLink() && specialDownloadProtocal.every(protocal => !absoluteUrl.startsWith(protocal)) ) { e.preventDefault(); invoke('download_file', { @@ -262,7 +264,7 @@ function convertBlobUrlToBinary(blobUrl) { }); } -function downladFromDataUri(dataURI) { +function downladFromDataUri(dataURI, filename) { const byteString = atob(dataURI.split(',')[1]); // write the bytes of the string to an ArrayBuffer const bufferArray = new ArrayBuffer(byteString.length); @@ -305,11 +307,12 @@ function detectDownloadByCreateAnchor() { // use addEventListener to avoid overriding the original click event. anchorEle.addEventListener('click', () => { const url = anchorEle.href; + const filename = anchorEle.download || getFilenameFromUrl(url); if (window.blobToUrlCaches.has(url)) { - downloadFromBlobUrl(url, anchorEle.download || getFilenameFromUrl(url)); + downloadFromBlobUrl(url, filename); // case: downoload from dataURL -> convert dataURL -> } else if (url.startsWith('data:')) { - downladFromDataUri(url); + downladFromDataUri(url, filename); } }, true); From 769c4b1a0c34e891f0d70610c356e289ce77c9d3 Mon Sep 17 00:00:00 2001 From: jeasonnow Date: Fri, 21 Jul 2023 10:36:55 +0800 Subject: [PATCH 19/23] fix: fix some merge bug --- src-tauri/src/inject/event.js | 162 +++++++++++++++++----------------- 1 file changed, 82 insertions(+), 80 deletions(-) diff --git a/src-tauri/src/inject/event.js b/src-tauri/src/inject/event.js index 052bb59..55622fd 100644 --- a/src-tauri/src/inject/event.js +++ b/src-tauri/src/inject/event.js @@ -68,6 +68,88 @@ document.addEventListener('DOMContentLoaded', () => { document.body.appendChild(topDom); const domEl = document.getElementById('pack-top-dom'); + +// Collect blob urls to blob by overriding window.URL.createObjectURL +function collectUrlToBlobs() { + const backupCreateObjectURL = window.URL.createObjectURL; + window.blobToUrlCaches = new Map(); + window.URL.createObjectURL = (blob) => { + const url = backupCreateObjectURL.call(window.URL, blob); + window.blobToUrlCaches.set(url, blob); + return url; + }; +} + +function convertBlobUrlToBinary(blobUrl) { + return new Promise((resolve) => { + const blob = window.blobToUrlCaches.get(blobUrl); + const reader = new FileReader(); + + reader.readAsArrayBuffer(blob); + reader.onload = () => { + resolve(Array.from(new Uint8Array(reader.result))); + }; + }); +} + +function downladFromDataUri(dataURI, filename) { + const byteString = atob(dataURI.split(',')[1]); + // write the bytes of the string to an ArrayBuffer + const bufferArray = new ArrayBuffer(byteString.length); + + // create a view into the buffer + const binary = new Uint8Array(bufferArray); + + // set the bytes of the buffer to the correct values + for (var i = 0; i < byteString.length; i++) { + binary[i] = byteString.charCodeAt(i); + } + + // write the ArrayBuffer to a binary, and you're done + invoke('download_file_by_binary', { + params: { + filename, + binary: Array.from(binary) + }, + }); +} + +function downloadFromBlobUrl(blobUrl, filename) { + convertBlobUrlToBinary(blobUrl).then((binary) => { + invoke('download_file_by_binary', { + params: { + filename, + binary + }, + }); + }); +} + + +// detect blob download by createElement("a") +function detectDownloadByCreateAnchor() { + const createEle = document.createElement; + document.createElement = (el) => { + if (el !== 'a') return createEle.call(document, el); + const anchorEle = createEle.call(document, el); + + // use addEventListener to avoid overriding the original click event. + anchorEle.addEventListener('click', () => { + const url = anchorEle.href; + const filename = anchorEle.download || getFilenameFromUrl(url); + if (window.blobToUrlCaches.has(url)) { + downloadFromBlobUrl(url, filename); + // case: downoload from dataURL -> convert dataURL -> + } else if (url.startsWith('data:')) { + downladFromDataUri(url, filename); + } + }, true); + + return anchorEle; + }; +} + + domEl.addEventListener('mousedown', (e) => { e.preventDefault(); if (e.buttons === 1 && e.detail !== 2) { @@ -180,86 +262,6 @@ function getFilenameFromUrl(url) { return urlPath.substring(urlPath.lastIndexOf('/') + 1); } -// Collect blob urls to blob by overriding window.URL.createObjectURL -function collectUrlToBlobs() { - const backupCreateObjectURL = window.URL.createObjectURL; - window.blobToUrlCaches = new Map(); - window.URL.createObjectURL = (blob) => { - const url = backupCreateObjectURL.call(window.URL, blob); - window.blobToUrlCaches.set(url, blob); - return url; - }; -} - -function convertBlobUrlToBinary(blobUrl) { - return new Promise((resolve) => { - const blob = window.blobToUrlCaches.get(blobUrl); - const reader = new FileReader(); - - reader.readAsArrayBuffer(blob); - reader.onload = () => { - resolve(Array.from(new Uint8Array(reader.result))); - }; - }); -} - -function downladFromDataUri(dataURI, filename) { - const byteString = atob(dataURI.split(',')[1]); - // write the bytes of the string to an ArrayBuffer - const bufferArray = new ArrayBuffer(byteString.length); - - // create a view into the buffer - const binary = new Uint8Array(bufferArray); - - // set the bytes of the buffer to the correct values - for (var i = 0; i < byteString.length; i++) { - binary[i] = byteString.charCodeAt(i); - } - - // write the ArrayBuffer to a binary, and you're done - invoke('download_file_by_binary', { - params: { - filename, - binary: Array.from(binary) - }, - }); -} - -function downloadFromBlobUrl(blobUrl, filename) { - convertBlobUrlToBinary(blobUrl).then((binary) => { - invoke('download_file_by_binary', { - params: { - filename, - binary - }, - }); - }); -} - - -// detect blob download by createElement("a") -function detectDownloadByCreateAnchor() { - const createEle = document.createElement; - document.createElement = (el) => { - if (el !== 'a') return createEle.call(document, el); - const anchorEle = createEle.call(document, el); - - // use addEventListener to avoid overriding the original click event. - anchorEle.addEventListener('click', () => { - const url = anchorEle.href; - const filename = anchorEle.download || getFilenameFromUrl(url); - if (window.blobToUrlCaches.has(url)) { - downloadFromBlobUrl(url, filename); - // case: downoload from dataURL -> convert dataURL -> - } else if (url.startsWith('data:')) { - downladFromDataUri(url, filename); - } - }, true); - - return anchorEle; - }; -} - // Determine the language of the current system. function getSystemLanguage() { From c877c73528c26b0cfb8e411c769fa2b46b6ea30f Mon Sep 17 00:00:00 2001 From: jeasonnow Date: Wed, 26 Jul 2023 15:23:46 +0800 Subject: [PATCH 20/23] =?UTF-8?q?fix:=20=E5=A2=9E=E5=8A=A0=E9=92=88?= =?UTF-8?q?=E5=AF=B9=E5=8A=A8=E6=80=81=E5=88=9B=E5=BB=BA=20a=20=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=E8=B7=B3=E8=BD=AC=E5=85=B6=E4=BB=96=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E9=87=8D=E5=AE=9A=E5=90=91=E4=B8=8B=E8=BD=BD=E7=9A=84=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src-tauri/src/inject/event.js | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src-tauri/src/inject/event.js b/src-tauri/src/inject/event.js index 55622fd..71ecc13 100644 --- a/src-tauri/src/inject/event.js +++ b/src-tauri/src/inject/event.js @@ -134,7 +134,7 @@ function detectDownloadByCreateAnchor() { const anchorEle = createEle.call(document, el); // use addEventListener to avoid overriding the original click event. - anchorEle.addEventListener('click', () => { + anchorEle.addEventListener('click', (e) => { const url = anchorEle.href; const filename = anchorEle.download || getFilenameFromUrl(url); if (window.blobToUrlCaches.has(url)) { @@ -142,6 +142,8 @@ function detectDownloadByCreateAnchor() { // case: downoload from dataURL -> convert dataURL -> } else if (url.startsWith('data:')) { downladFromDataUri(url, filename); + } else { + handleExternalLink(e, url); } }, true); @@ -150,12 +152,6 @@ function detectDownloadByCreateAnchor() { } - domEl.addEventListener('mousedown', (e) => { - e.preventDefault(); - if (e.buttons === 1 && e.detail !== 2) { - appWindow.startDragging().then(); - } - }); domEl.addEventListener('touchstart', () => { appWindow.startDragging().then(); From bb5d964586be8fd8da667a2f00f266febd0df88f Mon Sep 17 00:00:00 2001 From: jeasonnow Date: Fri, 28 Jul 2023 14:18:57 +0800 Subject: [PATCH 21/23] fix: fs is undefined --- src-tauri/src/app/invoke.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src-tauri/src/app/invoke.rs b/src-tauri/src/app/invoke.rs index 2cf8c6f..5cf2f07 100644 --- a/src-tauri/src/app/invoke.rs +++ b/src-tauri/src/app/invoke.rs @@ -1,5 +1,5 @@ use crate::util::{check_file_or_append, get_download_message, show_toast, MessageType}; -use std::fs::File; +use std::fs::{self, File}; use std::io::Write; use tauri::api::http::{ClientBuilder, HttpRequestBuilder, ResponseType}; use tauri::{api, command, AppHandle, Manager, Window}; From 7e6d302fd0c33a877fce766bfb2fcec6386a4339 Mon Sep 17 00:00:00 2001 From: jeasonnow Date: Fri, 28 Jul 2023 17:44:43 +0800 Subject: [PATCH 22/23] style: fmt rust code --- .gitattributes | 1 + bin/cli.ts | 4 ++-- bin/defaults.ts | 5 ++--- bin/helpers/merge.ts | 2 +- src-tauri/src/app/window.rs | 2 +- src-tauri/src/inject/_INJECT_.js | 0 src-tauri/src/inject/custom.js | 2 ++ src-tauri/src/util.rs | 4 ++-- src-tauri/tauri.conf.json | 8 ++++---- src-tauri/tauri.macos.conf.json | 6 ++---- 10 files changed, 17 insertions(+), 17 deletions(-) delete mode 100644 src-tauri/src/inject/_INJECT_.js create mode 100644 src-tauri/src/inject/custom.js diff --git a/.gitattributes b/.gitattributes index cdd4590..ec23583 100644 --- a/.gitattributes +++ b/.gitattributes @@ -8,3 +8,4 @@ script/* linguist-vendored /icns2png.py linguist-vendored /rollup.config.js linguist-vendored src-tauri/src/inject/* linguist-vendored +src-tauri/src/.pake/* linguist-vendored \ No newline at end of file diff --git a/bin/cli.ts b/bin/cli.ts index e7ff5f6..5e4e856 100644 --- a/bin/cli.ts +++ b/bin/cli.ts @@ -38,8 +38,8 @@ program .option('--iter-copy-file', 'Copy files when URL is a local file', DEFAULT.iterCopyFile) .option('--multi-arch', 'Only for Mac, supports both Intel and M1', DEFAULT.multiArch) .option('--targets ', 'Only for Linux, option "deb" or "appimage"', DEFAULT.targets) - .option('--inject [injects...]', 'inject .js or .css for this app', DEFAULT.inject) - .option('--safe-domain [domains...]', 'domains that can call window.__TAURI__ and use ipc', DEFAULT.safeDomain) + .option('--inject [injects...]', 'Inject .js or .css for this app', DEFAULT.inject) + .option('--safe-domain [domains...]', 'Please enter the security domains that need to be configured', DEFAULT.safeDomain) .option('--debug', 'Debug mode', DEFAULT.debug) .version(packageJson.version, '-v, --version', 'Output the current version') .action(async (url: string, options: PakeCliOptions) => { diff --git a/bin/defaults.ts b/bin/defaults.ts index 1d2b6d6..23464d9 100644 --- a/bin/defaults.ts +++ b/bin/defaults.ts @@ -22,7 +22,6 @@ export const DEFAULT_PAKE_OPTIONS: PakeCliOptions = { // just for cli development export const DEFAULT_DEV_PAKE_OPTIONS: PakeCliOptions & {url: string} = { ...DEFAULT_PAKE_OPTIONS, - url: 'https://zbook.lol', - name: 'Zbook', - safeDomain: ['zbook.eu.org'] + url: 'https://weread.qq.com', + name: 'Weread', } \ No newline at end of file diff --git a/bin/helpers/merge.ts b/bin/helpers/merge.ts index 4f38e20..c7438aa 100644 --- a/bin/helpers/merge.ts +++ b/bin/helpers/merge.ts @@ -184,7 +184,7 @@ export async function mergeConfig(url: string, options: PakeAppOptions, tauriCon } tauriConf.tauri.systemTray.iconPath = trayIconPath; - const injectFilePath = path.join(npmDirectory, `src-tauri/src/inject/_INJECT_.js`); + const injectFilePath = path.join(npmDirectory, `src-tauri/src/inject/custom.js`); // inject js or css files if (inject?.length > 0) { if (!inject.every(item => item.endsWith('.css') || item.endsWith('.js'))) { diff --git a/src-tauri/src/app/window.rs b/src-tauri/src/app/window.rs index 83126ad..c8485db 100644 --- a/src-tauri/src/app/window.rs +++ b/src-tauri/src/app/window.rs @@ -30,7 +30,7 @@ pub fn get_window(app: &mut App, config: PakeConfig, _data_dir: PathBuf) -> Wind .initialization_script(include_str!("../inject/component.js")) .initialization_script(include_str!("../inject/event.js")) .initialization_script(include_str!("../inject/style.js")) - .initialization_script(include_str!("../inject/_INJECT_.js")); //Very annoying, otherwise dragging files to the window will not work. + .initialization_script(include_str!("../inject/custom.js")); //Very annoying, otherwise dragging files to the window will not work. #[cfg(target_os = "macos")] { diff --git a/src-tauri/src/inject/_INJECT_.js b/src-tauri/src/inject/_INJECT_.js deleted file mode 100644 index e69de29..0000000 diff --git a/src-tauri/src/inject/custom.js b/src-tauri/src/inject/custom.js new file mode 100644 index 0000000..9c01303 --- /dev/null +++ b/src-tauri/src/inject/custom.js @@ -0,0 +1,2 @@ +// This file is used to merge the injected external js and css files +// and you can also directly add script files that you want to attach to the application in this fil \ No newline at end of file diff --git a/src-tauri/src/util.rs b/src-tauri/src/util.rs index df2730c..4b82e87 100644 --- a/src-tauri/src/util.rs +++ b/src-tauri/src/util.rs @@ -5,8 +5,8 @@ use tauri::{api, Config, Window}; pub fn get_pake_config() -> (PakeConfig, Config) { #[cfg(feature = "cli-build")] - let pake_config: PakeConfig = - serde_json::from_str(include_str!("../.pake/pake.json")).expect("Failed to parse pake config"); + let pake_config: PakeConfig = serde_json::from_str(include_str!("../.pake/pake.json")) + .expect("Failed to parse pake config"); #[cfg(not(feature = "cli-build"))] let pake_config: PakeConfig = serde_json::from_str(include_str!("../pake.json")).expect("Failed to parse pake config"); diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index c4df1a4..306cb1f 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,4 +1,8 @@ { + "package": { + "productName": "WeRead", + "version": "1.0.0" + }, "tauri": { "security": { "csp": null, @@ -29,10 +33,6 @@ } } }, - "package": { - "productName": "WeRead", - "version": "1.0.0" - }, "build": { "withGlobalTauri": true, "devPath": "../dist", diff --git a/src-tauri/tauri.macos.conf.json b/src-tauri/tauri.macos.conf.json index 76cfbdd..e1d0328 100644 --- a/src-tauri/tauri.macos.conf.json +++ b/src-tauri/tauri.macos.conf.json @@ -1,10 +1,8 @@ { "tauri": { "bundle": { - "icon": [ - "icons/icon.icns" - ], - "identifier": "com.pake.5b8ae9", + "icon": ["icons/weread.icns"], + "identifier": "com.pake.weread", "active": true, "category": "DeveloperTool", "copyright": "", From 1de5960d47290b89c5a712eddd1b7b3c55dc23ad Mon Sep 17 00:00:00 2001 From: jeasonnow Date: Thu, 3 Aug 2023 16:04:13 +0800 Subject: [PATCH 23/23] =?UTF-8?q?fix:=20=E5=9C=A8=20ci-rust-check=20?= =?UTF-8?q?=E7=8E=AF=E8=8A=82=E5=8F=96=E6=B6=88=20cli-build=20features=20?= =?UTF-8?q?=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/rust-code-quality-check.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/rust-code-quality-check.yml b/.github/workflows/rust-code-quality-check.yml index 0236cf7..7af1d38 100644 --- a/.github/workflows/rust-code-quality-check.yml +++ b/.github/workflows/rust-code-quality-check.yml @@ -43,7 +43,7 @@ jobs: packages: libwebkit2gtk-4.0-dev build-essential curl wget libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev gnome-video-effects gnome-video-effects-extra version: 1.0 - name: Run unit & integration tests with nextest - run: cargo hack --feature-powerset nextest run + run: cargo hack --feature-powerset --exclude-features cli-build nextest run # - name: Run documentation tests with cargo test # run: cargo hack --feature-powerset test --doc @@ -70,7 +70,7 @@ jobs: packages: libwebkit2gtk-4.0-dev build-essential curl wget libssl-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev gnome-video-effects gnome-video-effects-extra version: 1.0 - name: Run all-features code quality checks - run: cargo hack --feature-powerset --no-dev-deps clippy + run: cargo hack --feature-powerset --exclude-features cli-build --no-dev-deps clippy - name: Run normal code quality check run: cargo clippy