From 81c79275aabb08cf27f61efbed45ebe864e5feb4 Mon Sep 17 00:00:00 2001 From: abearxiong Date: Mon, 10 Mar 2025 10:50:06 +0800 Subject: [PATCH] init --- .gitignore | 3 + index.html | 14 + package.json | 32 + pnpm-lock.yaml | 1657 +++++++++++++++++ router-app/.gitignore | 1 + router-app/pem/https-cert.pem | 15 + router-app/pem/https-key.pem | 15 + router-app/src/app.ts | 21 + router-app/src/modules/config.ts | 9 + router-app/src/modules/config/index.ts | 108 ++ router-app/src/modules/file/index.ts | 20 + router-app/src/proxy/index.ts | 5 + router-app/src/scripts/create-sign.ts | 18 + router-app/static/download.ts | 18 + router-app/static/enter/electron.js | 23 + router-app/static/enter/index.html | 214 +++ router-app/static/enter/main.js | 28 + router-app/static/index.html | 21 + router-app/static/packages/config.js | 3 + router-app/static/packages/electron.js | 45 + router-app/static/packages/index.html | 17 + router-app/static/packages/main.js | 158 ++ router-app/static/packages/style.css | 115 ++ src/main/handle/index.ts | 35 + src/main/index.ts | 47 + src/main/logger.ts | 6 + src/main/menu/index.ts | 117 ++ src/main/preload.js | 19 + src/main/proxy/api-proxy.ts | 12 + src/main/proxy/index.ts | 0 src/main/proxy/install.ts | 141 ++ src/main/renderer.ts | 6 + src/main/session/index.ts | 57 + src/main/window/page/app-packages.ts | 19 + src/main/window/page/enter.ts | 19 + src/main/window/page/index.ts | 18 + src/main/window/page/introduce.ts | 19 + src/main/window/relunch.ts | 6 + src/main/window/window-manager.ts | 11 + src/modules/config/index.ts | 108 ++ src/modules/file/index.ts | 20 + src/renderer/assistant-center.tgz | Bin 0 -> 4422 bytes src/renderer/assistant-center/package.json | 76 + .../assistant-center/pem/https-cert.pem | 15 + .../assistant-center/pem/https-key.pem | 15 + .../assets/Enter-BnWSbQup.js | 9 + .../assets/Enter-CoE7l2Yc.css | 1 + .../assets/index-B3OKg3E6.js | 31 + .../assets/index-BQID9xYq.css | 1 + .../assets/index-CyYNi-ro.css | 1 + .../assets/index-OAiiq-Mf.js | 51 + .../root/assistant-base-app/index.html | 13 + src/renderer/download-services.mjs | 6 + src/renderer/index.html | 21 + src/renderer/release/assistant-center.tgz | Bin 0 -> 235988 bytes .../assets/Enter-BnWSbQup.js | 9 + .../assets/Enter-CoE7l2Yc.css | 1 + .../assets/index-B3OKg3E6.js | 31 + .../assets/index-BQID9xYq.css | 1 + .../assets/index-CyYNi-ro.css | 1 + .../assets/index-OAiiq-Mf.js | 51 + .../root/assistant-base-app/index.html | 13 + src/scripts/run-save-files.ts | 3 + tsconfig.json | 30 + vite.config.ts | 48 + 65 files changed, 3648 insertions(+) create mode 100644 .gitignore create mode 100644 index.html create mode 100644 package.json create mode 100644 pnpm-lock.yaml create mode 100644 router-app/.gitignore create mode 100644 router-app/pem/https-cert.pem create mode 100644 router-app/pem/https-key.pem create mode 100644 router-app/src/app.ts create mode 100644 router-app/src/modules/config.ts create mode 100644 router-app/src/modules/config/index.ts create mode 100644 router-app/src/modules/file/index.ts create mode 100644 router-app/src/proxy/index.ts create mode 100644 router-app/src/scripts/create-sign.ts create mode 100644 router-app/static/download.ts create mode 100644 router-app/static/enter/electron.js create mode 100644 router-app/static/enter/index.html create mode 100644 router-app/static/enter/main.js create mode 100644 router-app/static/index.html create mode 100644 router-app/static/packages/config.js create mode 100644 router-app/static/packages/electron.js create mode 100644 router-app/static/packages/index.html create mode 100644 router-app/static/packages/main.js create mode 100644 router-app/static/packages/style.css create mode 100644 src/main/handle/index.ts create mode 100644 src/main/index.ts create mode 100644 src/main/logger.ts create mode 100644 src/main/menu/index.ts create mode 100644 src/main/preload.js create mode 100644 src/main/proxy/api-proxy.ts create mode 100644 src/main/proxy/index.ts create mode 100644 src/main/proxy/install.ts create mode 100644 src/main/renderer.ts create mode 100644 src/main/session/index.ts create mode 100644 src/main/window/page/app-packages.ts create mode 100644 src/main/window/page/enter.ts create mode 100644 src/main/window/page/index.ts create mode 100644 src/main/window/page/introduce.ts create mode 100644 src/main/window/relunch.ts create mode 100644 src/main/window/window-manager.ts create mode 100644 src/modules/config/index.ts create mode 100644 src/modules/file/index.ts create mode 100644 src/renderer/assistant-center.tgz create mode 100644 src/renderer/assistant-center/package.json create mode 100644 src/renderer/assistant-center/pem/https-cert.pem create mode 100644 src/renderer/assistant-center/pem/https-key.pem create mode 100644 src/renderer/assistant-center/root/assistant-base-app/assets/Enter-BnWSbQup.js create mode 100644 src/renderer/assistant-center/root/assistant-base-app/assets/Enter-CoE7l2Yc.css create mode 100644 src/renderer/assistant-center/root/assistant-base-app/assets/index-B3OKg3E6.js create mode 100644 src/renderer/assistant-center/root/assistant-base-app/assets/index-BQID9xYq.css create mode 100644 src/renderer/assistant-center/root/assistant-base-app/assets/index-CyYNi-ro.css create mode 100644 src/renderer/assistant-center/root/assistant-base-app/assets/index-OAiiq-Mf.js create mode 100644 src/renderer/assistant-center/root/assistant-base-app/index.html create mode 100644 src/renderer/download-services.mjs create mode 100644 src/renderer/index.html create mode 100644 src/renderer/release/assistant-center.tgz create mode 100644 src/renderer/root/assistant-base-app/assets/Enter-BnWSbQup.js create mode 100644 src/renderer/root/assistant-base-app/assets/Enter-CoE7l2Yc.css create mode 100644 src/renderer/root/assistant-base-app/assets/index-B3OKg3E6.js create mode 100644 src/renderer/root/assistant-base-app/assets/index-BQID9xYq.css create mode 100644 src/renderer/root/assistant-base-app/assets/index-CyYNi-ro.css create mode 100644 src/renderer/root/assistant-base-app/assets/index-OAiiq-Mf.js create mode 100644 src/renderer/root/assistant-base-app/index.html create mode 100644 src/scripts/run-save-files.ts create mode 100644 tsconfig.json create mode 100644 vite.config.ts diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..67517ff --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +node_modules +dist +app-dist \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..3d40c71 --- /dev/null +++ b/index.html @@ -0,0 +1,14 @@ + + + + + + Package Manager + + +
+

Package Manager

+
+
+ + \ No newline at end of file diff --git a/package.json b/package.json new file mode 100644 index 0000000..c50cdb1 --- /dev/null +++ b/package.json @@ -0,0 +1,32 @@ +{ + "name": "silky-assistant", + "version": "0.0.1", + "description": "", + "main": "dist/main/main.js", + "scripts": { + "dev": "vite --config vite.config.ts", + "build": "vite build --config vite.config.ts", + "build:watch": "vite build --config vite.config.ts -w", + "build:electron": "vite build --config vite.config.ts", + "start": "electron ." + }, + "keywords": [], + "author": "abearxiong ", + "license": "MIT", + "type": "module", + "devDependencies": { + "@types/electron": "^1.6.12", + "@types/node": "^22.13.9", + "electron-log": "^5.3.2", + "electron-updater": "^6.3.9", + "typescript": "^5.8.2", + "vite": "^6.2.1", + "vite-plugin-electron": "^0.29.0", + "vite-plugin-static-copy": "^2.3.0" + }, + "dependencies": { + "@kevisual/assistant-module": "^0.0.3", + "@kevisual/router": "^0.0.9", + "electron": "^35.0.0" + } +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..891d95c --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,1657 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@kevisual/assistant-module': + specifier: ^0.0.3 + version: 0.0.3 + '@kevisual/router': + specifier: ^0.0.9 + version: 0.0.9 + electron: + specifier: ^35.0.0 + version: 35.0.0 + devDependencies: + '@types/electron': + specifier: ^1.6.12 + version: 1.6.12 + '@types/node': + specifier: ^22.13.9 + version: 22.13.9 + electron-log: + specifier: ^5.3.2 + version: 5.3.2 + electron-updater: + specifier: ^6.3.9 + version: 6.3.9 + typescript: + specifier: ^5.8.2 + version: 5.8.2 + vite: + specifier: ^6.2.1 + version: 6.2.1(@types/node@22.13.9) + vite-plugin-electron: + specifier: ^0.29.0 + version: 0.29.0 + vite-plugin-static-copy: + specifier: ^2.3.0 + version: 2.3.0(vite@6.2.1(@types/node@22.13.9)) + +packages: + + '@electron/get@2.0.3': + resolution: {integrity: sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==} + engines: {node: '>=12'} + + '@esbuild/aix-ppc64@0.25.0': + resolution: {integrity: sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.25.0': + resolution: {integrity: sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.25.0': + resolution: {integrity: sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.25.0': + resolution: {integrity: sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.25.0': + resolution: {integrity: sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.25.0': + resolution: {integrity: sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.25.0': + resolution: {integrity: sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.25.0': + resolution: {integrity: sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.25.0': + resolution: {integrity: sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.25.0': + resolution: {integrity: sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.25.0': + resolution: {integrity: sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.25.0': + resolution: {integrity: sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.25.0': + resolution: {integrity: sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.25.0': + resolution: {integrity: sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.25.0': + resolution: {integrity: sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.25.0': + resolution: {integrity: sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.25.0': + resolution: {integrity: sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.25.0': + resolution: {integrity: sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.25.0': + resolution: {integrity: sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.25.0': + resolution: {integrity: sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.25.0': + resolution: {integrity: sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.25.0': + resolution: {integrity: sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.25.0': + resolution: {integrity: sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.25.0': + resolution: {integrity: sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.25.0': + resolution: {integrity: sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + + '@kevisual/assistant-module@0.0.3': + resolution: {integrity: sha512-XC9tZJk+GclDV7fVXqmghbMRfhD4dqFh/X085LttDw3iBDkRO78H8+zCrHwx+poSh4JQDYite/FJdpQOs+cHoA==} + + '@kevisual/router@0.0.9': + resolution: {integrity: sha512-qPyC2GVJ7iOIdJCCKNDsWMAKOQeSJW9HBpL5ZWKHTbi+t4jJBGTzIlXmjKeMHRd0lr/Qq1imQvlkSh4hlrbodA==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@rollup/rollup-android-arm-eabi@4.34.9': + resolution: {integrity: sha512-qZdlImWXur0CFakn2BJ2znJOdqYZKiedEPEVNTBrpfPjc/YuTGcaYZcdmNFTkUj3DU0ZM/AElcM8Ybww3xVLzA==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.34.9': + resolution: {integrity: sha512-4KW7P53h6HtJf5Y608T1ISKvNIYLWRKMvfnG0c44M6In4DQVU58HZFEVhWINDZKp7FZps98G3gxwC1sb0wXUUg==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.34.9': + resolution: {integrity: sha512-0CY3/K54slrzLDjOA7TOjN1NuLKERBgk9nY5V34mhmuu673YNb+7ghaDUs6N0ujXR7fz5XaS5Aa6d2TNxZd0OQ==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.34.9': + resolution: {integrity: sha512-eOojSEAi/acnsJVYRxnMkPFqcxSMFfrw7r2iD9Q32SGkb/Q9FpUY1UlAu1DH9T7j++gZ0lHjnm4OyH2vCI7l7Q==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.34.9': + resolution: {integrity: sha512-2lzjQPJbN5UnHm7bHIUKFMulGTQwdvOkouJDpPysJS+QFBGDJqcfh+CxxtG23Ik/9tEvnebQiylYoazFMAgrYw==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.34.9': + resolution: {integrity: sha512-SLl0hi2Ah2H7xQYd6Qaiu01kFPzQ+hqvdYSoOtHYg/zCIFs6t8sV95kaoqjzjFwuYQLtOI0RZre/Ke0nPaQV+g==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.34.9': + resolution: {integrity: sha512-88I+D3TeKItrw+Y/2ud4Tw0+3CxQ2kLgu3QvrogZ0OfkmX/DEppehus7L3TS2Q4lpB+hYyxhkQiYPJ6Mf5/dPg==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.34.9': + resolution: {integrity: sha512-3qyfWljSFHi9zH0KgtEPG4cBXHDFhwD8kwg6xLfHQ0IWuH9crp005GfoUUh/6w9/FWGBwEHg3lxK1iHRN1MFlA==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.34.9': + resolution: {integrity: sha512-6TZjPHjKZUQKmVKMUowF3ewHxctrRR09eYyvT5eFv8w/fXarEra83A2mHTVJLA5xU91aCNOUnM+DWFMSbQ0Nxw==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.34.9': + resolution: {integrity: sha512-LD2fytxZJZ6xzOKnMbIpgzFOuIKlxVOpiMAXawsAZ2mHBPEYOnLRK5TTEsID6z4eM23DuO88X0Tq1mErHMVq0A==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loongarch64-gnu@4.34.9': + resolution: {integrity: sha512-dRAgTfDsn0TE0HI6cmo13hemKpVHOEyeciGtvlBTkpx/F65kTvShtY/EVyZEIfxFkV5JJTuQ9tP5HGBS0hfxIg==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.34.9': + resolution: {integrity: sha512-PHcNOAEhkoMSQtMf+rJofwisZqaU8iQ8EaSps58f5HYll9EAY5BSErCZ8qBDMVbq88h4UxaNPlbrKqfWP8RfJA==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.34.9': + resolution: {integrity: sha512-Z2i0Uy5G96KBYKjeQFKbbsB54xFOL5/y1P5wNBsbXB8yE+At3oh0DVMjQVzCJRJSfReiB2tX8T6HUFZ2k8iaKg==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.34.9': + resolution: {integrity: sha512-U+5SwTMoeYXoDzJX5dhDTxRltSrIax8KWwfaaYcynuJw8mT33W7oOgz0a+AaXtGuvhzTr2tVKh5UO8GVANTxyQ==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.34.9': + resolution: {integrity: sha512-FwBHNSOjUTQLP4MG7y6rR6qbGw4MFeQnIBrMe161QGaQoBQLqSUEKlHIiVgF3g/mb3lxlxzJOpIBhaP+C+KP2A==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.34.9': + resolution: {integrity: sha512-cYRpV4650z2I3/s6+5/LONkjIz8MBeqrk+vPXV10ORBnshpn8S32bPqQ2Utv39jCiDcO2eJTuSlPXpnvmaIgRA==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-win32-arm64-msvc@4.34.9': + resolution: {integrity: sha512-z4mQK9dAN6byRA/vsSgQiPeuO63wdiDxZ9yg9iyX2QTzKuQM7T4xlBoeUP/J8uiFkqxkcWndWi+W7bXdPbt27Q==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.34.9': + resolution: {integrity: sha512-KB48mPtaoHy1AwDNkAJfHXvHp24H0ryZog28spEs0V48l3H1fr4i37tiyHsgKZJnCmvxsbATdZGBpbmxTE3a9w==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.34.9': + resolution: {integrity: sha512-AyleYRPU7+rgkMWbEh71fQlrzRfeP6SyMnRf9XX4fCdDPAJumdSBqYEcWPMzVQ4ScAl7E4oFfK0GUVn77xSwbw==} + cpu: [x64] + os: [win32] + + '@sindresorhus/is@4.6.0': + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + + '@szmarczak/http-timer@4.0.6': + resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} + engines: {node: '>=10'} + + '@types/cacheable-request@6.0.3': + resolution: {integrity: sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==} + + '@types/electron@1.6.12': + resolution: {integrity: sha512-NIJokDkGv9h+MStCL1IuiL1FOHYVkszoWeNxJtSI5dcEKRGbX83JcVYNAgk019qOQgJkHtz9WdP0CDXvrArrGg==} + deprecated: This is a stub types definition. electron provides its own type definitions, so you do not need this installed. + + '@types/estree@1.0.6': + resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} + + '@types/http-cache-semantics@4.0.4': + resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} + + '@types/keyv@3.1.4': + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + + '@types/node-forge@1.3.11': + resolution: {integrity: sha512-FQx220y22OKNTqaByeBGqHWYz4cl94tpcxeFdvBo3wjG6XPBuZ0BNgNZRV5J5TFmmcsJ4IzsLkmGRiQbnYsBEQ==} + + '@types/node@22.13.9': + resolution: {integrity: sha512-acBjXdRJ3A6Pb3tqnw9HZmyR3Fiol3aGxRCK1x3d+6CDAMjl7I649wpSd+yNURCjbOUGu9tqtLKnTGxmK6CyGw==} + + '@types/responselike@1.0.3': + resolution: {integrity: sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==} + + '@types/yauzl@2.10.3': + resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} + + anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + + boolean@3.2.0: + resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + buffer-crc32@0.2.13: + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + + builder-util-runtime@9.2.10: + resolution: {integrity: sha512-6p/gfG1RJSQeIbz8TK5aPNkoztgY1q5TgmGFMAXcY8itsGW6Y2ld1ALsZ5UJn8rog7hKF3zHx5iQbNQ8uLcRlw==} + engines: {node: '>=12.0.0'} + + cacheable-lookup@5.0.4: + resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} + engines: {node: '>=10.6.0'} + + cacheable-request@7.0.4: + resolution: {integrity: sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==} + engines: {node: '>=8'} + + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + + clone-response@1.0.3: + resolution: {integrity: sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==} + + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + + defer-to-connect@2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + + depd@2.0.0: + resolution: {integrity: sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==} + engines: {node: '>= 0.8'} + + destroy@1.2.0: + resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} + engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + + detect-node@2.1.0: + resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} + + ee-first@1.1.1: + resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} + + electron-log@5.3.2: + resolution: {integrity: sha512-EFI5MFFEzFJU5gyhJNpKQhfGfrRP9IWzSu0sSxrWXasWKvVAOFgBySafX8W1pbPKa/w8/DDPu2bBBtVZJdDsnw==} + engines: {node: '>= 14'} + + electron-updater@6.3.9: + resolution: {integrity: sha512-2PJNONi+iBidkoC5D1nzT9XqsE8Q1X28Fn6xRQhO3YX8qRRyJ3mkV4F1aQsuRnYPqq6Hw+E51y27W75WgDoofw==} + + electron@35.0.0: + resolution: {integrity: sha512-mwNQNktYLPnUWZVR8iNkfWCBjmM5e2/CmB1rhACwE9ASDbVU7CYPgp/jLUB3bj/LyQsfSuubD82OUite6SN8Uw==} + engines: {node: '>= 12.20.55'} + hasBin: true + + encodeurl@2.0.0: + resolution: {integrity: sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==} + engines: {node: '>= 0.8'} + + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es6-error@4.1.1: + resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} + + esbuild@0.25.0: + resolution: {integrity: sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==} + engines: {node: '>=18'} + hasBin: true + + escape-html@1.0.3: + resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==} + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + etag@1.8.1: + resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==} + engines: {node: '>= 0.6'} + + extract-zip@2.0.1: + resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} + engines: {node: '>= 10.17.0'} + hasBin: true + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fastq@1.19.1: + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + + fd-slicer@1.1.0: + resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + fresh@0.5.2: + resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} + engines: {node: '>= 0.6'} + + fs-extra@10.1.0: + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} + + fs-extra@11.3.0: + resolution: {integrity: sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==} + engines: {node: '>=14.14'} + + fs-extra@8.1.0: + resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} + engines: {node: '>=6 <7 || >=8'} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + get-stream@5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + global-agent@3.0.0: + resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} + engines: {node: '>=10.0'} + + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + got@11.8.6: + resolution: {integrity: sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==} + engines: {node: '>=10.19.0'} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + + http-cache-semantics@4.1.1: + resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} + + http-errors@2.0.0: + resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} + engines: {node: '>= 0.8'} + + http2-wrapper@1.0.3: + resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} + engines: {node: '>=10.19.0'} + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + js-yaml@4.1.0: + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + + jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} + + jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + lazy-val@1.0.5: + resolution: {integrity: sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==} + + lodash.escaperegexp@4.1.2: + resolution: {integrity: sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==} + + lodash.isequal@4.5.0: + resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==} + deprecated: This package is deprecated. Use require('node:util').isDeepStrictEqual instead. + + lowercase-keys@2.0.0: + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} + + matcher@3.0.0: + resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} + engines: {node: '>=10'} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + mimic-response@1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + nanoid@3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + node-forge@1.3.1: + resolution: {integrity: sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==} + engines: {node: '>= 6.13.0'} + + normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + + normalize-url@6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + + object-keys@1.1.1: + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} + + on-finished@2.4.1: + resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} + engines: {node: '>= 0.8'} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + p-cancelable@2.1.1: + resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} + engines: {node: '>=8'} + + p-map@7.0.3: + resolution: {integrity: sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==} + engines: {node: '>=18'} + + path-to-regexp@8.2.0: + resolution: {integrity: sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ==} + engines: {node: '>=16'} + + pend@1.2.0: + resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + postcss@8.5.3: + resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} + engines: {node: ^10 || ^12 || >=14} + + progress@2.0.3: + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} + + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + quick-lru@5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + + range-parser@1.2.1: + resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==} + engines: {node: '>= 0.6'} + + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + + resolve-alpn@1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + + responselike@2.0.1: + resolution: {integrity: sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==} + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + roarr@2.15.4: + resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} + engines: {node: '>=8.0'} + + rollup@4.34.9: + resolution: {integrity: sha512-nF5XYqWWp9hx/LrpC8sZvvvmq0TeTjQgaZHYmAgwysT9nh8sWnZhBnM8ZyVbbJFIQBLwHDNoMqsBZBbUo4U8sQ==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + sax@1.4.1: + resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==} + + selfsigned@2.4.1: + resolution: {integrity: sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==} + engines: {node: '>=10'} + + semver-compare@1.0.0: + resolution: {integrity: sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==} + + semver@6.3.1: + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + hasBin: true + + semver@7.7.1: + resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==} + engines: {node: '>=10'} + hasBin: true + + send@1.1.0: + resolution: {integrity: sha512-v67WcEouB5GxbTWL/4NeToqcZiAWEq90N888fczVArY8A79J0L4FD7vj5hm3eUMua5EpoQ59wa/oovY6TLvRUA==} + engines: {node: '>= 18'} + + serialize-error@7.0.1: + resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} + engines: {node: '>=10'} + + setprototypeof@1.2.0: + resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + + statuses@2.0.1: + resolution: {integrity: sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==} + engines: {node: '>= 0.8'} + + sumchecker@3.0.1: + resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} + engines: {node: '>= 8.0'} + + tiny-typed-emitter@2.1.0: + resolution: {integrity: sha512-qVtvMxeXbVej0cQWKqVSSAHmKZEHAvxdF8HEUBFWts8h+xEo5m/lEiPakuyZ3BnCBjOD8i24kzNOiOLLgsSxhA==} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + toidentifier@1.0.1: + resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==} + engines: {node: '>=0.6'} + + type-fest@0.13.1: + resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} + engines: {node: '>=10'} + + typescript@5.8.2: + resolution: {integrity: sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ==} + engines: {node: '>=14.17'} + hasBin: true + + undici-types@6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} + + universalify@0.1.2: + resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} + engines: {node: '>= 4.0.0'} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + vite-plugin-electron@0.29.0: + resolution: {integrity: sha512-HP0DI9Shg41hzt55IKYVnbrChWXHX95QtsEQfM+szQBpWjVhVGMlqRjVco6ebfQjWNr+Ga+PeoBjMIl8zMaufw==} + peerDependencies: + vite-plugin-electron-renderer: '*' + peerDependenciesMeta: + vite-plugin-electron-renderer: + optional: true + + vite-plugin-static-copy@2.3.0: + resolution: {integrity: sha512-LLKwhhHetGaCnWz4mas4qqjjguDka6/6b4+SeIohRroj8aCE7QTfiZECfPecslFQkWZ3HdQuq5kOPmWZjNYlKA==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 || ^6.0.0 + + vite@6.2.1: + resolution: {integrity: sha512-n2GnqDb6XPhlt9B8olZPrgMD/es/Nd1RdChF6CBD/fHW6pUyUTt2sQW2fPRX5GiD9XEa6+8A6A4f2vT6pSsE7Q==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 + jiti: '>=1.21.0' + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.4.2 + peerDependenciesMeta: + '@types/node': + optional: true + jiti: + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + ws@8.18.1: + resolution: {integrity: sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + + yauzl@2.10.0: + resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} + +snapshots: + + '@electron/get@2.0.3': + dependencies: + debug: 4.4.0 + env-paths: 2.2.1 + fs-extra: 8.1.0 + got: 11.8.6 + progress: 2.0.3 + semver: 6.3.1 + sumchecker: 3.0.1 + optionalDependencies: + global-agent: 3.0.0 + transitivePeerDependencies: + - supports-color + + '@esbuild/aix-ppc64@0.25.0': + optional: true + + '@esbuild/android-arm64@0.25.0': + optional: true + + '@esbuild/android-arm@0.25.0': + optional: true + + '@esbuild/android-x64@0.25.0': + optional: true + + '@esbuild/darwin-arm64@0.25.0': + optional: true + + '@esbuild/darwin-x64@0.25.0': + optional: true + + '@esbuild/freebsd-arm64@0.25.0': + optional: true + + '@esbuild/freebsd-x64@0.25.0': + optional: true + + '@esbuild/linux-arm64@0.25.0': + optional: true + + '@esbuild/linux-arm@0.25.0': + optional: true + + '@esbuild/linux-ia32@0.25.0': + optional: true + + '@esbuild/linux-loong64@0.25.0': + optional: true + + '@esbuild/linux-mips64el@0.25.0': + optional: true + + '@esbuild/linux-ppc64@0.25.0': + optional: true + + '@esbuild/linux-riscv64@0.25.0': + optional: true + + '@esbuild/linux-s390x@0.25.0': + optional: true + + '@esbuild/linux-x64@0.25.0': + optional: true + + '@esbuild/netbsd-arm64@0.25.0': + optional: true + + '@esbuild/netbsd-x64@0.25.0': + optional: true + + '@esbuild/openbsd-arm64@0.25.0': + optional: true + + '@esbuild/openbsd-x64@0.25.0': + optional: true + + '@esbuild/sunos-x64@0.25.0': + optional: true + + '@esbuild/win32-arm64@0.25.0': + optional: true + + '@esbuild/win32-ia32@0.25.0': + optional: true + + '@esbuild/win32-x64@0.25.0': + optional: true + + '@kevisual/assistant-module@0.0.3': + dependencies: + send: 1.1.0 + ws: 8.18.1 + transitivePeerDependencies: + - bufferutil + - supports-color + - utf-8-validate + + '@kevisual/router@0.0.9': + dependencies: + path-to-regexp: 8.2.0 + selfsigned: 2.4.1 + ws: 8.18.1 + transitivePeerDependencies: + - bufferutil + - utf-8-validate + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.19.1 + + '@rollup/rollup-android-arm-eabi@4.34.9': + optional: true + + '@rollup/rollup-android-arm64@4.34.9': + optional: true + + '@rollup/rollup-darwin-arm64@4.34.9': + optional: true + + '@rollup/rollup-darwin-x64@4.34.9': + optional: true + + '@rollup/rollup-freebsd-arm64@4.34.9': + optional: true + + '@rollup/rollup-freebsd-x64@4.34.9': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.34.9': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.34.9': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.34.9': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.34.9': + optional: true + + '@rollup/rollup-linux-loongarch64-gnu@4.34.9': + optional: true + + '@rollup/rollup-linux-powerpc64le-gnu@4.34.9': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.34.9': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.34.9': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.34.9': + optional: true + + '@rollup/rollup-linux-x64-musl@4.34.9': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.34.9': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.34.9': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.34.9': + optional: true + + '@sindresorhus/is@4.6.0': {} + + '@szmarczak/http-timer@4.0.6': + dependencies: + defer-to-connect: 2.0.1 + + '@types/cacheable-request@6.0.3': + dependencies: + '@types/http-cache-semantics': 4.0.4 + '@types/keyv': 3.1.4 + '@types/node': 22.13.9 + '@types/responselike': 1.0.3 + + '@types/electron@1.6.12': + dependencies: + electron: 35.0.0 + transitivePeerDependencies: + - supports-color + + '@types/estree@1.0.6': {} + + '@types/http-cache-semantics@4.0.4': {} + + '@types/keyv@3.1.4': + dependencies: + '@types/node': 22.13.9 + + '@types/node-forge@1.3.11': + dependencies: + '@types/node': 22.13.9 + + '@types/node@22.13.9': + dependencies: + undici-types: 6.20.0 + + '@types/responselike@1.0.3': + dependencies: + '@types/node': 22.13.9 + + '@types/yauzl@2.10.3': + dependencies: + '@types/node': 22.13.9 + optional: true + + anymatch@3.1.3: + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + + argparse@2.0.1: {} + + binary-extensions@2.3.0: {} + + boolean@3.2.0: + optional: true + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + buffer-crc32@0.2.13: {} + + builder-util-runtime@9.2.10: + dependencies: + debug: 4.4.0 + sax: 1.4.1 + transitivePeerDependencies: + - supports-color + + cacheable-lookup@5.0.4: {} + + cacheable-request@7.0.4: + dependencies: + clone-response: 1.0.3 + get-stream: 5.2.0 + http-cache-semantics: 4.1.1 + keyv: 4.5.4 + lowercase-keys: 2.0.0 + normalize-url: 6.1.0 + responselike: 2.0.1 + + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + + clone-response@1.0.3: + dependencies: + mimic-response: 1.0.1 + + debug@4.4.0: + dependencies: + ms: 2.1.3 + + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + + defer-to-connect@2.0.1: {} + + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + optional: true + + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.4 + has-property-descriptors: 1.0.2 + object-keys: 1.1.1 + optional: true + + depd@2.0.0: {} + + destroy@1.2.0: {} + + detect-node@2.1.0: + optional: true + + ee-first@1.1.1: {} + + electron-log@5.3.2: {} + + electron-updater@6.3.9: + dependencies: + builder-util-runtime: 9.2.10 + fs-extra: 10.1.0 + js-yaml: 4.1.0 + lazy-val: 1.0.5 + lodash.escaperegexp: 4.1.2 + lodash.isequal: 4.5.0 + semver: 7.7.1 + tiny-typed-emitter: 2.1.0 + transitivePeerDependencies: + - supports-color + + electron@35.0.0: + dependencies: + '@electron/get': 2.0.3 + '@types/node': 22.13.9 + extract-zip: 2.0.1 + transitivePeerDependencies: + - supports-color + + encodeurl@2.0.0: {} + + end-of-stream@1.4.4: + dependencies: + once: 1.4.0 + + env-paths@2.2.1: {} + + es-define-property@1.0.1: + optional: true + + es-errors@1.3.0: + optional: true + + es6-error@4.1.1: + optional: true + + esbuild@0.25.0: + optionalDependencies: + '@esbuild/aix-ppc64': 0.25.0 + '@esbuild/android-arm': 0.25.0 + '@esbuild/android-arm64': 0.25.0 + '@esbuild/android-x64': 0.25.0 + '@esbuild/darwin-arm64': 0.25.0 + '@esbuild/darwin-x64': 0.25.0 + '@esbuild/freebsd-arm64': 0.25.0 + '@esbuild/freebsd-x64': 0.25.0 + '@esbuild/linux-arm': 0.25.0 + '@esbuild/linux-arm64': 0.25.0 + '@esbuild/linux-ia32': 0.25.0 + '@esbuild/linux-loong64': 0.25.0 + '@esbuild/linux-mips64el': 0.25.0 + '@esbuild/linux-ppc64': 0.25.0 + '@esbuild/linux-riscv64': 0.25.0 + '@esbuild/linux-s390x': 0.25.0 + '@esbuild/linux-x64': 0.25.0 + '@esbuild/netbsd-arm64': 0.25.0 + '@esbuild/netbsd-x64': 0.25.0 + '@esbuild/openbsd-arm64': 0.25.0 + '@esbuild/openbsd-x64': 0.25.0 + '@esbuild/sunos-x64': 0.25.0 + '@esbuild/win32-arm64': 0.25.0 + '@esbuild/win32-ia32': 0.25.0 + '@esbuild/win32-x64': 0.25.0 + + escape-html@1.0.3: {} + + escape-string-regexp@4.0.0: + optional: true + + etag@1.8.1: {} + + extract-zip@2.0.1: + dependencies: + debug: 4.4.0 + get-stream: 5.2.0 + yauzl: 2.10.0 + optionalDependencies: + '@types/yauzl': 2.10.3 + transitivePeerDependencies: + - supports-color + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fastq@1.19.1: + dependencies: + reusify: 1.1.0 + + fd-slicer@1.1.0: + dependencies: + pend: 1.2.0 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + fresh@0.5.2: {} + + fs-extra@10.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-extra@11.3.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + + fs-extra@8.1.0: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 4.0.0 + universalify: 0.1.2 + + fsevents@2.3.3: + optional: true + + get-stream@5.2.0: + dependencies: + pump: 3.0.2 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + global-agent@3.0.0: + dependencies: + boolean: 3.2.0 + es6-error: 4.1.1 + matcher: 3.0.0 + roarr: 2.15.4 + semver: 7.7.1 + serialize-error: 7.0.1 + optional: true + + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.2.0 + optional: true + + gopd@1.2.0: + optional: true + + got@11.8.6: + dependencies: + '@sindresorhus/is': 4.6.0 + '@szmarczak/http-timer': 4.0.6 + '@types/cacheable-request': 6.0.3 + '@types/responselike': 1.0.3 + cacheable-lookup: 5.0.4 + cacheable-request: 7.0.4 + decompress-response: 6.0.0 + http2-wrapper: 1.0.3 + lowercase-keys: 2.0.0 + p-cancelable: 2.1.1 + responselike: 2.0.1 + + graceful-fs@4.2.11: {} + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 + optional: true + + http-cache-semantics@4.1.1: {} + + http-errors@2.0.0: + dependencies: + depd: 2.0.0 + inherits: 2.0.4 + setprototypeof: 1.2.0 + statuses: 2.0.1 + toidentifier: 1.0.1 + + http2-wrapper@1.0.3: + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + + inherits@2.0.4: {} + + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + + is-extglob@2.1.1: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@7.0.0: {} + + js-yaml@4.1.0: + dependencies: + argparse: 2.0.1 + + json-buffer@3.0.1: {} + + json-stringify-safe@5.0.1: + optional: true + + jsonfile@4.0.0: + optionalDependencies: + graceful-fs: 4.2.11 + + jsonfile@6.1.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + lazy-val@1.0.5: {} + + lodash.escaperegexp@4.1.2: {} + + lodash.isequal@4.5.0: {} + + lowercase-keys@2.0.0: {} + + matcher@3.0.0: + dependencies: + escape-string-regexp: 4.0.0 + optional: true + + merge2@1.4.1: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + mimic-response@1.0.1: {} + + mimic-response@3.1.0: {} + + ms@2.1.3: {} + + nanoid@3.3.8: {} + + node-forge@1.3.1: {} + + normalize-path@3.0.0: {} + + normalize-url@6.1.0: {} + + object-keys@1.1.1: + optional: true + + on-finished@2.4.1: + dependencies: + ee-first: 1.1.1 + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + p-cancelable@2.1.1: {} + + p-map@7.0.3: {} + + path-to-regexp@8.2.0: {} + + pend@1.2.0: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + postcss@8.5.3: + dependencies: + nanoid: 3.3.8 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + progress@2.0.3: {} + + pump@3.0.2: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + + queue-microtask@1.2.3: {} + + quick-lru@5.1.1: {} + + range-parser@1.2.1: {} + + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + + resolve-alpn@1.2.1: {} + + responselike@2.0.1: + dependencies: + lowercase-keys: 2.0.0 + + reusify@1.1.0: {} + + roarr@2.15.4: + dependencies: + boolean: 3.2.0 + detect-node: 2.1.0 + globalthis: 1.0.4 + json-stringify-safe: 5.0.1 + semver-compare: 1.0.0 + sprintf-js: 1.1.3 + optional: true + + rollup@4.34.9: + dependencies: + '@types/estree': 1.0.6 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.34.9 + '@rollup/rollup-android-arm64': 4.34.9 + '@rollup/rollup-darwin-arm64': 4.34.9 + '@rollup/rollup-darwin-x64': 4.34.9 + '@rollup/rollup-freebsd-arm64': 4.34.9 + '@rollup/rollup-freebsd-x64': 4.34.9 + '@rollup/rollup-linux-arm-gnueabihf': 4.34.9 + '@rollup/rollup-linux-arm-musleabihf': 4.34.9 + '@rollup/rollup-linux-arm64-gnu': 4.34.9 + '@rollup/rollup-linux-arm64-musl': 4.34.9 + '@rollup/rollup-linux-loongarch64-gnu': 4.34.9 + '@rollup/rollup-linux-powerpc64le-gnu': 4.34.9 + '@rollup/rollup-linux-riscv64-gnu': 4.34.9 + '@rollup/rollup-linux-s390x-gnu': 4.34.9 + '@rollup/rollup-linux-x64-gnu': 4.34.9 + '@rollup/rollup-linux-x64-musl': 4.34.9 + '@rollup/rollup-win32-arm64-msvc': 4.34.9 + '@rollup/rollup-win32-ia32-msvc': 4.34.9 + '@rollup/rollup-win32-x64-msvc': 4.34.9 + fsevents: 2.3.3 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + sax@1.4.1: {} + + selfsigned@2.4.1: + dependencies: + '@types/node-forge': 1.3.11 + node-forge: 1.3.1 + + semver-compare@1.0.0: + optional: true + + semver@6.3.1: {} + + semver@7.7.1: {} + + send@1.1.0: + dependencies: + debug: 4.4.0 + destroy: 1.2.0 + encodeurl: 2.0.0 + escape-html: 1.0.3 + etag: 1.8.1 + fresh: 0.5.2 + http-errors: 2.0.0 + mime-types: 2.1.35 + ms: 2.1.3 + on-finished: 2.4.1 + range-parser: 1.2.1 + statuses: 2.0.1 + transitivePeerDependencies: + - supports-color + + serialize-error@7.0.1: + dependencies: + type-fest: 0.13.1 + optional: true + + setprototypeof@1.2.0: {} + + source-map-js@1.2.1: {} + + sprintf-js@1.1.3: + optional: true + + statuses@2.0.1: {} + + sumchecker@3.0.1: + dependencies: + debug: 4.4.0 + transitivePeerDependencies: + - supports-color + + tiny-typed-emitter@2.1.0: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + toidentifier@1.0.1: {} + + type-fest@0.13.1: + optional: true + + typescript@5.8.2: {} + + undici-types@6.20.0: {} + + universalify@0.1.2: {} + + universalify@2.0.1: {} + + vite-plugin-electron@0.29.0: {} + + vite-plugin-static-copy@2.3.0(vite@6.2.1(@types/node@22.13.9)): + dependencies: + chokidar: 3.6.0 + fast-glob: 3.3.3 + fs-extra: 11.3.0 + p-map: 7.0.3 + picocolors: 1.1.1 + vite: 6.2.1(@types/node@22.13.9) + + vite@6.2.1(@types/node@22.13.9): + dependencies: + esbuild: 0.25.0 + postcss: 8.5.3 + rollup: 4.34.9 + optionalDependencies: + '@types/node': 22.13.9 + fsevents: 2.3.3 + + wrappy@1.0.2: {} + + ws@8.18.1: {} + + yauzl@2.10.0: + dependencies: + buffer-crc32: 0.2.13 + fd-slicer: 1.1.0 diff --git a/router-app/.gitignore b/router-app/.gitignore new file mode 100644 index 0000000..3c3629e --- /dev/null +++ b/router-app/.gitignore @@ -0,0 +1 @@ +node_modules diff --git a/router-app/pem/https-cert.pem b/router-app/pem/https-cert.pem new file mode 100644 index 0000000..68f4fce --- /dev/null +++ b/router-app/pem/https-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICXTCCAcagAwIBAgIJHsP036vqWER/MA0GCSqGSIb3DQEBBQUAMF8xCjAIBgNV +BAMTASoxCzAJBgNVBAYTAkNOMREwDwYDVQQIEwhaaGVKaWFuZzERMA8GA1UEBxMI +SGFuZ3pob3UxETAPBgNVBAoTCEVudmlzaW9uMQswCQYDVQQLEwJJVDAeFw0yNTAz +MDcxNDIwMTJaFw0yNjAzMDcxNDIwMTJaMF8xCjAIBgNVBAMTASoxCzAJBgNVBAYT +AkNOMREwDwYDVQQIEwhaaGVKaWFuZzERMA8GA1UEBxMISGFuZ3pob3UxETAPBgNV +BAoTCEVudmlzaW9uMQswCQYDVQQLEwJJVDCBnzANBgkqhkiG9w0BAQEFAAOBjQAw +gYkCgYEAquA2XnwduVSJHvnTW4r5yodz/joTPUi+r8kS/KJyR/NQ5xovtDY2gJoO +nJk8qekcLKuofskIIu4HFsCE7AYBkQGaYmc+0cCQCmEpwivesbeMB0ydz+6NwLQn +32HVjtMtx3gUcywGdMntiQb/P9FIhtE132wOmW9PeSl0dx/nyrUCAwEAAaMhMB8w +HQYDVR0RBBYwFIIBKoIJbG9jYWxob3N0hwR/AAABMA0GCSqGSIb3DQEBBQUAA4GB +AJsjIZgb6iE4OTXoEDiBPmHM+byWs20K2eCvi79V9/vns90IroBQfGirIsovv923 +SqjmdAFsZkRUbZvX99lBX0mmZK9KTE4K9YUm7bv+d8+fBPxAgNFSTRiSNBeNh0Lh +HdJUiI/tzIfI6RRg1pFDC1tOG083Cl/YElN879w3Iipi +-----END CERTIFICATE----- diff --git a/router-app/pem/https-key.pem b/router-app/pem/https-key.pem new file mode 100644 index 0000000..7263037 --- /dev/null +++ b/router-app/pem/https-key.pem @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQCq4DZefB25VIke+dNbivnKh3P+OhM9SL6vyRL8onJH81DnGi+0 +NjaAmg6cmTyp6Rwsq6h+yQgi7gcWwITsBgGRAZpiZz7RwJAKYSnCK96xt4wHTJ3P +7o3AtCffYdWO0y3HeBRzLAZ0ye2JBv8/0UiG0TXfbA6Zb095KXR3H+fKtQIDAQAB +AoGADDEbL/qjFEoXzoH8tpdf4zdu60CxhrneASTTmfrtNH0D1LlllfIYSWy0hi/Y +yDa9r+I/j2xAjF13XAQ4d66mBdjCRATLx/aL495o+e6NkIBEAgdP88hHm13F6gg+ +h8iMixs5mkwU41sghnCYeBqlziKPi8fsoTmhK0VETFUtDQECQQDT0kZ7OCEVNcz0 +LAUPO7ukeHAYnGYns+Q3F3kgonzHPGflClH5dsg0NS1HFQj6Ny2oyUupjNePOCJK +88zNehIlAkEAzoO9zrE+AoTPleVpe7TAUlZB1YMa7W1C5owjyEkv4TjIe8mpwWM/ +9vVe+SGUnc6DZy6xkk5zWmA2w18SexXJUQJBAJQbcyy1EmzCMYyJOwBrw8g8biTH +NqaMIgZjY05uTtEAa6S6kpbbdyEKDZ6mFqDd9A8QsNbco9yAY3oE/i6uLAECQHOt +a9aphZiXmEfYl3uJxejZFEtrAtxXxY+qlCiOhllcG0Drt0DyPVQyIZ7fZoX2tbhI +eYMAmrDXEBXj3VBA5eECQCLGpQKqo06QwP2qZ9mEaPB9KvVcABo97b9Lf7VUqcJx +tFWRSlpeICpDQZHqX92nwoD/2fGCH3br3o94k1oyApI= +-----END RSA PRIVATE KEY----- diff --git a/router-app/src/app.ts b/router-app/src/app.ts new file mode 100644 index 0000000..ce606b6 --- /dev/null +++ b/router-app/src/app.ts @@ -0,0 +1,21 @@ +import { App } from '@kevisual/router'; +import { httpsConfig } from './modules/config'; +export const app = new App({ + serverOptions: { + httpType: 'https', + httpsCert: httpsConfig.cert.toString(), + httpsKey: httpsConfig.key.toString(), + }, +}); +app + .route({ + path: 'demo', + }) + .define(async (ctx) => { + ctx.body = 'hello world'; + }) + .addTo(app); +console.log('httpsConfig', `https://localhost:51015/api/router?path=demo`); +app.listen(51015, () => { + console.log('Router App is running on https://localhost:51015'); +}); diff --git a/router-app/src/modules/config.ts b/router-app/src/modules/config.ts new file mode 100644 index 0000000..2d9d746 --- /dev/null +++ b/router-app/src/modules/config.ts @@ -0,0 +1,9 @@ +import fs from 'fs'; +import path from 'path'; + +const pemDir = path.join(process.cwd(), 'router-app', 'pem'); + +export const httpsConfig = { + key: fs.readFileSync(path.join(pemDir, 'https-key.pem')), + cert: fs.readFileSync(path.join(pemDir, 'https-cert.pem')), +}; diff --git a/router-app/src/modules/config/index.ts b/router-app/src/modules/config/index.ts new file mode 100644 index 0000000..9b1a1ee --- /dev/null +++ b/router-app/src/modules/config/index.ts @@ -0,0 +1,108 @@ +import path from 'path'; +import { homedir } from 'os'; +import fs from 'fs'; +import { checkFileExists, createDir } from '../file'; + +export const kevisualUrl = 'https://kevisual.xiongxiao.me'; +const configDir = createDir(path.join(homedir(), '.config/envision')); +export const configPath = path.join(configDir, 'assistant-config.json'); +export const appConfigPath = path.join(configDir, 'assistant-app-config.json'); +export const appDir = createDir(path.join(configDir, 'assistant-app/frontend')); +export const LocalElectronAppUrl = 'https://assistant.app/user/tiptap/'; + +type AssistantConfig = { + pageApi?: string; // https://kevisual.silkyai.cn + loadURL?: string; // https://assistant.app/user/tiptap/ + proxy?: { user: string; key: string; path: string }[]; +}; +let assistantConfig: AssistantConfig; +export const getConfig = () => { + try { + if (!checkFileExists(configPath)) { + fs.writeFileSync(configPath, JSON.stringify({ proxy: [] }, null, 2)); + return { + loadURL: LocalElectronAppUrl, + pageApi: '', + proxy: [], + }; + } + assistantConfig = JSON.parse(fs.readFileSync(configPath, 'utf8')); + return assistantConfig; + } catch (error) { + console.error(error); + return { + loadURL: LocalElectronAppUrl, + pageApi: '', + proxy: [], + }; + } +}; +export const getCacheAssistantConfig = () => { + if (assistantConfig) { + return assistantConfig; + } + return getConfig(); +}; + +export const setConfig = (config?: AssistantConfig) => { + if (!config) { + return assistantConfig; + } + assistantConfig = config; + fs.writeFileSync(configPath, JSON.stringify(config, null, 2)); + return assistantConfig; +}; +type AppConfig = { + list: any[]; +}; +/** + * 应用配置 + * @returns + */ +export const getAppConfig = (): AppConfig => { + if (!checkFileExists(appConfigPath)) { + return { + list: [], + }; + } + return JSON.parse(fs.readFileSync(appConfigPath, 'utf8')); +}; + +export const setAppConfig = (config: AppConfig) => { + fs.writeFileSync(appConfigPath, JSON.stringify(config, null, 2)); + return config; +}; + +export const addAppConfig = (app: any) => { + const config = getAppConfig(); + const assistantConfig = getCacheAssistantConfig(); + const _apps = config.list; + const _proxy = assistantConfig.proxy || []; + const { user, key } = app; + const newProxyInfo = { + user, + key, + path: `/${user}/${key}`, + }; + const _proxyIndex = _proxy.findIndex((_proxy: any) => _proxy.path === newProxyInfo.path); + if (_proxyIndex !== -1) { + _proxy[_proxyIndex] = newProxyInfo; + } else { + _proxy.push(newProxyInfo); + } + + const _app = _apps.findIndex((_app: any) => _app.id === app.id); + if (_app !== -1) { + _apps[_app] = app; + } else { + _apps.push(app); + } + setAppConfig({ ...config, list: _apps }); + setConfig({ ...assistantConfig, proxy: _proxy }); + return config; +}; + +export const getAppList = () => { + const config = getAppConfig(); + return config.list || []; +}; diff --git a/router-app/src/modules/file/index.ts b/router-app/src/modules/file/index.ts new file mode 100644 index 0000000..f1f45bb --- /dev/null +++ b/router-app/src/modules/file/index.ts @@ -0,0 +1,20 @@ +import fs from 'fs'; + +export const checkFileExists = (filePath: string, checkIsFile = false) => { + try { + fs.accessSync(filePath); + if (checkIsFile) { + return fs.statSync(filePath).isFile(); + } + return true; + } catch (error) { + return false; + } +}; + +export const createDir = (dirPath: string) => { + if (!checkFileExists(dirPath)) { + fs.mkdirSync(dirPath, { recursive: true }); + } + return dirPath; +}; diff --git a/router-app/src/proxy/index.ts b/router-app/src/proxy/index.ts new file mode 100644 index 0000000..8875722 --- /dev/null +++ b/router-app/src/proxy/index.ts @@ -0,0 +1,5 @@ +import http from 'http'; + +export const handleRequest = async (req: http.IncomingMessage, res: http.ServerResponse) => { + +} \ No newline at end of file diff --git a/router-app/src/scripts/create-sign.ts b/router-app/src/scripts/create-sign.ts new file mode 100644 index 0000000..9c94a76 --- /dev/null +++ b/router-app/src/scripts/create-sign.ts @@ -0,0 +1,18 @@ +import { createCert } from '@kevisual/router/sign'; +import { writeFileSync } from 'fs'; +import path from 'path'; +const pemDir = path.join(process.cwd(), 'router-app', 'pem'); + +const { key, cert } = createCert([ + { + name: 'commonName', + value: 'localhost', + }, + { + name: 'organizationName', + value: 'kevisual', + }, +]); + +writeFileSync(path.join(pemDir, 'https-key.pem'), key); +writeFileSync(path.join(pemDir, 'https-cert.pem'), cert); diff --git a/router-app/static/download.ts b/router-app/static/download.ts new file mode 100644 index 0000000..962021d --- /dev/null +++ b/router-app/static/download.ts @@ -0,0 +1,18 @@ +import fs from 'fs'; + +const apps = [ + { user: 'root', key: 'enter', version: '1.0.0' }, // + { user: 'root', key: 'packages', version: '1.0.0' }, +]; + +const baseURL = 'https://kevisual.silkyai.cn'; + +const downloadApps = () => { + // +}; + +export const downloadLink = async (url: string, path: string) => { + const res = await fetch(url); + const blob = await res.blob(); + fs.writeFileSync(path, Buffer.from(await blob.arrayBuffer())); +}; diff --git a/router-app/static/enter/electron.js b/router-app/static/enter/electron.js new file mode 100644 index 0000000..a101fbc --- /dev/null +++ b/router-app/static/enter/electron.js @@ -0,0 +1,23 @@ +export const checkIsElectron = () => { + return typeof window !== 'undefined' && typeof window.electron === 'object'; +}; +export const getElectron = () => { + return window.electron; +}; +export const saveAppConfig = async (config) => { + const check = checkIsElectron(); + if (!check) { + console.log('not electron'); + return []; + } + const electron = getElectron(); + const saveResult = await electron.ipcRenderer.invoke('save-app-config', config); + return saveResult; +}; +export const relunch = async () => { + const check = checkIsElectron(); + if (!check) { + console.log('not electron'); + return []; + } +}; \ No newline at end of file diff --git a/router-app/static/enter/index.html b/router-app/static/enter/index.html new file mode 100644 index 0000000..09ee7a6 --- /dev/null +++ b/router-app/static/enter/index.html @@ -0,0 +1,214 @@ + + + + + + Page Enter Configuration + + + +
+ +
+
+ + + + +

Page Enter Configuration

+
+ +
+
+
+ + +
+ + +
+
+
+
+ + + + + \ No newline at end of file diff --git a/router-app/static/enter/main.js b/router-app/static/enter/main.js new file mode 100644 index 0000000..3955840 --- /dev/null +++ b/router-app/static/enter/main.js @@ -0,0 +1,28 @@ +import { saveAppConfig } from './electron.js'; + +window.onload = async () => { + const config = await saveAppConfig(); + const pageApi = document.getElementById('pageApi'); + const saveResult = document.getElementById('save-result'); + pageApi.value = config?.pageApi || 'https://kevisual.silkyai.cn'; + console.log('config', config); + const form = document.getElementById('configForm'); + + // Handle form submission + form.addEventListener('submit', async (e) => { + e.preventDefault(); + const config = { + pageApi: pageApi.value, + }; + const result = await saveAppConfig(config); + + const newPageApi = result?.pageApi || ''; + saveResult.innerHTML = `

保存成功

+

new pageApi: ${newPageApi}

+ `; + const relunchButton = document.getElementById('relunch'); + relunchButton.addEventListener('click', () => { + window.electron.ipcRenderer.invoke('relunch'); + }); + }); +}; diff --git a/router-app/static/index.html b/router-app/static/index.html new file mode 100644 index 0000000..5acdf85 --- /dev/null +++ b/router-app/static/index.html @@ -0,0 +1,21 @@ + + + + + + Config Page + + + +

配置完成后重启

+ + + + + + \ No newline at end of file diff --git a/router-app/static/packages/config.js b/router-app/static/packages/config.js new file mode 100644 index 0000000..83d06af --- /dev/null +++ b/router-app/static/packages/config.js @@ -0,0 +1,3 @@ +export const config = { + appListUrl: 'http://localhost:4005/api/router?path=app&key=public-list', +}; diff --git a/router-app/static/packages/electron.js b/router-app/static/packages/electron.js new file mode 100644 index 0000000..b6b2bcf --- /dev/null +++ b/router-app/static/packages/electron.js @@ -0,0 +1,45 @@ +export const checkIsElectron = () => { + return typeof window !== 'undefined' && typeof window.electron === 'object'; +}; +export const getElectron = () => { + return window.electron; +}; +export const getAppList = async () => { + const check = checkIsElectron(); + if (!check) { + console.log('not electron'); + return []; + } + const electron = getElectron(); + console.log('electron', electron); + const appList = await electron.ipcRenderer.invoke('get-app-list'); + + console.log('appList', appList); + return appList; +}; + +export const installApp = async (app) => { + const check = checkIsElectron(); + if (!check) { + console.log('not electron'); + return []; + } + const electron = getElectron(); + console.log('installApp', app); + const result = await electron.ipcRenderer.invoke('install-app', app); + console.log('installApp result', result); + return result; +}; + +export const uninstallApp = async (app) => { + const check = checkIsElectron(); + if (!check) { + console.log('not electron'); + return []; + } + const electron = getElectron(); + console.log('uninstallApp', app); + const result = await electron.ipcRenderer.invoke('uninstall-app', app); + console.log('uninstallApp result', result); + return result; +}; diff --git a/router-app/static/packages/index.html b/router-app/static/packages/index.html new file mode 100644 index 0000000..cfd1f98 --- /dev/null +++ b/router-app/static/packages/index.html @@ -0,0 +1,17 @@ + + + + + + Package Manager + + + + +
+

Package Manager

+
+
+ + + \ No newline at end of file diff --git a/router-app/static/packages/main.js b/router-app/static/packages/main.js new file mode 100644 index 0000000..f698fe3 --- /dev/null +++ b/router-app/static/packages/main.js @@ -0,0 +1,158 @@ +import { config } from './config.js'; +import { getAppList, installApp, uninstallApp } from './electron.js'; +let installedPackages = []; +let allPackages = []; +// Store for installed packages +// const installedPackages = [ +// { user: 'test', key: 'test-key', version: '1.0.0' }, +// { user: 'demo', key: 'demo-package', version: '1.2.0' }, +// ]; + +// Function to fetch packages from API +async function fetchPackages() { + try { + // Currently using mock data + // TODO: Uncomment the following code when API is ready + const response = await fetch(config.appListUrl); + const result = await response.json(); + if (result.code === 200) { + return result.data; + } + throw new Error('Failed to fetch packages'); + } catch (error) { + console.error('Error fetching packages:', error); + return []; + } +} + +// Mock data for testing +const mockPackages = [ + { + id: '1', + title: 'Demo Package 1', + description: 'A test package for demonstration', + version: '1.0.0', + user: 'test', + key: 'test-key', + }, + { + id: '2', + title: 'Demo Package 2', + description: 'Another test package with updates', + version: '2.0.0', + user: 'demo', + key: 'demo-package', + }, + { + id: '3', + title: 'New Package', + description: "A package that hasn't been installed yet", + version: '1.0.0', + user: 'demo', + key: 'new-package', + }, +]; + +// Function to check if a package is installed +async function getPackageStatus(pkg) { + const installed = installedPackages.find((p) => p.user === pkg.user && p.key === pkg.key); + + if (!installed) return 'not-installed'; + if (installed.version !== pkg.version) return 'update-available'; + return 'installed'; +} + +// Function to create a package card +async function createPackageCard(pkg) { + const status = await getPackageStatus(pkg); + const card = document.createElement('div'); + card.className = 'package-card'; + + card.innerHTML = ` +

${pkg.title}

+

${pkg.description}

+
+ Version: ${pkg.version} + User: ${pkg.user} +
+
+ ${getActionButton(status, pkg)} + ${status !== 'not-installed' ? `` : ''} +
+ `; + + return card; +} + +// Function to get the appropriate action button based on status +function getActionButton(status, pkg) { + switch (status) { + case 'not-installed': + return ``; + case 'update-available': + return ``; + case 'installed': + return ``; + } +} + +// Action handlers +window.handleInstall = async (id) => { + console.log('Installing package:', id); + const pkg = allPackages.find((p) => p.id === id); + if (pkg) { + await installApp(pkg); + renderPackages(); + } +}; + +window.handleUpdate = async (id) => { + console.log('Updating package:', id); + const pkg = allPackages.find((p) => p.id === id); + if (pkg) { + await installApp(pkg); + renderPackages(); + } +}; + +window.handleReinstall = async (id) => { + console.log('Reinstalling package:', id); + const pkg = allPackages.find((p) => p.id === id); + if (pkg) { + await installApp(pkg); + renderPackages(); + } +}; + +window.handleUninstall = async (id) => { + console.log('Uninstalling package:', id); + // const pkg = mockPackages.find((p) => p.id === id); + const pkg = allPackages.find((p) => p.id === id); + if (pkg) { + // TODO: Replace with actual API call + const index = installedPackages.findIndex((p) => p.user === pkg.user && p.key === pkg.key); + await uninstallApp(pkg); + if (index !== -1) { + installedPackages.splice(index, 1); + renderPackages(); + } + } +}; + +// Render packages +async function renderPackages() { + const packageList = document.getElementById('package-list'); + packageList.innerHTML = ''; + const installed = await getAppList(); + installedPackages = installed; + for (const pkg of allPackages) { + packageList.appendChild(await createPackageCard(pkg)); + } +} + +// Initialize the application +document.addEventListener('DOMContentLoaded', async () => { + const packages = await fetchPackages(); + allPackages = packages; + renderPackages(); +}); diff --git a/router-app/static/packages/style.css b/router-app/static/packages/style.css new file mode 100644 index 0000000..ccb9e07 --- /dev/null +++ b/router-app/static/packages/style.css @@ -0,0 +1,115 @@ +:root { + font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + color-scheme: light dark; + background-color: #fff8e1; + color: #213547; +} + +body { + margin: 0; + min-width: 320px; + min-height: 100vh; +} + +#app { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; +} + +h1 { + text-align: center; + color: #ff8f00; +} + +.package-list { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); + gap: 1rem; + padding: 1rem; +} + +.package-card { + background: white; + border-radius: 8px; + padding: 1.5rem; + box-shadow: 0 2px 4px rgba(255, 143, 0, 0.1); + border: 1px solid #ffe0b2; +} + +.package-card h2 { + margin: 0 0 0.5rem 0; + color: #f57c00; +} + +.package-card .description { + color: #666; + margin-bottom: 1rem; + font-size: 0.9rem; + display: -webkit-box; + -webkit-line-clamp: 4; + -webkit-box-orient: vertical; + overflow: hidden; + text-overflow: ellipsis; + line-height: 1.5; + max-height: 6em; +} + +.package-info { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 1rem; + font-size: 0.9rem; + color: #666; +} + +.button { + padding: 0.5rem 1rem; + border-radius: 4px; + border: none; + cursor: pointer; + font-weight: 500; + transition: background-color 0.2s; +} + +.button-install { + background-color: #ffa000; + color: white; +} + +.button-update { + background-color: #ff8f00; + color: white; +} + +.button-reinstall { + background-color: #ffb300; + color: white; +} + +.button-uninstall { + background-color: #ff6f00; + color: white; +} + +.button:hover { + opacity: 0.9; +} + +.button:disabled { + background-color: #ffe0b2; + cursor: not-allowed; +} + +.error-message { + text-align: center; + color: #ff6f00; + padding: 2rem; + background: white; + border-radius: 8px; + box-shadow: 0 2px 4px rgba(255, 143, 0, 0.1); + grid-column: 1 / -1; +} \ No newline at end of file diff --git a/src/main/handle/index.ts b/src/main/handle/index.ts new file mode 100644 index 0000000..90b08ae --- /dev/null +++ b/src/main/handle/index.ts @@ -0,0 +1,35 @@ +import { ipcMain } from 'electron'; +import { getAppList, getCacheAssistantConfig, setConfig } from '@/modules/config'; +import { installApp, uninstallApp } from '../proxy/install'; +import { relunch } from '../window/relunch'; + +export const handle = () => { + ipcMain.handle('get-app-list', (event, data) => { + // 获取应用路径 + const appList = getAppList(); + return appList; + }); + + ipcMain.handle('install-app', (event, data) => { + console.log('install-app', data.user, data.key, data.version); + return installApp(data); + }); + + ipcMain.handle('uninstall-app', (event, data) => { + console.log('uninstall-app', data.user, data.key, data.version); + return uninstallApp(data); + }); + + ipcMain.handle('save-app-config', (event, data) => { + console.log('save-app-config', data); + if (!data) { + return getCacheAssistantConfig(); + } + const config = getCacheAssistantConfig(); + return setConfig({ ...config, ...data }); + }); + + ipcMain.handle('relunch', () => { + relunch(); + }); +}; diff --git a/src/main/index.ts b/src/main/index.ts new file mode 100644 index 0000000..ade18f4 --- /dev/null +++ b/src/main/index.ts @@ -0,0 +1,47 @@ +import { app, BrowserWindow, ipcMain, session } from 'electron'; +import * as path from 'path'; +import { fileURLToPath } from 'url'; +import { LocalElectronAppUrl } from '../modules/config'; +import { createSession } from './session'; +import { handle } from './handle'; +import { loadMenu } from './menu'; +import { checkShowPage } from './window/page'; +import { createIntroducePage } from './window/page/introduce'; +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +let mainWindow: BrowserWindow | null; + +async function createWindow() { + const _session = createSession(); + mainWindow = new BrowserWindow({ + width: 800, + height: 600, + webPreferences: { + preload: path.join(__dirname, 'preload.js'), // 如果有 preload 脚本 + session: _session, + }, + }); + loadMenu(); + await checkShowPage(mainWindow); + + mainWindow.on('closed', () => { + mainWindow = null; + }); +} + +app.on('ready', createWindow); + +app.on('window-all-closed', () => { + if (process.platform !== 'darwin') { + app.quit(); + } +}); + +app.on('activate', () => { + if (mainWindow === null) { + createWindow(); + } +}); + +handle(); diff --git a/src/main/logger.ts b/src/main/logger.ts new file mode 100644 index 0000000..8c80e85 --- /dev/null +++ b/src/main/logger.ts @@ -0,0 +1,6 @@ +import log from 'electron-log'; +// $Home/Library/Logs/ads-desktop-electron/main.log +log.initialize({ preload: true }); +export { log }; + +export const getLogPath = () => log.transports.file.getFile().path; diff --git a/src/main/menu/index.ts b/src/main/menu/index.ts new file mode 100644 index 0000000..d268fe2 --- /dev/null +++ b/src/main/menu/index.ts @@ -0,0 +1,117 @@ +import { createEnterPage } from '../window/page/enter'; +import { BrowserWindow, Menu, app } from 'electron'; + +import path from 'path'; +import { getLogPath, log } from '../logger'; +import { createAppPackagesPage } from '../window/page/app-packages'; +import { relunch } from '../window/relunch'; +export const loadMenu = () => { + const template = [ + { + label: app.name, + submenu: [ + { + label: '关于', + role: 'about', + }, + { + label: '退出', + click: () => { + if (process.platform !== 'darwin') { + app.quit(); + } else { + app.exit(); + } + }, + }, + // { + // label: '检查更新', + // click: () => { + // autoUpdater.checkForUpdatesAndNotify(); + // }, + // }, + ], + }, + { + label: '编辑', + submenu: [ + { label: '复制', accelerator: 'CmdOrCtrl+C', selector: 'copy:' }, + { label: '粘贴', accelerator: 'CmdOrCtrl+V', selector: 'paste:' }, + ], + }, + { + label: '查看', + role: 'view', + submenu: [ + { + label: '刷新', + role: 'reload', + }, + { + label: '强制刷新', + role: 'forcereload', + }, + { + label: '重启', + click: () => { + relunch(); + }, + }, + { + label: '打开开发者工具', + click: () => { + const mainWindow = BrowserWindow.getFocusedWindow(); + if (mainWindow) { + openDevTools(mainWindow); + } + }, + }, + ], + }, + { + label: '帮助', + role: 'help', + submenu: [ + { + label: '文档', + click: async () => { + const { shell } = require('electron'); + // shell.openExternal('http://adstudio.nisar.ai/docs/'); + }, + }, + { + label: '打开日志', + click: async () => { + const { shell } = require('electron'); + log.transports.file.fileName; + shell.openExternal('file://' + path.join(getLogPath())); + }, + }, + { + label: '打开配置', + click: async () => { + createEnterPage(); + }, + }, + { + label: '打开应用市场', + click: async () => { + createAppPackagesPage(); + }, + }, + ], + }, + ]; + // @ts-ignore + const menu = Menu.buildFromTemplate(template); + Menu.setApplicationMenu(menu); +}; + +export const openDevTools = (mainWindow: BrowserWindow) => { + let window = mainWindow.getBrowserView() ? mainWindow.getBrowserView() : mainWindow; + if (window.webContents.isDevToolsOpened()) { + window.webContents.closeDevTools(); + } else { + window.webContents.openDevTools(); + } +}; diff --git a/src/main/preload.js b/src/main/preload.js new file mode 100644 index 0000000..7f1bc57 --- /dev/null +++ b/src/main/preload.js @@ -0,0 +1,19 @@ +const { contextBridge, ipcRenderer } = require('electron'); + +const windowChannels = ['relunch']; +const validChannels = ['get-app-list', 'install-app', 'uninstall-app', 'save-app-config', ...windowChannels]; + +contextBridge.exposeInMainWorld('electron', { + ipcRenderer: { + on(channel, func) { + if (validChannels.includes(channel)) { + ipcRenderer.on(channel, func); + } + }, + invoke(channel, ...args) { + if (validChannels.includes(channel)) { + return ipcRenderer.invoke(channel, ...args); + } + }, + }, +}); diff --git a/src/main/proxy/api-proxy.ts b/src/main/proxy/api-proxy.ts new file mode 100644 index 0000000..ea34652 --- /dev/null +++ b/src/main/proxy/api-proxy.ts @@ -0,0 +1,12 @@ +export const apiProxyList = [ + { + path: '/v1', + }, + { + path: '/v2', + }, + { + path: '/api', + }, +]; + diff --git a/src/main/proxy/index.ts b/src/main/proxy/index.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/main/proxy/install.ts b/src/main/proxy/install.ts new file mode 100644 index 0000000..6c88197 --- /dev/null +++ b/src/main/proxy/install.ts @@ -0,0 +1,141 @@ +import path from 'path'; +import fs from 'fs'; +import { appDir, kevisualUrl, addAppConfig, getAppConfig, setAppConfig, getCacheAssistantConfig, setConfig } from '../../modules/config'; + +export const demoData = { + id: '471ee96f-d7d8-4da1-b84f-4a34f4732f16', + title: 'tiptap', + description: '', + data: { + files: [ + { + name: 'README.md', + path: 'user/tiptap/0.0.1/README.md', + }, + { + name: 'app.css', + path: 'user/tiptap/0.0.1/app.css', + }, + { + name: 'app.js', + path: 'user/tiptap/0.0.1/app.js', + }, + { + name: 'create-BxEwtceK.js', + path: 'user/tiptap/0.0.1/create-BxEwtceK.js', + }, + { + name: 'index.CrTXFMOJ.js', + path: 'user/tiptap/0.0.1/index.CrTXFMOJ.js', + }, + { + name: 'index.html', + path: 'user/tiptap/0.0.1/index.html', + }, + ], + }, + version: '0.0.1', + domain: '', + appType: '', + key: 'tiptap', + type: '', + uid: '2bebe6a0-3c64-4a64-89f9-cc47fd082a07', + pid: null, + proxy: false, + user: 'user', + status: 'running', + createdAt: '2024-12-14T15:39:30.684Z', + updatedAt: '2024-12-14T15:39:55.714Z', + deletedAt: null, +}; + +type DownloadTask = { + downloadPath: string; + downloadUrl: string; + user: string; + key: string; + version: string; +}; +export const installApp = async (app: any) => { + // const _app = demoData; + const _app = app; + try { + let files = _app.data.files || []; + const version = _app.version; + const user = _app.user; + const key = _app.key; + + const downFiles = files.map((file: any) => { + const noVersionPath = file.path.replace(`/${version}`, ''); + return { + ...file, + downloadPath: path.join(appDir, noVersionPath), + downloadUrl: `${kevisualUrl}/${noVersionPath}`, + }; + }); + const downloadTasks: DownloadTask[] = downFiles as any; + for (const file of downloadTasks) { + const downloadPath = file.downloadPath; + const downloadUrl = file.downloadUrl; + const dir = path.dirname(downloadPath); + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir, { recursive: true }); + } + const res = await fetch(downloadUrl); + const blob = await res.blob(); + fs.writeFileSync(downloadPath, Buffer.from(await blob.arrayBuffer())); + } + let indexHtml = files.find((file: any) => file.name === 'index.html'); + if (!indexHtml) { + files.push({ + name: 'index.html', + path: `${user}/${key}/index.html`, + }); + fs.writeFileSync(path.join(appDir, `${user}/${key}/index.html`), JSON.stringify(app, null, 2)); + } + _app.data.files = files; + addAppConfig(_app); + return { + code: 200, + data: _app, + message: 'Install app success', + }; + } catch (error) { + console.error(error); + return { + code: 500, + message: 'Install app failed', + }; + } +}; + +export const uninstallApp = async (app: any) => { + try { + const { user, key } = app; + const appConfig = getAppConfig(); + const index = appConfig.list.findIndex((item: any) => item.user === user && item.key === key); + if (index !== -1) { + appConfig.list.splice(index, 1); + setAppConfig(appConfig); + // 删除appDir和文件 + fs.rmSync(path.join(appDir, user, key), { recursive: true }); + // 删除proxy + const proxyConfig = getCacheAssistantConfig(); + const proxyIndex = proxyConfig.proxy.findIndex((item: any) => item.user === user && item.key === key); + if (proxyIndex !== -1) { + proxyConfig.proxy.splice(proxyIndex, 1); + setConfig(proxyConfig); + } + } + return { + code: 200, + message: 'Uninstall app success', + }; + } catch (error) { + console.error(error); + return { + code: 500, + message: 'Uninstall app failed', + }; + } +}; diff --git a/src/main/renderer.ts b/src/main/renderer.ts new file mode 100644 index 0000000..053cd15 --- /dev/null +++ b/src/main/renderer.ts @@ -0,0 +1,6 @@ +// This file is required by the index.html file and will +// be executed in the renderer process for that window. +// No Node.js APIs are available in this process unless +// nodeIntegration is set to true in webPreferences. +// Use preload.js to selectively enable features +// needed in the renderer process. \ No newline at end of file diff --git a/src/main/session/index.ts b/src/main/session/index.ts new file mode 100644 index 0000000..7cc155c --- /dev/null +++ b/src/main/session/index.ts @@ -0,0 +1,57 @@ +import { app, BrowserWindow, ipcMain, session } from 'electron'; +import { getCacheAssistantConfig, appDir, LocalElectronAppUrl } from '../../modules/config'; +import { net } from 'electron'; +import path from 'path'; +import * as url from 'url'; +import { checkFileExists } from '../../modules/file'; +import { apiProxyList } from '../proxy/api-proxy'; + +let _session: Electron.Session; +export const createSession = () => { + if (_session) { + return _session; + } + // 创建一个持久化的会话 + _session = session.fromPartition('persist:app'); + + _session.protocol.handle('https', async (req) => { + const requrl = req.url; + const newReqUrl = new URL(requrl); + const localOrigin = new URL(LocalElectronAppUrl).origin; + if (newReqUrl.origin !== localOrigin) { + // 不拦截 + return net.fetch(req.url, { bypassCustomProtocolHandlers: true }); + } + const apiProxy = apiProxyList.find((_proxy: any) => newReqUrl.pathname.startsWith(_proxy.path)); + if (apiProxy) { + const pageApi = getCacheAssistantConfig().pageApi || ''; + if (!pageApi) { + return new Response(`App Page Api Not Set, please set it first`); + } + const newPageUrl = new URL(req.url, pageApi); + return net.fetch(newPageUrl.toString(), { bypassCustomProtocolHandlers: true }); + } + const [user, key] = newReqUrl.pathname.split('/').slice(1); + const proxyList = getCacheAssistantConfig().proxy || []; + const proxy = proxyList.find((_proxy: any) => newReqUrl.pathname.startsWith(_proxy.path)); + if (proxy) { + try { + const relativePath = path.join(appDir, newReqUrl.pathname); + const indexHtml = path.join(appDir, user, key, 'index.html'); + console.log('relativePath', relativePath); + if (checkFileExists(relativePath, true)) { + const res = await net.fetch(url.pathToFileURL(relativePath).toString()); + return res; + } else { + const res = await net.fetch(url.pathToFileURL(indexHtml).toString()); + return res; + } + } catch (error) { + console.error(error); + } + return new Response('App is Running Error, please reinstall it or refresh the page'); + } + return new Response(`App Not Install, please install it first,user/app: [${user}/${key}]`); + }); + return _session; +}; diff --git a/src/main/window/page/app-packages.ts b/src/main/window/page/app-packages.ts new file mode 100644 index 0000000..b5ec447 --- /dev/null +++ b/src/main/window/page/app-packages.ts @@ -0,0 +1,19 @@ +import { BrowserWindow } from 'electron'; +import path from 'path'; +import { fileURLToPath } from 'url'; +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +export const createAppPackagesPage = (window?: BrowserWindow) => { + const mainWindow = + window || + new BrowserWindow({ + width: 800, + height: 600, + webPreferences: { + preload: path.join(__dirname, 'preload.js'), // 如果有 preload 脚本 + }, + }); + mainWindow.loadFile(path.join(__dirname, '../renderer/packages/index.html')); // Vite 构建后的文件 + return mainWindow; +}; diff --git a/src/main/window/page/enter.ts b/src/main/window/page/enter.ts new file mode 100644 index 0000000..8003b4d --- /dev/null +++ b/src/main/window/page/enter.ts @@ -0,0 +1,19 @@ +import { BrowserWindow } from 'electron'; +import path from 'path'; +import { fileURLToPath } from 'url'; +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +export const createEnterPage = (window?: BrowserWindow) => { + const mainWindow = + window || + new BrowserWindow({ + width: 800, + height: 600, + webPreferences: { + preload: path.join(__dirname, 'preload.js'), // 如果有 preload 脚本 + }, + }); + mainWindow.loadFile(path.join(__dirname, '../renderer/enter/index.html')); // Vite 构建后的文件 + return mainWindow; +}; diff --git a/src/main/window/page/index.ts b/src/main/window/page/index.ts new file mode 100644 index 0000000..02b9f22 --- /dev/null +++ b/src/main/window/page/index.ts @@ -0,0 +1,18 @@ +import { getCacheAssistantConfig, LocalElectronAppUrl } from '@/modules/config'; +import { createEnterPage } from './enter'; +import { createAppPackagesPage } from './app-packages'; +import { BrowserWindow } from 'electron'; + +export const checkShowPage = async (window?: BrowserWindow) => { + const assistantConfig = getCacheAssistantConfig(); + const { pageApi, proxy } = assistantConfig; + if (!pageApi) { + createEnterPage(window); + return; + } + if (!proxy || proxy.length === 0) { + createAppPackagesPage(window); + return; + } + return window?.loadURL(LocalElectronAppUrl); +}; diff --git a/src/main/window/page/introduce.ts b/src/main/window/page/introduce.ts new file mode 100644 index 0000000..312639b --- /dev/null +++ b/src/main/window/page/introduce.ts @@ -0,0 +1,19 @@ +import { BrowserWindow } from 'electron'; +import path from 'path'; +import { fileURLToPath } from 'url'; +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +export const createIntroducePage = (window?: BrowserWindow) => { + const mainWindow = + window || + new BrowserWindow({ + width: 800, + height: 600, + webPreferences: { + preload: path.join(__dirname, 'preload.js'), // 如果有 preload 脚本 + }, + }); + mainWindow.loadFile(path.join(__dirname, '../renderer/index.html')); // + return mainWindow; +}; diff --git a/src/main/window/relunch.ts b/src/main/window/relunch.ts new file mode 100644 index 0000000..198761a --- /dev/null +++ b/src/main/window/relunch.ts @@ -0,0 +1,6 @@ +import { app } from 'electron'; + +export const relunch = () => { + app.relaunch({}); + app.quit(); +}; diff --git a/src/main/window/window-manager.ts b/src/main/window/window-manager.ts new file mode 100644 index 0000000..680d0ca --- /dev/null +++ b/src/main/window/window-manager.ts @@ -0,0 +1,11 @@ +import { BrowserWindow } from 'electron'; + +export class WindowsManager { + static window: BrowserWindow; + static setWindow = (window: BrowserWindow) => { + WindowsManager.window = window; + }; + static getWindow = () => { + return WindowsManager.window; + }; +} diff --git a/src/modules/config/index.ts b/src/modules/config/index.ts new file mode 100644 index 0000000..9b1a1ee --- /dev/null +++ b/src/modules/config/index.ts @@ -0,0 +1,108 @@ +import path from 'path'; +import { homedir } from 'os'; +import fs from 'fs'; +import { checkFileExists, createDir } from '../file'; + +export const kevisualUrl = 'https://kevisual.xiongxiao.me'; +const configDir = createDir(path.join(homedir(), '.config/envision')); +export const configPath = path.join(configDir, 'assistant-config.json'); +export const appConfigPath = path.join(configDir, 'assistant-app-config.json'); +export const appDir = createDir(path.join(configDir, 'assistant-app/frontend')); +export const LocalElectronAppUrl = 'https://assistant.app/user/tiptap/'; + +type AssistantConfig = { + pageApi?: string; // https://kevisual.silkyai.cn + loadURL?: string; // https://assistant.app/user/tiptap/ + proxy?: { user: string; key: string; path: string }[]; +}; +let assistantConfig: AssistantConfig; +export const getConfig = () => { + try { + if (!checkFileExists(configPath)) { + fs.writeFileSync(configPath, JSON.stringify({ proxy: [] }, null, 2)); + return { + loadURL: LocalElectronAppUrl, + pageApi: '', + proxy: [], + }; + } + assistantConfig = JSON.parse(fs.readFileSync(configPath, 'utf8')); + return assistantConfig; + } catch (error) { + console.error(error); + return { + loadURL: LocalElectronAppUrl, + pageApi: '', + proxy: [], + }; + } +}; +export const getCacheAssistantConfig = () => { + if (assistantConfig) { + return assistantConfig; + } + return getConfig(); +}; + +export const setConfig = (config?: AssistantConfig) => { + if (!config) { + return assistantConfig; + } + assistantConfig = config; + fs.writeFileSync(configPath, JSON.stringify(config, null, 2)); + return assistantConfig; +}; +type AppConfig = { + list: any[]; +}; +/** + * 应用配置 + * @returns + */ +export const getAppConfig = (): AppConfig => { + if (!checkFileExists(appConfigPath)) { + return { + list: [], + }; + } + return JSON.parse(fs.readFileSync(appConfigPath, 'utf8')); +}; + +export const setAppConfig = (config: AppConfig) => { + fs.writeFileSync(appConfigPath, JSON.stringify(config, null, 2)); + return config; +}; + +export const addAppConfig = (app: any) => { + const config = getAppConfig(); + const assistantConfig = getCacheAssistantConfig(); + const _apps = config.list; + const _proxy = assistantConfig.proxy || []; + const { user, key } = app; + const newProxyInfo = { + user, + key, + path: `/${user}/${key}`, + }; + const _proxyIndex = _proxy.findIndex((_proxy: any) => _proxy.path === newProxyInfo.path); + if (_proxyIndex !== -1) { + _proxy[_proxyIndex] = newProxyInfo; + } else { + _proxy.push(newProxyInfo); + } + + const _app = _apps.findIndex((_app: any) => _app.id === app.id); + if (_app !== -1) { + _apps[_app] = app; + } else { + _apps.push(app); + } + setAppConfig({ ...config, list: _apps }); + setConfig({ ...assistantConfig, proxy: _proxy }); + return config; +}; + +export const getAppList = () => { + const config = getAppConfig(); + return config.list || []; +}; diff --git a/src/modules/file/index.ts b/src/modules/file/index.ts new file mode 100644 index 0000000..f1f45bb --- /dev/null +++ b/src/modules/file/index.ts @@ -0,0 +1,20 @@ +import fs from 'fs'; + +export const checkFileExists = (filePath: string, checkIsFile = false) => { + try { + fs.accessSync(filePath); + if (checkIsFile) { + return fs.statSync(filePath).isFile(); + } + return true; + } catch (error) { + return false; + } +}; + +export const createDir = (dirPath: string) => { + if (!checkFileExists(dirPath)) { + fs.mkdirSync(dirPath, { recursive: true }); + } + return dirPath; +}; diff --git a/src/renderer/assistant-center.tgz b/src/renderer/assistant-center.tgz new file mode 100644 index 0000000000000000000000000000000000000000..577adb3c56433de134097386e7ecaf63aa9c78d3 GIT binary patch literal 4422 zcmV-M5xMRkiwFP!000006YX2;bJ|F@&u6OmA9|>*Sr{83@y5B{8VLjl4CZMYCdrPF zS|HHNYVnY>{@=H{^#o%l+1%W@b#MAZEc%>2ea`PZ`m`Xjik#fLA3JE8u9QlE{4INb z>3q@q>kaUZDOSq)GDBC&%sZMXFqHy$SNg$vk+DUNXuqTBgK8SzBPTE<`1`+LM3@$i z@Qn`(>Ob23-{60`P%M?P|LHva)BoQ);+V#t!#mE0~{|A`HpX1|m0)Uhu>M(T$QX)bsazw+)O3-ki zow~%-9kh{Z8km8mXo~S>Wr!qOwH%+~P3odbKBLz^}i8fGCsYfkKi7MG`T#4zjiaVs1-WHng@2 zOoYZx#UTjLUUj4uuuU`K@>l}#1TMT^xCU1^khMT|n+l!3f$rY4WfCzTy%^m(E7K;C zxqzaLtHBcd7x{BgMf3OYiPGUeys*|(2^xq5WKWoQb3ugaro7c)G>3>=@I%ha4LR`2 zN$94I5b(nGqn~gVG-PN-&LBB>5pEBGvz5q{Da3XN_roBOyD8Z}WUP2JM?GuKe z{E}gdVAjjQ5Ree4-@P2oS=x4~8d*_OMNd|VVkqVnF3Hq&)9``JS1CFI<%APMN4Uxq zL(#7=;gXWIAu_d{@3JyQzshYxOA{sNOO5&Vgpa^NYNsbNPcboGFT^F=wH!0M4qTXj z!SNz4id5-@)9$I;dDa7FS$nj{QqZp3r8X?!>7KBBSkScK>__f?un2C0? z^t|ueV#IB$x-BXpoT1M>G<};2#Yl=r$cC|CxnauC=XqoYg+aiaXMrd@KR%VIe8lF6 zUZMI_qH2+R2OR>mYmq4@E-z74Dj(&ZWmq~+xaY+4U)JgT9RKNvw;Vrek2m{&ro@!v z{eRx;|Cz$i{{MSNfN7ynI>I+TRNXRd2Yd#sWr1g)*rpEte%c58{e2?j+ag#u4F?{a zE_BbVh)%_vJ(Do(?nND)ZjwUpbD2>O@a)O}d2*bgzJdC>x4$Q`O+uHKcS* z8rk3yq{zzb2D%gxn88I*g0}Mwi!r;uI`JHupc<+Ju0c8juKz(a@}@=0%7bfQz&-X+ z+G}hOw0F?HCD$($bUT0;e+5!GNmHTW1YKNk4Z@pGTnk?LdK?i@o!Ah=g(7M?=Gd`S zW0}qzad$CVab^ri#7kJ8@fneMp8&vy&ek@FDetkxp=IFuIH1zxvUo|b$b`s9D=2L+ zto%Vm4#FVeu6ZCjt4oh4AWR0=KoKtUrYgoi}2|DB3K7~kztBRZc3@qC` zxcCYUo-cv1)wD~H&-nQe##JC10L>KT>FDO_91NEsmnAMCYpKCIC4Vy5$)96kPA`2Yh4gO;Mvrt7g|BTL z2aye`#0%tJWXw@P$(-01I$K4~snbHHH{$Y0csw-YxF0Ed0{siLP9%NjIjY|112>tEoHj}bfR zUF}QU=z(Xv%CaJ&0rvyENH7%BZwP_MPo6f=^&Y$q>(AWZK4ao@?r)zr(0%?h;rlwS zn1EmOfouO0rKpBXrqXF|CQl&rpDEG-UteDzX+mZR95^83Vt={523aPEL67oBjNv0V zmgJQ&s3CZ?gtE41m5wupZ9(J!Yy7@>g>|GSoe)&Cghz+o4V@pGJpBiko! zpc|*i=H6)fN|3E7U9{4qnGMZ|xDE5p+t}}%FdGR)%706k#tGmn_x$H2NTpss^(l%N z8=d7?7knfRNGe60l-Fim9`Bxcxo&D}SKv>acwu*n^YCaH$;f!4kU2#IOPYvigAobQ z@t73TCe;;rjsvE0ydrY~SKOcgt@zygv)o?qcf>rkwG-axN-L{2{+ccw7aW34jw=OG zkQ`J&>mTduUfv5{zY|1_RiK7V;zrzyssj}0NUL;Agaof}l8ZjtlIwRW))#$W zSM6z1iZnUDuOg}%l;hh*ZOzvBQfZIM_?taM>|IU$^+qV*QvJptuay}|N5&pON#yVHC81S#Oj&u0G#fGEd1T2$9oBwFcgoD*lW}5Dj6; zyj@uQw{`f~jU)AXA9%7TXsTios2Ba!e+Hii;Hy0r2(DyDyZTT@tKxXZ8#FG z%JhB^LSE&jFn88h80-0*p=7A222A_PNY3FzAI(>moIJ-i__q@0KrKuew^_b28A_Dp ziRrhhU!#|=(pM?;8CaVosWf=!$1Sv7Qo*CUM*M7!s#)6FEKe1-ajE|g^bM=z570PX zfxlMg^GcJ;`j<3}1gFeR>T4x?-|=HWVn2Gi0;vz%YJsbK*p>>7@`r7WDKd};{`~&;dxwu{u~e$O`upE39vt5i`k>B_ zCPGuFvlE`oCKEkDs6R~VbygCW>|Ws5rO;`k0bMBX9`E^4uE)}?`uMRm78ZrZkmtDJ zluT9$Rg(%#`O2Jt3JGx0>5|!7>+x>4BfH15b)Msq=SRS=XM#``WfQMEm-XNW0

DhkirY_a+^Y%&ys|_*`7$bNVI|-=gt3eK8JS(zwnUPi&uC zZXQ<~wN=~G96RKjEPKnXhwMI?Sk5-}<&0+^w`~5w*vs3yai_gACig|VfCL$wV95JfcS&H`_M_f$N$=XVI#yXZHtl zQRvgF{V2z>EO#!l*kX%ICfE*I3-jfotn$U%$%Dx^RBoWRdlw7$9_8t79@ckirFK`# z?F>|-1>59?N=vl`WbSsgd?A?_KdyC|ZKC;RG+oSh54D=cJW2<6de$ym)sopEkkbhS{|ax-4* zS1YxBK~OC@O<~;fU(L|BHqnu*Vnbf0=$+|BGe%XZ`=)5!L_K|Nlp< z{*T5i7>tBFcEW=$KZ~CMtiZ8sms<|&kHy9uDqOyFCv4z_++V0Wqq`~$E^b%7+W4lt zb4NE-)9AFTOv7lY7j!bwUyH21EKB;twaTMCdMvLl+~HEKET#LsFhSh1HDc$MI)AE+ z_8qo68yod*t$c8b`}U+$7$g%Fv%oraMVZO>x3pVmLvHkR!_H|J<~!W3nxm&`i=I3v z3${F8(6v(cVN_^eC|zeLG}s}FtA^QP8x4MOlY3k@dGq1PY*!siR*FyZwoKO#E8BqV zcrwuy+v&II26Llnnj*}`_b$CsbF*Z^ZHP7dLddQ22X@_L3J>hCD3{ARC$H-xc5-vb zi8sYs$-IE&{zl+ z1(_3l)ur$FNptEnhJ1ZEY)t6QymDLT@A}dcolM-Y)4^?JyMb+XX0&Dox)>Ikh0W45 zp4x+!qSdu_Nk&V$KW5s^;kw*+^QJr9TI)U>+}1nYWTIMq>cf?wu^XO!GH+{7Hh;mI zlYs{BELfSaQ*F*Mvz}PFXX+($zjpb}t~gl>u&P`8`(7@YsO|3H#ke&!q;g~KmJgdv z>FHi)^LwT`hKGmFblBn8&Tt{QF2n0j_1?_w-0nGhUtLxg>ZF}a^dH5Zu$-@FbZI+r zcvdWr%NuL4kX^ppn3whDV?(a7)gkIHB(vtSvx3Rz)bjR*cMHPKql)d!td zW?Es}Il%S2$vZad93Bp{i$|@l-mWxFYS9hbp&RbtZs-d0iZVAJ^3GxRoY!<-9B{Sn?oMJkvsPKuZj{R1^ik>@k_o4I zKN@Qm6zW!EIB!2b)bhsOY~=DvtKKdw?1EV", + "license": "MIT", + "type": "module", + "types": "types/index.d.ts", + "files": [ + "dist", + "pem", + "root" + ], + "dependencies": { + "@kevisual/code-center-module": "0.0.13", + "@kevisual/mark": "0.0.7", + "@kevisual/router": "0.0.9", + "cookie": "^1.0.2", + "dayjs": "^1.11.13", + "formidable": "^3.5.2", + "json5": "^2.2.3", + "lodash-es": "^4.17.21", + "ws": "^8.18.1" + }, + "devDependencies": { + "@kevisual/assistant-module": "workspace:*", + "@kevisual/types": "^0.0.6", + "@kevisual/use-config": "^1.0.9", + "@rollup/plugin-alias": "^5.1.1", + "@rollup/plugin-commonjs": "^28.0.3", + "@rollup/plugin-json": "^6.1.0", + "@rollup/plugin-node-resolve": "^16.0.0", + "@rollup/plugin-replace": "^6.0.2", + "@rollup/plugin-typescript": "^12.1.2", + "@types/crypto-js": "^4.2.2", + "@types/formidable": "^3.4.5", + "@types/lodash-es": "^4.17.12", + "@types/node": "^22.13.9", + "@types/ws": "^8.18.0", + "concurrently": "^9.1.2", + "cross-env": "^7.0.3", + "nodemon": "^3.1.9", + "pm2": "^5.4.3", + "rimraf": "^6.0.1", + "rollup": "^4.34.9", + "rollup-plugin-copy": "^3.5.0", + "rollup-plugin-dts": "^6.1.1", + "rollup-plugin-esbuild": "^6.2.1", + "tape": "^5.9.0", + "tsx": "^4.19.3", + "typescript": "^5.8.2" + }, + "pnpm": {} +} \ No newline at end of file diff --git a/src/renderer/assistant-center/pem/https-cert.pem b/src/renderer/assistant-center/pem/https-cert.pem new file mode 100644 index 0000000..68f4fce --- /dev/null +++ b/src/renderer/assistant-center/pem/https-cert.pem @@ -0,0 +1,15 @@ +-----BEGIN CERTIFICATE----- +MIICXTCCAcagAwIBAgIJHsP036vqWER/MA0GCSqGSIb3DQEBBQUAMF8xCjAIBgNV +BAMTASoxCzAJBgNVBAYTAkNOMREwDwYDVQQIEwhaaGVKaWFuZzERMA8GA1UEBxMI +SGFuZ3pob3UxETAPBgNVBAoTCEVudmlzaW9uMQswCQYDVQQLEwJJVDAeFw0yNTAz +MDcxNDIwMTJaFw0yNjAzMDcxNDIwMTJaMF8xCjAIBgNVBAMTASoxCzAJBgNVBAYT +AkNOMREwDwYDVQQIEwhaaGVKaWFuZzERMA8GA1UEBxMISGFuZ3pob3UxETAPBgNV +BAoTCEVudmlzaW9uMQswCQYDVQQLEwJJVDCBnzANBgkqhkiG9w0BAQEFAAOBjQAw +gYkCgYEAquA2XnwduVSJHvnTW4r5yodz/joTPUi+r8kS/KJyR/NQ5xovtDY2gJoO +nJk8qekcLKuofskIIu4HFsCE7AYBkQGaYmc+0cCQCmEpwivesbeMB0ydz+6NwLQn +32HVjtMtx3gUcywGdMntiQb/P9FIhtE132wOmW9PeSl0dx/nyrUCAwEAAaMhMB8w +HQYDVR0RBBYwFIIBKoIJbG9jYWxob3N0hwR/AAABMA0GCSqGSIb3DQEBBQUAA4GB +AJsjIZgb6iE4OTXoEDiBPmHM+byWs20K2eCvi79V9/vns90IroBQfGirIsovv923 +SqjmdAFsZkRUbZvX99lBX0mmZK9KTE4K9YUm7bv+d8+fBPxAgNFSTRiSNBeNh0Lh +HdJUiI/tzIfI6RRg1pFDC1tOG083Cl/YElN879w3Iipi +-----END CERTIFICATE----- diff --git a/src/renderer/assistant-center/pem/https-key.pem b/src/renderer/assistant-center/pem/https-key.pem new file mode 100644 index 0000000..7263037 --- /dev/null +++ b/src/renderer/assistant-center/pem/https-key.pem @@ -0,0 +1,15 @@ +-----BEGIN RSA PRIVATE KEY----- +MIICXAIBAAKBgQCq4DZefB25VIke+dNbivnKh3P+OhM9SL6vyRL8onJH81DnGi+0 +NjaAmg6cmTyp6Rwsq6h+yQgi7gcWwITsBgGRAZpiZz7RwJAKYSnCK96xt4wHTJ3P +7o3AtCffYdWO0y3HeBRzLAZ0ye2JBv8/0UiG0TXfbA6Zb095KXR3H+fKtQIDAQAB +AoGADDEbL/qjFEoXzoH8tpdf4zdu60CxhrneASTTmfrtNH0D1LlllfIYSWy0hi/Y +yDa9r+I/j2xAjF13XAQ4d66mBdjCRATLx/aL495o+e6NkIBEAgdP88hHm13F6gg+ +h8iMixs5mkwU41sghnCYeBqlziKPi8fsoTmhK0VETFUtDQECQQDT0kZ7OCEVNcz0 +LAUPO7ukeHAYnGYns+Q3F3kgonzHPGflClH5dsg0NS1HFQj6Ny2oyUupjNePOCJK +88zNehIlAkEAzoO9zrE+AoTPleVpe7TAUlZB1YMa7W1C5owjyEkv4TjIe8mpwWM/ +9vVe+SGUnc6DZy6xkk5zWmA2w18SexXJUQJBAJQbcyy1EmzCMYyJOwBrw8g8biTH +NqaMIgZjY05uTtEAa6S6kpbbdyEKDZ6mFqDd9A8QsNbco9yAY3oE/i6uLAECQHOt +a9aphZiXmEfYl3uJxejZFEtrAtxXxY+qlCiOhllcG0Drt0DyPVQyIZ7fZoX2tbhI +eYMAmrDXEBXj3VBA5eECQCLGpQKqo06QwP2qZ9mEaPB9KvVcABo97b9Lf7VUqcJx +tFWRSlpeICpDQZHqX92nwoD/2fGCH3br3o94k1oyApI= +-----END RSA PRIVATE KEY----- diff --git a/src/renderer/assistant-center/root/assistant-base-app/assets/Enter-BnWSbQup.js b/src/renderer/assistant-center/root/assistant-base-app/assets/Enter-BnWSbQup.js new file mode 100644 index 0000000..70ebb34 --- /dev/null +++ b/src/renderer/assistant-center/root/assistant-base-app/assets/Enter-BnWSbQup.js @@ -0,0 +1,9 @@ +import{u as h,r as o,j as e}from"./index-OAiiq-Mf.js";const m=()=>{const{config:s,getConfig:l,saveConfig:r}=h();o.useEffect(()=>{c(),l()},[]),o.useEffect(()=>{if(s.pageApi){const a=document.getElementById("pageApi");a.value=s.pageApi}},[s]);const c=()=>{const a=document.getElementById("particles"),p=20;if(a)for(let i=0;i + + + + + + + `;const n=10+Math.random()*20;t.style.width=`${n}px`,t.style.height=`${n}px`,t.style.left=`${Math.random()*100}%`,t.style.top=`${Math.random()*100}%`,t.style.animationDuration=`${5+Math.random()*5}s`,t.style.animationDelay=`${Math.random()*5}s`,a.appendChild(t)}},d=()=>{const a=document.getElementById("pageApi");r(a.value)};return e.jsxs("div",{className:"h-full w-full p-4 pt-10",children:[e.jsx("div",{className:"particles",id:"particles"}),e.jsxs("div",{className:"container",children:[e.jsxs("div",{className:"header",children:[e.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"}),e.jsx("circle",{cx:"12",cy:"12",r:"3"})]}),e.jsx("h1",{children:"Page Enter Configuration"})]}),e.jsxs("div",{className:"form-container",children:[e.jsxs("form",{id:"configForm",children:[e.jsxs("div",{className:"form-group",children:[e.jsx("label",{htmlFor:"pageApi",children:"Page Enter Api"}),e.jsx("input",{type:"text",id:"pageApi",placeholder:"Enter page api configuration"})]}),e.jsxs("button",{type:"submit",id:"save-button",onClick:d,children:[e.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("path",{d:"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"}),e.jsx("polyline",{points:"17 21 17 13 7 13 7 21"}),e.jsx("polyline",{points:"7 3 7 8 15 8"})]}),"Save Configuration"]})]}),e.jsx("div",{id:"save-result"})]})]})]})};export{m as default}; diff --git a/src/renderer/assistant-center/root/assistant-base-app/assets/Enter-CoE7l2Yc.css b/src/renderer/assistant-center/root/assistant-base-app/assets/Enter-CoE7l2Yc.css new file mode 100644 index 0000000..b3ad898 --- /dev/null +++ b/src/renderer/assistant-center/root/assistant-base-app/assets/Enter-CoE7l2Yc.css @@ -0,0 +1 @@ +*{box-sizing:border-box}body{min-height:100vh;background:linear-gradient(135deg,#fef3c7,#fffbeb);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;position:relative;overflow-x:hidden}.container{max-width:42rem;margin:0 auto}.header{display:flex;align-items:center;gap:.75rem;margin-bottom:2rem}.header svg{width:2rem;height:2rem;color:#d97706;animation:spin 8s linear infinite}.header h1{font-size:1.875rem;font-weight:700;color:#92400e}.form-container{background:#fffc;backdrop-filter:blur(8px);border-radius:1rem;box-shadow:0 4px 6px #d977061a;padding:2rem;transition:all .3s ease}.form-container:hover{box-shadow:0 8px 12px #d9770626}.form-group{margin-bottom:1.5rem}label{display:block;font-size:.875rem;font-weight:500;color:#92400e;margin-bottom:.25rem}input[type=text]{width:100%;padding:.75rem 1rem;border:1px solid #fbbf24;border-radius:.5rem;font-size:1rem;transition:all .2s}input[type=text]:focus{outline:none;border-color:#d97706;box-shadow:0 0 0 3px #d9770633}button{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;background-color:#d97706;color:#fff;padding:.75rem 1.5rem;border:none;border-radius:.5rem;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s}button:hover{background-color:#b45309}.particles{position:absolute;inset:0;pointer-events:none;overflow:hidden}.particle{position:absolute;color:#fbbf24;opacity:.3;animation:float 5s ease-in-out infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(10deg)}} diff --git a/src/renderer/assistant-center/root/assistant-base-app/assets/index-B3OKg3E6.js b/src/renderer/assistant-center/root/assistant-base-app/assets/index-B3OKg3E6.js new file mode 100644 index 0000000..74dd6ed --- /dev/null +++ b/src/renderer/assistant-center/root/assistant-base-app/assets/index-B3OKg3E6.js @@ -0,0 +1,31 @@ +import{c as v,y as d,a as f,q as N,r as u,u as C,j as n}from"./index-OAiiq-Mf.js";const $=v((t,i)=>({installedPackages:[],shopPackages:[],setInstalledPackages:s=>t({installedPackages:s}),setShopPackages:s=>t({shopPackages:s}),getInstalledPackages:async()=>{const s=await f.post({path:"shop",key:"list-installed"});return s.code===200&&t({installedPackages:s.data}),s.data},getShopPackages:async()=>{const s=await N.post({path:"app",key:"public-list"});return s.code===200&&t({shopPackages:s.data}),s.data},uninstallPackage:async s=>{const c=await f.post({path:"shop",key:"uninstall",data:{pkg:s}});c.code===200?(i().getInstalledPackages(),d.success("Package uninstalled successfully")):d.error(c.message||"Failed to uninstall package"),console.log("uninstallPackage",c)},installPackage:async s=>{const c=d.loading("Installing package..."),o=await f.post({path:"shop",key:"install",data:{pkg:s}});d.dismiss(c),o.code===200?(i().getInstalledPackages(),d.success("Package installed successfully")):d.error(o.message||"Failed to install package"),console.log("installPackage",o)}}));/** + * @license lucide-react v0.479.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const I=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),x=(...t)=>t.filter((i,s,c)=>!!i&&i.trim()!==""&&c.indexOf(i)===s).join(" ").trim();/** + * @license lucide-react v0.479.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */var A={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** + * @license lucide-react v0.479.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const U=u.forwardRef(({color:t="currentColor",size:i=24,strokeWidth:s=2,absoluteStrokeWidth:c,className:o="",children:r,iconNode:h,...p},k)=>u.createElement("svg",{ref:k,...A,width:i,height:i,stroke:t,strokeWidth:c?Number(s)*24/Number(i):s,className:x("lucide",o),...p},[...h.map(([g,m])=>u.createElement(g,m)),...Array.isArray(r)?r:[r]]));/** + * @license lucide-react v0.479.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const b=(t,i)=>{const s=u.forwardRef(({className:c,...o},r)=>u.createElement(U,{ref:r,iconNode:i,className:x(`lucide-${I(t)}`,c),...o}));return s.displayName=`${t}`,s};/** + * @license lucide-react v0.479.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const S=[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]],q=b("Link2",S);/** + * @license lucide-react v0.479.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const R=[["path",{d:"M21 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h6",key:"y09zxi"}],["path",{d:"m21 3-9 9",key:"mpx6sq"}],["path",{d:"M15 3h6v6",key:"1q9fwt"}]],E=b("SquareArrowOutUpRight",R),M=()=>{const{shopPackages:t,installedPackages:i,getInstalledPackages:s,getShopPackages:c,uninstallPackage:o,installPackage:r}=$(),{pageApi:h}=C();u.useEffect(()=>{s(),c()},[]);const p=e=>{const a=i.find(l=>l.user===e.user&&l.key===e.key);return a?a.version!==e.version?"update-available":"installed":"not-installed"},k=e=>{const a=t.find(l=>l.id===e);a&&r(a)},g=e=>{const a=t.find(l=>l.id===e);a&&r(a)},m=e=>{const a=t.find(l=>l.id===e);a&&r(a)},y=e=>{const a=t.find(l=>l.id===e);a&&o(a)},P=(e,a)=>{switch(e){case"not-installed":return n.jsx("button",{className:"button button-install",onClick:()=>k(a.id),children:"Install"});case"update-available":return n.jsx("button",{className:"button button-update",onClick:()=>g(a.id),children:"Update"});case"installed":return n.jsx("button",{className:"button button-reinstall",onClick:()=>m(a.id),children:"Reinstall"})}},w=e=>{const a="https://kevisual.silkyai.cn",l=`/${e.user}/${e.key}`;window.open(`${a}${l}`,"_blank")},j=e=>{if(!h)return;const a=h,l=`/${e.user}/${e.key}`;window.open(`${a}${l}`,"_blank")};return n.jsxs("div",{id:"app",children:[n.jsx("h1",{children:"Package Manager"}),n.jsx("div",{className:"package-list",children:t.map(e=>{const a=p(e),l=a!=="not-installed";return n.jsxs("div",{className:"package-card",children:[n.jsx("h2",{children:e.title}),n.jsx("p",{className:"description",children:e.description}),n.jsxs("div",{className:"package-info",children:[n.jsxs("span",{children:["Version: ",e.version]}),n.jsxs("span",{children:["User: ",e.user]})]}),n.jsxs("div",{className:"actions",children:[P(a,e),a!=="not-installed"&&n.jsx("button",{className:"button button-uninstall",onClick:()=>y(e.id),children:"Uninstall"}),n.jsxs("div",{className:"flex gap-2",children:[n.jsx("div",{className:"cursor-pointer p-2 rounded-md bg-amber-500 text-white",children:n.jsx(E,{onClick:()=>w(e)})}),h&&l&&n.jsx("div",{className:"cursor-pointer p-2 rounded-md bg-amber-500 text-white",children:n.jsx(q,{onClick:()=>j(e)})})]})]})]},e.id)})})]})};export{M as PackageManager,M as default}; diff --git a/src/renderer/assistant-center/root/assistant-base-app/assets/index-BQID9xYq.css b/src/renderer/assistant-center/root/assistant-base-app/assets/index-BQID9xYq.css new file mode 100644 index 0000000..db4fbc8 --- /dev/null +++ b/src/renderer/assistant-center/root/assistant-base-app/assets/index-BQID9xYq.css @@ -0,0 +1 @@ +:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;background-color:#fff8e1;color:#213547}body{margin:0;min-width:320px;min-height:100vh}#app{max-width:1280px;margin:0 auto;padding:2rem}h1{text-align:center;color:#ff8f00}.package-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;padding:1rem}.package-card{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #ff8f001a;border:1px solid #ffe0b2}.package-card h2{margin:0 0 .5rem;color:#f57c00}.package-card .description{color:#666;margin-bottom:1rem;font-size:.9rem;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;line-height:1.5;max-height:6em}.package-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;font-size:.9rem;color:#666}.actions{display:flex;gap:.5rem}.button{padding:.5rem 1rem;border-radius:4px;border:none;cursor:pointer;font-weight:500;transition:background-color .2s}.button-install{background-color:#ffa000;color:#fff}.button-update{background-color:#ff8f00;color:#fff}.button-reinstall{background-color:#ffb300;color:#fff}.button-uninstall{background-color:#ff6f00;color:#fff}.button:hover{opacity:.9}.button:disabled{background-color:#ffe0b2;cursor:not-allowed}.error-message{text-align:center;color:#ff6f00;padding:2rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px #ff8f001a;grid-column:1 / -1} diff --git a/src/renderer/assistant-center/root/assistant-base-app/assets/index-CyYNi-ro.css b/src/renderer/assistant-center/root/assistant-base-app/assets/index-CyYNi-ro.css new file mode 100644 index 0000000..90427ab --- /dev/null +++ b/src/renderer/assistant-center/root/assistant-base-app/assets/index-CyYNi-ro.css @@ -0,0 +1 @@ +/*! tailwindcss v4.0.9 | MIT License | https://tailwindcss.com */@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-amber-500:oklch(.769 .188 70.08);--color-gray-300:oklch(.872 .01 258.338);--color-white:#fff;--spacing:.25rem;--radius-md:.375rem;--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-font-feature-settings:var(--font-sans--font-feature-settings);--default-font-variation-settings:var(--font-sans--font-variation-settings);--default-mono-font-family:var(--font-mono);--default-mono-font-feature-settings:var(--font-mono--font-feature-settings);--default-mono-font-variation-settings:var(--font-mono--font-variation-settings)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1;color:color-mix(in oklab,currentColor 50%,transparent)}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components{.test-loading{height:calc(var(--spacing)*20);width:calc(var(--spacing)*20);animation:var(--animate-spin);background-color:var(--color-gray-300);border-radius:3.40282e38px}}@layer utilities{.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.top-0{top:calc(var(--spacing)*0)}.z-10{z-index:10}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.hidden{display:none}.h-10{height:calc(var(--spacing)*10)}.h-full{height:100%}.w-10{width:calc(var(--spacing)*10)}.w-full{width:100%}.transform{transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing)*2)}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*4)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-x-reverse)))}.rounded{border-radius:.25rem}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.bg-amber-500{background-color:var(--color-amber-500)}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.pt-10{padding-top:calc(var(--spacing)*10)}.text-white{color:var(--color-white)}.text-white\/70{color:color-mix(in oklab,var(--color-white)70%,transparent)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}}html,body{width:100%;height:100%;margin:0;padding:0;overflow:hidden}#root{width:100%;height:100%;overflow:auto}#root::-webkit-scrollbar{width:1px}#root::-webkit-scrollbar-thumb{background-color:#00000080;border-radius:10px}#root::-webkit-scrollbar-track{background:0 0}@property --tw-rotate-x{syntax:"*";inherits:false;initial-value:rotateX(0)}@property --tw-rotate-y{syntax:"*";inherits:false;initial-value:rotateY(0)}@property --tw-rotate-z{syntax:"*";inherits:false;initial-value:rotateZ(0)}@property --tw-skew-x{syntax:"*";inherits:false;initial-value:skewX(0)}@property --tw-skew-y{syntax:"*";inherits:false;initial-value:skewY(0)}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}} diff --git a/src/renderer/assistant-center/root/assistant-base-app/assets/index-OAiiq-Mf.js b/src/renderer/assistant-center/root/assistant-base-app/assets/index-OAiiq-Mf.js new file mode 100644 index 0000000..2273ab7 --- /dev/null +++ b/src/renderer/assistant-center/root/assistant-base-app/assets/index-OAiiq-Mf.js @@ -0,0 +1,51 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-B3OKg3E6.js","assets/index-BQID9xYq.css","assets/Enter-BnWSbQup.js","assets/Enter-CoE7l2Yc.css"])))=>i.map(i=>d[i]); +(function(){const o=document.createElement("link").relList;if(o&&o.supports&&o.supports("modulepreload"))return;for(const E of document.querySelectorAll('link[rel="modulepreload"]'))r(E);new MutationObserver(E=>{for(const D of E)if(D.type==="childList")for(const A of D.addedNodes)A.tagName==="LINK"&&A.rel==="modulepreload"&&r(A)}).observe(document,{childList:!0,subtree:!0});function v(E){const D={};return E.integrity&&(D.integrity=E.integrity),E.referrerPolicy&&(D.referrerPolicy=E.referrerPolicy),E.crossOrigin==="use-credentials"?D.credentials="include":E.crossOrigin==="anonymous"?D.credentials="omit":D.credentials="same-origin",D}function r(E){if(E.ep)return;E.ep=!0;const D=v(E);fetch(E.href,D)}})();function ky(c){return c&&c.__esModule&&Object.prototype.hasOwnProperty.call(c,"default")?c.default:c}var ic={exports:{}},Du={};/** + * @license React + * react-jsx-runtime.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var ad;function $y(){if(ad)return Du;ad=1;var c=Symbol.for("react.transitional.element"),o=Symbol.for("react.fragment");function v(r,E,D){var A=null;if(D!==void 0&&(A=""+D),E.key!==void 0&&(A=""+E.key),"key"in E){D={};for(var H in E)H!=="key"&&(D[H]=E[H])}else D=E;return E=D.ref,{$$typeof:c,type:r,key:A,ref:E!==void 0?E:null,props:D}}return Du.Fragment=o,Du.jsx=v,Du.jsxs=v,Du}var ed;function Wy(){return ed||(ed=1,ic.exports=$y()),ic.exports}var tl=Wy(),fc={exports:{}},Mu={},cc={exports:{}},sc={};/** + * @license React + * scheduler.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var ud;function Fy(){return ud||(ud=1,function(c){function o(U,w){var G=U.length;U.push(w);t:for(;0>>1,d=U[pt];if(0>>1;ptE(Z,G))NE(ct,Z)?(U[pt]=ct,U[N]=G,pt=N):(U[pt]=Z,U[K]=G,pt=K);else if(NE(ct,G))U[pt]=ct,U[N]=G,pt=N;else break t}}return w}function E(U,w){var G=U.sortIndex-w.sortIndex;return G!==0?G:U.id-w.id}if(c.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var D=performance;c.unstable_now=function(){return D.now()}}else{var A=Date,H=A.now();c.unstable_now=function(){return A.now()-H}}var T=[],b=[],R=1,C=null,Q=3,J=!1,dt=!1,et=!1,W=typeof setTimeout=="function"?setTimeout:null,P=typeof clearTimeout=="function"?clearTimeout:null,x=typeof setImmediate<"u"?setImmediate:null;function X(U){for(var w=v(b);w!==null;){if(w.callback===null)r(b);else if(w.startTime<=U)r(b),w.sortIndex=w.expirationTime,o(T,w);else break;w=v(b)}}function $(U){if(et=!1,X(U),!dt)if(v(T)!==null)dt=!0,zl();else{var w=v(b);w!==null&&Zt($,w.startTime-U)}}var L=!1,vt=-1,tt=5,it=-1;function B(){return!(c.unstable_now()-itU&&B());){var pt=C.callback;if(typeof pt=="function"){C.callback=null,Q=C.priorityLevel;var d=pt(C.expirationTime<=U);if(U=c.unstable_now(),typeof d=="function"){C.callback=d,X(U),w=!0;break l}C===v(T)&&r(T),X(U)}else r(T);C=v(T)}if(C!==null)w=!0;else{var M=v(b);M!==null&&Zt($,M.startTime-U),w=!1}}break t}finally{C=null,Q=G,J=!1}w=void 0}}finally{w?Dt():L=!1}}}var Dt;if(typeof x=="function")Dt=function(){x(I)};else if(typeof MessageChannel<"u"){var Lt=new MessageChannel,Wt=Lt.port2;Lt.port1.onmessage=I,Dt=function(){Wt.postMessage(null)}}else Dt=function(){W(I,0)};function zl(){L||(L=!0,Dt())}function Zt(U,w){vt=W(function(){U(c.unstable_now())},w)}c.unstable_IdlePriority=5,c.unstable_ImmediatePriority=1,c.unstable_LowPriority=4,c.unstable_NormalPriority=3,c.unstable_Profiling=null,c.unstable_UserBlockingPriority=2,c.unstable_cancelCallback=function(U){U.callback=null},c.unstable_continueExecution=function(){dt||J||(dt=!0,zl())},c.unstable_forceFrameRate=function(U){0>U||125pt?(U.sortIndex=G,o(b,U),v(T)===null&&U===v(b)&&(et?(P(vt),vt=-1):et=!0,Zt($,G-pt))):(U.sortIndex=d,o(T,U),dt||J||(dt=!0,zl())),U},c.unstable_shouldYield=B,c.unstable_wrapCallback=function(U){var w=Q;return function(){var G=Q;Q=w;try{return U.apply(this,arguments)}finally{Q=G}}}}(sc)),sc}var nd;function Iy(){return nd||(nd=1,cc.exports=Fy()),cc.exports}var oc={exports:{}},F={};/** + * @license React + * react.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var id;function Py(){if(id)return F;id=1;var c=Symbol.for("react.transitional.element"),o=Symbol.for("react.portal"),v=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),E=Symbol.for("react.profiler"),D=Symbol.for("react.consumer"),A=Symbol.for("react.context"),H=Symbol.for("react.forward_ref"),T=Symbol.for("react.suspense"),b=Symbol.for("react.memo"),R=Symbol.for("react.lazy"),C=Symbol.iterator;function Q(d){return d===null||typeof d!="object"?null:(d=C&&d[C]||d["@@iterator"],typeof d=="function"?d:null)}var J={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},dt=Object.assign,et={};function W(d,M,K){this.props=d,this.context=M,this.refs=et,this.updater=K||J}W.prototype.isReactComponent={},W.prototype.setState=function(d,M){if(typeof d!="object"&&typeof d!="function"&&d!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,d,M,"setState")},W.prototype.forceUpdate=function(d){this.updater.enqueueForceUpdate(this,d,"forceUpdate")};function P(){}P.prototype=W.prototype;function x(d,M,K){this.props=d,this.context=M,this.refs=et,this.updater=K||J}var X=x.prototype=new P;X.constructor=x,dt(X,W.prototype),X.isPureReactComponent=!0;var $=Array.isArray,L={H:null,A:null,T:null,S:null},vt=Object.prototype.hasOwnProperty;function tt(d,M,K,Z,N,ct){return K=ct.ref,{$$typeof:c,type:d,key:M,ref:K!==void 0?K:null,props:ct}}function it(d,M){return tt(d.type,M,void 0,void 0,void 0,d.props)}function B(d){return typeof d=="object"&&d!==null&&d.$$typeof===c}function I(d){var M={"=":"=0",":":"=2"};return"$"+d.replace(/[=:]/g,function(K){return M[K]})}var Dt=/\/+/g;function Lt(d,M){return typeof d=="object"&&d!==null&&d.key!=null?I(""+d.key):M.toString(36)}function Wt(){}function zl(d){switch(d.status){case"fulfilled":return d.value;case"rejected":throw d.reason;default:switch(typeof d.status=="string"?d.then(Wt,Wt):(d.status="pending",d.then(function(M){d.status==="pending"&&(d.status="fulfilled",d.value=M)},function(M){d.status==="pending"&&(d.status="rejected",d.reason=M)})),d.status){case"fulfilled":return d.value;case"rejected":throw d.reason}}throw d}function Zt(d,M,K,Z,N){var ct=typeof d;(ct==="undefined"||ct==="boolean")&&(d=null);var lt=!1;if(d===null)lt=!0;else switch(ct){case"bigint":case"string":case"number":lt=!0;break;case"object":switch(d.$$typeof){case c:case o:lt=!0;break;case R:return lt=d._init,Zt(lt(d._payload),M,K,Z,N)}}if(lt)return N=N(d),lt=Z===""?"."+Lt(d,0):Z,$(N)?(K="",lt!=null&&(K=lt.replace(Dt,"$&/")+"/"),Zt(N,M,K,"",function(Nt){return Nt})):N!=null&&(B(N)&&(N=it(N,K+(N.key==null||d&&d.key===N.key?"":(""+N.key).replace(Dt,"$&/")+"/")+lt)),M.push(N)),1;lt=0;var Ft=Z===""?".":Z+":";if($(d))for(var mt=0;mt"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(c)}catch(o){console.error(o)}}return c(),rc.exports=tm(),rc.exports}/** + * @license React + * react-dom-client.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var od;function am(){if(od)return Mu;od=1;var c=Iy(),o=gc(),v=lm();function r(t){var l="https://react.dev/errors/"+t;if(1)":-1u||s[e]!==m[u]){var S=` +`+s[e].replace(" at new "," at ");return t.displayName&&S.includes("")&&(S=S.replace("",t.displayName)),S}while(1<=e&&0<=u);break}}}finally{zl=!1,Error.prepareStackTrace=a}return(a=t?t.displayName||t.name:"")?Wt(a):""}function U(t){switch(t.tag){case 26:case 27:case 5:return Wt(t.type);case 16:return Wt("Lazy");case 13:return Wt("Suspense");case 19:return Wt("SuspenseList");case 0:case 15:return t=Zt(t.type,!1),t;case 11:return t=Zt(t.type.render,!1),t;case 1:return t=Zt(t.type,!0),t;default:return""}}function w(t){try{var l="";do l+=U(t),t=t.return;while(t);return l}catch(a){return` +Error generating stack: `+a.message+` +`+a.stack}}function G(t){var l=t,a=t;if(t.alternate)for(;l.return;)l=l.return;else{t=l;do l=t,(l.flags&4098)!==0&&(a=l.return),t=l.return;while(t)}return l.tag===3?a:null}function pt(t){if(t.tag===13){var l=t.memoizedState;if(l===null&&(t=t.alternate,t!==null&&(l=t.memoizedState)),l!==null)return l.dehydrated}return null}function d(t){if(G(t)!==t)throw Error(r(188))}function M(t){var l=t.alternate;if(!l){if(l=G(t),l===null)throw Error(r(188));return l!==t?null:t}for(var a=t,e=l;;){var u=a.return;if(u===null)break;var n=u.alternate;if(n===null){if(e=u.return,e!==null){a=e;continue}break}if(u.child===n.child){for(n=u.child;n;){if(n===a)return d(u),t;if(n===e)return d(u),l;n=n.sibling}throw Error(r(188))}if(a.return!==e.return)a=u,e=n;else{for(var i=!1,f=u.child;f;){if(f===a){i=!0,a=u,e=n;break}if(f===e){i=!0,e=u,a=n;break}f=f.sibling}if(!i){for(f=n.child;f;){if(f===a){i=!0,a=n,e=u;break}if(f===e){i=!0,e=n,a=u;break}f=f.sibling}if(!i)throw Error(r(189))}}if(a.alternate!==e)throw Error(r(190))}if(a.tag!==3)throw Error(r(188));return a.stateNode.current===a?t:l}function K(t){var l=t.tag;if(l===5||l===26||l===27||l===6)return t;for(t=t.child;t!==null;){if(l=K(t),l!==null)return l;t=t.sibling}return null}var Z=Array.isArray,N=v.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ct={pending:!1,data:null,method:null,action:null},lt=[],Ft=-1;function mt(t){return{current:t}}function Nt(t){0>Ft||(t.current=lt[Ft],lt[Ft]=null,Ft--)}function zt(t,l){Ft++,lt[Ft]=t.current,t.current=l}var Rl=mt(null),Ue=mt(null),ta=mt(null),Nu=mt(null);function xu(t,l){switch(zt(ta,l),zt(Ue,t),zt(Rl,null),t=l.nodeType,t){case 9:case 11:l=(l=l.documentElement)&&(l=l.namespaceURI)?Hr(l):0;break;default:if(t=t===8?l.parentNode:l,l=t.tagName,t=t.namespaceURI)t=Hr(t),l=Nr(t,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}Nt(Rl),zt(Rl,l)}function ka(){Nt(Rl),Nt(Ue),Nt(ta)}function Wn(t){t.memoizedState!==null&&zt(Nu,t);var l=Rl.current,a=Nr(l,t.type);l!==a&&(zt(Ue,t),zt(Rl,a))}function qu(t){Ue.current===t&&(Nt(Rl),Nt(Ue)),Nu.current===t&&(Nt(Nu),Tu._currentValue=ct)}var Fn=Object.prototype.hasOwnProperty,In=c.unstable_scheduleCallback,Pn=c.unstable_cancelCallback,Od=c.unstable_shouldYield,Dd=c.unstable_requestPaint,Ul=c.unstable_now,Md=c.unstable_getCurrentPriorityLevel,_c=c.unstable_ImmediatePriority,pc=c.unstable_UserBlockingPriority,Cu=c.unstable_NormalPriority,Rd=c.unstable_LowPriority,Sc=c.unstable_IdlePriority,Ud=c.log,Hd=c.unstable_setDisableYieldValue,He=null,nl=null;function Nd(t){if(nl&&typeof nl.onCommitFiberRoot=="function")try{nl.onCommitFiberRoot(He,t,void 0,(t.current.flags&128)===128)}catch{}}function la(t){if(typeof Ud=="function"&&Hd(t),nl&&typeof nl.setStrictMode=="function")try{nl.setStrictMode(He,t)}catch{}}var il=Math.clz32?Math.clz32:Cd,xd=Math.log,qd=Math.LN2;function Cd(t){return t>>>=0,t===0?32:31-(xd(t)/qd|0)|0}var Bu=128,Yu=4194304;function za(t){var l=t&42;if(l!==0)return l;switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194176;case 4194304:case 8388608:case 16777216:case 33554432:return t&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return t}}function Xu(t,l){var a=t.pendingLanes;if(a===0)return 0;var e=0,u=t.suspendedLanes,n=t.pingedLanes,i=t.warmLanes;t=t.finishedLanes!==0;var f=a&134217727;return f!==0?(a=f&~u,a!==0?e=za(a):(n&=f,n!==0?e=za(n):t||(i=f&~i,i!==0&&(e=za(i))))):(f=a&~u,f!==0?e=za(f):n!==0?e=za(n):t||(i=a&~i,i!==0&&(e=za(i)))),e===0?0:l!==0&&l!==e&&(l&u)===0&&(u=e&-e,i=l&-l,u>=i||u===32&&(i&4194176)!==0)?l:e}function Ne(t,l){return(t.pendingLanes&~(t.suspendedLanes&~t.pingedLanes)&l)===0}function Bd(t,l){switch(t){case 1:case 2:case 4:case 8:return l+250;case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return l+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Tc(){var t=Bu;return Bu<<=1,(Bu&4194176)===0&&(Bu=128),t}function Ec(){var t=Yu;return Yu<<=1,(Yu&62914560)===0&&(Yu=4194304),t}function ti(t){for(var l=[],a=0;31>a;a++)l.push(t);return l}function xe(t,l){t.pendingLanes|=l,l!==268435456&&(t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function Yd(t,l,a,e,u,n){var i=t.pendingLanes;t.pendingLanes=a,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=a,t.entangledLanes&=a,t.errorRecoveryDisabledLanes&=a,t.shellSuspendCounter=0;var f=t.entanglements,s=t.expirationTimes,m=t.hiddenUpdates;for(a=i&~a;0"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Qd=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Hc={},Nc={};function Ld(t){return Fn.call(Nc,t)?!0:Fn.call(Hc,t)?!1:Qd.test(t)?Nc[t]=!0:(Hc[t]=!0,!1)}function ju(t,l,a){if(Ld(l))if(a===null)t.removeAttribute(l);else{switch(typeof a){case"undefined":case"function":case"symbol":t.removeAttribute(l);return;case"boolean":var e=l.toLowerCase().slice(0,5);if(e!=="data-"&&e!=="aria-"){t.removeAttribute(l);return}}t.setAttribute(l,""+a)}}function Gu(t,l,a){if(a===null)t.removeAttribute(l);else{switch(typeof a){case"undefined":case"function":case"symbol":case"boolean":t.removeAttribute(l);return}t.setAttribute(l,""+a)}}function Yl(t,l,a,e){if(e===null)t.removeAttribute(a);else{switch(typeof e){case"undefined":case"function":case"symbol":case"boolean":t.removeAttribute(a);return}t.setAttributeNS(l,a,""+e)}}function dl(t){switch(typeof t){case"bigint":case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function xc(t){var l=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(l==="checkbox"||l==="radio")}function Zd(t){var l=xc(t)?"checked":"value",a=Object.getOwnPropertyDescriptor(t.constructor.prototype,l),e=""+t[l];if(!t.hasOwnProperty(l)&&typeof a<"u"&&typeof a.get=="function"&&typeof a.set=="function"){var u=a.get,n=a.set;return Object.defineProperty(t,l,{configurable:!0,get:function(){return u.call(this)},set:function(i){e=""+i,n.call(this,i)}}),Object.defineProperty(t,l,{enumerable:a.enumerable}),{getValue:function(){return e},setValue:function(i){e=""+i},stopTracking:function(){t._valueTracker=null,delete t[l]}}}}function Qu(t){t._valueTracker||(t._valueTracker=Zd(t))}function qc(t){if(!t)return!1;var l=t._valueTracker;if(!l)return!0;var a=l.getValue(),e="";return t&&(e=xc(t)?t.checked?"true":"false":t.value),t=e,t!==a?(l.setValue(t),!0):!1}function Lu(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}var Vd=/[\n"\\]/g;function yl(t){return t.replace(Vd,function(l){return"\\"+l.charCodeAt(0).toString(16)+" "})}function ei(t,l,a,e,u,n,i,f){t.name="",i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"?t.type=i:t.removeAttribute("type"),l!=null?i==="number"?(l===0&&t.value===""||t.value!=l)&&(t.value=""+dl(l)):t.value!==""+dl(l)&&(t.value=""+dl(l)):i!=="submit"&&i!=="reset"||t.removeAttribute("value"),l!=null?ui(t,i,dl(l)):a!=null?ui(t,i,dl(a)):e!=null&&t.removeAttribute("value"),u==null&&n!=null&&(t.defaultChecked=!!n),u!=null&&(t.checked=u&&typeof u!="function"&&typeof u!="symbol"),f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"?t.name=""+dl(f):t.removeAttribute("name")}function Cc(t,l,a,e,u,n,i,f){if(n!=null&&typeof n!="function"&&typeof n!="symbol"&&typeof n!="boolean"&&(t.type=n),l!=null||a!=null){if(!(n!=="submit"&&n!=="reset"||l!=null))return;a=a!=null?""+dl(a):"",l=l!=null?""+dl(l):a,f||l===t.value||(t.value=l),t.defaultValue=l}e=e??u,e=typeof e!="function"&&typeof e!="symbol"&&!!e,t.checked=f?t.checked:!!e,t.defaultChecked=!!e,i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(t.name=i)}function ui(t,l,a){l==="number"&&Lu(t.ownerDocument)===t||t.defaultValue===""+a||(t.defaultValue=""+a)}function Pa(t,l,a,e){if(t=t.options,l){l={};for(var u=0;u=Ge),kc=" ",$c=!1;function Wc(t,l){switch(t){case"keyup":return b0.indexOf(l.keyCode)!==-1;case"keydown":return l.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Fc(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var ee=!1;function p0(t,l){switch(t){case"compositionend":return Fc(l);case"keypress":return l.which!==32?null:($c=!0,kc);case"textInput":return t=l.data,t===kc&&$c?null:t;default:return null}}function S0(t,l){if(ee)return t==="compositionend"||!vi&&Wc(t,l)?(t=Lc(),Vu=oi=ea=null,ee=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(l.ctrlKey||l.altKey||l.metaKey)||l.ctrlKey&&l.altKey){if(l.char&&1=l)return{node:a,offset:l-t};t=e}t:{for(;a;){if(a.nextSibling){a=a.nextSibling;break t}a=a.parentNode}a=void 0}a=ns(a)}}function fs(t,l){return t&&l?t===l?!0:t&&t.nodeType===3?!1:l&&l.nodeType===3?fs(t,l.parentNode):"contains"in t?t.contains(l):t.compareDocumentPosition?!!(t.compareDocumentPosition(l)&16):!1:!1}function cs(t){t=t!=null&&t.ownerDocument!=null&&t.ownerDocument.defaultView!=null?t.ownerDocument.defaultView:window;for(var l=Lu(t.document);l instanceof t.HTMLIFrameElement;){try{var a=typeof l.contentWindow.location.href=="string"}catch{a=!1}if(a)t=l.contentWindow;else break;l=Lu(t.document)}return l}function bi(t){var l=t&&t.nodeName&&t.nodeName.toLowerCase();return l&&(l==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||l==="textarea"||t.contentEditable==="true")}function R0(t,l){var a=cs(l);l=t.focusedElem;var e=t.selectionRange;if(a!==l&&l&&l.ownerDocument&&fs(l.ownerDocument.documentElement,l)){if(e!==null&&bi(l)){if(t=e.start,a=e.end,a===void 0&&(a=t),"selectionStart"in l)l.selectionStart=t,l.selectionEnd=Math.min(a,l.value.length);else if(a=(t=l.ownerDocument||document)&&t.defaultView||window,a.getSelection){a=a.getSelection();var u=l.textContent.length,n=Math.min(e.start,u);e=e.end===void 0?n:Math.min(e.end,u),!a.extend&&n>e&&(u=e,e=n,n=u),u=is(l,n);var i=is(l,e);u&&i&&(a.rangeCount!==1||a.anchorNode!==u.node||a.anchorOffset!==u.offset||a.focusNode!==i.node||a.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(u.node,u.offset),a.removeAllRanges(),n>e?(a.addRange(t),a.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),a.addRange(t)))}}for(t=[],a=l;a=a.parentNode;)a.nodeType===1&&t.push({element:a,left:a.scrollLeft,top:a.scrollTop});for(typeof l.focus=="function"&&l.focus(),l=0;l=document.documentMode,ue=null,_i=null,Ve=null,pi=!1;function ss(t,l,a){var e=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;pi||ue==null||ue!==Lu(e)||(e=ue,"selectionStart"in e&&bi(e)?e={start:e.selectionStart,end:e.selectionEnd}:(e=(e.ownerDocument&&e.ownerDocument.defaultView||window).getSelection(),e={anchorNode:e.anchorNode,anchorOffset:e.anchorOffset,focusNode:e.focusNode,focusOffset:e.focusOffset}),Ve&&Ze(Ve,e)||(Ve=e,e=Nn(_i,"onSelect"),0>=i,u-=i,Xl=1<<32-il(l)+u|a<V?(Qt=j,j=null):Qt=j.sibling;var rt=_(h,j,g[V],z);if(rt===null){j===null&&(j=Qt);break}t&&j&&rt.alternate===null&&l(h,j),y=n(rt,y,V),ut===null?q=rt:ut.sibling=rt,ut=rt,j=Qt}if(V===g.length)return a(h,j),ot&&Ha(h,V),q;if(j===null){for(;VV?(Qt=j,j=null):Qt=j.sibling;var Ea=_(h,j,rt.value,z);if(Ea===null){j===null&&(j=Qt);break}t&&j&&Ea.alternate===null&&l(h,j),y=n(Ea,y,V),ut===null?q=Ea:ut.sibling=Ea,ut=Ea,j=Qt}if(rt.done)return a(h,j),ot&&Ha(h,V),q;if(j===null){for(;!rt.done;V++,rt=g.next())rt=O(h,rt.value,z),rt!==null&&(y=n(rt,y,V),ut===null?q=rt:ut.sibling=rt,ut=rt);return ot&&Ha(h,V),q}for(j=e(j);!rt.done;V++,rt=g.next())rt=p(j,h,V,rt.value,z),rt!==null&&(t&&rt.alternate!==null&&j.delete(rt.key===null?V:rt.key),y=n(rt,y,V),ut===null?q=rt:ut.sibling=rt,ut=rt);return t&&j.forEach(function(Jy){return l(h,Jy)}),ot&&Ha(h,V),q}function Ut(h,y,g,z){if(typeof g=="object"&&g!==null&&g.type===T&&g.key===null&&(g=g.props.children),typeof g=="object"&&g!==null){switch(g.$$typeof){case A:t:{for(var q=g.key;y!==null;){if(y.key===q){if(q=g.type,q===T){if(y.tag===7){a(h,y.sibling),z=u(y,g.props.children),z.return=h,h=z;break t}}else if(y.elementType===q||typeof q=="object"&&q!==null&&q.$$typeof===x&&Os(q)===y.type){a(h,y.sibling),z=u(y,g.props),Fe(z,g),z.return=h,h=z;break t}a(h,y);break}else l(h,y);y=y.sibling}g.type===T?(z=La(g.props.children,h.mode,z,g.key),z.return=h,h=z):(z=Tn(g.type,g.key,g.props,null,h.mode,z),Fe(z,g),z.return=h,h=z)}return i(h);case H:t:{for(q=g.key;y!==null;){if(y.key===q)if(y.tag===4&&y.stateNode.containerInfo===g.containerInfo&&y.stateNode.implementation===g.implementation){a(h,y.sibling),z=u(y,g.children||[]),z.return=h,h=z;break t}else{a(h,y);break}else l(h,y);y=y.sibling}z=Ef(g,h.mode,z),z.return=h,h=z}return i(h);case x:return q=g._init,g=q(g._payload),Ut(h,y,g,z)}if(Z(g))return Y(h,y,g,z);if(vt(g)){if(q=vt(g),typeof q!="function")throw Error(r(150));return g=q.call(g),k(h,y,g,z)}if(typeof g.then=="function")return Ut(h,y,an(g),z);if(g.$$typeof===J)return Ut(h,y,_n(h,g),z);en(h,g)}return typeof g=="string"&&g!==""||typeof g=="number"||typeof g=="bigint"?(g=""+g,y!==null&&y.tag===6?(a(h,y.sibling),z=u(y,g),z.return=h,h=z):(a(h,y),z=Tf(g,h.mode,z),z.return=h,h=z),i(h)):a(h,y)}return function(h,y,g,z){try{We=0;var q=Ut(h,y,g,z);return oe=null,q}catch(j){if(j===ke)throw j;var ut=Sl(29,j,null,h.mode);return ut.lanes=z,ut.return=h,ut}finally{}}}var xa=Ds(!0),Ms=Ds(!1),re=mt(null),un=mt(0);function Rs(t,l){t=Wl,zt(un,t),zt(re,l),Wl=t|l.baseLanes}function Mi(){zt(un,Wl),zt(re,re.current)}function Ri(){Wl=un.current,Nt(re),Nt(un)}var bl=mt(null),Nl=null;function na(t){var l=t.alternate;zt(Bt,Bt.current&1),zt(bl,t),Nl===null&&(l===null||re.current!==null||l.memoizedState!==null)&&(Nl=t)}function Us(t){if(t.tag===22){if(zt(Bt,Bt.current),zt(bl,t),Nl===null){var l=t.alternate;l!==null&&l.memoizedState!==null&&(Nl=t)}}else ia()}function ia(){zt(Bt,Bt.current),zt(bl,bl.current)}function Gl(t){Nt(bl),Nl===t&&(Nl=null),Nt(Bt)}var Bt=mt(0);function nn(t){for(var l=t;l!==null;){if(l.tag===13){var a=l.memoizedState;if(a!==null&&(a=a.dehydrated,a===null||a.data==="$?"||a.data==="$!"))return l}else if(l.tag===19&&l.memoizedProps.revealOrder!==void 0){if((l.flags&128)!==0)return l}else if(l.child!==null){l.child.return=l,l=l.child;continue}if(l===t)break;for(;l.sibling===null;){if(l.return===null||l.return===t)return null;l=l.return}l.sibling.return=l.return,l=l.sibling}return null}var q0=typeof AbortController<"u"?AbortController:function(){var t=[],l=this.signal={aborted:!1,addEventListener:function(a,e){t.push(e)}};this.abort=function(){l.aborted=!0,t.forEach(function(a){return a()})}},C0=c.unstable_scheduleCallback,B0=c.unstable_NormalPriority,Yt={$$typeof:J,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Ui(){return{controller:new q0,data:new Map,refCount:0}}function Ie(t){t.refCount--,t.refCount===0&&C0(B0,function(){t.controller.abort()})}var Pe=null,Hi=0,de=0,ye=null;function Y0(t,l){if(Pe===null){var a=Pe=[];Hi=0,de=Xf(),ye={status:"pending",value:void 0,then:function(e){a.push(e)}}}return Hi++,l.then(Hs,Hs),l}function Hs(){if(--Hi===0&&Pe!==null){ye!==null&&(ye.status="fulfilled");var t=Pe;Pe=null,de=0,ye=null;for(var l=0;ln?n:8;var i=B.T,f={};B.T=f,ki(t,!1,l,a);try{var s=u(),m=B.S;if(m!==null&&m(f,s),s!==null&&typeof s=="object"&&typeof s.then=="function"){var S=X0(s,e);au(t,l,S,rl(t))}else au(t,l,e,rl(t))}catch(O){au(t,l,{then:function(){},status:"rejected",reason:O},rl())}finally{N.p=n,B.T=i}}function Z0(){}function wi(t,l,a,e){if(t.tag!==5)throw Error(r(476));var u=co(t).queue;fo(t,u,l,ct,a===null?Z0:function(){return so(t),a(e)})}function co(t){var l=t.memoizedState;if(l!==null)return l;l={memoizedState:ct,baseState:ct,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ql,lastRenderedState:ct},next:null};var a={};return l.next={memoizedState:a,baseState:a,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ql,lastRenderedState:a},next:null},t.memoizedState=l,t=t.alternate,t!==null&&(t.memoizedState=l),l}function so(t){var l=co(t).next.queue;au(t,l,{},rl())}function Ji(){return kt(Tu)}function oo(){return qt().memoizedState}function ro(){return qt().memoizedState}function V0(t){for(var l=t.return;l!==null;){switch(l.tag){case 24:case 3:var a=rl();t=ra(a);var e=da(l,t,a);e!==null&&(Pt(e,l,a),nu(e,l,a)),l={cache:Ui()},t.payload=l;return}l=l.return}}function K0(t,l,a){var e=rl();a={lane:e,revertLane:0,action:a,hasEagerState:!1,eagerState:null,next:null},vn(t)?mo(l,a):(a=Ei(t,l,a,e),a!==null&&(Pt(a,t,e),vo(a,l,e)))}function yo(t,l,a){var e=rl();au(t,l,a,e)}function au(t,l,a,e){var u={lane:e,revertLane:0,action:a,hasEagerState:!1,eagerState:null,next:null};if(vn(t))mo(l,u);else{var n=t.alternate;if(t.lanes===0&&(n===null||n.lanes===0)&&(n=l.lastRenderedReducer,n!==null))try{var i=l.lastRenderedState,f=n(i,a);if(u.hasEagerState=!0,u.eagerState=f,fl(f,i))return Fu(t,l,u,0),St===null&&Wu(),!1}catch{}finally{}if(a=Ei(t,l,u,e),a!==null)return Pt(a,t,e),vo(a,l,e),!0}return!1}function ki(t,l,a,e){if(e={lane:2,revertLane:Xf(),action:e,hasEagerState:!1,eagerState:null,next:null},vn(t)){if(l)throw Error(r(479))}else l=Ei(t,a,e,2),l!==null&&Pt(l,t,2)}function vn(t){var l=t.alternate;return t===at||l!==null&&l===at}function mo(t,l){me=cn=!0;var a=t.pending;a===null?l.next=l:(l.next=a.next,a.next=l),t.pending=l}function vo(t,l,a){if((a&4194176)!==0){var e=l.lanes;e&=t.pendingLanes,a|=e,l.lanes=a,Ac(t,a)}}var xl={readContext:kt,use:rn,useCallback:Ht,useContext:Ht,useEffect:Ht,useImperativeHandle:Ht,useLayoutEffect:Ht,useInsertionEffect:Ht,useMemo:Ht,useReducer:Ht,useRef:Ht,useState:Ht,useDebugValue:Ht,useDeferredValue:Ht,useTransition:Ht,useSyncExternalStore:Ht,useId:Ht};xl.useCacheRefresh=Ht,xl.useMemoCache=Ht,xl.useHostTransitionStatus=Ht,xl.useFormState=Ht,xl.useActionState=Ht,xl.useOptimistic=Ht;var Ba={readContext:kt,use:rn,useCallback:function(t,l){return ul().memoizedState=[t,l===void 0?null:l],t},useContext:kt,useEffect:Ps,useImperativeHandle:function(t,l,a){a=a!=null?a.concat([t]):null,yn(4194308,4,ao.bind(null,l,t),a)},useLayoutEffect:function(t,l){return yn(4194308,4,t,l)},useInsertionEffect:function(t,l){yn(4,2,t,l)},useMemo:function(t,l){var a=ul();l=l===void 0?null:l;var e=t();if(Ca){la(!0);try{t()}finally{la(!1)}}return a.memoizedState=[e,l],e},useReducer:function(t,l,a){var e=ul();if(a!==void 0){var u=a(l);if(Ca){la(!0);try{a(l)}finally{la(!1)}}}else u=l;return e.memoizedState=e.baseState=u,t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:u},e.queue=t,t=t.dispatch=K0.bind(null,at,t),[e.memoizedState,t]},useRef:function(t){var l=ul();return t={current:t},l.memoizedState=t},useState:function(t){t=Qi(t);var l=t.queue,a=yo.bind(null,at,l);return l.dispatch=a,[t.memoizedState,a]},useDebugValue:Vi,useDeferredValue:function(t,l){var a=ul();return Ki(a,t,l)},useTransition:function(){var t=Qi(!1);return t=fo.bind(null,at,t.queue,!0,!1),ul().memoizedState=t,[!1,t]},useSyncExternalStore:function(t,l,a){var e=at,u=ul();if(ot){if(a===void 0)throw Error(r(407));a=a()}else{if(a=l(),St===null)throw Error(r(349));(st&60)!==0||Ys(e,l,a)}u.memoizedState=a;var n={value:a,getSnapshot:l};return u.queue=n,Ps(js.bind(null,e,n,t),[t]),e.flags|=2048,he(9,Xs.bind(null,e,n,a,l),{destroy:void 0},null),a},useId:function(){var t=ul(),l=St.identifierPrefix;if(ot){var a=jl,e=Xl;a=(e&~(1<<32-il(e)-1)).toString(32)+a,l=":"+l+"R"+a,a=sn++,0 title"))),wt(n,e,a),n[Jt]=t,Xt(n),e=n;break t;case"link":var i=Lr("link","href",u).get(e+(a.href||""));if(i){for(var f=0;f<\/script>",t=t.removeChild(t.firstChild);break;case"select":t=typeof e.is=="string"?u.createElement("select",{is:e.is}):u.createElement("select"),e.multiple?t.multiple=!0:e.size&&(t.size=e.size);break;default:t=typeof e.is=="string"?u.createElement(a,{is:e.is}):u.createElement(a)}}t[Jt]=l,t[al]=e;t:for(u=l.child;u!==null;){if(u.tag===5||u.tag===6)t.appendChild(u.stateNode);else if(u.tag!==4&&u.tag!==27&&u.child!==null){u.child.return=u,u=u.child;continue}if(u===l)break t;for(;u.sibling===null;){if(u.return===null||u.return===l)break t;u=u.return}u.sibling.return=u.return,u=u.sibling}l.stateNode=t;t:switch(wt(t,a,e),a){case"button":case"input":case"select":case"textarea":t=!!e.autoFocus;break t;case"img":t=!0;break t;default:t=!1}t&&kl(l)}}return At(l),l.flags&=-16777217,null;case 6:if(t&&l.stateNode!=null)t.memoizedProps!==e&&kl(l);else{if(typeof e!="string"&&l.stateNode===null)throw Error(r(166));if(t=ta.current,Ke(l)){if(t=l.stateNode,a=l.memoizedProps,e=null,u=It,u!==null)switch(u.tag){case 27:case 5:e=u.memoizedProps}t[Jt]=l,t=!!(t.nodeValue===a||e!==null&&e.suppressHydrationWarning===!0||Ur(t.nodeValue,a)),t||Na(l)}else t=qn(t).createTextNode(e),t[Jt]=l,l.stateNode=t}return At(l),null;case 13:if(e=l.memoizedState,t===null||t.memoizedState!==null&&t.memoizedState.dehydrated!==null){if(u=Ke(l),e!==null&&e.dehydrated!==null){if(t===null){if(!u)throw Error(r(318));if(u=l.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(r(317));u[Jt]=l}else we(),(l.flags&128)===0&&(l.memoizedState=null),l.flags|=4;At(l),u=!1}else Ol!==null&&(Hf(Ol),Ol=null),u=!0;if(!u)return l.flags&256?(Gl(l),l):(Gl(l),null)}if(Gl(l),(l.flags&128)!==0)return l.lanes=a,l;if(a=e!==null,t=t!==null&&t.memoizedState!==null,a){e=l.child,u=null,e.alternate!==null&&e.alternate.memoizedState!==null&&e.alternate.memoizedState.cachePool!==null&&(u=e.alternate.memoizedState.cachePool.pool);var n=null;e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),n!==u&&(e.flags|=2048)}return a!==t&&a&&(l.child.flags|=8192),En(l,l.updateQueue),At(l),null;case 4:return ka(),t===null&&Lf(l.stateNode.containerInfo),At(l),null;case 10:return Vl(l.type),At(l),null;case 19:if(Nt(Bt),u=l.memoizedState,u===null)return At(l),null;if(e=(l.flags&128)!==0,n=u.rendering,n===null)if(e)du(u,!1);else{if(Rt!==0||t!==null&&(t.flags&128)!==0)for(t=l.child;t!==null;){if(n=nn(t),n!==null){for(l.flags|=128,du(u,!1),t=n.updateQueue,l.updateQueue=t,En(l,t),l.subtreeFlags=0,t=a,a=l.child;a!==null;)ur(a,t),a=a.sibling;return zt(Bt,Bt.current&1|2),l.child}t=t.sibling}u.tail!==null&&Ul()>zn&&(l.flags|=128,e=!0,du(u,!1),l.lanes=4194304)}else{if(!e)if(t=nn(n),t!==null){if(l.flags|=128,e=!0,t=t.updateQueue,l.updateQueue=t,En(l,t),du(u,!0),u.tail===null&&u.tailMode==="hidden"&&!n.alternate&&!ot)return At(l),null}else 2*Ul()-u.renderingStartTime>zn&&a!==536870912&&(l.flags|=128,e=!0,du(u,!1),l.lanes=4194304);u.isBackwards?(n.sibling=l.child,l.child=n):(t=u.last,t!==null?t.sibling=n:l.child=n,u.last=n)}return u.tail!==null?(l=u.tail,u.rendering=l,u.tail=l.sibling,u.renderingStartTime=Ul(),l.sibling=null,t=Bt.current,zt(Bt,e?t&1|2:t&1),l):(At(l),null);case 22:case 23:return Gl(l),Ri(),e=l.memoizedState!==null,t!==null?t.memoizedState!==null!==e&&(l.flags|=8192):e&&(l.flags|=8192),e?(a&536870912)!==0&&(l.flags&128)===0&&(At(l),l.subtreeFlags&6&&(l.flags|=8192)):At(l),a=l.updateQueue,a!==null&&En(l,a.retryQueue),a=null,t!==null&&t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(a=t.memoizedState.cachePool.pool),e=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(e=l.memoizedState.cachePool.pool),e!==a&&(l.flags|=2048),t!==null&&Nt(qa),null;case 24:return a=null,t!==null&&(a=t.memoizedState.cache),l.memoizedState.cache!==a&&(l.flags|=2048),Vl(Yt),At(l),null;case 25:return null}throw Error(r(156,l.tag))}function I0(t,l){switch(Ai(l),l.tag){case 1:return t=l.flags,t&65536?(l.flags=t&-65537|128,l):null;case 3:return Vl(Yt),ka(),t=l.flags,(t&65536)!==0&&(t&128)===0?(l.flags=t&-65537|128,l):null;case 26:case 27:case 5:return qu(l),null;case 13:if(Gl(l),t=l.memoizedState,t!==null&&t.dehydrated!==null){if(l.alternate===null)throw Error(r(340));we()}return t=l.flags,t&65536?(l.flags=t&-65537|128,l):null;case 19:return Nt(Bt),null;case 4:return ka(),null;case 10:return Vl(l.type),null;case 22:case 23:return Gl(l),Ri(),t!==null&&Nt(qa),t=l.flags,t&65536?(l.flags=t&-65537|128,l):null;case 24:return Vl(Yt),null;case 25:return null;default:return null}}function fr(t,l){switch(Ai(l),l.tag){case 3:Vl(Yt),ka();break;case 26:case 27:case 5:qu(l);break;case 4:ka();break;case 13:Gl(l);break;case 19:Nt(Bt);break;case 10:Vl(l.type);break;case 22:case 23:Gl(l),Ri(),t!==null&&Nt(qa);break;case 24:Vl(Yt)}}var P0={getCacheForType:function(t){var l=kt(Yt),a=l.data.get(t);return a===void 0&&(a=t(),l.data.set(t,a)),a}},ty=typeof WeakMap=="function"?WeakMap:Map,Ot=0,St=null,nt=null,st=0,Tt=0,ol=null,$l=!1,pe=!1,zf=!1,Wl=0,Rt=0,ga=0,Za=0,Af=0,Tl=0,Se=0,yu=null,ql=null,Of=!1,Df=0,zn=1/0,An=null,ba=null,On=!1,Va=null,mu=0,Mf=0,Rf=null,vu=0,Uf=null;function rl(){if((Ot&2)!==0&&st!==0)return st&-st;if(B.T!==null){var t=de;return t!==0?t:Xf()}return Dc()}function cr(){Tl===0&&(Tl=(st&536870912)===0||ot?Tc():536870912);var t=bl.current;return t!==null&&(t.flags|=32),Tl}function Pt(t,l,a){(t===St&&Tt===2||t.cancelPendingCommit!==null)&&(Te(t,0),Fl(t,st,Tl,!1)),xe(t,a),((Ot&2)===0||t!==St)&&(t===St&&((Ot&2)===0&&(Za|=a),Rt===4&&Fl(t,st,Tl,!1)),Cl(t))}function sr(t,l,a){if((Ot&6)!==0)throw Error(r(327));var e=!a&&(l&60)===0&&(l&t.expiredLanes)===0||Ne(t,l),u=e?ey(t,l):qf(t,l,!0),n=e;do{if(u===0){pe&&!e&&Fl(t,l,0,!1);break}else if(u===6)Fl(t,l,0,!$l);else{if(a=t.current.alternate,n&&!ly(a)){u=qf(t,l,!1),n=!1;continue}if(u===2){if(n=l,t.errorRecoveryDisabledLanes&n)var i=0;else i=t.pendingLanes&-536870913,i=i!==0?i:i&536870912?536870912:0;if(i!==0){l=i;t:{var f=t;u=yu;var s=f.current.memoizedState.isDehydrated;if(s&&(Te(f,i).flags|=256),i=qf(f,i,!1),i!==2){if(zf&&!s){f.errorRecoveryDisabledLanes|=n,Za|=n,u=4;break t}n=ql,ql=u,n!==null&&Hf(n)}u=i}if(n=!1,u!==2)continue}}if(u===1){Te(t,0),Fl(t,l,0,!0);break}t:{switch(e=t,u){case 0:case 1:throw Error(r(345));case 4:if((l&4194176)===l){Fl(e,l,Tl,!$l);break t}break;case 2:ql=null;break;case 3:case 5:break;default:throw Error(r(329))}if(e.finishedWork=a,e.finishedLanes=l,(l&62914560)===l&&(n=Df+300-Ul(),10a?32:a,B.T=null,Va===null)var n=!1;else{a=Rf,Rf=null;var i=Va,f=mu;if(Va=null,mu=0,(Ot&6)!==0)throw Error(r(331));var s=Ot;if(Ot|=4,ar(i.current),Po(i,i.current,f,a),Ot=s,hu(0,!1),nl&&typeof nl.onPostCommitFiberRoot=="function")try{nl.onPostCommitFiberRoot(He,i)}catch{}n=!0}return n}finally{N.p=u,B.T=e,br(t,l)}}return!1}function _r(t,l,a){l=vl(a,l),l=Fi(t.stateNode,l,2),t=da(t,l,2),t!==null&&(xe(t,2),Cl(t))}function _t(t,l,a){if(t.tag===3)_r(t,t,a);else for(;l!==null;){if(l.tag===3){_r(l,t,a);break}else if(l.tag===1){var e=l.stateNode;if(typeof l.type.getDerivedStateFromError=="function"||typeof e.componentDidCatch=="function"&&(ba===null||!ba.has(e))){t=vl(a,t),a=To(2),e=da(l,a,2),e!==null&&(Eo(a,e,l,t),xe(e,2),Cl(e));break}}l=l.return}}function Cf(t,l,a){var e=t.pingCache;if(e===null){e=t.pingCache=new ty;var u=new Set;e.set(l,u)}else u=e.get(l),u===void 0&&(u=new Set,e.set(l,u));u.has(a)||(zf=!0,u.add(a),t=iy.bind(null,t,l,a),l.then(t,t))}function iy(t,l,a){var e=t.pingCache;e!==null&&e.delete(l),t.pingedLanes|=t.suspendedLanes&a,t.warmLanes&=~a,St===t&&(st&a)===a&&(Rt===4||Rt===3&&(st&62914560)===st&&300>Ul()-Df?(Ot&2)===0&&Te(t,0):Af|=a,Se===st&&(Se=0)),Cl(t)}function pr(t,l){l===0&&(l=Ec()),t=ua(t,l),t!==null&&(xe(t,l),Cl(t))}function fy(t){var l=t.memoizedState,a=0;l!==null&&(a=l.retryLane),pr(t,a)}function cy(t,l){var a=0;switch(t.tag){case 13:var e=t.stateNode,u=t.memoizedState;u!==null&&(a=u.retryLane);break;case 19:e=t.stateNode;break;case 22:e=t.stateNode._retryCache;break;default:throw Error(r(314))}e!==null&&e.delete(l),pr(t,a)}function sy(t,l){return In(t,l)}var Rn=null,Ae=null,Bf=!1,Un=!1,Yf=!1,Ka=0;function Cl(t){t!==Ae&&t.next===null&&(Ae===null?Rn=Ae=t:Ae=Ae.next=t),Un=!0,Bf||(Bf=!0,ry(oy))}function hu(t,l){if(!Yf&&Un){Yf=!0;do for(var a=!1,e=Rn;e!==null;){if(t!==0){var u=e.pendingLanes;if(u===0)var n=0;else{var i=e.suspendedLanes,f=e.pingedLanes;n=(1<<31-il(42|t)+1)-1,n&=u&~(i&~f),n=n&201326677?n&201326677|1:n?n|2:0}n!==0&&(a=!0,Er(e,n))}else n=st,n=Xu(e,e===St?n:0),(n&3)===0||Ne(e,n)||(a=!0,Er(e,n));e=e.next}while(a);Yf=!1}}function oy(){Un=Bf=!1;var t=0;Ka!==0&&(_y()&&(t=Ka),Ka=0);for(var l=Ul(),a=null,e=Rn;e!==null;){var u=e.next,n=Sr(e,l);n===0?(e.next=null,a===null?Rn=u:a.next=u,u===null&&(Ae=a)):(a=e,(t!==0||(n&3)!==0)&&(Un=!0)),e=u}hu(t)}function Sr(t,l){for(var a=t.suspendedLanes,e=t.pingedLanes,u=t.expirationTimes,n=t.pendingLanes&-62914561;0"u"?null:document;function Xr(t,l,a){var e=De;if(e&&typeof l=="string"&&l){var u=yl(l);u='link[rel="'+t+'"][href="'+u+'"]',typeof a=="string"&&(u+='[crossorigin="'+a+'"]'),Yr.has(u)||(Yr.add(u),t={rel:t,crossOrigin:a,href:l},e.querySelector(u)===null&&(l=e.createElement("link"),wt(l,"link",t),Xt(l),e.head.appendChild(l)))}}function Dy(t){Il.D(t),Xr("dns-prefetch",t,null)}function My(t,l){Il.C(t,l),Xr("preconnect",t,l)}function Ry(t,l,a){Il.L(t,l,a);var e=De;if(e&&t&&l){var u='link[rel="preload"][as="'+yl(l)+'"]';l==="image"&&a&&a.imageSrcSet?(u+='[imagesrcset="'+yl(a.imageSrcSet)+'"]',typeof a.imageSizes=="string"&&(u+='[imagesizes="'+yl(a.imageSizes)+'"]')):u+='[href="'+yl(t)+'"]';var n=u;switch(l){case"style":n=Me(t);break;case"script":n=Re(t)}El.has(n)||(t=I({rel:"preload",href:l==="image"&&a&&a.imageSrcSet?void 0:t,as:l},a),El.set(n,t),e.querySelector(u)!==null||l==="style"&&e.querySelector(_u(n))||l==="script"&&e.querySelector(pu(n))||(l=e.createElement("link"),wt(l,"link",t),Xt(l),e.head.appendChild(l)))}}function Uy(t,l){Il.m(t,l);var a=De;if(a&&t){var e=l&&typeof l.as=="string"?l.as:"script",u='link[rel="modulepreload"][as="'+yl(e)+'"][href="'+yl(t)+'"]',n=u;switch(e){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":n=Re(t)}if(!El.has(n)&&(t=I({rel:"modulepreload",href:t},l),El.set(n,t),a.querySelector(u)===null)){switch(e){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(a.querySelector(pu(n)))return}e=a.createElement("link"),wt(e,"link",t),Xt(e),a.head.appendChild(e)}}}function Hy(t,l,a){Il.S(t,l,a);var e=De;if(e&&t){var u=Fa(e).hoistableStyles,n=Me(t);l=l||"default";var i=u.get(n);if(!i){var f={loading:0,preload:null};if(i=e.querySelector(_u(n)))f.loading=5;else{t=I({rel:"stylesheet",href:t,"data-precedence":l},a),(a=El.get(n))&&Ff(t,a);var s=i=e.createElement("link");Xt(s),wt(s,"link",t),s._p=new Promise(function(m,S){s.onload=m,s.onerror=S}),s.addEventListener("load",function(){f.loading|=1}),s.addEventListener("error",function(){f.loading|=2}),f.loading|=4,Bn(i,l,e)}i={type:"stylesheet",instance:i,count:1,state:f},u.set(n,i)}}}function Ny(t,l){Il.X(t,l);var a=De;if(a&&t){var e=Fa(a).hoistableScripts,u=Re(t),n=e.get(u);n||(n=a.querySelector(pu(u)),n||(t=I({src:t,async:!0},l),(l=El.get(u))&&If(t,l),n=a.createElement("script"),Xt(n),wt(n,"link",t),a.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},e.set(u,n))}}function xy(t,l){Il.M(t,l);var a=De;if(a&&t){var e=Fa(a).hoistableScripts,u=Re(t),n=e.get(u);n||(n=a.querySelector(pu(u)),n||(t=I({src:t,async:!0,type:"module"},l),(l=El.get(u))&&If(t,l),n=a.createElement("script"),Xt(n),wt(n,"link",t),a.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},e.set(u,n))}}function jr(t,l,a,e){var u=(u=ta.current)?Cn(u):null;if(!u)throw Error(r(446));switch(t){case"meta":case"title":return null;case"style":return typeof a.precedence=="string"&&typeof a.href=="string"?(l=Me(a.href),a=Fa(u).hoistableStyles,e=a.get(l),e||(e={type:"style",instance:null,count:0,state:null},a.set(l,e)),e):{type:"void",instance:null,count:0,state:null};case"link":if(a.rel==="stylesheet"&&typeof a.href=="string"&&typeof a.precedence=="string"){t=Me(a.href);var n=Fa(u).hoistableStyles,i=n.get(t);if(i||(u=u.ownerDocument||u,i={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},n.set(t,i),(n=u.querySelector(_u(t)))&&!n._p&&(i.instance=n,i.state.loading=5),El.has(t)||(a={rel:"preload",as:"style",href:a.href,crossOrigin:a.crossOrigin,integrity:a.integrity,media:a.media,hrefLang:a.hrefLang,referrerPolicy:a.referrerPolicy},El.set(t,a),n||qy(u,t,a,i.state))),l&&e===null)throw Error(r(528,""));return i}if(l&&e!==null)throw Error(r(529,""));return null;case"script":return l=a.async,a=a.src,typeof a=="string"&&l&&typeof l!="function"&&typeof l!="symbol"?(l=Re(a),a=Fa(u).hoistableScripts,e=a.get(l),e||(e={type:"script",instance:null,count:0,state:null},a.set(l,e)),e):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,t))}}function Me(t){return'href="'+yl(t)+'"'}function _u(t){return'link[rel="stylesheet"]['+t+"]"}function Gr(t){return I({},t,{"data-precedence":t.precedence,precedence:null})}function qy(t,l,a,e){t.querySelector('link[rel="preload"][as="style"]['+l+"]")?e.loading=1:(l=t.createElement("link"),e.preload=l,l.addEventListener("load",function(){return e.loading|=1}),l.addEventListener("error",function(){return e.loading|=2}),wt(l,"link",a),Xt(l),t.head.appendChild(l))}function Re(t){return'[src="'+yl(t)+'"]'}function pu(t){return"script[async]"+t}function Qr(t,l,a){if(l.count++,l.instance===null)switch(l.type){case"style":var e=t.querySelector('style[data-href~="'+yl(a.href)+'"]');if(e)return l.instance=e,Xt(e),e;var u=I({},a,{"data-href":a.href,"data-precedence":a.precedence,href:null,precedence:null});return e=(t.ownerDocument||t).createElement("style"),Xt(e),wt(e,"style",u),Bn(e,a.precedence,t),l.instance=e;case"stylesheet":u=Me(a.href);var n=t.querySelector(_u(u));if(n)return l.state.loading|=4,l.instance=n,Xt(n),n;e=Gr(a),(u=El.get(u))&&Ff(e,u),n=(t.ownerDocument||t).createElement("link"),Xt(n);var i=n;return i._p=new Promise(function(f,s){i.onload=f,i.onerror=s}),wt(n,"link",e),l.state.loading|=4,Bn(n,a.precedence,t),l.instance=n;case"script":return n=Re(a.src),(u=t.querySelector(pu(n)))?(l.instance=u,Xt(u),u):(e=a,(u=El.get(n))&&(e=I({},a),If(e,u)),t=t.ownerDocument||t,u=t.createElement("script"),Xt(u),wt(u,"link",e),t.head.appendChild(u),l.instance=u);case"void":return null;default:throw Error(r(443,l.type))}else l.type==="stylesheet"&&(l.state.loading&4)===0&&(e=l.instance,l.state.loading|=4,Bn(e,a.precedence,t));return l.instance}function Bn(t,l,a){for(var e=a.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),u=e.length?e[e.length-1]:null,n=u,i=0;i title"):null)}function Cy(t,l,a){if(a===1||l.itemProp!=null)return!1;switch(t){case"meta":case"title":return!0;case"style":if(typeof l.precedence!="string"||typeof l.href!="string"||l.href==="")break;return!0;case"link":if(typeof l.rel!="string"||typeof l.href!="string"||l.href===""||l.onLoad||l.onError)break;switch(l.rel){case"stylesheet":return t=l.disabled,typeof l.precedence=="string"&&t==null;default:return!0}case"script":if(l.async&&typeof l.async!="function"&&typeof l.async!="symbol"&&!l.onLoad&&!l.onError&&l.src&&typeof l.src=="string")return!0}return!1}function Vr(t){return!(t.type==="stylesheet"&&(t.state.loading&3)===0)}var Su=null;function By(){}function Yy(t,l,a){if(Su===null)throw Error(r(475));var e=Su;if(l.type==="stylesheet"&&(typeof a.media!="string"||matchMedia(a.media).matches!==!1)&&(l.state.loading&4)===0){if(l.instance===null){var u=Me(a.href),n=t.querySelector(_u(u));if(n){t=n._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=Xn.bind(e),t.then(e,e)),l.state.loading|=4,l.instance=n,Xt(n);return}n=t.ownerDocument||t,a=Gr(a),(u=El.get(u))&&Ff(a,u),n=n.createElement("link"),Xt(n);var i=n;i._p=new Promise(function(f,s){i.onload=f,i.onerror=s}),wt(n,"link",a),l.instance=n}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(l,t),(t=l.state.preload)&&(l.state.loading&3)===0&&(e.count++,l=Xn.bind(e),t.addEventListener("load",l),t.addEventListener("error",l))}}function Xy(){if(Su===null)throw Error(r(475));var t=Su;return t.stylesheets&&t.count===0&&Pf(t,t.stylesheets),0"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(c)}catch(o){console.error(o)}}return c(),fc.exports=am(),fc.exports}var um=em();const nm="modulepreload",im=function(c){return"/root/assistant-base-app/"+c},dd={},gd=function(o,v,r){let E=Promise.resolve();if(v&&v.length>0){document.getElementsByTagName("link");const A=document.querySelector("meta[property=csp-nonce]"),H=A?.nonce||A?.getAttribute("nonce");E=Promise.allSettled(v.map(T=>{if(T=im(T),T in dd)return;dd[T]=!0;const b=T.endsWith(".css"),R=b?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${T}"]${R}`))return;const C=document.createElement("link");if(C.rel=b?"stylesheet":nm,b||(C.as="script"),C.crossOrigin="",C.href=T,H&&C.setAttribute("nonce",H),document.head.appendChild(C),b)return new Promise((Q,J)=>{C.addEventListener("load",Q),C.addEventListener("error",()=>J(new Error(`Unable to preload CSS for ${T}`)))})}))}function D(A){const H=new Event("vite:preloadError",{cancelable:!0});if(H.payload=A,window.dispatchEvent(H),!H.defaultPrevented)throw A}return E.then(A=>{for(const H of A||[])H.status==="rejected"&&D(H.reason);return o().catch(D)})};var Et=gc();const ht=ky(Et),fm="/root/assistant-base-app";function bd(c){var o,v,r="";if(typeof c=="string"||typeof c=="number")r+=c;else if(typeof c=="object")if(Array.isArray(c)){var E=c.length;for(o=0;o"u")return;let o=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css",o.firstChild?o.insertBefore(v,o.firstChild):o.appendChild(v),v.styleSheet?v.styleSheet.cssText=c:v.appendChild(document.createTextNode(c))}cm(`:root{--toastify-color-light: #fff;--toastify-color-dark: #121212;--toastify-color-info: #3498db;--toastify-color-success: #07bc0c;--toastify-color-warning: #f1c40f;--toastify-color-error: hsl(6, 78%, 57%);--toastify-color-transparent: rgba(255, 255, 255, .7);--toastify-icon-color-info: var(--toastify-color-info);--toastify-icon-color-success: var(--toastify-color-success);--toastify-icon-color-warning: var(--toastify-color-warning);--toastify-icon-color-error: var(--toastify-color-error);--toastify-container-width: fit-content;--toastify-toast-width: 320px;--toastify-toast-offset: 16px;--toastify-toast-top: max(var(--toastify-toast-offset), env(safe-area-inset-top));--toastify-toast-right: max(var(--toastify-toast-offset), env(safe-area-inset-right));--toastify-toast-left: max(var(--toastify-toast-offset), env(safe-area-inset-left));--toastify-toast-bottom: max(var(--toastify-toast-offset), env(safe-area-inset-bottom));--toastify-toast-background: #fff;--toastify-toast-padding: 14px;--toastify-toast-min-height: 64px;--toastify-toast-max-height: 800px;--toastify-toast-bd-radius: 6px;--toastify-toast-shadow: 0px 4px 12px rgba(0, 0, 0, .1);--toastify-font-family: sans-serif;--toastify-z-index: 9999;--toastify-text-color-light: #757575;--toastify-text-color-dark: #fff;--toastify-text-color-info: #fff;--toastify-text-color-success: #fff;--toastify-text-color-warning: #fff;--toastify-text-color-error: #fff;--toastify-spinner-color: #616161;--toastify-spinner-color-empty-area: #e0e0e0;--toastify-color-progress-light: linear-gradient(to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55);--toastify-color-progress-dark: #bb86fc;--toastify-color-progress-info: var(--toastify-color-info);--toastify-color-progress-success: var(--toastify-color-success);--toastify-color-progress-warning: var(--toastify-color-warning);--toastify-color-progress-error: var(--toastify-color-error);--toastify-color-progress-bgo: .2}.Toastify__toast-container{z-index:var(--toastify-z-index);-webkit-transform:translate3d(0,0,var(--toastify-z-index));position:fixed;width:var(--toastify-container-width);box-sizing:border-box;color:#fff;display:flex;flex-direction:column}.Toastify__toast-container--top-left{top:var(--toastify-toast-top);left:var(--toastify-toast-left)}.Toastify__toast-container--top-center{top:var(--toastify-toast-top);left:50%;transform:translate(-50%);align-items:center}.Toastify__toast-container--top-right{top:var(--toastify-toast-top);right:var(--toastify-toast-right);align-items:end}.Toastify__toast-container--bottom-left{bottom:var(--toastify-toast-bottom);left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{bottom:var(--toastify-toast-bottom);left:50%;transform:translate(-50%);align-items:center}.Toastify__toast-container--bottom-right{bottom:var(--toastify-toast-bottom);right:var(--toastify-toast-right);align-items:end}.Toastify__toast{--y: 0;position:relative;touch-action:none;width:var(--toastify-toast-width);min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:var(--toastify-toast-padding);border-radius:var(--toastify-toast-bd-radius);box-shadow:var(--toastify-toast-shadow);max-height:var(--toastify-toast-max-height);font-family:var(--toastify-font-family);z-index:0;display:flex;flex:1 auto;align-items:center;word-break:break-word}@media only screen and (max-width: 480px){.Toastify__toast-container{width:100vw;left:env(safe-area-inset-left);margin:0}.Toastify__toast-container--top-left,.Toastify__toast-container--top-center,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translate(0)}.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translate(0)}.Toastify__toast-container--rtl{right:env(safe-area-inset-right);left:initial}.Toastify__toast{--toastify-toast-width: 100%;margin-bottom:0;border-radius:0}}.Toastify__toast-container[data-stacked=true]{width:var(--toastify-toast-width)}.Toastify__toast--stacked{position:absolute;width:100%;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s}.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body,.Toastify__toast--stacked[data-collapsed] .Toastify__close-button{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{content:"";position:absolute;left:0;right:0;height:calc(var(--g) * 1px);bottom:100%}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{content:"";position:absolute;left:0;right:0;bottom:0;height:100%;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-icon{margin-inline-end:10px;width:22px;flex-shrink:0;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.5s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--light,.Toastify__toast-theme--colored.Toastify__toast--default{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--toastify-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;position:absolute;top:6px;right:6px;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;z-index:1}.Toastify__toast--rtl .Toastify__close-button{left:6px;right:unset}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:hover,.Toastify__close-button:focus{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:100%;z-index:1;opacity:.7;transform-origin:left}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:initial;transform-origin:right;border-bottom-left-radius:initial}.Toastify__progress-bar--wrp{position:absolute;overflow:hidden;bottom:0;left:0;width:100%;height:5px;border-bottom-left-radius:var(--toastify-toast-bd-radius);border-bottom-right-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{opacity:var(--toastify-color-progress-bgo);width:100%;height:100%}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border:2px solid;border-radius:100%;border-color:var(--toastify-spinner-color-empty-area);border-right-color:var(--toastify-spinner-color);animation:Toastify__spin .65s linear infinite}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--top-left,.Toastify__bounce-enter--bottom-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--top-right,.Toastify__bounce-enter--bottom-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--top-left,.Toastify__bounce-exit--bottom-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--top-right,.Toastify__bounce-exit--bottom-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg);opacity:1}to{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg);opacity:0}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(110%,var(--y),0)}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(-110%,var(--y),0)}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--top-left,.Toastify__slide-enter--bottom-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--top-right,.Toastify__slide-enter--bottom-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--top-left,.Toastify__slide-exit--bottom-left{animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-right,.Toastify__slide-exit--bottom-right{animation-name:Toastify__slideOutRight;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown;animation-timing-function:ease-in;animation-duration:.3s}@keyframes Toastify__spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}} +`);var Uu=c=>typeof c=="number"&&!isNaN(c),Ja=c=>typeof c=="string",Pl=c=>typeof c=="function",sm=c=>Ja(c)||Uu(c),dc=c=>Ja(c)||Pl(c)?c:null,om=(c,o)=>c===!1||Uu(c)&&c>0?c:o,yc=c=>Et.isValidElement(c)||Ja(c)||Pl(c)||Uu(c);function rm(c,o,v=300){let{scrollHeight:r,style:E}=c;requestAnimationFrame(()=>{E.minHeight="initial",E.height=r+"px",E.transition=`all ${v}ms`,requestAnimationFrame(()=>{E.height="0",E.padding="0",E.margin="0",setTimeout(o,v)})})}function dm({enter:c,exit:o,appendPosition:v=!1,collapse:r=!0,collapseDuration:E=300}){return function({children:D,position:A,preventExitTransition:H,done:T,nodeRef:b,isIn:R,playToast:C}){let Q=v?`${c}--${A}`:c,J=v?`${o}--${A}`:o,dt=Et.useRef(0);return Et.useLayoutEffect(()=>{let et=b.current,W=Q.split(" "),P=x=>{x.target===b.current&&(C(),et.removeEventListener("animationend",P),et.removeEventListener("animationcancel",P),dt.current===0&&x.type!=="animationcancel"&&et.classList.remove(...W))};et.classList.add(...W),et.addEventListener("animationend",P),et.addEventListener("animationcancel",P)},[]),Et.useEffect(()=>{let et=b.current,W=()=>{et.removeEventListener("animationend",W),r?rm(et,T,E):T()};R||(H?W():(dt.current=1,et.className+=` ${J}`,et.addEventListener("animationend",W)))},[R]),ht.createElement(ht.Fragment,null,D)}}function yd(c,o){return{content:_d(c.content,c.props),containerId:c.props.containerId,id:c.props.toastId,theme:c.props.theme,type:c.props.type,data:c.props.data||{},isLoading:c.props.isLoading,icon:c.props.icon,reason:c.removalReason,status:o}}function _d(c,o,v=!1){return Et.isValidElement(c)&&!Ja(c.type)?Et.cloneElement(c,{closeToast:o.closeToast,toastProps:o,data:o.data,isPaused:v}):Pl(c)?c({closeToast:o.closeToast,toastProps:o,data:o.data,isPaused:v}):c}function ym({closeToast:c,theme:o,ariaLabel:v="close"}){return ht.createElement("button",{className:`Toastify__close-button Toastify__close-button--${o}`,type:"button",onClick:r=>{r.stopPropagation(),c(!0)},"aria-label":v},ht.createElement("svg",{"aria-hidden":"true",viewBox:"0 0 14 16"},ht.createElement("path",{fillRule:"evenodd",d:"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z"})))}function mm({delay:c,isRunning:o,closeToast:v,type:r="default",hide:E,className:D,controlledProgress:A,progress:H,rtl:T,isIn:b,theme:R}){let C=E||A&&H===0,Q={animationDuration:`${c}ms`,animationPlayState:o?"running":"paused"};A&&(Q.transform=`scaleX(${H})`);let J=wa("Toastify__progress-bar",A?"Toastify__progress-bar--controlled":"Toastify__progress-bar--animated",`Toastify__progress-bar-theme--${R}`,`Toastify__progress-bar--${r}`,{"Toastify__progress-bar--rtl":T}),dt=Pl(D)?D({rtl:T,type:r,defaultClassName:J}):wa(J,D),et={[A&&H>=1?"onTransitionEnd":"onAnimationEnd"]:A&&H<1?null:()=>{b&&v()}};return ht.createElement("div",{className:"Toastify__progress-bar--wrp","data-hidden":C},ht.createElement("div",{className:`Toastify__progress-bar--bg Toastify__progress-bar-theme--${R} Toastify__progress-bar--${r}`}),ht.createElement("div",{role:"progressbar","aria-hidden":C?"true":"false","aria-label":"notification timer",className:dt,style:Q,...et}))}var vm=1,pd=()=>`${vm++}`;function hm(c,o,v){let r=1,E=0,D=[],A=[],H=o,T=new Map,b=new Set,R=x=>(b.add(x),()=>b.delete(x)),C=()=>{A=Array.from(T.values()),b.forEach(x=>x())},Q=({containerId:x,toastId:X,updateId:$})=>{let L=x?x!==c:c!==1,vt=T.has(X)&&$==null;return L||vt},J=(x,X)=>{T.forEach($=>{var L;(X==null||X===$.props.toastId)&&((L=$.toggle)==null||L.call($,x))})},dt=x=>{var X,$;($=(X=x.props)==null?void 0:X.onClose)==null||$.call(X,x.removalReason),x.isActive=!1},et=x=>{if(x==null)T.forEach(dt);else{let X=T.get(x);X&&dt(X)}C()},W=()=>{E-=D.length,D=[]},P=x=>{var X,$;let{toastId:L,updateId:vt}=x.props,tt=vt==null;x.staleId&&T.delete(x.staleId),x.isActive=!0,T.set(L,x),C(),v(yd(x,tt?"added":"updated")),tt&&(($=(X=x.props).onOpen)==null||$.call(X))};return{id:c,props:H,observe:R,toggle:J,removeToast:et,toasts:T,clearQueue:W,buildToast:(x,X)=>{if(Q(X))return;let{toastId:$,updateId:L,data:vt,staleId:tt,delay:it}=X,B=L==null;B&&E++;let I={...H,style:H.toastStyle,key:r++,...Object.fromEntries(Object.entries(X).filter(([Lt,Wt])=>Wt!=null)),toastId:$,updateId:L,data:vt,isIn:!1,className:dc(X.className||H.toastClassName),progressClassName:dc(X.progressClassName||H.progressClassName),autoClose:X.isLoading?!1:om(X.autoClose,H.autoClose),closeToast(Lt){T.get($).removalReason=Lt,et($)},deleteToast(){let Lt=T.get($);if(Lt!=null){if(v(yd(Lt,"removed")),T.delete($),E--,E<0&&(E=0),D.length>0){P(D.shift());return}C()}}};I.closeButton=H.closeButton,X.closeButton===!1||yc(X.closeButton)?I.closeButton=X.closeButton:X.closeButton===!0&&(I.closeButton=yc(H.closeButton)?H.closeButton:!0);let Dt={content:x,props:I,staleId:tt};H.limit&&H.limit>0&&E>H.limit&&B?D.push(Dt):Uu(it)?setTimeout(()=>{P(Dt)},it):P(Dt)},setProps(x){H=x},setToggle:(x,X)=>{let $=T.get(x);$&&($.toggle=X)},isToastActive:x=>{var X;return(X=T.get(x))==null?void 0:X.isActive},getSnapshot:()=>A}}var ll=new Map,Ru=[],mc=new Set,gm=c=>mc.forEach(o=>o(c)),Sd=()=>ll.size>0;function bm(){Ru.forEach(c=>Ed(c.content,c.options)),Ru=[]}var _m=(c,{containerId:o})=>{var v;return(v=ll.get(o||1))==null?void 0:v.toasts.get(c)};function Td(c,o){var v;if(o)return!!((v=ll.get(o))!=null&&v.isToastActive(c));let r=!1;return ll.forEach(E=>{E.isToastActive(c)&&(r=!0)}),r}function pm(c){if(!Sd()){Ru=Ru.filter(o=>c!=null&&o.options.toastId!==c);return}if(c==null||sm(c))ll.forEach(o=>{o.removeToast(c)});else if(c&&("containerId"in c||"id"in c)){let o=ll.get(c.containerId);o?o.removeToast(c.id):ll.forEach(v=>{v.removeToast(c.id)})}}var Sm=(c={})=>{ll.forEach(o=>{o.props.limit&&(!c.containerId||o.id===c.containerId)&&o.clearQueue()})};function Ed(c,o){yc(c)&&(Sd()||Ru.push({content:c,options:o}),ll.forEach(v=>{v.buildToast(c,o)}))}function Tm(c){var o;(o=ll.get(c.containerId||1))==null||o.setToggle(c.id,c.fn)}function zd(c,o){ll.forEach(v=>{(o==null||!(o!=null&&o.containerId)||o?.containerId===v.id)&&v.toggle(c,o?.id)})}function Em(c){let o=c.containerId||1;return{subscribe(v){let r=hm(o,c,gm);ll.set(o,r);let E=r.observe(v);return bm(),()=>{E(),ll.delete(o)}},setProps(v){var r;(r=ll.get(o))==null||r.setProps(v)},getSnapshot(){var v;return(v=ll.get(o))==null?void 0:v.getSnapshot()}}}function zm(c){return mc.add(c),()=>{mc.delete(c)}}function Am(c){return c&&(Ja(c.toastId)||Uu(c.toastId))?c.toastId:pd()}function Hu(c,o){return Ed(c,o),o.toastId}function Jn(c,o){return{...o,type:o&&o.type||c,toastId:Am(o)}}function kn(c){return(o,v)=>Hu(o,Jn(c,v))}function yt(c,o){return Hu(c,Jn("default",o))}yt.loading=(c,o)=>Hu(c,Jn("default",{isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1,...o}));function Om(c,{pending:o,error:v,success:r},E){let D;o&&(D=Ja(o)?yt.loading(o,E):yt.loading(o.render,{...E,...o}));let A={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null},H=(b,R,C)=>{if(R==null){yt.dismiss(D);return}let Q={type:b,...A,...E,data:C},J=Ja(R)?{render:R}:R;return D?yt.update(D,{...Q,...J}):yt(J.render,{...Q,...J}),C},T=Pl(c)?c():c;return T.then(b=>H("success",r,b)).catch(b=>H("error",v,b)),T}yt.promise=Om;yt.success=kn("success");yt.info=kn("info");yt.error=kn("error");yt.warning=kn("warning");yt.warn=yt.warning;yt.dark=(c,o)=>Hu(c,Jn("default",{theme:"dark",...o}));function Dm(c){pm(c)}yt.dismiss=Dm;yt.clearWaitingQueue=Sm;yt.isActive=Td;yt.update=(c,o={})=>{let v=_m(c,o);if(v){let{props:r,content:E}=v,D={delay:100,...r,...o,toastId:o.toastId||c,updateId:pd()};D.toastId!==c&&(D.staleId=c);let A=D.render||E;delete D.render,Hu(A,D)}};yt.done=c=>{yt.update(c,{progress:1})};yt.onChange=zm;yt.play=c=>zd(!0,c);yt.pause=c=>zd(!1,c);function Mm(c){var o;let{subscribe:v,getSnapshot:r,setProps:E}=Et.useRef(Em(c)).current;E(c);let D=(o=Et.useSyncExternalStore(v,r,r))==null?void 0:o.slice();function A(H){if(!D)return[];let T=new Map;return c.newestOnTop&&D.reverse(),D.forEach(b=>{let{position:R}=b.props;T.has(R)||T.set(R,[]),T.get(R).push(b)}),Array.from(T,b=>H(b[0],b[1]))}return{getToastToRender:A,isToastActive:Td,count:D?.length}}function Rm(c){let[o,v]=Et.useState(!1),[r,E]=Et.useState(!1),D=Et.useRef(null),A=Et.useRef({start:0,delta:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,didMove:!1}).current,{autoClose:H,pauseOnHover:T,closeToast:b,onClick:R,closeOnClick:C}=c;Tm({id:c.toastId,containerId:c.containerId,fn:v}),Et.useEffect(()=>{if(c.pauseOnFocusLoss)return Q(),()=>{J()}},[c.pauseOnFocusLoss]);function Q(){document.hasFocus()||P(),window.addEventListener("focus",W),window.addEventListener("blur",P)}function J(){window.removeEventListener("focus",W),window.removeEventListener("blur",P)}function dt(tt){if(c.draggable===!0||c.draggable===tt.pointerType){x();let it=D.current;A.canCloseOnClick=!0,A.canDrag=!0,it.style.transition="none",c.draggableDirection==="x"?(A.start=tt.clientX,A.removalDistance=it.offsetWidth*(c.draggablePercent/100)):(A.start=tt.clientY,A.removalDistance=it.offsetHeight*(c.draggablePercent===80?c.draggablePercent*1.5:c.draggablePercent)/100)}}function et(tt){let{top:it,bottom:B,left:I,right:Dt}=D.current.getBoundingClientRect();tt.nativeEvent.type!=="touchend"&&c.pauseOnHover&&tt.clientX>=I&&tt.clientX<=Dt&&tt.clientY>=it&&tt.clientY<=B?P():W()}function W(){v(!0)}function P(){v(!1)}function x(){A.didMove=!1,document.addEventListener("pointermove",$),document.addEventListener("pointerup",L)}function X(){document.removeEventListener("pointermove",$),document.removeEventListener("pointerup",L)}function $(tt){let it=D.current;if(A.canDrag&&it){A.didMove=!0,o&&P(),c.draggableDirection==="x"?A.delta=tt.clientX-A.start:A.delta=tt.clientY-A.start,A.start!==tt.clientX&&(A.canCloseOnClick=!1);let B=c.draggableDirection==="x"?`${A.delta}px, var(--y)`:`0, calc(${A.delta}px + var(--y))`;it.style.transform=`translate3d(${B},0)`,it.style.opacity=`${1-Math.abs(A.delta/A.removalDistance)}`}}function L(){X();let tt=D.current;if(A.canDrag&&A.didMove&&tt){if(A.canDrag=!1,Math.abs(A.delta)>A.removalDistance){E(!0),c.closeToast(!0),c.collapseAll();return}tt.style.transition="transform 0.2s, opacity 0.2s",tt.style.removeProperty("transform"),tt.style.removeProperty("opacity")}}let vt={onPointerDown:dt,onPointerUp:et};return H&&T&&(vt.onMouseEnter=P,c.stacked||(vt.onMouseLeave=W)),C&&(vt.onClick=tt=>{R&&R(tt),A.canCloseOnClick&&b(!0)}),{playToast:W,pauseToast:P,isRunning:o,preventExitTransition:r,toastRef:D,eventHandlers:vt}}var Um=typeof window<"u"?Et.useLayoutEffect:Et.useEffect,$n=({theme:c,type:o,isLoading:v,...r})=>ht.createElement("svg",{viewBox:"0 0 24 24",width:"100%",height:"100%",fill:c==="colored"?"currentColor":`var(--toastify-icon-color-${o})`,...r});function Hm(c){return ht.createElement($n,{...c},ht.createElement("path",{d:"M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z"}))}function Nm(c){return ht.createElement($n,{...c},ht.createElement("path",{d:"M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z"}))}function xm(c){return ht.createElement($n,{...c},ht.createElement("path",{d:"M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z"}))}function qm(c){return ht.createElement($n,{...c},ht.createElement("path",{d:"M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z"}))}function Cm(){return ht.createElement("div",{className:"Toastify__spinner"})}var vc={info:Nm,warning:Hm,success:xm,error:qm,spinner:Cm},Bm=c=>c in vc;function Ym({theme:c,type:o,isLoading:v,icon:r}){let E=null,D={theme:c,type:o};return r===!1||(Pl(r)?E=r({...D,isLoading:v}):Et.isValidElement(r)?E=Et.cloneElement(r,D):v?E=vc.spinner():Bm(o)&&(E=vc[o](D))),E}var Xm=c=>{let{isRunning:o,preventExitTransition:v,toastRef:r,eventHandlers:E,playToast:D}=Rm(c),{closeButton:A,children:H,autoClose:T,onClick:b,type:R,hideProgressBar:C,closeToast:Q,transition:J,position:dt,className:et,style:W,progressClassName:P,updateId:x,role:X,progress:$,rtl:L,toastId:vt,deleteToast:tt,isIn:it,isLoading:B,closeOnClick:I,theme:Dt,ariaLabel:Lt}=c,Wt=wa("Toastify__toast",`Toastify__toast-theme--${Dt}`,`Toastify__toast--${R}`,{"Toastify__toast--rtl":L},{"Toastify__toast--close-on-click":I}),zl=Pl(et)?et({rtl:L,position:dt,type:R,defaultClassName:Wt}):wa(Wt,et),Zt=Ym(c),U=!!$||!T,w={closeToast:Q,type:R,theme:Dt},G=null;return A===!1||(Pl(A)?G=A(w):Et.isValidElement(A)?G=Et.cloneElement(A,w):G=ym(w)),ht.createElement(J,{isIn:it,done:tt,position:dt,preventExitTransition:v,nodeRef:r,playToast:D},ht.createElement("div",{id:vt,tabIndex:0,onClick:b,"data-in":it,className:zl,...E,style:W,ref:r,...it&&{role:X,"aria-label":Lt}},Zt!=null&&ht.createElement("div",{className:wa("Toastify__toast-icon",{"Toastify--animate-icon Toastify__zoom-enter":!B})},Zt),_d(H,c,!o),G,!c.customProgressBar&&ht.createElement(mm,{...x&&!U?{key:`p-${x}`}:{},rtl:L,theme:Dt,delay:T,isRunning:o,isIn:it,closeToast:Q,hide:C,type:R,className:P,controlledProgress:U,progress:$||0})))},jm=(c,o=!1)=>({enter:`Toastify--animate Toastify__${c}-enter`,exit:`Toastify--animate Toastify__${c}-exit`,appendPosition:o}),Gm=dm(jm("bounce",!0)),Qm={position:"top-right",transition:Gm,autoClose:5e3,closeButton:!0,pauseOnHover:!0,pauseOnFocusLoss:!0,draggable:"touch",draggablePercent:80,draggableDirection:"x",role:"alert",theme:"light","aria-label":"Notifications Alt+T",hotKeys:c=>c.altKey&&c.code==="KeyT"};function Lm(c){let o={...Qm,...c},v=c.stacked,[r,E]=Et.useState(!0),D=Et.useRef(null),{getToastToRender:A,isToastActive:H,count:T}=Mm(o),{className:b,style:R,rtl:C,containerId:Q,hotKeys:J}=o;function dt(W){let P=wa("Toastify__toast-container",`Toastify__toast-container--${W}`,{"Toastify__toast-container--rtl":C});return Pl(b)?b({position:W,rtl:C,defaultClassName:P}):wa(P,dc(b))}function et(){v&&(E(!0),yt.play())}return Um(()=>{var W;if(v){let P=D.current.querySelectorAll('[data-in="true"]'),x=12,X=(W=o.position)==null?void 0:W.includes("top"),$=0,L=0;Array.from(P).reverse().forEach((vt,tt)=>{let it=vt;it.classList.add("Toastify__toast--stacked"),tt>0&&(it.dataset.collapsed=`${r}`),it.dataset.pos||(it.dataset.pos=X?"top":"bot");let B=$*(r?.2:1)+(r?0:x*tt);it.style.setProperty("--y",`${X?B:B*-1}px`),it.style.setProperty("--g",`${x}`),it.style.setProperty("--s",`${1-(r?L:0)}`),$+=it.offsetHeight,L+=.025})}},[r,T,v]),Et.useEffect(()=>{function W(P){var x;let X=D.current;J(P)&&((x=X.querySelector('[tabIndex="0"]'))==null||x.focus(),E(!1),yt.pause()),P.key==="Escape"&&(document.activeElement===X||X!=null&&X.contains(document.activeElement))&&(E(!0),yt.play())}return document.addEventListener("keydown",W),()=>{document.removeEventListener("keydown",W)}},[J]),ht.createElement("section",{ref:D,className:"Toastify",id:Q,onMouseEnter:()=>{v&&(E(!1),yt.pause())},onMouseLeave:et,"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text","aria-label":o["aria-label"]},A((W,P)=>{let x=P.length?{...R}:{...R,pointerEvents:"none"};return ht.createElement("div",{tabIndex:-1,className:dt(W),"data-stacked":v,style:x,key:`c-${W}`},P.map(({content:X,props:$})=>ht.createElement(Xm,{...$,stacked:v,collapseAll:et,isIn:H($.toastId,$.containerId),key:`t-${$.key}`},X)))}))}const md=c=>{let o;const v=new Set,r=(b,R)=>{const C=typeof b=="function"?b(o):b;if(!Object.is(C,o)){const Q=o;o=R??(typeof C!="object"||C===null)?C:Object.assign({},o,C),v.forEach(J=>J(o,Q))}},E=()=>o,H={setState:r,getState:E,getInitialState:()=>T,subscribe:b=>(v.add(b),()=>v.delete(b))},T=o=c(r,E,H);return H},Zm=c=>c?md(c):md,Vm=c=>c;function Km(c,o=Vm){const v=ht.useSyncExternalStore(c.subscribe,()=>o(c.getState()),()=>o(c.getInitialState()));return ht.useDebugValue(v),v}const vd=c=>{const o=Zm(c),v=r=>Km(o,r);return Object.assign(v,o),v},Ad=c=>c?vd(c):vd,wm={},Jm=async c=>{const o=new AbortController,v=o.signal,r=c.timeout||6e4*3,E=setTimeout(()=>{o.abort()},r);return fetch(c.url,{method:"POST",headers:{"Content-Type":"application/json",...c.headers},body:JSON.stringify(c.body),signal:v}).then(D=>{const A=D.headers.get("Content-Type");return A&&A.includes("application/json")?D.json():D.text()}).catch(D=>(D.name==="AbortError"&&console.log("Request timed out and was aborted"),console.error(D),{code:500})).finally(()=>{clearTimeout(E)})},hd=c=>{let o;const v=new Set,r=(R,C)=>{const Q=typeof R=="function"?R(o):R;if(!Object.is(Q,o)){const J=o;o=C??(typeof Q!="object"||Q===null)?Q:Object.assign({},o,Q),v.forEach(dt=>dt(o,J))}},E=()=>o,T={setState:r,getState:E,getInitialState:()=>b,subscribe:R=>(v.add(R),()=>v.delete(R)),destroy:()=>{(wm?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),v.clear()}},b=o=c(r,E,T);return T},km=c=>c?hd(c):hd,$m=c=>{try{return new URL(c),c}catch{const v=new URL(c,location.origin);return v.protocol==="http:"&&(v.protocol="ws:"),v.protocol==="https:"&&(v.protocol="wss:"),v.href}};class Wm{url;store;ws;constructor(o){const v=o?.url||"/api/router";if(o?.store)this.store=o.store;else{const E=km(D=>({connected:!1,status:"connecting",setConnected:A=>D({connected:A}),setStatus:A=>D({status:A})}));this.store=E}const r=$m(v);o?.ws&&o.ws instanceof WebSocket?this.ws=o.ws:this.ws=new WebSocket(r),this.connect()}async connect(o){const v=this.store;return v.getState().connected?Promise.resolve(!0):new Promise((E,D)=>{const A=this.ws||new WebSocket(this.url),H=o?.timeout||5*60*1e3;let T=setTimeout(()=>{console.error("WebSocket 连接超时"),D("timeout")},H);A.onopen=()=>{v.getState().setConnected(!0),v.getState().setStatus("connected"),E(!0),clearTimeout(T)},A.onclose=()=>{v.getState().setConnected(!1),v.getState().setStatus("disconnected"),this.ws=null}})}listenConnect(o){const v=this.store,{connected:r}=v.getState();if(r){o();return}return((A,H)=>{const T=v.subscribe((b,R)=>{A(b)!==A(R)&&(H(b,R),T())});return T})(A=>A.connected,()=>{o()})}onMessage(o,v){const r=this.ws,E=v?.isJson??!0,D=v?.selector,A=T=>{try{return JSON.parse(T)}catch{return T}},H=T=>{const b=A(T.data);typeof b=="string"&&!E?o(b,T):typeof b=="object"&&E&&o(D?D(b):b,T)};return r.addEventListener("message",H),()=>{r.removeEventListener("message",H)}}close(){const o=this.ws,v=this.store;o?.close?.(),this.ws=null,v.getState().setConnected(!1),v.getState().setStatus("disconnected")}send(o,v){const r=this.ws,E=v?.isJson??!0,D=v?.wrapper;if(!r||r.readyState!==WebSocket.OPEN){console.error("WebSocket is not open");return}E?r.send(JSON.stringify(D?D(o):o)):r.send(o)}getOpen(){return this.ws?this.ws.readyState===WebSocket.OPEN:!1}}class Fm{adapter;url;beforeRequest;afterResponse;headers;timeout;constructor(o){this.adapter=o?.adapter||Jm,this.url=o?.url||"/api/router",this.headers=o?.headers||{"Content-Type":"application/json"},this.timeout=o?.timeout||6e4*3}async get(o,v){return this.post(o,v)}async post(o,v){const r=v?.url||this.url,E={...this.headers,...v?.headers},D=v?.adapter||this.adapter,A=v?.beforeRequest||this.beforeRequest,H=v?.afterResponse||this.afterResponse,T=v?.timeout||this.timeout,b={url:r,headers:E,body:o,timeout:T};return A&&await A(b),D(b).then(async R=>(R.success=R.code===200,H?await H(R):R))}before(o){this.beforeRequest=o}after(o){this.afterResponse=o}}class bc extends Fm{tokenName;storage;token;qws;constructor(o){super(o),this.tokenName=o?.tokenName||"token",this.storage=o?.storage||localStorage,this.beforeRequest=async v=>{const r=this.token||this.getToken();return r&&(v.headers={...v.headers,Authorization:`Bearer ${r}`}),v},o?.io&&this.createWs()}createWs(o){this.qws=new Wm({url:this.url,...o})}getToken(){return this.storage.getItem(this.tokenName)}saveToken(o){this.storage.setItem(this.tokenName,o)}removeToken(){this.storage.removeItem(this.tokenName)}}new bc;const hc=new bc({url:"/client/router",io:!1}),ev=new bc({}),Im=Ad(c=>({isClient:!1,setIsClient:o=>c({isClient:o}),mount:!1,setMount:o=>c({mount:o}),checkClient:async()=>{if(window?.electron){c({isClient:!0,mount:!0});return}try{if((await hc.post({path:"check"})).code===200){c({isClient:!0,mount:!0});return}}catch(v){console.error(v)}c({mount:!0})}})),Pm=Ad(c=>({config:{},setConfig:o=>c({config:o}),getConfig:async()=>{const o=await hc.post({path:"config"});o.code===200?(console.log(o.data),c({config:o.data,pageApi:o.data?.pageApi||""})):yt.error(o.message||"获取配置失败")},pageApi:"",setPageApi:o=>c({pageApi:o}),saveConfig:async o=>{if(console.log(o),!o){yt.error("配置不能为空");return}const v=await hc.post({path:"config",key:"set",data:{pageApi:o}});v.code===200?yt.success("保存配置成功"):yt.error(v.message||"保存配置失败")}}));console.log("basename",fm);const tv=ht.lazy(()=>gd(()=>import("./index-B3OKg3E6.js"),__vite__mapDeps([0,1]))),lv=ht.lazy(()=>gd(()=>import("./Enter-BnWSbQup.js"),__vite__mapDeps([2,3]))),av=()=>{const o=new URL(window.location.href).searchParams.get("link"),{checkClient:v,mount:r,isClient:E}=Im(),{getConfig:D}=Pm();Et.useEffect(()=>{v()},[]),Et.useEffect(()=>{E&&D()},[E]);const A=Et.useMemo(()=>o?o.includes("enter"):!0,[o]);return r?tl.jsxs(tl.Fragment,{children:[tl.jsx("nav",{className:"bg-amber-500 p-4 sticky top-0 z-10",children:tl.jsxs("ul",{className:"flex space-x-4",children:[tl.jsx("li",{className:A?"text-white":"text-white/70",children:tl.jsx("a",{href:"?link=enter",children:"配置项"})}),tl.jsx("li",{className:A?"text-white/70":"text-white",children:tl.jsx("a",{href:"?link=packages",children:"Packages"})})]})}),tl.jsx("div",{className:"w-full ",style:{height:"calc(100vh - 4rem)"},children:A?tl.jsx(lv,{}):tl.jsx(tv,{})}),tl.jsx(Lm,{})]}):tl.jsx("div",{className:"w-full h-full flex justify-center items-center",children:tl.jsx("div",{className:"w-10 h-10 bg-amber-500 rounded animate-spin"})})};um.createRoot(document.getElementById("root")).render(tl.jsx(av,{}));export{hc as a,Ad as c,tl as j,ev as q,Et as r,Pm as u,yt as y}; diff --git a/src/renderer/assistant-center/root/assistant-base-app/index.html b/src/renderer/assistant-center/root/assistant-base-app/index.html new file mode 100644 index 0000000..9fe98c7 --- /dev/null +++ b/src/renderer/assistant-center/root/assistant-base-app/index.html @@ -0,0 +1,13 @@ + + + + + + Assistant Base App + + + + +

+ + diff --git a/src/renderer/download-services.mjs b/src/renderer/download-services.mjs new file mode 100644 index 0000000..40c01ed --- /dev/null +++ b/src/renderer/download-services.mjs @@ -0,0 +1,6 @@ +const name = 'assistant-center-0.0.1.tgz'; + +const command = `ev micro-app download -i ${name} -o release/assistant-center.tgz -x assistant-center`; + +console.log('command:\n') +console.log(command); diff --git a/src/renderer/index.html b/src/renderer/index.html new file mode 100644 index 0000000..5acdf85 --- /dev/null +++ b/src/renderer/index.html @@ -0,0 +1,21 @@ + + + + + + Config Page + + + +

配置完成后重启

+ + + + + + \ No newline at end of file diff --git a/src/renderer/release/assistant-center.tgz b/src/renderer/release/assistant-center.tgz new file mode 100644 index 0000000000000000000000000000000000000000..bc3a477b1c64fb11e8b6d22e6974894916c1dc3a GIT binary patch literal 235988 zcmV)bK&ihUiwFP!000006YRZxUmH2HFuMOHpF&}C#wIbwCgcrx2L-eVH2Luet%V^my%lDwt?*19nPK!w4{<$DwRs5dKt!fvHpjz`_t)k zo<4po@ZTr&Z)anZ{-q!BhwkRnCmTA%hX zf3(qk+c(W`1&{+WXjeq{z*I(h3|IU9t-xXpdi6(MoORPkB9_K}r6l(*S6f#?B zLFu{7@;FVPLZ{tncj@a;=7TJr7OI3kPNEq9ij$%I)c!T6uhDe6vL&D=Ay&@hWo1`F ztjMIuu)+`olW00^PZSs-R*K6hjx)c^3prT>xT<6nk7d5HB@XdVLCsa65GzwTv3~%| zTfsk$?h0{*L!`Onc9<7YF*t?3vUEJ2O~u+k&~NQQnvCKT7?xPO(EShPIaD5GX`Zji zJLnViQ!kRrc`i@~YD_0+YfiUyD9g8ob!;CEteD%NHz zX7SJDkvn6{j*8%485rM!|nNljm_hi^l7N zbSTv}TT?^Pd-;)uXlqZR>`a$GEf;6$47RJP@Z2n2nx4f7_m^(F)7~&N7G3_DtIypo z>u{82lXw{QX)wP$YCpD(;4pfOpEueYZPR3&4x{{ZjnMbYX1n{ez0uW$7xeX6yZfx& zwQD<+=P&1=$Fd@eoQpI&%cs#mZapZYz%1b}fPyFG3bS0U(S9@tF^KvT?br3`cy2H_iD&?i+oErc?YpYk zX;DmhIsEOG=6-SRmT#zX{M{Cr@jT`2XW2MVrE`CiSCZ#4De^$QNB6tDULuP?B?nY7 z4#DZ%f6Oc8MJA(3s6SroALFvDHAO9pTs6eqHHDM!(4T!`oJRQvn&|KaFS8R=cwnWXi4%)Qq8VabJ`(j4`M$?hNzwYhq zh{h}#%2AxiA*`StKNPPz{kEsG{IuEVkJEl*)eOyy_Ve94!l~ba4|_kpKlt164 z+WW92e!wBNqwzQ$G&`$U8Imn#S*)O7EmcIZBH z($Jl&ZLNyD2pcIvx0wgCB|`Hh=WsE22-S{&4>!8<=fe$FS9FAq(wA-Ba@Tj6r1DU zVoV>L!HD8iVmAaw;Z_ad3L9rKpN)$+IZ@42kF)+b9>DMGckh@br7<-DV2h7pl{Ocw zE0nd>Ps>XrbYMf z*q}pTMrkIRP!Quc5sPmH8^N}SA3jub(S7!3Be6q+iI29agvQa%Wzp=>a3UP574^9b0lojG4i-FjK?ZF{?l^`TO~OqJtGCpY^y0Ks7iz78P(u-VtKDeC9 zy(~+!t9q;|ghF2mMfzJilhN>9GQI>6G@Hq7!>(0%ob$%!pn|`sE)Z&eHnI(IMlp&U z0}yH1l5(0AJ3hC^9%!M29On|DvDWQ4|7$ES^hoA`GRFq}!B*CM;76zG(}Ak`g)0>s zT^M_#Xq?L+nJHok33pmTCm91}QrN*;#8z9hQVazxzIONrv5_s!Pf&&h!W5`F@6W~} zK1tvh!Py~U09x-&vveTyye*US_D}oAZ{H~)<@n>l>o=N6vdfZOpr&A@%VvYV;$?G{ z$Up=o**3Dq9bpJ_nPUTfP+8U=ia42pWN{K@!?DbBIQQXnl)zBh=J2>v zdpA)xqj5Zm3z-Ej>ThgG>6T>5!dE0y%*0~@>`thndm}n~nI=-~*o!3m4J4||Kg<$d z{9%?50c*CtE6!zhDe`zS9ZT_R+84jg7($GS`ocpHKR0*aAGC4PP_3}QiGXl`Dr{Vn&v=pSM1?K zLn*(e{U)O@LoH1D9W(x*HjP#EFrK2A*;Hl|ndi}od?`ocsE`4+_C8dn#NYz8!mKV( z(J;N>aPHJMb{Qe)xb1;`|NbLe6gttlj;U$crDjSyCHBoKedg-9+fqWQx(6S2U%%P= z;K^l&oll)kOX&ZOM)cn!#^>M5>_-PdjO$zMt_`V>pAZL3>15lW0%MKnnAd(0jmLek zW3g2S>JzW_gVI#lT1t1tE1_7=s^F=tj;D3_fANzf+NI@X+pndr|I>_~TtqI&S`Qror6Qy#7sGTggO73u3beqH1*+{|>G^&=&hwef*PlIm+WjN`4rUNCDb_X~ zcb<12Kkq&wu*on4$tYprwO_;PZge)x%w8vjOki};czh{N#%VtqZ;QBS03AOG)e@*YZEBAngDXlp0`JPdD#V?@&++&=Rht~Q038FuBz`s;bViIRj$Ng ziZ*-s5y)nv_+*yhIE4D_wQBy5reKuyg^u}E+rB**$1*8?j6VGoC&TpOhq%a(#O@Go zmvJsdKAVE<#!mN9nzcll;ZBvH(FHTt{=G43A>g(<}#VokcW(SPIe9q!Q7(|7b9f zQ$9%t!K&Y75e!=|KTXHOoo;7i^GNK+|B#{?C!{xA6@58QFNh1Vp4EoSMShyj#zT>$ zh3JFyJeg)P&w=%fN<$HGu7+$R(yE=)hGkQm?w#ID>K9nmDePpmx*|l$@Lwm_ zfFCCz_;yX>d>(e|7}^V?%Rd z$B_t+OGJt9r{?)od|z2_O91&gz354a9dYlT{==y;G$KSY8;{+_iCe^P8n76-SAvQd zc0iS6V&|5li~M=}+|Hf8Z6!*W@LTe_fEy!YvoR`NoBGSS@41q$Azl|oc>FaVsl3MT{q&82KSb!ptCutF@1699Jva?t#T=kaU zGc9r9WFa$q0{eG31laVR(9D8=zA9aVj_2@jMh65&RXk48W5pkj4S&>nTZ{WpPZh^< zxhJZ4gPsDXVdZ=#(WhfN^N#y5YD4G3T5O_ox>u8&*L?t%?%pb>=Qa^LwCk4{2FJ6r z3#esSS%D}09J*i6WIj!kyh0d7Rr8e?a0xWWv!VuOzMe^hS+$#JWOC@jt=5TP^`<)r zzP!)cuhzdo{ zSVp--MI5~RqHa0|nQaS`PL$1(&7cdVZ9;A>xkSgl@GoWI% zT@_!xuukd^Fc&r-k$)uU(Qx3{Mi~OuHf_*Fw&C>$Kb7sit3P{JSG|eyafDB`%5mJQ zJ>SeuaJHo)KKqKw`HE$o>|k7V#Ar=74m-=z3%0czZ{a;izjB!kp?1k2O5irC;WSnQ zyseJHSjQU1b;LG??}fU!j=Z)6h1JZeEVfiZtRKQW;;NZ-#Sj*f+ZKkoLwIDnqjuOx z!Bmrtd??4Vkn=hV%Y3>~ozz!U^7w@WK3%Eitk6|%`?OFZlLlXPjnd`DI?`qT3*B~t zhrrx>PiZYneC1;zKTYKTCU35b;51tWaV5xH=5S5-*i##5k;_MLC*9sv$VxHgy|viz z{Dbg%lXK3X`pJDaAN1P4v~U4juj&y`s6VGviDZscbJ0WpK+yA z(3G_)RaC44ts=}lY#7pth?=2KyF2P z<#wFIYu$;=n#pVeA|y8aRy@h;86(D~Uq^`EYqgnZ$Y2>eEg^PG-2aT_ zS3MuXsyFg0_fL)6WHxasGFEoaRT7kDvdBDcHVbzSYzAzUh6uv4nNI|BR`}-Y`!B>w z)v5-LC;0KVPvE$2c$YLE*`X%vw!ifL``43HJ!|`zz;kU9=&+KBF~+J{nH3*aOE)^} zgT>f>@Em+8_46TF^}^%1c`_l>o?-Z0)V9^Ay?J5ZAmMMns(z>&#fjJlvy@RRbMVu^ z_qa5}r%YfJ@LGx9M^RoFLkka@wG%VSFs=JCHGMVS&`cBUkXta4mMH1B*gH)dEX$h1 zG?4*&yW=ptrp&UI@-^{~Nr2Sk%WL##yis^jLyt7qTs38u{)HZrR@L&oG)D9U_1|v& zZg=(m#cSv9x&OTFRgyz1HbiNO=-`yeaGJ(RQF=lU-|KUvA-44S&~WrrRl0X&_60|a z=-vOUySVa?^4_-F;)30V>;m%}6z9G7*oBGn`0tVU+J8TOx%X=KM6^;BW_6SKbxe9Hr8utyN`DXo}3lq#TGzxyunN6ZF0pQuk2vVg9#Ww ztKYXnRomeHCmjbCAjMIftOhG8JImEDu+bO{lRYbLwJ);FZV5e1ocfXbFe5Wpkgk7t zs(pI$*%@!9t&okL!W}NMrXB7~ppRfx(Uo?Wm_i0 zy-8fSitHOAs4UbiO8)aUfO``K_WjK_4vTO&SwK$i9hL6Ue4?2IcVkzmEH9>BeV8;k zcP%A+{3pv9<%8_Djxlw1!7-*zw7@Y|^~(Dne~j5zWp<3I!(@?T%(X(CdyEA;pL;Bs zdKJ6UeLiQWjQUh}%9NkwD^D5SLHU$%%jw`y3$*{Yw=a%gz4^HRmzM7lR7+pryvBbQ zH+i6MhoM#;8=xv&_|Pb=PU+AHu5-nqfrm90>1i0tyS*w6=9<`C4b0G@VSQcfCHV~F z4@C67WZ2L}JRTeC-Do_PLlK=saU$Y`HSd+gus<4WlwP~sV-4ZCrX9DtOK#`na!K7k zx0XAs&}S*&^&@u5&IR13;Xs8wfmk{EnY)Mk&2p}u-XuL@20ej3BGoScgVR}ZCU(`o z=}2GToYTi~H+Q&86WeKjVsz8e>p&iERK9JCo#lMELmk_QB3BDd*xoq)2@`gN_P~Ve zXLR=tf61g4x zPhzUZ3;qm3ei}$QG=>$tc^kqui5=1SY5#cd!-wOKZ}&gGfB){o!QRW`ANTh6cmKS1 z{ATa%pAY`hD78Ig{$?%l?P??|&8v3KfxgK!a_FPSDfeVSuvcQr(W$S7fzrM~{AM~Irr1IKCbvSB@ zD+9_gpUJMy|JK(lt+(=N= zK!L|kYyuyEt5rn&5ANm@S!UwesR~;H8)uNb5I$Nb(1W+W9`swd^`U2E94*q*^w1ur zR~OMI&XJE;HrfP0>Nrq6D}e$_#COPLJIqD~KYt6KyPN)JxL$WVovQDTE51Lm7Nn-v zN7Sq7Zu9x`=V)6~3ZcZ7h2nFmAX6ZCM{$yq(ZnFlGC3&3$AedE&nPh2`!v(>HjKOR z#l=N?Fm4Z`Njn;}XJ_mG^K@@=a<=h!eKyF~XT|8*@c=q(4@Cb`g@(({X1Vy^*=e#= z{40Pmcg1`C*{D}Hlf{?*SgrlXgICX3ge>B8W0{Cj1U?%{4COYu5;s-YHODUi;6WU* zZ$#(Qv(BmxWoWKBzy?3jkGVaWNDSdf>2w{a)Neth`ySqDy$ zj}KqIdiCmBw&S==kLE1XGd+e;d6{rs%FDFCdOiAQt{3#T)WVK}3p={T!j9mq5Dd_F z(0t^&6sQ*8QT_FG@tyeiu-kd{>eZ`jFYBhetfqCKE%UN*y$Sd+^b+h@CUL^l_K~u& z0RchuK>QAe^rKpEJkW1N3i>g~?}J{rb4~~{0_2?p&xDGrA>Inet|%x4=zD`cxRqjE zSxSL6Jw>z0MzBUZvJvR0w(hy2K05o7i4?w{R8&(}<_d^39UTp(Na-o&AUYwUYrurK zY1W+Tui~+6IHE`Bwx$E}#WtFCN!a3F;TYa>4rLXhPhUAyKt5m%biY&U6Y9Lp!1xj5 zLZK~9*tm^N@qIut*iu(Y{EJjKFm+KA9grD5mLmjyJa~2d?D(&{Z(hILJ=m)X66j9C zLHO3DaZ7*<8t za-)dgUEK**^_34lWibV_^VAQIZKY5crRqReJSf!Nc|qv?!0uiIcOcp-g@>7eilONR z%v1p~`LrtHTYV1fbcdK32(HGtMoe|8{O7%cvVkGoH3 zv8ro4*%Ty*+8RIZ?*FeKvB!RVxqGlH=+LB(uiw6UvwQIR?VrVtcx=AD+=D=%dw<<~ zdmwhi6MlRC%jFNT&{Px(nMCIlx)uy`Lsd>NCDYumRUK5x_PAs$B^{oHjyJD*Ij9b5 z0QN7F!D*Hz=`6<_1^Esf(?{hOeFYAFqU6%3h8t=tG$NZ%RA zb19!grBY?!CJ>z-f=(9kM4FiPc{G79?ERnSp`vQoY4qbH$}Yirc*mxspqMXsG=sS? z)d|_-mEztQM-d1ll_*^5>#Po{t$j$GdDxb7QSZmVDcesJsen`?6jFFym-6Q2ho zkC?+OpG_e|iTiLLCU$FoQNJmw!pwX>r=6|2#r;!hNS1JIEFebBa2w(02)e_t=9b)8 zbM~eUyuxIG^U|g9j3WWq18(Tg%}O7_5KC>%VWJ z4BFRj*L)bA?D-9eiq)%~iF(-a(16j6*^pSFwq!!c<#rVv!s~nJdpcF`f*p7K7=H16 z{U~XVRFs-bJOSjOU{^8Fahgtp1)$A^f$9@IXm$2lAC|f3=@XA-Q#vO5nbnGLzV7oh z@GIwm8aN07s5lyAGDtCAE45UQLH2Vx5xx1ijFi_eNfyZqu$5a__(sbG!^sDR!lY9o}aWCnq6d5MW zt{z5>O`$%6lB#4I1A?!cg|YysDnn{iy$-5gGjU${eQd4m2q#EyV#E1rY#nxvOvGLu zzs6wGi_=SBzO4r0nF>;%eZRJ6!($7|HcyUzNgF?TA9)ss#49ugQO0(OnO=p{(y)$% zpEV-!?dg=QabA(aCo#PZ(VAV58#B%sRleb$C~5#$~F zz+K4hVj5+biUy98d7;D?V!96Ja`(GBvTSM(m(EnC?j~cqUa+KG8YaBO@rW%>Wbrx~ zrG{Y|Bxf=@+YW#!-E4y}owL3B;V5GbzWGLI5;Hfr!;%iN?L-Ydx>eM6 zZyBTA8{m^)l{g}wvDdor?TJF@;Kd1~+5>hrhox$hzTp5Z*V zP1CPlzct%Bm&J8S+HC1puixICX z;}5Hun@pH-Wh7s$350fH!y?ju_BMGR0K7G_v$!eE{)R%eGw+)V)y}N1M}3tH zYU7EfJg(g@DKHdB4{srOPZxmqWRt_g>JTuF;8g0R|167KJ*LYN<7+;B*nP5kTledL zYUb-+wZk_R@6wHVSUt$z#nd$Rd;@JG6*`S^SGHB=SPG?sWUI8b(K zTt3=RxTI>@QCIm~>(_EnVvCqU#DSf{{}Y`@`-3c=f+3jL_~r2<@WN<=-GFf+qk-y2 zCHhsnY7*Upn4nQ(ES({r|oHa(cEYW>=v@At~sF^Z^*tr zCMtWD918P7OA4$le+J)~$#WKmE9UaJ=RqE4Js?40SS4UwSC8QDCqUo>2Z4aQhh=)$ zTy}50cd>GcUicC$)S`+IUrTN(cMRptM2>C}LYQ=^bZO9s?K z&&`5rRQ&UK_2!MwI%Q$uFl%?)Ei+3r4hYWjx<{CPr_l3cQ8BnlXIap8Hcn8j<0G@a z-JExg$}6rKtb^cCPusPZVs+EtQKuQrg2wd=s|i;T=kE>g??*@KeZa7GK2eqBn_~Ld zR)I_+KGGeHk58Lm!k49ErBPSl`4iL}u{o$EaY@v?Rk=_4rFeS_^~xfcI8HkDH*o-h zf;QblS9s?YB2NXx7_w3Z+Evab+IVwnVvOTP4DkKUjqU}f?$ItCpn6TJfbutOMA z!CD$o`~hB}!h|BU@(%;11K!!@)W4>Tu#}WgDJLv0DTHK&fV8lryx>U;VVR-C(%l%t z!F|L$Jxa>+&{lF+NZX-tL$nH8vC3d`f59jlV8o95OfCAY9LC-RxNs8G+Lwg~W2{)h zu6utBGd1U{bDQKAmfpI2C0ovb$!XZkGx!3_Q@E7&REyGA=Z_Mp+bY1 zfwWvimW-;ZJ3D4JG_Vyc&{$||Y8Dmtcaz-($5&|DU;ClfgYhX+3x>XPG|J3><>#B~_w5%b;; zNDDNdDEW#gMiQ`Q2W7qQRCnF$Yt4%{xkTiU&N>;$`HJ$VwGTEh(p!5c^A8E@O=TXl zuS?4P*{DS)?Y}1}hsXC-NV)z{Racn$bJdY_br4qyf2C_`W9uf8;uk9?eKD>Mt5;%I zOw&A%!BE{3%vTidAGlJ>{)W$h6u~q zbdBXR5A#|6&TXGJ%H_uRd82|2-jM4rxs1WP$RfPIYVn@VSv>CqxV@XlQoC?~-o?)C zB)s`Nd!OZm_a#IsJIoMQdJZ9>(UTPdLZcI_8@zPR_!#eU;J}X zd$CS4If_5k#4JxmG#tVmR*s_CxX=xXR6&HFp6bMRA=7?Ox#9kSkZD1uHJrSz58)JY z9VydkR(W=>URe~>9Mz0D8GIY5xTWUWV&iYwp@sb|$}WP|uaNs<@Vp5o!xD6FxTHe# z_cr5G>EZGIXEoHTp4f6$+VVC8+#W>JVwORwfx+2977Zln!h9C3sas~54$W%jYm59a zo)$f-j#?I(WlAxEQCBh^fhO$@{1%WR|RKiIrbo&ZcAeX+>Ne!AfJyjU3+iLlHRkO+hLChAs+6 z-_WH-acH}^6R76L-JmfBqHdTPS(FUZ$*Xug2LA2Wd~zG{IowzrEbvB4ynXlXeNDJg z7CQq2=9FV-)P>D3t>H0aOGMM@_!1u4Ac%(wqfryLLpMKz=OUvXqHr6{2K(BuT|q}) zfDUrUqbD}1^kMhy%XdE>zkm1c&GG*0zwe11@k~4r-OdJ>=YW2Q*5rMfj!PfjL&$Ih z?}M=;R_O_xz#lL7Y$y&l*vAiV-u<9McWjh`aS&mJLUEXY8>&iWbPWxnHns*4>Xpce z_b6x7MABBtRh*V^Ac-XdNK}W7unN+{69~r~6%y!$0yvm`3tR$@EL{b`!^+1hf*GAx zXY$g$u$dSNxgvf$j+Ws4c}(94J5UZcU}do&3=M@BiXEpvPso}>#G>@1tk!HtEt9K) zMW?J+N*m-R4R>Gp?77BE>!T3-Hj|i(@z4#_z$8D|2)ry!^vwZS4=bq-iV%>&Ucu1_ zv^|aGKpHRkXfQ}Kba*dPqzc?Z_C!T@{6RWiCMgVNpinvmJdrDQfey^EWJsD(TpLKl zgb$IJq=At)nAi8?>Z~%Rhb4Cs>q6}*yOV0>0d*Id2-M?3C7{-qD78Mv0saGva-#yY z>fz@_n$6_`C3#f?SCtL3?ZI^# z1V$J}dUmP%@Q8$GBx&za*iUZ=+c_RkRi)}u<8-Vl`Tz~On^7rzg(4fXkR!gj!=cBXOB@*ngQg1l(18l6FhZFO|(8< z&4rJEt>)5&=%%|7%y1&k#W?y$JiZih5*M+`jlZp;f;h zGo2Mh38hCv7Dm+5joUdk@9`}To12Y%)iKgi6%X0{;3yo+s`Tn8DvwN+ZdH{HQ)Q#7O4n3*8Be0$4HfP$(P>`Wd<54E2R9Mfr6qwVy{-5Us-jsvSK=GMaj(35J6tgU)_B z^yT{|Nw{BV%dcLELmVr)wW!f70>=vF%iL|~8WL2;v%A@#f3!eWaZKn$Pf2{0Jmc*C z%n9aTUP?mZA-z4icHI82)!m+!+OK)+Sr5C8}1}h_#F6<$6@O_wtgt~*}mo|%n)t=G`|Mo7@d zJ{Mxf_E3A|z3po}@w{rBNVV_{m~yMl%B8N!N{tA-A87WP!vbHuYPW{qoJh(~d<{s8^Y|HkGq(p-qsMKhs=iCIIc|F%%gR&j`E`d-6WAA5{-X)a{`_?L5`=Or$*Ap5Bxl*KqxkT;#k z0zkgReWNm$SM#SzOGgH#Sp}uaR`wS7>fC`Z!&qH4>f)R={jcS$>F=ENch34B!C9l< zIqQEPXXWl&x6fH`_)1J}J9FO~<6PzaPymr`DZ|9vF0>iI0$iU#H^u|uhur0!y9;`c zBufQy-ep~lBj6Ls{O8%*e2QN76oaLADe&ug$C^{n1ZQ-~MSL$d#1>i`ne#F~@3MM& z^|skF!0+emKjWMY*yfZhhJ4E%*YwpS)67vKTXF&|I7*) zJps%Lno!-ji064rO6$t_+-j`>mM8pNNAh8PT~7eoa-I#ZBM#LILjNiW$X#OO#MhRC zs$hL}X=v^wf-;eYvf${05)sBrE64z}KnH6KS(MrPWzQ- z_7YNuku}(vU8vi~?Mhp}+vNRjllN6^@)i^>L*bbWd+MV-zO%JU;%3N%_hGGlOWAG8 zn5SztZuYYff~O8{nwY=s;#4NhCM)wDycm~6%iQ)*=0%oXmTcLA9yFehA?hHM4fI8n z)4S-GWWn?$s|5GMKuYkRT2$ppnDO038C-AI6hMzPPwY;K}%;v9uH}v(=46DIc5Nh zlXmr-bnagm_dz^3YdRC8V*{O_+>=f$<|$c9LRD)|Wl|`4@;9fRlK-kEdyiV`tj}4E zr4bGwwcLa~f-=&V< zrH=nbsbe87=0v9ou;=SC-kPXYw;E*brlOMZ?^C5^rGyu=%sbCv)Ld-+PBmM55#6w={HHMXZ8iv^-_9Pu82|zJ~|4o$p<+a zL*N56C2gw8og;nf(}#9Gjt8>YU9HtP?2#q}&V3he;o~1;p^#t1KYNWi__7 z>V-heyD!xuf@2nA5-OOrwy`xy@tWF$Nia{Xahw;{U8_R6S(>ri9Rcu5Y#cuF*hJ+x z|B5dS(v0Uvbjrvc5I`Mvj^@|t9tF0bt~X1Zo+_e_1o{oAyf9cnZoT%2Cvf*`z@OR9 z_Fi@o7pErp2RdS7Z4=xA;asUO0k~#8`qncZ*iHjv*BA_g#q$8E6XMajS3>C8Y3r@{ zfyu!*uxszEJgmEs`CLX$1GcQ3@X8H>`}EAC+c#F-AgXY+Xu@MrjJk0Vi*FScTqdLT1`+TVv|V1oW`sFs>*BhlJ2W2k0dbh{LhxmX?BX zIOXAp98MMEQsH%br>cP;pyTXSn!QV~%5G6)aer3GmNI#b@K2a3x+-wH`F?Ssw)zTs&7-t|2=&c`ONN<;V|*3Zt0b zdNv+AAr7Ehbep=I%AkPoC!E6P2Un~+STJ(CvC<*S)owbh1E?_ML%p2JDwr@*&J#(y z(I(f6_ZbLW#bpy$rHyeF09Z>jXrv8@+ar_NL}pQcEXhoZWaote0ohf8sV6e!d}Jw& zm?R|uQsm|k;0vfvROnQyr%BuD#)Rp|R8cpQBe5%nF|tT_bW@>KP=kyy-*P;5b6FIw zvLn*GEEnf-q}xp-C_HjK08|1d<&YM}3Cr4v4CPLz?2aWrO~)$4%f;!Xr+#4JW9+4~ z0zX`#lBdZ|qX82?olT--4Q_R?_=4<9yiQq%g&VV`veUAT}|`JC1A7KbYWCYENd6|e{gw*^g4{kl9`$5ULKY2yLDG}E@N{;Qbw1IEt~kvkxL z9Pvvf3_vURhe(mZ>6DnVdQ?HKToH5fR`?vQ4CgE=RFub7U|x)?U?qo1DcP7q((gjG z{7zL`N-(2qQFyo0e3s`;Y8(|%_3Rc9&J3kH8x@DVynq%4W@Cn5Pf*hfv-qx8^Iv-3 z^LGEWJ0G<9Y~x#hceLcX#l89xed_H73wURjb}FUaSYmTQgNj}7lEojW*#dmg9l8b3 zix4fwO`2xuc|3%8NU}IhhqQ`vG8;#Q4sY0FT818G%*;m7K(@u}qLHf*N)Nf{xlg#E%Wb+o~i)Lhw?w+BJ#z4GpYPEosA)WmWY${6oO%aVNZ%~3Ii#k zQGxNWkkJi?a@Yo4Ll1~d1**3LH!v?W$Y@ri6NtMOjmMWFlauru-|S?fd$aEwz869? zB&CQ3WazTV!}!q_mH%(Vb9?OaF!aab*-NB)7VX#$!VthBDN1 zF0^I#I^iH8gebi2&PCG;7RyA3fPcZb#tw z45q?Wv&?L^Y+oOr|3Xxg;5HA{dskyMp zWil5p@1~Mn%PTNK$RK$CoS9f>laQs0nn?ve-4XZdIqtRxg|S-AXhUH(;rQ|&d*Pcp zM-;f)ci1$ksEi_8tCY+Zj<>HW!q5qNeeuO>?;p8TTyyH)!Z|zt$eedlmYr#6+}@Bi z5N^-Y&t!B~K2DVY4pihk!D&I&vT@`imgUf&?r+o>|K>-eg3ll3%cN3zk`1h_!MDG- zuzj7z53UeByV(iWJ&(pSq#}ru8s(w~g}ok$W6)UB93PE+>xF?{sqr3I%1p%+F0{(o z*lSw-W^Wctw`l3HYF<-%yEk(sc8U0C0KJ%vMl`f{&K(g$g>4uC>zOe(mk*f6*uWd0 zy|~>8zu)S|WNoV#dP?SH<%eWjTJel*E7(V54)RX8vj2cwq-QdDaT;ZLT`B}iy}Lt7 z9+RS#k6QalGzA`D`lr$yo*g1<(d5=fXs)%By8-m|3d{yc8&KVgh2xqvC{Bxd5X#bG z+OkGkE5SA&b^b+NsjQ{89LtFZ$@VSCIvpVi4D+cwzztZtGbpdJ1Un`eO$&QsI{}Ig zq2$Pqj>k*HAvB|N6RFu2l64nC-FD4H-bWdvVlK$&W3Xld&aWA|$$R2dMwEsD?!pO6 z8}uNEa#fw|KIC|)c#zTsQ7JXl5x(_$A7G;E4Acw8^qe1AF4~}ClfY@K5OPW-+Sn0F zu|f%CnxN95?MpFZmEBHVB?t=gF_HNon!548(O4+og90b+w=PQl-&smo2iyY3g4Z33 z^98dzi5;=lHJ_C0F8c!3gU$ysU$Q1mWXVJrsxVFrU{H7yF$_ip#l(oL&Pk4OMrpFxY}HIX_B~$R`+7`C>D@H4(i?8pG&aVNyYRvxjCCD4EHv0Uv{}RoBvan-+do28|hZ%J}9SAUTQlylzXFnQQie^Vw&Z*g1>@8WMMnV-8?FQzd175 zgc-dDkr?wy{7ZMI0d8FeF&%}p0!<`-gM)s!rf%}2IG>TofT2WZn2!$>!t7f6U3uXYF~rTb>TZwa{WrY5$ej%)JtuxxJmZ6z39_BJXh_ZPgdqSk5Sf z9hTWVBG=;Ee1w$w?xN$b;Jq8Tr&dCH%I_v5V;by~m{+*J$0UaQToOY(RC#C&yA9te z9aQ4yn{Pt$Dp=638ph-p%aze$o<+hI>?2Ui3Vw^n?I&mbIvx|HxyXAIPD)|DrSauCcc8Nfij& zY-*3lYh>5(;2Laj=#DoMaWb714ekb4N4qLr3!d6@=yuV&v_l#Q*(C`V@rzv|9J*C7 zxunXtNX4eAqI?7v*kDzUEVXc)$Ckx62`!USCsBP*)1`7>FQ(~YYO8AHB+I86Qc;4c zbjUS?kcBbLCQ;$)zO>e?`ZeezK9|V?3NeCiDNM^Rswc%a&g5mz>ky*blW5wspIvuu zQa>f5_++M>f}M1tHjAotu|>%Yy0OX{LYTH%M}CIp?0gQ7Qi9>7HY4i zL>0=#8YAa8(B?TZ1+)}u!!=ku%H>T0n0uW6h#8{5J=CWRB=g?_w0 z!%cZ3RikBV=u)=?cCU0^FFq?0Z;|d7-=jnCAGed9`^yLAzHxu0B~}K}?Buk-Gb4ve zNt#F}f%k>%lLK$y!RIGlR(kMZrQru3R>3^@INjX|S9TwK@DXfp5*L&)kfrM0G#+wz zqr`^zoAcd#HeVC8>N9{I-M8tXi*e42HcM&4(M7$bQr!O~%1;CN!@XSOEumMWE-U%R z4{zM!r?-%ZT&IJ#^*@+&@T{83SH0sWXb&VLuYYn=bzxil@cQlUhrb;k{O$eTKD{^d zl<4r`&mUjE#9x9Qp;(|FUg(2Y`33gAQduSQT2(rlYBy?}r#!0Fz--+K%HzIgL)UjTSOhrfM- zU-w=%EQEa4*Zq8uC-Rfn5$nGk-uvVI|M{lz;Nj0}?atcs-L=2}a@_k8t^MQw9zDFj zKG%BPta+8?y5ba$0lUpd9jaPy#BSPFSg`BlXCFVjS-k>E!XURGS;3AjQV1(DIHjmo z=)6|Zp8h#Jg7j$`Yq@d&w0QLMx0eliUsxA8^^Ka8Y|zzETZR_$a*|;(Mt2O++s71+ zRQW9PZO#(@SzA8ktKIE%o|Fq+BS7~88?pziu3{aw1G&~%J=i)~*-^NCjHfG6M0g}l zQu@zVPT4d<+wxE|ja{)L8V#q!ZZNUK=-TcxueM?3rLpIlf0s*iqIxQ^H!n@7pxnW` zxF6L+$7I=^q%%Z3OE!rWbY$vq?4RRIlBIoaA9r=%hTv+FDziE^*S&My^8``Tpsa;b zCOK}m+$P7C1kfRDydw~gbyZi%5gu(=L;b0GjhPNI7*Xg|nu*gG!oh(7y)q5P$d*zJW_giLK=>R=qN^3M5{z?l z%IIHGU|~6mW@F7EA&Q5LP_?lF0Yz6l23+URWqDN4n}stmb`j6rmQJJrBstFQ+Ho=% z&xX=i4r+7KN?u7Z2&h;;W~{G^UGP)F1L73YyojD{)DtPilN^!53TtR%m1)kf>T!x- z@5}lDyKJE8qJ#68RS&;TJ3VWsii#U_41t3{I!0EgBg;H=Seq9jYIz4g%e+hU!0*dG zr(dP3T{yHW9`begwTl1A}j$Wa%xJa`z{i!dD3n_^+QXUNKgwkAi&~!jkP?7SO zP7y*<#(lHtNfr$uh+vV)Xi_0$Uo*@s`l0S$CWF%~P10G8caQ2gxC$QpM9HNdVb3@% z^;)9WfcH)K4W`{|Kqj|Fk1Tp~75P+1l4TjV$!uK2QwY%=Ph_q`6{C|YgevwX@=pq9 zTMB(Li9WrjeCRp=$|U*}Pi7Nx=#@j`V+%=V=3*bRfqy)B^~@?O>SDXHA?qlwXYo{g zJb1PCjI0?Vt+U1?Pm1nX-feqB3q=1bNXBmx9g{Uq`PQZH-&Wv<6maU#rV-}CbY-1? z!{x@g$O;F_FUx)~b?iyFRk{V4N?J(V@`Of~-bAk`&wrx7nQG;gvenCFN)$DBQ>Ah+ zHz9a0!#@nNOA`j#uEH6HE?@ME6@m!Pp;cgc{!Ij{rW`*8%iS)( zDX0PO1R$t3TITz^!z_vur}|6y60ED;*lb-?HV5lkze`(NUEG89k<0PQ z@4?(BSTpr&rdX5XQ-{lmi9>rr+<;Ek?qjkXW@4te< zR3v(Ic=ZCpx)OJDSt#}0swjPGnoQ_!i?``ZIgT!Q3-zh#SUdwiX`2M-9aDdnPzYKm zw^*SvBoXEANuS=4^XTe!sh;xT*VSIKj9sjjOopt|o;82qbrji{T8e1gy%$uFfa;O& zGdSq12Vp4K?IbSLAxabN+29woA%X$&3s;;D+GOr)EcpXb+-(WKh{%uEgOGqsf4D zt>V%J!Lf1sfPHt|0gE?)$>uo6RF1E9kMERs`Krs)7HDP^<)tX>lN^+r4g2oHg7Ej{ zNT;mu!U@V8^iXkrDu)fjXd`$#`-^4|O7*Il)^9E7YEiCSivV{TuG3KPDa7$0s(e%V z@};B|boFig-NRTrl)aXic)T%`xw)n`e_fY!RD<|tTKnStX_qY zhWo%4Q;v#`XfjX@Ut$d=SZ1N??FrLY35m^KP>IwKv1MCiFMdioQWb0ALlpzR3UJ-X z6Ok*${gzSVx;YPYi0(ra$D4>F%kmO0@wZ1C@Y#B(bbrUt5# zt`aGSq&9UW0zKV2K81L%P009Q;S`Kz6R{=VujpN%Ce>bSQdBz+DDXZq7r4%Tb~_0n z!#N&7HVeToD818(&OYGmDz4*{wQ$4E2_eAAnVT{JcuDLEP6#Av`tD zyrZa)*(6RJQ;Of!S6))gWga}Ne#g5OtHhe@-JqNc>`wz_z;8987H2AQGsf#qN48sK z_Z^N+Z5;-LYtD`{^5atDwm@Gc&d%~Sx_`bKH93gYyLa3u*4G-mjhDUHG@SU_|NIF7 z|GV)zC`W?p4Hz5Wbf`DN`afs*_I>4sL~pz`u1O%O{Vk07X0-lKo(J9-ZjSoBmp2;m z-pgAU@Qv|)i<3Bn1`TU>L;_92wH;O;t=yqLXaigIr#7Hef7<@lhgmjm+`V(u9;Mk{ zG&pU7!vIdzz9KAv3Ej9lr-xdmb@+b>K}jzUWWow2e99Pwe#Nt0oAVjV(;mxG(MCA? zQkv*F5H6<;!TQ@5r%`cnf-!W+#4kFL>w|PM$=gurkHx86Gk%wACQ|~9?vN}eSe6p= zx^C=s7}m%p=2|%GrOExz)c&ex;$8=d2#rs9=;*~l_^QE`96;uU=v9WTfoQ*#FJ0W# z=1Pq@mqpW$J^ZzY?nOT-#}_8R;RwTijN!27iM>PVu*dhj`&sZgtCSK!kHiG)W@8Ue zk0`{~@{iqB2%4 zhiNc1uB@*#YI&#us1srX(TxCm4Nt^!if`kb6!1J;+VAihX3V*@8x4@@$IUU4+gAzbJCpe|O>$J^(X(JxeqyHGit|%&p_h398C8ru zHm$XqwldB(qac4Qphz3p7Ly*yXmE-L47wph6k~PWj0^VkP^)iCVOc+D=Ra+0{ZmON zMitGFjJx2xDKBq>9)BbpRKl34*~J`J}OSP?3M zwalSuX}~se&($iu%?PemR#DD#IsBN7?ZmZg730-=0HQGnT_z5iZb3pPR1L&GE3!)# zT#PjVynOudM)zWUxd%}(I2BD9e2#G<*S$`VO#m2}wt{5C)p=3sOz#G*^il$nz*eI? zFIG)7F7mAgpWZxx`2r9PNS`QYh#}kTG?OD*7h+BD_A!`c(y8Q*!9v$fUQY)fJ-B|8 zhqEO9q?%Erd_?faZ2Y56VOoRCdpinGm@vkSk^Z3G?R$d{S?uV=ZYWv)=SFTf21e@b zgS{diSSuI#7Q}smS+2B1!|sa43N9xU;xeqXKpI=ob6Y7bqCpIdlg%nBPJxrvjaaOx zp~6U2eSFQFOpD8vYHB%+^3z(l8U>hNGm0Tv9ectZLYSCQEHh3$6dBh8<@wsl%=nD4 zZB%Z>-@_PHvRD@oy|J`EWtN#u>;`0j3ki0%n+)mMke$b1Dq8h6W2Q$FP>~bfrxeUp zQ`q-nbMukd63;q};LqeGTxe}Lt7iAfs(k=$^rKup*;Mbe+82>-0}f~vbgQikw^X<- z{eiXD)VePVr-9pjG#vHiYZXCKqDyCHnv3Qm<_l2UwPTs0Kqr zFsO}+Qx~KKH*??Yx5@};V_;I9_wvf5lJbK2 zD8Iu{)-`ij@hCji-VScK9>?Orv2MTT2N-J?GB3=CR-MX>1;H_6Yw0SU<$Fl3;+oUO zZlX^pI7f%G=@{)mhg@lf@A5jK?yzCohg>N52&3W9j?jCMuUr22`W57e$12idZo^wU zghZEl$KD~d^~JZM`^dNGs2By^^BYHcGg227M<55(rk3G$F4-AIFv}sT#6$w~9yc(oc0L`0tKybTYl&s{l1MzR z$Zgm(kNp*J1@>+unf%RTW!}}*S;&QC6jq549*tj52YA-gRJUtt8gW}6x^RX7Y7yY(;Ru)ChVJUjFZ1Av~3)Rq5V_TV~9aIB_|;u3!R31 zXyD~3<)_v?DFrJF_6Yc|da#p8k;O7Mt-}G&%mzP`m+c~blU~T|MFb8lM><4(`0@_OW@SCGAd|#^vGxZVLFN8q#YjTP>y9G-7^E2dYZ-mK&9Vy zeceHtp2f_ku7u6iU^AE5xQ9tO_kfrAoW+%xgX0Oj9TX-;QE!*e%tU#=FxXjNhy3=a zd=FQ}HyaFnLQW)^R93pD$dXbqOd+{yTo`y4@pvo>7{?S0+lMk4$Ura)ivXZ6k6XAa z;>rxw^{k#lh{g|59uGi!A;@L9J<8IF?X~i{YO$Wl--NTV=!3eOBB;67c{X(Cu=tpa z<1;D1?gH>R1l@~z3=+MD3MQo=A6p_xg^aTCrI4TS9gRUMviRf#Y+VE`&d8oU@I;u4 zo*kF+#_wq>dxF3!FzeNx0ECIiGdY0a8IG%?V4$-sg9zsQa$wvv)nF3Z$1p0sT>9lYCB$vNMW$rVnwrT3^8ebbJebn{JR*LIua8S2hLG6<_&1;u^$rLSuyM2JBab!3735} z*MBO}(A|Vki>qmCW?%R0xbbp{tR-{BobAdN=)GnN1R*vI#)Z+)djn@I#xD@ zM(L)--V&>)SlLUGhM;r*C)0E(lCiDkdss2laHhbX#cd5g9TKZ}Q3+>X4+%=7;!j5`$D^OCtty6*+g=B*#B9CJ+l^cAutQ9I z&Qq2VLuxUpXfRe$Jcf9kG$e+)UZ5+m!}}-DmPbS7r#L#rn#(xh{wIPYHy z9iHi$pspiK-JR$0NuuLTOd+MLas`;>attPgfFP|>#JuVw(x$Di<2J?H%7Ai#P#=7& zxG9WGNHYHprL{HY;_6mV5pTUjq$Vp?FOfxCrNpA)qB{zfxt{jn{GpAimRJxQnmz;h4j>x14M`uw-tle?W%Q9{kRj{~&l{?csp?wzvg zj+AzeD1o2agJ@dJG6=miI6KH7qqEGimNz_h5Yp)2@c#?SGB)KM7FZ3n8{1Je^OTqz zAmJKb#hfqtsl>TIIgd*367e=2%J#20D1Ez|?MLm7eQ8lW_QWuiB#tV8e1+o?g9qmd z$g>cU1}kYYfiNua#5rt(KQU{eJ&RA`;&j%Ba4qX*x$^akd_B(dnatO_&z?LFJc$J7 zTZ#-m&C-F)^ERa0Ifw^m&C>bHL=LXecjOM$m+pkAU{y()45U5j+yf3GS`9g=s(PzI z7}^^;a7cQ9R)bQ|U(nrE45FM|d{pq39>y|U1Q$ATH z9AM9GALb_xvO`bpAbMCMpZnhJF{#=}iE|@c)iM(=f)ZOH6Gn*$05+TxWLiDq&;@cw z<*HRxzNZLJpbZjRCfO<#sykf0MZmWi%V3QPQJ(q`h?`6^;$xdcgvy z^vX7h;&I*Ov`DEeC z!Uuz9MLkBt6;a9Ve-5edOMXP~ykR0)9EO@4d7eW77B}c~M&_~yptI5=y-xPigUgam z-@+au+?}jl8ZkmVx^3Ht@vd8<%7vvuzO(4>V7*`?yjSngasn9@rkmh6Zi1GpP;wfc zucqW}7EA{lxWV|@Ua8+;CG|i%Fwe3<>UFc|xQb5xVpD492U@63j#8or3IW+F!(;*q zE+&kp+vz;!TWnyiXQh3_@RD1#*Z7hNlgo&b&o?{X8ME|m5v3gd&gOfCE%om6DXd1TGj~iT!ba5wqBG?Sh7VD{(?6KX+>cQk_L7hDA1Hoo zI7X|!nesTZaHubc9CcWzSg5+MI$ZHgWnQag@kc>P>XFCLL;+suWF6{wBp75L(@ZQl zYw#?%n&4LeV608>%C5ISi(^fWdTG45lsyE67BpoeRxN zg~5(c=ERI~Cby_NgAc0QQ|Xi%)r=ZXMyjdCt8TD0hh~qmBleW8hnTwx%~VFSuUVga zjk~?GaGAKP3$}Cu_b#W{_YLP=u&wFm7!o3B-Rk})$-=J*oOmPHp@Z5i_XUW;N%Lop9^WvNONfT2ve0SGjaCFIaB%=GYYsu?h!mdRe#W(B!K*23{_=EhR+SkFNlzDG}GKL$S~RIQ$0Kn9dw|w z+-XaqumTom&Y zZ9mTBaNiW%Ww$vj(?x=o03E%{4Nd4`+r^zgHL)Y0k2?zXPj=3T5?bBQf^wIOE9HL{ zXY&62&i%*Ro=I08%B2ndc9FhzmRJTsc5b+=YOQG&G0@QEmZySVNUN~irXS*%olS4k zpji3pn{U(&D14;2+$unbbH`k-zg8D>qq3fRIXBbtF6Xsd*J;GIt~(!-Da7;fSFh`y zga7)vc$uOI46*t!o*v8?Bd?%jsXU|G41bH=|9;A%DM()S6|jenqG}qIRLZY;6#tk* zfB?!_Gz}VN*)Yfl_{d9UTE-=q$iGKyG@A_yy++z#OYaX4Y`^NpIZFMHduitiyo4oeOt zw%~)47D>UF&hk^z7_P#29l3;0gPWyTM(1rtW#K@OndOk{Lbkpx-e<&pdlz}Y{hK_Z zl_607QuOqEt+vT~d|6)?YbK^Z^~(=SLe!)D0mj)K?r#Q`C=U#+Ba$?o3N)){cPuiF zHQv@Zly`6wyokXls4#YEG5C3`nX!;&r;>BB!Kjm}q-0j%SX>UQFOzt{*yL~oi8&JX zFPU?DZoJybt)4V_WDsI+|3xbL99pgdyBmccs`~Ig8p5Ai&b}V0Z=ei~+&D<3 zJX{yK(I4A@GpcFR@#qa2tSLh^8qFN{F4PIpk{Prr=C=ex5EcegjfMwpvvM!IGK!f| zAFDS;#g$_lStc;#k&Lcsjol?4VW=d&z)P%cD7l(JhRS$i0K?xL72X(Zzt&Y{&YIiE zEay&)bYqIe4arFT1S)r?fbU)8#4HU!Wm0BuVH6xgdd6g6*ZEqTj48{sI2WhUbSfc~ zlm%#6Zvxsh!+t3HqOobNde>A?^!8MTX{rjhd)Pd}hx9V#g>cIOj5@$r zloJEjo&;rE0zBIG-n|mA!qJ$_yx7=?0!fn-bDKk8!#oSMr9O#QL30gc0hOUN4AZk#cC+7?%ws39H{?Q-?UWb zex=81_nW82AXSU?;|}Rt+|shrg_l=oUU(I&esKZcscN7VFd~CO9#*R3H{p~=HsQoc(cnIyuh_veoR%+DPXw}RiE=PDVjqt67 z2mY}Zp`A|~9kKpEG(> z4r=E)H=r($ECc9{25^Ld`2nO16!$;JJPwbWlg!S7joOF-ZrowBrW8aQM+uB~=((ob zh`COP;6-Kv^uJ;=OkAxvy8&D}O@!d!lx)|b*uTQij6>{Y`Q+w!_Hsk;6$Mg*{_nZ# z8}75g`h-R)Jg!bnBrzVne$G0@>_uSS3f?BMX^6qMIVVC!~aa24kMh0kBgf= zJCLgGK4f+nM6;7qa;M6n3?j8SZxKd*Bcr{*A^B6eM(Lm|)d?S#rE2ED3=HE=T|@Wa zL??Ta+%xyFV$(clP%Z+XsG^uI^2lLo*sw%?ttWN}Hb#W0Vd5h=&nl&$1-8L^lc`D- zISo01?gS+iR@oXN?UdHYd*y*>N-bfZ?)W5MsARIa7CcPG2#l{TcEtKGhY!~~YtMJr z{vNIUWZ(8)iXE}R1)LY-CasE;8OE0ppjDX_#FkZAd;c37W#8Y{dk(D zXMh+gvd5AKtdz_ToZ|^MI){k%Qcc0!o>WY<@#bOsIvEXxo71o!!AVLRQRmL16oB}Q zK-+slE^oCHhS&s0LIrL^|4p{WVgfO8C}4X`$%{OAOJyo_#>r9@in?TlwK#@6GlWyj zIJ4kVQDgx^-WPPvQGf8^Q%j(wX(rcntcbrH9K2uO=PO01E>bXNp1WjACq5K6PklIN z^PI~p9$iwH1-^4Ki4lUUcYFYrIU#nK*_xeM;XWd>>Cy2-NNkJOg-PV)HBlAOKNDMk zl2xB#DsXq$>ssl8V20*V%cyYaOPri=B`)0;*(5#HNI-e-@qx%W-K02Qap_woCsbAd(Lotn;oE-@r z-I>RNS6qUB(pce%d0asEETEbhNR|zxD*wOETX1k+vuMyX#fi#;Y z5U>*pTwlBU>G0CF+&|bo__%-k;@!)={lm?TCr4H_A~2RDDy<<}N^^7LiIcruh{lUF zDP&Tty+OIEv4y~us;w2Q2^eo|i3YIo_30Sgj%_`r_omK4$qgWbs&S4AWqibzk>jyd z{tR0u@L6qDRx+?5EZjA-N-~!Qs~5|y7g&2mVS0Y-lziV&f_r zak*8?!x^Wps}ey4H(~i2ukyRCikdp&^VN14n0u`FWTGwsCG9t(qf^L%u%{p2J!=g; zd@`;z=d${Z+r=K|%6e8^+PMpxxeb3njSY!1{d5KwGMy(HKIvSzqi7P3FH!AJ_e^A4 z+8CM3q!^}ECFfPI!|)bPX_E5GypR*XmZ2mxEltGh_kzD5KhO{CYE#9z*FsF=DWqHy zAK$+IKZ3H#7@~lNDk-UgMv5t^oi^~&;N9}|dq;ZX&3fSAz+y5^_>lw`qf(9(YtL#}jSg&Q6E5gzX`IKJkq0Sezfh@y z)UYVjI^MTnU@&%m<1zu&0%pYuB0fJu<`MZR&I|8aP9c)eRVl2N@j?;p!co2kN{xVA z9PGZlbSlzDzr1vMPwni8l7W#I!^Un>$3&-D=5d35vvS2TH0>-Qp6f8Sif4vO6CN1L z0->s527zG@`mW7S02xjg`~VwrT1h@cLwOs%j2xLYAL1so|M??}p0Xa63tG^$OL%nDwtIAoj~{nG zey*67f`^_I8Iy_>S^`a;eGp1%&mj=jq3}Z$0LD3qY??$GhsdNHN-*p_mBvHi@_>c& zAB%9cEhh>@RVJ!3An{TQpErBK?G-I8gGkoN6AC}%wMe1KR%B(;KQ1=uJD7d*FP6So zG=#~1%OG+@xwtcNtcn$BPdX197$Wt`JR2e$-79p&4eM8#>Ey%MjE zqT)2-Mqr%2NcI-%=cMT&2&^|ZB*_r%!rLBQ@o7k1<>}x)vpYw6@IW`|Ol1GHQ&(E= z`90I9pph*-`i(D_!mH?9X6PtqZ23(&V~bYuHP5a4kln55ftNBjIr$VMYx)Z#EA;eZ66vMi z#khzME1f(3BrjS&HBfZn6s{(UF$%uSQZHDqC8JE{PNn zP{}Ao6PH%QrAg@wWr$Tz>2E{~t6iOlJOkvZ5^Nb25@-mLNaZ58m=&FPoM@M{lIPh zb9}h3t&<#6aktsco5;g)c2uN7CdNVg5G9@Ld<~dY zsswhU z?=LRdLSQG_G(;h8^z@|e>y`5oD>!m1_hylr(boKyblN$J@^#$Hz@S*Zw<-#2AK=G# zO73?hcKT2`G#IUbM}uOFEZ+vZ&mYab8+8x43_7vi6F#W}@&*qR1~OsFu`P`SX&|y6 z8J0rXn_QLlR7eSVl00^0$KW2(F@?I+!y94-!YAt+99NDr<)#)23lCGc-|=_CD^d9a z(Rt3BL!W6 z|Ao*aPTGY&Uc6^XS>8}iSZ)eVX9s)8c14ZbC=*_4EwQD=CANJUbE7|L2y|O+-nU-} zZM2d`sEeo30{#ZdEW&0R9y3nyXo=b121&n56T9hGP;I`yFi39~*X=R2Zw0ZyOARSm z%pB@YE{ANClRM2I9KurgoCoX?wZ6dChGCpJoP+h2#)1#UfMZ&4+RPCftMxf?tG7Wo zO@ee?2}$ozO+!% zLxxLR_8oP>_SPNxj-P$|uo1f63HE@#xXsQ_ib20rLYlCXIHh%TUPSax zCLZNgTCJ9%Z6S$uM+Y(`0u7@mAetIHl-JT*7ck5*yLI73!5A1zEnS^{LWqT;*pSvB z90tJ&vPy@yE>6b4ehaDg$^Q6IFRL@Issnt1FV#EEk0<&k3O4a|VC4iDR&ivAu# zO2?3Ia^Qbq*lU8RRx08H67?Qh+eo7-?Kr|VgLy*qlHE!m|4 z60DLTl{2<%EpV>ko*`qynzW&~ni`3Jr%L_n0AF3@bWXwq2!qV3u_;#Fuy(9-cvZ!o zRzVQP&L|CQXJ9U$JAC^^O<+l&qV4YfkS*N#<-x)87h7uw2X_{ZqvA0+n^BWbvUKq1 zWqxZpaQ6r(;x;aA7T! zhVujd6`HTlnO2J7C-zWm@^CTkyh!q}7g1vnZOH*x;{jGajgC+)m$r_hVha)RElHuE zSzbtiOwkYwS0U}=T>^}Kp@S>HoVBML#@o9OsSltqiM=FD(zqL7V%&#pd5OA|IHeDl z5VIM(!N^JweCGCTc*IMJh_KmGL|{`PNSyCSF9N29z*2WyncN2`u!|82cXCEd`Io0h(ocqvt8EPwGG%-8hCi;I;ln_Z91(E_SK1}xFa zNK*HQfBfs;{{5f-{y+X-zxyBl_P2lkuYdO!fBj$o;jjMb|M@q6_)q`mZ~x(Me*2IA z>+k;Kzxmz2`-|WIyTAOyKmM0L{QbZG?LYqSzyELl_IH2zch=PZ{@?zKfBN%(_q%`j zUw;2T|J`r@^MC)lfAz2b>p%RJ(b1p()$jiA|L*ty_J8@^U;Op&|MGuihrY7{#WjcQ zcYpcURu})@-~0=+m;ddz|L`||_&@#w2l6lft_-IHpsKT`z_O$>PAY^#IMCw``piJ^ zF(M{ynuLQ6*ALKlPXh=BCEGws776V{Tk?=iGfm~7H_3$aUW=k=YwJe?21__#Km#5g zXx=dfllD3o`#V}e`fD1Wpi}&Wi3g2OoF4J3Sg0n|#={)H!VmRntbp(#U}KeQtz%u;0X{v@%0Ob)opdc34PY2?5e7_DysSg|Ir^ zxZn-eY4zfM0nYEQusT0g0Y>=m)jnlXo}FMCs++C@QzA@B#t=Em*o|a|4JY9bzvWd=5B*HR%I#FLR=+Ih1~3 zaJzXP0B61*ClNaelZB%&kv*-b0qLR)d{?uHHZ}oKc}%pZ=_UBs?!L*}=+hgWgNRSG zQ{JUv!{Pv<(iac_(FiwBljl6DcMGHu927KSX}B6|B25SG@;Fx zHc!16gGB}*2F5>$IFzeOpUrXm^0~_b-Nf8~B zw;<6J$v*Ti24U%xBerL|3VoVAU*;k z*<#MKA7Mc)14{*Qak~#rSmOqs>2NQjAF!b}xSWKR<_nt%P_G3v>P>49WyjI>NjRj< z7j5fc5<$V^-iFNqwOTEzW51;)FdPv5Wa;ZDL(77kO!!J{D-KV=hJ(}|#ZYNsf1h?S zaC8@B-{REN_<~>;8x^EO@XaM*B7YL`^QV|rmU!&-)36W^N8}MI9>HKsexhmSPx<-a zDDBHO#FFOEa+^>P^krd$Ts+XARlQe9dMcY4X6Yc#B?Pb2STz{ERznzsLkU*|jqOX^ z9Y=+MJDwC=&Nh`Q)Sjg-NI6=SvA{S)I$<8^<7>NU-k7kKwP&hU_zBZ+;R)E41M%b`I4!Y z0+q2CLPr%WORg>x8l*yIi?xTwcZ5l!lL$x0amqJ?=!L#sRh6w9MV7sc!O&ikh8226KxVy+gU$-FMN)$=|=T5-lE8jR(uCwQu5KAo!ZGR5*N} zcGvTK6g?tAr|&rA{;CIn5_R^`yMA0mStyUB4$3|3LZd`G(u|h}poY(4%zl(+c9AF< z4Gxf*QRf=iksK%BA9MixzFj5EjzG3caLnf4aT7!Oyk0 zcMc_+JgVX{=MgzkK>1ci%xSPN7wrCeZvSp$uDx*FWOKKc+8_cLKj4al@6)bdi*PKB zhyn+vj#Awi=qlG)XM@PB4Cz{5vQ;fnsnpuHGIo0D*T5Zt|Bvc?gbooF4F z8x>_^p>Qw%ou0(~hy|brFAdc(=z(Ks7jd_}&8kFBMBj{9VW7h>Fv#_{re&B`%t;SQK~fx<8iN z_KE7XAsRalhk!((wgcxN1sPZ_;c1dM0>^l32mkEgo*9V5=$0o32^r zkm&zfN^CbLZ14(W$v=yP-HvJ&M{h8cesQzn_f;oxzBU*Z=M%Ve$(y#@7CY`{dLB+7(rH7x(wg z^UeHpdFkAFeC3Tb36~OUMVjlvvvDZI)Nih&0JzYaX&Q4ewn;=4^iqi+14&-v8)AL% zFzb>u^3p9;H>we}L|Nl{%57(qbOK+1&8f+rc4lhS4s3waP$kwiAj-YB|YuH1W2y{tGHzQJ~30^mAWuRY!f>)N^_+n(>Ta|g6Jl=oqN z6`?uPav$NvgzJ=iVvo5v>GVh4D4&CMZ8zb&&iEE$o01dpHX)Iw-C|4hH=a8za}EtY~Wal(R^tI1Qw3C~S+!palMO z)>W3AN?U-a7t0{7tCL6_=qL}onm?Jy6wUFLD_N_FJCM}x_?W-~jUHgQWOPwB`_cxB z!Umf1PMQ>uZbNZwVW(g#Yz}|)&*xa1Qy1!VdXx z)Sh_gELj??cW+){hu;0x-8Qvv);b*9SgVUDRBKkE36yNo{f|+ z^_DkMvL|}8Qj)UKPDOvJCg17VQzDw6g~6hE*e zIln+7!zL!_X-c5;ChZ8|&C15$an3^iF zOI^EKt(L5+jP@z7uIP;3bM=DUI5rOVd$VA9Vr%2RrjX9}5GHR!qBE_b9EPNft zeK7YkTG5cGsvq~$qp&Z(K?}Z0$ofca+=`akr!8NX8Wy>{^>+8=k~!l`=B&YKM@*-} zBG*l$5>#yYV{V;_I=F3$_@j{vw=Ok(hhrWW7Z$cIDx&4kjWbI>E(2m}o>^4S|R8-xzDC01LKz4(?CMW<>Q?Mmvl|0@xzvYekRPL}7Ia(0l=Pe#* z>7gHZrgoY2jc-?S4ul9JR;I)26u zREPO_!Vyl^va9eyq8;OfmXQu+p2H_U&Y>otz0`tgg>tWjr(sORK>_)|QBIJIR#Ni? zlxP(&5$4L`RZIe5za(TCug6u`*4AiC!`ilvGzp0-aEGsw2h%;U)}!Knm-QOBzMxq9 zgi2zt;;c-;ucGs7S_`Dgyq>mfsAgGNZkT3m2_Vw;J82Z|bbd0NV)bg8^9=;E0>Tda zr{Q@HUO#SgA4v_n5(F^z(VCvZoThT)&?!&u9AnN2@u^}Dg^hhLi=rO{gCg3MQ{KEW zmR=x_*SB_l#Y1jztE)hP!e>NMs;sv8jlT{ZWaT<>zDfW+b z3S(FcUtw`7OHgp9m4!J?JSUGemowIxZtC}3c(y^Ltn2*y*^Ni(@I1o+qCuy@p2eLk z&C_1N9;MkZr5q8hpWXP`jptxHoaa2l%LsyDchcc`lLE4zV`ANfGy_|UB8!hkMa0w9 zroG}6V&lS&6(;9DyD=PPLkOvhYQr?cf74OHdJ)Ejg!qt0=j=EOlOpP3-#cHgvF*(# zJKwEtt+DlO_Izve+x5q5kJ;SnHe27GW2+mF85CN5vGeuj7JIzD{pjiH`m=4e`t&LL zZgp#Gbz^6JZJT|!zVr3ZZfvc6wYv3~?QF80uh+M=mNyQ?{+)fJE5eZ9J~y}9=7+7{bd+lEkf8(*;}Tbs{*cH`;hHp2X3d#%YHukNfu z-RE1IPu6#~o9w%<*LJ>M+X9$ZH`wZK-gIO>goDdYa5T&*yh&H zZfs)loz1PC_01RCyhf9)ZmmOJZ?^ej2dZyki;p%pHrA*~z&WDf#WuC`d~NH==GL=S zZ1;&d2d$soxK{dRcNTzv2*a|;$*m%sSG4C&qfhzvzzz=;)uwu8V$`(S9*H{bC1FVlfFZiA0E4t z4I-3JLDVmZ&C63apPs-fqRT@!CTU$a>hxi;#l>9X!O!%|F+p&w4HgQFCt+vXg&lrW zymKUB6a^bg5N&=&90deHZj6}@od*9Qa3=hCN5f$j<$1(C3ri!m3$!)AEWBre*PbY% zM^+`kAe=?yj*@CX9!XC#tHZe_i(0~7m3J7mRF{|+RP~SJdq7dNuyiSkhI}hH6!`+W z*-1As(v$>KJM5%%)Qn`JNjO6Mbf1R*%0#?4?r`?UPh+jwQ?F0ShzYgO5r{NFhDCH~* z0ES_PA^-W>BLOIc6|w~b)OJ@0OKm4pYKLU3ksc0#g5XmiK#P^6c8Am={9}KjyPUkh zDNAf9T#^^uwBhvlO{p{<6t+pSLns_@amb~H@iHhJSP!JsShhNgHG8d2CihU{$nAD* zuA9QuZ=oOqRshNvNv@&E*-1=|ylKEcy2R2fA9cW6rA?V$xy+C%@JoszFtBie(^wX4 zx#!XLN10PeV^}YYA-mbps9;ITyO8t8;zGsS{{rxDa5fKeZ+!tgFJVt)?~xn{4B4h zM`3cifSZaL?SZP!!OdgNY!2-rJ8AM#APa9Oq^?!s?be|o*wFzm<4a;lmns{0&=E>q zDff^jGkrrC=LinMCObH?-H-Hx)I=^*>MMtDuojWR6Q=7zsYrCa7apM>ePq0oN2oe= zZB=MF7AZ5CN1?eOFx9nqGIYT~sHK>g0!E9jjH(BrS?eI2YETmCH+7_wSNMeCRCVGS z{LyTKFRu;@0Y?@Bjw%o^HXNYz1t6)rv;xK|KnF(RQV}_{f?ijygKpGoX$AGwd2k#R z&}4wt6pj{*5MWdaX|G|ovYBmRjYq{972}Ju)FSNl$i7-~SlImAWYxi$Fn%Jq!XYa_ zY&Effwe1JptYYfg+8WN}j%0NKT0#M*t&1ke&2eZ)j)^vY*dS}m&l=x6Scf^6?O{55 zC36p~p>>M0wlmUlOZ&{*0^}+K5~>{zMHc00|8*qBruRto zg#nAsGx@rNj1$kxwM=YsrkgXc&NG1*G2^onn)#=4ly-O5B~HTTB4GD==-Ip+yfZSh z;Ot)}Ra7pDGg)Lf)o$L}tMbL0KDMxp8ppAN>E}bTtQOj{LgHSuW7pmp%-99gZjc4j zRkv{3Brs%F>2#@kqFDP{$=%(xx^R2Zjl48_6A2cO*tom`_4}=Hxz)*f?$5ZJO*9wS z84vud@wF56O_X8m&ixt4B)VbNo!ci`twA2|`|L^)jbnJFt)8b3F#o2akKKJgWr#l+ zsLGIQI4|le6`qA$x2a1x$}`Nou|-_8B9X>vrgYKwbWkOCq9B-XtMrL0h}EZ^71L;G zJB@fQZ!=Mrso)lRm4nbz;~;Dm>C^Ny${vMa=Vw(r@>M&ME~DUeD3AI%Z=`e&xdHKH zwo=dw4v5yj>wkBWRV;VybV5yhEN4XX&Bdcn!IuTgjJFCkC}NHgy%;z*;}ql!n7=m zlfLCW$?nWv(Drw0vD#OYQgbu%QW?tCDEEVr)X^N(aa5rFG0%SyQvgwsqrjoEsnEuO zw%765FXLklQCIcpX-9iAI;s;?T12se5ze3C@}oIHk3|5$B>`q-dc!Gn z0L<+*xrsSU8@2`XENs>trjnGY%HgwA-dkF&R+&5y5WiI=GwGzl28xfbYzS2`dwid# zBh`xMZ~q~uYu_U5KY=~l5YW*#-a_j}mSB?u?Fq_ovOw-uZA6!YfZr5+M!Darq56k7 z&8jF5MOzY%%?TF*-=Nf+$JUh1vVus1Dc6k)9mX=@)M^6Z%UPrUtypywP@YSMHO_ZG z6*@}QPfy-LP)U?Wm2;EzB3|5Y;L|R&Dy+Pe#qZ=6^tRctgYCjIq9l_)` zA=jxy1~SFNup~mnlD6SRH|jy&#;8}e^2j661U|Hm;-qVbr8Ijeb?L98Sbn1ud{d(* zqo(<`qPB*VVdyVMQzMGf)1=Y^vWcE zm3mWEYty1%^~PJv5bKog&EP-^F$39B(|VtD!TWRWhg76>lApK$xUJ=D;vGrZ@V@5) zNV~LHbuN|i_i0xSi2{M@iG5+iH8y;)96e1*oYrhA&QH90Zq-#w4Zsj(pwFBe5Q;vn zL1AjPXdQd%iu-4cF{D{Qu(?}$0l^zZJG;~nmEZTZ7$)5yPCDrzPLAD;>H!Q)7)3o_ z+j9E|xJ;`NvP!Jo}HZyEixY3g)&2|J3u2p!ydM9pHgxdQ`^X4){O` z4nbWGoXCN)WyDA%*d#7{^+5^YZuo@%--6{Kxz9#Xakz_`S3|zFg#g^N#36s?5Eu8;hasIP|`TdLKCB5Lw(?Tn?I{!TtoIlvV zyVt6GzN2QOJ0iD5t)=<9`zz0bm7BL3!Ad(=Y2%B%?%iKCF14rKR&yU--fA>f%yQ3M z<(`$xedj9oUAf$2SGmW$+)l9aaCfhJcYfc3_G?$Iucw4oyoR6jrLnTzSZS=R00tKp z$jj`cD291^VIeQV&MOF;(d(zDpch;S7w&(u^y$*V(#Ib!E`9tl)JXeX#m5(E%JP1C z+5~?qFu(@)qBJYmD2YL^tkyv^2;;t*q#%G*@WcM)UiWhM=Fj(T{mDnS_wMZ7-J9QA zc(}K+_v?ehi@nS7pY31n?u`}~R~P5^Mvs5-Btp z_F8YC)yAF1Wf1J0EiX5M0DmlA?wu`u*0>Ywoh^3v&K5&Jwt9cJu@VHkduNMF^LuBD zpYEM49_^hicJ|H|qxrqFrQY7zFM9izduPi_m%Dps%lGE@&OSZ@kj_5t&hMT5BAN!g z%V2L$b@rLo8Mf7%rmaS!ai{hO5h0DnFO8X;0_<68sXFtQd#%fZ%Rif<@|{_FY&7;- zjk^Na8OHaP2RF^g_(25=8doR7K*$wKcK6qxe-Six_x4-O2kpK5mvj5DH=oVuP>IGZ-QA-> z?Cl0Yu>A4v;{3-jyUV+a^Y{1R5QL{C{Bf~7Zd?ZRbE&yJM%uZ!H=dy$uIt_P=dV9$ z2Z~)-YTh5W8yCMAU$)z&w~NhB#+RkHOJi5bj~ykKoh9!(O5Sspyyqx+-&u0mQSxJF z$)$0_e0%v8CxK=`@g4ix@A>^Z+6UMt1%tAGvD_Rt?!xMNP)(AsU{~kAU!4DJueEn` z@8^5B_Woq=qdhvX7WVMG+B?`g+`HJj+#B!x+1~vA-CwFo`*5bqr}=##fTgka9T|YV z)>JhbcP4_(8(EzH?B>tme7$pb;o%A#te4|Io8P}H`}7rP+_{{CHmc6Y#@Icp>)O#X!V5|g!p`%ZO{%e`G{iWAMHMlzSXi%a_}_!IxPA}Fk0 z>C19|?aBB6T!edPAK$Boi@QL)8mnz@uFDHQhoAv*ay%c-XVLMfA7=B>8T!A+X~J=H zfHehj4u2i&?F}#1FllhqJ$N2>iu5=OhbM7oe2Jf+_`#!eFievuDaMVvw+BW#0+2G*C)hBY)guCE_avIPo&dI!mF&QE>Hl-qqv*BLtyq6 zf_uA*^ULsQnJ*S||BQ#PKha1E&-0&7#dmTl8kF;i!5-=&0X`|sUySY7m#%_K&0mb$ zo-dz_+cn$xcpQ|9HV|-6h5Mcg_k0!Zc`A58TJ}`0Z zi*2*OA{K!E{|T34;cmUu#AVX!^?E^jkv9V*#VJb?grJAZC45h0q5VYq0d&+X@1215 z8|%^{Rcn*`iCljo*Y}HD_ZEUBDDo*DmrMF-X`YFGdEIYDQI3hS7Jl*RCyVz!TV8GfN1xoEALZ~$@l1Th&{u7}sA;*o05V_@6`Ajr#}6M$#EF;p z#t$2f6$@}`ymdUvMhn7RAm?vKS>FI*l=YoZ%pa7YfOpH|;Nio@iUA0`zc&uxwS{G{osO~&2CLuO>w@GR{#h3P9Af1ph1@_xb{>TpQ>mcpv=#)5yG!>z{sqkP z;^oqEWB%UKCB74U((-;|{@x+UY! z|K!vC-NpN#!j%Hw0BoP_?=F8L-Yo9I*WE=`baC-gE4H}Um|t9;U;gaUF~Z$N9duyt z0Q!4C-VGSx{ZC*-OO7Io@O{}HHZG3_j@%j?55lq)9j~1YgTr6ny0FGQz6G&7WNefo z9_U|#Fgups9}5c@RXr1T0-E}^@ej{TV3Z4BTmsH}`;9g({Jp)d{BfuPpg@PMVHS1b zyktVb+q-pvKgWA}E$H;tg;{4TfY74$lv`%px1+L$fV#NbSUEIRf!xd*?=)iv_6)pf z>P>APoS3HB7z6#TcEceA?wqKLxVLow-txUA1qIBo8xmt$%A~O4gX&O^(2@=dJ?b$$ zQurrCa6j#YeMnmJ{R*b_`Cf#IkyDWNdU>Szf2alygWbFH`<$Lu=--B@U!I&>7g!Z? zg9dY#bB(b`59CHT)#3=2$l`8h>(7ID*c2)pJq}R7-|?8H_tAmlrY!i;N9xkrDx$my z;-M?rlrl9Q`?pm>A)b|7YzF>bJhTXNK8&K0C&G=mw1ozoIvtIuRyWeQw|C?;?p*|jA zB?O8+FtWsa$mBs47U@wyL(u(`G{+B7?WUIU6o^1JCw3_Va<}n2d2&!iNNt3~B%Wca zYqk;gkAd{Gnh0La7Cbb`{do^uJ_}k4V+Xmy4drT!Q{Hjj%mSUMd3%w{=s!HXV}znM zJ06e`zr&S+0G$duX_R$J4nitY3wy|@mvXQl1)!pB)GkK? zQgz^9C-h0nA@xys`=&F5<`{xFN2H@J%g zQie-IAWNx{^gmZ{2{s|(KdYNdxI{CdJBP5FX1@4PXyzz(Yy;wtr_}q2VrHTkA_XVW z&>mK#>6bCYKb}B8Wq4%$ZCLWo7Cx_T0nb_LAKbWkOK*ZwRZmrpxl_|Kn~|p3)O5|J zplvn{eKSSllM7Bm=B$F$D}0yvOjS|>yXLu?aAvWo&n@;Nn5{RmU7=pzd&J#TYJYw? zPz?8balR?BXj_cMkM0Ua+Q%A;zxVdILF$I^5dF3a>VdYpXR9X0Zbqt&5vseJC*CN^8u~D&W~^X zp*vai>@9yt)3^L1o4--N^6=|_IExQQ@*|tP%zamJ$FPMz;AmfLJ#}je+`TiOzQ-u= z?xsEavE6Y{^X-W6u;o^`TN$_MaYFKQef-F23UE8>V@Tp$6Uy8oB~m=;U|7#E?yq z9TTH%TcfvQ*Xn=oFTJTy+S8Gp9)f!&>MPP0!{JOl%X%~RoEKqM%~51WI~8C(>Vnjc#Yic~KV6Kz} zzsg`JSPyQh`~FR2Jp7SO;mgxv;v9l!LU|Iw^8EdqKp4-DYX&=UH=8(xWUc=JEkqpE zk82{yCB;9LnwRSba3u24{1~Uur_Rx4Q8)^JFcbO5t)3~PVpPQaR+#5eR%}GCqs)2P zs7SSUAu~mD;JDbB=fl&)nr13wytV`x*{7*_a3;ahBg^W!Wn}Dm?G8ji=j{;ps(s`A zl+)R2QNpwrfU_vecGAtGmw^D-7X$bp>~XM&rUr900$TUgLMogo!$ z7aTm}oP}(VcH>^$!JQG@^0>cqaS}q{`2=I5_0QQ+#7244WpM(w7&#<_V7<5>CE*~- zCymV5vy4%ekJ{Nb*q5gTPkE6~foZ%zd3uzsnH|N$8Tx^n_H^CAm0*UB=q52;S3*$k z>duwRTk{>~HH_qvHd9xJBs8+95ZlYZ8Lq6P@JC@CynbgG7sC5h@@9Nce$QD?s^MyK z_l!#$6US+wBUPk+)!&tKzw)no%n~b~CtIPW+Uy!yH%B0lPHC`bZ=T2GK!JpW~)y%`=*#zF~ zf}eGU}`bWMC zVrkxHg2wOR4*yGK*mVV3<88cKQqxS9I4Z9;`I^O4U1ZKi0n!@hTELcuKyMc4L7W7G zIC+X5>sN&tf_gZ?RXtn>$l+Nq2+ytwX!VT0KaI z8gx!jMBF)X8rHcxxt0!Gjqh9s^j^pX$8}}srQJ%olQonaU$qAwwxHZR`1)M6aa2pW zAP4F2)gecReFx+()*oLTbaX8(H@>mDv3U*63+Ll<2am1;`i=*BXngrvT3>cz{^@mK zzVC*8{rQ!f2J0aQQq~`DT^%QA6H#vbOOiidwRxeb_jLdg=XWS-o?$G`y+QJt#$fvN zh0$$Ai4=@@cJ+hV)r@3^J!&_k&IvbQ{{nz%lMhr+-2*(aae|MdRC z>B;$gH;wZ7LE0VlNBMj@jIyvuvw1@6d@l<-l(=?284Zr2%*rNoZ|N6HON;mJ|6Ke~ z5nOxyG%U8mUbF@LM$(NkxM(+7UPMDdbws|e!~Wx_^C%r9;8+T!T1CodvZ2Kh-d)-U zRL{*dc*M2`S|iY`-U>X=&`eh~p@a2>+5U?0v2A>OV2*4Z+rqe@>q)@}_ar`xx`F7c zA)^(~wdR@tSi>Hf)e0Y6&1U!#2{<%=B3f*)1@MN<*Z6=_7zIz79tHA|Cdm&7NWP zab2NuY3y%5R4y&H4>VLR0befvrb6Xb2EeT!NB6oy<;F>cu`^nH#rb+tM8_s!y%#ol zQ`3O>Q?vl%hp|-{@+m@?!&BlzbT9F-k)=4JR8huEbV9hI?>a^pQfG0)vhVYUdU>~> z(whuc`aXwZrk$u>U|nmTs!08VjSw;t{?%77ypJ8-*Z&Qv=wgPKfHlog@3MjbTj^DGV)^C=m*QM|*6>=|S1m5|j zVq=|f_{ue2fy#1CD_n|KF6ha)psxP&YXsGyWd0Vq`$@+fo_P@QBT+FkWn7XJSGO)nFlVO$hlK&P4}!kelK+d5 zG#Vw6mDgSWOf}yS`SN|x9vDN`aKh+Ig(e7ZN+~kSlgLcr!8>1P74WyPGbE`!QY?*^B192M)NNnD4fovLaVNngKi{U|<;lTrxssepZNbKkhl<5YUdKQ3aNtVz^p=1+_u)^L*W({b^= zRy_R?s}J8Bb(M!j&;Xp;Sg+RfPi3IxGti?Q!uGG8WSpl@s>>+vCq3RzdOW^A{-npl zziZdy&5GU`^muPtZzfODKNkJj+aJ)I*P~4y(+8(dd)q^LyLz>sv?luSf6|(8L|l(! z9xa{O9P>&i*Nl>4YUjgq%u~YTH0?)W;*lm_o8uDi=Iwhf9Z|<0sOu7k{_XiL@e-Tg zlxIq;Is&P_QbtVu#Z>Fc9{BsEf`PaoZ+gi9`Y`^;TVFE}u;c?>FaY}7TP-M`%QwOe zZH`)ic8u&&63V?Z9G0;%{aEWOk1BOgZ(6fticHmHm#uR*{_Tz0m!5iROzBg=nfBzuqy)%;I*Zq30S!B@`&~TEMRe6ZxjV=Ms}r2)iGHz=Yl8J*}vkMTcf1dj1||IO6B)|s ztxt)v%5=o|qCEUr=y3x!?srX!aC&^8ROn7^@$Lu^=5rdm`~H-B;D#~YStxEbIloR5 z_=N=sQ9jI~*AT5dPVyp5I#CV`URs<)8N-gFob|GFz&nO`rUXd~X^VBj5fq7m7;<(R z7bj$q4mQql0%bRkUPhgwrBFqehvXc{Q~I1#Th>pWJ%Fh8)6Ly#a(>mr>s6AT z`gBgSPG1)NW)x>p*TU_HcXpllzbH)nOZp~QfiW@VCEoR!8-%C@$1cr0{mV&hB zLEBSodMFT@Zr3xRpJhJ3goK3Dc8cV|9AfUA}hrlKd5dya-D|MruNv7sZIY>1Gz-=;p`xJ*@yj{g4NTg6e zPeHt;HHmx8D#w@Nj0DaUjF^4FtcF}-rm{bm)yn5}T2VePAk?XH$C^rQLX*fFUUBM9 z*mQb0sRWZgV{FAeK-N}DP=`e>)72w^1aa1;xb6gr&7(Z2rQ6|p9e)8Sm$o7G>Xuwe zn<|BkOK>TuT88NN(zMtb$|NZ3`gM9U5Z6q^;{fNaOlyU@&X`vP+uNB{k#1nBS*7hs z)_t?H>eaH!HS7T9{hCt=+Z&%#n5j-W7^F!n%+HgK$HVz~mJZ@PYK8rN07^zN!TYU2 zI1GZghz3m-Ys`?N4Hy|9v_-7QDs&e}3l(HBo`yf1KM#u&nssWG&Rj?W7dPxdH5#qr zBuauHi}F#wsP11gglP?;>^MSpDIlyh8E?Yw!Ea?l71%>I6++y|*uD}j99O4l2CGzT zQ9pt^yDP$pQlJ6Y4h8b$RDD8}fsoWyZOfM1?4q1$u$Jyscd3~%%iwIFiC6kq6n8$EF{K+tLufY+`*H7_qeCDTc6fRtg{5gvNjS^*z$7}|J_%9! za4~kO(_cmBASI<%TR9YV-&J~X)bDOn=MRnYyRV}2eRH1`{o*Hv*Tc;r<&fcX9asa^ znr}EaX>t;VLfzgtW~9q$mNNkFcdJn-kfq_U*RT;`BmBr0bmb7T>`A>1!(i z6)1PWI(b4k1f%3M3x|Ofo2t5B&@+Tbeb;`VeZBsEcSb{Br}#Vle7JDZf@5TRas+@OO_*g1*1B|{mR2bN(j*k5)dNJbtOQJ1YJY>uH8EQz9S)MfKbNbiRkq=G8qC}&|7u_QfZIb?z>`sWPN&ku)Dx21Qt z-ec$Kh@FO%dv*voC{D6;bbR7yvXN^t*7n=%m29zG+HMu%p6K6qU+wSC9i-UQ+P6edTNhW&aP% zFXJ!DI6@xxx=@6TT?>X#x>*lF*r}^k{4f=I^ye=E^J}QV*!GU7(N>#>MZW|!lIrI> zO``>SUbr&ro9H~ZzC7X@QXjE4G|HQZrV(gSVzQOH0f# z`*5^o1pM1mVhH__kSqX#X3!rQGvB6%Z;%LdbPF1{Ye#2A7Jfsdx4Umn^-bNOPuY1G z{3oj4Kl;dIvt_N3+7-z*7j;Y=l`uNPB7~-0R_0bp9<+DdhizYo6zRCo@})B2Dk)D2PDO=*lQ~6`i-W z*h_P`KIUZDC4hKbrhN5PLdvCXl@d1|ctMHWaAL~MhyBy=Jl~Frwms|qrDe)s>(Qqh z{|0TkX|}AsD-pED4?B(C%VZ%b(MPJ46M3}>wId0KNk!K;ItA9+biDtij3qM$R&eA z2$h{BVPC&d!xxCnhD2g493+?4VGWguqkk}J8zstw@HK5RI)Ba-`yfi`YgN27yPtB+ z)!t!Qoy9r(!W2u7k7?$emMtvMtIkQ>@8VG>OCCps;&>=Rj@#+Rqk*rxWitoWUy~v& zi}JMpItt2glST{M;P)EeWJ8hXjze7hX%qw#4kUyV?{$%t#P*Pdr(sOhTCbvW_rfioS+cKV$7G2C71S|Ep3I8dpRfED(=Km;Og7l%g!#NjHyPmTrp^MEM?VmbTHi z&1IXG)_bAZi#cdr;Qtu6JVR?|0MbU#k~3w5IqFzpjyjAp zTN;4=!B9Ysd=#~SYoX)5#H`G@cXaXRblrCSNsVQ201}2WnMq>wjJ0cxwaePZMEJKM zrkuZL9)fNcQlm>xcaF2Vyur2E#n`JjLUzox+^=g<4(EJb8{+;q1Au=2@qw|hz*iv` zpgsvf4Rg*Oim!}){y6IC8Uljpan$<)Y^U1nanyr7L8~xHx4?zLTnafs6pW?Hf?!@* z7Xy>f3b-c#d3O$X>bdLU%I5d z@}sC@N_oxCWf`yhJ~k^@@?Dbo(r-d!ptp5xWa*P}YfhY;$oEi5hXzi?S^0qIw!wO=K*(jO3Adi#_j0 zVJ?f0hR0dh#k(J906|>{63r}*k`8!mk#`o?>2Y~Dwiv+w+r{CYzRU*kL$EShO}ie5vgw>q#daz%+?1Yc)By zn)joaw*@*RxYUyITztNrc@4CpHqF$ zYBTaJtvC^<*td9%THBUGjcU#xZQsZ+Bdmz>JSgvB%(Y>eXX=z2luOU5>y7oDO6p$o z2o#PWE^0E<7LHk0RDMDR7Yv1D!Wgj3_0i^6x#iU*<%I=B%scEOow&qaXz1Xj+WiZ- z;>nXwXQ&R|OODnr&35_!yyJ~gmfNW3Yr_yMC#yESQ6KE}mGGZJ-4 zFf1EVfXEVnP*wN5cucmhFf}gw?MnQM1p#ZJdQNRSZ>!P^*eW;P3P#?nf+;#V6adTLTuoh@W(L z#z_)oJJQd|KW-P=L{sk<-Qms6wfm5b`}b*gEg21h3PLmeaCnRy%@K#}w{2}PZx({ z7W+v$?o1mn{!X**6Ha3%VbbkKTj&IubLZKTSpY_B!U^gDrbr|^-^-#%vvGmrB?h5Y zoEN!KU9&#mp0a6=dAef!oTASy{*MS_5BfneK=Ezl98RP9bcRUR3oY70d7)ic0Q)Wx zfDA*GVFf;k&N`ZT2^Wo{{Y0xJx-S**SZiG!Rf;aSEtP|L9Ki}eT_unt$0NB;X|CFQ z;gijlcN}lPq#D61i`_M-uWA-Oqi;Q5vWO{e0z|JW4S~=^>JeI|yD5$w)ZJ=hg0Nko zhvx3>RM4+`rs*=n2kU@2sq#$CfI+qD=fhj zz~JjEt<@^Z(ZIy)_>7M{(^8yORkiRUBOw?&dtI|2;J9fAa%KZzlF;~;RW>)%wok%2 zhGZmS_FF6dxaii38e!1pwx2ZXkYyc`oJ@``J2>r}oAEfVbA^&-z}~YIZ?E{%*Qp@j z3*K+jTtcoHDFZ@b;Hidn-jdO_uXp`Wb~iAkWi$rd@r~Ed4Pcd8%zzL+VFlMzjU5|+ zd9L%m$s?NjDIMz{>LIQy9r-p^ZR=?8+A;tsEO2!Vg4;(v@fw7+w7r10+-6jLn!C&k z6GKy6Wfo@nyK*fy>93*|qzj1iP8JX11O%{j2b)xD+P%DVpu8Kt%|8o=uttM&!`4*Z z6ats)pDJWc4-5#(Ga>msigX6z!N48}I7kF8XJonvTKIX3vaDJHmq|C;Nw-;fleI6g z)A~Wxxq`n%VAYkwn7`_ahhr68?doFHeHJ?1K1$V}g+q^3#Lh{i2d<)QY>__3s7tpt z5haeT7dbnMPQur5I?5pE)axiaXL&q``yra87bjsM8cNb^5cb&*Eo>ub=$#1za`tt4 zieddhSplaX3;X@_6inHvXAoDBrFs)S!Sm@!+&RG@SI}dA0ygTQwUzPUROcyC!~7!0mBys|L$J+_Bi9x_u$F2J2f zMZmqxi*qAnky+IjXR^$OT4zd~w1=fO%#)*nfe_2k_3~LbEV;c-lm{`xkYudlj-u@+ zzrTh}b|j{ms3+u+m`qQ7A!(p8N6s=wybRD&h!Wr<$MJJP+X#=j%@66&OtmYoC>$6M zPY#mhqskKHTf)&d?l4zJCA~Zz8(poqIRjeV&~$ih_2PaJWy-4Sh=&R4MrWHndJET# z`K3~yNp!k-^b$qk;0cD;(<9~&=Soq2IGFCOlD-Q*+?abbdup;HGAnaziCWzj&YEjS zu;&#+rI)l^#uE)wSY7G806Dlg!7Ae6NSls==q#-upi*KJY)u4!f%!Y~91jx_V&Acn z=#=umI3hZMf)6Q&J!Fdy_|MOo0EEA}d)Gbr5Y%)PB0TJ3F=uEeDDx$I$c`$?_=yO6 zpdja8zGV`kTNbKMY!a#pE9|2onu6)52(qZ_(Z_tmWS6^3`{Ug!ZIJ$&2L6l~wHRF| zk2<#3@)S~*D~5|BH8dX z5L@ZiT&6M0IaMcn)jLl@p~KFTWH?p>wdG$3S52ZJ#1*kN%?FnDNsiU8S*(E@nvBO7 zIjS@j`fLA0)JuB7bov%ijd)d#dJ&+XkP8dO*lo-5zG>5DIJkdthwcLjOtwf7?gnPpS4Mim=U8 zV`|w@Xn!{+eih_YWEqng#@tYpD@@EZRh?z3BA3;yYMm^~3&Y|ZURc@`Ec4Mvj*NwG z2m8)!U@{Zf`-giUKV#z_;kA=bnGys&6IBrn*2y2&HNfPP(N-{ z4p-E8DM~i-FO;TV6_vAU6t?D?O%+mqa^QFlOPwPI!^cdF{LUo?66`uH8-bbMN_6?U zCz(4YEZy;|gTk^m9&EN&UP|XyVJfZBk+I40sFNmLyf$ZDTRKl4?Mz|kTu%0J!ZASIm#cdAej0fl5~?vuIl}MLE~#G~uD8}u9mtq*l%5e1 zE>#GlHR_W0VIh6dIY4!Mmc>~4_ z6&e_(Yhg;jxXW`%ejeF5MC3pxX$sgxZ2`0LK1jIu%X(HA^$a7%<(Ul6rku$ym{#x2 z&ZJYD!*q>K36%F~9ywfZbRMUbunB`+JZj<}qV1>%xV*(<3`&~|Y|+G>Kn*{4!rQ_G zW}ar5$dE_h-JHWre1or5&JE1O3&`QO!fsc#eqATNLT-hvr$D5ApCmsDd7b3CKRo-V zy0ev3Y>md0H!+8POwK-6ktu3;_=TJLrj#@~+i(jN2XPYcUA4&^*{Dn&2^y@cs^YD- z$&L~&%B+6cS`wln<^Bp1hOtXx#b}2M_y%&_AXBS4$W}iyf()lakWT;@fr9xk3&Lh; zz0#Xb(j*!Ti*r{hF}vZVaudiq!xC1!bA6WC#I1v6mNa1M;Uu2T*ERTQBX!*@{PYvC z%e$Fs&123GRpz5%ltEaTFgqUE>k0A8BLT`|CLRoF#rXvpfAVAq;#Lv`b)^csRL6e`?D1mL{&Hy*|lZ=Nf zC@lo144VEc6NhN#C;Bk|u0kJ#Q_q&eS zNYZ%#ZXP>!+^h!T9ChyZo8NHNgoKbE%@so5i02A5VzTYpetOKh+rfz;l@9|RqXjy0 z(qBvS2A~s$^CIrj7^yi3B9DHBiRIQ32X){)#O#oA;*YGiB6kW>*9F^(%SeOXih6wr zWE~EN{qvxgkd1v)!_Nd1^4+zBMNaVa02DG2r6Qc+8$hac1W-TMhgnXy20~_3i~O|o zr&#pHBG#90D-V0*ykag?x8UTaYNwTtI>3}qcIH=`jBC|uEfS;Q+KI}_7Hf%4UYxf7 zrVBr6h1zRVVaZy1m3Z0`wP!<>b1j-JPlGbo+Otk#RuP2;2ONPrOttL_Ol#TBm16!? z)ywqVfT}`MK-*-I?3HYYt88uY2DIB|mZ7k))<#ohjC6;|1*GAUH%Tf7JWvC@Mo@X< zZ4He+IOIheH-_@9T3pN#2ywTjdpK5jV8d)wFiq$n)5Q8)>`yn@qkThOPs-tCYN4EH zAaJrUE6n-2OftLs74*`moXH%N(vE6VTfjYWiV|jtuBe02-KpqtRBUE+6g?`=O7qL6k;(`yen!fCVk^r}L_T7G{82tukofI)&{Ayv>77*f~KHkbrnz zyZ|lM+IdB|*0jg0rHt8>lH-zj)J$ub3m*7Fl5y26Qq5;v_-cV-@THe&obYHGW{(ab zTs>hsn^y8an>X^!g99X%=UMzZEF#Pp_m!MgbGl1`FC2BZJ$0K>MQ=}lTfI6pY#8cI z(NhW5_mGCJcz8gh?gNi)iHzQA!hTJs$L2RWrtMRrRV%Ogk1^EHW1ADc#h4zl7q zfw<0yx^=I+tyYV=@m+GGvrd21jjjZg9y?j;YSJOahPp{Dx6skvDXECMA>YFk18uD>Cc6QxB743e}Q2X86gK?1Gdguo1Htxk3h|)rAIov3R(&%bM zZW+ewcFC1ehG{4XWH-MFG(fm5Fhz9mdAgb;r|ZT^ep{ZZy5>d`j9MxTW~_ARV*GX( znu*&3uc++}%PqQ;Tx5;XjZGq?b@@xxQMz5-!fq*xZI_W6uM0IPb$%Y{d+VqI( z2w;m$OD*aEShQOO_ZyC58zJz9WP`uDytHCviIk~P=anmEs@TOy%jGcx@oaTa!L8a3 zv*T7TEW(l(koe<14Ctj%&vDXW++j6V(+krwX9E@h7JJ|VmD8En5FYp%(v8?SrlrLU z?3wnv)=`{v1M%8Ax@abmjLGX{m_?j2Jd#%a758URI}4M%mu7=N>8l+5v6_Av8ZzuH zTXt@`!K>GP(;|$UqIt8_aou4RCs!FWmU&ir!=LcB$%9txe9=y?KhUPH`e z_f9`GG1hUto015pA&u#YZ<^LCh|cFbTiWe2OhpMYH_vV#okg8d5pBtGz&3`Rj%TB_ z2#oiqdV#9mvw=-H=hgh{#@!yvZt+(Ny@)$HQ-fqt(n&`Ur#b4f?g(Xi zP~;>_lXR4my&HqnK_Ld4W-szcx28o{qOjYVt2GFYhOpDIh+y)`>%VX^6~qbTq+gh6xgCu*!Mo7^oOLyAE0qf3B70 z=WHe%Jo3s=I(KH>r;frr`tY`?n{kek{s6#lRBlaBVj@ddx{*OGG1n8$-7BAjhpYNA zCtbK`RIsk7stS}M%* zC@VG~qbi5gl!kJdoI@H)r6)>7c>~(6GJ`ynH=^qB&gJtI^3l?uzKe^K=Te@7IjH1Q zlhqXdP97$K451l##2QV8)KuF5+#4k<iwp+D%Ra`j9@j#QGudbmqw^k zX)#K=c%YXOV=3)}DpH|p)S}x9k$1}&g)Stnqb!rn7z;(?(?(RkVCU_Mc~>D?!Ivs!|68rrvHf8o{kcFeYCx;lg#Z~4~X zF!c^gq2k`G59_tr6DHwX3@ta4BP-o_!VPT+Of;L_ux#Qc+Qn|nMuRxVUv8~#JZ2Bs z_W9r_?FVx|q}_v~EKItfCzNFRCA^7zY0=)0$Gi8U%Pp~&6x87Rfc`;#u)r+VFb6UHCTX0MipLF<~#IAkC7^LSL) zAC@RM9o5No&g2A|;JhRAGRsQRxxZ@^?v`nIGm~hP?x69vpK`oxh%qHOSCR4zWITz4 z>)qn0{mNV1BwD)`?VDNv6P3JmX#d)`Fk3_Aj3CrxNB)38;xw|x7AI|H5o!weiKD3_ z_J|H9MB&+r!fu-MeUW&oPsKW75;t?v%cAH9V!;|M)`oFHK^2>(ABBm5$0pOW)ACy?tW5ou?Gsyzdo~fP zeBE}{<{?|GC2*la_VdDHi{$C`10B3&4L+lBt3ft~`VVy49WF!I8-)*?DsqTu;-rfXo z7-j>GPm@|(2kY8AB34bbW4xTy0!ERQRq1I`9ZGdBEAhukwVs7TSp|MiTse`N5coZ* zya+!lE6Ep=YC_;rSqmQ~)}Y{#suF*mR1ZR9$V&Jyu?Cqys!IHM@;)j;acJAAd^K@B zaHBi5BE*Y2yARlG89NZZn7A^?&P6Q;{yeE3st;u?dYV*+v#7F`c%FD}kdj568~k}< ze_YU_IutJ^uQj?VYpadFcyMFfaG&Vlpzrwt*Bvmg76MaZ+BbV#O&Q!+SYV!SpYKTd z4@d<>sQ)$#lk?qu!Q=oTS+*G#)r)t zV{A>_nWVG?wN2VZL+eNmiEdmRWXY^>{z??0$XTio@g{bmFwsg#{h;`Kgq(&dL7azO zi1-Sv6uq#DL9B6A2KWlAK#pvKHY$9!3Q4;`RZemZB?R>Q`tbX9TVZmpzAFY*b%iIs z-jNEk17jB#p= z5PVduc`KdR+ANm7S(Rh$m{!&F!`rG*z~QV)>ha%2kqnPwRfdjctI!}EsuC(mw?tH= z;YZ~m6raUyLX{EctW^+hD5{VaoLm;5LsKhbM1>Z`Aa<52qXoKB3sszJ`g*mZVu`{$ za*!%%M#qtz(lM*`Yj{{l%HzkPMo^~JyuRSz6f_r|W@D}36TT9@zD@5AS&ttm+Q9f5 z8)P1B@F7vR|AJDx1B?SRe-oixfi>Y_`~v{@h{#n^jz zaKY&0Y4W;sod>TW5)%`IRuje!Kd}i8wAF^WcWa_>-k7GoP>l-FwP-m$jzNQDHmn~V z6M=)n!fHS}F)FJ|lah_KZ`ZciL#0_n0m2XLAzQff^MixuFSgbW4(=?N>JqN)0eglb zJvh*Fg>oC^H5t0fOiGtW+9&OSz8>pekL|BAv0q#Lq%UjFp6~qX;Q8v#*KO@LeJdF{ zwac%lB-$!%bLFP?Kwmk6+TsVjMFoGG{-HOU-?Z80H}pHsS4pGWRzJm;$DllIiyz`G zs<7JPhinDZNp0~%;tJi|V0B#x84|pBAPf#M+A_}D3%i_pElV55T9)mWY)>y?Jjym? zZS@w&w1@}MR&*SlwarIaZ<{Z7`BQ$`;Hy~vlwWAIwAD}bMJ!wOTYh_ttA_tj{UaaM zRzKwz$vL%+Ck?)Szb$^qx2wr{oByk|gsf3p`>k35j;Jkv$@jnqwZ#wBI`BSi`Afdv zw55Yu-*GB>mYG?c%t_n*TGr6{lD7Rq(E;!zDm#sQPkcyQ{ghvD(bKzc@^MC0brNObb5Fi29`#!GazFf$#<+-oB`tIizkBf~^9G3Ji zKSW?P^P3QVLn~0;Nz6lCT?s8VLSusTGhAHz_&dj%bYC#2yl}tOSXKIP8#w0MZOJ(E zw}NrM-8Oi5{#9M8Z?~3w^C>VeKPAo!=-4`eOuq`eloOJ_aB|4%K zZ9$rRKL1V|sJv+M(Ew+1yDhJ|f-w|}Naw~)rctrC^j;`l)D=^_7jr9q@%N%3{)4}j zi(9`i@Na_U5ov&s^4UX#Ky6~2&7*T3k%kd!n|O&F3h51);S3wt3#CKte+;wr6?Z? zyzp!$@WL~zz6Bo0AfvNR6m=zZqNEO;AFvE~+3A47D&R`QwxZ*;v!UKlligk?9}CE| zF$jy>ZU+dx!3P#i(5~a43HqSX1ih%DiSo#-M)XI68k+2onD#0<7+22tl$~pHZFTOP z<#OM`-c4)O#x39IE#&fwKeYH~9ivnaxdmS>{20*Pow}ugP!7;iTXYWj8l$g)ytb!< zwWP@6C>O6H{)k-+Gl;!Y#8KX84Z>j%?7oW5xvLDx^XY{F9GOe*H_D)eiGPrZVQ^3hsyFLuINeg-IHujy<)=&UKSXT6w=2#Tf>*HJ?{j$P~-; z(YR?8a^!#)oCSD3!*AF3I6o1eS(>R+%`Pi=1@xkJ77`nRahTAk4N;pYU-Fc4)zmFb z$)_$b4j+u`rK@4Y`Q~z1N&69{1`eVYZEAr#fdxn3IwScSh2-O4~NJ7^ayMS(dm5y9O_=?Eiml^$s3gY3JWN6$7BBdP_BBg zXX0<=uNJLrG>zmx<+le_@Z?dycW3~x9rb&v`y8Ll&hZ`p*WEFE;oZIf$Nw;AA%w_` zvIsPN+tGAu{YDEXGDCX1AeCwZkD`+%KI zZNReKlQ7>rO`g+-^IP|b2vt`tvjBAiwxXgZ9;6G<46k<&iI}kpyu&3S*H@(3F}+^?WO?Bit;L0(=TT=qwZ_#d_%#I$RMQ^M64JUM20)iIepTRI zBfiaH2&ih$Tz)>-Q6s??=2@u zeH9geCw6)gcTRX%&YT@`b*qj_ZQy7)Jfx&M^cz&t?BdRt4`=5j;=hWN{bm$p=PfKJ z@-JTyO2LhCBnVQ7XWW)|lnlcB6`r)h{Bo?HFXI~=ez~K&Nl6<9 z?!vI2i?($GX+(qC-udRL;clQalB;I<tgyMJ3qI)q5XEF%>b`?qJ@VrSi80r?n{ zH69H67`!$t#1?xjw%52gNk;{6*!`oh^D5`7jDZ3&p`y&?adxLpf52niT7KJtwnqWN1Wp{J7-VB9CXh#tE!naq%O|!KTXyXD z#J7`+B_^Ohh8mb0b!$$n-RMM*`in{qM12=menn$n@bZ3Pgq08T!gkzKX zZp;tUk;h&2iC9Bq*ABbTr&}|h_(JDt9B-l19E`I$P|Z%-#$?H@^|Z6wYH!8eP9~FK z`vkSC6bx>)>TQQ4IoDInquTlQ4pOCA0_5;XOY0of1yaiV9RiOH6`H3$4cL08edA~y zLTqS@_Ajl!9$tA}HK!1^4|GzQC$&P4mW{grhz?6IZrSS>yLz~XR%rQlcMO#_cxZva zgpMpzQ{uu-TnHIu-CY!`j3FM!@U>(Fq77}fu#UE3@K_dk+LOMDj;e8a$C>_-?Kvh@}wQ01s)@Q_& zF#GA`#bhH+;$pWU7Da7xx+dnv6{pHb(2bJKL9|I1D%wb}y}jKU+fV>sz$>L+Oe$!T z7`{~*3Rp2*Yl*sSZMJwXZ|bcxZz@Y@Q{c@fWGY^Rjgju{>eG$2CJG7s$jn=-HP#w` z+)|%Lb(jOhIERNr92^4DJ6!J&=LO%qSa3i?YrW48IY!hu_lvnl*xM8OoAyaMnsEff zpLwSWbe2`hn=+F?KVCh*%BD=b8lRI1Y2AL+ewOa+dX=xjx5J-h6zKmJdW~MePEt%0JW;SRSX@*-Vt}x`R(uvAi zWmscDb2Y3e`oc_XKIj!yU&uwi75B`#gRg&< zpQqrDaFMoLTV3U!J?y6Xk3^)qQ|P|9aN`yaZiS z$1tcHK{SZrE@5i;MYk4?28XI9-p?D5AfG+S^h9Qf3_cwzPGwJSHS0Dauu7{D)z zdX2S#JZm>rXIeFJ3QE-GzK^%rfh7<4uAxmVE^^K=E$EVBm=0(TodCc+a2{dp5*BgJ zJ(riQv$if_B_y?D6F70gnhOx=*3URW1RF=X^MICgQ2^I@`Wac(C8~AdAv&_1_WE%b zjP*p^bi*hZP7ls4q}Aony9uHk+6VOXK|qj)nY^(tBE0^rNh;FoSY}NUNI&fFglm?z zon4d^bf`hPD$gF>e>vB26+oynt-A)AS%>{v&DKoSME0=$8hOB>0eLy!O^Rs8^13_x z1y(;Qpb{$o%A-J1A4^+NhO*-3%`ZOII(cfb-dMi5a%X>UWok1lq_$Fgn`VTwsFRd$ z7O;Njf^RdTkaMPkIOu23M^lsH?om{LhF5J9%v)eH2n`xa~ ztl=s2vD)#*xR!{R2WGC))}sz?(li4{Ff=@jUPy#D>LEZGw%5SG)ZC2H97IV%bwl;r;&?;nJ)V0v%-ffZgIa!d*COSriSi2>`O1UA{Qa%O` znF<=|zF^5gwrQ3k?rkPFP}>D~ut8n;f4V_2>6rbX;imNWnUn4oqbnocW!Dl)rJxS9 z=tXB~1gUcUQkG_O<*65gDDUVr>OfyE}At=U@V;p)JHA!87;wY3xrN>~`zjglauJbt$n~fvv5&u$S$YKjkUZ*1?C?u6OVQK= z8%UJJIV@;dY)hGlVmq}=pCF~P9)wemk>I-`%A^42+1pVUOxPd)Z5^U0TV72%dm-oG zU*Y=Wh(W#db8l>;kI2UB2fSBBEvn6l8H_8-Wr&(zMCWGtqUIF(f8`0=t_c9EZvfD|#3n0#t67#Fb8sY4W7QGpWdw#>*rS)}l8$5W~4=aLE@ZFV<)cP?u51fynYvez&@ zQ7+(;=9b)@BrN$Q3c16B6y1vQFgGLnLp;&U-5{Qg@T$$?9RRTe71>He(Xdw`Y}D$i zb|_`+7oDGE5f^j(i~w8aF-9Msws%!E7}8i^QG$VhhBW3-$geawmeP_0NVpvF4-jK% zC*Bxa!O@GJQbZkYTZ0+e728qHt%sYB0KxM(vbv+;xZ&ToqMV8!e_Z+3I+LVdTbK!$ zTu?9;#f+GP=@{y7TcmImm~?>8;lyR>W<*8yV^u8u?78dDu0DVH{Do&OUcPW1jYPH8 z)o$8}@~u^9u&M#9uGSv%sld#~_f)|5v7f1YDxfuSLk^-8@N_lbZpvaf(~iT4BNc7p zy3nZvu>G7YT=sHOqB0XHA#bm5C5;`HgzDD&9*3z=L~Q87(FXGM11#abDrli~O|}3vwy!^UtG{cH_u8pyhQ(Vi28*RH=B?Q<^^tk&!ErF;uP1 zOM*r1p|*5E{MFONz^q;;`O;KQ7o#TEY*VNF9gf`ZW}udt>jhUT8KrH(Wr9V2qUK6B z?a-U!_JI&{wfem4WP55Xv$joFgGo~C_=ZiqIDnal}Iw4CQKHH?C$dPN|UND&#bVcB2aWnoa=P- zMI~@L3~;S=9R6oLOF_KosTC=n^InbR8fiJT6|O}pl3%R_5o{LJ4p%CLYs3X5bxNhV zZhIZt9#ZY@#&FT0rgUuO`?)wTmY|i(2VM1fm>RykGE~LZ>IuzoRPePr-oc~jiDCB| zfbN}$wTRt9H+)_l!y}j+W?g^a1iX_=62}%$C~cywy#*526FPLBbcGI$L)jd`4gr48 zbi$=wW^%^gVxl}x+ZUnXl?~+!>})r#)307JdV$b~$w~W3oP3e}bg6I!*&m=b{7XIq zuJp!ja^^^y3U;g%6>=T*^^`GQDD}HB28%S%TJ){V_d`!;<8XcGoMyBAAK3v+FTKzy zEVO?qnXII=!*aI1p^PsqaHmJvUAj?TTx6h_VvBiol6FG_Yhl6ERY0*pKkbvWcb;U@ zOxyYp`p*mvnO4cn)MR@{9#my$ zLtUO(3A>#}L+E<=Q@~-#`^g>!^h7x40p)mX)7hO766Q}?($vwjEdoA-wtZyIe3UA; zHIxd)Ths6`+V?|CuT!TSQK2NyAm4K1;FQFWy9Cr@dCv+^shuY_K|Wa}U9-dg)tb5< z;d;3XPbv71z>Z8ffnDD`m zvngtqqW%%A_r0ipsPn_6s2?~!^!RJ(^kB{j<>LggQw?gf2`Ap z_x8*>;Gh>eke+UQ9P@jQcv6uM;sQhIz=i?N#1VvPieDV)%d=Z@_mlL)Q3#E`UxQkQ z^XoS^W=t&ScI>dXXzKa8b(34uam8!u6?@&7M)>;J35ZvNH6Lm#o_;B zd5oCwMLeO^8XLgGeWc_Caw+PA*KxfU^}UlE?{2Vy0(L_)U(kr@hFcKN6kuu3%cA*n zj#tGB6BIG)Mg2oxXboN6p>vY8y#L6KNlL^Fy{oe33#1KAnAr{L$~)&Mw^R=I0>2#n z`I307DphBv2$9aUuv(Pie5MGoa8TEuT&Cs8w1}ONM;i1cMmB|1D$wNb|cH zobjQ_i!>|g>7SI|uV(!JYPDYta;vAURu3y?b?-Vt2ZwEj~j5QcVP#N*zn*?d#>6~ z6E&}zhb3@o=*eChe@SxuIUT@<9>cW6#SO8>PY5zlH~~~YOK-=J6+py=@%Q9-TDS;6 zmeBk16dw^-u)(XfBd~X5{wUkT&<42%s{%$cW*v=iOFX@+;>b41LlgS$PepD;8vWkiS;S->!rqeD+=ZhaC00Nb)^`QHQc$FaAS(o@MeF4_dh%+a zLxW2bDYm!L+z9C0JVY=N=PpJ4BX|-UkAul{W3t$ilf9@vsn-EVqC*#B^|k|`ZbbA* zWepeeT2rjiQiZ=ZWdZ-&igNXGJeQUi`4Jw|s&@mn5FYWsYb&}fQF~4Y1>`tX6IKyc zW?8MJl@cWTp^jllcV9JtO5tTf{5O{OaZ}XRYja{Y?1kK}&56@ZQG@vTXN)(p_G1Sb zr@5=X+MtlbE?P-+e{ncPTU*x6jY`&XvD^jcgFjoGMyMx?*qUnp<)gnUAhZ@P$7!2VvCGEIZus_DGK`z|rk8998Kt zKfJ9tMGr0NlZ!Vyr|OGyH(NJ5ry7e5_2h!zT+BLeE*dvy8#h<>>Wd55V(;eiO?;if zf9^fjXp~<262cgQv>WAHpydp~^g`Z_`cge6zIn5L^JZglD)@dp=U5UL+|~hT!oF2; zs5*^vOxznfwo~;h@<5=uicZ;)f+CBiS0g;^m3b1`jpP58*^@kYfCV||6ujGpZAbTxv}HuhK(PO0~0a?^VnALgT?naO-)YD(WGoUO_2}QuUi$ zIVs+1*dw4Wjrr8(aG@T3Nq^UDXy367e^urX_!EpVH#|B4oW_HpTiIYUM(%_|KJrE$ z+*5K1nHiekA4ho}&&Q8W@D79{GwBl|^g{E}r|nd)8Tf6z(DkgY(-{oLP%XzjeC&)j$`~;zC*?zW#|$6Vt>VcbG~V@d@Wj@UTLkj+=#NLgLT<1GEK%2cp_R`8QrQD zA$Tx15wV<}^vBXYyR#~r!lraUksTVyBDl^=`d}&Kzul!PJSk%pWV8AUj{C4&1E4U< zTXGlv7k6mL6krn$zD-es{Q>@uxd9>a9Q^3TolaM7N122`YZzEiTuTRqa#O=a3ja=u zyYIbp|NUP+_{}>9|M^w^HbsF9Bjx06*M9%CaBV&%3K4T!7mV}AHDS87hnG9A76X$&X=9h$N67?L)C6YyMqs3I{5ZG9l1W( z{KJQ@(XWGVf9vjtZ{2(KI|r}7`_XrQ@ZgCS$BLKROjObE;~FTg#O# z&Q#S)%<42yoU3ZPoa|I(#>Hy*H-sUyx!9?#Ia)RGSlq=zFAO+VI# zKlk>^^tKrYE8^dKdmcBLN#u2-`9%F*T+~4kye3Y<$zZlXCs9+lvkKS_S%Ne`t}FBL z{&BA-T(&%_Mg7~&8_8J|o$*+By9p_UPHJdRv^(?jf!cWF)31NwSKR>E+Y@*88=+<- z5WyLeR(wuLK+72u)j!_$?qFKbmAO)0Q0fs28)DyEr9)7Fc;VE)t;`52e8rr3{xfC;cdXo2xa2EHTl(zlFff zznL)bJk|A0AE$EK*D;{>Bfd`ImXzXAOp^a#|?fF z5aqHdAeli^`#8jjXcs$8eLYj`z!n0vk*Xd&+Qp9dr6X_aFRUdyv_jYD-8%Nsk++o! zHs`X%*ZK>h9^icoxz7(-{2sT%p`s4Cpks8U z7P0uOfuW9_B0hC0v>|IzBNj}f<=7LT&OlMa#kyV+RrL=I$Ve;}8s%<9Ink@tqLoJ* z@@kajQd{Uk04Q@W8He*h8}cbs^=10wEsmQZ-_d{J>TwZwy~WlGX`C#!>NP8ua?8)! zZT|!6D<)qs>AsO`^ICN~7(u^6RVt%?OYUA53u5iDJGbQSzKz>scL2(Mi*Z=1?opr$ zt}umzm1ZkcO0PFd=non9er1WdV_rh96}n|UJ3XzXK?T?{NcW5RWiLWlRIWg?#L;D` zZiV19xJ!8@EE%+skZewqjd*jANtRk9!5CXl65W!!k4Rd9DTmT=|M!+!qXfekLZPfS zseiU?=ns_(W%jAsR@IzvRVKA2@d)6ptmaUFu%zdVUOv3?Ex9|V zb^YO0NrMqmVPAg?#l)^nXl@tR*Rf$e37!Otr291SRp^2+yI`M5(h8;>cKBwx&OmA|M1~! z_g;PJ?gu}Is$@|)_}VM?fBNP512ny9!$80+r_S}BHLl8Fr_QGIH=Y)2 zD^(g=A$uIsBB-jMMx*g>#Yww6=*YYd?HWV$s3K1MQ*oJfRR@R!SU0V4RKX6~Czb(1 zK<|4vWGqq-#l|`5dtX}ZG-*dg-C$XvWgG@g=!1X_8GleNSeJmLc3Syz{4w%MsB3Gq z`Bz%oZim5MjMrbtoM~gsfbay3 zUDeix^wN;2H_QH~NlSz+Z-4ZF!)n~xh?7pep5aE6wKP*agntYN6~lVU8&uh0LFl<(vGr2XoP7w_%&Pa?JUFfVU z$C0EHIO$ku^GSvpmx(<7a7GZiMCXzC#~lxAdcu9N6F~gw-HV+%l^+dzo(u+2f#JPZ zfBE32ui3;?sKICtb-oOpCNU!vh$UQLbxTyWi=8s(XS@u@;Qcb!yZlZ7z2!|Cv-QoY zUx1ecSm{buY&hAno%d?!F3T$aeECMpDphD?rLJ4bO`~pp?CnAPkW=&!&@5t8;VEZ$ zC37+Kn|7q~k@m|h%g~J!%@Dih9<^4k59S9!SJ$DfCA8Q}m_ulyS!K<&||KL0K z{_ZDDarc9tAH4AmdJ1yyD=#0s^6x{?85b3rx}?hJtp35lQXBh6*ftC_?cMKxw?a{b z{weRt0JQ4K=O{4co({b{LL-SQXG`dlbK>7j3^Q*AIvDQ3IdYCX>Wxb`L%T7kCJuQb zL+hvFf)gXA-CMqfoWraqcH?1I6uaKXv_C5F%7YSL7U&O6^$W&@m)KSAZf>Oo$E7lW zA#JtF<05!5H?A}|p{N+X{;+5~8uoe~81u*WSPXt#|Lf|B8peQAlEFQMw+!|Ihz?_q~_y{qs-ho>+b6+uyJk@_2W` zU*XAJKq_``9Tgb-6NTJA6qb45*- zqeobeQ?2^20KWFSd*6Ha;FXs@`pT~ke)iS--+qM@;s?KZ=l*wpO-w?Zdhq^tAH4H( zSRr5j{lUwxAAIWrZuPAX4qkit;M@NM&X?c#$%C)_?!oWBRwfK%xZrs#p+o^kc^)JD z-GYdiwjWX%kg9IJR5sG_5`0&J3>_{GB|MckX+{yr*hxN-vU6R3Qx6k?`ZnDU-hboZ z>wkOj+MCXr(6GwOAy?bfpIyIlnf=l6Pr8PMqqD9Ap3Ia?y~OwCxp{?1Ac=JUt*_qu z-n;i+f14)r-m5R&`_ZfS-});1N8Nwxs}J7!&Ang$wXS{e%F73D{}x#2jdu>d{MNzC z|8e(&H;IKFp;W z3K2t6$2SrOo6BN}kgI!Rv=JwvYPa5$1^B5~J{RTniSLiIfb$R6g~%E8tZ5=>*evG1 zQhhc`I$geb&YEI7gWz`AGf8QBbh0iOVZE1cHpLdU<)H@f2^-D$Re|wS8rA)MQxAdWcmgG?->~_f-rr^jM++!ZtOm_kath~`_W zBh<oS3)VL8eK7vE)z7>!M7TD9Isj(Eu zC=Oa4VkI;Fj1B@tY?0qB}#`nOQQuqjmFW}C7%-g!~cGH zSwQqZ6MAzKbw_yfhyLe)h81TklP@~I^5f1vesb!#^6Uq>%;sf#{xM{;MN?D<<%_LB z)+Jxcsg3A%+)k5L+)is{2DKTQcZMjzmu8!?fP0I6niuK;82jx|wEG2|S^Ci`(&y54 z)RoVr+cH~px8>Y_)8cPu(m=+8+)8Yb5Ij7%mnS!OT~^M zyIs4TrnfK?3AbxOXZ+D31)}1}8^(>Rw(vI|>gdbe55Ir#^4D!42#<9(rA86z-cNr1;GO?<@Wx-?``)`Q<)a?@tMd%d33y(U)a=T1%psNlhC_z2 zapNUS+Jcs1D7@yqabdTM+IV5!HDQ7NZaWE&6R5_RUMzv&fb>?i*PQ|oH1~`Zbfs!X zBm7v~@ut)0xMj8yj`2%ZdcS*>;||uLNmER$uFCvU+8K1^1ROB% zE&LoVYZRu(pc+k@;z;$;wvgz*=Z_x)*?SDr#%*5M>6;MRM5RegITa`3+A~YyiPb}%o7N1wl#~uC}=#q z%vzT+;WQ_d@&tfVV+$a|d2;sjv;e&}>BKwY=@!63c=izJAFp~WC2;n?1u=87fWX&O z4u5&&6DKCbl$iJv{O@D<-%sIxAIJaJCd3rB4gH%qiFHole<$(3E&T5n@xQA>+pb}q zJ^b%q!GF(R{M^MGVoIEQ?&`DW^oTJVjX2lsrrYpdpa(gsU>H%mfEk(;kl7`lo0{5; zi><+WtDW|yUdZ9&6cKAG&hvrHr)EAw^NXNF4iwCyWD`?jQca!jey1(_g;-lyYw`qk zWH;_XWKWrNVA6s9I4M)dkJ%dlgal`en2x$8?8FWS>5cR(+IiCwz!T;3eg zdV4D_WZs8FC4?}X^?JRiDRSA1+i5pVhBZg+ONG$aRI6gExkGc+65*n|pbS4uTIHJE zkFr9CUyZUHdXBoAX%-h-y%0a40bv9~DONf;l$APZFN%|~Sjnl%Eb!TUuuk8f8bV|h zUo=j{^0jA{W~NV{S!s&vk~Wmnt+P!LE{4oE_wqvtw{02 zX`8##OmtQx&^nl z%X~`gfjD>S`TZ0!!!A1UW?UGM_}QuouLB`Z7c>3YSrK*nThY2K;JMz4g=OWAi~gLh?w z!m5)NhY%4@p4Jeb5_QC2$2| z2(3w4D+)qQlrWInt|%ba-TDA}D6%N-4(nn&?sf@Q1o@$XDuY~RBHF|(YAGXt1yNCC z@jBcXG#p_?%gq;7_2t&e;&L?krRmAftkn6B$(1|P%_nB|)%V6?1L}=Y?c`%q@elzA zc9gNin^ngv_!uU%MO z6(^@eU0G?434KOcveISYX#h?cSiWTXFMQzXA3EJ(Cz4Pee)y zqa(Ued8ruKZ!?B9;8fE|OA^SdkZ`PQ*5h@E^sPw6fY0zPojR>YIR>w(V-6r3G=(nb zY0(3wBV%4<7*{Ax6SNsxS zY#Q(!gI-uc`%Udq(DC3i0<0>Ma4J8aOjfd^ajsPb;y#-!$|a?^me+f7Z0H0kb& zD5vB?Nn5&PPuE|-NNa9%`x5!P6b*LBxQVQ%Ah)C}p<#ij8a{q*+MW0S+^~Wj*{&N( zSk0QImxd3*j8$>I*Bxmu+VMu}&Zrt^ zoak{n)O*S)8a43A$&Y#H_B6ZWj1wBC+G~vi5n3H-+pOAoP34HT9Fxb}YstHCK8TBG zy(>XiMhKt{GuRw6jnSqOb=B^oc4*AMxB+{zmg!m4gH+AA!AINp>a~qD#Z(;;`1aqy zey$|lU2QjHoowMLF|m=R3+qufuPaUX+q;3AU`n^!QMYQNmx;4A%0z9A^w;y(E-t0L zewxUnm^VA`3Ew)@Dr8<@Zw-fwLdi_mR4P)M14{7>LG0$lV|U;aK8LU;-xW48X@iJq zl<~2YO+v_|ZyFP$+fmm;=yudC;RDh$FEWf+--C2d6AKgKlq1Dd@&zP$NkPer%&N!L zARy1VP07KELc$+`UdEJptvH8g8k;innm0<@MR3H_NN|_#kX?Xg^qyn}3Y=OH6Z7Iy zv@>~bQz8-E#xC9L!O{_{JiOA;i)PYmcBny8n~FhF;TVHFj}@IUQrqe=Do-zWgx;~p z9UnG1)adZOJv=sibToQo5X{LL7rE9|jY{tH<4oq|fyMcGI3$(o?d`dvF)aKHToaU9 zP!8)W8}-KFD8bDuh{2^}(BlHtbV#C5E7Iq0ESa17DjF%#?BH*Dcvea7Y6!V(4=5@` zp#60$9MT#Lvv>jHNf3L|b&X+gK(oiZbS2e56`6=fej`+4Cul33aHnyxR2lEw^=-Rb z+ew9H# zVa`*T$m42%suFGO_iH>Op z|MIu@|M?ep-}~2~FO>2sgaZKhMO~9G5`zBc-1fGG7cH;;?}J}|kG;jQqkC`u_TK;b zUa6O7z^H1DZJ4f?PnPu33NGv^&z9$U2xL)jW$wNCE{u!D6-_y{~szp`1-pC-+BGu{qG+9?B6`6Ul>>MES}rz zH8b6{rW!`sp~<-5{qi5~{rKDTsNwE=|8oDWuipRGyZ3(ds!d+o!EZ^ki%nPK<)_RC z%n0-bX`X#>k*8XQ;~bE7CEb2ObB@6n9~%+R-GA$=ci;QQ-S@tE@6E5-ZdA6r;)`>t z=ce^FS6_`A*8XujEf56+THt_kO<_U}Sggqn9DgwK26vxL7`Jc)7I6IXA90amDh0P@ zS5oSNp9$5bqJBI@KGP~aC8luC3>~}tN^uor71*?u4`il^onJ}ZY@49l-{9Pr@HfM@ zmZ=^T23D+D*)iHOE6kUD%j1&6X8SoG{ltHZIyOLHc)Ef1^`s{DNQHSflI6OF8L)w2 zhRIOW2k6`yxNZ@mfTn_h0jbD|>)nSjL>sH#lFSOfqVpo48|Q^g!fx-74=q;?#&&u& z{8lf$PE-uw)?VVTrDUEA8(qO+gOWM87b_rDwLOF#7hwlG@3o%IwgzQuhMXC5-|U%M z3(T;2DTqEg;aXFOuKVDwYJY?I2|1H%DkE%{%;6_7Ce@48UpVq8F+~ZFa^=u7cBS!n z)H6g^|0*5?dZAZve0cAJ38{cP(X*1=LxVvu89+DPtk*i}cCwj89ZboK>!;fJUjLWYmOI`04Ko1m%x=3noB@W#Q9e#K9~fAsFXH-Ag|>)rQXIU)i~XwX?6 ze_Wj4F}Cp9Gyg(dY}K`aIe-{pa{q__^WfY63}>Vt{fbgY9en*~_ul-MyYIaY5A%Qb zor70jr$puYb^9Mad@Tg;?r(o`@b0hgeg7SRflu5|gs^$=`ybqW?;lyg4h$V2z5lcO zAN;_<&w4U{C^BKZ6z4pE??aPf@&+f6g7=nFTSc!sk3J~5EEWdE#^k5{B|ZX7)bDrW zHonK1dLd7f5zy!cH4A2*@_IUl*)%7i!z}GiqSNo>l`P(j6Fkvm`C==@pQt{atnqQ| zm9XhX<0#s8SRM#_`yOaenRg-yk#066`kDb6{so5D}zM)rRRpY>q>pSy6Q zDXw0*ej@}+NeBBG(3PtZA4)$SeS!T^3qi$z$Az@tg+39JTNS+dP z*8RhWuigLP2Y289I<1epAAE54ci$sbQ{4Z_&p-O|cPyC%bNu#KNccSXU;h*qI3#)p z>ZKaUkTSCd*K!s20&T2QV||U>$BV7GWloQ}vgW^MtRmcg09QUfns?mx6GQ)rn=^{? zUOEi#T9Pv8+R@M*_BxboJ2w6*Qb7(*0csRM^+;_$z%Jmja3Sf)%Ghg%i*?5~c*L&a zsal9^V9*(-iy@&E6)5lM50FQK9{)9L_1iX^3KV40dc?;ckR%D-XpSU_%}LVEr@6*) ze%OwIn5;Fqi_v2plZ*}{2YL*$^cWd7>5OYBYMwboSmt53#H2TO)@#+v^I+@TZ@rO} zO#v2i8%c#?eDLy*4&MJBsTUw7fA^h_e(Sa_wL)&Cy%cxf`{2PZzKnX* z`*+`e<>2KH58nQ5RYQ8~O5$I-+3M4zuD*{lmZ+b5d&7+-c2nJ%h{`f}}9}J@Zz4O}#zy9eTKKwe}C*1q` zoA-Y3_D3(hrM|!FFqV0Ijon)5K0&JUXYjs4H~)%gI9RLV^>bj4F;^If|H03G{ovnz z4hq{3|Lxwleolt^gKz!h;FsTYZ=MLE_KEBd3VQQQ=I$@#v=X0=H0N&Td~`MkamA_5 z%@uy5XBC!Bd!z|^J6FbH{Bv&)uWG*_*RQATTe7GS43^>A*sW`x@CNszQcx_rxfzjT z_Vwc=ViP^S;Sbnrih^MD(QV2HysC_DZeJxarbvb&pq(ZOJ@|uwA=@Fd#WvMsg`n2d zagjL0b2u}b^V;58ob~F+(AF}bc4O#s+j&d&;-aqVQH-F6I_Mbe@1QoN!VbaTkTey8 zH)S#}Fl>>VCDk6v31~0`?>wM9hJz7d_GrffDE7zGyZAMXwbm@=fO|fQlY?p5U>-3W zTA?htIDoLNQN^XI$P@r%3ziTm@9c+5nXmzyYZVrBD#1LqO%Zjw72N2c4T0aPFgI9K zCmX}ghP95m-LZ4Ti)v;dRD%;;!Et(ChbI_RF))J6w)WT^n7(~w5RP-!_^Yr7%pb|3 zGhC_us<7&N>#>5S;qNl(%)x&~+x7k5EC;oq86g0zkd!3J+TAp-PEfv`x3EIUNE1H! zI>7rQge3A;t)G_nk#Yxtfm3tdEZiFiH$+*~=_viWPQo*!)NApG5yV3^gyVI^r$TH2 zHzKM<)vbshAsD3G!^u9t80rUOsSTB{l3t5(0P=D8+wYNkUND;Izdg**6wY+kG`X;k0ab@en|lgDSdZD zlG2}6lpD7(D{_1;a<7W=K_7uY2m8JPsSl<8wI7#~^5{B7pepIr1V3{Do=|ja+EVpC{FpvB~Q{& z9rGM>#j`hVTow0z^!mX!etPhOUxD-EpiiCxci;c!-4Fi5U_pz+G8S<~P<+tVpQD&< z;)BD0H1Kb+^_e-uk8m2L1@t`iQtqPabZQOm!S8?Y(brzP_v$wfzVWLEzx>6)8~;<7 zb%OZKFsRpCc3`C=;YT!bZnxAIR{Mv-jno zJEE}7X_XiUq^FJ5AXjmOHfp)`um6T}mo2 zR$C?H6&Na3xiqX#*g7-|G}dJ+HwKIif*wFkkL1cg&7qW)dAhdA({|5ZX<>eGqt~}%>w{@5l1mFwF-qfqVQT(L?SQJ49tQMK`$L- zV(r3(H4gj%(LFE_XCl@R>3mJ+Hl_D;{VoI};J0wwTWKyupAf1XlnsF3(;>i9A9K99PFIoQV$P2qpU7bKp!ixgw)#mSb;;zDd>X-};A#9C{K zi;2k7o)j|K#CTmu0F3dO5Ii$7THazi!so#oQI2`FwxR?jA+%Wwgi>1*oj8;2qPyE7 zfEPC^>Tx(gj$J4_Vq2<-gFt8&$;5UH1~P(Y;t670y<1Y`gN&mULc8@r+$|=}e0VdF zqy@oAZ_6x;I~|!o5WN9h6h{yNA0i0C&HHT$v(i$e2DW#Gfs5go;CUGxVGb)JC`v~L zwB3S^fDTf2Af%`?0S?zzR}tju>Y5q?&O=_r-L9Hv4BMw5;=HEaj#$sq?HsI?-T0Oi z=aNpA#vO5{DdMYJ5QXh5L~py&msuocX3*|vSlpE87bxKXz(t=XaK4!O#!T_I^iezHHVxkN^m4hb7HZ55@E0x zTjp^T5Dpt-s40auqR5@YAb@dMb}XttPVuzQ(f?UgqWEDrtyL_^m*wqZr6EFJ#e&AF z=~q}v2T5`26b(Z^zX}3xfu~`x056j)bEJkW}7bvZw3+3fm#l&sE8|&LVT-fY7IT@NKJTOj|CPA?p??o218$`nhQ$7jN5sgZz_eO(NeUuqm+~K;Rc$zZ}F-KJ$*=i}7o3gOZHMA0Q)3=Sh zN;);HWnE$K^yiY`*s=Zj5Z~Avp3M*AsSbzQ?L9WaT2_Z1?~Th~_Wix)Fa427WAoTp z+mz-vx`N4kMqvSD_A*sZbKdgGye?IRxc{hf>*I>ep@3ryOT8(&`e`UQ0AbYTrjW`8 z%l_7lc@aZ2)p-%0I%RlB%H?>)YQG%A_7`FhDTi|hU7CWHZ%A!iDKQG?$HFBPb&l91 zfWy(aL5cEuQZ;8X~Qm-1B&67nR$E8EWa=n%-f$qa3{}&jM`f& z*}x~g%(are2KP2=O1-8QTamTmo3z=l;h|>ja5D?rnX|RPog^#N(M(fBvrQ45Zi?tk zQ$%MEJ-7C(m8MkB4xh$KI&_c`47*@Rb`{K2&802|o232`TZp&}V((a{gpLnnes#T| zm^L<$rU}@m6WTFU6;rJ%t*$ug*vwp+A2$-(GR+s25w*!q*A9r;!+?MZ4TCv-STMjB zVNhp|0t#3x4DRev!2!pHK|b*?AaN16VE5Hr96GlF{)0O;5%2pi$eJptgKeQ^e9YaI^tA?rFq$hw*XG4up_qpLDN# zG)z$*DZG~(ZTB7lYb(OEikcbvxvr1Dr~hDZiw3Ayl>MxQ(Ot z52M0z;znv|*2e2?yLdmckzg2mU8jzeff!2x_0FxSDDn8?BD8fQ zc#lFZjRcR;y;T4h!404P;EP$x$R#020%p7ewWSG{*t|Sr2*K6sgH^nXH&)w{7JI@u zsoZ6214j4w+tx|5QRYX;*I`#det`T_TxWVkEvQ_L1!sE*UwFz4FOjfNhFHy(RRH`r z(BpzF7%EFk=MX}A8LO_0GFCh)nPx{*D9be`)%v1-Y+^|`4SMA8# zi6QqBBc_~vTh4XkC>Ip7DQC;S@{#DvwBMB?OOYLJ(Z!AS)~M1YHa5h97;D3suZCjj z7S+(w#2E^BhOuV{O-mK3P=*l{=ueLxkQUmzc`8!4t|iwu@?jy@DWX@OucXRd*+0Bt zRAEklH8^4f{wQ^DZx_9Q@}$-v8D+6yW9FPrgk7VJKWV#D4gfR}cR4W%@}GASkTGaU*v6 zS=x(p34Y(lo$!qC5P;uCT^l46E!?VH3cL)O7bJaOutB!e*S$S)R-6=1OpB9ZW_o(s zdO1Lsl#ma}ZK^--?UkCew`BX)^#R6SbDJ%;oU*+=m6Vf}YTUZs|G9q=(vySF7g z1c6H{?}-ZKZ6vHNTA?}MI}h|?2mSJk8}w5r1hvoTD9cm@1FszO4^Rm_=`ydQN<~(b z0fO(n1+-rp>^BwCrB@f|-($}ODkT9*nkE_Z2oo|iY%9_LxdCq^{<9d=T~F9E2vZV_ z^@dcu$keMQV~OB;qQbHLDrj!#J{zLD&=1*z!3K`@fM_@uX`F%Z!H4Ee&8*drk1RKE z8_vER@*H0DJ_oMYgaAoawYOf1`l=D{kJ}WVZnp%rm;w>&x zU;Mk|Z*NN4jLtZ>{qz{~2UWDLPQ7^wi5syZe!G9N3S7Xej`_p1V zG>%oUo*VbT3X%uWxc>c{6oHFF7=PpMAN=ljs+<*=TXNU?vK8eZu1KX3)lsKutK!qqIe6>DVqg`GGr&Fy{bXtxSiV7$0V#tdu>jjY~tM91Z=QJ9_ zH{QceUT{JVvo>Lbw5VWD9OU#0t&8ke_4cj`yWrY2>o&Y>gCnTMD)dh8Fwo;y?IfZNRm_r`73KGG+EfJ98AxxuGze0P822PFqM>S((=+j zE+17|mQHNprO6RoLdv7JZ1AU|+UVg>B$GppX874Zpl$|-v=Jv!x9cx!gJSTMr2aWO zT`n=NFo`7tA#}L6X%*r^OKU`bI0g17tGxA%S?WWq>n zq*=Q(OO{Jfz3LtNAvMu}B5FV7c2x9Hfd;JUAw|Y{Z&cMqr4ms!IxE7f-6OvqHP4jr zAtQVOVkk|o;>2_RmmhregP&1cm&#KPon0*Ym(-kxA-mIxp0EUoUc&vOm)^Snlb_#` zyZ7JvDvcm;W+U8TEn4##wBpc$H9eP4hZGqI^HYqVnEC?Z-una-a^C(NIw$6`AbCdm zEd@_gEz9H|s=f_T+DeO4>ue}~-7=mc()B6Yja#ABYAF<}LtWYOyHa%1q_}eyvSv|3 zD-r?c_Q<7*bAzG0V-+N)bc0~tkZyL<^{A`vt!=~qYU!aV4Bmpup@}w(w}5|)Uk!YR ze{QFkTfhb>91#%MaZ2s)l%%T@Yug{>{=B->dGM{@9K7+SPNqp20&dA&I`ZH9+yD5( zhp*9f4t#v)w+HWk7a};l^dTovDpdpe&@B+v!%n{WbNH<5|KY>ebQf0G@E=0v0J>yC zdkhsFeEnU!GUe|a5<5bJ5}Q~oU|Q96v?psTP&Jot z$=wxte5!q1o!vmEjIioE@jW((bG@KP_x|;#kZbuA+ z;MfAm*eY?*S+nka<>iA{{vD|P!S^4${WBJ`77|$94GeDyVNJ(%W!5Kyxw7(?V{qM0 znIzx6^ICvdY2WN)>%JM~6WO!Q@MqA`Emq#w!oyBo`-;G{1TiZ@gi&N;@zDZqrab2eQty=6-!M6WlT+Mfq%*_DAH zrmhw;#CFQS*YD5LC7>FaBXGgoHxc#w6D*}QWoX{xu0%sFgd19bXve} zsDq`Zp|LS-#F8D9245Jc&Z5eD|Rgb25(= zL#dpPGa6+l&af{v9@0X5dgy8mGuYm(PMjgaTu52C+Jh{QZ%ZfI@xGZNt~+n>pIo|pG(_O_d-{;i!4pf_506fT?DR4ts%f8im5>^v#BEP7g2v|V*WT7Ky?Kg;$t%k z^rqCG9MNKyMFm6IM7Mk;HaMl9mT`8yrk~~f4mf=5?9Peh6}Xj!?Vu@UO_DEg$HfKhsAI8h9&BA^&NU7 z;(8*Dzm3;hXf_D~)HocIQlZD4)d<)`J*Q+!iH?C4$LSga8ag^oTb0>FrG1q_xDzo;Rl`hew_A<+{aiB# zUMpIKxN7jk;6iUv!QLKco>JLeWpp%T|RI;X)$eW|=4$EA;BOD{6(pOaP1l=D`^P=z=r=_^TCDPBRE)8FviE z(Aq;4AT7gxSIiu^m|$ZXKCzk|w|Ga2y`tVLfmhw5{+%s_imRr#k~1K3U#!{2rp zT_a$TzDD5d&2&3?hLOOoTfL}XM^)H4XY*o6|AIPZT??uqE4DJ(??!D|hXugM?XNY( z#6-1D&}!je%{~vfz(#o$my*%Clv>tw`)`z6KA&|lkCCO>!b)_S;hMD7h=xxOfOI3u zZ{h8vq7PNVXFe*mOc!5lI4v3;!R#R^dfDIRgSAN^cPc+`avgJBb13e_892(9-MUK8Tkye{kV-q1J)Wj` zda$tpc{Q`NS7-Z9H(hVx(;+IWH{AHRIvlWM{=h6@+A`N8IE(`uML=rvQyl?9_!(zA|6 zLLy?Nt|ioQ&FPiNXf z&YCgS$0hq1016sNGs=Ddz}S46Z>4<{$Y>ItfZCIcFyOi0Xwij_df|g%=^cE!j4bXy z?il!VQtY(W)6OnC`p*NC;bNAnXo_-TuygnzjGWz^7nVMcyp_$w;N)1dgjdJ?DWj1 z#rbrw*^P3sw3Wqqk@mM_CcY4N^E81*moDBA&&6$-EX z$9jcwzC1G!T1EO?x-GM%i1NN3FNMXV$PfU(<%fq5LU%3}unGnrJFdbim|^QNAJ@<2 zq0!@y)Bn-q?PLv%4Y#ANixXL#I8-cc^VS8}aTN%I9>Kf!UdJ(XubPpiG`TG^@Nz>T zp~Md5uAqCnG_yVjCj=mXchY%X?M8Y|wXLV?FQDP3uQLEzQ)G3hvl_VJWerdR$xPtw zs5_9zw;DtILEdRt|=3pr=V@K)0R zuPa3H^ZvY<8xAgA9zd{6AwpO(!Dt6i1hWZlS~44JiKD)I?7-PdRIo8#hQJKBr0k0* zi;LX=4`8!%sue9LQODZWWamZ3PZ6qC6t-~J5;QusAZi$`tR_xD5K5o1afJ`o^CGLy zHi9F{G2;f026LC-m#U#$he9ev=Di|H z%?G+cob%rnjs4n&a0|lXOt(^zMQw&ie+~h-9c2mDtw=#*SJre}5ZhVQS3f&GHwT!4@Oo))$=%p>=7q1AP?jpDpJu&IaV2*M1apakjkdm%A^#X zcmwks6i_(_rsq)o;;98O-TE}b$`t@Ss>hwEkPrw>g100_sP1uU0N61GkgLYzLgElK z2C<=O7n~X-)b?>;$K7~B>l|S1xSL7ATc=WPMY*As$)=!EmGjbQb9^0@)0o4&xKXX$ zydcE?i>10br9s!hQlZvd7-F3>oLk&Lh&&~xhj4=c@0 zz2qk+lXS9U%2ckY?;g+>MJ@E>lWE8ndG^GPVva zJbl<#hsUK6t^5#)SUe1+5Z0+A5|%y^I^DQ-Zt22Uq#~>zf>Lqb??$`A#+rq8nMmDq zQawN);n%O|66@PdQ6Oq z#q6RdgDBzBn0D`Z`{y%i+fg52&(t3}vhVzkIph{knZ$VFDl^o`otbw!!k6|tH7JXW zNQr)y-i{$<3KS?c9C6_dd!9Zjj7M+yrY_$xDS$0X@o`MuBw3(PD{x|!F?w*qKo!8C z2c(&u_ff4tDlQ>q@UgT6t0ziEVCj#=7HukQ3P=;!*8qR5L5@-!8SI!yK4VBDGp#PM zTc<8xAVtPHt1^>tOkq5%nyg7qL&FzV^8nBIK%fV!1qN^~9gBhg=ppdo5iCpxEJjTDhV%IyRCYG zK$O(%k;n{>af2f5VZa_1O?2{cm=tKx%fWzepE*#b^zu!O8&xrkxu97S1n>!G87ZPK zsxaC7IK>i+i5`X>ioFQa$@A5V~&v-aJ98V(Gi1)srP^; z47ADXgA(b)4aM<#AHsz5wzS4qsH&PjUsF@C^mjjgp4sy9M=n6f-Ldh2Lnc? zEB+KIk1N6KWQgi1QDc^|bRqL1(V{3MQnk1S&LiBB6{Xi{z%}Ydiz7`8#?*yahM30H z9*+SE=cg+snK>CpOqbS1V@nvDVk3Y*V?Uzy!K*;s$XI)Ox~Oa@(v7^qU&50t4PS{a zUH6ozwQxpwva}%6zisY(hQwk(1IJMC5Q3%+;;_t}mS7b1ve>g26`p@K>{v-9=xO{3#?I;f;bRFq{E!vmC(y_LSCc?#!$& zpMGL~rWc$_t}r`0fBG|6V`@sQLqg>CZj`8bCK#vZXL@GFE1K;}h_~xBobEAm=-!~s zJT!rH$HjjY%P?hn)vQxS*ihwB@RP!znyIQWI0UDawU{dIs#INc4h#Yop*XxZBHOk-)h6iXklrTa~?e?e3b6r7UzLK>CVRfe}vn$!=Ay=O^3?`^Gj$s|MjsF4@IlH$f zBQr~nz98C2f_bG~^^P+!1#c_s8;MFtFpk-3j0+`SN#96ZC0FL%I4LGOaSj){lZo6Z zCh_Ewq?3uP(i72_1Xp=%ev`i%`zfN_`zg`KLL|klLgBJ#J7ig zgLW}-GpT8TqXeX$D-b|PwNnCS!qgmcrN#Eo5L}gwijJfDmf5MhUuz(XbkohI;B%`3 zID9eG*+^W*{X!P?g}z%l9JA_X)y@le2my%*!L*rq;U{u$O8Pq*V!a~6n`3e|v{bCk za6Ps@vJZtGhvgCh{|oqQ&7gu1I_P#2AShX5$s1pR|B`3mWQt{WfxSI zhex%1VQ-KH)m8^8dr1SHX8&PV8qbkNQKE)!9W~&@0J)tx9N|*q`@tAekduq+^PE6>0u41#}g7vmc+EItOC{bKPQL|#e z*P6y$+a1Wc5^_kX#yC*Twx@12Eb*a2#!x<+WYClRnL~5gC@2!pN9B7pXKpITLI-GS zaH;CD5=X|R=F_A02++c*et0?=u6a0=kb52iolRNHS=x)Wbn#Bea_Vv}W~_RyDomAC znL5PsWhCm>{u$hY;Pkgpb}X|k^R&d2P~g$z&S+e}Le-bs$L*-A4LBCjRT>;xMf=)K zTlpQcOLZ;_?VO!%lzg18d&MPhXSYJw@7b->u;ioz`&eZY?Gw%VGib|LJSV0xGgj_b zXO_!laaDc4vVm&b9kIHKbyrs@R)+S+NjE50t5_7O-IWb7CwlQtthB0FV)mY6_6(_- zT5K07PZk^+b#J6P6zRM*JL&ohB-AxLud@J9ZPqCng{oQJf6qL=(Twz_;s|tQeRZ zDcerFITz1D@m0F7ijz(LdK$i7KwpVxpAZ`8SAFvhVO>s> z$#a8ZD+P&$&h_xv9;`nQEQczdp^Ab7hw|66@Rf4txdl%k=22F}QP(Sa5{fPjxXm%^bC#T>8K+>6v$kC#vwePL^Lg5;{MMtOGLXp0!7k;%TCkCvh}#r zkqLj)12IEBL!+Qe3;|`B5>3N-LNy^~fh~wjo@9pH*%iPrGAUv{YI>-AnivB|BskLv z7k!4;!A3V$M3_M$d@fD6pBWtebCeg+g*?M+LblVS6JyuU&>KH0KF##OIC3}AR6G}D zn+hz_;`wVAsUYPQb!LVpHDP}(*%6myCywy2#x;;6*P>)oBE7ChMVxQMhB7lqnF~98 z*)F0oR!EMEwVsH?4H@-Q9``IUYMc{CNRJ6-X9+L9v4-Bng`|j!T`tGLK9{y{sg7oG zgw!?Ymh^^3RmWk%&{25sM;zJn{mm@uNRQUDpDxkbtMC~G@lurRD&%Puo;f{Z^T4w* z>c~ty6U%NV_b2A8;`ZB7+{Ix&lV;*MxfylEH5uh;LNL$LYQZd8Nz@hBF;X4r=Uib% z@$N-P-3hCNkv&UG2UgnWqC##*yZo7#e|8(}qZSTaj1=V-4kw?bRrKtQ8&?I#b|BtR zT*S4Iz<&{Cag@M9%TsY#Zl*;Hp0ix#Ng7o?*w~2M5M57PFVZa9R5*N^<~i-7Yh&BM z{tOK%>1@ZHVoQ*v^}2P%Qd4IcC-wx8l3*aP^#sq4aC)K_iP`wFzRbfni%71lxUXOry+;u;ny z0komu2c_AwC&Z1E$g`AoBqUTr_zmtr-_Ten<_@^rJ}EF5e7@|!v74h3nDNGGfT=H} zV+nD3dfGZdot~a?e$6_+PCLKOI=`NDetlY<@b;@Plf8biE7sFaY>kvYGG?>WXDpbr zUVmps_OQJr6S12PM81^{x*g!%Y!~ltG7_*BO`wFkJ?jkmtTX7dez)H9DBuE^M#U-c z=)<5DW_s_1QJ7r>&$BVMKu>h(W*whz$=#f5LSX+3QG2UyUrxdYfJopRKRA!`m*Kxk zr8iPVEC}|2LIBqD#eUi!bb$!C5YRO+>Mtv6y7NeJ#afu<({P1D}uDPt) z9*eH-vT^CjJqL&gQI*WOE9wV`$Bk{W(5NbJWwj6jE~UpO_N_zpNXTH#!|mNHGPMshcQUNcC53=EwX-$?#3kAgmj#E3+KOi0&bVmpRs zXNXw50jb$_;)+{Ix~=-e_B6{WoaMG-PPvR6iZIqCqbWNr-4(qqYGQNqE?YOiu!tR; zDTNlgx$1-*)B!e+Hv|&P#sJ}T)AZJ$Z?K8-e9*&Zr!c-aw>r1^qx@KkklQ0X_D#>` zMHCl>)Cpt9pfaq&(CU=?%)!Mla zshycVT~iVRvjD?fT}()qXo{KXhVk`|^UKlYdeRsnDq#iKucZ}XA19MU{MeA@Y^$^;+<7z^zLNrH zQFT6}6Nh@PoOGfL6421Y!`h&TyEV=pg7a8`qkXBR>eS)Jr3tUFWVU4AL!zC$^c8}I zzzrD`fbmk-n0LyxWGy`p)eTIYrfqb$?t$j)@A`%T@wLBKT>;QP_X5HxDqkv?(tT~} zZ#Y&?xNfta`%Fy<@ZQVYTWQ)A`BvOR0SMoi_W6JLguoI3v)d9~DLa=U`?{8@;Y?j% zva079MHEA+H!AA2tog+-G#XJuUo9`H*V=yN${(`ghp+U~3Ln0*c|}ubITo$34$VQf zPV15=F?CX4T%h$qS9ySgn-AVoI2!@9X=%CWdqB}98duwZJ2d1epUWw(e3CuItB=fDiN0qRf%lm zFyM~wH^@(tIL=N@sF!i>$*NwYx14u*n#Q+e!rqkA5P=W;@B4in?dFtIV@BPRsy^s7 zp6*fwyPaD8qF9}t{7f|YrIo48xGAuTVPAJ<4eLT^sY$#n{Y33~7H2)HgIfjo*c67j z*pzD?Ho>yO;_X>Gm=*{)YsyH$fR2tIBc`mj^|=Q$W};)hla>`6tKO*BEOMjRJjQp? z_HFG#_>Q@5>Kj|2XX-R{EWOi{Z>EmJ=nEmyK}YNoCCo~9){&wCQPGmHq!=O5=S$@+ zJt4ZL{<37YQbOBn8t3K47tJ^AHd@sq4{u6bRhAxwG#>K0U0Yepj~_dxEJ7Ay6dNx0 z`e^D|B2#BmjKD#WSe=RS{L}76IS2G`&&Xlsv*J{BXBy@9z(tGyLv z=Zg9?zAc!Z1_6S{b%UHXTY)BoHy-5Vjirp0mbF;4U%?}uC5t_>6q;cAOhs?d-l8Z; zVl#zJAWg(yt^O6(VBf5H{R5vE9XsY3_RdaEo3C)ApDVBa%Aic_v{rg9qOFEe1_miz z5hI?NQdSjN*NL)CRj4!|Itf``vjETX#kim%p&sLXgI@Dmkc1f@yj{X53)HCwmMwi(jVg&UH^#|3NVJp`P24Yq9f|)0%u@AO zoDwt0&0=8P>SEvc<_V&$s1ES|$nLH`rIlOWA{8$h@mX4*)(VIcN zmZS;EetR*`!%IeyCf!|eW@iTs9A|fS98)lD6hm-3VdJ*9#~s&CXbGfDaP(ni9Q@4y z%4>-cAva(p2K6c{OJw||JKx)LK5J2>#1Os*R;C(wYOXPX4oLv9ch@nqJan&`K^93! zsqgSGuAvL(EW0MKsU|>~S`Ed5RnKc=mNo4mm8a{3p$P;KfEMgVzQD3HzI|0Y6Yfd0#-eo$=0mv`X(t_HFEY1SM|} zITU*Uen5f0daE)Lb>o;Gz*`wr|9|%0{7Y(E+aLY8^H=zClXQ1zyC-Odgu^2YC)}Ha zJRm3ce1U+^D9QO{N+k6(E+Nsq%9&r4~ zn6kr;A8Fn9xsM;Cl>d(%KSs-UJ$?*Q|Nrsx|E}Z57`mS0rY@NMo%l5XYX0XqF@$EbE(Ux07mdsF>$UBr5kijYQLk zMWyNE5|=7iyYF4gElUj!YALD`o^BnN(n!wJ9|6}4Fe*XvxlwLhK0^(r zL3#^!xJY=VvG~KAhmtpx{;H~y_XCZZ-+Fyl9~*xKpus+9bXEeKut$@n-51N)VJhS{ zB!d14z6*ZBX@N@?HOjbb+pPWwlqeRYOu=`- zg?<6yR5J4gz*NnH?}D=%>ctA2`h)L+Tk7{l{XW0A8J*oUHOaq${Z~M1xXDJL{BDWT zca1sSGZA-)-K}2)Vel@c`RpA8I-S57qcD^}1My0nHgC2x&Qg=|=~rcpw?t{{v)qvX z3SLoJ+8g;*$ck!Bi4q+l<-Dp)2pbDWAwCwy&JZ1u#JB>C-0@6REB1&tHi>W7o^UU2;9L3sb*{@vHf^~3wGqxHBmb6S<`{-?S4=Tm|qRX@e1b*@%A*?|*$vBD}`2 z8dhb+VOWKVdiJ)Ywkv&-Qp68LhE_ZcwI0-$GokC)&)EJ}kfptbgD~O_sAGIz)O`PL z_f_Z3R+4T4{j)i)g71RO_huT=S?z4_s`JK5Xw@PFz2DB2piSq6l}yqiBZjn{4PJHL zY$fR?u$DA$m851;==Y_SrtW}r*R&9drNzy8ws zuw8VvRd!}6yas(2D7oFwT@crn2Y}dz^%)KKh<6!#x4pUPb2VeOgU(}btGE2DkUDE{M)^t8&W_fFTsuaAY;KXB)AUqyV)&T`MaCSR{pujKX>KNF3X>Z z{Fy61yDUEw`I(Ww=H>)p@x>f9I849HpowF9j4>h;zIMt-ngV&u2_BBM#~Z6)ahs(dNkcGOi@BuMFu#A0DgC`6K+<2r(pK*h%s zeM^(BLM;ynVea)V!INrsaQJR}G#KVpae(usyo<_<{Ub;oiA?onU%dN%D~SX??@bg_ zT*guc2M=2`B#0wiz2s9j0nXKT`C$K?)ZdeCf_aspoP0FQCx1~^i|wW`Ueb+(d4ne* zoH6|!p_6J6k%)cqH_>M%8Etuh^JQ&!@RwIKd%>$W-3CD({lzH$7wLY>3LFE7%C&FuYr!1lNh+fIscFHE z#C(IPCTn(0ZqL_hJ2g=oLGT~qwgUYj>w=^@f#fp*%ny7jTx%+@Nfr*_L5gLJEE3@; zxRzfNZN2vEHPym)Gc@9G$!cHTx-Bno3Xa=CHI&v$Az9-ZS4*VqUTYd)>X%A*D}U)I zhpoofk;Wj1E0$#e0`lJ0wdj+k{~!+@{QBals#opF+FZvv)oYzwvJ;FY3au1)+?_a5 zdwVJ7uvN`v93glktZLx3VTD-d+O|U6+f&&O4#dL`KLj@qgHRAXRQssR3g(<3HG9Ah zh*&);>nBmn@o^mwmDAw-Y$9TEb3B7xNlDc7mfPMOQd+WC_3DdtwV(DJ{x!By0!0``R$xK?Fpcj#D5tBs*P0J<7rgfI-W&|mw*WJ zy?!D0wP#CQmP9BsKoMAftw}HuPrH*VQ7^^RXaZ0`*-;b$KCPYy$Hx%2OXRsPUMLJw zV~^EI_v-6xJ+yl=V77?gcuy7}3kABMBzXsM0N*vp|3)U*4I8idCX#@fWipWvFNu^P zgie!PB&`1`89!!kZx2e3pd7(B81Epx#FB1$R(?@s!yoy!CaqtJx6o0qPTsT+I(4!g zsE>y#tzl8Avu*jQs*ZV(Z)DslA)HDv--iH+us18k$T!bqS|AivIh&IyKiL1~+5Tax z^MMpVWd?wk^RC%4-+@9mXEo{;6RE}SkSBPpqK~!Or=A*5kZ%rNq448_@c(@C=J0rS zq{IYNs?nCj=k4iu#p*=*6Bq71B zN;wa7+&AAeou>DY{crYV&Ba~-c_91s>*}SPGj&IF#;xg~SMu@A_f5eXO}ojv?P_Y2 zA!AjGUK3T&r1rF+swSkIMKyYp&X2_DbY#5(-GGqrHO3n|dm2GZz}m1^(n;w|)=VT+$gnM9 z^>RoW&d3tJRe!G-7Doi@Opf}!PvERcFEi8VT4z@nC#uxJ?TWDo)e? z`Jev@YV5ZNJfIZHKqdg_)W{20#04`N&l zyMfxMU~f-Ag&vqIAJ$Fhl!7f!M7Hg&+;+OoBAyyBy7D{|gtjqs3d{BE!`I%n(nUh2KuSZBw_!DDlQfii+Lm+9sX*k(z^ zhHj!F7%c%3j?Jr^OwJ5*4b?EG>O%KdOOq+*vx#_|U=fEwg&@(3I>)O=+qcMrcCc@_ zrmO1LRAjwtS>HZf-|y~=sCRWa26HNFu1gc!hl+8iw+$^^R7pBo-tU6PVvtyUeGpf% z$;RNWB6&BD5jgM0X$5!^5`${*yMO_rt%y%F*{JJCE^p@~O=46E70YD|CA*Y$lvC+o zYYDV=CA4g%_`aK<`DX5nOwL31-Lmg;skuM!V1>Jc8cwq$Q+apa{Bl?NmhSECMZ6^0 zfqK^b$G(UGcchajC)xVvlR(sECwySX;vh|tHc4#j2ZM#MYmd!vmx8mVN}L*`!`+6S9>iX>yLFbY#~50rlhLsOO@|H51m7eg!ek>_7}!cso#dD^=nb4ks98w<`7Kqz%1hjRiX|~VvK*g$RFw|XgwsjH0gJ* zT8ZVXk%V6vr3vj^UzYvvRNM;1RsACPL%3C=m`fRnK;*=UWc~F}8l34R)a&EW?6y|g z7H_Ik7>&^1TbZt37YxaZ1(7&I``_)W6S1`l_6#~TAHGG&JnqeyvvrN(xDQVcgMV4# zyfh(RX0X?WHGpW{sXwB40XD1)ZNr)(#-YYyGZx@>RH=|NfO4q2U*3%Nx>K>K*Y)63 zRle!Gx;^cg-6XK>7N%vl=-6LXjm*75u>?PXU{1v2CPF?34FS%tS)_X2drWB0>0=wQ z7EjRWqkH$dg>4;uY7s1w1zBP=O7nifG z!c_R|c3ItuvM`Df1? z>DH>1_gr(;(iBG!m-}G&AR=_ztRQ1Oyd|5*mPQ7A}K?0^6j-Y7x|P zb?MD{sbH3CP1(C>zp(?gEbF#h0wqFJ`ISw+tu&;uR`m&WTVs-`)q(;*MW1#!U)E-q z7J!oNLApF0xlG!x`(Y7bo%lf1aG2oIHHE zf7JYX@}&87er|p{KR3T!T$tZ3F3fLt?wH^1+%dmBe0XwV{yIN5e_dRdzwX>If0;BN zK5S^7pPOxfU*`Vh1mx9 zWqvc;0Kd#{W?kS{Q_DNfUmV-%OhDtDy;Bns4x{{jF&`{A$_`znb#k zS5qF)H)+BsnZHb$FcRi3lcw1Q7zL9i^jh-^`ojEWelyz+znX7Po|tWiU+r&AJ>geV zPx#f;6Mi-IeDcI>JNzICXd#}E5>M$GEQXfnr$mn zC>cBkwM8j|+=?SpdXF6i35_M*jXoum_%)bRTv)76t2EsxdbNZaAdg=N-PB6ng+uEGZCRCBs?)#gD7fEZ+z93Xs<|~(3RAn8uH+8zg1r%6~;t} zY}&7)#?rq8sI^i8+H^8TZ{Oyt_stcddqb!%<1#)7hKLshSb#{h=Eunl2MHD3qbEsR zpM_>iaG{zU z@mDr3M2wMHZgO8*tDx&<>397t(hrX%r`q=|VtkY0%Tq*uh~9iq6d0Aj#2rdFCEeLm zxf}KN_W7OLr)MWdU+;M@48=&A3q$jks$>z#t@8=5AvhCkB3qOq;Sda9PFu}rcHH~= ziyrC(FL4SA$S9*9Nt&XFma}7=hrho#PH4=IUs9T~<3I4^?L%44f4<-w5O=**ms!?o z_f?kBK_*lko@+@p$XG<*e%l~`XRl7*2n29w@cF6P8INcs_HPjEtEB`>ps9-30ZA^6 z-&a_iGa|e)M9YzuQaiQNyNRGa$Fhb^Gq+tI#UTQwlb}(nA?iRrrDQ`bHA733)OCJr zE^-Hk)lp-2B9(&8RqcMT|4pn6cES4zB$FMrq3W)!e1Xas)H!uA&Me==K_|=pbrG7O zjk2gsNhJlaG*TKTak*=gZEwBCrmKvef_o6dH3ige0UigLV`;P2vEev93QmrK_^3{= zyzKWI-7#1(PDw5dI^%1w2{W4E)f`+EOA;?ON5KTgsFD^pAov#XUM5O}sHij}Tp$L_ z6(;aCnBXZ0%fY&G3aScVrM`)e093ItT2VBF$p8i+ud-n-MJOF*BL*1Nl%Vz5j1+OR9F2^Ni zytzn!2UY$q_$IE?AHZu^jzNYt!5kzPMM;+=!Gb3xB?JMN+RQ!OUScQ@zA~%?%vmAQ z%9&wVxli*YU0@cx(|flTxX744bvQERwfrj$X(2zgbG&Pu6|d>Fd`)F~I&~)2+n#=gj!+PCQ>?^$*>}r;rm}%71}?;UBcPPT`i9Wc7^2u zMwf(EEZqd)Oisj#Y78;F#z6{V8?l_+N1Jgdg&kJA(`M~XR|YVjqp!ZI?IV=|4+Aqu zCU(8x=NCuHl|$W|^bPGut1QJe?dwO6fBgOL^>I@QrJiIK^d-o`D(vHYxv%gQA$Tg-QwRJgGBH|p2*pua^K9?ApqLN6r zX*J+-tCE|i;`{-`lr9Kn$7Tu5EgyoJsVYH@P%OHIaO+h3*|?nl<(y;fNoLB2yGtDo z;(z?|^M4Z_9Dvaz4qpBv_^%hi^C}0s=R+xvg$+_114#4m5(?!=vWKR`K%XkJlunR9 zkLGyI>$2uJ(2{xt5g_M?d1Q~w8=;x}^UZ!WgSL>oTaHu*hZ?6vZr+kl`d4GD`xofe zTO>Mg;;0C|c`r_wj+gx5yCY>jo70ZO2=4A2_@v23yPO(A?56POeH-3jYw%TvcK!4F z_7rW){Ob1{ix{ssf$YL{UugT@NZwH5n{`!te|;~}K9rW_sH@U3u|Hh#KyrzWE`koM}Y0IvLexnXF&79hK z?G#-F!RR|ap>zd+3ARcoG3H;gx%*F^J%9N4?Zan3KYK2Cg4*%3l?m7ZBc-`C1h{uC z3+W`3ViB0gCra_%U>|`W3fN@)4C0`J6#kVZL%qaL6D{6ui=oeL$>J?>DijBE#C}AK z#D?wq9I>;T7k2|m_iy)tGyVGXA~Rl}ec~JL;YqiTXE z`MuMNOb_DLOsdk<^$l94=1jY=^S;8)ZeDcLpS9A<#=)NRAM!CG?B&aU!V9CFFrZKY zS2LA^7RjZ)UT3=>oCbH5c_tL5*CUwbh^Rc`cD*9``PsgqrckcUx1yWTi8dyfk`i2P z8qKs$B?Jo67#jtJIAUu_L`o*rQl9NtS$Ch^yihKg(g+PgK>Q(iFculkSg1^i67LhP zsI7$G63FSI;3v8QfV!hVh*DNK;1G12*R{GGAkiNrt1__4m4PKu9{l|Bg(9bHVM7hbnAvFFxO0Bmrm3hXnr&LA7uoU4 zvXY}4HIgjKo~yF&1r#C$iysGv+E!be55OD{Y>#sE)AKJ?i?NnZ6 zJO1veQ^90AI**#Eoa4x5EbEo~n%y#4L@v%f!o@Jpwv$^%br3r3VqRk0?cuAG2S+COa1G8NAgC~6p` zZvNVFMxfS^m$=Np1r5M!Olv$<6F6B~vq$9#(yj9D4ih-ELKY@nAfm72o<)?|}0Ap-PI&Z7OC`2x8J=_qVw0ziM#tAS_kYv;P#>woOb?~YoG@+peoOYOT*>}@W{QmoqKI1AgaU%)q6Od5mgawl+2B`u zd&8{+FOGtyFNKN9Q^{J*%H|s?)RE^;4bh{6_txYjt{~PIseDcX3ib zoz_ov8Fi~qFKT)hHNA_A`sr5vRF_fr&*`nYj9YaXx9T!()n(M3bXxb)>Fv7Q+jY5j z>T>VY<e+O1RzIEBPdDnPoApyY?M`mhPq*u*x{T90?`fU4nZ#$O z;^9pr9<_;F8##6m!o^K!a$}*&od)mpT9OhUu}9XL%Jq?T{WW3VEFM7{xhhAN^24G$wUKtX!L+xp60$0Fe-6U#rWWWPTn5@MpR=D4}d`^!)d6E0JXrD7QsD8Duz?RVFP6B zg?17)?OEij+92Sqz$#HVC2x;{g$YuiYP)C$$Zf-22pA*b=%YMwRR|df7yMr@9!W7=2VDekp$YV1wBwnty_e&L<6_Q#0)~(C{9FPfblH07GJU{O3VVKhf#*laMrh zQm0Ta9mC46AtXLY&|@KHGBeb8LM;`u{HCtR3foxUE$QU_D;O%U+)=JYx_{~9y%_wX zZ7uv$7D!e%K*7tG|GY2R0i0-QOyl6DOc9_*Og_zR;Hp(AN`xwI9+vqnt<#hT+<_&9 zIwlVTc{$^J6A^|u-*hNaGl9P(_Kl1#Frw9z(u~!b_PYvbzwVX46#PNM zP;8kcHC9L+%Om{-UZ~(1`>(5$lhYqxor^G-aqvTMJGdXjpdY#Y{mt*;ZQKHDs?{#< zg5c|a)ujIV{xthqRQs<$kvz%XZ9y#6Div+;qi*Z3^Zi5RbNM=lLS@3k2Es@>-ZxbT zxKU3#E=XI~skQ_#mP1p&8Rin8s==9*ppz;|a|E@VWLnHt}qGZI+amSIH)YNI>3q-h8kFE9~p!pI*? z2~NdbM#O&tC`E1GaRfZc40B;g&y~x&rl$@tx!*%J!!9HW{!7~8rO8dS$@Ln}tLm5tN(yzlBgR&b6Cb4dZV7p(kO zBtm6@N>1V`McZZD){}wIBU_p%;2x82Q_z@d0|xf3!^~M0l-%WPh>?)P1{S$hGVnYQ zv-*u;U1j^+o<3i~5QGXt5V52}7mFV`908@4TQcR6Z_7fq{{w%D%wCh1~3k%C;hn&=%bXn<~QXDC8gR;y_)r@tj)x&$vD5PX+Z*e(8k(swN(t)e?TuQ zspMBeK3Hr@GMn>*_%Jv-IlU457tIl$qda()&ul4fhG!>dXW)7Wh6`)yH~ljRN+zlgZI-puerM`gTYu zxh|oykC)(Wlo5q)X~@fOMCLaY+2}b&$qT9MzZXnd)cjTn>W>Dco9f&DNy)_ga&D=$ z-uqRBTakh4ZfJvRYYMtMS}0f;Wl}e;CAH~Bh&oG{{ou1Xtwi9;cS5@J4g$vI+!Duz zs!&OiWb2cPV)|E2*H-r~W`(wyII43g*m{@>ggs$R&uZmT4Y#jIY^Uf(C?X8Hyr0T; ziY}EoVybJmXeeWkS{a#^efw><(KRKh7kH4SKLa0^b$r}5-lB?O zmn)4_46Zc5<$^6qh(!2;Ru|FyV4oH^-#-dy{;a_HL!f+Ui+3Wv1W2w>*69r6B?~4P zWS&|pb|bnO-PA_NfQ7y3D9Qu@It^s24i2R}<|9z7!F`3=sE)n6!w85nn)%%6|He)! zdOJsn3PEU^B z9u!DTV9q0GF&J!+d#3_bOcM}n@yDhdlhEz!QU_RK2J&ohS`?%*oY8UQ%|XJ^eFHp|5* z>WAPYIz5R_^e5{n)TO9+(>BpM?^~Exk4hwL50(79lZ57gBAP%Nv7?IA4^xcFA5~@R zJPk|REk?B~iXop-Q@zMdBtw})j{qE+omXH_sZOq!8lK$S*tR)j)L3vf=yJT*7s)fv-LPQkfJn|?t=BJ?ljDW6HI@5 zzuFG^IQ*;zL3g`8owKUVdv!N-X`?SHp!N>%&@s0=_nL3Gx6Wd3F-Imo+zV~YD{Jbr zA@o#O#i=wI!Aok~<{E<<%&x9-7thW}eR%QtZ z_i$%rAV>7~kE9Tm;mwraPE+L`sUG2}2*vG}>^WLpmhx%tMNlR4Aox2pquue+J=uUE z?CWH>O$e^cr0^^c#1SB49f1!!4a8=yPii|+$L7;H1?!?Mr;Cyl1X9jrIY>IS1kS%* zN!Y5qW|whWs7p2WK2d>b(h7ZRZh9!@mAGfiA``ljMqX3J4@ft#%61G{Mx@ZuJAv*By&wrNTqY6rLP=S3XAQ)8FiuonNXn|9y^n`$S*S@)S_?32vZC;aH zh89+8X@);kSm`@lVy0goK6~`|?ZclQJb&@_`QyJo{-56<_U^&`yRZIyy*@jAy*@h+ zU$4)9e7!z@^m={%Bz(QT`Q-Kb;xv4{zV+bs`qsnO>sycCeELRYISKDP2%n&E`sUNC z=DGF$>%+tA$Fsg}sd5SPngpyWOA1iXL4kd`~_`^l3hZ$7fQIfSCjy(V%UM zvA`LHFNv@*08?B&OHf*3lx*tn?P=0PDXiC+xEOM@z#tFk=7wTn7GhNoND7vta&8N1 z#{7rGI+nI>LU8czo3oR5wK;2wry$-B z36sMAci&7Ym7fKz2@Z5S5DVUYb9NKHA9gxI)s3(q!{S;g%ucT{G{rKuUG4TQV}gr& zB5Ukw!L}92%Fj`mD32isG{LD5YT#0U#MM0@rKG<<|M|#R+;WPE0n9f+iB?B~VwJ=E z+L~~zQT6|x6G2(cQDKGF^lwoT2wX=6F}>+*UuT)p@WNi-QvEVBJgY;tTJMIzf!Kph zhDaGTzmnS523oWwSfdb$kBw&^+yovR2N+WoXClDSh__>-)usz93g7SEdVY7cpGRo(hYr)^Eo^w-F?kAq5 z7JbL#`lIdatUo#q&-#0FdbSGNvnF<&pr-w!V>c9AD3DMm!@c16)wTU^fB4&*-4aUbkBHc2*0fX?tz{m?`-B>UBX{jm^Da|Jx50<=^icLZ(TH(c=3yf!l(>w^jluD=y7{N95nP=Ks(0 zJD26ZI1%}Ou;x!Mt^UQC$o@BL_E}%{Zp8LLAdZl{76SeCRUO=3`6QWT}tLcwc3`tS&P3U6Hz_^=@y5#&N-sRik|) zy!z#cqnT}c=T^K9cWq;=re_x7_bJM@J+yxg-iOe0#mS0`XrD^`!;vSOtxE<7N8CgMTjm z`}m(ft`^t!n^kjsETD%gj%EB|I&E4LsOdKsVc%e^6r&{rBm9Ke{9vEW(doYCz^Wnv zJ61{IDA=#~^mhF*Av3UZ-v_+siyQUpW+|Q=1!uR^(PY$1^}trmQY@4OQYfNE%M4GZ zm%SXUXtDucP#|Tm-`$|q26rCRyE2YEFsS-kwq&P17rBO2OXPtswO0Xob<@O?y(l@ZmU&>3F2fHrUp@49u{Q zQmO=3A~3FexhW*-(ZRm9Io88Nm|p9N?Dl#RYRF~1-jz{i&0H|OArQvkNw1fh*?`sp zaDl9^p$sv*L(UJ?RrLfhQ|P&%3alrixPOYlR86Y+CtbCsMAcX`Sg?TRP!o|b`JkIH ztP3+R_?>8$^GMC^BQOlseb?#Qncmcz9Zh$d-2GJxbaz1iax~M`Yp)LDLu-XJeRn_D z|KnI7p~`X~uXuDy;I;iNnCF>;?^d?b$@})ip473Bwrq{JME7F;1mMb~dS3QX1+~## z*b%v^$=A}kz>w0(`?lr=an@y}L3!31j}H~Z`4Rsb9SEe1NjrHji<2$hueCw@F(A+h zzZjiE?MN~#FP*%PVhK_w^1o7@3;qRf3^Li}WHJvjB&RJRb?qaP)0Tv~$-~G;?8pS4 zTDjV@ra7L)%#}viFr0mAd1Wgx>|j=FKm@eo#+6I-iHs-5Wd{NFB*YmP&Ku3yQ145! zNiqXGcT#N~G9tY`SY&ba$+Fksr z?Yye^R5PnJ;k|B>F1y-@l_g#`%nAVe5;1`}U0`8IBjWpp4{6Rznz|XrhYue91Rz+y zzI^`d=eNH;dn;eGB<6p9Iy!vKzPqmrf#-w!caK19Jdlr8tpq+-by&kY$i~3y90a3O z#*!;BD`?IDiC78?KUA1;A)Ty0%`r-FX)&UFrWQqsKl~)qI6kx1=k0)VJ?z6&j&M`N zkwLH7aD_7rtCtl`gp-mCKXK2f;H!Ny4fW?xU_b7^sTWsHbNq{vb#(H;r%*^3_TSW} zc$L?oCQ+(8uaShbY5^y9O~1RT3)jrnuKqw^w>9z;lwxUY*P3~E>#3=-86inb#EiR>`=+O*858XR-c>`$Kp1KC{iTl$0g+0M~2x-y%oos3(eApP^Nb{7fuU+2A~ zQ#&KwUc!2`TPv(`r(1 zkZ6}wbps$7W*lW8eHZteZ@(4gMYB?o5<}!_>;zjogf1}_B_6d(6hk3Ax!WRFQPPp9!l6+_e+62lZcC^y z&D7qJWQ+|lCh*3urlypc0N>DXMS|Eo{6KM7Vqhn(ud~#a z_vouVm^}>hyTP^JUp@(Mi&r!g{vc$MVu`Nz?=afs|b%S^Ih4l+8yG3yD^$5ANdn1f5gSQD`!H{x8BdJAcssjfn!(;aDW?0c^z zA()=5LNG$$j`Hg0ne46rle>mLUi)hAjfEEAolZ&WyNSW`dWFhvdQ`v-(ONWGIf~}j z-><9P4Pe5Wa= z8C%AqRE#ZSSEX1SCac|>pRAnCh7vY8%19gvALek_xexj0INiO9K%}RRWwQJ6DCn>e zrY#V0)zv}UlC5s6BOr|hwCJ{{*e@3gycQnLW#%okY(IT#gaauiqW@_ zxAmOJVC}gH#>M!&e~eO`Curx>wx+Y|)LF;O-hNPDg)*A5h;irD{}2o+JiUG6#5Z{X zoc+$7;eC^Ulp(_(JX6Op_B`L>IP0A)KCOt?S-SIh3M!5fO{VMJ=_k{*i+o1H7!_zj zQo=XByb@$XeH3ZV5y`Q2gk1z3Yg!OYXoiSux>>0?&H+J9>PLrAqdn9ySbzl-nC(Ah2N5VN_VA`G0!^Z z<<9#SMMXF(X|?mcR8T6=26T3w)ff0^GvTD~n2`*#A z=6=Z&RB{{BYi|#Tw|AZ?S>ZSnh45VHsYWQHaF>zblzSdr30h_V(6jrcRS|O3Dn?;B z^&H_O_S~)#9EXV~51J5^(%Bf>T0&x)`4$?}o!6KovTL0^Ii7_04pQ#9;U)Rb;>aXt z!vq}(jVF{YES=WuOrFzvvT)33%Gm%dO~Mw%uDnFTSbRP4=k+1Iqw+v$=gV;q{blSq zJ8+yK8Es&vx?l!r_pSjsdzEk^Zc7a3o)a80tWVE&5zyd-Op){c<40oZxo~mXztLPx zA_G)+o3uE?6mMBJ_L3Cs(hGt;VK7RF;=4NcV30{&Ik8nP1lg98AWz6$f z-6l|!bV(9iewNxXTzf4yLb&s}|wLR`>G8Y7)734H%)fGc}x?>rDHlL{i=kk9W{dN=m*%8BsAh>1%VAhR1_xD z?3bT=vRu;?uf0varZndvoBA?MA~{crsW+1fN$sNtq*iol)wcVxPty`*SYlOjUXn@0 z@va;84AWtY)7I)4rh=(fK>n)qp#lDEE~LKc;5OtpXLU2H zsr68%P*QS~vRdri8>9>qtzjG2GV2H zU6AQ3LhLxZtH%^ENT-8A?MiWyu@EsvV}d{wDk8chRf)p{OFng^G9cLD41$XdI}9Au zaK6MTEp|Qn1g(tOEEldqW~>ug&;w9Ih5Iq`P?R{vf|!R_u|Li623OM>wL2LAyI1Kb zv?_+da$o3CM;#pMEm{z1?HdkG2vWW?Lc|3u?(X()4#BD@?d>@Hl%NIOip#4IwAP!& z&W#zg%i~|ncpmJMBxO@id3i>>O_VcIcq-U3 zBEpr0la$5_X;J2XArLOq4=b@FhX`Sw^j5jKBSwmTnCPC|i2H_$%ZLW#v8S$+l!0wA1`b$?T@ zN_s_0>p1z#puv~)NItl(f7Q;SRT-upl{|zJi z+Ep5J%tMJwvfJJVGDYv*~f-9$)ht-FJ>wIIitk5Dj zbvUdKMAj=1V<7qRO%1>wv|tKAYiCa$*Tz&N1FSEt)}4uCaTmUuO@Xs8h6qQQFTo2Bg8 zii*-TXe61Af4KmvVM3;#gY+V1r`}q>;`GGPZXjdz1hc2T6#_D+cd@q=i%{Hh%?&|w z@a!mVxwhLy%x-&Ax!psge|_09k+m?z7HisjnmhZ2tOpT_og1B?RJx|$HlflX#1({! z1%a4J-aV|6I|;^_>%_Csa?nY4m$DV9YeLZ&3|AlwVQ(o{T*Y8?u)B{aQoK1X)E&af zjTEean`gY(9r&>*=_JKF`+#dQyD@g)#)oqVBeVNdDCyF{T^A*bP`U&_N|YxNC%i=K zkj=5L3lR{AS5^=k>snknP#p!G&E;kcx56KvzI4=MKG@C7PA4x)>}zHW>5H_2>F1xJ zOs3%)^!l(J`)6CT-ecEiQnAJEzT`l}X>?R9ca{r&00zmcQ%aPj*Ecl)s^>ibx$0h` zg45Fb9#AH`1K5`ROqySV5+z=tD_6ttY_LnMwIt$THcOnMb(qhzy;aCIIY-|5=rVUO z4JA0T;;<+QL>u*;6}YH4&37IeEVG4x?7sVX>|#RN#azl;dzR(U-<8u{tpQ7LQ1KL& zmT5Lj-DxAiw5`MlL*U>cN?LIoqGET=X^C8LLb41Naz=J9hPikT zXLHK<1RP-PSXx#mxQTu3!XZCIPUS{TZq9NabVkIrZE~AI6&m z3+`sULg~T=Xh3=fw>N zfL{YM;l$}3WUabO^2$?I7W}#kJ7>yTKC}^A9GDf@OUP&T5Rs?66=P>|XK%&30B!F3-$2gM4W0uge ziUGIe&6DW#^%A%xMM+_69*=av`RAQL zP{1^$v>XXMuS0s=sR* zveUu6%zR@Kn>ogs6|7vwFtWBUZON|0g~%(tMIlG&UyMyGs*N*s|4%`o7X52#WWfd^kmcnFXP-n!so<%k{v zL{S_UD2{|l#wJ3{J30s?^`uJt-7X<%57jEB6Y9NbAye!36xzqO;$d(w0z@1(`%OKjDPr>|qf6qcx-+uUGGj5$d5O|! z8YkXXsv_-W^;&y(JS06*4-Nr-Ll+RM2uj1M7$!iFx!1`s8Iu(P!etI?6fw?S6S-1rHw{nHLaS!K82K#FDvXFqeU* zeO($7TINc5VTc%>`P;>c{Qf*PBy}&!c{o93?0`OV<-sV4Sb^-z!CD8%(o+jkek4T% zcPNJAs>Bic=)LPe(m|B{VOu^rOdAB{3?;bQ*&Rla`bhH#L-cazIcuq%!vo$Rnb8Tk z9oh)@jc*2Uo+wW?Im$@PfI;%-V*1#PjLZ=H>rE|l7;{K!Rh}@MM;ZD!#?>3;Nl8f( z(Lu+I%A`1@v0_u9!U4T3%Ut*>Lq%$kP^|Ez1*k+AQ}V@O2JA8E8qjyAKp@eg}5^La_8JerW) z+dh3ew{o4oYIfI#=E}RXS(_x2;x(sbv_fUMGZ=!TNckKuaGqd@4~Wa9_%;sdBE?aC zO&S5#-UaX1l(xVd3$&nfk^^S>B@_W#x$*};%FZhXCR9T*ud>MiKW?4;5~_kh@|GWn z#FtTA0QBA<(5Da`vG@zQB+o z3-kjq5GY$4ot!>zcEpgf>?OO%eZjVxjGclB)oN)wba zl#vh7Bpbo_5Qw-t%_yrFa9Nt59OWoPaZIZL5G*3=WExehhz6Lvo7pmUg|ad>8)Jwk zctQBbstg&&yF14UiX`Vzh7%piX+YBmEzmj|3KZlZCL-REWD+h>TH$b2qM{gbd7h*d zCNYi_cDo%m+kRN~*wF!1PAQ*9xQHm746BdKnc{&t{qHlAzWdCi7$E(a6jRS=?;>@@ zNRAnkq7Lt_F8emm$)<{`k+{DYO~UtXus>I(94riqWPnye=1GYizSxzgKy1S}hGyV1bKzodDQp_UpXZLYqeWRA5P3C|Ew-QTxIJY>ZDCaaPi#y)CPjRQ0UcQLp z8zSh0cMWeS#Qyk3q93OEq0kRKYPc8G+NVy#uW&yS)`vvA`^0)75)zKPI`qApK?S}V^xn8B}T~r zgj63&SFD`&)*9h#tEs_wj!ZEJYn4$*W+Voo_^u$YEn;Cg#PA(VBQd}=P7vof9U^Ij ztTZ2_fQeZTD<^bcF^^)$RmpzLO+@k@q9vv*A~TTvjy1O!sAECq=3UL+trk25f%|fS z?%I#JMUVWrMG}N|6N;QMv~09{sxPtgZc59Ws9KAU6eHjbybzQi? zTx((=Jsu)HQJJi8>8>1hS-(3qFrfbWI!N5p#xjixOBMP8l8EGPk{gsq2}XHTQaXkW zYrJvoORn^A3BkML^R$WW-jL)hjbd7r3@hRGX>l?Jqm!IxI+C-0FF__1$6!Dvwc3 zMf!H?m7~LB8m5mdrSxL+q@9d(mzQcWGNHoH63(3h?wJxRu_Y>vY?YptEW#1vU9#Z%w zM>Fj0!Usv+1%Dh+Fh*>n)XGtu%pkzZFb6CgCxi_GnUuLm5tUo4T5k@pRKQU}IHzOq z4mhSOl1Jc>x@6I8VtEdwU4vebQc>7jwjLg!3gGVBd~K+%^`C5FAI6W8iMXyhS3A z)ZHdQE%T?AT~6&oMdAg@2gDQp;DXR@h%#gs^Vl>8PCvB=cf9#`UD3DY?~A zNpA8{d$PhK4|o<2#L(}fHOI4?1NK+QBb=Klk|yURO~ZnwB;IIU&{$O~7#~ASD`>HJ z*La}~DU!jY8$&}a=rxey0xx^uSnyF~R+?0l43R$JDq0{2d;%Jv80{P-UD8ZwiJU4S zN2VoBmvEn&MQW*CDX)%Qf2GWPj_u5uBj;KgXNNc|=n9vkoT-}TU^N{6Sdevy(n)1i z%3ArEk7qq>jG)(34Liji#%LNUcYUc-@Ne1_WhC7&435~*3@0(o#^`H^R}|A?6DEW$ zLV<@gpice}D!m9Q(}clA1N-Y1W#WEB;D?)0h=KYSw95t>I_^Lpy)C zqCRjafSn29pD8UNXxemuglt-(3}-g7^Gf8Dk21e_6aW_PnwE5iau!WiFLj0_-lCVfq7MstERI%qqBP~cHDrA?tlkrt;?Z;>^vS}1c);-3vV&2_Ab!A3 z35E75g-Rf`mP zYlCKIJsaH&(?L#5v-4hJ5AYwOF^J8rbW}NL{t31dmVjH z*5$JgeRHuS$q@M3SxM;q(|+n zY3G1CVrSi~G|T0sG~wtSTvvX1T?O5t{*Sy5>sb*NVeotjF5@1Xn>k9yV9kKcuG`!k z^)!5r@??(FB*YMp4AylvH2%1)%#T^mD9$IbHyDpd>!vh{@A^DW!wD&ILCYbc#kn28 z+>scUbWx2`+c}Ovrc3j%NYTch4NdzF@OgSGPI}FDBtG`t;M(smpMlY1joN6AD)Wzd zc%FoDNf`sLfB)Vmlk94s|Bw*_SV&285(`}Tfw?o1lfn+|50ecek0OH+0ZpT!i z5P_+D>&N-+vy=XkN)fUp%n(>rySx>wkeg-CfeMtRCN}Jq5n2~Q4;xG3xJPwwt!AuZ znvl4!z8K@^^v=lu8y7MI;}-vBk-m*yXofS)aT!f%nvA39H;9VIacE{>O2tILm!*Hm zn`MvpV4G&;PqPPdi)0M`kK^TOF~A|w%r?MN$;>tYUlFpUghk6UfSRt-QG7cEQBHs; z+)84avns=-HZB{#grcPD&F7*Ukx}H*9n#u_=QEO)aiPZPZxJpVY*K_BT~v+|%uP}y zYlUbq2sj?{0x~VwQNbns>N!VgNKOmH=g|sfh4hS4pNCY7(GpOnybYTmseAW6D;xwQ&dx>d5jA_GSx*+S1C?rcx1XcUa`+W zQi-KqgItqNzdpk6;RnF1pO!XcWD9PewS|WhCAxR3oVh`VH-4e2%HSnG=@4J~u>!w60f|Zx}V}8cjo*>dO9~n1C(?rV(|YMf&ooxS2iz2tTzxtikO3ua-_#- zlvr#jnc$LdMg(X{QE*~<15gV*sK7;K) z(is7?VTc?NSA>tj2&a?|z~W3PuUL2*o`v2f>ZfNtChC$NDvFXKe{TrXck7TOrzOT> zXuP$CeKwPl=Ah8^c^}Gwq({pc%E?FnvyhfOA|FYU#U;jh?0>sqeF_vw6VAb+^kyp3 zRnKXVp;(wdMDXu`02VrV58+}$*WprJ!a_da7M}ItcxI?fNggF-79kOKK=|p7uxA;B zA)Lo&Ae)jHkAqER5Y3W!0H$_^*f?PS8Cs(&wtOBhBA184%|yi~Zd$ ze)B5somhxN@&`%v1KGKNAYP8guuFV4L+Ry_pY8>oI#Szyyf4Jw4Wq|;1t^~nt;La z8poA*959YGnH9+sx?&NZSJ@;-Bn@K$H#&e69!HIq5r3#9(l@n8PM~Swyf{BOISCoE z%S2qcIjbgw%}JCI#y8=tLS+&OEy@ZH*;nXb?a?C%BabL(YMXpG_{fHsyW#stUdt@PL54mDq<&p8)-%P1TNTbLa z(c%5c_BNi=lBOt{rg+UNG6XGeJ8y&%HXv-Dg}~IlAiVR>D7PDOc~e+q1Kg7=`8gi| zW?;#`8WMt`&QFSRP_~aGO;NP2cDF8HSA9#Bh3DCHI7)cNLR9h@O8tSoW71y_WCy}? zriW;!x(EEBH)7P|%Lr6yN=vt0odO4UX2#E=hFi?R>vZ`_y=K8NxSAMYOnjQLKM-%%ZMdhEH>}^UBqW>2s6G zn1BS4frNKj-I(^>!C46K@I$+)FS;8_;}hB7hDj5XNnsxg)^I3QKT_foDNc zsC~XD)S*yZvfi7LciZ)g;*wq8D9H3$zIu6=?3YG)!q@q#1+g?4RuG%h)zw>d$zfv@ zw(E&g(93!d(4P|wCN>a^eL_;g2_D0CRud;VKnaqZbBI!DQ&3%Lr<1VN5M~`Y316wo zPGepBHBG5lvp#)##zLOsVVta%3CXc35GeEo~JWVab7Vy;6z*@tMCiirEE!Hc+=uI7`hVTWybuW7ev~g8jvA&Wm%PS zf*`&vMh>eGuZ&S_7c#pt15kQSrbF`(e?yt9>KmtOiE+gEW`GWq@jk)oCbvUpT5k_% zmiED`y83lJSV-%Ta2MCza4Zf^+MT zN|Z}vk3ZsRxHfB>BNE3`{3SRf)#95W3^Kb?`5gHbn!D>3zqoit;HN+w#pCx@VpB7!V$wbg( zk~8jzZeuM%;gnPHhB}&LFi*Vu( zm)|F=F$j7adq7eTg8nFvxDVwq=RA~AS~Zd(o1=0F!%`CfT~x?Rlrx7(&}9VZZ1on9 z*0}&u8x*v(A;L%za-`_&K!C@^TN!o1p9n>aun5G_^>ulWO9@SSb}$$5!60U|4-4K> z3hb7yz^e9E^xTat^apy$(7wP4Zt}ysDVg@H8%sgjdVIHAI!$`?A3ddBVHyl8$SD}G zx1tAe%|-kQO&C_nHg@UNN2$jS`jV2b(9B_lZGop=y_G$OWq-j}XymZ6xcdb3Zr!l; z4JC#dVgnr9XdiRnDq?ugU7;NVE`gNyL?fY-0r!3yPX|J~)0oJ;A<9rrrkL?)c{+x8 zhE91NrKcyOSg=!4Of~-`ITsyjcmytbo4904NIu4WRZ?fgES%%DG>sWBI*>U*IAY7u z>H_4}U=lJG!Hg8eQppg<1F{gL3xuQD5L-Kuixp!ApVTBrin%VxjTzWb5@ZdW)d(ch zA`V$K^Y><5_n73<423LSfn6QQfCdbv&IqWJ;ovCK-RwiL<7tMXNsJhe5MwkZ!W5<` zX^ay9@hcF-SK^}}Y&S(EWft<1%w{9gCD|xjWlb;Tiy_Oh&Szp#jas3iq!P7@T|u!Lt%9 zh*6S2F(HIT8>u=#c8U>)jRMfS)6u#PC>QYn^6IUqFom2wTRHfeHQp-CL^D^-vWsbGQg zNlMqz3}w3`ywFLXr*^BXaImnYz&YOFhz@Z%hD_2+gqE|Yu5X7xkADK~Qyv0!5Jq91 zp+e}1cJIMHYjol0K{Cu>>avIqF{^;Q>nsIr5aQZ(rqQHTjMEJE^#Z(O$Jt9gN?d2@ z7c4U=(P|{Ip-(wkDm9c}x;!>V#h2^NER7NZ&{3Ii%=|Z$J9y!ZQfi7ewEB``tI8F& zub;hGu`wl*)%#M*(^L||T&5YkMirlbiD_jo{fn0i;s{!Csb~Arg$oq0e`C?Yo9j!L zJf2p(DEeX{UAaB#2{(EApj_7noRrf%xLfnxom5FLR(JNkK>3zYR~mFF(tc z1h2l#-fdVs0ndceIG%rr26xJpw;nu-+wq`+zZ8?$EjG`k7s8h=IU&N?<=@cNuvp6+ zr76ir(E<)Ax*$u+V-OJ~cq(8h#!-%6sR|{IX_{dX*H$qAEumf{$v=@)PEK+bfXUY#?wm;CRT*5Il0oDd?{9btK@OeO%fVk zd53UTDVn8}F*J@9#1*UXMfRz!;&Gk`iS(B*8Biy`%!z0zntlmsptan8Q*Y;0Ho@hW zPzrAqU59l3@+E&6E^n*cpeg&8*mK@8be^o&#AH11wr6tj?xe? ztE3tAI!o&xpRe2!ry>oTlX0Y*C5lrZD=Ca(8CycItcc_;lnqBVh5*Yb!9_}kSVgfJ zrVt=#RsrIs>L=d?md*M+YuSuMlM1Zk2i1o}i8q#UuNyIt0_*n;<8~)AE7}9=2?0oX z!J?Rl3sQ_RdDbb3Vp`=~IHCJ@lCaZDD!v(Gz7;6-?wlf-T$32JACP>YMcIRfP@tR^ z>4522Aj+aafGY(8$IiqNrPY~-K%h%t%xJ=BPFtuLnf?| z@zxcyUAerQSIsx5#1dyDw@)!=4$!X3Gl@kL>WymzN!?>qQjQ_M51OHm4!}hF0sgUv zD4P!Hi)xY*A^i^%oN^R`VY6>NKJ;O$7E2NpoFu2-)0vaL`MjEi0>rdP@!B3%#GO&N z)=RkR5f=Z43Z-xeMUxV*Ak-)LG5c5OLxoBt{XYjyLdds}|E@(ny@zS7LJxmfE7bZA zI=1tNm435M^+OMi(T7S##t1)DbUi#c4S<)i4T~~53eZ7Kj*U((L{&n@m@C^vg~$D8 zqddkP*FsrZ0DKRP&q$y2u4ahG zhMuf5o%VCkP+_@}p?&}0QIg>9)})MwY~|$`S{f{hMzkoKmup(E`v*r5*FI*2KlU&Z55uAxSp=I0rpbu{^4>R$ui>MpzySK$_u~=4FA7koP;Vt59M%zoZ zuck$hN`;p!hj`g^?B>rCU^D~p!qceK7JXrTL7d3YP?(xiF)06w5h4qUXJplbkwzKJ50}|zE zj${{GYM9c}OR}(vnMaFY=`c67=ltzCvz9>~R!Q#X0UdnoLs;Y- z`XNku7Y2!fyrEF)S{M4?~WF9ob^$a^lA$|B+c&6%HU2A|piv%A)5q3b;ny z=2Wu?lrrGElE?IFOpx7b9uB@osOD1NhlQNYucD8_?Q}5Svd1{GO6Z4Zu*q(feCR=y zM&;nV#|RABr`+hq+QeC_$@**#sywDCD}6|=JmNO2QOp~;^{B!#MhjMW!7_`+EK_Uo zFKt5rQe8GerPwO?#q};}n%XVo2NnF%dLi?`mzBCnje-5XZBW54trvaJ#*`}}FR}04 z_5v#!ub3|&;Q-8vXiR;pV6egXs?VW&6?(j^!V#`HD~xB4aR|l~`YKjJD^^4aEsJR5 zuL3%%{vs-~l=&25E`6PrTv3c)U}yfWQru@LS}lz+IA28}?w_kD1S3>djB}?!4e4NN z;c^pQ@lri-_0Xef5NcRQBz9{>QIEK?idGQ>*kHcMKQZo7du2CIv3IxUh_t4;&&L?V zVS$c%b4!7n9;`+A-cGC&d!wxA0CpQTF)L$m@;;<&R#wGqFpaLu9xu$)H4s0bwMWK3Pj+=tv|ye!6SN9!z}7c@atEK6t^1tYA1 zErt7TO!|?yPY5hRQzvwt|$UV|72W)Xfk2>y^*H3Ze}K)#z8))i<;lZ2Gk6GgRM|QDYRl=y0Sx0#l82{6V(F!e z5i3lUtx#i7g*i(d+G$t$Z0*ppISQ~i&elb=0=Yx6!BkhRFEUjQLk1 z^cSD1!94s^RERUur>N*r7Jm9fKYj8;7K{r$Y^{;H>VftDHC&EX?qfw(fytm3BsVwB z{^%8DkZ%U6gx8e2f|LxkQE}aNu4xIK8XZpGT8qoB7&PD&UwV)N5u$G2aP-#8EaG|Y zVRYkxBPffEOO!n}f`;R2V;!Z-xXnU(?#2PwfoQ0=qHzYe=UXEOSjzCPVGYGyV%?hO zSsVr9f+5r??3$~Y_9X)F8s8p~-HOwt(-zUTa5@b0l*GC5D(m&b=Pb>i!JS?G?F3Wsp!NoG; zrBz+p)Bc4^11XWl(QHw)%_z3DB#zQ*+j=Drjf8Ba$b1K?g{Ib)$? zn{pSb(u{j4TaTrV@+xQT6MElB%%$X(&s8+qx%9E5F1K`9(+d6_(Yk^$T8!{oqOM@L z8*g4gWNV(sbj-HRbB8Wr<1GUEMLXppaI%U;T*Z!cVYLyAojb-NtrAvrE>8NIrAoLk z7Lc>v>)RT-II)ZqW7+YI>BCjJ?)^62!g-LgK`+Pf;-#AxFUv9yy<9o&58D_4+<{Me zu;AaK66pblH&pq*xRCSghx_*ryph_Kh&#n!&^=vxm+UIV%bfZAl3h6t7VxDPi^$@@ z0gHTeU{YUuv4O)p;=%_9Ch^UI=L20)v*m_KB}gnII|rGRw`Wx9J`(O;ryL!{z|(icM6aZ1pBx^m zhr4|>l(wu4y)-_TTAM^_eVKa0`p7@YQa0jzpQKL7BjGY)`WTwctDXe_PLJTBIO2HW zR!=9qWJMBnogw-zFpsNl_^)gE2C6DtD8>Ela1krZ!h_PnChjH(HF6 zs@=PO`f0?y4FEgvw;OLGL^y=9iI|FwO@XM{m4>7GLoq z-x*87)SaZsTwJ+QCwWZH}2<5{?zMIcJ}@CzY;b)j)< zV+Ka}a$c-JGK>+tct)gKL{1ip4MLLS8{R>aX_S$bW+;XXmnE$8u% zW5Qy5bm|azSTf83H`^b6iDQg&^1LKh^#o)%{)vOpJ_VL2qu+`mh7l*1q556&q zO$qP7RvxdCv6`Lo*olpXBRIsuZFAD6-y62JdvtzfFh(#6fA zubhv#TP)o=^O9|VZI5af7T8lioR}BU2mvmeISr#KK1z!#z#X_&QBhVjo@Jn;4adlT zOIM`52GUI3=nb@Hci-tXkj}>;b+Uc~=}PCN8fY@?OitB73sxYx4#hr@Wj6{As3(j@ zwLWyxsflzsiX;Gh0MaD1j)W5{z&p^cX~aFT2*&I=POiRYGfYVZ5ew&xo6)icnyIoG zh!8IH>$QjRS*s#uDd<#PPIkjo$D4ZxKX`B_<_Jk)H%U=u9fee6{@K8lzR8_yaWg`NxpAs+J|#3* zb~EJl;QDkZNJE(-ev%rgPj}_td-Csn`S*eR`_R#by9Wo}Y@kDpaB;kuOW%fCQH-8` z>hcTO1T^<(IW8xZy^2*&4FMgQv)NjO^ZFaA2<JNL?ExWLhhS3n6v`N0-!>#AyFqq%`(&2<{PjEG->@ zzwG66@Kn1gF(>&=J?}T!I1JYL$y{<_USzh_HhQyi8cy-}E9_G>RmHBw#`CWtb2;67 zH{;F|pNwuud!d zhSfR)k;7=gkrZRNu`qbn8y_l(M`IqM6K zgXNBoE@_wteL)`t+`<_kbKpQAhI%A4*1j}u2t?`DUeKT~=Y{~W^s>*ICG0eoCW9mI z0BE+ilzYzy*T4Mc4WHl7Tewc0NXk*GwO&U zHk`6(C9f;fus!Ot)#3fEEm$3IrNIEwhbG#ltp~6#hy+4}wCr2~cY%8I+6fR|c#Iz% z93CD#9144MaPMF+?9pMLOL!Z0dzY*ch?@}6-EA;z07+pij-u?-9tgNq=X%Eq<9!SU z;o3U10JL>X0cb0qK%hbO%?4GNw(X7_P=l&W*MsWZ&J6|BpgPw>`nh#YL8R^ho928S z7QJD~5Nh$@@X*`Z_{D?6AGX6BZCzdfvvmj-50193p2dTs``&i0iC{-t*DHc;=dTEM zcfepBZRK@~2S-B&^oJpX^}~QkKKfznrm(OFW@&+VY~B~?MT0F1Z#&12;@MU*j&d(4 zE>=hWy{(YEBZD=aHxMe`PBrn-);W&tL}eET8U?owN}O*UlZ16*uvlRZj}Er>1mKSD z4uiWt0BqSC)mOkoq1$uQVwf)VJy;B%E~&ijDUzryOv!Wto8gIBlT9NHn!u7DkGj_c z_zsE@Bx1#RSGva~`CV$kPQg=R>zYmSzBoGy#4EB{)f*aILUuxajO|pu(7ig+5Bim| z5!P>xEj?$8yWWDO7Pqu+gDcMRZoY5}U&t0W>{+Hd2AHH};zqv7E8gw~zT49J!3X3# zu;)f@!wfjw}14?5v=9nH2+uVt~w3l)1;!z@v-@$>H|R z8sIHF%LW%`Sw3^*r*DF8J(=?35t;x1ZV?y{dQ+tem?$3M&BLR(Q%SP*z{Hc)kh2L- zR$Dh0p3S$CIUhDx;26Di3d+N~2U`iQJl;w`C5u_U%u?pDRX3QB1-vZi1s$?14A6_& z)&&Ux^tZzBRS<3EOchHko-kdoI3KWNtFGYIfmwB007_R zgK*;0W!AQBu)+?RT7-*ukoo;V{%YVPX524m7-fRaw$37!O1V$deCt6&!A9wP5NyZ- zCdOo_99FI523oCFon0SMMvJJVu?NxE2PaixS%+yMt~jMW4Tp_Un8mXzf5|8fdLs~8 z3v4}B)&-JbR3U-$5pB=o5zWZsqphs50X>N3C3F>YHgFJ!hw=^!JHgne*M8sIkpg2d|2{jN4u-gRCYWa(ACV}k}N~RvK1?6=;!f=A<#=$>8=IY29B!$Qm2oKMIEm? z*Aaj!;U1&}C>RZ|M6NkMzZyKX0BS*+W|tB5`wx5FGDXQ^e>K}Go*{I_3hFap)psA- z5587@qYKztUE_Rk_rW-vSfC&04~_%66DJn1;LHLTD85}g1Hf=N%F>GaNfnn7+@}m0 z-$7zO02WJDW(C{$L$3j`kn>8^;+kY7+amP}Mq^{eY*Fn%AH%tT-3U{Z5;$SoPxoId` zHtR5*jn}>69gUba+)EYSZdj1MJKsopH)ApNWI-EHH`am84QNL(wgJbr5&lL9-N6B> zttJY$%U{w}enFUwvdH-5h`?&er45Z4dSVckzX3TTX>W=GHl09%oaakC1{==CO&WQ?~xLfg@dSTTWVYi=Upqp)xX8t`N9Ap-+) zb2Y~8;L7kjfLL?;K^Dg>utb}2$`xf9v~Xn3v`+(lzRX-uh>_3x)JX_Z-mucLQ|UVE zY*@}gK-g|^>uJ0&Z3Yn+3=Kn z^I2yTKvYf%p^G8668+q6_GiVwODl%zL$qNhudpcq3mP@VExuWrk z`J%XAvJK?c7>aULTDj|*=Kk8P$m$ZBMQMe}#@!-IS6|!}9x+|;tf=_X&x67Ang<u<9+Dxke)OW-ILMAO9~!^W8*x6C3hDS_qr=h zx8{p=#v8A@WO`F7S>`#9f)N4y^GF3o4mvW<#>=y!q_dcLG`$*?NHtG8IvoSsEGoxg zoAqH^6m(?cy6ScVT^?=5Ve6`|HeS(@vicVMq9d_GfXNY;;sD&iuo*kd8{05%0&952 zjxGa3sEr%Bjcw#MVC9;v!>Y5q`Y^4HH7a9N?+1C*V=|?nLKa6WR$O_!q-CFLiY^fG zJmV4Eh=ZuBmgW(knhA6CB!=bJoCZQYqlF^V2SH@NkmtoOG21%@jD|nh^qa+*`9i>^^lBv!z z%Q-E|$T`hh+gQwlhjs_&!5bY@@pzIbVcikro@)$SaD9Fk2GG2qJu<%nM0?FBT?}6L zcua_V9@!=AF7SFz{q=Bl``XmDLo|zc|9H6kdTh$CqBOhrpr@e-vWUz1xKKgXi`Ka8 zR1WVT(>pD!oNEN`SsQh!qoPFc9B3b`vl2Pd3buVezYA-&oKOo-y8? zG1ORRaZJN;alWiV1Z6h#;d;1=cHLRCsDO-V8B=f-3++v87g&UY#{@tvRW7*KMbfZl zGhtm7b|6b@)D&yG%C)UsN%lp7YYha$?Prp*!-voxA!q5r?yqTG=nK|aY^e341?5>B zg??GklqXT?_p;`$e0|a3!VbKk${LQfv|_y~m*6Us_2`Fd=py5+ESXQ!G%IPzLJXwm zA;6IGoaX*&xLe&Sv`$pT!%sJ7I)KH7y`d}wTv5zIuY1;V>v4H*#aj-(sshk9hGO8_ zaQhn+QZPhRE%ck?@Q#&A$A{!T4rR_Hcq*I!mOJ0IS1C@kl?hS zsY6I?Lx&&&_MMeABuj(hDlZ2H`M352vjqTq`f?QF(CRtpv<;m^o4&9R1|U4eQM#z? zC&e~AaQ-;%<**vIV33sd2E(>hpP?anv`BAK6EMYDl$PMG2~Hn_NCIn8nDiwe}o{}q9OJ}bqhEO zA%^xm>a&v)z)rilUFrF zC^NfAYQl9=y0;-%kTmjky8*XGqLg4o1bIoffX$atk<-$uIxxYu1u+y*TVfa@&|*IC zi5Dn93YsLe@Cr8f;;3(*LvReie-i?zWB4yi>08I~U6U$4P-p&e{M3eC^-O5bNlcUu z3NPr~dbWH1fsaZT1>ns_)}eWaVL!V!FfzOPNU;yv)st6PI#=A zsjE|I4;r$$+ON3$7-!NtF-q0nsNL}*Td@?ZcRV~WyRTFFMxfyS90b6Wmn=&CVk>Kb z5^C&#yvTAt&K7-9@DO-F>@)$lmDP$%kiHuu6F3T%J!+6)GhdYL zg;U(npRq8N^b+IHcyJ1Qdzd!~*`vBa2)-D8xJ1}J`PAwHU(&#CA=v;Lu0liDRvmHV zN>q=ZMAPC<)AEl0v%A*3!zX!JMCoE1t?}|opHeJ3X#BXRo?A6Ql(#MDOFHu)kYs_1 zwH1x4fmbh1hSre~%VLCAt>T6%3~HuAK_pb|c~7*M4Y0)MHE%_Tfs#;Y#{&@o~7g16Rmq5l#Id%dZMZdp&+TM=TK7 z5Q66oIXZn6-vo_`@q`s63;c4)66S^Sq@KBS30rzHr%4oFiLCAZf`vgg*b#fdY}7xG zf|$Xg9s>oKrL&o@awq`Uq>mlb3-H#x{e-Q$R;{X{`kdiqVbN6Gl)& zCRv#kSxo(c0dWi|!9BEvhcM8+ib-7}W#tiuYlShDIntOt26b!hUB{2NB?)9}WF4rggMwz6BL zvn;z<=2-z3_`{nnrS5qq1@ZX*BnSTJ zINU5}ZA#gApeY=kKpYBnF@3DSn6*sucu>3JiaOc}U)tE4n!bUWw97UV*?8%EgkKo| zw-IFdm|#>0-9b@Uechd*oQg#UMNWCpxpwTcxEHjR(=G)-@=a)iJTu*k%t|Y#Yi?f+fvPR_DxAQjG;4mG>X4D-~p00YrYzvTCe`s0>RNlYW zlQT&G1uX9Irxq}M$@K)p_Nzz%H=l3s+twRK0k%B4Z$)L583495%FCnsu3H*g`D0so z@9>8odbG|4;L$-}3MLKc$~|+%LmnAqz-KeD>gRc%X{Pw#;1=^$C5+MC4o+M0?m#jCDWCQM~$5m7SZoBOfP^-QivI?Xp zV37oYD}tchO4vHE(ePXy)k>-ps?}=QCJ~KKB$ybEGtoFZoW90sXMk4Nd_;e8U3W*~ z)cEYl1?>2^#@FHD8Xx`~j&h|@c2*^#MB}&BmV^m*c(3fsYo<{)g^kvk$;0hR#z#!vz?{m01>Zu!G;aS9eSC zga((}r5z(O6ioH@J+lcvXd{vE-0l-;hi+%E$p&q~)oN9_wm18RQ0Wc9O0TPEHF$Sf zMONyBi??dV{Hv|{mQ}u0d|Tx`S-S?HPaTCc_+Sy_?THj}=&TUizpUqoJ# zt)dav1p>T_sb|Ey7a-=?ZZNwSD%G_%j?2@B{!@K0)vXqufnvxgk!Ul2A zJ32TzB2Thv5mQbcFN=tmS-xZi`CAn8EQLb9KYv4hivpH%7TzY`@871~c1gj?sz^2JTOAN`Mh;JJ-`fBF z``fpmWm#CojIa$j19BhU?cctAD^akr>Tkb2IK6$Vh5WiXg5_1t_!kc17mZ)5Z*QP} z$FSiy_sHSr#^6b0?ePI^fd2L^F}B9whAaoqyEKRxj4*up*Sv^Uv}E`T z2K*LuC^SY~%+_@GRDNTdGNlP4X9WDAeEIX#R^N&i5d>Z9uk7jH-@JPC_|3(e|9JWI z;?>i?KK=Vkaz^(5^B?^C>G^-2{)4~!es}uw$?4~R@Xz1w?yGjZdHVNm8Ms#a$Nqj~ zZB9*FqA}Ghj)J-^>a#RFA!kHBopwLM(Emx|EW51o69q@E8<1IAvb2PW0#x-c6G-zN zaz^yC6#!~{fdaoD6pWT^npSbVYr=}=kTcmX^HV9w#fkxjYM;E!@(K(xNV#NnTll^x zn$VozzI7{?K)=(RPrGg0BaI4oo73=DRwD9{&1n^vdf4V!K`8nC`R`8&6ch8KCJ7vQ z$e+So{u;l_FLI6iIm@z`(e$$fspnI#3RTY(O5@7AMF=duZ{P*_{29?^bNoZTIXfd0 zfo!6HiCU4utr%Wi-^M@t`{d1wCofJ&#Tmil1+t$4KO%3XWw0b?HY)eoh6SQgr!{

N`Ftv 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 oQ}~TpCxqV_yT$9{const{config:s,getConfig:l,saveConfig:r}=h();o.useEffect(()=>{c(),l()},[]),o.useEffect(()=>{if(s.pageApi){const a=document.getElementById("pageApi");a.value=s.pageApi}},[s]);const c=()=>{const a=document.getElementById("particles"),p=20;if(a)for(let i=0;i + + + + + + + `;const n=10+Math.random()*20;t.style.width=`${n}px`,t.style.height=`${n}px`,t.style.left=`${Math.random()*100}%`,t.style.top=`${Math.random()*100}%`,t.style.animationDuration=`${5+Math.random()*5}s`,t.style.animationDelay=`${Math.random()*5}s`,a.appendChild(t)}},d=()=>{const a=document.getElementById("pageApi");r(a.value)};return e.jsxs("div",{className:"h-full w-full p-4 pt-10",children:[e.jsx("div",{className:"particles",id:"particles"}),e.jsxs("div",{className:"container",children:[e.jsxs("div",{className:"header",children:[e.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"}),e.jsx("circle",{cx:"12",cy:"12",r:"3"})]}),e.jsx("h1",{children:"Page Enter Configuration"})]}),e.jsxs("div",{className:"form-container",children:[e.jsxs("form",{id:"configForm",children:[e.jsxs("div",{className:"form-group",children:[e.jsx("label",{htmlFor:"pageApi",children:"Page Enter Api"}),e.jsx("input",{type:"text",id:"pageApi",placeholder:"Enter page api configuration"})]}),e.jsxs("button",{type:"submit",id:"save-button",onClick:d,children:[e.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("path",{d:"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"}),e.jsx("polyline",{points:"17 21 17 13 7 13 7 21"}),e.jsx("polyline",{points:"7 3 7 8 15 8"})]}),"Save Configuration"]})]}),e.jsx("div",{id:"save-result"})]})]})]})};export{m as default}; diff --git a/src/renderer/root/assistant-base-app/assets/Enter-CoE7l2Yc.css b/src/renderer/root/assistant-base-app/assets/Enter-CoE7l2Yc.css new file mode 100644 index 0000000..b3ad898 --- /dev/null +++ b/src/renderer/root/assistant-base-app/assets/Enter-CoE7l2Yc.css @@ -0,0 +1 @@ +*{box-sizing:border-box}body{min-height:100vh;background:linear-gradient(135deg,#fef3c7,#fffbeb);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;position:relative;overflow-x:hidden}.container{max-width:42rem;margin:0 auto}.header{display:flex;align-items:center;gap:.75rem;margin-bottom:2rem}.header svg{width:2rem;height:2rem;color:#d97706;animation:spin 8s linear infinite}.header h1{font-size:1.875rem;font-weight:700;color:#92400e}.form-container{background:#fffc;backdrop-filter:blur(8px);border-radius:1rem;box-shadow:0 4px 6px #d977061a;padding:2rem;transition:all .3s ease}.form-container:hover{box-shadow:0 8px 12px #d9770626}.form-group{margin-bottom:1.5rem}label{display:block;font-size:.875rem;font-weight:500;color:#92400e;margin-bottom:.25rem}input[type=text]{width:100%;padding:.75rem 1rem;border:1px solid #fbbf24;border-radius:.5rem;font-size:1rem;transition:all .2s}input[type=text]:focus{outline:none;border-color:#d97706;box-shadow:0 0 0 3px #d9770633}button{width:100%;display:flex;align-items:center;justify-content:center;gap:.5rem;background-color:#d97706;color:#fff;padding:.75rem 1.5rem;border:none;border-radius:.5rem;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s}button:hover{background-color:#b45309}.particles{position:absolute;inset:0;pointer-events:none;overflow:hidden}.particle{position:absolute;color:#fbbf24;opacity:.3;animation:float 5s ease-in-out infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(10deg)}} diff --git a/src/renderer/root/assistant-base-app/assets/index-B3OKg3E6.js b/src/renderer/root/assistant-base-app/assets/index-B3OKg3E6.js new file mode 100644 index 0000000..74dd6ed --- /dev/null +++ b/src/renderer/root/assistant-base-app/assets/index-B3OKg3E6.js @@ -0,0 +1,31 @@ +import{c as v,y as d,a as f,q as N,r as u,u as C,j as n}from"./index-OAiiq-Mf.js";const $=v((t,i)=>({installedPackages:[],shopPackages:[],setInstalledPackages:s=>t({installedPackages:s}),setShopPackages:s=>t({shopPackages:s}),getInstalledPackages:async()=>{const s=await f.post({path:"shop",key:"list-installed"});return s.code===200&&t({installedPackages:s.data}),s.data},getShopPackages:async()=>{const s=await N.post({path:"app",key:"public-list"});return s.code===200&&t({shopPackages:s.data}),s.data},uninstallPackage:async s=>{const c=await f.post({path:"shop",key:"uninstall",data:{pkg:s}});c.code===200?(i().getInstalledPackages(),d.success("Package uninstalled successfully")):d.error(c.message||"Failed to uninstall package"),console.log("uninstallPackage",c)},installPackage:async s=>{const c=d.loading("Installing package..."),o=await f.post({path:"shop",key:"install",data:{pkg:s}});d.dismiss(c),o.code===200?(i().getInstalledPackages(),d.success("Package installed successfully")):d.error(o.message||"Failed to install package"),console.log("installPackage",o)}}));/** + * @license lucide-react v0.479.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const I=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),x=(...t)=>t.filter((i,s,c)=>!!i&&i.trim()!==""&&c.indexOf(i)===s).join(" ").trim();/** + * @license lucide-react v0.479.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */var A={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** + * @license lucide-react v0.479.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const U=u.forwardRef(({color:t="currentColor",size:i=24,strokeWidth:s=2,absoluteStrokeWidth:c,className:o="",children:r,iconNode:h,...p},k)=>u.createElement("svg",{ref:k,...A,width:i,height:i,stroke:t,strokeWidth:c?Number(s)*24/Number(i):s,className:x("lucide",o),...p},[...h.map(([g,m])=>u.createElement(g,m)),...Array.isArray(r)?r:[r]]));/** + * @license lucide-react v0.479.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const b=(t,i)=>{const s=u.forwardRef(({className:c,...o},r)=>u.createElement(U,{ref:r,iconNode:i,className:x(`lucide-${I(t)}`,c),...o}));return s.displayName=`${t}`,s};/** + * @license lucide-react v0.479.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const S=[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]],q=b("Link2",S);/** + * @license lucide-react v0.479.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + */const R=[["path",{d:"M21 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h6",key:"y09zxi"}],["path",{d:"m21 3-9 9",key:"mpx6sq"}],["path",{d:"M15 3h6v6",key:"1q9fwt"}]],E=b("SquareArrowOutUpRight",R),M=()=>{const{shopPackages:t,installedPackages:i,getInstalledPackages:s,getShopPackages:c,uninstallPackage:o,installPackage:r}=$(),{pageApi:h}=C();u.useEffect(()=>{s(),c()},[]);const p=e=>{const a=i.find(l=>l.user===e.user&&l.key===e.key);return a?a.version!==e.version?"update-available":"installed":"not-installed"},k=e=>{const a=t.find(l=>l.id===e);a&&r(a)},g=e=>{const a=t.find(l=>l.id===e);a&&r(a)},m=e=>{const a=t.find(l=>l.id===e);a&&r(a)},y=e=>{const a=t.find(l=>l.id===e);a&&o(a)},P=(e,a)=>{switch(e){case"not-installed":return n.jsx("button",{className:"button button-install",onClick:()=>k(a.id),children:"Install"});case"update-available":return n.jsx("button",{className:"button button-update",onClick:()=>g(a.id),children:"Update"});case"installed":return n.jsx("button",{className:"button button-reinstall",onClick:()=>m(a.id),children:"Reinstall"})}},w=e=>{const a="https://kevisual.silkyai.cn",l=`/${e.user}/${e.key}`;window.open(`${a}${l}`,"_blank")},j=e=>{if(!h)return;const a=h,l=`/${e.user}/${e.key}`;window.open(`${a}${l}`,"_blank")};return n.jsxs("div",{id:"app",children:[n.jsx("h1",{children:"Package Manager"}),n.jsx("div",{className:"package-list",children:t.map(e=>{const a=p(e),l=a!=="not-installed";return n.jsxs("div",{className:"package-card",children:[n.jsx("h2",{children:e.title}),n.jsx("p",{className:"description",children:e.description}),n.jsxs("div",{className:"package-info",children:[n.jsxs("span",{children:["Version: ",e.version]}),n.jsxs("span",{children:["User: ",e.user]})]}),n.jsxs("div",{className:"actions",children:[P(a,e),a!=="not-installed"&&n.jsx("button",{className:"button button-uninstall",onClick:()=>y(e.id),children:"Uninstall"}),n.jsxs("div",{className:"flex gap-2",children:[n.jsx("div",{className:"cursor-pointer p-2 rounded-md bg-amber-500 text-white",children:n.jsx(E,{onClick:()=>w(e)})}),h&&l&&n.jsx("div",{className:"cursor-pointer p-2 rounded-md bg-amber-500 text-white",children:n.jsx(q,{onClick:()=>j(e)})})]})]})]},e.id)})})]})};export{M as PackageManager,M as default}; diff --git a/src/renderer/root/assistant-base-app/assets/index-BQID9xYq.css b/src/renderer/root/assistant-base-app/assets/index-BQID9xYq.css new file mode 100644 index 0000000..db4fbc8 --- /dev/null +++ b/src/renderer/root/assistant-base-app/assets/index-BQID9xYq.css @@ -0,0 +1 @@ +:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;background-color:#fff8e1;color:#213547}body{margin:0;min-width:320px;min-height:100vh}#app{max-width:1280px;margin:0 auto;padding:2rem}h1{text-align:center;color:#ff8f00}.package-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem;padding:1rem}.package-card{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #ff8f001a;border:1px solid #ffe0b2}.package-card h2{margin:0 0 .5rem;color:#f57c00}.package-card .description{color:#666;margin-bottom:1rem;font-size:.9rem;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;line-height:1.5;max-height:6em}.package-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;font-size:.9rem;color:#666}.actions{display:flex;gap:.5rem}.button{padding:.5rem 1rem;border-radius:4px;border:none;cursor:pointer;font-weight:500;transition:background-color .2s}.button-install{background-color:#ffa000;color:#fff}.button-update{background-color:#ff8f00;color:#fff}.button-reinstall{background-color:#ffb300;color:#fff}.button-uninstall{background-color:#ff6f00;color:#fff}.button:hover{opacity:.9}.button:disabled{background-color:#ffe0b2;cursor:not-allowed}.error-message{text-align:center;color:#ff6f00;padding:2rem;background:#fff;border-radius:8px;box-shadow:0 2px 4px #ff8f001a;grid-column:1 / -1} diff --git a/src/renderer/root/assistant-base-app/assets/index-CyYNi-ro.css b/src/renderer/root/assistant-base-app/assets/index-CyYNi-ro.css new file mode 100644 index 0000000..90427ab --- /dev/null +++ b/src/renderer/root/assistant-base-app/assets/index-CyYNi-ro.css @@ -0,0 +1 @@ +/*! tailwindcss v4.0.9 | MIT License | https://tailwindcss.com */@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-amber-500:oklch(.769 .188 70.08);--color-gray-300:oklch(.872 .01 258.338);--color-white:#fff;--spacing:.25rem;--radius-md:.375rem;--ease-in-out:cubic-bezier(.4,0,.2,1);--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-font-feature-settings:var(--font-sans--font-feature-settings);--default-font-variation-settings:var(--font-sans--font-variation-settings);--default-mono-font-family:var(--font-mono);--default-mono-font-feature-settings:var(--font-mono--font-feature-settings);--default-mono-font-variation-settings:var(--font-mono--font-variation-settings)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1;color:color-mix(in oklab,currentColor 50%,transparent)}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components{.test-loading{height:calc(var(--spacing)*20);width:calc(var(--spacing)*20);animation:var(--animate-spin);background-color:var(--color-gray-300);border-radius:3.40282e38px}}@layer utilities{.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.top-0{top:calc(var(--spacing)*0)}.z-10{z-index:10}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.hidden{display:none}.h-10{height:calc(var(--spacing)*10)}.h-full{height:100%}.w-10{width:calc(var(--spacing)*10)}.w-full{width:100%}.transform{transform:var(--tw-rotate-x)var(--tw-rotate-y)var(--tw-rotate-z)var(--tw-skew-x)var(--tw-skew-y)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing)*2)}:where(.space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*4)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-x-reverse)))}.rounded{border-radius:.25rem}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.bg-amber-500{background-color:var(--color-amber-500)}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.pt-10{padding-top:calc(var(--spacing)*10)}.text-white{color:var(--color-white)}.text-white\/70{color:color-mix(in oklab,var(--color-white)70%,transparent)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}}html,body{width:100%;height:100%;margin:0;padding:0;overflow:hidden}#root{width:100%;height:100%;overflow:auto}#root::-webkit-scrollbar{width:1px}#root::-webkit-scrollbar-thumb{background-color:#00000080;border-radius:10px}#root::-webkit-scrollbar-track{background:0 0}@property --tw-rotate-x{syntax:"*";inherits:false;initial-value:rotateX(0)}@property --tw-rotate-y{syntax:"*";inherits:false;initial-value:rotateY(0)}@property --tw-rotate-z{syntax:"*";inherits:false;initial-value:rotateZ(0)}@property --tw-skew-x{syntax:"*";inherits:false;initial-value:skewX(0)}@property --tw-skew-y{syntax:"*";inherits:false;initial-value:skewY(0)}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}} diff --git a/src/renderer/root/assistant-base-app/assets/index-OAiiq-Mf.js b/src/renderer/root/assistant-base-app/assets/index-OAiiq-Mf.js new file mode 100644 index 0000000..2273ab7 --- /dev/null +++ b/src/renderer/root/assistant-base-app/assets/index-OAiiq-Mf.js @@ -0,0 +1,51 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-B3OKg3E6.js","assets/index-BQID9xYq.css","assets/Enter-BnWSbQup.js","assets/Enter-CoE7l2Yc.css"])))=>i.map(i=>d[i]); +(function(){const o=document.createElement("link").relList;if(o&&o.supports&&o.supports("modulepreload"))return;for(const E of document.querySelectorAll('link[rel="modulepreload"]'))r(E);new MutationObserver(E=>{for(const D of E)if(D.type==="childList")for(const A of D.addedNodes)A.tagName==="LINK"&&A.rel==="modulepreload"&&r(A)}).observe(document,{childList:!0,subtree:!0});function v(E){const D={};return E.integrity&&(D.integrity=E.integrity),E.referrerPolicy&&(D.referrerPolicy=E.referrerPolicy),E.crossOrigin==="use-credentials"?D.credentials="include":E.crossOrigin==="anonymous"?D.credentials="omit":D.credentials="same-origin",D}function r(E){if(E.ep)return;E.ep=!0;const D=v(E);fetch(E.href,D)}})();function ky(c){return c&&c.__esModule&&Object.prototype.hasOwnProperty.call(c,"default")?c.default:c}var ic={exports:{}},Du={};/** + * @license React + * react-jsx-runtime.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var ad;function $y(){if(ad)return Du;ad=1;var c=Symbol.for("react.transitional.element"),o=Symbol.for("react.fragment");function v(r,E,D){var A=null;if(D!==void 0&&(A=""+D),E.key!==void 0&&(A=""+E.key),"key"in E){D={};for(var H in E)H!=="key"&&(D[H]=E[H])}else D=E;return E=D.ref,{$$typeof:c,type:r,key:A,ref:E!==void 0?E:null,props:D}}return Du.Fragment=o,Du.jsx=v,Du.jsxs=v,Du}var ed;function Wy(){return ed||(ed=1,ic.exports=$y()),ic.exports}var tl=Wy(),fc={exports:{}},Mu={},cc={exports:{}},sc={};/** + * @license React + * scheduler.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var ud;function Fy(){return ud||(ud=1,function(c){function o(U,w){var G=U.length;U.push(w);t:for(;0>>1,d=U[pt];if(0>>1;ptE(Z,G))NE(ct,Z)?(U[pt]=ct,U[N]=G,pt=N):(U[pt]=Z,U[K]=G,pt=K);else if(NE(ct,G))U[pt]=ct,U[N]=G,pt=N;else break t}}return w}function E(U,w){var G=U.sortIndex-w.sortIndex;return G!==0?G:U.id-w.id}if(c.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var D=performance;c.unstable_now=function(){return D.now()}}else{var A=Date,H=A.now();c.unstable_now=function(){return A.now()-H}}var T=[],b=[],R=1,C=null,Q=3,J=!1,dt=!1,et=!1,W=typeof setTimeout=="function"?setTimeout:null,P=typeof clearTimeout=="function"?clearTimeout:null,x=typeof setImmediate<"u"?setImmediate:null;function X(U){for(var w=v(b);w!==null;){if(w.callback===null)r(b);else if(w.startTime<=U)r(b),w.sortIndex=w.expirationTime,o(T,w);else break;w=v(b)}}function $(U){if(et=!1,X(U),!dt)if(v(T)!==null)dt=!0,zl();else{var w=v(b);w!==null&&Zt($,w.startTime-U)}}var L=!1,vt=-1,tt=5,it=-1;function B(){return!(c.unstable_now()-itU&&B());){var pt=C.callback;if(typeof pt=="function"){C.callback=null,Q=C.priorityLevel;var d=pt(C.expirationTime<=U);if(U=c.unstable_now(),typeof d=="function"){C.callback=d,X(U),w=!0;break l}C===v(T)&&r(T),X(U)}else r(T);C=v(T)}if(C!==null)w=!0;else{var M=v(b);M!==null&&Zt($,M.startTime-U),w=!1}}break t}finally{C=null,Q=G,J=!1}w=void 0}}finally{w?Dt():L=!1}}}var Dt;if(typeof x=="function")Dt=function(){x(I)};else if(typeof MessageChannel<"u"){var Lt=new MessageChannel,Wt=Lt.port2;Lt.port1.onmessage=I,Dt=function(){Wt.postMessage(null)}}else Dt=function(){W(I,0)};function zl(){L||(L=!0,Dt())}function Zt(U,w){vt=W(function(){U(c.unstable_now())},w)}c.unstable_IdlePriority=5,c.unstable_ImmediatePriority=1,c.unstable_LowPriority=4,c.unstable_NormalPriority=3,c.unstable_Profiling=null,c.unstable_UserBlockingPriority=2,c.unstable_cancelCallback=function(U){U.callback=null},c.unstable_continueExecution=function(){dt||J||(dt=!0,zl())},c.unstable_forceFrameRate=function(U){0>U||125pt?(U.sortIndex=G,o(b,U),v(T)===null&&U===v(b)&&(et?(P(vt),vt=-1):et=!0,Zt($,G-pt))):(U.sortIndex=d,o(T,U),dt||J||(dt=!0,zl())),U},c.unstable_shouldYield=B,c.unstable_wrapCallback=function(U){var w=Q;return function(){var G=Q;Q=w;try{return U.apply(this,arguments)}finally{Q=G}}}}(sc)),sc}var nd;function Iy(){return nd||(nd=1,cc.exports=Fy()),cc.exports}var oc={exports:{}},F={};/** + * @license React + * react.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var id;function Py(){if(id)return F;id=1;var c=Symbol.for("react.transitional.element"),o=Symbol.for("react.portal"),v=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),E=Symbol.for("react.profiler"),D=Symbol.for("react.consumer"),A=Symbol.for("react.context"),H=Symbol.for("react.forward_ref"),T=Symbol.for("react.suspense"),b=Symbol.for("react.memo"),R=Symbol.for("react.lazy"),C=Symbol.iterator;function Q(d){return d===null||typeof d!="object"?null:(d=C&&d[C]||d["@@iterator"],typeof d=="function"?d:null)}var J={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},dt=Object.assign,et={};function W(d,M,K){this.props=d,this.context=M,this.refs=et,this.updater=K||J}W.prototype.isReactComponent={},W.prototype.setState=function(d,M){if(typeof d!="object"&&typeof d!="function"&&d!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,d,M,"setState")},W.prototype.forceUpdate=function(d){this.updater.enqueueForceUpdate(this,d,"forceUpdate")};function P(){}P.prototype=W.prototype;function x(d,M,K){this.props=d,this.context=M,this.refs=et,this.updater=K||J}var X=x.prototype=new P;X.constructor=x,dt(X,W.prototype),X.isPureReactComponent=!0;var $=Array.isArray,L={H:null,A:null,T:null,S:null},vt=Object.prototype.hasOwnProperty;function tt(d,M,K,Z,N,ct){return K=ct.ref,{$$typeof:c,type:d,key:M,ref:K!==void 0?K:null,props:ct}}function it(d,M){return tt(d.type,M,void 0,void 0,void 0,d.props)}function B(d){return typeof d=="object"&&d!==null&&d.$$typeof===c}function I(d){var M={"=":"=0",":":"=2"};return"$"+d.replace(/[=:]/g,function(K){return M[K]})}var Dt=/\/+/g;function Lt(d,M){return typeof d=="object"&&d!==null&&d.key!=null?I(""+d.key):M.toString(36)}function Wt(){}function zl(d){switch(d.status){case"fulfilled":return d.value;case"rejected":throw d.reason;default:switch(typeof d.status=="string"?d.then(Wt,Wt):(d.status="pending",d.then(function(M){d.status==="pending"&&(d.status="fulfilled",d.value=M)},function(M){d.status==="pending"&&(d.status="rejected",d.reason=M)})),d.status){case"fulfilled":return d.value;case"rejected":throw d.reason}}throw d}function Zt(d,M,K,Z,N){var ct=typeof d;(ct==="undefined"||ct==="boolean")&&(d=null);var lt=!1;if(d===null)lt=!0;else switch(ct){case"bigint":case"string":case"number":lt=!0;break;case"object":switch(d.$$typeof){case c:case o:lt=!0;break;case R:return lt=d._init,Zt(lt(d._payload),M,K,Z,N)}}if(lt)return N=N(d),lt=Z===""?"."+Lt(d,0):Z,$(N)?(K="",lt!=null&&(K=lt.replace(Dt,"$&/")+"/"),Zt(N,M,K,"",function(Nt){return Nt})):N!=null&&(B(N)&&(N=it(N,K+(N.key==null||d&&d.key===N.key?"":(""+N.key).replace(Dt,"$&/")+"/")+lt)),M.push(N)),1;lt=0;var Ft=Z===""?".":Z+":";if($(d))for(var mt=0;mt"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(c)}catch(o){console.error(o)}}return c(),rc.exports=tm(),rc.exports}/** + * @license React + * react-dom-client.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */var od;function am(){if(od)return Mu;od=1;var c=Iy(),o=gc(),v=lm();function r(t){var l="https://react.dev/errors/"+t;if(1)":-1u||s[e]!==m[u]){var S=` +`+s[e].replace(" at new "," at ");return t.displayName&&S.includes("")&&(S=S.replace("",t.displayName)),S}while(1<=e&&0<=u);break}}}finally{zl=!1,Error.prepareStackTrace=a}return(a=t?t.displayName||t.name:"")?Wt(a):""}function U(t){switch(t.tag){case 26:case 27:case 5:return Wt(t.type);case 16:return Wt("Lazy");case 13:return Wt("Suspense");case 19:return Wt("SuspenseList");case 0:case 15:return t=Zt(t.type,!1),t;case 11:return t=Zt(t.type.render,!1),t;case 1:return t=Zt(t.type,!0),t;default:return""}}function w(t){try{var l="";do l+=U(t),t=t.return;while(t);return l}catch(a){return` +Error generating stack: `+a.message+` +`+a.stack}}function G(t){var l=t,a=t;if(t.alternate)for(;l.return;)l=l.return;else{t=l;do l=t,(l.flags&4098)!==0&&(a=l.return),t=l.return;while(t)}return l.tag===3?a:null}function pt(t){if(t.tag===13){var l=t.memoizedState;if(l===null&&(t=t.alternate,t!==null&&(l=t.memoizedState)),l!==null)return l.dehydrated}return null}function d(t){if(G(t)!==t)throw Error(r(188))}function M(t){var l=t.alternate;if(!l){if(l=G(t),l===null)throw Error(r(188));return l!==t?null:t}for(var a=t,e=l;;){var u=a.return;if(u===null)break;var n=u.alternate;if(n===null){if(e=u.return,e!==null){a=e;continue}break}if(u.child===n.child){for(n=u.child;n;){if(n===a)return d(u),t;if(n===e)return d(u),l;n=n.sibling}throw Error(r(188))}if(a.return!==e.return)a=u,e=n;else{for(var i=!1,f=u.child;f;){if(f===a){i=!0,a=u,e=n;break}if(f===e){i=!0,e=u,a=n;break}f=f.sibling}if(!i){for(f=n.child;f;){if(f===a){i=!0,a=n,e=u;break}if(f===e){i=!0,e=n,a=u;break}f=f.sibling}if(!i)throw Error(r(189))}}if(a.alternate!==e)throw Error(r(190))}if(a.tag!==3)throw Error(r(188));return a.stateNode.current===a?t:l}function K(t){var l=t.tag;if(l===5||l===26||l===27||l===6)return t;for(t=t.child;t!==null;){if(l=K(t),l!==null)return l;t=t.sibling}return null}var Z=Array.isArray,N=v.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ct={pending:!1,data:null,method:null,action:null},lt=[],Ft=-1;function mt(t){return{current:t}}function Nt(t){0>Ft||(t.current=lt[Ft],lt[Ft]=null,Ft--)}function zt(t,l){Ft++,lt[Ft]=t.current,t.current=l}var Rl=mt(null),Ue=mt(null),ta=mt(null),Nu=mt(null);function xu(t,l){switch(zt(ta,l),zt(Ue,t),zt(Rl,null),t=l.nodeType,t){case 9:case 11:l=(l=l.documentElement)&&(l=l.namespaceURI)?Hr(l):0;break;default:if(t=t===8?l.parentNode:l,l=t.tagName,t=t.namespaceURI)t=Hr(t),l=Nr(t,l);else switch(l){case"svg":l=1;break;case"math":l=2;break;default:l=0}}Nt(Rl),zt(Rl,l)}function ka(){Nt(Rl),Nt(Ue),Nt(ta)}function Wn(t){t.memoizedState!==null&&zt(Nu,t);var l=Rl.current,a=Nr(l,t.type);l!==a&&(zt(Ue,t),zt(Rl,a))}function qu(t){Ue.current===t&&(Nt(Rl),Nt(Ue)),Nu.current===t&&(Nt(Nu),Tu._currentValue=ct)}var Fn=Object.prototype.hasOwnProperty,In=c.unstable_scheduleCallback,Pn=c.unstable_cancelCallback,Od=c.unstable_shouldYield,Dd=c.unstable_requestPaint,Ul=c.unstable_now,Md=c.unstable_getCurrentPriorityLevel,_c=c.unstable_ImmediatePriority,pc=c.unstable_UserBlockingPriority,Cu=c.unstable_NormalPriority,Rd=c.unstable_LowPriority,Sc=c.unstable_IdlePriority,Ud=c.log,Hd=c.unstable_setDisableYieldValue,He=null,nl=null;function Nd(t){if(nl&&typeof nl.onCommitFiberRoot=="function")try{nl.onCommitFiberRoot(He,t,void 0,(t.current.flags&128)===128)}catch{}}function la(t){if(typeof Ud=="function"&&Hd(t),nl&&typeof nl.setStrictMode=="function")try{nl.setStrictMode(He,t)}catch{}}var il=Math.clz32?Math.clz32:Cd,xd=Math.log,qd=Math.LN2;function Cd(t){return t>>>=0,t===0?32:31-(xd(t)/qd|0)|0}var Bu=128,Yu=4194304;function za(t){var l=t&42;if(l!==0)return l;switch(t&-t){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t&4194176;case 4194304:case 8388608:case 16777216:case 33554432:return t&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return t}}function Xu(t,l){var a=t.pendingLanes;if(a===0)return 0;var e=0,u=t.suspendedLanes,n=t.pingedLanes,i=t.warmLanes;t=t.finishedLanes!==0;var f=a&134217727;return f!==0?(a=f&~u,a!==0?e=za(a):(n&=f,n!==0?e=za(n):t||(i=f&~i,i!==0&&(e=za(i))))):(f=a&~u,f!==0?e=za(f):n!==0?e=za(n):t||(i=a&~i,i!==0&&(e=za(i)))),e===0?0:l!==0&&l!==e&&(l&u)===0&&(u=e&-e,i=l&-l,u>=i||u===32&&(i&4194176)!==0)?l:e}function Ne(t,l){return(t.pendingLanes&~(t.suspendedLanes&~t.pingedLanes)&l)===0}function Bd(t,l){switch(t){case 1:case 2:case 4:case 8:return l+250;case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return l+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Tc(){var t=Bu;return Bu<<=1,(Bu&4194176)===0&&(Bu=128),t}function Ec(){var t=Yu;return Yu<<=1,(Yu&62914560)===0&&(Yu=4194304),t}function ti(t){for(var l=[],a=0;31>a;a++)l.push(t);return l}function xe(t,l){t.pendingLanes|=l,l!==268435456&&(t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0)}function Yd(t,l,a,e,u,n){var i=t.pendingLanes;t.pendingLanes=a,t.suspendedLanes=0,t.pingedLanes=0,t.warmLanes=0,t.expiredLanes&=a,t.entangledLanes&=a,t.errorRecoveryDisabledLanes&=a,t.shellSuspendCounter=0;var f=t.entanglements,s=t.expirationTimes,m=t.hiddenUpdates;for(a=i&~a;0"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Qd=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),Hc={},Nc={};function Ld(t){return Fn.call(Nc,t)?!0:Fn.call(Hc,t)?!1:Qd.test(t)?Nc[t]=!0:(Hc[t]=!0,!1)}function ju(t,l,a){if(Ld(l))if(a===null)t.removeAttribute(l);else{switch(typeof a){case"undefined":case"function":case"symbol":t.removeAttribute(l);return;case"boolean":var e=l.toLowerCase().slice(0,5);if(e!=="data-"&&e!=="aria-"){t.removeAttribute(l);return}}t.setAttribute(l,""+a)}}function Gu(t,l,a){if(a===null)t.removeAttribute(l);else{switch(typeof a){case"undefined":case"function":case"symbol":case"boolean":t.removeAttribute(l);return}t.setAttribute(l,""+a)}}function Yl(t,l,a,e){if(e===null)t.removeAttribute(a);else{switch(typeof e){case"undefined":case"function":case"symbol":case"boolean":t.removeAttribute(a);return}t.setAttributeNS(l,a,""+e)}}function dl(t){switch(typeof t){case"bigint":case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function xc(t){var l=t.type;return(t=t.nodeName)&&t.toLowerCase()==="input"&&(l==="checkbox"||l==="radio")}function Zd(t){var l=xc(t)?"checked":"value",a=Object.getOwnPropertyDescriptor(t.constructor.prototype,l),e=""+t[l];if(!t.hasOwnProperty(l)&&typeof a<"u"&&typeof a.get=="function"&&typeof a.set=="function"){var u=a.get,n=a.set;return Object.defineProperty(t,l,{configurable:!0,get:function(){return u.call(this)},set:function(i){e=""+i,n.call(this,i)}}),Object.defineProperty(t,l,{enumerable:a.enumerable}),{getValue:function(){return e},setValue:function(i){e=""+i},stopTracking:function(){t._valueTracker=null,delete t[l]}}}}function Qu(t){t._valueTracker||(t._valueTracker=Zd(t))}function qc(t){if(!t)return!1;var l=t._valueTracker;if(!l)return!0;var a=l.getValue(),e="";return t&&(e=xc(t)?t.checked?"true":"false":t.value),t=e,t!==a?(l.setValue(t),!0):!1}function Lu(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}var Vd=/[\n"\\]/g;function yl(t){return t.replace(Vd,function(l){return"\\"+l.charCodeAt(0).toString(16)+" "})}function ei(t,l,a,e,u,n,i,f){t.name="",i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"?t.type=i:t.removeAttribute("type"),l!=null?i==="number"?(l===0&&t.value===""||t.value!=l)&&(t.value=""+dl(l)):t.value!==""+dl(l)&&(t.value=""+dl(l)):i!=="submit"&&i!=="reset"||t.removeAttribute("value"),l!=null?ui(t,i,dl(l)):a!=null?ui(t,i,dl(a)):e!=null&&t.removeAttribute("value"),u==null&&n!=null&&(t.defaultChecked=!!n),u!=null&&(t.checked=u&&typeof u!="function"&&typeof u!="symbol"),f!=null&&typeof f!="function"&&typeof f!="symbol"&&typeof f!="boolean"?t.name=""+dl(f):t.removeAttribute("name")}function Cc(t,l,a,e,u,n,i,f){if(n!=null&&typeof n!="function"&&typeof n!="symbol"&&typeof n!="boolean"&&(t.type=n),l!=null||a!=null){if(!(n!=="submit"&&n!=="reset"||l!=null))return;a=a!=null?""+dl(a):"",l=l!=null?""+dl(l):a,f||l===t.value||(t.value=l),t.defaultValue=l}e=e??u,e=typeof e!="function"&&typeof e!="symbol"&&!!e,t.checked=f?t.checked:!!e,t.defaultChecked=!!e,i!=null&&typeof i!="function"&&typeof i!="symbol"&&typeof i!="boolean"&&(t.name=i)}function ui(t,l,a){l==="number"&&Lu(t.ownerDocument)===t||t.defaultValue===""+a||(t.defaultValue=""+a)}function Pa(t,l,a,e){if(t=t.options,l){l={};for(var u=0;u=Ge),kc=" ",$c=!1;function Wc(t,l){switch(t){case"keyup":return b0.indexOf(l.keyCode)!==-1;case"keydown":return l.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Fc(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var ee=!1;function p0(t,l){switch(t){case"compositionend":return Fc(l);case"keypress":return l.which!==32?null:($c=!0,kc);case"textInput":return t=l.data,t===kc&&$c?null:t;default:return null}}function S0(t,l){if(ee)return t==="compositionend"||!vi&&Wc(t,l)?(t=Lc(),Vu=oi=ea=null,ee=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(l.ctrlKey||l.altKey||l.metaKey)||l.ctrlKey&&l.altKey){if(l.char&&1=l)return{node:a,offset:l-t};t=e}t:{for(;a;){if(a.nextSibling){a=a.nextSibling;break t}a=a.parentNode}a=void 0}a=ns(a)}}function fs(t,l){return t&&l?t===l?!0:t&&t.nodeType===3?!1:l&&l.nodeType===3?fs(t,l.parentNode):"contains"in t?t.contains(l):t.compareDocumentPosition?!!(t.compareDocumentPosition(l)&16):!1:!1}function cs(t){t=t!=null&&t.ownerDocument!=null&&t.ownerDocument.defaultView!=null?t.ownerDocument.defaultView:window;for(var l=Lu(t.document);l instanceof t.HTMLIFrameElement;){try{var a=typeof l.contentWindow.location.href=="string"}catch{a=!1}if(a)t=l.contentWindow;else break;l=Lu(t.document)}return l}function bi(t){var l=t&&t.nodeName&&t.nodeName.toLowerCase();return l&&(l==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||l==="textarea"||t.contentEditable==="true")}function R0(t,l){var a=cs(l);l=t.focusedElem;var e=t.selectionRange;if(a!==l&&l&&l.ownerDocument&&fs(l.ownerDocument.documentElement,l)){if(e!==null&&bi(l)){if(t=e.start,a=e.end,a===void 0&&(a=t),"selectionStart"in l)l.selectionStart=t,l.selectionEnd=Math.min(a,l.value.length);else if(a=(t=l.ownerDocument||document)&&t.defaultView||window,a.getSelection){a=a.getSelection();var u=l.textContent.length,n=Math.min(e.start,u);e=e.end===void 0?n:Math.min(e.end,u),!a.extend&&n>e&&(u=e,e=n,n=u),u=is(l,n);var i=is(l,e);u&&i&&(a.rangeCount!==1||a.anchorNode!==u.node||a.anchorOffset!==u.offset||a.focusNode!==i.node||a.focusOffset!==i.offset)&&(t=t.createRange(),t.setStart(u.node,u.offset),a.removeAllRanges(),n>e?(a.addRange(t),a.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),a.addRange(t)))}}for(t=[],a=l;a=a.parentNode;)a.nodeType===1&&t.push({element:a,left:a.scrollLeft,top:a.scrollTop});for(typeof l.focus=="function"&&l.focus(),l=0;l=document.documentMode,ue=null,_i=null,Ve=null,pi=!1;function ss(t,l,a){var e=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;pi||ue==null||ue!==Lu(e)||(e=ue,"selectionStart"in e&&bi(e)?e={start:e.selectionStart,end:e.selectionEnd}:(e=(e.ownerDocument&&e.ownerDocument.defaultView||window).getSelection(),e={anchorNode:e.anchorNode,anchorOffset:e.anchorOffset,focusNode:e.focusNode,focusOffset:e.focusOffset}),Ve&&Ze(Ve,e)||(Ve=e,e=Nn(_i,"onSelect"),0>=i,u-=i,Xl=1<<32-il(l)+u|a<V?(Qt=j,j=null):Qt=j.sibling;var rt=_(h,j,g[V],z);if(rt===null){j===null&&(j=Qt);break}t&&j&&rt.alternate===null&&l(h,j),y=n(rt,y,V),ut===null?q=rt:ut.sibling=rt,ut=rt,j=Qt}if(V===g.length)return a(h,j),ot&&Ha(h,V),q;if(j===null){for(;VV?(Qt=j,j=null):Qt=j.sibling;var Ea=_(h,j,rt.value,z);if(Ea===null){j===null&&(j=Qt);break}t&&j&&Ea.alternate===null&&l(h,j),y=n(Ea,y,V),ut===null?q=Ea:ut.sibling=Ea,ut=Ea,j=Qt}if(rt.done)return a(h,j),ot&&Ha(h,V),q;if(j===null){for(;!rt.done;V++,rt=g.next())rt=O(h,rt.value,z),rt!==null&&(y=n(rt,y,V),ut===null?q=rt:ut.sibling=rt,ut=rt);return ot&&Ha(h,V),q}for(j=e(j);!rt.done;V++,rt=g.next())rt=p(j,h,V,rt.value,z),rt!==null&&(t&&rt.alternate!==null&&j.delete(rt.key===null?V:rt.key),y=n(rt,y,V),ut===null?q=rt:ut.sibling=rt,ut=rt);return t&&j.forEach(function(Jy){return l(h,Jy)}),ot&&Ha(h,V),q}function Ut(h,y,g,z){if(typeof g=="object"&&g!==null&&g.type===T&&g.key===null&&(g=g.props.children),typeof g=="object"&&g!==null){switch(g.$$typeof){case A:t:{for(var q=g.key;y!==null;){if(y.key===q){if(q=g.type,q===T){if(y.tag===7){a(h,y.sibling),z=u(y,g.props.children),z.return=h,h=z;break t}}else if(y.elementType===q||typeof q=="object"&&q!==null&&q.$$typeof===x&&Os(q)===y.type){a(h,y.sibling),z=u(y,g.props),Fe(z,g),z.return=h,h=z;break t}a(h,y);break}else l(h,y);y=y.sibling}g.type===T?(z=La(g.props.children,h.mode,z,g.key),z.return=h,h=z):(z=Tn(g.type,g.key,g.props,null,h.mode,z),Fe(z,g),z.return=h,h=z)}return i(h);case H:t:{for(q=g.key;y!==null;){if(y.key===q)if(y.tag===4&&y.stateNode.containerInfo===g.containerInfo&&y.stateNode.implementation===g.implementation){a(h,y.sibling),z=u(y,g.children||[]),z.return=h,h=z;break t}else{a(h,y);break}else l(h,y);y=y.sibling}z=Ef(g,h.mode,z),z.return=h,h=z}return i(h);case x:return q=g._init,g=q(g._payload),Ut(h,y,g,z)}if(Z(g))return Y(h,y,g,z);if(vt(g)){if(q=vt(g),typeof q!="function")throw Error(r(150));return g=q.call(g),k(h,y,g,z)}if(typeof g.then=="function")return Ut(h,y,an(g),z);if(g.$$typeof===J)return Ut(h,y,_n(h,g),z);en(h,g)}return typeof g=="string"&&g!==""||typeof g=="number"||typeof g=="bigint"?(g=""+g,y!==null&&y.tag===6?(a(h,y.sibling),z=u(y,g),z.return=h,h=z):(a(h,y),z=Tf(g,h.mode,z),z.return=h,h=z),i(h)):a(h,y)}return function(h,y,g,z){try{We=0;var q=Ut(h,y,g,z);return oe=null,q}catch(j){if(j===ke)throw j;var ut=Sl(29,j,null,h.mode);return ut.lanes=z,ut.return=h,ut}finally{}}}var xa=Ds(!0),Ms=Ds(!1),re=mt(null),un=mt(0);function Rs(t,l){t=Wl,zt(un,t),zt(re,l),Wl=t|l.baseLanes}function Mi(){zt(un,Wl),zt(re,re.current)}function Ri(){Wl=un.current,Nt(re),Nt(un)}var bl=mt(null),Nl=null;function na(t){var l=t.alternate;zt(Bt,Bt.current&1),zt(bl,t),Nl===null&&(l===null||re.current!==null||l.memoizedState!==null)&&(Nl=t)}function Us(t){if(t.tag===22){if(zt(Bt,Bt.current),zt(bl,t),Nl===null){var l=t.alternate;l!==null&&l.memoizedState!==null&&(Nl=t)}}else ia()}function ia(){zt(Bt,Bt.current),zt(bl,bl.current)}function Gl(t){Nt(bl),Nl===t&&(Nl=null),Nt(Bt)}var Bt=mt(0);function nn(t){for(var l=t;l!==null;){if(l.tag===13){var a=l.memoizedState;if(a!==null&&(a=a.dehydrated,a===null||a.data==="$?"||a.data==="$!"))return l}else if(l.tag===19&&l.memoizedProps.revealOrder!==void 0){if((l.flags&128)!==0)return l}else if(l.child!==null){l.child.return=l,l=l.child;continue}if(l===t)break;for(;l.sibling===null;){if(l.return===null||l.return===t)return null;l=l.return}l.sibling.return=l.return,l=l.sibling}return null}var q0=typeof AbortController<"u"?AbortController:function(){var t=[],l=this.signal={aborted:!1,addEventListener:function(a,e){t.push(e)}};this.abort=function(){l.aborted=!0,t.forEach(function(a){return a()})}},C0=c.unstable_scheduleCallback,B0=c.unstable_NormalPriority,Yt={$$typeof:J,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function Ui(){return{controller:new q0,data:new Map,refCount:0}}function Ie(t){t.refCount--,t.refCount===0&&C0(B0,function(){t.controller.abort()})}var Pe=null,Hi=0,de=0,ye=null;function Y0(t,l){if(Pe===null){var a=Pe=[];Hi=0,de=Xf(),ye={status:"pending",value:void 0,then:function(e){a.push(e)}}}return Hi++,l.then(Hs,Hs),l}function Hs(){if(--Hi===0&&Pe!==null){ye!==null&&(ye.status="fulfilled");var t=Pe;Pe=null,de=0,ye=null;for(var l=0;ln?n:8;var i=B.T,f={};B.T=f,ki(t,!1,l,a);try{var s=u(),m=B.S;if(m!==null&&m(f,s),s!==null&&typeof s=="object"&&typeof s.then=="function"){var S=X0(s,e);au(t,l,S,rl(t))}else au(t,l,e,rl(t))}catch(O){au(t,l,{then:function(){},status:"rejected",reason:O},rl())}finally{N.p=n,B.T=i}}function Z0(){}function wi(t,l,a,e){if(t.tag!==5)throw Error(r(476));var u=co(t).queue;fo(t,u,l,ct,a===null?Z0:function(){return so(t),a(e)})}function co(t){var l=t.memoizedState;if(l!==null)return l;l={memoizedState:ct,baseState:ct,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ql,lastRenderedState:ct},next:null};var a={};return l.next={memoizedState:a,baseState:a,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ql,lastRenderedState:a},next:null},t.memoizedState=l,t=t.alternate,t!==null&&(t.memoizedState=l),l}function so(t){var l=co(t).next.queue;au(t,l,{},rl())}function Ji(){return kt(Tu)}function oo(){return qt().memoizedState}function ro(){return qt().memoizedState}function V0(t){for(var l=t.return;l!==null;){switch(l.tag){case 24:case 3:var a=rl();t=ra(a);var e=da(l,t,a);e!==null&&(Pt(e,l,a),nu(e,l,a)),l={cache:Ui()},t.payload=l;return}l=l.return}}function K0(t,l,a){var e=rl();a={lane:e,revertLane:0,action:a,hasEagerState:!1,eagerState:null,next:null},vn(t)?mo(l,a):(a=Ei(t,l,a,e),a!==null&&(Pt(a,t,e),vo(a,l,e)))}function yo(t,l,a){var e=rl();au(t,l,a,e)}function au(t,l,a,e){var u={lane:e,revertLane:0,action:a,hasEagerState:!1,eagerState:null,next:null};if(vn(t))mo(l,u);else{var n=t.alternate;if(t.lanes===0&&(n===null||n.lanes===0)&&(n=l.lastRenderedReducer,n!==null))try{var i=l.lastRenderedState,f=n(i,a);if(u.hasEagerState=!0,u.eagerState=f,fl(f,i))return Fu(t,l,u,0),St===null&&Wu(),!1}catch{}finally{}if(a=Ei(t,l,u,e),a!==null)return Pt(a,t,e),vo(a,l,e),!0}return!1}function ki(t,l,a,e){if(e={lane:2,revertLane:Xf(),action:e,hasEagerState:!1,eagerState:null,next:null},vn(t)){if(l)throw Error(r(479))}else l=Ei(t,a,e,2),l!==null&&Pt(l,t,2)}function vn(t){var l=t.alternate;return t===at||l!==null&&l===at}function mo(t,l){me=cn=!0;var a=t.pending;a===null?l.next=l:(l.next=a.next,a.next=l),t.pending=l}function vo(t,l,a){if((a&4194176)!==0){var e=l.lanes;e&=t.pendingLanes,a|=e,l.lanes=a,Ac(t,a)}}var xl={readContext:kt,use:rn,useCallback:Ht,useContext:Ht,useEffect:Ht,useImperativeHandle:Ht,useLayoutEffect:Ht,useInsertionEffect:Ht,useMemo:Ht,useReducer:Ht,useRef:Ht,useState:Ht,useDebugValue:Ht,useDeferredValue:Ht,useTransition:Ht,useSyncExternalStore:Ht,useId:Ht};xl.useCacheRefresh=Ht,xl.useMemoCache=Ht,xl.useHostTransitionStatus=Ht,xl.useFormState=Ht,xl.useActionState=Ht,xl.useOptimistic=Ht;var Ba={readContext:kt,use:rn,useCallback:function(t,l){return ul().memoizedState=[t,l===void 0?null:l],t},useContext:kt,useEffect:Ps,useImperativeHandle:function(t,l,a){a=a!=null?a.concat([t]):null,yn(4194308,4,ao.bind(null,l,t),a)},useLayoutEffect:function(t,l){return yn(4194308,4,t,l)},useInsertionEffect:function(t,l){yn(4,2,t,l)},useMemo:function(t,l){var a=ul();l=l===void 0?null:l;var e=t();if(Ca){la(!0);try{t()}finally{la(!1)}}return a.memoizedState=[e,l],e},useReducer:function(t,l,a){var e=ul();if(a!==void 0){var u=a(l);if(Ca){la(!0);try{a(l)}finally{la(!1)}}}else u=l;return e.memoizedState=e.baseState=u,t={pending:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:u},e.queue=t,t=t.dispatch=K0.bind(null,at,t),[e.memoizedState,t]},useRef:function(t){var l=ul();return t={current:t},l.memoizedState=t},useState:function(t){t=Qi(t);var l=t.queue,a=yo.bind(null,at,l);return l.dispatch=a,[t.memoizedState,a]},useDebugValue:Vi,useDeferredValue:function(t,l){var a=ul();return Ki(a,t,l)},useTransition:function(){var t=Qi(!1);return t=fo.bind(null,at,t.queue,!0,!1),ul().memoizedState=t,[!1,t]},useSyncExternalStore:function(t,l,a){var e=at,u=ul();if(ot){if(a===void 0)throw Error(r(407));a=a()}else{if(a=l(),St===null)throw Error(r(349));(st&60)!==0||Ys(e,l,a)}u.memoizedState=a;var n={value:a,getSnapshot:l};return u.queue=n,Ps(js.bind(null,e,n,t),[t]),e.flags|=2048,he(9,Xs.bind(null,e,n,a,l),{destroy:void 0},null),a},useId:function(){var t=ul(),l=St.identifierPrefix;if(ot){var a=jl,e=Xl;a=(e&~(1<<32-il(e)-1)).toString(32)+a,l=":"+l+"R"+a,a=sn++,0 title"))),wt(n,e,a),n[Jt]=t,Xt(n),e=n;break t;case"link":var i=Lr("link","href",u).get(e+(a.href||""));if(i){for(var f=0;f<\/script>",t=t.removeChild(t.firstChild);break;case"select":t=typeof e.is=="string"?u.createElement("select",{is:e.is}):u.createElement("select"),e.multiple?t.multiple=!0:e.size&&(t.size=e.size);break;default:t=typeof e.is=="string"?u.createElement(a,{is:e.is}):u.createElement(a)}}t[Jt]=l,t[al]=e;t:for(u=l.child;u!==null;){if(u.tag===5||u.tag===6)t.appendChild(u.stateNode);else if(u.tag!==4&&u.tag!==27&&u.child!==null){u.child.return=u,u=u.child;continue}if(u===l)break t;for(;u.sibling===null;){if(u.return===null||u.return===l)break t;u=u.return}u.sibling.return=u.return,u=u.sibling}l.stateNode=t;t:switch(wt(t,a,e),a){case"button":case"input":case"select":case"textarea":t=!!e.autoFocus;break t;case"img":t=!0;break t;default:t=!1}t&&kl(l)}}return At(l),l.flags&=-16777217,null;case 6:if(t&&l.stateNode!=null)t.memoizedProps!==e&&kl(l);else{if(typeof e!="string"&&l.stateNode===null)throw Error(r(166));if(t=ta.current,Ke(l)){if(t=l.stateNode,a=l.memoizedProps,e=null,u=It,u!==null)switch(u.tag){case 27:case 5:e=u.memoizedProps}t[Jt]=l,t=!!(t.nodeValue===a||e!==null&&e.suppressHydrationWarning===!0||Ur(t.nodeValue,a)),t||Na(l)}else t=qn(t).createTextNode(e),t[Jt]=l,l.stateNode=t}return At(l),null;case 13:if(e=l.memoizedState,t===null||t.memoizedState!==null&&t.memoizedState.dehydrated!==null){if(u=Ke(l),e!==null&&e.dehydrated!==null){if(t===null){if(!u)throw Error(r(318));if(u=l.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(r(317));u[Jt]=l}else we(),(l.flags&128)===0&&(l.memoizedState=null),l.flags|=4;At(l),u=!1}else Ol!==null&&(Hf(Ol),Ol=null),u=!0;if(!u)return l.flags&256?(Gl(l),l):(Gl(l),null)}if(Gl(l),(l.flags&128)!==0)return l.lanes=a,l;if(a=e!==null,t=t!==null&&t.memoizedState!==null,a){e=l.child,u=null,e.alternate!==null&&e.alternate.memoizedState!==null&&e.alternate.memoizedState.cachePool!==null&&(u=e.alternate.memoizedState.cachePool.pool);var n=null;e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),n!==u&&(e.flags|=2048)}return a!==t&&a&&(l.child.flags|=8192),En(l,l.updateQueue),At(l),null;case 4:return ka(),t===null&&Lf(l.stateNode.containerInfo),At(l),null;case 10:return Vl(l.type),At(l),null;case 19:if(Nt(Bt),u=l.memoizedState,u===null)return At(l),null;if(e=(l.flags&128)!==0,n=u.rendering,n===null)if(e)du(u,!1);else{if(Rt!==0||t!==null&&(t.flags&128)!==0)for(t=l.child;t!==null;){if(n=nn(t),n!==null){for(l.flags|=128,du(u,!1),t=n.updateQueue,l.updateQueue=t,En(l,t),l.subtreeFlags=0,t=a,a=l.child;a!==null;)ur(a,t),a=a.sibling;return zt(Bt,Bt.current&1|2),l.child}t=t.sibling}u.tail!==null&&Ul()>zn&&(l.flags|=128,e=!0,du(u,!1),l.lanes=4194304)}else{if(!e)if(t=nn(n),t!==null){if(l.flags|=128,e=!0,t=t.updateQueue,l.updateQueue=t,En(l,t),du(u,!0),u.tail===null&&u.tailMode==="hidden"&&!n.alternate&&!ot)return At(l),null}else 2*Ul()-u.renderingStartTime>zn&&a!==536870912&&(l.flags|=128,e=!0,du(u,!1),l.lanes=4194304);u.isBackwards?(n.sibling=l.child,l.child=n):(t=u.last,t!==null?t.sibling=n:l.child=n,u.last=n)}return u.tail!==null?(l=u.tail,u.rendering=l,u.tail=l.sibling,u.renderingStartTime=Ul(),l.sibling=null,t=Bt.current,zt(Bt,e?t&1|2:t&1),l):(At(l),null);case 22:case 23:return Gl(l),Ri(),e=l.memoizedState!==null,t!==null?t.memoizedState!==null!==e&&(l.flags|=8192):e&&(l.flags|=8192),e?(a&536870912)!==0&&(l.flags&128)===0&&(At(l),l.subtreeFlags&6&&(l.flags|=8192)):At(l),a=l.updateQueue,a!==null&&En(l,a.retryQueue),a=null,t!==null&&t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(a=t.memoizedState.cachePool.pool),e=null,l.memoizedState!==null&&l.memoizedState.cachePool!==null&&(e=l.memoizedState.cachePool.pool),e!==a&&(l.flags|=2048),t!==null&&Nt(qa),null;case 24:return a=null,t!==null&&(a=t.memoizedState.cache),l.memoizedState.cache!==a&&(l.flags|=2048),Vl(Yt),At(l),null;case 25:return null}throw Error(r(156,l.tag))}function I0(t,l){switch(Ai(l),l.tag){case 1:return t=l.flags,t&65536?(l.flags=t&-65537|128,l):null;case 3:return Vl(Yt),ka(),t=l.flags,(t&65536)!==0&&(t&128)===0?(l.flags=t&-65537|128,l):null;case 26:case 27:case 5:return qu(l),null;case 13:if(Gl(l),t=l.memoizedState,t!==null&&t.dehydrated!==null){if(l.alternate===null)throw Error(r(340));we()}return t=l.flags,t&65536?(l.flags=t&-65537|128,l):null;case 19:return Nt(Bt),null;case 4:return ka(),null;case 10:return Vl(l.type),null;case 22:case 23:return Gl(l),Ri(),t!==null&&Nt(qa),t=l.flags,t&65536?(l.flags=t&-65537|128,l):null;case 24:return Vl(Yt),null;case 25:return null;default:return null}}function fr(t,l){switch(Ai(l),l.tag){case 3:Vl(Yt),ka();break;case 26:case 27:case 5:qu(l);break;case 4:ka();break;case 13:Gl(l);break;case 19:Nt(Bt);break;case 10:Vl(l.type);break;case 22:case 23:Gl(l),Ri(),t!==null&&Nt(qa);break;case 24:Vl(Yt)}}var P0={getCacheForType:function(t){var l=kt(Yt),a=l.data.get(t);return a===void 0&&(a=t(),l.data.set(t,a)),a}},ty=typeof WeakMap=="function"?WeakMap:Map,Ot=0,St=null,nt=null,st=0,Tt=0,ol=null,$l=!1,pe=!1,zf=!1,Wl=0,Rt=0,ga=0,Za=0,Af=0,Tl=0,Se=0,yu=null,ql=null,Of=!1,Df=0,zn=1/0,An=null,ba=null,On=!1,Va=null,mu=0,Mf=0,Rf=null,vu=0,Uf=null;function rl(){if((Ot&2)!==0&&st!==0)return st&-st;if(B.T!==null){var t=de;return t!==0?t:Xf()}return Dc()}function cr(){Tl===0&&(Tl=(st&536870912)===0||ot?Tc():536870912);var t=bl.current;return t!==null&&(t.flags|=32),Tl}function Pt(t,l,a){(t===St&&Tt===2||t.cancelPendingCommit!==null)&&(Te(t,0),Fl(t,st,Tl,!1)),xe(t,a),((Ot&2)===0||t!==St)&&(t===St&&((Ot&2)===0&&(Za|=a),Rt===4&&Fl(t,st,Tl,!1)),Cl(t))}function sr(t,l,a){if((Ot&6)!==0)throw Error(r(327));var e=!a&&(l&60)===0&&(l&t.expiredLanes)===0||Ne(t,l),u=e?ey(t,l):qf(t,l,!0),n=e;do{if(u===0){pe&&!e&&Fl(t,l,0,!1);break}else if(u===6)Fl(t,l,0,!$l);else{if(a=t.current.alternate,n&&!ly(a)){u=qf(t,l,!1),n=!1;continue}if(u===2){if(n=l,t.errorRecoveryDisabledLanes&n)var i=0;else i=t.pendingLanes&-536870913,i=i!==0?i:i&536870912?536870912:0;if(i!==0){l=i;t:{var f=t;u=yu;var s=f.current.memoizedState.isDehydrated;if(s&&(Te(f,i).flags|=256),i=qf(f,i,!1),i!==2){if(zf&&!s){f.errorRecoveryDisabledLanes|=n,Za|=n,u=4;break t}n=ql,ql=u,n!==null&&Hf(n)}u=i}if(n=!1,u!==2)continue}}if(u===1){Te(t,0),Fl(t,l,0,!0);break}t:{switch(e=t,u){case 0:case 1:throw Error(r(345));case 4:if((l&4194176)===l){Fl(e,l,Tl,!$l);break t}break;case 2:ql=null;break;case 3:case 5:break;default:throw Error(r(329))}if(e.finishedWork=a,e.finishedLanes=l,(l&62914560)===l&&(n=Df+300-Ul(),10a?32:a,B.T=null,Va===null)var n=!1;else{a=Rf,Rf=null;var i=Va,f=mu;if(Va=null,mu=0,(Ot&6)!==0)throw Error(r(331));var s=Ot;if(Ot|=4,ar(i.current),Po(i,i.current,f,a),Ot=s,hu(0,!1),nl&&typeof nl.onPostCommitFiberRoot=="function")try{nl.onPostCommitFiberRoot(He,i)}catch{}n=!0}return n}finally{N.p=u,B.T=e,br(t,l)}}return!1}function _r(t,l,a){l=vl(a,l),l=Fi(t.stateNode,l,2),t=da(t,l,2),t!==null&&(xe(t,2),Cl(t))}function _t(t,l,a){if(t.tag===3)_r(t,t,a);else for(;l!==null;){if(l.tag===3){_r(l,t,a);break}else if(l.tag===1){var e=l.stateNode;if(typeof l.type.getDerivedStateFromError=="function"||typeof e.componentDidCatch=="function"&&(ba===null||!ba.has(e))){t=vl(a,t),a=To(2),e=da(l,a,2),e!==null&&(Eo(a,e,l,t),xe(e,2),Cl(e));break}}l=l.return}}function Cf(t,l,a){var e=t.pingCache;if(e===null){e=t.pingCache=new ty;var u=new Set;e.set(l,u)}else u=e.get(l),u===void 0&&(u=new Set,e.set(l,u));u.has(a)||(zf=!0,u.add(a),t=iy.bind(null,t,l,a),l.then(t,t))}function iy(t,l,a){var e=t.pingCache;e!==null&&e.delete(l),t.pingedLanes|=t.suspendedLanes&a,t.warmLanes&=~a,St===t&&(st&a)===a&&(Rt===4||Rt===3&&(st&62914560)===st&&300>Ul()-Df?(Ot&2)===0&&Te(t,0):Af|=a,Se===st&&(Se=0)),Cl(t)}function pr(t,l){l===0&&(l=Ec()),t=ua(t,l),t!==null&&(xe(t,l),Cl(t))}function fy(t){var l=t.memoizedState,a=0;l!==null&&(a=l.retryLane),pr(t,a)}function cy(t,l){var a=0;switch(t.tag){case 13:var e=t.stateNode,u=t.memoizedState;u!==null&&(a=u.retryLane);break;case 19:e=t.stateNode;break;case 22:e=t.stateNode._retryCache;break;default:throw Error(r(314))}e!==null&&e.delete(l),pr(t,a)}function sy(t,l){return In(t,l)}var Rn=null,Ae=null,Bf=!1,Un=!1,Yf=!1,Ka=0;function Cl(t){t!==Ae&&t.next===null&&(Ae===null?Rn=Ae=t:Ae=Ae.next=t),Un=!0,Bf||(Bf=!0,ry(oy))}function hu(t,l){if(!Yf&&Un){Yf=!0;do for(var a=!1,e=Rn;e!==null;){if(t!==0){var u=e.pendingLanes;if(u===0)var n=0;else{var i=e.suspendedLanes,f=e.pingedLanes;n=(1<<31-il(42|t)+1)-1,n&=u&~(i&~f),n=n&201326677?n&201326677|1:n?n|2:0}n!==0&&(a=!0,Er(e,n))}else n=st,n=Xu(e,e===St?n:0),(n&3)===0||Ne(e,n)||(a=!0,Er(e,n));e=e.next}while(a);Yf=!1}}function oy(){Un=Bf=!1;var t=0;Ka!==0&&(_y()&&(t=Ka),Ka=0);for(var l=Ul(),a=null,e=Rn;e!==null;){var u=e.next,n=Sr(e,l);n===0?(e.next=null,a===null?Rn=u:a.next=u,u===null&&(Ae=a)):(a=e,(t!==0||(n&3)!==0)&&(Un=!0)),e=u}hu(t)}function Sr(t,l){for(var a=t.suspendedLanes,e=t.pingedLanes,u=t.expirationTimes,n=t.pendingLanes&-62914561;0"u"?null:document;function Xr(t,l,a){var e=De;if(e&&typeof l=="string"&&l){var u=yl(l);u='link[rel="'+t+'"][href="'+u+'"]',typeof a=="string"&&(u+='[crossorigin="'+a+'"]'),Yr.has(u)||(Yr.add(u),t={rel:t,crossOrigin:a,href:l},e.querySelector(u)===null&&(l=e.createElement("link"),wt(l,"link",t),Xt(l),e.head.appendChild(l)))}}function Dy(t){Il.D(t),Xr("dns-prefetch",t,null)}function My(t,l){Il.C(t,l),Xr("preconnect",t,l)}function Ry(t,l,a){Il.L(t,l,a);var e=De;if(e&&t&&l){var u='link[rel="preload"][as="'+yl(l)+'"]';l==="image"&&a&&a.imageSrcSet?(u+='[imagesrcset="'+yl(a.imageSrcSet)+'"]',typeof a.imageSizes=="string"&&(u+='[imagesizes="'+yl(a.imageSizes)+'"]')):u+='[href="'+yl(t)+'"]';var n=u;switch(l){case"style":n=Me(t);break;case"script":n=Re(t)}El.has(n)||(t=I({rel:"preload",href:l==="image"&&a&&a.imageSrcSet?void 0:t,as:l},a),El.set(n,t),e.querySelector(u)!==null||l==="style"&&e.querySelector(_u(n))||l==="script"&&e.querySelector(pu(n))||(l=e.createElement("link"),wt(l,"link",t),Xt(l),e.head.appendChild(l)))}}function Uy(t,l){Il.m(t,l);var a=De;if(a&&t){var e=l&&typeof l.as=="string"?l.as:"script",u='link[rel="modulepreload"][as="'+yl(e)+'"][href="'+yl(t)+'"]',n=u;switch(e){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":n=Re(t)}if(!El.has(n)&&(t=I({rel:"modulepreload",href:t},l),El.set(n,t),a.querySelector(u)===null)){switch(e){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(a.querySelector(pu(n)))return}e=a.createElement("link"),wt(e,"link",t),Xt(e),a.head.appendChild(e)}}}function Hy(t,l,a){Il.S(t,l,a);var e=De;if(e&&t){var u=Fa(e).hoistableStyles,n=Me(t);l=l||"default";var i=u.get(n);if(!i){var f={loading:0,preload:null};if(i=e.querySelector(_u(n)))f.loading=5;else{t=I({rel:"stylesheet",href:t,"data-precedence":l},a),(a=El.get(n))&&Ff(t,a);var s=i=e.createElement("link");Xt(s),wt(s,"link",t),s._p=new Promise(function(m,S){s.onload=m,s.onerror=S}),s.addEventListener("load",function(){f.loading|=1}),s.addEventListener("error",function(){f.loading|=2}),f.loading|=4,Bn(i,l,e)}i={type:"stylesheet",instance:i,count:1,state:f},u.set(n,i)}}}function Ny(t,l){Il.X(t,l);var a=De;if(a&&t){var e=Fa(a).hoistableScripts,u=Re(t),n=e.get(u);n||(n=a.querySelector(pu(u)),n||(t=I({src:t,async:!0},l),(l=El.get(u))&&If(t,l),n=a.createElement("script"),Xt(n),wt(n,"link",t),a.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},e.set(u,n))}}function xy(t,l){Il.M(t,l);var a=De;if(a&&t){var e=Fa(a).hoistableScripts,u=Re(t),n=e.get(u);n||(n=a.querySelector(pu(u)),n||(t=I({src:t,async:!0,type:"module"},l),(l=El.get(u))&&If(t,l),n=a.createElement("script"),Xt(n),wt(n,"link",t),a.head.appendChild(n)),n={type:"script",instance:n,count:1,state:null},e.set(u,n))}}function jr(t,l,a,e){var u=(u=ta.current)?Cn(u):null;if(!u)throw Error(r(446));switch(t){case"meta":case"title":return null;case"style":return typeof a.precedence=="string"&&typeof a.href=="string"?(l=Me(a.href),a=Fa(u).hoistableStyles,e=a.get(l),e||(e={type:"style",instance:null,count:0,state:null},a.set(l,e)),e):{type:"void",instance:null,count:0,state:null};case"link":if(a.rel==="stylesheet"&&typeof a.href=="string"&&typeof a.precedence=="string"){t=Me(a.href);var n=Fa(u).hoistableStyles,i=n.get(t);if(i||(u=u.ownerDocument||u,i={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},n.set(t,i),(n=u.querySelector(_u(t)))&&!n._p&&(i.instance=n,i.state.loading=5),El.has(t)||(a={rel:"preload",as:"style",href:a.href,crossOrigin:a.crossOrigin,integrity:a.integrity,media:a.media,hrefLang:a.hrefLang,referrerPolicy:a.referrerPolicy},El.set(t,a),n||qy(u,t,a,i.state))),l&&e===null)throw Error(r(528,""));return i}if(l&&e!==null)throw Error(r(529,""));return null;case"script":return l=a.async,a=a.src,typeof a=="string"&&l&&typeof l!="function"&&typeof l!="symbol"?(l=Re(a),a=Fa(u).hoistableScripts,e=a.get(l),e||(e={type:"script",instance:null,count:0,state:null},a.set(l,e)),e):{type:"void",instance:null,count:0,state:null};default:throw Error(r(444,t))}}function Me(t){return'href="'+yl(t)+'"'}function _u(t){return'link[rel="stylesheet"]['+t+"]"}function Gr(t){return I({},t,{"data-precedence":t.precedence,precedence:null})}function qy(t,l,a,e){t.querySelector('link[rel="preload"][as="style"]['+l+"]")?e.loading=1:(l=t.createElement("link"),e.preload=l,l.addEventListener("load",function(){return e.loading|=1}),l.addEventListener("error",function(){return e.loading|=2}),wt(l,"link",a),Xt(l),t.head.appendChild(l))}function Re(t){return'[src="'+yl(t)+'"]'}function pu(t){return"script[async]"+t}function Qr(t,l,a){if(l.count++,l.instance===null)switch(l.type){case"style":var e=t.querySelector('style[data-href~="'+yl(a.href)+'"]');if(e)return l.instance=e,Xt(e),e;var u=I({},a,{"data-href":a.href,"data-precedence":a.precedence,href:null,precedence:null});return e=(t.ownerDocument||t).createElement("style"),Xt(e),wt(e,"style",u),Bn(e,a.precedence,t),l.instance=e;case"stylesheet":u=Me(a.href);var n=t.querySelector(_u(u));if(n)return l.state.loading|=4,l.instance=n,Xt(n),n;e=Gr(a),(u=El.get(u))&&Ff(e,u),n=(t.ownerDocument||t).createElement("link"),Xt(n);var i=n;return i._p=new Promise(function(f,s){i.onload=f,i.onerror=s}),wt(n,"link",e),l.state.loading|=4,Bn(n,a.precedence,t),l.instance=n;case"script":return n=Re(a.src),(u=t.querySelector(pu(n)))?(l.instance=u,Xt(u),u):(e=a,(u=El.get(n))&&(e=I({},a),If(e,u)),t=t.ownerDocument||t,u=t.createElement("script"),Xt(u),wt(u,"link",e),t.head.appendChild(u),l.instance=u);case"void":return null;default:throw Error(r(443,l.type))}else l.type==="stylesheet"&&(l.state.loading&4)===0&&(e=l.instance,l.state.loading|=4,Bn(e,a.precedence,t));return l.instance}function Bn(t,l,a){for(var e=a.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),u=e.length?e[e.length-1]:null,n=u,i=0;i title"):null)}function Cy(t,l,a){if(a===1||l.itemProp!=null)return!1;switch(t){case"meta":case"title":return!0;case"style":if(typeof l.precedence!="string"||typeof l.href!="string"||l.href==="")break;return!0;case"link":if(typeof l.rel!="string"||typeof l.href!="string"||l.href===""||l.onLoad||l.onError)break;switch(l.rel){case"stylesheet":return t=l.disabled,typeof l.precedence=="string"&&t==null;default:return!0}case"script":if(l.async&&typeof l.async!="function"&&typeof l.async!="symbol"&&!l.onLoad&&!l.onError&&l.src&&typeof l.src=="string")return!0}return!1}function Vr(t){return!(t.type==="stylesheet"&&(t.state.loading&3)===0)}var Su=null;function By(){}function Yy(t,l,a){if(Su===null)throw Error(r(475));var e=Su;if(l.type==="stylesheet"&&(typeof a.media!="string"||matchMedia(a.media).matches!==!1)&&(l.state.loading&4)===0){if(l.instance===null){var u=Me(a.href),n=t.querySelector(_u(u));if(n){t=n._p,t!==null&&typeof t=="object"&&typeof t.then=="function"&&(e.count++,e=Xn.bind(e),t.then(e,e)),l.state.loading|=4,l.instance=n,Xt(n);return}n=t.ownerDocument||t,a=Gr(a),(u=El.get(u))&&Ff(a,u),n=n.createElement("link"),Xt(n);var i=n;i._p=new Promise(function(f,s){i.onload=f,i.onerror=s}),wt(n,"link",a),l.instance=n}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(l,t),(t=l.state.preload)&&(l.state.loading&3)===0&&(e.count++,l=Xn.bind(e),t.addEventListener("load",l),t.addEventListener("error",l))}}function Xy(){if(Su===null)throw Error(r(475));var t=Su;return t.stylesheets&&t.count===0&&Pf(t,t.stylesheets),0"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(c)}catch(o){console.error(o)}}return c(),fc.exports=am(),fc.exports}var um=em();const nm="modulepreload",im=function(c){return"/root/assistant-base-app/"+c},dd={},gd=function(o,v,r){let E=Promise.resolve();if(v&&v.length>0){document.getElementsByTagName("link");const A=document.querySelector("meta[property=csp-nonce]"),H=A?.nonce||A?.getAttribute("nonce");E=Promise.allSettled(v.map(T=>{if(T=im(T),T in dd)return;dd[T]=!0;const b=T.endsWith(".css"),R=b?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${T}"]${R}`))return;const C=document.createElement("link");if(C.rel=b?"stylesheet":nm,b||(C.as="script"),C.crossOrigin="",C.href=T,H&&C.setAttribute("nonce",H),document.head.appendChild(C),b)return new Promise((Q,J)=>{C.addEventListener("load",Q),C.addEventListener("error",()=>J(new Error(`Unable to preload CSS for ${T}`)))})}))}function D(A){const H=new Event("vite:preloadError",{cancelable:!0});if(H.payload=A,window.dispatchEvent(H),!H.defaultPrevented)throw A}return E.then(A=>{for(const H of A||[])H.status==="rejected"&&D(H.reason);return o().catch(D)})};var Et=gc();const ht=ky(Et),fm="/root/assistant-base-app";function bd(c){var o,v,r="";if(typeof c=="string"||typeof c=="number")r+=c;else if(typeof c=="object")if(Array.isArray(c)){var E=c.length;for(o=0;o"u")return;let o=document.head||document.getElementsByTagName("head")[0],v=document.createElement("style");v.type="text/css",o.firstChild?o.insertBefore(v,o.firstChild):o.appendChild(v),v.styleSheet?v.styleSheet.cssText=c:v.appendChild(document.createTextNode(c))}cm(`:root{--toastify-color-light: #fff;--toastify-color-dark: #121212;--toastify-color-info: #3498db;--toastify-color-success: #07bc0c;--toastify-color-warning: #f1c40f;--toastify-color-error: hsl(6, 78%, 57%);--toastify-color-transparent: rgba(255, 255, 255, .7);--toastify-icon-color-info: var(--toastify-color-info);--toastify-icon-color-success: var(--toastify-color-success);--toastify-icon-color-warning: var(--toastify-color-warning);--toastify-icon-color-error: var(--toastify-color-error);--toastify-container-width: fit-content;--toastify-toast-width: 320px;--toastify-toast-offset: 16px;--toastify-toast-top: max(var(--toastify-toast-offset), env(safe-area-inset-top));--toastify-toast-right: max(var(--toastify-toast-offset), env(safe-area-inset-right));--toastify-toast-left: max(var(--toastify-toast-offset), env(safe-area-inset-left));--toastify-toast-bottom: max(var(--toastify-toast-offset), env(safe-area-inset-bottom));--toastify-toast-background: #fff;--toastify-toast-padding: 14px;--toastify-toast-min-height: 64px;--toastify-toast-max-height: 800px;--toastify-toast-bd-radius: 6px;--toastify-toast-shadow: 0px 4px 12px rgba(0, 0, 0, .1);--toastify-font-family: sans-serif;--toastify-z-index: 9999;--toastify-text-color-light: #757575;--toastify-text-color-dark: #fff;--toastify-text-color-info: #fff;--toastify-text-color-success: #fff;--toastify-text-color-warning: #fff;--toastify-text-color-error: #fff;--toastify-spinner-color: #616161;--toastify-spinner-color-empty-area: #e0e0e0;--toastify-color-progress-light: linear-gradient(to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55);--toastify-color-progress-dark: #bb86fc;--toastify-color-progress-info: var(--toastify-color-info);--toastify-color-progress-success: var(--toastify-color-success);--toastify-color-progress-warning: var(--toastify-color-warning);--toastify-color-progress-error: var(--toastify-color-error);--toastify-color-progress-bgo: .2}.Toastify__toast-container{z-index:var(--toastify-z-index);-webkit-transform:translate3d(0,0,var(--toastify-z-index));position:fixed;width:var(--toastify-container-width);box-sizing:border-box;color:#fff;display:flex;flex-direction:column}.Toastify__toast-container--top-left{top:var(--toastify-toast-top);left:var(--toastify-toast-left)}.Toastify__toast-container--top-center{top:var(--toastify-toast-top);left:50%;transform:translate(-50%);align-items:center}.Toastify__toast-container--top-right{top:var(--toastify-toast-top);right:var(--toastify-toast-right);align-items:end}.Toastify__toast-container--bottom-left{bottom:var(--toastify-toast-bottom);left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{bottom:var(--toastify-toast-bottom);left:50%;transform:translate(-50%);align-items:center}.Toastify__toast-container--bottom-right{bottom:var(--toastify-toast-bottom);right:var(--toastify-toast-right);align-items:end}.Toastify__toast{--y: 0;position:relative;touch-action:none;width:var(--toastify-toast-width);min-height:var(--toastify-toast-min-height);box-sizing:border-box;margin-bottom:1rem;padding:var(--toastify-toast-padding);border-radius:var(--toastify-toast-bd-radius);box-shadow:var(--toastify-toast-shadow);max-height:var(--toastify-toast-max-height);font-family:var(--toastify-font-family);z-index:0;display:flex;flex:1 auto;align-items:center;word-break:break-word}@media only screen and (max-width: 480px){.Toastify__toast-container{width:100vw;left:env(safe-area-inset-left);margin:0}.Toastify__toast-container--top-left,.Toastify__toast-container--top-center,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translate(0)}.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translate(0)}.Toastify__toast-container--rtl{right:env(safe-area-inset-right);left:initial}.Toastify__toast{--toastify-toast-width: 100%;margin-bottom:0;border-radius:0}}.Toastify__toast-container[data-stacked=true]{width:var(--toastify-toast-width)}.Toastify__toast--stacked{position:absolute;width:100%;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s}.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body,.Toastify__toast--stacked[data-collapsed] .Toastify__close-button{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{content:"";position:absolute;left:0;right:0;height:calc(var(--g) * 1px);bottom:100%}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{content:"";position:absolute;left:0;right:0;bottom:0;height:100%;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-icon{margin-inline-end:10px;width:22px;flex-shrink:0;display:flex}.Toastify--animate{animation-fill-mode:both;animation-duration:.5s}.Toastify--animate-icon{animation-fill-mode:both;animation-duration:.3s}.Toastify__toast-theme--dark{background:var(--toastify-color-dark);color:var(--toastify-text-color-dark)}.Toastify__toast-theme--light,.Toastify__toast-theme--colored.Toastify__toast--default{background:var(--toastify-color-light);color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{color:var(--toastify-text-color-info);background:var(--toastify-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{color:var(--toastify-text-color-success);background:var(--toastify-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{color:var(--toastify-text-color-warning);background:var(--toastify-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{color:var(--toastify-text-color-error);background:var(--toastify-color-error)}.Toastify__progress-bar-theme--light{background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error{background:var(--toastify-color-transparent)}.Toastify__close-button{color:#fff;position:absolute;top:6px;right:6px;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;z-index:1}.Toastify__toast--rtl .Toastify__close-button{left:6px;right:unset}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:hover,.Toastify__close-button:focus{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:100%;z-index:1;opacity:.7;transform-origin:left}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:initial;transform-origin:right;border-bottom-left-radius:initial}.Toastify__progress-bar--wrp{position:absolute;overflow:hidden;bottom:0;left:0;width:100%;height:5px;border-bottom-left-radius:var(--toastify-toast-bd-radius);border-bottom-right-radius:var(--toastify-toast-bd-radius)}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{opacity:var(--toastify-color-progress-bgo);width:100%;height:100%}.Toastify__spinner{width:20px;height:20px;box-sizing:border-box;border:2px solid;border-radius:100%;border-color:var(--toastify-spinner-color-empty-area);border-right-color:var(--toastify-spinner-color);animation:Toastify__spin .65s linear infinite}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--top-left,.Toastify__bounce-enter--bottom-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--top-right,.Toastify__bounce-enter--bottom-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--top-left,.Toastify__bounce-exit--bottom-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--top-right,.Toastify__bounce-exit--bottom-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg);opacity:1}to{transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg);opacity:0}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(110%,var(--y),0)}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(-110%,var(--y),0)}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--top-left,.Toastify__slide-enter--bottom-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--top-right,.Toastify__slide-enter--bottom-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--top-left,.Toastify__slide-exit--bottom-left{animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-right,.Toastify__slide-exit--bottom-right{animation-name:Toastify__slideOutRight;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp;animation-timing-function:ease-in;animation-duration:.3s}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown;animation-timing-function:ease-in;animation-duration:.3s}@keyframes Toastify__spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}} +`);var Uu=c=>typeof c=="number"&&!isNaN(c),Ja=c=>typeof c=="string",Pl=c=>typeof c=="function",sm=c=>Ja(c)||Uu(c),dc=c=>Ja(c)||Pl(c)?c:null,om=(c,o)=>c===!1||Uu(c)&&c>0?c:o,yc=c=>Et.isValidElement(c)||Ja(c)||Pl(c)||Uu(c);function rm(c,o,v=300){let{scrollHeight:r,style:E}=c;requestAnimationFrame(()=>{E.minHeight="initial",E.height=r+"px",E.transition=`all ${v}ms`,requestAnimationFrame(()=>{E.height="0",E.padding="0",E.margin="0",setTimeout(o,v)})})}function dm({enter:c,exit:o,appendPosition:v=!1,collapse:r=!0,collapseDuration:E=300}){return function({children:D,position:A,preventExitTransition:H,done:T,nodeRef:b,isIn:R,playToast:C}){let Q=v?`${c}--${A}`:c,J=v?`${o}--${A}`:o,dt=Et.useRef(0);return Et.useLayoutEffect(()=>{let et=b.current,W=Q.split(" "),P=x=>{x.target===b.current&&(C(),et.removeEventListener("animationend",P),et.removeEventListener("animationcancel",P),dt.current===0&&x.type!=="animationcancel"&&et.classList.remove(...W))};et.classList.add(...W),et.addEventListener("animationend",P),et.addEventListener("animationcancel",P)},[]),Et.useEffect(()=>{let et=b.current,W=()=>{et.removeEventListener("animationend",W),r?rm(et,T,E):T()};R||(H?W():(dt.current=1,et.className+=` ${J}`,et.addEventListener("animationend",W)))},[R]),ht.createElement(ht.Fragment,null,D)}}function yd(c,o){return{content:_d(c.content,c.props),containerId:c.props.containerId,id:c.props.toastId,theme:c.props.theme,type:c.props.type,data:c.props.data||{},isLoading:c.props.isLoading,icon:c.props.icon,reason:c.removalReason,status:o}}function _d(c,o,v=!1){return Et.isValidElement(c)&&!Ja(c.type)?Et.cloneElement(c,{closeToast:o.closeToast,toastProps:o,data:o.data,isPaused:v}):Pl(c)?c({closeToast:o.closeToast,toastProps:o,data:o.data,isPaused:v}):c}function ym({closeToast:c,theme:o,ariaLabel:v="close"}){return ht.createElement("button",{className:`Toastify__close-button Toastify__close-button--${o}`,type:"button",onClick:r=>{r.stopPropagation(),c(!0)},"aria-label":v},ht.createElement("svg",{"aria-hidden":"true",viewBox:"0 0 14 16"},ht.createElement("path",{fillRule:"evenodd",d:"M7.71 8.23l3.75 3.75-1.48 1.48-3.75-3.75-3.75 3.75L1 11.98l3.75-3.75L1 4.48 2.48 3l3.75 3.75L9.98 3l1.48 1.48-3.75 3.75z"})))}function mm({delay:c,isRunning:o,closeToast:v,type:r="default",hide:E,className:D,controlledProgress:A,progress:H,rtl:T,isIn:b,theme:R}){let C=E||A&&H===0,Q={animationDuration:`${c}ms`,animationPlayState:o?"running":"paused"};A&&(Q.transform=`scaleX(${H})`);let J=wa("Toastify__progress-bar",A?"Toastify__progress-bar--controlled":"Toastify__progress-bar--animated",`Toastify__progress-bar-theme--${R}`,`Toastify__progress-bar--${r}`,{"Toastify__progress-bar--rtl":T}),dt=Pl(D)?D({rtl:T,type:r,defaultClassName:J}):wa(J,D),et={[A&&H>=1?"onTransitionEnd":"onAnimationEnd"]:A&&H<1?null:()=>{b&&v()}};return ht.createElement("div",{className:"Toastify__progress-bar--wrp","data-hidden":C},ht.createElement("div",{className:`Toastify__progress-bar--bg Toastify__progress-bar-theme--${R} Toastify__progress-bar--${r}`}),ht.createElement("div",{role:"progressbar","aria-hidden":C?"true":"false","aria-label":"notification timer",className:dt,style:Q,...et}))}var vm=1,pd=()=>`${vm++}`;function hm(c,o,v){let r=1,E=0,D=[],A=[],H=o,T=new Map,b=new Set,R=x=>(b.add(x),()=>b.delete(x)),C=()=>{A=Array.from(T.values()),b.forEach(x=>x())},Q=({containerId:x,toastId:X,updateId:$})=>{let L=x?x!==c:c!==1,vt=T.has(X)&&$==null;return L||vt},J=(x,X)=>{T.forEach($=>{var L;(X==null||X===$.props.toastId)&&((L=$.toggle)==null||L.call($,x))})},dt=x=>{var X,$;($=(X=x.props)==null?void 0:X.onClose)==null||$.call(X,x.removalReason),x.isActive=!1},et=x=>{if(x==null)T.forEach(dt);else{let X=T.get(x);X&&dt(X)}C()},W=()=>{E-=D.length,D=[]},P=x=>{var X,$;let{toastId:L,updateId:vt}=x.props,tt=vt==null;x.staleId&&T.delete(x.staleId),x.isActive=!0,T.set(L,x),C(),v(yd(x,tt?"added":"updated")),tt&&(($=(X=x.props).onOpen)==null||$.call(X))};return{id:c,props:H,observe:R,toggle:J,removeToast:et,toasts:T,clearQueue:W,buildToast:(x,X)=>{if(Q(X))return;let{toastId:$,updateId:L,data:vt,staleId:tt,delay:it}=X,B=L==null;B&&E++;let I={...H,style:H.toastStyle,key:r++,...Object.fromEntries(Object.entries(X).filter(([Lt,Wt])=>Wt!=null)),toastId:$,updateId:L,data:vt,isIn:!1,className:dc(X.className||H.toastClassName),progressClassName:dc(X.progressClassName||H.progressClassName),autoClose:X.isLoading?!1:om(X.autoClose,H.autoClose),closeToast(Lt){T.get($).removalReason=Lt,et($)},deleteToast(){let Lt=T.get($);if(Lt!=null){if(v(yd(Lt,"removed")),T.delete($),E--,E<0&&(E=0),D.length>0){P(D.shift());return}C()}}};I.closeButton=H.closeButton,X.closeButton===!1||yc(X.closeButton)?I.closeButton=X.closeButton:X.closeButton===!0&&(I.closeButton=yc(H.closeButton)?H.closeButton:!0);let Dt={content:x,props:I,staleId:tt};H.limit&&H.limit>0&&E>H.limit&&B?D.push(Dt):Uu(it)?setTimeout(()=>{P(Dt)},it):P(Dt)},setProps(x){H=x},setToggle:(x,X)=>{let $=T.get(x);$&&($.toggle=X)},isToastActive:x=>{var X;return(X=T.get(x))==null?void 0:X.isActive},getSnapshot:()=>A}}var ll=new Map,Ru=[],mc=new Set,gm=c=>mc.forEach(o=>o(c)),Sd=()=>ll.size>0;function bm(){Ru.forEach(c=>Ed(c.content,c.options)),Ru=[]}var _m=(c,{containerId:o})=>{var v;return(v=ll.get(o||1))==null?void 0:v.toasts.get(c)};function Td(c,o){var v;if(o)return!!((v=ll.get(o))!=null&&v.isToastActive(c));let r=!1;return ll.forEach(E=>{E.isToastActive(c)&&(r=!0)}),r}function pm(c){if(!Sd()){Ru=Ru.filter(o=>c!=null&&o.options.toastId!==c);return}if(c==null||sm(c))ll.forEach(o=>{o.removeToast(c)});else if(c&&("containerId"in c||"id"in c)){let o=ll.get(c.containerId);o?o.removeToast(c.id):ll.forEach(v=>{v.removeToast(c.id)})}}var Sm=(c={})=>{ll.forEach(o=>{o.props.limit&&(!c.containerId||o.id===c.containerId)&&o.clearQueue()})};function Ed(c,o){yc(c)&&(Sd()||Ru.push({content:c,options:o}),ll.forEach(v=>{v.buildToast(c,o)}))}function Tm(c){var o;(o=ll.get(c.containerId||1))==null||o.setToggle(c.id,c.fn)}function zd(c,o){ll.forEach(v=>{(o==null||!(o!=null&&o.containerId)||o?.containerId===v.id)&&v.toggle(c,o?.id)})}function Em(c){let o=c.containerId||1;return{subscribe(v){let r=hm(o,c,gm);ll.set(o,r);let E=r.observe(v);return bm(),()=>{E(),ll.delete(o)}},setProps(v){var r;(r=ll.get(o))==null||r.setProps(v)},getSnapshot(){var v;return(v=ll.get(o))==null?void 0:v.getSnapshot()}}}function zm(c){return mc.add(c),()=>{mc.delete(c)}}function Am(c){return c&&(Ja(c.toastId)||Uu(c.toastId))?c.toastId:pd()}function Hu(c,o){return Ed(c,o),o.toastId}function Jn(c,o){return{...o,type:o&&o.type||c,toastId:Am(o)}}function kn(c){return(o,v)=>Hu(o,Jn(c,v))}function yt(c,o){return Hu(c,Jn("default",o))}yt.loading=(c,o)=>Hu(c,Jn("default",{isLoading:!0,autoClose:!1,closeOnClick:!1,closeButton:!1,draggable:!1,...o}));function Om(c,{pending:o,error:v,success:r},E){let D;o&&(D=Ja(o)?yt.loading(o,E):yt.loading(o.render,{...E,...o}));let A={isLoading:null,autoClose:null,closeOnClick:null,closeButton:null,draggable:null},H=(b,R,C)=>{if(R==null){yt.dismiss(D);return}let Q={type:b,...A,...E,data:C},J=Ja(R)?{render:R}:R;return D?yt.update(D,{...Q,...J}):yt(J.render,{...Q,...J}),C},T=Pl(c)?c():c;return T.then(b=>H("success",r,b)).catch(b=>H("error",v,b)),T}yt.promise=Om;yt.success=kn("success");yt.info=kn("info");yt.error=kn("error");yt.warning=kn("warning");yt.warn=yt.warning;yt.dark=(c,o)=>Hu(c,Jn("default",{theme:"dark",...o}));function Dm(c){pm(c)}yt.dismiss=Dm;yt.clearWaitingQueue=Sm;yt.isActive=Td;yt.update=(c,o={})=>{let v=_m(c,o);if(v){let{props:r,content:E}=v,D={delay:100,...r,...o,toastId:o.toastId||c,updateId:pd()};D.toastId!==c&&(D.staleId=c);let A=D.render||E;delete D.render,Hu(A,D)}};yt.done=c=>{yt.update(c,{progress:1})};yt.onChange=zm;yt.play=c=>zd(!0,c);yt.pause=c=>zd(!1,c);function Mm(c){var o;let{subscribe:v,getSnapshot:r,setProps:E}=Et.useRef(Em(c)).current;E(c);let D=(o=Et.useSyncExternalStore(v,r,r))==null?void 0:o.slice();function A(H){if(!D)return[];let T=new Map;return c.newestOnTop&&D.reverse(),D.forEach(b=>{let{position:R}=b.props;T.has(R)||T.set(R,[]),T.get(R).push(b)}),Array.from(T,b=>H(b[0],b[1]))}return{getToastToRender:A,isToastActive:Td,count:D?.length}}function Rm(c){let[o,v]=Et.useState(!1),[r,E]=Et.useState(!1),D=Et.useRef(null),A=Et.useRef({start:0,delta:0,removalDistance:0,canCloseOnClick:!0,canDrag:!1,didMove:!1}).current,{autoClose:H,pauseOnHover:T,closeToast:b,onClick:R,closeOnClick:C}=c;Tm({id:c.toastId,containerId:c.containerId,fn:v}),Et.useEffect(()=>{if(c.pauseOnFocusLoss)return Q(),()=>{J()}},[c.pauseOnFocusLoss]);function Q(){document.hasFocus()||P(),window.addEventListener("focus",W),window.addEventListener("blur",P)}function J(){window.removeEventListener("focus",W),window.removeEventListener("blur",P)}function dt(tt){if(c.draggable===!0||c.draggable===tt.pointerType){x();let it=D.current;A.canCloseOnClick=!0,A.canDrag=!0,it.style.transition="none",c.draggableDirection==="x"?(A.start=tt.clientX,A.removalDistance=it.offsetWidth*(c.draggablePercent/100)):(A.start=tt.clientY,A.removalDistance=it.offsetHeight*(c.draggablePercent===80?c.draggablePercent*1.5:c.draggablePercent)/100)}}function et(tt){let{top:it,bottom:B,left:I,right:Dt}=D.current.getBoundingClientRect();tt.nativeEvent.type!=="touchend"&&c.pauseOnHover&&tt.clientX>=I&&tt.clientX<=Dt&&tt.clientY>=it&&tt.clientY<=B?P():W()}function W(){v(!0)}function P(){v(!1)}function x(){A.didMove=!1,document.addEventListener("pointermove",$),document.addEventListener("pointerup",L)}function X(){document.removeEventListener("pointermove",$),document.removeEventListener("pointerup",L)}function $(tt){let it=D.current;if(A.canDrag&&it){A.didMove=!0,o&&P(),c.draggableDirection==="x"?A.delta=tt.clientX-A.start:A.delta=tt.clientY-A.start,A.start!==tt.clientX&&(A.canCloseOnClick=!1);let B=c.draggableDirection==="x"?`${A.delta}px, var(--y)`:`0, calc(${A.delta}px + var(--y))`;it.style.transform=`translate3d(${B},0)`,it.style.opacity=`${1-Math.abs(A.delta/A.removalDistance)}`}}function L(){X();let tt=D.current;if(A.canDrag&&A.didMove&&tt){if(A.canDrag=!1,Math.abs(A.delta)>A.removalDistance){E(!0),c.closeToast(!0),c.collapseAll();return}tt.style.transition="transform 0.2s, opacity 0.2s",tt.style.removeProperty("transform"),tt.style.removeProperty("opacity")}}let vt={onPointerDown:dt,onPointerUp:et};return H&&T&&(vt.onMouseEnter=P,c.stacked||(vt.onMouseLeave=W)),C&&(vt.onClick=tt=>{R&&R(tt),A.canCloseOnClick&&b(!0)}),{playToast:W,pauseToast:P,isRunning:o,preventExitTransition:r,toastRef:D,eventHandlers:vt}}var Um=typeof window<"u"?Et.useLayoutEffect:Et.useEffect,$n=({theme:c,type:o,isLoading:v,...r})=>ht.createElement("svg",{viewBox:"0 0 24 24",width:"100%",height:"100%",fill:c==="colored"?"currentColor":`var(--toastify-icon-color-${o})`,...r});function Hm(c){return ht.createElement($n,{...c},ht.createElement("path",{d:"M23.32 17.191L15.438 2.184C14.728.833 13.416 0 11.996 0c-1.42 0-2.733.833-3.443 2.184L.533 17.448a4.744 4.744 0 000 4.368C1.243 23.167 2.555 24 3.975 24h16.05C22.22 24 24 22.044 24 19.632c0-.904-.251-1.746-.68-2.44zm-9.622 1.46c0 1.033-.724 1.823-1.698 1.823s-1.698-.79-1.698-1.822v-.043c0-1.028.724-1.822 1.698-1.822s1.698.79 1.698 1.822v.043zm.039-12.285l-.84 8.06c-.057.581-.408.943-.897.943-.49 0-.84-.367-.896-.942l-.84-8.065c-.057-.624.25-1.095.779-1.095h1.91c.528.005.84.476.784 1.1z"}))}function Nm(c){return ht.createElement($n,{...c},ht.createElement("path",{d:"M12 0a12 12 0 1012 12A12.013 12.013 0 0012 0zm.25 5a1.5 1.5 0 11-1.5 1.5 1.5 1.5 0 011.5-1.5zm2.25 13.5h-4a1 1 0 010-2h.75a.25.25 0 00.25-.25v-4.5a.25.25 0 00-.25-.25h-.75a1 1 0 010-2h1a2 2 0 012 2v4.75a.25.25 0 00.25.25h.75a1 1 0 110 2z"}))}function xm(c){return ht.createElement($n,{...c},ht.createElement("path",{d:"M12 0a12 12 0 1012 12A12.014 12.014 0 0012 0zm6.927 8.2l-6.845 9.289a1.011 1.011 0 01-1.43.188l-4.888-3.908a1 1 0 111.25-1.562l4.076 3.261 6.227-8.451a1 1 0 111.61 1.183z"}))}function qm(c){return ht.createElement($n,{...c},ht.createElement("path",{d:"M11.983 0a12.206 12.206 0 00-8.51 3.653A11.8 11.8 0 000 12.207 11.779 11.779 0 0011.8 24h.214A12.111 12.111 0 0024 11.791 11.766 11.766 0 0011.983 0zM10.5 16.542a1.476 1.476 0 011.449-1.53h.027a1.527 1.527 0 011.523 1.47 1.475 1.475 0 01-1.449 1.53h-.027a1.529 1.529 0 01-1.523-1.47zM11 12.5v-6a1 1 0 012 0v6a1 1 0 11-2 0z"}))}function Cm(){return ht.createElement("div",{className:"Toastify__spinner"})}var vc={info:Nm,warning:Hm,success:xm,error:qm,spinner:Cm},Bm=c=>c in vc;function Ym({theme:c,type:o,isLoading:v,icon:r}){let E=null,D={theme:c,type:o};return r===!1||(Pl(r)?E=r({...D,isLoading:v}):Et.isValidElement(r)?E=Et.cloneElement(r,D):v?E=vc.spinner():Bm(o)&&(E=vc[o](D))),E}var Xm=c=>{let{isRunning:o,preventExitTransition:v,toastRef:r,eventHandlers:E,playToast:D}=Rm(c),{closeButton:A,children:H,autoClose:T,onClick:b,type:R,hideProgressBar:C,closeToast:Q,transition:J,position:dt,className:et,style:W,progressClassName:P,updateId:x,role:X,progress:$,rtl:L,toastId:vt,deleteToast:tt,isIn:it,isLoading:B,closeOnClick:I,theme:Dt,ariaLabel:Lt}=c,Wt=wa("Toastify__toast",`Toastify__toast-theme--${Dt}`,`Toastify__toast--${R}`,{"Toastify__toast--rtl":L},{"Toastify__toast--close-on-click":I}),zl=Pl(et)?et({rtl:L,position:dt,type:R,defaultClassName:Wt}):wa(Wt,et),Zt=Ym(c),U=!!$||!T,w={closeToast:Q,type:R,theme:Dt},G=null;return A===!1||(Pl(A)?G=A(w):Et.isValidElement(A)?G=Et.cloneElement(A,w):G=ym(w)),ht.createElement(J,{isIn:it,done:tt,position:dt,preventExitTransition:v,nodeRef:r,playToast:D},ht.createElement("div",{id:vt,tabIndex:0,onClick:b,"data-in":it,className:zl,...E,style:W,ref:r,...it&&{role:X,"aria-label":Lt}},Zt!=null&&ht.createElement("div",{className:wa("Toastify__toast-icon",{"Toastify--animate-icon Toastify__zoom-enter":!B})},Zt),_d(H,c,!o),G,!c.customProgressBar&&ht.createElement(mm,{...x&&!U?{key:`p-${x}`}:{},rtl:L,theme:Dt,delay:T,isRunning:o,isIn:it,closeToast:Q,hide:C,type:R,className:P,controlledProgress:U,progress:$||0})))},jm=(c,o=!1)=>({enter:`Toastify--animate Toastify__${c}-enter`,exit:`Toastify--animate Toastify__${c}-exit`,appendPosition:o}),Gm=dm(jm("bounce",!0)),Qm={position:"top-right",transition:Gm,autoClose:5e3,closeButton:!0,pauseOnHover:!0,pauseOnFocusLoss:!0,draggable:"touch",draggablePercent:80,draggableDirection:"x",role:"alert",theme:"light","aria-label":"Notifications Alt+T",hotKeys:c=>c.altKey&&c.code==="KeyT"};function Lm(c){let o={...Qm,...c},v=c.stacked,[r,E]=Et.useState(!0),D=Et.useRef(null),{getToastToRender:A,isToastActive:H,count:T}=Mm(o),{className:b,style:R,rtl:C,containerId:Q,hotKeys:J}=o;function dt(W){let P=wa("Toastify__toast-container",`Toastify__toast-container--${W}`,{"Toastify__toast-container--rtl":C});return Pl(b)?b({position:W,rtl:C,defaultClassName:P}):wa(P,dc(b))}function et(){v&&(E(!0),yt.play())}return Um(()=>{var W;if(v){let P=D.current.querySelectorAll('[data-in="true"]'),x=12,X=(W=o.position)==null?void 0:W.includes("top"),$=0,L=0;Array.from(P).reverse().forEach((vt,tt)=>{let it=vt;it.classList.add("Toastify__toast--stacked"),tt>0&&(it.dataset.collapsed=`${r}`),it.dataset.pos||(it.dataset.pos=X?"top":"bot");let B=$*(r?.2:1)+(r?0:x*tt);it.style.setProperty("--y",`${X?B:B*-1}px`),it.style.setProperty("--g",`${x}`),it.style.setProperty("--s",`${1-(r?L:0)}`),$+=it.offsetHeight,L+=.025})}},[r,T,v]),Et.useEffect(()=>{function W(P){var x;let X=D.current;J(P)&&((x=X.querySelector('[tabIndex="0"]'))==null||x.focus(),E(!1),yt.pause()),P.key==="Escape"&&(document.activeElement===X||X!=null&&X.contains(document.activeElement))&&(E(!0),yt.play())}return document.addEventListener("keydown",W),()=>{document.removeEventListener("keydown",W)}},[J]),ht.createElement("section",{ref:D,className:"Toastify",id:Q,onMouseEnter:()=>{v&&(E(!1),yt.pause())},onMouseLeave:et,"aria-live":"polite","aria-atomic":"false","aria-relevant":"additions text","aria-label":o["aria-label"]},A((W,P)=>{let x=P.length?{...R}:{...R,pointerEvents:"none"};return ht.createElement("div",{tabIndex:-1,className:dt(W),"data-stacked":v,style:x,key:`c-${W}`},P.map(({content:X,props:$})=>ht.createElement(Xm,{...$,stacked:v,collapseAll:et,isIn:H($.toastId,$.containerId),key:`t-${$.key}`},X)))}))}const md=c=>{let o;const v=new Set,r=(b,R)=>{const C=typeof b=="function"?b(o):b;if(!Object.is(C,o)){const Q=o;o=R??(typeof C!="object"||C===null)?C:Object.assign({},o,C),v.forEach(J=>J(o,Q))}},E=()=>o,H={setState:r,getState:E,getInitialState:()=>T,subscribe:b=>(v.add(b),()=>v.delete(b))},T=o=c(r,E,H);return H},Zm=c=>c?md(c):md,Vm=c=>c;function Km(c,o=Vm){const v=ht.useSyncExternalStore(c.subscribe,()=>o(c.getState()),()=>o(c.getInitialState()));return ht.useDebugValue(v),v}const vd=c=>{const o=Zm(c),v=r=>Km(o,r);return Object.assign(v,o),v},Ad=c=>c?vd(c):vd,wm={},Jm=async c=>{const o=new AbortController,v=o.signal,r=c.timeout||6e4*3,E=setTimeout(()=>{o.abort()},r);return fetch(c.url,{method:"POST",headers:{"Content-Type":"application/json",...c.headers},body:JSON.stringify(c.body),signal:v}).then(D=>{const A=D.headers.get("Content-Type");return A&&A.includes("application/json")?D.json():D.text()}).catch(D=>(D.name==="AbortError"&&console.log("Request timed out and was aborted"),console.error(D),{code:500})).finally(()=>{clearTimeout(E)})},hd=c=>{let o;const v=new Set,r=(R,C)=>{const Q=typeof R=="function"?R(o):R;if(!Object.is(Q,o)){const J=o;o=C??(typeof Q!="object"||Q===null)?Q:Object.assign({},o,Q),v.forEach(dt=>dt(o,J))}},E=()=>o,T={setState:r,getState:E,getInitialState:()=>b,subscribe:R=>(v.add(R),()=>v.delete(R)),destroy:()=>{(wm?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),v.clear()}},b=o=c(r,E,T);return T},km=c=>c?hd(c):hd,$m=c=>{try{return new URL(c),c}catch{const v=new URL(c,location.origin);return v.protocol==="http:"&&(v.protocol="ws:"),v.protocol==="https:"&&(v.protocol="wss:"),v.href}};class Wm{url;store;ws;constructor(o){const v=o?.url||"/api/router";if(o?.store)this.store=o.store;else{const E=km(D=>({connected:!1,status:"connecting",setConnected:A=>D({connected:A}),setStatus:A=>D({status:A})}));this.store=E}const r=$m(v);o?.ws&&o.ws instanceof WebSocket?this.ws=o.ws:this.ws=new WebSocket(r),this.connect()}async connect(o){const v=this.store;return v.getState().connected?Promise.resolve(!0):new Promise((E,D)=>{const A=this.ws||new WebSocket(this.url),H=o?.timeout||5*60*1e3;let T=setTimeout(()=>{console.error("WebSocket 连接超时"),D("timeout")},H);A.onopen=()=>{v.getState().setConnected(!0),v.getState().setStatus("connected"),E(!0),clearTimeout(T)},A.onclose=()=>{v.getState().setConnected(!1),v.getState().setStatus("disconnected"),this.ws=null}})}listenConnect(o){const v=this.store,{connected:r}=v.getState();if(r){o();return}return((A,H)=>{const T=v.subscribe((b,R)=>{A(b)!==A(R)&&(H(b,R),T())});return T})(A=>A.connected,()=>{o()})}onMessage(o,v){const r=this.ws,E=v?.isJson??!0,D=v?.selector,A=T=>{try{return JSON.parse(T)}catch{return T}},H=T=>{const b=A(T.data);typeof b=="string"&&!E?o(b,T):typeof b=="object"&&E&&o(D?D(b):b,T)};return r.addEventListener("message",H),()=>{r.removeEventListener("message",H)}}close(){const o=this.ws,v=this.store;o?.close?.(),this.ws=null,v.getState().setConnected(!1),v.getState().setStatus("disconnected")}send(o,v){const r=this.ws,E=v?.isJson??!0,D=v?.wrapper;if(!r||r.readyState!==WebSocket.OPEN){console.error("WebSocket is not open");return}E?r.send(JSON.stringify(D?D(o):o)):r.send(o)}getOpen(){return this.ws?this.ws.readyState===WebSocket.OPEN:!1}}class Fm{adapter;url;beforeRequest;afterResponse;headers;timeout;constructor(o){this.adapter=o?.adapter||Jm,this.url=o?.url||"/api/router",this.headers=o?.headers||{"Content-Type":"application/json"},this.timeout=o?.timeout||6e4*3}async get(o,v){return this.post(o,v)}async post(o,v){const r=v?.url||this.url,E={...this.headers,...v?.headers},D=v?.adapter||this.adapter,A=v?.beforeRequest||this.beforeRequest,H=v?.afterResponse||this.afterResponse,T=v?.timeout||this.timeout,b={url:r,headers:E,body:o,timeout:T};return A&&await A(b),D(b).then(async R=>(R.success=R.code===200,H?await H(R):R))}before(o){this.beforeRequest=o}after(o){this.afterResponse=o}}class bc extends Fm{tokenName;storage;token;qws;constructor(o){super(o),this.tokenName=o?.tokenName||"token",this.storage=o?.storage||localStorage,this.beforeRequest=async v=>{const r=this.token||this.getToken();return r&&(v.headers={...v.headers,Authorization:`Bearer ${r}`}),v},o?.io&&this.createWs()}createWs(o){this.qws=new Wm({url:this.url,...o})}getToken(){return this.storage.getItem(this.tokenName)}saveToken(o){this.storage.setItem(this.tokenName,o)}removeToken(){this.storage.removeItem(this.tokenName)}}new bc;const hc=new bc({url:"/client/router",io:!1}),ev=new bc({}),Im=Ad(c=>({isClient:!1,setIsClient:o=>c({isClient:o}),mount:!1,setMount:o=>c({mount:o}),checkClient:async()=>{if(window?.electron){c({isClient:!0,mount:!0});return}try{if((await hc.post({path:"check"})).code===200){c({isClient:!0,mount:!0});return}}catch(v){console.error(v)}c({mount:!0})}})),Pm=Ad(c=>({config:{},setConfig:o=>c({config:o}),getConfig:async()=>{const o=await hc.post({path:"config"});o.code===200?(console.log(o.data),c({config:o.data,pageApi:o.data?.pageApi||""})):yt.error(o.message||"获取配置失败")},pageApi:"",setPageApi:o=>c({pageApi:o}),saveConfig:async o=>{if(console.log(o),!o){yt.error("配置不能为空");return}const v=await hc.post({path:"config",key:"set",data:{pageApi:o}});v.code===200?yt.success("保存配置成功"):yt.error(v.message||"保存配置失败")}}));console.log("basename",fm);const tv=ht.lazy(()=>gd(()=>import("./index-B3OKg3E6.js"),__vite__mapDeps([0,1]))),lv=ht.lazy(()=>gd(()=>import("./Enter-BnWSbQup.js"),__vite__mapDeps([2,3]))),av=()=>{const o=new URL(window.location.href).searchParams.get("link"),{checkClient:v,mount:r,isClient:E}=Im(),{getConfig:D}=Pm();Et.useEffect(()=>{v()},[]),Et.useEffect(()=>{E&&D()},[E]);const A=Et.useMemo(()=>o?o.includes("enter"):!0,[o]);return r?tl.jsxs(tl.Fragment,{children:[tl.jsx("nav",{className:"bg-amber-500 p-4 sticky top-0 z-10",children:tl.jsxs("ul",{className:"flex space-x-4",children:[tl.jsx("li",{className:A?"text-white":"text-white/70",children:tl.jsx("a",{href:"?link=enter",children:"配置项"})}),tl.jsx("li",{className:A?"text-white/70":"text-white",children:tl.jsx("a",{href:"?link=packages",children:"Packages"})})]})}),tl.jsx("div",{className:"w-full ",style:{height:"calc(100vh - 4rem)"},children:A?tl.jsx(lv,{}):tl.jsx(tv,{})}),tl.jsx(Lm,{})]}):tl.jsx("div",{className:"w-full h-full flex justify-center items-center",children:tl.jsx("div",{className:"w-10 h-10 bg-amber-500 rounded animate-spin"})})};um.createRoot(document.getElementById("root")).render(tl.jsx(av,{}));export{hc as a,Ad as c,tl as j,ev as q,Et as r,Pm as u,yt as y}; diff --git a/src/renderer/root/assistant-base-app/index.html b/src/renderer/root/assistant-base-app/index.html new file mode 100644 index 0000000..9fe98c7 --- /dev/null +++ b/src/renderer/root/assistant-base-app/index.html @@ -0,0 +1,13 @@ + + + + + + Assistant Base App + + + + +

+ + diff --git a/src/scripts/run-save-files.ts b/src/scripts/run-save-files.ts new file mode 100644 index 0000000..60b0c3f --- /dev/null +++ b/src/scripts/run-save-files.ts @@ -0,0 +1,3 @@ +import { installApp, demoData } from '../main/proxy/install'; + +installApp(demoData); diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..9d2061e --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,30 @@ +{ + "compilerOptions": { + "module": "commonjs", + "noImplicitAny": false, + "sourceMap": false, + "outDir": "app-dist", + "rootDir": "src", + "baseUrl": ".", + "paths": { + "@/*": [ + "./src/*" + ], + }, + "allowJs": true, + "skipLibCheck": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, + "strict": false, + "forceConsistentCasingInFileNames": true, + "moduleResolution": "Node", + "isolatedModules": false, + "resolveJsonModule": true, + "types": [] + }, + "include": [ + "src/**/*" + ], + "exclude": [ + ] +} \ No newline at end of file diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..95020f7 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,48 @@ +// vite.config.ts +import path from 'path'; +import { defineConfig } from 'vite'; +import electron from 'vite-plugin-electron'; +import { viteStaticCopy } from 'vite-plugin-static-copy'; + +export default defineConfig({ + plugins: [ + electron({ + entry: { + main: 'src/main/index.ts', // 主进程入口文件 + }, + vite: { + resolve: { + alias: { + '@': path.resolve(__dirname, './src'), + }, + }, + build: { + rollupOptions: { + input: { + main: 'src/main/index.ts', // 主进程入口文件 + }, + output: { + format: 'esm', // 设置输出格式为 ESM + }, + }, + outDir: 'dist/main', // 主进程输出目录 + }, + }, + }), + + viteStaticCopy({ + targets: [ + { src: 'src/renderer', dest: '' }, + { + src: 'src/main/preload.js', + dest: 'main', + }, + ], + }), + ], + define: {}, + build: { + outDir: 'dist', // 渲染进程输出目录 + rollupOptions: {}, + }, +});