From d62fb7408edccbb795d0842006699d629d3c1bd8 Mon Sep 17 00:00:00 2001 From: Simon Davies Date: Fri, 8 May 2026 11:24:20 +0100 Subject: [PATCH 01/15] =?UTF-8?q?feat:=20add=20execute=5Fbash=20tool=20?= =?UTF-8?q?=E2=80=94=20sandboxed=20bash=20interpreter=20via=20just-bash?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds a new execute_bash tool that runs bash commands inside the Hyperlight micro-VM using just-bash (pure TypeScript bash interpreter). Commands run in hardware-isolated QuickJS with no host process access. 40+ Unix commands available: ls, cat, grep, jq, sed, awk, sort, find, tree, diff, head, tail, wc, cut, tr, xargs, tee, cp, mkdir, touch, base64, md5sum, date, env vars, pipes, redirects, and more. Architecture: - just-bash bundled via esbuild with node: API stubs (1.4 MB) - Polyfills for URL, Buffer, process, AbortController, crypto, setTimeout - Auto-registered internal handler (sys-bash-runner) - Stateless: fresh Bash instance per call - Heap auto-expanded to 64 MB on first use - Rebuilds automatically as part of npm run build:modules Key design decisions: - Tool, not module: LLM calls execute_bash({command}) directly - No in-memory FS: all file ops go through host:fs-read/host:fs-write - curl requires fetch plugin enabled (actionable error if not) - Unsupported commands (rm, mv, python3, sqlite3) return clear errors - Command list in tool description for strong LLM guidance Signed-off-by: Simon Davies --- .gitignore | 2 +- Justfile | 4 + builtin-modules/bash.json | 11 + package-lock.json | 1595 ++++++++++++++++++++++-- package.json | 2 + scripts/bash-bundle/build-ha-bash.mjs | 21 + scripts/bash-bundle/build.mjs | 91 ++ scripts/bash-bundle/bzip-stub.mjs | 1 + scripts/bash-bundle/crypto-stub.mjs | 19 + scripts/bash-bundle/dns-stub.mjs | 8 + scripts/bash-bundle/entry.mjs | 4 + scripts/bash-bundle/fs-stub.mjs | 22 + scripts/bash-bundle/liblzma-stub.mjs | 1 + scripts/bash-bundle/node-path-stub.mjs | 48 + scripts/bash-bundle/turndown-stub.mjs | 5 + scripts/bash-bundle/url-stub.mjs | 7 + scripts/bash-bundle/worker-stub.mjs | 11 + scripts/bash-bundle/zlib-stub.mjs | 11 + scripts/bash-bundle/zstd-stub.mjs | 1 + scripts/build-modules.js | 15 + src/agent/index.ts | 217 ++++ 21 files changed, 1970 insertions(+), 126 deletions(-) create mode 100644 builtin-modules/bash.json create mode 100644 scripts/bash-bundle/build-ha-bash.mjs create mode 100644 scripts/bash-bundle/build.mjs create mode 100644 scripts/bash-bundle/bzip-stub.mjs create mode 100644 scripts/bash-bundle/crypto-stub.mjs create mode 100644 scripts/bash-bundle/dns-stub.mjs create mode 100644 scripts/bash-bundle/entry.mjs create mode 100644 scripts/bash-bundle/fs-stub.mjs create mode 100644 scripts/bash-bundle/liblzma-stub.mjs create mode 100644 scripts/bash-bundle/node-path-stub.mjs create mode 100644 scripts/bash-bundle/turndown-stub.mjs create mode 100644 scripts/bash-bundle/url-stub.mjs create mode 100644 scripts/bash-bundle/worker-stub.mjs create mode 100644 scripts/bash-bundle/zlib-stub.mjs create mode 100644 scripts/bash-bundle/zstd-stub.mjs diff --git a/.gitignore b/.gitignore index e384a9f..8eff0fb 100644 --- a/.gitignore +++ b/.gitignore @@ -52,4 +52,4 @@ plugins/shared/*.js plugins/plugin-schema-types.d.ts plugins/plugin-schema-types.js plugins/host-modules.d.ts -output-hyperagent**/** \ No newline at end of file +output-hyperagent**/**scripts/bash-bundle/_tmp_bundle.js diff --git a/Justfile b/Justfile index af309f0..6f77efb 100644 --- a/Justfile +++ b/Justfile @@ -148,6 +148,10 @@ setup: ensure-tools install build: install @echo "✅ Build complete — run 'just start' to launch the agent" +# Rebuild the ha:bash bundle from just-bash (only needed when just-bash updates) +build-bash: + node scripts/bash-bundle/build.mjs + # Build everything in release mode (hyperlight-js, guest runtime, NAPI addon) build-release: install-release @echo "✅ Release build complete — run 'just start-release' to launch" diff --git a/builtin-modules/bash.json b/builtin-modules/bash.json new file mode 100644 index 0000000..d8c3440 --- /dev/null +++ b/builtin-modules/bash.json @@ -0,0 +1,11 @@ +{ + "name": "bash", + "description": "Sandboxed bash interpreter powered by just-bash. Provides 40+ Unix commands (ls, grep, jq, curl, sed, awk, etc.) running entirely in JavaScript inside the Hyperlight micro-VM.", + "author": "system", + "mutable": false, + "type": "script", + "sourceHash": "sha256:b93c50f5137c5d1e", + "hints": { + "overview": "Pure-JS bash interpreter for the sandbox. Used internally by the execute_bash tool — not intended for direct import in handlers." + } +} diff --git a/package-lock.json b/package-lock.json index 5110cdf..7238d41 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,6 +24,8 @@ "@types/node": "^25.3.3", "@types/pngjs": "^6.0.5", "@xarsh/ooxml-validator": "^0.1.10", + "esbuild": "^0.28.0", + "just-bash": "^2.14.4", "pdf-parse": "^2.4.5", "pixelmatch": "^7.1.0", "pngjs": "^7.0.0", @@ -86,6 +88,17 @@ "node": ">=20" } }, + "node_modules/@borewit/text-codec": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@borewit/text-codec/-/text-codec-0.2.2.tgz", + "integrity": "sha512-DDaRehssg1aNrH4+2hnj1B7vnUGEjU6OIlyRdkMd0aUdIUvKXrJfXsy8LVtXAy7DRvYVluWbMspsRhz2lcW0mQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, "node_modules/@emnapi/core": { "version": "1.9.2", "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.9.2.tgz", @@ -119,9 +132,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz", - "integrity": "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz", + "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==", "cpu": [ "ppc64" ], @@ -136,9 +149,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.3.tgz", - "integrity": "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz", + "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==", "cpu": [ "arm" ], @@ -153,9 +166,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.3.tgz", - "integrity": "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz", + "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==", "cpu": [ "arm64" ], @@ -170,9 +183,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.3.tgz", - "integrity": "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz", + "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==", "cpu": [ "x64" ], @@ -187,9 +200,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.3.tgz", - "integrity": "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz", + "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==", "cpu": [ "arm64" ], @@ -204,9 +217,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.3.tgz", - "integrity": "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz", + "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==", "cpu": [ "x64" ], @@ -221,9 +234,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.3.tgz", - "integrity": "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz", + "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==", "cpu": [ "arm64" ], @@ -238,9 +251,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.3.tgz", - "integrity": "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz", + "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==", "cpu": [ "x64" ], @@ -255,9 +268,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.3.tgz", - "integrity": "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz", + "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==", "cpu": [ "arm" ], @@ -272,9 +285,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.3.tgz", - "integrity": "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz", + "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==", "cpu": [ "arm64" ], @@ -289,9 +302,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.3.tgz", - "integrity": "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz", + "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==", "cpu": [ "ia32" ], @@ -306,9 +319,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.3.tgz", - "integrity": "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz", + "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==", "cpu": [ "loong64" ], @@ -323,9 +336,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.3.tgz", - "integrity": "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz", + "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==", "cpu": [ "mips64el" ], @@ -340,9 +353,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.3.tgz", - "integrity": "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz", + "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==", "cpu": [ "ppc64" ], @@ -357,9 +370,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.3.tgz", - "integrity": "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz", + "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==", "cpu": [ "riscv64" ], @@ -374,9 +387,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.3.tgz", - "integrity": "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz", + "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==", "cpu": [ "s390x" ], @@ -391,7 +404,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.27.3", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz", + "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==", "cpu": [ "x64" ], @@ -406,9 +421,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.3.tgz", - "integrity": "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz", + "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==", "cpu": [ "arm64" ], @@ -423,9 +438,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.3.tgz", - "integrity": "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz", + "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==", "cpu": [ "x64" ], @@ -440,9 +455,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.3.tgz", - "integrity": "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz", + "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==", "cpu": [ "arm64" ], @@ -457,9 +472,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.3.tgz", - "integrity": "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz", + "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==", "cpu": [ "x64" ], @@ -474,9 +489,9 @@ } }, "node_modules/@esbuild/openharmony-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.3.tgz", - "integrity": "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz", + "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==", "cpu": [ "arm64" ], @@ -491,9 +506,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.3.tgz", - "integrity": "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz", + "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==", "cpu": [ "x64" ], @@ -508,9 +523,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.3.tgz", - "integrity": "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz", + "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==", "cpu": [ "arm64" ], @@ -525,9 +540,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.3.tgz", - "integrity": "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz", + "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==", "cpu": [ "ia32" ], @@ -542,9 +557,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.27.3", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.3.tgz", - "integrity": "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA==", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz", + "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==", "cpu": [ "x64" ], @@ -1174,6 +1189,53 @@ } } }, + "node_modules/@jitl/quickjs-ffi-types": { + "version": "0.32.0", + "resolved": "https://registry.npmjs.org/@jitl/quickjs-ffi-types/-/quickjs-ffi-types-0.32.0.tgz", + "integrity": "sha512-v9T+GQpmk43VDJ7d72sf0Nexhk+ArvtUihW27dy7lqAl0zBObFKtSBBIm5RBjwIhE8VwsPPm9PNuvPvNqLWUEg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jitl/quickjs-wasmfile-debug-asyncify": { + "version": "0.32.0", + "resolved": "https://registry.npmjs.org/@jitl/quickjs-wasmfile-debug-asyncify/-/quickjs-wasmfile-debug-asyncify-0.32.0.tgz", + "integrity": "sha512-EX8zbXwGqCgAE764M+qvkHtyXDi/FUoMBea0JnES7vCM3P7a2+EOZOjGv85wtZ2sJhI1oJ+nekmqpOODFDY+hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jitl/quickjs-ffi-types": "0.32.0" + } + }, + "node_modules/@jitl/quickjs-wasmfile-debug-sync": { + "version": "0.32.0", + "resolved": "https://registry.npmjs.org/@jitl/quickjs-wasmfile-debug-sync/-/quickjs-wasmfile-debug-sync-0.32.0.tgz", + "integrity": "sha512-LeYWrPGC1uNCTBWvibo3ZLJj0CSVNYUXvJpXMCmuQ5Sap2cCACc3uvGvYV4homHHBAzfw5akoTqMMS4YFRtw+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jitl/quickjs-ffi-types": "0.32.0" + } + }, + "node_modules/@jitl/quickjs-wasmfile-release-asyncify": { + "version": "0.32.0", + "resolved": "https://registry.npmjs.org/@jitl/quickjs-wasmfile-release-asyncify/-/quickjs-wasmfile-release-asyncify-0.32.0.tgz", + "integrity": "sha512-3oSwPfja12ICz4aIblB58cuY8JlEq5Txt8Cut4VLo+LH47QN+mzCnSgnbB03hWzg1LBcc+VyyI9UOag7a1NF+Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jitl/quickjs-ffi-types": "0.32.0" + } + }, + "node_modules/@jitl/quickjs-wasmfile-release-sync": { + "version": "0.32.0", + "resolved": "https://registry.npmjs.org/@jitl/quickjs-wasmfile-release-sync/-/quickjs-wasmfile-release-sync-0.32.0.tgz", + "integrity": "sha512-BKNDI/TPBfGlLNGYpLrhcDGXmIk4xHm4MRAisOBnOzpXVn9HZWsfmMAc9WMBrAHjvvds6HOikKeaOBKdPdpVrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jitl/quickjs-ffi-types": "0.32.0" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.5", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", @@ -1181,6 +1243,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@mixmark-io/domino": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@mixmark-io/domino/-/domino-2.2.0.tgz", + "integrity": "sha512-Y28PR25bHXUg88kCV7nivXrP2Nj2RueZ3/l/jdx6J9f8J4nsEGcgX0Qe6lt7Pa+J79+kPiJU3LguR6O/6zrLOw==", + "dev": true, + "license": "BSD-2-Clause" + }, "node_modules/@modelcontextprotocol/sdk": { "version": "1.29.0", "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.29.0.tgz", @@ -1243,6 +1312,22 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "license": "MIT" }, + "node_modules/@mongodb-js/zstd": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@mongodb-js/zstd/-/zstd-7.0.0.tgz", + "integrity": "sha512-mQ2s0pYYiav+tzCDR05Zptem8Ey2v8s11lri5RKGhTtL4COVCvVCk5vtyRYNT+9L8qSfyOqqefF9UtnW8mC5jA==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "node-addon-api": "^8.5.0", + "prebuild-install": "^7.1.3" + }, + "engines": { + "node": ">= 20.19.0" + } + }, "node_modules/@napi-rs/canvas": { "version": "0.1.80", "dev": true, @@ -2144,6 +2229,31 @@ "dev": true, "license": "MIT" }, + "node_modules/@tokenizer/inflate": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@tokenizer/inflate/-/inflate-0.4.1.tgz", + "integrity": "sha512-2mAv+8pkG6GIZiF1kNg1jAjh27IDxEPKwdGul3snfztFerfPGI1LjDezZp3i7BElXompqEtPmoPx6c2wgtWsOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "debug": "^4.4.3", + "token-types": "^6.1.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/@tokenizer/token": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.3.0.tgz", + "integrity": "sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==", + "dev": true, + "license": "MIT" + }, "node_modules/@tybys/wasm-util": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", @@ -2498,11 +2608,46 @@ "node": "18 || 20 || >=22" } }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true + }, "node_modules/before-after-hook": { "version": "4.0.0", "dev": true, "license": "Apache-2.0" }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, "node_modules/body-parser": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz", @@ -2558,6 +2703,32 @@ "node": "18 || 20 || >=22" } }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "node_modules/buffer-equal-constant-time": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", @@ -2637,6 +2808,14 @@ "dev": true, "license": "MIT" }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true, + "license": "ISC", + "optional": true + }, "node_modules/cli-boxes": { "version": "3.0.0", "license": "MIT", @@ -2674,6 +2853,16 @@ "dev": true, "license": "MIT" }, + "node_modules/commander": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", + "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/content-disposition": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz", @@ -2765,6 +2954,34 @@ } } }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/deep-is": { "version": "0.1.4", "dev": true, @@ -2789,6 +3006,16 @@ "node": ">=8" } }, + "node_modules/diff": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/diff/-/diff-8.0.4.tgz", + "integrity": "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/dunder-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", @@ -2844,6 +3071,17 @@ "node": ">= 0.8" } }, + "node_modules/end-of-stream": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", @@ -2889,7 +3127,9 @@ ] }, "node_modules/esbuild": { - "version": "0.27.3", + "version": "0.28.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz", + "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -2900,32 +3140,32 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.27.3", - "@esbuild/android-arm": "0.27.3", - "@esbuild/android-arm64": "0.27.3", - "@esbuild/android-x64": "0.27.3", - "@esbuild/darwin-arm64": "0.27.3", - "@esbuild/darwin-x64": "0.27.3", - "@esbuild/freebsd-arm64": "0.27.3", - "@esbuild/freebsd-x64": "0.27.3", - "@esbuild/linux-arm": "0.27.3", - "@esbuild/linux-arm64": "0.27.3", - "@esbuild/linux-ia32": "0.27.3", - "@esbuild/linux-loong64": "0.27.3", - "@esbuild/linux-mips64el": "0.27.3", - "@esbuild/linux-ppc64": "0.27.3", - "@esbuild/linux-riscv64": "0.27.3", - "@esbuild/linux-s390x": "0.27.3", - "@esbuild/linux-x64": "0.27.3", - "@esbuild/netbsd-arm64": "0.27.3", - "@esbuild/netbsd-x64": "0.27.3", - "@esbuild/openbsd-arm64": "0.27.3", - "@esbuild/openbsd-x64": "0.27.3", - "@esbuild/openharmony-arm64": "0.27.3", - "@esbuild/sunos-x64": "0.27.3", - "@esbuild/win32-arm64": "0.27.3", - "@esbuild/win32-ia32": "0.27.3", - "@esbuild/win32-x64": "0.27.3" + "@esbuild/aix-ppc64": "0.28.0", + "@esbuild/android-arm": "0.28.0", + "@esbuild/android-arm64": "0.28.0", + "@esbuild/android-x64": "0.28.0", + "@esbuild/darwin-arm64": "0.28.0", + "@esbuild/darwin-x64": "0.28.0", + "@esbuild/freebsd-arm64": "0.28.0", + "@esbuild/freebsd-x64": "0.28.0", + "@esbuild/linux-arm": "0.28.0", + "@esbuild/linux-arm64": "0.28.0", + "@esbuild/linux-ia32": "0.28.0", + "@esbuild/linux-loong64": "0.28.0", + "@esbuild/linux-mips64el": "0.28.0", + "@esbuild/linux-ppc64": "0.28.0", + "@esbuild/linux-riscv64": "0.28.0", + "@esbuild/linux-s390x": "0.28.0", + "@esbuild/linux-x64": "0.28.0", + "@esbuild/netbsd-arm64": "0.28.0", + "@esbuild/netbsd-x64": "0.28.0", + "@esbuild/openbsd-arm64": "0.28.0", + "@esbuild/openbsd-x64": "0.28.0", + "@esbuild/openharmony-arm64": "0.28.0", + "@esbuild/sunos-x64": "0.28.0", + "@esbuild/win32-arm64": "0.28.0", + "@esbuild/win32-ia32": "0.28.0", + "@esbuild/win32-x64": "0.28.0" } }, "node_modules/escape-html": { @@ -3121,6 +3361,17 @@ "node": ">=18.0.0" } }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "dev": true, + "license": "(MIT OR WTFPL)", + "optional": true, + "engines": { + "node": ">=6" + } + }, "node_modules/expect-type": { "version": "1.3.0", "dev": true, @@ -3256,6 +3507,25 @@ "fast-string-width": "^3.0.2" } }, + "node_modules/fast-xml-parser": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.3.3.tgz", + "integrity": "sha512-2O3dkPAAC6JavuMm8+4+pgTk+5hoAs+CjZ+sWcQLkX9+/tHRuTkQh/Oaifr8qDmZ8iEHb771Ea6G8CdwkrgvYA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "dependencies": { + "strnum": "^2.1.0" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, "node_modules/fdir": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", @@ -3285,6 +3555,25 @@ "node": ">=16.0.0" } }, + "node_modules/file-type": { + "version": "21.3.4", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-21.3.4.tgz", + "integrity": "sha512-Ievi/yy8DS3ygGvT47PjSfdFoX+2isQueoYP1cntFW1JLYAuS4GD7NUPGg4zv2iZfV52uDyk5w5Z0TdpRS6Q1g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tokenizer/inflate": "^0.4.1", + "strtok3": "^10.3.4", + "token-types": "^6.1.1", + "uint8array-extras": "^1.4.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sindresorhus/file-type?sponsor=1" + } + }, "node_modules/finalhandler": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", @@ -3356,6 +3645,14 @@ "node": ">= 0.8" } }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true, + "license": "MIT", + "optional": true + }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -3438,6 +3735,14 @@ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" } }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "dev": true, + "license": "MIT", + "optional": true + }, "node_modules/glob-parent": { "version": "6.0.2", "dev": true, @@ -3532,6 +3837,27 @@ "url": "https://opencollective.com/express" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/ignore": { "version": "5.3.2", "dev": true, @@ -3554,6 +3880,16 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "license": "ISC" }, + "node_modules/ini": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-6.0.0.tgz", + "integrity": "sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==", + "dev": true, + "license": "ISC", + "engines": { + "node": "^20.17.0 || >=22.9.0" + } + }, "node_modules/ip-address": { "version": "10.2.0", "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.2.0.tgz", @@ -3676,6 +4012,38 @@ "npm": ">=6" } }, + "node_modules/just-bash": { + "version": "2.14.4", + "resolved": "https://registry.npmjs.org/just-bash/-/just-bash-2.14.4.tgz", + "integrity": "sha512-d8PR7XX4e6rRQ9CLWkllotV+5EF/hOGwR7/dQtr8lGHNO/HTjubpBbdoavGUAc70YwxpYjPxdrJ5JCAqEs33jg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "diff": "^8.0.2", + "fast-xml-parser": "5.3.3", + "file-type": "^21.2.0", + "ini": "^6.0.0", + "minimatch": "^10.1.1", + "modern-tar": "^0.7.3", + "papaparse": "^5.5.3", + "quickjs-emscripten": "^0.32.0", + "re2js": "^1.2.1", + "seek-bzip": "^2.0.0", + "smol-toml": "^1.6.0", + "sprintf-js": "^1.1.3", + "sql.js": "^1.13.0", + "turndown": "^7.2.2", + "yaml": "^2.8.2" + }, + "bin": { + "just-bash": "dist/bin/just-bash.js", + "just-bash-shell": "dist/bin/shell/shell.js" + }, + "optionalDependencies": { + "@mongodb-js/zstd": "^7.0.0", + "node-liblzma": "^2.0.3" + } + }, "node_modules/jwa": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz", @@ -4099,6 +4467,20 @@ "url": "https://opencollective.com/express" } }, + "node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/minimatch": { "version": "10.2.4", "dev": true, @@ -4113,6 +4495,35 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "license": "MIT", + "optional": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true, + "license": "MIT", + "optional": true + }, + "node_modules/modern-tar": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/modern-tar/-/modern-tar-0.7.6.tgz", + "integrity": "sha512-sweCIVXzx1aIGTCdzcMlSZt1h8k5Tmk08VNAuRk3IU28XamGiOH5ypi11g6De2CH7PhYqSSnGy2A/EFhbWnVKg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/ms": { "version": "2.1.3", "license": "MIT" @@ -4144,6 +4555,14 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/napi-build-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz", + "integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==", + "dev": true, + "license": "MIT", + "optional": true + }, "node_modules/natural-compare": { "version": "1.4.0", "dev": true, @@ -4158,10 +4577,71 @@ "node": ">= 0.6" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "node_modules/node-abi": { + "version": "3.92.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.92.0.tgz", + "integrity": "sha512-KdHvFWZjEKDf0cakgFjebl371GPsISX2oZHcuyKqM7DtogIsHrqKeLTo8wBHxaXRAQlY2PsPlZmfo+9ZCxEREQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-addon-api": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-8.7.0.tgz", + "integrity": "sha512-9MdFxmkKaOYVTV+XVRG8ArDwwQ77XIgIPyKASB1k3JPq3M8fGQQQE3YpMOrKm6g//Ktx8ivZr8xo1Qmtqub+GA==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": "^18 || ^20 || >= 21" + } + }, + "node_modules/node-gyp-build": { + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", + "dev": true, + "license": "MIT", + "optional": true, + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-liblzma": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/node-liblzma/-/node-liblzma-2.2.0.tgz", + "integrity": "sha512-s0KzNOWwOJJgPG6wxg6cKohnAl9Wk/oW1KrQaVzJBjQwVcUGPQCzpR46Ximygjqj/3KhOrtJXnYMp/xYAXp75g==", + "dev": true, + "hasInstallScript": true, + "license": "LGPL-3.0", + "optional": true, + "dependencies": { + "node-addon-api": "^8.5.0", + "node-gyp-build": "^4.8.4" + }, + "bin": { + "nxz": "lib/cli/nxz.js" + }, + "engines": { + "node": ">=16.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/oorabona" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "license": "MIT", "engines": { "node": ">=0.10.0" @@ -4253,6 +4733,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/papaparse": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.5.3.tgz", + "integrity": "sha512-5QvjGxYVjxO59MGU2lHVYpRWBBtKHnlIAcSe1uNFCkkptUh63NFRj0FJQm7nR67puEruUci/ZkjmEFrjCAyP4A==", + "dev": true, + "license": "MIT" + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -4403,6 +4890,35 @@ "node": "^10 || ^12 || >=14" } }, + "node_modules/prebuild-install": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz", + "integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==", + "deprecated": "No longer maintained. Please contact the author of the relevant native addon; alternatives are available.", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^2.0.0", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "dev": true, @@ -4438,6 +4954,18 @@ "node": ">= 0.10" } }, + "node_modules/pump": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.4.tgz", + "integrity": "sha512-VS7sjc6KR7e1ukRFhQSY5LM2uBWAUPiOPa/A3mkKmiMwSmRFUITt0xuj+/lesgnCv+dPIEYlkzrcyXgquIHMcA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "node_modules/punycode": { "version": "2.3.1", "dev": true, @@ -4461,6 +4989,33 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/quickjs-emscripten": { + "version": "0.32.0", + "resolved": "https://registry.npmjs.org/quickjs-emscripten/-/quickjs-emscripten-0.32.0.tgz", + "integrity": "sha512-So0Sqw869y/S2oE3Nuc0uT3Dhqgvsj8FSrwBdsuTosVsG8ME5/OcudU1GxsrIFdFABgy17GHnTVO9TYV/bLQcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jitl/quickjs-wasmfile-debug-asyncify": "0.32.0", + "@jitl/quickjs-wasmfile-debug-sync": "0.32.0", + "@jitl/quickjs-wasmfile-release-asyncify": "0.32.0", + "@jitl/quickjs-wasmfile-release-sync": "0.32.0", + "quickjs-emscripten-core": "0.32.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/quickjs-emscripten-core": { + "version": "0.32.0", + "resolved": "https://registry.npmjs.org/quickjs-emscripten-core/-/quickjs-emscripten-core-0.32.0.tgz", + "integrity": "sha512-QFnPfjFey8EqknSrSxe1hZrf1/8z7/6s1QzGOmKo6++02r7QRRX7ZoyNaZh7JuVjWsVW87KnQrbZqnHkOAzUyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jitl/quickjs-ffi-types": "0.32.0" + } + }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -4485,6 +5040,54 @@ "node": ">= 0.10" } }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "license": "(BSD-2-Clause OR MIT OR Apache-2.0)", + "optional": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true, + "license": "ISC", + "optional": true + }, + "node_modules/re2js": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/re2js/-/re2js-1.3.3.tgz", + "integrity": "sha512-s/I5zEAo79SUK0Qw4dpZKpiMwbQ6Gz0KU2NRr7eaO4x/p2g7Vvmn3hdeXDg8VsaUjfj/ora+e9oi27LX/C9+mw==", + "dev": true, + "license": "MIT" + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", @@ -4576,6 +5179,20 @@ "version": "2.1.2", "license": "MIT" }, + "node_modules/seek-bzip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-2.0.0.tgz", + "integrity": "sha512-SMguiTnYrhpLdk3PwfzHeotrcwi8bNV4iemL9tx9poR/yeaMYwB9VzR1w7b57DuWpuqR8n6oZboi0hj3AxZxQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "commander": "^6.0.0" + }, + "bin": { + "seek-bunzip": "bin/seek-bunzip", + "seek-table": "bin/seek-bzip-table" + } + }, "node_modules/semver": { "version": "7.7.4", "license": "ISC", @@ -4742,6 +5359,68 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true + }, + "node_modules/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "optional": true, + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/smol-toml": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.6.1.tgz", + "integrity": "sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 18" + }, + "funding": { + "url": "https://github.com/sponsors/cyyynthia" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -4752,6 +5431,20 @@ "node": ">=0.10.0" } }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/sql.js": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/sql.js/-/sql.js-1.14.1.tgz", + "integrity": "sha512-gcj8zBWU5cFsi9WUP+4bFNXAyF1iRpA3LLyS/DP5xlrNzGmPIizUeBggKa8DbDwdqaKwUcTEnChtd2grWo/x/A==", + "dev": true, + "license": "MIT" + }, "node_modules/stackback": { "version": "0.0.2", "dev": true, @@ -4771,6 +5464,17 @@ "dev": true, "license": "MIT" }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, "node_modules/string-width": { "version": "7.2.0", "license": "MIT", @@ -4799,6 +5503,79 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strnum": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.3.0.tgz", + "integrity": "sha512-ums3KNd42PGyx5xaoVTO1mjU1bH3NpY4vsrVlnv9PNGqQj8wd7rJ6nEypLrJ7z5vxK5RP0yMLo6J/Gsm62DI5Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT" + }, + "node_modules/strtok3": { + "version": "10.3.5", + "resolved": "https://registry.npmjs.org/strtok3/-/strtok3-10.3.5.tgz", + "integrity": "sha512-ki4hZQfh5rX0QDLLkOCj+h+CVNkqmp/CMf8v8kZpkNVK6jGQooMytqzLZYUVYIZcFZ6yDB70EfD8POcFXiF5oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tokenizer/token": "^0.3.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, + "node_modules/tar-fs": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.4.tgz", + "integrity": "sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/tinybench": { "version": "2.9.0", "dev": true, @@ -4848,6 +5625,25 @@ "node": ">=0.6" } }, + "node_modules/token-types": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/token-types/-/token-types-6.1.2.tgz", + "integrity": "sha512-dRXchy+C0IgK8WPC6xvCHFRIWYUbqqdEIKPaKo/AcTUNzwLTK6AH7RjdLWsEZcAN/TBdtfUw3PYEgPr5VPr6ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@borewit/text-codec": "^0.2.1", + "@tokenizer/token": "^0.3.0", + "ieee754": "^1.2.1" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Borewit" + } + }, "node_modules/tslib": { "version": "2.8.1", "dev": true, @@ -4872,32 +5668,544 @@ "fsevents": "~2.3.3" } }, - "node_modules/typanion": { - "version": "3.14.0", + "node_modules/tsx/node_modules/@esbuild/aix-ppc64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.7.tgz", + "integrity": "sha512-EKX3Qwmhz1eMdEJokhALr0YiD0lhQNwDqkPYyPhiSwKrh7/4KRjQc04sZ8db+5DVVnZ1LmbNDI1uAMPEUBnQPg==", + "cpu": [ + "ppc64" + ], "dev": true, "license": "MIT", - "workspaces": [ - "website" - ] + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } }, - "node_modules/type-check": { - "version": "0.4.0", + "node_modules/tsx/node_modules/@esbuild/android-arm": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.7.tgz", + "integrity": "sha512-jbPXvB4Yj2yBV7HUfE2KHe4GJX51QplCN1pGbYjvsyCZbQmies29EoJbkEc+vYuU5o45AfQn37vZlyXy4YJ8RQ==", + "cpu": [ + "arm" + ], "dev": true, "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, + "optional": true, + "os": [ + "android" + ], "engines": { - "node": ">= 0.8.0" + "node": ">=18" } }, - "node_modules/type-fest": { - "version": "4.41.0", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=16" - }, - "funding": { + "node_modules/tsx/node_modules/@esbuild/android-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.7.tgz", + "integrity": "sha512-62dPZHpIXzvChfvfLJow3q5dDtiNMkwiRzPylSCfriLvZeq0a1bWChrGx/BbUbPwOrsWKMn8idSllklzBy+dgQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/android-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.7.tgz", + "integrity": "sha512-x5VpMODneVDb70PYV2VQOmIUUiBtY3D3mPBG8NxVk5CogneYhkR7MmM3yR/uMdITLrC1ml/NV1rj4bMJuy9MCg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.7.tgz", + "integrity": "sha512-5lckdqeuBPlKUwvoCXIgI2D9/ABmPq3Rdp7IfL70393YgaASt7tbju3Ac+ePVi3KDH6N2RqePfHnXkaDtY9fkw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/darwin-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.7.tgz", + "integrity": "sha512-rYnXrKcXuT7Z+WL5K980jVFdvVKhCHhUwid+dDYQpH+qu+TefcomiMAJpIiC2EM3Rjtq0sO3StMV/+3w3MyyqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.7.tgz", + "integrity": "sha512-B48PqeCsEgOtzME2GbNM2roU29AMTuOIN91dsMO30t+Ydis3z/3Ngoj5hhnsOSSwNzS+6JppqWsuhTp6E82l2w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/freebsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.7.tgz", + "integrity": "sha512-jOBDK5XEjA4m5IJK3bpAQF9/Lelu/Z9ZcdhTRLf4cajlB+8VEhFFRjWgfy3M1O4rO2GQ/b2dLwCUGpiF/eATNQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.7.tgz", + "integrity": "sha512-RkT/YXYBTSULo3+af8Ib0ykH8u2MBh57o7q/DAs3lTJlyVQkgQvlrPTnjIzzRPQyavxtPtfg0EopvDyIt0j1rA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.7.tgz", + "integrity": "sha512-RZPHBoxXuNnPQO9rvjh5jdkRmVizktkT7TCDkDmQ0W2SwHInKCAV95GRuvdSvA7w4VMwfCjUiPwDi0ZO6Nfe9A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ia32": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.7.tgz", + "integrity": "sha512-GA48aKNkyQDbd3KtkplYWT102C5sn/EZTY4XROkxONgruHPU72l+gW+FfF8tf2cFjeHaRbWpOYa/uRBz/Xq1Pg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-loong64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.7.tgz", + "integrity": "sha512-a4POruNM2oWsD4WKvBSEKGIiWQF8fZOAsycHOt6JBpZ+JN2n2JH9WAv56SOyu9X5IqAjqSIPTaJkqN8F7XOQ5Q==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-mips64el": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.7.tgz", + "integrity": "sha512-KabT5I6StirGfIz0FMgl1I+R1H73Gp0ofL9A3nG3i/cYFJzKHhouBV5VWK1CSgKvVaG4q1RNpCTR2LuTVB3fIw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-ppc64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.7.tgz", + "integrity": "sha512-gRsL4x6wsGHGRqhtI+ifpN/vpOFTQtnbsupUF5R5YTAg+y/lKelYR1hXbnBdzDjGbMYjVJLJTd2OFmMewAgwlQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-riscv64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.7.tgz", + "integrity": "sha512-hL25LbxO1QOngGzu2U5xeXtxXcW+/GvMN3ejANqXkxZ/opySAZMrc+9LY/WyjAan41unrR3YrmtTsUpwT66InQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-s390x": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.7.tgz", + "integrity": "sha512-2k8go8Ycu1Kb46vEelhu1vqEP+UeRVj2zY1pSuPdgvbd5ykAw82Lrro28vXUrRmzEsUV0NzCf54yARIK8r0fdw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.7.tgz", + "integrity": "sha512-hzznmADPt+OmsYzw1EE33ccA+HPdIqiCRq7cQeL1Jlq2gb1+OyWBkMCrYGBJ+sxVzve2ZJEVeePbLM2iEIZSxA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.7.tgz", + "integrity": "sha512-b6pqtrQdigZBwZxAn1UpazEisvwaIDvdbMbmrly7cDTMFnw/+3lVxxCTGOrkPVnsYIosJJXAsILG9XcQS+Yu6w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/netbsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.7.tgz", + "integrity": "sha512-OfatkLojr6U+WN5EDYuoQhtM+1xco+/6FSzJJnuWiUw5eVcicbyK3dq5EeV/QHT1uy6GoDhGbFpprUiHUYggrw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.7.tgz", + "integrity": "sha512-AFuojMQTxAz75Fo8idVcqoQWEHIXFRbOc1TrVcFSgCZtQfSdc1RXgB3tjOn/krRHENUB4j00bfGjyl2mJrU37A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/openbsd-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.7.tgz", + "integrity": "sha512-+A1NJmfM8WNDv5CLVQYJ5PshuRm/4cI6WMZRg1by1GwPIQPCTs1GLEUHwiiQGT5zDdyLiRM/l1G0Pv54gvtKIg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.7.tgz", + "integrity": "sha512-+KrvYb/C8zA9CU/g0sR6w2RBw7IGc5J2BPnc3dYc5VJxHCSF1yNMxTV5LQ7GuKteQXZtspjFbiuW5/dOj7H4Yw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/sunos-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.7.tgz", + "integrity": "sha512-ikktIhFBzQNt/QDyOL580ti9+5mL/YZeUPKU2ivGtGjdTYoqz6jObj6nOMfhASpS4GU4Q/Clh1QtxWAvcYKamA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-arm64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.7.tgz", + "integrity": "sha512-7yRhbHvPqSpRUV7Q20VuDwbjW5kIMwTHpptuUzV+AA46kiPze5Z7qgt6CLCK3pWFrHeNfDd1VKgyP4O+ng17CA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-ia32": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.7.tgz", + "integrity": "sha512-SmwKXe6VHIyZYbBLJrhOoCJRB/Z1tckzmgTLfFYOfpMAx63BJEaL9ExI8x7v0oAO3Zh6D/Oi1gVxEYr5oUCFhw==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/@esbuild/win32-x64": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.7.tgz", + "integrity": "sha512-56hiAJPhwQ1R4i+21FVF7V8kSD5zZTdHcVuRFMW0hn753vVfQN8xlx4uOPT4xoGH0Z/oVATuR82AiqSTDIpaHg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/tsx/node_modules/esbuild": { + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.7.tgz", + "integrity": "sha512-IxpibTjyVnmrIQo5aqNpCgoACA/dTKLTlhMHihVHhdkxKyPO1uBBthumT0rdHmcsk9uMonIWS0m4FljWzILh3w==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.7", + "@esbuild/android-arm": "0.27.7", + "@esbuild/android-arm64": "0.27.7", + "@esbuild/android-x64": "0.27.7", + "@esbuild/darwin-arm64": "0.27.7", + "@esbuild/darwin-x64": "0.27.7", + "@esbuild/freebsd-arm64": "0.27.7", + "@esbuild/freebsd-x64": "0.27.7", + "@esbuild/linux-arm": "0.27.7", + "@esbuild/linux-arm64": "0.27.7", + "@esbuild/linux-ia32": "0.27.7", + "@esbuild/linux-loong64": "0.27.7", + "@esbuild/linux-mips64el": "0.27.7", + "@esbuild/linux-ppc64": "0.27.7", + "@esbuild/linux-riscv64": "0.27.7", + "@esbuild/linux-s390x": "0.27.7", + "@esbuild/linux-x64": "0.27.7", + "@esbuild/netbsd-arm64": "0.27.7", + "@esbuild/netbsd-x64": "0.27.7", + "@esbuild/openbsd-arm64": "0.27.7", + "@esbuild/openbsd-x64": "0.27.7", + "@esbuild/openharmony-arm64": "0.27.7", + "@esbuild/sunos-x64": "0.27.7", + "@esbuild/win32-arm64": "0.27.7", + "@esbuild/win32-ia32": "0.27.7", + "@esbuild/win32-x64": "0.27.7" + } + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/turndown": { + "version": "7.2.4", + "resolved": "https://registry.npmjs.org/turndown/-/turndown-7.2.4.tgz", + "integrity": "sha512-I8yFsfRzmzK0WV1pNNOA4A7y4RDfFxPRxb3t+e3ui14qSGOxGtiSP6GjeX+Y6CHb7HYaFj7ECUD7VE5kQMZWGQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mixmark-io/domino": "^2.2.0" + }, + "engines": { + "node": ">=18", + "npm": ">=9" + } + }, + "node_modules/typanion": { + "version": "3.14.0", + "dev": true, + "license": "MIT", + "workspaces": [ + "website" + ] + }, + "node_modules/type-check": { + "version": "0.4.0", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "4.41.0", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, @@ -4927,6 +6235,19 @@ "node": ">=14.17" } }, + "node_modules/uint8array-extras": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/uint8array-extras/-/uint8array-extras-1.5.0.tgz", + "integrity": "sha512-rvKSBiC5zqCCiDZ9kAOszZcDvdAHwwIKJG33Ykj43OKcWsnmcBRL09YTU4nOeHZ8Y2a7l1MgTd08SBe9A8Qj6A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/undici-types": { "version": "7.19.2", "dev": true, @@ -4954,6 +6275,14 @@ "punycode": "^2.1.0" } }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true, + "license": "MIT", + "optional": true + }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -5201,6 +6530,22 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "license": "ISC" }, + "node_modules/yaml": { + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.4.tgz", + "integrity": "sha512-ml/JPOj9fOQK8RNnWojA67GbZ0ApXAUlN2UQclwv2eVgTgn7O9gg9o7paZWKMp4g0H3nTLtS9LVzhkpOFIKzog==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "dev": true, diff --git a/package.json b/package.json index 610f6a9..2a0137a 100644 --- a/package.json +++ b/package.json @@ -42,6 +42,8 @@ "@types/node": "^25.3.3", "@types/pngjs": "^6.0.5", "@xarsh/ooxml-validator": "^0.1.10", + "esbuild": "^0.28.0", + "just-bash": "^2.14.4", "pdf-parse": "^2.4.5", "pixelmatch": "^7.1.0", "pngjs": "^7.0.0", diff --git a/scripts/bash-bundle/build-ha-bash.mjs b/scripts/bash-bundle/build-ha-bash.mjs new file mode 100644 index 0000000..c44ddf8 --- /dev/null +++ b/scripts/bash-bundle/build-ha-bash.mjs @@ -0,0 +1,21 @@ +// Build the ha:bash module for Hyperlight +// Prepends polyfills to the esbuild bundle +import { readFileSync, writeFileSync } from "node:fs"; + +const polyfills = ` +// ── QuickJS Polyfills for just-bash ────────────────────────── +if(typeof globalThis.URL==='undefined'){globalThis.URL=class URL{constructor(input,base){let full=String(input);if(base&&!full.match(/^[a-z]+:\\/\\//i)){full=String(base).replace(/\\/[^\\/]*$/,'/')+full}const m=full.match(/^(https?:)\\/\\/([^\\/:]+)(:\\d+)?(\\/[^?#]*)?(\\?[^#]*)?(#.*)?$/i);if(m){this.protocol=m[1];this.hostname=m[2];this.port=m[3]?m[3].slice(1):'';this.pathname=m[4]||'/';this.search=m[5]||'';this.hash=m[6]||'';this.host=this.hostname+(this.port?':'+this.port:'');this.origin=this.protocol+'//'+this.host;this.href=this.origin+this.pathname+this.search+this.hash;this.searchParams=new URLSearchParams(this.search);this.username='';this.password=''}else{this.href=full;this.protocol='';this.hostname='';this.port='';this.pathname=full;this.search='';this.hash='';this.host='';this.origin='';this.searchParams=new URLSearchParams();this.username='';this.password=''}}toString(){return this.href}}} +if(typeof globalThis.URLSearchParams==='undefined'){globalThis.URLSearchParams=class URLSearchParams{constructor(init){this._p=[];if(typeof init==='string'){const s=init.startsWith('?')?init.slice(1):init;for(const pair of s.split('&')){const[k,v]=pair.split('=');if(k)this._p.push([decodeURIComponent(k),decodeURIComponent(v||'')])}}}get(k){const p=this._p.find(([a])=>a===k);return p?p[1]:null}has(k){return this._p.some(([a])=>a===k)}toString(){return this._p.map(([k,v])=>encodeURIComponent(k)+'='+encodeURIComponent(v)).join('&')}entries(){return this._p[Symbol.iterator]()}[Symbol.iterator](){return this._p[Symbol.iterator]()}forEach(fn){this._p.forEach(([k,v])=>fn(v,k))}}} +if(typeof globalThis.Buffer==='undefined'){const _e=new TextEncoder();globalThis.Buffer={from(d,e){if(typeof d==='string'){if(e==='base64'){const b=atob(d);const a=new Uint8Array(b.length);for(let i=0;is+b.length,0);const r=new Uint8Array(t);let o=0;for(const b of l){r.set(b,o);o+=b.length}return r},alloc(s){return new Uint8Array(s)},byteLength(s,e){if(typeof s==='string')return _e.encode(s).length;return s.length}}} +if(typeof globalThis.process==='undefined'){globalThis.process={env:{},nextTick(fn){queueMicrotask(fn)},execPath:'/usr/bin/node',mainModule:null,umask(){return 18},type:'renderer'}} +if(typeof globalThis.AbortController==='undefined'){globalThis.AbortController=class AbortController{constructor(){this.signal={aborted:false,addEventListener(){}}}abort(){this.signal.aborted=true}}} +if(typeof globalThis.crypto==='undefined'||!globalThis.crypto.randomUUID){if(!globalThis.crypto)globalThis.crypto={};globalThis.crypto.randomUUID=function(){const h='0123456789abcdef';let u='';for(let i=0;i<36;i++){if(i===8||i===13||i===18||i===23)u+='-';else u+=h[Math.floor(Math.random()*16)]}return u}} +if(typeof globalThis.setTimeout==='undefined'){globalThis.setTimeout=(fn)=>{fn();return 0};globalThis.clearTimeout=()=>{};globalThis.setInterval=()=>0;globalThis.clearInterval=()=>{}} +if(typeof globalThis.performance==='undefined'){globalThis.performance={now(){return Date.now()}}} +// ── End Polyfills ──────────────────────────────────────────── +`; + +const bundle = readFileSync("just-bash-bundle.js", "utf-8"); +const output = polyfills + bundle; +writeFileSync("ha-bash-bundle.js", output); +console.log("ha-bash-bundle.js: " + (output.length / 1024).toFixed(0) + " KB"); diff --git a/scripts/bash-bundle/build.mjs b/scripts/bash-bundle/build.mjs new file mode 100644 index 0000000..a6af852 --- /dev/null +++ b/scripts/bash-bundle/build.mjs @@ -0,0 +1,91 @@ +#!/usr/bin/env node +// scripts/bash-bundle/build.mjs +// +// Builds the ha:bash module bundle from just-bash. +// Output: builtin-modules/bash.js (self-contained ESM module for QuickJS) +// +// Usage: node scripts/bash-bundle/build.mjs +// +// Prerequisites: npm install (just-bash and esbuild must be in node_modules) + +import { execSync } from "node:child_process"; +import { readFileSync, writeFileSync, existsSync } from "node:fs"; +import { join, dirname } from "node:path"; +import { fileURLToPath } from "node:url"; + +const __dirname = dirname(fileURLToPath(import.meta.url)); +const repoRoot = join(__dirname, "..", ".."); +const outFile = join(repoRoot, "builtin-modules", "bash.js"); + +// ── Step 1: esbuild bundle ────────────────────────────────────────── + +console.log("Building ha:bash bundle from just-bash..."); + +const stubDir = __dirname; +const entryFile = join(stubDir, "entry.mjs"); + +// Check prerequisites +if (!existsSync(join(repoRoot, "node_modules", "just-bash"))) { + console.error("Error: just-bash not found in node_modules. Run npm install first."); + process.exit(1); +} + +const aliasArgs = [ + `--alias:node:zlib=${join(stubDir, "zlib-stub.mjs")}`, + `--alias:node:worker_threads=${join(stubDir, "worker-stub.mjs")}`, + `--alias:node:path=${join(stubDir, "node-path-stub.mjs")}`, + `--alias:node:dns=${join(stubDir, "dns-stub.mjs")}`, + `--alias:node:crypto=${join(stubDir, "crypto-stub.mjs")}`, + `--alias:node:url=${join(stubDir, "url-stub.mjs")}`, + `--alias:node:fs=${join(stubDir, "fs-stub.mjs")}`, + `--alias:node:fs/promises=${join(stubDir, "fs-stub.mjs")}`, + `--alias:node:child_process=${join(stubDir, "worker-stub.mjs")}`, + `--alias:node:os=${join(stubDir, "worker-stub.mjs")}`, + `--alias:node:async_hooks=${join(stubDir, "worker-stub.mjs")}`, + `--alias:turndown=${join(stubDir, "turndown-stub.mjs")}`, + `--alias:seek-bzip=${join(stubDir, "bzip-stub.mjs")}`, + `--alias:node-liblzma=${join(stubDir, "liblzma-stub.mjs")}`, + `--alias:@mongodb-js/zstd=${join(stubDir, "zstd-stub.mjs")}`, +].join(" "); + +const tmpBundle = join(stubDir, "_tmp_bundle.js"); + +execSync( + `npx esbuild ${entryFile} ` + + `--bundle --format=esm --platform=neutral --target=es2020 ` + + `--main-fields=module,main ` + + `${aliasArgs} ` + + `--outfile=${tmpBundle} ` + + `--minify --tree-shaking=true`, + { stdio: "inherit", cwd: repoRoot }, +); + +// ── Step 2: Prepend polyfills ─────────────────────────────────────── + +const polyfills = `// @module bash +// @description Sandboxed bash interpreter (just-bash) with polyfills for QuickJS +// @author system +// @generated DO NOT EDIT — built by scripts/bash-bundle/build.mjs + +// ── QuickJS Polyfills ──────────────────────────────────────────────── +if(typeof globalThis.URL==='undefined'){globalThis.URL=class URL{constructor(input,base){let full=String(input);if(base&&!full.match(/^[a-z]+:\\/\\//i)){full=String(base).replace(/\\/[^\\/]*$/,'/')+full}const m=full.match(/^(https?:)\\/\\/([^\\/:]+)(:\\d+)?(\\/[^?#]*)?(\\?[^#]*)?(#.*)?$/i);if(m){this.protocol=m[1];this.hostname=m[2];this.port=m[3]?m[3].slice(1):'';this.pathname=m[4]||'/';this.search=m[5]||'';this.hash=m[6]||'';this.host=this.hostname+(this.port?':'+this.port:'');this.origin=this.protocol+'//'+this.host;this.href=this.origin+this.pathname+this.search+this.hash;this.searchParams=new URLSearchParams(this.search);this.username='';this.password=''}else{this.href=full;this.protocol='';this.hostname='';this.port='';this.pathname=full;this.search='';this.hash='';this.host='';this.origin='';this.searchParams=new URLSearchParams();this.username='';this.password=''}}toString(){return this.href}}} +if(typeof globalThis.URLSearchParams==='undefined'){globalThis.URLSearchParams=class URLSearchParams{constructor(init){this._p=[];if(typeof init==='string'){const s=init.startsWith('?')?init.slice(1):init;for(const pair of s.split('&')){const[k,v]=pair.split('=');if(k)this._p.push([decodeURIComponent(k),decodeURIComponent(v||'')])}}}get(k){const p=this._p.find(([a])=>a===k);return p?p[1]:null}has(k){return this._p.some(([a])=>a===k)}toString(){return this._p.map(([k,v])=>encodeURIComponent(k)+'='+encodeURIComponent(v)).join('&')}entries(){return this._p[Symbol.iterator]()}[Symbol.iterator](){return this._p[Symbol.iterator]()}forEach(fn){this._p.forEach(([k,v])=>fn(v,k))}}} +if(typeof globalThis.Buffer==='undefined'){const _e=new TextEncoder();globalThis.Buffer={from(d,e){if(typeof d==='string'){if(e==='base64'){const b=atob(d);const a=new Uint8Array(b.length);for(let i=0;is+b.length,0);const r=new Uint8Array(t);let o=0;for(const b of l){r.set(b,o);o+=b.length}return r},alloc(s){return new Uint8Array(s)},byteLength(s,e){if(typeof s==='string')return _e.encode(s).length;return s.length}}} +if(typeof globalThis.process==='undefined'){globalThis.process={env:{},nextTick(fn){queueMicrotask(fn)},execPath:'/usr/bin/node',mainModule:null,umask(){return 18},type:'renderer'}} +if(typeof globalThis.AbortController==='undefined'){globalThis.AbortController=class AbortController{constructor(){this.signal={aborted:false,addEventListener(){}}}abort(){this.signal.aborted=true}}} +if(typeof globalThis.crypto==='undefined'||!globalThis.crypto.randomUUID){if(!globalThis.crypto)globalThis.crypto={};globalThis.crypto.randomUUID=function(){const h='0123456789abcdef';let u='';for(let i=0;i<36;i++){if(i===8||i===13||i===18||i===23)u+='-';else u+=h[Math.floor(Math.random()*16)]}return u}} +if(typeof globalThis.setTimeout==='undefined'){globalThis.setTimeout=(fn)=>{fn();return 0};globalThis.clearTimeout=()=>{};globalThis.setInterval=()=>0;globalThis.clearInterval=()=>{}} +if(typeof globalThis.performance==='undefined'){globalThis.performance={now(){return Date.now()}}} +// ── End Polyfills ──────────────────────────────────────────────────── + +`; + +const bundleSource = readFileSync(tmpBundle, "utf-8"); +const output = polyfills + bundleSource; +writeFileSync(outFile, output); + +// Clean up temp file +try { require("node:fs").unlinkSync(tmpBundle); } catch {} + +const sizeKb = (output.length / 1024).toFixed(0); +console.log(`\\n✅ Built builtin-modules/bash.js (${sizeKb} KB)`); diff --git a/scripts/bash-bundle/bzip-stub.mjs b/scripts/bash-bundle/bzip-stub.mjs new file mode 100644 index 0000000..9f20917 --- /dev/null +++ b/scripts/bash-bundle/bzip-stub.mjs @@ -0,0 +1 @@ +export default { decode() { throw new Error("bzip2: not available in sandbox"); } }; diff --git a/scripts/bash-bundle/crypto-stub.mjs b/scripts/bash-bundle/crypto-stub.mjs new file mode 100644 index 0000000..f0d54eb --- /dev/null +++ b/scripts/bash-bundle/crypto-stub.mjs @@ -0,0 +1,19 @@ +// Stub for node:crypto +export function randomBytes(n) { + const buf = new Uint8Array(n); + for (let i = 0; i < n; i++) buf[i] = Math.floor(Math.random() * 256); + return buf; +} +export function randomUUID() { + const h = "0123456789abcdef"; + let u = ""; + for (let i = 0; i < 36; i++) { + if (i === 8 || i === 13 || i === 18 || i === 23) u += "-"; + else u += h[Math.floor(Math.random() * 16)]; + } + return u; +} +export function createHash() { + throw new Error("createHash: not available in sandbox"); +} +export default { randomBytes, randomUUID, createHash }; diff --git a/scripts/bash-bundle/dns-stub.mjs b/scripts/bash-bundle/dns-stub.mjs new file mode 100644 index 0000000..6345edd --- /dev/null +++ b/scripts/bash-bundle/dns-stub.mjs @@ -0,0 +1,8 @@ +// Stub for node:dns — just-bash uses this for network allow-list validation +// We handle networking through host:fetch plugin, so DNS lookup is not needed +export function lookup(hostname, opts, cb) { + if (typeof opts === "function") { cb = opts; opts = {}; } + // Return a dummy address — our fetch plugin does its own SSRF checks + if (cb) cb(null, "0.0.0.0", 4); +} +export default { lookup }; diff --git a/scripts/bash-bundle/entry.mjs b/scripts/bash-bundle/entry.mjs new file mode 100644 index 0000000..6604e4f --- /dev/null +++ b/scripts/bash-bundle/entry.mjs @@ -0,0 +1,4 @@ +// Entry point for esbuild bundling of just-bash for QuickJS/Hyperlight +// Re-exports only what we need, stubs out node:zlib +export { Bash } from "just-bash"; +export { InMemoryFs } from "just-bash"; diff --git a/scripts/bash-bundle/fs-stub.mjs b/scripts/bash-bundle/fs-stub.mjs new file mode 100644 index 0000000..42d7022 --- /dev/null +++ b/scripts/bash-bundle/fs-stub.mjs @@ -0,0 +1,22 @@ +// Stub for node:fs — just-bash's ReadWriteFs uses this for real FS +// We don't use ReadWriteFs — we use our own IFileSystem adapter +// But the import exists in the bundle, so we stub it +export function readFileSync() { throw new Error("node:fs not available in sandbox"); } +export function writeFileSync() { throw new Error("node:fs not available in sandbox"); } +export function existsSync() { return false; } +export function statSync() { throw new Error("node:fs not available in sandbox"); } +export function readdirSync() { return []; } +export function mkdirSync() { throw new Error("node:fs not available in sandbox"); } +export function unlinkSync() { throw new Error("node:fs not available in sandbox"); } +export function rmdirSync() { throw new Error("node:fs not available in sandbox"); } +export function chmodSync() { throw new Error("node:fs not available in sandbox"); } +export function symlinkSync() { throw new Error("node:fs not available in sandbox"); } +export function linkSync() { throw new Error("node:fs not available in sandbox"); } +export function readlinkSync() { throw new Error("node:fs not available in sandbox"); } +export function realpathSync() { throw new Error("node:fs not available in sandbox"); } +export function lstatSync() { throw new Error("node:fs not available in sandbox"); } +export function utimesSync() { throw new Error("node:fs not available in sandbox"); } +export function copyFileSync() { throw new Error("node:fs not available in sandbox"); } +export function renameSync() { throw new Error("node:fs not available in sandbox"); } +export async function open() { throw new Error("node:fs/promises not available in sandbox"); } +export default {}; diff --git a/scripts/bash-bundle/liblzma-stub.mjs b/scripts/bash-bundle/liblzma-stub.mjs new file mode 100644 index 0000000..7646bbd --- /dev/null +++ b/scripts/bash-bundle/liblzma-stub.mjs @@ -0,0 +1 @@ +export default null; diff --git a/scripts/bash-bundle/node-path-stub.mjs b/scripts/bash-bundle/node-path-stub.mjs new file mode 100644 index 0000000..ae33f92 --- /dev/null +++ b/scripts/bash-bundle/node-path-stub.mjs @@ -0,0 +1,48 @@ +// Minimal node:path polyfill for just-bash +export function join(...parts) { + return parts.filter(Boolean).join("/").replace(/\/+/g, "/"); +} +export function resolve(...parts) { + let result = ""; + for (const part of parts) { + if (part.startsWith("/")) result = part; + else result = result ? result + "/" + part : part; + } + return normalize(result || "/"); +} +export function normalize(p) { + const parts = p.split("/"); + const out = []; + for (const part of parts) { + if (part === "..") { if (out.length > 1) out.pop(); } + else if (part !== "." && part !== "") out.push(part); + } + return (p.startsWith("/") ? "/" : "") + out.join("/") || "."; +} +export function dirname(p) { + const i = p.lastIndexOf("/"); + return i <= 0 ? (p.startsWith("/") ? "/" : ".") : p.slice(0, i); +} +export function basename(p, ext) { + let b = p.split("/").pop() || ""; + if (ext && b.endsWith(ext)) b = b.slice(0, -ext.length); + return b; +} +export function extname(p) { + const b = basename(p); + const i = b.lastIndexOf("."); + return i > 0 ? b.slice(i) : ""; +} +export function isAbsolute(p) { return p.startsWith("/"); } +export function relative(from, to) { + const f = resolve(from).split("/").filter(Boolean); + const t = resolve(to).split("/").filter(Boolean); + let i = 0; + while (i < f.length && i < t.length && f[i] === t[i]) i++; + const ups = f.length - i; + return [...Array(ups).fill(".."), ...t.slice(i)].join("/") || "."; +} +export const sep = "/"; +export const delimiter = ":"; +export const posix = { join, resolve, normalize, dirname, basename, extname, isAbsolute, relative, sep, delimiter }; +export default { join, resolve, normalize, dirname, basename, extname, isAbsolute, relative, sep, delimiter, posix }; diff --git a/scripts/bash-bundle/turndown-stub.mjs b/scripts/bash-bundle/turndown-stub.mjs new file mode 100644 index 0000000..d574c9f --- /dev/null +++ b/scripts/bash-bundle/turndown-stub.mjs @@ -0,0 +1,5 @@ +// Stub for turndown (html-to-markdown) — not needed in sandbox +export default class TurndownService { + constructor() {} + turndown(html) { return html.replace(/<[^>]+>/g, ''); } +} diff --git a/scripts/bash-bundle/url-stub.mjs b/scripts/bash-bundle/url-stub.mjs new file mode 100644 index 0000000..357f59a --- /dev/null +++ b/scripts/bash-bundle/url-stub.mjs @@ -0,0 +1,7 @@ +// Stub for node:url +export function fileURLToPath(url) { + if (typeof url === "string" && url.startsWith("file://")) return url.slice(7); + return String(url); +} +export function pathToFileURL(p) { return new URL("file://" + p); } +export default { fileURLToPath, pathToFileURL }; diff --git a/scripts/bash-bundle/worker-stub.mjs b/scripts/bash-bundle/worker-stub.mjs new file mode 100644 index 0000000..1f66f7f --- /dev/null +++ b/scripts/bash-bundle/worker-stub.mjs @@ -0,0 +1,11 @@ +// Stub for node:worker_threads and node:async_hooks +export class Worker { + constructor() { throw new Error("Workers not available in this environment"); } +} +export const parentPort = null; +export const workerData = null; +export const isMainThread = true; +export class AsyncLocalStorage { + getStore() { return undefined; } + run(store, fn) { return fn(); } +} diff --git a/scripts/bash-bundle/zlib-stub.mjs b/scripts/bash-bundle/zlib-stub.mjs new file mode 100644 index 0000000..07bcb09 --- /dev/null +++ b/scripts/bash-bundle/zlib-stub.mjs @@ -0,0 +1,11 @@ +// Stub for node:zlib — just-bash's gzip/tar commands use this +export function gzipSync(data) { + throw new Error("gzip: not available in this environment. Use the ha:zip-format module in a JavaScript handler instead."); +} +export function gunzipSync(data) { + throw new Error("gunzip: not available in this environment. Use the ha:zip-format module in a JavaScript handler instead."); +} +export function deflateSync(data) { return gzipSync(data); } +export function inflateSync(data) { return gunzipSync(data); } +export const constants = { Z_SYNC_FLUSH: 0, Z_FINISH: 4, Z_DEFAULT_COMPRESSION: -1, Z_NO_COMPRESSION: 0, Z_BEST_COMPRESSION: 9 }; +export default { gzipSync, gunzipSync, deflateSync, inflateSync, constants }; diff --git a/scripts/bash-bundle/zstd-stub.mjs b/scripts/bash-bundle/zstd-stub.mjs new file mode 100644 index 0000000..7646bbd --- /dev/null +++ b/scripts/bash-bundle/zstd-stub.mjs @@ -0,0 +1 @@ +export default null; diff --git a/scripts/build-modules.js b/scripts/build-modules.js index d16b7eb..7f85204 100644 --- a/scripts/build-modules.js +++ b/scripts/build-modules.js @@ -140,4 +140,19 @@ execSync("npx tsx scripts/generate-host-modules-dts.ts", { stdio: "inherit", }); +// Step 9: Rebuild ha:bash bundle from just-bash (if just-bash is installed) +try { + const justBashPath = join(ROOT, "node_modules", "just-bash"); + if (existsSync(justBashPath)) { + console.log("\nRebuilding ha:bash bundle from just-bash..."); + execSync("node scripts/bash-bundle/build.mjs", { + cwd: ROOT, + stdio: "inherit", + }); + } +} catch (e) { + console.error(" ⚠️ bash bundle build failed:", e.message); + // Non-fatal — bash is optional, core agent works without it +} + console.log("✓ Build complete"); diff --git a/src/agent/index.ts b/src/agent/index.ts index 5249421..d99dbb0 100644 --- a/src/agent/index.ts +++ b/src/agent/index.ts @@ -2140,6 +2140,221 @@ const executeJavascriptTool = defineTool("execute_javascript", { }, }); +// ── Tool: execute_bash ─────────────────────────────────────────────── +// +// Runs bash commands inside the Hyperlight sandbox using just-bash +// (a pure-JS bash interpreter). Commands execute in the same sandbox +// as JavaScript handlers — same plugins, same baseDir, same isolation. +// +// Stateless: each call creates a fresh Bash instance. Use && or ; +// to chain commands that share state within a single call. +// +// The internal _bash_runner handler is auto-registered on first use. + +/** Bash commands available in the sandbox. */ +const BASH_SUPPORTED_COMMANDS = [ + "echo", + "cat", + "grep", + "fgrep", + "egrep", + "rg", + "head", + "tail", + "wc", + "sort", + "uniq", + "find", + "tree", + "diff", + "sed", + "awk", + "tr", + "cut", + "paste", + "join", + "xargs", + "tee", + "printf", + "seq", + "env", + "printenv", + "date", + "basename", + "dirname", + "readlink", + "which", + "whoami", + "hostname", + "jq", + "yq", + "base64", + "md5sum", + "sha256sum", + "cp", + "mkdir", + "touch", + "chmod", + "ls", + "stat", + "du", + "file", + "rev", + "nl", + "fold", + "expand", + "column", + "comm", + "tac", + "od", + "expr", + "true", + "time", +] as const; + +/** Handler code for the internal bash runner. */ +const BASH_RUNNER_HANDLER = ` +import { Bash, InMemoryFs } from "ha:bash"; + +export async function handler(event) { + const e = typeof event === 'string' ? JSON.parse(event) : event; + const bash = new Bash({ + commands: ${JSON.stringify([...BASH_SUPPORTED_COMMANDS])}, + }); + const result = await bash.exec(e.command || "echo 'No command provided'"); + return { + stdout: result.stdout, + stderr: result.stderr, + exitCode: result.exitCode, + }; +}`; + +/** Whether the bash runner handler has been registered this session. */ +let bashRunnerRegistered = false; + +const executeBashTool = defineTool("execute_bash", { + description: [ + "Execute a bash command in the sandbox using a pure-JS bash interpreter.", + "The command runs inside the same Hyperlight micro-VM as JavaScript handlers.", + "", + "STATELESS: each call is a fresh shell. Use && or ; to chain commands.", + "The filesystem is shared with JavaScript handlers (same baseDir).", + "", + "SUPPORTED COMMANDS:", + " Text: echo, cat, grep, rg, head, tail, wc, sort, uniq, sed, awk, tr,", + " cut, paste, join, xargs, tee, rev, nl, fold, tac, column, comm,", + " diff, printf, seq, expr, base64, md5sum, sha256sum, od", + " Files: ls, find, tree, cp, mkdir, touch, chmod, stat, du, file", + " Data: jq, yq (JSON/YAML processing)", + " Meta: date, env, whoami, hostname, basename, dirname, which, readlink", + "", + "NOT AVAILABLE: rm, mv, ln, curl, wget, python, node, sleep, ssh, git, apt", + " - For HTTP requests, use the fetch plugin (manage_plugin/apply_profile)", + " - For file deletion, there is no command available", + " - For complex logic, use register_handler with JavaScript instead", + "", + "EXAMPLES:", + ' execute_bash({ command: "ls -la" })', + " execute_bash({ command: \"cat data.json | jq '.results[] | .name' | sort | uniq -c | sort -rn | head -10\" })", + ' execute_bash({ command: "grep -r TODO . | wc -l" })', + " execute_bash({ command: \"find . -name '*.json' | head -5\" })", + ].join("\n"), + parameters: { + type: "object", + properties: { + command: { + type: "string", + description: + "The bash command to execute. Supports pipes (|), " + + "redirects (>, >>), command chaining (&&, ;), " + + "variables (FOO=bar; echo $FOO), and subshells ($(...)).", + }, + }, + required: ["command"], + }, + handler: async ({ command }: { command: string }) => { + if ( + !command || + typeof command !== "string" || + command.trim().length === 0 + ) { + return { error: "command is required and must be a non-empty string." }; + } + + // Auto-register the internal bash runner handler on first use + if (!bashRunnerRegistered) { + // Bash module needs at least 64 MB heap for compilation + const { heapMb } = sandbox.getEffectiveMemorySizes(); + if (heapMb < 64) { + console.error( + ` ${C.dim("🐚 Increasing heap to 64 MB for bash module...")}`, + ); + sandbox.setMemorySizes(64); + } + + console.error(` ${C.dim("🐚 Initialising bash runner...")}`); + const reg = await sandbox.registerHandler( + "sys-bash-runner", + BASH_RUNNER_HANDLER, + ); + if (!reg.success) { + return { + error: `Failed to initialise bash runner: ${reg.error}. This is an internal error — try reset_sandbox and retry.`, + }; + } + bashRunnerRegistered = true; + } + + // Build per-call timeout overrides + const overrides: { cpuTimeoutMs?: number; wallClockTimeoutMs?: number } = + {}; + if (state.cpuTimeoutOverride !== null) + overrides.cpuTimeoutMs = state.cpuTimeoutOverride; + if (state.wallTimeoutOverride !== null) + overrides.wallClockTimeoutMs = state.wallTimeoutOverride; + + const { success, result, error, consoleOutput, stats, timing } = + await sandbox.executeJavaScript( + "sys-bash-runner", + { command }, + overrides, + ); + + if (state.showTimingEnabled && timing) { + console.error( + ` ${C.dim(`⏱️ ${timing.totalMs}ms (exec: ${timing.executeMs}ms)`)}`, + ); + } + + if (success && result) { + const stdout = String(result.stdout ?? ""); + const stderr = String(result.stderr ?? ""); + const exitCode = Number(result.exitCode ?? 0); + + // Show output to user + if (stdout) { + console.log(stdout.endsWith("\n") ? stdout.slice(0, -1) : stdout); + } + if (stderr) { + console.error(` ${C.dim(stderr.trimEnd())}`); + } + + return { + stdout, + stderr, + exitCode, + ...(consoleOutput?.length ? { consoleOutput } : {}), + }; + } else { + console.error(` ${C.err("❌ " + (error ?? "Unknown bash error"))}`); + return { + error: error ?? "Bash execution failed", + ...(consoleOutput?.length ? { consoleOutput } : {}), + }; + } + }, +}); + // ── Tool: reset_sandbox ────────────────────────────────────────────── const sandboxResetTool = defineTool("reset_sandbox", { @@ -2159,6 +2374,7 @@ const sandboxResetTool = defineTool("reset_sandbox", { }, handler: async () => { const result = await sandbox.resetSandbox(); + bashRunnerRegistered = false; // Force re-registration on next execute_bash if (result.success) { console.error( ` ${C.ok("🔄 Sandbox state reset")} (${result.handlers?.length ?? 0} handlers preserved, ha:shared-state preserved)`, @@ -4775,6 +4991,7 @@ function buildSessionConfig() { tools: [ registerHandlerTool, executeJavascriptTool, + executeBashTool, deleteHandlerTool, deleteHandlersTool, getHandlerSourceTool, From 63ac5a13d5b3be10f2cf2648c73ab0135aa3d1ea Mon Sep 17 00:00:00 2001 From: Simon Davies Date: Fri, 8 May 2026 12:56:48 +0100 Subject: [PATCH 02/15] feat: add execute_bash to system message workflow guidance The LLM didn't know about execute_bash because the system prompt only mentioned register_handler + execute_javascript. Added bash tool guidance between WORKFLOW and DIRECT FILE I/O sections. Signed-off-by: Simon Davies --- src/agent/system-message.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/agent/system-message.ts b/src/agent/system-message.ts index 2136ce2..ece3a52 100644 --- a/src/agent/system-message.ts +++ b/src/agent/system-message.ts @@ -80,6 +80,13 @@ WORKFLOW: 4. register_handler — write JavaScript with function handler(event) 5. execute_javascript — run your handler +BASH TOOL (for data exploration, text processing, and file analysis): + execute_bash({ command: "..." }) — run bash commands in the sandbox + 40+ commands: ls, cat, grep, jq, sed, awk, sort, find, head, tail, wc, curl, etc. + Supports pipes, redirects, env vars. Stateless — each call is independent. + Use bash for quick data exploration, text processing, and analysis. + Use JavaScript handlers for complex logic, binary output, and module APIs. + DIRECT FILE I/O (text content only — no sandbox needed): write_output(path, content) — write to fs-write directory read_input(path) — read from fs-read directory From 0c6242bc747bd3ee3dc4bb71cec0cec808ff4e92 Mon Sep 17 00:00:00 2001 From: Simon Davies Date: Fri, 8 May 2026 13:01:53 +0100 Subject: [PATCH 03/15] feat: wire execute_bash to show-code and code log Shows '$ command' inline when show-code is enabled and writes bash commands to the code log file alongside JS handler code. Signed-off-by: Simon Davies --- src/agent/index.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/agent/index.ts b/src/agent/index.ts index d99dbb0..bb20e6d 100644 --- a/src/agent/index.ts +++ b/src/agent/index.ts @@ -2313,6 +2313,12 @@ const executeBashTool = defineTool("execute_bash", { if (state.wallTimeoutOverride !== null) overrides.wallClockTimeoutMs = state.wallTimeoutOverride; + // Log bash command to code log (same as show-code for JS handlers) + if (state.showCodeEnabled) { + console.log(` ${C.dim("$ " + command)}`); + } + sandbox.writeCode(`// ── bash ──\n$ ${command}\n`); + const { success, result, error, consoleOutput, stats, timing } = await sandbox.executeJavaScript( "sys-bash-runner", From 4a48b083663e06d041694d2f75ca0b36f1a471fd Mon Sep 17 00:00:00 2001 From: Simon Davies Date: Fri, 8 May 2026 13:07:19 +0100 Subject: [PATCH 04/15] fix: add execute_bash to ALLOWED_TOOLS gating list Without this, the tool exists but the SDK blocks the LLM from calling it. Absolute rookie mistake. Signed-off-by: Simon Davies --- src/agent/tool-gating.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/agent/tool-gating.ts b/src/agent/tool-gating.ts index 526b784..3a5f00e 100644 --- a/src/agent/tool-gating.ts +++ b/src/agent/tool-gating.ts @@ -13,6 +13,7 @@ export const ALLOWED_TOOLS = new Set([ "register_handler", // Register named JavaScript handler "execute_javascript", // Execute a registered handler + "execute_bash", // Execute bash commands in the sandbox "delete_handler", // Remove a handler "get_handler_source", // Retrieve handler source for editing "edit_handler", // Surgical edit to existing handler From 7eba69e20c3e5132dd762a83010457a1f72eafdb Mon Sep 17 00:00:00 2001 From: Simon Davies Date: Fri, 8 May 2026 13:16:37 +0100 Subject: [PATCH 05/15] fix: add execute_bash to all skill allowed-tools lists MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When a skill is active, the SDK only exposes tools listed in the skill's allowed-tools. execute_bash was missing from all 9 skills, so the LLM couldn't see or use it when any skill was active. Also adds a pattern-integrity test that verifies every defineTool in index.ts has a corresponding entry in ALLOWED_TOOLS — catches this class of bug automatically. Signed-off-by: Simon Davies --- .../Artemis_II_Mission_Briefing.pptx | Bin 0 -> 1759416 bytes .../LLM_Competitive_Analysis_2025.pdf | Bin 0 -> 25436 bytes .../LLM_Competitive_Analysis_Q2_2026.pdf | Bin 0 -> 20757 bytes .../hyperagent-blog.pdf | Bin 0 -> 19321 bytes .../test.pdf | Bin 0 -> 1452 bytes .../Artemis_II_Mission.pptx | Bin 0 -> 1668903 bytes .../Artemis_II_Mission_Presentation.pptx | Bin 0 -> 3008488 bytes .../Artemis_II_Mission.pptx | Bin 0 -> 2810739 bytes scripts/bash-bundle/_tmp_bundle.js | 2201 +++++++++++++++++ skills/api-explorer/SKILL.md | 1 + skills/data-processor/SKILL.md | 1 + skills/mcp-services/SKILL.md | 1 + skills/pdf-expert/SKILL.md | 1 + skills/pptx-expert/SKILL.md | 1 + skills/report-builder/SKILL.md | 1 + skills/research-synthesiser/SKILL.md | 1 + skills/web-scraper/SKILL.md | 1 + skills/xlsx-expert/SKILL.md | 1 + tests/pattern-integrity.test.ts | 30 + 19 files changed, 2240 insertions(+) create mode 100644 output-hyperagent-1776267496-943d0667/Artemis_II_Mission_Briefing.pptx create mode 100644 output-hyperagent-1776268211-ddb6f311/LLM_Competitive_Analysis_2025.pdf create mode 100644 output-hyperagent-1776271900-9f53e980/LLM_Competitive_Analysis_Q2_2026.pdf create mode 100644 output-hyperagent-1776279829-e16c76e7/hyperagent-blog.pdf create mode 100644 output-hyperagent-1776279829-e16c76e7/test.pdf create mode 100644 output-hyperagent-1776350413-41ff0660/Artemis_II_Mission.pptx create mode 100644 output-hyperagent-1776353484-2b81ab2f/Artemis_II_Mission_Presentation.pptx create mode 100644 output-hyperagent-1776798630-0862b11b/Artemis_II_Mission.pptx create mode 100644 scripts/bash-bundle/_tmp_bundle.js diff --git a/output-hyperagent-1776267496-943d0667/Artemis_II_Mission_Briefing.pptx b/output-hyperagent-1776267496-943d0667/Artemis_II_Mission_Briefing.pptx new file mode 100644 index 0000000000000000000000000000000000000000..2ef9c5c05d8a54c5f03754f4fc2bebb7a9096e03 GIT binary patch literal 1759416 zcmeFZW0YjuvNl|{?ds~XZQHhOqs!>BZQHhO+wSVJ?W(u-J{M>2an88+_x-++V`Yw9 zBY(_zBI1dNXU>&!lE5G+0000GUl#y?_RD1KCLjO+I|2Xz^4E7wL0cOqV;d)3B{w@` zM{OEcYpcQJahr8I1mVYbDBtzIywoOh4YjGfXk~oB3~vC+NaG?D@fbtakJpHT6@9+} zXFcc*2&`Dg!>b?s(loZ%nUy`@#?rk)JSLbab1GvCps$YaUQWGrKj)MbG=V`i1@)5W zS>sO|{bS_oAVD?1wM}OPI{-$)wEoa5F}Cp{j1|yzBpvsu1M_CV%f6k%0`VubVqS5& zK|OFNrGIsn%=SQl=cqZ8+^(%uraR71DHO6eq*UZCWoWC8Q8Za5rAmOdEd}12Rx#7m zp}BI{iY(9mU0Q^@8tLCA{VW}StPHxEc=sg9vf#@Zyx|6sFgJSG9?r|i!I@o-M4?H8 zEir0XE5ZwPD?(9^`ACyOX{(LlSAe`FTBC5~gWy+r#RHV!!#rVEx%(R?_D%fMLHhn$b~K*Ar)i&rC2$p;+P<%?_$Eubf_6z6JK7F@kE4)0M5Ju8GFSBMy}}ND zvZIg#Y}^9wswl_S@&%8=v0E6z?xrZmmGTAGLq|iNZ*FWyLsnD*D;p{KJHMk4%<%`9 zPF44Iy)g3BJE%HdZ?m@m<^B>4pk|gmM_*AO2Lu2B{q?EqU~J_`OY_HjW!$s`Fg-%> zC69252kSc2_c<%t?{_2$_7 zQ2~bno78HRSX`&rB)~j$%$&IAcJo>iLV}?*@Stnh&0c(upL$p)H~OsDcbC#aYI~oC zoYf%%g-TA0c^)6hq7rz7{3{?NG|e=WU+F>j1qk97AV#)^at^k3jsJA7ZizU0P8g_IEJU7x>FWH#ckdBAvDZhoATWfpwuZxrYussfMX|dE2zznqn5w!s1IgW2ap}y{oY89?tw9V^rm+#kAruXcN=905xVl@dn+vk` z>y^`J=L}ZS#vN+O4hP4{UKc<6OZrY8Zh-dH5i;(k<4)oKimc@Ft7Z8YqI+N07x(-( zvif#*e*h~TRSVTeha&vwEj&_H3P%yw1o1rzl(Hr0cOz^8ErFZF>!S(6kM?BXV8V1a zhci%m^=Q=X3dt#eMpm@ou-)tj ztlNW8K5JrFO<@b%>yv*mLX&&D-DCgNFh@0X5Bsl>nScQR!2dGL&d!PUA9-ZwVC?us zt@=*pwl;s5_-9^qCTm;z)1d@iK2j1rT5`Q#l$=ju+!@d{U4R?8TNtN_#r-(#)-?+* zN$98ft#!cc<`wf4Q_;+;jF~yp)^{Y-LxzTUvS1WAg?!!R)216X;#SD0j1?KmmXEwX zx%q-Bx!;fFLS=y-h;)u*f7j(5Ggl~Dk$|0w^~2SHu1SFh#+t@5(Yp+1pDpTeu8DJ? zXdd&tPH06N?E6}_<(q6XJ5Cr1zVwT7?gOh1fwsC422|qYEa@+XH%WbzwSW#-dJ{hk zMFeD$5J*sZW4{yy1V)k&Oi+4LzZ69TXp#_6&{`uuH3bApk`Po-K>FlL10;Xxv;t;d z$#gz<s5XI?B6gpqXt|zl4t?U~F;*8|V zE%s*bo2@9%Cd{0}&$I+sy8r5}%;5ZH<1cTCf&c*gQ5FC2*5CaU882<)Plpir$PIea zMNgs!0cE79T((fPhSvi`$`6FSYLk9<$NWsbCxgDK@8dnq7=7*Ti1Biyh_!C6jMx++ zPNbZ_E^|(C^YP%S8#BU@t1)XyOzDu2WOdShuNEbuQJP_=gXxBDEGZw`>1ZfkYW?7V z;G8R3%C&C62yvKfBC1K))$uwrPZY(DD^xrpY-=-ndfsID+uw!<%;$Y|VB|w7c+(}n zvn{f@rI*GpPKJA}%L{Qy{C0syQ#F`Vep!V`-#iOVGV3Kniv8TR4@%&aS@>mC!JPCQ ze_qeFNjwQX{gY{nt z`Tj`{5%h3wyxW2gQ*$=Nd{VxtGUV|Tg%M;)MQyshftXE+fQx89Ugt~YT#ELlN&kDSZ;w59r% zU;2vFQyQtP5@gym1Cw43(j~B`7LvpSDhm%1vpTOICdgo5oOpj-=t+%-ME=(z8^5kU z8ofUdb<#JmGFEhQvod!415?-uaX3FZ48GmYVzUn~Y5{&Cl)e^+V!Rvy%s99J77F?; z?Ic>-=ef6hBKOe6DG^3CTy8!Am!j7IfTFM|`% zo;H{eivaKKk7qH4_0?6An|PG@uYu#<{}v@M#>hX9zmnGu{J)de$;{Z=nD)p^_WO@b>qX+Yt5B5gdl@F~_5 zQlKdvir?{-u6W{*o5o+ml2HfC>yv1w%91Yw)NMnEdbT*C9N~A|K~ZOXg;Mmeiqpc;y`>3#YkeMK*TxdNafIUcNC|!f} zPKRnwr$Dkuu3-7mK%?-dLAppFVEFGaUhO%MLDIgxCFl0*)Q~cJbw*JZ_>U)XY5z7w zj$X*qj1)Du%lUOOYB6(}WE^*5fk0$o0U4S=mV5=LO5K#@;}kf9L`YpIz|ITJzghcO zeO&o2Ivkkx!IX>D(#m72j$DT<>gRLQMZ6W)HeytxdpBmE4Da#Gu9WGRP2^|#{_q%k za*k}#N%{?L1K`aER)Ca}^~(BHL`Ubh=L+-`$ps5QGVxSk7o>)f##qKpM@lC*OypFX ziEi0hIBrXQ)FQ5B5hd8<=Q4T22lQXV{Z6qdY5Xh9JHNt%>OaEW(aPM&SX$rF$=Jd1 zKT7gH-TE_H{?Y2jNLzgMbYFZQnBqmu8LlAl+e(69Mp+!5PRvkqAt}H_;bdKv2*F_F zd$<+Y!J*eB{rcuMSE()qjzYuC2^flSvS)~Y;AQ{tEhQOR1YR-9XrBN~`-S-@YXJFkUbxD8R zF`o0u>&_8(>zFM)H$>Ji=#JN$rC`o)-p>omuZ!KE- ziIdY!-oJvvtD(IV^aThOFaQ9-zXIj&a74yUEA)Ru7`o&E?bkM+Q)8YV@Q?B_S+E!J z0>Ba*6Z@%N(`0)Y7r=2|ivIL;egRHJW!v0If(@yot~h&UAQH+Hi8|(l`u^g{)?G9J zZUeHsG!k}EP~3dKI+v&uu6p4Q;)gbr+>v*Rpf#FeyHt1h(Z^v847nzHoT@qzW~MhYRF_ zh%qa?UauC6!SijFOTL62)!czAymb7|;GTq`p*;SY{2QC>zK>?T`O2VEbJzW-infZp zU)YZjno1lw8b92O{&M;CQ5E2=ouW9UTDS7a|DKa+ik9Y9D zI+5?yPNU(=c`SdAY$<&=+aFGUiR^#e`tQh&obLQ;su94iHj5#e(;MKv&n*apfTPcX zv&C6rTgAtO=h@m0q2b_Mo<1I?^?P6qh9kA_FfY^r@o#~gdRFgxb5^>1W6N)51Czz# z8L%@`olF#&*bf3nS4SDB4M<+yR4~g8Upd<&7Zh(6g@y64|&nn!hn6F>$*(o zd@Mi_)G(_=a6@q^J^o%+Kz+PU4%{HwB7>UIi9s6l55r3z;uG6Iji#!D;Zxh@zoq*B zP#PKj|I+yX+0rQ8bcb5|l|qF7L?AY{PR5RZEsg(l>)#Q`!WV%wghOZ-^6-gOnb$mj z3pLo@;zNgqqXBmr{&dlr?>v{%!HB<(>i1RQn-Q;$n8&&3|KS4^S7#?Nu|*IJitKb= z)w)aNFj_DgAO!UbDVY4w&V*_dvQlgT+{u{n#Y~vSdVvb!839XOTUivX8`g}Kse0Wx@!}Yo0=q4JODwzsRPAD=JxbW1dl9?K>rb$12d+l$cLzfnuliHWr z)n9VXf3n9v+3868Phb8tIx=qD=Boe-KR!bZboJWfl~Jv$H(0cbqcR_ZBY3>Y(S6IY zd3nUOiZ9VNHlzto9iK>X@;C-L?p;wCji5O|B>o1i+*CJpba=hL8;f+>Le(mV#P9-~ zWOJ)thFprXg4+xS!;fr^oHaYdo=ImC4#r_~DB(X)FOeF>xsjHZ803@hMyiG*jJ5no+aM!lnss*5YenudX}p%2_--Uw^+g2!szlQ$XjUR;nn`0Lvk&axu6H*d~& zYqwr@;aR@}a#=7-SEQgjEu%XnTC#CP7EswSQcW)=0G-i~#UuYM>~8X{*G_)fh614* zIMOrNAb;|RNO6C?&$&}eh<5GXqP}3bfK_|xnyLt>V3!u?vYUt#rQxi>uUGCbVc+?l z5OEMBaEC~BusRqc)Deo9AKy;-SbVL>%!MeYpQ7Ic#0v-3A^iH-CxU`(FR4C3|4QnD zSsR+?UlDot<(h9_pMT6IfAaWWirIfhVP))}oX&UoCAz)FB>@YV9n<_|GS`}U`We$A z-oO$X=cMt82MnZQ4i3l3QJbB8et*COcNWt6ghABM0T{$Dy62yG)#RhI2~4RBnjeHA z*B1fGvN`#J3a(sQ#Fh<3C`N{)Re8)Gl7|~rc9lXmBa44qLJ_zcR&d9!j?ygcNP5E# z+y)wN9U0KUOkMMyam9PK@~E?CxG*1*t7AqmwgY>yfKx1?mPoAvnUUR18>b;d&8Nk( z{%qG$mPx397xHrW5K2AJ*wuENdCK--q^_z87QIbi&GaU7hXf1Bok?+!({(oZOKtOS z)&D>g%WV5AdYQgP9@M`=^(SI~f;6Zs`G;b^`G^91VJPvjT!UL6o&g4-0qiX2BrdrC zo-3AEU{#)c)K!j`e|QY)9tcNF>5RmBmB+`5!k#hhks)f~*)<7L(aKU9hy1IV3rGu$ zLduwn;BkC)HRflnRFD+eC~3j(pbXjVh}&310=*h0LKcG1#^(?PWFjuZqCy86ds+n! zL$qX$qFfVfsWiy7hYp@eHHuLhoouA)JTlm)M5wR`NlnsOExPa?>9~WU(WLA+>g5f+ zG>R99cMcQ6d?BnU1%k4`DAinhJ}d;|{Mc~cv%Fju|H zh#wx(6l+E-&kBwgCJtWtx55|BwQs@qT7p;xybxkZyS42bi$hb9OZ>L60n$4UibmcY~Eqqq+;5tpYysGCP-*nnZ>~;hmOC7AwU{x_&Mgz>w zaP6I&wi@j&e@!T~@+?11z-9L1C)v0J>Jl}~!VsHxp-4FbNr8n5^n$A(BQ(!_OPK1p zB(!@qD$K4>2`&#yqI1@l>@648fmMqLRa+XhthpCo1h#=bsA5hweS`+mFSA~hpwlHS zIF|udx%jP%{`%wd#bU{g+*u>h?!x)y^fh{$x4W0LhIggnreX+;0w89+45sMEy^0c>$wi$jE>97 z<%h0URsrLSi!Zx+u1>7IFQ}2{x7KCiC2XBL(|W^8^Iz@`sN5nA5+ir zzAiY8;Hh&sD-x&=d|IT(0T;TaYi|f<_w(t0mx|W%CR(SzGU1O&@86ThpAFA{On03Y zUmF<#uUvsEJad`h2!20o1bSj9*x+l#JUEDp@f#dQIy;Rwo_YeIlR4X8C+XHVeNqPT zQ6I=Hj*P+m^2C=!i+5kIuHT^iC`G~@!wU2Xf;O)j-t#amUw21M(O{9(`;{!c6~iWl z0M(16YORNqfRv&x{lX6}$bhdV4$+avB&!yGkRHL|SE z!mr`3mW2vURM|ga`Q@Y}c@k*h&*APix3O*vWyHPXsPk>~0!Oe?17GH^OzIkqwdwga z-OXK#;p5@J1E zMfUi{U&uE-)NZWr=L*r46M&J4xb=|ane&Dc)+#q)tIdrEP={e_N)x*?6=pUo+#Hoe zksh4{l__!sjjY8h%fbWGJ`9*@!6RO(Dk*tBGZ|J@LutVZIz0D1f z)_dQe`>aSO$9S`6CdZ;>&E{2zVG0@*se!Oc#ntd4x4Xy%X({6yNjE5 z<5u+ktIg}tthb;Ohu%}5kq9dOs=@P+3F1-Y@fq0+?@lw=1=9*93(;{;=!P0Y16>py zS(M8_v%Zx5mu_&ZeJ{LXbd2|zW4(zuHWoOv0b^_vPSnP*vk>0VG$Pmd)d$K8veBvg z!iT#m3;h`LN!o&3I_8%l+SJ)tHuu4!W>1O^r~4COQ~ec3_iti&+A2Cu4{NtDoZjy4 zBk1#l+|ZnTxW+iu0fU?tn(kZJz0jU~fN#)h_7O1%kH2=swes4F!8SW>GW5rwK7oMB zW0g^-LzB^|4)s}`v3kMR{yxj!K+o;Y{Eytl_{XsJpWJ2hHOvM)@&xvD#+~Pqg^j3( z0ReKL9s?sFQI|J*f1?n7e^8Dk24gT986kY$+;x84t_i`XI8$7h8HWQAj<1N8=|8+a zzs3YnjX+CA5$~6PdA-(u$1h%cTPwspxDp30#tday&hkt zzUdd@j#2Jffnj9h)LK(zAH8%4hd3ie4Xuo^0F%o8NEA`(ZXRSa_b}vH0G)o~?LN)z zJevtYr&PbVKp+iTYyxtmUpf7_Qlm!GxJ7CKRPv}PF9NwLHO|!$j8Aa>FE`R@8F9_R z3}NmeH=Wr0UC?AY;toUhB^s@JmxZ>ESLdf5BMxuR-~u__gn)y{&2gn_%x39!`T z!E;`zOQITxbA8`$kbO2wQ=DV^&h+H8E73*KW#7%G4O3HeLEsO_ib0`o8ysg3u=?`o zwHkx=)=7tg_R2{`))&DZ)`~>R1zMzk_(^0&LqH)C$`GhoJQQe@GrOpc+;1ddH@pcb zEZe`CyytclWQrGV&ocok9;qSi*Gh4wCN*imuG+Y>+D&uY&fhr`*J}gba8X4CE$3V(;b$ z9^?L^wP1_~5mb7oCy3MF6JnF02Q-6r)h#K^$-!Uv?Z0N%nN&WIh<5~9>_$9}--5bJ zC}puh0Yd$a0&itBRNP((#|KLdfxgsH7UwptU;QQjzP#6nG%SGL{epHHmU65i++Jz)CPE9H-R!Hz{CXZcpro8 zDryw@Ng+_55j{;Zq)uTvppBvLa10}=_gu0m%?!rwT2bkI%O48_n=){(AW=_}fTc*5 z-De=6q7uk51dEG+!8A>i2lbm9DM|bOyA%Ug6gjn?AcSlZ3YS8BaWsnk^tr|{bJ+f? z7{YT+!)K&5Q(sA$RC9u(xq6P>VyMIS>=qTNmAT!yW7J4j^|L z6KOqMULMJ+ew5_cwbYhR)wS+Yl8xQO_g5gPH2FoER(-zYkNzQ-3Xo7NCSfk|XUoh-C zNqB7>N3hL)G}A(;DAW(q2eXYDv|Jft!z-IvRK3$$&&2N+N}g{}#EH}q5lGBwxC=I@ zsiSg_%#gQ3{jANNl5)H}k`(J%6q124OOr;tu&D3gbtMSZVuj<7qzsYDFw#T-($aY* zs-uraEa=z`a^PIFzbr?UX-J)Xzk4$Uu}!TMY^WGvug+Kv(t1*}%<7dC0Onnf#?*}S zc>?>p6cxI1IgR@9M>6&4@YWoK=1OyOZ&xRG?d6Zbcaa^Y4(qUGAjSiP=+4|E+Ab4^ z+i}*WY)cZZ@ILG~BinIBGVk&E6Wq|8B@SLc-BJW5jRezGXsHOLt`8&C^%ezs>DTM3 zo2&vmTCRO|>BCr$#N{OL3+>PO<|Yqi+E1%Tip%?t-B;`n->)A=w{2f_o#TRE;?Z{R z+FT5BPKaAY8uv)M@o^_d3>^$XegJXxNDcwE%Gboxu9kNXo-Oj)Yar#S*^iCRlp|rO z7jcsyQdiVs$yfN^e*A5(_QAOq|Bvm@Ka}%-KPfQ%SGE0@YI(2t9bnY&HL!J}-+3#| ztofke!>=#ztp`_GBG-8XG_J6X6?`$Qy&T(?E!#4uxDZoE)KR_hL8%yU=Vh&PA*~x% zJKw|oT$kv6<2*{#Vwwpg5ya8P(-c5Dk}Fn!PXm7_U{P*VK3@OntRGgt7&FxbW}i;@ zZWvtU7!=jZMSAlr8t`jYy=@04tFKj7GJ;K*K zQ1x{f1R{Zii$ux} zD-TrpsO|N*?1&7_AM&6~P$0oV+lfv^UcxbtMu@+)mRR6GD7`RaM=g#up2>9O2M+!r z(ViJ5ZFDHQc%1N^jL>|BgEnz&0;2WLawbZp%t|&AO@dMe^RXjXF=O-Dm_hAZ9NDsK zb?0g^QOKl0|A<-#0@6KA5`7W15Dormd>Diaon30yG$N+C?S!T#4%8~faswjrMn<0Y z}T3SXKUg5Zgf66Y}E;LwL2G5y7Vdr5AKbJ-sC}dneyin{>zXSRr(1Dpl})W3 zNaY^KFETaCnd>(0h5o{u4_MSL!0g8;3dbH44mI%z;=nMgUJROBYh(L05HH@JHaq8G z0Lv@((vyIGY0UhDian7j{;TT6;CCBm8u}T0N`!X)J*(f#cD0%|b4<#18?n3gGKNsm zlK?wJ_-AXM_5vHDCg)M^NJ5{7%CZ%|lLPhTE2VhnAl86aS$u=I8`7iLe%he%Js8~H52&c>FUPSXBu)UFRFN} z2AsRpJd51b_2;nEDleEFA!FLg5^y)5d*B2{OVlZTA#sQM^kBKFB{igKs@FT1GKTU# zlZZ1f0ez*7;lBJnoxRWBQs{rj8qEKfSmU!9GoA6P5kFx6*R1iUvFDnaj_YI?Uencj zcN-!C0<5wbGQS2k&zd%+GHf0b#a2wf2&wZzH&^kyzdh3|I;-5UiJyaS@A-+=U97oUUtF5#E4HAP9Vvw4Fwnt1>eTkHzd|#lq94nRo$pae6ax{9Z88jxDA<8lljXDzx6*WQwS@xqEN zCwk%eu7wr|(O08{IvvC`X;N6&o{$6;S88z6tXh`9N_|rMq?L&eHh8U)k-e*uM2F=< zZulID!R3?!5S`KpdkQ6RgnjUw+L{!3_evC(%}_dTBAi+uSAVC2kXQY*CmQ>pkXgp_ zxqqz!fK~oM2QW+s+D^kMn_|Kko_quCcz)k|hSWUdML%Z>iic6|j-{6uZKBgy3nG6_ zr@<8&bI1vRnUEQ-}~I#U4j7LbsSJH4^8PCs11#TKbSAEI-H z`UHx49CpSc(w-7E^-U}eaR%L5umlS8h21;jVd?w$!Bj9_N5i?pVR}7BI-?j1z~1!F zR#od3siB;lc^tHF!zZOA1CD?W@;kXe#79pvn*J045b8?}s$Sr2&eA!qdFi$^jl9;! zW5dXqFF8|X%(6h`bdw*?QK0ky2eWkY-@n23*toJ(lf_WF80=r@KhxMEjT_0zV2s+% zz2)!(uJS=*GlqqsA)taMj?^Tv_ig)}V}2_VIM4!Gjc(dq!Ab;&eLnc;eyFN$lM((r z%$`}@e;(X?zduaJYiR|{Y(KT-kVaz6|`hjO(|O>Pq)8B^Ae4s=$_@Pz^?ZZ;Nvm`$@ z>XVMSC@vBvNsoAc{5xS_*j&fcYWk)kvZ2oFH;(pR0+Dpv5G{IV_zM+3aZ(O<4UrNT zBum|Z-wgB?m2?CAd7=E)w7C;yed*}cVgC(Nr~T||pt!EANAV7{cg9aRnZmR~S8yA5 zZstqE(4Myf(G;Mp0czu$3WPUkck(E)?Acy96KVk2oI^hhSq47#5ho2VjW$%nTun== zg|$<2a5q=@3nyB^<+5XHN)kz{YW9GwC`elAtQBeLEVhwmAaGpmCw=WFU8cBD0DSeE zl>l2P3Lwf7bTvsXH$)!Ka)9?6p0}hrp`}9wwYe-i_%%nS-RkuK&Ls|M97}vA_O>h4 zgFeUnch)0_n>)O!C%Yr17rSnK{EMC&y`vrt|6Ef+$w*(?-eBETeYIsB4%B+*s7)LJ z+o532!e_GL(q}T+(hNgTQG9PT{4GqVH1RR|C&JL6`$lkOA+$1dbx9#NL=n$&p!XY* zH^#}kUxds{u^|RU5MX*<7Olk84v#s)qPibrUahKmq0R7VI9|_^5Btk&KcKPn!K$8r zItU2S^Hu@K3c&=6b^6uv%yhkt32_x1k*+Qx@&gy`0>{9+2 zb9hI)|?t#!o$09LxSI28b~2oe#%<2H#xue+^;hO z!Fgwd(t;2dVOGTYJYh9om{TD83_vCfgkG8>bsT?wK0xeP%R8fGC7vL#>QUBAT}BQz zScVu1``!_4sBky*T~t2E{qk=|6c%kB_5Nq^i{-xxYh}z|gnM8DkkgHTp9IQwczUr9 zP7*S_X8SQ7uOltjzR>72F3ykX`c3WKbm6*x6~C5u->*Uc5Wfz;#ILVYS-bkL;*4M7 zSNuQ3uhONrGL-bte~4cZ|0#a)9*J4EU8pBYg27N0t!Tm;+j<}b6VFqhF-2|7Xfh1* z)#}vBad}AMw-gv!t5HRjfsxbRFUr%VgO;3*vOG#12wEB^lE>V;E@l6AaW2NNSbVwq z+t&1AW2@{R%02nNQSSf5;apYTcAW*md%K$L%2<|~cr^}}(0R8=+%)GrY-KRZJhUl9 z9z~R)iu-K%l1!p@4Nqq|V)q@)i0Ytxd}?n)U8s^bc? zr3S_WZl+2ciG0Fr7^JXGUK!)Zx7E8C%^@2zJaQGj} zeV^Thrp4{-QR_oK+k5h)DsW!U{kI&oz#5P3NxpIsfBE?w(Sy^fQIYk;Kb3pxA#uIK z?Jwp2^c#GiC++0;_Lp)$eoES4&I-t#q7>aQvVJ7wogvq~Y|K=?k|ub`Q>&8db}Rei zqZm|KH&LqcdBI{}#vd_mlae=JN2eu0zy*3|T~DM#!y#j9B81XImDDnZ znO-H|@oI2K7x1GQ;DejbO_iQ_<3bhMRcr$jv?|EY5mu!>qdQH^o|oMu4m~qi!rqBq zjEgKw3R7iD-$|$_$|_5ulM2^}mnd;!yc8ufP~!OXITjB88u&}x7v;qz`kaiy&%&dv zW;!Hi(k;3rmx|m=tobl{p{nSP@AV*j8bkl~1g=*W851KU?u?Xt^byAY*o|PN9Q9t6S?AytrZsf^YWtw{vL!yQzTnzsT$VfR;e1@2>v+i=n#yjh67IvFEC? ze`pEamx^4^HJXP+d=M3M^kB$yOL;*THb}s+IK%a@f#&$$)8d30C2H*sWkbESUpv%~ zx3utwH}fp$HM?s@foF)H{-Qs}3&a>(&tlhCpT2+Bqlza-4*bnsw-@Aj(%r74O{l1$fFaH?J1 zFr!RI^YU+L&?fZu^7ad;`$gMOqB>9sPd!FfN7@=eklS>w~IH3rAb?O)3$l?0Q1 zxgo?*iLPj$DcIYJP!>A~z;7hqC;VuJ&TJ?317FAM?cZ#TO)9mfCQ77Rm5g7!M{XLm zxC>yeWX*wR`Jt>likm!dwS2$vjY5hB6g*+Ekz0L*=Omt(S<{-UgJC%bIY7rrPJ70N zMFKeaNBeHGpJ-}*)!dNxzA&8493d7mq0AJ^V{sEJyR@G?+Y5sYPW;cM)_JTnWB_4i zK1Qk?$6C+?t^n{ew8AKiYJjn5Ke8LRpEsQ{oFNtkZzAjP+?PMpM*9f(@cDAuXg-|| z8yr0i_+8R=u`Ru;QV&2s|8s5A4#X=HevX(>zep@bz1qYeJx$qeaw2wBm@vwKS$A+~9GsGBD zoWE&a(fg*QxzsI<3%7gqZ8|fIvrBLvrb3=- z_bRfoRwTq_=mux2Udt=MGSWx?%8S~{nO@sc83Rsm@^S}U*En>ix+rnm3g>1lbV{&- z+a93~LEUj7c`VCIwnAjZBG@)g?PY)9=0l=Fy*G+gHaht+ z^N8xK1#18p!|aSD)pr!6%XG+#tj9F-8g%Ob&>I*gVG0C9=ZcGF_PsOtqIyk*(VW2r z7d$^knO!zCo>pzFe11h!iGJqtZ)N{~$0Kb2mv{t~^I&}8>-bWl`oC5e{xtSn>)hsq z4f&&6l|JlFLc5e0p9ru_P&H5>e88MiAo}iush7`5Anu10boCa#2ck!y2QlXq_;#>E zQ%zx_CZxe|R>bf$BPOXy*BcA&>y?!HSs=giEOZ(WlU;uoI!yVPVzZmP%C`feBV=9} zGv(A-wdeDbWZGHdvqwNq@N42y3c{&;N#)2*MBMlm1QDhlNB@{e$l>qUWnLmWaz`tw zu+sI5^w&Vdr_&F|_;6rZlC}aa3`KylfpjOxQDMV`v|*0svpjR(MGR5m?{wtJG1E?; z-YMTMVCSbro$mv+hH@|O)3Yu~L0Qfgy}+giswvhYt4@i9J74munDhMsf4FfT{L-S4 zm?R#SPnM^M@;lT-V~=GEPww{dHrlzj=RtuO!I-2mA|Bc#3(AW};{LMDJ}k1go6mi!JS zag)Lcb#ffRGrh~xM6o!51kaVi0Dhj~ZKBfbg3vK|)?KKbBU6j31Im#{1gVE_db`-GWJZDcU$$g@2zg}`V*9?%=)u(!!Pr7rQQLX z*3N?w`(odC-(ng#)+@u`Pv#zg4r3|)q?TR2X~gs%0H(b;#Bs-1aTP{JMC*}Q_={_S zSiC=z%M8>)2304l6RXcn9LrnZ^%8$Lmct_25Kdb&FvxuG;v|~ecZau6Q}YJ0onKw*!};~6Ey`pRYsUpu z-ntntz7PW*`VTDRucy$RSNkAQ1E(Bv!&R9hB{WL*0}~{z^#wP{IwgvNNIrb{ikvAb z91-+0mDC=;^|h7OtnmjdDy+9dzQ*N82U40M$%DBha81*!ZT%EXm%0jq!rUTSkioY2 z74BuXtOD=v%bHPR#7+$8qVRKlvDrNIv(k&Vinrn!Bg7Z(hlnl_8ZSN?uYZ3>{+8VU zF^4gVE18h;7%1+LoeC2S#+5E{gVBPE)ySsn(}bTQNi7L**W-YGs~*&}X#!M}otGRu zCTMVcuGZ_=)g=+)tC)$m*h`P#QIjT8Ap;B-N?pVpdsnmHr65~9#UUEr3pXarnBLX4 zlll3OzfcAY*$n5cL@wtgi+8W=-Q8FKE-n5bQszg(e~0tJH&fZ5qHHDFBJGQq;; zNXHzc`oa<&H<_Fm}q+`=r3a zhJ&{iiCAjKlAReOJYC3|fV9e84NL0P*$R9Q`v{@)LutJUQn?G+Ef?`|kI{{5T+;wV z>`dU1h=q&;T*=gqpKxj`EgPYMlPBBM7$xD!2>bWC)rQh(@2@!=+8bcLHYP)@FCQU! zCcDz_Q@TM=jg8sI4p(*A5@)|El>95^=ec?BVG13>*Cz=Z;id~MS;Tow&!nc zp`pHh9d4hmMv-dr5Pn^Vb`l-W6A+)X&8`y`(WxlZl7UMr9)OS)bwWBPgyB&XYDVHy zZKX+$es_(=>wqAAzwAhPmcQ3Lq+Pyc)1#gL!((~#;I8R+^-3?Wr9b$Rud7_uN}G)s zo+lUH4)Reosf@pKCFExNRJ ztNF4HX4s8xz)!-%aAat4QVBeTf!NoPJ*m%|4PK)|A0)4~`;#^2=mdvNM9|`MzO0MB za9_hkwg`5iU1($fPa2^HHv3?F-mgiezH1>q)`lV@ zqVGqMWW1tuA<>RBbC8~cnN?qw5`7@`^>`Ga+c(KmV*2pJ=`s>qnXTIGUxEvWUV!Wlijswo z&Ym7q=Yin3sLr%(G0BLU4R6%AS`3eGeq}zG^}UL?^7(lh;>LrKrhgeo{3CWsRoe*R zAOfV8bk2YuhoEezp*rLR(0$N}1&vw(bLG*v{ybwDM&Sv#>$Q6Yqz}IVNq!P{Neuo{9Yhje9L^rj$FLzA&u3y^nh+EOP6IK= zAoe#rmwY_SDdL|JM~Y*UKB{HOZGE^MmBp{m=Yj*oCVfU^Ukb`F6>ZA`7v%WV_q{tBx|v&{jPJ{dzOR~`D#T}MaG3en2jYhP)(zb?Fcb8p_hdXQ@ykR8?=?S_HqXJ(kCcf zEpedIzPDidew?Eu#t=fTw^dI@ zZuRG(20AJf?D0V9kSA~qy=>RTCFWu4s5=|#A#=aBC2#l(kpyv#* z3sq&zi&c|$p|O?HcA>~E+)Gs8{7)enl%~Z$hSew!+0<2&@e(H+3XO5l?>n4X_I;yc})E$9Y_tQSE+2DRp^oo+wKN zB?*^TlRD(kqdiU>6Zqr{69Vnz$ZjQqAErI(`l-;I!>gWXL^~F;1fC69>VW?$7L@0DgaZ20&iI z(7rMUgyulndYU9i?bDjPB*?_@CslPOTFjlVhyT+Z;B^-sB6q_=nNKlj#00{z$Lvgz z-^8cLu?EYbKYLyQeBK^?^jd?JpPWkp$}NM>;BfDk7ZI3sV6o10S^ zf~I^oIq0NU>QBM6fQWnL*dxaDH{QD#h;iQZh4$onrQITEAqR(+50vwv3rMF@w&jko zf8jCmsih(W|B?%j{VWI0WO(1TfYXh?Uk=jHzy5)p^%OdiB%o ztc&6IZGpao%GD;6muL-U5?+2E8x*yip-6d)kkprX4yO$rrp3HMp+Xj57`0Ca1+t%! zBoX_@C1#A8=<-AnyG|nPck7&=%)q0Ks4AyS^Q&n`nH{5$%Xr4-sYVoJy>O+vs)V3X^H31re<4-Y%gsc4FCV*?wx{ciMDm!vTe??YnE->wr$(CZEIH5EZeqi z+jiYrYoB{JVy_c7_T$c%k&)wJM9&=Adhf0M?fc7aN@j%mQe7qnH;{Kcv%eqtAtfjKAtA+RLXhvSg~&6q zc%|AXS17ON_@s8p3Hq{?2x$=Oo4O*h<>2@e?pV3flY`vWsd9!1*pq&~BP z>cVQFve>!OU8*U-;T;6t9J6SZ(QH`{SFaz8JXDK)eE4BPz%0%j&xgS!(OB2_ zQV_Rjmcq-|`YJdCwEG<|4N{+7BPbP_TY64xFBvV4ncJ6>;Tn}q>d0D5M!HC+#pHuk ziKCc*|Cnvo$DTI-XS*90)z)~+Ez*#7;Ee8$%B%iJup=%b%D2jzz#1!bd)f?TF4;}q~sfySq)FD;smDnomeGO zA-k|rv{_mB2M?q{yEx9%}s|jHjK{g(wP^Ja*}U}bYk2)!IV{|(WD1J5VRd_Lr;?UknC)pcL^4o z0BJF--Wi6YKHfTNUk;93C$^pa*w}gyE;^b$YVO(@a5KP^m^yM9GP0%AcO7s|KCuiD zrcnhKgWqX2JUL%3S$N^ZKxaovIJ3x>l*T?r>jq55jFdb^?2?O(_Cuyh6^cByL^9nK zBBtS&d>AW?SfxvMK3^&C^|x%lY9pG@Ph=#dAOS_7gyXSMD8@i zysIq6sx{DFxlN_;is4nc@DAQ8JU%A-al!42hWddhvME-a*9U`*ncF+c*=j7CWh(?d z9@vf;J5_i5MNvyZ(L5~C^SLGHD4|7ViwjRLGujGI4>Q(W9s%B01)cwn?PP31+AZdK zK0ef6AeJRmn6`1m#a1Xix6k&LE-kxE-U~8^2~WtJw8~T^LL|)e+F^R15N@kq0&$PE z#;HXrlpp>K>4x|2N!RF?odP@Z1j0pEdBzCNniOw1oAhFes@kvIFMYpBN zWlvFGdSR;JN3>FhAcXm%YJgG-M!%XQ=z^u9b2p1Sw7UgW)5!8Zf(L$G!k%b9|NUwK zcU|7Z_SQ~m9Gig}pe(wGpurXsq@43o5iH37XDy zv>|@Is*_>;Ds&I!3f?%{Y9BOp93t5NfRbnI7BCthU?tWWB;fU%TxIjS;S87Cc|BM} z89y?Ac-?dlX)8O|!a7P<)a_6jbwT@k?54jA-68GPNpk8lIe4yZeqd$)+E(JYD0v^{ zfGuU;JdH9ff6ufvkkp^deytDX?%XwKIzW_~Nx{(a%a8b%B;Z3>R4dS3j7SfOX?Gwm z`0>%kt;L^KQzm3i4^UUhzLpqtriLj6YIHAmq$%tdB-xU>ardW3Z^qk5jPDVti)FgI zNjgGud>blvAJozPG&1!Xkvk9*Vh8SRM|he0py*`kjX8-XAT=tFCo&Hjid03r@z7c( z*~*Y!W1b2zWnNnX0>f~go5XYR1`mlv1SHWg* z12SUp5`VkN$6k}_*wEx-VIMTugQuw^*hP!HRL5Cn8HSFbr(Tn$*ki(j1i^W}mfiOq z>sKBszeX%GU#t@sn$QgM9j?MYEwJ4Xz@SZBxsqi5_c(qXvVus3uK}bHm=Ox#+`0*^ z=ben_z{!qW01vhYcN4Zge<;nEA6D*iq9QBg=pLMh2tptM@b~ zrpyck6Ag-dU*%EWQDSw=?DkAf4G zco%Nfk#N#L@ga|bO~(KDMTxvm@x1B7f+pPkP^Kuny(>SuDzLRsu(rJif|N)&R6?`_ z;k-FPOmZJVW>eY8ZvvAqcmfQt-Td&}jBmk-4?GY-nEu?O?!}Y5_iZUQnPvX*k&S z>9L1TLHxb}PL8-_{D8BYN4pJFyELp-Z5_`U8o%-WNAu*rcbfk%DBEuEwzi=E(CtKi z{fl|>pQF7@*Noj`K^fkDr=aF_WwEaYgRRu_zZBz~U+m#}m?Z`);7DBy39dLZ{hJ+$ z0b!g@LZlMr4$<|VwV(Svy7G*-Ob<*oCY(fy8^)7{FheZXPoD0&Gj8M*N`R0+OrUQr zz-cE4`myqP$YTkO2DHeIXg%i-O;O*ZAEw7|NXS!!DXp|geMlcqIesiMGRn$qHUTrv z#7#sh4>bPuk@R(Hg$C*r2R5EYT89y&C{o0rMO`4JRA^ipm10l1K<9pqo9M6{Ko8x1 z=E^~vqwD^h(;z%nV247VV*29s7H(fdSP47{C@>N#^1QWTDPqcqH9{+J)@DIoh^20X zEK@E+@@JY0+q6wZ`n%z6j31@q(GQ=X7OMRh=U?(nOyN>4{R`(@Rq;8UX}3yW<(nRj zRmffu-sp{nMi72^3@gdN!E5j}u*hBiB@t%-TMLCtWqqy9Y?VKErUfR~rIvXTl+#X* z_{$Ya@7j)boNxTgILoS$Y3o{~u317RBK=_T|t;cy2Qn|U;3 ze;i($q@C;&&X{Q`k&CU@-s}o3OV3nW@1v1}3tue7*@FFudkK|mBq3G=36qqYV!4bH zH%4!>Hy)g6p2H#8Q?NzurBZkol!7J~!AxrC8p7mn<&vXLE~OINQ|UqU2aLOd_&zrM zg_TM;j)n>FJov3Xpr}sB;k#qK-_IJ0jr80y zbIQu~jfVs?BEsqcU9{()+&5TXX^Pp~<5+RDX-H}~;5=p{YuR?t=-Uw~(Uv7#_)C5PDq3ALTROiije35h~NZ&IjXQu3(t z2xoVgkmj{m>u7@*72E%_ZN|U%+W#*IpG>kpI-(!dO9|}12%rDfQlGkM^CNrlyM9JV zDb}u*5%}T@hFVfkwrH1VXlD)o(Y=uUL-&I28OFVvV>C=paVXlL+*&atY=DP{mzzt= z!o#hJf-{+}+?b~BxX*jFecgC<~EALbMDPi#Su{oK?=Q? zug$gCc7{-pKtWZ;K|w{TM@?nS&+K#^_uZ&oN@@sNt>wN z8`LC1yss3vZ;_!|QLEB9q(PDn#Q1mtn|d~rfGF#E^Go*PUgk;0Tr`~RiFIV@L43X_TbLC3KI9-D^d)?Dj!XPiu*sDrOh< zmP-Okr~;3X5>rHpcpk}Z8RLf?-4m~J5VDiBbut>g_2T|FCY*|UPIBr@MwwTSVvOtt zR?-T$QM?Ww<6yySR?5pALqF+AVOd$|%oM#@FfpZ8{7rupfr^v;_Lg(Z*zl*T5N=02oznGBkteTolDHSMF1%@Okmy^u9o75Wa|86l`E4% z-2VN+n`se~h0cz()ZLHMdi4$n`H9QN=k!o@1n>(lC$>3P>{kA!O(tiyr;$z9p(KKSCPhQGjLsSRK z-+A`O!rk)YC~RB4CRG67!OBpGx~8#2&!royGxu|GFsUZQ@5Z$h;6lGr6B(N%?UzkM z#=Blz1&DTv@dWSvy|Q7u<2Hi_rpNJHA+dhMmo_0yUx;o^@J`y?3w$SlKR^u%z4Dg@ zo;>(luGWq|B2Bm{T*=wB6}N<&Yb$1L0-Dw;U|fZC#G*7@VT5`Xphkx+A7Esp(jKj> zIkVZRkYdeDT`Di#(kM}E(OEaa$P?y9O(TYZ?>^7OW@j|w=9SvCOgQ><)QodJ(6pSn zJ>kZ}m~VwF&5SIKM`@3=MTD7*4ukZJ@SFd(m9RqPOok*rQMp=uDxwBUrC5Qo__rpN zrt&*)L`1LxfQifxwZdpCbF>t=MZmfQM^H7|H$zVbCMcZ~P9GlutRR&-hcRM6A&fQ{ z>@}_eDOy-|f?VET?2}JEEk@6-P^8a{u;2jvmjZPtN1x926U@P@7CBS?%W;XkiUOus zyscRlpc{v5yHGCYC35aiiAr$wL;PfoSjML4Fa7tknJ^LJRGjM)%YKUtXXO;kp;Lf=Y(Bd>L*CaSETjpZQk<0um zk4)n9w?_)<0fqDrraSEk_>wJ<`&5N?$S!dT6$DH9k6s|s{A+%Gn3$N_>mEtVnAf-_^1BX6k_Am+$*56i`!&v zdYnIXpCC0>f+gA@HC_T21&G?jOLu*=Jud;;5s`o;1=neuIIMWAc+U_qSaI0V&wvBY z=#kV=G56izDcaLOHf5I67>M70x-TI*jcLdf_Xzk6{6iM-qCwwY&hbttI|N-uo0#pM zp;|!UB6absew$+#px8O}(WON?v7}M-0IpPESz%cX23TW(rRB#F(36%S_en=EA8W$0 zz%~{1xcGyn@1<)|Cq_y@4AVn`Iq}pjGOs=1Sf3hANo}N4avT$Lj|Ct0qq^RuwxpiF zALvZIzK-u4{9Rc7{E!)}F1j*q*P%_$_P(RlT>lt127lSyq1__b@)F>6c%-LRFheW| zEig5Vv{65KtJsPc?KK!K)pH7w0#*QapaobBTwNz#GV^jbW6JGQR{gy+6!(jL{8h&D z@awwCvbQCJR)J3)`6woNl4JCvZ&_=to>1!3nE>wvsJ8+8XzR)oRuHzoK=0*t8vcX{ zhESp*_)aQ|WLhIT2N7L8MWuAwYHYb;>|2zXFGm4%7;*4+1-f)pK)Ar09T9oTASg7z z&Pa7zDL&M6O>VYq5lhqXcDCjPslf}}3T@^FHCooX93{A1r#*Bd4!L!WlMn)}c4lu= zF^K*78iL%?--kE~(Kf^b(FKx&1ZJTbtN^S)rDx5^CuXccl(0&wargFs%}Sbl@{iU` z|JD0NHr0)K;OGV+E^j12&37)>o6Hs3s#GUz9qFqD-Y<=RJ*vMnav<4s}hi1eMF>%kU6l;HhLLt$YmqeXT@ z=0TbO2Gn^Y`Y6uGBQ|KBGrQ_|f%h-UFKnEC&J`g;K&7*}Qg1`>m(f>#JpZ`?|fPxe~ z#HpV;NsivXSb6*#10d@kb&`K3M<4+G(Vi;L~a zkH0POx-ZxGL8F9*k<#0!yQXPg!~3ktKC{8{tHiwivQRf9nB!hQ>ctQZOHD)>zT2SF zM?_*66>%AvsY1b$Uw6dWjzI{oQul6>{xo7E2IP?l5Dzkphty9aBtShjOt{n1Xp3%0 z(x(|bS(BtZEdk}m`Ze;Ymt;-5+RL-H4@t5MnXg2)Vm6ZxV}oF=J{5o7<~+``(u{}F z-%kK1lnU)kgKm7B;J#*x@u%?RD5Y)(HtD=odf9e~!CHH`oVjA0qp&l{-aaA`Vu63$K!Hf| zurO2IcQUf_+GpAIN0M*f!Zv;hYIZKCM!l222+euoXjP1i* zpQu^h{snBvylJs$Z^Etlw}tuIH-l0p3Gf0Gy2w-F^+qNeccjy5^0%Nv*Y@q!+Gai&n~NjPVOGvOk(JB5(wT&p~lA`_#0Q#=`kLN(m* zHP0h81SE0>>5i_3im;|}o>W(kpW*k*Nl{$@fH$PF7ES{#ZQCYv%kE6q+0PF5apyt` z6+yjLiq*PqL+N=1WWI%!sI(9cuix>Syp1?TaLn;~G+o&(Xd)o*cUd}oUNHR;heOn2 z=PHI~EKIUTm0-w_-FjU|28exNl`Ix>^O}~qB^E7wn`e78v85qW7M(fKTJK*}}8I@UwK|a^`4e@>0@Qb-W2P)HA!0yX*oK2>}GMJEzuwpCX zWoLI0+h%Oh>XBWv+d2sp7*U7j<+{v*Vj$@O@Ho>VyoeAf+RlxUaxuNmmaT?q?NP8R zXWfr91*v;}BkMTcnssBW8_goD)NvKUVa}Q<+hyX3Wdn-_1+qAs2FpA;5jDmXxJc?yz1edA z)nw$Vtf(iAAQN(M4Y(qMhds1Cp@|DYU=H`P%wb&eU-18_(zBul4iF2Z7wvp%W z&@9KYJ%-MP^#kD1PxGph>IymS=)d{>FoJFcz^pH>4~Kw&P8~igWY?d(TR~o35kiH0 z&hvcWmJ@{hs`uh3Ko*})B5hWyNN9OTDzx1tFzSf=I&i(NimZk~=qh1UxKU{=rlPft zZ*H)e8hHl(BM2A*nMa6$h^XnAsIllv?CaBEW)~cN9D}`QnaWeX@Xp;gZ~AbUtT8Uw zKGwU!k>1U+dnCZZkxqMsZ3t&^nL6OD1}A7^l>LSYZ9klGWDb>sq9-G|zc)d??~;=9 zgcOFMNz_C>%Wx}VtCS&46Y!%rj2n2E$}^s!ydb$oVJHp8m}jg!?|Z~E31CLNPAqg4 z5)s0O>g1%cGYWt~Ho8C=UJdOkMMf%M>zNTRaQdl{@|EiZZ^Q3aSo6FyM_s)T=pz}R z0k_4&gNyg&*|FySXbAorvJl$_9x(ZkC{@TZB= zg8e1yp}N;oF9IsIX*ab2l@9tixXB)5_zHXcqlZbROGs)kA(dwp5SOj+TE5H@n-3ex zd3}a2g+4lKiN-> z%aA%kUvBCG2M?VSyg`YIu z|0Un>?+B01`N@BHoq^x9%OW1x)M>6${=@7Hg-hJqPoFU}+J;9=!G3$o4?^2a65cpA zo%s8eo-Xq;7I%ep(5NF(?j8!Gb%|=fAt?6q{1dq*X_f+~g9ws{WQD~w(-n&@mA9Og zpcZK_A&BSrhFZwNvo5U#{$Nb{xNuM_Mn2N-65RqRvO*)$EemjxIPo$ms6~;v<`d&2 z!)n{Pq!@ks7j>&wL9ke${6k0~?*USzykbhvtG)MK*-QA(!n|GYGkIiao7`?*1I@c&|&@Xy<`sj4lz z{!dg;%|{oz`2DPMgCaPnvVk8t*Tt-K)>6j4Q4@vnTI_aXqTE_RwOJ2>x7dgM^&|Ij z&cah~sxiS#0L7%_>hKpCJQ3+U!@k4P@UrSKUOR@lps|QBg*x6geRMYr4~`P|Zw8Pl zg=aIo>F9EgpcAJls0!X>)I_?})QUW?HVY93VOs(-0!k{h_<8;v*$&&gBq7Ya?xKiXkgW8W|<#@(XHe-=-G1FjG1B zDB|CKF4*hROeRGx4zP8*JeHXa%@fM{+kC$?1adGoSIO+lf5S?g_c}3WOikm}{ybjM zO7V68_nI&jK zYcBqM`haC4FP{*ZkkZn^@$03Dg(2sVn3fc}xwDczb49ltn{zU&M@E{HsQeop&S>Vw zuTtYTK_c~EQ-Dm^XHZb908on4Ki*IXF;wxsW&UJ z{d6Z?`a}E9L;I?xTwe6yp*hFGTbe{%>SSE*&V7Zci7(#ivDzWxh(sE0DYaqlN^Dg6gr{eQzn{||_SgntAs zl;CF`;TF%tbSQY^mbo_og4V=v8J`j9L3d9@EjE8bnzo72Nmrhc&CBkO2_E{y zNPdB7PCX1KCK@$J+u_pn-*l9e7|g?dNNB_>@T~3VS<2`LRKJ>&$_I=mvvvEYn%I9*0IOGe= zT)^=BA<2;#tgxyT+wsa~73BVlicgbiU2TqL!0*A$%4*Pk>v14k)oy9QuFLy}{?07x zZM6A=d$m5qEJgnX>^}!B&Y_ijx1XRz_XAD%Z#7{5hnlb%^Ru_<+Ad|g^FAkrAqWJc zd}Guuaw(yF0F>H8u*4m<^dzr*DuACQyGUH%9qs9XpvNkbP;M2w*uQ^&y@%}bXsl+h zESsxDBtq$qLXeAR1w|f5d}HYLi6@u|2@ALpnL%8Wi`I$$Zc7lHgsvG9fFFfW9vUGS z;`nPO{V*<~puapOvN*6(uCXT&|98oJ(jG~eq8bvptWmXeh1Gb};jL-(+JaKbu7I3u zh_srD)cIICXHS~4q6*vg6Q4v^gJ*wmr3-!h=A&px)u;@6D#CK8HMi_=4_38?&?|`W zThPrb_<6xheQv{RW~j=!+U{6=ytQBzu`XzIb479T5-JdURt?$a~Jy-=6 zoQSu_^Jv^gEaY5a@yfb4uyGQ(cZj=I*4p|X*aWJ{KkK4S_h*|#Yc0@zt^s5DM(&xo z>=Rv zhxxM9i+)V9K>oR2%x5tBH!U{deYze_{E__e?vq|5rp`Jf3emR zVS#v1+ay8!-RTtJO(HkbX(KEd8L?$Ph2BD8gs~0(CZIzvxPgrS>@b?^_w+e~!h#p=pUwd;WVlSv4TGA&-Yv%2F7%r<#ZZzmM+Dd@Gfu)KJa1zMH zW%rP_wwP|791KwqGg_hJE;Un>nSaM6rWWPtvo>M%hBm(c7c13#K2Y|4KmdTTpZE3u z^~L+pAH1mL$}8>C!Az#+bPd>PJE|gc%exOJ-`ilmunCBg z%H9kZjFCr^T9@QnL}21pNYp>#=!JjCVLJpT`{p>9PA~L2P3V7nO9q?%9aW+7Xw~p8 z$q*ML?feeg`URJ;&pIB9C5Jk1tG#3E1yc0h2%9i=vWJLW}&Sk~6u+ZX%x$mG7IWJ9QMD0Hps% zJ@S~#kWKOqd|Vd@Ba^>$W^ixnj3!MDK6sW6EoFZ;DOw1B>v_hBt{Snfx*1)Y`^BVsppihgj}KO1&5QGbiU)({ zeV<-tm7|Uc$VAEyCStH^Pn~3ykvW5nrLV6*Fn}%;^I;A7468THW>9c`Q!*iQrVbpP z`fdZ9tT10H*BX6GxSi@uF>67us&AgjiEuXNtId0? z>Qb|Cjs|e-UOh{nbc+B)&z>3^G+SOKG`W4g0{PGL*ZIB=$l5g%B>j&b?FUBj z-_P0q#t~7Qboe11bsbZp$JzvNfZD>UeKVu-(OBeq~fKZ27(?ISe?}#>ad~BaG1~4O${#{53jzj01=31 zBP}gBSyh$Q@Mv|mTZsk~`-NK46B_=BtHWJw5`)q}w4ZHg5Ybt>i4fbk+mK;*=PyRB z=N=Bfh)8N&%svjyvaPF>I+0G~Qf){Pfh>&@W70w~rt+}9Bv{js0j-!V)lDzbmOP^F z?0Z(U$$|ekONbKcA9GS+C}HLDeG9f%Lttsj!d`X;Pw{p(??xnGa)Jk^X~$7Ah=}1 zd_c0t+FC<#&;UXrGcyIxRh)FhDV%wGch6RflDl!#`fkkiBb;|%O&o_Q3QFy>O{t}2 zXDH{P$JI=9NPaC#ME{Dt&bpMyZ}htq7SyuAl|8fg;uE9UL(AUK!gNQ7Degv zmb8~VdoH;Rh-7ivy!vag$Cm=AU2p8vzXm3g{qVyu&Id z{YSy)c>9{D*S7<;Qt5V96v z0ucOX{0AdH@u9Z-23twi}^EB@HESNGj7Ctq{i(yeK# z0&l~1<{B?1Cu9E^Nj|3d1DV=D3A(Y_3(Y`4ko6beGG|tRz+ExXlmeef3oS`-h<;14 z5l|graavXGr^kyj3?QN&M@$9{W&LdsGlFRiOwY*&0IV8&U`hwz%-|EU=a(Np@2@P7 z&I|~Lcvk3444521xBq$C(gWr`tXt zZ9mq1;USs;{B!OA1}2NPz5DIM;G9@^x9U6gyy>!fh7WI5C}%_%TK5SiFU3$hw0`2_ zl3+RexFIB-pVGrRz9N03sy{4D`dPvX$_$N&ocN>+t4fk6IIidaBJ_Qm+s6RA1OZq_ z2mSwSovn?H%=Kx_t@TZf>1izNOtU^g)v(W>K;c3KpoJq)G`Jf0>|LcP2BA@0$*-=k zidsDFU8%1Ad7yPQa360uUSEIlp1U7$5n#G+j~ba&H9qUSn;)5j`jJwS6GHg;0|Myf zeFNqk0e%1kq0{c@a*6tdhWfrD0U}}|gJMELVuJ58Q<4JG#Ki%i10r9_=@Gt=|% zuw#QVa|1InGR8#(hGxfSri7>8F3afYba{nG1w};%1WdlbedF$bPk-lV0GvQf1KwQK z&|L#g&*gR9(@SU*b_J4eV|5S@77}Z*iX?GBH2nqRB%Y=Zr0{w%%!NA`?*l}HJd7&YoAS1)ZM#e^|$SEl-&ri-yu`#gJ*H_k7IoUYey`P_MAMfGA!lEK# z!aotwb93U;ld}^uQ*~8z)TyD zTzu@^oxL4BpDlIh0MydDzdxtl^97F|Vc_7<;J%hS^m10eH2`t1UO7Y1F}xIRGE)9- zGkW0b`9R51S$m655PJs{8#70|gao-KKRhfi_)K4Xw}-obeKXhlN?&Z>X8_~(_wjXe zsW|~a*u{wDC@W0D3hKvQ{hWU7vzIIkAE(U`(E+9DhR*?ye18G785w_hAd4gg0P%9X zgf0%l$GbpjK)bgpT^XO|Wbwfk79-c>R#BYe*0+>HN=wT|dkuJ&#A~_b!P^!OD^JFs z4hKKT+E8tz3Qrh1#qCy!PUHIL?K7e>Ze=9A*hr)Y=)aU?5$0b0%|v8O?Kgu%1o^-_ z&uWcA{^&{rSvTN#scW91$oVtAx`qrBd_2)ALPV)*v}@FyVbf8Kx_54boXuj`^tU`^ z`A;RhOl&?+G#}rQd9YH1@-0dWlQ%1plJu|MBfZdd8|M=uZ zbeHPksI7YLLWTjo0Uv^mznyr$=32H<)u#e2$teZMjnWI(EV_O}xtV-(pTG>8E0j`h z$tQg~Pg_F^n2f0vqFqq_`sElAwM_8WC6F~-L&QlxZFx5aaBbwgeIgr+-@=M%;@@O zcQLzOSkN(;Kia&X=O%o$dyJBe9f}!wm8^`fkLkQSYtc(1Xx8 zgzF_^N9_`(AM|R*32!gAvsr;9e^$U)^+RuF6Ujs{Pn}EE8bV60!lZTe*{no5y|5qR zENb<#-C9*_*29Q3Ia^x&|K$9RrY<83RPom2$zg(yYTBm&gT+48@gFl!55NhQAolVS z!|B>!hMNigg@o|51VS=dAx8Y})c?eg49A$j>HV^P`nEctJ^Yz+i9C^7i-%{M1E7M5 zl?t6$xgPs{f|*kGag0Fsf4q2h9Rh@0%JlU)mv^T}221 zO<0!{r9`p%dibWC4wtCq;}@6kJ%Q}5Jh)p@-7AR@evW{uoQ~LzW-e;qyVS~guB;!& zethudGr|iQpZ%E96EgnN^Kx%406nqmXRHVwzajBV_h#*GY(x%#B<964;c^`L-SFVq zDQ9`><)^4a8d=Zk0;d=m(HTj|pD}AMYN29irbNvJ@8JV4kaD}}ex?;NC{0w@?$$B+ ztJ-wdQX+~dOuJI1eK(+vzrWQ!ob=3mmAeO&Zy$|Xpx>RJJ=viWIT?{&kz z)7~Kio@Cb_V@X-6omnZydc5GXc$ zd1706H%^dQ1kzE;JqzBNt`3I8E2euY(5HonPL-PeJWz31(1n)8TZ%8qBXN|&w3-E+ z?E~sAl3HZ$Qm`K!<2t?0Oc_`}<{gLKp$HN7BJ$ z5RwIBP7K|ksP-cazcHBC_N~U7lwzTsax`@BZ=v95**&g+V%A+JsqB^{zP0yh1-GMsVS+R7mW##bWA^12xUEOwp{gkR3<=vLU1weJJil76RAOxM$YFfy8yMb^ z4G~9=ByUVE;ozr#5&N^6Pu|QNAc4oQRHAcQaWgPYu)90>p1z95A?ugrTkDAI2O48& z$$R5zNqpL%dmh~#r<$>fS(~xq+aCusU2yvQ*DYJi`Z4_4CX6JxQe1qg4j3*n?FU(< z`Y_f%TES z{e20LU&+pSq2)eQ*~JT}xeScDc}c`R#dETFcpo0=$_{N~$|RiTBS5yBpLu5S8UiI_ zJ9g=e)-CKT%5&og%-JOkoy`TPq%4KI_NTGyhAmWp@)F`y#-Ta}*y^gYkYln+dUU_w z;nZ#$;PZBq&T!)z84_4B$}V@BSk^nJk4iXm`fzm|8YpW|jF24nO{Kto1^+P|?%l1E0jo2tniI~V?Yc@F z@DEZQ=!+gPQ+=V7_KJw-33 zW5e-ZEqO-~nXJY;<#t@vt|84%o||fL7Wb~uie$jM#^ZY~ zc3&m7MK9{hL^T6BwoNlp+cKuV%P1pFQzn>Z*pU<=!i|&&P~5vT5R>#mg_=3y!q1qb zPuw}G2RS8a;1ITbJp2W@G(zm`xlX8G1Y=tHE^C%``%Wtkm{oWW(+)S9sC2pr6u$#U z9CdlmqIzf%4W_W;SyZi%E;DdG0mxXrn8@6hf*uC7SzcF~U2F|>4VrF+v7r!6+Gu`5 z6+~R!DeyH7q<5+Kn?I8$9USUis?oB+q1x|qVpZ`{j6$8PCk2Z^cI{D?0ZcPyrS2(5g_s7R?^SB4Ug9bhBbcSajRwE4c4ZEpoEPTZgl20EKMa1v^wo`U6r zH$XR9R?D*O*Yx&Ao(gyxVg6_8pukFXgfVD;i3YQ}{~1ap^mt6T+e z!ilWvMi(R10TV9zEUX2%C7zm1rYL0v^W4S43pmTtO#)S+j$c(?7FhGLS1p}?F_vY^ zrQwD}r=bR27hltUM*{wnVCb@O>DT1OFG{k222!7z&Ul6p7Vs@eHY3L#D!EP$AMIBo zlX@Z(@6jF!jZ=_pnZbfy)1-~J5uYJxR~ye2NV1IpXGIAbrH4Vy1FNN*t-tC8RI&h> zj9Vx1huGg~tE|~ZF%1pGJUA!Hyxq5tPT^Ksh{rV#7=xa8%4>!WCUD7(Ua!P=DInka zK5pi|D}!&0=L2jh*lc?QVh+)C9%KCN*^}iIblYK%m*6qLyfkhdYL|1c*a*KNntc{= zNY#WJORNIq`dSHyBH)RYaZG5%uSj| zdzhouRiouq51HuGjVp2ulPEf74(se$eY)R{6V2GDtCh78c$^HVsTS!E^><`U_@hR=$wD}_K z{jkRHV!D5Ra7I!DlA_ulQ0$c$zKA^>gGgV?!rg!log-vBUxk^Av{1G;9~;WL-R$Bm z6GR-@=@@EVMkY`z<$WT(Uv{Hps)sUMgvbSu;ezElu%=MjvG0|jJ>w9}eBI%DhEcn) zSvjjEjD62M5>DYiVug~#>zX6wbi`#~_|>NY_fmq0&z1FuxJ+z;%4Q)FrwiW8Dcp|p zSPjqurM1f~x;_53j#1Rrlgrk#Li?3E4&@08P2m|t4h}eVfTw8;s$|z&Vt7h?{-~Piub<7vdiL=Q&{|#iPLk_Y2#|qUEuf9WD+@%1@CP)twVVSrI^$@K0 zp}dI4wdFvstEz?dAcq7w3hIrt194B;*qsa)1@)(0O=%q06Sa%4{o3^jP1Xgt4-d~z zb#QG{6O(qv<2)3AgFBA9H5p56_?KZm#$XZWxRM78a=H~dg=AJip27}JXo76Bad_>av=3Qeu`P0$6OWBz4e_@-z!;# zUY3M51tukaPIkpMP$+LG0vO{M+NNE|3zqwO=ak=5)ly7cdm*>Z++PIp47w_xBY{KS zfbhu;(+$MB53lRiU-muecFprK(v0rG+*qQ~Krvo5ph=?KhO~FrIR2XtdLCMeK_BG1 z6F%Ew@g%>QeKPx+6ubs7b2_yWH`ID_0$hOq9{@T)#lLeoXe2g!DH6dZJkg5X()0CY z?`3zE!A>&b7&nvURlTsjaU_lgqrxzJNoo;|^1OU~bi}mOJtjY#2(D*`c6iTv@@;;O zNKNhS%2cKd{xinUBINb}Grh&+Ca)}8?Nao_ZN%uL;tSDb=kkXTWqKouE*>@@MX>g_ zX>^}&4qu_)-g@e|dEwiyCy;Vv!}tA`=9_OBbdqaU@Dp|JCsk_5#xRfyfKk@{YoybV)-fgGQ88qcNBZ?9pCOn6@%@hjD(h;q~>B{F!`b>=-NM)gO)R4X)oR z(W8p2-c=!;=}lp}Nd$LF=C4ECHl6?@d3P?l7d*yuVi_%q#haLT3f)n# z?BR-cd241V?kHC%ynY)VM=I zWxI+?p1$tN5%MoIArPM$TmaT^>P&whWG?R+6FnH}h@p0h*J>Qxt#DM32swJaCG`F% zhHSfb!wI)^70=m~Nug>wyTOOuq*yMViO7)Qz+LC^s&J4>EkWWv$4iHo8-$aN)LRoQ zFtow1@fx>u7`~x3J?0wiD3lKGLG`5)N2@pr>Z3i&5F`wWonwM@04y=vK=8<^+J}tQ zCqTtdg@~bUd0Uz*n+4 z$9(;zM97R>ISR_FyU}=Q*TRS)Si23m%`%cT8D;_10@LZdn}2?+GDBgu z?-6-hGD#&bBWts0z2Rr={D#39<%=*1L5#?AyDmnmi3&rV1pc292Ff^ui#Qo3n^v6o z(-C}Yq~>Uy)E0sPVO_yyvThHi(xO+`L})zq8`H%*_JMf@G4_sn=Q13cUK1f;%DDR8 zvWT+Mwg)-CBJV)p?ST-4)40E2s)>62{{4Xcy(Fa1xYu~Mtod4ZZy5OYK^}^7qjwTl z1^z~yP_QjM`U{;(kNkzYe+kZiMCWIJgZ%$mkbi+%=mPf_bcV%<`48Bu{LdGER{j5a zfr8#YIQtj<_}2@#?0R%>jRq%Y=dtqVswpi_@t>s`RbqH7ADW`+$|&ryWGPp`ce@7Z zN#8O53F)N-=>HlU#oq*l6!2eb{9b-RaOjB;`PlYn^#5Ql{~Fo9fIo%duRSvSq8!;U ze^5UKK>9bQ_(d*o$$zi+LPP*l4h>UE?DzTf{1=a)FaZ3;640as+5g2M!k&}QKYT%V zF1NuNbI@*k?GUamP#?0yY#OISEt1D`p2n; zg^CAn8NxKZ)Y#UhjZcIgKGjfYlSAo0A#ca^bB~fPd{K3S+ddOdMVw!*%o-<#AeKJ2 zO_<}k9|TH0lUKe?2NC-2s_(D&dfnLF15RIJt;;*TD$Pw}Wg=Kj&6ZSCOXA z;t-kH>g?<@B(bj}O^grqrdbW{x~&+;jp4w#J?%M!J}iTog%Y}}&Zxb=Ooe4zMtqN` zC9GLLFJ5oG6X;6Fm{D26PK)QV3Q7K^^=cQ@ng@5wOlCuS>=XViwJ; zbGM>@3F9kmVa3BR=)mNPejsJUxP4&h^umvL!iGF6LWB@+<+f`fqIW-Xu9TPbb4(LQ zP0aJN4T}$2&C9*p`z^&g4jO9pH8C^!N|M+M2MeZ)ec=<^Aq$iK5S(^rZhNPr;`0TB zDW=WTP&ZDUDiP3-FAD-kQ!IhpAag_PM$i)gF4K*w!g*07&NM`H;uXJ@Eg>!R5Zmx^H9c$ai zdU=0W4Q}eEk#!)_>>I~8fNb>7n;l`ZnjJ=}bz^OvebLOwa>MR%2+FX05+0x6y&6-O z3s!bzY^aS&REzlJBV@T4Bz!Sf!+2IV8I@VC|?UpVg6E`FsIiu3t7Psc{O}SJ6 z9)rD+1Fu>?j5hbpCt3$>V5A+ z(IbPz0Q2cglCM)HQo20gB}|g!aAY~%@;vj7&AlY+8-wqKe7#YzpgiWqk8q>KSRdt< zN047tMmvQhQHa}!$4hx83AbMAstJAlc(1%9@}nCN@UelPdkRsP$#tj@)_>WHNg zzG>~W*xMDEOX4R0Vanw}%2a-)v;=FWNy`(!)>?xqxKl3A&rWo|@A#6}7sWdZSEPBM zXKZy+t1)6z$8UF3_}M%k#%JAa(pL;#A-A1|yAbMFDcp8LH-dPa!*9!PlT&e2Sy@kS zFAr6mbkI7{L%wER>wK^W_UIK?w(;S2_u9y+e{mN~)t{J(vW(tTb5=AeF>X>%s(b9F zF_K+>lh?=#$w}eq?l6^la5uHt1hKw=(ddp;dlQ_!Way+qo8dBD_kB1{msTaDML#u< zhGoCt&`brh^vrZ!0c2=WR|-q?$}2u->=JZXb}|pMK%C@` zMq{wbTaY2}`t5SghMFYnGg3K<>ZAj^(1EF_>k)5*ekNgAjPNuoM)<66Ge3%p$wH10 zR%-nN`n($kb8xV=C(wIXoaIhgV^?>HLyiQOsrfQwRX1Ql+beB1F5d~ov)Y-OR}Jo( zpX(|1nPsI&&r32FH_2tZLz+@R0KJR+3aoq#U+72vM!_D!vs?h&Rg58|^HQGpSmm?! zQuM+9JqC%?0($qV8vLx8ex<=Af>tKVf^A9qFRtSl5g1s`Uc`F@fdDa-7x%11!-dcT z55gZtH|w8w^8|mLczBnS<3l>39e;!rUKtciRTET&pt}uJpPb$0)Nz7obd{8@@;Cd0 z9^2K{=yW+`V2*y{C@p4?6)Cmk7=nOYyUo5EaK_+ZqAOY|o0MKX?W!Th)D-N*5NM@b z?su~7uRmI`bD*tMDUx9~Cx?KTgDn-}!11uJbu4!}mG}0J^@l0C-&Z*|&E$u~^<}J4 z{@lI7dYfh>W^yN<@l4_~{E77TPPUZO(}LLgBaW*@LYDg#`?8yig*S#7h_E}TOIwaayJf=U`2=8P zYPpk(T$$&HlSp&TGone3RK?P`-?UVYQ3sAyEZZT#IgE-*y1BHxHu$K7W)%O4N(ZTXyj3 za&momtBc4Uur6tV*#Yv)1vx;Ocn5EE@7^>Ur@fDjQfl;C97{saH3bBtCH$g9c^~?qDBIV{oh)4vt6}|O1mRJ6M zY`o6P=fyu_{VCJm8Ajc9VH(s9?3`|G^bpN71n`8v-S);K;YT`%+G6m z3gRW1wDStB>nY~yp!6UgyiKXRUyTa z`RUuSMyKN7PGz^uNVHJq<7-`89BFV)r7lHHrNPn@z{3d9uzs$a#}Q0(IZ(dvMO|rV z+m3_gfakezEbeDzW8#?wafg;rj+{9^XU&hj58`@`qa};-AekVkhTgGvms?d#%-K^} z&gl9CSy2p!Fv;vMuDh+e$v|J^*h@$~dKVCXwrWU;i;0kM6U%)sh2@$RlK z2nrnum}R0litx`b9L6+xFSemJh~D+l{FoM=zvsYNUeQ^YgBm}i#kS~>s^gS1iE)oS zQZi~I)z4yKwS2l3|B9KlQ#)>gxjzBt^?#ChX{NwXgv2=xe2|Q)2tc?!==on z5T>Z0@r|+Yq6wB+#l6@0$AugTY~U*K1o*NbY3#y(X@~VD?W_0oAko*i?2E@<4|&L! zKtH<}dnc^qJZm$Z09N$A9grh#vmksE_BXHAK}X%opm-C@LA-9B%*^jK0xS2xqw3N} z<2e`ZD+u{XV$54=(h!3n3Ay?^uS-C{d0?=!*a%!zl^bFI5knuH9$iFE-NpV#6=^lo zcsg%fl=7z8jfNPD%#|pj6-auS3&W~&k+V#|B#!1_X;g#zO7Q^(k5SUS`aa(!`%!TJ zhjkL{+cdasF6WY(-KF{xAI^^Wrn>M!42qv)b4zR=1!XL_As-^^_?4p{SQ5;=Af&X4 zrnLa{c|49zt2&8tYeSn@)>v`4{kA&Rg?s2ps5=R+V0588#Z(~e0Gr*;Q8NJ$F$5e{ z4`_-PT_V2YGjf^1xe95tg`|yKxH42cn)5;W1N6!pMQ}eWsh06Na=CVYb0oanhoDtA zmYzH|7H8STO0QG)HNYLbJl5d7QEoGJf;c;Tu(@X`SVXoOtZ*H6Nwii!U*$4Yo)+|A ziNh)u0Z=A&!r;H)8I)8L8rg>9kQ#rcd{Uv!7d-Nt)Hf88atE1BMiXQ$87RZ!qM1-~mM z+*5QN1FGTT&hEh8I z4mUt|F7kWxwtvSsGXG|UFe1cv}h&=sY(|_?7 z)gt;u$Y8iep*zEXGEb@B^z&a-47#Vkcm0bo!K2nJONkfRj?m7xV;Fm^-7^loqpIH? zF6QCD3YU7>rBE%%_LcxT{(LkkF%@3Cky!Pnm>0EZei`Sez4aEu5|utwuf>oA$x;w4d1?Kd$~SYj4`?K%5;jf-N}b6(JseDcs$FM6Ng4FPX5za%S+Q_ zZ|lQ5+=;PD5Nd;zp_A%K!_TB%LL_&h>btDqP2=X0Dkh({1-G4^`aVt=kYvF>6RanDTmF5lxv`e``Me zoJtK#Z;F~_o=XZ}f!^`@9dJ`YGty(mmi@X!WNb6QnKXg}eO)u!mIMB@q`c(E*DhJB z%uAKx+*89)8`YZ354bj` z;G~90&PdSW0znb?ocYKAVR)L9Z6yd^z*K*Gl}u)v;@bBX9isFaB#H$j?a&{W-J;cn z%Y`R~&xA7+@xFc((dtYvV>SKijK6WJc**jmXWG0{<))aVYJ$Y`Xrs#`4e#TvJ3c^y zgJ(aG7x~nsF1{kzl4Pef!p=JAvPbWIU44??i9^;!f|A~6m1a7cG6Xx{jW;rp-2_}y zN1pG&Xt5s)xhLml7rU0a$FglR1k}3YSfd-&0=+3@?HVhZ7Xs$wyc?@BXtQ!vNjoRf zL>OM!eZqXke#;Ohxh`>vH*bU+v5&5@Sadq3+mp^@=N;g;->av`J3JjYpxjSg<_#MS`K)#yO6^mB=xLIZ8y1}R@{e8N+KvVSd+^?q{M5dPA7KFy*`PX! zgzPr$0FtWe;5e7u!0)OX>wr_WnlG+G!*YDf>7zon%g_i!2EjY<`D`MyI>&U0S9|J> zRE7}9?K3+t>{-1B%^W|bJsY9UJ^YWodOqG38!XY~j(FLr*BT$~<}=ej#AqyfcIabo z#QR91?+Sh*ZuXeDVCXp09=GI%xx|-u*!xjeBxoLPr(nKqoHpW3zK;d2zht?XFH`B! zvqx5w^++UiAREg}7EXJOlO00s5q$K*A%BjhZE@J~WsSbWNMZO%%`m?^{I&#})0;T# zh&5wH#UPFzGLSFJ{^n!`F8cS(rMpJXCxATrscd3C8`d>OyFH=ynY5whxQ;&jDLa;s z+Ju=&1IXUa<}!vIqKzKA#r*^*<3ufz)XvQsFYZzzHi-&<#fQZ*ShlR#Z*p4RO)EE{ zql0^qUAs1Q&GCMLBt`qjWJzW1xHzYY9qZ_VvS6D?-;p54t>8f<^u}3itd!DuCs?3& zO>Mr~6KTXsOhhQ_HP%RAgMd5LC0W|0s9YXJ|WS#3y009c%er3>ke=F za&Ky;L^KYTHI|^5cU|F2Dp_>}vD=ln!(OU<(ZNG&m{%0y2-<5cmQ@sN=Lcdd2+?fFOm5*V9 zr6t$eUo$RBm}1wWJJ&0mY>QHf?*~*v-P&qRjn~-xr1|m7RfUp0umv-nP4OW%wXuBj zwMS+B_=xI;7^IMkptrYEEYpD(NZiL0((=IeXK|odtn=QIe55Z9-wld>@xmy-6kX-eudFEYNCnGh|to9IbdQN9xaCIrus$! zNjKXlOq3+3kgP^;$SqYq>oDqVY5F4NOL&;5mF;<+#ynMOk^GxxwFa_*#u(MmIvsZ6 z8Dzw*Y1PJa*#?hjkz0iIfZ7n@cLo&CZm1a{OY~yOPIq)s+BN#tQUL z)s&s8!ihcvp;=roBMy>X)3`3i*a|VjAeM$i%xghN5^wZwcyFddfr#e!x+?RAAo|nl zW?SCN^UbBSTwey!t@j{rK`O~lr?OXX4c4^HE!bbvEo$zxk6&c}D0K1^$iKljHK&=_ zQx<(4*3LMex5qT&9Ks`D(}a~gw%u+)nlz`1U~ksaPOJJ8najd0I%)Ozt+Meu)9rb4 zCqdTNXJU|Di0@_I%1KgiQymKx#fNg!qAh+TQz4K<`-BbegyJi<_B)iL#L?;M^Ay|hYjoxBD8oA%$|HM- ziw{nZR$1=A)1*@gmB{j-b0QQ~(DJ+EX}wsV<9X=w*ABWEP( z=@tcmK8DD}l1t3OsVIF8*>3N{dV?1_9>$nZKN+l~Fn*wHKhI?(N2%DbFnBgX0m4Qf z+zkMw9f1ce0OeIts6GE z&%n<-d7koV4T5{KX4Q;cgCAG`#oUL;q)~YlPO`@n_{=?*kf<3k3~3n9XVtNayz-@ zVGZnBNO8P)fp~l9>43Gj{E7vShhMo)OpWWHj3(3j$AAu9jH(^L{!rb~G6#>rbSs^S zJGIcyo+NOX(mCJ))rS&PZEgX0)_aF)sW#TqthHBbYTmJ}7(J94ZrlW%KO> zJxPS(@QuC(#yZ^k#J<~GWg*l+5=6x(Kw6IkcuD!H;yJIm(P@bf86iz1q(Kj2s6H0h zC?p|kTl~e9eY``IL0;KSu*Q%>T0&CB{iZ18Kup3K62b8+VdKo`vLv7#mo)X?q~+SG zZqT&nE9h=BBe(4Ieh1{%T0{D0sx ze*yVt|HT4+B}n}X)NB4V(?3C{Kk#4Nju^&5@!|=9D?WoZMVg?M2zIzbJstN@4Y&CHFGBSvH7nrX$!Y&y2zGzJkp2h1_$zB|^skh#{|E@p z{n?q;pU~JpD9`Uzf2X|tD}W}A16@P*;~$3fubuok1Aih#%77z<%^N6)In;Op9JJLa zA2-Bh-w2pvqV-ZWp597{0UMkVw<6o(N5#)(6QEaIv+esf(CHeL7pgqk_Lkjs+_*eO zEKTfZZ7DV6C0x(0KBW0at=VshWnHFHIn)ZdaNjI1^Op@yF01eAsrIJ`w&OIRS|1;% z$fT4Zwk6?0(5*{sZKRuQs_KD`H^Z>7oh7&-!uLG~YlosKiGCIn1mlA*gxjW(aeOoe zmE{R=oc9tUw*$eiiN9_y>$j%r8#cnJX2V(FglT!8>KU@^3jxMda&_6uH%Efgc64VH z8^Hd*fRxjtXavjT-O9Favjfn@D)j{;R<*(Do7=rYs-@ah2 zr?m`9Pr9Jz>`S-PtXh*uHZb$U?_ONxRcfH#m>9jq4aqRq`w;EnSd4Gmg0Hh)X|Ks} zv7oD*h-aFmOHjQ(u~H-?_fkxf)!OQ&Tln-tfoaap6kFt%v%J>>5|iB|iIL$!rz-Y! zC_Y8ZG1Y9yZ@H?N*O&!~0U<9qzv;7Nm|AD^nPTi7VhiC227gqzd+iS9+-eX(uZf^a zAgOLNwys-i6N!G<*kcFUdhA$#E|tsI!pNi32U1Wi56!=n`fgZ_HSmZM$VF}wj6tPI zfzD6jH4qjQy4Wl;-pH5Voa^Yw+=e zaC!}lT?K?}7?z&Sgtu7b#;ZG86BPxw#R>PHIQp5L`QWgK0hff8%cQu0bSkx{tz zi*CN0E+RAoLvz$>IvAy zBBm}goeTDp9vG6&^4at~+@EVLIp7{S?+5zZrXgbp51yr>R3v-Xyl8U!zBjcM%;{2) zAyP7~(Q-jX-kHOp(OaK{v}|zan#ZQ_rnI@R7^hh^zH911JZ*l)@LGY2wCzjr$#WSW zz{&;&NVx}$>Odvg(>xj6(TH$f1|}_1;ZYD%;W8E{Yp zm!h_JvB2Cc@1mYQFUZq4+VIf{?Z&>tzi%iwf)EbxN3Qf{Kia&*o#yM-Ipx=%MY4~ z5mmj&Zpo?w!&?h(QITrTrg@YRj@$;MHc%2DJLW@E(~S$bFzIZq&0(=x4e_5Dw;V&> z@4uZzv9{=QX08|7s42v;oxe?Z|1t9kVCncU%&clB)Vy#r&R6C2t=_Q*c-F-zv}Hk+ z(tJ~?4WKeLi6hvIB|H0-n|E%^@v6W~v#C5ePHarmxvm`w-UfK)jB!*F%j zRn45XUMOW8q`Eg-O9P;;!0wA#aL%q*j;&yHYu17r-0@w-^~BdGetxD;51Hl2Wq#B% z<`yD5CW0K>-hsW9YsZU9*6$^f_n3Mmyq*As29@r;u?kH;!pxL}(ovfG3f?U6GcmE{ zF?R(B#APu2v~WA(C}7x~j#x*dCoJkd&(V3SZ+~*G7G3gTe9NVrF7EZ~UfumWFlE9T zZ!k@A-mB(p&jN?qI9Z!8+w~@)Jrt{W@uaEP-1+6(+#*=tIgXwq5W0F}-h6TSs@RXT z+ho$W@*DOoy|5?4+mbdP98sDw3=4>=8w5hk0{HeXc$%V9z*(xwqV(CqGpkBMJ3>ZF zWADl*EBy}N36CjNv&D~|hGjKp@$;4T?i-nsAB_bFXvLgneB~<|y*lm$mVX55(wuda=8=?Rk(6E# zV`H`KTuZ4L%|(6j9b$b;wdHeb@%8KpDtF=EZPimfI+-8tbD^lc88x*<<(=E?!Vo?W zO(1l?1O{6|faA0_PXJ7#m-a8!>RkJ)E&3}~Lcdx{Cs)1jbuj-FO&eFdrl_vMF`%Wh zh~I}^#y70aPPBnfXbdar?hpemQ)TS73F9uXbIzyG!Uw;FEzu~l#YI|-OI})9;!4nj zE54FpcxXSgU9bgh^%lYgLzfcyy9FU7Q7otw(}AI;m}z+Y0r%GhzCLGae^%RA*aF4M`G|=CN^1Y>SY` zKlpzT4;?Qh5U}BXj@_DXsc_Dq7#|`Qw__cMKaAM98Jrp!K@aAPHfg9_eutQP*=1}t z_r_baYO3{Cqn7Xz>&`oHK$`!}*N^Nd!%pX9G2+r!5ixltc0xFWZn72c$60nR45yr( z9rWY)5cNZy@-AD~S@xDuE)6cl(F?a=q6!3eTshHiaZd~CWuM1$6T_Z&b;G&xfD!k3 z@r-(N_VdhCkU((Susj9*d4gX}naY@?6$BEBFxG{qQiLN|YO2ot5zgRLUxna=_Oxgx z`!*Tdx7p8W_^@#KADbWcB+stPdGa$+^bp%kwmb~8Xs_udFS#b?#xe9YeewEf*#q)> z0*n}Y1t|FFMkBmxWP~AH@tRO5>~t=*EE$N!`HRZE0Sb zlytsi>Y%eivEu^y!1B_9?@oWX6{wHl8Nk9G1)PF?KIR0>E(!~lNAsh1xv5_s0;s&_ ztQZCzIYRFTnl!>^ze5n&fdSi`G&zqhp^tFW5z|Ev@&JRXABPs8i`VKR>Qi!%qei9H zU~E-337h2iwHnvryaD1L-s(7n*?e0*Mg~)|{oKca zQntkLT|-5CY|>Ab_3$I754#ii=w3b7*|#DoQCOgZM5){g0s%JTkO=+9%_jgN8~Z*X zc##8Qqfv9f8DJitG&H``j=9=1EG5p|31wLn?iEpgr_}w4^;95;QdkN?<46<+oxdY2 zf9KSF{KX##cK)4j24!c;6u)TNuZokb-~8r3qf!6nZ~tRS4TB+Bc~t=jYE>XRBiO|f z?q^%#v7Da^=d)XCe;jdkel)y@sS7pz#rTN+rcToTD&_g_Ou4^GWd38s|GoU00sZfU zHt31}oiIm1VMqbc`kh$U`R}~LzZU3z{#k1CyTs=AJfZUqnIf4o5#PcTY{eOjtEGeMO*_Sy@xtT;sE(BzW^3fxaP{BxX1V zYweR!3itY{+6AQ02_rC;T78Oq@4*4KJ!4A6>n>nRnk~9bFz5j6EhxD`HOeBc-r2yE zE_Q{){%}h1eK9SX_*)Cc%p9+|DjKSZ0-bZo{#6;CU5)X(pzoEzn$kIG&*6!eKUB9X zBt`~=R692_aZaoy&5!t?BJRtihRtv@fQQ8*-f0Z_m3$gGg5J|m7Q1;fOy5;j3Zxti zZ#z1g<(N8hkM&yIZ-;M!kA*u!w~Xsg-m@I~l;bnZL(zr4593j?R_T(2lB7D-!0@i9 zqOEjsKAV%FxowFC&8vmt{9pwHE;jQ)jD?%_FP?AX@pwM1vFsBQ`G5wts$J*`l=kl| z>#7~J;_wUFe4XDN_FfWB8qu(>UZ~U)lPEBjae7|uMmT-Qh$HAa_^N|TJfFl4(eNRgso=bA`*RBK)#^l++*xf*Tk*uW5C?E5%8 z?x8x>Sm2;FE>-jPOo*g!#=$PO75{N5?z%AU0X=87Om#1r^zp&07&)kBWgDA}#cgZ9 zRmLcCNxVMt7U^6dH-j{u_wUK21z5c_3^a` z^7fC(Cj3Nn?1WzNZdn;Z=5TbGhNs<@uVbW;Kf+^gDu#4lu(L3~y(@{W7Cp(C%>Z@V z>?7PA;!g=S7VllryjL@>l4r!E!>TNNA%bmp8w$(3yMeLYkk4hedK9pc!*OA>g|wDe8Rec%lL>wr7`gLIXPd@*jc~O}$|V(rgR? znNro#W^>PNt?0NRsZ{k- zG6=f%hX7PzZV*dc?X%}{?@b@jyiGgRzcSs}7G*rg(oIXu-aO@sE6BMCmFic!@gaZ9 zu2WhK3q1LdrSW1nqH2HEoNl?cwnhu|&Ollq$9BbK9a_JC1vaG*cYN@sF1ezAV1Zr||q$ z@S4dk_Ag7ptep;n7Yc7#m)ueulo0L%W`;+e0Q^d5yPR3Q@CRqs57PKxP7cqWOXnv* zpj0ZAvFS6XH`?zW>8XA+-Xs(ZA$D6+(q(FD19Lz{-vm|zvjKyanA)ROU74nILgia~ z=av_=@H-q?7NzRP9o5$+$|5k@4-#T2gZ}x+W?9Z>c{Ndl{fTbTd5?MNO5ga5x7f6Z z_iy3@G%y#?1D)jr4jZ;FQjzLZo#IO(9iLUeY16h_Ja7dBfRUAZZFDdi$emKRQ%t6q z?}jo!%XKq6#Ms%&MhdLfx4lfYAP0^f&0}G`=~)+$o^W_jF{fu|?H!`f^a0K5H!;LK zHAtd^nk7Qv_kk@Om!OBQkH*jL#*8^wztn8|5a8_!xQ`}uOqZSbV}gAo_a#bCQ95LR zRX|==?$f?UP}@&yPq&K8SKA0d-7|WD&xhjozf?C#RvMO33@e_u-sz`Z6+0PB;e;l= zeuIz2tyMJ3pQqAC>h033whed`Fw!7VI60W-ad=^I!t$0qx$$ck znq(cPk8`y#=2PiCyY{BJD5Q}5CJM@QI|cg+)7G);fby0o)(fNk}kw zg*LR$iBF0R7MY9lF=3M36$)I$#(5Vr6pa~*b*e%7KdxIhCAS~;`%?wNd$CbMhvTWg z2N$S(LqN=ooUt$YcH?T8x2vqXpb)Qm%Fp#uTAs)TyK8)SUD^Su&F;>$!pVCIerN)g0_}cvSX{qR8{(_6^0j9xdIoq8+P%Y+6ytqchfF-R*X*oCY7!y02Lb87y5%O10!x;n0{C?$8OD? zWe#6(9COX?k~%M7{7EXZ$LK^T)M$)27W{CbBN}f|i=?!8gLpZI)3jhVnxS1&@=?PO z|MkL#K2Ws%WHQQpZIQ)y!LXD>|EPvInMz1t;=2Z-t(fB*OQH#4lS0!?S6Me~vo1G}pCg?Z`komRD3N{aQ&~&Pt(HAMJENj3L>*LCp_v($y~Jln zvYu@ja8;o54s*NFp}So?qr)oEdgB{-`BP)ryVBSD>a3iJhSQb-W#eaDCu7#xiJ_oh zaTu;IPk`YbDA5sjBz0Quw0;6$sPH`jB#EB@d@LK$N1GZ)`;*CbY&YpreCds^qkb2A z{5u-*KXRT##QsDAob9r)$2pL^_8P#HuB0C#7wms725}0z1u+Tg5PW63FM=@NQ7F<1 zZROs##y+k}N@ME^6VHr|D>G|HWboE(C1;G-Vh(fHYF5z#_Nz61lV60QYvOR>I$#p*ni9C8Ge>9E-fi}<9f0-EMHbVbt#e= z!S;%{0+AKH??`(hd42p@Eg0W{4TAP4i15BHVr$NZ20tPfnchNn-D^I@>AD0}u{bVc zPKiwTJv8L-Zg^icr*n|%unFs4xmc$xN+c2d@>b>6>qcQ{^|aifpgP0u2|zqq;2V&p zQz_&bE+YBbp@V8^Z-$ncX zn?{BG?KLB<*+M(?4_je$C`1^o7p9k5=*Z|D?AOOqEhYMGK?{-c#Yz z9$F--3{y%sGd`@?)gGG4-lMT?2}U*781eE?tl0+^2k?vEoJ-(&sLD<*AKnta9A6hl zR1+`SF!1~_S@m<P&1+PGa96X5c(Rj;fP5YGr>9N}WIgi7r z*_gQ){^0cY$|A9LUc&0?a?`7Qx0As2@ z{a86)*F+fSS9>DqyfjDt8Y(;eWnS#=%a>W zO^9483gJd?HF@d;t5Fp(|uy@Uip=CT4!rUT` zR!l_7Rxxy2Oii=jHvs!5+$y_Zk3~r+Tcg5+h`h!EpAWiz)@c3EpQrQ9ZQqPkWmoYG zm;wiTBmWpuKso`|YxKzGe{iZdB+iUu&m z9l2jgL71CQslJCG=bSRbBqg4_Ffuqe(!Kv##UtFQ%9-9(bmjat)iTmUs`7H9%yi*x z&r&h6#~cm3T1~(Z_}e<3~6E2uosd>o$n2$a7EOrSvgo}8f#R1*zXIo zqur}*Xqe}Fi_}N({F1`En0(;jNF7-D z8$(V*jG%l}5b~-ZVGzO3bB-EtCc)x5daaOh*J}B zi^AtUcuVx&C!}0I0oqdDZ*5PT=wE^!ji}!;efXr}DFl_jzaGofFu=LVW$(v;wku_I zw$C84g^Z-OVXHpV5SzjVG(&D*i)R^Z5}wJWJ^7!ruq<2kIsq!DxLDK2!aF*{TQG$) zTL#1Vck)X$;ZFeLfx~xPF|4-=lW)quTVQY4`bDGy;~F1xVfn@7B4+#SjY^ybQ4XXt zOvCAW+DqXBsxyF$FJEYj)H-GJC9Tq8HF`6v zai!CJL3~kyTNwm4?1W8<6ksgKcx8nLr(k_DFXM2yRT{P?rhopGaL;Ag*v8K97r{)u(e0RK~`3m=C#HT(0I~*r$<&*{FL1S`^XgBTa0;8Qt!T+Bd%$&{5=I+ z4gX3F5`UVF+Awj`52C`14#ant1o=UC+?+u)_UYyp88%g4tf|$rz)el-;S2T!ml&)M z4C_>lj3**yt7@fNA0N8uR`>6w)4N~zuh$@taFk8SY$2l#WjZ|pTwU)1PQC?kP(Qb8 zLKJJ%mom1kr{~GUPz{U*vLi5g93M+h`q(N5ccmF;>=EKljNysU{oq_Y7?AndO%nPQ zK$g2_oP5&cpTDz2Hl}>h3MZ{bA>bIxs972XTV#7D6nJrrHdCCiM&ccmYMK~COxTgK zYHry*7ME*qy@VZ4(IK8^a3Wexu|8DQ3h#5k(+%H5(UzH(uhWMpILV<}?e`O^xdYK3jsUWnEmq6uBTb>WjWRY^? zdiUx{#4)t+gM<=xJ&mEwqD!M7$JJ9;OhJk#05m=^L=ln8*R$zOWQyeA93QeZ7K7a&k_i)mELW*%6*1iz}BKZO#Pul-xUy zkE*snn{D_PwE-6=v=@t2wY?f^6BOj>^(P>{pQwAY1RsW%(iD1KkuY#wdCyD2_j zlTW0*2ozUlh;_fULVxVq0mDM6S5FV|RHJYEnb2A&JWJsKn;4AuW1TOW6QCi3(mZWbnOCq+Ss6 zD#G2emF3(q_O}AQw+i|m@_H?`%iDk{QT3Mu9;s0DAOj0Q-?yHABn4l*DIqS=r+fm~ z-4xev~AKVjYiLW}qdXN2;0738IZGEbTHPq8zr8mf)kb+7ye$2v&qeQrHpyU$z< zV=-T&749491xf6vY0;cBhP;Fw(NXBl9#yi$&w9IOC&?j$kEkxguJbcu_a( zcV}X!&eA}Rh~!?rDnYMkedh_r-4LzWC40PJ($E#msmQ^Zx8B}G1Jf6QwzbXEiUDWdL zLXUryQ2ZBK?A8t|xDMSt79GH}>E(vmGZ2`MkWjp2POf`byq52c4TRJw|Iy!nOZu6A z*OdIJL;oKbSLEN-Aiu^y1NiX&R7?K{QU9}a{r_Y~{kwAguL_NSnSA}N|BFCpMD*Ku zt3vwgv(f+9p61teC5_&kb8{?rvh`ys-ZnTxD57=Qnx3rKu`n>y4?;ds49B<^sE?P3 z5kQP|<1YS@GHEG=poJ8m@QC8@W1vjDE-LAG{2`PdHBfXkZXd%%Y?Ow1CWGJFp4pO| zRKchmW_VzE7;8YoMYnd-l)7l`f+i020&5#jzs#x(pDZn#r-BX4jEq(91;JXaSUVUN z-Q5dmI$lHdyF}6^nn)t%HVs7&&4C3KS%c>zC9S{}I5Uyg{cni(<0nrlgS`jF44u9g zHt8R~4}VLlYS*0x%*E1B8GjXAz!Ke~*1i?+#ickWjj%)dS@31ynIK7ZQdZD;1slk> zNG4FU!R?DPXo@D;8*Mq`9GemeOg&lJ@F0&@jp^Y+E!(I$6i}| z3^(6Qfv;S9!hKpkf}FW=wQ!aB&uY0Xz2;)~x{8Z}LJ7%idhppSA@9RY57u#Fq$RT* z9?5aUNbH%PM-QQKxjr|*OTgyczzfaOIL%H{>glk|4}cTPVa+o6IQt{?q+S~+DOzfs z)orJ4FwtFUFRBpsmN1HTOSQK!K2%t!zY0Em$#49Pk?FAzJRw?dg>X`69D{R zB&W*LdeMEB^Zp5tG5-W;hA^*z*7tWGDQ4*Mvern31CDvN!kz$>y-1J{@P74WQIZ3= zQ_>Q04jhqJ1nxWml$wj)V0BX6Ly_qI4@kxPQ^N~L^aqfuC1eF6=r>VXf%uYr2fmUE zapMcf5-LWhf!eZyt)T~cs--dkU;jI_MXmh zgJsXd`#l=r@jiJ^MW|wYPTFMkw(4!y3*Mx> zl-W7|s%X6!Bn1*vl=nIK+a81BBfU0?aWt6=nNT6EQflJkTPrljGt~3q^42-CxHlPS z({xoGDpXOn0fLZStLJ>D@ZzQ8F2W;oWU+8Dp60PhwPZ*4&N5g2_vxE^x(n}OPR7CG+f_T#~fUNNwx(I;qp+qpRA4_G*C`k&Cd_p z>R%;%Kaavpc$CghQPmCMF*a^rdOzKuU~7sw9cr#MAgyVNEg%(IpFF$b#*BPP!zpCY z79)>nfp`HDoeT$$a$K?(1~YI&!)rEcRYyMW@NIHcf^N+_MycZ=nVPOcW|_~qE_tXh zUT#&#eee+q`OG0N6yx`>W|o}M~D zZNBzS0l6AU6Ypb$YJL;a`yM%sJ($)!qA5*z;gX_cV;1RrsgslK#F86A6!8SAPmNj0 zStwDl7VX3;sr{$jP;rj)umQNfpTtf5dTVRY!NC7^4R{baKXZCfOe__#H}vspy3JVW zEyFOzVGlQ2dwy~Um~$v#&tU^Ohnf?E>2AETZM#x3HFNi|dR6SZf`v=J`K>-({>tMx zq<4K+36*m%jHcneit8t;8?z4;al?I>Sen?NuXgtebgLzpi-y;l89(@mE&3cq;M0H` zcM2KpuYynE(F@au<%1bRa<+OdKwZtb>4z^fJg4*(PCw+~Q3$?`cqpWIyL~juGIU4~ zoS}3#-rg6lI=QO;kZ?7wN#QksPIVfi-2$*R&n*GN#tDkZ z6l5GZIs_4iHlhUGiAp0zAhZ(jVMZU|^FbeRFjUny=J~D(GVz`B8&QsaP!N2lfG%IL z-!)!|=iIUX+J|?&c~@1*8))hqp;DyKvy37Wk*=@3HppP}1RzjR|JH48`(A8|?PW8F ze)yyF{Z`E<1a@LLg^K+v<6;AP$u~M@vuYy%m!42$dIxTN2-Z3>KLZgO7xFeR*h*I} zM~a2UBzDg{CrrD>o#h02f9d?RK1H`jHK#40$d7!! zuWqLcIj4)=u+@aZ!?$bUpp($K&^rf>$L9sT1yfB>h~4vSBJ}p=_Z!Buea(vylNG4S z{&s_ulm=@T-xDf&{wqcMcRA;OVuFA9drFD@Q9l2qKL7qGssbQACOz`5t&we&F^??= z-m0gD=q?YNxY04JMEpkVx&*4MNNyPWGCcw8z{EN54?4~S4N|^L2;+m4m^D&09`ihw zhhog=IP%uGIN_p&-h!L(x$xs25?)7$HaVLtXE_xPY@P0)RcgPWjk!Dy&>@S3U_CTy z2RdVJh2AVPo&cYWR>WQH;2)O=eZBl3)IMX<@uGW-xT6`iQYos^Cf$qnzz}c}Z-6|1 zJ@M~C-*02b#K**_mcwT`QUbn~>7RM9^+!%6n9;Dmxw};?QwV)jcpMK<_VLQiKC~P? zhnx)JSWZG!Na$A_{1)j|dcqd@{j5fA794$Fn42&2k>`N2s4|5+^sFKL0$f_Z%49ub z{^TckctgPv!f%Q54|F^JuT*jd#Fu0M>G8MQ??M-WHct0r+Mg&R?0>d$!|YI8RD6y0 zDE-Ut^uO~kq<^EtzY1*sr_Iu@T>NLhKE(e0)&0+Wj{kN*`j@%WKY{1J#91hU{P=Im zpcMdcrNNXT`S$>YjQ;4Le_9lH{MLYDB4XTeNJJP-!})-HrDhksG{XrnB(K&h&7`M4 zkiko$H68-3jaartc1t7Ejh}VPSI2952K%t@<#?$FuPx%RJON%dc4)K3ThQUa9(PWJ z_LI0$`P~yV$LpMRNt!K3JJEU3#i-Z>d_eo4G+I3Llv2VGTFjQu+$ovpU?( zObAzBP;n~aUdpW#ASQoEWYe>Giy@ILK0)fM*C}{sNsHK9$@K=y?2fg{)uRks2ZK|} zW~_I${spy2$d)cVZyJjAL=L5uMa<6BYngy3JIcq1DZ0yQoI8B!+dCJ2iZ|y_fWVnY zT$sq|4VGF;CnA&U%_Se@41~GQl@qiasmTs`nk-9_l+?*c{LpFs1 zL;&}$j$g-Nm?Ep<`B;>RzoUuQd};pe5L3LJXwE&^Wvb5BuF@xZJq?)&870=0f)gV` zmDC4v#P(d+{f~il26}bhM2HQGBL%+fu^EOoYO({bTR~&BkHiT%a2p53v7c4zkX+S}i1=an2$~F8MvmZy*@81*U55Z&7Q30CoI4#54 z%JOcwlgDJGAyh9tqOrSl@L&Nj>|}GnurfHlcg)L|<97kEz+HVv?Gr$G|J#jiftaQ> zNeQwf{^pm@5#4Y)UgOvtgq34T4@^G;WkAODFP}V?TUr5 z_5mT)D(WPv5A`R)<~hUx7c=fCCV&?7c+Dq3s5~@!wtUYb$%KSISl!-;fmGkjqFWQ3 z{?%iHD6h459p~_(C;y2Yh{O2Iyk`HR`_XCnnv_Fcx&tJ{^JrqQhpU4HBwO{p+ z)GnHozs#w1IHiz z{Xi}xkPYgwc9*aYxTq;w4?YA4JkFuxbWu{nj zK(dQ0N*tr&^KF}qD0Pl~J^3;t$H8iBX{<~5u!v?08F>xK7V(h}5GG9U$~u|KjF%3o zr}9Sa_`DASS3Vk`3~0PI98*^e6n^g`ycry$xW&!5?up9&&4TZ4tHJq8Wlj9Ftfu)@ zDM5yEU6Znyj`sDWvwM5>m+1x#a!MYTsuGsTcfR~L!NyjxFZz})Ut9~Us-$7>dRpF& zEmW39=j>|H`N%YQQmiYQlPu$5(m}G5-kmo_+!pJrs-_ zS7fJ%HkJk~k>?~+r4j}IjKFxuRsKM-f^YYs!TR9bpzeayrDrohD%y6g$GY$56M$&s zhvJ=raJU(f2t5)z+@lk4s#w+0uf~L)EVWprwc3<8N`D~|hFO0eKXg;gbj}N%r&CO1 zkNGg|?AlN3oLfBaXlT^-9rhEzVM;IOWq^vUd|Na&FckWTtpj1^qrTlc#qQ%A8bG}G z=D0mF#ajZ~Z)v>gKIjg(?kV^j{bims0xyd;U({zu5VetH>L45k-AiaDL~>oAE5T~| z8sRiLTvt~I(JF^K$gZF_Q)4EgOn}-2wo0H|-4{Q;Qo>wEEK&Yo@aKg7_%=qHY)CL( zu8!pbn#22wd5NkishrWMtQMR|Niwp1bdUqMe8PErd!(3pHNx0WJJ1lH6~^T5nf0B_ zA-J5lDn#j6O@B{2fK@Apw*dft&F`g9|D5EC9x}*ARNMw?unf2u#ulSZ$~Aat04G`} zUhj7B&1Yi+ePlavlHEl-6(_OMC(V-L%gZBD*@chm7Qyzw;)6*b+KsPDbA5GV#1x)D z!0h|LKD<`Gkt36h`>QMo?%^egB|bLO_}irH;B`D2+vzW-^1biBp$)AAF1rqFK!=Ef zQzpgS#A`jKrc>hl;sMOf-&2|qec%o?r>iG$_qc(n%SLs!i%$T5Egy$tQEm%HO({(L zZ+7^g}wzL;Y+>4}okhT!b6zXHv0d`x!nKscn0n8DDRJpE3URKGBgL7BB<hgwpWVTm)9;qXYIp zaq0ZtkvxJR@5ayct(j_~<4mof|Twyu~unYHOhp)}b^KcEuPSHhB$ec5~U z$SV!3vTp*26#cddRa~7F_)hu7 z=B@P$x_Fghd!s^+>8NglAabjk8134mA_rFw!=K8pDlqRdK&y2H#%D)8?}-FKOIU~D z?`hu}660)42e`1ZpCbPt0#e-tT-{7tE+#XmD*cgDN54Z5xt{=QX&MLEn3jRj-H&IJ z8=n=5U1U`a!ZE;`n?gIrJ^OQg;J@%PCcgkhW{L2|AIL?1_%G)azP|#_^#8*r=0A!j z4br1z(9)q$nTYiAnbQj>E*|i9QfRXpWVz6+$|dh6kW^k7cmgb@^z1^hEe_#0{2~^K zI~L3Hx(`Efyblv0`Ld_Ol`eUQggB>`mTSf`GjmYw_)y)&c$AmclVu;x@d+Tr&O2W) zH0Wvu`#4AD9ROkeo|(lQJ)`w2Vb}e);mp6xWLUznH}WI*18gysSA71)$-oAJ$)*g< zI|`*&>uljutWN;{6~AAhIT!WBgBmXE^Bx z%me~#*X|cG7wj2soEf3*puRwFUny~ncii;DS)76HQUU*vIRAv)|5KUtrM9E!&bxrh zCSztT-$4!R5SZzOJDD8-0D%200OOa@!&fHwwOCu)|}Hp~^`9I1Y=*5(c1)cM}X_b{H50xJ|x0gg)vR)OdX? z*AOh2qI4f7eJ}HPv394NeCnNIV|qEWnl=@7UahJ(W-BTwFR6)}8)Hf!3H=yBjY4a` z9p5S|r7?2Y4DrZcQrX?Yd)fD8RokjYo}Fiypg<4kd$%xZgg1p9PkfDY3yuQD;sZ}h zl!J)_rk2=8D5)Ou;b9}k5|{1vAFi^7I<D^G>4_rj`vlJ88H7Tp} zdiF5gPXxnP_9ILSan8uZPC)u7CLq5?YKL_#89WVz*)^c>RMhzS9dPu!AkBM!=#M1l zMm80k1#STq34$jiq5G3O$D##|h2E!3{XolkaQ-b`vZ$-GKqY|v*(X5!WG1k-@(JMl zU{taG$SJdr>~*31Q7JG63hgb%84@J#O+XivF{DT&l$>zy<3cZVp%`@?O0ZL3O5Q=Y zU&QQu0>o;hLFC>6dAjd2Ze?B{D?g&1r6OK~&rq80Kxa9#*5*3SkKv%O%vzlB5~1SL zJL%nS+oJHx3ds#}n9(5R&g277lGqb~hU`k}As+#oC94$Q^9e99k-4%6{0NF>K#+0t z0y;dCygqnK7zKyEubLA? z!+*2YwzMV~N1_PPqVLNJg}YvF6j_av2w!I&BR`) zY{t?iCZGi*(+yA1y{=M6+HkloE^kZ~eUHeju60Zed|7Rv?!IBW#}JUvIns0YSTX-H zn0en@57?d@cY)PFcW7fbe!&=B%QA5`jJ~`mS+vJ`H6#m1?Q%FUG|sfQF#|t%hD|gh`j9YS z{_$Wh%P(m6Y<}t3I-xqAP33!=+V+hdU+kTKa?X+7|Xms%OW(?ng{?8*J_2?Y^ z)lgL9vqvwnvBUIAAlIVc{ibvw{VQwtKH*l5b@t+Mg^9ukn)Ggz2I>Jo2%f{&2uV$k z`HAruh6c_Itv3Xe#aRQP1UGdwNRq5?3X8y;VSy<%phn2E+E5gSI#_eVOr=?sj9y~@ zxjktlGoBD$Jsw7(9ISAVH_M>gkywAfh<)FDL+^&7<*vs$J?yUR)=BhHf~{G6(ZHLS zEZ>JOT7niu$*_sR&8k|pd-vF#s(Q;g3bghUYfYALh#D zF#?VFgYGWVEVK9A-c(24bFxfvgV+}>bH3QSMc!VqSlY zFjhR90>7^`j%3YNqo=Lp8y8TxHcU2yV`<3hbRwAHX8Omj@{5eZg+kVcv;4v4&>8(T#ClqCG-cjh(`@(R#o(k(;LPs(Olft=Jp&%57~U!7O|7 z%jyl=)%107vMmb@EQ>j40P`(X>o1qXaA-VV)^ra4a}YSQgtr0rO!V3+6g4B47#g zGKI4)c#%CvO0?H|X0e!4ygUpz;o2PsDno!4~ZGTbjI5&>HxzZ3+|)ytD! zeS#uM+22KVfAyRC+gR}r>ZJcyn4iMnm)eT*A5nSt|7AJu*4RT)l2idoWJi*x}9UyZ!~GP)=%F zN)947oCj|QhnSNeB}Oq3Jd{-PQX6}r^bPnOyp?+JT^@PGya!=y8g{^`Tv#qYdEu6} zhfG#`dG88I!npj*fc_uanl;+&;oz>C(o4(&wyNduCR|$P0dmD8L1dVu$CpKphhrO% zyD>J<5~|njTG==3iIpdSTQy%lYLOF;31+Sc?-L-Mqcp-O-MF+G)%)OGZK()cq`n$! zaP3cA212J-x5ckzpvWj7;%sW}y`}Yg!N6g>5I~8+4Y= z`YnVA`lHI32Hl*NB%9kgV}8q$W^h%e->Qlr{}#R8CYqUc+1mPOgf>tVt%W*O#X`EA zv(r1yAPhcxSLm;x^Iayeu13N0`>lfREfK8>S6%X@h01OIM?g}@4aqurLLiY^hHo#*yDZkwa{4( z>SfFm;3#GDBl`OFYw)zj9wk)m1e!v&FLRqWmo)AUz`x)hojLT4RD=vD9=)41PNq$K z0+d3d@7?l6-H`0@{YT28<-04;_wV5GFOaBfAnEc1 z_}xce)SKJD$9CDH5uV1M9MDryx#N~z0t1Nz-uvV(RrOQZT{J)iGyYCknl6!=6#FFv znCt5-9345kXte|^qsa^eRN(PTz>1A?* zOq|yFsmM=43F6wW8GGZ)JKy|ut>6nvBr81o0Hrvk zQWX{TNK|OnKB}%K5_}xP%A=DBiwAmXSY=El+zh$%%U=Sks4y)d(H1Xff=B1gxvUTt zgDi)ra%ykvY0gv%?`q=t;I!CjT7`R#W=T#QIRJWvi>hk7kay$E^J1rv@a#fU?o?rs z{_v2&2!@N|VZJe%3KT4yY13YR2p=XeA}-(DAqL?@+xJi9*Fr zKt2H<-c@;sEDT0QI7K*}t18|EW-BimA-RkX+itHhn8RppnquRyABpQ5-<{o*D?)~q z&}QqYSyv(lyt{`Sc7xlS)uU@sJz$mQ=hQSljkc(!gSX5 zFyr|LF)%kFLVf(Kyy8PqHNv7Yar;Whci6;x*~=0A;Zrp+Br};XC$Eud`&A&pU>0M` zW={F=AdGoD$Obf?GgccI{C?3?{LXR z1o3Cxa(YuPbh&{lyFxJs85`TVwq0_iYB9c9e2>8f<}1~;4b`FjObs7P+tFKz+1Hxv z$5{gFapH;hfxV zqL{b@Av`-b^D?EI_CX2oBYa-tLz0?!E4{ZCRutM_1QWg(T@w#yHcpi{O+;Kd*)t{DF> z4B7_9AzU@T78=V2*BMcPYbf>aE6;pu9ICq{Z(kY;LE?l#r>pAP>M5s@5YRF?v?y!cFmiBpVeo6>SV$s3R(kWpR&#*+#qbIL-_$xJeBo6wF`Y52szIi%V(UY zSRSL^@5!p*%4|nU`B&!{${3;J)i6895&L`ae$IF$#P#VX$;A$ellZZ31E{F?`BJ4t zopmQ}SJkO#{=CI2d^8Kbp7m;$wi~;7wNnQb6=x6492Fai@Xe#)FIEyvkK#@e;V13w zb_pbP0j{6i&Q$vxAD+7u6JyESIGjVpoFI2l}zaC1FRtQoD?_!uNYPlrulWfYRM zYL2orCq}#@4`x0N9&xwq{$d56Wp%H-@Ni_dwGegd=xD>v^#t&?i)E-t22QQjn5E;) zitx_I-UXZ|2}#tAm1LDSdZg9(t%lb---kL~6DX_>{piyf)2|sfgQt}0@4m@{_%y7m zMVy)gg-)rpMAju2)JmueW}_~t_Hr&*_B5G{DmMEy=q1WSI>AVL2!$;%qHc=H(6)nFS(LR$N`hsFFcm8yrj^a=2CmMRD-4xxKpy}h6pA3`$r1|EajDMEAr8~wcFBP`^$ z1X#v#IuHzHty}C*fTn_N(oChp)#hMSx!Z6f;OTK%=$)PRFF^Jc-7)=`2p!jKcYNzv z1q;lX!8h=5GWhhmFitTrrpu9?n0=U~@ZoczYuC1PDhck@pRjSOJe?f(qoHW8~h_ zJOP%WtXAPZRzqV~G_l(>HOP-}_GbA{I_Ny=Rz?-|F z_rNJAd5DF+Q3|o8duRmRN5SB0U(2U#SIRZ~%2hS(hH%J38jHALBKmRp)DVG zIv7ao6951jN|%C!!av#p2PQHgAmIy*eW{YWK=9q+qc}i#`Rx1x5)}Y)G==O!WQ(8x zA0)X89kPl!WEJws{aq}CI~z*p^9kr6+@_L`9NiE3tvHpI`|lvO3PPY$+G@fWKTr}t z68P|wFcUa3KD1OVS58llEdFQD#AfcBsqWf|i6!ymd+krMVxVS>g5@Gi~!e zK4oGEZzL3$+rlK_Jo0?iUiyZRn;}oFOd`^~xeebd;5s3rZqfrz({j+EBxnTO=4c#()cpd?EhqEBSt6cf zhN1ewXmaKqkbP*bB)jgrRD7v}Rp?Qra3luZCGq3(zBC~cxTQc{obAxAbl4pK+Yg_O zFGs^ASvoz15sY=wn)O6eD)HIhjFt$h>&xybstt?yzJ{fBgjL%I_pU!KCAwjCF7&&m z3t+OnW8q=ge6h4{jzqM|2W(ln;wFsVOB!B($g7(B!ln>x)!*ihV|~`dfkW^TzFFBh zVvMPQG&PWiv+e2(OJt=Qk$5)P*BZld!xrDJQ_CT?)0nmvAE;?O$b=j#5qcJc_R4bR z^^mbb=iTFiy!{&|ZeG_mz_{r~q3czN{55PUNc4>6!M10gzW$eudR=>Lg5yVGB>Kiww+`4l!bjL{>@2~gmlJ`A zNrFe4M5ZGR1NIb`?KV6GC9uA734zKp+nsVY(=7dN6u4Pke#R;Lam^v7X!gGQk%EJqB z&h_^AObqU~U*{Jwe$+B-(Bl9tk~4TL#~SLAyJtE}g3WjAh31@vz~9djLaT0!)oZIo za5)Zj4g7%}Fx|v8#J7{BSlLzfij*oE$>PNp5h-_i&cG|l)m=4>&Lk8WxvI%EY?YcT zVQ0qxQ2zQ^2}fy?NhQK&GAa*x+34H(8do97++u6#3)X6@FYn%r>uMl#mmwyu!w1~4 zweBdi#=CJkB0UT`IG#=pq(v-?j~D5fMf~`3d{g0Fd)?`5@0pa)Qm3gMbI+*1A1U^g zPVHN-9@k@<^(~8IY-fQSZl(9~oW=0lC@r~dqf*lH@g_itcnYCyPDyfeZvma!2y?K| zSD(GR2}x!HfV_4^P~x-3+uW#HZ97@HP3?%$3Lx^KSnvmxM~O=`ZmX9#=srC6SJkGgYJe}JsYwtq6@g^Vjfw*)BoX(tU48xZ z&Cu2ppna^>7-^8f*20fb7@iEa(P8i?!8HdV_%QJbVnE70K~?jrX3$koMw+)f=5FEC za@1{Xlas=bYKq-6BIcjnV*W>W&X#|8Z~X_leG?NA07qlDj6&;@WMu=0B+&*qH(+MM^0S@YuQ3O*;h&>?G5@mptPgytI;A zMou>R`GOmvdB9b5YjyuqOTd%~$&0cd;2}U)sQ*(r|FQZ>%&~ zIx7m9_5h|kn{qR$Oj#w9;X+*ma=IsS7w;ujCeAy!B4n?@tI)p=Vu}pmtxQyqS0S+U z2y%;tK1;Fu*l?}gVIikt_T4WU16EwJ8=Tj&Dh^DFJ@pV~)Aa~`xC?E;JQS2Xm%yUx zVw&0R7?R3du;-o&8ynToa(MrD0a_S>!Cwive@^5-i?1-Hmj18)FZ!!@X;!+2|DRlK z(*Nt?_QxIJA9im45}l!o_FwjGzq5v0pgYTa_P>k9FuyX2lBdW0%g#;g56u4ZtLp4; zlZ4-1aK96x$;n{JDrs11-?=)1L?ypH$Hw82{E%2E)lSh0hvvGInPp1NwQoJ`LX%6g znLK8_)!l&VqUmiQmM^AVC}NIG4nM2uQp#gjZQj;!-RczQb6CW8JK`Va6cR*LP*;Px zh7c$G?ohi6yuyDs-MvPhZ>#&NyIwGd8#8E8YqioH8fexD2(FbC#Dsl->QOnEXaerx zMBS;GVb#}l_p%PXn~4y1h-^$iPg6CU=D7OW+1MGgw5gft^$FwaemCDeA*}VOT1l+s z;U@sM%Qfic1X6iH=#~BPDqSEtdQ0&-*Tnr(qUA+lO%uV5jA;DU-VS#W?=eGh4q^@& zSqN3Ef{l%IytnY+1vl%>>kmOSyIRo8)q_Rg(JO!9HkRISS`yjOKJ2rdH$2H!;~tNG zEAE%T=jk&IJM{jB@QEwVXsG9TW(@-NuEx}MO>ZZ1yrVqLu-?lPdMIu@GAO)R^Dm+^ zWTUC#1y9kvYmj4r$Af{ldtt@MzAr5ZABVVr9O#D zGEqZV+t3Ty6nFyAc0=mH2a^;~+Tagf08Y8%0q^Q1ufbU|6YNmz z>jZnjVg;%-gdAVwJB25m-=Fq#G&^Zg;LlfJ5%2YaV&$M|z z7g7O3Y*YIL;K>uZ+kp;bEdB{#xBYOHgL-r0``G?S{tR?${{*ONp2~;bCC^^DKLN(` zp_gI>Xnn!C|IsKrz&fk_380?$Xz*<8viuIXDGHuc`-S#*$no(&7DBuH$gQ@&OU8a+ zJOTRWo&dFvMps8N0i|S%zRgF_XdYkY$T+(svWl2x)?yp$_m~fo3B`)xk5u+;rHjFW zn<;i(j()+Rixzv>p&u>BPmjMka5AgC{NZ{^A=AZaSHMfqV8|_!OZE0Ftk3^(gx}M; z8-5G;XcSt}&-wC0fU`V#O9ZDv(9JwVDB(RS?-$Te-7%_KnGtSLoeFnQY%Jq5lCOxR zk}~1rlyxw7hbvr)P&75cV7tIA_8LkW~)PbCt$5cxcFU z(v`;21a(#3%=hTW9U@wYIuQNF8RPyLdp zo`{Z)X)!}DRkvn%=qGXM5uYO?))Z~cXWcB*5w(nX{<=s+dL|nTyH9|rVzSOR$~sjT zMki|g1VdZ1md57-T>1cB&}8osJNE=GBsn&o#J&nwpfT&`=aj?OY8B_~nrFpaujAWl z$1bU4Xv6Jad*O>)l^y{p*Gc`3yVvEg7Q}a~r%Y**&e6}_3JUQs<`knEUGQ+Vrxo}`@hI*^eDWQ|Xx4Nx@ zRT>WFZJ(FlbabogbPb7P$?j`cLii+mEC)G;5*pdG9JNW0iAyvP6-gtM78aHk=hF|- zL^y;`r}5BWRNn?NTkB@*85*0LP*2MUYcG8t#F@dSY?jWkqj$1Yd;**#8(U`VR!^Vp zp7x0GS?e`ZqJFV8fcO$$6oKI9BvFG*GAEB#>x~mA$b4i#@dWLM$S)z(sKrz?@`d%q z-or16PIMv`Z@wpB)0#$o9>}U@JveL`!oyz~yYX5R^mR6(FU3QC})4es==AX8uLSw)c zsRP-VDO|8WP;~!fO3|haKTm2(Z;C#72Rd;#bOfF4r3_3DoC^2NbZzn!?3TcxG{KFz z9~%QN(?14NSZ~j!+&KX6kmOADrOQUsVx^ia-moBM+$4oqjVv7z}ixpCSO*E3B7}93*7?a?o&(N$!$NnkU;`P zUpM$%F(22~SG9Hld8meX>A>AvQQ(=_+af2dhn?7~((}fdL-n}zL|3X|H(F>=Zz>8r z`|DF2^ZN-maCmnR1c`eJie~THJ2C#96`9TOSJ@C0cSKeE0TI9IjWDDBvLg7CmMJ~{ zt2uk-ullnV3PY%x{017K^u?gO$>=BBa!@gELKr?T{!|z0+n<810zB#@JHzS?RcIHU zM|m(vo-A2f+J#^>)s7<@yP%PvkS!|cA-=rqvc6GZJ6V@Knibb!A)r-}wrms}b4Ig5-J%TfO&!cxTGCMURw5Pf$HZS1B7u+rqg}#} z70=BBXCR~Fu6801osN}GlAW8NIZk6ch8~cVx~YajEVy3iZqGrnWSxNmg@)Ab$FG<> zvgluSxqqCoey4T(avM+<{a1kh``>E%zhS;IdFu0weF02_%Vyt11J?GRz^O(gNxzC< zt4GN`uMq{C+<@YbZ&-x;n?HqWhW`?2yZ%lI{y!POzl37=Q2`pp&%e$y zIrN18x5WbAU_Y0iWZR~Io?PZ7mG^_V!7fQ5Y)bKv?cA}0P!2;(TaF9guG5h=sb zg>Dto^FA>td(OR`N=p)Sb8XDto182Ep(~7TU*AZ?JQq2g}2!F@mU}w+0T4%{1 zEqJM_9lV`)ojaIu?xA>2tn$W|%lJMRsFz@Q<(!j@-I3OZmj1p&M*$V=n6_YKin7>o zHdp?f;q#Ufnn%Asu$CB42)pEqaKgbZ#@V0~0OyD%*!oV-d-WcKvn%!E-MvmYmB{O= z;~#lLvZuo=eTUX^ACgA<4Is?pHY$07k!h+6i^%QB!S5C~w%tF%C)ai|bpSEAMX`#= z%Eg%mzj$o^j5IuYS;VD*ZqS4`Ndo#N%g_)JmlkApwh-NNTjv$RFy5$llk@;ucOi3V23{D2 zI($G7N0$L`n1~;<5jn(pRl;-Qx`O0?Nnuv$?4mT!PWiHLU}>p94IE^V*AKb~?rddzo~rh!{gL zT_^crI=`>^l&P9zeZ%qz5c10{YpfJwAs+oq1@$WQGRyKlA@sVr%}?mf6W|z%*PZ}- zv>>RqiwGwQTEB+Of|Ub6mv5Gjp8&zoH%|T_*KSDq^yBeq>T|PL{TVQ&!4xwMx0eo$Tp;(|q&<5Y5TMH?)Tzvv~rHOu5sg+&q|HgNi<7T+26Kjz1W+ z0(XBUV&p13%H`ZcR~cbYbcxm2t^@&hp&E7#IEFuCXo&Juwtx(wiHCg`9@p8#K* zFQJ%GFW-s&3E;1)ae2@@RZRZarr)r9&muk23+V}Z9r5$|Lm=wz$2UK$wPrz7V3tmf z<_XnbK=vfl3}b#q|02u$@-6Uk0y;*m55Ut)sKgAZ#0T%0{z`1VWFdl16bgi)TNHiv zMN>(+dIEI0Q_g~Wn1G9Opbx}%a@8cv*idm#_Q z@dTiJp=Y#4MI{#Zxx_5uIiuJc#_x&d+o7U8V+|aduG|GS)iS|nK?@QCNEBaHj8-M= zVaF?Nlq0BP4vO=4_A8@85O@TnPNIPN6~gxAej7NcAo{e%A@P|92w}$9%3bM-@=ar z)*krMGMNHf^HtY~F)C|>q1OXFfc1stuqb9>Ten&^2kU;~R^eh|+wCx=VT{Asc<5@L zS?H0ZKiv`m;4FFl`tjM>hyHp-#Z3jq&KuOGW(lE2%O%!Rz8Hqgog>|N3%C$3 zu4tcUC3zf>XfY|Cpkvgms*JVhd$k3_9D#RHzL5xf-~GDD;Hy{TFKDc$rj^Id1|wA@ zxl6gf4$%wKv~HKU2{@28P9Bybj1uGu!$bw4Sq2=qye(7|FPN_?u(gC6VZW!Rh9lBwJB6=Gr@x z_)O%!sCx-3>n&x<3F@}Qcj&Lc2D~F!l9$5YQwjZr7L}=TBV5P3n0+2)yW5w)B(Vh^ z2Hks7y;eabj7ufW;EtKPGAW*EQDCfv5BVPQc&ff`tyldDN3omR;Ink->Vk9V8omun zo3T2k!7-sTg0|1*Y}6bB64uO-He{CvdTn3sRBNhtxkVN%8p|i+g=n1*>lS?`(h0u?#IW72ym#C2MRCoe!+0=o}Dh{H3=0)h- znRe(BgKPFjjI%e8!*qO(sCMX{(>;83lEe=begZ^0nAD<)BD5m3gi25?a${Prs1ZXN-~Y-<%V5cn zNX$5xEY|nPKt0>J@`aL$YX>m_Zo~fC^@HoK#*x^=R3mcv;}!_iv(W{9o@@vO7Ot9W-lTtk z5BW3`<&I8f&!*xs|8AT9FQM`m>Y^}!PEvW?^i^8EvXaNZ zISDxKSyX1mo8^z9N8QyotS!5Q=s!a~el8Q*swS9EbOQwJnbrd0hw61jRz29|)Zwf7 z9tuRKj{{_u^yQ{T3|IgNL`q)WM7mlQ@c5+9M~sQ@>%T?@Qh&Ss z?o_+I8?X#7F4rMQr%nBNfr2&UO++k_yAb~%)|LMvkQ<76N&i^F{>x`8N_tcn?w6O? zU+U_=vI2f-ufKb&KmUK@!S*jZjz6gj{|_BMekbT={uYS;4Rb&KEw29u_KkoNE#ZGO zLHyU%#wRB7Yg~VPBA^2e55Y_sb4Rn&u#NOu&;uflmVA8LTKR2;o0^?qf0U`y0;-Ym63Ce;HEf-ktuHy?vWj(#L>&^ z!hOHbj_(|}wW{>K5GU$HMk-EAhteg!K2#Ommic+Vxa2-7U58Eg)tQS)HNM z@6Edjj%|WEeA@?W*(0-L?1PB6wlU&jM&5Enp%fxRlCT8bEFSBNZfBh|MuK#lAYp1V#BzPoI{sp_?v?{|1{<>;qP zb!jC;cG+p!^nR-3^8S|PgNS%=LqH7y=IbukA*zy7eSee6eICXm1f3x2dq6DCN~q+u z@1`5K?HEM`pf9?4qW_ohn49@tvvVH&2gPPjKkh|B)Kh+W zGRS<9yp&JT*!=Y+GRs(PXR4yrIpqu$(xKK22;!Rxc&{c6a75&!iO zRCw(fhkr8)1%~E(hTF$#;MzxW03Q_hrW}Dq(+Vxq)qx_i5Q)lEudS*lfc2fcT^ZBr zAwOXzSG=qD6ChCKnwAuP|p`4zuKy`vT-ulZrIhH}CNX#ips__IhL1`*fF>tNki4kK+&d^~0E~)-QE~v4usD zTPzs9AhknyhoRzd8b2iXx9`Lh>2@$P9!^lGTZCu5CBlNW>g94L&-*3PkfkNVc&4xp zZ+S?1bjx7|=tFi!MKJUjTPe)n5fFy&${g+#B1KMRz8c4&6n&?_AHr#Ww(t#hctlR+ z2|!@Xu(YVGM#6?J#6*6sV|&X-45WI6urInv;*9lB>NoZ#Tv`clL)t~CBAb`&P3w z<6eEgs$2Lts$*#poZhT4vhfGU9N~251Vduob9o$wkeApz2;3o#g(YYXG9n`lfd%Y| z3y;O582ul%;F2vz+@fEqEtu|Vk5Xqzx4!H}n$ME7Tm5Dd;#q$9ine~++~w|mGH{Al z%#}*kU!TLgpsBcQ1`UfQgqHOQfIZyTv|t7ODe-i~+I=|#cXy^~#9=Xzs3M2KFAkPmqdy zrxV&2XoGag)S$FBQxVJ|KiCm#uhL0u`J zM3IU1umt4_x|ko1?3Xw~&{z6XID}&B7`L-|Eh8_x9E&l)zM~7>cFgnXJH<)mAb5@>6Vy6~xd?#sX^|ImR)txFZ;?VK=SBb5`@ zwn+7B+=_J;!#5W-S*1Q}OOW;9GrGcaZmAeY3B}NBU#a9~<@p%lg9mZyn4=zN6vLocU96GTaQ&QiA)KaGV>JpOT7|j{oT?KyqvEi^6B}gi$otmX zCKQB_09Ypw;!nQe*~gvah_AjZ&0<$#`hKeGS2kJPhAhB|6L|_xd_L%O?9mMc#6piw z-46x+r%lNpPR`WRUX4(Y`r2rE-9n+`f&($+vp5-~5&Fxq)hcjSmR**OXJ{YaNSsb{ z+XOorLvOp?P=&X}Md;j=MGd3?jd^Kk<&k&WE?7~Gn9a%@Z2EmA!y&8go9wyi!b-kk zU(h9-p}4~^_SLn{&C^{GCzG2nXYp6n;>%D1OetdCWj+fDgGVy!b5*p4f1k+ne!+$EP-GfMb-Z<{Ztn4SP(Q{JcWd@P4r zD6g<-i=_sh+4BF?abG-LCXDWMk%*v?`7*}htb|q6FM^G;O$PUicHK|wukn0XR{1=B zB<7bzviS<}=Z=7d8^`$J1rXU#`O{|%Z7R`C6}Pn)FR7i91)Ml+A*D$8KkA(+RL|!q z45{`}k^eF;kolEl`L`?o=$Ah_>HlNP?^mOQK(?UQ_4nEW?!kV??*@br{zr{xr(z>#iyYl4qYGjr`H( zHJ(AW>1`cGcbUg-?}vs-UeJEF=GJbV%TGdFnxF=!7riW-Nj(=SI1fDar_330IGmV!w$ek1j=<&2 z*YnN{dWM$a=7bii_g7L2_plT(<7WtAR(sE)K(H*?9&R0D+J`OFH zg#{8{y`tonwemVeMcA|_Ah?@0j~}m*!56qGZT3{~J{4W)Z_Md+5@Gs*U?)l6v&=iY z)YCZu(|%p8@C9J(W3f@OUmM-a-P!#*=&dMpx?dYFNr|;6??^M28sp1uiCGR3B@C|D zLgYh1Vokif6|NR&@hkj({A8n+jtRa6`*5YUaAs+5v0|plYzaYOq*!(pTv&1X(B@s& z8}z>Lah_Mk;in7fyC&}u*!s1UEI5M)+HV!WI%7y53~D>)VJ~JX2aM&5%ZiDbF7@Jj&YuxRSM)t4l0(fCgIMDRg_QWgfUNJ_=NJj7ypjNTkrTl<#$>V zLfSB$=1Kmpu2j8Lq_01jix71W#ni#)rax^rM$DcdU--L^9`%YoP7C49gE4By64od) zieT>--0bZxKsdcHafF5CMZR|gQwOhM_0|)Bv8n2(z{#B<&3cUw*B~E`c8x0Mfjpf4 zO$*Q6-SoR{RdIVmqrzicQ37pPc9Ni!5ruq*ISS@Q!l8+o**-1Xd91d#2xA=h=UxjJ z`EDNqj@!g@w6^V2Oxg@I1^nR>gMw4>t=O-w3#2P-7>o{@PeR)E`b^CaS;txiPRsni z=241$JD+PrJXnoxBn`a{e>6@xkzwk!Ib&jS4d^Eg5#ds=E-Bv>b|w7vg&|hx^i#BY zJzS+e0rDb$bv=*+V8gpv-+p!Ul)T%0Gl6v84c-3|3YDd&?_{0;n`@GH+Ysg+ zD3YH8Cr`8}`~vWo5YH^&=>?Q1DEmJFCKjO(AB*mxk?zqNQUQYqjXO4gE~oF}oo%7C z)BaB8?c--yNIaCLh#tVtomrkisRO_Xbx9@kP7fTG@8o$jN~bVwtD>YZTn*UxF$8#^ z%o;B@w11~fM%|vwHS)YdOV3>Lo#d`?iq)?IMLca{RuOF09zLL`i)B)k^N+}h`%_^} z;^#iwB&aF1cQPFTW}|{4XT7^el&ryUZxyAy$Us?&u#Yt0{WypXjFeh%CJEU?WjD7y zOIS>N?&wkW`0^jUFtS29|%SZkhQ$GGE} zcLe4qVItRK3+G98ZoJ}!`Okql6#`1lQ$HnM@qlq-d_shJ;Ul0Cj$;;fK_LNw2S%{+ z@nIA0vM^tLQ?;LyAX3T>mC^KSS2#M*AbxM<`qmS51gxx#W!;<1_;qvURKeCj?lK`( zmZrhCW#bI`{VHD;QMKLSDt5jbCvv3cXLhd=Cb8$8tTs0_$Hnx)9hTrT91@IK%1b_Zgm^S z?2m_4E5TP!rgQi(Z`8`; z=j63;+wM=*X&^3%72GJ#?VUaL(`c6Jrk3F8yA|pxCtfmCQBx8G+ z8h=0l#Ruf!kc?s{d1aCqtGeA4Zp)Qkt!{vRVwa?34*%h2yVuOxl{I6B-vx=MnG=Fmm4n5t9}X_E1X;?CgK4&rp4OC``~1#J1s*M9v8_ z=5g)9#p-_%fL$iY$^ke1^DAz)_5X$o>fFFHvQtr;(fv`)@2dWQCNC5j+;AbG* z3;a#^RVXo%*YLAB&D&wS(iOvbXX=ie)Us)L97Y*QTKwG<6E`W-e#%>R7~Pf~PX}d0 z7~}`0o$N4j1J;+Rd>?HuG_4WOj%-I=GkAI5K54AKdX!Jc%sRe^DE{penk1=G*(@H|N_W#%Pms!EnVq^`flehHRh9=k86`|rj^gx3^X@Ozh+>LjT zt^5h_5)=YbzHojoetCM~@C3MkQKc@)zB!jV?E24+3V+v<#r%R*5$j_{CpLcOlXvzP+r(RJ9w;fAV&XApNwp^6yYkXAn zaJmb{DPFrejU=6TC7HG7 zjX43_f_LJZSsUTXUHOr-LR%upzFTDGg81%&LK0L#v8%d1$taym8F~E(8v=yUBqmFp zDVrK4EEldB-&~q$9og4eYRf+i5q4dEMtMW z5exm)e&Liy`gQ>FOOlIX=gu=`b=-*nmrNCrAiG;}hqwNhgW8>DVM|L5PBwg>ls{YK zz#g+*hn^MXt>()G?-s;KR8Z85%p5@8tKTpw) zsI=!^oK03g3mwyV1JLrSp#Juj>u8gBw_!SS?r~II>}0fmcc7cY5F1jt|K{Kg&%j53 zPNW76wmR4CEo@q%sQ1&)nRomI-!F>f) zG-QZ_)~spq!!mWA;@1#4S1@ohpb>S!{5tf!P`)mnxBbJ8aW8}h^@4{Rs$ALuZw{S0 z7ODE&Xi#rr6;s5Zp|sTa!xnHu`^0u9_=Qk3dJVept4;Xn+#DI9SM8-6VCB2*j4vl> zP=*ox@mEr~&u_bDGAHH#@-X?!$AsuFkG;(Q=)CvO<=LN;U-5rl{EvXgU!49QfsVh7 z6aQ&w{hNsVTJw%PJ??L-J)%F^Qvb~{p$uhe8)<)fS0cNFq`Kr;l8F7UeK7nw8ezi8 zBzR5I#Z|5O0yif|q`HkYfH*o%TYlAo-CRbYiNJF8e(FLWbaSZiGaS5%R6Q(ZlHDYR z`vd^f$t<;lQJmf%-Y+;7Vz5tqvpN#l;evTICjDMSHpt4c;|G5}XtYOnzkGuLk&A9H z?R8E&AQ39>IBphwjH$RHMx+tCaR}DiL(j%$fEP zlwW^6+~(e}l)713yL08FdSpiOK2sJxQb)L2ALZ9i&N)f5VJu)fB;A7&jnJUWclIvC zWp$iEK1UdX$eQ8Aa=qFf9{nfQ`y!{$dP%Cs4$~%z8WNnXN@xaK7KAyraY)W*6wse9 zRogmi^K4~N$CRlRiUAWpYKKXnX@|OK)dK?)yayxTIe<% z?^V_Fg-Pa3^=bj`V7rB&tD^qV1m~1*IhTbR@TMYk{zPtT1J+R03aaszJ9Nw~m3e*) z1*ubgwvJJFG|`aU6?pQo<6tl{>^HoLuoB3K_uukmue@qHS(p#VBm@?Q~bhW$RQ3;0T_I zZ@*>(9YgO4qVRX$o&d$*DR(Looq3fbyWxan_Tdl7qs8+}oW&qfD{!tCbP&NP*XF#? zm>MDcanWN2Xe`ZkQEz|$14uaqqS6jo&7Drry-s)n=%pfQ+}S~IJ0TOhW79j} zX!)OOBj9p0jed&)!>I{y`6D?@C{%mB2L3w!7x=rczhWcf+_46FUwuFD2c0hEoT&^i z33n|><9q>kSAc%y&6nip+K9P>eH^I@;9jrN(8qjt;;A)U~jYPpdl&}c@YX*Zr{4-Gse9h*rY8Ev@6zRe5H2C7w zCkt`meCLSxLE+QHLDR$MYQx64ECV>`{gr;iK0P=+cU$%5NH;@bFV5D@Sr_md3sUNj zd@H%GQTb<0N(#TlbBUA`t=Ax+#vEaWIR{-9#D-~oSnMU94%iHLVO!fdl;1O$Hy;Yn zL+|sw&q+LAP!O^;e3PPyRau6;8ssgvAOXKVhyu^Q!Z-R$jLFYoV6;Fz zX0q=DE>DL79rD##=Fi%`I($#6(3?PWtcG&cg}v%<*CM<5ZbCc3o(vw;Q~jD^_%;Y_ z-54$0)oYa0EfqsY`3F#L@wQsi_yagqueELOO>LA)xo#b@#~#A*-gDA|3D%h{7q(nB zA8P7Ll?s&~wm2j~RpU*saRB%i9E;;#oldTmo!R9%Br(&7y<{T9W_@?FrZ~6h-D~tdKJ3I1M|Qj#pl+~Y&YHWbLjrFNe)B*@JZyarqhmhQ}(_MnucrG z>wbcHHmOI!KXfc7^h?f*{L?}Vxbw6{v@FuXefVy37o4AORw&4aBKHs=z{BSfC8F;L z74cz?D>?={vPVpQw23ra@*)YF*@G|9P!4>glKk}IzMj5uNcX$W6JQyt>W88_C90!e zIi~vOc$e0ubLehds9GQIiuiuIkQSmAA(1E!f{~XA6FgRy$3KO*84Wq(6r~J}ClY@% zs|thceIZ<4;9U=ul9}5>SL6CDw_5uVIZULTZg6@e)Us2WG!Zp%3HK(661z%iuMnWO z+Y3(&dBJcqZJ7TA=;7ppxLsPOpdWmQ{8BYZ6XiJPlKtrkuqf@c-h^jrG`~lza8mL1 zrZt{^2wrc|=h0gHKvHHv`PTG7fOO$`74=3?5WYUvVe)G&7lItK{VSUixaKvL=7J{x zlltMxEpij$SW;bO;b-VfS$6bfCsc6{Z}De1sxlk;r@4Fo4ry$Fu!Bh$>3n6wm8h&y^j2!tT%s!+ZUw_)H341B*9)L{Kfkn5F*DN^{ZN_ZYNxC< zI<$EQ4M9e~kv_1!saXcz{0=Ai9`qRk^t$MugevLEVPcLnJxNfxDaLt(b#z91#8UKS zfvWVhb`f51XT4YoJrisfmFG3HGB- zD<4bz9!PVHE&bv082mOZn%St~b62c*_DB0SVm_cG)>Jw%3MEMiU|st9K=G%{|M89Z z|GbEOd`_O3mHp0I-TS1q+1aW2km8YQn5y|k9Xw7aWFC1pof22Dy8M@=^swQzfI7H_ zGCF4w%W=3@gL2qngWGK0g(@%Q&fa`egIBM~<8=EWz$xX?!szy5dK7x8w#Vje=mBvr z(8dkB64YDUzW*vnZ2OxGrT>?R{6Chzq1kWYSXqk)Z#5N3XOByCa*vXCq}Sx-oMTw1 zr0ChOPc8KM1=`Gmd}_4nW59F-Io?foX;&1H7jKVf+GZy(zXg1I1utp>vTR-g4aG2Z zqPw<3P9e5KCPHkB#ax}qKtkfNqeD4sYfM37YslQygP_p5TF|mx?wltJ&ypYbM-FaC zV$^!w>wt(&XCT8mX7@VEp zv}9$6s3y0Ec16OmBLn_eMMA%-wD|plvz8Phj2^7Gkt%q%=iqON69^u^anf{WNzgQ>PR4NeMQqlF_ef@)d;%b7 zx}aJt<$)lchI7msr$Q?FjbTrK5vmQUK8cEn|m988$OKU{pkglW%$jstDkq>W|KB`2VIdxGC4UnKVw!Tx4&M3{|e}+3oQBgqBf^= z{<}ug?en9owRhH<+UYIF#hGU9~4q0O{saksdmjP>n_gIfcgm$c-4Unvb6k_10$OO z0ii-Q`bx4{4~0)1$0nx|;o9HhbSM+GtrL;mm{qA|H7;49BJ>j=nEUeqtvi3r?s2C~ z&8dd(fr3taQkBrjXZw_1YsG7g*A)r26sCr@7E6V2+LzlGsdk(d)ppU?+K4sGG|A}N zdP8__Leng*;5NrK8onw+<@d!-K$=ZZ%CiiHn|oO#lIdn${~svzQ@oG#sqs*W2_-8c z{GF`CmQZ&|$;6cDa=-(RZu?%-Bb)?4PN{> zWc88#x;S9G#R;n+%rSh>LP_Mkk_75XO)9N`^C_Fy_vnhs+8UlfEqX97STqf)ZRG^m zvUbI$!(rbq$$<7|uqIlwcBfbeuZ-~w{2~E`+B~jKQ~uzK*x~EvFxDQ%KmwzDpJOT3 zQDKX>LocDUAT`?%0w3jXe#D}GFHm^orK4HaAfI0K zB0PM;eQpgaenOjsvA7_?J8HK7+4jB?IH1(s>s$|M(+`debvXv#%z^L zbH3pFetN}E!2!?W{~k=Y|HUwRq(YiHJdrUmREz49qizDfr;_eco;Bs;a)LEwDarNj z!(Jc-9E2r}Q1_&B!(j`rCUdx)ithYbxB#|p;H#2oIONyo_7{0gv(EtaBw?>MJnrOP zU7Yab!di*&so;#trIVva;RB=n_AlNinH`(jNl(Nu{*+0s9maQKiPLM!82dVBHeSxj8Vjol@R0|LLB|>5-~2d5X&zJJpv8QxOsA z4H2r9mEoM>2lPQPS4isV&`Y55HJ=eFva={M`nzG>wLDOK?aLqMT zo{QbJ*HqOBrc9a>8yh96p*cX&4YCk%*7a+<9YUtwa5gldTyE)STq-n@(qXP4V{5A( zJ!kL8;7_o2ahD=u2;Y~-%EC>Ja+=8m=^i2xlgTUCAH@o-@iYg0rorFx@WT|^1E!Q8?f_9j}cr#*!3$2#; zRh9(dd|N-~^5bAF2(TkWh=Y+b?TB zv}-IC;nS?46bI(!*Pl;@GPSHYgD%TvQ^}~Gi$;xTk7OmU_oaiHbANFvG~`zD%)X73p0CqtUd;F zq;>P&T>iiYVEeFJ5~l)iWxgOmk;V1dVIWVWXHr}6%r_qY)(7L!9|ajUx|)}8Zyp64 zO9C>y+Ih(;n`fk_)-7JV^Zcn zd+4q@SwYw5Yb)d*8?-%384s=n^9^X0E8wGwQlQ=ra6x; zbZ15x#YXaT;uW#g=4Ip~u8PS4852|9Baes0oR0es@ioVObu?E+#@W64FXK%04L=Bg zSjTF52u{`2cMjPH;TCU}yS46a!J~(v37fWxqmq4IdzLBc##0Afw8xUx)Q(SpX06(i zUlpV_FKJ1{%hfp|!+ZF`GHz44>YOzpkx;C!CIh-YG?HoXxdPgnqihb?P19%oY+e#l z^-?wOSbt2)+;x&gNS~(`bSfTl*RCD_Qy$hrCaNEd18)lN&24g(V3ee#YO0B(B~ai!16}Kpd^<0}n?y(RcqmZ{?p7{vQaYO!2S$>EHPbztu?3 ze~XuY6(T}aNY9vvm>bTvx6n_f-k(!N`&iUrOLz^Bx8*^fZpfZr$`HP;Yv! z>Lol&*cS6ywKwsnydL{*1)Y5f)=O@&SU`8zMz<%^BTK9}Csn_iyAD4TY{%bGr`%Xw zatF1q^BYo3L?7V4|I186`v0_M{?EjZzhC_8lQHQLqOA0g*;G`i8#x2<;LZ8a$f22L z)n~@ztEOGG8pw*lz&1{s=N}_JV}L*%PXGppXPq(sS-?%==f^C^K~w9Uo$iPz?G3~3 zu?V^vFcemY<3>;)fR2INN--pjlnr`Z)}$SUZ4(Z?Yh?I$X2h^FxcN4V%Hi2{rJ`;_ugudnaFbRiSj6hbyXQVQT0+iWKN@Ax zkh*qgrAMft#+w}-=r2aj`tE`5mirP7@d;`Pgx<$;;1HmYW*Gd+j>-L%IFJ0lO!hqd z|D2Dp|HQVxowe=%n4Se4RQ?}8*9Vk*;YSPwbDV%vC-$k8ay|)Q& zi=C;Aj9-d~p4xFuR+W#NYK5qH%LadfrSjeZAr4P)^QX_K6hgPy8^>{MlYvq{E+!xdo!MVOZ$uISeSQ zH+|51vQTccqQ8LaQC=xpj#f`7Xqy8Dz-_lxsoWzRkx|`G)Y_fRpenZ=O1lxO7pIBo z*K<%-{su^~BZSTK3RR0Ta>3zVTE4|txEubvFEClTxWgq>z^4z%KpXC%l<4Eo%!(64 zPV~4V892_TREhVs{f5}|@RrutJ+$>MIfLit#HEiWyBQmErs)&F!DFtnsNs2LJH9D% zEK|g)FfF?k7Uf>-pNPBA>^_)N4pon~2ZB6QCM` z31iZH_eGl<;R#UmF&N_i_R$uSomSgiQ5LORSLcJ!rfn1P9OvS03S~H`LIryczJ8e- zu3j+kx^@VL`?Xhc1x$??mr;HYR&@{tBYYo<63YEN_!{-1hwO$i%(OgY9_~g?+)r8B^O{g^_wm)r zCc_X%@YVpMrQK^oH5*T>{B>~x4^gPEa<=_3JtZtYMY;nDAbok+Jtu5>x5;S&> z>P2sEVtNw*4nvh!4sGV=XHC|tE8>+%;0YBHNrA8;jGdSxTZ}g19#$1dv|> zPHKBsydNZ+-pfU4Z)qp(Cc@t6 zAnxh{ddV-A9}3vgR1(2K51cH{@bL&r$Eli|>jgQ|%>xju^)a$)^L-70o|?q)lwa24 z)8RMA?YmifNVZ00*tBn5;&2c)&X{(b5e+>$>TDm3juNvj9`#@zsH-k-H!JSxbGZ>oO`|Tc^GZDEVZ-P-wewE^)_J-5PqJ>elVOQo=eR!aNbIHh@r_ooS-W;DoPb8*@pUOa#~1e*=)&hg zo@EsB1V63Sp8%N#7FDH$wUjSn?|J92t%nx#VnC|lw+ayk>LjNqS9t_Q(N#$=f2?X% zRVjWvPFmkualRS$vupDN`X}RjuIap3wgE3LZ$-jn*VN^HaH4rfAom6!sYi|d8hV{0C zMfSuj8v%eI1F(EBmNR#Va(oq7Jgn;wIWJ*)6zeXuXt^U~;fmrk<-5*hYTjF2FI(B9 z{w(rL6g*1?C9*mYoRa6~;i|A`RLPE8l{WPS3H383#E6HM@4L~huSM8#c%$a3a)m}E zeP~|ik}oj+>>(ZrSho#*v1oV=noGtBYh`@sTEK^e9N!R9fy7P)w!-tp(~J}tzQm0E z5Z`c5p)!|t{&}^(yQ^YP$UO1h0S@Hi@0^`pFdu#HRK4FRhFJI@tHFoe3!%);trE)p#=Nkhj5-R7ddr%VM6b??t)DEs2bPC zC3xhu0wtS*>^fu7_hpyEcm3vfN6kIcr0b3L(jzJ2H9zmur6c^|j~3`xUeAX)9;)fK zqq0sz>O&u&7lfW_s>vufoNRp8+ZPuLG&j`N+r7koC}ayRMYw+7zTn1Ef=Pos{i*|<`xwF}PEOiU{ve5;8p)oBpFiQUkrWHgtJr*D{ ztZdDe&<`#=?uKfU8X7}Qac+n62hHsenDqzIN8z2U%p$-4RV?tg{rA6WRsZ?MpB|1- zM)AD(c-1pz;+XZ!F6W%3bvpNfqT>D3-iAAO?pzZw?>#QYZ{nsQ84b zSNxOIQqJ@QUK)&8A>8eBEAQ+}w+;t73Em?L;TkFJxyEmb=HKeV6(Wc`(- zgrJ<otdhBbEmrcqrOOm10cvSrdS*(rl!}vr`s(uyS z78nr#;UfH5kul#{h;i)15t~CE5wP{y^(D!)lwK`g{Ec71=R2VSmiJxHIe|59*%`qA z=5a>lxnAZmxDcL!fo=fI#7Ij<$)1;JISRfw%fJw^C+7Va#}54MinY4ydLz%l1JIJR z-QQflCPXDp=+kW%{5>T*?1=NUZO&Z3vz=|hhHi9JQ6@EqC-Fk)aW&2bHeqG|g9Oe= zCS(*7t*8HsY*7*^-8l%Su$oI@ONDoy=}aUKC^#2X)|5bkd@1BtVpNe$<%|-q;T7>>V|KGmi(*G-CpY-49NPjI9%UeqC>A2nTmYVun*KVw|8*@2AoCZ&^ch3(8 z%z<%Mvvxf#y(D2&>EkYJEL91n=9ZifL+jaeJQd+&$Y@7e~mGs7H* z3TfjeMYTR-nBAu)y$^$qtEX=RS+HExW@jj?#@_i_yXmvU+L~H&_dgaCEe(ASUedXL zdzQ&GLC4a_Cb@O|wd(t;VWQ#9sZv@9vB8^KbTO7usD90W24Za~R0Dn#;X+IZc$sJ_8Ao0xjxL!Xk@TdZ~1z-I1jcMUeLt7YOaNJqkj zO-=}r+?9WK`XcsCu-%oDT*X`TI%*Mi$9}KG2rEqO9c$SHgCRpfaSWj~S99eF45YXZ zx)uu}R18Be08l`$zwuu`Qj(rr2bO3rX~&ZiyIZ~ibIZR;$rpQ-9*M*1dL;Y2mB`(S zXYe!irMRHX`}xI1j=fggPhecm;Q85{ttSBggbQruaGnGI*YS8#L!D;C^B%|QwzKtG zvv$IUQ}rz5Pt%gdwhk$FcOJJrVI-uC%ME=j%Gbx5P(WR@aM%8ZbZ9l zT>d79n=y)WBHVcrZ8BcTk7raE=WDtf-@ElqF+MHt>1f8v??<4**L3pA_tx=TM zgR=y97T%b{RWo%WYa-APd&7F{t5Z0x(>U!a%|T=xxVr3okJw;ZyCt)9na6u6P>C@u z8(Yng^u6xlvz|GI8rGev2kPlm#@uor+@@i^j_z9Z8V?^&Hhy)!W|xBRBgVy%(=)gK z?yS#axyd^6Rw1Sx?wY=%w40<*7x7u1N#Y6UZnEBR<uRC^VIf#$`R3i~6 z2CXYQqb6C6Qzq$tAN0^)lZ0)$eeL7u<#xtxhWED7)MgmUazLKXs0$(Z2~+cp*AXry z>h87VB41u-9O*gkYhp)5)QV&_o8f89d1JA_G<|&fUaIw6&NDbiU{MdCP zoVZjpFE&Y25Pr2q+QJRfLNI7!eIwXoOlN6Z*k-zHcdCyQFT9ZWosy#$XM3(5eU*TA zN=b|SC_jW|Ht{$RPq>vpm}BFSOF_s~*A(UAwE&!D-#eX!0LL*YV3kMDimIlB!L|8dKFsP*hX-aMnk9aO6@{G1nQ-9%4TG1j+?F} zi=LBBL7d7ylw(cN7HPi8YnDii4%nKZ_{J#fNiS4Ww2c$>r~A{CZP&~tl9Jja<~!*D z3r^INJlNJtu9wV*f@?$4Y#l@O^+0~f5mliz8lHrs1aJ8}wmxu@6EKk4rWr#VnYAwH z6J&}4HvjX`KtVs9NqBGfRBfQfGlv+lTsrCl+^zWmjI2Ji+!plVK~GMbPQ@{OJmwD^ zIGk9fz9(y`BosvYC8C!cZf}OIU7VG%SPk5E7(Kj(a%1KL{mJG;N8tS8 zmpoogU-YhK`R&^Yj!fl1?sB2hhKWiQV-_xgoG!H*$G-#KLIB= zNDELc5yYr}6ndxE$TPeyW7vc@S`ipqJz6Ngcy(A;i#)I@$*ZV6l6=zzKOrCVw%T3+ zH#k9&+SKGLe-C=kcYO3N_HN0xBHDCa0~RD>;leR-EmwLmrXM|iZxXe$$M6t&oCs%% z)9p}oaP$~G*&_k^XIMQm%S$&-w1DDhfr2on6L-3EE3xa^F75&pZ<@yk{ko^{mKy$=T z0S8NZvx?PrI?{&C=vY}NKH2$eYD`N64*s>1lBP$*oogPmBld;$?wl`G}{08R^ zeRpcUw#!!C4Oj9#>*Wq5>_n#^*L5KhnKI zn2Bj?w!=7~U#rnrN;|s2lsZb|dD3=mQ{bSgrYu3G<%AoLVO15n|JtlF9sa%~TrHLT zhaJED;eF{H+|8EyVCI{66@P440~v>~JMHG_B0YzDh6lcBM1o9p4(#IgR&=2>2WP2M z(>bCjLDNGCdd1|N^OlF5pTmNqmHW=M8>Qi&Ill|NR=M@4O1V?$mMkeg(|%$+c4p zZy04S8K>5jzkRHsYEh@s{Kxw41OFvfN#;$&xVpDC-=P7R)y_yorVgZskpWrHG5Ec643fFyzTLp`$=QO)tEI9N??jvZI=@1)x z=W-8%_CXTPpw`685Pg4ovxG)muHw*Y34}hEU_8@{6Pqvx3#(F{APmV7l!IutTG6eu`^oGmNnt zKLNOn;X~4{d&2=7aAVnh+w3+CJU?mfE$}&Qcxj*e19;SHf_ZOcoK%lHBW4cRRk$nK zDm>nrRY&Dq!d#)f?A5*?2?K#d_bPZer^Unq#n|P^wQbr$uV08>MgKuEez`RLK*I3ExjLEo%i21h=ljI@s2yuf0b@jH^Fp{m zl(_%}|3uj_`rG6f4Fc8R9-(K2PXH7J-_!!0f)<`nS$&%*F1PFRz@H9H#|CYZRklw6 zk5}NY#yf^S0uE1r&H`kSoMo8Bv|qh#P#@zPsf%++ZR&R{*V6_?A48d-agC6wdUR*$4u?i1jGh>9@JDal%f9TJ-4E3`3tp5n{Y!Ktn+{L?01>z+aT@BURCLT#>hQwjHIH$a*N8w_{XS34ESXyUsa*p|U=uFJ*nGd@DX!8NWIw{9YxeqAs~>kE*~B*}7vsy!)#WE(LRZInqpNo^jpbk@!%ay(P|G_9yra zddeq&7hOfpq+4&E(tQ6_$om+%UWJQ`R)}o`W$*$<+~nHV+!sn7+bk>VR-IUfp|XYlep=+%FGhjYIJEroWPuEzGre!`jkXhJK{#FuN-s z7b^{SE!qp!G=9G%f~V@}BZV{f5~W*GTamG%ylGe05w!pVie^4JyqP_C7qWFG&w3`B zQvWrrNpn9wX1wi=r*T31Kuf9tb*a?k{Pt@+61s!2hR<>9bPSuv_Za%#_dTHcis1GI zy;`o9WbqsVeL<1v3POwcanV-&k7LduaR=n5wEmWvT}RsU#umB;I8In_LBLNuR4JpE zd^!B=3~}6DK_1Dx3Mj+VSXjgkJ2tBy(v&zHAzwljz6%tpzZA>BSvaKd^6ZY^VHQXK zaMG0F#GGfQAENjj8b2#^-zG8bhQ&W~y2{l$#j4BnrmYm_=g@w3YnCrUwrRHsrW^~D zfezQHV{LI;F{fI(&bwWroAf6io?WQsRIo|Vhw(@~`TKf9xrV{lqC~)&H$uRet3eTq z5=+DL<$YYwZ43H&M#0SRl(q)$IKxyH=A3tosmBtflnlw3VtJ3#ZY#0dwNXDj;Ok7U!za-pec$CG^fxnxHFvGF`U6a#viEQ6r|sMzWD;$#WGQL6K6Q6d@UQF zsoap?TH9%uI{B2Qu+6UHmRcfrajd+25~L)?($W~Sb@Lwfwd$A7brSqAL9UfhiOHYM zrw1vQ(|6EE-Dc(Rua3D2&yuR*^vy|wO6R-E-&Y@h0t|?rDTZWT@?P?GsyHX*zt|PS zf0Y>?DMNl+1YQL7Wq?i(*`UF&ba%4uI~njaX#Z;m$kGsUeZc~HXlQ=4&fnW7sLZIR zB%troeqXn=kiccdpDPWM+s59ni*w$yn5lq3wET6hA~fWiyu zQ1_YkcaeY2b=5h-Kt`cbLV@LVhA#IuZ&GcM(j^V=j5tZPQNMf1rsuq~UDmhK58(Cb z-ABscIN}cFHbOQblXb|g<|E}z6eUThiKh44_r|dZ451R0h{p6hr=D#K3yYY@LvQ=V zje*nX*uwU8+;*q!;t?;L}2d@v-i5D0uV6KE5bm;X}1WPdk?xwYK@z3!`^O z2eOq5Vn_*!D`LjM5>)pyBju0LfF4+!E(!Mh>2p=1c$q3+y|s00j4$wUxa)YH4A}7Z zGw+k{1S|E4f9Q>LFd~bQOf|`%Plv_zT;-{#j!{R6x#rG^bCb~Df6?N)Z zQLQ{mY?>Z#-m?_lah5iT;3W0zh=#!0^bWIMv($wBzxev+=*afHTO6)*(lI)=ZCjnB zd7gWJ?;op1#z?BNs%qgo@tM=P=TR{Nr7b|50qVVQ zbSW1NQ_OGf)|&xP*7QNJ0;77x-MUV{5-p65DW5>3?_~LNX!5s$a|eN$YW@BgheCYK zI2sXAh10e(z7kfHYeYS=-XtpMBL&QWm_|gxYcGcNJg#)g$g4`T_BS=Sgk?JV*e@mU zLm}IM_$AbTj-;+iWD3em&76UseYAligAJRl!a+-B!D2={T)0osEdY)Cj}1Y_u8mDU zujCYA{d{@HY;i|Ee2BqKTLOaUkhUmDsRhyF7S3I^1V6=(WstnRi%}_??NSNDg>z=N zWTRkc`qiJWfAWK=l%W&!7Ox7&cbO~R5PwUeiDOWu^&u&@WA8S&e)w|SJd1Q=Sxgc z9R`d1b9mA{b6;i1%+5--IaGYcAVCql$UnIq2|DFDR3+k3GgEF+8IGJt(PA)-z6 zUUT%?OHEAznW;(L<*~f3m|I%A@vy6swQ2UC>WX+UNvyST5*^FP7U;?6?IflKRc^Ko zqx1T=icw)K>PLuJ4AFz#rXy#~Xsk%vb$*sU115ewdP? zBfZcsLQpj$pK+p%Wr0Iq)~}?DRaS=|L=T|3KlGfmiwEF^R}(Eh61x_}UZx-seGo9% z7rG%`rzQ#;KVb~Hd4s244$djRv)J%{vs|@uhQrhyzhN*9YKh zCQ?V}+g6id9Qn}$;o}UYwXc`jNT+^iFFYQ$9W`^Zu4V+fC2@`7_7bytKvI%pdXYSU zw0*F}8u6R=`YY+U&~@sn43Y1eP}HC?)^xqUxgiP+xH4Z3Wc;15pYh2_p?S7kRXkOs zLKD$+uU4NP*eVyxaqC5?*d(RCpb#oaB}VzCrWrL z;=p%^)oH`FcasQiB60f@5OA-dxPxu^aiC@lvC*M5avS4v_@#XDY}BLH0M{?xsoa+{ zj?_2SG{uQDg`6`Ka(7RD@jCXZNVHblqiEQAN&(11%3YA)yJ3zM!UGr$xw&e+?~zW} z?Q=Ep%Ikc$0Bqz)pypj}S0$zG;ew{C@~}nXup2&15oPTQ!nD_ed}=XshuK)_0Q;eyVGRCctO6Rn6DNq?k6E{tWGoH)C^bv2d9jwQ=3^O*`@lP=WC< zD}H?tOL)vsUQmpC=^hNrqjPuuG4&?s^l(bi2VMFRCBrp<+qe4jRKi5tHKqf$5CVOW zpoum#_nlOX_iTh$q2k;}?FfP}VNf#=xyN0Dw{xZ==1VQC6rlbDxCTz%7?ChOF?_US z7=4LlTB^=EKZ)$ZULsY=isR(tlV)q1%9;jX`Sx&C#T4-Laa&wp-KK;%=6WRGYBp~v z#7n-!p>ptlxdi_iP5#R{_J5G#ze)%GXPGPiv>AxUXmlSU{^E$VIX~L+T2^9@P48G6{e8@uBGf7?xye!wW&4v58 zsO;L$hen3g;oiP|%oA7&iq~Hk6_II6UpuJ%ck9=`B5D6Gb?QH9PXD7%j{IL$Y}DU4 zIs-{RNE-d7{oUjd%1{P`4uP{SHA%1bBOmeyU)4VWy94bd6TIxZR6M_)I|@2@>D1#@ zwdN9KLrRneMVekkkCB%PV`yWQ>xJ;se16tSA1` zgMTpX&vIE5^<(%)C?OVMH--=1kJ}+X%$ZWu?K02fvdUt`+MInUc>#4qdRGeVuy9kK zfN04qZ$7Z>f^1?T*9f?ULPI4!KizNt3F7*Xu@Lg#SoBNrP0vaJNLFTy4(>|k z$<$lBKIZ5BE4U&dCc)?Le1pGQj4`BDoh@hiTbt%E$LDGEY%Cyse;H-zMFjG6#=DkB zEfEPJ71Y-c_S z)Ae$)?OboN+AAm)h;>259pLaV6-|PmiSXKQycH}^afx(*7fJWFmYknpFM|W)@N=%I@gl^=ce(QFMsc0v>Aa;1wD+4IO~j=9%@*T9Yk zG+;J``ByD(;XQKi8<4GxxcB<#`uF zVUfR@C_Xx;4p`LJQA(;_|c+ei6`i&CSpyOu`pks`fx9R(lZbkba=nKG${nzV&HUm`d?wg-!lt#I2~@0NI@i_Nd( zkpuMkAz)}nq^2D5d_Ok$CUNEIn7J$4(Z~Shp@@f$xYa$9i z4VRN@NJF>Wg&`qSz>4tzYq#Mc6(8691iaGQbH-`|!YfdCH&JjM0<1yVcbiBv;^$TJ z&wf|)_)EXOAgkwXS10mrvw_E zygkmSIt6mp;?X{a($`+ADFRXzyJ*Q6_TqJaYPi{3bJ8fMwT=kW7d}1$PnwDVQKJ5OeV`GOB^f0ZXV$kdQI|#Lv=N&UvMyg% z#(hC_b8ZH4UqbbfX2n_Q*DM3-c_U-1rM<5Zeq@t6S-H55lNnIN$i$?u_iY-bh*UAK zw-?9ZMd5YgLmYIbe%s6=9DP=@E^J{11W{xKWwI2s*~;2t&a0ZU_vG@F=z&q#+o~(j z?A(iDAGT#x3%T-M$2Ihnx=?r9Tp9|IWA`pDpCU6YqREQ=)DV?r1r5!XU~rGGepurO z(9l+_I!WO6ImEf=GD}us)j+?I);+%vmj5Vrm;Di_hZ(Q@f@M7%!pa!JGTsa_GC}yn zRP&iF1UH8(q-mGa!^=k{_gYnNHcf)s!EHtPx?iKzvteNd=Yml%(KT`PY~>~Mpc?8% z#Y2#uLL!K_fbFQy++*JLL8n(vo#Vnv*s%l2B4Qm|q{$Jc@h&%m6mn#VbIXGoR5;BE zvPppgJu*>{$mBJP2j<)-fI@(&u3bq)t+~8jjnT{Y$54hDS6Hv1GuZy=5k*8SOM1of ziEG?dsG4&@7#d#OPoFf8ouB6s=_h$B9$5yR3H#b1$~VL=Jmxod<1(z`;&}n}+cC^o;N}-kF4wXXMOms+OTc%cJHGqY z3ZE&%1x94F!+evJ9hPb$R%VRMx7H43d7lUtn$X*qh_Vuq6kRx!#}6(0OWr|XUW&bY z>!8H~i2D3Z!@SriTeY?omKMXU@L6iT8{Z3Oe(Wh=0!D6NQI2@dYvo}Ed}BVIU)=%# zDzSzjEN|775%&&UeT3neQ)BYb$hd5>=*Z7My*AM-53}x#OQ?sAr?+U~7>oS+Ee^gU zeh5A@@#>*MbFjC@bXsk+bX5okKWI1kZQc9+S!hn~3~8Z{!=od(P{IOHOlSYYaSf5j z8-VQL-IWcr+rr$w*T|7yhbn=YI<(sWgL5D|$n`j=3CE{-Y6hu%e2ioSg`tgmswuIB zS;S0>ZR-9@zByi#%O@U)1K0Gd1Mf8E$*p%*0+@6n9F59Td(XYq!!7o%tkGbEhGy(K z65X_PhZZ}_1UliEu0bwL{~PcRPW^+1HZjL1-Mf-4sx!dda{y(^6qBF(0&9-~0`Z!9}3uNRDkLcgfSfbw|Zx7x^0fS|C9bEja(;vMBUrDPcQ-jEM+8rhbw3r|nB zr5ul=(^^sUN|qj4ztblGdKhH`kFMgGw{}xE3e!$sTd#AbmX-(pX=YlyBb+G9fo>%7 zEyAqn$!gm|ycZ+C&ovJ+z|Fl_aR{bKNA%+nWGB_M+tA2)Qxykiy3Pwu-SfjD$7~yi zaQF^W2#lNU1LJV4f!YRUAh2khDMRZLXZxF#t)vo`H+=-0s#H)0=7L52Yr5=P-otF? zFcm32n4luI{3n3pkOhX=!V+h#$>vQ(!4`ZZ+0loNvoGY9XyPV zrq8MSH3qkduX~WozF%|Bsv>8OimL4V+=3bEL9ww-_7P!V>)b$hFRHtR;o+e9s9wYM zQNXQEB_h)hUEyjh+9>UttF17ySr7c?nkH?i6ClnIE1wc5c0vXc0Wg6#X5Ks ze=qWF+sDv?npBVWg<2pqeFBVWU=%p>=47OOMsdu9B}rc~Xx6KrXQX6)Y;<0l50;Na zPM3~!(5P{kDYA;wBJkB(a#*l`0+vhXE;<)h5U13O-!W?HJ7G*X2C~1ezZa$a`k71R zSheRZ>{*vj`O8EjjU_bK*;7IEE_Gb?Ra*J+*Hlc0T=c+B*7xqySj}3CgHY$TN2MqN zFoUBBurc9X^@iphOgJzT0s$oLD8-cpI#f5bU*Y zq2ZJnETeA=?Np8LC%C-BY0jNn;x8vIF?8Dq~p2kAn{)kNh#5PbsPUZ{`FVm^p`#(_v7Em zRDb7H{nd+%BqId%Be!@GuG|1^N3{56!6Kf!*NS1{t(b2u$^lif-gYFF`O1fQyWGbo1; zd$*VJNcJx+kX$(&MG^IC7$$e|@xJ$4(17na5mCJin9hh%RIf z@xo+qCKGk-%_RD+u>X-4V~-V+R4jM@qAlzbV1H2AG%nlL+BkDo*x6zo)#bnT3U|5^ zyZDQ_pzK;I#I9_Eqe)@#B0GdJQlt5!zF*;7OD0ii{^A}zfT$@xk8qY7Y>SQ}y0W2X z*8XS!E{Dgo?yrw^DJ~!(rUkmMz+)Nwtd}?PxnJ~mtp6HE@#NE-xLKTkP6&nfKfwH7 z8OHyw(1iaA>@(q<`oChzzP@(g|GP!|{~f~cS2CL1f8wqGHj4h!=<+{Gv;iJpI4tVF zHRk^y!W0*4PFM-fdS(vG3zxjtZ`gkwhO*OQK@;0D;`B#=VWy0rzj7q-zax7tplyoI z5!-*?y?LNNX*S1FfJ_=@S=6c5E{fUrsxL1mj>m6wAQ9z?#mBbkI&3sesIP+om9V@H zrbI3S_UP}0CDgj+iI1Rsayr;=Xk^O1URmTMZt#WkZ_HUxus04x|7F0{qioA}cv}%M zv)(a@Axa2erEg!B39l*Uj$PV=C+=ok9y=_g{-f1<)NumTn!~9y#yL``PVlxK4Rjut zqG5M-rGsBqHa7Oe?OIV$FjSn=zO4d;M0xkRET~Pwh+uO= ztt{qe2vjX4&9?|iI#H~U?EI&IgO@In;2Oi*w;I7#o*tL)0cYo2w-E!0*+SE^IJ-Rz z%k_1!=y=J$o%dqX;3{lFZrdrh3xf{ksVgnbW0vt8mTJX-Aluo{*(=MqBD@ zz>LRy4^0m{Xu_eBf>qc>WGQMkUb#tx3ey|kwwmhr;kRaDcAWr#0k4Z$nyHxJ&@B`B zOg1kPcD1}$XxGX(q}P&>+b|rMp=xL`AA6tyB$05nuV+$YjK`7#7LBD`0lYw`HOmqh z#)$nY$829>(`$$w;!6zPn>9x8XguVs=u2Yc6AAY;pyLlW^09oGFY_C z!fvGICY9T}S|t|OR}`Z}7pv!1rlLvk=}Sq<1Rc3ySX5IYILr2|cJrX7%$$5sE~;Sg zQ`-&W>9|}DYEmY&HqJYYW*0B_dYL%@zeORr$OQ3{Lpx8fv7d%LRtnCT|Dk4zHd$<7 z5XX@_%wW0vJ|bcv z%GseT!_yGLIIOXqkuH+Ke0IrTlIcl?=my-eP0$~!F5>W9 zt=Dzqr%5sX$if>YZPfhEajCIj5THVEbsHx*#EO`;{&56yQ2k){urWQlUSIz52@si0 zwzbVKe?$?7p(9qD!4TKF+Aa9w2D@ymcK|#Qjgj}+IUkTuPsaom&!)=t#ZuO{=WR& zjx!^+u;<0H)Xu@Htlt3>f2k}vfmbUDOYf>=B{I^T)go$9iXF?_g?1^`GyV@ZRFdhE2z z)FpPzFo_fj2DR|6=tX;f0&GOB+})ITJ}9oS@AJ^+%+E8V|1cB|4^48V$+dCr24&YJ zh*P7GQTZ`)x(Bh`5osfCMyDK-G&If;Hb*R)s-j0G@K;ZO%7;Ci_v7Juuv8-V2v?l2 z3LYvrYb$N{+6>DLO4}TnS?+c_LfPTZS+3{@LQxqY{Fnfxt5DX5UGp$ivtSjS+pewa z=*&D1u3PQKc+2*UOuFZ;66G#6Q@e_Yb#Z(|6%rt-;p8gY(my|)#nKI5?|BeTJxQqu zECA9o%NBG)vITxZv6-!4y9{Z~Qh&;o=6})XNG(`t96DGMM%2dfPo;jI zmqO6cI+h;I7o)c1Tg7fWdX6K*3s`{z3T)umX(&HGXrH<}MYFe%bXH(=Blpp{6+P6B zzxK(1xI;RlF&y4&o@e%AfhtYqCYb@dF-jf3C5nv@t2H8A(<{e8YHX;zMlLmu(b7<+ z7=9>LMqstjMxuz!E*m{{>tx|nOE>#nGn0d(uIir1V?&rv;037jL zb}CM8aLrwi{lKijeW-l+v%FeCEwdzw<5e**$iDQMT6=C`VTYEG!9^)?Kr|}gw9dyT zVuXH>+4E&qy1vfMLed05SoT@~Y(%{Qjb7WDJ~lSvFd`1dC3u%x5k{{MUPEyI8B>u} z1ughnF4h+87@WI(&cKd`B-CEJRPCgd>21G_cPp|8kzN7hBiEkMB0I(}k!voQNuXss z6*1qvMs@uyjK=pOTD`gQnHfssifw0o;lyu1OIUA%AV!(4mP4ZJ0l_9F9>vPy`}=P@IcNh{(GH_&|D+s%L|#xz?q-zSfPB<9d+8|xZD zGmLTA!7jZL{AD@3UrKBSg{Jj0M3eCGQ0 z_{KP{8WD6npVdv|RFd30Qx1#%*{-8SM89uqqwNP2t5<++Bt3MZYc-C`-qvz?6a0GP za)go1QR43CMEPy8qqcm6n-)#;>E*W!wa zpU`O zyPad_GeC&H$E*GLIdZ(1p8-kC-!GI>KogrgvPPL(?C*OGoZ(KaQkmbhKv?Vb23 zxipEn&H=>j;%1bCWQyz?c>7+7QUVH15qiQ;@yHc9cn!79u@YS1>yJa37mtIlM45Uk z?T~Iy%-B3G=lVk{^1gH559>^<_HN-dl1j4qv2YWt` z&bwR~`MZl=XwEaez0sl+!VsW(;Ii(6V891>9@A@&m6CIpS=08U%?bSYzSv`;XDA&O zHP_U4nxv`nA%beB!5~GKVU)KKZ8n)R1(f39=`@`tIR3;Pf2xV921YT_=|q>_htLjf zCV2A|7X*x?8SwbK(a@&;MB8~wN^No5NQUP&SItz=7CKsF*q29*N!ltu4!CBzS_M^X zsCk&#kqoIKNfZ)V0(}&e#V)pCJzcFg04C-RKbDD22W=Bv7gvbz@H9mqRR^wA46p9I zT35VcSk zy!5&GPosv#+h&CM{n1tq2O4E;x<6=;GqIvG4%=Pw?~A@*o1C7T+k+mHoH&v$yWww(_(|GG1u&meKNXC|-d2}NMER?==_L)|TVY>aybMR5 zsr%jRhinb%Z^vnczJv_!xQpL}n-bC$IQHVy;U;R@92lOAdR(>sSfoLOKwOGF>J7hp z30A64+l$zjLRjny;h1;WK>*Y{K%KEU+!p=b_-7ner4ZCN%ux0PM`MwSoP^}90lbof zDe+}KXSOnS46&2UcZ&fspMY(gS!C1?4Lv;I*?r_&?v?|4oPv&+tNT$wqb$`wm?Sl_ zYE2ZSpMb@3q6&#|h`b-CC_zFhdAzgC<+-4#eD&Il%}$;L&6)6mwkh@Teb$MM5hlN$ zxJs(fcqPf1J^|>xxz1j{>)fE44`b$u_(N~1*pFPwG{f@j7p>!8Iaz^>Kt2JR)XE=t zi)U@T1@9HdjhvnrXx#^j+<=e5suJm^Sk-weT~T{>YNp$^x`{Gy9yL9X-OhTul=$+F zx~P@k5vNeiiUaOBHbduAu)OK&3ipWY9tfP1n9d8F;lG}v2i%8|Jm$isz`23gaDyxL zYw$ESFVuan^aOlk#S9t7ZSY8BQ?31S9xp^IN+tx=TD#~JGI)eveG4@` z#Af4~3H-Qz9qvbA!DUyV?rgt5#NQ=8mpjHL@3#8r;%J)yw9ms}ZTTMVF4dL#dtcuv zkN>f~Ho1QSNNjdK0Y0>+#Rqk9bxI2vKmM)O$pvpPzIpXuUVbpG0O9$<5k{*_P`^&E zdnr=T<}Q&H!bi73LvKY2d?2k94U1|(lyZKFTFCtWXjVB%|J5r~_x~7j)0!&xT&`H| zjez!voU(hT@ORJzs$)EjfBRi^zP@pAv46|k|1ZT;_TLkYU+hA{KP{sFrD_7_|24Y!cZHDZzXNvu z?}5|*gOdLN+5d7;|C8Jz3v^c}^E>)~mcssP!&uw)aD6AAo8L=#`_2<{0sUJ>4CszG zo@Vw~beJXwp(QiWq;;Tyr+e~)!z^*dL*A>)-@ywuD6;?ILV#y!k5dmbQi@M~sd;co zax%LfriC{zjr)IHqfExh zi1&Uiwv9t^Z!WDQd^>+%5GCbxzC%t|W$A;#_yhprX@8L7;S?gRQ~pj>?u?k2L2 zrtXQ@yY4E>RirzNYv?=**|Xgb!Ol5aO5jSDvpOKEbqI<}H1A^Q06!1c+T%Y^2Jg}MLgy+8iEA;0WrwfX>| z7ZI5?&?I$irg;QqniPsNV()dCqT{I@0Zi)%sNrC7zm=Bp<~80N;T*7P>0tYT&(!50 z*Pzd2Bd=<%p4HZo{Zj?4V4O0@cTZePXDY_Id$#*Z-t4)I0;e$MV1ujoj9LpLC&RO8 zG#PA1@w6=lr(NEWYI_UDzDlo$SDk_33@yw=4wAwo56#j)MLIM+={#JG(-sLUgTt{DH3Mt*>~83?-h=-^ zFxW|~8f{)*bHt}=naeJuek&d86azHd&aQ!^BMB-fgM~j|Qs`TB*dbG*Cv@g-0k6D~ z*bRt>q>3pfH|48d8@9pDe2h&S4Xi&I_*dI4UT2q3qc%j9b=2d#+PD&>AIwurTBj(A zl@4Cpr*3M-zJo|~ebEV|S!=d?FF@mZs%uN9I1FathGga);~1f3WEK}~(B{|>glLls z4KfaH%QVbTYM7@9N|fL8$E+T-+d*2_!m0+`9CEs?=gl2BTN#T?UqX&H)L7#U(0KIp z)*6XIBIVu8Cc&NEYja&>#~U_Oko7GF_ery`89$h1F~L}ASsLxK2c7qSxzUKXnZu3z zlKBQf`lYt7T$iVPU3l(-Xgrr~TnA(`1fzrD2rtQ>6M@loGfj1s*v8eF``{&hG^vHU zi=5nmZe7O@YI_Y;e5i$!Y;Hef=1XynGF^uje=F97!pZZQW!uf*#MrOvU+5uCEQm{{ z9!$9%O#B7nLrA;G^`c-DaU~|V*PZryYptfq-aHYPy+QzV+ z{f(4L`J(F?Y{aG4E^POzlp{xd`J_>rdnkCrFw~$VmTHfF0PJwesWj?0lbo(1+Jz;Q zO99&4c@Suqp(TSekzNEjqDKAHr2|AxwG)E6OGBa%-D=(n8|-VEU2F8zK`7)QYoX@) z>Pf<_ikgJ6@3tO8)!KyU9tvRvW53hOn+;EG5uuvN4B^OufR_uQP(>02SB-)a`mPj;<8guuDN{Q0Ue+We$r?WNk261 z+jAvdH64;#;_?>Y9S@En@)f=5y7zt|XXz*0iHf!U+~b;lmU5@!P0UjHbmCSkx*yA1 zWMC%P&o6RJoBm2Qs)urI5%X_d8>&%nmcxhDgHo>Nncb?~^JB8>0@N$LrU}#8Ab`>g zTlyHg7ugz|LLjppT)1NpOc)ZRmat43WqD+~%x%ZD-UvINW3>;=YnbPK%* z!6rwlEz!EIZ_en?&I4wum~hZXi9mPfiZ zHivKwtCE~~Q5F-IjFnltxT=mQ?NS^Z7RRm42_M_NjAt2Wb0jypxfaJ^QNpg7eLvJk zA6ng->1kIGfbgh(XZas_hPgfpO5p`SluI;yjRst z2~fvf2~wR}(h&cqO^=qfZ`YKOwICk0;gQ}D0p zg_&P&2oh!<{)6nbrQL@&bQv*Nbzj~Ib6iduq}SLYVDS-E?Twx~4%9q60k-EF;t;>) z=!w}GaJ(G@T;vn5Li7`;dw@>3Y0vJy*utKg=HM{U{)u-Ru|9&cs`?Cn|ATwA##7h% zI3(%h19K`jT7O>qdk~GP9U(nV)3|d-!;Gr1Ljhr&8v8IHHavXl{!9`^f2G^T&B$?p z#j9p}f7x3>biif}`0aR2kvrpZCou4w52e(`F7o-n2kgMBr+M`<%r-5Qn+N>WGI=y} zNVl!}EdLgY>^o0W!4A{wEZ&2ri8_^|6E9-@>R72}dzG$>FS9f+PW_~*YC$pkt)-Pg zi{jBGzK)a>tmb5vc!ltTl;hCv3$9GD3GoGgMcw(pNc#zoKJgkXdkSJI3WspwN#gF+BZflYDX zhTLr;s3j$pDG7?zK`+B{p7Zu`w=5h7z@2s03T5*PRx7<`S<^p5UWLqW)VgL4s0B?d zbsi%b&IoDUiZ=~^Z9ISjT%>2EWr~YL2 z$~nm4&?A8!I^5h8*J{2B|NQNClU5x!sB9Vj(ZKM1<17prPY)@#Xxa2)LHOz+oOU_b z7}|8^qC1iXbiMudoxEk%EB7fg?c;-|qY1ec{?*9m?wDpTLB%NPTkk>a-jWb+8~Y*G z?Lx^@%FG5e#)~t6#|<>_QZ=7kk`lJI&+np5@lMtMZ_iluva(7743T};X zNumhf*=dz8>Y_EkF?xvmWY9O4e0!)Dk6(*ZnD3@sd}oNpX!;UiK|es?$0*0ecbi+_ zdvtVURPqdu$|pE}4#7A_#Tiwx>4aM}&pRyIP4w=|!G*So*WYt*oYucelP00?_OZOA z3RNFY7lC_KNhiu+($u8vZX(QLugTW8#|6B-9A>YPZ8VSan+Hu)r#CQ2=|^}2c}Ex8 z8GAK3>CXesb{j4R+8A|UqO9!(I2P{n9;b>J)kc(FUtQh=nI&bP6#Dj&uNjXGGFFuv zaMbg$A`?U=(4`idX@gl7WSx0`x41D_5I3zlD-0X2V#@E`cxv0+KUP5XYLazETu^Gz z8?-h>okxJk+O9XBQMOELj>=vQP2b;#n1u$$kRyxj`|{W|i*nI-aX+7i^w+zk5Up_8 zKK90#JhD8}iP2EyCF+W>;eDxdk*Y6Xy*A`i_5ozjp%y4J!h{rzni@M&z=PZA6dL?6 zLOW&-tqLI|XuDtuk7!+lMck!xZ5&*aa3&tLW)f8ttYJ#&*BGPDzBjW*@s*8wg|qjNF0QcO$F^ypa4cdxxWDo zc$~7jg<~?FzOWS9yk}at$F3neLHbnR9E#m6ke95GlOncYogSa0pCwo^Nk@-}J zOUuF_#rQbJ!@7`kgha0&@nZw2V80O;k*zyr81CTOo6Cutj19m6D_Poy8D=DKaekL_ zL&~k+T$uG!qqPDv$ceznmUr82I}x^;<~zD=^sK0cAw>_))X#?1^*uo=a+!WRi2w%q zO_eS4zc=jB8d}mnIg}eK+M7}Yn+BCi$ou)7xM26UHN>J>64DO=IMph^hYFOc)cKHV zgAN;SLn|5Tn^t8!<&*aN;j@ZdL7O3R^w_z+*)ABD2$coZ9T!-xb?SXfhMT^YvT{O9zGcSEkcf>3z%uJtcKQMOTZ?vK1= zG~a2Iao8U!sh{$5#;MCY3L#O{Y!%fVAYE|_ywY9S4K&40-tF10>z<1>?73<}z9Zk0 z1`+?C5FX^XMb;<9rs2US^7+vjaU% zOiFthUiUnC-`(fh(OzJ4{6yvdm;NpLKX5wG|DWw|f5g9(?*CV-T1>(}YWx45ko}9C z_@4K_i^BfNSc(H8fy>SXoAH~h+%W;*_}vsg2BZ4SMNY)pegd3jr=O-T0m(R>*|~(9 zH~BfCJX`1wrVL&!UL53(joEKSjY$xbSzl+w%bfe>*+*SF$Cif#iST3Kq1?s2R}dIa z?oFQV&#fD0EJ#P;$|I9D)Cti+Y|a_?&iMg{&6~33Nw>946HcSy26tcGil^|dVsN{?&54IF-av|8 zur>|B^;&&t;r&nDkwu_Zd+_My{yk+5(18&*?+P=LXmS+8l`?Q*x8u8=px!E(72 zwu@Gsmz=u-33>YA_16u#MZ)F}t{(NR!`>K&{?d|2ew#c=$Y8;i?s7&jZIPuy(PRBy zwm%#vvF+5?=Va;@A5?$ea*6Z~Svx-K5eINayqm%pK3CL*6Od&&CY)2;Htlw_5jmQ{IXlyqp zF}aMzq+JdQoM+r2nXH+mV3$w1QA4Es!e0;{E#Ez@Bg6GKgTr1TNwdgGxu-F}WeO&b zK%1)W2pIl;B~F3imEDT7I%?Y1QBqY7IsZZR2*b9s#(C-U4&cz#P{=9(?{TjLoW?Sf^aEaV;Hxk@!$Ep5AMh-4vFL5dy-_2m%a9!VN*jumPWT8Mxc9~hE6=LeR01Xhy$|%(2tAy0T+po-J zMaSTR6C9y3u7;U~B+);bs0bN3)6Rh!W8n5z z{`fv{Y<@R=M9ugyC(xEKT~6^0hi`Nf?|Zx8rlw9P1f*c zHk*X2B+4c;4(q;b6XA9GogY!lp5j&zlla;)*xOL9ikAl}CAT ztXGt6MP9EMEKPwdYI)kE5jBz3PI>8c#iE&>Q%|@KTn~~l?Hn@#Xx9O?_DS~x+>+*k zrea>+#s3m}Zy3u;({<~P5V?4}GtkMEC)dWwrl_lIXgcesE5i@b3vk|a6SX(St2;Fu zIVVmkLFKw6kTmz@T@V?a6T2VIwS3drEUpG2WpDuqf*3dJKP_HU@vb~LLOOR~td!@t zXbZUWpd+1-3apZY!>oGJm(gAp1&xfdlvjoIa*u|KIOwehp@GTQW65_3rw~;%30P5Q z)kaxzO)#0DWeCCaT@K9ocE9=i#`F@-;- z=5!NIj&b%2yzp!53B&aDT@SG-mZP|A)JB~E@G%PF#jjmf1MJ-2+3WghJ|?T9f7AD3Z!F4M6}k>hbnTnO|qb*PB5J?@AEYLm3zs*1rnW={G(G?~-N@5@ua) zG-DgOxO0}Rj^}M~sIBEiR}4-pkWvm0@43!7ke9mgkuC_=D?EvuHT&S9Yt`w_LAY@HcB-vD@VYCEUE3ZW&MnP#6vK&QozgUVqJCm& z>)%(R!JhqeBziY%xa!m4g4snO7P2^x%Pi}OnqjF!zqr4Idiv9iA7kd6#WGY{H!$#< z6*xj(kGtP)M)`!?d=VpjEr*!D=esqlJ=-K-+QMV+vEpja2VI;vM$PhI{rZSbBMUfT zu2EqJWz@7q?ln%cm5FVwOH7)jtQybZ?5X5?cSXPPUSq`R7y}X@jmkZS({2?@Dc6~F z5b>m?BQQrxmAWfbMpU~gIpSU~Ei-QGM)aWVLd5*6;y~0;C0>96iHp7)5au`m*Hqpa zI3u+AgNb-$JauV^G`w&TX+_F9w6^-B1t$K@wZ0;kxId_dBSa{AHLRI|MMQ6c)9GA& zOw}`&q+wykG{CuIeZRhye}^>|eG<#P^i3gi3tL!23s-IB=S)E&Pu8y@?=y=sDemAs zqpMO!#mv>km<^s<=f(yn@K1nFhB}0Bs$X5LBet-+qHFnx>Y3s-PoSCE4z^O#ZZJtS zJS_N<-5@DXM%x0Gl}Xl93)0u6byt~W%@(p{J1%pOura$Lwr{vlU>Dosu*sKdy$WOu z0za6_(I+}A`oxxkH;840xG^ZdDMRhgDhND00v6V;mpO2AA-{L57+v%-loR!5p73 z{fzm8+oL1646VDvlACMGwF-*wbxoEC~g!(bV? zSKN#t^+vg?8|5v%Y%2PV(VOSIt;%ck;6S|2tk~?sgQo2^R%NCML601c`P5}Un4*Wt zp^!|$q*;89XUl~Pp1hRin9Mj!%|@NeFKHGQwc~0jZ+%BN^uPcg$kay=FmrWB_M_)4 z=;u9LHuxSQ58j zI3-zuHRlN&Z|1!9;cuS7*bgJVE@aj%b1SMRCMNlO7-~W)zn8x66B2R;>e6|(&C0f? zAlDn;M?yN!nW}mg;?x%{Q*Edyqh(SxQ3%nwW`G@P(8P&e3B|6Wz#o1*BX22Y$YK@1 zRicl(Df!<+kX})j#SE|rWA?}G`OA5Wytpcet!0HtVHPv4!Ajb*U%^QdM-pD|GQb+502X zyKgrVgLL0r_>@gUb$8GlB}l~3hmMqXA+aykbU78}Ot@0vtV+-UQIk0aMVpMbkp)c~ zKlQabbv@k7*Sy9J=uzG!O9fxr9h(rqNq5DuS)0nVvFC(?R7aY%pf>c` zNzhl3_SoM?rOe3k2HP008!**E*Z2e&9VsQE4{Kq91`t*4y>fP_3v}1tB;j;P zCCYWbR&x;x!A6~4R{AjsViYYCn(B?;+@Kga5+;0u^?kq@QP$}QcA7Z4W`>C`O0jmuvh2G@CzcE89gHBJvQtO))7 ziO>Z<_$`0&UJZspMDfPJzhZq?*b*s<(bvr(w>Jegw#eB?u%&hO{IE$JZCX=s?dO1v zO6w+ne8}J+hhlA!K*5Tj4Zfox107^8_~0V5pJ5JBqTP=UGutzl!_7~?{ISMDu9by} zVYC1e-Tu=rh2L-GOG;tRiT$W4u-Vl0Efj%3G1|$x;KvC^!d0c=eG_|QQH805R5A{? z#1^4G7hd^1D-W2jdUjSEZIWtwgVSAXL!@b*$lFdUV=twbt<9-lM>r$uC*a-_`P35{ zGl@HlaH~g8QN1|qF(+bRX;CG9#?oup`#o|1Y zx&K?R=Ij_NB3~tuSacY@pm7859Y&Q({!&&W+T^uvezbZPcU83Scn z$CX6*G|BYJiolX>X7oq=Ebsc8iS%BWLwT`6vFJu>b=o$>F|pl;WCPsGOBzI`nX2ptJ8j=T$v?RF;z-CyuXC& z5h0f9XE$5{2|~~iYff*02sXKQO48TH@#)L`!w)Z)oX7Zo*(xt#bLB&Uq{ zU-P>E(!=@w2W&>p%|2!@Q!P^rjtV@84!o-Lx++SWBiN_@I__g@I64DUfF;=H3k3W} z`0kI?UOXL6S+2iJ14=M7;uIaLdm%x>ktmAJzMBoy-zb+{)C;q?-I-8W%lw*-pl~Rf zlh0`m7lw5BmWUL9L^lK)qHX|J5BNEnlJ8_5+jl+W6Wy(-hz^1?PzPS5VJAV4%l$Oi zOS?U;T&A5$UNc31ep0yRMR7>E&SlzSFb0)>lDAquMY3`nI8+1M_rUeI<)_KeLR0V( zm*TD{Ct-(qW)KWzx0;c}E$G1mhE^h1w^4L$qwECnS}G))S1zH{+tLvPUrz~PG5v9x zhD8POS6A5M=*%dNQ;a*}p3f|I1*LGQIlEkH%T%Qj0uUPQH|R)~oH2&d#nN90F{$kj0OO-;Vv`F~=*i5jh`q ztzWVBkJ>8uOQRxB-hC;&$I7kVdU|9Puh`H$5X%jK!7jhLDB$i@?Id_`5hXKku(B>;JC^yZ=4Z@UMaOzeuu#|FC8MwZ-`OBmI*W@IPCK{%i34 zuc3GB*!S7z>04L0iF99%Fb@;9dt_8`7tde8x2};RiJ3CbG9RuoPZ-=ATVzD8p8R2H zhoo0Ksj)}Ah~kr3IipozJ6?=JU^dS)hfALFNu*Da+ac8NQvkqSJ|H7GH&gC;I!1^= zc_5YouHDtUzDLyMe{We6MCaZ=4<>gVIde1YWC0HY@YYo1PAlp zd^f*VZ)CMni%h^45Sq8b_Z^@#x`o{)VG*(wp#UTGTWr@o!HAn}?RKE5ZPVT-lEW|v zlx{Psw=he&`2<*Lq^2{FUnH7=CTuV3=`wa{WWBtEr1mkKWMFk5^cFJ?dti(iI8WyT z$bb(C2|J}s@5pp;xzyt?y$BO3@NMf+&6F4CF7XmZHhVXhlwRs;Ork`tdI<)y6`b)~ z4!KJyRz*-Qcy|PHmI(Z*iT4Lr@_s*1sG)xXyzfgqnZ?_M6%|N6R61+7=<{1@DVwn_ z1|``ma(`ca&#vdQF>xX@KvxS*fJ*bS|3MibHYo2v)=;UVOB8ad*6fE4M7_YtcZbgs z9l@DW?%txX5o=Jqbj*t3hdD`PWqY9vaQf0_lKUMTaiC}K_8flI{;5sC#dDN7f@M@i zP&P@iOzSjjj`|t%oIOE^K0rUI)l(?bij^L>xS&Zoty5QBA1T%rJDI>|X&dg>gks3) z!9f3_#I0BS>I~CxGT%S+%3Ap;YhX?Jsu{J?oBHjR#rt#sq4}q-CWMLSsQ~tVs08!DsT0_G5UhtmVDsPnD0-S)7&k0 zdYWs5miffRxP54p26bLPbmAl%<8{OkDZe!?g*I_){gBccJeJMRS~+rq%`9YzH@p_+ zvd-Q^(@~xWt2&m^I87n;89yio=q!KT#fU!vkXLHyQi}8TgB?w6EzXL3SP?e~kb_Zw zjXJMa5V{)--2*c#!CxNkkoXa=DJsGdEh09Bu--gm=~_b}u4an$;E;H@4Zt7Gpwke< zT&co0^Z#PCpsn(_l$JD`vCt8WR8d(CP23Ame^wpof) zy+#ctowvL@O5Xi3wgo<`8)4JRjfw{wKe-m#WT~LvbXyVN^oQt=&Qk0~ixu{%?Xq*D z>}+|yne%)X^wl{j<&b%#-30p=@55Sh^mrv;;lMS@

~Bm0Fu&?Gd?>CnVAevdWmTQ?k#hl1^4 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